/* ==========================================================================
   CASANOVA CITY – WEBSITE
   Alle Farben/Abstaende/Radien/Schatten/Schriften kommen aus casanova-tokens.css.
   Gliederung: 1 Basis · 2 Bausteine · 3 Header/Menue · 4 Hero · 5 Sections
               6 Footer/Toast · 7 Reveal · 8 Responsive · 9 Reduced Motion
   ========================================================================== */

/* ---------- 1 BASIS ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 80px; }
body {
  background: var(--cc-ink-950);
  color: var(--cc-text);
  font-family: var(--cc-font-body);
  font-size: var(--cc-text-base);
  line-height: var(--cc-leading-body);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
img, video, svg { display: block; max-width: 100%; }
img, video { height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
ul, ol { list-style: none; padding: 0; }
h1, h2, h3 { font-family: var(--cc-font-display); line-height: var(--cc-leading-tight); letter-spacing: -0.02em; font-weight: 800; }
::selection { background: var(--cc-red-600); color: var(--cc-text); }
:focus-visible { outline: 2px solid var(--cc-red-500); outline-offset: 3px; border-radius: 4px; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: fixed; left: var(--cc-space-4); top: -100px; z-index: calc(var(--cc-z-toast) + 1); background: var(--cc-red-600); color: var(--cc-text); padding: var(--cc-space-3) var(--cc-space-4); border-radius: var(--cc-radius-md); font-weight: 700; }
.skip:focus { top: var(--cc-space-4); }
.wrap { width: 100%; max-width: var(--cc-max-width); margin-inline: auto; padding-inline: var(--cc-gutter); }
.ic { width: 1.15em; height: 1.15em; flex: none; }
.ac { color: var(--cc-red-500); }

/* ---------- 2 BAUSTEINE ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--cc-space-2);
  min-height: 44px; padding: 0 var(--cc-space-5);
  border-radius: var(--cc-radius-md); border: 1px solid transparent;
  font: 700 var(--cc-text-sm)/1 var(--cc-font-body); white-space: nowrap;
  transition: transform var(--cc-dur-fast) var(--cc-ease-out), background-color var(--cc-dur-base) var(--cc-ease-out), border-color var(--cc-dur-base) var(--cc-ease-out), box-shadow var(--cc-dur-base) var(--cc-ease-out);
}
.btn:active { transform: translateY(1px); }
.btn:focus-visible { outline: none; box-shadow: var(--cc-focus-ring); }
.btn .ic { transition: transform var(--cc-dur-base) var(--cc-ease-out); }
.btn:hover .ic use[href="#i-arrow"] { }
.btn:hover > .ic:last-child { transform: translateX(3px); }
.btn:hover > .ic:first-child:not(:last-child) { transform: none; }
.btn-sm { min-height: 40px; padding: 0 var(--cc-space-4); }
.btn-lg { min-height: 52px; padding: 0 var(--cc-space-6); font-size: var(--cc-text-base); }
.btn-primary { background: var(--cc-red-600); color: var(--cc-text); box-shadow: 0 10px 30px -12px var(--cc-red-glow); }
.btn-primary:hover { background: var(--cc-red-700); }
.btn-secondary { background: var(--cc-ink-800); color: var(--cc-text); border-color: var(--cc-line-strong); }
.btn-secondary:hover { background: var(--cc-ink-700); }
.btn-glass { background: color-mix(in srgb, var(--cc-ink-900) 55%, transparent); color: var(--cc-text); border-color: var(--cc-line-strong); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.btn-glass:hover { background: color-mix(in srgb, var(--cc-ink-800) 80%, transparent); }
/* Discord-Blau minimal abgedunkelt, damit weisse Schrift AA (>= 4.5:1) erreicht */
.btn-discord { background: color-mix(in srgb, var(--cc-discord) 86%, black); color: var(--cc-text); }
.btn-discord:hover { background: color-mix(in srgb, var(--cc-discord) 74%, black); }
.btn-pill { min-height: 40px; padding: 0 var(--cc-space-4); border-radius: var(--cc-radius-full); border-color: var(--cc-line-strong); color: var(--cc-text); font-weight: 600; }
.btn-pill:hover { background: var(--cc-ink-800); }

.chip { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: var(--cc-radius-full); font-size: var(--cc-text-xs); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; border: 1px solid var(--cc-line-strong); color: var(--cc-text-muted); }
.chip-red { background: var(--cc-red-tint); border-color: var(--cc-red-line); color: var(--cc-red-400); }

.kicker {
  display: flex; align-items: center; gap: var(--cc-space-3);
  font-size: var(--cc-text-xs); font-weight: 700; letter-spacing: var(--cc-tracking-eyebrow); text-transform: uppercase;
  color: var(--cc-red-400); margin-bottom: var(--cc-space-4);
}
.kicker span { font-family: var(--cc-font-display); color: var(--cc-text); letter-spacing: 0.04em; }
.kicker span::after { content: ""; display: inline-block; vertical-align: middle; width: 28px; height: 1px; margin-left: var(--cc-space-3); background: var(--cc-red-line); }
.h2 { font-size: var(--cc-text-3xl); font-weight: 800; letter-spacing: -0.03em; text-wrap: balance; }
.h2-xl { font-size: clamp(2.5rem, 1.4rem + 4.2vw, 5.25rem); line-height: 0.98; letter-spacing: -0.035em; }
.lead { color: var(--cc-text-muted); font-size: var(--cc-text-lg); max-width: 56ch; margin-top: var(--cc-space-4); }
.link { display: inline-flex; align-items: center; gap: var(--cc-space-2); min-height: 44px; font-weight: 700; font-size: var(--cc-text-sm); color: var(--cc-text); border-bottom: 1px solid var(--cc-red-line); }
.link:hover { color: var(--cc-red-400); }
.link:hover .ic { transform: translateX(3px); }
.link .ic { transition: transform var(--cc-dur-base) var(--cc-ease-out); }

/* Medien-Platzhalter: fehlt eine Datei, bleibt ein ruhiger Verlauf statt kaputtem Bild */
.ph {
  position: relative; overflow: hidden;
  background:
    radial-gradient(120% 90% at 85% 10%, rgba(var(--cc-red-rgb), 0.22), transparent 55%),
    radial-gradient(90% 80% at 10% 100%, rgba(var(--cc-red-rgb), 0.10), transparent 60%),
    linear-gradient(160deg, var(--cc-ink-800), var(--cc-ink-900) 60%, var(--cc-ink-950));
}
.ph > img { width: 100%; height: 100%; object-fit: cover; }
.is-missing { visibility: hidden; }

.sec { position: relative; padding-block: var(--cc-section-y); overflow: clip; }
.sec__head { margin-bottom: var(--cc-space-8); }
.sec__head-row { display: flex; align-items: end; justify-content: space-between; gap: var(--cc-space-6); flex-wrap: wrap; }
.sec__head-row .lead { margin-top: 0; max-width: 40ch; }
.bignum {
  position: absolute; right: var(--cc-gutter); top: calc(var(--cc-section-y) * 0.4);
  font: 900 clamp(7rem, 4rem + 12vw, 16rem)/0.8 var(--cc-font-display); letter-spacing: -0.06em;
  color: transparent; -webkit-text-stroke: 1px var(--cc-line-strong); pointer-events: none; user-select: none; z-index: 0;
}
.sec > .wrap { position: relative; z-index: 1; }
.jobs .bignum { top: auto; bottom: calc(var(--cc-section-y) * 0.3); right: auto; left: var(--cc-gutter); }
.fac .bignum { display: none; }

