/* public/landing/landing.css — HAFENFRONT Landingpage (LP1, 02.10.2026).
   Eigene Datei, keine externen Quellen. Schriften: /fonts/fonts.css (Barlow Condensed 600/800, Inter 400/600).
   Bewegung nur über transform/opacity; prefers-reduced-motion schaltet alles ab. */

:root{
  color-scheme:dark;
  --bg:#05070a; --bg-1:#0a0e12; --bg-2:#10161b; --bg-3:#161e25;
  --ink:#f1f3f4; --mute:#a9b3ba; --dim:#8a959d;
  --line:rgba(255,255,255,.12); --line-2:rgba(255,255,255,.22);
  --accent:#ff5a1f; --accent-hi:#ff7a45; --on-accent:#1a0d07;
  --f-hafen:#e8752e; --f-hafen-t:#ff8a4c;
  --f-kiez:#e0443c;  --f-kiez-t:#ff6f66;
  --f-hanse:#e04fa0; --f-hanse-t:#ff7cc2; /* Spiel-ID „hanse“ = Luden */
  --f:var(--f-hafen); --ft:var(--f-hafen-t);
  --display:'Barlow Condensed','Avenir Next Condensed','Arial Narrow',system-ui,sans-serif;
  --body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:ui-monospace,'SFMono-Regular','Cascadia Mono',Consolas,monospace;
  --gut:clamp(20px,4.4vw,72px);
  --max:1440px;
  --sec:clamp(96px,12vw,188px);
  --ease:cubic-bezier(.2,.7,.2,1);
  --header-h:72px;
}
[data-faction=hafen]{--f:var(--f-hafen);--ft:var(--f-hafen-t);--f-rgb:232,117,46;--fm-gx:37.5%}
[data-faction=kiez]{--f:var(--f-kiez);--ft:var(--f-kiez-t);--f-rgb:224,68,60;--fm-gx:50%}
[data-faction=hanse]{--f:var(--f-hanse);--ft:var(--f-hanse-t);--f-rgb:224,79,160;--fm-gx:62.5%}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 12px);background:var(--bg)}
html{scrollbar-gutter:stable}
html.nav-open,html.modal-open{overflow:hidden}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.65 var(--body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip;min-width:320px}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
ul,ol{margin:0;padding:0;list-style:none}
p{margin:0}
figure{margin:0}
q{quotes:none}q::before,q::after{content:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
::selection{background:var(--accent);color:var(--on-accent)}
.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:16px;top:-80px;z-index:200;background:var(--accent);color:var(--on-accent);padding:12px 18px;font:600 14px/1 var(--body);text-decoration:none;border-radius:2px;transition:top .2s}
.skip:focus{top:16px}
[hidden]{display:none!important}

/* ---------- Typografie ---------- */
h1,h2,h3{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.012em;line-height:.92;margin:0}
.h2{font-size:clamp(52px,8.6vw,136px);text-wrap:balance}
.mono{font:500 11px/1.45 var(--mono);letter-spacing:.16em;text-transform:uppercase}
.eyebrow{display:flex;align-items:center;gap:14px;font:500 12px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
.eyebrow>span{color:var(--accent)}
.eyebrow::after{content:"";height:1px;width:64px;background:var(--line-2)}
.lede{font-size:clamp(17px,1.5vw,21px);line-height:1.62;color:var(--mute);max-width:58ch;text-wrap:pretty}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.sec{position:relative;padding:var(--sec) 0}
.sec::before{content:"";position:absolute;top:0;left:max(var(--gut),calc((100% - var(--max)) / 2 + var(--gut)));right:max(var(--gut),calc((100% - var(--max)) / 2 + var(--gut)));height:1px;background:linear-gradient(90deg,var(--line-2),var(--line) 55%,transparent);pointer-events:none}
.sec.prolog::before{display:none}
.sec-head{display:grid;gap:clamp(22px,2.6vw,34px);margin-bottom:clamp(48px,6vw,96px)}
.sec-head-row{grid-template-columns:1fr auto;align-items:end;gap:32px}
.sec-head-row>div:first-child{display:grid;gap:clamp(22px,2.6vw,34px)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:0 26px;border:1px solid transparent;border-radius:2px;font:600 15px/1 var(--body);letter-spacing:.02em;text-decoration:none;white-space:nowrap;transition:background-color .25s,border-color .25s,color .25s,transform .35s var(--ease)}
.btn svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s var(--ease)}
.btn-primary{background:var(--accent);color:var(--on-accent);border-color:#ff9a6b}
.btn-primary:hover{background:var(--accent-hi)}
.btn-primary:hover svg{transform:translateX(4px)}
.btn-ghost{background:rgba(5,7,10,.4);border-color:var(--line-2);color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink);background:rgba(255,255,255,.06)}
.btn-lg{min-height:58px;padding:0 34px;font-size:16px}
.btn-sm{min-height:40px;padding:0 18px;font-size:14px}
.cta-short{display:none}

/* ---------- Kopfzeile ---------- */
.site-header{position:fixed;inset:0 0 auto 0;z-index:60;height:var(--header-h);transition:background-color .35s,box-shadow .35s}
.site-header::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,7,10,.86),rgba(5,7,10,0));transition:opacity .35s;pointer-events:none}
.site-header::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity .35s;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)} /* Unschärfe auf eigener Ebene: backdrop-filter am Header selbst würde das Vollbildmenü (position:fixed) einsperren */
.site-header.is-solid{background:rgba(5,7,10,.9);box-shadow:0 1px 0 var(--line)}
.site-header.is-solid::before{opacity:0}
.site-header.is-solid::after{opacity:1}
.nav-open .site-header::after{opacity:0}
.scroll-progress{position:absolute;left:0;top:0;z-index:2;width:100%;height:2px;background:var(--accent);transform:scaleX(var(--p,0));transform-origin:left;pointer-events:none}
.bar{position:relative;display:flex;align-items:center;justify-content:space-between;height:100%;gap:24px}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font:800 21px/1 var(--display);letter-spacing:.2em;text-transform:uppercase;padding-left:.2em}
.brand-mark{width:24px;height:24px;fill:none;stroke:var(--accent);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.brand-mark use{fill:var(--accent);fill-opacity:.24}
.brand-mark .q{fill:none}
.nav ul{display:flex;gap:clamp(18px,2.6vw,40px)}
.nav a{position:relative;display:inline-flex;align-items:baseline;gap:8px;text-decoration:none;font:600 13px/1 var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--mute);padding:10px 0;transition:color .25s}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav a:hover,.nav a[aria-current=true]{color:var(--ink)}
.nav a:hover::after,.nav a[aria-current=true]::after{transform:scaleX(1)}
.nav-n{font:500 10px/1 var(--mono);letter-spacing:.1em;color:var(--dim)}
.bar-right{display:flex;align-items:center;gap:14px}
.nav-toggle{display:none;position:relative;width:44px;height:44px;border:1px solid var(--line-2);background:rgba(5,7,10,.5);border-radius:2px;padding:0}
.nav-toggle i{position:absolute;left:12px;right:12px;height:1.5px;background:var(--ink);transition:transform .35s var(--ease)}
.nav-toggle i:first-of-type{top:18px}
.nav-toggle i:last-of-type{top:25px}
.nav-open .nav-toggle i:first-of-type{transform:translateY(3.5px) rotate(45deg)}
.nav-open .nav-toggle i:last-of-type{transform:translateY(-3.5px) rotate(-45deg)}

