html,body.scene-body{background:var(--navy);height:100%;margin:0;overflow:hidden}.viewport{background:var(--navy);position:fixed;inset:0;overflow:hidden}.stage{background:var(--page);transform-origin:50%;width:1920px;height:1080px;transform:translate(-50%, -50%) scale(var(--stage-scale,1));flex:none;position:absolute;top:50%;left:50%;overflow:hidden}.s-head{background:var(--navy);color:#fff;align-items:center;gap:28px;height:112px;padding:0 40px;display:flex}.s-head .logo{width:auto;height:84px}.s-head .place{font-size:34px;font-weight:600;line-height:1.2}.s-head .place small{opacity:.8;font-size:22px;font-weight:400;display:block}.s-head .meta{text-align:right;letter-spacing:.12em;text-transform:uppercase;opacity:.8;margin-left:auto;font-size:20px;line-height:1.35}.s-head .clock{text-align:right;min-width:260px;margin-left:36px;font-size:76px;font-weight:700;line-height:1}.s-head .clock span{opacity:.75;margin-left:8px;font-size:30px}.s-head .clock:empty{visibility:hidden}.s-main{grid-template-columns:1fr 560px;gap:28px;height:778px;padding:28px 40px 0;display:grid}.map-frame{border-radius:var(--radius);box-shadow:var(--edge);background:var(--map-ground);cursor:pointer;overflow:hidden}.map-frame svg{transform-origin:0 0;will-change:transform;width:100%;height:100%;display:block;overflow:visible}.card{border-radius:var(--radius);box-shadow:var(--edge);cursor:pointer;background:#fff;padding:40px;position:relative}.card-item{flex-direction:column;gap:20px;height:100%;display:none}.card-item.active{display:flex}.card-item .kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:22px;font-weight:700}.card-item h1{margin:0;font-size:56px;font-weight:800;line-height:1.05}.card-item p{color:var(--muted);margin:0;font-size:30px;line-height:1.35}.card-item .elapsed{border-top:2px solid var(--rule);color:var(--muted);margin-top:auto;padding-top:18px;font-size:26px;font-weight:600}.card-item .elapsed b{color:var(--ink);font-size:44px;font-weight:800;display:block}.card-item.conditional{border:3px dashed var(--teal);border-radius:var(--radius);margin:-24px;padding:24px}.card-item.conditional h1{font-size:46px}.s-foot{height:190px;padding:26px 60px 0;position:absolute;bottom:0;left:0;right:0}.rail{height:150px;margin:0 200px 0 110px;position:relative}.rail .track{background:var(--rule);border-radius:4px;height:8px;position:absolute;top:52px;left:0;right:0}.rail .item{width:240px;height:150px;font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;margin-left:-120px;padding:0;position:absolute;top:0}.rail .item[data-state=hidden]{display:none}.rail .dot{background:var(--teal);border-radius:50%;width:22px;height:22px;position:absolute;top:56px;left:50%;transform:translate(-50%,-50%)}.rail .item[data-kind=deadline] .dot{background:var(--ink);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);border-radius:0;width:26px;height:26px}.rail .item[data-kind=alternative] .dot{border:4px solid var(--teal);background:#fff}.rail .item[data-state=active] .dot{width:40px;height:40px;box-shadow:0 0 0 7px #fff, 0 0 0 11px var(--teal)}.rail .item[data-kind=deadline][data-state=active] .dot{box-shadow:none;width:36px;height:36px}.rail .text{text-align:center;position:absolute;top:86px;left:0;right:0}.rail .item[data-dim=true] .dot{width:12px;height:12px}.rail .item[data-offset="-1"] .dot{top:34px}.rail .item[data-offset="1"] .dot{top:78px}.rail .item[data-offset="1"] .text{top:98px}.rail .item[data-row=above] .text{top:auto;bottom:126px}.rail .item[data-row=above] .t,.rail .item[data-row=above] .l,.rail .item[data-offset="1"] .t,.rail .item[data-offset="1"] .l{display:inline}.rail .item[data-row=above] .t:after,.rail .item[data-offset="1"] .t:after{content:" · "}.rail .item[data-row=above] .text,.rail .item[data-offset="1"] .text{white-space:nowrap}.rail .item[data-edge=end] .text{text-align:right;width:max-content;left:auto;right:100px}.rail .fork{pointer-events:none;width:100%;height:150px;position:absolute;inset:0;overflow:visible}.rail .fork line{stroke:var(--teal);stroke-width:3px;stroke-dasharray:8 6}.rail .t{font-size:24px;font-weight:600;line-height:1.1;display:block}.rail .l{font-size:22px;line-height:1.15;display:block}.rail .item[data-state=active] .t{color:var(--ink);font-size:32px;font-weight:800}.rail .item[data-state=active] .l{color:var(--ink);font-size:24px;font-weight:700}.ctrl{gap:8px;display:flex;position:absolute;bottom:40px;right:40px}.ctrl button{border-radius:var(--radius);border:2px solid var(--rule);width:56px;height:56px;color:var(--muted);cursor:pointer;background:#fff;place-items:center;display:grid}.ctrl button:active,.ctrl button:focus-visible{color:var(--teal);border-color:var(--teal)}.blank{z-index:10;background:#000;position:absolute;inset:0}.world .ground{fill:var(--map-ground)}.world .park{fill:#dce9e2}.world .street{fill:var(--map-street);stroke:var(--map-street-edge);stroke-width:2px}.world .street.arterial{stroke-width:3px}.world .tree{fill:var(--tree)}.world .bld{fill:var(--map-building);stroke:var(--map-building-edge);stroke-width:1.5px}.world .bld-large{fill:#d3dbe0;stroke:var(--map-building-edge);stroke-width:1.5px}.world .focus-outline{fill:none;stroke:var(--teal);stroke-width:6px}.world .street-name{font:600 21px var(--font);fill:var(--street-name);letter-spacing:1px}.world .gas-main{stroke:var(--gas);stroke-width:5px}.world .bore-path{stroke:var(--ink);stroke-width:3px;stroke-dasharray:6 6}.world .rig{fill:var(--ink)}.world .manhole{fill:var(--map-ground);stroke:var(--ink);stroke-width:3px}.world .leak-outer{fill:var(--gas);opacity:.22}.world .leak-mid{fill:var(--gas);opacity:.3}.world .leak-core{fill:var(--gas);stroke:var(--gas-text);stroke-width:2px;stroke-linejoin:round}.world .evac-zone{fill:#c8102e12;stroke:var(--hazard);stroke-width:4px;stroke-dasharray:14 8}.world .station-body{fill:var(--hazard);stroke:var(--ink);stroke-width:2px}.world .station-door{fill:#fff;stroke:var(--ink);stroke-width:1.5px}.world .explosion-ring{fill:none;stroke:var(--hazard);stroke-width:3px;opacity:.45}.world .exploded{fill:var(--hazard);stroke:var(--ink);stroke-width:2px}.world .school{fill:var(--school);stroke:var(--map-building-edge);stroke-width:2px}.world .resident{fill:#fff;stroke:var(--ink);stroke-width:2.5px}.world .map-label{font:600 22px var(--font);fill:var(--ink);paint-order:stroke;stroke:var(--map-ground);stroke-width:6px;stroke-linejoin:round}.world .map-label.strong{font-weight:700}.world .map-label.hazard{fill:var(--hazard)}.world .map-label.gas{fill:var(--gas-text)}.world [data-layer]{opacity:0;transition:opacity .5s var(--ease)}.world .bld{transition:fill .5s var(--ease)}.world .leak-outer{animation:4s ease-in-out infinite leak-pulse}@keyframes leak-pulse{0%,to{opacity:.22}50%{opacity:.32}}.card-item.active{animation:card-in .4s var(--ease)}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.rail .item{transition:left .8s var(--ease)}.rail .fork{animation:fade-in .4s var(--ease) .4s both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.stage[data-layers~=focus] [data-layer=focus],.stage[data-layers~=names] [data-layer=names],.stage[data-layers~=bore] [data-layer=bore],.stage[data-layers~=leak] [data-layer=leak],.stage[data-layers~=evac] [data-layer=evac],.stage[data-layers~=explosion] [data-layer=explosion],.stage[data-layers~=context] [data-layer=context]{opacity:1}.stage[data-layers~=evac] .world .in-evac{fill:var(--service-off)}