/* ---------- 3 HEADER / MENUE ---------- */
.hdr { position: fixed; inset: 0 0 auto; z-index: var(--cc-z-header); transition: background-color var(--cc-dur-slow) var(--cc-ease-out), border-color var(--cc-dur-slow) var(--cc-ease-out); border-bottom: 1px solid transparent; }
.hdr::before { content: ""; position: absolute; inset: 0 0 -40px; background: linear-gradient(to bottom, color-mix(in srgb, var(--cc-ink-950) 80%, transparent), transparent); pointer-events: none; transition: opacity var(--cc-dur-slow); z-index: -1; }
.hdr.is-solid { background: color-mix(in srgb, var(--cc-ink-950) 82%, transparent); backdrop-filter: blur(14px) saturate(1.2); -webkit-backdrop-filter: blur(14px) saturate(1.2); border-bottom-color: var(--cc-line); }
.hdr.is-solid::before { opacity: 0; }
.hdr__in { display: flex; align-items: center; gap: var(--cc-space-5); height: 76px; max-width: calc(var(--cc-max-width) + 120px); margin-inline: auto; padding-inline: var(--cc-gutter); }
.brand { display: inline-flex; align-items: center; gap: var(--cc-space-3); min-height: 44px; flex: none; }
.brand img { width: 40px; height: 40px; }
.brand__name { font: 800 1.125rem/1 var(--cc-font-display); letter-spacing: -0.01em; }
.brand__name b { color: var(--cc-red-500); font-weight: 800; }
.nav { margin-inline: auto; }
.nav ul { display: flex; gap: 2px; padding: 5px; border: 1px solid var(--cc-line); border-radius: var(--cc-radius-full); background: color-mix(in srgb, var(--cc-ink-900) 60%, transparent); }
.nav a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 var(--cc-space-4); border-radius: var(--cc-radius-full); font-size: var(--cc-text-sm); font-weight: 600; color: var(--cc-text-muted); transition: color var(--cc-dur-base), background-color var(--cc-dur-base); }
.nav a:hover, .nav a[aria-current="true"] { color: var(--cc-text); background: var(--cc-ink-800); }
.hdr__act { display: flex; align-items: center; gap: var(--cc-space-2); flex: none; }
.burger { display: none; width: 44px; height: 44px; border-radius: var(--cc-radius-md); border: 1px solid var(--cc-line-strong); align-items: center; justify-content: center; margin-left: auto; background: color-mix(in srgb, var(--cc-ink-900) 60%, transparent); }
.burger .ic { width: 22px; height: 22px; }

.menu { position: fixed; inset: 0; z-index: calc(var(--cc-z-header) - 1); background: var(--cc-ink-950); padding: 96px var(--cc-gutter) var(--cc-space-6); display: flex; flex-direction: column; justify-content: space-between; gap: var(--cc-space-6); overflow-y: auto; }
.menu[hidden] { display: none; }
.menu__list a { display: flex; align-items: baseline; gap: var(--cc-space-4); padding: var(--cc-space-2) 0; font: 800 clamp(1.75rem, 1rem + 4vw, 2.5rem)/1.15 var(--cc-font-display); letter-spacing: -0.03em; border-bottom: 1px solid var(--cc-line); }
.menu__list span { font-size: var(--cc-text-xs); color: var(--cc-red-400); letter-spacing: 0.1em; width: 2ch; }
.menu.is-open .menu__list li { animation: menuIn var(--cc-dur-slow) var(--cc-ease-out) both; }
.menu.is-open .menu__list li:nth-child(2) { animation-delay: 30ms; } .menu.is-open .menu__list li:nth-child(3) { animation-delay: 60ms; }
.menu.is-open .menu__list li:nth-child(4) { animation-delay: 90ms; } .menu.is-open .menu__list li:nth-child(5) { animation-delay: 120ms; }
.menu.is-open .menu__list li:nth-child(6) { animation-delay: 150ms; } .menu.is-open .menu__list li:nth-child(7) { animation-delay: 180ms; }
.menu.is-open .menu__list li:nth-child(8) { animation-delay: 210ms; }
@keyframes menuIn { from { opacity: 0; transform: translateY(14px); } }
.menu__cta { display: grid; gap: var(--cc-space-3); }
.menu__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--cc-space-3); }
body.menu-open { overflow: hidden; }

/* ---------- 4 HERO ---------- */
.hero { position: relative; height: 100vh; height: 100svh; min-height: 680px; max-height: 1100px; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; background: var(--cc-ink-950); }
.hero__media { position: absolute; inset: 0; z-index: -1; transition: clip-path 1.4s var(--cc-ease-in-out); clip-path: inset(0); }
.hero.is-intro .hero__media { clip-path: inset(46% 0 46% 0); }
.hero__media::after {
  content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--cc-ink-950) 92%, transparent) 0%, color-mix(in srgb, var(--cc-ink-950) 60%, transparent) 40%, transparent 75%),
    linear-gradient(0deg, var(--cc-ink-950) 0%, color-mix(in srgb, var(--cc-ink-950) 55%, transparent) 22%, transparent 45%),
    linear-gradient(180deg, color-mix(in srgb, var(--cc-ink-950) 60%, transparent), transparent 22%);
}
.sm { position: absolute; inset: 0; overflow: hidden; clip-path: inset(0 0 0 100%); z-index: 0; }
.sm.is-prev { clip-path: inset(0); z-index: 1; }
.sm.is-active { clip-path: inset(0); z-index: 2; transition: clip-path 1.25s var(--cc-ease-in-out); }
.sm[data-tone="1"] { background: radial-gradient(70% 90% at 75% 35%, rgba(var(--cc-red-rgb), 0.30), transparent 60%), radial-gradient(60% 60% at 30% 100%, var(--cc-red-900), transparent 70%), var(--cc-ink-900); }
.sm[data-tone="2"] { background: radial-gradient(80% 80% at 80% 60%, rgba(var(--cc-red-rgb), 0.40), transparent 55%), linear-gradient(120deg, var(--cc-ink-950), var(--cc-red-900)); }
.sm[data-tone="3"] { background: radial-gradient(50% 70% at 70% 40%, rgba(var(--cc-red-rgb), 0.22), transparent 65%), var(--cc-ink-950); }
.sm[data-tone="4"] { background: radial-gradient(90% 70% at 90% 20%, var(--cc-ink-700), transparent 60%), radial-gradient(60% 60% at 60% 80%, rgba(var(--cc-red-rgb), 0.25), transparent 70%), var(--cc-ink-900); }
.sm[data-tone="5"] { background: radial-gradient(70% 80% at 70% 70%, rgba(var(--cc-red-rgb), 0.32), transparent 60%), radial-gradient(50% 50% at 90% 10%, var(--cc-ink-700), transparent 70%), var(--cc-ink-900); }
.sm__k { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.1) translate3d(1.5%, 0, 0); will-change: transform; }
.sm.is-active .sm__k, .sm.is-prev .sm__k { transform: scale(1.02) translate3d(0, 0, 0); }
.sm.is-active .sm__k { transition: transform 9s cubic-bezier(0.2, 0.6, 0.3, 1); }
.sm__word {
  position: absolute; right: -2vw; bottom: 9vh; z-index: 4;
  font: 900 clamp(6rem, 2rem + 17vw, 20rem)/0.8 var(--cc-font-display); letter-spacing: -0.06em; text-transform: uppercase;
  color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, 0.14);
  transform: translate3d(8%, 0, 0); opacity: 0;
}
.sm.is-active .sm__word { transform: none; opacity: 1; transition: transform 9s cubic-bezier(0.2, 0.6, 0.3, 1), opacity 1.2s ease 0.3s; }
.hero__wipe { position: absolute; top: 0; bottom: 0; left: 0; width: 2px; z-index: 5; background: var(--cc-red-500); box-shadow: 0 0 24px 2px var(--cc-red-glow); opacity: 0; transform: translate3d(100vw, 0, 0); }
.hero__wipe.is-run { animation: wipe 1.25s var(--cc-ease-in-out) both; }
@keyframes wipe { 0% { opacity: 1; transform: translate3d(100vw, 0, 0); } 85% { opacity: 1; } 100% { opacity: 0; transform: translate3d(0, 0, 0); } }
.hero[data-dir="-1"] .hero__wipe.is-run { animation-name: wipeBack; }
@keyframes wipeBack { 0% { opacity: 1; transform: translate3d(0, 0, 0); } 85% { opacity: 1; } 100% { opacity: 0; transform: translate3d(100vw, 0, 0); } }

