:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#070b18;--cell:#111a33;--edge:#27406e;--text:#dfe7ff;--muted:#8796c0;--focus:#fff;--chart:#9fd8ff;--truth:#ffd27a;--ghost:#c9b8ff;--glow-1:#6cf6ff;--glow-2:#ffb86b;--glow-3:#b98cff;--glow-4:#7dff9a;--glow-5:#ff7ab8;--glow-6:#ffe66b;--marker-neutral:#e4e8f0}html,body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,sans-serif}.app{box-sizing:border-box;flex-direction:column;align-items:center;gap:8px;max-width:520px;min-height:100dvh;margin:0 auto;padding:8px;display:flex}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.hud{white-space:nowrap;flex-wrap:nowrap;align-items:center;gap:8px;width:100%;font-size:.8rem;display:flex}.hud>*{flex-shrink:0}.hud-id{flex-direction:column;margin-right:auto;display:flex}.hud-title{align-items:baseline;gap:6px;display:flex}.anomaly-counter{color:var(--text);font-size:1rem}.anomaly-counter.ready{color:var(--glow-4)}.anomaly-counter.over{color:var(--glow-5)}.rules-button{width:44px;height:44px;font:inherit;color:var(--glow-1);background:var(--cell);border:1px solid var(--glow-1);box-shadow:0 0 6px var(--glow-1);border-radius:50%;flex:none;align-self:center;font-size:1.2rem;font-weight:700}.rules-button:focus-visible,.sheet button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.hint{min-height:1.3em;color:var(--glow-1);text-align:center;margin:0;font-size:.95rem}.hud h1{letter-spacing:.06em;margin:0;font-size:1.2rem}.tag{text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--edge);color:var(--muted);border-radius:4px;padding:1px 6px;font-size:.7rem}.tag-button{font-family:inherit;line-height:inherit;cursor:pointer;background:0 0}.tag-button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.beta-tag{letter-spacing:0;color:var(--glow-1);border-color:var(--glow-1);padding:1px 3px;font-size:.6rem}.beta-date{letter-spacing:0}.playtest-tag{letter-spacing:0;color:var(--glow-6);border-color:var(--glow-6);padding:1px 4px;font-size:.6rem}.flare{color:var(--glow-6);text-shadow:0 0 6px var(--glow-6)}.flare.used{color:var(--edge);text-shadow:none}.board{touch-action:manipulation;-webkit-tap-highlight-color:transparent;width:100%;height:auto;display:block}.board g:focus{outline:none}.cell>polygon{fill:var(--cell);stroke:var(--edge);stroke-width:1px}.cell{cursor:pointer}.cell[aria-disabled=true]{cursor:default}.cell:focus-visible>polygon{stroke:var(--focus);stroke-width:2.5px}.hyp.lens{stroke:var(--chart);stroke-width:3px;stroke-linecap:round;filter:drop-shadow(0 0 3px var(--chart))}.hyp.sing{fill:#000;stroke:var(--chart);stroke-width:2px;filter:drop-shadow(0 0 4px var(--chart))}.reveal-layer,.ghost-layer{pointer-events:none}.truth.lens{stroke:var(--truth);stroke-width:2px;stroke-linecap:round;stroke-dasharray:1 4}.truth.sing{fill:none;stroke:var(--truth);stroke-width:2px;stroke-dasharray:1 3}.true-route{fill:none;stroke:var(--truth);stroke-width:2.5px;stroke-linejoin:round;filter:drop-shadow(0 0 4px var(--truth))}.tutorial-route-layer,.tutorial-beams-layer{pointer-events:none}.route-draw{stroke-dasharray:1;stroke-dashoffset:1px;animation:.6s ease-out forwards route-draw}@keyframes route-draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.route-draw{stroke-dasharray:none;stroke-dashoffset:0;animation:none}}.reveal-layer .true-route,.tutorial-beams-layer .true-route{stroke:currentColor;filter:drop-shadow(0 0 4px)}.ghost-route{fill:none;stroke:currentColor;stroke-opacity:.8;stroke-width:1.5px;stroke-dasharray:5 4;stroke-linejoin:round}.beam-end{stroke:currentColor;stroke-opacity:.9;stroke-width:1.75px;stroke-linecap:round}.beam-end-ring{fill:none;stroke:currentColor;stroke-opacity:.8;stroke-width:1.5px}.port{cursor:pointer}.port-hit{fill:#0000;stroke:none}.port:focus-visible .port-hit{stroke:var(--focus);stroke-width:2px}.clue-c0{color:var(--glow-1)}.clue-c1{color:var(--glow-2)}.clue-c2{color:var(--glow-3)}.clue-c3{color:var(--glow-4)}.clue-c4{color:var(--glow-5)}.clue-c5{color:var(--glow-6)}.clue-neutral{color:var(--marker-neutral)}.clue-edge{stroke:currentColor;stroke-width:3px;stroke-linecap:round;pointer-events:none}.clue-edge.selected{stroke-width:5px;filter:drop-shadow(0 0 3px)}.marker .disc{fill:var(--bg);stroke:currentColor}.marker .glow{fill:currentColor;opacity:0;filter:drop-shadow(0 0 6px);transform-box:fill-box;transform-origin:50%}.port.selected .glow{opacity:.35}.glyph{fill:currentColor;text-anchor:middle;dominant-baseline:central;font-size:10px;font-weight:700}.anim-exit{animation:1.2s ease-out pulse}.anim-returned{animation:1.2s ease-in-out pulse-back}.port.selected .anim-absorbed{animation:1.2s ease-in forwards fade}@keyframes pulse{0%{opacity:.9;transform:scale(1)}to{opacity:.35;transform:scale(1.8)}}@keyframes pulse-back{0%,to{opacity:.35;transform:scale(1)}50%{opacity:.9;transform:scale(1.9)}}@keyframes fade{0%{opacity:.9;transform:scale(1.6)}to{opacity:0;transform:scale(.6)}}@media (prefers-reduced-motion:reduce){.marker .glow,.port.selected .anim-absorbed{animation:none}.port.selected .glow{opacity:.8}}.status{text-align:center;min-height:1.4em;margin:0}.result{text-align:center;width:100%}.result p{margin:.25em 0}.recorded-result{color:var(--glow-1)}.stats{flex-wrap:wrap;justify-content:center;gap:4px 20px;margin:.5em 0 0;padding:0 16px;display:flex}.stat{flex-direction:column-reverse;align-items:center;min-width:0;display:flex}.stat dt{opacity:.75;font-size:.75rem}.stat dd{margin:0;font-size:1.25rem}.share{flex-direction:column;align-items:center;gap:6px;padding:0 16px;display:flex}.result-actions{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:0 8px;padding:0 16px;display:flex}.result-actions .share{flex:140px;max-width:320px;padding:0}.result-actions .share:has(.share-text){flex-basis:100%}.share-button{min-width:112px;min-height:44px;font:inherit;color:var(--text);background:var(--cell);border:1px solid var(--glow-1);box-shadow:0 0 8px var(--glow-1);border-radius:8px;padding:0 16px}.share-button:disabled{opacity:.45}.share-button:focus-visible,.share-text:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.share-feedback{min-height:1.4em;color:var(--muted);margin:0}.share-text{box-sizing:border-box;width:100%;max-width:320px;font:inherit;color:var(--text);background:var(--cell);border:1px solid var(--edge);resize:none;border-radius:8px;padding:8px}.daily-wait{justify-content:center}.daily-status{color:var(--glow-1);text-align:center;text-shadow:0 0 6px var(--glow-1);margin:0;padding:0 16px;font-size:1rem;animation:1.6s ease-in-out infinite alternate charting}.daily-failed{color:var(--text);text-shadow:none;animation:none}@keyframes charting{0%{opacity:.55}to{opacity:1}}@media (prefers-reduced-motion:reduce){.daily-status{animation:none}}.ghost-notes{color:var(--ghost);text-align:center;font-size:.9rem}.ghost-notes p{margin:0}.ghost-notes.reserved{min-height:2.6em}.controls{gap:12px;display:flex}.controls button{min-width:112px;min-height:44px;font:inherit;color:var(--text);background:var(--cell);border:1px solid var(--edge);border-radius:8px;padding:0 16px}.controls .restart{min-width:44px;padding:0 10px}.controls button[aria-pressed=true]{border-color:var(--ghost);color:var(--ghost)}.controls button:disabled{opacity:.45}.controls button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.submit:not(:disabled){border-color:var(--glow-1);box-shadow:0 0 8px var(--glow-1)}.sheet-backdrop{z-index:10;background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{box-sizing:border-box;background:var(--bg);border:1px solid var(--edge);border-bottom:none;border-radius:12px 12px 0 0;width:100%;max-width:520px;max-height:90dvh;padding:0 16px 16px;line-height:1.4;overflow-y:auto}.sheet-head{background:var(--bg);justify-content:space-between;align-items:center;padding-top:8px;display:flex;position:sticky;top:0}.sheet h2{margin:0;font-size:1.2rem}.sheet h3{color:var(--glow-1);margin:16px 0 4px;font-size:1rem}.sheet p,.sheet ul{margin:4px 0}.sheet ul{padding-left:20px}.sheet button{min-width:44px;min-height:44px;font:inherit;color:var(--text);background:var(--cell);border:1px solid var(--edge);border-radius:8px}.sheet-actions,.sheet-top-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.sheet-top-actions{margin:8px 0 12px}.sheet-actions button,.sheet-top-actions button{flex:40%}.sheet-top-note{color:var(--muted);flex:100%;margin:0;font-size:.85em}.sheet-top-actions .share{flex:100%;align-items:stretch;gap:2px;padding:0}.sheet-top-actions .share-button{box-shadow:none;flex:none}.sheet-top-actions .share-text{max-width:none}.playtest-nav,.playtest-random{gap:8px;margin-top:12px;display:flex}.playtest-nav input{min-width:0;min-height:44px;font:inherit;color:var(--text);background:var(--cell);border:1px solid var(--edge);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:8px;flex:1 1 0}.playtest-random button{flex:1 1 0;min-width:0}.playtest-shown{font-variant-numeric:tabular-nums;margin-top:12px}.playtest-off{width:100%;margin-top:20px}.coach{box-sizing:border-box;border:1px solid var(--edge);background:var(--cell);border-radius:8px;width:100%;padding:8px 10px;font-size:.9rem;line-height:1.35}.coach-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.coach h2{letter-spacing:.04em;color:var(--muted);margin:0;font-size:.8rem;font-weight:600}.coach h2:focus{outline:none}.coach p{margin:4px 0 0}.coach-title{color:var(--glow-1);font-weight:700}.coach-says{min-height:7.2em}.coach .coach-next-slot{visibility:hidden;height:44px}.tutorial .board{min-height:220px;max-height:calc(100dvh - 376px)}.coach-happened{color:var(--muted)}.coach button{min-height:44px;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--edge);border-radius:8px;flex:none;padding:0 12px}.coach button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.coach .coach-next{border-color:var(--glow-1);width:100%;box-shadow:0 0 8px var(--glow-1);margin-top:8px;display:block}.cell.tutorial-target>polygon{stroke:var(--glow-1);stroke-width:2.5px;animation:1.4s ease-in-out infinite target-pulse}.port.tutorial-target .glow{opacity:.8;animation:1.4s ease-in-out infinite target-marker;transform:scale(1.5)}.port.tutorial-target .disc{stroke-width:3px}.clue-edge.tutorial-target{stroke-width:5px;animation:1.4s ease-in-out infinite target-pulse}.submit.tutorial-target:not(:disabled),.coach .coach-next.tutorial-target{animation:1.4s ease-in-out infinite target-glow}@keyframes target-pulse{0%,to{stroke-opacity:1}50%{stroke-opacity:.25}}@keyframes target-marker{0%,to{opacity:.8;transform:scale(1.5)}50%{opacity:.2;transform:scale(1)}}@keyframes target-glow{0%,to{box-shadow:0 0 8px var(--glow-1)}50%{box-shadow:0 0 2px var(--glow-1)}}@media (prefers-reduced-motion:reduce){.cell.tutorial-target>polygon,.port.tutorial-target .glow,.clue-edge.tutorial-target,.submit.tutorial-target:not(:disabled),.coach .coach-next.tutorial-target{animation:none}}.rules-figs{justify-content:space-between;gap:8px;margin:8px 0;display:flex}.rules-fig{text-align:center;flex:1 1 0;margin:0;font-size:.8rem}.rules-diagram{width:100%;max-width:120px;height:auto;margin:0 auto 4px;display:block}.rules-cell{fill:var(--cell);stroke:var(--edge);stroke-width:1px}.rules-route{fill:none;stroke:var(--glow-1);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 0 3px var(--glow-1))}
