/* ========================================================================= 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: 10 10 10; /* #0A0A0A */ --color-bg-surface: 20 19 19; /* #141313 */ --color-bg-elevated: 54 54 54; /* #363636 */ --color-bg-accent-soft: 71 71 71; /* #474747 */ --color-border: 53 52 52; /* #353434 */ --color-text-primary: 255 255 255; /* #FFFFFF */ --color-text-body: 229 226 225; /* #E5E2E1 */ --color-text-dim: 168 167 167; /* #A8A7A7 */ --color-text-mute: 95 94 94; /* #5F5E5E */ --color-accent: 232 23 93; /* #E8175D */ --color-accent-soft: 204 82 122; /* #CC527A */ --radius-card: 0px; --radius-pill: 0px; --radius-btn: 0px; --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(22px, 2.6vw, 36px); --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(96px, 14vw, 160px); --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 */ --color-bg-surface: 245 244 236; /* #F5F4EC */ --color-bg-elevated: 255 255 255; /* #FFFFFF */ --color-bg-accent-soft: 233 232 225; /* #E9E8E1 */ --color-border: 230 225 211; /* #E6E1D3 */ --color-text-primary: 25 25 25; /* #191919 */ --color-text-body: 27 28 23; /* #1B1C17 */ --color-text-dim: 68 71 72; /* #444748 */ --color-text-mute: 116 120 120; /* #747878 */ --color-accent: 232 23 93; /* #E8175D */ --color-accent-soft: 184 0 70; /* #B80046 */ --radius-card: 16px; --radius-pill: 9999px; --radius-btn: 8px; --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(80px, 10vw, 128px); --block-gap: clamp(40px, 6vw, 80px); } /* --- Global Reset & Base --------------------------------------------------- */ * { box-sizing: border-box; } html { scroll-behavior: smooth; -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 --------------------------------------------------- */ :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: 4px; } .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; } .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); } .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-accent)); } .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; } [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); font-family: var(--ff-body); font-size: 14px; letter-spacing: -0.01em; text-transform: none; font-weight: 500; } .nav-cta:hover { color: rgb(var(--color-text-primary)); } [data-theme="editorial"] .nav-cta:hover { background: rgb(var(--color-accent)); color: #fff; } /* 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; } 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; } } .monolith { position: absolute; right: -10%; top: 50%; transform: translateY(-50%); width: 70%; aspect-ratio: 3/4; background: linear-gradient(125deg, rgb(var(--color-bg-base)) 0%, rgb(var(--color-bg-base)) 35%, transparent 60%), linear-gradient(135deg, #1f1e1e 0%, #2a2929 40%, #0e0d0d 100%); box-shadow: inset 2px 0 0 rgb(var(--color-accent) / 0.35), inset -40px 0 120px rgb(var(--color-bg-base)); filter: contrast(1.1); } [data-theme="editorial"] .monolith { background: linear-gradient(125deg, rgb(var(--color-bg-base)) 0%, rgb(var(--color-bg-base)) 30%, transparent 60%), linear-gradient(150deg, #e9e6d8 0%, #d6d1c1 50%, #bfb9a8 100%); box-shadow: inset 0 0 0 1px rgb(var(--color-border)), inset -40px 0 80px rgb(var(--color-bg-base) / 0.6); border-top-left-radius: 96px; border-bottom-left-radius: 16px; filter: none; } /* Alternative Keyvisual-Varianten für Unterseiten */ .monolith--edge { right: -20%; width: 60%; aspect-ratio: 4/5; background: linear-gradient(95deg, rgb(var(--color-bg-base)) 0%, transparent 40%), linear-gradient(115deg, #252424 0%, #0a0a0a 70%); box-shadow: inset 3px 0 0 rgb(var(--color-accent) / 0.45), inset -80px 0 140px rgb(var(--color-bg-base)); } [data-theme="editorial"] .monolith--edge { background: linear-gradient(95deg, rgb(var(--color-bg-base)) 0%, transparent 40%), linear-gradient(135deg, #efece0 0%, #d9d3c1 60%, #c1baa6 100%); box-shadow: inset 0 0 0 1px rgb(var(--color-border)), inset -60px 0 100px rgb(var(--color-bg-base) / 0.7); border-radius: 64px 0 0 0; } .monolith--texture { right: -15%; top: 40%; width: 55%; aspect-ratio: 1/1; background: repeating-linear-gradient(135deg, #161515 0px, #161515 2px, #1e1d1d 2px, #1e1d1d 4px), #141313; mask-image: linear-gradient(135deg, transparent 0%, black 40%, black 70%, transparent 100%); -webkit-mask-image: linear-gradient(135deg, transparent 0%, black 40%, black 70%, transparent 100%); opacity: 0.6; } [data-theme="editorial"] .monolith--texture { background: repeating-linear-gradient(135deg, #eae6d9 0px, #eae6d9 2px, #e0dbca 2px, #e0dbca 4px), #efeee6; opacity: 0.9; border-radius: 24px; box-shadow: inset 0 0 0 1px rgb(var(--color-border)); mask-image: none; -webkit-mask-image: none; } /* --- Buttons / Links ------------------------------------------------------- */ .btn { display: inline-flex; align-items: center; gap: 12px; padding: 18px 28px; font-family: var(--ff-mono); font-size: var(--fs-meta); letter-spacing: var(--ls-meta); text-transform: uppercase; color: rgb(var(--color-text-primary)); background: rgb(var(--color-bg-elevated)); border: 0; border-radius: var(--radius-btn); cursor: pointer; transition: background-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast); } .btn:hover { background: rgb(var(--color-accent)); color: #fff; } [data-theme="editorial"] .btn { background: rgb(var(--color-text-primary)); color: rgb(var(--color-bg-base)); font-family: var(--ff-body); font-size: 15px; letter-spacing: -0.01em; text-transform: none; font-weight: 500; padding: 14px 22px; } [data-theme="editorial"] .btn:active { transform: translateY(1px); } .btn-ghost { background: transparent; border: 1px solid rgb(var(--color-border)); color: rgb(var(--color-text-primary)); } .btn-ghost:hover { background: transparent; border-color: rgb(var(--color-accent)); color: rgb(var(--color-accent)); } [data-theme="editorial"] .btn-ghost { background: transparent; color: rgb(var(--color-text-primary)); border: 1px solid rgb(var(--color-text-primary)); } [data-theme="editorial"] .btn-ghost:hover { background: rgb(var(--color-bg-surface)); 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-accent)); border-color: rgb(var(--color-accent)); } [data-theme="editorial"] .link-arrow { font-family: var(--ff-body); text-transform: none; letter-spacing: -0.01em; font-size: 15px; font-weight: 500; 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-radius: var(--radius-card); transition: background-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-medium); } .card:hover { background: rgb(var(--color-bg-accent-soft)); } [data-theme="editorial"] .card { background: rgb(var(--color-bg-elevated)); border: 1px solid rgb(var(--color-border)); box-shadow: 0 4px 20px rgb(0 0 0 / 0.04); } [data-theme="editorial"] .card:hover { transform: translateY(-2px); box-shadow: 0 12px 32px rgb(0 0 0 / 0.08); background: rgb(var(--color-bg-elevated)); } .card-accent-border { border-left: 4px solid rgb(var(--color-accent)); } [data-theme="editorial"] .card-accent-border { border-left: 0; border-top: 4px solid rgb(var(--color-accent)); } /* --- Quote block ----------------------------------------------------------- */ .quote-block { padding-block: var(--section-gap); text-align: center; background: rgb(var(--color-bg-base)); } [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-accent)); opacity: 0.35; 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; } /* Homepage: Monolithische Symptom-Liste (asymmetrisch) */ .symptoms-mono { display: block; } .symptoms-editorial { display: none; } [data-theme="editorial"] .symptoms-mono { display: none; } [data-theme="editorial"] .symptoms-editorial { display: grid; } .symptoms-editorial { grid-template-columns: repeat(1, minmax(0, 1fr)); gap: 24px; margin-top: 48px; } @media (min-width: 720px) { .symptoms-editorial { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (min-width: 1080px) { .symptoms-editorial { grid-template-columns: repeat(3, minmax(0, 1fr)); } } .sym-row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; margin-bottom: clamp(48px, 8vw, 96px); align-items: start; } /* 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 = Karten-Raster */ .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: grid; grid-template-columns: repeat(1, minmax(0, 1fr)); gap: 24px; } @media (min-width: 900px) { [data-theme="editorial"] .blog-list-editorial { grid-template-columns: repeat(6, minmax(0, 1fr)); } } .post-card { padding: 32px; background: rgb(var(--color-bg-elevated)); border: 1px solid rgb(var(--color-border)); border-radius: var(--radius-card); transition: box-shadow var(--transition-medium), transform var(--transition-fast); cursor: pointer; display: flex; flex-direction: column; } .post-card:hover { box-shadow: 0 12px 32px rgb(0 0 0 / 0.06); transform: translateY(-2px); } /* Featured-Post (editorial) */ .post-featured { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr; gap: 0; padding: 0; overflow: hidden; } @media (min-width: 900px) { .post-featured { grid-template-columns: 1fr 1fr; min-height: 360px; } } .post-featured-visual { background: linear-gradient(135deg, #e9e6d8 0%, #d6d1c1 50%, #bfb9a8 100%); min-height: 240px; position: relative; overflow: hidden; } .post-featured-visual::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 30% 30%, rgb(232 23 93 / 0.15) 0%, transparent 50%), repeating-linear-gradient(45deg, transparent 0 24px, rgb(0 0 0 / 0.04) 24px 25px); } .post-featured-body { padding: 32px; display: flex; flex-direction: column; justify-content: center; gap: 16px; border-left: 1px solid rgb(var(--color-border)); } @media (max-width: 899px) { .post-featured-body { border-left: 0; border-top: 1px solid rgb(var(--color-border)); } } .post-small { grid-column: span 6; } @media (min-width: 900px) { .post-small { grid-column: span 3; } } /* 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-accent)); } .post-row:hover .post-row-title { color: rgb(var(--color-accent)); } .post-row-title { transition: color var(--transition-fast); } /* 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-accent)); } .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; } .tag { display: inline-block; font-family: var(--ff-mono); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; padding: 6px 12px; border: 1px solid rgb(var(--color-border)); color: rgb(var(--color-text-dim)); border-radius: var(--radius-pill); } [data-theme="editorial"] .tag { background: rgb(var(--color-accent) / 0.08); color: rgb(var(--color-accent)); border-color: transparent; font-family: var(--ff-mono); letter-spacing: 0.05em; } /* Filter pills (Denken) */ .filter-row { display: flex; flex-wrap: wrap; gap: 16px; list-style: none; padding: 0 0 16px; margin: 0; border-bottom: 1px solid rgb(var(--color-border)); } [data-theme="editorial"] .filter-row { gap: 8px; border-bottom: 0; padding-bottom: 0; } .filter-btn { background: transparent; border: 0; cursor: pointer; padding: 0; font-family: var(--ff-mono); font-size: var(--fs-meta); letter-spacing: var(--ls-meta); text-transform: uppercase; color: rgb(var(--color-text-dim)); font-weight: 500; transition: color var(--transition-fast); } .filter-btn:hover { color: rgb(var(--color-text-primary)); } .filter-btn.is-active { color: rgb(var(--color-accent)); font-weight: 700; } [data-theme="editorial"] .filter-btn { padding: 8px 16px; border: 1px solid rgb(var(--color-border)); border-radius: var(--radius-pill); text-transform: none; letter-spacing: -0.005em; font-family: var(--ff-body); font-size: 13px; font-weight: 500; } [data-theme="editorial"] .filter-btn.is-active { background: rgb(var(--color-text-primary)); color: rgb(var(--color-bg-base)); border-color: rgb(var(--color-text-primary)); } /* 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: radial-gradient(ellipse at 30% 30%, rgb(0 0 0 / 0.08) 0%, transparent 60%), linear-gradient(135deg, #efece0 0%, #d9d3c1 60%, #c1baa6 100%); border-radius: var(--radius-card); position: relative; overflow: hidden; box-shadow: inset 0 0 0 1px rgb(var(--color-border)); } .split-visual::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(135deg, transparent 0 32px, rgb(0 0 0 / 0.03) 32px 33px); } [data-theme="monolith"] .split-visual { background: radial-gradient(ellipse at 30% 30%, rgb(232 23 93 / 0.15) 0%, transparent 60%), linear-gradient(135deg, #1c1b1b 0%, #0e0d0d 100%); box-shadow: inset 3px 0 0 rgb(var(--color-accent) / 0.4); border-radius: 0; } [data-theme="monolith"] .split-visual::after { background: repeating-linear-gradient(135deg, transparent 0 32px, rgb(255 255 255 / 0.04) 32px 33px); } /* --- 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: ""; } }