/* ---------- Hero ---------- */
.hero{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:max(640px,100svh);overflow:hidden;isolation:isolate;background:var(--bg)}
.hero-media{position:absolute;inset:0;z-index:-1;will-change:transform;transform:translate3d(0,var(--py,0px),0)}
.hero-img,.hero-video{position:absolute;left:0;top:-4%;width:100%;height:108%;object-fit:cover;object-position:34% 42%}
.hero-video{opacity:0;transition:opacity 1.6s ease}
.hero-video.is-playing{opacity:1}
.hero-shade{position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(5,7,10,.9) 0%,rgba(5,7,10,.62) 32%,rgba(5,7,10,.08) 68%,rgba(5,7,10,.34) 100%),
  linear-gradient(0deg,var(--bg) 0%,rgba(5,7,10,.78) 14%,rgba(5,7,10,0) 46%),
  linear-gradient(180deg,rgba(5,7,10,.72),rgba(5,7,10,0) 24%)}
.grain{position:absolute;inset:0;pointer-events:none;opacity:.075;-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 76%,transparent 100%);mask-image:linear-gradient(180deg,#000 0%,#000 76%,transparent 100%);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero-inner{position:relative;padding-top:calc(var(--header-h) + 72px);padding-bottom:clamp(92px,13vh,150px);animation:rise 1.4s var(--ease) both}
.kicker{display:flex;align-items:center;gap:12px;margin-bottom:clamp(20px,3vh,34px);font:500 12px/1 var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--mute)}
.kicker i{width:28px;height:2px;background:var(--accent)}
.hero-logo{width:min(900px,66vw);margin:0 0 clamp(18px,3vh,30px)}
.hero-logo img{width:100%;height:auto;filter:drop-shadow(0 8px 44px rgba(0,0,0,.65))}
.hero-claim{font:600 clamp(15px,1.7vw,24px)/1.2 var(--display);letter-spacing:.34em;text-transform:uppercase;color:var(--ink);margin-bottom:14px}
.hero-sub{font-size:clamp(16px,1.35vw,19px);line-height:1.6;color:var(--mute);max-width:46ch;margin-bottom:clamp(26px,4vh,40px)}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px}
.hero-facts{display:flex;flex-wrap:wrap;gap:8px 0;margin-top:clamp(26px,4vh,44px);font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.hero-facts li{padding-right:18px;margin-right:18px;border-right:1px solid var(--line-2)}
.hero-facts li:last-child{border-right:0;padding-right:0;margin-right:0}
.hero-foot{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:26px;color:var(--dim)}
.hero-foot-r{display:flex;align-items:center;gap:clamp(18px,3vw,40px)}
.motion-toggle{border:1px solid var(--line-2);background:rgba(5,7,10,.5);color:var(--mute);font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;padding:10px 14px;border-radius:2px;transition:color .25s,border-color .25s}
.motion-toggle:hover{color:var(--ink);border-color:var(--ink)}
.scroll-cue{display:inline-flex;align-items:center;gap:14px;text-decoration:none;color:var(--mute)}
.scroll-cue i{position:relative;width:1px;height:46px;background:var(--line-2);overflow:hidden}
.scroll-cue i::after{content:"";position:absolute;left:0;top:0;width:1px;height:46%;background:var(--accent);animation:cue 2.4s var(--ease) infinite}
@keyframes cue{0%{transform:translateY(-110%)}100%{transform:translateY(240%)}}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}

/* ---------- Reveal ---------- */
.pre{opacity:0;transform:translateY(30px)}
.pre.in{opacity:1;transform:none;transition:opacity 1s var(--ease) var(--d,0s),transform 1s var(--ease) var(--d,0s)}

/* ---------- Prolog ---------- */
.prolog{padding-top:calc(var(--sec) * .8)}
.prolog .eyebrow{margin-bottom:clamp(26px,3vw,44px)}
.statement{font-size:clamp(42px,7.4vw,124px);line-height:1.02;max-width:15.5em;text-wrap:balance}
.statement em{display:block;font-style:normal;color:var(--accent)}
.prolog-cols{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(40px,7vw,120px);margin-top:clamp(48px,6vw,96px);align-items:end}
.prolog-text{display:grid;gap:20px;max-width:60ch;font-size:clamp(16px,1.3vw,19px);color:var(--mute);line-height:1.7}
.prolog-text strong{color:var(--ink);font-weight:600}
.stats{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line-2)}
.stats>div{padding:22px 0 20px;border-bottom:1px solid var(--line)}
.stats>div:nth-child(odd){padding-right:20px;border-right:1px solid var(--line)}
.stats>div:nth-child(even){padding-left:24px}
.stats dt{font:500 11px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin-bottom:12px}
.stats dd{margin:0;font:800 clamp(52px,5.6vw,88px)/.9 var(--display);color:var(--ink)}

