@font-face{font-family:Portal;src:local("Bahnschrift");font-display:swap}
:root{color-scheme:dark;--bg:#090f1b;--panel:#111c2b;--ink:#edf8fa;--muted:#a8bdc8;--accent:#9cfaff;--line:#304254;--mono:"Cascadia Mono",Consolas,monospace}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 90% 6%,#182a40 0,transparent 50%),var(--bg);color:var(--ink);font:17px/1.5 Portal,"Trebuchet MS",sans-serif;min-height:100vh}button,input,select{font:inherit}a{color:inherit;text-decoration:none}button,nav a,.primary{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.55rem .95rem;border:1px solid var(--line);background:#172434;color:var(--ink);border-radius:5px;font-weight:700;cursor:pointer;touch-action:manipulation}button:hover,nav a:hover,button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}button:active{transform:translateY(1px)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.primary{background:var(--accent);color:#091421;border-color:var(--accent)}.primary:hover{background:#edf8fa;color:#091421}button.ghost{margin-top:1.35rem;background:transparent;color:var(--muted)}.big{min-height:64px;min-width:70px;font-size:1.3rem}header{display:flex;justify-content:space-between;align-items:center;padding:1rem clamp(1rem,5vw,4.5rem);border-bottom:1px solid var(--line);gap:1rem}.logo{font-family:var(--mono);font-weight:bold;white-space:nowrap;letter-spacing:.03em}.logo b,.logo span{color:var(--accent)}.logo b{margin-right:.5em}#status,.eyebrow,footer,.room-chip{font:700 .75rem/1.6 var(--mono);letter-spacing:.13em;color:var(--muted)}#status{text-align:right}#status i{display:inline-block;width:7px;height:7px;background:#f6e077;border-radius:50%;vertical-align:1px}#status .on{background:#6bf2ac;box-shadow:0 0 10px #6bf2ac}main{margin:auto;max-width:1550px;padding:clamp(1rem,4vw,4rem)}h1,h2,h3,p{margin:0 0 .75rem}h1,h2,h3{line-height:1.07}h1{font-size:clamp(2rem,5vw,5rem);letter-spacing:-.045em;margin:.5rem 0 1rem}h2{font-size:clamp(1.5rem,3vw,2.5rem);margin:.5rem 0 1rem}.eyebrow{color:var(--accent);text-transform:uppercase}.lead{font-size:clamp(1rem,2vw,1.35rem);max-width:42ch;color:var(--muted)}.home{min-height:70vh;display:grid;align-items:center;isolation:isolate;position:relative;overflow:hidden;padding:2rem clamp(0rem,2vw,2rem)}.hero{z-index:1}.hero h1{font-size:clamp(3.4rem,10.5vw,10.8rem);line-height:.88;margin:.3em 0 .23em}.hero em{display:block;color:var(--accent);font-style:normal;text-shadow:0 0 40px #65d5ff52}.hero .lead{max-width:34ch;text-shadow:0 1px 8px var(--bg)}nav,.button-row,.inline{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}nav{margin:1.3rem 0}.orbit{position:absolute;right:-3%;top:2%;width:min(62vw,790px);aspect-ratio:1;display:grid;place-items:center;background:radial-gradient(circle,#0d1922 18%,#224c5b75 34%,transparent 64%);opacity:.95}.orbit span,.scene-icon{font-size:clamp(6rem,23vw,21rem);color:var(--accent);line-height:1;text-shadow:0 0 25px var(--accent),0 0 90px #17789a;animation:float 5s ease-in-out infinite}.ring{position:absolute;width:76%;aspect-ratio:1;border:2px dashed var(--accent);border-radius:50%;box-shadow:0 0 50px #3384a888,inset 0 0 50px #3384a888;animation:spin 33s linear infinite;opacity:.45}.ring:after,.ring:before{content:"";position:absolute;inset:8%;border:1px solid var(--accent);transform:rotate(45deg);opacity:.7}.ring:after{inset:16%;border-style:dotted;border-radius:50%}.home footer{align-self:end;margin-top:2rem;border-top:1px solid var(--line);padding-top:1rem;display:flex;justify-content:space-between;gap:1rem}.panel{background:linear-gradient(150deg,#172538,var(--panel) 67%);border:1px solid var(--line);border-top:3px solid var(--accent);padding:clamp(1rem,3vw,2.4rem);border-radius:6px}.entry{max-width:740px;margin:8vh auto}.quiet{display:inline-block;color:var(--muted);margin-top:1.5rem}.layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(225px,1fr);gap:1rem}.side{display:flex;flex-direction:column;gap:.6rem}.side details,.volume{border:1px solid var(--line);border-radius:5px;padding:.7rem 1rem;background:#111c2b}.volume label{font-size:.92rem}.volume input{padding:0;min-height:27px}.volume button{margin-top:.45rem}.map{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}.map li{border:1px solid var(--line);color:var(--muted);background:#101a28;padding:.5rem;display:flex;gap:.65rem;align-items:center;border-radius:4px}.map li b{font-size:1.35rem;width:1.65rem;text-align:center;color:var(--world)}.map small{font-family:var(--mono);opacity:.8}.map .active{border-color:var(--world);color:#fff}.map .done b{color:#fff}.map .done small:after{content:" ✓"}.right{float:right}.line{font-size:1.12rem;color:var(--muted)}.line b{color:var(--accent);display:block;font:700 .8rem var(--mono);margin-bottom:.35rem}.note{color:var(--accent);border-left:3px solid;padding-left:.65rem}.controls{display:grid;justify-items:start;gap:.7rem;margin-top:1.3rem}.signal{padding:.8rem 1rem;background:#081522;border-left:3px solid var(--accent)}.signal small,.items span{display:block;color:var(--muted)}.detector{font-size:4rem;color:var(--accent);line-height:1;animation:pulse 2s infinite}form{display:grid;gap:.65rem;max-width:100%;width:max-content}form label,.volume label{display:grid;gap:.25rem;color:var(--muted)}input,select{background:#0c1522;border:1px solid #52667a;border-radius:4px;color:var(--ink);min-height:45px;padding:.45rem .7rem;max-width:100%}input[name=code],input[name=room]{width:8.5rem;font-family:var(--mono);letter-spacing:.12em}fieldset{border:1px solid var(--line);padding:.35rem .6rem .55rem;margin:0;min-width:0}legend{color:var(--muted);font-size:.85rem}.choices{display:flex;gap:.35rem;flex-wrap:wrap}.choices label{display:grid;position:relative}.choices input{position:absolute;opacity:0;inset:0;width:100%;margin:0;cursor:pointer}.choices span{display:grid;place-items:center;width:46px;height:46px;background:#0b1522;border:2px solid transparent;font-size:1.45rem;color:var(--accent)}.choices input:checked+span{border-color:var(--accent)}.choices input:focus-visible+span{outline:2px solid white}.craft,.targets{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.craft button,.targets button{width:58px;height:58px;font-size:1.4rem}.targets{grid-template-columns:repeat(2,1fr)}.targets .active{border-color:var(--accent);color:var(--accent);animation:pulse 1.3s infinite}.meter,.figures{font:700 clamp(1.5rem,4vw,3.2rem) var(--mono);color:var(--accent)}.figures{display:flex;gap:.42em}.memory{font:700 1.2rem Portal,sans-serif;color:var(--accent)}video,canvas{max-width:100%;width:min(560px,100%);border-radius:4px}video[hidden]{display:none}.tv{min-height:73vh;display:grid;grid-template-rows:auto 1fr auto;gap:.4rem}.tv-top{display:flex;justify-content:space-between;align-items:center;gap:1rem}.room-chip b{font-size:1.2rem;color:var(--accent)}.scene{position:relative;display:grid;isolation:isolate;place-items:center;min-height:240px;overflow:hidden;border:1px solid var(--line);background:radial-gradient(ellipse at center,#19354d,#0d1628 65%)}.scene .ring{width:min(45%,520px)}.scene-icon{font-size:clamp(7rem,23vw,19rem);transform:rotate(calc(var(--strike)*4deg))}.stage-1 .scene{background:repeating-linear-gradient(90deg,#0b191655 0 40px,transparent 40px 80px),radial-gradient(ellipse,#234f43,#0a151d 68%)}.stage-2 .scene{background:repeating-linear-gradient(120deg,#6e2c5a33 0 4px,transparent 4px 50px),radial-gradient(ellipse,#541c60,#141126 68%)}.stage-3 .scene{background:radial-gradient(ellipse,#494027,#1a1b20 68%)}.stage-4 .scene{background:repeating-linear-gradient(0deg,#0085bb20 0 12px,transparent 12px 34px),radial-gradient(ellipse,#224762,#101a2f 68%)}.stage-5 .scene{background:radial-gradient(ellipse,#5b1636,#171024 68%)}.tv-caption{padding:.9rem 0}.tv-caption h1{font-size:clamp(2rem,6vw,5.5rem);margin:.2rem 0 .4rem}.tv-caption p{font-size:clamp(1.1rem,2.6vw,2rem);color:var(--muted);max-width:65ch}.scene .figures,.boss{position:absolute;background:#0b1121ee;border:1px solid var(--accent);padding:.6rem 1rem}.boss{bottom:1rem;width:min(85%,520px)}.boss label{display:flex;justify-content:space-between}.boss progress{width:100%;accent-color:var(--accent)}.director-head{margin-bottom:1.5rem}.sessions{margin-top:.6rem}.panel .button-row+.button-row{margin-top:.65rem}.cards-area{margin-top:2rem}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:.65rem}.qr-card{background:#121e2b;border:1px solid var(--line);border-radius:5px;padding:.7rem;display:grid;gap:.45rem}.qr-card img{width:128px;height:128px;background:white}.qr-card strong{font-family:var(--mono);letter-spacing:.2em}.qr-card form{width:100%}.floor-cards{display:flex;gap:1rem;font-size:4rem}.diploma{border:2px solid var(--accent);padding:1.35rem;text-align:center;min-width:min(350px,100%);background:#111c2b}.diploma>span{font-size:4rem;line-height:1;color:var(--accent)}#toast{position:fixed;z-index:5;bottom:1rem;left:1rem;right:1rem;margin:auto;width:max-content;max-width:calc(100% - 2rem);background:#18293c;border:1px solid var(--accent);padding:.6rem 1rem;border-radius:4px;box-shadow:0 5px 20px #0008}@keyframes spin{to{rotate:360deg}}@keyframes float{50%{translate:0 -.15em}}@keyframes pulse{50%{opacity:.65}}
@media(max-width:740px){.layout{grid-template-columns:1fr}.home{min-height:75vh}.orbit{top:8%;right:-22%;width:85vw;opacity:.44}.tv{min-height:75vh}.tv .scene{min-height:220px}}
@media(prefers-reduced-motion:reduce){*,*::after,*::before{animation:none!important}}
@media print{body,main{background:#fff!important;color:#000!important;padding:0;min-height:0}header,#toast,.director-head,.director>.layout,.cards-area>.button-row button,.cards-area>p,body[data-role=play] .side,.game>:not(.controls),.controls>button{display:none!important}.director,.cards-area,.layout,.game,.controls{display:block!important;margin:0;border:0;background:#fff!important;padding:0}.qr-card,.diploma{break-inside:avoid;background:#fff!important;color:#000!important;border:1px solid #222}.eyebrow,.diploma>span{color:#000!important}.qr-card form button{display:none}.qr-card input{background:#fff;color:#000;border:0;padding:0;min-height:0}.cards{grid-template-columns:repeat(4,1fr);gap:.4rem}.floor-cards{margin-top:1rem}}

/* Safari 12 uses fixed sizes and margins for controls where modern CSS is unavailable. */
@supports not (width:clamp(1px,2vw,3px)) {
 header{padding:1rem 1.5rem}
 main{padding:1.5rem}
 h1{font-size:2.7rem}
 h2{font-size:1.8rem}
 .lead{font-size:1.15rem}
 .home{padding:2rem 1rem}
 .hero h1{font-size:5rem}
 .panel{padding:1.25rem}
 .meter,.figures{font-size:2rem}
 .tv-caption h1{font-size:3.2rem}
 .tv-caption p{font-size:1.4rem}
 .orbit{width:55vw;height:55vw}
 .orbit span,.scene-icon{font-size:9rem}
 .ring{height:76%}
 .scene .ring{width:220px;height:220px}
 .scene .figures{max-width:90%}
 .boss{width:85%;max-width:520px}
 .diploma{min-width:0;width:100%;max-width:350px}
 video,canvas{width:100%;max-width:560px}
 nav,.button-row,.inline,.choices{margin-right:-.35rem}
 nav>a,.button-row>*,.inline>*,.choices>label{margin-right:.35rem;margin-bottom:.35rem}
 .figures>span,.floor-cards>span{margin-right:.35em}
 .side>*+*{margin-top:.6rem}
}

/* Big-screen scenes and the handheld console share each world's accent. */
.cinematic{min-height:310px}
.scene-art{position:absolute;inset:0;width:100%;height:100%;color:var(--accent);opacity:.25;pointer-events:none}
.cinematic>.scene-art{z-index:-1}
.cinematic .ring-inner{width:26%;opacity:.24;animation-direction:reverse}
.stage-0 .cinematic{background:radial-gradient(ellipse at 50% 62%,#224b66,#071525 68%)}
.stage-1 .cinematic,.game-world-1{background:radial-gradient(ellipse at 45% 20%,#25483c,#081915 70%)}
.stage-2 .cinematic,.game-world-2{background:linear-gradient(155deg,#251041,#4f205e 45%,#11152c)}
.stage-3 .cinematic,.game-world-3{background:radial-gradient(ellipse at 50% 18%,#594329,#23190f 75%)}
.stage-4 .cinematic,.game-world-4{background:linear-gradient(155deg,#0a2843,#1f5471 60%,#091d35)}
.stage-5 .cinematic,.game-world-5{background:radial-gradient(ellipse,#6a203c,#280d28 60%,#180a1b)}
.stage-6 .cinematic,.game-world-6{background:linear-gradient(145deg,#122a35,#426c37 60%,#183426)}
.tv-cores,.pad-health{display:flex;white-space:nowrap}
.tv-cores{position:absolute;right:1rem;top:.75rem;font-size:1.6rem}
.tv-cores b,.pad-health i{margin-left:.38rem;color:#a8bdc8;opacity:.35;font-style:normal}
.tv-cores .filled,.pad-health .filled{color:var(--core);opacity:1;text-shadow:0 0 12px var(--core)}
.tv-caption{display:grid;grid-template-columns:5.5rem 1fr;align-items:center;column-gap:1.1rem}
.tv-caption h1,.tv-caption p{grid-column:2}
.tv-caption .story-actor{grid-row:1 / span 3;width:100%;align-self:center}
.tv-audio{display:flex;align-items:flex-start;flex-wrap:wrap}
.tv-audio>*{margin-right:.5rem;margin-bottom:.5rem}
.story-actor{color:var(--actor);filter:drop-shadow(0 0 9px currentColor);animation:actor-hover 3.1s ease-in-out infinite}
.actor-1{animation:actor-glitch 2.8s steps(1,end) infinite}
.actor-2{animation-duration:2.5s}
.actor-3{animation-duration:4s}
.actor-4{animation-duration:2.8s}
.actor-eyes{transform-origin:center;animation:actor-blink 4.8s ease-in-out infinite}
@keyframes actor-hover{50%{transform:translateY(-7px) rotate(-3deg)}}
@keyframes actor-glitch{0%,8%,52%,58%,100%{transform:translateX(0)}5%,54%{transform:translateX(-4px) skewX(-4deg)}7%,56%{transform:translateX(4px) skewX(5deg)}}
@keyframes actor-blink{0%,45%,49%,100%{transform:scaleY(1)}47%{transform:scaleY(.15)}}
.runner-screen,.challenge-screen,.brick-wall{width:78%;max-width:720px;text-align:center;z-index:1}
.runner-screen canvas{width:100%;max-width:none;border:1px solid var(--accent);box-shadow:0 0 24px #0007;display:block}
.runner-screen div,.challenge-screen>small{display:block;padding:.55rem;color:var(--accent);background:#0a1323dd;font:700 .8rem var(--mono)}
.stage-5 .runner-screen{align-self:start;margin-top:2rem}
.challenge-screen{padding:.9rem 1rem;background:#0a1526e8;border:1px solid var(--accent);box-shadow:0 0 34px #0008}
.cinematic .challenge-screen .figures{position:static;border:0;background:transparent;justify-content:center}
.screen-question{font-size:3rem;font-size:clamp(2.5rem,7vw,6rem);font-weight:900;color:#fff}
.corridor,.tv-targets,.core-sockets{display:flex;justify-content:center;flex-wrap:wrap}
.corridor span,.tv-targets span,.core-sockets b{padding:.4rem .72rem;margin:.25rem;border:1px solid #46546b;background:#101a2b;color:#8194a5;font-size:2rem;font-size:clamp(1.5rem,5vw,4rem)}
.challenge-screen .lit{color:var(--accent);border-color:var(--accent);box-shadow:0 0 20px #0008;background:#273953;animation:signal-in .38s ease-out}
.core-sockets b{opacity:.48}
.core-sockets .filled,.core-sockets .lit{opacity:1}
.brick-wall{max-width:610px;display:grid;grid-template-columns:repeat(5,1fr);gap:.3rem;perspective:550px}
.brick-wall span{height:46px;height:clamp(30px,6vw,75px);border:1px solid #598477;background:linear-gradient(155deg,#627b74,#213c39 80%);box-shadow:inset 0 3px 3px #8dae9d44;transform:rotateX(-8deg)}
.brick-wall .cracked{background:#101e1c;box-shadow:inset 0 0 14px #000;transform:rotate(7deg) scale(.76);border-style:dashed;animation:signal-in .32s ease-out}
.scene-reaction,.pad-reaction{display:block;color:var(--accent);background:#0a1323eb;border:1px solid var(--accent);padding:.4rem .65rem;font:700 .82rem var(--mono);animation:signal-in .34s ease-out}
.scene-reaction{position:absolute;left:1rem;top:.75rem;z-index:2}
@keyframes signal-in{from{opacity:.25;transform:scale(.86)}to{opacity:1;transform:scale(1)}}
.game{position:relative;overflow:hidden}
.game>*{position:relative}
.game .pad-art{position:absolute;top:0;right:0;left:0;height:270px;opacity:.48;pointer-events:none}
.pad-header{display:flex;justify-content:space-between;align-items:center;padding:.35rem .65rem;background:#0a1528bd;border:1px solid #52677d;letter-spacing:.12em}
.pad-header .eyebrow{flex:1}
.pad-header .right{float:none;margin-left:.55rem;color:#c0ccdb}
.pad-health{margin-left:.65rem}
.pad-dialog,.player-badge{display:flex;align-items:center;padding:.45rem .75rem;background:#0b1527e6;border:1px solid #3c546d;border-left:3px solid var(--accent);border-radius:5px}
.pad-dialog .story-actor{width:3.4rem;height:3.4rem;margin-right:.75rem;flex:none}
.pad-dialog .line{margin:0}
.pad-reaction{margin-top:.65rem}
.game .controls{padding:1rem;background:#091421d9;border:1px solid #455b72;border-radius:6px}
.game .controls>form{width:100%}
.game .controls>p{margin:0}
.game .big{box-shadow:0 3px 0 #080e18}
.game .craft button,.game .targets button{background:#152c3e;border-color:#668099}
.game .targets .active{border-color:var(--accent);box-shadow:0 0 12px var(--accent)}
.skin-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;margin:.2rem 0}
.skin-picker label{position:relative;display:block;cursor:pointer}
.skin-picker input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.skin-picker label>span{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:94px;padding:.25rem;border:2px solid #3a536a;background:linear-gradient(155deg,#253950,#0d1929);border-radius:5px;font-size:.79rem;line-height:1.17;color:var(--ink)}
.skin-picker .skin-art{width:3.2rem;height:3.6rem}
.skin-picker input:checked+span{border-color:var(--accent);box-shadow:inset 0 0 14px #64bbbf39}
.skin-picker input:focus+span{outline:2px solid var(--accent);outline-offset:2px}
.player-badge .skin-art{width:3.3rem;height:3.7rem;margin-right:.55rem;flex:none}
.player-badge span{display:grid;min-width:0;overflow-wrap:break-word}
.player-badge small{color:var(--muted);font:.7rem var(--mono)}
.tablet-clue b{font-size:2rem;color:var(--accent)}
@media(max-width:740px){
 .tv-caption{grid-template-columns:3rem 1fr;column-gap:.55rem}
 .game .controls{padding:.6rem}
 .cinematic{min-height:250px}
 .tv-cores{font-size:1.1rem}
 .scene-reaction{font-size:.65rem;left:.35rem;top:.35rem}
}
@media(prefers-reduced-motion:reduce){.story-actor,.actor-eyes,.scene-reaction,.pad-reaction,.brick-wall .cracked{animation:none}}

/* Transparent character and environment art. */
.cinematic .world-art{inset:0 10%;width:80%;height:100%;object-fit:contain;opacity:1;filter:drop-shadow(0 12px 26px #0007)}
.cinematic .ring{z-index:-1;opacity:.22}
.cinematic.kind-scan .world-art{opacity:.62}
.game .pad-art .world-art{left:auto;right:-10px;top:-45px;width:72%;height:115%;object-fit:contain;object-position:right top;opacity:.63}
.tv-caption .story-actor{height:7rem;width:7rem;object-fit:contain;filter:drop-shadow(0 0 14px #77c7eb5e)}
.tv-caption{grid-template-columns:7rem minmax(0,1fr)}
.tv-caption p{font-size:1.45rem;font-size:clamp(1.1rem,2vw,1.8rem)}
.pad-dialog .story-actor{height:4.4rem;width:4.4rem;object-fit:contain}
.skin-art{object-fit:contain;filter:drop-shadow(0 0 7px var(--skin-color))}
.skin-picker .skin-art{width:100%;height:5rem}
.skin-picker label>span{min-height:112px}
.player-badge .skin-art{height:4.8rem;width:4.8rem}
.radar{
 position:relative;overflow:hidden;width:230px;height:230px;max-width:100%;margin:auto;
 border:2px solid #6afcc1;border-radius:50%;color:#a2ffdb;isolation:isolate;
 background:repeating-radial-gradient(circle,#102d27 0 22px,#326a55 23px,#102d27 24px);
 box-shadow:0 0 18px #47ebaa66,inset 0 0 22px #071b16;
}
.radar::before,.radar::after{content:"";position:absolute;inset:0;pointer-events:none}
.radar::before{background:linear-gradient(90deg,transparent 49.6%,#579b79 50%,transparent 50.4%),linear-gradient(transparent 49.6%,#579b79 50%,transparent 50.4%)}
.radar::after{inset:8%;border:1px dashed #67bc98;border-radius:50%;opacity:.55}
.radar-sweep{position:absolute;inset:0;animation:radar-spin 3s linear infinite}
.radar-sweep::before{
 content:"";position:absolute;bottom:50%;left:50%;width:50%;height:50%;
 border-bottom:2px solid #c0ffe9;background:linear-gradient(0deg,#4df5a98c,transparent 80%);
 clip-path:polygon(0 100%,100% 0,100% 100%);
}
.radar-dot{
 position:absolute;z-index:1;width:15px;height:15px;margin:-7px;border-radius:50%;
 background:#fff6ae;box-shadow:0 0 14px 4px #e8fc55;
 animation:radar-blink 1.5s ease-in-out infinite;
}
.radar b{position:absolute;bottom:10%;left:0;right:0;text-align:center;font:.76rem var(--mono);letter-spacing:.12em}
.radar-screen{text-align:center;z-index:1;width:80%;max-width:620px}
.radar-screen .radar{width:260px;height:260px}
.radar-screen p{display:inline-block;margin:.65rem 0 0;padding:.25rem .55rem;background:#0b1828e8;border:1px solid #457361}
@keyframes radar-spin{to{transform:rotate(360deg)}}
@keyframes radar-blink{0%,100%{opacity:1;transform:scale(1.05)}50%{opacity:.36;transform:scale(.68)}}
@media(max-width:740px){
 .tv-caption{grid-template-columns:4.3rem minmax(0,1fr)}
 .tv-caption .story-actor{width:4.3rem;height:4.3rem}
 .radar-screen .radar{width:175px;height:175px}
}
@media(prefers-reduced-motion:reduce){.radar-sweep,.radar-dot{animation:none}}
.skin-picker label>span{pointer-events:none}

/* A single-screen controller, with a denser dashboard in iPad landscape. */
body[data-role="play"]{height:100vh;min-height:0;overflow:hidden}
body[data-role="play"]>header{padding:.55rem 1rem;min-height:44px}
body[data-role="play"]>main{box-sizing:border-box;height:var(--pad-height,calc(100vh - 44px));padding:.65rem 1rem;overflow:hidden}
body[data-role="play"]>main>.layout,
body[data-role="play"]>main>.entry{transform:scale(var(--pad-scale,1));transform-origin:top center}
body[data-role="play"] .entry{margin:0 auto}
body[data-role="play"] .game input,
body[data-role="play"] .game select{font-size:16px}
body[data-role="play"] .game video{max-height:160px;object-fit:contain}
@media (orientation:landscape) and (min-width:700px){
 body[data-role="play"] .layout{grid-template-columns:minmax(0,3fr) minmax(176px,1fr);gap:.65rem;align-items:start}
 body[data-role="play"] .game{padding:.75rem}
 body[data-role="play"] .game h1{margin:.35rem 0;font-size:2.25rem}
 body[data-role="play"] .pad-dialog{padding:.18rem .55rem}
 body[data-role="play"] .pad-dialog .story-actor{width:3rem;height:3rem}
 body[data-role="play"] .pad-dialog .line{font-size:1rem}
 body[data-role="play"] .game .controls{margin-top:.6rem;padding:.65rem}
 body[data-role="play"] .game .ghost{margin-top:.55rem}
 body[data-role="play"] .side .map li{padding:.3rem .45rem}
 body[data-role="play"] form[data-form="avatar"]{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:.5rem;align-items:start}
 body[data-role="play"] form[data-form="avatar"]>fieldset:first-of-type{grid-column:1;grid-row:1/span 4;margin:0;min-width:0}
 body[data-role="play"] form[data-form="avatar"]>label,
 body[data-role="play"] form[data-form="avatar"]>fieldset:nth-of-type(2),
 body[data-role="play"] form[data-form="avatar"]>button{grid-column:2;margin:0;min-width:0}
 body[data-role="play"] .skin-picker{gap:.25rem}
 body[data-role="play"] .skin-picker label>span{min-height:76px;padding:.15rem;font-size:.67rem}
 body[data-role="play"] .skin-picker .skin-art{height:3.45rem}
 body[data-role="play"] .controls[data-kind="scan"]{grid-template-columns:minmax(0,1fr) minmax(145px,.75fr);align-items:start}
 body[data-role="play"] .controls[data-kind="scan"]>.radar{grid-column:2;grid-row:1/span 4;width:174px;height:174px}
 body[data-role="play"] .controls[data-kind="scan"]>.signal,
 body[data-role="play"] .controls[data-kind="scan"]>button,
 body[data-role="play"] .controls[data-kind="scan"]>video,
 body[data-role="play"] .controls[data-kind="scan"]>form{grid-column:1}
}
@media print{body[data-role="play"],body[data-role="play"]>main{height:auto;overflow:visible}body[data-role="play"]>main>.layout{transform:none}}
