/* ============================================================
   omnino.cc — High-End-Layer (ergänzt tokens.css + base.css)
   Custom Cursor · Wort-Stagger · Parallax · Marquee · 3D-Tilt ·
   Spotlight-Karten · Scroll-Progress · Bildsprache der Marke
   ============================================================ */

::selection { background: var(--om-accent); color: var(--om-on-accent); }
html { scrollbar-color: var(--om-line) var(--om-bg); }

/* Filmkorn über allem — gibt Tiefe, kostet nichts */
body::after {
  content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 90;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  opacity: 0.03;
}

/* Scroll-Progress */
.progress { position: fixed; top: 0; left: 0; height: 2px; width: 0; z-index: 100; background: var(--om-accent); box-shadow: 0 0 12px var(--om-accent); }

/* Custom Cursor (nur bei Maus) */
@media (pointer: fine) {
  .cur-dot, .cur-ring { position: fixed; top: 0; left: 0; pointer-events: none; z-index: 120; border-radius: 50%; transform: translate(-50%, -50%); }
  .cur-dot { width: 7px; height: 7px; background: var(--om-accent); }
  .cur-ring { width: 34px; height: 34px; border: 1.5px solid color-mix(in srgb, var(--om-accent) 55%, transparent); transition: width 200ms var(--om-ease), height 200ms var(--om-ease), border-color 200ms; }
  body.cur-hover .cur-ring { width: 54px; height: 54px; border-color: var(--om-accent); }
}

/* ---- Hero ---- */
.hero-grid { display: grid; grid-template-columns: 1.04fr 0.96fr; gap: clamp(2rem, 4vw, 4rem); align-items: center; }
@media (max-width: 960px) { .hero-grid { grid-template-columns: 1fr; } }

/* Wort-für-Wort-Reveal */
[data-split] .w { display: inline-block; overflow: hidden; vertical-align: bottom; }
[data-split] .w > span { display: inline-block; transform: translateY(110%); transition: transform 700ms var(--om-ease); transition-delay: calc(var(--i) * 70ms); }
[data-split].in .w > span { transform: none; }

/* Hero-Titel: Proportionen wie am alten Wix-Auftritt */
.hero-grid .hero-title { font-size: clamp(2.4rem, 1.1rem + 4.6vw, 4.5rem); }

.hero-media { position: relative; }
.hero-media .frame {
  position: relative; border-radius: var(--om-radius-lg); overflow: hidden;
  border: 1px solid var(--om-line);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5);
}
.hero-media .frame img { width: 100%; height: auto; display: block; will-change: transform, filter; animation: tree-flicker 5s infinite step-end; }
.hero-media .frame::after {
  content: ''; position: absolute; inset: 0; z-index: 3;
  background: linear-gradient(160deg, transparent 55%, rgba(14, 14, 17, 0.55) 100%);
  pointer-events: none;
}