.hero__body { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "texts texts" "cta status"; align-items: end; gap: var(--cc-space-6) var(--cc-space-6); padding-bottom: var(--cc-space-7); }
.hero__texts { grid-area: texts; display: grid; max-width: 1180px; }
.st { grid-area: 1 / 1; align-self: end; opacity: 0; transition: opacity 0.35s ease; pointer-events: none; }
.st.is-active { opacity: 1; pointer-events: auto; transition: opacity 0.2s ease; }
.st__kick { display: flex; align-items: center; gap: var(--cc-space-3); font-size: var(--cc-text-xs); font-weight: 700; letter-spacing: var(--cc-tracking-eyebrow); text-transform: uppercase; color: var(--cc-text); margin-bottom: var(--cc-space-4); }
.st__kick span { display: inline-grid; place-items: center; min-width: 34px; height: 22px; padding: 0 6px; border-radius: var(--cc-radius-sm); background: var(--cc-red-600); font-family: var(--cc-font-display); letter-spacing: 0.04em; }
.st__title { font-size: clamp(2.5rem, 0.9rem + 5.8vw, 6.5rem); font-weight: 900; line-height: 0.9; letter-spacing: -0.035em; text-transform: uppercase; }
.ln { display: block; overflow: hidden; padding-bottom: 0.06em; margin-bottom: -0.06em; }
.ln > span { display: block; transform: translate3d(0, 105%, 0); transition: transform 0.25s ease-in; }
.st.is-active .ln > span { transform: none; transition: transform 1s var(--cc-ease-out) calc(0.38s + var(--d, 0) * 0.09s); }
.st__sub { margin-top: var(--cc-space-5); max-width: 52ch; font-size: var(--cc-text-lg); color: var(--cc-text-muted); opacity: 0; transform: translate3d(0, 12px, 0); transition: opacity 0.3s, transform 0.3s; }
.st.is-active .st__sub, .st.is-active .st__kick { opacity: 1; transform: none; transition: opacity 0.8s ease 0.6s, transform 0.8s var(--cc-ease-out) 0.6s; }
.st__kick { opacity: 0; transform: translate3d(0, 8px, 0); transition: opacity 0.3s, transform 0.3s; }
.st.is-active .st__kick { transition-delay: 0.25s; }
.hero__cta { grid-area: cta; display: flex; flex-wrap: wrap; gap: var(--cc-space-3); }

.status { grid-area: status; min-width: 340px; padding: var(--cc-space-4) var(--cc-space-5); border-radius: var(--cc-radius-lg); border: 1px solid var(--cc-line-strong); background: color-mix(in srgb, var(--cc-ink-900) 62%, transparent); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: var(--cc-shadow-raised); animation: fadeUp 0.6s var(--cc-ease-out) both; }
.status[hidden] { display: none; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(10px); } }
.status__head { display: flex; align-items: center; gap: var(--cc-space-2); font-size: var(--cc-text-sm); font-weight: 700; }
.status__live { margin-left: auto; font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--cc-text-muted); }
.status__dot { position: relative; width: 9px; height: 9px; border-radius: 50%; background: var(--cc-success); flex: none; }
.status__dot::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 1px solid var(--cc-success); opacity: 0; animation: ping 2.4s ease-out infinite; }
@keyframes ping { 0% { transform: scale(0.6); opacity: 0.8; } 100% { transform: scale(1.8); opacity: 0; } }
[data-server="offline"] .status__dot { background: var(--cc-text-dim); }
[data-server="offline"] .status__dot::after { display: none; }
.status__grid { display: grid; grid-template-columns: repeat(3, auto); gap: var(--cc-space-5); margin-top: var(--cc-space-3); padding-top: var(--cc-space-3); border-top: 1px solid var(--cc-line); }
.status__grid dt { font-size: 11px; color: var(--cc-text-muted); letter-spacing: 0.02em; }
.status__grid dd { font: 800 var(--cc-text-xl)/1.1 var(--cc-font-display); font-variant-numeric: tabular-nums; white-space: nowrap; }
.status__grid small { font-size: var(--cc-text-sm); font-weight: 600; color: var(--cc-text-muted); margin-left: 3px; }
.status__err { display: none; font-size: var(--cc-text-sm); color: var(--cc-text-muted); margin-top: var(--cc-space-2); }
.status.is-error .status__grid, .status.is-error .status__live { display: none; }
.status.is-error .status__err { display: block; }
.status.is-error .status__dot { background: var(--cc-text-dim); }
.status.is-error .status__dot::after { display: none; }
[data-server="offline"] [data-st="srv"] { display: none; }

