:root{--primary: #92437d;--accent: #FFC000;--bg-a: #180b2f;--bg-b: #2a1242;--text-main: #fff5dc;--text-dim: #f0dfb3;--surface: rgba(146, 67, 125, .36);--surface-border: rgba(255, 192, 0, .35);--danger: #ff6d84;--ok: #5fffaf}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;font-family:Trebuchet MS,Segoe UI,sans-serif;color:var(--text-main);background:linear-gradient(145deg,#110820e6,#4a216299)}body{min-height:100vh}button,input,select{font:inherit}.app-shell{position:relative;min-height:100vh;display:grid;grid-template-rows:1fr;justify-items:stretch;align-items:stretch;overflow:hidden}.lang-toggle-btn{position:fixed;top:clamp(10px,1.2vw,16px);right:clamp(10px,1.2vw,16px);z-index:20;border:1px solid rgba(255,192,0,.52);background:linear-gradient(145deg,#120822e6,#92437d99);color:#fff5dc;border-radius:999px;padding:8px 14px;font-weight:700;letter-spacing:.3px;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.lang-toggle-btn:hover{border-color:#ffc000e6;box-shadow:0 0 18px #ffc00047}.lang-toggle-btn:active{transform:scale(.98)}.debug-toggle-btn{position:fixed;top:clamp(10px,1.2vw,16px);right:calc(clamp(10px,1.2vw,16px) + 64px);z-index:20;border:1px solid rgba(120,220,180,.5);background:#0a1412bf;color:#d8fff0;border-radius:999px;width:38px;height:38px;font-size:1.05rem;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:transform .12s ease,border-color .12s ease}.debug-toggle-btn:hover{border-color:#78dcb4e6}.debug-toggle-btn:active{transform:scale(.96)}.sensor-debug-panel{position:fixed;bottom:12px;right:12px;z-index:40;width:min(420px,calc(100vw - 24px));max-height:60vh;display:flex;flex-direction:column;background:#060a0eeb;border:1px solid rgba(120,220,180,.35);border-radius:12px;padding:10px 12px;color:#e8fff5;font-family:Courier New,ui-monospace,monospace;font-size:.78rem;box-shadow:0 12px 32px #00000073}.sensor-debug-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-family:inherit}.sensor-debug-close{background:none;border:none;color:inherit;font-size:1.1rem;line-height:1;cursor:pointer;padding:2px 6px}.sensor-debug-summary{display:flex;flex-direction:column;gap:4px;padding-bottom:8px;margin-bottom:8px;border-bottom:1px dashed rgba(120,220,180,.3)}.sensor-debug-summary>div{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.sensor-debug-label{font-weight:700;min-width:92px}.sensor-debug-gap{color:#9fd8c4}.sensor-debug-gap-live{font-weight:700;color:#ffe082}.sensor-debug-log{overflow-y:auto;display:flex;flex-direction:column;gap:2px}.sensor-debug-empty{color:#9fd8c4}.sensor-debug-row{display:grid;grid-template-columns:58px 96px 1fr 72px;gap:8px;padding:2px 0;border-bottom:1px solid rgba(255,255,255,.05)}.sensor-debug-role{font-weight:700;text-transform:uppercase}.sensor-debug-row-status{background:#ffb74d1f;border-radius:4px}.sensor-debug-row-status .sensor-debug-value{font-weight:700;text-transform:uppercase}.sensor-debug-row-packet{opacity:.55}.sensor-debug-row-packet .sensor-debug-value{font-style:italic}.sensor-debug-since{text-align:right;color:#9fd8c4}.app-shell.reduced-motion *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.ambient-bg{display:none}.panel{position:relative;z-index:1;border:1px solid var(--surface-border);background:linear-gradient(145deg,#92437d59,#180b2fcc);border-radius:20px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.top-bar{width:min(1200px,100%);padding:clamp(12px,2vw,22px);display:grid;grid-template-columns:1.4fr 1fr;gap:18px;align-items:center}.event-label{margin:0;color:var(--accent);font-size:clamp(11px,1.3vw,14px);letter-spacing:1.2px;text-transform:uppercase}h1{margin:6px 0;font-size:clamp(22px,3.8vw,42px);line-height:1.1}.subtitle{margin:0;color:var(--text-dim);font-size:clamp(14px,2vw,22px)}.controls-grid{display:grid;gap:10px;justify-self:end;width:min(320px,100%)}.control-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.language-row{border:1px solid rgba(255,192,0,.22);border-radius:14px;background:linear-gradient(145deg,#0a0416bd,#92437d2e);padding:8px 10px}.control-row span{color:var(--text-dim);font-size:14px}.control-row select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:#0a0416b3;border:1px solid rgba(255,192,0,.45);color:var(--text-main);border-radius:10px;padding:7px 34px 7px 12px;min-width:130px;font-weight:700;line-height:1.2;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--accent) 50%),linear-gradient(135deg,var(--accent) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 3px),calc(100% - 12px) calc(50% - 3px);background-size:6px 6px,6px 6px;background-repeat:no-repeat;transition:border-color .12s ease,box-shadow .12s ease,background-color .12s ease}.control-row select:hover{border-color:#ffc000b3}.control-row select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #ffc00033}.app-shell[dir=rtl] .controls-grid{justify-self:start}.app-shell[dir=rtl] .control-row select{padding:7px 12px 7px 34px;background-position:18px calc(50% - 3px),12px calc(50% - 3px)}.main-panel{width:100%;min-height:100vh;padding:0;display:grid;place-items:stretch}.stage-card{width:100%;min-height:100vh;border:0;border-radius:0;padding:clamp(18px,2.8vw,36px);background:linear-gradient(145deg,#110820e6,#4a216299);display:flex;flex-direction:column;gap:16px;justify-content:center;align-items:center;text-align:center}:fullscreen .stage-card{min-height:100vh}:-webkit-full-screen .stage-card{min-height:100vh}.stage-card h2{margin:0;font-size:clamp(20px,3vw,36px)}.lead-text,.muted-text,.warning-text{margin:0}.lead-text{font-size:clamp(16px,2.2vw,22px);color:var(--text-dim);max-width:70ch;margin-inline:auto}.intro-copy{max-width:58ch}.intro-code-preview{width:min(100%,820px)}.force-ltr{direction:ltr;text-align:left;unicode-bidi:isolate}.muted-text{color:var(--text-dim)}.warning-text{color:#ffe7a0;font-size:13px}.timer-chip{margin:0;padding:6px 12px;border-radius:999px;border:1px solid rgba(255,192,0,.4);background:#0a0416b8;color:#ffe9aa;font-weight:700;font-size:13px}.timer-chip.danger{border-color:#ff6d84b3;color:#ffd0d9;background:#431223bf}.timeout-text{margin:0;color:#ffe6ec;font-weight:800;letter-spacing:.4px}.timeout-burst{padding:8px 14px;border-radius:999px;border:1px solid rgba(255,109,132,.75);background:linear-gradient(135deg,#59152bd9,#c1345f73);box-shadow:0 0 22px #ff6d8459;animation:timeoutPulse .85s ease-in-out infinite}.input-block{display:grid;gap:8px;width:100%;text-align:start}.input-block span{color:var(--text-dim)}.input-block input{background:#080412cc;border:1px solid rgba(255,192,0,.45);color:var(--text-main);border-radius:12px;padding:12px 14px;outline:none}.input-block input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #ffc00033}.stage-keyboard{width:100%;border:1px solid rgba(255,192,0,.24);border-radius:14px;background:linear-gradient(160deg,#0f071de0,#4a21624d);padding:10px;display:grid;gap:10px}.keyboard-header{display:flex;justify-content:flex-end}.keyboard-lang-switch{display:inline-flex;border:1px solid rgba(255,192,0,.3);border-radius:999px;overflow:hidden;background:#080412b3}.key-lang-btn{border:0;background:transparent;color:#ffe7aa;padding:6px 12px;font-weight:700;cursor:pointer}.key-lang-btn.active{background:linear-gradient(135deg,#ffc000eb,#ffe08cf2);color:#2a143e}.keyboard-grid{display:grid;gap:8px}.key-row{display:flex;justify-content:center;flex-wrap:wrap;gap:6px}.key-btn{border:1px solid rgba(255,192,0,.28);border-radius:10px;background:linear-gradient(145deg,#170a2af2,#6d348185);color:#fff3cf;min-width:42px;height:42px;padding:0 10px;font-weight:700;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.key-btn:hover{transform:translateY(-1px);border-color:#ffc000ad;box-shadow:0 6px 16px #ffc00029}.key-btn:active{transform:translateY(0)}.key-actions .key-wide{min-width:90px}.key-actions .key-space{min-width:220px}.binary-grid{display:grid;width:100%;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.binary-showcase{width:100%;display:grid;gap:10px;align-content:start;min-height:340px}.name-to-binary-line{display:flex;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;gap:8px;min-height:120px}.name-to-binary-cell{border:1px solid rgba(255,192,0,.26);border-radius:10px;background:#0a0416a6;padding:8px 10px;display:grid;gap:2px;justify-items:center;text-align:center;min-width:84px;animation:binaryPulse 1.6s ease-in-out infinite}.name-to-binary-cell em{font-style:normal;color:#ffd86b;font-weight:700;font-size:13px}.name-to-binary-cell strong{font-family:Consolas,Courier New,monospace;font-size:12px;color:#fff8d8;direction:ltr;unicode-bidi:isolate}.combined-binary{margin:0;border:1px dashed rgba(255,192,0,.35);border-radius:12px;padding:10px;font-family:Consolas,Courier New,monospace;font-size:clamp(11px,1.4vw,15px);color:#fff4ce;background:#080412b8;overflow-wrap:anywhere;display:grid;gap:8px;justify-items:start;text-align:start}.combined-binary-label{color:var(--accent);font-weight:700}.combined-binary-bits{color:#fff4ce!important;font-weight:600!important;display:inline-flex;flex-wrap:wrap;justify-content:flex-start;gap:2px;margin-inline-start:0}.bit-char{display:inline-block;min-width:.62em;text-align:center;border-radius:3px;padding:0 1px;animation:bitBlink 1.2s ease-in-out infinite}.bit-char.zero{color:#ffefb9}.bit-char.one{color:#ffd55d;text-shadow:0 0 9px rgba(255,192,0,.4)}.bit-space{width:.58em;display:inline-block}.computer-flow{width:100%;border:1px solid rgba(255,192,0,.22);border-radius:12px;background:#0904149e;padding:10px 12px;display:grid;gap:8px}.computer-flow p{margin:0;color:#ffe9ae;font-weight:700}.flow-track{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px}.flow-track span{border:1px solid rgba(255,192,0,.26);background:#92437d52;border-radius:999px;padding:4px 10px;color:#fff3ca;font-size:12px;font-weight:700}.flow-track i{width:20px;height:2px;background:linear-gradient(90deg,#ffc00033,#ffc000e6,#ffc00033);border-radius:2px;animation:pulseArrow 1.4s ease-in-out infinite}.flow-bits{display:flex;flex-wrap:wrap;justify-content:center;gap:3px;font-family:Consolas,Courier New,monospace}.flow-bits b{color:#fff3ca;font-size:12px;opacity:.4;animation:streamBits 1.1s linear infinite}.flow-bits b.one{color:#ffd55d}.binary-chip{border-radius:12px;border:1px solid rgba(255,192,0,.18);background:#070311b8;padding:10px;display:grid;gap:4px}.binary-chip strong{font-size:13px;letter-spacing:.4px;color:#fff5cb;overflow-wrap:anywhere}.binary-chip.unicode{border-color:#ff6d846b}.code-block,.logic-block{background:#0b0519d9;border:1px dashed rgba(255,192,0,.45);border-radius:14px;padding:14px;margin:0;font-size:clamp(16px,2.2vw,28px);overflow-wrap:anywhere}.logic-code{font-family:Consolas,Courier New,monospace;font-size:clamp(14px,1.9vw,24px);line-height:1.4;text-align:start;white-space:pre-wrap;width:min(100%,820px)}.code-line{display:block}.code-token.keyword{color:#ffcf6d;font-weight:700}.code-token.string{color:#7dffc1}.code-token.operator{color:#f6a2ff}.code-token.brace{color:#ffd56f}.code-token.ident{color:#f7f1dc}.ascii-hint-card{width:min(100%,420px);border:1px solid rgba(255,192,0,.28);border-radius:12px;background:#0904149e;padding:10px 12px;display:grid;gap:8px;margin-inline:auto}.stage2-floating-hint{position:absolute;top:clamp(16px,2.4vh,28px);left:clamp(16px,2.2vw,26px);width:min(320px,32vw);z-index:3;margin-inline:0;box-shadow:0 10px 22px #0000004d}.ascii-hint-title{margin:0;color:#ffe3a0;font-weight:700;font-size:14px}.ascii-help-text{margin:0;color:#f0dfb3;font-size:13px;line-height:1.4;text-align:center}.ascii-hint-table-wrap{overflow-x:auto}.ascii-hint-table{width:100%;border-collapse:collapse;min-width:0;font-family:Consolas,Courier New,monospace;font-size:14px}.ascii-hint-table th,.ascii-hint-table td{border:1px solid rgba(255,192,0,.2);padding:6px 8px;text-align:center}.stage2-code-block{width:min(100%,720px);margin:0;text-align:center;line-height:1.55;letter-spacing:.4px}.stage2-question-card{width:min(100%,820px);display:grid;gap:14px;justify-items:center;margin-top:8px;margin-bottom:8px}.stage2-question-text{margin:0;color:#ffe7ad;font-weight:600;text-align:center;max-width:70ch}.stage2-stage .timer-chip{margin-bottom:8px}.stage2-stage .ascii-hint-card{margin-top:8px;margin-bottom:12px}.stage2-stage .options-grid{margin-top:12px}.ascii-hint-table th{color:#ffe7ad;background:#92437d59}.ascii-hint-table td{color:#fff4cd;background:#0a04168c}.options-grid{display:grid;width:100%;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.option{border:1px solid rgba(255,192,0,.28);border-radius:12px;background:#0d061ce6;color:var(--text-main);padding:12px;min-height:56px;cursor:pointer;transition:transform .2s ease,border-color .2s ease,background .2s ease}.option:hover:enabled{transform:translateY(-2px);border-color:#ffc0009e}.option.selected{border-color:#f8d87f;background:#92437dad}.option.correct{border-color:#5fffafcc;background:#1a503899}.logic-option{font-family:Consolas,Courier New,monospace;font-size:13px}.visual-question-card{width:min(100%,860px);border:1px solid rgba(255,192,0,.35);border-radius:16px;background:linear-gradient(145deg,#0d061ceb,#3d1a5794);padding:clamp(12px,2vw,20px);display:grid;gap:12px}.visual-question-text{margin:0;font-size:clamp(18px,2.4vw,26px);line-height:1.35;color:#fff1c7;font-weight:700;text-align:center}.visual-question-head{display:grid;gap:8px;justify-items:center}.visual-question-icon-badge{width:clamp(52px,5.5vw,66px);height:clamp(52px,5.5vw,66px);border-radius:999px;border:1px solid rgba(255,192,0,.42);background:radial-gradient(circle at 30% 25%,#ffe08c73,#53257280);display:grid;place-items:center;font-size:clamp(30px,3.6vw,40px);line-height:1;box-shadow:0 8px 18px #00000047}.visual-flow{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.visual-step{border:1px solid rgba(255,192,0,.3);border-radius:14px;background:#070311d1;padding:12px;display:grid;gap:8px;justify-items:center}.visual-icon{font-size:42px;line-height:1}.visual-label{font-size:15px;font-weight:700;color:#ffefc2;text-align:center}.visual-option{display:grid;gap:6px;justify-items:center;text-align:center}.visual-option-icon{font-size:30px;line-height:1}.circuit-canvas{width:min(100%,560px);min-height:170px;border:1px solid rgba(255,192,0,.28);border-radius:14px;background:#0a04169e;padding:12px;position:relative;display:grid;align-content:center;gap:22px}.circuit-input-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px}.circuit-input-row.top,.circuit-input-row.bottom{width:56%}.circuit-node-label{font-family:Consolas,Courier New,monospace;font-size:14px;font-weight:700;color:#ffe9b2;border:1px solid rgba(255,192,0,.24);border-radius:999px;padding:4px 9px;background:#92437d59}.wire{height:2px;border-radius:2px;background:linear-gradient(90deg,#ffc0004d,#ffc000f2)}.circuit-gate{position:absolute;left:58%;top:50%;transform:translate(-50%,-50%);width:78px;height:86px;border:2px solid rgba(255,192,0,.75);border-radius:14px;background:linear-gradient(145deg,#140926f2,#5b2678b3);color:#ffe8ab;display:grid;place-items:center;font-weight:800;letter-spacing:.7px}.wire.out{position:absolute;left:calc(58% + 38px);right:72px;top:50%}.circuit-node-label.output{position:absolute;right:12px;top:50%;transform:translateY(-50%)}.button-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;width:100%}.stage1-stage{position:relative;justify-content:center;align-items:center;text-align:center;padding-top:clamp(18px,3.5vh,36px);padding-bottom:clamp(18px,3.5vh,36px);overflow-y:auto}.stage1-stage h2,.stage1-stage>.muted-text{width:min(1100px,100%);margin-inline:auto}.stage1-layout{width:min(960px,100%);margin-inline:auto;display:grid;grid-template-columns:1fr;gap:12px;align-items:start}.stage1-panel{border:1px solid rgba(255,192,0,.24);border-radius:14px;background:linear-gradient(160deg,#0f071de0,#4a21624d);padding:12px}.stage1-input-panel{display:grid;gap:10px}.stage1-preview-panel{width:100%;min-height:100%}.stage1-layout.is-input-only{max-width:760px}.stage1-actions{width:min(960px,100%);margin-inline:auto;justify-content:center}.roadmap-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;display:grid;place-items:center;padding:20px;background:#0a0414b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.roadmap-card{width:min(560px,100%);border:1px solid rgba(255,192,0,.4);border-radius:16px;background:linear-gradient(145deg,#160a28f0,#401c58d6);padding:18px;text-align:center;box-shadow:0 14px 34px #00000059}.roadmap-card.conversion-card{width:min(860px,100%)}.roadmap-card h3{margin:0 0 14px;color:#ffe5a3;font-size:clamp(20px,3vw,30px)}.roadmap-track{position:relative;display:grid;gap:12px;padding-inline-start:0;justify-items:center}.roadmap-progress{position:absolute;top:0;left:50%;width:2px;height:100%;border-radius:999px;background:#ffc0002e;transform:translate(-50%)}.roadmap-progress:after{content:"";position:absolute;left:0;width:2px;height:34%;border-radius:999px;background:linear-gradient(180deg,#ffc000f2,#ffe7a1d9);box-shadow:0 0 14px #ffc00059;animation:roadmapTravel 5.8s ease-in-out infinite}.roadmap-step{position:relative;z-index:1;display:grid;grid-template-columns:1fr;gap:6px;justify-items:center;width:min(420px,100%)}.roadmap-step b{width:20px;height:20px;display:grid;place-items:center;border-radius:999px;font-size:11px;color:#2a143e;border:1px solid rgba(255,192,0,.9);background:linear-gradient(145deg,#ffc000f2,#ffe691e6)}.roadmap-step span{border:1px solid rgba(255,192,0,.25);border-radius:10px;background:#0a04169e;padding:8px 10px;color:#fff2cb;font-weight:700;width:100%;text-align:center}.conversion-card .name-to-binary-cell{animation-duration:4.8s}.conversion-card .bit-char{animation-duration:3.8s}.conversion-card .name-to-binary-line{justify-content:center}.conversion-card .combined-binary{justify-items:center;text-align:center;position:relative;overflow:hidden}.conversion-card .combined-binary:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(110deg,transparent 20%,rgba(255,192,0,.1) 50%,transparent 80%);transform:translate(-140%);animation:binarySweep 4.6s ease-in-out infinite;pointer-events:none}.conversion-card .combined-binary-bits{justify-content:center}.key-lang-btn:disabled,.key-btn:disabled{opacity:.58;cursor:not-allowed}.result-stage .button-row{position:relative;z-index:1}.result-actions{width:min(100%,860px);margin-inline:auto}.result-actions .btn,.app-shell.is-fullscreen .result-actions .btn{min-width:250px}.btn{border-radius:12px;border:1px solid transparent;padding:11px 16px;font-weight:700;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:linear-gradient(135deg,var(--accent),#ffe28d);color:#271241}.btn-secondary{background:linear-gradient(135deg,#92437deb,#411d58eb);color:#ffeab5;border-color:#ffc00042}.btn:hover:enabled{transform:translateY(-2px);box-shadow:0 8px 26px #ffc0003d}.result-grid{position:relative;z-index:1;display:grid;width:100%;max-width:1080px;margin-inline:auto;grid-template-columns:minmax(320px,1fr) minmax(320px,1fr);align-items:stretch;gap:18px}.result-stage{position:relative;overflow:hidden;background:radial-gradient(circle at 12% 10%,rgba(255,192,0,.12),transparent 38%),radial-gradient(circle at 88% 80%,rgba(146,67,125,.26),transparent 44%),linear-gradient(145deg,#110820eb,#4a216294)}.result-effects{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.spark{position:absolute;top:100%;width:8px;height:8px;border-radius:50%;opacity:0;filter:blur(.2px);animation-name:riseSpark;animation-timing-function:linear;animation-iteration-count:infinite}.spark.gold{background:#ffc000e6;box-shadow:0 0 12px #ffc0008c}.spark.purple{background:#c47cb4cc;box-shadow:0 0 10px #92437d8c}.result-hero{position:relative;z-index:1;width:min(100%,860px);margin-inline:auto;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 16px;border:1px solid rgba(255,192,0,.28);border-radius:14px;background:#140826b8}.result-hero-main h2{margin:0}.result-title-line{margin:4px 0 0;color:#ffe6a3;font-weight:700}.score-badge{min-width:132px;border-radius:14px;border:1px solid rgba(255,192,0,.35);background:linear-gradient(145deg,#ffc00033,#92437d66);padding:12px 14px;display:grid;gap:3px;justify-items:center}.score-badge span{font-size:12px;color:#fce2a3;font-weight:700;text-transform:uppercase;letter-spacing:.8px}.score-badge strong{font-size:24px;color:#fff6d7}.score-badge.score-max{animation:badgeGlow 1.8s ease-in-out infinite}.result-meta{width:100%;max-width:860px;margin-inline:auto;border-radius:14px;border:1px solid rgba(255,192,0,.25);background:linear-gradient(155deg,#100721e6,#4a216242);padding:clamp(16px,2vw,22px);text-align:start}.result-meta p{margin:0 0 9px}.result-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:8px 0;border-bottom:1px dashed rgba(255,192,0,.16)}.result-row strong{color:#ffe9ae;font-size:13px}.result-row span,.result-row code{color:#fff5d1;font-weight:700}.result-row code{font-family:Consolas,Courier New,monospace;font-size:13px;padding:3px 7px;border-radius:8px;background:#ffc00014}.badges-row{display:grid;grid-template-columns:auto 1fr;align-items:start}.badge-list{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.badge-chip{border:1px solid rgba(255,192,0,.35);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;color:#ffe9aa;background:#92437d61}.badge-chip.empty{opacity:.7}.leaderboard-panel{width:100%;max-width:860px;margin-inline:auto;margin-top:14px;border-radius:14px;border:1px solid rgba(255,192,0,.25);background:linear-gradient(155deg,#100721e6,#4a216238);padding:clamp(14px,1.8vw,18px);text-align:start}.result-grid>.leaderboard-panel{margin-top:0}.result-grid>.result-meta,.result-grid>.leaderboard-panel{max-width:none;margin-inline:0;height:100%}.leaderboard-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px}.leaderboard-head h3{margin:0;font-size:16px;color:#ffe9ae}.leaderboard-head p{margin:0;font-size:12px;color:#ffe9aedb}.leaderboard-empty{margin:0;color:#ffe9ae;font-size:13px}.leaderboard-table-wrap{width:100%;overflow-x:auto}.leaderboard-table{width:100%;border-collapse:collapse;font-size:13px}.leaderboard-table th,.leaderboard-table td{padding:8px 10px;border-bottom:1px dashed rgba(255,192,0,.16);text-align:left;color:#fff5d1;white-space:nowrap}.leaderboard-table th{color:#ffe9ae;font-size:12px}.leaderboard-table tbody tr.is-current td{background:#ffc00024;color:#fff9e4;font-weight:700}.leaderboard-separator-row td{text-align:center;color:#ffe9aec7}.leaderboard-rank-note{margin:10px 0 0;font-size:13px;color:#ffe9ae;font-weight:700}.result-binary-line{font-family:Consolas,Courier New,monospace;font-size:12px;color:#ffe9ae;overflow-wrap:anywhere;margin-top:10px;padding:8px 10px;border-radius:10px;border:1px dashed rgba(255,192,0,.28);background:#09041480}.qr-box{border-radius:14px;border:1px solid rgba(255,192,0,.32);background:linear-gradient(165deg,#16092adb,#92437d47);padding:12px;display:grid;justify-items:center;align-content:start;gap:10px}.qr-box p{margin:0;color:#ffe5a0;font-weight:700}.qr-box img,.qr-placeholder{width:min(230px,100%);aspect-ratio:1;border-radius:8px;background:#fff9e5b3}.feedback-flash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4;display:grid;place-items:center;pointer-events:none;text-align:center}.feedback-flash span{padding:18px 24px;border-radius:16px;font-size:clamp(24px,4vw,48px);font-weight:800;letter-spacing:.8px}.feedback-flash.success{background:radial-gradient(circle,rgba(95,255,175,.2),transparent 55%)}.feedback-flash.success span{color:#143d2b;background:linear-gradient(145deg,#5fffaff5,#e2fff2e0)}.feedback-flash.fail{background:radial-gradient(circle,rgba(255,109,132,.2),transparent 55%)}.feedback-flash.fail span{color:#4b1425;background:linear-gradient(145deg,#ff6d84f2,#ffd6dee0)}@keyframes drift{0%{transform:translate(0) rotate(0)}to{transform:translate(24px) rotate(1deg)}}@keyframes binaryPulse{0%,to{transform:translateY(0);box-shadow:0 0 #ffc00000}50%{transform:translateY(-2px);box-shadow:0 0 18px #ffc0002e}}@keyframes bitBlink{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.55;transform:translateY(-1px)}}@keyframes pulseArrow{0%,to{transform:scaleX(1);opacity:.6}50%{transform:scaleX(1.3);opacity:1}}@keyframes streamBits{0%{opacity:.15;transform:translateY(3px)}50%{opacity:1;transform:translateY(0)}to{opacity:.15;transform:translateY(-3px)}}@keyframes riseSpark{0%{transform:translateY(0) scale(.5);opacity:0}15%{opacity:.9}to{transform:translateY(-115vh) scale(1.05);opacity:0}}@keyframes badgeGlow{0%,to{box-shadow:0 0 #ffc00000}50%{box-shadow:0 0 24px #ffc0006b}}@keyframes timeoutPulse{0%,to{transform:scale(1);box-shadow:0 0 #ff6d8400}50%{transform:scale(1.03);box-shadow:0 0 24px #ff6d8473}}@keyframes roadmapTravel{0%{transform:translateY(0);opacity:.85}50%{transform:translateY(105%);opacity:1}to{transform:translateY(200%);opacity:.85}}@keyframes binarySweep{0%{transform:translate(-140%);opacity:0}20%{opacity:1}55%{transform:translate(140%);opacity:1}to{transform:translate(140%);opacity:0}}@media (max-width: 1024px){.top-bar{grid-template-columns:1fr}.result-grid{grid-template-columns:minmax(320px,860px);justify-content:center}.result-hero{position:relative;z-index:1;width:min(100%,860px);margin-inline:auto;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 16px;border:1px solid rgba(255,192,0,.28);border-radius:14px;background:#140826b8}.score-badge{justify-self:center}}@media (max-width: 980px){.stage1-input-panel,.stage1-preview-panel{width:100%}.stage1-actions{justify-content:center}.stage2-floating-hint{position:absolute;top:12px;left:12px;width:min(280px,70vw);margin-inline:0;box-shadow:0 8px 16px #00000047}}@media (max-width: 640px){.stage-keyboard{width:100%;padding:8px}.key-btn{min-width:38px;height:40px;padding:0 8px}.key-actions .key-space{min-width:150px}.controls-grid{grid-template-columns:1fr;justify-self:stretch;width:100%}.stage-card{min-height:100vh}.stage1-layout{grid-template-columns:1fr}.stage1-actions{justify-content:stretch}.button-row{flex-direction:column;align-items:stretch}.btn{width:100%}.result-actions .btn{min-width:0}}.display-stage-card{justify-content:center;align-items:stretch;text-align:start;gap:clamp(12px,2vw,20px);padding-inline:clamp(20px,4vw,56px)}.display-stage-card.result-stage{align-items:center;text-align:center}.display-status-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.display-fullscreen-btn{position:fixed;top:16px;inset-inline-end:16px;z-index:30}.display-role{margin:0;color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-weight:700;font-size:clamp(12px,1.2vw,15px)}.display-mode-pill,.display-live-pill{margin:0;border-radius:999px;padding:7px 12px;border:1px solid var(--surface-border);background:#0a0416b8;color:var(--text-main);font-size:12px;letter-spacing:.05em;text-transform:uppercase;font-weight:700}.display-live-pill.is-live{border-color:#5fffaf99;color:var(--ok)}.display-live-pill.is-stale{border-color:#ffc00080;color:#ffe7a0}.display-stage-chip{margin:0;display:inline-flex;width:fit-content;border-radius:999px;border:1px solid var(--surface-border);background:#92437d38;color:var(--text-main);padding:8px 14px;font-size:clamp(12px,1.3vw,15px);letter-spacing:.08em;text-transform:uppercase}.display-headline{margin:0;font-size:clamp(30px,5.5vw,72px);line-height:1.02}.display-home-title{text-align:center}.display-slide-wrap{width:min(100%,1120px);margin-inline:auto;display:flex;flex-direction:column;gap:clamp(12px,2vw,24px)}.display-info-grid{display:grid;width:min(100%,980px);margin-inline:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,1.6vw,20px)}.display-note-card{border-radius:18px;padding:clamp(14px,1.5vw,20px);font-size:clamp(15px,1.4vw,19px);line-height:1.55;background:#0e0921e6;border:1px solid rgba(255,255,255,.14);box-shadow:0 16px 30px #00000059;position:relative;overflow:hidden;min-height:clamp(120px,18vh,170px);display:grid;place-items:center;text-align:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.display-note-card.primary{background:radial-gradient(circle at 16% 22%,rgba(86,182,255,.26),transparent 46%),linear-gradient(132deg,#2e80ff3d,#16beaa2e),#0c061cdb}.display-note-card.secondary{background:radial-gradient(circle at 82% 26%,rgba(255,172,94,.24),transparent 48%),linear-gradient(132deg,#ba58ff33,#ffab562e),#0c061cdb}.display-note-card:after{content:"";position:absolute;inset:-40% auto auto -35%;width:70%;height:180%;background:linear-gradient(115deg,rgba(255,255,255,.22),transparent 60%);transform:rotate(14deg);animation:displayNoteSweep 4.6s ease-in-out infinite;pointer-events:none}.display-hint-only .display-headline{font-size:clamp(28px,4.5vw,54px)}.display-hint-only .display-hint-card{width:min(100%,1120px)}.display-hint-only .ascii-hint-table-wrap{max-height:min(58vh,560px)}.display-roadmap-card{width:min(980px,100%);margin-inline:auto}.display-roadmap-card .roadmap-step{width:min(520px,100%)}.display-roadmap-card.conversion-card .binary-showcase{min-height:0}.display-stage-details{width:min(100%,980px);margin-inline:auto;border:1px solid rgba(255,255,255,.15);border-radius:14px;background:#0c071cb8;padding:clamp(12px,1.4vw,16px);box-shadow:0 10px 20px #0000003d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.display-stage-details-title{margin:0 0 10px;font-size:clamp(14px,1.25vw,16px);font-weight:700;letter-spacing:.02em;text-transform:none;color:#ffe7b9}.display-stage-details-grid{display:grid;grid-template-columns:1fr;gap:8px}.display-stage-detail-item{margin:0;border:0;border-inline-start:3px solid rgba(255,192,0,.62);border-radius:10px;background:#ffffff08;padding:10px 12px 10px 14px;font-size:clamp(14px,1.15vw,16px);line-height:1.5}.display-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,1.4vw,18px)}.display-meta-card{padding:14px 16px;border-radius:16px}.display-meta-card h3{margin:0;color:var(--text-dim);letter-spacing:.06em;text-transform:uppercase;font-size:13px}.display-meta-card p{margin:8px 0 0;font-size:clamp(20px,2.2vw,30px);font-weight:700}.display-progress-track{width:100%;height:12px;border-radius:999px;background:#0a0416a6;border:1px solid rgba(255,192,0,.24);overflow:hidden}.display-progress-value{display:block;height:100%;border-radius:inherit;width:0;transition:width .24s ease;background:linear-gradient(90deg,#ffc000,#ffdf80)}.display-theme-intro .display-progress-value{background:linear-gradient(90deg,#5fffaf,#ffc000)}.display-theme-challenge .display-progress-value{background:linear-gradient(90deg,#ffc000,#ff9f4a)}.display-theme-result .display-progress-value{background:linear-gradient(90deg,#5fffaf,#ffc000,#ff6d84)}.display-sync-note{font-size:14px}.display-stage-card .leaderboard-panel,.display-hint-card{width:min(100%,980px)}.role-launcher-card{width:100%;text-align:center;gap:14px}.role-launcher-card h1{margin:0;font-size:clamp(30px,4.7vw,52px)}.role-launcher-copy{max-width:64ch}.role-launcher-actions{width:min(100%,900px);margin-inline:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.role-launcher-actions .btn{width:100%;min-height:56px;font-size:clamp(14px,1.2vw,17px)}@keyframes displayNoteSweep{0%{transform:translate(-130%) rotate(14deg);opacity:0}15%{opacity:.2}40%{opacity:.42}65%{opacity:.2}to{transform:translate(230%) rotate(14deg);opacity:0}}@media (max-width: 900px){.role-launcher-actions,.display-info-grid,.display-stage-details-grid,.display-meta-grid{grid-template-columns:1fr}}.checkpoint-fact-toast{position:fixed;bottom:clamp(20px,4vw,48px);left:50%;transform:translate(-50%);z-index:30;max-width:min(560px,88vw);border:1px solid var(--surface-border);background:linear-gradient(150deg,#92437d8c,#180b2feb);border-radius:16px;padding:14px 20px;text-align:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.checkpoint-fact-toast-title{color:var(--accent);font-weight:700;font-size:clamp(12px,1.2vw,15px);margin-bottom:4px}.checkpoint-fact-toast-body{font-size:clamp(13px,1.3vw,16px);color:var(--text-main)}.countdown-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:25;display:flex;align-items:center;justify-content:center;background:#0c05188c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.countdown-number{font-size:clamp(90px,18vw,220px);font-weight:800;color:var(--accent);text-shadow:0 0 40px rgba(255,192,0,.55)}.sensor-status-panel{width:min(720px,100%);margin:16px auto;border:1px solid var(--surface-border);background:#180b2f8c;border-radius:16px;padding:16px 18px}.sensor-status-panel h3{margin:0 0 10px;font-size:clamp(14px,1.4vw,18px)}.sensor-status-warning{color:var(--danger);font-size:13px;margin:0 0 10px}.sensor-status-note{color:var(--text-dim);font-size:13px;margin:0 0 10px}.sensor-status-rows{display:grid;gap:10px}.sensor-status-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;border-radius:10px;background:#ffffff0a;padding:8px 12px}.sensor-status-row-main{display:flex;align-items:center;gap:8px;flex:1;min-width:220px}.sensor-status-dot{width:10px;height:10px;border-radius:50%;background:#888}.sensor-status-dot.state-connected{background:var(--ok);box-shadow:0 0 8px #5fffafb3}.sensor-status-dot.state-connecting,.sensor-status-dot.state-reconnecting{background:var(--accent);animation:statusBlink 1s ease-in-out infinite}.sensor-status-dot.state-error{background:var(--danger)}.sensor-status-role{font-weight:700}.sensor-status-state{font-size:13px;color:var(--text-dim)}.sensor-status-battery{font-size:12px;color:var(--text-dim)}.sensor-status-device{font-size:12px;opacity:.75}.sensor-status-error{font-size:12px;color:var(--danger)}.sensor-status-actions{margin-inline-start:auto}.btn-compact{padding:6px 12px;font-size:13px}@keyframes statusBlink{0%,to{opacity:1}50%{opacity:.35}}.ready-pedal-hint{font-size:clamp(16px,2.2vw,24px);color:var(--text-dim);text-align:center;margin-top:12px}.ready-pedal-icon{font-size:clamp(48px,8vw,90px);text-align:center;margin-top:10px}.result-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;width:min(760px,100%);align-self:stretch;margin:14px auto 6px}.result-stat-card{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 10px;border-radius:16px;border:1px solid var(--surface-border);background:#1409248c}.result-stat-icon{font-size:clamp(16px,1.8vw,22px);line-height:1}.result-stat-label{font-size:clamp(9px,.95vw,11px);letter-spacing:.6px;text-transform:uppercase;color:var(--text-dim);text-align:center}.result-stat-value{font-size:clamp(17px,2.1vw,23px);font-weight:800;line-height:1.15;color:var(--text-main);display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:3px;text-align:center}.result-stat-unit{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--text-dim)}.result-stat-speed{color:var(--accent);text-shadow:0 0 14px rgba(255,192,0,.5)}.result-stat-power{color:#ff6d84;text-shadow:0 0 14px rgba(255,109,132,.5)}.result-stat-calories{color:#6fc8ff;text-shadow:0 0 14px rgba(111,200,255,.5)}.result-stat-title{color:var(--ok);text-shadow:0 0 14px rgba(95,255,175,.5);font-size:clamp(14px,1.7vw,18px)}.result-badges-row{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;width:min(760px,100%);margin:4px auto 18px}.result-badge-chip{padding:6px 14px;border-radius:999px;border:1px solid rgba(255,192,0,.45);background:#ffc0001f;color:var(--accent);font-weight:700;font-size:clamp(11px,1.1vw,13px);white-space:nowrap}.result-verification{text-align:center;color:var(--text-dim);font-size:clamp(11px,1.1vw,13px);margin:0 auto 8px}.result-verification-code{font-family:monospace;font-weight:700;color:var(--text-main);letter-spacing:.5px}.result-qr-block{display:flex;flex-direction:column;align-items:center;gap:6px;margin:8px auto 18px}.result-qr-block img{border-radius:10px;border:1px solid var(--surface-border)}.incomplete-pill{display:inline-block;margin-inline-start:10px;padding:3px 10px;border-radius:999px;background:#ff6d842e;border:1px solid rgba(255,109,132,.5);color:var(--danger);font-size:clamp(11px,1.1vw,14px);font-weight:700;vertical-align:middle}.race-scene-wrap{position:relative;display:flex;flex-direction:column;align-items:center;gap:clamp(8px,1.6vw,14px);width:100%;align-self:stretch;margin:clamp(8px,1.6vw,18px) auto}.race-scene{position:relative;width:100%;height:clamp(220px,30vw,340px);overflow:hidden;border-radius:22px;border:1px solid var(--surface-border);background:linear-gradient(180deg,#4a2a63,#6b3480 32%,#7a3f7a,#5a2a5f 78%,#3a1a45);box-shadow:inset 0 0 60px #00000059}.race-layer{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.race-tile-strip{display:flex;height:100%;will-change:transform}.race-tile{position:relative;height:100%;flex-shrink:0}.race-decor{position:absolute;transform:translate(-50%,-50%);filter:drop-shadow(0 2px 4px rgba(0,0,0,.25));opacity:.85}.race-decor-ground{bottom:8%;transform:translate(-50%);opacity:.55}.race-layer-mid{z-index:1}.race-layer-road{z-index:2;bottom:0;top:auto;height:30%;background:linear-gradient(180deg,#26123066,#140820d9);border-top:3px solid rgba(255,192,0,.35)}.race-road-stripes{position:absolute;top:0;right:0;bottom:0;left:0;width:260%;will-change:transform;background-image:repeating-linear-gradient(100deg,rgba(255,245,220,.22) 0px,rgba(255,245,220,.22) 26px,transparent 26px,transparent 70px);background-position:0 30%;background-repeat:repeat-x;background-size:100% 3px}.race-checkpoint-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;will-change:transform}.race-checkpoint{position:absolute;bottom:24%;display:flex;flex-direction:column;align-items:center;gap:4px;transform:translate(-50%);opacity:.55;transition:opacity .3s ease}.race-checkpoint-icon{font-size:clamp(20px,2.6vw,30px);filter:drop-shadow(0 2px 4px rgba(0,0,0,.4)) grayscale(.6);transition:filter .3s ease,transform .3s ease}.race-checkpoint.is-passed{opacity:1}.race-checkpoint.is-passed .race-checkpoint-icon{filter:drop-shadow(0 0 10px rgba(255,192,0,.75));transform:scale(1.1)}.race-checkpoint.is-just-passed .race-checkpoint-icon{animation:checkpointPop .7s ease-out}.race-checkpoint-label{white-space:nowrap;font-size:clamp(10px,1vw,13px);font-weight:700;color:var(--text-main);background:#0c05188c;padding:2px 8px;border-radius:999px}@keyframes checkpointPop{0%{transform:scale(1)}40%{transform:scale(1.6) rotate(-8deg)}to{transform:scale(1.1)}}.race-bike-wrap{position:absolute;bottom:22%;z-index:4;transform:translate(-50%)}.bike-rider{position:relative;width:clamp(84px,11vw,128px);height:auto;animation:bikeBob var(--bob-duration, .6s) ease-in-out infinite}.bike-rider.is-static{animation:none}.bike-rider-svg{width:100%;height:auto;overflow:visible;display:block}.bike-wheel,.bike-crank{animation:wheelSpin var(--wheel-spin-duration, .8s) linear infinite}.bike-rider.is-idle .bike-wheel,.bike-rider.is-idle .bike-crank,.bike-rider.is-static .bike-wheel,.bike-rider.is-static .bike-crank{animation-play-state:paused}.bike-rider-lean{transform:rotate(var(--bike-lean, -2deg));transform-origin:110px 95px}@keyframes wheelSpin{to{transform:rotate(360deg)}}@keyframes bikeBob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.bike-wheel-tire{fill:#1b0e30;stroke:#0c0518;stroke-width:3}.bike-wheel-rim{fill:none;stroke:var(--accent);stroke-width:3}.bike-spoke{stroke:#fff5dc8c;stroke-width:2}.bike-hub{fill:var(--accent)}.bike-frame{stroke:var(--accent);stroke-width:7;stroke-linecap:round;stroke-linejoin:round}.bike-seat,.bike-grip{fill:#1b0e30}.bike-crank-hub{fill:var(--accent)}.bike-pedal{fill:#1b0e30}.bike-torso{fill:#c65fb0}.bike-head{fill:#f2c48d}.bike-helmet{fill:var(--accent)}.bike-leg{stroke:#2fd6c0;stroke-width:9;stroke-linecap:round}.bike-arm{stroke:#c65fb0;stroke-width:7;stroke-linecap:round}.race-speed-lines{position:absolute;top:32%;right:100%;margin-right:4px;display:flex;flex-direction:column;gap:6px;width:clamp(40px,6vw,70px)}.race-speed-line{height:3px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(255,245,220,.75));animation:speedLineStreak .5s linear infinite}.race-speed-line:nth-child(2){animation-delay:.12s}.race-speed-line:nth-child(3){animation-delay:.24s}.tier-medium .race-speed-line{animation-duration:.38s}.tier-fast .race-speed-line{animation-duration:.26s;background:linear-gradient(90deg,transparent,rgba(255,192,0,.85))}@keyframes speedLineStreak{0%{opacity:0;transform:translate(30%) scaleX(.4)}40%{opacity:1}to{opacity:0;transform:translate(-40%) scaleX(1)}}.race-dust{position:absolute;bottom:-2px;left:30%;width:10px;height:10px}.race-dust-puff{position:absolute;width:10px;height:10px;border-radius:50%;background:radial-gradient(circle,rgba(255,224,178,.55),transparent 70%);animation:dustPuff .9s ease-out infinite}.race-dust-puff:nth-child(2){animation-delay:.3s}.race-dust-puff:nth-child(3){animation-delay:.6s}@keyframes dustPuff{0%{opacity:.7;transform:translate(0) scale(.4)}to{opacity:0;transform:translate(-24px,-14px) scale(1.6)}}.metrics-readout-row{position:relative;z-index:6;display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;align-self:center;gap:clamp(10px,2vw,22px);max-width:96%;padding:8px clamp(10px,2vw,20px);border-radius:18px;background:#0f071c8c;border:1px solid var(--surface-border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.metrics-readout{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:46px}.metrics-readout-label{font-size:clamp(9px,.95vw,11px);letter-spacing:.6px;color:var(--text-dim);text-transform:uppercase;white-space:nowrap}.metrics-readout-value{font-size:clamp(18px,2.6vw,28px);font-weight:800;line-height:1;color:var(--text-main);display:flex;align-items:baseline;gap:3px}.metrics-readout-unit{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--text-dim)}.metrics-readout-speed{color:var(--accent);text-shadow:0 0 14px rgba(255,192,0,.55)}.metrics-readout-power{color:#ff6d84;text-shadow:0 0 14px rgba(255,109,132,.55)}.metrics-readout-cadence{color:#6fc8ff;text-shadow:0 0 14px rgba(111,200,255,.5)}.metrics-readout-distance{color:var(--ok);text-shadow:0 0 14px rgba(95,255,175,.5)}.coach-banner{width:min(720px,100%);margin:0 auto clamp(6px,1.2vw,12px);text-align:center;font-size:clamp(15px,1.8vw,21px);font-weight:700;color:var(--accent);text-shadow:0 2px 10px rgba(0,0,0,.35)}.confetti-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;overflow:hidden;pointer-events:none}.confetti-piece{position:absolute;top:-24px;width:10px;height:14px;border-radius:2px;opacity:.95;animation-name:confettiFall;animation-timing-function:ease-in;animation-fill-mode:forwards}@keyframes confettiFall{0%{transform:translateY(0) translate(0) rotate(0);opacity:1}to{transform:translateY(112vh) translate(var(--confetti-drift)) rotate(var(--confetti-rotate));opacity:.85}}.app-shell.reduced-motion .confetti-overlay{display:none}.mode-select-grid{display:grid;grid-template-columns:1fr;gap:clamp(14px,2vw,22px);width:min(520px,100%);align-self:stretch;margin:10px auto}.mode-card{display:flex;flex-direction:column;align-items:center;gap:8px;border:1px solid var(--surface-border);background:linear-gradient(150deg,#92437d66,#180b2fd9);border-radius:22px;padding:clamp(20px,3vw,32px) 18px;cursor:pointer;color:inherit;font:inherit;text-align:center;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.mode-card:hover{transform:translateY(-4px);box-shadow:0 10px 30px #ffc00038;border-color:#ffc0008c}.mode-card:active{transform:translateY(-1px) scale(.99)}.mode-card-icon{font-size:clamp(38px,6vw,56px);line-height:1}.mode-card-title{font-size:clamp(17px,2vw,22px);font-weight:800;color:var(--text-main)}.mode-card-desc{font-size:clamp(12px,1.3vw,14px);color:var(--text-dim);line-height:1.4}.mode-card-lab{border-color:#5fffaf4d}.mode-card-lab:hover{border-color:#5fffafa6;box-shadow:0 10px 30px #5fffaf33}.power-lab-scene{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;z-index:1;overflow:hidden;container-type:size;display:flex;flex-direction:column}.power-lab-topbar{position:relative;z-index:5;display:flex;align-items:flex-start;justify-content:space-between;gap:2cqmin;padding:2.4cqmin 3cqmin 0}.power-lab-pill{background:#180b2f9e;border:.2cqmin solid rgba(255,245,220,.16);border-radius:1.4cqmin;padding:1.2cqmin 2.2cqmin;text-align:center}.power-lab-pill-stages{border-color:#ffc00047}.power-lab-pill-label{display:block;font-size:1.8cqmin;letter-spacing:.12em;text-transform:uppercase;color:#f0dfb3}.power-lab-pill-value{display:block;font-size:5.4cqmin;font-weight:800;line-height:1;color:var(--text-main);font-variant-numeric:tabular-nums}.power-lab-pill-stages .power-lab-pill-value{color:var(--accent)}.power-lab-village-wrap{position:relative;flex:1 1 auto;min-height:0}.power-lab-sky{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(#180b2f,#221039 48%,#2a1242)}.power-lab-sun{position:absolute;left:50%;top:66%;width:92cqmin;height:92cqmin;margin:-46cqmin 0 0 -46cqmin;border-radius:50%;background:radial-gradient(circle,#ffc0008c,#ffc00029 40%,#ffc00000 70%);opacity:.08;pointer-events:none}.power-lab-castle{position:absolute;left:9%;bottom:33%;width:26%;height:20%}.power-lab-castle-ground{position:absolute;inset:auto 0 0 0;height:46%;opacity:.32;background:#180b2f;clip-path:polygon(0% 100%,10% 48%,26% 62%,44% 34%,62% 58%,80% 40%,100% 66%,100% 100%)}.power-lab-castle-halo{position:absolute;left:-18%;top:-25%;width:136%;height:165%;border-radius:50%;background:radial-gradient(closest-side,#ffc0004d,#ffc00014 55%,#ffc00000 78%);opacity:.5}.power-lab-castle-silhouette{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.72;background:#150a2b;clip-path:polygon(0% 100%,0% 62%,4% 62%,4% 30%,6% 30%,6% 24%,9% 24%,9% 30%,11% 30%,11% 24%,14% 24%,14% 62%,20% 62%,20% 20%,23% 20%,23% 14%,27% 14%,27% 20%,31% 20%,31% 14%,35% 14%,35% 20%,39% 20%,39% 14%,43% 14%,43% 20%,46% 20%,46% 62%,52% 62%,52% 10%,55% 10%,55% 4%,59% 4%,59% 10%,62% 10%,62% 4%,65% 4%,65% 10%,68% 10%,68% 62%,74% 62%,74% 48%,77% 48%,77% 42%,81% 42%,81% 48%,85% 48%,85% 42%,89% 42%,89% 48%,92% 48%,92% 62%,100% 62%,100% 100%)}.power-lab-castle-window{position:absolute;background:#1b0d31;border-radius:40% 40% 0 0}.power-lab-castle-window-0{left:7.5%;top:40%;width:1.6%;height:8%}.power-lab-castle-window-1{left:31%;top:32%;width:2%;height:9%}.power-lab-castle-window-2{left:57.5%;top:22%;width:1.8%;height:8%}.power-lab-castle-flag{position:absolute;left:58.5%;top:0;width:8%;height:6%;opacity:.35;background:var(--accent);clip-path:polygon(0% 0%,100% 35%,0% 70%,0% 100%,0% 0%);transform-origin:0% 50%}.power-lab-hill{position:absolute;inset:auto 0 0 0}.power-lab-hill-far{height:46%;background:linear-gradient(#3a1b52,#241038 70%);clip-path:ellipse(85% 100% at 50% 100%)}.power-lab-hill-near{height:32%;background:linear-gradient(#4a2260,#2a1242 80%);clip-path:ellipse(70% 100% at 42% 100%)}.power-lab-windmill{position:absolute;left:50%;bottom:12%;width:30cqmin;height:min(56cqmin,88%);transform:translate(-50%)}.power-lab-windmill-tower{position:absolute;left:50%;bottom:0;width:13cqmin;height:55%;margin-left:-6.5cqmin;background:linear-gradient(100deg,#3d1c53,#582a6f 45%,#2c1442);clip-path:polygon(26% 0%,74% 0%,100% 100%,0% 100%)}.power-lab-windmill-window{position:absolute;left:50%;bottom:14%;width:3.2cqmin;height:4.4cqmin;margin-left:-1.6cqmin;border-radius:1.6cqmin 1.6cqmin .3cqmin .3cqmin;background:#1b0d31}.power-lab-windmill-cap{position:absolute;left:50%;bottom:54%;width:16.5cqmin;height:9%;margin-left:-8.25cqmin;background:linear-gradient(var(--primary),#5d2a63);border-radius:8cqmin 8cqmin 1cqmin 1cqmin}.power-lab-windmill-sails-wrap{position:absolute;left:50%;bottom:62%;height:66%;aspect-ratio:1;transform:translate(-50%,50%)}.power-lab-windmill-sails{position:absolute;top:0;right:0;bottom:0;left:0;will-change:transform}.power-lab-windmill-sail{position:absolute;left:50%;top:0;width:2.9cqmin;height:50%;margin-left:-1.45cqmin;transform-origin:50% 100%;background:repeating-linear-gradient(#fff5dc 0,#fff5dc .45cqmin,#fff5dc1f .45cqmin,#fff5dc1f 1.9cqmin);border:.22cqmin solid #fff5dc;border-radius:.4cqmin}.power-lab-windmill-hub{position:absolute;left:50%;top:50%;width:3cqmin;height:3cqmin;margin:-1.5cqmin 0 0 -1.5cqmin;border-radius:50%;background:var(--accent)}.power-lab-village{position:absolute;inset:auto 0 0 0;display:flex;justify-content:center;align-items:flex-end;gap:1.8cqmin;padding:0 3cqmin 1cqmin}.power-lab-house{position:relative;flex:none;opacity:.72}.power-lab-house-roof{display:block;width:100%;background:linear-gradient(#5b2a6c,#3a1a52);clip-path:polygon(50% 0%,100% 100%,0% 100%)}.power-lab-house.is-boss .power-lab-house-roof{background:linear-gradient(#92437d,#4a2062)}.power-lab-house-body{width:100%;background:linear-gradient(#432058,#2c1442);border-radius:0 0 .6cqmin .6cqmin;display:flex;align-items:center;justify-content:center}.power-lab-house.is-boss .power-lab-house-body{border:.2cqmin solid rgba(255,192,0,.18)}.power-lab-lamp{display:flex;align-items:center;justify-content:center;background:#1c0e33;color:#6d4a86;transition:background .26s ease,box-shadow .26s ease,color .26s ease}.power-lab-lamp-icon{display:block}.power-lab-lamp-icon svg{display:block;width:100%;height:100%}.power-lab-lamp.is-spinning .power-lab-lamp-icon{animation:powerLabFanSpin .9s linear infinite}@keyframes powerLabFanSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.power-lab-house-name{display:block;margin-top:.7cqmin;text-align:center;font-size:1.5cqmin;color:#f0dfb3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.power-lab-house-watts{display:block;text-align:center;font-size:1.8cqmin;font-weight:700;color:var(--accent)}.power-lab-hud{position:relative;z-index:5;flex:none;display:flex;align-items:center;gap:2.4cqmin;padding:1.6cqmin 3cqmin 2cqmin;background:linear-gradient(#0d062066,#0d0620e6);border-top:.2cqmin solid rgba(255,192,0,.22);flex-wrap:wrap}.power-lab-hero{flex:none;background:#180b2fad;border:.25cqmin solid rgba(255,192,0,.4);border-radius:1.6cqmin;padding:1cqmin 2.4cqmin 1.2cqmin}.power-lab-hero-label{display:block;font-size:1.9cqmin;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.power-lab-hero-row{display:flex;align-items:baseline;gap:.8cqmin}.power-lab-hero-value{font-size:8.4cqmin;font-weight:800;line-height:.95;color:var(--accent);text-shadow:0 0 3cqmin rgba(255,192,0,.5);font-variant-numeric:tabular-nums}.power-lab-hero-unit{font-size:3cqmin;font-weight:700;color:var(--text-main)}.power-lab-hud-tiles{flex:1 1 auto;display:flex;gap:1.2cqmin;flex-wrap:wrap}.power-lab-hud-tile{flex:1 1 14cqmin;background:#180b2f8c;border:.2cqmin solid rgba(255,245,220,.14);border-radius:1.1cqmin;padding:.9cqmin 1.6cqmin}.power-lab-hud-tile-voltage{flex-basis:12cqmin;border-color:#5fffaf38}.power-lab-hud-tile-label{display:block;font-size:1.6cqmin;letter-spacing:.1em;text-transform:uppercase;color:#f0dfb3}.power-lab-hud-tile-value{display:block;font-size:3.4cqmin;font-weight:700;line-height:1.05;color:var(--text-main);font-variant-numeric:tabular-nums}.power-lab-hud-tile-voltage .power-lab-hud-tile-value{color:var(--ok)}.power-lab-hud-tile-unit{font-size:1.9cqmin}.power-lab-banner{flex:0 0 26cqmin;align-self:stretch;display:flex;align-items:center;justify-content:center;text-align:center;background:linear-gradient(#3f1d56,#2a1242);border:.25cqmin solid rgba(255,192,0,.45);border-radius:1cqmin;padding:1cqmin 1.6cqmin;font-size:2cqmin;line-height:1.35;color:var(--text-main)}.power-lab-stop-btn{position:fixed;top:clamp(10px,1.2vw,16px);left:50%;transform:translate(-50%);z-index:20;border:1px solid rgba(255,109,132,.42);background:#180b2f9e;color:#ffd7de;border-radius:1.2em;padding:.5em 1.4em;font-size:clamp(11px,1.1vw,14px);font-weight:700;letter-spacing:.04em;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:transform .12s ease,border-color .12s ease,background .12s ease}.power-lab-stop-btn:hover{border-color:#ff6d84d9;background:#180b2fcc}.power-lab-stop-btn:active{transform:translate(-50%) scale(.96)}.power-lab-stop-btn:active{transform:scale(.96)}@media (orientation: portrait){.race-scene{height:clamp(420px,62vh,760px)}}