/* „Flackernder Baum" — Video-Gefühl aus dem Wix-Original, nachgebaut in CSS */
@keyframes tree-flicker {
  0%, 100% { filter: none; opacity: 1; }
  6%   { filter: hue-rotate(18deg) saturate(1.5) contrast(1.15); }
  6.6% { filter: none; }
  13%  { opacity: 0.82; }
  13.4%{ opacity: 1; }
  27%  { filter: hue-rotate(-24deg) saturate(1.6); }
  27.7%{ filter: none; }
  41%  { filter: contrast(1.3) brightness(1.12); opacity: 0.9; }
  41.5%{ filter: none; opacity: 1; }
  58%  { filter: hue-rotate(40deg); }
  58.4%{ filter: none; }
  74%  { opacity: 0.85; filter: saturate(1.8); }
  74.6%{ opacity: 1; filter: none; }
  88%  { filter: contrast(1.2) hue-rotate(-12deg); }
  88.5%{ filter: none; }
}
/* Glitch-Slices: versetzte Bildstreifen, die kurz aufblitzen */
.glitch-layer {
  position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background-size: cover; background-position: center;
  opacity: 0; mix-blend-mode: screen;
  animation: slice-jump 5s infinite step-end;
}
@keyframes slice-jump {
  0%, 100% { opacity: 0; }
  12%  { opacity: 0.85; clip-path: inset(12% 0 74% 0); transform: translateX(-14px); }
  12.6%{ opacity: 0; }
  38%  { opacity: 0.8;  clip-path: inset(58% 0 22% 0); transform: translateX(12px); }
  38.5%{ opacity: 0; }
  63%  { opacity: 0.9;  clip-path: inset(34% 0 48% 0); transform: translateX(-9px); }
  63.4%{ opacity: 0; }
  86%  { opacity: 0.75; clip-path: inset(70% 0 8% 0); transform: translateX(16px); }
  86.6%{ opacity: 0; }
}
/* Scanlines über dem „Video" */
.scanlines {
  position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background: repeating-linear-gradient(180deg, rgba(0, 0, 0, 0.14) 0 1px, transparent 1px 3px);
  opacity: 0.5;
}
/* Floating-Card mit Smiley — „Kreativ übrigens auch." */
.float-card {
  position: absolute; left: -1.6rem; bottom: -1.6rem;
  display: flex; align-items: center; gap: 0.8rem;
  background: color-mix(in srgb, var(--om-bg-elev) 88%, transparent);
  backdrop-filter: blur(10px);
  border: 1px solid var(--om-line); border-radius: var(--om-radius);
  padding: 0.8rem 1.2rem 0.8rem 0.8rem;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.45);
  animation: bob 5.5s ease-in-out infinite;
}
.float-card img { width: 52px; height: 52px; animation: spin-slow 14s linear infinite; }
/* Wix-Easteregg: Smiley ist unsichtbar, bis man mit der Maus drüberfährt */
@media (hover: hover) {
  .float-card img { opacity: 0; transform: scale(0.4) rotate(-40deg); transition: opacity 350ms var(--om-ease), transform 550ms var(--om-ease); animation: none; }
  .float-card:hover img { opacity: 1; transform: none; }
}
.float-card strong { font-family: var(--om-font-display); font-size: 0.95rem; }
.float-card small { display: block; color: var(--om-text-muted); font-size: 0.78rem; }
@keyframes bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes spin-slow { to { transform: rotate(360deg); } }
@media (max-width: 960px) { .float-card { left: 0.8rem; bottom: -1.2rem; } }

.speed-chip { display: inline-flex; align-items: center; gap: 0.55em; border: 1px solid color-mix(in srgb, var(--om-accent) 40%, var(--om-line)); background: var(--om-accent-soft); border-radius: var(--om-radius-pill); padding: 0.45em 1.1em; font-size: var(--om-fs-small); }
.speed-chip .dot { width: 9px; height: 9px; border-radius: 50%; background: var(--om-accent); box-shadow: 0 0 12px var(--om-accent); animation: pulse 2.2s ease-in-out infinite; }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.35; } }
.hero-cta-row { display: flex; gap: var(--om-s-4); flex-wrap: wrap; margin-top: var(--om-s-6); }

/* ---- Marquee ---- */
.marquee { overflow: hidden; border-block: 1px solid var(--om-line); background: var(--om-bg-elev); transform: rotate(-1.2deg) scale(1.02); margin-block: -0.5rem; position: relative; z-index: 5; }
.marquee-inner { display: flex; gap: 3rem; width: max-content; white-space: nowrap; padding-block: 0.85rem; font-family: var(--om-font-display); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; font-size: 0.92rem; animation: marquee 30s linear infinite; }
.marquee-inner span { color: var(--om-text-muted); }
.marquee-inner .om { color: var(--om-accent); }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---- Problem-Sektion mit Würfel-Textur ---- */
.tex-section { position: relative; overflow: hidden; }
.tex-section .tex { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.16; pointer-events: none; }
.tex-section::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, var(--om-bg) 0%, transparent 30%, transparent 70%, var(--om-bg) 100%); z-index: 1; }
.tex-section .container { position: relative; z-index: 2; }
.pain-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--om-s-5); margin-top: var(--om-s-7); }
@media (max-width: 900px) { .pain-grid { grid-template-columns: 1fr; } }
.pain-card .nr { font-family: var(--om-font-display); font-weight: 700; font-size: 2.2rem; line-height: 1; display: block; margin-bottom: var(--om-s-4); }
.pain-card h3 { font-size: 1.15rem; margin-bottom: var(--om-s-3); }

