@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(./barlow-latin-400-normal-qiz4-Cze.woff2)format("woff2"),url(./barlow-latin-400-normal-fsAxiSwU.woff)format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-latin-600-normal-DILqtrty.woff2)format("woff2"),url(./barlow-latin-600-normal-CNwfPWQD.woff)format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(./barlow-latin-ext-400-normal-HxX4XjxC.woff2)format("woff2"),url(./barlow-latin-ext-400-normal-CvBsJvxq.woff)format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-latin-ext-600-normal-B8NK_A3D.woff2)format("woff2"),url(./barlow-latin-ext-600-normal-DMVRjfRT.woff)format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(./barlow-vietnamese-400-normal-Dpl4UHAZ.woff2)format("woff2"),url(./barlow-vietnamese-400-normal-BFeobeCK.woff)format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-vietnamese-600-normal-DcjprdFV.woff2)format("woff2"),url(./barlow-vietnamese-600-normal-CA_GiK2e.woff)format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-condensed-latin-600-normal-DepVgxBB.woff2)format("woff2"),url(./barlow-condensed-latin-600-normal-BFJEwTuo.woff)format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(./barlow-condensed-latin-700-normal-v1xN8_Wq.woff2)format("woff2"),url(./barlow-condensed-latin-700-normal-Dmwat-ge.woff)format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-condensed-latin-ext-600-normal-18ESti3H.woff2)format("woff2"),url(./barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff)format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(./barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2)format("woff2"),url(./barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff)format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2)format("woff2"),url(./barlow-condensed-vietnamese-600-normal-CNlPk46_.woff)format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(./barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2)format("woff2"),url(./barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(./ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(./ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(./ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(./ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(./ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(./ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff)format("woff")}:root{--ink:#080e1a;--surface:#0e1420;--surface-inset:#0b101b;--edge:#2d3d57;--panel:#101b30;--panel-border:#4a6390;--land:#1d2b46;--water:#0c1626;--ripple:#3f6390;--contour:#6a8ab8;--highland:#2c3d5c;--mtn-fill-o:.6;--grid-line:#334462;--steel:#6e84a6;--steel-lit:#b7d0ef;--structure:#354867;--structure-hi:#3e5372;--body-lit:#3e5474;--roof-lit:#48607e;--footing:#4c5c78;--amber:#ffc94d;--amber-hot:#ffe8a3;--text:#e8edf5;--text-dim:#a6b7ce;--alert:#e4572e;--hazard:#9e4038;--matte:#b9c2d4;--beacon:#f0564a;--font-ui:"Barlow", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Barlow Condensed", var(--font-ui);--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--text-scale:1;--terrain-stroke:1.5;--facet-stroke:1;--ripple-stroke:.75;--glass-case:none;--glass-case-w:0}:root[data-large-text]{--text-scale:1.2}@property --frame{syntax:"<color>";inherits:true;initial-value:#7a8dab}@property --dot{syntax:"<color>";inherits:true;initial-value:#7a8dab}@property --dot-k{syntax:"<number>";inherits:true;initial-value:1}@property --dot-glow{syntax:"<color>";inherits:true;initial-value:#0000}@property --pool{syntax:"<color>";inherits:true;initial-value:#0000}:root[data-contrast]{--water:#060c14;--land:#435f8f;--highland:#c1cde0;--mtn-fill-o:1;--contour:#495977;--ripple:#3f6495;--grid-line:#5371a0;--beacon-glow-k:0;--surface:#060c14;--surface-inset:#060c14;--edge:#5371a0;--panel:var(--ink);--panel-border:#5371a0;--structure:#4b6691;--structure-hi:#57749f;--body-lit:#465e84;--roof-lit:#4f6890;--footing:#a8b4c8;--steel:#ced5e0;--steel-lit:#dfe5ef;--text-dim:#c4d0df;--alert:#eb8163;--terrain-stroke:2.5;--facet-stroke:1.8;--ripple-stroke:1.6;--glass-case:var(--ink);--glass-case-w:1.2}@media (forced-colors:active){:root{--ink:Canvas;--surface:Canvas;--surface-inset:Canvas;--panel:Canvas;--land:Canvas;--water:Canvas;--highland:Canvas;--mtn-fill-o:1;--structure:Canvas;--structure-hi:Canvas;--body-lit:Canvas;--roof-lit:Canvas;--footing:Canvas;--hazard:CanvasText;--matte:Canvas;--beacon:CanvasText;--contour:CanvasText;--ripple:CanvasText;--grid-line:GrayText;--edge:GrayText;--panel-border:GrayText;--steel:CanvasText;--steel-lit:CanvasText;--text:CanvasText;--text-dim:CanvasText;--alert:CanvasText;--beacon-glow-k:0;--icon-accent:CanvasText;--amber:Highlight;--amber-hot:Highlight;--terrain-stroke:2;--facet-stroke:1.5;--ripple-stroke:1.5;--glass-case:Canvas;--glass-case-w:1.2}}:root{--smoke:#c8d2e0;--flora:#476c88;--land-tone:#223252;--shore:#446890}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{background:var(--ink);height:100%}body{font-family:var(--font-ui);background:var(--ink);color:var(--text);min-height:100vh;min-height:100dvh;padding:12px 12px 36px;padding-top:max(12px, env(safe-area-inset-top));padding-left:max(12px, env(safe-area-inset-left));padding-right:max(12px, env(safe-area-inset-right));padding-bottom:calc(64px + max(12px, env(safe-area-inset-bottom)));flex-direction:column;align-items:center;font-weight:400;display:flex}.app{flex-direction:column;gap:12px;width:100%;max-width:540px;display:flex}header{justify-content:space-between;align-items:center;gap:8px;padding:2px 2px 0;display:flex}.header-side{align-items:center;gap:10px;min-width:0;display:flex}@media (max-width:374px){header{gap:6px}#mwChip b{font-size:1.55em}.hud>span{gap:5px;padding-inline:4px}.hud .stat-icon{width:1.6em;height:1.6em}.hud .count-glyph{width:1.15em;height:1.15em}[data-large-text] .hud b,[data-large-text] #mwChip b{font-size:1.4em}.header-side{gap:6px}.wordmark{font-size:clamp(24px,6.5vw,36px)}.daytag{padding-inline-start:8px}button.icon-btn{min-width:40px}}.wordmark{font-family:var(--font-display);letter-spacing:.06em;align-items:center;gap:8px;font-size:clamp(28px,7vw,36px);font-weight:700;display:flex}.daytag{min-width:0;color:var(--text);font-size:calc(12px * var(--text-scale));letter-spacing:.04em;text-align:left;border-inline-start:1px solid var(--edge);padding-inline-start:12px;font-weight:600;line-height:1.45}.daytag strong{color:var(--text);font-family:var(--font-mono);font-weight:500}.daytag .d{color:var(--text-dim);font-weight:400;display:block}.hud{border-bottom:1px solid var(--panel-border);z-index:1;align-items:stretch;padding:11px 0;display:flex;position:relative}.hud>span{white-space:nowrap;min-width:0;font-size:calc(clamp(9px, 2.8vw, 12px) * var(--text-scale));flex:auto;justify-content:center;align-items:center;gap:7px;padding-inline:6px;line-height:1;display:flex}.hud>span+span{border-inline-start:1px solid var(--edge)}.hud .stat-icon{width:1.85em;height:1.85em;color:var(--steel-lit);flex:none}.hud .count-glyphs{flex-wrap:wrap;justify-content:center;align-items:center;gap:2px;max-width:100%;min-height:1.55em;display:flex}.hud .count-glyph{width:1.35em;height:1.35em;color:var(--steel);opacity:.38;--icon-accent:currentColor;flex:none}.hud .count-glyph.filled{opacity:1}#towerGlyphs .count-glyph.filled{color:var(--steel-lit)}#houseGlyphs .count-glyph.filled{color:var(--amber);--icon-accent:var(--amber)}.hud .stat-txt{flex-direction:column;align-items:flex-start;gap:3px;display:flex}.hud .lbl{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:600}.hud b{font-family:var(--font-mono);color:var(--text);font-size:1.55em;font-weight:500}#mwChip b{font-size:1.75em}.hud .stat-val{align-items:baseline;gap:3px;display:flex}.hud .unit{color:var(--text-dim);font-size:.9em}#mwChip.live b{color:var(--amber)}#mwChip b{transition:color var(--cell-ms,.15s) ease-out}#mwChip.best-flash b{animation:best-flash var(--best-flash,.32s) ease-out}@keyframes best-flash{0%{color:var(--amber-hot);text-shadow:0 0 8px #ffc94d73}to{color:var(--amber);text-shadow:none}}.hud>span.shake{animation:.35s shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.dedication{text-align:center;color:var(--text-dim);opacity:.5;font-size:calc(12px * var(--text-scale));letter-spacing:.2em;margin-top:2px}.dedication a{color:var(--amber);text-decoration:none}.dedication a:hover{text-decoration:underline}.sr-only{white-space:nowrap;clip-path:inset(50%);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.glyph{vertical-align:-.3em;width:1.3em;height:1.3em;color:var(--steel-lit)}.glyph-lg{vertical-align:-.4em;width:1.6em;height:1.6em}.glyph-mark{vertical-align:baseline;flex:none;width:1.05em;height:1.05em}.icon-glyph{width:1.3em;height:1.3em;color:var(--steel-lit)}.dedication .icon-glyph{vertical-align:-.2em;width:1em;height:1em;color:var(--amber)}.glow{filter:drop-shadow(0 0 6px color-mix(in srgb, currentColor 45%, transparent))}[data-contrast] .glow{filter:none}@media (forced-colors:active){.glow{filter:none}}.confetti{pointer-events:none;z-index:60;width:100%;height:100%;position:fixed;inset:0}button.icon-btn{border-radius:var(--radius-sm);justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0;line-height:1;display:flex}button.icon-btn .icon-glyph{width:18px;height:18px;color:var(--text-dim);display:block}button.lang-btn{align-items:center;gap:5px;padding:9px 10px;display:flex}.lang-code{font-family:var(--font-mono);font-size:calc(12px * var(--text-scale));letter-spacing:.06em;color:var(--text-dim);font-weight:500;line-height:1}[data-reduce-motion] *,[data-reduce-motion] :before,[data-reduce-motion] :after{transition:none!important;animation:none!important}.board-wrap{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius-lg);position:relative;overflow:hidden;box-shadow:0 10px 28px #0000004d}.board-wrap:after{content:"";pointer-events:none;background:radial-gradient(120% 100% at 50% 38%,#0000 55%,#00000012 100%);position:absolute;inset:0}svg#board{touch-action:manipulation;width:100%;height:auto;display:block;overflow:visible}[data-contrast] .board-wrap{background:var(--panel);box-shadow:none}[data-contrast] .board-wrap:after{content:none}@media (forced-colors:active){.board-wrap{background:var(--panel);box-shadow:none}.board-wrap:after{content:none}}.range-pulse{fill:none;stroke:var(--steel);stroke-width:1.6px;stroke-dasharray:7 7;pointer-events:none;animation:pulsefade var(--range-pulse,.9s) ease-out forwards}@keyframes pulsefade{0%{opacity:.9}55%{opacity:.75}to{opacity:0}}.deny-pulse{fill:none;stroke:var(--steel);stroke-width:2px;pointer-events:none;animation:denyfade var(--deny-pulse,.2s) ease-out forwards}@keyframes denyfade{0%{opacity:.9}to{opacity:0}}.survey-marker{fill:none;stroke:var(--steel);stroke-width:1.6px;stroke-dasharray:6 6;opacity:.7;pointer-events:none}.span-preview{fill:none;stroke:var(--steel);stroke-width:1.2px;stroke-dasharray:4 8;opacity:.45;pointer-events:none}.ref-wire{fill:none;stroke:var(--steel);stroke-width:1.6px;stroke-dasharray:7 7;opacity:.75;pointer-events:none}.ref-node{fill:none;stroke:var(--steel-lit);stroke-width:1.6px;stroke-dasharray:6 6;opacity:.9;pointer-events:none}.key-cursor{fill:none;stroke:var(--amber);stroke-width:2px;pointer-events:none}#board:focus{outline:none}.cell-hit{fill:#0000;cursor:pointer}.cell-hit.blocked{cursor:not-allowed}.tower{--frame:var(--steel);--dot:var(--steel);--dot-k:1;--dot-glow:transparent;--stroke-k:1.15;transition:--frame var(--cell-ms,.15s) ease-out, --dot var(--cell-ms,.15s) ease-out, --dot-k var(--cell-ms,.15s) ease-out, --dot-glow var(--cell-ms,.15s) ease-out}.tower.energized{--frame:var(--steel-lit);--dot:var(--amber);--dot-k:1.3;--dot-glow:#ffc94d4d}.tower.just-built{animation:settle var(--cell-ms,.15s) ease-out}@keyframes settle{0%{transform:translateY(-8px)}to{transform:none}}.tower-out{animation:tower-out var(--cell-ms,.15s) ease-in forwards;pointer-events:none}@keyframes tower-out{to{opacity:0;transform:translateY(-8px)}}.plant-sprite{--frame:var(--steel-lit);--dot:var(--amber);--dot-glow:transparent;--stroke-k:1.15;transition:--dot-glow var(--cell-ms,.15s) ease-out}.house-sprite{--body:var(--structure);--roof:var(--structure-hi);--frame:var(--steel);--stroke-k:1.15;--pool:transparent;transition:--pool var(--cell-ms,.15s) ease-out;--win:var(--ink)}.house-sprite.lit{--body:var(--body-lit);--roof:var(--roof-lit);--frame:var(--steel-lit);--win:var(--amber-hot);--pool:#ffc94d24}.house-glow{--win:transparent}.house-glow.lit{--win:var(--amber-hot);filter:drop-shadow(0 0 3px #ffc94d33)drop-shadow(0 0 9px #ffc94d24)}.house-glow.just-lit{animation:.5s steps(2,jump-none) flick}@keyframes flick{0%{opacity:0}50%{opacity:1}75%{opacity:.4}to{opacity:1}}.ghost{opacity:.4;pointer-events:none}.wire-dead{stroke:var(--steel);stroke-width:2px;stroke-dasharray:7 8;fill:none;opacity:.75;stroke-linecap:round}.wire-dead.wire-outer{stroke-width:.8px;opacity:.22}[data-contrast] .wire-dead{stroke-width:3px;opacity:1}[data-contrast] .wire-dead.wire-outer{stroke-width:1px;opacity:.5}[data-contrast] .survey-marker,[data-contrast] .ref-node{opacity:1}[data-contrast] .span-preview{opacity:.75}.wire-live{stroke:var(--amber);stroke-width:2.8px;fill:none;stroke-linecap:round;filter:drop-shadow(0 0 3px #ffc94d73)drop-shadow(0 0 8px #ffc94d47)drop-shadow(0 0 16px #ffc94d29);animation:5s ease-in-out infinite shimmer}.wire-live.wire-outer{stroke-width:.8px;stroke-opacity:.25;filter:none}[data-contrast] .wire-dead:not(.wire-outer){filter:drop-shadow(0 0 1px var(--ink)) drop-shadow(0 0 2px var(--ink))}[data-contrast] .wire-live:not(.wire-outer){stroke-width:3px;filter:drop-shadow(0 0 1px var(--ink)) drop-shadow(0 0 2px var(--ink)) drop-shadow(0 0 3px #ffc94d33) drop-shadow(0 0 8px #ffc94d21)}[data-contrast] .flora,[data-contrast] .inhabitant,[data-contrast] .water-glint,[data-contrast] .house-smoke,[data-contrast] .plant-smoke,[data-contrast] .land-tone,[data-contrast] .shoreline,[data-contrast] .hour-tint{display:none}[data-contrast] .house-sprite.lit{--pool:transparent}@media (forced-colors:active){.wire-live,.house-glow.lit{filter:none}.flora,.inhabitant,.water-glint,.house-smoke,.plant-smoke,.survey-grid,.land-tone,.shoreline,.hour-tint{display:none}.house-sprite.lit{--pool:transparent}}@keyframes shimmer{0%,to{opacity:1}50%{opacity:.96}}.spark{fill:var(--amber-hot);filter:drop-shadow(0 0 6px #ffe8a3d9)}.plant-sprite.energized{--dot-glow:#ffc94d4d;animation:5s ease-in-out infinite plant-breathe}@keyframes plant-breathe{0%,to{filter:brightness()}50%{filter:brightness(.97)}}.house-smoke{opacity:0;transition:opacity var(--cell-ms,.15s) ease-out;pointer-events:none}.house-smoke.lit{opacity:1}.plant-smoke{opacity:0;transition:opacity var(--cell-ms,.15s) ease-out;pointer-events:none}.house-glow.lit.perfect{animation:.9s ease-out window-flare}@keyframes window-flare{0%{filter:drop-shadow(0 0 3px #ffc94d33)drop-shadow(0 0 9px #ffc94d24)}25%{filter:drop-shadow(0 0 6px #ffe8a3a6)drop-shadow(0 0 16px #ffe08973)}to{filter:drop-shadow(0 0 3px #ffc94d33)drop-shadow(0 0 9px #ffc94d24)}}.inhabitant.bird use{pointer-events:none}.inhabitant.hawk use{pointer-events:none;opacity:.85}.controls{grid-auto-columns:1fr;grid-auto-flow:column;gap:8px;width:-moz-fit-content;width:fit-content;margin-inline:auto;display:grid}@media (max-width:374px){.controls button{padding-inline:10px}}button{font-family:var(--font-ui);font-weight:600;font-size:calc(14px * var(--text-scale));letter-spacing:.02em;color:var(--text);border:1px solid var(--steel);border-radius:var(--radius-md);cursor:pointer;touch-action:manipulation;background:0 0;padding:10px 16px;transition:border-color .15s,transform .1s}button:hover{border-color:var(--steel-lit)}button:active{transform:scale(.97)}button.setting:active,button.arch-row:active{transform:scale(.99)}button:disabled{opacity:.45;cursor:default}button:disabled:active{transform:none}button:focus-visible{outline:2px solid var(--amber);outline-offset:2px}button.primary{background:var(--amber);color:var(--ink);border-color:#0000}button.primary:hover{background:var(--amber-hot)}.drill-lesson{color:var(--text-dim);font-size:calc(13px * var(--text-scale));padding-inline:2px;line-height:1.5}.drill-lesson b{font-family:var(--font-mono);color:var(--text);font-weight:500}.drill-lesson strong{color:var(--text);font-weight:600}.win-panel{background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius-lg);padding:18px 20px;animation:.45s rise;display:none}.win-panel.show{display:block}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.win-panel .win-head{align-items:center;gap:12px;margin-bottom:12px;display:flex}.win-panel .win-title-block{min-width:0}.win-panel h2{font-family:var(--font-display);font-weight:700;font-size:calc(23px * var(--text-scale));letter-spacing:.06em}.win-panel p{color:var(--text-dim);font-size:calc(14px * var(--text-scale));margin-bottom:12px;line-height:1.55}.win-panel p b{color:var(--text)}.win-panel .win-stats{font-size:calc(14px * var(--text-scale));flex-wrap:wrap;gap:12px 28px;display:flex;overflow:hidden}.win-panel .win-stats .stat{white-space:nowrap;flex-direction:column;align-items:flex-start;gap:3px;display:inline-flex;position:relative}.win-panel .win-stats .stat:before{content:"";background:var(--edge);width:1px;position:absolute;inset-block:8%;inset-inline-start:-14px}.win-panel .win-stats .stat>.retired{flex-direction:column;align-items:flex-start;gap:3px;display:inline-flex}.win-panel .win-stats .v{align-items:baseline;gap:5px;display:inline-flex}.win-panel .win-stats i{font-style:normal;font-weight:600;font-size:calc(11px * var(--text-scale));text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.win-panel .win-stats b{font-family:var(--font-mono);font-weight:500;font-size:calc(17px * var(--text-scale));color:var(--text)}.win-panel .win-stats b.mw{color:var(--amber)}.win-panel .win-topology{font-family:var(--font-display);font-weight:600;font-size:calc(15px * var(--text-scale));letter-spacing:.06em;text-transform:uppercase;color:var(--steel-lit);margin:2px 0 0}.win-panel .win-note{opacity:.85;font-size:calc(13px * var(--text-scale));margin-top:8px;display:block}.win-panel .win-field{font-size:calc(13px * var(--text-scale));color:var(--text-dim);margin-top:4px;display:block}.win-panel .win-field .field-sum{border-top:1px solid var(--edge);margin-top:6px;padding-top:10px;display:block}.win-panel .win-field i{font-style:normal;font-weight:600;font-size:calc(11px * var(--text-scale));text-transform:uppercase;letter-spacing:.08em}.win-panel .win-field b{font-family:var(--font-mono);color:var(--text);font-weight:500}.win-panel .win-field .field-bars{grid-template-columns:minmax(0,max-content) minmax(48px,1fr) auto;align-items:center;gap:5px 8px;margin-top:4px;display:grid}.win-panel .win-field .field-sect,.win-panel .win-field .field-row{display:contents}.win-panel .win-field .field-head{grid-column:1/-1;margin-top:12px}.win-panel .win-field .field-head i{font-family:var(--font-display);font-size:calc(13px * var(--text-scale));color:var(--text)}.win-panel .win-field .field-row b{text-align:right}.win-panel .win-field .field-rail{height:calc(9px * var(--text-scale));border:1px solid var(--edge);background:var(--surface-inset);border-radius:999px;overflow:hidden}.win-panel .win-field .field-fill{background:var(--steel);transform-origin:0;border-radius:999px;height:100%;display:block}.win-panel .win-field .field-row.you i{color:var(--text);font-weight:700}.win-panel .win-field .field-row.you b{color:var(--amber)}.win-panel .win-field .field-row.you .field-fill{background:var(--amber)}.win-panel .win-legend{font-size:calc(12px * var(--text-scale));color:var(--text-dim);margin-top:4px;display:block}.win-panel .win-legend:first-of-type{margin-top:10px}.win-panel .win-note.engineers{opacity:1;color:var(--amber);text-transform:uppercase;letter-spacing:.08em;font-weight:600;font-size:calc(12px * var(--text-scale))}.win-panel .win-next{font-size:calc(13px * var(--text-scale));margin:10px 0 0}.win-panel .win-next b{font-family:var(--font-mono);color:var(--text-dim);word-spacing:-.3em;font-weight:500}.win-panel p.tick{animation:.5s ease-out panel-tick}.win-panel p.staged .stat,.win-panel p.staged .win-note,.win-panel p.staged .win-legend,.win-panel p.staged .win-field{animation:.3s ease-out both chip-in;animation-delay:calc(var(--beat,0) * var(--beat-gap))}.win-panel p.staged .win-field .field-fill{animation:.35s ease-out both bar-grow;animation-delay:calc((var(--beat,0) + var(--row,0) * .5) * var(--beat-gap))}@keyframes bar-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.win-panel p.staged .win-note.engineers{animation:.4s ease-out both stamp;animation-delay:calc(var(--beat,0) * var(--beat-gap))}@keyframes chip-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.win-panel h2 #winTitle.stamp{animation:.4s ease-out stamp;display:inline-block}@keyframes stamp{0%{opacity:0;transform:scale(1.12)}to{opacity:1;transform:none}}.win-panel.celebrate{animation:.9s ease-out celebrate}@keyframes celebrate{0%{border-color:#ffc94dcc}to{border-color:var(--edge)}}@keyframes panel-tick{0%{border-radius:var(--radius-lg);background:#ffc94d1f}to{background:0 0}}.win-panel .row{flex-wrap:wrap;gap:8px;display:flex}.modal .row{gap:8px;display:flex}.modal .row button{flex:1}#settingsOverlay .privacy-row{flex-wrap:wrap;justify-content:center;margin-bottom:14px}#settingsOverlay .privacy-row button{font-size:calc(12px * var(--text-scale));color:var(--text-dim);flex:none;padding:6px 14px}.win-panel .win-stats .retired{opacity:.65}.records{border-bottom:1px solid var(--edge);flex-direction:column;gap:4px;margin-bottom:14px;padding-bottom:12px;display:flex}.records-line{font-size:calc(14px * var(--text-scale));flex-wrap:wrap;gap:2px 16px;display:flex}.records .reading{white-space:nowrap}.records .hero-row{align-items:stretch;margin-bottom:10px;padding-top:2px;display:flex}.records .hero{align-items:center;gap:9px;min-width:0;padding-inline:16px;display:flex}.records .hero:first-child{padding-inline-start:0}.records .hero+.hero{border-inline-start:1px solid var(--edge)}.records .hero .icon-glyph{width:calc(24px * var(--text-scale));height:calc(24px * var(--text-scale));flex:none}.records .hero-txt{flex-direction:column;gap:3px;min-width:0;display:flex}.records .hero b{font-size:calc(16px * var(--text-scale));white-space:nowrap;line-height:1.1}.records .hero:first-child b{font-size:calc(28px * var(--text-scale))}@media (max-width:374px){.records .hero{padding-inline:10px}}.records .reading i,.records .hero i{font-style:normal;font-weight:600;font-size:calc(11px * var(--text-scale));text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.records .reading b,.records .hero b{font-family:var(--font-mono);color:var(--text);font-weight:500}.records-empty{font-size:calc(13px * var(--text-scale));color:var(--text-dim)}.arch-list{flex-direction:column;gap:6px;max-height:52vh;margin-bottom:14px;display:flex;overflow:auto}.arch-row{border:1px solid var(--edge);border-radius:var(--radius-md);width:100%;font-size:calc(14px * var(--text-scale));color:var(--text-dim);letter-spacing:.02em;text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;font-weight:400;display:flex}.arch-row .when{white-space:nowrap;flex-shrink:0}.arch-row .score{text-align:right;flex-direction:column;align-items:flex-end;gap:2px;min-width:0;display:flex}.arch-row .mw-tier{white-space:nowrap}.arch-row .num,.arch-row .score b{font-family:var(--font-mono);color:var(--text);font-weight:500}.arch-row .unplayed{opacity:.65}.arch-row .studied{font-size:calc(11px * var(--text-scale));text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.arch-row .drill-name{flex:1;min-width:0}.arch-row .drill-name+.score,.arch-row .drill-name+.unplayed{flex-shrink:0}.arch-row .rank{font-size:calc(12px * var(--text-scale));white-space:nowrap}.arch-row .drill-name b{color:var(--text);font-weight:600}.arch-row.current{border-color:var(--steel)}.arch-row.current>:first-child:before{content:"▸ ";content:"▸ " / "";color:var(--steel-lit)}.fb-kinds{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}button.fb-kind{font-size:calc(13px * var(--text-scale));color:var(--text-dim);padding:7px 12px}button.fb-kind[aria-pressed=true]{border-color:var(--amber);color:var(--amber);box-shadow:inset 0 0 0 1px var(--amber)}.fb-text,.fb-contact{width:100%;font-family:var(--font-ui);font-size:calc(15px * var(--text-scale));color:var(--text);background:var(--ink);border:1px solid var(--steel);border-radius:var(--radius-sm);padding:10px 12px;line-height:1.5}.fb-text{resize:vertical;min-height:110px;display:block}.fb-text::placeholder,.fb-contact::placeholder{color:var(--text-dim)}.fb-text:focus-visible,.fb-contact:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.fb-count{font-family:var(--font-mono);font-size:calc(12px * var(--text-scale));color:var(--text-dim);text-align:right;margin-top:4px}.fb-label{font-size:calc(12px * var(--text-scale));text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:14px 0 6px;font-weight:600;display:block}.fb-note{font-size:calc(12px * var(--text-scale));color:var(--text-dim);margin:12px 0 0;line-height:1.5}.fb-msg{font-size:calc(13px * var(--text-scale));color:var(--text);border-left:1px solid var(--steel);margin:12px 0 0;padding-left:10px;line-height:1.5}#feedbackOverlay .modal .row{margin-top:14px}.settings-list{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}button.setting{border:1px solid var(--edge);border-radius:var(--radius-md);text-align:left;justify-content:space-between;align-items:center;gap:14px;width:100%;padding:10px 12px;font-weight:400;display:flex}.setting .setting-text b{font-weight:600;font-size:calc(14px * var(--text-scale));color:var(--text);display:block}.setting-pick .setting-text{align-items:center;gap:9px;display:flex}.setting-pick .setting-text .icon-glyph{width:17px;height:17px;color:var(--text-dim);flex:none}.setting .setting-value{font-size:calc(13px * var(--text-scale));color:var(--text-dim);letter-spacing:.02em;flex:none}#langOverlay h2 .icon-glyph{vertical-align:-.14em;width:18px;height:18px;color:var(--text-dim);margin-right:6px}.setting .breaker{border:1px solid var(--steel);border-radius:var(--radius-sm);flex:none;width:36px;height:20px;position:relative}.setting .breaker:after{content:"";background:var(--steel);border-radius:3px;width:14px;height:14px;transition:left .15s,background .15s;position:absolute;top:2px;left:2px}.setting[aria-checked=true] .breaker:after{background:var(--amber);left:18px}.toast{background:var(--surface);border:1px solid var(--edge);color:var(--text);border-radius:var(--radius-md);font-size:calc(14px * var(--text-scale));opacity:0;pointer-events:none;z-index:30;text-align:center;max-width:min(420px,100% - 24px);padding:10px 18px;font-weight:400;transition:opacity .25s,transform .25s;position:absolute;bottom:14px;left:50%;transform:translate(-50%)translateY(20px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.overlay{z-index:40;background:#05080eb8;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.overlay.show{display:flex}.overlay.show .modal{animation:.18s ease-out modal-in}@keyframes modal-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.modal{background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius-lg);width:100%;max-width:420px;max-height:85vh;max-height:85dvh;padding:20px;overflow:auto}.modal .intro{font-size:calc(15px * var(--text-scale));color:var(--text);margin-bottom:14px;line-height:1.6}.modal h2{font-family:var(--font-display);letter-spacing:.06em;font-weight:700;font-size:calc(20px * var(--text-scale));margin-bottom:12px}.modal ul{flex-direction:column;gap:12px;margin-bottom:16px;list-style:none;display:flex}.modal li{font-size:calc(15px * var(--text-scale));color:var(--text-dim);align-items:flex-start;gap:12px;line-height:1.6;display:flex}.modal li b{color:var(--text)}.modal li .icon{border:1px solid var(--edge);border-radius:var(--radius-sm);flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:flex}@media (max-width:430px){.modal{padding:18px 15px}.modal li{gap:10px}.modal li .icon{width:30px;height:30px}}.view{flex-direction:column;gap:12px;display:flex}.view[hidden]{display:none}.view>h2{font-family:var(--font-display);letter-spacing:.06em;font-weight:700;font-size:calc(21px * var(--text-scale));margin-top:4px}.view>h2:focus{outline:none}.view .intro{font-size:calc(15px * var(--text-scale));color:var(--text);line-height:1.6}.view .arch-list{max-height:none;margin-bottom:0;overflow:visible}.profile-list{flex-direction:column;gap:8px;display:flex}.tabbar{background:var(--surface);border-top:1px solid var(--edge);width:100%;max-width:540px;padding-bottom:env(safe-area-inset-bottom);z-index:35;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tabbar .tab{min-height:48px;color:var(--text-dim);font-size:calc(10px * var(--text-scale));letter-spacing:.04em;white-space:nowrap;background:0 0;border:none;border-radius:0;flex-direction:column;align-items:center;gap:3px;padding:8px 2px 10px;font-weight:600;display:flex;position:relative}.tabbar .tab .icon-glyph{color:currentColor;width:20px;height:20px}.tabbar .tab[aria-current=page]{color:var(--amber)}.tabbar .tab[aria-current=page]:before{content:"";background:var(--amber);height:2px;position:absolute;top:-1px;left:25%;right:25%}.tabbar .tab:active{transform:scale(.99)}:root:lang(ja){--font-ui:"Barlow", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", Meiryo, sans-serif;--font-display:"Barlow Condensed", "Hiragino Sans", "Yu Gothic", "Noto Sans JP", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Hiragino Sans", "Yu Gothic", monospace}:root:lang(ko){--font-ui:"Barlow", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", "Nanum Gothic", sans-serif;--font-display:"Barlow Condensed", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Apple SD Gothic Neo", "Noto Sans KR", monospace}:root:lang(zh-Hans){--font-ui:"Barlow", "PingFang SC", "Noto Sans SC", "Microsoft YaHei", "Heiti SC", sans-serif;--font-display:"Barlow Condensed", "PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "PingFang SC", "Noto Sans SC", monospace}:root:lang(zh-Hant){--font-ui:"Barlow", "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", "Heiti TC", sans-serif;--font-display:"Barlow Condensed", "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "PingFang TC", "Noto Sans TC", monospace}:root:lang(hi){--font-ui:"Barlow", "Kohinoor Devanagari", "Noto Sans Devanagari", "Nirmala UI", sans-serif;--font-display:"Barlow Condensed", "Kohinoor Devanagari", "Noto Sans Devanagari", "Nirmala UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Kohinoor Devanagari", "Noto Sans Devanagari", monospace}:root:lang(th){--font-ui:"Barlow", "Thonburi", "Noto Sans Thai", "Leelawadee UI", sans-serif;--font-display:"Barlow Condensed", "Thonburi", "Noto Sans Thai", "Leelawadee UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Thonburi", "Noto Sans Thai", monospace}:lang(ja),:lang(zh){line-break:strict;word-break:normal}:lang(ko){word-break:keep-all;overflow-wrap:break-word}:lang(th){line-break:normal;word-break:normal;overflow-wrap:break-word}:lang(hi) .hud>span,:lang(th) .hud>span{line-height:1.35}:is(:lang(ja),:lang(ko),:lang(zh),:lang(hi),:lang(th)) :is(.wordmark,.daytag,.dedication,.lang-code,.hud .lbl,.modal h2,.win-panel h2,.win-panel .win-stats i,.win-panel .win-topology,.win-panel .win-field i,.win-panel .win-note.engineers,.records .reading i,.arch-row .studied,.setting .setting-value){letter-spacing:normal}:is(:lang(ja),:lang(ko),:lang(zh),:lang(hi),:lang(th)) .wordmark{letter-spacing:.06em}
