/* ========================================================================= markemacht.de — Dual Mode Stylesheet Wirkung: monolithisch · editorial ========================================================================= */ /* --- Theme Tokens --------------------------------------------------------- Farben werden als RGB-Triplets gehalten, damit Tailwind-artige rgb(var(... ) / ) Alpha-Modifier möglich sind. */ :root, [data-theme="monolith"] { --color-bg-base: 11 11 12; /* #0B0B0C Grundfläche (--bg) */ --color-bg-surface: 18 18 20; /* #121214 Karten/Container (--surface) */ --color-bg-elevated: 18 18 20; /* #121214 Karten (--surface) */ --color-bg-accent-soft: 38 38 43; /* #26262B Hover-Ton (= --line) */ --color-border: 38 38 43; /* #26262B Trennlinien/Rahmen (--line) */ --color-text-primary: 244 242 238; /* #F4F2EE Haupttext (--ink) */ --color-text-body: 230 228 224; /* #E6E4E0 */ --color-text-dim: 140 140 146; /* #8C8C92 Sekundärtext (--muted) */ --color-text-mute: 108 108 114; /* #6C6C72 */ --color-accent: 232 23 93; /* #E8175D Signal (--signal, unverändert) */ --color-accent-soft: 204 82 122; /* #CC527A */ /* Radius ist Wirkungs-Token (CHG-06): monolithisch durchgehend eckig. */ --radius: 0px; --radius-card: var(--radius); --radius-pill: var(--radius); --radius-btn: var(--radius); --ff-display: "Outfit", system-ui, sans-serif; --ff-editorial: "Newsreader", Georgia, serif; --ff-body: "Work Sans", system-ui, sans-serif; --ff-mono: "Space Grotesk", ui-monospace, monospace; --fs-hero: clamp(52px, 8vw, 96px); --fs-section: clamp(36px, 5vw, 56px); --fs-editorial: clamp(20px, 2.2vw, 30px); --fs-body: 18px; --fs-meta: 13px; --lh-hero: 1.05; --lh-section: 1.1; --lh-editorial: 1.3; --ls-hero: -0.02em; --ls-section: -0.01em; --ls-meta: 0.08em; --fw-display: 500; --fw-body: 400; --container-max: 1440px; --px-horizontal: clamp(24px, 8vw, 128px); --section-gap: clamp(64px, 8vw, 96px); --block-gap: clamp(48px, 8vw, 96px); --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1); --transition-medium: 300ms cubic-bezier(0.4, 0, 0.2, 1); --transition-reveal: 400ms cubic-bezier(0.22, 0.61, 0.36, 1); } [data-theme="editorial"] { --color-bg-base: 251 250 242; /* #FBFAF2 Grundfläche (Creme) */ --color-bg-surface: 245 244 236; /* #F5F4EC Platzhalter-/Slot-Ton */ --color-bg-elevated: 255 255 255; /* #FFFFFF Karten (--surface) */ --color-bg-accent-soft: 233 232 225; /* #E9E8E1 */ --color-border: 231 228 221; /* #E7E4DD Trennlinien/Rahmen (--line) */ --color-text-primary: 25 25 25; /* #191919 Haupttext (--ink) */ --color-text-body: 27 28 23; /* #1B1C17 */ --color-text-dim: 68 71 72; /* #444748 */ --color-text-mute: 116 120 120; /* #747878 Sekundärtext (--muted) */ --color-accent: 232 23 93; /* #E8175D Signal (--signal, unverändert) */ --color-accent-soft: 184 0 70; /* #B80046 */ /* Radius ist Wirkungs-Token (CHG-06): editorial durchgehend gleich leicht gerundet. Ein Wert auf alle Elemente — kein gemischter Radius. */ --radius: 8px; --radius-card: var(--radius); --radius-pill: var(--radius); --radius-btn: var(--radius); --ff-display: "Plus Jakarta Sans", system-ui, sans-serif; --ff-editorial: "Noto Serif", Georgia, serif; --ff-body: "Plus Jakarta Sans", system-ui, sans-serif; --ff-mono: "Space Grotesk", ui-monospace, monospace; --fs-hero: clamp(40px, 5.6vw, 72px); --fs-section: clamp(28px, 3.6vw, 44px); --fs-editorial: clamp(20px, 1.8vw, 24px); --fs-body: 16px; --fs-meta: 13px; --lh-hero: 1.08; --lh-section: 1.15; --lh-editorial: 1.65; --ls-hero: -0.02em; --ls-section: -0.01em; --ls-meta: 0.05em; --fw-display: 600; --fw-body: 400; --container-max: 1280px; --px-horizontal: clamp(24px, 5vw, 64px); --section-gap: clamp(64px, 8vw, 96px); --block-gap: clamp(40px, 6vw, 80px); } /* --- Global Reset & Base --------------------------------------------------- */ * { box-sizing: border-box; } html { scroll-behavior: smooth; scroll-padding-top: 96px; -webkit-text-size-adjust: 100%; } body { margin: 0; background: rgb(var(--color-bg-base)); color: rgb(var(--color-text-body)); font-family: var(--ff-body); font-size: var(--fs-body); line-height: 1.6; font-weight: var(--fw-body); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; transition: background-color var(--transition-medium), color var(--transition-medium); } /* Globale Theme-Transition für Farbwechsel */ body, body * { transition: background-color var(--transition-medium), color var(--transition-medium), border-color var(--transition-medium), box-shadow var(--transition-medium); } ::selection { background: rgb(var(--color-accent)); color: #fff; } a { color: inherit; text-decoration: none; } img, svg { max-width: 100%; display: block; } /* --- A11y: Fokus-States --------------------------------------------------- */ .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; } .visually-hidden:focus, .visually-hidden:focus-visible { position: fixed; top: 16px; left: 16px; z-index: 100; width: auto; height: auto; padding: 10px 14px; margin: 0; clip: auto; background: rgb(var(--color-bg-base)); color: rgb(var(--color-text-primary)); border: 1px solid rgb(var(--color-border)); white-space: normal; } :focus { outline: none; } :focus-visible { outline: 2px solid rgb(var(--color-accent)); outline-offset: 3px; border-radius: 2px; } [data-theme="editorial"] :focus-visible { outline-offset: 4px; border-radius: 2px; } .material-symbols-outlined { font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; } /* --- Typography Classes ---------------------------------------------------- */ .hero-headline { font-family: var(--ff-display); font-size: var(--fs-hero); line-height: var(--lh-hero); letter-spacing: var(--ls-hero); font-weight: var(--fw-display); color: rgb(var(--color-text-primary)); margin: 0; } .section-headline { font-family: var(--ff-display); font-size: var(--fs-section); line-height: var(--lh-section); letter-spacing: var(--ls-section); font-weight: var(--fw-display); color: rgb(var(--color-text-primary)); margin: 0; } .sub-headline { font-family: var(--ff-display); font-size: clamp(22px, 2.4vw, 32px); line-height: 1.2; font-weight: var(--fw-display); color: rgb(var(--color-text-primary)); margin: 0; } .editorial { font-family: var(--ff-editorial); font-size: var(--fs-editorial); line-height: var(--lh-editorial); font-weight: 400; color: rgb(var(--color-text-body)); margin: 0; } .body-text { font-family: var(--ff-body); font-size: var(--fs-body); line-height: 1.6; color: rgb(var(--color-text-dim)); margin: 0; } /* Serif-Kommentar (Denk-Stimme): eingerückt, mit 2px-Magenta-Strich als Signal, das den Absatz als Kommentar/Annotation kenntlich macht (Magenta = Linie ≤2px). */ .comment { padding-left: clamp(20px, 2.5vw, 32px); border-left: 2px solid rgb(var(--color-accent)); } /* Sans-Lead (gebaute Stimme) — Intro/Punchline ohne Serife (CHG-05). */ .lead { font-family: var(--ff-body); font-size: var(--fs-editorial); line-height: 1.45; font-weight: 400; color: rgb(var(--color-text-body)); margin: 0; } .meta { font-family: var(--ff-mono); font-size: var(--fs-meta); letter-spacing: var(--ls-meta); text-transform: uppercase; font-weight: 500; color: rgb(var(--color-text-dim)); line-height: 1; } .accent { color: rgb(var(--color-accent)); } .dim { color: rgb(var(--color-text-dim)); } .mute { color: rgb(var(--color-text-mute)); } /* --- Layout ---------------------------------------------------------------- */ .shell { max-width: var(--container-max); margin-inline: auto; padding-inline: var(--px-horizontal); } .grid-12 { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; } .section { padding-block: var(--section-gap); border-top: 1px solid rgb(var(--color-border)); } .section-tight { padding-block: var(--block-gap); } .section-border-top { border-top: 1px solid rgb(var(--color-border)); } /* Column utilities (ersetzen inline styles) Wichtig: nur grid-column-end setzen, damit sich span + col-start-X kombinieren lassen (grid-column Shorthand würde start auf "span N" setzen und end auf auto — das bricht Kombinationen mit col-start). */ .col-1 { grid-column-end: span 1; } .col-2 { grid-column-end: span 2; } .col-3 { grid-column-end: span 3; } .col-4 { grid-column-end: span 4; } .col-5 { grid-column-end: span 5; } .col-6 { grid-column-end: span 6; } .col-7 { grid-column-end: span 7; } .col-8 { grid-column-end: span 8; } .col-9 { grid-column-end: span 9; } .col-10 { grid-column-end: span 10; } .col-11 { grid-column-end: span 11; } .col-12 { grid-column-end: span 12; } @media (min-width: 900px) { .md\:col-1 { grid-column-end: span 1; } .md\:col-2 { grid-column-end: span 2; } .md\:col-3 { grid-column-end: span 3; } .md\:col-4 { grid-column-end: span 4; } .md\:col-5 { grid-column-end: span 5; } .md\:col-6 { grid-column-end: span 6; } .md\:col-7 { grid-column-end: span 7; } .md\:col-8 { grid-column-end: span 8; } .md\:col-9 { grid-column-end: span 9; } .md\:col-10 { grid-column-end: span 10; } .md\:col-11 { grid-column-end: span 11; } .md\:col-12 { grid-column-end: span 12; } .md\:col-start-1 { grid-column-start: 1; } .md\:col-start-2 { grid-column-start: 2; } .md\:col-start-3 { grid-column-start: 3; } .md\:col-start-4 { grid-column-start: 4; } .md\:col-start-5 { grid-column-start: 5; } .md\:col-start-6 { grid-column-start: 6; } .md\:col-start-7 { grid-column-start: 7; } .md\:col-start-8 { grid-column-start: 8; } .md\:col-start-9 { grid-column-start: 9; } } /* Auf Mobile muss ein md:col-start-X zurückgesetzt werden, sonst erzwingt der Start eine leere Spalte links. */ @media (max-width: 899px) { [class*="md\:col-start-"] { grid-column-start: auto; } } /* --- Navigation ------------------------------------------------------------ */ .nav { position: sticky; top: 0; z-index: 50; background: rgb(var(--color-bg-base)); border-bottom: 1px solid transparent; transition: background-color var(--transition-medium), border-color var(--transition-medium); } [data-theme="editorial"] .nav { border-bottom-color: rgb(var(--color-border)); backdrop-filter: saturate(1.2); } .nav-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; max-width: var(--container-max); margin-inline: auto; padding: 24px var(--px-horizontal); } .nav-brand { font-family: var(--ff-display); font-weight: 800; letter-spacing: 0.18em; font-size: 15px; color: rgb(var(--color-text-primary)); text-transform: uppercase; white-space: nowrap; } [data-theme="editorial"] .nav-brand { letter-spacing: -0.01em; font-weight: 700; font-size: 18px; text-transform: none; } .nav-links { display: none; gap: 40px; align-items: center; } @media (min-width: 1100px) { .nav-links { display: flex; } } .nav-link { font-family: var(--ff-display); font-size: 13px; letter-spacing: 0.02em; color: rgb(var(--color-text-mute)); font-weight: 500; text-transform: uppercase; transition: color var(--transition-fast); } [data-theme="editorial"] .nav-link { font-size: 14px; letter-spacing: -0.01em; color: rgb(var(--color-text-primary) / 0.75); text-transform: none; font-weight: 500; } .nav-link:hover { color: rgb(var(--color-text-primary)); } .nav-link.is-active { color: rgb(var(--color-accent)); font-weight: 700; } [data-theme="editorial"] .nav-link.is-active { color: rgb(var(--color-accent)); border-bottom: 2px solid rgb(var(--color-accent)); padding-bottom: 2px; } .nav-cta { font-family: var(--ff-mono); font-size: 13px; letter-spacing: var(--ls-meta); text-transform: uppercase; color: rgb(var(--color-accent)); transition: color var(--transition-fast); white-space: nowrap; background: rgb(var(--color-text-primary)); color: rgb(var(--color-accent)); padding: 10px 16px; } [data-theme="editorial"] .nav-cta { background: rgb(var(--color-text-primary)); color: rgb(var(--color-bg-base)); padding: 10px 16px; border-radius: var(--radius-btn); } .nav-cta:hover { color: rgb(var(--color-bg-base)); background: rgb(var(--color-accent)); } [data-theme="editorial"] .nav-cta:hover { background: rgb(var(--color-accent)); color: rgb(var(--color-text-primary)); } /* Desktop zeigt CTA ab 1100px */ .nav-cta { display: none; } @media (min-width: 1100px) { .nav-cta { display: inline-flex; align-items: center; } } /* --- Wirkung Switch -------------------------------------------------------- */ .wirkung-switch { display: none; align-items: center; gap: 10px; font-family: var(--ff-mono); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: rgb(var(--color-text-dim)); padding: 8px 12px; border: 1px solid rgb(var(--color-border)); border-radius: var(--radius-pill); background: transparent; } @media (min-width: 760px) { .wirkung-switch { display: inline-flex; } } [data-theme="editorial"] .wirkung-switch { border-color: rgb(var(--color-border)); background: rgb(var(--color-bg-elevated)); } .wirkung-label { color: rgb(var(--color-text-mute)); } .wirkung-option { cursor: pointer; background: transparent; border: 0; font: inherit; color: inherit; padding: 4px 10px; border-radius: var(--radius-pill); letter-spacing: 0.04em; transition: color var(--transition-fast), background-color var(--transition-fast); } .wirkung-option:hover { color: rgb(var(--color-text-primary)); } .wirkung-option[aria-pressed="true"] { color: rgb(var(--color-text-primary)); background: rgb(var(--color-bg-accent-soft)); } [data-theme="editorial"] .wirkung-option[aria-pressed="true"] { background: rgb(var(--color-text-primary)); color: rgb(var(--color-bg-base)); } .wirkung-sep { color: rgb(var(--color-text-mute)); user-select: none; } /* Mobile menu button */ .menu-btn { display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 0; color: rgb(var(--color-text-primary)); cursor: pointer; padding: 8px; } @media (min-width: 1100px) { .menu-btn { display: none; } } /* Mobile-Drawer */ .mobile-drawer { position: fixed; inset: 0; z-index: 60; background: rgb(var(--color-bg-base) / 0.96); backdrop-filter: blur(8px); display: flex; flex-direction: column; padding: 24px var(--px-horizontal) 48px; transform: translateY(-100%); opacity: 0; pointer-events: none; transition: transform var(--transition-medium), opacity var(--transition-medium); visibility: hidden; } .mobile-drawer.is-open { transform: translateY(0); opacity: 1; pointer-events: auto; visibility: visible; } .mobile-drawer-head { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 64px; } .mobile-drawer-links { display: flex; flex-direction: column; gap: 32px; } .mobile-drawer-link { font-family: var(--ff-display); font-size: clamp(32px, 8vw, 48px); font-weight: 500; color: rgb(var(--color-text-primary)); line-height: 1; letter-spacing: -0.01em; } .mobile-drawer-link.is-active { color: rgb(var(--color-accent)); } .mobile-drawer-footer { margin-top: auto; display: flex; flex-direction: column; gap: 24px; padding-top: 32px; border-top: 1px solid rgb(var(--color-border)); } .mobile-drawer .wirkung-switch { display: inline-flex; align-self: flex-start; } .mobile-drawer-cta { display: inline-flex !important; align-items: center; align-self: flex-start; width: fit-content; } body.drawer-open { overflow: hidden; } /* --- Hero ------------------------------------------------------------------ */ .hero { position: relative; padding-top: clamp(48px, 10vw, 120px); padding-bottom: var(--section-gap); overflow: hidden; } .hero-grid { position: relative; z-index: 2; } .hero-keyvisual { position: absolute; inset: 0 0 0 auto; width: 50%; z-index: 1; pointer-events: none; display: none; } @media (min-width: 900px) { .hero-keyvisual { display: block; } } /* Hero-Bild-Slot (CHG-08): randständig, angeschnitten, harte Kante, flacher Flächenton als Platzhalter — kein Verlauf, kein Glow. */ .monolith { position: absolute; right: -6%; top: 50%; transform: translateY(-50%); width: 70%; aspect-ratio: 3/4; background: rgb(var(--color-bg-surface)); border: 1px solid rgb(var(--color-border)); border-radius: var(--radius); } /* Alternative Keyvisual-Slots für Unterseiten — ebenfalls flach */ .monolith--edge { right: -20%; width: 60%; aspect-ratio: 4/5; background: rgb(var(--color-bg-surface)); border: 1px solid rgb(var(--color-border)); border-radius: var(--radius); } .monolith--texture { right: -15%; top: 40%; width: 55%; aspect-ratio: 1/1; background: rgb(var(--color-bg-surface)); border: 1px solid rgb(var(--color-border)); border-radius: var(--radius); } /* --- Buttons / Links ------------------------------------------------------- */ /* Primärbutton ist invertiert zur Grundfläche und kippt über Tokens je Wirkung: monolithisch = heller Button auf Dunkel, editorial = dunkler Button auf Hell. 1px-Rahmen in Flächenfarbe, damit solid + ghost exakt gleich hoch sind. */ .btn { display: inline-flex; align-items: center; gap: 12px; padding: 14px 22px; font-family: var(--ff-mono); font-size: var(--fs-meta); letter-spacing: var(--ls-meta); text-transform: uppercase; color: rgb(var(--color-bg-base)); background: rgb(var(--color-text-primary)); border: 1px solid rgb(var(--color-text-primary)); border-radius: var(--radius-btn); cursor: pointer; transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast); } /* Hover deutlich spürbar: monolithisch weiß -> gräulich, editorial dunkel -> heller. */ .btn:hover { background: rgb(var(--color-text-dim)); border-color: rgb(var(--color-text-dim)); color: rgb(var(--color-bg-base)); } [data-theme="editorial"] .btn:hover { background: rgb(var(--color-text-mute)); border-color: rgb(var(--color-text-mute)); color: rgb(var(--color-bg-base)); } .btn:active { transform: translateY(1px); } .btn-ghost { background: transparent; color: rgb(var(--color-text-primary)); border: 1px solid rgb(var(--color-text-primary)); } .btn-ghost:hover { background: rgb(var(--color-bg-accent-soft)); color: rgb(var(--color-text-primary)); border-color: rgb(var(--color-text-primary)); } .btn-row { display: flex; flex-wrap: wrap; gap: 16px; } .link-arrow { display: inline-flex; align-items: center; gap: 12px; color: rgb(var(--color-text-primary)); border-bottom: 1px solid rgb(var(--color-border)); padding-bottom: 6px; font-family: var(--ff-mono); font-size: var(--fs-meta); letter-spacing: var(--ls-meta); text-transform: uppercase; transition: color var(--transition-fast), border-color var(--transition-fast); background: transparent; border-top: 0; border-left: 0; border-right: 0; cursor: pointer; } .link-arrow:hover { color: rgb(var(--color-text-primary)); border-color: rgb(var(--color-text-primary)); } [data-theme="editorial"] .link-arrow { border-bottom-color: rgb(var(--color-text-primary)); } /* --- Section number ------------------------------------------------------- */ .section-num { font-family: var(--ff-mono); font-size: var(--fs-meta); letter-spacing: var(--ls-meta); text-transform: uppercase; color: rgb(var(--color-text-dim)); } /* --- Cards ----------------------------------------------------------------- */ .card { background: rgb(var(--color-bg-elevated)); padding: clamp(24px, 3vw, 48px); border: 1px solid rgb(var(--color-border)); border-radius: var(--radius); transition: background-color var(--transition-fast), border-color var(--transition-fast); } .card:hover { background: rgb(var(--color-bg-accent-soft)); border-color: rgb(var(--color-text-mute)); } [data-theme="editorial"] .card:hover { background: rgb(var(--color-bg-elevated)); border-color: rgb(var(--color-text-mute)); } /* CHG-04: diagnostische Kante ausschließlich an der zugespitzten Karte (03) */ .card-accent-border { border-top: 2px solid rgb(var(--color-accent)); } /* --- Quote block ----------------------------------------------------------- */ .quote-block { padding-block: var(--section-gap); text-align: center; background: rgb(var(--color-bg-base)); border-top: 1px solid rgb(var(--color-border)); } [data-theme="editorial"] .quote-block { background: rgb(var(--color-bg-surface)); padding-inline: 24px; } .quote-wrap { max-width: 1000px; margin-inline: auto; position: relative; } .quote-mark { display: none; } [data-theme="editorial"] .quote-mark { display: block; font-family: var(--ff-editorial); font-size: clamp(80px, 12vw, 160px); line-height: 0.7; color: rgb(var(--color-text-mute)); opacity: 0.4; margin-bottom: 12px; user-select: none; } .quote { font-family: var(--ff-editorial); font-size: clamp(32px, 5.2vw, 72px); line-height: 1.1; font-weight: 300; letter-spacing: -0.01em; color: rgb(var(--color-text-primary)); margin: 0; } [data-theme="editorial"] .quote { font-size: clamp(28px, 3.8vw, 48px); font-weight: 400; line-height: 1.3; letter-spacing: -0.005em; font-style: italic; } .quote-dim { color: rgb(var(--color-text-dim)); font-style: normal; } [data-theme="editorial"] .quote-dim { color: rgb(var(--color-text-primary)); opacity: 0.55; } /* --- Theme-specific structural overrides ---------------------------------- */ .only-mono { display: block; } .only-editorial { display: none; } [data-theme="editorial"] .only-mono { display: none; } [data-theme="editorial"] .only-editorial { display: block; } /* CHG-03: Invariant über beide Wirkungen ist der Inhalt — Reihenfolge 01 → 02 → 03, gleiche Gewichtung (gleiche Kartenbreite), Magenta-Kante auf Karte 03. Die Anordnung ist Ausdruck und variiert bewusst je Wirkung (R6, Dok. 010): monolithisch = rasterbasierter Versatz, editorial = geordnete Reihe. Gleiches DOM, nur Grid-Platzierung unterscheidet sich. */ .symptoms { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; row-gap: 24px; margin-top: 48px; } .symptoms .card { grid-column: 1 / -1; } @media (min-width: 720px) { /* Editorial: geordnete 3er-Reihe, gleiche Breite (je 4 Spalten) */ [data-theme="editorial"] .symptoms .card { grid-column: span 4; } /* Monolithisch: gleiche Kartenbreite (je 8 Spalten), konsequenter Versatz- Schritt von +2 Spalten, an der linken Baseline verankert — konstruiert, nicht zufällig. Karten stapeln durch den Spalten-Konflikt automatisch. */ [data-theme="monolith"] .symptoms { row-gap: clamp(32px, 5vw, 64px); } [data-theme="monolith"] .symptoms .card:nth-child(1) { grid-column: 1 / span 8; } [data-theme="monolith"] .symptoms .card:nth-child(2) { grid-column: 3 / span 8; } [data-theme="monolith"] .symptoms .card:nth-child(3) { grid-column: 5 / span 8; } } /* Manifest [02]: gleiche Logik wie Startseite [01] Diagnose, auf 4 Karten übertragen. Invariant = Inhalt/Reihenfolge 01→04 + Magenta-Kante auf der letzten Karte. Anordnung variiert je Wirkung (R6). */ .manifest-cards { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; row-gap: 24px; } .manifest-cards .card { grid-column: 1 / -1; } @media (min-width: 720px) { /* Editorial: geordnetes 2x2-Raster, gleiche Breite (je 6 Spalten) */ [data-theme="editorial"] .manifest-cards .card { grid-column: span 6; } /* Monolithisch: rasterbasierte Treppe — gleicher Versatz-Schritt (+2 Spalten) wie auf der Startseite, an der linken Baseline verankert, letzte Karte an der rechten Kante. Schmaler (je 6 Spalten), damit alle 4 Stufen passen. */ [data-theme="monolith"] .manifest-cards { row-gap: clamp(32px, 5vw, 64px); } [data-theme="monolith"] .manifest-cards .card:nth-child(1) { grid-column: 1 / span 6; } [data-theme="monolith"] .manifest-cards .card:nth-child(2) { grid-column: 3 / span 6; } [data-theme="monolith"] .manifest-cards .card:nth-child(3) { grid-column: 5 / span 6; } [data-theme="monolith"] .manifest-cards .card:nth-child(4) { grid-column: 7 / span 6; } } .signal-quote { margin: 0; max-width: 36ch; color: rgb(var(--color-text-primary)); } /* DNA list (Methode) */ .dna-item { transition: background var(--transition-fast); } [data-theme="editorial"] .dna-item { background: rgb(var(--color-bg-elevated)); border: 1px solid rgb(var(--color-border)); border-radius: var(--radius-card); margin-bottom: 16px; } /* Blog: monolith = Langform-Liste, editorial = volle Breite als Karten. Kein Bildmaterial → keine Featured-/Raster-Logik; editorial spiegelt den monolithischen Zeilen-Aufbau, bleibt aber in Karten. */ .blog-list-mono { display: flex; flex-direction: column; gap: clamp(48px, 8vw, 96px); } .blog-list-editorial { display: none; } [data-theme="editorial"] .blog-list-mono { display: none; } [data-theme="editorial"] .blog-list-editorial { display: flex; flex-direction: column; gap: 24px; } .post-card { padding: 32px; background: rgb(var(--color-bg-elevated)); border: 1px solid rgb(var(--color-border)); border-radius: var(--radius); transition: border-color var(--transition-fast); cursor: pointer; display: flex; flex-direction: column; } .post-card:hover { border-color: rgb(var(--color-text-mute)); } /* Volle-Breite-Karte (editorial): gleicher Spalten-Aufbau wie .post-row */ .post-card--row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: start; padding: clamp(24px, 3vw, 48px); } .post-card--row:hover .post-row-title { color: rgb(var(--color-text-primary)); } /* Bloglisten-Unterscheidung: Monolith = sehr lesbare Zeile */ .post-row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: start; border-top: 1px solid rgb(var(--color-border)); padding-top: 48px; cursor: pointer; transition: border-color var(--transition-fast); } .post-row:hover { border-color: rgb(var(--color-text-mute)); } .post-row:hover .post-row-title { color: rgb(var(--color-text-primary)); } .post-row-title { transition: color var(--transition-fast); } /* Ganze Beitrags-Kachel klickbar (Stretched-Link), barrierearm: Linktext bleibt der Titel, ::after deckt die Karte/Zeile ab. */ .post-row, .post-card--row { position: relative; } .post-title-link { color: inherit; text-decoration: none; } .post-title-link::after { content: ""; position: absolute; inset: 0; } /* --- Essay / Beitrags-Detail (Denken) ------------------------------------ Schrift-Regel: auf Denken ist der Essay-Body die denkende Stimme = Serife. */ .article-head { padding-top: clamp(40px, 8vw, 96px); padding-bottom: clamp(32px, 6vw, 64px); } .article-meta { display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: center; } .prose { max-width: 680px; } /* Flow-Abstand zentral steuern: erst alle Margins resetten, dann Geschwister trennen. Reihenfolge/Spezifität so, dass der Abstand zuverlässig greift. */ .prose > * { margin: 0; } .prose > * + * { margin-top: 1.9em; } .prose p { font-family: var(--ff-editorial); font-size: clamp(18px, 1.3vw, 20px); line-height: 1.8; color: rgb(var(--color-text-body)); } .prose .prose-lead { font-size: clamp(20px, 1.7vw, 24px); line-height: 1.6; color: rgb(var(--color-text-primary)); } .prose h2 { font-family: var(--ff-display); font-weight: var(--fw-display); font-size: clamp(22px, 2.4vw, 30px); line-height: 1.2; letter-spacing: -0.01em; color: rgb(var(--color-text-primary)); margin-top: 2.4em; } /* Pull-Quote = erhobene Aussage: Serife + 2px-Magenta-Signal-Linie. */ .prose blockquote { margin-top: 2.2em; padding-left: clamp(20px, 2.5vw, 32px); border-left: 2px solid rgb(var(--color-accent)); font-family: var(--ff-editorial); font-size: clamp(22px, 2vw, 28px); line-height: 1.4; color: rgb(var(--color-text-primary)); } .prose strong { font-weight: 600; color: rgb(var(--color-text-primary)); } /* Footer ------------------------------------------------------------------- */ .site-footer { border-top: 1px solid rgb(var(--color-border)); padding-block: 48px; background: rgb(var(--color-bg-base)); } .footer-inner { display: grid; grid-template-columns: 1fr; gap: 24px; max-width: var(--container-max); margin-inline: auto; padding-inline: var(--px-horizontal); align-items: center; } @media (min-width: 720px) { .footer-inner { grid-template-columns: 1fr auto; } } .footer-meta { display: flex; flex-direction: column; gap: 6px; } .footer-links { display: flex; flex-wrap: wrap; gap: 20px; justify-content: flex-start; } @media (min-width: 720px) { .footer-links { justify-content: flex-end; } } .footer-copy, .footer-link, .footer-note { font-family: var(--ff-mono); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: rgb(var(--color-text-mute)); line-height: 1.4; } [data-theme="editorial"] .footer-copy, [data-theme="editorial"] .footer-link, [data-theme="editorial"] .footer-note { font-family: var(--ff-body); text-transform: none; letter-spacing: -0.005em; font-size: 13px; } .footer-link:hover { color: rgb(var(--color-text-primary)); } .footer-note { opacity: 0.8; } /* --- Utilities ------------------------------------------------------------- */ .stack-8 > * + * { margin-top: 8px; } .stack-16 > * + * { margin-top: 16px; } .stack-24 > * + * { margin-top: 24px; } .stack-32 > * + * { margin-top: 32px; } .stack-48 > * + * { margin-top: 48px; } .stack-64 > * + * { margin-top: 64px; } .flex-col { display: flex; flex-direction: column; } .items-center { align-items: center; } .items-start { align-items: flex-start; } .items-end { align-items: flex-end; } .text-center { text-align: center; } .divider { border: 0; border-top: 1px solid rgb(var(--color-border)); margin: 0; } .max-prose { max-width: 680px; } .max-wide { max-width: 900px; } /* CHG-01: Label als reiner Mono-Signal-Text, keine gefüllte Fläche */ .tag { display: inline-block; font-family: var(--ff-mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 500; color: rgb(var(--color-accent)); padding: 0; border: 0; background: transparent; border-radius: 0; } /* Editorial Split (Methode: Theorie → Praxis) */ .split { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: center; } @media (min-width: 900px) { .split { grid-template-columns: 5fr 6fr; gap: 64px; } } .split-visual { aspect-ratio: 4/3; background: rgb(var(--color-bg-surface)); border: 1px solid rgb(var(--color-border)); border-radius: var(--radius); position: relative; overflow: hidden; } /* --- Scroll-Reveal -------------------------------------------------------- */ [data-reveal] { opacity: 0; transform: translateY(16px); transition: opacity var(--transition-reveal), transform var(--transition-reveal); } [data-reveal].is-revealed { opacity: 1; transform: translateY(0); } /* Reduced motion */ @media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } [data-reveal] { opacity: 1; transform: none; } html { scroll-behavior: auto; } } /* --- Print ----------------------------------------------------------------- */ @media print { :root, [data-theme="monolith"], [data-theme="editorial"] { --color-bg-base: 255 255 255; --color-bg-surface: 255 255 255; --color-bg-elevated: 255 255 255; --color-bg-accent-soft: 255 255 255; --color-border: 200 200 200; --color-text-primary: 0 0 0; --color-text-body: 20 20 20; --color-text-dim: 80 80 80; --color-text-mute: 120 120 120; --color-accent: 20 20 20; } .nav, .site-footer, .hero-keyvisual, .mobile-drawer, .wirkung-switch, .menu-btn, .nav-cta, .btn, .link-arrow { display: none !important; } body { background: #fff; color: #000; font-family: Georgia, "Noto Serif", serif; } .section, .section-tight, .hero, .quote-block { padding-block: 24px; } .shell { max-width: 680px; padding-inline: 0; } h1, h2, h3, .hero-headline, .section-headline, .sub-headline { font-family: Georgia, "Noto Serif", serif; color: #000; } .card, .post-card, .dna-item { border: 1px solid #ccc !important; background: #fff !important; box-shadow: none !important; break-inside: avoid; padding: 16px; margin-bottom: 16px; } [data-reveal] { opacity: 1 !important; transform: none !important; } a::after { content: " (" attr(href) ")"; font-size: 0.8em; color: #666; } a[href^="#"]::after, a[href^="/"]::after { content: ""; } }