@import url('./vendor/katex/katex.min.css');
:root{color-scheme:light dark;--bg:#f6f4ee;--paper:#fffdf8;--ink:#192c36;--muted:#576770;--line:#cbd1cc;--accent:#a84022;--blue:#1c6e89;--tint:#eae9dd;font-family:system-ui,'Noto Sans KR',sans-serif;font-size:18px;background:var(--bg);color:var(--ink)}
:root[data-theme=dark]{--bg:#14232c;--paper:#1b303a;--ink:#f0f0e7;--muted:#b4c5ca;--line:#49616a;--accent:#ffab7c;--blue:#83c9dc;--tint:#243c47;color-scheme:dark}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#14232c;--paper:#1b303a;--ink:#f0f0e7;--muted:#b4c5ca;--line:#49616a;--accent:#ffab7c;--blue:#83c9dc;--tint:#243c47}}
*{box-sizing:border-box}body{margin:0;line-height:1.75}a{color:var(--blue);text-underline-offset:.2em}button,input,select{font:inherit;color:inherit}button,select{background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:.45em .7em;cursor:pointer}button:hover{border-color:var(--accent)}:focus-visible{outline:3px solid var(--blue);outline-offset:3px}header,.page,footer{max-width:1180px;margin:auto;padding:22px 30px}header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid var(--line)}header nav{display:flex;gap:10px;flex-wrap:wrap}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-size:.75rem;font-weight:700}h1{font-family:Georgia,serif;font-weight:500;line-height:1.08;font-size:clamp(2.4rem,5vw,4.6rem);max-width:950px;margin:25px 0}h2{font-size:1.5rem;line-height:1.3}h3{font-size:1.1rem}p{margin:1em 0}.lede{font-size:1.15rem;max-width:760px;color:var(--muted)}.badge{display:inline-block;border:1px solid var(--accent);color:var(--accent);font-size:.75rem;padding:2px 9px}.tabs{display:flex;overflow:auto;gap:20px;border-bottom:1px solid var(--line);margin:36px 0}.tabs a{white-space:nowrap;padding:12px 0;color:var(--muted);text-decoration:none}.tabs a[aria-current=true]{color:var(--ink);border-bottom:3px solid var(--accent);font-weight:700}.prose{max-width:760px;margin:38px auto}.anchor{font-size:.8rem;margin-left:15px}.lab{margin:24px 0 42px;padding:26px;background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--accent)}.lab-grid{display:grid;grid-template-columns:270px 1fr;gap:28px}.controls{display:grid;gap:16px;align-content:start}label{display:block;font-size:.85rem}label output{float:right;font-variant-numeric:tabular-nums}input[type=range]{width:100%;accent-color:var(--accent)}input[type=number]{max-width:100%;width:100%;background:var(--bg);border:1px solid var(--line);padding:6px}svg{width:100%;height:auto;overflow:visible}svg text{fill:var(--ink);font:13px system-ui}svg .axis{stroke:var(--line)}svg .curve{stroke:var(--accent);fill:none;stroke-width:2.5}svg .second{stroke:var(--blue);stroke-dasharray:7 4}.stats{display:flex;flex-wrap:wrap;gap:22px;padding:12px 0}.stat{min-width:120px}.stat strong{display:block;font-size:1.45rem;font-variant-numeric:tabular-nums}.stat small,.hint{font-size:.8rem;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.result{border-top:1px solid var(--line);padding-top:12px}.scope{border-left:3px solid var(--blue);padding:10px 20px;background:var(--tint)}.equation{overflow-x:auto;padding:15px;background:var(--tint)}table{width:100%;border-collapse:collapse;font-size:.85rem}th,td{text-align:left;border-bottom:1px solid var(--line);padding:9px;vertical-align:top}.table-scroll{overflow:auto}.topic-links{display:grid;gap:16px;margin:32px 0}.topic-links a{padding:24px;border:1px solid var(--line);background:var(--paper);text-decoration:none}.topic-links strong{font:1.7rem Georgia;display:block}.status{min-height:1.5em;font-size:.8rem}footer{display:flex;align-items:center;gap:18px;flex-wrap:wrap;border-top:1px solid var(--line);font-size:.75rem;padding-top:35px;padding-bottom:35px}.dark-logo{display:none}:root[data-theme=dark] .dark-logo{display:block}:root[data-theme=dark] .light-logo{display:none}.large{font-size:24px}.large svg text{font-size:16px}[hidden]{display:none!important}.drag{touch-action:pan-y}.print-only{display:none}@media(max-width:700px){header,.page,footer{padding:18px}.lab{padding:16px}.lab-grid{grid-template-columns:1fr}.controls{grid-template-columns:1fr 1fr;gap:12px}.stats{gap:14px}.stat strong{font-size:1.2rem}h1{font-size:2.5rem}.prose{margin:28px auto}}@media print{header,.tabs,.actions,.controls,footer nav{display:none}.page{max-width:none}.lab{break-inside:avoid}.print-only{display:block}.prose{max-width:none}body{background:white;color:black}.topic-panel[hidden]{display:block!important}}
.lab-grid>*{min-width:0}#spacing-results{overflow-x:auto}.equation{max-width:100%}.status{overflow-wrap:anywhere}
label output{float:none;display:block;text-align:right}.stat strong:has(+small){font-size:1.2rem}#live-scene{max-width:800px;margin:24px auto}
select{width:100%;max-width:100%}.controls{min-width:0}.controls label{min-width:0}#unknown-table,#rank-result{overflow-x:auto}meter{width:100%}
.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px;align-items:center}.overview-grid>*{min-width:0}.controls small{color:var(--muted)}button[aria-pressed=true]{background:var(--tint);border-color:var(--accent);font-weight:700}#egress-scene{max-width:850px;margin:auto}#stairs-out,#closure-out,#timeline-out{overflow-x:auto}@media(max-width:700px){.overview-grid{grid-template-columns:1fr;gap:12px}.overview-grid svg{max-height:400px}}
.scene-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:14px}.handle{fill:var(--blue);stroke:transparent;stroke-width:22px;vector-effect:non-scaling-stroke;cursor:grab;touch-action:none;paint-order:stroke fill}.handle:focus{fill:var(--accent)}#warehouse svg,#flame-plane{touch-action:pan-y}#scene-stats .stat{min-width:90px}#scene-stats strong{font-size:1.1rem}@media(max-width:700px){.scene-controls{grid-template-columns:1fr 1fr}#warehouse svg text,#flame-plane text{font-size:15px}}