/* ---------- Fraktionen ---------- */
.factions{overflow:hidden;isolation:isolate}
.f-bg{position:absolute;inset:0 0 auto 0;height:min(120vh,980px);z-index:-1;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 22%,rgba(0,0,0,.55) 62%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0%,#000 22%,rgba(0,0,0,.55) 62%,transparent 100%)}
.f-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.1s ease}
.f-bg img.is-on{opacity:.34}
.f-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--bg) 4%,rgba(5,7,10,.6) 52%,rgba(5,7,10,.25) 100%)}
.ftabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,2vw,28px);margin-bottom:clamp(40px,5vw,72px)}
.ftab{position:relative;display:grid;gap:8px;text-align:left;padding:22px 0 18px;border:0;border-top:2px solid var(--line-2);background:none;color:var(--dim);transition:color .3s,border-color .3s}
.ftab::before{content:"";position:absolute;left:0;top:-2px;height:2px;width:100%;background:var(--ftc,var(--f));transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease)}
.ftab[data-faction=hafen]{--ftc:var(--f-hafen)}.ftab[data-faction=kiez]{--ftc:var(--f-kiez)}.ftab[data-faction=hanse]{--ftc:var(--f-hanse)}
.ftab-n{font:500 11px/1 var(--mono);letter-spacing:.18em}
.ftab-name{font:800 clamp(34px,4.6vw,68px)/.92 var(--display);text-transform:uppercase;letter-spacing:.012em}
.ftab-role{font:500 11px/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase}
.ftab:hover{color:var(--mute)}
.ftab[aria-selected=true]{color:var(--ink)}
.ftab[aria-selected=true]::before{transform:scaleX(1)}
.ftab[aria-selected=true] .ftab-n{color:var(--ftc)}
.fpanel{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(36px,6vw,104px);align-items:start}
.fpanel:not([hidden]){animation:fadein .8s var(--ease) both}
@keyframes fadein{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.fp-text{display:grid;gap:22px;align-content:start}
.fp-leader{color:var(--ft)}
.fp-motto{font:800 clamp(34px,3.8vw,58px)/.98 var(--display);text-transform:uppercase;letter-spacing:.012em;padding-left:22px;border-left:3px solid var(--f);text-wrap:balance}
.fp-body{color:var(--mute);max-width:52ch;font-size:16px;line-height:1.7}
.fp-body strong{color:var(--ink);font-weight:600}
.traits{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-top:22px;border-top:1px solid var(--line)}
.traits h3{font:500 11px/1 var(--mono);letter-spacing:.18em;color:var(--dim);margin-bottom:14px}
.traits li{position:relative;padding:7px 0 7px 18px;color:var(--ink);font-size:15px;line-height:1.4;border-bottom:1px solid var(--line)}
.traits li::before{content:"";position:absolute;left:0;top:50%;width:8px;height:1px;background:var(--f)}
.traits div:last-child li::before{background:var(--dim)}
.fp-media{position:relative}
.fp-media .vid-frame,.camp-art{box-shadow:0 40px 140px -60px rgba(var(--f-rgb,255,90,31),.5)}

/* Mediarahmen mit Eckmarken */
.vid-frame{position:relative;aspect-ratio:16/9;background:var(--bg-1);overflow:hidden;border:1px solid var(--line)}
.vid-frame::before,.vid-frame::after{content:"";position:absolute;z-index:3;width:18px;height:18px;pointer-events:none;border:0 solid var(--ftc,var(--ft,var(--accent)))}
.vid-frame::before{left:10px;top:10px;border-width:1.5px 0 0 1.5px}
.vid-frame::after{right:10px;bottom:10px;border-width:0 1.5px 1.5px 0}
.vid-frame img,.vid-frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vid-frame video{background:#000;z-index:1;opacity:0;transition:opacity .5s}
.vid.is-started .vid-frame video{opacity:1}
.vid-poster{z-index:0;transition:opacity .5s}
.vid.is-started .vid-poster{opacity:0}
.vid-play{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:14px;border:0;background:none;color:var(--ink);padding:18px;transition:transform .45s var(--ease)}
.vid-play svg{width:78px;height:78px;padding:25px 22px 25px 28px;border-radius:50%;fill:var(--ink);background:rgba(5,7,10,.5);border:1.5px solid var(--ft);box-shadow:0 0 0 8px rgba(5,7,10,.18);transition:background-color .3s,transform .45s var(--ease)}
.vid-play .mono{text-shadow:0 1px 14px rgba(0,0,0,.9)}
.vid-play:hover svg{background:var(--f);fill:#14090a;transform:scale(1.06)}
.vid.is-started .vid-play{display:none}
.vid-frame::selection{background:transparent}
.vid-cap{display:grid;gap:8px;padding:20px 0 0;max-width:62ch}
.vid-cap .mono{color:var(--dim)}
.vid-cap q{font-size:17px;line-height:1.6;color:var(--ink)}
.vid-cap q::before{content:"„"}.vid-cap q::after{content:"“"}

/* ---------- Kampagne ---------- */
.campaign{background:linear-gradient(180deg,var(--bg) 0%,var(--bg-1) 16%,var(--bg-1) 86%,var(--bg) 100%)}
.seg{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin-bottom:clamp(28px,3vw,44px)}
.seg-label{color:var(--dim);margin-right:22px}
.seg-btn{position:relative;border:1px solid var(--line-2);background:transparent;padding:0 22px;height:44px;margin-left:-1px;font:600 14px/1 var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--mute);transition:color .25s,background-color .25s,border-color .25s}
.seg-label+.seg-btn{margin-left:0}
.seg-btn:hover{color:var(--ink)}
.seg-btn[aria-pressed=true]{background:var(--sf,var(--f));border-color:var(--sf,var(--f));color:#12080a;z-index:1}
.seg-btn[data-faction=hafen]{--sf:var(--f-hafen)}.seg-btn[data-faction=kiez]{--sf:var(--f-kiez)}.seg-btn[data-faction=hanse]{--sf:var(--f-hanse)}
.camp{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,88px);align-items:start}
.camp-art{--ftc:var(--f)}
.camp-img{opacity:0;transition:opacity .7s ease}
.camp-img.is-on{opacity:1}
.camp-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(5,7,10,.78) 0%,rgba(5,7,10,0) 44%),linear-gradient(90deg,rgba(5,7,10,.5),rgba(5,7,10,0) 55%);pointer-events:none}
.camp-video{z-index:2}
.camp-art.is-playing .camp-video{opacity:1}
.camp-over{position:absolute;inset:0;z-index:4;display:flex;align-items:flex-end;justify-content:space-between;padding:clamp(16px,2.4vw,34px);pointer-events:none}
.camp-num{font:800 clamp(88px,13vw,210px)/.74 var(--display);color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.7);letter-spacing:.01em;transition:opacity .4s}
.camp-art.is-playing .camp-num,.camp-art.is-playing .btn-play{opacity:0;pointer-events:none}
.btn-play{pointer-events:auto;min-height:46px;padding:0 20px;background:rgba(5,7,10,.62);border-color:var(--ft);color:var(--ink);font-size:14px;transition:opacity .4s,background-color .25s}
.btn-play svg{fill:var(--ft)}
.btn-play:hover{background:var(--f);color:#14090a}
.btn-play:hover svg{fill:#14090a}
.camp-copy{padding-top:clamp(22px,2.6vw,34px);display:grid;gap:22px}
.camp-head{display:grid;gap:10px}
.camp-place{font:800 clamp(40px,5vw,76px)/.9 var(--display);text-transform:uppercase}
.camp-title{font:600 clamp(18px,1.6vw,23px)/1.2 var(--display);letter-spacing:.2em;text-transform:uppercase;color:var(--ft)}
.camp-title::before{content:"„"}.camp-title::after{content:"“"}
.camp-cols{display:grid;grid-template-columns:3fr 2fr;gap:clamp(20px,3vw,44px)}
.camp-cols p{display:grid;gap:8px;align-content:start;color:var(--mute);font-size:15px;line-height:1.65}
.camp-cols .mono{color:var(--dim)}
.camp-quote{margin:0;padding:18px 0 0 22px;border-left:2px solid var(--f);display:grid;gap:8px}
.camp-who{color:var(--ft)}
.camp-brief{font-size:17px;line-height:1.6;color:var(--ink)}
.camp-brief::before{content:"„"}.camp-brief::after{content:"“"}
.camp-side{display:grid;gap:clamp(28px,3vw,44px);align-content:start}
.camp-list{display:grid;border-top:1px solid var(--line-2)}
.camp-after{margin:0;padding:6px 0 0 22px;border-left:2px solid var(--line-2);display:grid;gap:10px}
.camp-after-who{color:var(--dim)}
.camp-after-text{color:var(--mute);font-size:15.5px;line-height:1.65}
.camp-after-text::before{content:"„"}.camp-after-text::after{content:"“"}
.camp-item{position:relative;display:grid;grid-template-columns:44px 1fr;grid-template-areas:"n place" "n title";column-gap:12px;row-gap:4px;width:100%;text-align:left;padding:20px 0 20px 0;border:0;border-bottom:1px solid var(--line);background:none;color:var(--dim);transition:color .3s,transform .4s var(--ease),padding .4s var(--ease)}
.camp-item::before{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:2px;background:var(--f);transform:scaleY(0);transform-origin:center;transition:transform .45s var(--ease)}
.ci-n{grid-area:n;font:500 12px/1 var(--mono);letter-spacing:.14em;padding-top:8px}
.ci-place{grid-area:place;font:800 clamp(26px,2.7vw,40px)/1 var(--display);text-transform:uppercase;letter-spacing:.012em}
.ci-title{grid-area:title;font:500 12px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase}
.camp-item:hover{color:var(--mute);transform:translateX(6px)}
.camp-item[aria-current=true]{color:var(--ink);padding-left:22px}
.camp-item[aria-current=true]::before{transform:scaleY(1)}
.camp-item[aria-current=true] .ci-n{color:var(--ft)}

/* ---------- Hamburg ---------- */
.atlas{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,88px);align-items:start}
.atlas-view{position:sticky;top:calc(var(--header-h) + 24px);--ftc:var(--accent)}
.atlas-view .vid-frame,.atlas-view{aspect-ratio:16/9}
.atlas-img,.wx-img{opacity:0;transition:opacity .6s ease}
.atlas-img.is-on,.wx-img.is-on{opacity:1}
.atlas-cap{position:absolute;z-index:4;left:0;right:0;bottom:0;display:grid;gap:6px;padding:clamp(40px,6vw,90px) clamp(16px,2.4vw,32px) clamp(16px,2vw,26px);background:linear-gradient(0deg,rgba(5,7,10,.92),rgba(5,7,10,0))}
.atlas-tag{color:var(--accent)}
.atlas-desc{font-size:15px;line-height:1.55;color:var(--ink);max-width:56ch}
.atlas-list{display:grid;border-top:1px solid var(--line-2)}
.atlas-item{position:relative;display:grid;grid-template-columns:34px 1fr auto;align-items:baseline;gap:10px;width:100%;text-align:left;padding:15px 0;border:0;border-bottom:1px solid var(--line);background:none;color:var(--dim);transition:color .3s,transform .4s var(--ease)}
.atlas-item::before{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:2px;background:var(--accent);transform:scaleY(0);transition:transform .45s var(--ease)}
.ai-n{font:500 11px/1 var(--mono);letter-spacing:.14em}
.ai-name{font:800 clamp(22px,2.2vw,32px)/1.05 var(--display);text-transform:uppercase;letter-spacing:.012em}
.ai-meta{font:500 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase}
.atlas-item:hover{color:var(--mute);transform:translateX(6px)}
.atlas-item[aria-current=true]{color:var(--ink);padding-left:18px}
.atlas-item[aria-current=true]::before{transform:scaleY(1)}
.atlas-item[aria-current=true] .ai-n{color:var(--accent)}
.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,56px);margin-top:clamp(64px,8vw,128px);padding-top:clamp(36px,4vw,56px);border-top:1px solid var(--line-2)}
.card{display:grid;gap:18px;align-content:start}
.card h3{font:800 clamp(28px,2.6vw,38px)/.98 var(--display);text-transform:uppercase}
.card p:last-child{color:var(--mute);font-size:15px;line-height:1.7}

