/* Pressure Room v0.2 — spatial field, playable contracts, cinematic aftermath. */
:root{--scene-accent:var(--lilac);--pressure-glow:rgba(206,180,248,.11)}
body{background-color:#0c0c14;background-image:radial-gradient(ellipse at 48% -10%,#40233f55,transparent 55%),radial-gradient(ellipse at 100% 40%,#19273344,transparent 55%)}
body[data-threat=high]{--pressure-glow:#c7615824}body[data-threat=critical]{--pressure-glow:#fe674735}
.masthead{height:90px}.maker{font-size:10px;letter-spacing:1.3px}.maker-sub{letter-spacing:1.3px;font-size:8px}.monogram{font-size:34px}.intro{padding-top:39px;padding-bottom:29px}.intro-copy{font-size:14px}.intro h1{filter:drop-shadow(0 0 25px #ff826c14)}
.command-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.contract-status{display:flex;flex-direction:column;gap:3px}.contract-status .small-caps{font-size:7px;color:var(--faint)}.contract-status .text-button{padding:0;font-size:12px;color:var(--lilac);text-align:left}.threat-status{display:flex;flex-direction:column;gap:7px;min-width:145px}.threat-status>span:first-child{font:8px var(--mono);letter-spacing:1.2px;color:var(--muted)}.threat-track{height:3px;background:#302638}.threat-track i{display:block;background:var(--lilac);height:100%;width:8%;transition:width 1.2s ease,background .6s}.game-tools{display:flex;gap:7px}.utility-button{border:1px solid #46364e;background:#211a28;color:#c6bacf;border-radius:3px;font-size:10px;padding:8px 10px;min-height:34px}.utility-button[aria-pressed=true]{border-color:#846597;color:#e6ccff}.utility-button:disabled{opacity:.38}.objective-strip{display:flex;gap:8px;padding:12px 0 9px;flex-wrap:wrap}.objective{display:inline-flex;align-items:center;gap:7px;font:8px var(--mono);border:1px solid #342d3e;padding:5px 8px;border-radius:2px;line-height:1.4}.objective strong{font-weight:400;color:#aba0b6}.objective>span{color:#ddd1e9}.objective>i{font-style:normal;color:#9586a3}.objective.met>i{color:var(--mint)}.objective.unmet{border-color:#6a4148}.objective.unmet>i,.objective.unmet>span{color:var(--coral)}
.workspace{grid-template-columns:minmax(0,1fr) minmax(370px,410px)}.world{padding-right:24px}.world-topbar{height:68px}.decision-panel{padding-top:22px}.graph-stage{isolation:isolate;transform-origin:50% 50%;transition:transform .35s ease}.depth-enabled .graph-stage{transform:perspective(1050px) rotateX(var(--tilt-x,6deg)) rotateY(var(--tilt-y,-1deg));transform-style:preserve-3d}.map-viewport{perspective:1100px;isolation:isolate;background:radial-gradient(ellipse at 50% 58%,var(--pressure-glow),transparent 72%),linear-gradient(155deg,#15131f,#100f19);box-shadow:inset 0 0 70px #0006,0 25px 65px #0002;transition:background 1s}.map-grid{opacity:.75}.floor-grid{position:absolute;inset:20% -25% -65%;background-image:linear-gradient(#8f669622 1px,transparent 1px),linear-gradient(90deg,#8f669622 1px,transparent 1px);background-size:37px 37px;transform:rotateX(58deg);transform-origin:center top;mask-image:linear-gradient(transparent,#0009 40%,transparent);pointer-events:none}.field-haze{position:absolute;width:46%;height:30%;left:28%;top:42%;background:#c69bfa;filter:blur(100px);opacity:.09;border-radius:50%;pointer-events:none;animation:haze-drift 18s ease-in-out infinite alternate}.radar-sweep{position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,#c8a5e809 48%,#c8a5e818 50%,transparent 52%);transform:translateY(-100%);animation:radar 12s linear infinite;pointer-events:none}.node-orbit{background:radial-gradient(circle at 30% 20%,#46334e,#18141e 75%);box-shadow:0 8px 14px #0009,0 0 0 6px #17121d,0 0 0 7px #48344780}.node-orbit::before{content:"";position:absolute;inset:-12px;border:1px solid #9567a51a;border-radius:50%;transform:scaleY(.65);top:14px;bottom:-19px;pointer-events:none}.node.critical .node-orbit{box-shadow:0 10px 19px #000b,0 0 0 6px #17121d,0 0 0 7px #9c4b4266,0 0 30px #ff826c15}.node.affected .node-orbit{box-shadow:0 9px 20px #000a,0 0 0 6px #33253e,0 0 0 8px #ceaff3,0 0 45px #a981e34f}.node.launch .node-orbit{background:linear-gradient(135deg,#653e43,#281c2a);box-shadow:0 10px 24px #0008,0 0 0 7px #1e171f,0 0 0 8px #bf775057,0 0 70px #ff825133}.node-label{text-shadow:0 2px 7px #000}.node.selected .node-orbit{border-color:#fff;box-shadow:0 0 0 6px #32243a,0 0 0 8px var(--ink),0 0 40px #cbb5f855}.edge-flow{stroke-dasharray:4 65;animation-duration:9s}.resource-number{font-size:28px}.resource-sub{font-size:9px}.map-legend{z-index:3}.event-title{font-size:31px;line-height:1.12;letter-spacing:-1.1px}.event-title em{font-style:normal;color:var(--lilac)}.event-description{font-size:12px;line-height:1.7}.event-kicker{margin-top:21px}.choice{padding:13px 15px;grid-template-columns:20px 1fr 10px;gap:9px;overflow:hidden}.choice::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent,#c9a2ed0c,transparent);transform:translateX(-100%);transition:transform .65s}.choice:hover::before{transform:translateX(100%)}.choice-title{font-size:12px}.choice-description{font-size:11px}.choice-arrow{font-size:14px;color:#64506e;align-self:center;transition:transform .2s}.choice[aria-pressed=true] .choice-arrow{transform:translate(2px,-2px);color:var(--lilac)}.choice[aria-pressed=true]{box-shadow:0 0 25px #c8a4e810}.commit-note{font-size:8px;line-height:1.6}.primary-button{min-height:46px}.dispatch-message{margin-top:18px;border-left:2px solid #856c97;background:linear-gradient(90deg,#352a4055,transparent);padding:11px 13px;animation:signal-arrival .6s ease both}.dispatch-message>div{display:flex;align-items:center;gap:6px;font:7px var(--mono);letter-spacing:.6px;color:var(--lilac);flex-wrap:wrap}.dispatch-message i{height:4px;width:4px;background:var(--mint);border-radius:50%}.dispatch-message small{margin-left:auto;color:var(--faint);font-size:7px}.dispatch-message p{font-size:11px;color:#c9bed3;line-height:1.7;margin:8px 0 1px}.intel-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 8px}.intel-row>span{font:7px var(--mono);letter-spacing:.6px;color:#b199c6}.scan-button{font-size:9px;border:1px solid #6b527c;border-radius:3px;background:#2c2036;color:var(--lilac);padding:7px 8px;min-height:32px}.scan-button:disabled{opacity:.5}.preview-summary{font-size:11px;margin-top:8px;min-height:45px}.mission-choices{display:grid;gap:9px;margin-top:20px}.mission-choice{display:grid;grid-template-columns:26px 1fr 15px;align-items:center;gap:12px;border:1px solid #47364e;background:linear-gradient(110deg,#241a2c,#17151f);border-radius:4px;padding:15px 14px;text-align:left}.mission-choice[aria-pressed=true]{border-color:var(--lilac);background:linear-gradient(110deg,#3b2946,#211a29);box-shadow:inset 3px 0 var(--lilac),0 0 40px #b38ace12}.mission-mark{color:var(--lilac);font-size:24px}.mission-choice strong{font-size:13px;display:block;font-weight:500}.mission-choice small{display:block;font:8px var(--mono);color:var(--muted);margin-top:4px;line-height:1.6;letter-spacing:.3px}.mission-check{color:var(--lilac)}.mission-brief{font-size:11px;color:var(--muted);line-height:1.8;min-height:40px;margin:14px 0}.mode-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 14px}.mode-choices button{background:#15121b;border:1px solid #3d3046;padding:10px 12px;text-align:left;border-radius:3px}.mode-choices button[aria-pressed=true]{border-color:var(--coral);background:#37242e}.mode-choices strong{display:block;font-size:11px;font-weight:500}.mode-choices span{display:block;font-size:9px;color:var(--muted);margin-top:3px}.enter-button{background:linear-gradient(90deg,var(--coral),#eba18f);min-height:48px}.launch-copy .event-title{font-size:36px}.aftermath-title{font-size:30px;letter-spacing:-1px;line-height:1.15}.debrief-title{font-size:34px;line-height:1.08}.ending-goals{display:grid;gap:7px;margin:20px 0}.ending-goals .objective{padding:10px 12px;font-size:10px}.ending-goals .objective>span{margin-left:auto}.ending-signature{font:10px var(--mono);letter-spacing:.5px;color:var(--lilac);line-height:1.7}.debrief-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.debrief-kicker{font:9px var(--mono);letter-spacing:1px}.fork-button{font-size:9px;color:var(--lilac);background:#261c2f;border:1px solid #4c385b;padding:7px 10px;border-radius:3px;margin-top:10px;text-align:left;min-height:32px}.trail-stop strong{font-size:11px}.trail-stop p{font-size:10px}.archive-section{padding:27px 0;border-bottom:1px solid var(--line)}.archive-section h2{font-size:20px;font-weight:400;margin:7px 0 0;letter-spacing:-.5px}.run-archive{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.archive-empty{grid-column:1/-1;font-size:11px;color:var(--faint);max-width:540px;line-height:1.8;margin:0}.archive-run{background:linear-gradient(120deg,#211827,#16121d);border:1px solid #46334f;text-align:left;padding:17px;border-radius:3px}.archive-top{display:flex;align-items:center;gap:10px;justify-content:space-between}.archive-top strong{font-weight:400;font-size:12px}.archive-top i{font:7px var(--mono);font-style:normal}.archive-top .success{color:var(--mint)}.archive-top .miss{color:var(--coral)}.archive-route{display:block;font:13px var(--mono);letter-spacing:2px;color:var(--lilac);margin:16px 0 8px}.archive-stats{display:block;font:8px var(--mono);letter-spacing:.5px;color:var(--muted);line-height:1.6}.archive-run small{display:block;font-size:9px;color:var(--faint);margin-top:14px}
/* Full-screen scenes remain skippable, with no timed input or strobing. */
.consequence-dialog{--scene-accent:#d4b7ff;max-width:none;max-height:none;width:100%;height:100%;height:100dvh;inset:0;margin:0;border:0;border-radius:0;padding:0;overflow:auto;background:radial-gradient(ellipse at 50% 65%,#302039a6,transparent 60%),#090910f7;box-shadow:none;color:#eee6f2;isolation:isolate}.consequence-dialog::backdrop{background:#07070cf5;backdrop-filter:blur(15px)}.consequence-dialog[data-tone=danger]{--scene-accent:#ff8c79;background:radial-gradient(ellipse at 50% 65%,#4c222766,transparent 65%),#0c080bf9}.consequence-dialog[data-tone=surge]{--scene-accent:#b0f2d4;background:radial-gradient(ellipse at 50% 65%,#1e3f3b77,transparent 65%),#070d11f9}.consequence-dialog[data-tone=warning]{--scene-accent:#f2c591}.scene-dismiss{position:absolute;right:34px;top:25px;z-index:5;background:#15111b99;border:1px solid #5d4d66;color:#b5a6c1;font:10px var(--mono);padding:10px 13px;border-radius:2px}.scene-content{position:relative;z-index:2;width:min(850px,100% - 70px);min-height:100%;margin:auto;padding:90px 0 60px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.scene-grid{position:absolute;inset:35% -20% 0;background-image:linear-gradient(#9472ac22 1px,transparent 1px),linear-gradient(90deg,#9472ac22 1px,transparent 1px);background-size:60px 60px;transform:perspective(450px) rotateX(56deg);transform-origin:center top;mask-image:radial-gradient(ellipse,#0009,transparent 70%);pointer-events:none}.scene-orbit{position:absolute;left:50%;top:47%;width:min(660px,90vw);aspect-ratio:1;border:1px solid #ae83bc1a;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 50px #9d71b005,0 0 0 51px #9d71b011,0 0 0 105px #9d71b003;pointer-events:none}.scene-noise{position:absolute;inset:0;pointer-events:none;opacity:.13;background:repeating-linear-gradient(0deg,transparent 0px,transparent 3px,#a8a0be20 4px);mask-image:linear-gradient(transparent,#0008,transparent)}.scene-kicker{font:10px var(--mono)!important;letter-spacing:4px!important;color:var(--scene-accent)!important;margin:0 0 26px!important}.ghost-stack{position:relative;width:100%;perspective:700px}.scene-content h2{font-size:clamp(38px,5.5vw,78px);line-height:1.02;letter-spacing:-2px;font-weight:500;color:#f8eff9;margin:0;text-wrap:balance;text-shadow:0 0 40px color-mix(in srgb,var(--scene-accent) 20%,transparent)}.ghost-echo{position:absolute;inset:0 -5%;font-size:clamp(45px,7vw,98px);letter-spacing:-3px;color:var(--scene-accent);opacity:.045;filter:blur(3px);transform:translateY(-20px) scale(1.12);line-height:1;pointer-events:none;overflow-wrap:anywhere}.scene-body{font-size:15px!important;line-height:1.85!important;color:#c5b7ce!important;max-width:600px;margin:26px auto 0!important}.scene-deltas .delta-list{justify-content:center;margin:23px 0 8px}.scene-deltas .delta-pill{font-size:11px;background:#ffffff06;border:1px solid #a987b033;color:var(--scene-accent);padding:7px 11px}.scene-stakes{font:10px var(--mono)!important;letter-spacing:1px;color:var(--scene-accent)!important;max-width:580px;margin:20px auto 24px!important;line-height:1.8!important}.scene-continue{display:flex;align-items:center;gap:50px;justify-content:space-between;background:transparent;border:1px solid var(--scene-accent);padding:15px 21px;color:var(--scene-accent);font-size:12px;min-width:260px;border-radius:2px}.scene-continue:hover{background:#ffffff0a;box-shadow:0 0 35px #b99ec21a}.scene-continue span{font-size:19px}.scene-hint{display:block;color:#796a87;font:7px var(--mono);letter-spacing:1.5px;margin-top:13px}.consequence-dialog[open] .scene-kicker{animation:ghost-caption 1.2s ease both}.consequence-dialog[open] h2{animation:ghost-arrival 2.1s cubic-bezier(.16,1,.3,1) both}.consequence-dialog[open] .ghost-echo{animation:ghost-echo 2.7s ease both}.consequence-dialog[open] .scene-body{animation:ghost-caption 1.6s .35s ease both}.consequence-dialog[open] .scene-deltas,.consequence-dialog[open] .scene-stakes{animation:ghost-caption 1.5s .6s ease both}
@keyframes ghost-arrival{0%{opacity:0;filter:blur(20px);transform:translateZ(-90px) translateY(16px);letter-spacing:5px}45%{opacity:.5;filter:blur(3px)}100%{opacity:1;filter:blur(0);transform:translateZ(0);letter-spacing:-2px}}
@keyframes ghost-echo{0%{opacity:0;filter:blur(25px);transform:scale(1.4) translateY(-20px)}55%{opacity:.16}100%{opacity:.045;filter:blur(3px);transform:scale(1.12) translateY(-20px)}}
@keyframes ghost-caption{from{opacity:0;filter:blur(8px);transform:translateY(9px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}
@keyframes signal-arrival{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:translateX(0)}}
@keyframes haze-drift{to{transform:translate(45px,-18px) scale(1.12)}}@keyframes radar{to{transform:translateY(100%)}}
body[data-threat=critical] .threat-track i{background:var(--coral)}body[data-threat=critical] #threat-label{color:var(--coral)}body[data-threat=high] #threat-label{color:#e6ad88}
.reduced-motion .graph-stage{transform:none!important}.reduced-motion .radar-sweep,.reduced-motion .field-haze{animation:none!important}.reduced-motion .ghost-echo{display:none}.reduced-motion .consequence-dialog *{animation:none!important;opacity:1}.reduced-motion .scene-noise{opacity:.08}.reduced-motion .scene-grid{opacity:.4}
@media(min-width:1550px){.workspace{grid-template-columns:minmax(0,1fr) 420px}.graph-stage{min-height:440px}.event-title{font-size:35px}.dispatch-message p{font-size:12px}.choice-description{font-size:12px}}
@media(max-width:1150px){.workspace{grid-template-columns:minmax(0,1fr) 350px}.game-tools{gap:5px}.utility-button{font-size:9px;padding:7px}.command-bar{gap:10px}.threat-status{min-width:110px}.objective{font-size:7px}.resource-number{font-size:24px}.resource-sub{font-size:8px}.event-title{font-size:29px}}
@media(max-width:900px) and (min-width:721px){.workspace{grid-template-columns:minmax(0,1fr) 330px}.world{padding-right:17px}.decision-panel{padding-left:17px}.game-tools{flex-wrap:wrap;justify-content:flex-end;max-width:185px}.mission-stamp{min-width:200px;padding-left:18px}.resource-strip{grid-template-columns:1fr 1fr;row-gap:17px}.resource:nth-child(3){padding-left:0}.resource:nth-child(2){border-right:0}.objective-strip{gap:5px}.node-label{font-size:6.5px}}
@media(max-width:720px){.masthead{height:76px}.maker{font-size:8px;letter-spacing:1px}.maker-sub{font-size:6px;letter-spacing:.8px}.monogram{font-size:29px}.masthead>.text-button{font-size:9px}.intro{padding-top:30px;padding-bottom:24px}.intro-copy{font-size:12px;line-height:1.7}.command-bar{flex-wrap:wrap;gap:15px;padding:15px 0 12px}.contract-status{flex:1}.threat-status{min-width:115px}.game-tools{width:100%;display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.utility-button{min-height:38px;font-size:10px}.objective-strip{gap:6px;padding-top:12px;padding-bottom:0}.objective{font-size:8px;flex:1 1 43%;justify-content:space-between;padding:7px 8px}.workspace{display:flex}.world{display:contents}.resource-strip{order:0;margin-top:15px;padding:16px 0;grid-template-columns:repeat(4,minmax(0,1fr));row-gap:0}.resource-number{font-size:23px}.resource-sub{font-size:7px}.resource-label{font-size:7px}.decision-panel{order:1;margin-top:15px;padding:20px 0 23px}.world-topbar{order:2}.map-viewport,.timeline-container{order:3}.node-inspector{order:4}.projection-note{order:5;margin-bottom:20px}.dispatch-message p{font-size:13px}.dispatch-message>div{font-size:8px}.dispatch-message small{font-size:7px}.event-description{font-size:14px}.event-title{font-size:33px}.choice{padding:15px 14px}.choice-title{font-size:14px}.choice-description{font-size:12px}.intel-row>span{font-size:8px}.scan-button{font-size:10px;min-height:38px}.preview-summary{font-size:12px}.mission-choice strong{font-size:15px}.mission-choice small{font-size:9px}.mission-brief{font-size:12px}.mode-choices button{padding:13px}.mode-choices strong{font-size:12px}.mode-choices span{font-size:11px}.launch-copy .event-title{font-size:38px}.run-archive{grid-template-columns:1fr}.archive-section .run-heading{align-items:flex-start;gap:10px}.archive-section .text-button{white-space:normal;text-align:right;font-size:9px;max-width:95px}.archive-section h2{font-size:19px}.trail-stop .fork-button{grid-column:2;font-size:10px;justify-self:start}.debrief-title{font-size:38px}.scene-content{width:calc(100% - 42px);padding:90px 0 45px}.scene-kicker{font-size:8px!important;letter-spacing:2px!important}.scene-content h2{font-size:45px;letter-spacing:-1.5px}.scene-body{font-size:13px!important;line-height:1.8!important}.scene-deltas .delta-pill{font-size:9px}.scene-stakes{font-size:9px!important}.scene-dismiss{right:18px;top:17px;font-size:9px}.ghost-echo{font-size:53px;inset:0;line-height:1.1}.scene-orbit{width:100vw}.scene-continue{min-height:48px;min-width:250px}.scene-hint{font-size:6px;letter-spacing:1px}.ending-goals .objective{font-size:11px}.mission-stamp{display:none}.depth-enabled .graph-stage{transform:perspective(1050px) rotateX(5deg)}.map-coordinate{font-size:6px}footer{font-size:8px}footer>span:nth-child(2){font-size:7px}}
@media(max-width:390px){.scene-content h2{font-size:37px}.intro h1{font-size:40px;letter-spacing:-2.4px}.objective{font-size:7px}.resource-number{font-size:20px}.resource-label{font-size:6px}.maker{font-size:7px}.maker-sub{font-size:5.5px}.masthead>.text-button{font-size:8px}.scene-content{width:calc(100% - 34px)}}
@media(prefers-reduced-motion:reduce){html:not(.motion-enabled) .graph-stage{transform:none!important}html:not(.motion-enabled) .ghost-echo{display:none}html:not(.motion-enabled) .consequence-dialog *{animation:none!important}}
/* Revealed forecasts stay beside the decision, including on narrow screens. */
.inline-forecast{display:block;margin-top:10px;padding:10px 12px;border:1px solid #695179;border-radius:3px;background:#271e32;color:#eee3f6;font:11px/1.8 var(--mono);overflow-wrap:anywhere}
.forecast-note{display:block;margin-top:6px;font-size:10px;color:var(--muted)}
html.reduced-motion{scroll-behavior:auto!important}
.reduced-motion *::before,.reduced-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(max-width:720px){.inline-forecast{font-size:12px}.forecast-note{font-size:11px}}
/* Perspective art must not become a 30,000px scrollable scene. */
.consequence-dialog{overflow-x:hidden;overflow-y:auto}
.scene-atmosphere{position:absolute;inset:0;overflow:hidden;contain:strict;pointer-events:none}
@media(max-width:390px){.intro h1{font-size:clamp(30px,9.5vw,37px)}}
/* Secondary instructions and narrow-screen plan labels remain readable. */
:root{--faint:#9b91aa}
@media(max-width:720px){.timeline-row{font-size:11px;grid-template-columns:100px 1fr 40px;min-height:36px}.timeline-row>span:last-child{font-size:10px}.timeline-explainer{font-size:11px;line-height:1.6}.timeline-axis{font-size:9px}.node-label,.node-days{font-size:9px}.map-legend{font-size:9px}.utility-button,.scan-button{min-height:44px}}