.hero__nav { position: relative; display: flex; align-items: stretch; gap: var(--cc-space-4); padding-bottom: var(--cc-space-6); }
.chaps { flex: 1; display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--cc-space-4); }
.chap { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 2px var(--cc-space-3); min-height: 48px; padding-top: var(--cc-space-3); text-align: left; color: var(--cc-text-muted); transition: color var(--cc-dur-base); }
.chap:hover, .chap.is-active { color: var(--cc-text); }
.chap__bar { grid-column: 1 / -1; position: relative; display: block; height: 2px; background: var(--cc-line-strong); overflow: hidden; margin-bottom: var(--cc-space-2); }
.chap__bar i { position: absolute; inset: 0; background: var(--cc-red-500); transform: scaleX(0); transform-origin: left; }
.chap.is-done .chap__bar i { transform: scaleX(1); background: var(--cc-text-dim); }
.chap.is-active .chap__bar i { animation: prog var(--hero-dur, 7s) linear forwards; }
.hero.is-paused .chap.is-active .chap__bar i, .hero.is-static .chap.is-active .chap__bar i { animation-play-state: paused; }
.hero.is-static .chap.is-active .chap__bar i { animation: none; transform: scaleX(1); }
@keyframes prog { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.chap__n { font: 800 var(--cc-text-sm)/1 var(--cc-font-display); color: var(--cc-red-400); }
.chap:not(.is-active) .chap__n { color: inherit; }
.chap__l { font-size: var(--cc-text-sm); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hero__toggle { flex: none; align-self: flex-end; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--cc-line-strong); display: grid; place-items: center; color: var(--cc-text); background: color-mix(in srgb, var(--cc-ink-900) 55%, transparent); transition: background-color var(--cc-dur-base); }
.hero__toggle:hover { background: var(--cc-ink-800); }
.hero__toggle .ic { width: 16px; height: 16px; }
.hero__toggle .ic-play, .hero__toggle[aria-pressed="true"] .ic-pause { display: none; }
.hero__toggle[aria-pressed="true"] .ic-play { display: block; }

/* ---------- 5 SECTIONS ---------- */
/* 01 Stadt */
.city__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--cc-space-8); align-items: center; }
.nums { display: grid; grid-template-columns: 1fr 1fr; gap: var(--cc-space-6) var(--cc-space-5); margin-top: var(--cc-space-7); }
.nums div { display: flex; flex-direction: column-reverse; gap: var(--cc-space-1); padding-top: var(--cc-space-4); border-top: 1px solid var(--cc-line-strong); }
.nums dd { font: 800 clamp(2.5rem, 1.8rem + 2.4vw, 3.75rem)/1 var(--cc-font-display); letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.nums div:first-child dd { color: var(--cc-red-500); }
.nums dt { font-size: var(--cc-text-sm); color: var(--cc-text-muted); }
.city__vis { position: relative; aspect-ratio: 7 / 6; }
.city__vis .ph { position: absolute; border-radius: var(--cc-radius-xl); box-shadow: var(--cc-shadow-raised); }
.city__a { inset: 0 0 18% 12%; }
.city__b { left: 0; bottom: 0; width: 48%; aspect-ratio: 4 / 3; border: 6px solid var(--cc-ink-950); }
.city__a figcaption { position: absolute; left: var(--cc-space-4); top: var(--cc-space-4); padding: 4px 10px; border-radius: var(--cc-radius-full); background: color-mix(in srgb, var(--cc-ink-950) 70%, transparent); font-size: var(--cc-text-xs); font-weight: 600; color: var(--cc-text-muted); backdrop-filter: blur(6px); }
.city__tag { position: absolute; right: 0; bottom: 4%; padding: var(--cc-space-4) var(--cc-space-5); border-radius: var(--cc-radius-lg); background: var(--cc-red-600); font-size: var(--cc-text-sm); line-height: 1.25; box-shadow: 0 20px 40px -18px var(--cc-red-glow); }
.city__tag b { font: 800 var(--cc-text-xl)/1.1 var(--cc-font-display); }

/* 02 Leben – Wortwand */
.life { background: linear-gradient(180deg, var(--cc-ink-950), var(--cc-ink-900) 50%, var(--cc-ink-950)); }
.wall { display: flex; flex-wrap: wrap; align-items: center; gap: 0 clamp(1rem, 0.5rem + 1.6vw, 2.25rem); }
.wall li { display: inline-flex; align-items: center; gap: var(--cc-space-3); }
.wall li:not(:last-child)::after { content: "/"; order: 3; font: 300 clamp(1.75rem, 1rem + 3vw, 4rem)/1 var(--cc-font-display); color: var(--cc-red-500); margin-left: clamp(0.5rem, 0.25rem + 1vw, 1.5rem); opacity: 0.8; }
.w { position: relative; font: 900 clamp(2rem, 0.9rem + 4.2vw, 5rem)/1.12 var(--cc-font-display); letter-spacing: -0.04em; text-transform: uppercase; color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, 0.28); }
.w::after { content: attr(data-w); position: absolute; inset: 0; color: var(--cc-text); -webkit-text-stroke: 0; opacity: 0; transition: opacity 0.8s ease; transition-delay: calc(var(--i, 0) * 110ms); }
.wall.is-in .w::after { opacity: 1; }
.wall li:nth-child(1) { --i: 0; } .wall li:nth-child(2) { --i: 1; } .wall li:nth-child(3) { --i: 2; } .wall li:nth-child(4) { --i: 3; } .wall li:nth-child(5) { --i: 4; }
.wall li:nth-child(6) { --i: 5; } .wall li:nth-child(7) { --i: 6; } .wall li:nth-child(8) { --i: 7; } .wall li:nth-child(9) { --i: 8; } .wall li:nth-child(10) { --i: 9; }
.wall li:nth-child(even) .w::after { color: var(--cc-text-muted); }
.w__ic { width: clamp(44px, 2rem + 2vw, 72px); height: auto; aspect-ratio: 1; object-fit: contain; padding: 6px; border-radius: var(--cc-radius-md); background: var(--cc-ink-800); border: 1px solid var(--cc-line-strong); transform: rotate(-6deg); }
.wall li:nth-child(odd) .w__ic { transform: rotate(5deg); }

/* 03 Jobs */
.jobs__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--cc-space-8); align-items: center; }
.jobs__vis { position: relative; padding: var(--cc-space-6) 0; }
.device { padding: 14px; border-radius: 28px; background: linear-gradient(145deg, var(--cc-ink-700), var(--cc-ink-850)); border: 1px solid var(--cc-line-strong); box-shadow: var(--cc-shadow-raised), 0 40px 80px -40px var(--cc-red-glow); transform: perspective(1400px) rotateY(8deg) rotateX(3deg); }
.device__screen { aspect-ratio: 1600 / 1225; border-radius: var(--cc-radius-lg); background: var(--cc-ink-950); }
.device__screen img { object-fit: contain; }
.shot, .step__img { background: var(--cc-ink-950); }
/* Gewinnspiel: typografische Taste statt Screenshot */
.gkey { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--cc-space-5); background: radial-gradient(60% 70% at 50% 45%, rgba(var(--cc-red-rgb), 0.22), transparent 70%), var(--cc-ink-950); }
.gkey kbd { display: grid; place-items: center; width: clamp(96px, 9vw, 150px); aspect-ratio: 1; border-radius: 22%; font: 900 clamp(3rem, 2rem + 3vw, 5rem)/1 var(--cc-font-display); color: var(--cc-text); background: linear-gradient(180deg, var(--cc-ink-700), var(--cc-ink-850)); border: 1px solid var(--cc-line-strong); box-shadow: 0 8px 0 var(--cc-ink-950), 0 10px 0 var(--cc-red-700), 0 30px 60px -20px var(--cc-red-glow); }
.gkey span { font-size: var(--cc-text-xs); font-weight: 700; letter-spacing: var(--cc-tracking-eyebrow); text-transform: uppercase; color: var(--cc-text-muted); }
.shot img, .step__img img { object-fit: contain; }
.float { position: absolute; padding: 8px 14px; border-radius: var(--cc-radius-full); background: color-mix(in srgb, var(--cc-ink-900) 80%, transparent); border: 1px solid var(--cc-line-strong); backdrop-filter: blur(8px); font-size: var(--cc-text-sm); font-weight: 700; white-space: nowrap; box-shadow: var(--cc-shadow-card); }
.float::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--cc-red-500); margin-right: 8px; vertical-align: 1px; }
.f1 { left: -2%; top: 4%; } .f2 { right: 4%; top: -2%; } .f3 { right: -2%; bottom: 6%; }
.joblist { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--cc-space-5); margin-top: var(--cc-space-6); counter-reset: job; }
.joblist li { counter-increment: job; display: flex; align-items: baseline; gap: var(--cc-space-3); padding: var(--cc-space-3) 0; border-bottom: 1px solid var(--cc-line); font: 700 var(--cc-text-lg)/1.3 var(--cc-font-display); }
.joblist li::before { content: counter(job, decimal-leading-zero); font-size: var(--cc-text-xs); color: var(--cc-red-400); letter-spacing: 0.06em; }