/* ---- Fix-Band: die Seite scrollt ÜBER das Bild (Wix-Reveal-Effekt) ---- */
.fix-band {
  position: relative;
  background-size: cover; background-position: center 22%;
  background-attachment: fixed;
  padding-block: clamp(7rem, 5rem + 10vw, 13rem);
}
.fix-band .scrim {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(14, 14, 17, 0.92) 0%, rgba(14, 14, 17, 0.62) 55%, rgba(14, 14, 17, 0.3) 100%);
}
.fix-band .container { position: relative; z-index: 2; }
.fix-band .inner { max-width: 620px; }
.tex-fix {
  background-size: cover; background-position: center;
  background-attachment: fixed;
  position: relative;
}
.tex-fix::before { content: ''; position: absolute; inset: 0; background: rgba(14, 14, 17, 0.82); }
.tex-fix .container { position: relative; z-index: 2; }
@media (max-width: 900px), (pointer: coarse) {
  .fix-band, .tex-fix { background-attachment: scroll; } /* iOS/Android koennen kein fixed */
}

/* ---- Web-Experience-Band (Porträt) ---- */
.media-band { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(2rem, 4.5vw, 5rem); align-items: center; }
@media (max-width: 960px) { .media-band { grid-template-columns: 1fr; } }
.media-tall { border-radius: var(--om-radius-lg); overflow: hidden; border: 1px solid var(--om-line); position: relative; }
.media-tall img { width: 100%; height: 100%; object-fit: cover; display: block; will-change: transform; }
.media-tall::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(14, 14, 17, 0.5)); pointer-events: none; }
.media-tall .cap { position: absolute; left: 1rem; bottom: 0.9rem; z-index: 2; font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(244, 244, 239, 0.75); }

/* ---- Tilt + Spotlight-Karten ---- */
.tilt { transform-style: preserve-3d; will-change: transform; position: relative; }
.tilt::before {
  content: ''; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none; z-index: 1;
  background: radial-gradient(240px circle at var(--mx, 50%) var(--my, 50%), rgba(209, 228, 60, 0.16), transparent 65%);
  opacity: 0; transition: opacity 300ms;
}
.tilt:hover::before { opacity: 1; }
.tilt > * { position: relative; z-index: 2; }

/* Preise */
.terms { display: flex; flex-wrap: wrap; gap: var(--om-s-2); margin-top: var(--om-s-6); }

/* ---- Referenzen mit echten Screenshots ---- */
.ref-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--om-s-5); margin-top: var(--om-s-7); }
@media (max-width: 1000px) { .ref-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .ref-grid { grid-template-columns: 1fr; } }
.ref-card { display: block; text-decoration: none; padding: 0.9rem 0.9rem 1.3rem; }
.ref-card .shot { border-radius: 10px; overflow: hidden; aspect-ratio: 16 / 11; margin-bottom: var(--om-s-4); border: 1px solid var(--om-line); position: relative; }
.ref-card .shot img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform 700ms var(--om-ease); }
.ref-card:hover .shot img { transform: scale(1.05); }
.ref-card .shot.gradient { display: grid; place-items: center; font-family: var(--om-font-display); font-weight: 700; font-size: 1.5rem; letter-spacing: 0.04em; }
.ref-card .shot .live { position: absolute; top: 0.7rem; left: 0.7rem; background: rgba(14, 14, 17, 0.8); backdrop-filter: blur(6px); color: var(--om-accent); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; padding: 0.3em 0.8em; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--om-accent) 40%, transparent); }
.ref-card .tag { font-size: var(--om-fs-small); color: var(--om-text-muted); padding-inline: 0.35rem; }
.ref-card h3 { margin: 0.35rem 0.35rem 0.25rem; font-size: 1.12rem; }
.ref-card p { color: var(--om-text-muted); font-size: 0.93rem; padding-inline: 0.35rem; }

