html:has(body.admin-body){height:auto!important;overflow-y:auto!important;overscroll-behavior:auto!important}
body.admin-body{position:static!important;inset:auto!important;width:100%!important;height:auto!important;min-height:100dvh!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior-y:auto!important;-webkit-overflow-scrolling:touch!important}
body.admin-body>.shell{height:auto!important;min-height:100dvh!important;max-height:none!important;overflow:visible!important;padding-bottom:max(72px,env(safe-area-inset-bottom))!important}

.d4w-entry-splash{position:fixed;z-index:260;inset:0;display:grid;place-items:center;padding:24px;background:#f2efe7;color:#111;animation:d4w-entry-out 4.2s ease both}.d4w-entry-splash:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 15%,#f0ad7244,transparent 34%),radial-gradient(circle at 85% 82%,#80d6a444,transparent 36%)}.d4w-entry-card{position:relative;width:min(88vw,34rem);display:grid;justify-items:center;gap:16px;text-align:center}.d4w-entry-card img{display:block;width:100%;height:auto}.d4w-entry-card span{font:800 .68rem monospace;letter-spacing:.2em}.d4w-entry-card strong{font:700 clamp(1.3rem,6vw,2.4rem) Georgia,serif}.welcome-invitation{justify-content:center;gap:9px;text-align:center;background:linear-gradient(155deg,#eef0e7,#d8e6dc);color:#111;border-color:#80a98e}.welcome-invitation .kicker{color:#456a54}.welcome-invitation h2{margin-block:0}.welcome-invitation p{color:#334039;font-size:clamp(.86rem,3.8vw,1rem);line-height:1.42;margin-block:0}.welcome-invitation .action{margin-top:2px}.d4w-welcome-mark{width:100%;padding:9px;background:#fff;border:1px solid #9ba89f}.d4w-welcome-mark img{display:block;width:100%;height:auto}.start-kroki{position:relative;width:min(100%,17rem);margin:1px auto 0;overflow:hidden;border:1px solid #446b59;background:#10251f;box-shadow:0 8px 24px #17332833}.start-kroki img{display:block;width:100%;height:auto}.start-kroki figcaption{position:absolute;left:8px;top:8px;padding:4px 7px;background:#07100ddd;color:#d8f5df;font:800 .56rem/1 monospace;letter-spacing:.12em;border:1px solid #80d6a4}@media(max-height:760px){.welcome-invitation{gap:6px}.welcome-invitation .d4w-welcome-mark{padding:6px}.welcome-invitation p{font-size:.82rem;line-height:1.28}.start-kroki{width:min(100%,12.5rem)}}@keyframes d4w-entry-out{0%{opacity:0;transform:scale(1.02)}12%,82%{opacity:1;transform:none}100%{opacity:0;visibility:hidden}}

.cinema-splash{position:fixed;z-index:200;inset:0;overflow:hidden;background:#020403;color:#e9eee9;display:grid;place-items:center;text-align:center;pointer-events:all}
.cinema-splash .splash-old,.cinema-splash .splash-new{position:absolute;inset:0;display:grid;place-items:center;padding:28px}
.cinema-splash .splash-old{background:linear-gradient(155deg,#17251d,#050806);animation:splash-old 7s ease both}
.cinema-splash .splash-new{opacity:0;background:repeating-linear-gradient(0deg,#06100d,#06100d 3px,#091713 4px);animation:splash-new 7s ease both}
.cinema-splash .splash-noise{position:absolute;inset:0;opacity:0;background-image:repeating-radial-gradient(circle at 30% 40%,#fff 0 1px,transparent 1px 4px);animation:splash-noise 7s steps(9) both}
.cinema-splash .splash-card{position:relative;z-index:2;width:min(90vw,30rem);box-sizing:border-box;border:1px solid #bda55f;padding:20px;color:#e6d58f;font:700 .72rem monospace;letter-spacing:.14em;text-align:center;justify-self:center;animation:splash-card 7s ease both}.cinema-splash .splash-card b{display:block;max-width:100%;margin:8px auto 0;color:#eee7d4;font:900 clamp(1.2rem,6.4vw,2.65rem)/1.08 Georgia,serif;text-align:center;overflow-wrap:normal;word-break:normal;hyphens:none}.cinema-splash .splash-card span,.cinema-splash .splash-card em{overflow-wrap:normal;word-break:normal;hyphens:none;text-align:center}
.cinema-splash .splash-card span,.cinema-splash .splash-card em{display:block}.cinema-splash .splash-card em{margin-top:14px;color:#8fe3b1;font-style:normal;line-height:1.7}
@keyframes splash-old{0%,2%{opacity:1;filter:none}18%{opacity:.48;filter:brightness(.45)}58%,100%{opacity:0;filter:brightness(.1)}}
@keyframes splash-new{0%,8%{opacity:0}38%{opacity:.52}72%,100%{opacity:1}}
@keyframes splash-noise{0%{opacity:0}7%,82%{opacity:.5}18%{transform:translateX(9px)}31%{transform:translateX(-7px)}45%{transform:translateY(5px)}59%{transform:translate(-5px,-3px)}72%{transform:translateX(4px)}92%,100%{opacity:0}}
@keyframes splash-card{0%{opacity:.35;transform:scale(.98)}5%,100%{opacity:1;transform:none}}

.wuhrplatz-kroki{display:block;width:min(100%,19rem);max-height:34dvh;object-fit:contain;margin:8px auto;border:1px solid #52665e;border-radius:12px;background:#07110f}
.post-route{justify-content:center;gap:18px}.post-route h2{font-size:clamp(1.2rem,5vw,1.7rem);line-height:1.42}.game-menu-panel .menu-help-first .action+ .action{margin-top:8px}
.money-findings{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.money-findings span{min-width:0;padding:6px 4px;border:1px solid #35423c;border-radius:6px;color:#68756e;font:700 clamp(.42rem,1.8vw,.58rem)/1.2 monospace;text-align:center}.money-findings span.found{border-color:#b99b4d;background:#211b0c;color:#e6cd76;box-shadow:0 0 12px #d5b85b22}

.transfer-scene{padding:max(18px,env(safe-area-inset-top)) 18px max(24px,calc(env(safe-area-inset-bottom) + 16px))}
.key-scan{position:relative;width:min(92vw,28rem);min-height:min(64dvh,34rem);display:grid;place-items:center;align-content:center;gap:18px;border:1px solid #52655b;border-radius:14px;background:repeating-linear-gradient(0deg,#07110d,#07110d 4px,#0c1914 5px);overflow:hidden;animation:key-file-to-vault 11s ease both}
.key-scan .scan-copy{color:#8fe3b1;font:.62rem monospace;letter-spacing:.14em}.key-scan .scan-key{display:grid;place-items:center;gap:12px;width:min(86%,25rem);color:#efd780;animation:key-object-in 11s cubic-bezier(.2,.8,.2,1) both}.key-scan .scan-key svg{width:100%;max-width:320px;overflow:visible}.key-scan .scan-key circle,.key-scan .scan-key path{fill:none;stroke:currentColor;stroke-width:12;stroke-linejoin:round}.key-scan .scan-key strong{font:800 clamp(.68rem,3vw,.92rem)/1.4 monospace;letter-spacing:.1em}.key-scan .key-piece{opacity:0;animation:key-piece-in 11s ease both}.key-scan .key-bow{animation-delay:.25s}.key-scan .key-shaft{animation-delay:.7s}.key-scan .key-teeth{animation-delay:1.05s}.key-scan .scanner-beam{position:absolute;left:9%;right:9%;height:2px;top:49%;background:#8fe3b1;box-shadow:0 0 18px #8fe3b1;opacity:0;animation:key-long-scan 1.35s ease-in-out 5;animation-delay:2.7s}.key-scan .scan-stamp{opacity:0;color:#8fe3b1;font:800 .72rem monospace;animation:key-stamp 11s ease both}
@keyframes key-char-in{0%,3%{opacity:0;transform:translate(var(--sx),var(--sy)) rotate(var(--r)) scale(1.5);filter:blur(3px)}18%,100%{opacity:1;transform:none;filter:none}}
@keyframes key-piece-in{0%,4%{opacity:0;transform:translateY(80px) rotate(12deg);filter:blur(5px)}20%,100%{opacity:1;transform:none;filter:none}}@keyframes key-object-in{0%,8%{transform:scale(.7)}24%,100%{transform:none}}
@keyframes key-long-scan{0%,100%{transform:translateY(-38px);opacity:0}15%{opacity:.8}50%{transform:translateY(38px);opacity:1}85%{opacity:.8}}
@keyframes key-stamp{0%,66%{opacity:0;transform:scale(1.5)}70%,80%{opacity:1;transform:none}88%,100%{opacity:0}}
@keyframes key-file-to-vault{0%,80%{opacity:1;transform:none}94%,100%{opacity:0;transform:translate(calc(50vw - 48px),calc(-50dvh + 55px)) scale(.06)}}
body:has(.transfer-scene) .game-menu{z-index:280}body:has(.transfer-scene) .game-menu>summary{border-color:#efd780;color:#efd780;animation:vault-key-received 1s ease-in-out 7.7s 3;box-shadow:0 0 0 #efd78000}@keyframes vault-key-received{50%{transform:scale(1.2);background:#26301d;box-shadow:0 0 28px #efd780}}
.rules-intro{gap:18px}.rules-intro strong{white-space:pre-line;line-height:1.55}.history-choice{justify-content:center}.history-choice .briefing-ping p{margin-top:14px;color:#94a39a}.history-actions{display:grid;gap:10px;margin-top:20px}
.pin-sent-overlay{position:fixed!important;z-index:360!important;inset:0!important}

.game-menu>summary.help-pending{animation:help-lock-urgent .75s ease-in-out infinite;border-radius:50%;background:#2a1b0e;box-shadow:0 0 0 0 #f0ad72}.game-menu>summary.help-pending span{font-size:.62rem;font-weight:900;color:#fff;background:#d46c3c}
@keyframes help-lock-urgent{50%{transform:scale(1.15);color:#ffd58c;box-shadow:0 0 0 10px #f0ad7200,0 0 26px #f0ad72}}
.mission-stage:has(.transmission){box-sizing:border-box;padding:0 2px max(22px,calc(env(safe-area-inset-bottom) + 16px))}.transmission{height:calc(100% - 2px);box-sizing:border-box;margin-bottom:2px;box-shadow:inset 0 0 0 1px var(--green)!important}.transmission #story-finish{margin-bottom:max(12px,env(safe-area-inset-bottom))}
.dossier-progress{height:7px;border-radius:99px;background:#4b4032;overflow:hidden;margin:12px 0}.dossier-progress span{display:block;height:100%;background:#80d6a4;transition:width .35s ease}
.signal-round-head{position:relative;z-index:4;margin:2px 0 12px;display:flex;align-items:center;justify-content:center;color:#aab8b0}.signal-earned{display:flex;gap:9px}.signal-earned b{width:42px;height:50px;display:grid;place-items:center;border:1px solid #3e4b44;background:#07100c;color:#526158;font:900 1.35rem monospace}.signal-earned b.won{border-color:#d9bb5d;color:#f0d77f;box-shadow:0 0 16px #d9bb5d55}
.sequence-order.live-timing{position:relative;flex:1;min-height:190px;margin:auto 0;align-items:center}.sequence-order.live-timing span{position:absolute;top:50%;width:min(56vw,15rem);height:min(56vw,15rem);opacity:.08;animation:live-master-signal-cycle var(--signal-cycle) linear var(--signal-delay) infinite both}.sequence-order.live-timing span:not(:first-child){left:50%;transform:translate(-50%,-50%)}.sequence-order.live-timing span:first-child{left:50%;transform:translate(-50%,-50%)}
@keyframes live-master-signal-cycle{0%,11%{opacity:1;box-shadow:0 0 65px 20px currentColor}16%,100%{opacity:.08;box-shadow:0 0 0 currentColor}}
.signal-progress{display:flex;justify-content:center;gap:5px;margin-top:8px}.signal-progress i{width:8px;height:8px;border-radius:50%;background:#344039}.signal-progress i.done{background:#8fe3b1;box-shadow:0 0 8px #8fe3b1}
.signal-stage-win{position:fixed;z-index:75;inset:0;display:grid;place-content:center;gap:12px;text-align:center;background:#06100ded;pointer-events:none;animation:signal-win-out 3.8s ease both}.signal-stage-win small{color:#8fe3b1;letter-spacing:.15em}.signal-stage-win strong{font:900 clamp(1.7rem,9vw,3.2rem) Georgia,serif;color:#efd780}.signal-stage-win span{color:#9cabA3;font:.68rem monospace}@keyframes signal-win-out{0%,75%{opacity:1}100%{opacity:0;visibility:hidden}}
.money-final-reveal{height:100%;display:grid;place-content:center;gap:12px;text-align:center;padding:24px;background:repeating-linear-gradient(0deg,#07100d,#07100d 4px,#0c1914 5px);border:1px solid #b99c53}.money-final-reveal strong{font:900 clamp(2.4rem,12vw,4.8rem) Georgia,serif;color:#ead078}.money-final-reveal span,.money-final-reveal b{font:800 .82rem/1.5 monospace;letter-spacing:.1em}.money-final-reveal b{color:#80d6a4}
.money-round-splash{animation-duration:4.5s!important}
.money-team-success{display:grid;place-items:center;text-align:center;gap:7px;padding:18px 10px;margin-bottom:13px;border:1px solid #6fa984;background:radial-gradient(circle,#183425,#07100c);animation:money-success-in .55s ease both}.money-team-success>span{width:50px;height:50px;display:grid;place-items:center;border:2px solid #8fe3b1;border-radius:50%;color:#8fe3b1;font-size:25px;box-shadow:0 0 25px #8fe3b166}.money-team-success h2{margin:0!important}@keyframes money-success-in{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:none}}
.review-client-badge{position:fixed;z-index:240;top:4px;left:50%;transform:translateX(-50%);padding:3px 7px;border:1px solid #e6c86e;background:#090d0bcc;color:#e6c86e;font:800 8px monospace;letter-spacing:.16em;pointer-events:none}.review-launch{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;border-color:#6aa783}.review-launch h2{margin:4px 0 8px}.review-launch form{display:grid;gap:8px;min-width:150px}.review-launch label{display:grid;gap:4px;color:var(--muted);font-size:10px;text-transform:uppercase}.review-launch select{padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text)}@media(max-width:560px){.review-launch{grid-template-columns:1fr}}
.scan-code{display:grid;gap:8px;width:min(94%,26rem);padding:16px 10px;border:1px solid #bda55f;background:#0b130f;color:#efd780;font:800 clamp(.55rem,2.7vw,.78rem)/1.25 monospace;letter-spacing:.02em;white-space:nowrap;animation:key-object-in 11s cubic-bezier(.2,.8,.2,1) both}.scan-code>span{display:flex;justify-content:center}.scan-code i{font:inherit;font-style:normal;opacity:0;animation:key-char-in .75s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(.05s * var(--i))}

.game-error-dialog{position:fixed;inset:0;z-index:500;display:grid;place-items:center;padding:24px;background:#0009}.game-error-dialog section{width:min(100%,28rem);box-sizing:border-box;border:1px solid #7eaa91;border-radius:14px;background:#101b15;color:#e9eee9;padding:24px}.game-error-dialog p{line-height:1.5}.game-error-dialog .action{width:100%}.comic-image-credit{display:block;margin-top:8px;font-size:.55rem;opacity:.7}.comic-image-credit a{color:inherit}
/* Self-guided play: compact help navigation and explicit device recovery. */
.help-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;position:sticky;top:-13px;background:var(--panel);padding:10px 0;z-index:1}.help-tabs button{padding:10px 4px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text);font:inherit}.help-tabs button[aria-pressed=true]{background:var(--green);color:#102118}.game-menu-panel [hidden]{display:none!important}.game-menu-panel p{font-size:13px;line-height:1.5}.help-member{border-top:1px solid var(--line);padding:12px 0}.help-member strong{overflow-wrap:anywhere}.input-assistance{padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.input-assistance p,.assistance-status{font-size:12px;line-height:1.35;margin:6px 0}.input-assistance .action{padding:9px;font-size:12px}.mission-stage:has(>.input-assistance),.mission-stage:has(>.assistance-status){display:flex;flex-direction:column;gap:6px}.mission-stage>.input-assistance,.mission-stage>.assistance-status{flex:0 0 auto}.mission-stage:has(>.input-assistance)>.mission-card,.mission-stage:has(>.assistance-status)>.mission-card{flex:1;min-height:0;height:auto;overflow:auto}.reference-preview{flex-direction:column;gap:5px;min-height:0}.reference-preview img{display:block;width:100%;height:clamp(85px,20dvh,180px);object-fit:contain}.peil-reference-inline{display:block;width:100%;height:18dvh;object-fit:contain;margin:8px auto}.mission-card.private{overflow:auto}.replacement-dialog{width:min(420px,calc(100vw - 32px));max-height:90dvh;overflow:auto;box-sizing:border-box;background:var(--panel);color:var(--text);border:1px solid var(--green);border-radius:14px;padding:18px}.replacement-dialog::backdrop{background:#000c}.replacement-dialog h2{font-size:20px;overflow-wrap:anywhere}.replacement-dialog p{font-size:13px;line-height:1.45}.replacement-qr svg{display:block;width:min(100%,280px);height:auto;margin:auto}.replacement-dialog .action{margin-top:8px}.assisted-sequence span{animation:none!important;opacity:.22}.assisted-sequence .current-signal{opacity:1;outline:3px solid white;outline-offset:3px;box-shadow:0 0 18px currentColor}.color-signal{touch-action:manipulation}.terminal-sequence{overflow:auto}

.game-menu>summary.help-introduction{animation:help-introduction 1.4s ease-in-out infinite;border-color:var(--green);color:var(--green)}@keyframes help-introduction{50%{box-shadow:0 0 0 10px #80d8aa30,0 0 20px #80d8aa80;transform:scale(1.12)}}@media(prefers-reduced-motion:reduce){.game-menu>summary.help-introduction{animation:none;box-shadow:0 0 0 4px #80d8aa60}}
.group-departure.departure-blue{--green:#77c8e8;border-color:#77c8e8;background:linear-gradient(150deg,#112a38,#101918)}.group-departure.departure-gold{--green:#e5c96d;border-color:#e5c96d;background:linear-gradient(150deg,#332c16,#171b14)}.group-departure h2{color:var(--green)}.signal-feedback{min-height:2.8em;color:var(--green);font-size:13px!important;line-height:1.35!important;margin:5px 0!important;flex:0 0 auto}

.sequence-order.live-timing span{animation:none!important;opacity:.08;box-shadow:none}.sequence-order.live-timing span.live-signal-on{opacity:1;box-shadow:0 0 65px 20px currentColor}

/* Numeric bearings: one clear field, including on narrow phones. */
.peil-check.peil-numeric{display:flex;flex-direction:column;gap:12px}.peil-numeric>label{display:block;padding:0;border:0}.peil-numeric>input{display:block;width:100%;min-width:0;padding:14px;font-size:24px;background:var(--panel2);color:var(--text);border:1px solid var(--green);border-radius:8px}.peil-numeric>p{font-size:14px;margin:0;line-height:1.4}

/* Internal bigscreen review: keep transitions brief, matching the team event. */
.review-client .cinema-splash,.review-client .cinema-splash *{animation-duration:.85s!important;animation-delay:0s!important}
.review-client .d4w-entry-splash,.review-client .d4w-entry-splash *{animation-duration:.65s!important;animation-delay:0s!important}

.rendezvous-success{gap:12px;text-align:center}.rendezvous-success>img{width:100%;flex:1;min-height:0;object-fit:contain}.rendezvous-success>p{font-size:14px;line-height:1.4}.peil-target{justify-content:space-between;gap:16px}.peil-target-image{width:min(100%,380px);aspect-ratio:1;overflow:hidden;border-radius:50%;margin:auto;flex-shrink:0}.peil-target-image img{display:block;width:100%;height:100%;object-fit:cover}.peil-final>p{white-space:pre-line}.packet-carrier{margin-top:auto;padding-top:24px;border-top:1px solid var(--line)}
