@font-face{font-family:Saira Condensed;font-weight:500;src:url(/fonts/saira-condensed-500.woff2) format("woff2");font-display:swap}@font-face{font-family:Saira Condensed;font-weight:700;src:url(/fonts/saira-condensed-700.woff2) format("woff2");font-display:swap}@font-face{font-family:JetBrains Mono;font-weight:100 800;src:url(/fonts/jetbrains-mono-var.woff2) format("woff2");font-display:swap}:root{--ink: #080b10;--ink-2: #0f141b;--ink-3: #161d26;--line: #243040;--line-2: #33425a;--fg: #e6edf3;--fg-dim: #8797ab;--amber: #f5b342;--cyan: #57d6f0;--rose: #ff6b8a;--lime: #b9f06a;--violet: #c48bff;--display: "Saira Condensed", "Arial Narrow", sans-serif;--mono: "JetBrains Mono", ui-monospace, Menlo, monospace;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:radial-gradient(1200px 600px at 20% -10%,rgba(87,214,240,.1),transparent 60%),radial-gradient(900px 500px at 100% 110%,rgba(245,179,66,.1),transparent 60%),var(--ink);color:var(--fg);font-family:var(--mono);font-size:13px;line-height:1.45;padding:0 16px}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.6),transparent 70%);mask-image:linear-gradient(to bottom,rgba(0,0,0,.6),transparent 70%)}#app{position:relative;z-index:1;max-width:1240px;margin:0 auto;padding-block:18px 40px}#app:not(.ready) .stage{opacity:.25;pointer-events:none}#loading{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-family:var(--display);font-size:22px;letter-spacing:.08em;text-transform:uppercase;color:var(--cyan)}.masthead{display:flex;flex-wrap:wrap;gap:16px 40px;align-items:flex-end;justify-content:space-between;margin-bottom:18px;border-bottom:1px solid var(--line);padding-bottom:14px}.brand h1{font-family:var(--display);font-weight:700;font-size:54px;line-height:.9;letter-spacing:.02em;text-transform:uppercase;margin:0}.brand h1 span{color:var(--amber)}.tagline{margin:8px 0 0;color:var(--fg-dim);max-width:46ch}.howto{list-style:none;margin:0;padding:0;display:flex;gap:8px;flex-wrap:wrap}.howto li{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border:1px solid var(--line);border-radius:999px;background:var(--ink-2);font-family:var(--display);font-size:15px;letter-spacing:.04em;text-transform:uppercase;cursor:help}.howto b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--amber);color:var(--ink);font-size:13px}.stage{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:22px;align-items:start}@media (max-width: 900px){.stage{grid-template-columns:1fr}}.board-wrap{position:sticky;top:12px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,var(--ink-2),var(--ink));padding:14px;box-shadow:0 30px 80px #00000080,inset 0 1px #ffffff0a}@media (max-width: 900px){.board-wrap{position:static}}#board{width:100%;height:auto;max-height:78vh;display:block}.gate-stage{display:flex;align-items:center;gap:10px;margin-top:10px;min-height:18px;font-family:var(--mono);font-size:11px;color:var(--fg-dim);opacity:0;transition:opacity .2s;cursor:help}.gate-stage.show{opacity:1}.gate-kind{color:var(--cyan);font-weight:600;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.gate-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gate-bar{flex:0 0 96px;height:4px;border-radius:2px;background:var(--line-2);overflow:hidden}.gate-bar:after{content:"";display:block;height:100%;width:calc(var(--p, 0) * 100%);background:var(--cyan);transition:width 60ms linear}.gate-stage.final .gate-bar:after{box-shadow:0 0 8px var(--cyan)}.legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px;color:var(--fg-dim);font-size:12px}.lg{cursor:help;padding-left:16px;position:relative}.lg:before{content:"";position:absolute;left:0;top:50%;width:10px;height:10px;transform:translateY(-50%);border-radius:3px}.lg-heat:before{background:var(--cyan);box-shadow:0 0 10px var(--cyan)}.lg-phase:before{background:var(--amber)}.lg-block:before{background:var(--rose)}.lg-focus:before{background:var(--lime)}.lg-owned:before{background:var(--amber);opacity:.6}.lg-influence:before{background:linear-gradient(90deg,#f5b34280,#ff7ab826)}.cell{cursor:crosshair}.cell .hex{fill:var(--ink-3);stroke:var(--line-2);stroke-width:1;transition:fill .12s}.cell:hover .hex{fill:#1e2835;stroke:var(--fg-dim)}.cell .terr{stroke:none;pointer-events:none;transition:fill-opacity .2s}.cell .rim{fill:none;stroke-width:1.5;stroke-opacity:.8;pointer-events:none}.cell .heat{fill:var(--cyan);stroke:none;transition:fill-opacity 90ms linear;pointer-events:none}.cell.in-region .hex{stroke:var(--cyan);stroke-opacity:.8;stroke-width:1.6}svg.previewing .cell.in-region .hex{stroke-dasharray:4 3;stroke-opacity:.6}.gate-stage.live .gate-kind{color:var(--amber)}.cell.blocked .hex{fill:#1a0f14;stroke:var(--rose);stroke-dasharray:3 3}.block-x{stroke:var(--rose);stroke-width:2.5;stroke-linecap:round;pointer-events:none}.glyph{font-family:var(--mono);font-size:15px;font-weight:700;text-anchor:middle;pointer-events:none}.glyph-sub{font-family:var(--mono);font-size:8px;font-weight:600;text-anchor:middle;pointer-events:none}.glyph-phase{fill:var(--amber)}.glyph-focus{fill:var(--lime)}.prob{font-family:var(--mono);font-size:8.5px;font-weight:600;text-anchor:middle;fill:var(--cyan);pointer-events:none}.trail{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;stroke-opacity:.75;stroke-dasharray:5 4;pointer-events:none}.token{cursor:pointer}.token circle{stroke:var(--ink);stroke-width:2.5;filter:drop-shadow(0 2px 6px rgba(0,0,0,.6))}.token.selected circle{stroke:#fff}.token text{font-family:var(--display);font-weight:700;font-size:14px;fill:var(--ink);text-anchor:middle;pointer-events:none}.cell.landed .hex{stroke:#fff;stroke-width:2.5;animation:land .9s ease-out}@keyframes land{0%{stroke-opacity:1}to{stroke-opacity:.3}}.token .pulse{fill:none;stroke:#fff;stroke-width:2.5;opacity:0;pointer-events:none;transform-box:fill-box;transform-origin:center}.token.landed .pulse{animation:pulse .9s ease-out 1}.token.landed .body{transform-box:fill-box;transform-origin:center;animation:pop .5s ease-out 1}.token.landed.stayed .pulse{stroke:var(--cyan);animation:pulse .65s ease-out 2}.token.landed.stayed .body{animation:pop .65s ease-out 2}@keyframes pulse{0%{transform:scale(1);opacity:.95}to{transform:scale(3.2);opacity:0}}@keyframes pop{0%{transform:scale(1)}35%{transform:scale(1.35)}to{transform:scale(1)}}@media (prefers-reduced-motion: reduce){.token .pulse,.token .body,.cell.landed .hex{animation:none!important}.token.landed .pulse{opacity:.8}}.panel{display:flex;flex-direction:column;gap:12px}.card{border:1px solid var(--line);border-radius:12px;background:#0f141bd9;padding:12px 14px}.card h2{font-family:var(--display);font-weight:700;font-size:17px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;display:flex;align-items:center;gap:8px;color:var(--fg)}.turn-card{border-color:var(--amber);background:linear-gradient(180deg,#f5b3421a,#0f141bd9)}.turn-head{display:flex;justify-content:space-between;align-items:center}.turn-label{font-family:var(--display);font-weight:700;font-size:26px;letter-spacing:.04em;text-transform:uppercase;color:var(--tc, var(--fg))}.phase-steps{display:flex;gap:6px;margin:10px 0 8px}.phase-step{flex:1;display:flex;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:8px;color:var(--fg-dim);cursor:help;font-family:var(--display);text-transform:uppercase;letter-spacing:.06em;font-size:14px}.phase-step b{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;border:1px solid currentColor;font-size:12px}.phase-step.active{color:var(--amber);border-color:var(--amber)}.budget{color:var(--fg-dim);font-size:12px}.done-note{margin-top:8px;padding:6px 10px;border-radius:6px;background:#f5b34224;color:var(--amber);font-size:12px}.done-note[hidden]{display:none}.turn-card.done{animation:card-pulse 1.6s ease-in-out infinite}.btn.end-turn.pulse{background:var(--amber);color:var(--ink);border-color:var(--amber);animation:btn-pulse 1.6s ease-in-out infinite}@keyframes card-pulse{0%,to{box-shadow:0 0 #f5b34200}50%{box-shadow:0 0 0 4px #f5b34259}}@keyframes btn-pulse{0%,to{box-shadow:0 0 #f5b34200;filter:brightness(1)}50%{box-shadow:0 0 18px 3px #f5b342a6;filter:brightness(1.12)}}@media (prefers-reduced-motion: reduce){.turn-card.done,.btn.end-turn.pulse{animation:none}.turn-card.done{box-shadow:0 0 0 3px #f5b34259}}.btn{font:inherit;font-family:var(--display);font-weight:700;font-size:15px;letter-spacing:.08em;text-transform:uppercase;padding:8px 14px;border-radius:8px;border:1px solid var(--line-2);background:var(--ink-3);color:var(--fg);cursor:pointer}.btn:hover{border-color:var(--fg-dim)}.btn.primary{background:var(--cyan);color:var(--ink);border-color:var(--cyan)}.btn.primary:hover{filter:brightness(1.08)}.btn:disabled{opacity:.45;cursor:not-allowed}.tool-row{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.tool{font:inherit;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;border-radius:8px;border:1px solid var(--line);background:var(--ink-2);color:var(--fg-dim);cursor:pointer;text-transform:uppercase;font-family:var(--display);letter-spacing:.06em;font-size:13px}.tool .glyph{font-family:var(--mono);font-size:20px}.tool-phase.active{color:var(--amber);border-color:var(--amber)}.tool-block.active{color:var(--rose);border-color:var(--rose)}.tool-focus.active{color:var(--lime);border-color:var(--lime)}.tool-measure.active{color:var(--violet);border-color:var(--violet)}.tool-unclaim.active{color:var(--rose);border-color:var(--rose)}.tool-measure.needs-live{opacity:.6}.tool-erase.active{color:var(--fg);border-color:var(--fg)}.angle-row{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap}.angle-row[hidden]{display:none}.chip{font:inherit;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:var(--ink-2);color:var(--fg-dim);cursor:pointer}.chip.active{color:var(--amber);border-color:var(--amber)}.lbl{color:var(--fg-dim);font-size:12px;text-transform:uppercase;letter-spacing:.06em;cursor:help;display:inline-flex;align-items:center;gap:6px}.help-dot{display:inline-grid;place-items:center;width:14px;height:14px;border-radius:50%;border:1px solid var(--line-2);font-size:9px}.help{font:inherit;width:18px;height:18px;border-radius:50%;border:1px solid var(--line-2);background:transparent;color:var(--fg-dim);cursor:help;font-size:11px;display:inline-grid;place-items:center;padding:0}.row{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}.field{display:grid;grid-template-columns:1fr 110px;align-items:center;gap:8px;padding:5px 0;border-bottom:1px dashed var(--line)}.field:last-of-type{border-bottom:0}.num,.sel{font:inherit;width:100%;padding:5px 8px;border-radius:6px;border:1px solid var(--line-2);background:var(--ink);color:var(--fg)}.row .num{width:70px}.num:disabled{opacity:.4}.tool:disabled,.chip:disabled,.token-chip:disabled,.sel:disabled{opacity:.55;cursor:not-allowed}input[type=checkbox]{width:18px;height:18px;accent-color:var(--amber);justify-self:start}.token-row{display:flex;gap:6px;flex-wrap:wrap}.token-chip{font:inherit;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:var(--ink-2);color:var(--fg-dim);cursor:pointer}.token-chip i{width:10px;height:10px;border-radius:50%;background:var(--tc)}.token-chip.active{color:var(--fg);border-color:var(--tc)}.token-chip.walked{opacity:.6}.token-chip small{font-size:10px;color:var(--fg-dim)}.token-chip small.to-move{color:var(--tc);text-transform:uppercase;letter-spacing:.06em}.token-chip{cursor:help}.status{padding:10px 12px;border-left:3px solid var(--cyan);background:#57d6f00f;border-radius:0 8px 8px 0;min-height:40px}.log{list-style:none;margin:0;padding:0;max-height:240px;overflow:auto;display:flex;flex-direction:column;gap:4px;font-size:12px}.log li{display:grid;grid-template-columns:auto auto 1fr auto auto;gap:8px;align-items:baseline;padding:4px 6px;border-radius:6px;background:var(--ink)}.log li:first-child{outline:1px solid var(--line-2)}.log-token{color:var(--tc);font-weight:700}.log-step{color:var(--fg-dim)}.log-claim{color:var(--lime);cursor:help}.log-prob{color:var(--cyan);cursor:help;white-space:nowrap}.log:empty:before{content:"No steps yet.";color:var(--fg-dim)}.quantum-line{color:var(--fg-dim);font-size:11px;text-align:right}.tip{position:absolute;top:0;left:0;z-index:50;max-width:300px;padding:8px 10px;border-radius:8px;border:1px solid var(--line-2);background:#0b1017;color:var(--fg);font-size:12px;line-height:1.4;box-shadow:0 12px 30px #0009;opacity:0;pointer-events:none;transition:opacity .12s}.tip.show{opacity:1}