/* ---------- Spiel ---------- */
.features{background:linear-gradient(180deg,var(--bg) 0%,var(--bg-1) 18%,var(--bg-1) 100%)}
.feat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.feat{position:relative;display:grid;gap:12px;align-content:start;padding:clamp(26px,2.6vw,38px) clamp(22px,2.2vw,32px) clamp(30px,3vw,44px);background:var(--bg-1);transition:background-color .35s}
.feat:hover{background:var(--bg-2)}
.feat svg{width:34px;height:34px;margin-bottom:14px;fill:none;stroke:var(--accent);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.feat h3{font:800 clamp(22px,1.85vw,27px)/1.02 var(--display);text-transform:uppercase;text-wrap:balance}
.feat p{color:var(--mute);font-size:15px;line-height:1.65}
.wx{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,88px);align-items:center;margin-top:clamp(72px,9vw,150px)}
.wx-view{--ftc:var(--accent)}
.wx-cap{position:absolute;z-index:4;left:0;bottom:0;display:flex;gap:16px;flex-wrap:wrap;padding:18px clamp(16px,2vw,26px);background:linear-gradient(0deg,rgba(5,7,10,.88),rgba(5,7,10,0));width:100%;padding-top:48px}
.wx-name{color:var(--accent)}
.wx-place{color:var(--mute)}
.wx-side{display:grid;gap:22px;align-content:center}
.wx-title{font-size:clamp(44px,5.4vw,84px);line-height:.92}
.wx-text{color:var(--mute);max-width:46ch;line-height:1.7}
.wx-list{display:flex;flex-wrap:wrap;gap:8px}
.wx-item{border:1px solid var(--line-2);background:transparent;padding:0 16px;height:40px;font:600 13px/1 var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--mute);border-radius:2px;transition:color .25s,border-color .25s,background-color .25s}
.wx-item:hover{color:var(--ink);border-color:var(--ink)}
.wx-item[aria-current=true]{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}

