@layer reset{*,:before,:after{box-sizing:border-box;margin:0}button,input,select{font:inherit}[hidden]{display:none!important}}@layer tokens{:root{--ink:#fff;--ink-dim:#8f8f8f;--paper:#232838;--surface:#242a3a59;--surface-hi:#343a5059;--surface-lo:#14182459;--surface-gradient:linear-gradient(160deg, var(--surface-hi), var(--surface-lo));--surface-inverse:#ffffffa6;--surface-knob:#fff6;--veil:#0a0c1259;--accent:#f2971f;--accent-ink:var(--accent);--ink-on-accent:#000;--danger:#ef4444;--ink-on-danger:#000;--accent-signature:var(--accent);--state-engaged:var(--accent);--state-warn:var(--danger);--hatch:#0000004d;--surface-read-gradient:linear-gradient(160deg, #343a50bf, #141824bf);--cone:#ffffff38;--edge-gradient:linear-gradient(160deg, #ffffff4d, #ffffff14 55%);--ring:#c9cdd8;--line:.5px;--line-strong:2px;--shadow-pressed:0 1px 3px #0006;--raise:2px 2px 2px #00000075, -2px -2px 2px #ffffff4d;--raise-big:2px 2px 2px #00000085, -2px -2px 2px #ffffff4d;--raise-light:2px 2px 2px #00000052, -2px -2px 2px #fff9;--carve:inset 3px 3px 9px #0000004d, inset -3px -3px 9px #ffffff17;--carve-deep:inset 5px 5px 12px #00000073, inset -5px -5px 12px #ffffff1f;--halo-text:0 0 2px #000000f2, 0 0 5px #000000d9, 0 1px 14px #000000a6;--halo-drop:drop-shadow(0 1px 2px #000c);--halo-ring:0 0 4px #0009;--font-ui:"Corbel", "Noto Sans", ui-rounded, "Segoe UI", "Roboto", system-ui, sans-serif;--font-num:var(--font-ui);--size-hint:12px;--size-body:14px;--size-read:16px;--weight-body:500;--weight-strong:500;--case-ui:uppercase;--tracking-ui:.08em;--case-prose:none;--tracking-prose:normal;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--measure:60rem;--radius:14px;--radius-small:10px;--radius-pill:999px;--strip:5px;--groove:18px;--tap:44px;--t-fast:.12s;--t-state:.25s;--t-enter:.4s;--t-loading-bar:15s;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in:cubic-bezier(.4, 0, 1, 1)}@media (prefers-reduced-transparency:reduce),(prefers-contrast:more){:root{--surface:#242a3aeb;--surface-hi:#343a50eb;--surface-lo:#141824eb;--surface-inverse:#ffffffeb;--surface-knob:#fffc;--veil:#0a0c1299}}@media (prefers-color-scheme:light){:root:has(.page){--ink:#1b1b20;--ink-dim:#5a5a63;--paper:#f2f1ed;--accent-ink:#8a4b00;--surface:#ffffff8c;--surface-hi:#ffffffc7;--surface-lo:#0000000d;--surface-inverse:#1b1b20b8;--surface-knob:#1b1b2052;--veil:#f2f1ed99;--surface-read-gradient:linear-gradient(160deg, #ffffffe6, #ffffffb8);--edge-gradient:linear-gradient(160deg, #00000029, #0000000a 55%);--ring:#8a8f9c;--cone:#0000001f;--raise:2px 2px 2px #00000029, -2px -2px 2px #ffffffe6;--raise-big:3px 3px 4px #0003, -3px -3px 4px #fffffff2;--raise-light:2px 2px 2px #0000001f, -2px -2px 2px #fffffff2;--shadow-pressed:0 1px 3px #0000002e;--carve:inset 3px 3px 9px #0000001f, inset -3px -3px 9px #ffffffd9;--carve-deep:inset 5px 5px 12px #0000002e, inset -5px -5px 12px #ffffffe6;--halo-text:0 0 2px #fffffff2, 0 0 5px #ffffffd9, 0 1px 14px #ffffffa6;--halo-drop:drop-shadow(0 1px 2px #fffc);--halo-ring:0 0 4px #fff9}@media (prefers-reduced-transparency:reduce),(prefers-contrast:more){:root:has(.page){--surface:#fffffff0;--surface-hi:#fffffff7;--surface-lo:#0000001a;--surface-inverse:#1b1b20f0;--surface-knob:#1b1b20b3;--veil:#f2f1edd9}}}}@layer base{body{font-family:var(--font-ui);font-size:var(--size-body);font-weight:var(--weight-body);color:var(--ink)}h1{font-size:20px;font-weight:var(--weight-strong)}h2{font-size:var(--size-body);font-weight:var(--weight-strong)}h3{font-size:var(--size-hint);font-weight:var(--weight-body)}}@layer atoms{.plate,.btn,.select,.toast,.anno,.radar-wrap,.switch,.num,.hint,.log,.legend,.badge{font-family:var(--font-ui);font-size:var(--size-body);font-weight:var(--weight-body);text-transform:var(--case-ui);letter-spacing:var(--tracking-ui)}.toast,.hint,.anno-text,.log,.num,.prose{text-transform:var(--case-prose);letter-spacing:var(--tracking-prose)}.kv{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.prose{margin:0;line-height:1.4}.prose[data-tone=warn]{background:var(--state-warn);color:var(--ink-on-danger);padding:var(--space-2) var(--space-3);border-radius:var(--radius-small)}.plate{background:linear-gradient(var(--accent-signature) 0 0) right / var(--strip) 100% no-repeat padding-box, var(--plate-surface,var(--surface-gradient)) padding-box, var(--edge-gradient) border-box;border-radius:var(--radius);box-shadow:var(--raise);padding:var(--space-2) calc(var(--space-3) + var(--strip) + var(--space-1)) var(--space-2) var(--space-3);border:1px solid #0000;position:relative;overflow:hidden}.btn{background:var(--surface-gradient);color:var(--ink);border-radius:var(--radius-small);box-shadow:var(--raise);min-width:var(--tap);min-height:var(--tap);padding:0 var(--space-4);font-weight:var(--weight-strong);cursor:pointer;transition:box-shadow var(--t-fast), transform var(--t-fast), background-color var(--t-state) var(--ease-out), color var(--t-state) var(--ease-out);border:none}.btn:hover{box-shadow:var(--raise-big);transform:translate(-2px,-2px)}.btn:active{box-shadow:var(--shadow-pressed), var(--carve-deep);transform:translate(1px,1px)}.btn:focus-visible{outline:var(--line-strong) solid var(--ink);outline-offset:2px}.btn[disabled]{cursor:not-allowed;box-shadow:none;color:var(--ink);opacity:.45;transform:none}.btn[aria-pressed=true],.btn--accent,.btn--locate[data-state=located]{background:var(--state-engaged);color:var(--ink-on-accent)}.btn--icon{width:var(--tap);height:var(--tap);min-width:var(--tap);border-radius:var(--radius);justify-content:center;align-items:center;padding:0;font-size:18px;display:inline-flex}.btn--icon svg{width:24px;height:24px}.btn--glyph{font-size:22px}.toggle{width:28px;min-width:0;height:28px;min-height:0;font-family:var(--font-num);font-size:var(--size-read);border-radius:9px;padding:0;line-height:1}.slider{appearance:none;width:100%;height:var(--tap);cursor:pointer;touch-action:pan-y;background:0 0}.slider::-webkit-slider-runnable-track{height:var(--groove);border-radius:var(--radius-pill);background:var(--surface);box-shadow:var(--carve)}.slider::-webkit-slider-thumb{-webkit-appearance:none;width:40px;height:var(--groove);background:var(--surface-knob);border-radius:var(--radius-pill);box-shadow:var(--raise-light);border:none;margin-top:0}.slider::-moz-range-track{height:var(--groove);border-radius:var(--radius-pill);background:var(--surface);box-shadow:var(--carve)}.slider::-moz-range-thumb{width:40px;height:var(--groove);background:var(--surface-knob);box-shadow:var(--raise-light);border-radius:var(--radius-pill);border:none}.slider:focus-visible{outline:var(--line-strong) solid var(--ink);outline-offset:2px}.slider[disabled]{opacity:.45;cursor:not-allowed}.slider[disabled]::-webkit-slider-thumb{box-shadow:none}.slider[disabled]::-moz-range-thumb{box-shadow:none}.num{font-family:var(--font-num);font-size:var(--size-body);font-variant-numeric:tabular-nums;white-space:nowrap}.hint{font-size:var(--size-hint);color:var(--ink)}@keyframes warn-onset{0%{box-shadow:0 0 0 0 var(--state-warn)}to{box-shadow:0 0 0 10px #0000}}.num[data-degraded=true]{animation:warn-onset var(--t-enter) var(--ease-out);background:var(--state-warn);color:var(--ink-on-danger);padding:0 var(--space-1);border-radius:4px}.num--accent{color:var(--accent-ink)}@keyframes enter-fade{0%{opacity:0}}@keyframes enter-rise{0%{opacity:0;transform:translateY(4px)}}@keyframes leave-fade{to{opacity:0}}[data-leaving][data-leaving]{animation:leave-fade var(--t-state) var(--ease-in) forwards}.toast{animation:enter-rise var(--t-enter) var(--ease-out);background:var(--surface-inverse);color:var(--paper);border-radius:var(--radius);box-shadow:var(--raise-light);padding:var(--space-2) var(--space-4);font-weight:var(--weight-strong);border:none;width:max-content}.loading-overlay{gap:var(--space-2);height:max-content;padding:var(--space-3) var(--space-4);text-align:center;width:max-content;max-width:80%;font-weight:var(--weight-strong);animation:enter-rise var(--t-enter) var(--ease-out);flex-direction:column;margin:auto;display:flex;position:absolute;inset:0}.loading-overlay-bar{border-radius:var(--radius-pill);background:var(--surface);height:3px;display:block;overflow:hidden}.loading-overlay-fill{background:var(--ink);transform-origin:0;height:100%;animation:loading-drain var(--t-loading-bar) linear forwards;display:block}@keyframes loading-drain{to{transform:scaleX(0)}}.loading-overlay[data-overrun=true] .loading-overlay-fill{transform-origin:50%;width:30%;animation:1.6s ease-in-out infinite overlay-sweep}@keyframes overlay-sweep{0%{transform:translate(-120%)}to{transform:translate(400%)}}.is-loading:before{content:"";border-radius:var(--radius-pill);background:currentColor;width:.5em;height:.5em;margin-right:.45em;animation:1.2s ease-in-out infinite waiting-pulse;display:inline-block}.veil{animation:enter-fade var(--t-enter) var(--ease-out);background:var(--veil);padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}@keyframes modal-settle{0%{opacity:0;transform:scale(.96)}}.modal{animation:modal-settle var(--t-enter) var(--ease-out);--plate-surface:var(--surface-read-gradient);gap:var(--space-3);flex-direction:column;width:min(320px,100%);display:flex}.modal-actions{align-items:stretch;gap:var(--space-2);flex-direction:column;display:flex}.btn--locate[data-state=locating]{animation:1.2s ease-in-out infinite waiting-pulse}@keyframes waiting-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.btn--locate[data-state=locating]{opacity:.6;animation:none}.toast,.veil,.modal,.anno .anno-text,.diamond rect,.diamond circle,.leader polyline,.leader circle,.num[data-degraded=true],.badge[data-tone=warn],.progress[data-tone=lost] .progress-fill,[data-leaving][data-leaving],.is-loading:before,.loading-overlay,.loading-overlay-fill,.loading-overlay[data-overrun=true] .loading-overlay-fill{animation:none}.loading-overlay[data-overrun=true] .loading-overlay-fill{width:100%}*{transition-duration:1ms!important}}.btn--locate[data-state=located] svg circle{fill:var(--ink)}.btn--locate[data-state=denied],.btn--locate[data-state=timeout],.btn--locate[data-state=unavailable]{position:relative}.btn--locate[data-state=denied]:after,.btn--locate[data-state=timeout]:after,.btn--locate[data-state=unavailable]:after{content:"";background:var(--state-warn);border:var(--line) solid var(--ink);border-radius:50%;width:9px;height:9px;position:absolute;top:-2px;right:-2px}.sheet{border-radius:var(--radius) var(--radius) 0 0;gap:var(--space-2);padding-top:var(--space-2);flex-direction:column;display:flex}.sheet-handle{border-radius:var(--radius-pill);background:var(--surface-knob);flex-shrink:0;align-self:center;width:36px;height:5px}.log{scrollbar-width:thin;scrollbar-color:var(--surface-knob) transparent;background:var(--surface);box-shadow:var(--carve);border-radius:var(--radius-small);padding:var(--space-2) var(--space-3);max-height:114px;line-height:1.5;font-family:var(--font-ui);font-size:var(--size-hint);flex-direction:column;gap:2px;display:flex;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 16px calc(100% - 6px),#0000);mask-image:linear-gradient(#0000,#000 16px calc(100% - 6px),#0000)}.legend{gap:var(--space-1);flex-direction:column;display:flex}.legend-title{font-size:var(--size-hint)}.legend-scale{flex-direction:column;gap:2px;width:max-content;display:flex}.legend-strip{width:max-content;box-shadow:var(--raise);border-radius:3px;display:flex;overflow:hidden}.legend-swatch{width:20px;height:10px}.legend-ends{justify-content:space-between;display:flex}.badge{align-items:center;gap:var(--space-1);background:var(--surface-gradient);box-shadow:var(--raise);border-radius:var(--radius-pill);padding:2px var(--space-2);font-size:var(--size-hint);width:max-content;display:inline-flex}.badge[data-tone=warn]{animation:warn-onset var(--t-enter) var(--ease-out);background:var(--state-warn);color:var(--ink-on-danger)}.anno{pointer-events:none;color:var(--ink)}.anno-text{font-size:var(--size-hint);text-shadow:var(--halo-text);flex-direction:column;gap:2px;width:max-content;display:flex}@media (prefers-contrast:more){.anno-text{background:var(--surface);padding:var(--space-1) var(--space-2);text-shadow:none;border-radius:8px}}.anno-title{font-size:var(--size-body);text-transform:var(--case-ui);letter-spacing:var(--tracking-ui)}.anno--target{align-items:center;gap:var(--space-3);display:flex}@keyframes draw-line{0%{stroke-dashoffset:180px}to{stroke-dashoffset:0}}@keyframes dot-pop{0%{opacity:0;transform:scale(0)}}.diamond{width:64px;height:64px;filter:var(--halo-drop);flex-shrink:0;overflow:visible}.diamond rect{fill:none;stroke:var(--ink);stroke-width:var(--line-strong)}.diamond rect,.leader polyline{stroke-dasharray:180;animation:draw-line calc(var(--t-enter) * 2) var(--ease-out) both}.diamond circle,.leader circle{transform-box:fill-box;transform-origin:50%;animation:dot-pop var(--t-state) var(--ease-out) both;animation-delay:calc(var(--t-enter) * 1.5)}.diamond circle{fill:var(--accent);stroke:var(--ink);stroke-width:var(--line)}.anno .anno-text{animation:enter-fade var(--t-enter) var(--ease-out) both;animation-delay:var(--t-enter)}.leader{filter:var(--halo-drop);display:block;overflow:visible}.leader polyline{fill:none;stroke:var(--ink);stroke-width:var(--line)}.leader circle{fill:var(--accent);stroke:var(--ink);stroke-width:var(--line)}.radar-wrap{pointer-events:none;width:max-content;display:flex;position:relative}.radar{background:var(--surface-gradient);border:var(--line) solid var(--ring);width:96px;height:96px;box-shadow:var(--raise);border-radius:50%;position:relative;overflow:hidden}.radar:after{content:"";background:var(--accent);border:var(--line) solid var(--ink);border-radius:50%;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;position:absolute;top:50%;left:50%}.radar-cone{background:conic-gradient(from -28deg, transparent 0deg, var(--cone) 8deg 48deg, transparent 56deg);border-radius:50%;position:absolute;inset:0;-webkit-mask:radial-gradient(circle,#000 0 68%,#0000 98%);mask:radial-gradient(circle,#000 0 68%,#0000 98%)}.radar-north{text-shadow:var(--halo-text);flex-direction:column;align-items:center;font-size:10px;display:flex;position:absolute;top:14px;left:14px;transform:translate(calc(2px - 100%),calc(2px - 100%))}.radar-north:after{content:"";border:4px solid #0000;border-bottom-color:var(--ink);width:0;height:0;margin-top:-1px;transform:rotate(-45deg)}.radar-blip{background:var(--ink);width:6px;height:6px;box-shadow:var(--halo-ring);border-radius:50%;position:absolute}.switch{align-items:center;gap:var(--space-3);cursor:pointer;width:max-content;display:flex;position:relative}.switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.switch-track{border-radius:var(--radius-pill);background:var(--surface);width:44px;height:24px;box-shadow:var(--carve);transition:background var(--t-state) var(--ease-out);flex-shrink:0;position:relative}.switch-track:after{content:"";width:var(--groove);height:var(--groove);background:var(--ink);box-shadow:var(--raise);transition:transform var(--t-fast);border-radius:50%;position:absolute;top:3px;left:3px}.switch input:checked+.switch-track{background:var(--state-engaged)}.switch input:checked+.switch-track:after{transform:translate(20px)}.switch input:focus-visible+.switch-track{outline:var(--line-strong) solid var(--ink);outline-offset:2px}.switch:has(input[disabled]){cursor:not-allowed;opacity:.45}.switch:has(input[disabled]) .switch-track:after{box-shadow:none}.select-wrap{display:inline-block;position:relative}.select{appearance:none;background:var(--surface-gradient);color:var(--ink);border-radius:var(--radius-small);box-shadow:var(--raise);min-height:var(--tap);padding:0 40px 0 var(--space-4);font-weight:var(--weight-strong);text-transform:var(--case-ui);letter-spacing:var(--tracking-ui);cursor:pointer;border:none}.select option{background:var(--paper);color:var(--ink)}.select:focus-visible{outline:var(--line-strong) solid var(--ink);outline-offset:2px}.select-wrap:after{content:"";border-right:var(--line-strong) solid var(--ink);border-bottom:var(--line-strong) solid var(--ink);pointer-events:none;width:8px;height:8px;margin-top:-6px;position:absolute;top:50%;right:16px;transform:rotate(45deg)}.select--small{min-height:36px;padding:0 32px 0 var(--space-3);font-size:var(--size-hint);max-width:150px}.progress{border-radius:var(--radius-pill);background:var(--surface);width:220px;height:10px;box-shadow:var(--carve);overflow:hidden}.progress-fill{border-radius:var(--radius-pill);background:var(--ink);height:100%;transition:width var(--t-state) var(--ease-out), background-color var(--t-state) var(--ease-out);display:block}.progress[data-tone=good] .progress-fill{background:var(--ink)}@keyframes hatch-drift{to{background-position-x:11.3px}}.progress[data-tone=lost] .progress-fill{background:repeating-linear-gradient(135deg, var(--state-warn) 0 5px, var(--hatch) 5px 8px);background-color:var(--state-warn);animation:1.2s linear infinite hatch-drift}.row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.row>.slider{flex:120px;width:auto;min-width:120px}.col{gap:var(--space-3);flex-direction:column;display:flex}.page{background:var(--paper);max-width:var(--measure);padding:var(--space-4);margin:0 auto}.step{background:var(--surface-gradient) padding-box, var(--edge-gradient) border-box;border-radius:var(--radius);box-shadow:var(--raise);padding:var(--space-3);margin-block:var(--space-3);border:1px solid #0000;display:block;position:relative;overflow:hidden}.step>summary{align-items:center;gap:var(--space-2);font-weight:var(--weight-strong);text-transform:var(--case-ui);letter-spacing:var(--tracking-ui);cursor:pointer;display:flex}.step>summary>h1,.step>summary>h2,.step>summary>h3{font-size:inherit;font-weight:inherit;letter-spacing:inherit;display:inline}.step-icon{width:var(--space-4);height:var(--space-4);color:var(--accent-ink);flex:none;justify-content:center;align-items:center;display:inline-flex}.step-body{text-transform:var(--case-prose);letter-spacing:var(--tracking-prose);margin-block-start:var(--space-2)}.input{background:var(--surface-gradient);color:var(--ink);border-radius:var(--radius-small);box-shadow:var(--raise);min-height:var(--tap);padding:0 var(--space-3);font-family:inherit;font-size:var(--size-body);text-transform:var(--case-prose);letter-spacing:var(--tracking-prose);border:none}.input::placeholder,.hint--dim{color:var(--ink-dim)}.btn--prose{text-transform:var(--case-prose);letter-spacing:var(--tracking-prose);font-weight:var(--weight-body)}}@layer screen{.hud-readout{top:40px;left:var(--space-3);align-items:flex-start;gap:var(--space-2);max-width:340px;display:flex;position:absolute}.hud-readout .lines{flex-direction:column;gap:2px;min-width:0;display:flex}.hud-readout .num{white-space:normal}.hud-readout .extra{display:none}.hud-readout:has([aria-expanded=true]) .extra{animation:enter-fade var(--t-state) var(--ease-out);display:block}.hud-bottom{gap:var(--space-3);flex-direction:column;align-items:center;width:340px;display:flex;position:absolute;bottom:34px;left:50%;transform:translate(-50%)}.hud-elevation{align-items:center;gap:var(--space-2);display:flex}.hud-elevation .num{text-align:center;min-width:56px}.hud-compass{align-items:center;gap:var(--space-1) var(--space-3);flex-wrap:wrap;width:100%;display:flex}.hud-compass .slider{flex:1;min-width:150px}.hud-compass .hint{text-align:center;flex-basis:100%}.hud-actions{justify-content:space-between;align-items:center;width:100%;display:flex}.guidance-panel{gap:var(--space-2);flex-direction:column;width:320px;display:flex;position:absolute;top:56px;left:50%;transform:translate(-50%)}.guidance-head{justify-content:space-between;align-items:baseline;display:flex}.guidance-panel .progress{width:100%}.bottom-panel{align-items:stretch;gap:var(--space-2);text-align:center;flex-direction:column;width:320px;display:flex;position:absolute;bottom:34px;left:50%;transform:translate(-50%)}.start-panel{z-index:1;width:340px;max-width:calc(100% - 2 * var(--space-4));align-items:center;gap:var(--space-3);text-align:center;flex-direction:column;height:max-content;margin:auto;display:flex;position:absolute;inset:0}.start-panel .btn{min-width:200px}.exp-panel{right:var(--space-3);gap:var(--space-3);width:300px;padding-top:var(--space-3);padding-bottom:var(--space-3);flex-direction:column;display:flex;position:absolute;bottom:110px}.exp-header{justify-content:space-between;align-items:center;display:flex}.exp-row{justify-content:space-between;align-items:center;gap:var(--space-3);cursor:pointer;display:flex}}