/* ---- 3 Schritte ---- */
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--om-s-5); margin-top: var(--om-s-7); counter-reset: step; }
@media (max-width: 900px) { .steps { grid-template-columns: 1fr; } }
.step { position: relative; padding: var(--om-s-6); border: 1px solid var(--om-line); border-radius: var(--om-radius); background: var(--om-bg-elev); overflow: hidden; }
.step::before { counter-increment: step; content: '0' counter(step); font-family: var(--om-font-display); font-weight: 700; font-size: 2.8rem; color: var(--om-accent); display: block; line-height: 1; margin-bottom: var(--om-s-4); }
.step::after { content: '0' counter(step); position: absolute; right: -0.4rem; bottom: -2.2rem; font-family: var(--om-font-display); font-weight: 700; font-size: 8rem; color: color-mix(in srgb, var(--om-text) 4%, transparent); line-height: 1; pointer-events: none; }
.step h3 { margin-bottom: var(--om-s-2); }
.step p { color: var(--om-text-muted); }

/* ---- Über (Statue) ---- */
.about-grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(2rem, 4vw, 4.5rem); align-items: center; }
@media (max-width: 960px) { .about-grid { grid-template-columns: 1fr; } }
.statue-stack { position: relative; }
.statue-stack .media-tall { aspect-ratio: 4 / 5; }
.statue-stack .emblem-badge {
  position: absolute; right: -1.2rem; top: -1.2rem; width: 108px; height: 108px;
  background: var(--om-bg); border: 1px solid var(--om-line); border-radius: 50%;
  display: grid; place-items: center; box-shadow: var(--om-glow);
  animation: spin-slow 24s linear infinite;
}
.statue-stack .emblem-badge img { width: 72%; }
@media (max-width: 960px) { .statue-stack .emblem-badge { right: 0.6rem; top: -1rem; } }

/* ---- Kontakt ---- */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 4vw, 4rem); align-items: start; }
@media (max-width: 900px) { .contact-grid { grid-template-columns: 1fr; } }
.contact-line { display: flex; align-items: center; gap: 0.7rem; color: var(--om-text-muted); }
.contact-line a { color: var(--om-text); text-decoration: none; }
.contact-line a:hover { color: var(--om-accent); }
.wa-big { display: inline-flex; align-items: center; gap: 0.7em; background: #25D366; color: #06281a; font-family: var(--om-font-display); font-weight: 700; font-size: 1.05rem; padding: 1em 1.8em; border-radius: var(--om-radius-pill); text-decoration: none; transition: transform var(--om-t-fast) var(--om-ease), box-shadow var(--om-t-fast) var(--om-ease); }
.wa-big:hover { transform: translateY(-2px); box-shadow: 0 0 36px rgba(37, 211, 102, 0.35); }

/* ---- Footer mit Riesen-Wordmark ---- */
.footer-wordmark {
  font-family: var(--om-font-display); font-weight: 700;
  font-size: clamp(3.5rem, 14vw, 12rem); line-height: 0.95; letter-spacing: 0.02em;
  text-align: center; user-select: none;
  color: transparent; -webkit-text-stroke: 1px color-mix(in srgb, var(--om-text) 16%, transparent);
  transition: color 600ms var(--om-ease);
}
.footer-wordmark:hover { color: color-mix(in srgb, var(--om-accent) 22%, transparent); }
.site-footer .cols { display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--om-s-4); margin-top: var(--om-s-6); }
.site-footer a { color: var(--om-text-muted); }
.site-footer a:hover { color: var(--om-accent); }

