@import "https://fonts.googleapis.com/css2?family=Geist+Mono:wght@300;400;500&family=Geist:wght@300;400;500&display=swap";
:root{--bg:#1c1a17;--bg-sub:#242118;--bg-card:#2a271f;--text:#e8e4da;--sub:#9f9688;--sub-alt:#3a3630;--dim:#524e46;--accent:#d4693a;--accent-bg:#d4693a1f;--focus-ring:#d4693adb;--focus-ring-soft:#d4693a47;--target-accent:#7db884;--target-accent-strong:#9bd49f;--delete-accent:#e07575;--success:#7db884;--error:#e07575;--border:#ffffff12;--f-mono:"Geist Mono", monospace;--f-ui:"Geist", sans-serif;--r:8px;--ease:cubic-bezier(.16, 1, .3, 1)}[data-theme=light]{--bg:#f7f1e8;--bg-sub:#efe6dc;--bg-card:#e8dacd;--text:#332f2a;--sub:#766b60;--sub-alt:#e5d7ca;--dim:#beb0a1;--accent:#b85b35;--accent-bg:#b85b351f;--focus-ring:#b85b35db;--focus-ring-soft:#b85b3538;--target-accent:#3f7a4b;--target-accent-strong:#2f6840;--delete-accent:#b4463f;--success:#3f7a4b;--error:#b4463f;--border:#332f2a1a}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);font-family:var(--f-ui);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.6}button,input{font:inherit}button{font-family:inherit}input[type=color]{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.app-header :where(a,button):focus,.modebar :where(button):focus,.results-view :where(a,button,[role=button]):focus{outline:none}.app-header :where(a,button):focus-visible,.modebar :where(button):focus-visible,.results-view :where(a,button,[role=button]):focus-visible{box-shadow:0 0 0 1px var(--bg), 0 0 0 3px var(--focus-ring), 0 0 18px var(--focus-ring-soft);animation:focusLand .28s var(--ease) both;outline:none}.tab-shifting .app-header :where(a,button):focus-visible,.tab-shifting .modebar :where(button):focus-visible,.results-view.tab-shifting :where(a,button,[role=button]):focus-visible{animation:focusShift .34s var(--ease) both}.app-shell{background:var(--bg);max-width:900px;min-height:100vh;color:var(--text);grid-template-rows:auto auto 1fr auto;margin:0 auto;padding:0 32px;display:grid}.route-transition-layer{background:var(--bg);min-height:100vh}.app-content{display:contents}.app-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-width:0;padding:24px 0 20px;display:flex}.logo{color:var(--text);cursor:pointer;letter-spacing:-.01em;background:0 0;border:0;align-items:center;gap:9px;padding:0;font-size:15px;font-weight:500;text-decoration:none;transition:opacity .15s;display:flex}.logo:hover{opacity:.72}.logo-mark{color:var(--accent);font-family:-apple-system,Helvetica Neue,sans-serif;font-size:19px;line-height:1}nav{gap:4px;display:flex}nav button{color:var(--sub);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:5px 10px;font-size:13px;transition:color .15s,background .15s;display:inline-flex}nav a{color:var(--sub);border-radius:6px;align-items:center;gap:6px;padding:5px 10px;font-size:13px;text-decoration:none;transition:color .15s,background .15s;display:inline-flex}nav .account-nav-item{justify-content:center;min-width:76px}nav button:hover:not(:disabled),nav a:hover{color:var(--text);background:var(--sub-alt)}.modebar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;min-height:45px;padding:11px 0;display:flex}.modebar-placeholder{visibility:hidden;pointer-events:none}.mode-group{gap:2px;display:flex}.mode-btn{color:var(--sub);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;transition:color .15s,background .15s;display:inline-flex}.mode-btn:hover{color:var(--text);background:var(--sub-alt)}.mode-btn.active{color:var(--accent);background:var(--accent-bg)}.shortcut-hint{opacity:.72;vertical-align:middle;align-items:center;gap:2px;margin-left:2px;display:inline-flex}.shortcut-hint kbd{border:1px solid var(--border);color:currentColor;min-width:16px;height:16px;font-family:var(--f-ui);text-align:center;text-transform:lowercase;background:#ffffff0b;border-radius:4px;padding:0 4px;font-size:10px;font-weight:500;line-height:14px}.results-tab-coach{border:1px solid var(--focus-ring);background:var(--accent-bg);width:fit-content;box-shadow:0 0 18px var(--focus-ring-soft);color:var(--accent);pointer-events:none;text-transform:lowercase;animation:tabCoachIn .42s var(--ease) both, tabCoachNudge 1.6s var(--ease) .45s infinite;border-radius:999px;align-items:center;gap:8px;margin:0;padding:7px 10px 7px 12px;font-size:13px;font-weight:500;display:inline-flex}.results-tab-coach kbd{border:1px solid var(--focus-ring);background:color-mix(in srgb, var(--accent) 14%, var(--bg-sub));min-width:34px;color:var(--accent);font-family:var(--f-ui);text-align:center;border-radius:5px;padding:5px 8px;font-size:12px;font-weight:500;line-height:1}.mode-controls{flex:0 0 128px;justify-content:flex-end;align-items:center;gap:8px;width:128px;min-width:0;height:39px;margin-left:auto;display:flex;position:relative}.mode-controls.open{flex-basis:128px;justify-content:flex-end;width:128px;margin-left:auto}.mode-controls.open.compact{flex-basis:128px;width:128px;margin-left:auto}.mode-options-shell{--options-open-width:min(438px, calc(100vw - 48px));z-index:2;border-radius:var(--r);background:color-mix(in srgb, var(--bg-sub) 58%, transparent);width:128px;min-width:0;height:39px;color:var(--sub);contain:layout paint style;isolation:isolate;transform-origin:100%;backface-visibility:hidden;will-change:width, background, color, transform;transition:width .42s cubic-bezier(.19, 1, .22, 1), background .24s var(--ease), color .24s var(--ease);border:0;justify-content:flex-end;align-items:center;display:flex;position:absolute;top:50%;right:0;overflow:hidden;transform:translateY(-50%)}.mode-options-shell.open{z-index:8;width:var(--options-open-width);box-shadow:none;background:0 0}.mode-options-shell.compact.open{--options-open-width:min(334px, calc(100vw - 48px))}.mode-options-toggle{color:inherit;cursor:pointer;white-space:nowrap;will-change:opacity, transform;transition:opacity .16s var(--ease) .1s, transform .24s var(--ease) .1s;background:0 0;border:0;justify-content:center;align-items:center;gap:9px;padding:0 13px;font-size:12px;display:flex;position:absolute;inset:0;transform:translate(0,0)}.mode-options-shell.open .mode-options-toggle{opacity:0;pointer-events:none;transition-delay:0s;transform:translate(-8px)scale(.985)}.mode-options-label{color:var(--accent);font-weight:500}.chevron-mark{opacity:.72;border-bottom:1.5px solid;border-right:1.5px solid;flex:none;width:7px;height:7px}.chevron-mark.down{margin-top:-3px;transform:rotate(45deg)}.chevron-mark.up{margin-top:3px;transform:rotate(225deg)}.mode-options-shell:hover{background:color-mix(in srgb, var(--bg-sub) 86%, transparent);color:var(--text)}.mode-options-shell.open:hover{background:0 0}.mode-options-panel{opacity:0;pointer-events:none;will-change:opacity, transform;transition:opacity .14s var(--ease), transform .26s var(--ease);justify-content:flex-end;align-items:center;gap:5px;display:flex;position:absolute;inset:4px;overflow:hidden;transform:translate(10px)}.mode-options-shell.open .mode-options-panel{opacity:1;pointer-events:auto;transition:opacity .22s var(--ease) .12s, transform .34s cubic-bezier(.19, 1, .22, 1) 60ms;transform:translate(0,0)}.mode-options-close{height:29px;color:var(--sub);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;gap:6px;padding:0 6px;font-size:12px;display:inline-flex}.mode-options-close:hover:not(:disabled){background:var(--bg-card);color:var(--text)}.difficulty-segment.hidden{display:none}.mini-segment{border-radius:var(--r);background:0 0;border:1px solid #0000;align-items:center;gap:2px;padding:2px;display:inline-flex}.segment-label{color:var(--sub);white-space:nowrap;padding:0 4px;font-size:11px}.mini-segment button,.mode-meta-btn{color:var(--sub);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:5px 6px;font-size:11px}.mini-segment button:hover:not(:disabled),.mode-meta-btn:hover:not(:disabled){color:var(--text)}.mini-segment button.active,.mode-meta-btn.active{background:var(--accent-bg);color:var(--accent)}main{opacity:1;filter:blur();will-change:opacity, filter, transform;min-width:0;transition:opacity .22s var(--ease), filter .22s var(--ease), transform .28s cubic-bezier(.19, 1, .22, 1);flex-direction:column;justify-content:flex-start;padding:20px 0 12px;display:flex;transform:translate(0,0)scale(1)}main.screen-crossfade{filter:blur(1.5px);opacity:0;pointer-events:none;transform:translateY(4px)scale(.998)}.game-view{flex-direction:column;gap:20px;transition:opacity .15s;display:flex}.game-view.fading{opacity:.45}.status-row{justify-content:space-between;align-items:center;display:flex}.timer{color:var(--sub);font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:15px;transition:color .2s}.timer.running{color:var(--accent)}.pips{gap:7px;display:flex}.pip{background:var(--sub-alt);border-radius:2px;width:20px;height:3px}.pip.current{background:var(--accent)}.pip.done{background:var(--success)}.block-label{color:var(--sub);letter-spacing:.07em;opacity:.7;text-transform:uppercase;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:11px;font-weight:500;display:flex}.block-label.accent{color:var(--accent);opacity:.85}.part-label{color:var(--sub);font-family:var(--f-ui);letter-spacing:.04em;font-weight:500}.target-panel{border-radius:0;min-height:112px;padding:0;position:relative;overflow:hidden}.target-panel.updated:after{background:linear-gradient(90deg, transparent, var(--accent), transparent);content:"";pointer-events:none;height:1px;animation:targetUpdated 1.2s var(--ease) both;position:absolute;bottom:0;left:0;right:0}.target-block{color:var(--accent);font-family:var(--f-mono);letter-spacing:-.01em;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:pre-wrap;word-break:break-word;min-height:58px;max-height:156px;padding:0 0 22px;font-size:19px;font-weight:400;line-height:1.75;overflow:hidden}.target-block.target-switched{animation:targetTextSwitch .7s var(--ease) both}.target-attention{color:var(--target-accent-strong);text-decoration-line:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--target-accent-strong) 82%, var(--target-accent));text-decoration-color:color-mix(in srgb, var(--target-accent-strong) 82%, var(--target-accent));text-underline-offset:5px;text-shadow:0 0 10px color-mix(in srgb, var(--target-accent) 24%, transparent);font-weight:600;text-decoration-thickness:1.5px}.target-space-attention{color:#0000;vertical-align:baseline;width:1ch;text-decoration:none;display:inline-block;position:relative}.target-space-attention:after{color:var(--target-accent-strong);content:"·";text-align:center;text-shadow:0 0 10px color-mix(in srgb, var(--target-accent) 28%, transparent);position:absolute;bottom:.08em;left:.05ch;right:.05ch}.target-newline-attention{color:#0000;vertical-align:baseline;width:1.1ch;height:1em;text-decoration:none;display:inline-block;position:relative}.target-newline-attention:after{color:var(--target-accent-strong);content:"↵";text-shadow:0 0 10px color-mix(in srgb, var(--target-accent) 28%, transparent);font-size:.72em;line-height:1;position:absolute;bottom:.1em;right:0}.target-indent-guide{color:#0000;width:4ch;display:inline-block;position:relative}.target-indent-guide:before{background:color-mix(in srgb, var(--target-accent-strong) 48%, transparent);width:2px;box-shadow:0 0 10px color-mix(in srgb, var(--target-accent) 20%, transparent);content:"";border-radius:999px;position:absolute;top:.3em;bottom:.32em;left:.5ch}.editor-zone{--history-height:64px;--edit-label-height:24px;min-height:calc(var(--history-height) + var(--edit-label-height) + 56px);position:relative}.editor-zone.has-reset{min-height:calc(var(--history-height) + var(--edit-label-height) + 94px)}.edit-label{top:var(--history-height);transition:top .42s var(--ease), color .22s, opacity .22s;margin:0;position:absolute;left:0;right:0}.editor-zone.has-history .edit-label{top:0}.editor-flow{--completion-rail-height:28px;top:var(--edit-label-height);grid-template-rows:var(--history-height) auto;min-height:calc(var(--history-height) + 56px);transition:box-shadow .25s var(--ease);background:0 0;border-radius:0;align-items:start;display:grid;position:absolute;left:0;right:0;overflow:visible}.editor-flow.has-reset{grid-template-rows:var(--history-height) auto auto;min-height:calc(var(--history-height) + 94px)}.editor-flow.matched .active-segment:after{z-index:2;width:2px;height:var(--active-rail-height,var(--completion-rail-height));background:var(--success);content:"";pointer-events:none;transform-origin:top;animation:completionRailExtend 1.08s var(--ease) both;position:absolute;top:8px;left:0;box-shadow:0 0 14px #7db88461}.editor-flow.matched .active-segment:before{animation:activeRailReset 1.08s var(--ease) both}.editor-flow.matched .active-segment .edit-block{animation:correctTextPulse .42s var(--ease) both}.locked-stack{height:var(--history-height);opacity:0;pointer-events:none;transition:opacity .42s var(--ease), transform .42s var(--ease);position:relative;overflow:hidden;transform:translateY(4px)}.editor-zone.has-history .locked-stack{opacity:1;transform:translateY(0)}.locked-stack-inner{flex-direction:column;justify-content:flex-end;display:flex;position:absolute;bottom:0;left:0;right:0}.locked-segment{color:var(--sub);font-family:var(--f-mono);letter-spacing:-.01em;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:pre-wrap;word-break:break-word;min-height:32px;max-height:56px;padding:3px 20px;font-size:17px;font-weight:400;line-height:1.55;overflow:hidden}.locked-segment.just-completed{animation:completedLineSettle .68s var(--ease) both}.active-segment{align-self:start;min-height:56px;position:relative}.active-segment:before{width:2px;height:var(--active-rail-height,48px);background:var(--accent);content:"";opacity:.75;transform-origin:bottom;transition:background .18s,box-shadow .18s,opacity .18s;position:absolute;top:8px;bottom:auto;left:0}.active-segment.revealed .edit-block{animation:lineReveal .52s var(--ease) both}.active-hint-text{width:min(560px,100%);color:color-mix(in srgb, var(--sub) 78%, transparent);opacity:0;animation:hintTextIn .28s var(--ease) both;margin:10px 0 0 20px;font-size:.82rem;line-height:1.45;transform:translateY(-2px)}.typing-now .active-hint-text{opacity:0;transform:translateY(-4px)}.drill-view .locked-segment.just-completed{animation-duration:.82s}.drill-view .editor-flow.matched .active-segment:after,.drill-view .editor-flow.matched .active-segment:before{animation-duration:1.38s}.drill-view .active-segment:before{height:var(--active-rail-height,34px);top:8px}.drill-view .editor-flow.matched .active-segment:after{height:var(--active-rail-height,34px)}.drill-view.difficulty-multiline .edit-block{min-height:56px;max-height:80px}.drill-view.difficulty-multiline .active-segment{min-height:56px}.drill-view.difficulty-multiline .active-segment:before{height:var(--active-rail-height,34px)}.drill-view .active-segment.revealed .edit-block{animation:drillLineReveal .72s var(--ease) both}.difficulty-multiline .target-block{min-height:128px;max-height:128px;-webkit-mask-image:linear-gradient(#000 72%,#0000);mask-image:linear-gradient(#000 72%,#0000)}.difficulty-multiline .target-panel{min-height:174px}.difficulty-multiline .edit-block{min-height:150px;max-height:150px}.difficulty-multiline .editor-zone{--history-height:40px;min-height:calc(var(--history-height) + var(--edit-label-height) + 150px)}.difficulty-multiline .active-segment{min-height:150px}.difficulty-multiline .active-segment:before{height:var(--active-rail-height,88px)}.difficulty-multiline .locked-segment{min-height:26px;max-height:26px;color:color-mix(in srgb, var(--sub) 82%, transparent);opacity:.62;text-overflow:ellipsis;white-space:nowrap;word-break:normal;padding:2px 20px;font-size:13px;line-height:1.4;overflow:hidden}.difficulty-multiline .editor-zone.has-history .locked-stack{height:var(--history-height);margin-top:0}.difficulty-multiline .locked-segment.just-completed{animation:completedMultilineTrail .72s var(--ease) both}.difficulty-multiline .active-segment.revealed .edit-block{animation:lineCrossfade .58s var(--ease) both}.difficulty-multiline .editor-flow.matched .active-segment:after,.difficulty-multiline .editor-flow.matched .active-segment:before{animation-duration:1.2s}.active-segment.hinting:before{opacity:1;box-shadow:0 0 12px #d4693a6b}.edit-stack{position:relative}.syntax-overlay{z-index:0;border-radius:var(--r);color:var(--text);font-family:var(--f-mono);letter-spacing:-.01em;pointer-events:none;white-space:pre-wrap;word-break:break-word;padding:8px 20px;font-size:19px;font-weight:400;line-height:1.75;position:absolute;inset:0;overflow:hidden}.deletion-hint-overlay{z-index:2;border-radius:var(--r);color:#0000;font-family:var(--f-mono);letter-spacing:-.01em;pointer-events:none;white-space:pre-wrap;word-break:break-word;padding:8px 20px;font-size:19px;font-weight:400;line-height:1.75;position:absolute;inset:0;overflow:hidden}.indent-hint-overlay{z-index:3;border-radius:var(--r);color:#0000;font-family:var(--f-mono);letter-spacing:-.01em;pointer-events:none;white-space:pre-wrap;padding:8px 20px;font-size:19px;font-weight:400;line-height:1.75;position:absolute;inset:0;overflow:hidden}.indent-hint-line{height:1.75em;position:relative}.indent-hint-marker{opacity:0;gap:8px;height:.95em;display:inline-flex;position:absolute;top:.34em;left:0;transform:translate(-6px)}.indent-hint-line.needs-indent .indent-hint-marker{opacity:1;animation:indentHintIn .24s var(--ease) both, indentHintPulse 1.9s var(--ease) .24s infinite;transform:translate(0)}.indent-hint-marker span{width:13px;height:.95em;position:relative}.indent-hint-marker span:before,.indent-hint-marker span:after{background:color-mix(in srgb, var(--target-accent-strong) 82%, var(--success));box-shadow:0 0 12px color-mix(in srgb, var(--target-accent) 28%, transparent);content:"";position:absolute}.indent-hint-marker span:before{opacity:.9;width:2px;top:0;bottom:0;left:0}.indent-hint-marker span:after{opacity:.9;width:8px;height:2px;top:calc(50% - 1px);left:0}.delete-extra{background:linear-gradient(to bottom, transparent 43%, color-mix(in srgb, var(--delete-accent) 58%, transparent) 43%, color-mix(in srgb, var(--delete-accent) 58%, transparent) 56%, transparent 56%), color-mix(in srgb, var(--delete-accent) 12%, transparent);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:color-mix(in srgb, var(--delete-accent) 74%, var(--text));text-decoration-line:line-through;-webkit-text-decoration-color:color-mix(in srgb, var(--delete-accent) 82%, transparent);text-decoration-color:color-mix(in srgb, var(--delete-accent) 82%, transparent);text-shadow:0 0 14px color-mix(in srgb, var(--delete-accent) 24%, transparent);animation:deletionStrikeIn .2s var(--ease) both;border-radius:3px;margin:0 -1px;padding:0 1px;text-decoration-thickness:2px}.delete-extra-space,.delete-extra-newline{color:color-mix(in srgb, var(--delete-accent) 86%, var(--text));font-size:.86em;text-decoration:none}.delete-extra-newline{border:1px solid color-mix(in srgb, var(--delete-accent) 42%, transparent);background:color-mix(in srgb, var(--delete-accent) 10%, transparent);min-width:3.6ch;color:color-mix(in srgb, var(--delete-accent) 72%, var(--text));font-family:var(--f-ui);letter-spacing:.08em;text-align:center;text-shadow:none;text-transform:uppercase;vertical-align:.18em;border-radius:999px;justify-content:center;align-items:center;margin:0 .2ch;padding:0 .7ch;font-size:.48em;font-weight:600;line-height:1.6;display:inline-flex}.line-numbers{z-index:2;color:color-mix(in srgb, var(--sub) 62%, transparent);font-family:var(--f-mono);pointer-events:none;-webkit-user-select:none;user-select:none;flex-direction:column;font-size:19px;line-height:1.75;display:flex;position:absolute;top:8px;bottom:8px;left:18px}.line-numbers span{text-align:right;min-width:2ch}.edit-block{z-index:1;min-height:56px;max-height:210px;color:var(--text);cursor:text;font-family:var(--f-mono);letter-spacing:-.01em;white-space:pre-wrap;word-break:break-word;background:0 0;border:0;border-radius:0;outline:none;padding:8px 20px;font-size:19px;font-weight:400;line-height:1.75;position:relative;overflow-y:auto}.edit-block.syntax-source{color:#0000;caret-color:var(--accent)}.edit-block:focus{outline:none}.edit-block:focus-visible{box-shadow:none}.edit-block.native-caret{caret-color:var(--accent)}.coding-view .target-block,.coding-view .edit-block{tab-size:2}.coding-view.difficulty-multiline .target-panel{min-height:196px;overflow:visible}.coding-view.difficulty-multiline .target-block{max-height:none;padding-bottom:8px;-webkit-mask-image:none;mask-image:none}.coding-view .active-segment{border:1px solid color-mix(in srgb, var(--accent) 42%, var(--border));border-radius:var(--r);background:color-mix(in srgb, var(--bg) 88%, #000);overflow:hidden;box-shadow:0 18px 42px #0000001f}.coding-view .edit-block{color:color-mix(in srgb, var(--text) 82%, var(--success))}.coding-view .edit-block.syntax-source{color:#0000;padding-left:58px}.coding-view .syntax-overlay{padding-left:58px}.coding-view .indent-hint-overlay{padding-left:48px}.coding-view .deletion-hint-overlay{padding-left:58px}.coding-view .active-segment:before{border-top:2px solid var(--accent);border-bottom:2px solid var(--accent);border-left:3px solid var(--accent);border-radius:var(--r) 0 0 var(--r);width:18px;height:100%;box-shadow:-8px 0 22px color-mix(in srgb, var(--accent) 12%, transparent), inset 10px 0 16px color-mix(in srgb, var(--accent) 7%, transparent);opacity:.92;background:0 0;top:0;bottom:auto;left:-1px}.coding-view .editor-flow.matched .active-segment{animation:consoleSuccessPulse 1.1s var(--ease) both}.coding-view .editor-flow.matched .active-segment:before{animation:consoleBracketReset 1.1s var(--ease) both}.coding-view .editor-flow.matched .active-segment:after{display:none}.syntax-keyword{color:#86a8ff}.syntax-string{color:var(--success)}.syntax-number{color:#d6a15f}.syntax-punctuation{color:var(--accent)}.syntax-name{color:color-mix(in srgb, var(--text) 88%, #86a8ff)}.syntax-plain{color:var(--text)}.edit-block.diff-active{color:#0000}.diff-overlay{border-radius:var(--r);color:var(--text);font-family:var(--f-mono);letter-spacing:-.01em;pointer-events:none;white-space:pre-wrap;word-break:break-word;background:#e0757509;padding:8px 20px;font-size:19px;line-height:1.75;position:absolute;inset:1px;overflow:hidden}.diff-wrong{color:var(--error);background:#e075752b;border-radius:3px;box-shadow:0 0 0 1px #e0757538}.cta-row,.results-actions{align-items:center;gap:18px;display:flex}.results-actions :where(button,a){align-items:center;gap:7px;display:inline-flex}.results-actions .btn-ghost{border-radius:var(--r);padding:9px 14px;text-decoration:none}.results-actions .btn-ghost:focus-visible,.results-actions .btn-ghost:hover{background:var(--bg-sub);color:var(--text)}.share-preview-panel{border-top:1px solid color-mix(in srgb, var(--border) 82%, transparent);grid-template-columns:1fr;align-items:start;gap:14px;padding-top:14px;display:grid;overflow:hidden}.share-card-dialog{width:min(100vw - 32px,720px)}.share-preview-image{min-width:0}.share-preview-image img{border-radius:var(--r);width:100%;height:auto;display:block;box-shadow:0 16px 36px #00000029}.share-preview-loading{aspect-ratio:16/9;border-radius:var(--r);background:var(--bg-sub);color:var(--sub);font-family:var(--f-mono);place-items:center;font-size:13px;display:grid}.share-preview-actions{justify-content:flex-start;align-items:center;gap:12px;padding-bottom:2px;display:inline-flex}.share-preview-actions .btn-ghost{border-radius:var(--r);padding:8px 10px}.share-preview-actions .btn-ghost:hover:not(:disabled),.share-preview-actions .btn-ghost:focus-visible{background:var(--bg-sub);color:var(--text)}.cta-row span{color:var(--sub);font-size:12px}.btn-primary{border-radius:var(--r);background:var(--accent);color:var(--bg);cursor:pointer;border:0;align-items:center;gap:8px;padding:9px 18px;font-size:13px;font-weight:500;transition:opacity .15s,transform 80ms;display:inline-flex}.btn-primary:hover:not(:disabled){opacity:.84}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-ghost{color:var(--sub);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;transition:color .15s}.btn-ghost:hover{color:var(--text)}.drill-safety{min-height:34px;color:var(--sub);opacity:.76;animation:drillSafetyIn .32s var(--ease) both;justify-content:flex-start;align-items:center;margin-top:2px;padding-left:20px;font-size:12px;display:flex}.drill-safety .btn-ghost{border-radius:6px;align-items:center;gap:6px;margin-left:0;padding:4px 8px 4px 0;display:inline-flex}.drill-safety .shortcut-hint{opacity:.58}.drill-safety .btn-ghost:hover,.drill-safety .btn-ghost:focus-visible{color:var(--accent);background:0 0}footer{border-top:1px solid var(--border);color:var(--sub);opacity:.55;justify-content:center;align-items:center;gap:18px;padding:14px 0 22px;font-size:12px;display:flex}.footer-reset-indicator{align-items:center;gap:6px;display:inline-flex}.footer-keyboard{color:var(--sub);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:12px;display:inline-flex}.footer-keyboard:hover:not(:disabled){color:var(--text)}.danger-footer-action{color:var(--accent)}.kbd{color:var(--sub);background:#ffffff12;border-radius:4px;padding:2px 6px;font-size:11px}[data-theme=light] .kbd{background:#3a353012}.settings-panel{z-index:90;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:80;background:#1c1a17cc;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}[data-theme=light] .settings-panel{background:#f0ebe3c7}.settings-card{border:1px solid var(--border);background:var(--bg);border-radius:12px;width:min(100vw - 32px,560px);max-height:min(720px,100vh - 32px);padding:28px 32px;overflow-y:auto;box-shadow:0 6px 30px #0006}.settings-card h2{color:var(--text);margin:0 0 18px;font-size:18px;font-weight:500}.panel-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.panel-heading h2{margin:0}.setting-group{border:0;grid-template-columns:132px 1fr;align-items:center;gap:16px;min-width:0;margin:12px 0;padding:0;display:grid}.setting-group>legend{float:left;width:132px;color:var(--sub);font-size:12px}.setting-group>div{flex-wrap:wrap;gap:6px;display:flex}.opt-btn{background:var(--bg-sub);color:var(--sub);cursor:pointer;border:0;border-radius:6px;padding:6px 13px;font-size:13px;transition:color .15s,background .15s}.opt-btn:hover{color:var(--text);background:var(--bg-card)}.opt-btn.active{color:var(--accent);background:var(--accent-bg)}.color-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;display:grid}.color-field{background:var(--bg-sub);min-width:0;color:var(--sub);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-size:12px;display:flex}.color-field span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.color-field input{background:0 0;border:0;border-radius:4px;flex:none;width:28px;height:24px;padding:0}.close-cue{align-items:center;gap:7px;margin:20px auto 0;display:inline-flex}.history-card{width:min(100vw - 32px,760px);max-height:min(660px,100vh - 32px);padding:24px 28px;overflow:hidden}.history-card-expanded{overflow-y:auto}.history-heading{align-items:start;margin-bottom:14px}.history-heading-actions{white-space:nowrap;justify-content:flex-end;align-items:center;gap:12px;display:inline-flex}.history-filters{border-bottom:1px solid color-mix(in srgb, var(--border) 86%, transparent);align-items:center;gap:10px;margin-bottom:12px;padding-bottom:12px;display:flex}.history-filter-select{border-radius:var(--r);background:color-mix(in srgb, var(--bg-sub) 66%, transparent);flex:1 1 0;grid-template-columns:auto minmax(150px,1fr);align-items:center;gap:8px;min-width:0;padding:7px 10px;display:grid;position:relative}.history-filter-select span{color:var(--sub);letter-spacing:.08em;opacity:.72;text-transform:uppercase;font-size:11px}.history-filter-select select{width:100%;min-width:0;color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0;outline:none;font-size:13px}.history-filter-select select:focus-visible{color:var(--text)}.history-meta,.empty-state{color:var(--sub);margin:3px 0 0;font-size:12px}.history-bests{min-height:30px;color:var(--sub);flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 12px;font-size:12px;display:flex}.history-bests>span{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase}.history-bests em{font-style:normal}.history-best-chip{border:1px solid var(--border);background:var(--bg-sub);color:var(--sub);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:4px 8px;display:inline-flex}.history-best-chip strong{color:var(--accent);font-family:var(--f-mono);font-weight:500}.history-layout{grid-template-columns:minmax(180px,.72fr) minmax(0,1.28fr);align-items:start;gap:14px;display:grid}.history-list{flex-direction:column;gap:5px;min-height:0;display:flex}.history-row{border-radius:var(--r);background:var(--bg-sub);color:var(--sub);cursor:pointer;text-align:left;border:0;gap:2px;padding:7px 10px;display:grid}.history-row strong{color:var(--text);font-family:var(--f-mono);font-size:15px;font-weight:500;line-height:1.15}.history-row span{font-size:11px;line-height:1.25}.history-row.active{background:var(--accent-bg);color:var(--accent)}.history-show-more{border-radius:var(--r);color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:10px;padding:7px 10px;font-size:12px;display:flex}.history-show-more:hover,.history-show-more:focus-visible{background:var(--accent-bg)}.history-show-more span{color:var(--sub)}.history-detail{border-left:1px solid color-mix(in srgb, var(--border) 82%, transparent);min-width:0;color:var(--sub);background:0 0;border-radius:0;align-content:start;gap:9px;padding:2px 0 0 14px;display:grid}.history-detail-summary{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:14px;display:grid}.history-detail-summary strong{color:var(--accent);font-family:var(--f-mono);font-size:22px;font-weight:500;line-height:1}.history-detail-summary div{gap:1px;min-width:0;display:grid}.history-detail span,.history-detail-summary span{font-size:12px}.history-detail pre{border-radius:var(--r);background:var(--bg-card);max-height:96px;color:var(--text);font-family:var(--f-mono);white-space:pre-wrap;margin:0;padding:10px;font-size:12px;line-height:1.45;overflow:auto}.history-share-action{width:fit-content;margin-top:2px}.history-share-preview{border-radius:var(--r);overflow:hidden}.history-share-preview .share-card{grid-template-columns:1fr;gap:10px;min-height:auto;padding:12px}.history-share-preview .share-left{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;display:grid}.history-share-preview .share-left strong{font-size:22px}.history-share-preview .share-metrics,.history-share-preview .share-right{gap:10px}.history-share-preview .share-stat strong{font-size:18px}.danger-action{color:var(--sub)}.shortcut-map-card{width:min(100vw - 32px,920px)}.shortcut-map-layout{grid-template-columns:minmax(190px,.55fr) minmax(0,1.45fr);gap:18px;display:grid}.shortcut-command-list{align-content:start;gap:6px;max-height:420px;display:grid;overflow:auto}.mock-keyboard-wrap{align-content:start;gap:12px;min-width:0;display:grid}.selected-shortcut{border-radius:var(--r);background:var(--accent-bg);color:var(--accent);font-family:var(--f-mono);margin:0;padding:10px 12px;font-size:14px}.mock-keyboard{border-radius:var(--r);background:var(--bg-sub);flex-direction:column;gap:6px;padding:12px;display:flex}.keyboard-row{grid-template-columns:repeat(15,minmax(0,1fr));gap:5px;display:grid}.mock-keyboard span{border:1px solid var(--border);background:var(--bg-card);min-height:30px;color:var(--sub);font-family:var(--f-ui);text-align:center;border-radius:6px;padding:6px 4px;font-size:10px}.mock-keyboard .key-backspace,.mock-keyboard .key-tab,.mock-keyboard .key-caps,.mock-keyboard .key-enter,.mock-keyboard .key-shift{grid-column:span 2}.mock-keyboard .key-space{grid-column:span 5}.mock-keyboard span.lit{border-color:var(--accent);background:var(--accent-bg);color:var(--accent);box-shadow:0 0 18px var(--focus-ring-soft)}.results-view{outline:none;flex-direction:column;gap:14px;min-width:0;display:flex}.results-view:focus,.results-view:focus-visible{outline:none}.results-top{grid-template-columns:minmax(220px,.58fr) minmax(0,1.42fr);align-items:stretch;gap:36px;min-width:0;margin-bottom:4px;display:grid}.results-hero{min-width:0}.results-tab-slot{display:none}.results-actions .results-tab-coach{justify-content:flex-start;align-items:center;min-height:0;margin-right:10px;display:flex}.results-hero p{color:var(--sub);margin:0;font-size:12px}.results-hero h1{color:var(--accent);font-family:var(--f-mono);letter-spacing:-.04em;margin:0;font-size:44px;font-weight:500;line-height:1.1}.pb-badge{background:var(--accent-bg);color:var(--accent);border-radius:999px;margin-top:6px;padding:3px 9px;font-size:12px;display:inline-block}.results-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;margin:16px 0 4px;display:grid}.results-keystroke-panel{align-content:center;justify-self:end;gap:8px;width:min(68%,430px);min-width:0;padding:8px 0 4px;display:grid;position:relative;overflow:hidden}.results-keystroke-panel:before{content:none}.results-keystroke-heading{color:var(--sub);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:12px;font-size:11px;display:flex}.results-keystroke-heading strong{color:var(--accent);font-family:var(--f-mono);letter-spacing:0;text-transform:none;font-size:12px;font-weight:500}.results-playback-keyboard{flex-direction:column;gap:3px;min-width:0;display:flex}.results-playback-keyboard span{border:1px solid color-mix(in srgb, var(--border) 52%, transparent);min-height:18px;color:color-mix(in srgb, var(--sub) 66%, transparent);font-family:var(--f-ui);text-align:center;background:0 0;border-radius:5px;padding:5px 2px 3px;font-size:8px;line-height:1}.results-playback-keyboard .key-backspace,.results-playback-keyboard .key-tab,.results-playback-keyboard .key-caps,.results-playback-keyboard .key-enter,.results-playback-keyboard .key-shift{grid-column:span 2}.results-playback-keyboard .key-space{grid-column:span 5}.results-playback-keyboard span.lit{animation:playbackKeyPulse var(--playback-duration,6.4s) var(--ease) var(--pulse-delay,0s) infinite}.keystroke-ticker{contain:paint;min-width:0;height:12px;color:color-mix(in srgb, var(--accent) 82%, var(--sub));font-family:var(--f-mono);border-radius:0 999px 999px 0;font-size:10px;line-height:1;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 18px 84%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 18px 84%,#0000 100%)}.keystroke-ticker span{white-space:pre;width:max-content;min-width:100%;animation:keystrokeTicker var(--playback-duration,6.4s) linear infinite;display:block;position:absolute;inset:2px auto auto 0}.results-insights{color:var(--sub);flex-wrap:wrap;gap:7px;font-size:12px;display:flex}.results-insights span{background:var(--bg-sub);border-radius:999px;padding:3px 8px}.stat-card{border-top:1px solid color-mix(in srgb, var(--border) 86%, transparent);background:0 0;border-radius:0;min-width:0;padding:8px 0 0;line-height:1.25}.stat-card strong{color:var(--text);font-family:var(--f-mono);font-size:17px;font-weight:500;line-height:1.15;display:block}.stat-card span{color:var(--sub);font-size:12px;line-height:1.2}.share-card{border-radius:var(--r);background:var(--bg-sub);width:100%;max-width:100%;min-height:212px;color:var(--text);grid-template-columns:minmax(180px,.74fr) minmax(0,1.26fr);gap:34px;padding:24px 28px;display:grid;position:relative;overflow:hidden}.share-card:before{content:"";background:var(--accent);opacity:.52;width:1px;box-shadow:0 0 18px var(--focus-ring-soft);border-radius:999px;position:absolute;inset:12px auto 12px 10px}.share-left{flex-direction:column;justify-content:space-between;min-width:0;padding-left:10px;display:flex}.share-right{align-content:center;gap:18px;min-width:0;display:grid}.share-left strong{color:var(--accent);font-family:var(--f-mono);font-size:38px;font-weight:500;line-height:1}.share-left span,.share-left em{color:var(--sub);font-size:12px;font-style:normal;line-height:1.8}.share-left em{font-weight:500}.share-right p{color:var(--sub);letter-spacing:.07em;text-transform:uppercase;margin:0;font-size:12px}.share-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.share-stat{border-top:1px solid #9f968842;min-width:0;padding-top:12px}.share-stat strong{color:var(--text);font-family:var(--f-mono);font-size:28px;font-weight:500;line-height:1.05;display:block}.share-stat span{color:var(--sub);margin-top:5px;font-size:12px;line-height:1.25;display:block}.share-right small{color:var(--sub);font-size:13px;display:block}.share-card-export{grid-template-columns:210px 1fr;gap:38px;width:640px;min-height:360px;padding:38px 42px}.share-card-export .share-left strong{font-size:54px}.share-card-export .share-left span,.share-card-export .share-left em{font-size:14px}.share-card-export .share-stat strong{font-size:34px}.export-status{min-height:20px;color:var(--error);margin:0;font-size:12px}@keyframes focusLand{0%{box-shadow:0 0 0 1px var(--bg), 0 0 0 1px var(--focus-ring), 0 0 0 var(--focus-ring-soft)}to{box-shadow:0 0 0 1px var(--bg), 0 0 0 3px var(--focus-ring), 0 0 18px var(--focus-ring-soft)}}@keyframes focusShift{0%{box-shadow:0 0 0 1px var(--bg), 0 0 0 1px var(--focus-ring), 0 0 0 var(--focus-ring-soft);transform:translateY(1px)}55%{box-shadow:0 0 0 1px var(--bg), 0 0 0 4px var(--focus-ring), 0 0 22px var(--focus-ring-soft);transform:translateY(0)}to{box-shadow:0 0 0 1px var(--bg), 0 0 0 3px var(--focus-ring), 0 0 18px var(--focus-ring-soft);transform:translateY(0)}}@keyframes tabCoachIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes tabCoachNudge{0%,to{box-shadow:0 10px 28px #0003}45%{box-shadow:0 10px 28px #0003, 0 0 0 3px var(--focus-ring-soft)}}@keyframes targetUpdated{0%{opacity:0;transform:scaleX(0)}18%,70%{opacity:.85;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}@keyframes targetTextSwitch{0%{opacity:0;transform:translateY(2px)}60%{opacity:1;transform:translateY(0)}to{opacity:1;transform:translateY(0)}}@keyframes deletionStrikeIn{0%{opacity:0;text-shadow:none;transform:translateY(1px)}to{opacity:1;text-shadow:0 0 14px color-mix(in srgb, var(--delete-accent) 26%, transparent);transform:translateY(0)}}@keyframes indentHintIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes indentHintPulse{0%,to{filter:brightness();opacity:.74}44%{filter:brightness(1.28);opacity:1}}@keyframes completedLineSettle{0%{color:var(--text);opacity:0;transform:translateY(6px)}48%{color:var(--text);opacity:.86;transform:translateY(0)}to{color:var(--sub);opacity:1;transform:translateY(0)}}@keyframes completedBlockFade{0%{color:var(--text);opacity:.2}45%{color:var(--text);opacity:.82}to{color:var(--sub);opacity:.82}}@keyframes completedMultilineTrail{0%{color:var(--text);opacity:0;transform:translateY(8px)}45%{color:var(--success);opacity:.88;transform:translateY(0)}to{color:color-mix(in srgb, var(--sub) 82%, transparent);opacity:.62;transform:translateY(0)}}@keyframes correctTextPulse{0%{color:var(--text);text-shadow:none}35%{color:color-mix(in srgb, var(--text) 72%, var(--success));text-shadow:0 0 18px color-mix(in srgb, var(--success) 34%, transparent)}to{color:var(--text);text-shadow:none}}@keyframes playbackKeyPulse{0%,13%,to{border-color:color-mix(in srgb, var(--border) 85%, transparent);background:color-mix(in srgb, var(--bg-card) 78%, transparent);color:color-mix(in srgb, var(--sub) 88%, transparent);box-shadow:none;transform:translateY(0)}4%{border-color:color-mix(in srgb, var(--accent) 78%, transparent);background:var(--accent-bg);color:var(--accent);box-shadow:0 0 16px var(--focus-ring-soft);transform:translateY(-1px)}}@keyframes keystrokeTicker{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes completionRailExtend{0%{opacity:0;transform:scaleY(.3)}16%{opacity:1}42%{opacity:1;transform:scaleY(1)}63%{opacity:.95;transform:scaleY(1)}82%{opacity:.72;transform:scaleY(.26)}to{opacity:0;transform:scaleY(.3)}}@keyframes activeRailReset{0%{background:var(--success);opacity:1;transform:scaleY(1);box-shadow:0 0 12px #7db8845c}60%{background:var(--success);opacity:1;transform:scaleY(1);box-shadow:0 0 10px #7db88442}84%{background:var(--accent);opacity:.95;transform:scaleY(1.08);box-shadow:0 0 10px #d4693a33}to{background:var(--accent);opacity:.75;box-shadow:none;transform:scaleY(1)}}@keyframes consoleSuccessPulse{0%{border-color:color-mix(in srgb, var(--accent) 42%, var(--border));box-shadow:0 18px 42px #0000001f}32%{border-color:var(--success);box-shadow:0 0 0 1px color-mix(in srgb, var(--success) 70%, transparent), 0 0 26px color-mix(in srgb, var(--success) 28%, transparent)}72%{border-color:var(--success);box-shadow:0 0 0 1px color-mix(in srgb, var(--success) 46%, transparent), 0 0 18px color-mix(in srgb, var(--success) 18%, transparent)}to{border-color:color-mix(in srgb, var(--accent) 42%, var(--border));box-shadow:0 18px 42px #0000001f}}@keyframes consoleBracketReset{0%{border-color:var(--success);box-shadow:-8px 0 24px color-mix(in srgb, var(--success) 18%, transparent), inset 10px 0 18px color-mix(in srgb, var(--success) 10%, transparent);opacity:1;transform:scaleY(1)}58%{border-color:var(--success);box-shadow:-8px 0 20px color-mix(in srgb, var(--success) 14%, transparent), inset 10px 0 16px color-mix(in srgb, var(--success) 8%, transparent);opacity:1;transform:scaleY(1)}82%{border-color:var(--accent);box-shadow:-8px 0 22px color-mix(in srgb, var(--accent) 14%, transparent), inset 10px 0 16px color-mix(in srgb, var(--accent) 8%, transparent);opacity:.96;transform:scaleY(1.015)}to{border-color:var(--accent);box-shadow:-8px 0 22px color-mix(in srgb, var(--accent) 12%, transparent), inset 10px 0 16px color-mix(in srgb, var(--accent) 7%, transparent);opacity:.92;transform:scaleY(1)}}@keyframes lineReveal{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes lineCrossfade{0%{opacity:0}to{opacity:1}}@keyframes drillLineReveal{0%{opacity:0;transform:translateY(5px)}55%{opacity:.76;transform:translateY(1px)}to{opacity:1;transform:translateY(0)}}@keyframes drillSafetyIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:.82;transform:translateY(0)}}.account-card{width:min(760px,100vw - 32px)}.account-note,.account-status,.account-signin p{color:var(--sub);margin:0;line-height:1.5}.account-grid,.account-signin{gap:18px;display:grid}.account-identity{align-items:center;gap:14px;display:flex}.account-identity div:last-child{gap:4px;display:grid}.account-identity strong{color:var(--text);font-size:1.15rem}.account-identity span,.public-profile-title p,.public-bio,.leaderboard-summary-panel em,.public-stat-grid em,.profile-best-row em{color:var(--sub)}.account-avatar{background:color-mix(in srgb, var(--accent) 18%, transparent);width:48px;height:48px;color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 42%, transparent);font-family:var(--f-mono);border-radius:50%;place-items:center;font-size:1.35rem;display:grid}.account-field{gap:8px;display:grid}.account-field.full{grid-column:1/-1}.account-field span,.leaderboard-filters span{color:var(--sub);letter-spacing:.08em;text-transform:uppercase;font-size:.78rem}.account-field input,.account-field textarea,.leaderboard-filters select{border:1px solid color-mix(in srgb, var(--sub) 20%, transparent);background:color-mix(in srgb, var(--bg) 84%, transparent);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:12px 14px}.account-field textarea{resize:vertical;min-height:84px}.account-toggles,.account-actions{flex-wrap:wrap;gap:10px;display:flex}.account-submit{justify-self:start}.onboarding-page{min-height:100vh}.auth-nav{border-bottom:1px solid var(--border);justify-content:space-between;min-height:64px;margin-bottom:56px;padding:0 0 20px}.auth-nav>div{align-items:center;gap:18px;display:flex}.onboarding-shell{place-items:center;min-height:calc(100vh - 190px);padding-bottom:72px;display:grid}.onboarding-card{gap:24px;width:min(400px,100%);padding:2px 0;display:grid}.auth-header{gap:8px;display:grid}.auth-header h2{color:var(--text);letter-spacing:-.02em;margin:0;font-size:1.35rem;font-weight:500}.auth-header p,.auth-footnote{color:var(--sub);margin:0;line-height:1.55}.account-signin .btn-primary,.auth-link-button{justify-content:center;align-items:center;width:100%;text-decoration:none;display:inline-flex}.account-signin{gap:16px;display:grid}.auth-mode-toggle{border-radius:var(--r);background:color-mix(in srgb, var(--sub-alt) 45%, transparent);gap:3px;width:fit-content;padding:3px;display:inline-flex}.auth-secondary-action{border:1px solid var(--border);border-radius:var(--r);justify-content:center;width:100%;min-height:38px}.auth-signin-secondary{gap:8px;display:grid}.auth-subtle-action{width:100%;min-height:32px;color:var(--dim);border:0;justify-content:center}.auth-subtle-action:hover:not(:disabled),.auth-subtle-action:focus-visible{color:var(--sub)}.onboarding-profile-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.onboarding-profile-form .full{grid-column:1/-1}.onboarding-profile-form .account-toggles{align-items:center}.onboarding-profile-form textarea{min-height:76px}.auth-actions{gap:12px;display:grid}.auth-actions .btn-ghost{border:1px solid var(--border);border-radius:var(--r);justify-content:center;align-items:center;padding:9px 18px;display:inline-flex}.auth-progress{min-height:44px;color:var(--sub);align-items:center;gap:12px;font-size:.9rem;display:flex}.auth-progress-dot{background:var(--target-accent);width:10px;height:10px;animation:authPulse 1.2s var(--ease) infinite;border-radius:50%}.auth-footnote{border-top:1px solid var(--border);color:var(--dim);padding-top:18px;font-size:.78rem}.settings-route-page{display:block}.settings-page-main{gap:30px;padding:40px 0 56px;display:grid}.settings-page-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:30px;display:flex}.settings-page-head h1{color:var(--text);letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:500}.settings-page-head p,.settings-page-note{color:var(--sub);margin:5px 0 0;font-size:.9rem}.settings-page-grid{gap:0;display:grid}.settings-page-grid .setting-group{border:0;border-bottom:1px solid color-mix(in srgb, var(--sub) 13%, transparent);grid-template-columns:minmax(120px,.42fr) minmax(0,1fr);align-items:start;gap:24px;margin:0;padding:18px 0;display:grid}.settings-page-grid .setting-group>legend{width:auto;color:var(--dim);letter-spacing:.08em;text-transform:uppercase;padding:0;font-size:.75rem}.settings-page-grid .setting-group>div{flex-wrap:wrap;gap:6px;display:flex}.settings-page-grid .opt-btn{min-height:32px}.settings-page-note{color:var(--dim);font-size:.8rem}.public-page{background:var(--bg);width:100%;max-width:900px;min-height:100vh;color:var(--text);margin:0 auto;padding:0 32px 80px}.public-page.onboarding-page{padding-top:42px;padding-bottom:0}.public-app-header{margin-bottom:0}.public-app-header-fallback{animation:publicContentIn .22s var(--ease) both}.public-content-ready{animation:publicContentIn .34s var(--ease) both}.public-skeleton{animation:publicContentIn .2s var(--ease) both}.skeleton-block,.skeleton-table tr,.skeleton-avatar,.skeleton-line{position:relative;overflow:hidden}.skeleton-line{background:color-mix(in srgb, var(--sub) 14%, transparent);vertical-align:middle;border-radius:999px;width:7rem;height:.78rem;display:inline-block}.skeleton-line:after,.skeleton-avatar:after,.skeleton-block:after,.skeleton-table tr:after{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--text) 7%, transparent), transparent);content:"";animation:publicSkeletonSweep 1.7s var(--ease) infinite;position:absolute;inset:0;transform:translate(-110%)}.skeleton-line.tiny{width:2rem}.skeleton-line.small{width:4.6rem}.skeleton-line.medium{width:6.4rem}.skeleton-line.wide{width:min(15rem,100%)}.skeleton-line.name{width:min(13rem,48vw);height:1.35rem}.skeleton-line.metric{border-radius:6px;width:5.8rem;height:1.55rem}.skeleton-avatar{color:color-mix(in srgb, var(--accent) 54%, transparent)}.public-skeleton .filter-btn{background:color-mix(in srgb, var(--sub) 9%, transparent);color:color-mix(in srgb, var(--sub) 62%, transparent)}.public-skeleton .filter-right,.public-skeleton .section-link{color:color-mix(in srgb, var(--dim) 68%, transparent)}.skeleton-table td{height:54px}.skeleton-table th,.skeleton-table td{color:color-mix(in srgb, var(--dim) 72%, transparent)}.public-nav{color:var(--sub);align-items:center;gap:18px;margin-bottom:64px;display:flex}.public-nav a{color:var(--text);text-decoration:none}.public-hero{gap:12px;margin-bottom:34px;display:grid}.public-title-block{gap:12px;margin:72px 0 56px;display:grid}.public-profile-head{border-bottom:1px solid var(--border);grid-template-columns:auto 1fr;align-items:center;gap:20px;padding:48px 0 56px;display:grid}.public-hero p,.public-title-block p,.profile-bests h2,.public-section-title span,.leaderboard-header-row,.profile-best-header{color:var(--sub);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.78rem}.public-hero h1,.public-title-block h1,.public-profile-title h1{color:var(--text);letter-spacing:0;margin:0;font-size:clamp(2rem,4vw,2.8rem)}.public-avatar{width:58px;height:58px;font-size:1.25rem}.public-profile-title{gap:8px;display:grid}.public-profile-title p,.public-bio{margin:0;line-height:1.45}.public-name-line{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.profile-rank-pill{background:color-mix(in srgb, var(--target-accent) 15%, transparent);color:var(--target-accent);border-radius:999px;padding:5px 9px;font-size:.78rem}.leaderboard-filters{border-top:1px solid var(--border);border-bottom:1px solid var(--border);align-items:center;gap:18px;margin-bottom:42px;padding:18px 0;display:flex}.leaderboard-filters label{align-items:center;gap:8px;display:flex}.leaderboard-filters select{background:var(--sub-alt);width:auto;min-width:128px;color:var(--text);border:0;padding:9px 12px}.leaderboard-updated{color:var(--dim);margin-left:auto}.leaderboard-summary-panel{border:1px solid color-mix(in srgb, var(--sub) 18%, transparent);background:color-mix(in srgb, var(--sub-alt) 68%, transparent);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;margin-bottom:44px;padding:24px 28px;display:grid}.leaderboard-summary-panel>div{gap:7px;display:grid}.leaderboard-summary-panel span{color:var(--sub);letter-spacing:.1em;text-transform:uppercase;font-size:.78rem}.leaderboard-summary-panel strong{color:var(--accent);font-family:var(--f-mono);font-size:1.65rem;font-weight:400}.leaderboard-table,.profile-bests{gap:0;display:grid}.profile-bests{margin-top:54px}.public-section-title{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.profile-best-table{display:grid}.leaderboard-header-row,.leaderboard-row{grid-template-columns:44px minmax(0,1fr) 116px 100px 86px}.profile-best-header,.profile-best-row{grid-template-columns:minmax(0,1fr) 116px 100px 86px}.leaderboard-header-row,.leaderboard-row,.profile-best-header,.profile-best-row{border-bottom:1px solid color-mix(in srgb, var(--sub) 14%, transparent);align-items:center;gap:16px;padding:18px 0;display:grid}.leaderboard-row{color:var(--text);text-decoration:none}.leaderboard-player{align-items:center;gap:12px;display:flex}.leaderboard-avatar{background:color-mix(in srgb, var(--sub) 20%, transparent);width:30px;height:30px;color:var(--sub);border-radius:50%;flex:none;place-items:center;font-size:.82rem;display:grid}.leaderboard-player>span:last-child,.profile-best-row>span:first-child{gap:3px;display:grid}.leaderboard-player em,.leaderboard-rank,.public-stat-grid span,.profile-best-row>span:last-child,.leaderboard-row>span:last-child{color:var(--sub);font-style:normal}.leaderboard-row>strong,.profile-best-row>strong{color:var(--text);font-family:var(--f-mono);font-weight:400}.public-stat-grid{border-bottom:1px solid var(--border);grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:34px 0;display:grid}.public-stat-grid>div,.profile-best-row{gap:8px;display:grid}.public-stat-grid>div{border-left:1px solid color-mix(in srgb, var(--sub) 18%, transparent);padding:0 28px}.public-stat-grid>div:first-child{border-left:0;padding-left:0}.public-stat-grid strong,.profile-best-row strong{color:var(--accent);font-family:var(--f-mono);font-size:1.75rem;font-weight:400}.public-stat-grid em,.profile-best-row em{font-style:normal}.profile-main{flex-direction:column;gap:40px;padding:40px 0 48px;display:flex}.profile-identity{align-items:center;gap:20px;display:flex}.profile-signout{color:var(--sub);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;margin-left:auto;padding:8px 10px;font-size:.9rem;transition:background-color .18s,color .18s,opacity .18s}.profile-signout:hover:not(:disabled),.profile-signout:focus-visible{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent)}.profile-signout:disabled{cursor:default;opacity:.55}.avatar{border:1px solid color-mix(in srgb, var(--accent) 28%, transparent);background:color-mix(in srgb, var(--accent) 13%, transparent);width:52px;height:52px;color:var(--accent);font-family:var(--f-mono);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;font-weight:500;display:flex}.identity-text{flex-direction:column;gap:3px;display:flex}.identity-name{color:var(--text);letter-spacing:-.02em;font-size:1.35rem;font-weight:500}.identity-meta{color:var(--sub);font-size:.9rem}.identity-badge{background:color-mix(in srgb, var(--target-accent) 12%, transparent);color:var(--target-accent);vertical-align:middle;border-radius:999px;align-items:center;margin-left:8px;padding:2px 9px;font-size:.72rem;font-weight:500;display:inline-flex}.pb-strip{border-top:1px solid var(--border);border-bottom:1px solid var(--border);gap:0;padding:20px 0;display:flex}.pb-item{border-right:1px solid var(--border);flex-direction:column;flex:1;gap:5px;margin-right:24px;padding-right:24px;display:flex}.pb-item:last-child{border-right:0;margin-right:0;padding-right:0}.pb-label,.my-rank-label{color:var(--dim);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem}.pb-val{color:var(--accent);font-family:var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.85rem;font-weight:400;line-height:1}.pb-sub,.my-rank-sub{color:var(--sub);font-size:.8rem}.section-head{justify-content:space-between;align-items:baseline;margin-bottom:16px;display:flex}.section-title{color:var(--sub);letter-spacing:.08em;text-transform:uppercase;font-size:.85rem;font-weight:500}.section-link{color:var(--dim);font-size:.8rem}.runs-table,.lb-table{border-collapse:collapse;width:100%}.runs-table th,.lb-table th{border-bottom:1px solid var(--border);color:var(--dim);letter-spacing:.08em;text-align:left;text-transform:uppercase;padding:0 0 10px;font-size:.72rem;font-weight:500}.runs-table th:not(:first-child),.runs-table td:not(:first-child),.lb-table th:not(:first-child):not(:nth-child(2)),.lb-table td:not(:first-child):not(:nth-child(2)){text-align:right}.runs-table td,.lb-table td{border-bottom:1px solid var(--border);color:var(--sub);vertical-align:middle;padding:14px 0;font-size:.88rem}.runs-table tr:last-child td,.lb-table tr:last-child td{border-bottom:0}.run-time,.lb-time{color:var(--text);font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:1rem;font-weight:400}.run-mode{color:var(--sub);font-size:.88rem}.run-meta{color:var(--dim);font-size:.8rem}.run-pb{background:color-mix(in srgb, var(--accent) 13%, transparent);color:var(--accent);vertical-align:middle;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:.65rem;font-weight:500;display:inline-flex}.lb-main{flex-direction:column;gap:32px;padding:40px 0 48px;display:flex}.lb-header{justify-content:space-between;align-items:flex-end;display:flex}.lb-title{color:var(--text);letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:500}.lb-sub{color:var(--sub);margin:4px 0 0;font-size:.9rem}.filter-row{border-top:1px solid var(--border);border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:12px 0;display:flex}.filter-group{align-items:center;gap:4px;animation:.18s both leaderboardContentIn;display:flex}.difficulty-filter-group{min-width:144px}.parts-filter-group{min-width:190px}.mode-filter-group{min-width:230px}.filter-btn{color:var(--sub);border-radius:6px;padding:4px 10px;font-size:.8rem;text-decoration:none;transition:color .18s,background .18s,transform .18s}.filter-btn:hover{color:var(--text);background:var(--sub-alt);transform:translateY(-1px)}.filter-btn.active{color:var(--accent);background:color-mix(in srgb, var(--accent) 13%, transparent)}.filter-sep{background:var(--border);width:1px;height:14px;margin:0 4px}.filter-right{color:var(--dim);margin-left:auto;font-size:.8rem}.my-rank-bar{border:1px solid color-mix(in srgb, var(--accent) 18%, var(--border));border-radius:var(--r);background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 8%, transparent), transparent 34%), color-mix(in srgb, var(--panel) 86%, var(--sub-alt));box-shadow:inset 0 1px 0 color-mix(in srgb, var(--text) 6%, transparent);justify-content:space-between;align-items:center;padding:18px 22px;animation:.2s both leaderboardContentIn;display:flex}.my-rank-left,.my-rank-right{flex-direction:column;gap:3px;display:flex}.my-rank-right{align-items:flex-end}.my-rank-val,.my-rank-time{color:var(--accent);font-family:var(--f-mono);letter-spacing:-.02em;font-size:1.55rem;font-weight:400;line-height:1}.my-rank-label{color:color-mix(in srgb, var(--sub) 78%, var(--text))}.my-rank-sub{color:color-mix(in srgb, var(--sub) 88%, var(--text))}.leaderboard-results{min-height:260px;animation:.2s both leaderboardContentIn}.rank{min-width:28px;color:var(--dim);font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:.88rem;display:inline-block}.rank.gold{color:#c8a84b}.rank.silver{color:#8a9aa8}.rank.bronze{color:#a07050}@keyframes leaderboardContentIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.lb-user{color:var(--text);align-items:center;gap:10px;text-decoration:none;display:flex}.lb-avatar{background:var(--sub-alt);width:28px;height:28px;color:var(--sub);font-family:var(--f-mono);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.72rem;display:flex}.lb-name{color:var(--text);font-size:.94rem;font-weight:400}@media (max-width:760px){.onboarding-shell{min-height:auto;padding-bottom:48px}.auth-nav{align-items:flex-start;min-height:58px;margin-bottom:42px;padding-bottom:18px}.auth-nav>div{gap:12px}.onboarding-profile-form{grid-template-columns:1fr}.leaderboard-filters{flex-direction:column;align-items:stretch}.leaderboard-updated{margin-left:0}.leaderboard-summary-panel,.public-stat-grid{grid-template-columns:1fr}.public-profile-head{grid-template-columns:1fr;align-items:start;padding-top:28px}.public-stat-grid>div{border-left:0;border-top:1px solid color-mix(in srgb, var(--sub) 14%, transparent);padding:18px 0}.public-stat-grid>div:first-child{border-top:0}.leaderboard-header-row,.profile-best-header{display:none}.leaderboard-row{grid-template-columns:34px minmax(0,1fr)}.leaderboard-row>strong,.leaderboard-row>span:nth-last-child(-n+2){grid-column:2}.profile-best-row{grid-template-columns:minmax(0,1fr) auto}.profile-best-row>span:last-child{grid-column:1/-1}.profile-main,.lb-main{padding-top:32px}.profile-identity,.pb-strip,.my-rank-bar{flex-direction:column;align-items:flex-start}.profile-signout{margin-left:0;padding-left:0}.pb-item{border-right:0;border-bottom:1px solid var(--border);width:100%;margin-right:0;padding:14px 0}.pb-item:last-child{border-bottom:0}.filter-row{flex-direction:column;align-items:flex-start;gap:10px}.filter-group{flex-wrap:wrap}.filter-sep{display:none}.filter-right{margin-left:0}.runs-table,.lb-table{white-space:nowrap;display:block;overflow-x:auto}.my-rank-right{align-items:flex-start}}@keyframes authPulse{0%,to{opacity:.48;transform:scale(.9)}45%{opacity:1;transform:scale(1)}}@keyframes publicContentIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes hintTextIn{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}@keyframes publicSkeletonSweep{0%{transform:translate(-110%)}55%,to{transform:translate(110%)}}@media (max-width:700px){.app-shell,.public-page{padding:0 18px}.public-page.onboarding-page{padding-top:32px}.app-header{align-items:flex-start;gap:10px}nav{flex-wrap:wrap;justify-content:flex-end;max-width:320px}nav .shortcut-hint,.modebar .shortcut-hint{display:none}.modebar,.status-row,.cta-row,footer{flex-direction:column;align-items:flex-start}.mode-controls{flex-direction:column;align-items:flex-start;margin-left:0}.mode-options-shell,.mode-options-shell.open,.mode-options-shell.compact.open{width:min(100%,100vw - 36px)}.results-top,.share-card{grid-template-columns:1fr}.share-card{min-height:0;padding:22px}.share-metrics{grid-template-columns:1fr;gap:12px}.results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.results-playback-keyboard,.results-playback-keyboard .keyboard-row{gap:3px}.results-playback-keyboard span{border-radius:5px;min-height:18px;padding:5px 2px 3px;font-size:8px}.results-actions{flex-wrap:wrap;gap:12px}.share-preview-panel{grid-template-columns:1fr;align-items:start}.share-preview-image img{width:100%}.share-preview-actions{justify-content:flex-start}.results-actions button{justify-content:center;min-width:0}.share-card{width:100%;min-height:auto}.settings-card{padding:24px 20px}.settings-page-head,.setting-group{grid-template-columns:1fr;gap:8px}.settings-page-head{flex-direction:column;align-items:flex-start}.settings-page-grid .setting-group{grid-template-columns:1fr;gap:10px}.setting-group>legend{float:none;width:auto}.color-grid{grid-template-columns:1fr}.results-hero h1{font-size:40px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