svg{touch-action:pan-y}.handle{touch-action:none}
/* Redrawing an SVG handle must not make it the browser's scroll anchor. */
.lab{overflow-anchor:none}
.responsive-plot text{font-size:14.5px}.plot-label,.plot-legend,.map-legend{font-size:.85rem;overflow-wrap:anywhere}.plot-legend{display:flex;flex-wrap:wrap;gap:5px 18px;margin-bottom:8px}.plot-legend span:first-child{color:var(--accent)}.plot-legend span:nth-child(2){color:var(--blue)}.province-map{display:block;max-width:560px;margin:auto}.cause-bars>div{margin:10px 0;font-size:.85rem}.cause-bars strong{float:right}.bar-track{height:8px;background:var(--tint);clear:both}.bar-track>div{height:100%;background:var(--accent)}.handle{stroke-width:30px}@media(max-width:700px){#plan-svg text{font-size:24px}#detector-plan text,#radiation-plan text,#shrink-diagram text,#timeline-out svg text,#pre-metrics text{font-size:15px}.large .responsive-plot text{font-size:17px}}
svg .axis{fill:none}
/* Keep the calculated scene before its controls and labels outside its geometry. */
#warehouse-svg{display:block}.scene-dimensions,.scene-legend{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:.8rem;line-height:1.5}.scene-dimensions{margin-bottom:8px}.scene-legend{margin-top:6px}.scene-dimensions span,.scene-legend span{white-space:nowrap}.scene-legend span::before{content:'';display:inline-block;width:.7em;height:.7em;margin-right:.4em}.fire-key::before{background:var(--accent)}.jet-key::before{background:#e1ac46}.detector-key::before{background:var(--blue);border-radius:50%}.scene-playback{display:flex;gap:10px;margin:14px 0}.scene-controls{grid-template-columns:repeat(4,minmax(0,1fr))}.control-reading{display:flex;align-items:baseline;justify-content:flex-end;gap:.35em;white-space:nowrap}.control-reading output{display:inline;float:none}.control-unit{white-space:nowrap}@media(max-width:700px){.scene-controls{grid-template-columns:1fr 1fr}.scene-dimensions,.scene-legend{gap:4px 12px}}