/* ---- Kleinkram ---- */
@media (max-width: 640px) {
  .site-header .btn { padding: 0.7em 1.1em; font-size: 0.88rem; }
  .site-nav { display: none; }
}
.prose { max-width: 720px; }
.prose h1 { margin-block: var(--om-s-5); }
.prose h2 { font-size: 1.35rem; margin-block: var(--om-s-6) var(--om-s-3); }
.prose p { color: var(--om-text-muted); margin-bottom: var(--om-s-4); line-height: 1.8; }
.prose strong { color: var(--om-text); }
.backlink { display: inline-block; margin-top: var(--om-s-6); color: var(--om-text-muted); font-size: var(--om-fs-small); }
.media-wide { border-radius: var(--om-radius-lg); overflow: hidden; border: 1px solid var(--om-line); margin-block: var(--om-s-6); }
.media-wide img { width: 100%; display: block; }

/* Hinweis: prefers-reduced-motion wird auf dieser Seite bewusst ignoriert
   (Kundenwunsch — die Effekte SIND das Verkaufsargument, wie am Wix-Original). */

/* ============================================================
   STORY-MODUS: Kapitel-Scrollytelling
   Jede Slide erzählt ihr Thema; die nächste taucht darüber auf.
   ============================================================ */

/* Ouroboros als ECHTER feststehender Seiten-Hintergrund */
.bg-emblem {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background: url('assets/emblem/emblem-white-680.png') no-repeat center 42% / min(52vw, 620px);
  opacity: 0.055;
}

.story { position: relative; z-index: 1; }

/* Kapitel: 100vh, sticky — das nächste schiebt sich darüber */
.chapter {
  position: sticky; top: 0;
  min-height: 100vh;
  display: flex; flex-direction: column; justify-content: center;
  overflow: hidden;
  background: rgba(14, 14, 17, 0.93);   /* leicht durchlässig: Emblem bleibt als Hintergrund sichtbar */
  will-change: transform, filter;
}
.chapter .container { position: relative; z-index: 3; width: 100%; }

/* Bild-Ebene im Kapitel (Tiefen-Parallax übernimmt das JS) */
.chapter-bg {
  position: absolute; inset: -12% 0; z-index: 1;
  background-size: cover; background-position: center;
  will-change: transform;
}
.chapter-scrim { position: absolute; inset: 0; z-index: 2; }

/* Riesige Outline-Geisterwörter je Kapitel */
.ghost-word {
  position: absolute; z-index: 2; left: 50%; top: 8%;
  transform: translateX(-50%);
  font-family: var(--om-font-display); font-weight: 700;
  font-size: clamp(4rem, 16vw, 15rem); line-height: 1; white-space: nowrap;
  color: transparent; -webkit-text-stroke: 1px color-mix(in srgb, var(--om-text) 10%, transparent);
  pointer-events: none; user-select: none;
}

/* Sheets: lange Sektionen, die wie Karten über das Kapitel davor gleiten */
.sheet {
  position: relative; z-index: 6;
  background: var(--om-bg);
  border-top: 1px solid var(--om-line);
  border-radius: 28px 28px 0 0;
  box-shadow: 0 -30px 80px rgba(0, 0, 0, 0.55);
}

/* Horizontale Referenz-Galerie (gepinnt) */
.h-pin { position: relative; height: 340vh; z-index: 6; background: var(--om-bg-elev); }
.h-sticky { position: sticky; top: 0; height: 100vh; overflow: hidden; display: flex; flex-direction: column; justify-content: center; }
.h-head { padding-bottom: var(--om-s-6); }
.h-track { display: flex; gap: clamp(1.2rem, 2vw, 2rem); will-change: transform; padding-inline: clamp(1.25rem, 4vw, 2.5rem); }
.h-track .ref-card { flex: 0 0 clamp(320px, 34vw, 480px); }
.h-hint { margin-top: var(--om-s-6); color: var(--om-text-muted); font-size: var(--om-fs-small); display: flex; align-items: center; gap: 0.6rem; }
.h-hint .line { width: 60px; height: 1px; background: var(--om-accent); animation: hint-slide 2s ease-in-out infinite; }
@keyframes hint-slide { 0%,100% { transform: translateX(0); opacity: 1; } 50% { transform: translateX(18px); opacity: 0.4; } }