/* 04 Fraktionen */
.fac { padding-block: calc(var(--cc-section-y) * 1.2); }
.fac__bg { position: absolute; inset: 0; z-index: 0; }
.fac__bg img { opacity: 0.35; filter: grayscale(0.4); }
.fac__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, var(--cc-ink-950), color-mix(in srgb, var(--cc-ink-950) 70%, transparent) 35%, color-mix(in srgb, var(--cc-ink-950) 80%, transparent) 65%, var(--cc-ink-950)); }
.fac .bignum { z-index: 1; }
.fac__top { display: flex; justify-content: space-between; align-items: end; gap: var(--cc-space-7); flex-wrap: wrap; margin-bottom: var(--cc-space-8); }
.fac__three { display: flex; align-items: center; gap: var(--cc-space-4); max-width: 360px; color: var(--cc-text-muted); }
.fac__three b { font: 900 clamp(6rem, 4rem + 6vw, 9.5rem)/0.8 var(--cc-font-display); color: var(--cc-red-500); letter-spacing: -0.06em; text-shadow: 0 0 60px var(--cc-red-glow); }
.fac__three span { font-size: var(--cc-text-base); }
.fac__cols { display: grid; grid-template-columns: 1fr 1fr; gap: var(--cc-space-5); }
.side { padding: var(--cc-space-6); border-radius: var(--cc-radius-xl); border: 1px solid var(--cc-line); background: color-mix(in srgb, var(--cc-ink-900) 78%, transparent); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.side-red { border-color: var(--cc-red-line); background: linear-gradient(160deg, color-mix(in srgb, var(--cc-red-900) 70%, transparent), color-mix(in srgb, var(--cc-ink-900) 85%, transparent) 60%); }
.side__t { display: flex; align-items: baseline; gap: var(--cc-space-3); font-size: var(--cc-text-sm); font-family: var(--cc-font-body); font-weight: 600; color: var(--cc-text-muted); letter-spacing: 0; margin-bottom: var(--cc-space-4); }
.side__t span { font: 800 var(--cc-text-2xl)/1 var(--cc-font-display); color: var(--cc-text); letter-spacing: -0.02em; }
.side__list li { display: grid; grid-template-columns: minmax(0, 11rem) 1fr; gap: var(--cc-space-4); padding: var(--cc-space-4) 0; border-top: 1px solid var(--cc-line); }
.side__list b { font-family: var(--cc-font-display); font-weight: 700; }
.side__list span { color: var(--cc-text-muted); font-size: var(--cc-text-sm); }
.side .link { margin-top: var(--cc-space-4); }

/* 05 Crime */
.crime { min-height: 100vh; display: flex; align-items: center; background: var(--cc-ink-950); }
.crime__bg { position: absolute; inset: 0; background: radial-gradient(60% 60% at 80% 30%, rgba(var(--cc-red-rgb), 0.18), transparent 70%), var(--cc-ink-950); }
.crime__bg video { width: 100%; height: 100%; object-fit: cover; opacity: 0.5; filter: saturate(0.6) contrast(1.1); }
.crime__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--cc-ink-950) 10%, color-mix(in srgb, var(--cc-ink-950) 40%, transparent)), linear-gradient(0deg, var(--cc-ink-950), transparent 40%, transparent 70%, var(--cc-ink-950)), linear-gradient(0deg, rgba(var(--cc-red-rgb), 0.12), rgba(var(--cc-red-rgb), 0.12)); }
.crime__bg::before { content: ""; position: absolute; inset: 0; z-index: 1; opacity: 0.09; pointer-events: none; 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' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.crime__in { position: relative; z-index: 2; }
.files { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--cc-space-4); margin-top: var(--cc-space-8); counter-reset: f; }
.file { position: relative; padding: var(--cc-space-5); padding-top: var(--cc-space-6); border-radius: var(--cc-radius-lg); border: 1px solid var(--cc-line); background: color-mix(in srgb, var(--cc-ink-900) 72%, transparent); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); transition: border-color var(--cc-dur-base), transform var(--cc-dur-base) var(--cc-ease-out); }
.file::before { content: ""; position: absolute; left: var(--cc-space-5); right: var(--cc-space-5); top: 0; height: 2px; background: var(--cc-red-500); transform: scaleX(0.18); transform-origin: left; transition: transform var(--cc-dur-slow) var(--cc-ease-out); }
.file:hover { border-color: var(--cc-red-line); transform: translateY(-4px); }
.file:hover::before { transform: scaleX(1); }
.file img { width: 72px; height: 72px; object-fit: contain; margin-bottom: var(--cc-space-4); filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.6)); }
.file__n { font-size: var(--cc-text-xs); font-weight: 700; letter-spacing: var(--cc-tracking-eyebrow); text-transform: uppercase; color: var(--cc-red-400); }
.file h3 { font-size: var(--cc-text-2xl); margin: var(--cc-space-1) 0 var(--cc-space-2); }
.file p { color: var(--cc-text-muted); font-size: var(--cc-text-sm); }