.faq{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,104px);margin-top:clamp(72px,9vw,150px);padding-top:clamp(36px,4vw,56px);border-top:1px solid var(--line-2)}
.faq-head{display:grid;gap:22px;align-content:start}
.faq-title{font-size:clamp(40px,4.6vw,72px);line-height:.94}
.faq-list{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{position:relative;list-style:none;cursor:pointer;padding:22px 52px 22px 0;font:600 clamp(19px,1.7vw,24px)/1.25 var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--mute);transition:color .25s}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before,.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:16px;height:1.5px;background:var(--accent);transition:transform .35s var(--ease)}
.faq summary::after{transform:rotate(90deg)}
.faq details[open] summary::after{transform:rotate(0)}
.faq summary:hover,.faq details[open] summary{color:var(--ink)}
.faq details p{padding:0 52px 26px 0;color:var(--mute);max-width:62ch;line-height:1.7}

/* ---------- Galerie ---------- */
.gallery{background:var(--bg)}
.gal-filter{display:flex;gap:0;flex-wrap:wrap}
.gal-filter button{white-space:nowrap;border:1px solid var(--line-2);background:transparent;height:44px;padding:0 20px;margin-left:-1px;font:600 14px/1 var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--mute);transition:color .25s,background-color .25s,border-color .25s}
.gal-filter button:first-child{margin-left:0}
.gal-filter button:hover{color:var(--ink)}
.gal-filter button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#0a0d10;z-index:1}
.gal-note{margin:-40px 0 36px;color:var(--dim);font-size:14px;max-width:70ch;line-height:1.6}
.gal-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(8px,1vw,14px);grid-auto-flow:dense}
.gal-grid li{grid-column:span 4;display:grid}
.gal-grid li.w8{grid-column:span 8;grid-row:span 2}
.gal-grid li.hide{display:none}
.tile{position:relative;display:block;width:100%;aspect-ratio:16/9;padding:0;border:1px solid var(--line);background:var(--bg-1);overflow:hidden;border-radius:0}
.gal-grid li.w8 .tile{aspect-ratio:auto;height:100%;min-height:100%}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease),filter .5s}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,7,10,.82) 0%,rgba(5,7,10,0) 46%);opacity:.9;transition:opacity .4s}
.tile-cap{position:absolute;z-index:2;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:flex-end;gap:12px;padding:16px 18px;text-align:left;transform:translateY(4px);transition:transform .5s var(--ease)}
.tile-cap .mono{color:var(--ink)}
.tile-kind{padding:4px 7px;border:1px solid var(--line-2);color:var(--mute);background:rgba(5,7,10,.45);white-space:nowrap}
.tile[data-kind=spiel] .tile-kind{border-color:var(--accent);color:var(--accent)}
.tile:hover img,.tile:focus-visible img{transform:scale(1.045)}
.tile:hover .tile-cap{transform:none}

/* ---------- Studio ---------- */
.studio{background:linear-gradient(180deg,var(--bg) 0%,var(--bg-1) 20%,var(--bg-1) 100%)}
.studio-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,7vw,120px);align-items:center}
.drop-stage{position:relative;display:grid;place-items:center;aspect-ratio:1/1;max-width:560px;width:100%;margin-inline:auto;border:1px solid var(--line);background:radial-gradient(60% 60% at 50% 46%,rgba(76,141,255,.2),rgba(76,141,255,0) 70%),var(--bg)}
.drop-stage::before,.drop-stage::after{content:"";position:absolute;width:22px;height:22px;border:0 solid rgba(76,141,255,.85)}
.drop-stage::before{left:12px;top:12px;border-width:1.5px 0 0 1.5px}
.drop-stage::after{right:12px;bottom:12px;border-width:0 1.5px 1.5px 0}
.drop{width:58%;height:auto;animation:float 8s ease-in-out infinite}
.drop-eye{transform-box:fill-box;transform-origin:center;animation:blink 7s infinite}
.drop-label{position:absolute;left:0;right:0;bottom:22px;text-align:center;color:var(--dim)}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes blink{0%,93%,100%{transform:scaleY(1)}95.5%{transform:scaleY(.08)}}
.studio-text{display:grid;gap:clamp(22px,2.6vw,34px);justify-items:start}
.studio-more{color:var(--mute);font-size:15px;line-height:1.7;max-width:60ch}
.studio-more a{text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line-2);transition:border-color .25s,color .25s}
.studio-more a:hover{border-bottom-color:var(--accent)}

/* ---------- Abschluss ---------- */
.finale{position:relative;isolation:isolate;overflow:hidden;padding:clamp(120px,18vw,260px) 0;text-align:center}
.finale-img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.finale-shade{position:absolute;inset:0;z-index:-1;background:radial-gradient(70% 70% at 50% 50%,rgba(5,7,10,.5),rgba(5,7,10,.92)),linear-gradient(0deg,var(--bg) 0%,rgba(5,7,10,0) 30%,rgba(5,7,10,0) 70%,var(--bg-1) 100%)}
.finale-inner{display:grid;justify-items:center;gap:clamp(24px,3vw,40px)}
.finale .eyebrow::after{display:none}
.finale .eyebrow::before{content:"";height:1px;width:64px;background:var(--line-2)}
.finale-title{font-size:clamp(52px,10.5vw,176px);line-height:.9;max-width:12em;text-wrap:balance}
.finale-note{color:var(--mute);font-size:15px}