/* Statue-Szene: Wolken ziehen hinter der freigestellten Statue vorbei */
.statue-scene {
  position: relative; overflow: hidden;
  border-radius: var(--om-radius-lg); border: 1px solid var(--om-line);
  aspect-ratio: 4 / 5; max-height: 74vh;
}
.statue-scene .sky {
  position: absolute; top: 0; bottom: 0; left: 0; width: 6000px; z-index: 1;
  background-image: url('assets/img/sky.webp');
  background-size: 2000px 800px; background-repeat: repeat-x;
  animation: clouds 70s linear infinite;
  will-change: transform;
}
@keyframes clouds { to { transform: translateX(-2000px); } }
.statue-scene .statue {
  position: absolute; left: 0; right: 0; bottom: -2%; z-index: 2;
  width: 100%; height: auto;
}
.statue-scene .cap { position: absolute; left: 1rem; bottom: 0.9rem; z-index: 3; font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(244, 244, 239, 0.85); text-shadow: 0 1px 8px rgba(0,0,0,0.4); }

/* Kapitel-Punkte-Navigation rechts */
.dots {
  position: fixed; right: 1.1rem; top: 50%; transform: translateY(-50%);
  z-index: 80; display: grid; gap: 0.7rem;
}
.dots a { width: 9px; height: 9px; border-radius: 50%; background: color-mix(in srgb, var(--om-text) 22%, transparent); transition: background 200ms, transform 200ms; }
.dots a.on { background: var(--om-accent); transform: scale(1.35); box-shadow: 0 0 10px var(--om-accent); }
@media (max-width: 900px) { .dots { display: none; } }

/* Ablauf-Geisterzahlen: klein genug, nie über dem Text */
.step { padding-bottom: 3.4rem; }
.step::after { font-size: 5rem; right: 0.5rem; bottom: -0.9rem; color: color-mix(in srgb, var(--om-text) 3%, transparent); }

/* Mobil & Touch: klassischer Fluss statt Sticky-Stacking (Performance + Lesbarkeit) */
@media (max-width: 900px), (pointer: coarse) {
  .chapter { position: relative; min-height: auto; padding-block: var(--om-section-y); background: var(--om-bg); }
  .ghost-word { display: none; }
  .h-pin { height: auto; }
  .h-sticky { position: relative; height: auto; padding-block: var(--om-section-y); }
  .h-track { overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
  .h-track .ref-card { scroll-snap-align: start; flex-basis: 82vw; }
  .statue-scene { max-height: none; }
}

/* ============================================================
   FEINSCHLIFF-LAYER v7 — Performance + High-End-Details
   ============================================================ */

/* Dive-Schleier: billige Opacity statt teurem brightness/blur-Filter */
.chapter-veil { position: absolute; inset: 0; z-index: 8; background: #0E0E11; opacity: 0; pointer-events: none; will-change: opacity; }

/* Statue-Szene, Schicht 2: riesiger Kopf zieht im Hintergrund vorbei */
.statue-scene .sky { z-index: 1; }
.statue-scene .head {
  position: absolute; top: -4%; left: 0; z-index: 2;
  width: 150%; height: auto; opacity: 0.5;
  filter: blur(1.5px) brightness(1.06);
  animation: head-drift 46s ease-in-out infinite alternate;
  will-change: transform;
}
@keyframes head-drift {
  from { transform: translateX(6%) rotate(2deg); }
  to   { transform: translateX(-42%) rotate(-3deg); }
}
.statue-scene .statue { z-index: 3; }
.statue-scene .cap { z-index: 4; }

/* Header: kondensiert nach dem ersten Scroll */
.site-header { transition: box-shadow 300ms var(--om-ease), background 300ms; }
.site-header.scrolled { box-shadow: 0 10px 40px rgba(0, 0, 0, 0.45); background: color-mix(in srgb, var(--om-bg) 92%, transparent); }
.site-header.scrolled .container { padding-block: 0.55rem; }
.site-header .container { transition: padding 300ms var(--om-ease); }

/* Nav-Links: Unterstrich wächst von links */
.site-nav a { position: relative; }
.site-nav a::after { content: ''; position: absolute; left: 0; bottom: -6px; height: 1.5px; width: 100%; background: var(--om-accent); transform: scaleX(0); transform-origin: left; transition: transform 300ms var(--om-ease); }
.site-nav a:hover::after { transform: scaleX(1); }

/* Buttons: Lichtstreifen zieht beim Hover durch */
.btn { position: relative; overflow: hidden; }
.btn::before { content: ''; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.35), transparent); transform: skewX(-18deg); transition: left 600ms var(--om-ease); pointer-events: none; }
.btn:hover::before { left: 120%; }
.btn--ghost::before { background: linear-gradient(100deg, transparent, rgba(209, 228, 60, 0.18), transparent); }

