:root{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;color:#d7d5cf;background:#323437;font-synthesis:none;--bg: #323437;--panel: #2c2e31;--text: #d7d5cf;--muted: #646669;--muted-2: #8a8c8f;--accent: #e2b714;--correct: #7fa650;--present: #c9a23b;--absent: #4a4c4f;--line: #3f4144}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-width:320px;background:var(--bg);color:var(--text)}button,input{font:inherit}button{color:inherit}button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.app-shell{min-height:100vh}.topbar{width:min(980px,calc(100% - 36px));margin:0 auto;min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-size:20px;font-weight:700;letter-spacing:-.05em;display:flex;align-items:center;gap:10px}.brand-dot{width:14px;height:14px;border-radius:3px;background:var(--accent);display:inline-block}.top-stats{display:flex;align-items:center;gap:20px;color:var(--muted);font-size:11px}.top-stats b{color:var(--muted-2);font-weight:500}.sync-state{color:var(--muted);font-size:9px}.top-action{border:0;background:transparent;color:var(--muted-2);padding:4px 0;cursor:pointer;font-size:10px}.top-action:hover:not(:disabled){color:var(--accent)}.top-action:disabled{opacity:.35;cursor:default}main{width:min(980px,calc(100% - 36px));margin:0 auto}.game{width:min(520px,100%);margin:clamp(22px,6vh,70px) auto 50px}.run-controls{width:fit-content;margin:0 auto 34px;padding:8px 10px;border-radius:8px;background:#2c2e31;display:flex;align-items:center;gap:4px}.control-label{color:var(--muted);font-size:10px;letter-spacing:.12em;margin-right:6px}.run-option{border:0;background:transparent;color:var(--muted-2);border-radius:5px;padding:5px 9px;cursor:pointer;font-size:12px}.run-option:hover:not(:disabled),.run-option.active{color:var(--accent);background:#36383b}.run-option:disabled{cursor:default;opacity:.45}.hud{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:16px}.progress-copy{display:flex;flex-direction:column;gap:5px}.progress-copy .control-label{margin:0}.progress-copy strong{font-size:20px;font-weight:500;color:var(--text)}.progress-copy small{color:var(--muted);font-size:12px;font-weight:400}.timer{font-size:clamp(38px,9vw,58px);color:var(--text);line-height:.9;letter-spacing:-.07em;font-variant-numeric:tabular-nums}.ghost-action{justify-self:end;border:0;background:transparent;color:var(--muted);padding:3px 0;cursor:pointer;font-size:11px}.ghost-action:hover{color:var(--text)}.progress-line{height:2px;background:#3b3d40;margin:15px 0 34px;overflow:hidden}.progress-line span{display:block;height:100%;background:var(--accent);transition:width .16s ease}.board{width:min(330px,82vw);margin:0 auto 24px;display:grid;gap:5px}.board-row{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.tile{aspect-ratio:1;border:2px solid #4a4c4f;display:grid;place-items:center;color:#eceae4;font-size:clamp(22px,6vw,30px);font-weight:700;text-transform:uppercase;transition:transform .08s ease,background .12s ease,border-color .12s ease}.tile:not(:empty){border-color:#626467}.tile.correct{background:var(--correct);border-color:var(--correct);color:#f4f2eb}.tile.present{background:var(--present);border-color:var(--present);color:#f4f2eb}.tile.absent{background:var(--absent);border-color:var(--absent);color:#c8c6c0}.status-line{min-height:20px;width:min(420px,100%);margin:0 auto 12px;display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.keyboard{width:min(480px,100%);margin:0 auto;display:grid;gap:6px}.keyboard-row{display:flex;justify-content:center;gap:5px}.key{border:0;border-radius:4px;height:42px;min-width:31px;flex:1;max-width:42px;background:#4a4c4f;color:#d6d4ce;font-size:11px;font-weight:600;cursor:pointer;transition:transform .05s ease,filter .1s ease}.key:hover:not(:disabled){filter:brightness(1.12)}.key:active:not(:disabled){transform:translateY(1px)}.key-wide{max-width:65px;min-width:55px;font-size:9px}.key-correct{background:var(--correct);color:#fff}.key-present{background:var(--present);color:#fff}.key-absent{background:#3c3e40;color:#7c7e81}.foot-metrics{width:min(420px,100%);margin:20px auto 0;padding-top:13px;border-top:1px solid var(--line);display:flex;gap:22px;color:var(--muted);font-size:10px}.foot-metrics b{color:var(--muted-2);font-weight:500}.foot-metrics button{margin-left:auto;padding:0;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:10px}.foot-metrics button:hover:not(:disabled){color:#b96f6f}.foot-metrics button:disabled{opacity:.3;cursor:default}.transition{width:min(420px,100%);min-height:390px;margin:0 auto;display:grid;grid-template-columns:auto 1fr;align-content:center;align-items:center;gap:18px}.transition-mark{width:46px;height:46px;border:2px solid #a85d5d;color:#c97777;display:grid;place-items:center;font-size:24px}.transition-mark.solved{border-color:var(--correct);color:var(--correct)}.transition div:nth-child(2){display:grid;gap:3px}.transition span{color:var(--muted);font-size:10px;letter-spacing:.12em}.transition strong{font-size:28px;letter-spacing:.08em}.transition button{grid-column:2;justify-self:start;border:0;background:transparent;color:var(--accent);padding:0;cursor:pointer;font-size:12px}kbd{border:1px solid #525457;border-radius:3px;color:var(--muted-2);padding:2px 4px;font-size:9px}.complete-screen{width:min(620px,100%);margin:clamp(40px,8vh,90px) auto 60px}.complete-kicker{color:var(--accent);font-size:11px;letter-spacing:.16em}.complete-time{margin:10px 0 34px;font-size:clamp(58px,12vw,86px);letter-spacing:-.08em;line-height:1;font-variant-numeric:tabular-nums}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:30px}.summary-grid>div{background:var(--bg);padding:15px;display:grid;gap:8px}.summary-grid span{color:var(--muted);font-size:9px}.summary-grid strong{font-size:16px;font-weight:500}.result-list{border-top:1px solid var(--line)}.result-row{display:grid;grid-template-columns:34px 1fr 60px 85px;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);align-items:center;font-size:11px}.result-row>span{color:var(--muted)}.result-row>span:last-child{text-align:right;color:var(--muted-2)}.result-row b{font-size:12px;letter-spacing:.08em;font-weight:600}.restart{margin-top:26px;border:0;border-radius:5px;background:var(--accent);color:#2c2e31;font-weight:700;padding:10px 14px;cursor:pointer}.restart span{margin-left:20px}.history-section{width:min(980px,100%);margin:0 auto clamp(34px,7vh,72px);padding-top:22px;border-top:1px solid var(--line)}.history-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:20px}.history-heading h2{margin:7px 0 0;font-size:22px;font-weight:500;letter-spacing:-.06em}.history-window{display:flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:5px}.history-window-option{border:0;border-radius:3px;background:transparent;color:var(--muted);padding:6px 10px;cursor:pointer;font-size:10px}.history-window-option:hover:not(:disabled),.history-window-option.active{color:var(--accent);background:#36383b}.history-window-option:disabled{cursor:wait;opacity:.7}.history-summary{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:24px}.history-metric{min-height:72px;display:grid;align-content:center;gap:8px;padding:12px;background:var(--bg)}.history-metric span{color:var(--muted);font-size:9px;white-space:nowrap}.history-metric strong{color:var(--text);font-size:14px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.history-empty,.history-error{color:var(--muted);font-size:11px}.history-error{color:#c97777}.history-table-wrap{overflow-x:auto}.history-table{width:100%;border-collapse:collapse;font-size:10px}.history-table th{color:var(--muted);font-size:9px;font-weight:400;letter-spacing:.08em;text-align:left;text-transform:uppercase}.history-table th,.history-table td{padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.history-table th:first-child,.history-table td:first-child{padding-left:0}.history-table th:last-child,.history-table td:last-child{padding-right:0}.history-table td{color:var(--muted-2)}.history-table td.history-time{color:var(--text);font-variant-numeric:tabular-nums}.history-table td.history-id{color:var(--muted);font-size:9px}.history-footnote{margin:11px 0 0;color:var(--muted);font-size:9px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;padding:20px;display:grid;place-items:center;background:#0c0d0ebd}.account-panel{position:relative;width:min(420px,100%);max-height:min(90vh,720px);overflow-y:auto;border:1px solid #444649;border-radius:8px;background:var(--panel);padding:26px;box-shadow:0 18px 70px #00000047}.account-panel h2{margin:8px 0 18px;font-size:20px;font-weight:500}.account-email{margin:-8px 0 22px;color:var(--muted-2);font-size:12px;overflow-wrap:anywhere}.dialog-close{position:absolute;top:12px;right:14px;border:0;background:transparent;color:var(--muted-2);font-size:24px;cursor:pointer}.account-form{margin-top:17px;display:grid;gap:9px}.account-form label{color:var(--muted-2);font-size:11px}.account-form input,.account-form textarea{width:100%;border:1px solid #4a4c4f;border-radius:4px;background:#25272a;color:var(--text);padding:10px;font-size:12px}.account-form textarea{resize:vertical;line-height:1.6}.account-hint{color:var(--muted);font-size:10px;line-height:1.7}.dialog-primary,.dialog-secondary{width:100%;margin-top:14px;border:1px solid #535558;border-radius:4px;padding:10px 12px;background:transparent;color:var(--text);font-size:11px;cursor:pointer}.dialog-primary{border-color:var(--accent);background:var(--accent);color:#25272a;font-weight:700}.provider-actions{display:grid;gap:8px;margin-top:14px}.provider-actions .dialog-primary,.provider-actions .dialog-secondary{margin-top:0}.dialog-primary:hover:not(:disabled){filter:brightness(1.06)}.dialog-secondary:hover:not(:disabled){border-color:var(--muted-2)}.dialog-primary:disabled,.dialog-secondary:disabled{opacity:.42;cursor:default}.account-message{margin:14px 0 0;color:var(--accent);font-size:10px;line-height:1.6}.race-panel{width:min(460px,100%)}.race-code-label{margin:23px 0 7px;color:var(--muted);font-size:9px;letter-spacing:.14em}.race-code{width:100%;border:1px dashed #55575a;border-radius:5px;background:#282a2d;color:var(--accent);padding:13px;font-size:20px;letter-spacing:.18em;cursor:pointer}.race-code span{margin-left:12px;color:var(--muted);font-size:9px;letter-spacing:0}.race-players{margin-top:18px;border:1px solid var(--line)}.race-player{display:grid;grid-template-columns:1fr auto;gap:7px 14px;padding:13px;font-size:10px}.race-player+.race-player{border-top:1px solid var(--line)}.race-player span,.race-player small{color:var(--muted)}.race-player strong{color:var(--muted-2);font-size:10px;font-weight:500}.race-player small{grid-column:1 / -1}.race-final{margin:18px 0 4px;color:var(--accent);font-size:11px;line-height:1.6}@media(max-width:560px){.topbar{min-height:64px}.brand{font-size:17px}.top-stats{gap:11px;font-size:9px}.top-stats{gap:10px}.top-action{font-size:9px}.game{margin-top:22px}.run-controls{margin-bottom:26px}.hud{grid-template-columns:1fr auto}.ghost-action{display:none}.timer{justify-self:end}.key{height:46px;min-width:0}.key-wide{min-width:50px}.summary-grid{grid-template-columns:1fr}.result-row{grid-template-columns:28px 1fr 45px 65px}.history-heading{align-items:start;flex-direction:column}.history-window{align-self:stretch;justify-content:space-between}.history-window-option{flex:1}.history-summary{grid-template-columns:repeat(2,1fr)}.history-metric:nth-last-child(-n+2){grid-column:1 / -1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}