/* ---------- Fußzeile ---------- */
.site-footer{background:var(--bg-1);border-top:1px solid var(--line);padding:clamp(56px,7vw,96px) 0 40px}
.foot-grid{display:grid;grid-template-columns:minmax(0,5fr) repeat(3,minmax(0,2fr));gap:clamp(28px,4vw,72px)}
.foot-logo{font:800 28px/1 var(--display);letter-spacing:.2em;text-transform:uppercase;margin-bottom:12px}
.foot-motto{color:var(--accent);margin-bottom:20px}
.foot-small{color:var(--dim);font-size:13.5px;line-height:1.7;max-width:46ch}
.foot-col h2{font:500 11px/1 var(--mono);letter-spacing:.18em;color:var(--dim);margin-bottom:18px}
.foot-col li+li{margin-top:10px}
.foot-col a{text-decoration:none;color:var(--mute);font-size:15px;transition:color .25s}
.foot-col a:hover{color:var(--ink)}
.foot-drop{display:inline-block;width:20px;height:20px;margin-right:10px;vertical-align:-5px}
.foot-legal{display:grid;gap:8px;margin-top:clamp(40px,5vw,72px);padding-top:26px;border-top:1px solid var(--line);color:var(--dim);font-size:12.5px;line-height:1.7;max-width:var(--max)}
.foot-legal p{max-width:100ch}
.to-top{justify-self:start;margin-top:14px;color:var(--mute);text-decoration:none;border-bottom:1px solid var(--line-2);padding-bottom:4px;transition:color .25s,border-color .25s}
.to-top:hover{color:var(--ink);border-bottom-color:var(--accent)}

