/* ODMIANY. App register, zero dependencies. Palette and geometry live here. */
@font-face{font-family:Pixel;src:url('/fonts/PressStart2P-Regular.ttf') format('truetype');font-display:swap}
:root,.dark{--background:#101214;--surface:#191c20;--raised:#22262b;--hover:#2b3036;--foreground:#f1f3ed;--muted:#a6aead;--subtle:#788080;--border:#383e42;--primary:#b7f548;--primary-foreground:#172007;--primary-low:#263717;--cyan:#7edfea;--cyan-low:#19383e;--violet:#c2a8ff;--violet-low:#342b46;--danger:#ff969b;--danger-low:#45292f;--warning:#ffce70;--warning-low:#463a23;--white:#fff;--clear:transparent;--radius:12px;--radius-small:6px;--radius-pill:999px;--shadow:0 7px 0 var(--primary-low);--font-body:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-pixel:"Courier New",ui-monospace,monospace;--ease:cubic-bezier(.2,.7,.3,1)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;overscroll-behavior-y:none;scroll-behavior:smooth}body{margin:0;background:var(--background);color:var(--foreground);font:15px/1.5 var(--font-body);-webkit-tap-highlight-color:var(--clear)}button,input,select,textarea{font:inherit}button,a,label,summary,input{touch-action:manipulation}button,a{color:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--primary);outline-offset:4px}button{border:0}img,svg{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.2}h1{font-size:clamp(28px,4vw,44px);letter-spacing:-1.6px}h2{font-size:22px;letter-spacing:-.7px}h3{font-size:17px}p{color:var(--muted)}small{font-size:12px}.pixel{font-family:var(--font-pixel);font-weight:900;letter-spacing:-.07em}.mono{font-family:var(--font-pixel);font-variant-numeric:tabular-nums}.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}.skip-link{position:fixed;top:-100px;left:16px;z-index:50;background:var(--primary);color:var(--primary-foreground);padding:12px}.skip-link:focus{top:12px}.boot{min-height:100dvh;display:grid;align-content:center;justify-items:center;gap:16px}.boot h1{font-family:var(--font-pixel)}
.app-shell{max-width:1520px;margin:0 auto;min-height:100dvh}.sidebar{display:none}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;padding-top:env(safe-area-inset-top,0px);gap:12px}.brand{display:inline-flex;align-items:center;gap:9px;min-height:44px}.brand-mark{width:32px;height:32px}.brand-word{font-size:21px;letter-spacing:-1.5px;font-weight:900}.brand-sub{display:none}.top-actions{display:flex;gap:8px;align-items:center}.icon-button{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-small)}.icon-button svg{width:20px;height:20px}.icon-button.active{color:var(--primary);border-color:var(--primary)}.player-chip{display:flex;gap:8px;align-items:center;border:1px solid var(--border);padding:4px 10px 4px 5px;background:var(--surface);border-radius:var(--radius-small);min-height:44px;font-size:12px;font-weight:650}.player-chip .avatar{width:28px;height:28px}.app-main{padding:8px 20px calc(100px + env(safe-area-inset-bottom,0px));max-width:1220px;margin:auto;min-width:0}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));background:var(--background);border-top:1px solid var(--border)}.nav-item{display:flex;flex:1;min-height:50px;gap:4px;flex-direction:column;align-items:center;justify-content:center;background:var(--clear);font-size:11px;font-weight:650;color:var(--muted)}.nav-item svg{width:21px;height:21px}.nav-item.current{color:var(--primary)}.offline-line{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--warning);padding:8px 0 12px}.dot{width:6px;height:6px;border-radius:var(--radius-pill);background:var(--primary);display:inline-block;flex-shrink:0}.page-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.page-title p{font-size:13px;margin-top:5px}.eyebrow{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px;letter-spacing:1.5px;font-weight:700;text-transform:uppercase;margin-bottom:10px}.tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:650;padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius-small);color:var(--muted);white-space:nowrap}.tag.lime{border-color:var(--primary-low);background:var(--primary-low);color:var(--primary)}.tag.cyan{border-color:var(--cyan-low);background:var(--cyan-low);color:var(--cyan)}.muted{color:var(--muted)}.small{font-size:12px}.accent{color:var(--primary)}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 20px;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--raised);font-weight:700;font-size:14px;line-height:1.35;transition:background-color 150ms,transform 150ms}.button svg{width:18px;height:18px;flex-shrink:0}.button.primary{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary);box-shadow:var(--shadow)}.button.primary:active{transform:translateY(4px);box-shadow:none}.button.ghost{background:var(--clear)}.button.danger{color:var(--danger);border-color:var(--danger);background:var(--danger-low)}.button.full{width:100%}.button.small-button{padding:10px 12px;font-size:12px;min-height:44px}.text-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;background:var(--clear);color:var(--muted);padding:8px 12px;font-size:12px}.text-button svg{width:16px;height:16px;margin-left:6px}.panel{padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.section-head h2{font-size:17px;letter-spacing:-.3px}.section-head p{font-size:12px}.home-grid{display:grid;gap:24px}.home-primary,.home-aside{display:grid;gap:24px;align-content:start;min-width:0}.home-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.home-heading h1{font-size:clamp(27px,4vw,40px)}.home-heading p{font-size:13px;margin-top:7px}.hero-play{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.world{position:relative;height:185px;background:var(--background);border-bottom:1px solid var(--border);isolation:isolate;overflow:hidden}.world svg{width:100%;height:100%;position:absolute;inset:0}.world-tag{position:absolute;left:16px;top:16px;z-index:1;display:flex;gap:6px;font-family:var(--font-pixel);font-size:10px;letter-spacing:.5px;color:var(--muted)}.world-label{position:absolute;bottom:14px;left:16px;color:var(--muted);font-family:var(--font-pixel);font-size:10px;letter-spacing:1.5px}.world-number{position:absolute;right:16px;top:12px;color:var(--primary);font-family:var(--font-pixel);font-weight:900;font-size:28px;letter-spacing:-2px}.hero-controls{padding:18px}.hero-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.hero-head h2{font-size:22px}.hero-head p{font-size:12px;margin-top:5px}.modes{display:flex;gap:5px;padding:4px;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--background);margin-bottom:16px}.mode{display:flex;flex:1;min-width:0;flex-direction:column;justify-content:center;gap:2px;min-height:51px;padding:6px;background:var(--clear);border-radius:var(--radius-small);color:var(--muted);font-size:12px;font-weight:650}.mode small{font-size:10px;font-weight:400}.mode.selected{background:var(--raised);color:var(--foreground)}.mode-note{display:flex;align-items:center;justify-content:space-between;margin:12px 0 0;font-size:10px;color:var(--muted)}.hero-play .button.primary{font-size:16px;min-height:54px}.resume{display:flex;gap:14px;align-items:center;padding:16px;border:1px solid var(--primary);border-radius:var(--radius);background:var(--primary-low)}.resume>div{min-width:0;flex:1}.resume h3{font-size:15px}.resume p{font-size:12px;margin-top:4px}.stats-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--border);border-radius:var(--radius);padding:16px 0;background:var(--surface)}.stat{padding:0 12px;text-align:center;border-right:1px solid var(--border)}.stat:last-child{border:0}.stat-value{font-family:var(--font-pixel);font-weight:900;font-size:24px;line-height:1.2;letter-spacing:-1px}.stat-label{font-size:10px;color:var(--muted);margin-top:5px}.world-list{display:grid;gap:16px}.chapter{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:11px;color:var(--muted)}.chapter strong{color:var(--foreground);font-size:13px}.chapter-line{height:1px;background:var(--border);flex:1}.levels{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.level{display:flex;align-items:center;gap:7px;flex-direction:column;background:var(--clear);min-width:0;padding:0 0 5px;color:var(--muted)}.level-node{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-family:var(--font-pixel);font-weight:900;font-size:16px;color:var(--foreground);border:1px solid var(--border);background:var(--raised);border-radius:var(--radius-small);position:relative}.level.done .level-node{color:var(--primary);border-color:var(--primary);background:var(--primary-low)}.level-label{font-size:9px;line-height:1.2;max-width:100%;overflow-wrap:anywhere}.level-track{height:3px;background:var(--border);width:30px}.level-track span{display:block;height:100%;background:var(--primary)}.level:hover .level-node{border-color:var(--primary)}.level-cyan .level.done .level-node{color:var(--cyan);border-color:var(--cyan);background:var(--cyan-low)}.progress-head{display:flex;justify-content:space-between;gap:10px;font-size:12px}.progressbar{height:8px;background:var(--border);border-radius:var(--radius-pill);overflow:hidden;margin-top:10px}.progressbar>span{height:100%;display:block;background:var(--primary);min-width:0}.mini-row{display:flex;align-items:center;gap:12px;min-height:66px;border-bottom:1px solid var(--border)}.mini-row:last-child{border:0}.mini-row>div:nth-child(2){flex:1;min-width:0}.mini-row h3{font-size:13px}.mini-row p{font-size:11px;margin-top:3px}.mini-row svg{width:20px;height:20px}.avatar{width:40px;height:40px;display:block;image-rendering:pixelated;flex-shrink:0}.aside-card .pixel{font-size:23px}.aside-card p{font-size:12px;margin-top:8px;line-height:1.6}.aside-card .button{margin-top:16px}.row-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;color:var(--muted);background:var(--raised);border-radius:var(--radius-small)}.quick-guide{display:flex;align-items:flex-start;gap:12px}.quick-guide .row-icon{flex-shrink:0}.quick-guide p{font-size:12px;margin-top:6px}.quick-guide h3{font-size:13px}.install-card{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px dashed var(--border);border-radius:var(--radius)}.install-card>div{flex:1}.install-card h3{font-size:12px}.install-card p{font-size:11px;margin-top:3px}
.game-shell{max-width:760px;margin:auto}.game-top{display:flex;align-items:center;gap:12px;margin-bottom:20px}.game-top .game-label{flex:1}.game-label h1{font-size:17px;letter-spacing:-.5px}.game-label p{font-size:11px;margin-top:3px}.game-stats{display:flex;justify-content:space-between;gap:8px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:12px}.game-stats>span{display:flex;align-items:center;gap:7px}.hearts{display:flex;gap:4px;color:var(--danger)}.hearts svg{width:14px;height:14px;fill:currentColor}.hearts .lost{color:var(--border)}.game-track{display:flex;gap:4px;margin:18px 0 28px}.game-track span{height:5px;background:var(--border);flex:1}.game-track .correct{background:var(--primary)}.game-track .wrong{background:var(--danger)}.game-track .current{background:var(--foreground)}.question-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px}.question-number{font-size:12px;color:var(--muted)}.question-prompt{font-size:clamp(22px,4vw,30px);font-weight:650;letter-spacing:-.7px;line-height:1.35;margin-bottom:20px;overflow-wrap:anywhere}.sentence{padding:20px 18px;background:var(--surface);border-left:3px solid var(--primary);border-radius:0 var(--radius-small) var(--radius-small) 0;font-size:19px;line-height:1.7;margin-bottom:24px}.sentence mark{background:var(--primary-low);color:var(--primary);padding:3px 5px;border-radius:var(--radius-small);font-weight:750}.answer-grid{display:grid;grid-template-columns:1fr;gap:10px}.answer{min-height:62px;width:100%;display:flex;align-items:center;gap:14px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-small);text-align:left;font-size:15px;transition:transform 100ms,background-color 150ms,border-color 150ms}.answer .key{display:flex;align-items:center;justify-content:center;width:28px;height:28px;font-family:var(--font-pixel);font-size:13px;background:var(--raised);border-radius:var(--radius-small);color:var(--muted);flex-shrink:0}.answer:active{transform:translateY(2px)}.answer.correct{border-color:var(--primary);background:var(--primary-low);color:var(--primary)}.answer.wrong{border-color:var(--danger);background:var(--danger-low);color:var(--danger)}.answer.answered:disabled{opacity:1;cursor:default}.answer.answered:not(.correct):not(.wrong){opacity:.55}.answer svg{width:20px;height:20px;margin-left:auto;flex-shrink:0}.feedback{margin-top:20px;border:1px solid var(--border);border-radius:var(--radius);padding:18px;background:var(--surface);animation:enter 180ms var(--ease)}.feedback h3{font-size:17px;color:var(--primary);margin-bottom:8px}.feedback.wrong h3{color:var(--danger)}.feedback p{color:var(--foreground);font-size:14px;line-height:1.7}.feedback .button{margin-top:18px}.keyboard-note{text-align:center;color:var(--muted);font-size:11px;margin-top:20px;display:none}.game-tagline{display:flex;align-items:center;justify-content:space-between;margin-top:18px;color:var(--muted);font-size:10px}.timer{font-variant-numeric:tabular-nums;font-family:var(--font-pixel);font-weight:900;color:var(--warning)}.quiz-animation{animation:enter 180ms var(--ease)}@keyframes enter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.result{max-width:680px;margin:auto}.result-banner{padding:26px 20px;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px}.result-banner .avatar{width:72px;height:72px;margin:0 auto 16px}.result-banner h1{font-size:28px}.score-big{font-family:var(--font-pixel);font-size:70px;letter-spacing:-6px;font-weight:900;color:var(--primary);margin:16px 0 0;line-height:1}.score-label{color:var(--muted);font-size:11px;letter-spacing:1px;margin-top:6px}.result-banner>p{font-size:13px;margin-top:15px}.result-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:24px 0 0}.result-stats strong{font-size:20px;font-family:var(--font-pixel);display:block}.result-stats span{font-size:10px;color:var(--muted)}.result-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.result-actions .button{flex:1}.mistake{padding:16px 0;border-bottom:1px solid var(--border)}.mistake:last-child{border:0}.mistake h3{font-size:14px;line-height:1.5;margin-bottom:8px}.mistake p{font-size:12px;line-height:1.7;margin-top:8px}.mistake .right-answer{color:var(--primary);font-size:13px}.mistake .wrong-answer{color:var(--danger);font-size:12px;text-decoration:line-through}
.search-wrap{display:flex;align-items:center;gap:10px;padding:0 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-small);margin-bottom:20px}.search-wrap svg{width:20px;height:20px;color:var(--muted)}.search-wrap input{width:100%;min-width:0;background:var(--clear);border:0;color:var(--foreground);height:48px;font-size:16px}.codex-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:22px}.codex-summary .panel{padding:16px}.codex-summary strong{display:block;font-family:var(--font-pixel);font-size:28px}.codex-summary h3{font-size:14px;margin-top:4px}.codex-summary p{font-size:11px;margin-top:5px}.codex-summary>div:first-child strong{color:var(--primary)}.codex-summary>div:last-child strong{color:var(--cyan)}.codex-grid{display:grid;gap:10px}.codex-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.codex-card summary{display:flex;gap:12px;align-items:center;min-height:76px;padding:14px 16px;cursor:pointer;list-style:none}.codex-card summary::-webkit-details-marker{display:none}.codex-card summary .level-node{width:40px;height:40px;flex-shrink:0}.codex-card summary>div:nth-child(2){flex:1;min-width:0}.codex-card h2{font-size:15px;letter-spacing:0}.codex-card summary p{font-size:11px;margin-top:4px}.codex-card summary svg{width:18px;height:18px;color:var(--muted);transition:transform 150ms}.codex-card[open] summary svg{transform:rotate(90deg)}.codex-body{padding:0 16px 18px}.codex-body>p{font-size:13px;line-height:1.75;color:var(--foreground);margin:0 0 14px}.example-list{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.example{padding:6px 9px;font-size:12px;background:var(--raised);border-radius:var(--radius-small)}.trap{padding:12px;background:var(--background);border-radius:var(--radius-small);font-size:12px;color:var(--muted);margin-bottom:8px;line-height:1.6}.trap strong{color:var(--warning)}.codex-body .button{margin-top:8px}.sources{margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.sources h3{font-size:13px}.sources p{font-size:11px;line-height:1.7;margin-top:8px}.sources a{color:var(--foreground);text-decoration:underline;display:inline-flex;align-items:center;min-height:44px;margin-right:10px}
.leaderboard-list{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.leader-row{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border);min-height:76px;width:100%;text-align:left;background:var(--clear)}.leader-row:last-child{border:0}.leader-row:hover{background:var(--raised)}.rank{font:700 16px var(--font-pixel);width:23px;color:var(--muted);text-align:center;flex-shrink:0}.leader-row:first-child .rank{color:var(--primary)}.leader-name{flex:1;min-width:0}.leader-name strong{font-size:13px;overflow-wrap:anywhere}.leader-name p{font-size:10px;margin-top:4px}.leader-score{text-align:right;flex-shrink:0}.leader-score strong{font:700 17px var(--font-pixel)}.leader-score p{font-size:10px}.rank-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;font-size:12px;color:var(--muted);gap:8px}.empty{text-align:center;padding:36px 20px;border:1px dashed var(--border);border-radius:var(--radius)}.empty .avatar{margin:0 auto 18px;width:60px;height:60px;opacity:.6}.empty h2{font-size:21px}.empty p{font-size:13px;line-height:1.7;max-width:420px;margin:12px auto 20px}.profile-top{display:flex;align-items:center;gap:16px;margin-bottom:24px}.profile-top .avatar{width:72px;height:72px}.profile-top h1{font-size:25px;letter-spacing:-.7px;overflow-wrap:anywhere}.profile-top p{font-size:12px;margin-top:6px}.profile-top>div{min-width:0}.profile-grid{display:grid;gap:20px}.profile-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.profile-actions .button{flex:1}.setting-row{display:flex;align-items:center;gap:14px;min-height:70px;border-bottom:1px solid var(--border);padding:12px 0}.setting-row:last-child{border:0}.setting-row>div:first-child{flex:1;min-width:0}.setting-row h3{font-size:13px}.setting-row p{font-size:11px;margin-top:4px}.toggle{width:52px;height:44px;background:var(--clear);position:relative;flex-shrink:0}.toggle:before{content:"";position:absolute;top:9px;left:0;width:52px;height:26px;border-radius:var(--radius-pill);background:var(--border)}.toggle:after{content:"";position:absolute;top:13px;left:4px;width:18px;height:18px;border-radius:var(--radius-pill);background:var(--foreground);transition:transform 150ms}.toggle.on:before{background:var(--primary)}.toggle.on:after{transform:translateX(26px);background:var(--primary-foreground)}.history-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);font-size:12px}.history-row:last-child{border:0}.history-row p{font-size:11px;margin-top:3px}.history-row>div:last-child{text-align:right}.mastery-row{padding:12px 0;border-bottom:1px solid var(--border)}.mastery-row:last-child{border:0}.mastery-row .progress-head{font-size:12px}.mastery-row .progressbar{height:5px}.mastery-row p{font-size:10px;margin-top:6px}.danger-zone{margin-top:8px;padding-top:16px;border-top:1px solid var(--border)}.danger-zone .text-button{color:var(--danger);padding-left:0}.guest-profile{max-width:600px;margin:auto}.guest-profile .panel{margin-bottom:20px}.guest-profile h1{margin-bottom:12px}.guest-profile p{font-size:13px;line-height:1.7}.guest-profile .avatar{width:80px;height:80px;margin-bottom:20px}.privacy-copy{max-width:720px}.privacy-copy h2{font-size:19px;margin-top:26px;margin-bottom:10px}.privacy-copy p,.privacy-copy li{font-size:13px;line-height:1.8;color:var(--muted)}.privacy-copy ul{padding-left:20px}.privacy-copy .button{margin-top:24px}
dialog{border:1px solid var(--border);background:var(--surface);color:var(--foreground);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:540px;max-height:90dvh;padding:0;margin:auto auto 0;box-shadow:none;overscroll-behavior:contain}dialog::backdrop{background:var(--background);opacity:.8}.dialog-inner{padding:24px 20px calc(24px + env(safe-area-inset-bottom,0px));overflow-y:auto}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dialog-head h2{font-size:22px}.dialog-inner>p{font-size:13px;line-height:1.7;margin-bottom:18px}.avatar-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:20px 0}.avatar-choice{display:flex;align-items:center;justify-content:center;min-height:68px;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--background)}.avatar-choice.selected{border-color:var(--primary);background:var(--primary-low)}.avatar-choice .avatar{width:44px;height:44px}.consent-label{display:flex;align-items:flex-start;gap:12px;min-height:44px;margin:16px 0 20px;font-size:12px;line-height:1.7;color:var(--muted)}.consent-label input{width:20px;height:20px;margin:3px 0 0;accent-color:var(--primary);flex-shrink:0;font-size:16px}.field-label{display:block;font-size:12px;margin-bottom:8px}.field{width:100%;min-height:50px;background:var(--background);border:1px solid var(--border);border-radius:var(--radius-small);color:var(--foreground);padding:12px;font-size:16px;margin-bottom:14px}.form-error{color:var(--danger);font-size:12px;line-height:1.5;margin:10px 0;min-height:0}.dialog-inner .button+.button{margin-top:10px}.recovery-code{background:var(--background);border:1px dashed var(--primary);border-radius:var(--radius-small);padding:20px 12px;font-family:var(--font-pixel);font-size:19px;font-weight:700;letter-spacing:1px;text-align:center;overflow-wrap:anywhere;margin:16px 0}.install-steps{display:grid;gap:16px;margin:24px 0}.install-steps h3{font-size:14px;margin-bottom:6px}.install-steps p{font-size:12px;line-height:1.7}.install-steps kbd{padding:3px 5px;background:var(--raised);border:1px solid var(--border);border-radius:var(--radius-small)}#toast{position:fixed;bottom:calc(88px + env(safe-area-inset-bottom,0px));left:20px;right:20px;max-width:460px;margin:auto;z-index:50;background:var(--foreground);color:var(--background);border-radius:var(--radius-small);font-size:13px;padding:12px 16px;opacity:0;pointer-events:none;transform:translateY(10px);transition:transform 180ms,opacity 180ms}#toast.visible{opacity:1;transform:translateY(0)}.hidden{display:none!important}
@media(hover:hover){.button:not(.primary):hover,.icon-button:hover{background:var(--hover)}.answer:not(:disabled):hover{border-color:var(--primary);background:var(--raised)}}
@media(min-width:600px){.app-main{padding-left:28px;padding-right:28px}.topbar{padding-left:28px;padding-right:28px}.world{height:215px}.codex-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.answer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.answer{min-height:80px}.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}dialog{border-radius:var(--radius);margin:auto}.dialog-inner{padding:28px}.keyboard-note{display:block}}
@media(min-width:1000px){.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr)}.sidebar{display:flex;position:sticky;top:0;height:100dvh;flex-direction:column;padding:32px 20px;border-right:1px solid var(--border)}.sidebar .brand{padding-left:9px;margin-bottom:40px}.sidebar .brand-mark{width:35px;height:35px}.sidebar .brand-word{font-size:24px}.sidebar nav{display:grid;gap:8px}.sidebar .nav-item{flex-direction:row;justify-content:flex-start;gap:12px;padding:14px 16px;border-radius:var(--radius-small);font-size:13px}.sidebar .nav-item.current{background:var(--primary-low)}.sidebar-foot{margin-top:auto;padding:20px 10px 0}.sidebar-foot p{font-size:10px;line-height:1.8}.sidebar-foot .pixel{font-size:12px;color:var(--foreground);margin-bottom:10px}.content-shell{min-width:0}.topbar{height:88px;padding:0 36px;border-bottom:1px solid var(--border);margin-bottom:30px}.topbar>.brand{display:none}.brand-sub{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.brand-sub strong{color:var(--foreground);font-weight:500}.app-main{padding:0 36px 44px}.bottom-nav{display:none}.home-grid{grid-template-columns:minmax(0,1.85fr) minmax(260px,1fr);gap:24px}.home-primary{gap:24px}.home-aside{gap:20px}.hero-controls{padding:22px}.world{height:225px}.home-heading{margin-bottom:20px}.home-heading h1{font-size:36px}.home-heading p{font-size:14px}.hero-play .button.primary{min-height:54px}.level-label{font-size:10px}.levels{gap:10px}.level-node{width:50px;height:50px}.level-track{width:38px}.section-head h2{font-size:19px}.panel{padding:22px}.game-shell{padding-top:8px}.game-stats{font-size:14px}.game-track{margin-bottom:32px}.question-prompt{font-size:30px}.sentence{font-size:22px;padding:24px}.answer{font-size:17px}.game-top{margin-bottom:24px}.result{padding-top:6px}.leader-row{padding:16px 22px}.leader-name strong{font-size:15px}.leader-name p{font-size:12px}.leader-row .avatar{width:46px;height:46px}.leader-score strong{font-size:22px}.leader-score p{font-size:11px}.codex-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.codex-card summary{min-height:88px}.codex-card h2{font-size:17px}.codex-card summary p{font-size:12px}.codex-summary{max-width:620px}.codex-summary .panel{display:grid;grid-template-columns:40px 1fr;column-gap:16px}.codex-summary strong{grid-row:span 2;font-size:36px}.codex-summary h3{margin-top:3px}.profile-top h1{font-size:34px}#toast{bottom:24px;left:240px}.page-title{margin-bottom:26px}.page-title h1{font-size:36px}}
@media(max-width:359px){.topbar{padding-left:14px;padding-right:14px}.app-main{padding-left:14px;padding-right:14px}.player-chip .chip-name{display:none}.home-heading h1{font-size:26px}.hero-controls{padding:14px}.world{height:155px}.level-label{font-size:8px}.levels{gap:3px}.level-node{width:40px;height:44px}.game-stats{padding:12px 10px;gap:5px;font-size:11px}.leader-row{gap:8px;padding:12px}.leader-name strong{font-size:11px}.leader-score strong{font-size:15px}.panel{padding:16px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.brand-word{font-family:Pixel,var(--font-pixel);font-size:16px;letter-spacing:-1px}.world-number{font-family:Pixel,var(--font-pixel);font-size:25px;letter-spacing:-2px}.run-arena{position:relative;height:72px;margin:-6px 0 18px;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);overflow:hidden}.arena-ground{position:absolute;left:0;right:0;bottom:12px;height:4px;background:var(--border)}.arena-track{position:absolute;left:0;right:0;bottom:0;height:12px;background:var(--raised)}.arena-player{position:absolute;bottom:16px;left:calc(8px + (100% - 52px)*var(--position));width:32px;height:32px;transition:transform 180ms}.arena-player .avatar{width:32px;height:32px}.arena-player.hit{animation:pixel-jump 420ms steps(5,end)}.arena-player.missed{animation:pixel-bump 250ms steps(3,end)}.arena-flag{position:absolute;bottom:16px;right:12px;width:20px;height:32px;color:var(--primary)}.arena-score{position:absolute;top:9px;left:14px;font:700 10px var(--font-pixel);color:var(--muted);letter-spacing:1px}.arena-score.hit{color:var(--primary);animation:combo-hit 350ms steps(3,end)}.arena-platform{position:absolute;bottom:12px;left:var(--left);height:8px;width:18px;background:var(--border)}.arena-orb{position:absolute;right:20%;top:16px;width:6px;height:6px;background:var(--warning)}@keyframes pixel-jump{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-18px) rotate(10deg)}}@keyframes pixel-bump{0%,100%{transform:translateX(0)}35%{transform:translateX(-6px)}75%{transform:translateX(4px)}}@keyframes combo-hit{0%{transform:scale(1)}50%{transform:scale(1.08)}100%{transform:scale(1)}}
@media(min-width:1000px){.sidebar .brand-word{font-size:16px}.sidebar .brand{gap:7px;padding-left:0}.sidebar .brand-mark{width:28px;height:28px}.run-arena{height:80px}}
@media(max-width:999px){.player-chip .chip-name{display:none}.brand-word{font-size:12px;letter-spacing:-.5px}.brand-mark{width:28px;height:28px}.player-chip{gap:6px;padding-right:8px}.player-chip .mono{font-size:11px}}
@media(max-width:359px){.player-chip .mono{display:none}.player-chip{padding:5px;min-width:44px;justify-content:center}.brand{gap:7px}.brand-word{font-size:11px}}
.game-sound{display:none}
@media(max-width:999px){.app-shell[data-view="game"] .topbar{display:none}.app-shell[data-view="game"] .app-main{padding-top:calc(16px + env(safe-area-inset-top,0px));padding-bottom:calc(28px + env(safe-area-inset-bottom,0px))}.app-shell[data-view="game"]~.bottom-nav{display:none}.game-sound{display:flex}.game-top{gap:8px;margin-bottom:14px}.game-top .tag{font-size:10px;padding:4px 6px}.game-track{margin:14px 0 20px}.run-arena{height:60px}.question-meta{margin-bottom:14px}.question-prompt{font-size:23px;margin-bottom:16px}.sentence{padding:16px;font-size:18px;margin-bottom:18px}.answer{min-height:58px}.answer-grid{gap:8px}}
