/* * Beispiel-Website „Bäckerei Sonnenschein“ (Station Live-Vorschau). Alle Klassen mit Präfix bk-. * Desktop 1512 px breit, die Seite ist länger als die MacBook-Fläche (893 px) und läuft beim Scrollen durch die Station * nach oben: --kp-v (0 bis 1) setzt die Bühne, --bk-weg die Seite selbst. Nur transform, nur ohne reduzierte Bewegung. */ /* Instrument Serif, selbst gehostet (SIL Open Font License, public/fonts/instrument-serif/LICENSE) */ @font-face { font-family: "Instrument Serif"; font-style: normal; font-weight: 400; font-display: swap; src: url(/fonts/instrument-serif/instrument-serif-latin-ext-400-normal.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } @font-face { font-family: "Instrument Serif"; font-style: normal; font-weight: 400; font-display: swap; src: url(/fonts/instrument-serif/instrument-serif-latin-400-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } .bk-seite { --bk-tinte: #2a1a10; --bk-tinte-leise: #6f5a48; --bk-creme: #f7f0e4; --bk-papier: #fffaf2; --bk-sand: #efe3cf; --bk-kruste: #a8561e; --bk-sonne: #f2b544; --bk-linie: #e6d7bf; --bk-serif: "Instrument Serif", Georgia, "Times New Roman", serif; position: absolute; inset: 0; overflow: hidden; background: var(--bk-creme); color: var(--bk-tinte); font-family: "Instrument Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; font-weight: 400; line-height: 1.45; text-align: left; letter-spacing: normal; -webkit-font-smoothing: antialiased; user-select: none; } .bk-seite *, .bk-seite *::before, .bk-seite *::after { box-sizing: border-box; margin: 0; } .bk-seite img { display: block; width: 100%; height: 100%; object-fit: cover; } /* Die ganze Seite läuft mit dem Scrollfortschritt der Station nach oben */ .bk-inhalt { position: absolute; left: 0; top: 0; width: 1512px; } @media (prefers-reduced-motion: no-preference) { .bk-inhalt { transform: translateY(calc(var(--kp-v, 0) * -1 * var(--bk-weg, 0px))); } } /* ── Leiste und Kopf ─────────────────────────────────────────────────── */ .bk-leiste { height: 40px; display: flex; align-items: center; justify-content: center; position: relative; background: var(--bk-tinte); color: #f3e6d0; font-size: 14px; } .bk-leiste b { font-weight: 600; color: var(--bk-sonne); } .bk-leiste__rechts { position: absolute; right: 88px; opacity: 0.75; } .bk-kopf { height: 96px; display: flex; align-items: center; padding: 0 88px; border-bottom: 1px solid var(--bk-linie); } .bk-logo { display: flex; align-items: center; gap: 14px; } .bk-logo__zeichen { width: 48px; height: 48px; flex: none; } .bk-logo__text { display: flex; flex-direction: column; line-height: 1; } .bk-logo__name { font-family: var(--bk-serif); font-size: 34px; letter-spacing: -0.01em; } .bk-logo__zusatz { margin-top: 4px; font-size: 11.5px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--bk-kruste); } .bk-menue { display: flex; gap: 40px; margin: 0 auto; font-size: 16.5px; font-weight: 500; color: #4a3626; } .bk-knopf { display: inline-flex; align-items: center; gap: 10px; height: 58px; padding: 0 30px; border-radius: 999px; font-size: 17px; font-weight: 600; white-space: nowrap; } .bk-knopf svg { width: 17px; height: 17px; } .bk-knopf--klein { height: 46px; padding: 0 24px; font-size: 15.5px; } .bk-knopf--dunkel { background: var(--bk-tinte); color: var(--bk-papier); } .bk-knopf--rand { border: 1.5px solid #cdb595; color: var(--bk-tinte); } .bk-knopf--sonne { background: var(--bk-sonne); color: var(--bk-tinte); } /* ── Startbereich ────────────────────────────────────────────────────── */ .bk-held { display: grid; grid-template-columns: 1fr 620px; gap: 72px; align-items: center; height: 640px; padding: 0 88px; } .bk-offen { display: inline-flex; align-items: center; gap: 10px; padding: 8px 16px 8px 13px; border-radius: 999px; background: var(--bk-papier); border: 1px solid var(--bk-linie); font-size: 14.5px; font-weight: 600; color: #3f5e2c; } .bk-offen i { width: 9px; height: 9px; border-radius: 50%; background: #4c9a3c; box-shadow: 0 0 0 4px #dcebd3; } .bk-held__titel { margin: 26px 0 22px; font-family: var(--bk-serif); font-size: 112px; font-weight: 400; line-height: 0.94; letter-spacing: -0.025em; } .bk-held__titel em { font-style: normal; color: var(--bk-kruste); } .bk-held__lead { max-width: 540px; font-size: 20px; line-height: 1.55; color: var(--bk-tinte-leise); } .bk-held__knoepfe { display: flex; gap: 14px; margin-top: 34px; } .bk-fakten { display: flex; gap: 40px; margin-top: 40px; padding-top: 26px; border-top: 1px solid var(--bk-linie); font-size: 14.5px; color: var(--bk-tinte-leise); } .bk-fakten span { display: flex; flex-direction: column; } .bk-fakten b { font-family: var(--bk-serif); font-size: 34px; font-weight: 400; line-height: 1.05; color: var(--bk-tinte); } .bk-held__bild { position: relative; height: 560px; } .bk-held__bild > img { border-radius: 32px; box-shadow: 0 40px 70px -40px rgb(70 35 10 / 0.55); } .bk-neu { position: absolute; left: -44px; bottom: 40px; display: flex; flex-direction: column; gap: 2px; min-width: 270px; padding: 18px 22px 20px; border-radius: 22px; background: var(--bk-papier); box-shadow: 0 24px 50px -24px rgb(60 30 5 / 0.45); } .bk-neu__marke { font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--bk-kruste); } .bk-neu__name { font-family: var(--bk-serif); font-size: 32px; line-height: 1.1; } .bk-neu__zeile { display: flex; justify-content: space-between; gap: 20px; font-size: 14.5px; color: var(--bk-tinte-leise); } .bk-neu__zeile b { color: var(--bk-tinte); } .bk-stempel { position: absolute; right: -34px; top: -34px; width: 132px; height: 132px; transform: rotate(-12deg); } /* ── Band ────────────────────────────────────────────────────────────── */ .bk-band { display: flex; align-items: center; justify-content: center; gap: 34px; height: 66px; margin-top: 24px; background: var(--bk-kruste); color: #fbeedc; font-family: var(--bk-serif); font-size: 27px; white-space: nowrap; overflow: hidden; } .bk-band span + span::before { content: "✺"; margin-right: 34px; font-family: "Instrument Sans", system-ui, sans-serif; font-size: 16px; color: var(--bk-sonne); vertical-align: 4px; } /* ── Sortiment ───────────────────────────────────────────────────────── */ .bk-abschnitt { padding: 88px 88px 96px; } .bk-abschnitt__kopf { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 44px; } .bk-dach { display: block; margin-bottom: 14px; font-size: 13px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--bk-kruste); } .bk-dach--hell { color: var(--bk-sonne); } .bk-h2 { max-width: 760px; font-family: var(--bk-serif); font-size: 66px; font-weight: 400; line-height: 1; letter-spacing: -0.02em; } .bk-h2--hell { color: #fbeedc; } .bk-link { display: inline-flex; align-items: center; gap: 8px; padding-bottom: 4px; border-bottom: 1.5px solid currentColor; font-size: 16.5px; font-weight: 600; } .bk-link svg { width: 16px; height: 16px; } .bk-karten { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; } .bk-karte__bild { position: relative; aspect-ratio: 4 / 5; border-radius: 22px; overflow: hidden; } .bk-karte__neu { position: absolute; left: 16px; top: 16px; padding: 6px 13px; border-radius: 999px; background: var(--bk-sonne); font-size: 13px; font-weight: 700; } .bk-karte__zeile { display: flex; align-items: baseline; justify-content: space-between; margin-top: 18px; } .bk-karte__name { font-family: var(--bk-serif); font-size: 30px; line-height: 1.1; } .bk-karte__preis { font-size: 17px; font-weight: 600; } .bk-karte__text { margin-top: 6px; font-size: 15.5px; color: var(--bk-tinte-leise); } /* ── Backstube ───────────────────────────────────────────────────────── */ .bk-backstube { display: grid; grid-template-columns: 640px 1fr; gap: 88px; align-items: center; padding: 80px 88px; background: var(--bk-sand); } .bk-backstube__bild { height: 440px; border-radius: 28px; overflow: hidden; } .bk-backstube__text p { max-width: 560px; margin-top: 26px; font-size: 19px; line-height: 1.6; color: var(--bk-tinte-leise); } .bk-backstube__text .bk-unterschrift { margin-top: 30px; font-family: var(--bk-serif); font-size: 26px; color: var(--bk-tinte); } /* ── Torten ──────────────────────────────────────────────────────────── */ .bk-torten { display: grid; grid-template-columns: 1fr 380px; align-items: center; gap: 64px; margin: 88px 88px 0; padding: 0 0 0 72px; height: 360px; border-radius: 32px; background: var(--bk-tinte); color: #e7d6bd; overflow: hidden; } .bk-torten img { height: 360px; } .bk-torten p { margin: 20px 0 30px; font-size: 19px; } /* ── Besuch ──────────────────────────────────────────────────────────── */ .bk-besuch { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; padding: 88px; } .bk-zeiten, .bk-karte-ort { border-radius: 28px; background: var(--bk-papier); border: 1px solid var(--bk-linie); } .bk-zeiten { padding: 36px 44px 28px; } .bk-zeiten__zeile { display: flex; justify-content: space-between; padding: 18px 0; border-top: 1px solid var(--bk-linie); font-size: 19px; } .bk-zeiten__zeile.is-heute { font-weight: 600; } .bk-zeiten__zeile.is-heute span:first-child::after { content: "Heute"; margin-left: 12px; padding: 3px 10px; border-radius: 999px; background: #dcebd3; color: #3f5e2c; font-size: 13px; vertical-align: 2px; } .bk-karte-ort { display: grid; grid-template-rows: 1fr auto; overflow: hidden; } .bk-stadtplan { position: relative; height: 180px; background: #ece2d0; overflow: hidden; } .bk-strasse { position: absolute; background: var(--bk-papier); } .bk-strasse--a { left: -20px; right: -20px; top: 92px; height: 22px; transform: rotate(-6deg); } .bk-strasse--b { top: -20px; bottom: -20px; left: 300px; width: 18px; transform: rotate(14deg); } .bk-strasse--c { top: -20px; bottom: -20px; left: 520px; width: 12px; transform: rotate(-24deg); } .bk-park { position: absolute; left: 60px; top: 128px; width: 170px; height: 120px; border-radius: 40px; background: #cfdcb8; } .bk-nadel { position: absolute; left: 290px; top: 52px; width: 54px; height: 54px; border-radius: 50%; border: 4px solid var(--bk-papier); box-shadow: 0 10px 20px -8px rgb(60 30 5 / 0.5); } .bk-nadel .bk-logo__zeichen { width: 100%; height: 100%; } .bk-adresse { display: flex; flex-direction: column; gap: 4px; padding: 28px 40px 32px; font-size: 17px; color: var(--bk-tinte-leise); } .bk-adresse .bk-dach { margin-bottom: 8px; } .bk-adresse b { font-family: var(--bk-serif); font-size: 30px; font-weight: 400; color: var(--bk-tinte); } /* ── Fuß ─────────────────────────────────────────────────────────────── */ .bk-fuss { display: flex; align-items: center; justify-content: space-between; height: 150px; padding: 0 88px; background: var(--bk-tinte); color: #f3e6d0; } .bk-fuss__links { display: flex; gap: 32px; font-size: 15.5px; opacity: 0.8; }