/* Karten: hauchfeine Gradient-Ränder (oben Licht, unten Schatten) */
.card { border: 1px solid transparent; background: linear-gradient(var(--om-bg-elev), var(--om-bg-elev)) padding-box, linear-gradient(165deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.03) 38%, rgba(209, 228, 60, 0.10)) border-box; }
.price-card--featured { border: 1px solid var(--om-accent); background: var(--om-bg-elev); }
.hero-media .frame, .statue-scene { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07), 0 30px 80px rgba(0, 0, 0, 0.5); }

/* Sheets: feine Lichtkante oben */
.sheet::before { content: ''; position: absolute; top: -1px; left: 8%; right: 8%; height: 1px; background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--om-accent) 55%, transparent), transparent); }

/* FAQ: Plus dreht sich zum X */
.faq summary::after { content: '+'; transition: transform 300ms var(--om-ease), color 300ms; }
.faq details[open] summary::after { content: '+'; transform: rotate(45deg); }
.faq summary:hover { color: var(--om-accent); }

/* Kapitel-Punkte: Label beim Hover */
.dots a { position: relative; }
.dots a::after { content: attr(aria-label); position: absolute; right: 1.4rem; top: 50%; transform: translateY(-50%); background: var(--om-bg-elev); border: 1px solid var(--om-line); color: var(--om-text); font-size: 0.72rem; font-family: var(--om-font-display); padding: 0.25em 0.7em; border-radius: 999px; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity 200ms, translate 200ms; }
.dots a:hover::after { opacity: 1; translate: -4px 0; }

/* Cursor-Ring invertiert Farben darunter — der Klassiker der Top-Studios */
@media (pointer: fine) {
  .cur-dot { mix-blend-mode: difference; background: #fff; }
  .cur-ring { mix-blend-mode: difference; border-color: rgba(255, 255, 255, 0.9); }
  body.cur-hover .cur-ring { border-color: #fff; }
}

/* Typo-Feinheiten */
.hero-grid .hero-title { letter-spacing: -0.035em; }
.lead { text-wrap: pretty; }
.speed-chip { font-variant-numeric: tabular-nums; }

/* Fokus sichtbar, aber elegant */
:focus-visible { outline: 2px solid var(--om-accent); outline-offset: 3px; border-radius: 4px; }

/* Schlanke Scrollbar */
::-webkit-scrollbar { width: 9px; }
::-webkit-scrollbar-track { background: var(--om-bg); }
::-webkit-scrollbar-thumb { background: #2A2A32; border-radius: 99px; border: 2px solid var(--om-bg); }
::-webkit-scrollbar-thumb:hover { background: color-mix(in srgb, var(--om-accent) 45%, #2A2A32); }