/* 06 Features – Sticky-Showcase */
.show { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--cc-space-8); }
.step { min-height: 72vh; display: flex; flex-direction: column; justify-content: center; opacity: 0.32; transition: opacity var(--cc-dur-slow) var(--cc-ease-out); }
.step:first-child { min-height: 60vh; justify-content: flex-start; padding-top: 12vh; }
.step:last-child { min-height: 60vh; }
.step.is-active { opacity: 1; }
.step__n { font: 700 var(--cc-text-xs)/1 var(--cc-font-display); letter-spacing: 0.16em; color: var(--cc-red-400); margin-bottom: var(--cc-space-4); }
.step h3 { font-size: clamp(1.9rem, 1.2rem + 2.2vw, 3rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1.02; }
.step h3 .ac { display: block; }
.step > p:not(.step__n) { color: var(--cc-text-muted); font-size: var(--cc-text-lg); margin-top: var(--cc-space-4); max-width: 40ch; }
.step__img { display: none; }
.show__stage { position: relative; }
.show__stage > * { position: sticky; }
.screen { border-radius: var(--cc-radius-xl); border: 1px solid var(--cc-line-strong); background: var(--cc-ink-900); box-shadow: var(--cc-shadow-raised), 0 60px 120px -60px var(--cc-red-glow); overflow: hidden; }
.screen__bar { display: flex; align-items: center; gap: 6px; height: 34px; padding: 0 var(--cc-space-4); border-bottom: 1px solid var(--cc-line); }
.screen__bar span { width: 9px; height: 9px; border-radius: 50%; background: var(--cc-ink-700); }
.screen__bar span:first-child { background: var(--cc-red-500); }
.screen__n { margin-left: auto; font: 800 var(--cc-text-xs)/1 var(--cc-font-display); letter-spacing: 0.16em; color: var(--cc-text-muted); }
.screen__view { position: relative; aspect-ratio: 16 / 9; }
.show__stage > .show__pin { position: sticky; top: max(100px, calc(50vh - min(17vw, 230px) - 40px)); }
.show__pin .dots { position: static; display: flex; gap: 6px; margin-top: var(--cc-space-5); }
.shot { position: absolute; inset: 0; clip-path: inset(100% 0 0 0); transition: clip-path 0.9s var(--cc-ease-in-out); z-index: 0; }
.shot img { transform: scale(1.08); transition: transform 1.4s var(--cc-ease-out); }
.shot.is-active { clip-path: inset(0); z-index: 1; }
.shot.is-active img { transform: none; }
.dots { position: absolute; top: calc(50vh + min(19vw, 250px) + 24px); left: 0; display: flex; gap: 6px; }
.show__stage .dots { position: sticky; margin-top: var(--cc-space-5); top: auto; }
.dots li { width: 22px; height: 3px; border-radius: 2px; background: var(--cc-line-strong); transition: background-color var(--cc-dur-base), width var(--cc-dur-slow) var(--cc-ease-out); }
.dots li.is-active { background: var(--cc-red-500); width: 44px; }

.ac-strip { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 1.3fr); align-items: center; gap: var(--cc-space-6); margin-top: var(--cc-space-9); padding: var(--cc-space-6); border-radius: var(--cc-radius-xl); border: 1px solid var(--cc-line); background: linear-gradient(110deg, var(--cc-ink-850), var(--cc-ink-900)); }
.ac-strip__ic { width: 56px; height: 56px; color: var(--cc-red-500); padding: 12px; border-radius: var(--cc-radius-lg); background: var(--cc-red-tint); border: 1px solid var(--cc-red-line); box-sizing: content-box; }
.ac-strip h3 { font-size: var(--cc-text-2xl); }
.ac-strip p { color: var(--cc-text-muted); }
.ac-strip__lbl { display: block; font-size: var(--cc-text-xs); color: var(--cc-text-dim); letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: var(--cc-space-2); }
.tags { display: flex; flex-wrap: wrap; gap: 6px; }
.tags li { padding: 5px 11px; border-radius: var(--cc-radius-sm); background: var(--cc-ink-800); border: 1px solid var(--cc-line); font-family: var(--cc-font-mono); font-size: var(--cc-text-xs); color: var(--cc-text-muted); }

/* 07 Garage */
.garage { background: var(--cc-ink-900); }
.garage__939 { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -42%); font: 900 clamp(12rem, 6rem + 30vw, 34rem)/0.8 var(--cc-font-display); letter-spacing: -0.07em; color: transparent; -webkit-text-stroke: 1px var(--cc-line); pointer-events: none; user-select: none; }
.garage__head { display: flex; justify-content: space-between; align-items: end; gap: var(--cc-space-5); margin-bottom: var(--cc-space-7); }
.garage__btns { display: flex; gap: var(--cc-space-2); }
.rbtn { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--cc-line-strong); background: var(--cc-ink-850); transition: background-color var(--cc-dur-base), border-color var(--cc-dur-base); }
.rbtn:hover { border-color: var(--cc-red-line); background: var(--cc-ink-800); }
.rbtn:disabled { opacity: 0.35; cursor: default; }
.cars { position: relative; z-index: 1; display: flex; gap: var(--cc-space-4); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: max(var(--cc-gutter), calc((100vw - var(--cc-max-width)) / 2 + var(--cc-gutter))); padding: var(--cc-space-2) max(var(--cc-gutter), calc((100vw - var(--cc-max-width)) / 2 + var(--cc-gutter))) var(--cc-space-5); scrollbar-width: none; }
.cars::-webkit-scrollbar { display: none; }
.cars:focus-visible { outline-offset: -2px; }
.car { flex: 0 0 clamp(260px, 22vw, 340px); scroll-snap-align: start; padding: var(--cc-space-5); border-radius: var(--cc-radius-lg); border: 1px solid var(--cc-line); background: linear-gradient(180deg, var(--cc-ink-850), color-mix(in srgb, var(--cc-ink-850) 40%, var(--cc-ink-900))); box-shadow: var(--cc-shadow-card); transition: border-color var(--cc-dur-base), transform var(--cc-dur-base) var(--cc-ease-out); }
.car:hover { border-color: var(--cc-red-line); transform: translateY(-3px); }
.car img { width: 100%; aspect-ratio: 16 / 9; object-fit: contain; margin-bottom: var(--cc-space-4); filter: drop-shadow(0 18px 18px rgba(0, 0, 0, 0.55)); transition: transform var(--cc-dur-slow) var(--cc-ease-out); }
.car:hover img { transform: scale(1.05) translateX(2%); }
.car b { display: block; font: 800 var(--cc-text-xl)/1.2 var(--cc-font-display); }
.car code { font-family: var(--cc-font-mono); font-size: var(--cc-text-xs); color: var(--cc-text-dim); }
.car-more { display: flex; flex-direction: column; justify-content: center; border-style: dashed; border-color: var(--cc-red-line); background: var(--cc-red-tint); }
.car-more b { font-size: var(--cc-text-3xl); color: var(--cc-red-400); }
.car-more span { color: var(--cc-text-muted); }

