:root{--theory-green: #2ee87f;--theory-green-strong: #16c76a;--theory-green-deep: #0b7a41;--theory-green-glow: rgba(46, 232, 127, .14);--bg-base: #0a0a0a;--bg-surface: #121211;--bg-elevated: #1a1a18;--bg-hover: #232320;--bg-inset: #070707;--ink-primary: #ffffff;--ink-secondary: #c3c2b7;--ink-muted: #898781;--ink-inverse: #0a0a0a;--line-hairline: rgba(255, 255, 255, .1);--line-strong: rgba(255, 255, 255, .2);--line-grid: #2c2c2a;--status-good: #0ca30c;--status-warning: #fab219;--status-serious: #ec835a;--status-critical: #d03b3b;--series-1: #199e70;--series-2: #3987e5;--series-3: #d95926;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--text-4xl: 3rem;--text-hero: 4.5rem;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--sp-20: 80px;--sp-24: 96px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 999px;--shadow-card: 0 1px 2px rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.25);--shadow-pop: 0 12px 40px rgba(0,0,0,.5);--glow-green: 0 0 0 1px var(--theory-green-strong), 0 0 24px var(--theory-green-glow);--ease: cubic-bezier(.22, 1, .36, 1);--dur-fast: .12s;--dur-base: .2s}[data-theme=light]{--bg-base: #f9f9f7;--bg-surface: #ffffff;--bg-elevated: #ffffff;--bg-hover: #f1f1ee;--bg-inset: #f1f1ee;--ink-primary: #0b0b0b;--ink-secondary: #52514e;--ink-muted: #898781;--ink-inverse: #ffffff;--line-hairline: rgba(11, 11, 11, .1);--line-strong: rgba(11, 11, 11, .2);--line-grid: #e1e0d9;--theory-green: #0b9e50;--theory-green-strong: #0b7a41;--theory-green-glow: rgba(11, 158, 80, .12);--series-1: #1baf7a;--series-2: #2a78d6;--series-3: #eb6834}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg-base);color:var(--ink-primary);font-family:var(--font-sans);font-size:var(--text-base);line-height:1.55;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit}:focus-visible{outline:2px solid var(--theory-green);outline-offset:2px}.tabular{font-variant-numeric:tabular-nums}:root{--camo-0: #0b0d0a;--camo-1: #12160f;--camo-2: #1a2015;--camo-3: #232b19;--camo-4: #2e3a20;--olive: #4a5a33;--sand: #b8b08a;--cmd-base: #080a07;--cmd-surface: #0f120d;--cmd-panel: #131711;--cmd-raised: #1a1f16;--cmd-hover: #222819;--glass: rgba(20, 24, 17, .62);--glass-strong: rgba(12, 15, 10, .86);--glass-line: rgba(214, 255, 196, .14);--glass-line-2: rgba(214, 255, 196, .28);--hud: rgba(46, 232, 127, .55);--hud-faint: rgba(46, 232, 127, .12);--hud-grid: rgba(120, 160, 110, .1);--bracket: rgba(46, 232, 127, .72);--tape: #d7c948;--code-paper: #ffffff;--code-ink: #0a0a0a;--radius-sm: 2px;--radius-md: 3px;--radius-lg: 4px;--radius-xl: 6px;--shadow-card: 0 1px 0 rgba(255,255,255,.03), 0 10px 30px rgba(0,0,0,.55);--shadow-pop: 0 24px 70px rgba(0,0,0,.7);--shadow-hud: 0 0 0 1px var(--glass-line), 0 18px 44px rgba(0,0,0,.6);--font-display: "SF Compact Display", "Helvetica Neue", Inter, system-ui, sans-serif;--track-stencil: .22em;--dur-slow: .42s}:root{--camo-blobs: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='192' height='192'%3E%3Crect x='36' y='0' width='12' height='12' fill='%23232b19'/%3E%3Crect x='48' y='0' width='12' height='12' fill='%23232b19'/%3E%3Crect x='60' y='0' width='12' height='12' fill='%23232b19'/%3E%3Crect x='72' y='0' width='12' height='12' fill='%23232b19'/%3E%3Crect x='84' y='0' width='12' height='12' fill='%23232b19'/%3E%3Crect x='96' y='0' width='12' height='12' fill='%23232b19'/%3E%3Crect x='108' y='0' width='12' height='12' fill='%23232b19'/%3E%3Crect x='120' y='0' width='12' height='12' fill='%23232b19'/%3E%3Crect x='132' y='0' width='12' height='12' fill='%23232b19'/%3E%3Crect x='144' y='0' width='12' height='12' fill='%231a2015'/%3E%3Crect x='156' y='0' width='12' height='12' fill='%231a2015'/%3E%3Crect x='168' y='0' width='12' height='12' fill='%231a2015'/%3E%3Crect x='48' y='12' width='12' height='12' fill='%23232b19'/%3E%3Crect x='60' y='12' width='12' height='12' fill='%23232b19'/%3E%3Crect x='72' y='12' width='12' height='12' fill='%23232b19'/%3E%3Crect x='84' y='12' width='12' height='12' fill='%23232b19'/%3E%3Crect x='96' y='12' width='12' height='12' fill='%23232b19'/%3E%3Crect x='108' y='12' width='12' height='12' fill='%23232b19'/%3E%3Crect x='120' y='12' width='12' height='12' fill='%23232b19'/%3E%3Crect x='132' y='12' width='12' height='12' fill='%23232b19'/%3E%3Crect x='144' y='12' width='12' height='12' fill='%231a2015'/%3E%3Crect x='156' y='12' width='12' height='12' fill='%231a2015'/%3E%3Crect x='168' y='12' width='12' height='12' fill='%231a2015'/%3E%3Crect x='36' y='24' width='12' height='12' fill='%231a2015'/%3E%3Crect x='48' y='24' width='12' height='12' fill='%231a2015'/%3E%3Crect x='60' y='24' width='12' height='12' fill='%231a2015'/%3E%3Crect x='72' y='24' width='12' height='12' fill='%23232b19'/%3E%3Crect x='84' y='24' width='12' height='12' fill='%23232b19'/%3E%3Crect x='96' y='24' width='12' height='12' fill='%23232b19'/%3E%3Crect x='108' y='24' width='12' height='12' fill='%23232b19'/%3E%3Crect x='120' y='24' width='12' height='12' fill='%23232b19'/%3E%3Crect x='132' y='24' width='12' height='12' fill='%231a2015'/%3E%3Crect x='144' y='24' width='12' height='12' fill='%231a2015'/%3E%3Crect x='156' y='24' width='12' height='12' fill='%231a2015'/%3E%3Crect x='168' y='24' width='12' height='12' fill='%231a2015'/%3E%3Crect x='180' y='24' width='12' height='12' fill='%231a2015'/%3E%3Crect x='0' y='36' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='36' y='36' width='12' height='12' fill='%231a2015'/%3E%3Crect x='60' y='36' width='12' height='12' fill='%231a2015'/%3E%3Crect x='72' y='36' width='12' height='12' fill='%231a2015'/%3E%3Crect x='84' y='36' width='12' height='12' fill='%231a2015'/%3E%3Crect x='96' y='36' width='12' height='12' fill='%231a2015'/%3E%3Crect x='108' y='36' width='12' height='12' fill='%231a2015'/%3E%3Crect x='120' y='36' width='12' height='12' fill='%231a2015'/%3E%3Crect x='132' y='36' width='12' height='12' fill='%231a2015'/%3E%3Crect x='144' y='36' width='12' height='12' fill='%231a2015'/%3E%3Crect x='156' y='36' width='12' height='12' fill='%231a2015'/%3E%3Crect x='168' y='36' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='0' y='48' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='12' y='48' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='72' y='48' width='12' height='12' fill='%231a2015'/%3E%3Crect x='84' y='48' width='12' height='12' fill='%231a2015'/%3E%3Crect x='96' y='48' width='12' height='12' fill='%231a2015'/%3E%3Crect x='108' y='48' width='12' height='12' fill='%231a2015'/%3E%3Crect x='120' y='48' width='12' height='12' fill='%231a2015'/%3E%3Crect x='132' y='48' width='12' height='12' fill='%231a2015'/%3E%3Crect x='144' y='48' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='156' y='48' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='168' y='48' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='180' y='48' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='0' y='60' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='12' y='60' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='132' y='60' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='144' y='60' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='156' y='60' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='168' y='60' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='180' y='60' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='0' y='72' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='12' y='72' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='24' y='72' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='36' y='72' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='48' y='72' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='132' y='72' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='144' y='72' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='156' y='72' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='168' y='72' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='180' y='72' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='0' y='84' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='12' y='84' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='24' y='84' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='36' y='84' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='48' y='84' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='60' y='84' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='72' y='84' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='132' y='84' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='144' y='84' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='156' y='84' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='168' y='84' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='180' y='84' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='0' y='96' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='12' y='96' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='24' y='96' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='36' y='96' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='48' y='96' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='60' y='96' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='72' y='96' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='132' y='96' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='144' y='96' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='156' y='96' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='168' y='96' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='180' y='96' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='0' y='108' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='12' y='108' width='12' height='12' fill='%23232b19'/%3E%3Crect x='24' y='108' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='36' y='108' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='48' y='108' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='60' y='108' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='84' y='108' width='12' height='12' fill='%231a2015'/%3E%3Crect x='156' y='108' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='168' y='108' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='180' y='108' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='0' y='120' width='12' height='12' fill='%23232b19'/%3E%3Crect x='12' y='120' width='12' height='12' fill='%23232b19'/%3E%3Crect x='24' y='120' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='36' y='120' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='48' y='120' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='60' y='120' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='72' y='120' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='84' y='120' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='96' y='120' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='168' y='120' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='180' y='120' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='0' y='132' width='12' height='12' fill='%23232b19'/%3E%3Crect x='12' y='132' width='12' height='12' fill='%23232b19'/%3E%3Crect x='24' y='132' width='12' height='12' fill='%23232b19'/%3E%3Crect x='36' y='132' width='12' height='12' fill='%23232b19'/%3E%3Crect x='48' y='132' width='12' height='12' fill='%23232b19'/%3E%3Crect x='60' y='132' width='12' height='12' fill='%23232b19'/%3E%3Crect x='72' y='132' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='84' y='132' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='96' y='132' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='108' y='132' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='180' y='132' width='12' height='12' fill='%23232b19'/%3E%3Crect x='0' y='144' width='12' height='12' fill='%23232b19'/%3E%3Crect x='12' y='144' width='12' height='12' fill='%23232b19'/%3E%3Crect x='24' y='144' width='12' height='12' fill='%23232b19'/%3E%3Crect x='36' y='144' width='12' height='12' fill='%23232b19'/%3E%3Crect x='48' y='144' width='12' height='12' fill='%23232b19'/%3E%3Crect x='60' y='144' width='12' height='12' fill='%23232b19'/%3E%3Crect x='72' y='144' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='84' y='144' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='96' y='144' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='108' y='144' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='24' y='156' width='12' height='12' fill='%23232b19'/%3E%3Crect x='36' y='156' width='12' height='12' fill='%23232b19'/%3E%3Crect x='48' y='156' width='12' height='12' fill='%23232b19'/%3E%3Crect x='60' y='156' width='12' height='12' fill='%23232b19'/%3E%3Crect x='72' y='156' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='84' y='156' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='96' y='156' width='12' height='12' fill='%232e3a20'/%3E%3Crect x='180' y='156' width='12' height='12' fill='%23232b19'/%3E%3Crect x='24' y='168' width='12' height='12' fill='%23232b19'/%3E%3Crect x='36' y='168' width='12' height='12' fill='%23232b19'/%3E%3Crect x='48' y='168' width='12' height='12' fill='%23232b19'/%3E%3Crect x='60' y='168' width='12' height='12' fill='%23232b19'/%3E%3Crect x='72' y='168' width='12' height='12' fill='%23232b19'/%3E%3Crect x='84' y='168' width='12' height='12' fill='%23232b19'/%3E%3Crect x='96' y='168' width='12' height='12' fill='%23232b19'/%3E%3Crect x='24' y='180' width='12' height='12' fill='%23232b19'/%3E%3Crect x='36' y='180' width='12' height='12' fill='%23232b19'/%3E%3Crect x='48' y='180' width='12' height='12' fill='%23232b19'/%3E%3Crect x='60' y='180' width='12' height='12' fill='%23232b19'/%3E%3Crect x='72' y='180' width='12' height='12' fill='%23232b19'/%3E%3Crect x='84' y='180' width='12' height='12' fill='%23232b19'/%3E%3Crect x='96' y='180' width='12' height='12' fill='%23232b19'/%3E%3Crect x='108' y='180' width='12' height='12' fill='%231a2015'/%3E%3Crect x='120' y='180' width='12' height='12' fill='%231a2015'/%3E%3Crect x='132' y='180' width='12' height='12' fill='%231a2015'/%3E%3Crect x='144' y='180' width='12' height='12' fill='%231a2015'/%3E%3Crect x='156' y='180' width='12' height='12' fill='%231a2015'/%3E%3Crect x='180' y='180' width='12' height='12' fill='%231a2015'/%3E%3C/svg%3E");--grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E")}.camo-veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:radial-gradient(150% 120% at 50% -10%,#0009,#000000e0),var(--camo-blobs);background-size:auto,192px 192px;opacity:.62}.grain-veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:var(--grain);opacity:.045;mix-blend-mode:overlay}.stencil{font-family:var(--font-display);font-size:var(--text-xs);font-weight:900;letter-spacing:var(--track-stencil);text-transform:uppercase;color:var(--ink-muted)}.stencil.green{color:var(--theory-green)}.code{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--olive)}.hazard{background-image:repeating-linear-gradient(45deg,var(--tape) 0 8px,transparent 8px 16px);opacity:.5;height:4px}.brackets{position:absolute;top:5px;right:5px;bottom:5px;left:5px;pointer-events:none;z-index:2}.brackets:before,.brackets:after{content:"";position:absolute;width:12px;height:12px;border:1px solid var(--bracket);opacity:.45}.brackets:before{top:0;left:0;border-right:0;border-bottom:0}.brackets:after{bottom:0;right:0;border-left:0;border-top:0}.tmap{position:relative;overflow:hidden;background:var(--camo-0);border:1px solid var(--glass-line);border-radius:var(--radius-lg);touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab}.tmap.is-dragging{cursor:grabbing}.tmap.is-static{cursor:default}.tmap:focus-visible{outline:2px solid var(--theory-green);outline-offset:-2px}.tmap-tiles{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:0 0}.tmap-tiles img{position:absolute;display:block;width:256px;height:256px;pointer-events:none;animation:tmap-in .42s var(--ease)}@keyframes tmap-in{0%{opacity:0}to{opacity:1}}.tmap-fallback{position:absolute;top:0;right:0;bottom:0;left:0;background-image:var(--camo-blobs);background-size:192px 192px;opacity:.9}.tmap-graticule{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.45;background-image:linear-gradient(var(--hud-grid) 1px,transparent 1px),linear-gradient(90deg,var(--hud-grid) 1px,transparent 1px);background-size:56px 56px}.tmap-vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(120% 92% at 50% 50%,transparent 48%,rgba(0,0,0,.7) 100%),linear-gradient(180deg,rgba(0,0,0,.3),transparent 26%,transparent 72%,rgba(0,0,0,.5))}.tmap-pin{position:absolute;z-index:3;transform:translate(-50%,-50%);background:none;border:0;padding:0;margin:0;cursor:pointer;color:var(--theory-green)}.tmap-pin.is-warning{color:var(--status-warning)}.tmap-pin.is-muted{color:var(--ink-muted)}.tmap-pin.is-sel{z-index:6}.tmap-pin:hover{z-index:7;filter:brightness(1.2)}.tmap-pin:focus-visible{outline:2px solid var(--theory-green);outline-offset:4px}.tmap-pin svg{display:block;overflow:visible}.tmap-halo{fill:currentColor;opacity:.08}.tmap-pin:hover .tmap-halo,.tmap-pin.is-sel .tmap-halo{opacity:.18}.tmap-plate{fill:var(--glass-strong);stroke:currentColor;stroke-width:1.5}.tmap-pin.is-sel .tmap-plate{fill:var(--cmd-raised);stroke-width:2.5}.tmap-num{fill:var(--ink-primary);font-family:var(--font-mono);font-weight:800;text-anchor:middle;dominant-baseline:central}.tmap-ping{fill:none;stroke:currentColor;stroke-width:1;transform-origin:center;animation:tmap-ping 2.6s var(--ease) infinite}@keyframes tmap-ping{0%{transform:scale(.6);opacity:.85}70%{transform:scale(1.9);opacity:0}to{transform:scale(1.9);opacity:0}}.tmap-tag{position:absolute;left:50%;top:calc(100% - 6px);transform:translate(-50%);display:none;align-items:center;gap:6px;padding:3px 9px;white-space:nowrap;background:var(--glass-strong);border:1px solid var(--glass-line-2);border-radius:var(--radius-sm);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-primary)}.tmap-tag b{color:var(--theory-green);font-weight:850}.tmap-pin:hover .tmap-tag,.tmap-pin:focus-visible .tmap-tag,.tmap-pin.is-sel .tmap-tag,.tmap-pin.is-open .tmap-tag{display:flex}.tmap-hud{position:absolute;right:12px;bottom:12px;z-index:5;display:flex;flex-direction:column;align-items:flex-end;gap:6px}.tmap-zoom{display:flex;gap:4px}.tmap-zoom button{width:40px;height:40px;display:grid;place-items:center;background:var(--glass-strong);border:1px solid var(--glass-line);border-radius:var(--radius-full);color:var(--ink-primary);font-size:var(--text-lg);font-weight:700;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.tmap-zoom button:hover{border-color:var(--glass-line-2);background:var(--cmd-hover)}.tmap-scale{display:flex;flex-direction:column;gap:3px;padding:4px 9px;background:var(--glass-strong);border:1px solid var(--glass-line);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:10px;color:var(--ink-secondary)}.tmap-scale i{display:block;height:5px;border:1px solid var(--ink-secondary);border-top:0}.tmap-attr{position:absolute;left:10px;bottom:6px;z-index:4;font-size:9px;letter-spacing:.04em;color:var(--ink-muted);background:var(--glass);padding:2px 7px;border-radius:var(--radius-full);pointer-events:none;max-width:62%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tmap-caption{position:absolute;left:12px;top:12px;z-index:4;padding:6px 12px;background:var(--glass-strong);border:1px solid var(--glass-line);border-radius:var(--radius-sm);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-primary);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}@media(prefers-reduced-motion:reduce){.tmap-tiles img,.tmap-ping{animation:none!important}}html{-webkit-text-size-adjust:100%}body{background:var(--bg-inset);overscroll-behavior-y:contain;-webkit-tap-highlight-color:transparent}#root{min-height:100dvh}.shell{min-height:100dvh;max-width:520px;margin:0 auto;background:var(--bg-base);display:flex;flex-direction:column;border-inline:1px solid var(--line-hairline)}.shell__main{flex:1;padding:var(--sp-4) var(--sp-4) var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4)}.appbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--sp-3);padding:max(var(--sp-2),env(safe-area-inset-top)) var(--sp-4) var(--sp-2);background:var(--bg-base);border-bottom:1px solid var(--line-hairline)}.appbar__id{flex:1;min-width:0}.appbar__brand{font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--ink-muted)}.appbar__club{font-size:15px;font-weight:650;color:var(--ink-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-title{font-size:var(--text-2xl);font-weight:720;letter-spacing:-.02em;margin:0;line-height:1.15}.page-sub{margin:2px 0 0;font-size:15px;color:var(--ink-secondary)}.eyebrow{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--ink-muted)}.muted{color:var(--ink-secondary);font-size:15px}.panel{background:var(--bg-surface);border:1px solid var(--line-hairline);border-radius:var(--radius-lg);padding:var(--sp-4)}.panel--flat{padding:0;overflow:hidden}.row{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:56px;padding:var(--sp-3) var(--sp-4);background:transparent;border:0;border-bottom:1px solid var(--line-hairline);text-align:left;text-decoration:none;color:inherit;font-size:15px}.row:last-child{border-bottom:0}.row--tap{cursor:pointer}.row--tap:active{background:var(--bg-hover)}.row__grow{flex:1;min-width:0}.row__value{font-weight:680;font-variant-numeric:tabular-nums;white-space:nowrap}.chevron{flex:none;color:var(--ink-muted)}.entra{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-1);width:100%;min-height:208px;border:0;border-radius:var(--radius-xl);background:var(--theory-green);color:var(--ink-inverse);text-decoration:none;cursor:pointer;box-shadow:var(--shadow-card);transition:transform var(--dur-fast) var(--ease)}[data-theme=light] .entra{color:var(--bg-surface)}.entra:active{transform:scale(.985)}.entra__word{font-size:var(--text-4xl);font-weight:800;letter-spacing:.06em;line-height:1}.entra__sub{font-size:15px;font-weight:640;opacity:.86}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.tile{background:var(--bg-surface);border:1px solid var(--line-hairline);border-radius:var(--radius-lg);padding:var(--sp-4);min-width:0}.tile__label{font-size:var(--text-xs);letter-spacing:.09em;text-transform:uppercase;font-weight:700;color:var(--ink-muted)}.tile__value{font-size:var(--text-3xl);font-weight:750;letter-spacing:-.03em;line-height:1.05;margin-top:var(--sp-1);font-variant-numeric:tabular-nums}.tile__rank{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-1);min-width:0}.tile__rank-name{font-size:var(--text-xl);font-weight:760;letter-spacing:-.02em;line-height:1.1;min-width:0;overflow-wrap:anywhere}.tile__hint{font-size:15px;color:var(--ink-secondary);margin-top:2px}.bar{height:10px;border-radius:var(--radius-full);background:var(--bg-inset);border:1px solid var(--line-hairline);overflow:hidden}.bar__fill{height:100%;background:var(--theory-green);transition:width var(--dur-base) var(--ease)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:52px;padding:0 var(--sp-5);border-radius:var(--radius-md);border:1px solid transparent;font-size:var(--text-lg);font-weight:700;cursor:pointer;background:var(--theory-green);color:var(--ink-inverse);transition:background var(--dur-fast) var(--ease)}[data-theme=light] .btn:not(.btn--ghost):not(.btn--danger){background:var(--theory-green-strong);border-color:var(--theory-green-strong);color:var(--bg-surface)}.btn:active{filter:brightness(.94)}.btn--block{width:100%}.btn--ghost{background:transparent;color:var(--ink-primary);border-color:var(--line-strong)}.btn--danger{background:transparent;color:var(--status-critical);border-color:var(--status-critical)}.btn[disabled]{opacity:.45;cursor:not-allowed}.btn-pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.guarantee{display:flex;gap:var(--sp-3);align-items:flex-start;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);background:var(--theory-green-glow);border:1px solid var(--theory-green-strong);color:var(--ink-primary);font-size:15px;line-height:1.45}.guarantee__mark{flex:none;margin-top:2px;color:var(--theory-green-strong)}.tabbar{position:sticky;bottom:0;margin-top:auto;width:100%;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);background:var(--bg-surface);border-top:1px solid var(--line-hairline);padding-bottom:env(safe-area-inset-bottom)}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:60px;padding:var(--sp-2) 2px;text-decoration:none;color:var(--ink-muted);font-size:15px;font-weight:640;letter-spacing:-.03em;border-top:3px solid transparent;margin-top:-1px}.tab[aria-current=page]{color:var(--theory-green-strong);border-top-color:var(--theory-green-strong)}.tab:active{background:var(--bg-hover)}.varco{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:var(--bg-surface);color:var(--ink-primary);display:flex;flex-direction:column;align-items:center;padding:max(var(--sp-3),env(safe-area-inset-top)) var(--sp-4) var(--sp-5);overflow-y:auto}.varco__back{align-self:flex-start;display:inline-flex;align-items:center;gap:var(--sp-2);min-height:48px;min-width:48px;padding:0 var(--sp-3) 0 var(--sp-1);background:transparent;border:0;color:var(--ink-secondary);font-size:15px;font-weight:640;cursor:pointer}.varco__code{width:min(100%,340px);aspect-ratio:1;margin:var(--sp-2) 0;border-radius:var(--radius-md)}.varco__name{font-size:var(--text-2xl);font-weight:760;letter-spacing:-.02em;text-align:center}.varco__meta{font-size:15px;color:var(--ink-secondary);text-align:center}.varco__serial{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:700;letter-spacing:.12em;font-variant-numeric:tabular-nums}.exec{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--bg-base);display:flex;flex-direction:column;max-width:520px;margin:0 auto;border-inline:1px solid var(--line-hairline)}.exec__head{padding:max(var(--sp-2),env(safe-area-inset-top)) var(--sp-4) var(--sp-3);border-bottom:1px solid var(--line-hairline);display:flex;flex-direction:column;gap:var(--sp-2)}.exec__body{flex:1;overflow-y:auto;padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-4)}.exec__exercise{font-size:var(--text-3xl);font-weight:780;letter-spacing:-.03em;line-height:1.1}.exec__foot{padding:var(--sp-3) var(--sp-4) calc(var(--sp-4) + env(safe-area-inset-bottom));border-top:1px solid var(--line-hairline);background:var(--bg-surface);display:flex;flex-direction:column;gap:var(--sp-3)}.stepper{display:grid;grid-template-columns:76px 1fr 76px;align-items:stretch;gap:var(--sp-2)}.stepper__btn{min-height:76px;min-width:76px;border-radius:var(--radius-lg);border:1px solid var(--line-strong);background:var(--bg-surface);color:var(--ink-primary);font-size:var(--text-3xl);font-weight:700;line-height:1;cursor:pointer}.stepper__btn:active{background:var(--bg-hover)}.stepper__value{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--radius-lg);border:1px solid var(--line-hairline);background:var(--bg-inset)}.stepper__num{font-size:var(--text-3xl);font-weight:780;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1}.stepper__unit{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--ink-muted);margin-top:4px}.timer{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-lg);background:var(--theory-green-glow);border:1px solid var(--theory-green-strong)}.timer__value{font-size:var(--text-3xl);font-weight:780;font-variant-numeric:tabular-nums;color:var(--theory-green-strong);line-height:1}.light{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:15px;font-weight:700;white-space:nowrap}.light__dot{width:12px;height:12px;border-radius:var(--radius-full);flex:none}.light--LIBERO{color:var(--status-good)}.light--LIBERO .light__dot{background:var(--status-good)}.light--MEDIO{color:var(--status-warning)}.light--MEDIO .light__dot{background:var(--status-warning);border-radius:2px}.light--PIENO{color:var(--status-critical)}.light--PIENO .light__dot{background:var(--status-critical);border-radius:2px;transform:rotate(45deg)}.field{display:flex;flex-direction:column;gap:var(--sp-2)}.field__label{font-size:15px;font-weight:680}.control{min-height:52px;width:100%;padding:0 var(--sp-3);border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--bg-surface);color:var(--ink-primary);font-size:var(--text-base)}.choice{display:grid;gap:var(--sp-2)}.choice__item{min-height:52px;display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-4);border-radius:var(--radius-md);border:1px solid var(--line-hairline);background:var(--bg-surface);color:var(--ink-primary);font-size:var(--text-base);font-weight:620;text-align:left;cursor:pointer}.choice__item[aria-pressed=true]{border-color:var(--theory-green);background:var(--theory-green-glow)}.steps{display:flex;gap:var(--sp-2)}.steps__dot{flex:1;height:6px;border-radius:var(--radius-full);background:var(--bg-inset);border:1px solid var(--line-hairline)}.steps__dot--on{background:var(--theory-green);border-color:var(--theory-green)}.bignum{font-size:var(--text-hero);font-weight:800;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums;color:var(--theory-green)}.chart{width:100%;height:auto;display:block}.chart text{font-family:var(--font-sans);fill:var(--ink-muted);font-size:9px;font-weight:640}.rank-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line-hairline);font-size:15px}.rank-row:last-child{border-bottom:0}.rank-row--current{background:var(--theory-green-glow)}.rank-row--current .rank-row__name{color:var(--theory-green-strong);font-weight:760}.rank-row__name{flex:1;font-weight:650}.insignia{flex:none}.accent{color:var(--theory-green-strong)}.rank-row .insignia{color:var(--ink-muted)}.rank-row .insignia--on{color:var(--theory-green-strong)}:focus-visible{outline:3px solid var(--theory-green);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}body{background:var(--cmd-base)}[data-theme=light]{--cmd-base: #f1f1ec;--cmd-surface: #ffffff;--cmd-panel: #ffffff;--cmd-raised: #f7f7f2;--cmd-hover: #ecece5;--glass: rgba(255, 255, 255, .72);--glass-strong: rgba(255, 255, 255, .92);--glass-line: rgba(11, 11, 11, .12);--glass-line-2: rgba(11, 11, 11, .24);--olive: #6a7350;--hud-faint: rgba(11, 158, 80, .12);--bracket: rgba(11, 158, 80, .6);--hud-grid: rgba(11, 11, 11, .08)}.shell{position:relative;isolation:isolate;background:var(--cmd-base);border-inline-color:var(--glass-line)}.shell:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:radial-gradient(150% 120% at 50% -10%,#0000009e,#000000e6),var(--camo-blobs);background-size:auto,192px 192px;opacity:.42}[data-theme=light] .shell:before{opacity:.06}.appbar{background:var(--glass-strong);border-bottom-color:var(--glass-line);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.appbar__brand{font-family:var(--font-display);font-weight:900;letter-spacing:var(--track-stencil);color:var(--olive)}.appbar__club{font-weight:750}.page-title{font-family:var(--font-display);font-weight:900;text-transform:uppercase;letter-spacing:-.02em}.eyebrow,.tile__label,.stepper__unit{font-family:var(--font-display);font-weight:900;letter-spacing:var(--track-stencil);color:var(--olive)}.tile__value,.bignum,.stepper__num,.exec__exercise,.timer__value,.varco__name{font-family:var(--font-display);font-weight:900}.tile__rank-name{font-family:var(--font-display);font-weight:900;text-transform:uppercase}.panel,.tile{position:relative;background:var(--cmd-panel);border-color:var(--glass-line);border-radius:var(--radius-lg)}.panel:after,.tile:after{content:"";position:absolute;top:5px;left:5px;width:11px;height:11px;pointer-events:none;border-left:1px solid var(--bracket);border-top:1px solid var(--bracket);opacity:.45}.row{border-bottom-color:var(--glass-line)}.row--tap:active{background:var(--cmd-hover)}.entra{position:relative;overflow:hidden;border-radius:var(--radius-lg);box-shadow:0 0 0 1px var(--theory-green-strong),0 18px 50px #00000080}.entra:before,.entra:after{content:"";position:absolute;left:0;right:0;height:6px;background-image:repeating-linear-gradient(45deg,var(--ink-inverse) 0 9px,transparent 9px 18px);opacity:.28}.entra:before{top:0}.entra:after{bottom:0}.entra__word{font-family:var(--font-display);font-weight:900;letter-spacing:.14em}.entra__sub{font-family:var(--font-display);font-weight:850;letter-spacing:.12em;text-transform:uppercase}.bar{height:9px;border-radius:1px;position:relative;background:var(--cmd-base);border-color:var(--glass-line)}.bar__fill{box-shadow:0 0 10px var(--hud-faint)}.bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.5;background-image:repeating-linear-gradient(90deg,transparent 0 9px,var(--cmd-base) 9px 10px)}.steps__dot{border-radius:0;background:var(--cmd-base);border-color:var(--glass-line)}.btn{border-radius:var(--radius-sm);font-family:var(--font-display);font-weight:900;letter-spacing:.1em;text-transform:uppercase;font-size:var(--text-base)}.btn--ghost{border-color:var(--glass-line-2)}.control,.choice__item{border-radius:var(--radius-sm);background:var(--cmd-panel);border-color:var(--glass-line-2)}.control:focus,.choice__item:focus-visible{border-color:var(--theory-green-strong)}.choice__item[aria-pressed=true]{background:var(--hud-faint);border-color:var(--theory-green)}.stepper__btn{border-radius:var(--radius-sm);background:var(--cmd-raised);border-color:var(--glass-line-2);font-family:var(--font-display);font-weight:900}.stepper__value{border-radius:var(--radius-sm);background:var(--cmd-base);border-color:var(--glass-line)}.timer{border-radius:var(--radius-sm);background:var(--hud-faint);border-color:var(--theory-green-strong)}.tabbar{background:var(--glass-strong);border-top-color:var(--glass-line);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.tab{font-family:var(--font-display);font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;border-top-width:2px}.tab span{font-size:11px}.tab[aria-current=page]{color:var(--theory-green);border-top-color:var(--theory-green);background:linear-gradient(180deg,var(--hud-faint),transparent 60%)}[data-theme=light] .tab[aria-current=page]{color:var(--theory-green-strong);border-top-color:var(--theory-green-strong)}.varco{background:var(--cmd-base)}.varco:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:var(--camo-blobs);background-size:192px 192px;opacity:.35}[data-theme=light] .varco:before{opacity:.05}.varco>*{position:relative;z-index:1}.varco__code{border-radius:var(--radius-sm);box-shadow:0 0 0 1px var(--theory-green-strong),0 0 40px var(--hud-faint)}.varco__name{text-transform:uppercase;letter-spacing:.01em}.varco__serial{display:inline-block;margin-top:var(--sp-2);padding:4px 12px;border:1px solid var(--glass-line-2);border-radius:var(--radius-sm);background:var(--glass);color:var(--theory-green)}.varco__meta{font-family:var(--font-mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--olive)}.light{font-family:var(--font-display);font-weight:900;letter-spacing:.08em;text-transform:uppercase;font-size:13px}.light__dot{border-radius:0;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.light--LIBERO{color:var(--theory-green)}[data-theme=light] .light--LIBERO{color:var(--theory-green-strong)}.light--LIBERO .light__dot{background:var(--theory-green)}.rank-row{border-bottom-color:var(--glass-line)}.rank-row--current{background:linear-gradient(90deg,var(--hud-faint),transparent 70%)}.rank-row__name{font-family:var(--font-display);font-weight:850;text-transform:uppercase;letter-spacing:.01em}.guarantee{border-radius:var(--radius-sm);background:var(--hud-faint);border-color:var(--theory-green-strong)}.exec{background:var(--cmd-base);border-inline-color:var(--glass-line)}.exec__head{border-bottom-color:var(--glass-line);background:var(--cmd-surface)}.exec__foot{border-top-color:var(--glass-line);background:var(--cmd-surface)}.exec__exercise{text-transform:uppercase;letter-spacing:-.02em}.clubmap{margin-bottom:var(--sp-2)}.clubmap .tmap{border-radius:var(--radius-lg)}.clubmap__hint{margin-top:var(--sp-2);font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--olive)}.varco__code{flex:none;background:var(--code-paper);padding:6px}
