:root{--ink:#e9f0ed;--muted:#93a7aa;--deep:#0b1419;--panel:#15242b;--panel2:#1c3037;--line:#36505a;--green:#7ea38b;--mint:#b5cfbd;--amber:#d2a959;--red:#d65353;--tile:32px;--safe-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#071015;color:var(--ink);font-family:"Courier New",Courier,monospace}
button{font:inherit;color:inherit}.hud{position:fixed;left:0;right:0;z-index:20;background:rgba(11,20,25,.96);backdrop-filter:blur(10px);border-color:#2b4149}
.top-hud{top:0;height:62px;display:flex;align-items:stretch;border-bottom:1px solid var(--line);padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0)}
.brand{border:0;border-right:1px solid var(--line);background:none;display:flex;align-items:center;gap:9px;padding:8px 16px;cursor:pointer;text-align:left}.brand-mark{border:2px solid var(--mint);color:var(--mint);padding:5px 6px;font-weight:bold;letter-spacing:1px}.brand-copy{display:grid;gap:1px;font-family:Arial,sans-serif}.brand-copy b{font-size:11px;letter-spacing:1.3px}.brand-copy small{color:var(--muted);font-size:8px;letter-spacing:1px}
.hud-metric{min-width:130px;padding:10px 20px;border-right:1px solid var(--line);display:grid;align-content:center;gap:3px}.hud-metric span{font-size:9px;color:var(--muted);letter-spacing:1.4px}.hud-metric b{font-size:15px;letter-spacing:.5px}.hud-metric.morale b{color:var(--mint)}
.icon-btn{margin-left:auto;width:62px;border:0;border-left:1px solid var(--line);background:none;font-size:24px;cursor:pointer}.icon-btn.muted{color:#67777a}.icon-btn.muted:after{content:"/";position:absolute;transform:translate(-11px,0);color:var(--red)}
#gameShell{position:fixed;inset:62px 0 70px;background:#0e191e;overflow:hidden;touch-action:none}#game{position:absolute;width:100%;height:100%;image-rendering:pixelated;display:block;touch-action:none}
.room-label{position:absolute;top:15px;left:50%;transform:translateX(-50%);background:#101c21e8;border:1px solid #4f6971;color:#d7e2df;padding:8px 14px;font-size:11px;letter-spacing:1.5px;box-shadow:0 4px 18px #0008;white-space:nowrap;transition:.2s}
#statusRibbon{position:absolute;top:14px;right:14px;background:#14242cea;border:1px solid var(--line);padding:8px 10px;display:flex;align-items:center;gap:8px;font-size:9px;color:var(--muted);letter-spacing:.8px}#statusRibbon i{width:7px;height:7px;background:var(--amber);border-radius:50%;box-shadow:0 0 8px var(--amber);animation:pulse 1.3s infinite}#statusRibbon b{color:var(--mint);font-size:11px}
#questPanel{position:absolute;top:15px;left:15px;width:min(320px,44vw);background:linear-gradient(135deg,#182a31ed,#101b20ed);border-left:3px solid var(--amber);padding:11px 13px;box-shadow:0 7px 24px #0006}#questPanel h2{font-family:Arial,sans-serif;font-size:14px;margin:3px 0 4px}#questPanel p{margin:0;color:#b9c7c7;font-size:10px;line-height:1.4}.eyebrow{margin:0;color:var(--amber);font-size:9px;letter-spacing:1.5px}
#interactionHint{position:absolute;left:50%;bottom:18px;transform:translateX(-50%) translateY(20px);opacity:0;transition:.2s;background:#101b20e8;border:1px solid #678087;padding:7px 12px;display:flex;gap:8px;align-items:center;font-size:10px;pointer-events:none}#interactionHint.visible{opacity:1;transform:translateX(-50%) translateY(0)}kbd{background:#dbe5e1;color:#15242b;border-radius:2px;padding:3px 6px;font-weight:bold}
#toastStack{position:absolute;right:16px;top:60px;width:min(330px,calc(100% - 32px));display:grid;gap:8px}.toast{background:#15262eee;border:1px solid #49616a;border-left:3px solid var(--amber);padding:10px 12px;box-shadow:0 8px 22px #0008;animation:toastin .3s ease}.toast b{display:block;font:11px Arial,sans-serif;letter-spacing:.8px}.toast small{color:#b6c3c2;font-size:9px}.toast.achievement{border-left-color:var(--mint)}
.bottom-hud{bottom:0;height:calc(70px + var(--safe-bottom));padding-bottom:var(--safe-bottom);display:flex;justify-content:center;border-top:1px solid var(--line)}.bottom-hud button{position:relative;width:110px;border:0;border-right:1px solid #283c43;background:none;display:grid;place-items:center;align-content:center;gap:2px;cursor:pointer}.bottom-hud button:first-child{border-left:1px solid #283c43}.bottom-hud button:hover,.bottom-hud button:active{background:#1c3037}.tool-icon{font-size:21px;color:var(--mint)}.bottom-hud small{font-size:8px;letter-spacing:1px;color:var(--muted)}.bottom-hud b{position:absolute;top:9px;right:26px;background:var(--red);font:9px Arial,sans-serif;padding:2px 5px;border-radius:8px}
#joystick,#actionButton{display:none;position:absolute;z-index:15}#joystick{left:18px;bottom:17px;width:116px;height:116px}.joy-ring{position:absolute;inset:0;border:1px solid #8ca2a777;background:#16262c88;border-radius:50%;box-shadow:inset 0 0 20px #0004}#joyKnob{position:absolute;left:34px;top:34px;width:48px;height:48px;border-radius:50%;background:#a9c0b5bb;border:2px solid #e0ebe5aa;box-shadow:0 4px 12px #0007}#actionButton{right:25px;bottom:25px;width:76px;height:76px;border-radius:50%;border:2px solid #d5bd82;background:#8a713dcc;box-shadow:0 6px 20px #0008;place-content:center}#actionButton span{font:bold 25px Arial}#actionButton small{display:block;font-size:8px}
.scrim{display:none;position:fixed;inset:0;background:#020607b8;z-index:29}.scrim.active{display:block}.sheet{visibility:hidden;pointer-events:none;position:fixed;z-index:30;right:0;top:62px;bottom:70px;width:min(460px,100%);background:#132128;border-left:1px solid #4b626a;box-shadow:-14px 0 40px #0008;transform:translateX(105%);transition:transform .25s ease;overflow:auto;padding:28px}.sheet.active{visibility:visible;pointer-events:auto;transform:none}.sheet-close{position:absolute;top:10px;right:12px;border:0;background:none;color:#9aaeb1;font-size:32px;cursor:pointer}.sheet h2{font:700 26px Arial,sans-serif;line-height:1.15;margin:8px 34px 12px 0}.sheet h3{font:700 15px Arial,sans-serif;letter-spacing:.5px}.sheet p{font-size:14px;line-height:1.6;color:#bdcac9}.sheet .speaker{color:var(--amber);font-size:11px;letter-spacing:1.4px}.actions{display:grid;gap:10px;margin-top:20px}.actions button,.primary,.secondary{border:1px solid #536b72;background:#1d3138;padding:15px 16px;text-align:left;cursor:pointer;font-weight:bold;font-size:13px;letter-spacing:.5px}.actions button:hover{border-color:var(--mint);background:#263e45}.actions button small{display:block;color:#a8b8b9;margin-top:5px;font-size:11px;line-height:1.4;font-weight:normal}.actions button.danger{border-color:#753f3f;color:#efb0aa}.npc-actions button{min-height:66px}.dialogue{border-left:3px solid #557079;padding:9px 14px;background:#0e191e}.item-list,.stat-list,.quest-list{display:grid;gap:8px}.item,.stat-row,.quest-row{border:1px solid #324950;background:#101c21;padding:12px}.item-head,.stat-row{display:flex;justify-content:space-between;gap:10px}.item b{font:14px Arial,sans-serif}.item small,.quest-row small{color:#8ea2a5;font-size:11px}.item-state{margin-top:7px;color:#d2a959;font-size:11px}.stat-row{font-size:13px}.stat-row span{color:#93a7aa}.quest-row.done{opacity:.58}.quest-row.done b{text-decoration:line-through}.quest-row b{font:13px Arial,sans-serif}.quest-row i{float:right;color:var(--amber);font-style:normal}
.gs9-trap{display:none;position:fixed;z-index:45;inset:0;overflow:auto;padding:46px 22px 24px;background:radial-gradient(circle at 50% 10%,#5c171b,#18080b 48%,#070304 100%);color:#fff0eb}.gs9-trap.active{display:grid;place-items:center}.gs9-trap:before{content:"";position:fixed;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 4px,#ff383806 5px),linear-gradient(105deg,transparent 35%,#ff282808 50%,transparent 65%);animation:gs9flicker .8s steps(2) infinite}.gs9-hazard{position:fixed;z-index:1;top:0;left:0;right:0;min-height:30px;padding:8px 0;overflow:hidden;white-space:nowrap;background:repeating-linear-gradient(135deg,#f0443d 0 18px,#1a090b 18px 36px);border-bottom:2px solid #ff6f63;color:#fff4bc;text-shadow:2px 2px #5e0b0b;font:bold 10px Arial,sans-serif;letter-spacing:2px;text-align:center}.gs9-story-card{position:relative;z-index:2;width:min(900px,100%);max-height:calc(100vh - 72px);display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px 22px;padding:26px;border:2px solid #ff5f55;background:#160f12;box-shadow:0 0 0 6px #2f090d,0 0 70px #ff242444;overflow:auto}.gs9-portrait{grid-row:1;width:90px;height:90px;display:grid;place-items:center;border:3px solid #ff5f55;border-radius:50%;background:#8d1218;box-shadow:inset 0 0 0 7px #27080b,0 0 24px #ff202088;transform:rotate(-4deg)}.gs9-portrait span,.gs9-portrait b{grid-area:1/1;font-family:Arial,sans-serif}.gs9-portrait span{color:#ffcd57;font-size:64px;font-weight:900;opacity:.38}.gs9-portrait b{margin-top:5px;color:#fff;font-size:35px}.gs9-story-head{align-self:center}.gs9-story-head .speaker{margin:0 0 5px;color:#ff766c;font:bold 11px Arial,sans-serif;letter-spacing:1.5px}.gs9-story-head h2{margin:0;font:900 clamp(24px,4vw,42px)/1 Arial,sans-serif;letter-spacing:-1px}.gs9-meta{display:flex;justify-content:space-between;gap:15px;margin-top:12px;padding-top:9px;border-top:1px solid #733238;color:#f6b9b2;font-size:10px;font-weight:bold;letter-spacing:1px}.gs9-meta span:last-child{color:#ffcd57}.gs9-story-copy{grid-column:1/-1;max-height:31vh;min-height:156px;overflow:auto;padding:18px 20px;border-left:5px solid #ff4d45;background:#09090b;box-shadow:inset 0 0 26px #000}.gs9-story-copy p{margin:0;color:#f5e7e2;font:18px/1.68 Arial,sans-serif}.gs9-wait{grid-column:1/-1;display:grid;gap:8px}.gs9-wait>div:first-child{display:flex;justify-content:space-between;gap:15px;color:#d8a8a5;font-size:10px;letter-spacing:1.3px}.gs9-wait b{color:#ffcf59}.gs9-wait-meter{height:12px;border:1px solid #834047;background:#080608}.gs9-wait-meter i{display:block;width:0;height:100%;background:repeating-linear-gradient(135deg,#e43a35 0 9px,#ffcf59 9px 18px)}#gs9Next{grid-column:1/-1;min-height:64px;padding:16px 20px;border:2px solid #ffc957;background:#d33832;color:#fff;font:900 18px Arial,sans-serif;letter-spacing:1px;cursor:pointer;text-align:center}#gs9Next:disabled{border-color:#63383a;background:#271a1c;color:#917b7b;cursor:not-allowed}.gs9-fineprint{grid-column:1/-1;margin:0;color:#9e7e7e;font-size:9px;line-height:1.4;text-align:center}
.full-overlay{position:fixed;display:none;inset:0;z-index:50;background:radial-gradient(circle at 50% 20%,#243a41,#081116 70%);overflow:auto;padding:24px}.full-overlay.active{display:grid;place-items:center}.start-card,.denial-card{width:min(760px,100%);text-align:center;padding:32px;position:relative}.classification{position:fixed;top:0;left:0;right:0;background:#899587;color:#13221e;padding:6px;font:bold 9px Arial,sans-serif;letter-spacing:2.5px}.seal{width:94px;height:94px;border:2px solid #789a85;margin:10px auto 22px;display:grid;place-content:center;transform:rotate(45deg);box-shadow:inset 0 0 0 7px #0d181d,inset 0 0 0 9px #466258}.seal span,.seal i{transform:rotate(-45deg);grid-area:1/1;font-style:normal}.seal span{font:bold 17px Arial;letter-spacing:3px}.seal i{margin-top:25px;color:var(--amber);font-size:10px}.start-card h1,.denial-card h1{font:800 clamp(25px,4vw,44px)/1.05 Arial,sans-serif;margin:8px 0 12px;letter-spacing:-1px}.subtitle{color:#aebdbc;font-size:12px}.subtitle span{color:var(--amber);margin:0 5px}.briefing{display:flex;gap:14px;text-align:left;margin:26px auto;max-width:590px;padding:16px;background:#101d22;border:1px solid #334b53}.briefing p{margin:0;color:#afbfbd;font:12px/1.5 Arial,sans-serif}.briefing p b{display:block;color:#e7efec;font-size:10px;letter-spacing:1px;margin-bottom:4px}.brief-icon{display:grid;place-content:center;flex:none;width:34px;height:34px;background:#8b7039;font:bold 20px Arial}.primary{display:inline-flex;gap:35px;align-items:center;justify-content:space-between;background:#7f9f88;color:#08130e;border:0;padding:15px 20px;min-width:min(350px,100%);text-align:left}.primary:hover{background:#a7c2ae}.secondary{background:transparent;text-align:center}.fineprint{color:#63777a;font-size:9px;margin-top:16px}
.denial-screen{background:#100d0f}.denial-screen:before{content:"";position:fixed;inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,#9e363608 4px);pointer-events:none}.denial-card{border:1px solid #613536;background:#151719;box-shadow:0 0 100px #8e25251f}.error-code{color:#d87a73;font-size:9px;letter-spacing:1.5px}.denied-stamp{font:900 clamp(45px,9vw,88px) Arial,sans-serif;color:#d65353;border:7px solid #d65353;width:max-content;padding:0 15px;margin:24px auto 18px;transform:rotate(-3deg);opacity:.9}.reason-block{max-width:600px;margin:22px auto;background:#210f11;border-left:3px solid var(--red);text-align:left;padding:13px}.reason-block span{font-size:9px;color:#d87571;letter-spacing:1px}.reason-block p{font:700 14px/1.4 Arial,sans-serif;margin:4px 0}.end-stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #3d3537;margin:20px auto;max-width:600px}.end-stat{padding:12px;border-right:1px solid #3d3537;border-bottom:1px solid #3d3537}.end-stat:nth-child(3n){border-right:0}.end-stat span{display:block;color:#8f8788;font-size:8px;letter-spacing:1px}.end-stat b{font:700 15px Arial;margin-top:3px;display:block}.end-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.end-actions .primary,.end-actions .secondary{min-width:220px}.lessons-text{color:#d0a7a5;min-height:18px;font-size:11px}
.terminal-screen{background:#09120e;border:8px solid #37443e;padding:16px;box-shadow:inset 0 0 30px #000;color:#a9d59f}.terminal-screen .field{border-bottom:1px dashed #41664c;padding:10px 0;font-size:11px}.terminal-screen label{color:#65876a;display:block;font-size:8px}.terminal-screen select{width:100%;margin-top:4px;background:#112019;color:#b9ddb2;border:1px solid #3d6646;padding:8px;font:11px monospace}.progress-bar{height:10px;border:1px solid #4c6268;background:#0b1317;margin:14px 0}.progress-bar i{display:block;height:100%;width:0;background:var(--mint);transition:width .4s}.map-legend{display:grid;grid-template-columns:1fr 1fr;gap:7px}.map-chip{font-size:9px;padding:7px;border-left:8px solid var(--green);background:#101c21}.ivr{display:grid;gap:7px}.ivr button{padding:11px;background:#0d181d;border:1px solid #394f56;text-align:left}.achievement-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.achievement-card{padding:10px;border:1px solid #354a50;opacity:.4}.achievement-card.unlocked{opacity:1;border-color:#6c927b}.achievement-card b{font:11px Arial}.achievement-card small{display:block;color:#90a3a5;margin-top:3px}
@keyframes pulse{50%{opacity:.3}}@keyframes toastin{from{transform:translateX(30px);opacity:0}}@keyframes gs9flicker{50%{opacity:.72}}
@media (max-width:760px){.top-hud{height:54px}.brand{padding:7px 9px}.brand-copy{display:none}.brand-mark{font-size:10px}.hud-metric{min-width:0;flex:1;padding:8px 9px}.hud-metric span{font-size:7px}.hud-metric b{font-size:11px}.forms{display:none}.icon-btn{width:48px}#gameShell{inset:54px 0 calc(62px + var(--safe-bottom))}.bottom-hud{height:calc(62px + var(--safe-bottom))}.bottom-hud button{width:20%;}.bottom-hud b{right:13px;top:5px}#questPanel{top:45px;width:calc(100% - 30px);max-width:350px;padding:8px 10px}#questPanel .eyebrow{display:none}#questPanel h2{font-size:12px;margin:0 0 2px}#questPanel p{font-size:9px}.room-label{top:8px;font-size:9px;padding:6px 9px}#statusRibbon{display:none}#joystick,#actionButton{display:block}.sheet{top:auto;bottom:calc(62px + var(--safe-bottom));height:min(70vh,580px);width:100%;border-left:0;border-top:1px solid #4b626a;transform:translateY(105%);border-radius:16px 16px 0 0;padding:24px 20px}.sheet.active{transform:none}.start-card,.denial-card{padding:20px 4px}.start-card h1{font-size:27px}.seal{width:72px;height:72px;margin-top:25px}.briefing{margin:20px 0}.full-overlay{padding:14px}.end-stats{grid-template-columns:repeat(2,1fr)}.end-stat:nth-child(3n){border-right:1px solid #3d3537}.end-stat:nth-child(2n){border-right:0}.denied-stamp{border-width:5px}.map-legend{grid-template-columns:1fr}.achievement-grid{grid-template-columns:1fr}}
@media (max-width:760px){.gs9-trap{padding:36px 9px 9px}.gs9-story-card{max-height:calc(100vh - 45px);grid-template-columns:58px minmax(0,1fr);gap:10px 12px;padding:14px;box-shadow:0 0 0 3px #2f090d,0 0 40px #ff242438}.gs9-portrait{width:56px;height:56px;border-width:2px}.gs9-portrait span{font-size:42px}.gs9-portrait b{font-size:23px}.gs9-story-head .speaker{font-size:8px;line-height:1.3}.gs9-story-head h2{font-size:21px}.gs9-meta{grid-column:1/-1;flex-direction:column;gap:4px;font-size:8px}.gs9-story-copy{max-height:33vh;min-height:170px;padding:14px}.gs9-story-copy p{font-size:16px;line-height:1.62}#gs9Next{min-height:58px;font-size:16px}.gs9-fineprint{font-size:8px}}
@media (max-height:580px) and (orientation:landscape){.top-hud{height:44px}#gameShell{inset:44px 0 50px}.bottom-hud{height:50px}.bottom-hud button{display:flex;gap:6px}.tool-icon{font-size:16px}#questPanel{top:8px;left:8px;width:280px}.room-label{display:none}#joystick{width:90px;height:90px;bottom:8px}.joy-ring{inset:0}#joyKnob{width:40px;height:40px;left:25px;top:25px}#actionButton{width:62px;height:62px;bottom:12px}.sheet{bottom:50px}.seal{display:none}.start-card{padding:8px}.start-card h1{font-size:25px}.briefing{margin:10px auto;padding:10px}.subtitle{margin:4px}.fineprint{display:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* The certification portal should be impossible to miss, even when everything else is. */
#startBtn{width:min(620px,100%);min-height:92px;padding:22px 28px;border:2px solid #c9dfd2;font:900 clamp(17px,2.2vw,23px) Arial,sans-serif;letter-spacing:1.3px;box-shadow:0 0 0 4px #101d22,0 0 0 6px #7f9f88,0 14px 30px #0008;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}
#startBtn span{font-size:34px}
#startBtn:hover,#startBtn:focus-visible{background:#b7d1c0;transform:translateY(-3px);box-shadow:0 0 0 4px #101d22,0 0 0 6px #b7d1c0,0 18px 36px #0009}
#startBtn:focus-visible{outline:3px solid var(--amber);outline-offset:8px}
@media (max-width:760px){#startBtn{min-height:82px;padding:18px 21px;font-size:18px}}
@media (max-height:580px) and (orientation:landscape){#startBtn{min-height:66px;padding:13px 20px;font-size:16px}}