/* 08 Community */
.comm__bg { position: absolute; inset: 0; z-index: 0; }
.comm__bg img { opacity: 0.3; }
.comm__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--cc-ink-950) 20%, color-mix(in srgb, var(--cc-ink-950) 65%, transparent)), linear-gradient(0deg, var(--cc-ink-950), transparent 30%, transparent 70%, var(--cc-ink-950)); }
.comm__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--cc-space-8); align-items: center; }
.comm .btn { margin-top: var(--cc-space-6); }
.live { padding: var(--cc-space-6); border-radius: var(--cc-radius-xl); border: 1px solid var(--cc-line-strong); background: color-mix(in srgb, var(--cc-ink-900) 75%, transparent); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: var(--cc-shadow-raised); }
.live__head { display: flex; align-items: center; gap: var(--cc-space-2); font-size: var(--cc-text-xs); font-weight: 700; letter-spacing: var(--cc-tracking-eyebrow); text-transform: uppercase; color: var(--cc-text-muted); }
.live__grid div { display: flex; flex-direction: column-reverse; padding: var(--cc-space-5) 0; border-bottom: 1px solid var(--cc-line); }
.live__grid div:last-child { border-bottom: 0; padding-bottom: 0; }
.live__grid dd { font: 800 clamp(2.5rem, 1.8rem + 2.6vw, 4rem)/1 var(--cc-font-display); letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.live__grid div:first-child dd { color: var(--cc-text); }
.live__grid small { font-size: var(--cc-text-lg); font-weight: 600; color: var(--cc-text-muted); margin-left: 6px; letter-spacing: 0; }
.live__grid dt { color: var(--cc-text-muted); font-size: var(--cc-text-sm); margin-top: var(--cc-space-1); }
.live__err { display: none; margin-top: var(--cc-space-4); color: var(--cc-text-muted); }
.live[data-state="loading"] .live__grid { visibility: hidden; }
.live[data-state="error"] .live__grid { display: none; }
.live[data-state="error"] .live__err { display: block; }
.live[data-state="error"] .status__dot { background: var(--cc-text-dim); }
.live[data-state="error"] .status__dot::after { display: none; }

/* 09 Media */
.clips { display: grid; grid-template-columns: repeat(3, minmax(0, 340px)); justify-content: center; gap: clamp(1rem, 0.5rem + 2vw, 3rem); }
.clip__btn, .clip__vid { position: relative; display: block; width: 100%; aspect-ratio: 9 / 16; border-radius: var(--cc-radius-xl); overflow: hidden; border: 1px solid var(--cc-line); text-align: left; box-shadow: var(--cc-shadow-raised); }
.clip__btn img { position: absolute; inset: 0; transition: transform 0.8s var(--cc-ease-out); }
.clip__btn::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, color-mix(in srgb, var(--cc-ink-950) 92%, transparent), transparent 45%); }
.clip__btn:hover img { transform: scale(1.04); }
.clip__play { position: absolute; left: 50%; top: 50%; z-index: 1; width: 72px; height: 72px; margin: -36px 0 0 -36px; border-radius: 50%; display: grid; place-items: center; background: var(--cc-red-600); box-shadow: 0 0 0 10px rgba(var(--cc-red-rgb), 0.18), 0 20px 40px -10px var(--cc-red-glow); transition: transform var(--cc-dur-base) var(--cc-ease-out); }
.clip__play .ic { width: 26px; height: 26px; margin-left: 3px; }
.clip__btn:hover .clip__play { transform: scale(1.08); }
.clip__meta { position: absolute; left: var(--cc-space-5); right: var(--cc-space-5); bottom: var(--cc-space-5); z-index: 1; }
.clip__meta b { display: block; font: 800 var(--cc-text-xl)/1.15 var(--cc-font-display); }
.clip__meta small { color: var(--cc-text-muted); font-size: var(--cc-text-sm); }
.clip__vid { background: var(--cc-ink-900); object-fit: cover; }
.clip__err { display: grid; place-items: center; aspect-ratio: 9 / 16; border-radius: var(--cc-radius-xl); border: 1px dashed var(--cc-line-strong); color: var(--cc-text-muted); text-align: center; padding: var(--cc-space-5); }

/* 10 Shop */
.shop { background: linear-gradient(180deg, var(--cc-ink-950), var(--cc-ink-900)); }
.shopcards { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--cc-space-4); }
.card { position: relative; background: var(--cc-ink-850); border: 1px solid var(--cc-line); border-radius: var(--cc-radius-lg); padding: var(--cc-space-5); box-shadow: var(--cc-shadow-card); transition: border-color var(--cc-dur-base) var(--cc-ease-out), transform var(--cc-dur-base) var(--cc-ease-out); }
.card:hover { border-color: var(--cc-red-line); transform: translateY(-2px); }
.card__ic { width: 28px; height: 28px; color: var(--cc-red-500); margin-bottom: var(--cc-space-5); }
.card .chip { position: absolute; top: var(--cc-space-5); right: var(--cc-space-5); }
.card h3 { font-size: var(--cc-text-xl); margin-bottom: var(--cc-space-2); }
.card p { color: var(--cc-text-muted); font-size: var(--cc-text-sm); }
.shop__cta { display: flex; align-items: center; gap: var(--cc-space-5); flex-wrap: wrap; margin-top: var(--cc-space-7); }
.shop__cta p { color: var(--cc-text-muted); font-size: var(--cc-text-sm); }