video::cue{background:rgba(2,3,5,.8);color:#fff;font-family:var(--body);font-size:clamp(15px,1.5vw,20px);line-height:1.4}

/* ---------- Dialoge: Trailer + Lightbox ---------- */
dialog{border:0;padding:0;margin:0;max-width:none;max-height:none;background:transparent;color:var(--ink)}
dialog::backdrop{background:rgba(2,3,5,.97)}
.theater{width:100vw;height:100dvh;overflow:hidden;background:#020305}
.theater[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.theater-bar{display:flex;align-items:center;justify-content:space-between;padding:14px clamp(16px,3vw,40px)}
.theater-title{color:var(--mute)}
.theater-close,.lb-close{width:44px;height:44px;border:1px solid var(--line-2);background:rgba(5,7,10,.6);border-radius:2px;display:grid;place-items:center;padding:0;transition:border-color .25s,background-color .25s}
.theater-close:hover,.lb-close:hover{border-color:var(--ink);background:rgba(255,255,255,.08)}
.theater-close svg,.lb-close svg,.lb-nav svg,.tc-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.theater-stage{position:relative;display:grid;place-items:center;min-height:0;padding:0 clamp(0px,3vw,40px)}
.theater-video{width:min(100%,calc((100dvh - 160px) * 16 / 9));height:auto;aspect-ratio:16/9;background:#000;object-fit:contain;transition:opacity .16s}
.theater-video.is-ident{width:min(100%,calc(100dvh - 160px));aspect-ratio:1/1}
.theater-video.dip{opacity:0}
.theater-card{position:absolute;left:50%;bottom:16%;transform:translate(-50%,12px);display:grid;justify-items:center;gap:10px;text-align:center;width:min(92%,1100px);pointer-events:none;opacity:0;transition:opacity .5s var(--ease),transform .7s var(--ease)}
.theater-card.on{opacity:1;transform:translate(-50%,0)}
.tc-main{font:800 clamp(30px,5.4vw,84px)/.94 var(--display);text-transform:uppercase;letter-spacing:.04em;text-shadow:0 2px 40px rgba(0,0,0,.85);color:var(--tcc,var(--ink))}
.tc-sub{color:var(--ink);text-shadow:0 1px 20px rgba(0,0,0,.9)}
.theater-cc{position:absolute;left:50%;bottom:4%;transform:translateX(-50%);width:min(92%,900px);text-align:center;font:500 clamp(14px,1.5vw,19px)/1.45 var(--body);color:#fff}
.theater-cc span{display:inline-block;padding:3px 10px;background:rgba(0,0,0,.72);border-radius:2px;margin-top:2px}
.theater-msg{position:absolute;inset:0;z-index:2;display:grid;place-items:center;text-align:center;padding:24px;color:var(--mute);background:rgba(2,3,5,.72)}
.theater-end{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.theater-ctrl{display:flex;align-items:center;gap:16px;padding:14px clamp(16px,3vw,40px) max(18px,env(safe-area-inset-bottom))}
.tc-btn{width:44px;height:44px;border:1px solid var(--line-2);background:rgba(5,7,10,.6);border-radius:2px;display:grid;place-items:center;padding:0;color:var(--ink);transition:border-color .25s}
.tc-btn:hover{border-color:var(--ink)}
.tc-btn[aria-pressed=false].tc-cc{color:var(--dim)}
.tc-btn[data-act=mute][aria-pressed=true]{color:var(--accent)}
.theater .i-play{display:none}
.theater.is-paused .i-play{display:block}
.theater.is-paused .i-pause{display:none}
.tc-progress{position:relative;flex:1;height:2px;background:var(--line-2)}
.tc-progress i{position:absolute;left:0;top:-1px;height:4px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}
.tc-time{min-width:3.2em;text-align:right;color:var(--mute)}
.lightbox{width:100vw;height:100dvh;overflow:hidden;background:rgba(2,3,5,.985)}
.lightbox[open]{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(8px,2vw,28px);padding:clamp(56px,7vh,84px) clamp(10px,2.4vw,36px) clamp(18px,3vh,30px)}
.lb-close{position:absolute;right:clamp(12px,2.4vw,32px);top:clamp(12px,2.4vh,26px);z-index:3}
.lb-nav{width:52px;height:52px;border:1px solid var(--line-2);background:rgba(5,7,10,.6);border-radius:2px;display:grid;place-items:center;padding:0;color:var(--ink);transition:border-color .25s,background-color .25s,transform .35s var(--ease)}
.lb-nav:hover{border-color:var(--ink);background:rgba(255,255,255,.08)}
.lb-prev:hover{transform:translateX(-3px)}.lb-next:hover{transform:translateX(3px)}
.lb-fig{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:16px;height:100%;min-height:0;min-width:0;touch-action:pan-y pinch-zoom}
.lb-img{width:100%;height:100%;min-height:0;object-fit:contain;transition:opacity .25s}
.lb-img.swap{opacity:0}
.lb-cap{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 20px}
.lb-kind{color:var(--accent)}
.lb-text{flex:1;min-width:200px;color:var(--ink);font-size:15px}
.lb-count{color:var(--dim)}

/* ---------- Fraktionsmarke: drei Säulen (FM1a) ----------
   Säule 1 = Hanse, 2 = Kiezpunker, 3 = Luden. Geometrie liegt einmal im Sprite am Seitenanfang; hier nur Zustände.
   .own = die Säule der Fraktion: als Kontur in Fraktionsfarbe, bei Auswahl gefüllt und mit Schein. */
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.fm{--fm-size:24px;--fm-dim:#66707f;position:relative;display:inline-block;flex:none;width:var(--fm-size);height:var(--fm-size);vertical-align:middle}
.fm svg{position:relative;display:block;width:100%;height:100%;overflow:visible;fill:none;stroke:var(--fm-dim);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.fm use{transition:fill-opacity .6s var(--ease),stroke .45s,fill .45s}
.fm .own{stroke:var(--f);fill:var(--f);fill-opacity:0}
.fm::before{content:"";position:absolute;inset:-75%;pointer-events:none;opacity:0;transition:opacity .7s var(--ease);background:radial-gradient(ellipse calc(var(--fm-size) * .6) calc(var(--fm-size) * .95) at var(--fm-gx,50%) 56%,rgba(var(--f-rgb,255,90,31),.5),rgba(var(--f-rgb,255,90,31),0))}
.fm-all .p1{stroke:var(--f-hafen);fill:var(--f-hafen);fill-opacity:.24}
.fm-all .p2{stroke:var(--f-kiez);fill:var(--f-kiez);fill-opacity:.24}
.fm-all .p3{stroke:var(--f-hanse);fill:var(--f-hanse);fill-opacity:.24}
.fm-all{--fm-size:34px;margin-right:14px}
.foot-logo{display:flex;align-items:center}
/* Reiter: Kontur in Fraktionsfarbe, bei Auswahl gefüllt und leuchtend */
.ftab-fm{position:absolute;right:0;top:19px;--fm-size:30px}
.ftab:hover .fm .own{fill-opacity:.4}
.ftab[aria-selected=true] .fm .own,.seg-btn[aria-pressed=true] .fm .own,.fpanel:not([hidden]) .fp-crest .own{fill-opacity:1}
.ftab[aria-selected=true] .fm::before,.fpanel:not([hidden]) .fp-crest .fm::before{opacity:1}
/* Bühne: Abzeichen wie ein Senderlogo in der Ecke des Intro-Rahmens; beim Wechsel füllt sich die Säule und leuchtet kurz auf */
.fp-crest{position:absolute;z-index:3;right:12px;top:12px;display:grid;padding:9px;background:rgba(5,7,10,.5);border:1px solid rgba(255,255,255,.14);border-radius:2px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.fp-crest .fm{--fm-size:42px}
.fpanel:not([hidden]) .fp-crest .own{animation:fm-fill 1.1s var(--ease) .25s both}
.fpanel:not([hidden]) .fp-crest .fm::before{animation:fm-glow 1.8s var(--ease) .25s both}
@keyframes fm-fill{from{fill-opacity:0}to{fill-opacity:1}}
@keyframes fm-glow{0%{opacity:0}38%{opacity:1}100%{opacity:.7}}
/* Kampagne: kleines Abzeichen vor dem Namen; auf der gefüllten Taste in dunkler Tinte */
.seg-btn .fm{--fm-size:16px;margin:-3px 9px 0 -3px}
.seg-btn[aria-pressed=true] .fm svg{stroke:rgba(18,8,10,.5)}
.seg-btn[aria-pressed=true] .fm .own{stroke:#12080a;fill:#12080a}
@media (max-width:479px){
  .seg-btn .fm{display:none} /* schmale Telefone: die drei Tasten sind zu eng für Abzeichen plus Namen */
}
@media (max-width:639px){
  .ftab-fm{--fm-size:22px;top:19px}
  .fp-crest{right:10px;top:10px;padding:7px}
  .fp-crest .fm{--fm-size:32px}
  .fm-all{--fm-size:30px;margin-right:12px}
}

/* ---------- Gameplay-Trailer (LP2) ----------
   Einstieg im Abschnitt „Das Spiel“: Poster mit Abspielknopf neben dem Text. Die Datei selbst wird erst im Theater-Player geladen. */
.gp{--f:var(--accent);--ft:var(--accent);--f-rgb:255,90,31;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,88px);align-items:center;margin-bottom:clamp(64px,8vw,128px)}
.gp-copy{display:grid;gap:22px;align-content:center;justify-items:start}
.gp-eyebrow{color:var(--accent)}
.gp-title{font:800 clamp(38px,4.4vw,68px)/.95 var(--display);text-transform:uppercase;letter-spacing:.012em;text-wrap:balance}
.gp-text{color:var(--mute);max-width:46ch;font-size:16px;line-height:1.7}
.gp-facts{display:flex;flex-wrap:wrap;gap:8px 0;font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.gp-facts li{padding-right:16px;margin-right:16px;border-right:1px solid var(--line-2)}
.gp-facts li:last-child{padding-right:0;margin-right:0;border-right:0}
.gp-cta{margin-top:6px}
.gp-cta svg{fill:currentColor;stroke:none}
.gp-frame{cursor:pointer;box-shadow:0 40px 140px -60px rgba(255,90,31,.5)}
.gp-poster{transition:transform 1.4s var(--ease)}
.gp-frame:hover .gp-poster{transform:scale(1.035)}
.gp-shade{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(0deg,rgba(5,7,10,.72),rgba(5,7,10,0) 50%),radial-gradient(55% 60% at 50% 50%,rgba(5,7,10,.3),rgba(5,7,10,0))}
.gp-ring{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:14px;pointer-events:none}
.gp-ring svg{width:92px;height:92px;padding:30px 26px 30px 34px;border-radius:50%;fill:var(--ink);background:rgba(5,7,10,.5);border:1.5px solid var(--accent);box-shadow:0 0 0 8px rgba(5,7,10,.18);transition:background-color .3s,transform .45s var(--ease)}
.gp-ring .mono{color:var(--ink);text-shadow:0 1px 14px rgba(0,0,0,.9)}
.gp-frame:hover .gp-ring svg{background:var(--accent);fill:#14090a;transform:scale(1.06)}
.gp-chip{position:absolute;z-index:3;left:14px;bottom:14px;display:flex;gap:6px;pointer-events:none}
.gp-chip span{padding:6px 9px;background:rgba(5,7,10,.62);border:1px solid var(--line-2);color:var(--ink);line-height:1}
/* Player: beim Gameplay-Trailer ist die Leiste ein Schieber; nach dem Ende bleibt das Schlussbild stehen, die Knöpfe liegen darunter */
.tc-progress.is-seek{cursor:pointer;touch-action:none}
.tc-progress.is-seek::before{content:"";position:absolute;inset:-16px 0}
.tc-progress.is-seek::after{content:"";position:absolute;top:50%;left:calc(var(--p,0) * 100%);width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(255,90,31,.22)}
.tc-progress.is-seek:focus-visible{outline-offset:10px}
.theater-msg.is-after{place-items:end center;padding:0 24px clamp(14px,4vh,40px);background:linear-gradient(0deg,rgba(2,3,5,.9),rgba(2,3,5,.55) 22%,rgba(2,3,5,0) 44%)}
@media (max-width:959px){
  .gp{grid-template-columns:1fr}
  .gp-frame{order:-1}
}
@media (max-width:639px){
  .gp-ring svg{width:70px;height:70px;padding:22px 19px 22px 25px}
  .gp-chip{left:10px;bottom:10px}
}

/* ---------- Responsiv ---------- */
@media (max-width:1100px){
  .nav ul{gap:18px}
  .nav-n{display:none}
  .feat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .foot-brand{grid-column:1/-1}
}
@media (max-width:959px){
  :root{--header-h:64px}
  .nav-toggle{display:block}
  .nav{position:fixed;inset:0;z-index:-1;display:grid;align-content:center;padding:calc(var(--header-h) + 24px) var(--gut) 40px;background:rgba(5,7,10,.98);visibility:hidden;opacity:0;transition:opacity .35s,visibility 0s .35s}
  .nav-open .nav{visibility:visible;opacity:1;transition:opacity .35s}
  .nav ul{flex-direction:column;gap:6px}
  .nav a{font-size:clamp(34px,10vw,56px);letter-spacing:.06em;padding:8px 0;color:var(--ink)}
  .nav-n{display:inline;font-size:11px}
  .nav-open .site-header{background:rgba(5,7,10,.98)}
  .hero-logo{width:min(720px,88vw)}
  .prolog-cols{grid-template-columns:1fr;align-items:start}
  .fpanel,.camp,.atlas,.wx,.studio-grid{grid-template-columns:1fr}
  .fp-media{order:-1}
  .atlas-view{top:calc(var(--header-h) + 10px);z-index:3}
  .atlas-desc{font-size:13px;line-height:1.45}
  .atlas-cap{padding-top:44px}
  .trio{grid-template-columns:1fr}
  .faq{grid-template-columns:1fr}
  .sec-head-row{grid-template-columns:1fr;align-items:start}
  .gal-note{margin-top:-24px}
  .gal-grid li,.gal-grid li.w8{grid-column:span 6}
  .gal-grid li.w8{grid-column:span 12;grid-row:auto}
  .gal-grid li.w8 .tile{aspect-ratio:16/9;height:auto}
  .camp-cols{grid-template-columns:1fr}
  .drop-stage{max-width:380px}
}
@media (max-width:479px){
  .cta-long{display:none}
  .cta-short{display:inline}
  .brand{font-size:19px;letter-spacing:.14em;gap:10px}
  .bar{gap:12px}
  .bar-right{gap:10px}
}
@media (max-width:639px){
  body{font-size:15.5px}
  .btn-lg{width:100%}
  .hero-cta{width:100%}
  .hero-inner{padding-top:calc(var(--header-h) + 36px);padding-bottom:104px}
  .hero-img,.hero-video{object-position:76% 44%}
  .hero-facts{flex-direction:column;gap:9px}
  .hero-facts li{margin:0;padding:0;border:0;display:flex;align-items:center;gap:12px}
  .hero-facts li::before{content:"";width:14px;height:1px;background:var(--accent)}
  .hero-shade{background:linear-gradient(0deg,var(--bg) 0%,rgba(5,7,10,.86) 26%,rgba(5,7,10,.34) 58%,rgba(5,7,10,.5) 100%),linear-gradient(180deg,rgba(5,7,10,.7),rgba(5,7,10,0) 22%)}
  .hero-foot .hero-coord{display:none}
  .hero-foot{justify-content:flex-end}
  .ftabs{gap:10px}
  .ftab-role{display:none}
  .ftab-name{font-size:clamp(19px,5.3vw,34px)}
  .traits{grid-template-columns:1fr}
  .stats dd{font-size:56px}
  .feat-grid{grid-template-columns:1fr}
  .gal-grid li,.gal-grid li.w8{grid-column:span 12}
  .foot-grid{grid-template-columns:1fr 1fr}
  .gal-filter{width:100%}
  .gal-filter button{flex:1;padding:0 6px;font-size:12px;letter-spacing:.06em}
  .seg-label{width:100%;margin:0 0 10px}
  .seg-btn{flex:1;padding:0 8px}
  .lightbox[open]{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;padding-bottom:16px}
  .lb-nav{position:absolute;bottom:14px;width:48px;height:48px;z-index:3}
  .lb-prev{left:14px}.lb-next{right:14px}
  .lb-fig{grid-column:1}
  .lb-cap{padding-bottom:64px}
  .theater-card{bottom:22%}
}
@media (min-width:1900px){
  :root{--max:1640px;--gut:clamp(48px,5vw,112px)}
  body{font-size:17px}
  .hero-logo{width:min(1040px,54vw)}
}
@media (min-width:2500px){
  :root{--max:1980px}
  body{font-size:19px}
  .lede{font-size:24px}
  .mono,.eyebrow{font-size:13px}
}
@media (hover:none){
  .camp-item:hover,.atlas-item:hover{transform:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .pre{opacity:1;transform:none}
  .hero-media{transform:none!important;will-change:auto}
  .hero-video{display:none}
}
@media (forced-colors:active){
  .btn-primary,.wx-item[aria-current=true],.seg-btn[aria-pressed=true]{forced-color-adjust:none}
}
