:root{color-scheme:dark;--ink: #eefaf2;--muted: #9fc0b4;--dim: #86a89c;--kelp: #7fd8b0;--amber: #e8c473;--danger: #ff7a5c;--cold: #9fd8ff;--deep: #04141a;--panel: rgba(6, 26, 31, .9);--line: rgba(150, 226, 202, .22);font-family:Space Grotesk,Segoe UI,system-ui,sans-serif;font-synthesis:none}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--deep)}body{color:var(--ink)}button,input{font:inherit}button{color:inherit;cursor:pointer}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--kelp);outline-offset:3px}#app,#stage{position:fixed;inset:0;width:100%;height:100%}#stage{display:block;touch-action:none}#vignette{position:fixed;z-index:1;inset:0;pointer-events:none;background:linear-gradient(180deg,#020e12a8,#020e1247 7%,#020e1200 15%),linear-gradient(0deg,#020e12cc,#020e126b 8%,#020e1200 19%),radial-gradient(ellipse at 50% 46%,transparent 40%,rgba(2,12,16,.5) 86%,rgba(1,8,11,.86) 100%)}#flash{position:fixed;z-index:7;left:50%;top:15%;transform:translate(-50%);margin:0;width:max-content;max-width:calc(100vw - 44px);text-align:center;color:var(--ink);font:12px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.11em;text-shadow:0 2px 18px rgba(0,0,0,.9);opacity:0;transition:opacity .3s linear;pointer-events:none}#flash.show{opacity:1}#hud{position:fixed;z-index:8;top:0;left:0;right:0;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 24px;pointer-events:none}.mark,.hud-actions{pointer-events:auto}.mark{display:flex;align-items:center;gap:10px;letter-spacing:.2em;font-size:12px;font-weight:700}.mark i{display:block;width:18px;height:22px;border-radius:60% 60% 40% 40%/70% 70% 30% 30%;background:linear-gradient(180deg,#d9f7c9,#4fae86 62%,#1c4b46);box-shadow:0 0 14px #7fd8b073}.mark span{display:grid;gap:3px}.mark small{color:var(--dim);font:9px ui-monospace,monospace;letter-spacing:.14em}.hud-actions{display:flex;gap:6px}.hud-actions button{border:1px solid var(--line);background:#05181dc2;padding:8px 10px;font:9px ui-monospace,monospace;letter-spacing:.1em;transition:background .18s,border-color .18s,color .18s}.hud-actions button:hover{background:#7fd8b038;border-color:var(--kelp)}#tide{width:min(340px,34vw);pointer-events:none}#tide p{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 5px}#tide span{color:var(--dim);font:9px ui-monospace,monospace;letter-spacing:.16em}#tide b{color:var(--ink);font:13px ui-monospace,monospace;font-weight:500}#tide .track{position:relative;height:7px;border:1px solid var(--line);background:#031216b3}#tide .track i{position:absolute;inset:1px auto 1px 1px;width:100%;background:linear-gradient(90deg,#3f8f78,#a8e0a8);transition:width .2s linear}#tide .track em{position:absolute;right:2px;top:-3px;bottom:-3px;width:2px;background:var(--danger)}#tide.urgent .track i{background:linear-gradient(90deg,#b8563a,#ff9a6a)}#tide.urgent b{color:var(--danger)}#gauge{position:fixed;z-index:7;left:22px;top:50%;transform:translateY(-50%);display:grid;gap:8px;justify-items:center;pointer-events:none}#gauge>span{color:var(--dim);font:9px ui-monospace,monospace;letter-spacing:.18em}#gauge .track{position:relative;width:8px;height:min(280px,42vh);border:1px solid var(--line);background:linear-gradient(180deg,#5abeaf29,#031216cc)}#gauge-fill{position:absolute;top:1px;left:1px;right:1px;height:0%;background:linear-gradient(180deg,#96e6d28c,#286e6e59)}#gauge .mark{position:absolute;left:-5px;right:-5px;height:1px;background:#c8ebff8c}#gauge .mark.shear{background:var(--cold)}#gauge .mark.ground{background:#e8c473b3}#gauge-you{position:absolute;left:-6px;right:-6px;height:3px;background:var(--amber);box-shadow:0 0 10px #e8c473d9}#gauge-read{color:var(--ink);font:12px ui-monospace,monospace;font-weight:500}#alarm{position:fixed;z-index:7;right:22px;top:50%;transform:translateY(-50%);display:grid;gap:8px;justify-items:center;pointer-events:none}#alarm>span{color:var(--dim);font:9px ui-monospace,monospace;letter-spacing:.18em}#alarm .track{width:8px;height:min(180px,28vh);border:1px solid var(--line);background:#031216b3;position:relative}#alarm-fill{position:absolute;left:1px;right:1px;bottom:1px;height:0%;background:linear-gradient(0deg,#2f6f66,#e8c473 72%,#ff7a5c)}#alarm.hunting #alarm-fill{background:linear-gradient(0deg,#7a3a2c,#ff7a5c)}#grips{display:flex;gap:4px;margin:2px 0 0}#grips b{width:8px;height:8px;border:1px solid var(--line);background:#e8c473cc}#grips b.gone{background:transparent;border-color:#ff7a5c80}#grip-label{color:var(--dim);font:8px ui-monospace,monospace;letter-spacing:.14em}#status{position:fixed;z-index:7;left:50%;bottom:26px;transform:translate(-50%);display:flex;align-items:center;gap:14px;width:max-content;max-width:calc(100vw - 40px);pointer-events:none}#state-chip{margin:0;display:grid;gap:3px;text-align:right}#state-word{color:var(--kelp);font:11px ui-monospace,monospace;letter-spacing:.16em;font-weight:500}#state-word.warn{color:var(--danger)}#state-note{color:var(--muted);font:9px ui-monospace,monospace;font-style:normal;letter-spacing:.1em}#surge{display:grid;gap:5px}#surge .track{position:relative;width:min(230px,40vw);height:9px;border:1px solid var(--line);background:#031216bf}#surge-fill{position:absolute;inset:1px auto 1px 1px;width:4%;background:linear-gradient(90deg,#2f7f74,#a8e0a8 62%,#ffb06a);transition:width .08s linear}#surge .rip{position:absolute;top:-3px;bottom:-3px;left:80%;width:1px;background:var(--danger)}#surge .rip:after{content:"RIPS";position:absolute;left:2px;top:-12px;font:7px ui-monospace,monospace;color:var(--danger);letter-spacing:.1em}#surge .peak{position:absolute;top:-3px;bottom:-3px;left:88%;width:1px;background:#ffb06a99}#surge p{display:flex;align-items:baseline;gap:8px;margin:0}#surge span{color:var(--dim);font:8px ui-monospace,monospace;letter-spacing:.16em}#surge b{color:var(--ink);font:10px ui-monospace,monospace;letter-spacing:.14em;font-weight:500}#surge.hot b{color:var(--danger)}#kick-pips{display:grid;gap:4px;justify-items:center;margin:0}#kick-pips small{color:var(--dim);font:8px ui-monospace,monospace;letter-spacing:.14em}#kick-pips span{display:flex;gap:4px}#kick-pips b{width:7px;height:16px;background:var(--cold);opacity:.9}#kick-pips b.spent{opacity:.2}#touch{position:fixed;z-index:9;left:14px;right:14px;bottom:max(14px,env(safe-area-inset-bottom));display:none;justify-content:space-between;align-items:flex-end;pointer-events:none}#touch .pad{display:grid;grid-template-columns:repeat(3,54px);grid-template-rows:repeat(2,50px);gap:5px}#touch .pad button{grid-column:span 1}#touch .pad button:nth-child(1){grid-column:2}#touch .pad button:nth-child(2){grid-column:1;grid-row:2}#touch .pad button:nth-child(3){grid-column:3;grid-row:2}#touch .pad button:nth-child(4){grid-column:2;grid-row:2}#touch .acts{display:grid;gap:6px}#touch button{pointer-events:auto;border:1px solid var(--line);background:#05181dd1;color:var(--ink);backdrop-filter:blur(6px);font:13px ui-monospace,monospace;display:grid;gap:2px;place-content:center;touch-action:none}#touch .acts button{min-width:96px;min-height:56px;font-size:12px;letter-spacing:.12em}#touch .acts button small{color:var(--dim);font:8px ui-monospace,monospace;letter-spacing:.1em}#touch .acts button:last-child{border-color:#7fd8b099;color:var(--kelp)}#touch button:active,#touch button.on{background:#7fd8b04d}.screen{position:fixed;z-index:10;inset:0;display:flex;align-items:center;justify-content:center;padding:30px;background:#031014b8;backdrop-filter:blur(6px)}.title-screen{justify-content:space-between;align-items:flex-end;background:linear-gradient(96deg,#020f13f0,#020f1399 46%,#020f1314);backdrop-filter:none}.title-copy{width:min(560px,100%);padding:20px 0}.eyebrow{color:var(--kelp);font:10px ui-monospace,monospace;letter-spacing:.2em}.title-copy h1{margin:14px 0 16px;font-size:clamp(58px,10vw,118px);line-height:.78;letter-spacing:-.08em;font-weight:700}.title-copy h1 span{color:var(--kelp)}.title-copy .lede{max-width:500px;color:#c6ded3;font-size:14px;line-height:1.6}.title-controls{display:flex;flex-wrap:wrap;gap:8px 16px;margin:20px 0 22px;color:var(--muted);font:10px ui-monospace,monospace}kbd{display:inline-block;border:1px solid rgba(150,226,202,.34);padding:2px 5px;color:var(--ink);font:9px ui-monospace,monospace;margin-right:3px}.primary,.secondary{min-width:220px;border:1px solid var(--kelp);padding:14px 18px;background:#7fd8b0eb;color:#052018;font:11px ui-monospace,monospace;letter-spacing:.12em;font-weight:600}.primary:hover{background:#a9f0cd}.secondary{margin-top:9px;background:transparent;border-color:var(--line);color:var(--muted)}.secondary:hover{color:var(--ink);border-color:var(--kelp)}.title-copy>small{display:block;margin-top:13px;color:var(--dim);font:10px ui-monospace,monospace}.route-card{width:min(310px,100%);margin-bottom:8px;padding:16px 18px;border:1px solid var(--line);background:#04161bdb}.route-card>span{color:var(--dim);font:9px ui-monospace,monospace;letter-spacing:.18em}.route-card ol{list-style:none;margin:12px 0 0;padding:0}.route-card li{display:flex;gap:10px;padding:6px 0;border-top:1px solid rgba(150,226,202,.12);color:var(--muted);font:10px ui-monospace,monospace;line-height:1.4}.route-card li b{color:var(--amber);font-weight:500;flex:0 0 auto}.route-card p{margin:12px 0 0;color:var(--dim);font:10px ui-monospace,monospace;line-height:1.5}.modal{background:#020d11cc}.modal-card{width:min(480px,100%);max-height:calc(100dvh - 60px);overflow:auto;padding:30px;border:1px solid var(--line);background:var(--panel);box-shadow:0 30px 100px #0009}.modal-card h2{margin:12px 0 10px;font-size:30px;line-height:1.04;letter-spacing:-.04em}.modal-card p{color:var(--muted);font-size:13px;line-height:1.6}.toggle{display:flex;align-items:center;gap:9px;margin:20px 0;color:var(--muted);font:11px ui-monospace,monospace}.toggle input{accent-color:var(--kelp);width:16px;height:16px}.help-card{width:min(580px,100%)}.help-card dl{display:grid;grid-template-columns:118px 1fr;gap:10px 16px;margin:22px 0}.help-card dt{color:var(--kelp);font:10px ui-monospace,monospace;letter-spacing:.06em}.help-card dd{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.result-card{border-color:#e8c47373}.ledger{display:grid;gap:2px;margin:20px 0 14px}.ledger div{display:flex;align-items:baseline;gap:10px;padding:7px 0;border-top:1px solid rgba(150,226,202,.12)}.ledger span{color:var(--dim);font:9px ui-monospace,monospace;letter-spacing:.12em;flex:1 1 auto}.ledger b{color:var(--ink);font:12px ui-monospace,monospace;font-weight:500}.ledger em{color:var(--amber);font:9px ui-monospace,monospace;font-style:normal;letter-spacing:.1em}.record{color:var(--kelp)!important;font:11px ui-monospace,monospace!important;margin:0 0 20px!important}@media(max-width:760px){#hud{padding:12px;gap:10px;align-items:center}.mark{font-size:10px;gap:7px}.mark i{width:13px;height:16px}.mark small{display:none}.hud-actions{gap:4px}.hud-actions button{min-height:34px;padding:7px 6px;font-size:8px}#tide{position:absolute;left:12px;right:12px;top:54px;width:auto}#tide b{font-size:12px}#gauge{left:10px;gap:5px}#gauge .track{width:7px;height:min(210px,34vh)}#gauge>span{font-size:8px}#gauge-read{font-size:11px}#alarm{right:10px;gap:5px}#alarm .track{width:7px;height:min(150px,24vh)}#alarm>span,#grip-label{font-size:8px}#status{flex-direction:column;gap:8px;bottom:122px}#state-chip{text-align:center;order:2}#state-word{font-size:10px}#state-note{font-size:8px}#surge{order:1}#surge .track{width:min(240px,72vw)}#kick-pips{order:3}#flash{top:21%;font-size:10px}.title-screen{align-items:flex-end;padding:16px}.title-copy{padding:0 2px;width:100%;max-height:calc(100dvh - 32px);overflow:auto}.title-copy h1{font-size:clamp(52px,18vw,82px)}.title-copy .lede{font-size:12px}.title-controls{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;margin:16px 0;font-size:9px}.primary,.secondary{width:100%;min-height:48px}.secondary{margin-left:0}.route-card{display:none}.modal{padding:12px}.modal-card{padding:22px 16px;max-height:calc(100dvh - 24px)}.modal-card h2{font-size:25px}.help-card dl{grid-template-columns:1fr;gap:4px}.help-card dt{margin-top:8px}}@media(pointer:coarse){#touch{display:flex}#status{bottom:132px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}}