/* 11 Join */
.join { padding-block: calc(var(--cc-section-y) * 1.3); }
.join__bg { position: absolute; inset: 0; z-index: 0; }
.join__bg img { opacity: 0.32; }
.join__bg::after { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 70% at 50% 0%, rgba(var(--cc-red-rgb), 0.22), transparent 70%), linear-gradient(0deg, var(--cc-ink-950) 10%, color-mix(in srgb, var(--cc-ink-950) 60%, transparent) 60%, var(--cc-ink-950)); }
.join__head { text-align: center; display: flex; flex-direction: column; align-items: center; }
.join__head .kicker { justify-content: center; }
.join__head .lead { margin-inline: auto; }
.steps { display: grid; grid-template-columns: 1fr 1fr 1.35fr; gap: var(--cc-space-4); counter-reset: s; }
.jstep { display: flex; flex-direction: column; align-items: flex-start; gap: var(--cc-space-3); padding: var(--cc-space-6); border-radius: var(--cc-radius-xl); border: 1px solid var(--cc-line); background: color-mix(in srgb, var(--cc-ink-900) 80%, transparent); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.jstep p { color: var(--cc-text-muted); font-size: var(--cc-text-sm); flex: 1; }
.jstep h3 { font-size: var(--cc-text-2xl); }
.jstep__n { font: 900 var(--cc-text-3xl)/1 var(--cc-font-display); color: transparent; -webkit-text-stroke: 1px var(--cc-red-400); letter-spacing: -0.04em; }
.jstep-main { border-color: var(--cc-red-line); box-shadow: var(--cc-shadow-glow); background: linear-gradient(160deg, color-mix(in srgb, var(--cc-red-900) 60%, var(--cc-ink-900)), var(--cc-ink-900) 70%); }
.jstep-main .jstep__n { color: var(--cc-red-500); -webkit-text-stroke: 0; }
.addr { display: flex; width: 100%; align-items: stretch; border-radius: var(--cc-radius-md); border: 1px solid var(--cc-line-strong); background: var(--cc-ink-950); overflow: hidden; }
.addr code { flex: 1; display: flex; align-items: center; padding: 0 var(--cc-space-4); font-family: var(--cc-font-mono); font-size: var(--cc-text-sm); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.addr__btn { display: inline-flex; align-items: center; gap: var(--cc-space-2); min-height: 48px; padding: 0 var(--cc-space-4); background: var(--cc-ink-800); border-left: 1px solid var(--cc-line-strong); font-weight: 700; font-size: var(--cc-text-sm); transition: background-color var(--cc-dur-base); }
.addr__btn:hover { background: var(--cc-ink-700); }
.addr__btn:focus-visible { outline-offset: -3px; }

/* ---------- 6 FOOTER / TOAST ---------- */
.ftr { border-top: 1px solid var(--cc-line); background: var(--cc-ink-950); padding-top: var(--cc-space-8); }
.ftr__grid { display: grid; grid-template-columns: 1.6fr repeat(4, 1fr); gap: var(--cc-space-6); }
.ftr__brand p { color: var(--cc-text-muted); font-size: var(--cc-text-sm); margin-top: var(--cc-space-3); max-width: 32ch; }
.ftr__col h2 { font-size: var(--cc-text-xs); letter-spacing: var(--cc-tracking-eyebrow); text-transform: uppercase; color: var(--cc-text-muted); font-family: var(--cc-font-body); font-weight: 700; margin-bottom: var(--cc-space-3); }
.ftr__col a { display: inline-flex; align-items: center; min-height: 36px; color: var(--cc-text); font-size: var(--cc-text-sm); transition: color var(--cc-dur-base); }
.ftr__col a:hover { color: var(--cc-red-400); }
.ftr__bottom { display: flex; justify-content: space-between; gap: var(--cc-space-4); flex-wrap: wrap; margin-top: var(--cc-space-8); padding-block: var(--cc-space-5); border-top: 1px solid var(--cc-line); color: var(--cc-text-dim); font-size: var(--cc-text-xs); }

.toast { position: fixed; left: 50%; bottom: max(var(--cc-space-5), env(safe-area-inset-bottom)); z-index: var(--cc-z-toast); display: flex; align-items: center; gap: var(--cc-space-2); padding: var(--cc-space-3) var(--cc-space-5); border-radius: var(--cc-radius-full); background: var(--cc-ink-800); border: 1px solid var(--cc-line-strong); box-shadow: var(--cc-shadow-raised); font-weight: 600; font-size: var(--cc-text-sm); transform: translate(-50%, 24px); opacity: 0; pointer-events: none; transition: transform var(--cc-dur-slow) var(--cc-ease-out), opacity var(--cc-dur-base); }
.toast .ic { color: var(--cc-success); }
.toast.is-on { transform: translate(-50%, 0); opacity: 1; }

/* ---------- 7 REVEAL ---------- */
.js .rv { opacity: 0; transform: translate3d(0, 28px, 0); transition: opacity 0.9s var(--cc-ease-out), transform 0.9s var(--cc-ease-out); }
.js .rv.is-in { opacity: 1; transform: none; }
.js .nums .rv:nth-child(2), .js .files .rv:nth-child(2), .js .clips .rv:nth-child(2), .js .shopcards .rv:nth-child(2), .js .steps .rv:nth-child(2) { transition-delay: 0.08s; }
.js .nums .rv:nth-child(3), .js .files .rv:nth-child(3), .js .clips .rv:nth-child(3), .js .shopcards .rv:nth-child(3), .js .steps .rv:nth-child(3) { transition-delay: 0.16s; }
.js .nums .rv:nth-child(4), .js .files .rv:nth-child(4), .js .shopcards .rv:nth-child(4) { transition-delay: 0.24s; }
[data-parallax] { will-change: transform; }

/* ---------- 8 RESPONSIVE ---------- */
@media (max-width: 1240px) {
  .nav a { padding: 0 var(--cc-space-3); }
  .hdr__act .btn-pill span { display: none; }
  .hdr__act .btn-pill { width: 40px; padding: 0; }
}
@media (max-width: 1080px) {
  .nav, .hdr__act { display: none; }
  .burger { display: inline-flex; }
  .hero__body { grid-template-columns: 1fr; grid-template-areas: "texts" "cta" "status"; }
  .status { justify-self: start; }
  .city__grid, .jobs__grid, .comm__grid { grid-template-columns: 1fr; gap: var(--cc-space-7); }
  .jobs__vis { order: 2; }
  .files { grid-template-columns: 1fr 1fr; }
  .shopcards { grid-template-columns: 1fr 1fr; }
  .show { grid-template-columns: 1fr; gap: 0; }
  .show__stage { display: none; }
  .step, .step:first-child, .step:last-child { min-height: 0; opacity: 1; padding: 0 0 var(--cc-space-8); justify-content: flex-start; }
  .step__img { display: block; aspect-ratio: 16 / 9; margin-top: var(--cc-space-5); border-radius: var(--cc-radius-lg); border: 1px solid var(--cc-line-strong); }
  .ac-strip { grid-template-columns: auto 1fr; margin-top: var(--cc-space-4); }
  .ac-strip__tags { grid-column: 1 / -1; }
  .steps { grid-template-columns: 1fr; }
  .ftr__grid { grid-template-columns: 1fr 1fr; }
  .ftr__brand { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .hero { min-height: 640px; max-height: none; }
  .hero__body { gap: var(--cc-space-5); padding-bottom: var(--cc-space-5); }
  .hero__cta { display: grid; grid-template-columns: 1fr; }
  .hero__cta .btn { width: 100%; }
  .st__sub { font-size: var(--cc-text-base); margin-top: var(--cc-space-4); }
  .status { min-width: 0; width: 100%; padding: var(--cc-space-3) var(--cc-space-4); }
  .status__grid { gap: var(--cc-space-3); grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .status__grid dd { font-size: var(--cc-text-lg); }
  .hero__nav { padding-bottom: var(--cc-space-4); gap: var(--cc-space-3); }
  .chaps { gap: var(--cc-space-2); }
  .chap { grid-template-columns: 1fr; min-height: 44px; }
  .chap__l { display: none; }
  .sm__word { bottom: auto; top: 14vh; }
  .city__vis { aspect-ratio: 1 / 1; }
  .nums { gap: var(--cc-space-5) var(--cc-space-4); }
  .wall li:not(:last-child)::after { margin-left: var(--cc-space-2); }
  .wall { gap: var(--cc-space-1) var(--cc-space-3); }
  .device { transform: none; padding: 8px; border-radius: 20px; }
  .float { font-size: var(--cc-text-xs); padding: 6px 10px; }
  .f1 { left: 2%; top: 0; } .f2 { display: none; } .f3 { right: 2%; bottom: 0; }
  .joblist { grid-template-columns: 1fr; }
  .fac__cols { grid-template-columns: 1fr; }
  .side { padding: var(--cc-space-5); }
  .side__list li { grid-template-columns: 1fr; gap: var(--cc-space-1); }
  .files { grid-template-columns: 1fr; }
  .file { display: grid; grid-template-columns: 64px 1fr; column-gap: var(--cc-space-4); padding: var(--cc-space-5); }
  .file img { grid-row: 1 / 4; width: 64px; height: 64px; margin: 0; }
  .file h3 { font-size: var(--cc-text-xl); }
  .garage__head { flex-direction: column; align-items: flex-start; }
  .garage__btns { display: none; }
  .car { flex-basis: 78vw; }
  .clips { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: var(--cc-space-4); margin-inline: calc(var(--cc-gutter) * -1); padding: 0 var(--cc-gutter) var(--cc-space-3); scrollbar-width: none; }
  .clips::-webkit-scrollbar { display: none; }
  .clip { flex: 0 0 72vw; scroll-snap-align: center; }
  .shopcards { grid-template-columns: 1fr; }
  .addr { flex-direction: column; }
  .addr code { min-height: 48px; justify-content: center; }
  .addr__btn { justify-content: center; border-left: 0; border-top: 1px solid var(--cc-line-strong); }
  .jstep .btn { width: 100%; }
  .bignum { font-size: 7rem; top: var(--cc-space-6); opacity: 0.6; }
  .ac-strip { padding: var(--cc-space-5); gap: var(--cc-space-4); }
}

/* ---------- 9 REDUCED MOTION ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; transition-delay: 0s !important; }
  .js .rv { opacity: 1; transform: none; }
  .hero.is-intro .hero__media { clip-path: inset(0); }
  .sm__k, .sm.is-active .sm__k { transform: none; }
  .sm__word { transform: none; }
  .status__dot::after { display: none; }
  [data-parallax] { transform: none !important; }
}
