:root{--color-bg: #0b0f14;--color-bg-elevated: #121821;--color-surface: #17202b;--color-line: #26313f;--color-text: #f2f6fa;--color-text-dim: #9fb0c0;--color-text-faint: #5f7183;--color-accent: #35e0ff;--color-accent-soft: rgba(53, 224, 255, .16);--color-accent-strong: #8ff0ff;--color-blue-zone: #2c62d9;--color-blue-zone-soft: rgba(44, 98, 217, .28);--color-band: #21df74;--color-band-strong: #7dffb0;--color-danger: #ff4545;--color-danger-soft: rgba(255, 69, 69, .22);--color-danger-glow: rgba(255, 69, 69, .55);--color-warn-volt: #ff4545;--sun-dawn: #ffb35c;--sun-morning: #ffe2a8;--sun-noon: #eef6ff;--sun-afternoon: #ffcf7d;--sun-golden: #ff8a3d;--sun-core-dawn: #ffc27a;--sun-core-morning: #ffe9c4;--sun-core-noon: #fffdf5;--sun-core-afternoon: #ffb45e;--sun-core-golden: #ff7a30;--sun-glow-max-opacity: .8;--sky-star: #cfd9e4;--cloud-color: rgba(210, 224, 236, .85);--cloud-shadow: rgba(6, 10, 14, .5);--font-family: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-weight-regular: 400;--font-weight-medium: 600;--font-weight-bold: 800;--font-size-xs: clamp(11px, 1.4vh, 14px);--font-size-s: clamp(13px, 1.8vh, 17px);--font-size-m: clamp(15px, 2.2vh, 21px);--font-size-l: clamp(20px, 3vh, 30px);--font-size-xl: clamp(28px, 4.4vh, 44px);--font-size-attract-name: min(clamp(28px, 4.4vh, 44px), 7.5vw);--font-size-volt: clamp(52px, 9.5vh, 96px);--font-size-volt-unit: clamp(20px, 3.4vh, 36px);--font-size-end-number: clamp(48px, 8vh, 104px);--font-size-countdown: clamp(38px, 6vh, 62px);--letter-spacing-label: .12em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--radius-s: 8px;--radius-m: 14px;--radius-l: 22px;--radius-pill: 999px;--glow-accent: 0 0 18px rgba(53, 224, 255, .55);--glow-accent-soft: 0 0 10px rgba(53, 224, 255, .35);--glow-danger: 0 0 16px rgba(255, 69, 69, .6);--shadow-card: 0 8px 28px rgba(0, 0, 0, .45);--shadow-button: 0 6px 22px rgba(53, 224, 255, .35);--zone-header-h: clamp(56px, 8vh, 84px);--zone-message-h: clamp(44px, 7vh, 72px);--zone-volt-h: clamp(68px, 12vh, 116px);--zone-button-h: clamp(64px, 10vh, 96px);--zone-hint-h: clamp(22px, 3.6vh, 32px);--sky-height: 62%;--column-width: clamp(68px, 19vw, 128px);--column-radius: var(--radius-l);--column-border: 1px solid var(--color-line);--column-bg: rgba(10, 14, 19, .72);--band-bg: rgba(43, 240, 130, .34);--band-glow: inset 0 0 28px rgba(43, 240, 130, .6);--liquid-gradient: linear-gradient(180deg, rgba(120, 220, 240, .75), rgba(53, 190, 220, .45));--blue-zone-bg: rgba(22, 42, 88, .42);--red-zone-bg: rgba(255, 69, 69, .14);--marker-color: #ffffff;--marker-glow: 0 0 12px rgba(255, 255, 255, .9);--marker-outline: 0 0 0 1.5px rgba(3, 7, 11, .8);--cutoff-line-color: var(--color-danger);--blue-zone-border: 2px dashed rgba(44, 98, 217, .55);--vignette-max-opacity: .85;--vignette-shadow: inset 0 0 18vh 4vh rgba(255, 40, 40, .5);--flash-color: rgba(255, 245, 235, .55);--attract-dim-opacity: .5;--attract-scrim-gradient: linear-gradient( to bottom, rgba(11, 15, 20, 0) 0%, rgba(11, 15, 20, .35) 22%, rgba(11, 15, 20, .35) 84%, rgba(11, 15, 20, 0) 100% );--invuln-blink-opacity: .45;--button-bg: linear-gradient(180deg, #1b2836, #121a24);--button-bg-active: linear-gradient(180deg, rgba(53, 224, 255, .85), rgba(23, 130, 160, .9));--button-bg-work: linear-gradient(180deg, rgba(16, 74, 94, .96), rgba(9, 45, 60, .96));--button-text: var(--color-text);--button-text-active: #04222c;--button-border: 1px solid rgba(53, 224, 255, .5);--scenery-opacity: .85;--scenery-dim-min: .35;--hud-pill-bg: rgba(10, 14, 19, .7);--kwh-value-min-w: 6ch;--font-size-kwh-value: min(var(--font-size-l), 4.6vw);--letter-spacing-hud: .05em;--hud-logo-max-w: 30vw;--hud-scrim: linear-gradient(180deg, rgba(11, 15, 20, .85) 0%, rgba(11, 15, 20, 0) 100%);--hud-scrim-h: clamp(110px, 20vh, 190px);--arc-mask: linear-gradient( 180deg, #000 0%, #000 20%, rgba(0, 0, 0, .12) 32%, rgba(0, 0, 0, .12) 50%, #000 62%, #000 100% );--focus-ring: 2px solid rgba(53, 224, 255, .7);--font-size-shutdowns: min(var(--font-size-m), 4.4vw);--callout-bg: rgba(8, 12, 17, .74);--callout-line-len: 12px;--callout-max-w: min(52vw, 230px);--lb-row-min-h: 28px;--end-gap: clamp(3px, .5vh, 10px);--end-screen-pad: clamp(8px, 1.2vh, 24px);--end-line-height: 1.35;--end-btn-h: clamp(52px, 7vh, 84px);--pseudo-badge-bg: rgba(53, 224, 255, .92);--pseudo-badge-text: #04222c;--btn-font-min: 13px;--touch-target: 44px;--input-bg: rgba(14, 20, 27, .9);--input-border: 1px solid var(--color-line);--input-border-focus: 1px solid rgba(53, 224, 255, .65);--input-border-invalid: 1px solid rgba(255, 69, 69, .6);--input-radius: var(--radius-m);--input-h: clamp(38px, 5.2vh, 48px);--checkbox-accent: #35e0ff;--legal-overlay-bg: rgba(4, 7, 11, .8);--chip-bg: rgba(53, 224, 255, .14);--chip-border: 1px solid rgba(53, 224, 255, .4);--card-bg: rgba(18, 24, 33, .92);--card-border: 1px solid var(--color-line);--highlight-row-bg: rgba(53, 224, 255, .12);--sky-dawn: linear-gradient(180deg, #23304a 0%, #4a3650 55%, #7a4a36 100%);--sky-morning: linear-gradient(180deg, #24486a 0%, #3d6a94 60%, #6d9cbe 100%);--sky-noon: linear-gradient(180deg, #2e5e88 0%, #4d84b0 60%, #85b6d6 100%);--sky-afternoon: linear-gradient(180deg, #2c486a 0%, #5c5a80 60%, #9a6848 100%);--sky-golden: linear-gradient(180deg, #262c48 0%, #643c54 55%, #b05a2e 100%);--sky-night: linear-gradient(180deg, #05070c 0%, #0a0f18 70%, #101724 100%);--arc-line-color: rgba(220, 232, 242, .4);--scene-ground: #0b0f14;--scene-tree: #0a1018;--scene-charger-body: #123240;--scene-charger-post: #0d1c26;--scene-charger-screen: #1d4a5e;--scene-indicator: #39b9c9;--scene-cable: #123240;--scene-car: #0d141e;--scene-wheel: #080d13;--scene-house: #0b111a;--scene-roof: #101823;--scene-window: #1d3d4d;--scene-door: #132330;--scene-panel-top: rgba(127, 220, 236, .85);--scene-panel-bottom: rgba(42, 111, 134, .55);--scene-panel-grid: #06202b;--scene-pulse: #7ff0ff;--scene-cable-dash: 8 22;--scene-cable-speed-fast: .6s;--scene-cable-speed-slow: 1.6s;--scene-cable-speed-dim: 2.8s;--scene-cable-opacity-fast: 1;--scene-cable-opacity-slow: .75;--scene-cable-opacity-dim: .35;--volt-text-shadow: 0 0 2px rgba(4, 8, 12, .95), 0 1px 3px rgba(4, 8, 12, .9), 0 2px 6px rgba(4, 8, 12, .8), 0 0 8px rgba(4, 8, 12, .7);--volt-text-stroke: 4px rgba(4, 8, 12, .8)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-family);font-weight:var(--font-weight-regular);overflow:hidden;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.screen{position:relative;height:100dvh;width:100vw;overflow:hidden;background:var(--color-bg);touch-action:none}button{outline:none}button:focus-visible{outline:var(--focus-ring);outline-offset:2px}.pseudo-badge{position:fixed;bottom:var(--space-2);left:var(--space-2);z-index:60;pointer-events:none;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-label);padding:var(--space-1) var(--space-2);border-radius:var(--radius-s);background:var(--pseudo-badge-bg);color:var(--pseudo-badge-text)}.fit-label{display:inline-block;max-width:100%;white-space:nowrap}.game-root{position:relative;height:100%;display:grid;grid-template-rows:minmax(var(--zone-header-h),auto) minmax(var(--zone-message-h),auto) var(--zone-volt-h) minmax(0,1fr) var(--zone-button-h) minmax(var(--zone-hint-h),auto);padding:var(--space-3);gap:var(--space-2)}.game-root.is-shaking{animation:shake .3s linear}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-8px,4px)}30%{transform:translate(7px,-5px)}45%{transform:translate(-6px,-3px)}60%{transform:translate(5px,4px)}75%{transform:translate(-4px,2px)}90%{transform:translate(3px,-2px)}}.hud{position:relative;z-index:10;display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3)}.hud-left{display:flex;align-items:center;gap:var(--space-3)}.hud-logo{height:clamp(28px,4.5vh,44px);width:auto;max-width:var(--hud-logo-max-w);object-fit:contain;object-position:left center;display:block}.hud-right{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-1);max-width:62%;min-width:0}.lives{display:flex;gap:var(--space-1)}.life-icon{width:clamp(18px,3vh,28px);height:clamp(18px,3vh,28px);color:var(--color-accent);filter:drop-shadow(var(--glow-accent-soft));transition:opacity .5s ease,transform .5s ease}.life-icon.is-lost{color:var(--color-text-faint);filter:none;opacity:.35;transform:scale(.85)}.kwh-counter{display:flex;align-items:baseline;justify-content:flex-end;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-m);background:var(--hud-pill-bg);border:var(--card-border);transition:box-shadow .4s ease;max-width:100%}.kwh-counter.is-scoring{box-shadow:var(--glow-accent-soft)}.kwh-counter.is-milestone{animation:kwh-milestone .7s ease-out 1}@keyframes kwh-milestone{0%{transform:scale(1)}30%{transform:scale(1.12);box-shadow:var(--glow-accent)}to{transform:scale(1)}}.kwh-value{font-size:var(--font-size-kwh-value);font-weight:var(--font-weight-bold);color:var(--color-accent-strong);font-variant-numeric:tabular-nums;min-width:var(--kwh-value-min-w);text-align:right}.kwh-label{font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-hud);color:var(--color-text-dim);text-align:right;line-height:1.2;width:min-content}.mult-chip{font-size:var(--font-size-xs);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--chip-bg);border:var(--chip-border);color:var(--color-accent-strong);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.sound-toggle{background:var(--color-surface);border:var(--card-border);border-radius:var(--radius-pill);color:var(--color-text-dim);width:clamp(34px,5vh,44px);height:clamp(34px,5vh,44px);display:grid;place-items:center;font-size:var(--font-size-s);cursor:pointer}.sound-toggle.is-on{color:var(--color-accent);border:var(--chip-border)}.message-band{position:relative;z-index:2;display:grid;place-items:center;text-align:center;padding:0 var(--space-4);overflow:hidden}.message-halt{font-size:var(--font-size-l);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-label);color:var(--color-danger);text-shadow:var(--glow-danger)}.message-onboarding{font-size:var(--font-size-m);font-weight:var(--font-weight-medium);color:var(--color-text);line-height:1.3}.message-countdown{font-size:var(--font-size-countdown);font-weight:var(--font-weight-bold);color:var(--color-accent-strong);font-variant-numeric:tabular-nums}.zone-status{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-label);transition:color .3s linear}.zone-status.is-band{color:var(--color-band-strong)}.zone-status.is-blue{color:var(--color-blue-zone)}.zone-status.is-red{color:var(--color-danger)}.volt-band{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:var(--space-2);overflow:hidden}.volt-value{font-size:var(--font-size-volt);font-weight:var(--font-weight-bold);font-variant-numeric:tabular-nums;color:var(--color-text);line-height:1;transition:color .25s linear;text-shadow:var(--volt-text-shadow);-webkit-text-stroke:var(--volt-text-stroke);paint-order:stroke fill}.volt-unit{font-size:var(--font-size-volt-unit);font-weight:var(--font-weight-medium);color:var(--color-text-dim);align-self:flex-end;padding-bottom:var(--space-2);text-shadow:var(--volt-text-shadow);-webkit-text-stroke:var(--volt-text-stroke);paint-order:stroke fill}.volt-band.is-warn .volt-value{color:var(--color-warn-volt);text-shadow:var(--glow-danger)}.column-zone{position:relative;z-index:1;display:grid;grid-template-columns:1fr var(--column-width) 1fr;align-items:stretch;min-height:0}.column{position:relative;border-radius:var(--column-radius);border:var(--column-border);background:var(--column-bg);overflow:hidden;height:100%}.column.is-invuln{animation:invuln-blink .3s linear infinite}@keyframes invuln-blink{50%{opacity:var(--invuln-blink-opacity)}}.col-red{position:absolute;left:0;right:0;top:0;background:var(--red-zone-bg)}.col-cutoff{position:absolute;left:0;right:0;height:2px;background:var(--cutoff-line-color);box-shadow:var(--glow-danger);animation:cutoff-pulse var(--cutoff-pulse-dur, 2s) ease-in-out infinite}@keyframes cutoff-pulse{50%{opacity:.45}}.col-band{position:absolute;left:0;right:0;background:var(--band-bg);box-shadow:var(--band-glow);transition:none}.col-blue{position:absolute;left:0;right:0;bottom:0;background:var(--blue-zone-bg);border-top:var(--blue-zone-border)}.col-liquid{position:absolute;left:0;right:0;bottom:0;background:var(--liquid-gradient)}.col-marker{position:absolute;left:0;right:0;height:3px;background:var(--marker-color);box-shadow:var(--marker-outline),var(--marker-glow);border-radius:var(--radius-s)}.gutter-left{position:relative}.zone-labels{position:absolute;top:0;right:0;bottom:0;left:0;transition:opacity .8s ease}.zone-labels.is-hidden{opacity:0}.zone-range{position:absolute;right:0;width:100%;transform:translateY(-50%);display:flex;align-items:center;justify-content:flex-end;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-align:right;line-height:1.25}.zone-callout{background:var(--callout-bg);border-radius:var(--radius-m);padding:var(--space-1) var(--space-3);width:fit-content;max-width:var(--callout-max-w);text-wrap:balance}.zone-callout-line{flex:0 0 var(--callout-line-len);height:2px;background:currentColor;opacity:.7}.zone-range.is-red{color:var(--color-danger)}.zone-range.is-band{color:var(--color-band-strong)}.zone-range.is-blue{color:var(--color-blue-zone)}.level-status{position:absolute;right:var(--space-2);transform:translateY(-50%);width:calc(100% - var(--space-2));text-align:right;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:1.25;transition:opacity .4s ease .9s}.level-status.is-hidden{opacity:0;transition-delay:0s}.cutoff-label{position:absolute;left:var(--space-2);transform:translateY(-50%);font-size:var(--font-size-xs);color:var(--color-danger);display:flex;align-items:center;gap:var(--space-2);white-space:nowrap}.cutoff-label .leader{width:clamp(8px,2vw,18px);height:1px;background:var(--color-danger-soft)}.column-gutter{position:relative}.button-zone{position:relative;z-index:2;display:flex}.charge-button{flex:1;border:var(--button-border);border-radius:var(--radius-l);background:var(--button-bg-active);color:var(--button-text-active);font-family:var(--font-family);font-size:var(--font-size-l);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-label);cursor:pointer;position:relative;overflow:hidden;touch-action:none;box-shadow:var(--glow-accent-soft);transition:color .15s ease,box-shadow .15s ease}.charge-button:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--button-bg-work);opacity:0;transition:opacity .15s ease}.charge-button.is-pulsing{animation:cta-glow 2.4s ease-in-out infinite}.charge-button.is-pressed{color:var(--color-text);box-shadow:none}.charge-button.is-pressed:before{opacity:1}.button-label{position:relative;z-index:1}.charge-button .button-label{transition:color .15s ease}.hint-row{position:relative;z-index:2;display:grid;place-items:center;overflow:hidden}.hint-text{font-size:var(--font-size-s);color:var(--color-text-dim);transition:opacity .6s ease}.hint-text.is-hidden{opacity:0}.vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3;box-shadow:var(--vignette-shadow);opacity:calc(var(--vig, 0) * var(--vignette-max-opacity))}.flash{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4;background:var(--flash-color);opacity:0}.flash.is-active{animation:flash-anim .12s linear 1}@keyframes flash-anim{0%{opacity:1}to{opacity:0}}.attract-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;flex-direction:column;padding:var(--space-3);text-align:center}.attract-demo{position:absolute;top:0;right:0;bottom:0;left:0;opacity:var(--attract-dim-opacity);pointer-events:none}.attract-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-3);min-height:var(--zone-header-h)}.attract-demo-label{font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-label);color:var(--color-accent-strong);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--chip-bg);border:var(--chip-border);max-width:100%;text-align:left}.attract-main{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);overflow:hidden}.attract-scrim-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none;background:var(--attract-scrim-gradient)}.attract-name{font-size:var(--font-size-attract-name);font-weight:var(--font-weight-bold);line-height:1.1;letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--color-accent-strong);text-shadow:var(--glow-accent)}.attract-title{font-size:var(--font-size-l);font-weight:var(--font-weight-bold);line-height:1.15;text-shadow:var(--glow-accent-soft)}.attract-card{background:var(--card-bg);border:var(--card-border);border-radius:var(--radius-m);box-shadow:var(--shadow-card);padding:var(--space-4) var(--space-5);min-width:min(70vw,320px)}.attract-card-title{font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-label);color:var(--color-text-dim);margin-bottom:var(--space-3)}.attract-stake{font-size:var(--font-size-s);color:var(--color-text);line-height:1.45;max-width:min(88vw,460px)}.attract-stake-strong{margin-top:var(--space-1);font-size:var(--font-size-m);font-weight:var(--font-weight-bold);color:var(--color-accent-strong)}.attract-record{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-accent-strong)}.attract-contest{font-size:var(--font-size-xs);color:var(--color-text-faint)}.attract-name,.attract-title,.attract-stake p,.attract-record,.attract-contest,.attract-duration{text-wrap:balance}.attract-bottom{display:flex;flex-direction:column;gap:var(--space-2);padding-bottom:var(--zone-hint-h)}.attract-duration{font-size:var(--font-size-s);color:var(--color-text-dim)}.attract-start{min-height:var(--zone-button-h);border:var(--button-border);border-radius:var(--radius-l);background:var(--button-bg-active);color:var(--button-text-active);font-family:var(--font-family);font-size:var(--font-size-l);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-label);cursor:pointer;animation:cta-glow 2.4s ease-in-out infinite}@keyframes cta-glow{0%,to{box-shadow:var(--glow-accent-soft)}50%{box-shadow:var(--shadow-button)}}.lb-row{display:grid;grid-template-columns:2.2em 1fr auto;gap:var(--space-3);align-items:center;min-height:var(--lb-row-min-h);padding:var(--space-1) var(--space-2);border-radius:var(--radius-s);font-size:var(--font-size-s)}.lb-row.is-me{background:var(--highlight-row-bg);box-shadow:var(--glow-accent-soft)}.lb-rank{color:var(--color-text-faint);font-variant-numeric:tabular-nums;text-align:right}.lb-nick{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-kwh{font-weight:var(--font-weight-medium);color:var(--color-accent-strong);font-variant-numeric:tabular-nums;white-space:nowrap}.form-screen{display:flex;flex-direction:column;height:100%}.form-embed{flex:1;min-height:0}.form-dev{display:flex;flex-direction:column;gap:var(--space-4);align-items:center;justify-content:center;height:100%;padding:var(--space-5);text-align:center;color:var(--color-text-dim);font-size:var(--font-size-s)}.form-dev button{font-family:var(--font-family);font-size:var(--font-size-m);padding:var(--space-3) var(--space-5);border-radius:var(--radius-m);border:var(--chip-border);background:var(--chip-bg);color:var(--color-text);cursor:pointer}.end-screen{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--end-screen-pad);text-align:center;z-index:2;overflow:hidden}.end-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--end-gap);width:min(92vw,480px);max-height:100%;opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s ease}.end-content.is-visible{opacity:1;transform:translateY(0)}.end-number{font-size:var(--font-size-end-number);font-weight:var(--font-weight-bold);color:var(--color-accent-strong);line-height:1;text-shadow:var(--glow-accent);font-variant-numeric:tabular-nums}.end-kwh-label{font-size:var(--font-size-s);letter-spacing:var(--letter-spacing-label);color:var(--color-text-dim)}.end-number.is-subdued{font-size:var(--font-size-xl);color:var(--color-text-dim);text-shadow:none}.end-shutdowns{display:flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--font-size-shutdowns);font-weight:var(--font-weight-medium);line-height:1.2;white-space:nowrap;max-width:100%}.end-shutdowns svg{flex-shrink:0}.end-shutdowns.is-ok{color:var(--color-accent-strong)}.end-shutdowns.is-warn{color:var(--color-danger)}.end-shutdowns.is-primary{font-weight:var(--font-weight-bold);text-shadow:var(--glow-danger)}.end-shutdowns-phase{font-size:var(--font-size-xs);color:var(--color-text-dim)}.end-lesson{font-size:var(--font-size-s);color:var(--color-text);line-height:var(--end-line-height);text-align:center}.end-lesson.is-loss{font-weight:var(--font-weight-medium)}.end-ig{font-size:var(--font-size-s);color:var(--color-text-dim);line-height:var(--end-line-height);text-align:center}.end-subtitle{font-size:var(--font-size-s);color:var(--color-text-dim)}.end-rank-chip{font-size:var(--font-size-s);padding:var(--space-1) var(--space-4);border-radius:var(--radius-pill);background:var(--chip-bg);border:var(--chip-border);color:var(--color-accent-strong)}.end-board{width:100%;background:var(--card-bg);border:var(--card-border);border-radius:var(--radius-m);padding:var(--space-3)}.lb-separator{height:1px;background:var(--color-line);margin:var(--space-1) var(--space-2)}.end-board-title{font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-label);color:var(--color-text-dim);margin-bottom:var(--space-2)}.end-message{font-size:var(--font-size-s);color:var(--color-text);line-height:1.45}.end-note{font-size:var(--font-size-xs);color:var(--color-text-dim);line-height:1.4}.end-buttons{display:flex;flex-direction:column;gap:var(--space-2);width:100%}.btn-primary{font-family:var(--font-family);font-size:var(--font-size-l);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-label);padding:var(--space-3);border-radius:var(--radius-l);border:var(--button-border);background:var(--button-bg-active);color:var(--button-text-active);box-shadow:var(--shadow-button);cursor:pointer;min-height:var(--end-btn-h)}.btn-secondary{font-family:var(--font-family);font-size:var(--font-size-s);padding:var(--space-3);border-radius:var(--radius-m);border:var(--card-border);background:var(--color-surface);color:var(--color-text-dim);cursor:pointer}.debug-panel{position:fixed;top:var(--space-3);left:var(--space-3);z-index:50;background:var(--card-bg);border:var(--card-border);border-radius:var(--radius-m);padding:var(--space-3);width:min(78vw,300px);font-size:var(--font-size-xs);color:var(--color-text-dim);opacity:.85}.debug-panel label{display:block;margin-top:var(--space-2)}.debug-panel input[type=range]{width:100%}.debug-stats{margin-top:var(--space-2);font-variant-numeric:tabular-nums;white-space:pre-line}.register-screen{display:flex;flex-direction:column;align-items:center;padding:var(--end-screen-pad);gap:var(--end-gap);touch-action:pan-y}.reg-title{font-size:var(--font-size-l);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-label);color:var(--color-accent-strong);text-align:center}.reg-form{width:min(94vw,560px);flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:var(--end-gap)}.reg-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.reg-field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.reg-label{font-size:var(--font-size-xs);color:var(--color-text-dim);line-height:1.2}.reg-required{color:var(--color-accent)}.reg-input{height:var(--input-h);padding:0 var(--space-3);border-radius:var(--input-radius);border:var(--input-border);background:var(--input-bg);color:var(--color-text);font-family:var(--font-family);font-size:var(--font-size-s);outline:none;min-width:0}.reg-input:focus{border:var(--input-border-focus)}.reg-input.is-invalid{border:var(--input-border-invalid)}.reg-input{text-overflow:ellipsis}.reg-input::placeholder{color:var(--color-text-faint)}.reg-chips{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-1)}.reg-chip{font-family:var(--font-family);font-size:var(--font-size-xs);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--chip-bg);border:var(--chip-border);color:var(--color-accent-strong);cursor:pointer}.reg-nickname-preview{font-size:var(--font-size-xs);color:var(--color-accent-strong)}.reg-consent{display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch-target);padding:var(--space-1) 0;font-size:var(--font-size-xs);color:var(--color-text-dim);line-height:1.35;cursor:pointer}.reg-consent input[type=checkbox]{width:clamp(18px,2.6vh,24px);height:clamp(18px,2.6vh,24px);flex-shrink:0;accent-color:var(--checkbox-accent);margin-top:1px}.reg-link{display:inline;color:var(--color-accent-strong);text-decoration:underline;cursor:pointer}.reg-submit{margin-top:var(--space-1)}.reg-submit:disabled{opacity:.45;cursor:default;box-shadow:none}.legal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:var(--legal-overlay-bg);display:grid;place-items:center;padding:var(--space-4)}.legal-card{width:min(92vw,560px);max-height:84vh;display:flex;flex-direction:column;gap:var(--space-3);background:var(--card-bg);border:var(--card-border);border-radius:var(--radius-m);box-shadow:var(--shadow-card);padding:var(--space-4)}.legal-title{font-size:var(--font-size-m);font-weight:var(--font-weight-bold)}.legal-body{flex:1;min-height:0;overflow-y:auto;font-size:var(--font-size-s);line-height:1.5;color:var(--color-text-dim);white-space:pre-line}.sky{position:absolute;inset:0 0 auto 0;height:var(--sky-height);overflow:hidden;pointer-events:none;z-index:0}.sky-bg{position:absolute;top:0;right:0;bottom:0;left:0;transition:opacity 1.5s linear}.arc-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.arc-path{fill:none;stroke:var(--arc-line-color);stroke-dasharray:3 4;stroke-width:.6}.sun{position:absolute;width:1px;height:1px}.sun-glow-layer{position:absolute;left:50%;top:50%;width:clamp(160px,34vh,300px);height:clamp(160px,34vh,300px);transform:translate(-50%,-50%);border-radius:var(--radius-pill);filter:blur(18px)}.sun-core{position:absolute;left:50%;top:50%;width:clamp(30px,6vh,54px);height:clamp(30px,6vh,54px);transform:translate(-50%,-50%);border-radius:var(--radius-pill)}.sun-core-layer{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-pill)}.cloud{position:absolute;width:clamp(90px,20vw,180px);height:clamp(34px,7vw,64px);border-radius:var(--radius-pill);background:var(--cloud-color);box-shadow:0 6px 18px var(--cloud-shadow);opacity:0;transform:translate(-50%,-50%)}.cloud:before,.cloud:after{content:"";position:absolute;background:var(--cloud-color);border-radius:var(--radius-pill);width:55%;height:90%;top:-40%;left:12%}.cloud:after{width:45%;height:75%;left:48%;top:-25%}.scenery{position:absolute;left:0;right:0;bottom:0;width:100%;aspect-ratio:5;max-height:42%;opacity:var(--scenery-opacity);pointer-events:none;filter:brightness(calc(var(--scenery-dim-min) + (1 - var(--scenery-dim-min)) * var(--sun-light, 1)))}.scene-cable-pulse{opacity:0;stroke-dasharray:var(--scene-cable-dash);transition:opacity .15s ease}.scenery.flow-fast .scene-cable-pulse{opacity:var(--scene-cable-opacity-fast);animation:cable-flow var(--scene-cable-speed-fast) linear infinite}.scenery.flow-slow .scene-cable-pulse{opacity:var(--scene-cable-opacity-slow);animation:cable-flow var(--scene-cable-speed-slow) linear infinite}.scenery.flow-dim .scene-cable-pulse{opacity:var(--scene-cable-opacity-dim);animation:cable-flow var(--scene-cable-speed-dim) linear infinite}@keyframes cable-flow{to{stroke-dashoffset:-30}}.stars{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity 2s ease;pointer-events:none}.stars.is-visible{opacity:1}.star{position:absolute;width:2px;height:2px;border-radius:var(--radius-pill);background:var(--sky-star)}.sky-hud-scrim{position:absolute;top:0;left:0;right:0;height:var(--hud-scrim-h);background:var(--hud-scrim);pointer-events:none}.form-transition{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;background:var(--sky-dawn);display:grid;place-items:center;font-size:var(--font-size-l);color:var(--color-text)}.end-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:var(--sky-night);opacity:0;transition:opacity 2s ease}.end-bg.is-dark{opacity:1}.arc-svg{-webkit-mask-image:var(--arc-mask);mask-image:var(--arc-mask)}
