@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;650;700&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{--bg:#f7f8f4;--surface:#fff;--ink:#253e35;--muted:#7d8981;--line:#e3e7df;--green:#335e49;--soft:#eaf0e7;--orange:#bf7447;--word:#a8b1a7;--bad:#bc5e53}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px;min-height:100vh}button,a,textarea{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:5px}a{color:inherit;text-decoration:none}header{height:105px;max-width:1440px;margin:auto;padding:0 5.5%;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:45px}.brand{font-size:24px;letter-spacing:-1px;display:flex;align-items:center;font-weight:650;gap:12px}.logo{font-family:Georgia,serif;background:var(--green);color:#fff;border-radius:9px;width:35px;height:35px;display:grid;place-content:center;font-size:32px;position:relative;line-height:1}.logo span{position:absolute;right:5px;bottom:6px;color:#c3d9bb}.beta{font-size:8px;letter-spacing:1px;font-weight:600;align-self:center;margin-left:-5px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:3px 4px}nav{display:flex;gap:29px;height:100%;align-items:center}.nav{height:100%;position:relative;font-size:13px;color:var(--muted)}.nav.active{color:var(--ink)}.nav.active:after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--green)}.upgrade{margin-left:auto;border:1px solid #c8d3c3;border-radius:7px;padding:11px 15px;font-size:12px}.upgrade span{margin-left:18px;color:var(--green)}main{max-width:1140px;margin:auto;padding:0 30px}.intro{text-align:center;padding:65px 0 43px}.eyebrow{font-size:9px;letter-spacing:2px;color:var(--green);font-weight:600;display:inline-flex;align-items:center;gap:8px}.eyebrow i,.status-dot{display:inline-block;width:5px;height:5px;background:#739875;border-radius:50%}h1{font-size:62px;letter-spacing:-3px;font-weight:450;line-height:1.1;margin:22px 0 15px}em{font-family:Georgia,serif;color:var(--green);font-weight:400}p{color:var(--muted);line-height:1.7}.intro p{font-size:14px;margin:0}.test-wrap{border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:0 12px 40px #314c3410;padding:0 30px}.toolbar{display:flex;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line);font-family:'IBM Plex Mono',monospace;font-size:11px;gap:10px}.modes,.durations{display:flex;align-items:center;gap:7px}.toolbar button{padding:7px 10px;border-radius:5px;color:var(--muted);font-size:11px}.toolbar button.selected{background:var(--soft);color:var(--green)}.divider{height:16px;border-left:1px solid var(--line);margin:0 8px}.test-meta{display:flex;justify-content:space-between;align-items:center;padding-top:26px;color:var(--muted);font-size:11px;font-family:'IBM Plex Mono',monospace}.test-meta button{font-size:11px;color:var(--muted);padding:0}.test-meta button span{margin-left:6px}#test-state{margin-left:auto;margin-right:20px;color:#a1a99f}#countdown{font-size:20px;color:var(--green)}#countdown span{font-size:11px;margin-left:2px}#typing-area{position:relative;margin:26px 0 18px;height:158px;overflow:hidden;outline:none;cursor:text}#words{font-family:'IBM Plex Mono',monospace;font-size:26px;line-height:1.95;letter-spacing:.1px;color:var(--word);word-break:normal;overflow-wrap:anywhere;position:relative}#words .word{display:inline-block;white-space:pre;margin-right:.65em}#words .correct{color:var(--ink)}#words .incorrect{color:var(--bad);background:#bc5e5310}#words .caret{border-left:2px solid var(--orange);margin-left:-2px;animation:blink 1s step-end infinite}#words .omitted{border-bottom:1px solid var(--bad)}@keyframes blink{50%{border-color:transparent}}#input{position:absolute;inset:0;width:100%;height:100%;opacity:.001;resize:none;cursor:text;font-size:16px}#focus-hint{position:absolute;inset:0;background:var(--surface);opacity:.92;display:none;place-content:center;font-size:13px;color:var(--muted);pointer-events:none}#typing-area.blurred #focus-hint{display:grid}.test-bottom{border-top:1px solid var(--line);padding:20px 0;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:10px}.start-label{font-size:10px}#restart{font-size:20px;color:var(--green);display:flex;gap:9px;align-items:center}#restart span{font-size:10px}.shortcut{display:flex;align-items:center;gap:5px}kbd{border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:2px 5px;font:9px 'IBM Plex Mono',monospace;color:var(--muted)}.below{display:flex;justify-content:space-between;align-items:center;margin:30px 0 74px;gap:24px}.session-note{display:flex;gap:14px;align-items:center}.tiny-icon{font-size:23px;color:#719168}.session-note strong,.insight-teaser strong{font-size:11px;font-weight:500}.session-note p{font-size:10px;margin:5px 0 0}.insight-teaser{display:flex;gap:14px;align-items:center;text-align:left;background:#eaf0e4;border:1px solid #e0e7da;border-radius:9px;padding:18px 20px;width:405px}.spark{font-size:28px;color:#68815a}.insight-teaser small{display:block;color:#7b8a73;font-size:10px;margin-top:5px}.arrow{margin-left:auto;color:#6d845f}footer{border-top:1px solid var(--line);padding:25px 5.5%;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted);gap:20px;max-width:1440px;margin:auto}footer>span,footer>div{display:flex;align-items:center;gap:12px}.footer-mark{font-family:Georgia,serif;font-size:21px;color:var(--green)}footer button{font-size:10px;color:var(--muted)}.footer-divider{margin:0 8px;color:#c8cdc4}.section-top{display:flex;justify-content:space-between;align-items:center}.page:not(#test){padding:54px 0 65px}.page:not(#test) h1{font-size:47px;margin:15px 0}.soft-btn{background:var(--soft);border:1px solid var(--line);border-radius:6px;padding:10px 15px;font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:28px 0}.stat,.panel{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:24px}.stat span{color:var(--muted);font-size:11px}.stat strong{display:block;font-size:35px;font-weight:450;margin-top:15px}.stat small{font-size:12px;color:var(--muted);margin-left:5px}.analytics-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.panel h3{font-size:14px;font-weight:500;margin:0}.panel-heading>span{font-size:10px;color:var(--muted)}#chart{height:170px;display:grid;align-items:center}#chart svg{width:100%;height:150px}.empty{text-align:center;color:var(--muted);font-size:12px;padding:32px 10px}.history-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:13px 0;font-size:11px}.history-row span{color:var(--muted)}.premium-panel{margin-top:20px}.pro-tag{font-size:8px;letter-spacing:1px;background:var(--green);color:white;padding:4px 6px;border-radius:4px;margin-left:8px}.muted{font-size:12px;color:var(--muted)}.text-button{font-size:11px;color:var(--green)}.locked-art{text-align:center;font:22px 'IBM Plex Mono',monospace;letter-spacing:7px;color:#a7b8a1;background:var(--soft);padding:32px;border-radius:8px;margin-top:25px}.locked-art span{background:#9fb599;padding:8px;border-radius:5px;color:white}.lock-caption{display:flex;align-items:center;justify-content:space-between;font-size:12px;padding-top:20px}.demo-label{font-size:9px;letter-spacing:1px;color:var(--orange);margin:22px 0}.premium-columns{display:grid;grid-template-columns:1.25fr 1fr;gap:35px}.premium-columns h4{font-size:12px;font-weight:500}#heatmap{display:flex;gap:5px;flex-wrap:wrap;max-width:410px}#heatmap span{display:grid;place-content:center;width:31px;height:31px;border-radius:4px;font:12px 'IBM Plex Mono',monospace;background:var(--soft)}#recommendation{font-size:13px;line-height:1.8}.practice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}.practice-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:30px;text-align:left;transition:transform .2s}.practice-card:hover{transform:translateY(-4px)}.practice-card>span{font-size:9px;letter-spacing:1px;color:var(--muted)}.practice-card h2{font-size:23px;font-weight:500;margin-top:40px}.practice-card p{font-size:12px}.practice-card b{display:block;margin-top:35px;font-size:12px;font-weight:500;color:var(--green)}dialog{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:16px;width:470px;max-width:calc(100vw - 30px);padding:38px;box-shadow:0 20px 100px #152b3033}dialog::backdrop{background:#20362b66;backdrop-filter:blur(5px)}.close{position:absolute;right:15px;top:12px;font-size:24px;color:var(--muted)}dialog h2{font-size:29px;font-weight:450;letter-spacing:-.8px;line-height:1.3;margin:18px 0 12px}dialog p{font-size:12px}.billing{background:var(--soft);display:flex;padding:4px;border-radius:7px;margin:25px 0}.billing button{flex:1;padding:9px;border-radius:5px;font-size:12px}.billing button.selected{background:var(--surface);box-shadow:0 1px 4px #0001}.billing small{font-size:9px;color:var(--green);margin-left:4px}.price{font-size:43px;letter-spacing:-2px}.price small{font-size:12px;letter-spacing:0;color:var(--muted);margin-left:9px}.price-note{margin-top:3px;color:var(--muted);font-size:10px}ul{list-style:none;padding:10px 0;line-height:2.8;font-size:12px}li:before{content:'✓';margin-right:12px;color:var(--green)}.primary{background:var(--green);color:#fff;width:100%;padding:14px;border-radius:6px;font-size:13px}.billing-disclaimer{text-align:center;font-size:10px!important;line-height:1.6;margin-bottom:0}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:var(--green);color:white;padding:12px 20px;border-radius:7px;font-size:12px;display:none;z-index:10}#result{padding:10px 0 25px;display:flex;gap:50px}#result[hidden]{display:none}#result strong{font-size:42px;font-weight:450;display:block}#result small{color:var(--muted);font-size:11px}.dark{--bg:#18231f;--surface:#202d26;--ink:#e0e8de;--muted:#98a89c;--line:#334239;--green:#b5d1a8;--soft:#304334;--word:#6c8072}.dark .primary,.dark .logo{color:#172b20}.dark .insight-teaser{background:#2a3d2c;border-color:#3a4c36}.dark .insight-teaser small{color:#a0b39b}.dark .insight-teaser strong{color:#dae5d5}[hidden]{display:none!important}@media(min-width:1500px){.intro{padding-top:90px}.below{margin-bottom:100px}}@media(max-width:800px){header{gap:20px;padding:0 24px;height:85px}.brand{font-size:20px}.beta{display:none}nav{gap:16px}.upgrade{font-size:0;padding:9px}.upgrade span{font-size:17px;margin:0}.toolbar{flex-wrap:wrap}.modes{gap:0}.toolbar button{padding:7px}.divider{margin:0 5px}h1{font-size:52px}.intro{padding-top:45px}.test-wrap{padding:0 20px}#words{font-size:22px}#test-state{display:none}.below{align-items:stretch}.session-note{max-width:45%}.insight-teaser{width:50%}.stats{grid-template-columns:repeat(2,1fr)}.analytics-grid{grid-template-columns:1fr}.practice-grid{grid-template-columns:1fr}.premium-columns{grid-template-columns:1fr}footer{padding:20px 24px}footer>div{gap:8px}footer>div .status-dot,footer>div .footer-divider{display:none}footer>div{font-size:0}.shortcut{display:none}}@media(max-width:520px){header{flex-wrap:wrap;height:auto;padding:20px;gap:10px}nav{order:3;width:100%;height:38px;justify-content:center;margin-top:8px}.nav{font-size:12px}.upgrade{margin-left:auto;font-size:10px}.upgrade span{font-size:12px;margin-left:8px}main{padding:0 18px}.intro{padding:35px 0 30px}.eyebrow{font-size:8px;letter-spacing:1.4px}h1{font-size:46px;margin:17px 0}.intro p{font-size:12px}.toolbar{justify-content:center;padding:12px 0;gap:5px}.toolbar button{font-size:9px}.durations{gap:15px}.test-meta{padding-top:18px}#typing-area{margin-top:18px;height:168px}#words{font-size:21px}.test-wrap{padding:0 15px}.test-bottom{padding:16px 0}.start-label{font-size:8px}#restart span{display:none}.below{flex-direction:column;margin:23px 0 35px;gap:24px}.session-note{max-width:100%;margin:auto}.insight-teaser{width:100%;padding:15px 18px}.section-top{display:block}.section-top>button{margin-top:10px}.page:not(#test) h1{font-size:37px}.stat{padding:18px}.stat strong{font-size:29px}.panel{padding:20px}.lock-caption{flex-direction:column;gap:15px}.panel-heading{align-items:flex-start}.text-button{max-width:120px;text-align:right}footer>span{font-size:8px;gap:7px}footer>div{gap:4px}dialog{padding:30px}dialog h2{font-size:26px}#result{gap:25px}#result strong{font-size:33px}.locked-art{font-size:16px;letter-spacing:2px}}
.live-dot{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--orange);vertical-align:middle;margin-left:4px}.battle-beta{font:9px 'IBM Plex Mono',monospace;color:var(--orange);border:1px solid #d9c4ac;padding:9px 12px;border-radius:5px;letter-spacing:1px}.battle-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;margin-top:33px}.match-card{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:38px;position:relative;overflow:hidden}.match-card:after{content:'↗';position:absolute;font-size:230px;right:-10px;top:-58px;line-height:1;color:var(--soft);pointer-events:none}.match-card>*{position:relative;z-index:1}.match-card h2{font-size:38px;font-weight:450;letter-spacing:-1.4px;line-height:1.2;margin:38px 0 20px}.match-card>p{font-size:13px;max-width:360px}.match-rules{display:flex;flex-wrap:wrap;gap:15px;font-size:10px;color:var(--muted);margin:28px 0}.match-card>.primary{margin-top:10px}.battle-sidebar{display:flex;flex-direction:column;gap:18px}.rating-number{display:flex;gap:15px;align-items:center;margin-top:18px}.rating-number>strong{font:48px 'IBM Plex Mono',monospace;letter-spacing:-3px}.rating-number>span{font-size:12px;color:var(--muted)}.rating-number small{display:block;margin-top:5px;font-size:9px;color:var(--orange)}.battle-record{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;margin:16px 0;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.battle-record b{color:var(--ink);font-weight:500}.handle-label{display:block;font-size:10px;color:var(--muted);margin-bottom:8px}.handle-input{display:flex;gap:8px}.handle-input input{background:var(--bg);border:1px solid var(--line);color:var(--ink);padding:9px 11px;border-radius:5px;width:100%;font:12px 'DM Sans',sans-serif}.handle-input button{font-size:11px;background:var(--soft);padding:0 15px;border-radius:5px}.bot-card h3{margin-top:15px;font-size:19px;font-weight:450}.bot-controls{display:flex;justify-content:space-between;gap:10px;margin-top:18px}.bot-controls select{font:11px 'DM Sans',sans-serif;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:9px;max-width:70%}.battle-history{margin-top:24px}.battle-fineprint{font-size:10px;color:var(--muted);line-height:1.8;margin:22px 2px 0}.battle-fineprint strong{font-weight:500;color:var(--ink)}#queue-state{text-align:center;border:1px solid var(--line);border-radius:8px;padding:25px 15px;margin-top:20px;background:var(--bg)}#queue-state strong{font-size:14px;font-weight:500;display:block;margin-top:12px}#queue-state p{font-size:11px}.queue-spinner{display:inline-block;width:24px;height:24px;border:2px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#battle-error{font-size:12px;color:var(--bad);line-height:1.7}#battle-signin{font-size:12px;text-decoration:underline;color:var(--green)}.race-topline{display:flex;align-items:center;margin:25px 0 20px;gap:25px}#race-clock{font:24px 'IBM Plex Mono',monospace;margin-left:auto}.racers{display:grid;grid-template-columns:1fr 1fr;gap:35px;padding:24px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.racer-heading{display:flex;justify-content:space-between;align-items:center;font-size:13px}.racer-heading b{font-weight:500}.racer-heading small{font-size:10px;color:var(--muted);font-weight:400}.racer-heading strong{font:23px 'IBM Plex Mono',monospace}.race-track{height:7px;background:var(--soft);border-radius:5px;margin:20px 0 9px;overflow:hidden}.race-track>span{display:block;background:var(--green);width:0;height:100%;transition:width .3s;border-radius:5px}.opponent-track>span{background:var(--orange)}.track-label{display:flex;justify-content:space-between;font-size:9px;color:var(--muted)}.race-typing-card{border:1px solid var(--line);border-radius:12px;padding:30px;margin-top:22px;background:var(--surface);position:relative}#race-countdown{font:16px 'IBM Plex Mono',monospace;color:var(--orange);margin-bottom:20px}#race-passage{font:22px/1.9 'IBM Plex Mono',monospace;color:var(--word);min-height:150px;overflow-wrap:anywhere;max-height:215px;overflow:hidden}#race-passage .race-good{color:var(--ink)}#race-passage .race-bad{color:var(--bad);background:#be67522b}#race-passage .race-caret{border-left:2px solid var(--orange);margin-left:-2px}#race-input{display:block;width:100%;height:75px;margin-top:22px;border:1px solid var(--line);background:var(--bg);color:var(--ink);padding:14px;font:15px 'IBM Plex Mono',monospace;resize:vertical;border-radius:7px}#race-input:focus{outline:2px solid var(--green);outline-offset:2px}#race-input:disabled{opacity:.5}#race-instruction{font-size:10px;margin-bottom:0}#race-result{background:var(--soft);border:1px solid var(--line);padding:25px 30px;margin-top:20px;border-radius:10px}#race-result h2{font-size:27px;font-weight:450;letter-spacing:-.7px;margin:0 0 8px}#race-result p{font-size:12px;margin:0}#race-actions{display:flex;gap:12px;margin-top:20px}#race-actions .primary{width:auto;padding-left:30px;padding-right:30px}.battle-recent-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);font-size:11px}.battle-recent-row:last-child{border-bottom:0}.battle-recent-row>span{color:var(--muted)}.battle-recent-row b{font-weight:500;text-transform:capitalize}header{gap:35px}nav{gap:25px}@media(max-width:800px){.battle-layout{grid-template-columns:1fr}.battle-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:15px}.bot-controls{flex-direction:column}.bot-controls select{max-width:100%}header{gap:20px}nav{gap:16px}.battle-nav .live-dot{display:none}.upgrade{font-size:0}.race-typing-card{padding:20px}#race-passage{font-size:19px}.match-card h2{margin-top:20px}.battle-beta{display:none}}@media(max-width:520px){.battle-sidebar{grid-template-columns:1fr}.match-card{padding:27px}.match-card h2{font-size:31px}.match-rules{font-size:9px;gap:12px}.racers{gap:20px;padding:17px}.racer-heading{display:block;font-size:11px}.racer-heading strong{display:block;margin-top:10px}.racer-heading>span>small{display:block;margin-top:4px}.race-track{margin-top:14px}.race-topline{gap:12px}#race-clock{font-size:20px}.race-topline .eyebrow{font-size:7px}.race-topline .text-button{font-size:10px}.battle-layout{margin-top:25px}nav{gap:24px}.nav{font-size:11px}footer>div{display:none}#race-result{padding:20px}}

/* End-of-word carets overlay the gap without changing the word width. */
#words .end-caret{position:relative;border:0;margin:0;animation:none}
#words .end-caret::after{content:"";position:absolute;left:0;top:.04em;height:1.1em;border-left:2px solid var(--orange);animation:blink 1s step-end infinite}
.battle-mode-picker{display:flex;gap:12px;margin-top:30px}.battle-mode-picker button{display:grid;grid-template-columns:24px 1fr;column-gap:10px;text-align:left;border:1px solid var(--line);background:var(--surface);padding:14px 22px;border-radius:9px;min-width:210px}.battle-mode-picker button.selected{background:var(--soft);border-color:#a4b69b}.battle-mode-picker button>span{grid-row:span 2;font-size:23px;color:var(--green)}.battle-mode-picker strong{font-size:13px;font-weight:500}.battle-mode-picker small{font-size:10px;color:var(--muted);margin-top:4px}.battle-layout{margin-top:22px}.handicap-example{background:var(--soft);border-radius:6px;padding:14px 16px;margin:20px 0}.handicap-example b{font-size:11px;font-weight:500}.handicap-example p{font-size:10px;margin:6px 0 0;line-height:1.6}.baseline-summary{display:flex;gap:12px;justify-content:space-between;align-items:center;margin:18px 0 0}.baseline-summary>span{font-size:10px;color:var(--muted)}.baseline-summary b{display:block;margin-top:5px;color:var(--ink);font-size:12px;font-weight:500}.baseline-summary button{font-size:10px;max-width:125px;text-align:right;line-height:1.6}.baseline-explainer{font-size:9px;line-height:1.7;color:var(--muted);margin:10px 0 20px}.practice-baseline{display:grid;grid-template-columns:1fr 85px;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:15px;margin-top:16px}.practice-baseline label{font-size:10px;color:var(--muted)}.practice-baseline label span{margin-left:5px;font-size:9px}.practice-baseline input,.practice-baseline select{width:100%;padding:8px 7px;border:1px solid var(--line);border-radius:5px;font:11px 'DM Sans',sans-serif;background:var(--bg);color:var(--ink)}.practice-baseline select{font-size:9px}.linefall-help,.linefall-pressure{display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted);line-height:1.7;margin:18px 0 12px}.linefall-help b{font-weight:500;color:var(--ink)}.linefall-boards{display:grid;grid-template-columns:1fr 1fr;gap:24px}.linefall-player{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px}.box-heading{display:flex;justify-content:space-between;align-items:center;margin:0 2px 14px;font-size:11px}.box-heading b{font:16px 'IBM Plex Mono',monospace;font-weight:500;color:var(--green)}.word-well{height:294px;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:10px;position:relative;display:flex;flex-direction:column-reverse;gap:5px;overflow:hidden;isolation:isolate;transition:border-color .2s,box-shadow .2s}.word-well:before{content:'';position:absolute;inset:10px;z-index:-1;background:repeating-linear-gradient(to top,transparent 0,transparent 39px,var(--line) 39px,var(--line) 40px,transparent 40px,transparent 45px);opacity:.5;pointer-events:none}.well-line{display:flex;gap:5px;min-height:40px;flex-shrink:0;animation:line-arrive .2s ease-out}.word-block{flex:1;min-width:0;background:#dde7d5;border:1px solid #c5d3bb;color:#607252;display:grid;place-content:center;border-radius:4px;font:11px 'IBM Plex Mono',monospace;white-space:nowrap;position:relative;overflow:hidden}.well-line.active-line .word-block{background:var(--green);border-color:var(--green);color:var(--surface)}.well-line .word-block.typed-block{opacity:.45}.word-block.partial-block{box-shadow:inset 0 -3px 0 var(--orange)}.word-block.block-error{border-color:var(--bad);box-shadow:inset 0 -3px 0 var(--bad)}.rival-well .word-block{background:#eddfd1;border-color:#dfcbb8;color:#8e7055}.rival-well .well-line.active-line .word-block{background:#bc855d;border-color:#bc855d;color:#fff}.rival-well .box-heading b{color:var(--orange)}.box-metrics{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:var(--muted);margin:13px 2px 0}.word-well.danger{border-color:var(--bad);box-shadow:inset 0 0 40px #bd5d5215}.word-well.danger .well-line:not(.active-line) .word-block{background:#edc5bd;border-color:#ddb0a8;color:#924a41}.word-well.line-cleared{animation:line-clear .4s ease-out}.word-well .well-empty{position:absolute;inset:0;display:grid;place-content:center;font-size:11px;color:var(--muted);text-align:center;line-height:1.8;pointer-events:none}.linefall-pressure{font-size:9px;margin:12px 2px 0}#linefall-arena~.race-typing-card.linefall-input-card{margin-top:18px;padding:20px}#race-passage.linefall-hidden{display:none}#race-input.linefall-input{height:55px;margin-top:12px;resize:none}#placement-dialog{width:620px}#placement-passage{font:16px/1.8 'IBM Plex Mono',monospace;color:var(--word);height:120px;overflow:hidden;position:relative}#placement-passage .placement-good{color:var(--ink)}#placement-passage .placement-bad{color:var(--bad)}#placement-input{width:100%;height:70px;resize:none;border-radius:6px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:13px 'IBM Plex Mono',monospace;padding:12px;margin:15px 0}.placement-meta{display:flex;justify-content:space-between;align-items:center;margin:18px 0;color:var(--muted);font-size:10px}.placement-meta b{font:20px 'IBM Plex Mono',monospace;color:var(--green)}.placement-buttons{display:flex;gap:10px;justify-content:flex-end}.placement-buttons .primary{width:auto}.dark .word-block{background:#3b5036;color:#bbcdb0;border-color:#4b6245}.dark .well-line.active-line .word-block{color:#1f3023}.dark .rival-well .word-block{background:#544333;color:#d9bea8;border-color:#72543e}.dark .rival-well .active-line .word-block{color:white}@keyframes line-arrive{from{transform:translateY(-8px);opacity:.3}to{transform:translateY(0);opacity:1}}@keyframes line-clear{0%{box-shadow:inset 0 -70px 40px #8aad6466}100%{box-shadow:inset 0 0 0 #8aad6400}}@media(max-width:800px){.linefall-boards{gap:15px}.word-block{font-size:10px}.linefall-help{font-size:9px}.battle-mode-picker button{min-width:180px}}@media(max-width:520px){.battle-mode-picker{gap:8px}.battle-mode-picker button{padding:12px;min-width:0;flex:1;grid-template-columns:19px 1fr;column-gap:8px}.battle-mode-picker strong{font-size:12px}.battle-mode-picker small{font-size:8px}.battle-mode-picker button>span{font-size:20px}.linefall-boards{gap:9px}.linefall-player{padding:10px 7px}.word-well{padding:5px;height:249px;gap:4px}.word-well:before{inset:5px}.well-line{min-height:35px;gap:2px}.word-block{font-size:7px;border-radius:3px}.box-heading{font-size:9px}.box-heading b{font-size:11px}.box-metrics{font-size:8px;margin:10px 0 0}.linefall-help{font-size:8px;gap:10px}.linefall-help>span:last-child{white-space:nowrap}.linefall-pressure{font-size:8px}.linefall-pressure>span:last-child{max-width:40%;text-align:right}.baseline-summary button{max-width:110px}.word-well:before{background:repeating-linear-gradient(to top,transparent 0,transparent 34px,var(--line) 34px,var(--line) 35px,transparent 35px,transparent 39px)}}@media(prefers-reduced-motion:reduce){.well-line,.word-well.line-cleared{animation:none}.word-well{transition:none}}
.adaptive-studio{margin-top:32px;padding:30px}.adaptive-studio h2{font-size:26px;font-weight:450;letter-spacing:-.6px;margin:12px 0 0}.training-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:35px;border-top:1px solid var(--line);margin-top:22px;padding-top:8px}.training-columns h4{font-size:12px;font-weight:500;margin:20px 0 12px}.training-chips{display:flex;flex-wrap:wrap;gap:8px}.training-chip{border:1px solid var(--line);background:var(--bg);border-radius:7px;padding:10px 12px;display:grid;grid-template-columns:1fr 1fr;gap:4px 15px;min-width:88px;text-align:left}.training-chip strong{font:16px 'IBM Plex Mono',monospace;color:var(--green)}.training-chip>span{font-size:11px;justify-self:end;color:var(--bad)}.training-chip small{grid-column:span 2;font-size:8px;color:var(--muted)}.training-chip.selected{border-color:var(--green);background:var(--soft)}#training-evidence{font-size:9px;line-height:1.8;margin-top:15px}.slow-pattern{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid var(--line);width:100%;padding:12px 0;text-align:left}.slow-pattern b{font:15px 'IBM Plex Mono',monospace;color:var(--green)}.slow-pattern>span{font-size:12px}.slow-pattern small{width:100%;font-size:9px;color:var(--muted)}.training-builder{border-top:1px solid var(--line);padding-top:22px;margin-top:22px}.training-builder label{display:block;font-size:12px;margin-bottom:10px}.training-builder label small{font-size:9px;color:var(--muted);margin-left:12px}.training-input-row{display:flex;gap:12px}.training-input-row input{flex:1;min-width:0;border:1px solid var(--line);border-radius:6px;padding:12px 14px;font:13px 'IBM Plex Mono',monospace;background:var(--bg);color:var(--ink)}.training-input-row .primary{width:auto;min-width:165px}.training-builder>.muted{font-size:10px}#training-preview{font:13px/1.9 'IBM Plex Mono',monospace;color:var(--green);padding:0 0 10px}#insight-patterns h4{font-size:12px;font-weight:500}#insight-custom-training{padding:0;text-decoration:underline;font-size:11px;margin-top:10px}@media(max-width:520px){.adaptive-studio{padding:20px}.adaptive-studio .panel-heading{display:block}.adaptive-studio .pro-tag{display:inline-block;margin:15px 0 0}.adaptive-studio h2{font-size:23px}.training-columns{grid-template-columns:1fr;gap:5px}.training-input-row{flex-direction:column}.training-input-row .primary{width:100%}.training-builder label small{font-size:8px;margin-left:6px}}

.well-line{animation:none}.well-line.new-line{animation:line-arrive .2s ease-out}
.appearance-open{border:1px solid var(--line);border-radius:7px;font-size:19px;padding:6px 10px;margin-left:auto}.upgrade{margin-left:0}.appearance-modes{display:flex;background:var(--soft);padding:4px;border-radius:7px;gap:4px;margin:24px 0}.appearance-modes button{flex:1;padding:10px;border-radius:5px;font-size:12px}.appearance-modes .selected{background:var(--surface);box-shadow:0 1px 5px #0002}.palette-presets{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.palette-presets button{padding:5px;border:1px solid transparent;border-radius:7px}.palette-presets button.selected{border-color:var(--green)}.palette-presets button>span{display:grid;place-content:center;height:47px;border-radius:5px;border:1px solid #ffffff22}.palette-presets i{display:block;width:21px;height:6px;border-radius:3px}.palette-presets small{display:block;font-size:9px;margin-top:8px;color:var(--muted)}.custom-colours{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:25px 0}.custom-colours label{font-size:11px;color:var(--muted)}.custom-colours input{display:block;width:100%;height:35px;margin-top:8px;background:var(--surface);border:1px solid var(--line);padding:3px;border-radius:5px;cursor:pointer}.palette-preview{background:var(--bg);border:1px solid var(--line);padding:20px;border-radius:8px}.palette-preview>span{display:block;font:12px 'IBM Plex Mono',monospace;color:var(--word)}.palette-preview>b{display:block;color:var(--green);font-size:24px;letter-spacing:-.5px;font-weight:450;margin:12px 0}.palette-preview>small{font-size:9px;color:var(--muted)}#appearance-dialog #colour-contrast{font-size:10px;margin:16px 0 22px}.primary,.dark .primary,.logo,.dark .logo,.well-line.active-line .word-block,.dark .well-line.active-line .word-block{color:var(--accent-contrast,#fff)}.word-block,.dark .word-block{background:var(--block-bg,var(--soft));border-color:var(--line);color:var(--block-ink,var(--muted))}.well-line.active-line .word-block,.dark .well-line.active-line .word-block{background:var(--green);border-color:var(--green)}.combat-hud{display:grid;grid-template-columns:1fr 46px 1fr;gap:14px;margin:22px 0 18px;padding:20px;border-radius:12px;border:1px solid var(--line);background:var(--surface)}.fighter-title{display:flex;align-items:center;gap:11px}.fighter-avatar{width:35px;height:35px;background:var(--soft);border:1px solid var(--line);display:grid;place-content:center;font:20px Georgia,serif;border-radius:8px;color:var(--green)}.enemy-hud .fighter-avatar{color:var(--orange)}.fighter-title small{display:block;font:8px 'IBM Plex Mono',monospace;letter-spacing:1px;color:var(--muted)}.fighter-title strong{display:block;font:16px 'IBM Plex Mono',monospace;margin-top:5px}.combo-tag{margin-left:auto;font-size:10px;font-weight:500;color:var(--muted)}.combo-tag.hot{color:var(--orange)}.energy-track{height:6px;background:var(--soft);border-radius:5px;overflow:hidden;margin:15px 0 10px}.energy-track>span{display:block;height:100%;width:0;background:var(--green);border-radius:5px;transition:width .2s}.enemy-hud .energy-track>span{background:var(--orange)}.incoming-status{font:9px 'IBM Plex Mono',monospace;color:var(--muted);min-height:16px}.incoming-status.threatened{color:var(--bad);font-weight:500}.duel-separator{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;color:var(--orange)}.duel-separator span{font-size:27px}.duel-separator small{font:8px 'IBM Plex Mono',monospace;letter-spacing:2px}.combat-actions{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:10px;margin-top:15px}.ability-button{display:grid;grid-template-columns:30px 1fr;gap:4px 7px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:14px 15px;transition:border-color .2s,box-shadow .2s}.ability-button>span{grid-row:span 2;align-self:center;font-size:29px;color:var(--green)}.ability-button strong{font-size:13px;font-weight:500}.ability-button small{font-size:9px;color:var(--muted)}.ability-button:disabled{opacity:.4;cursor:not-allowed}.ability-button.ready{border-color:var(--green);box-shadow:0 0 18px color-mix(in srgb,var(--green) 16%,transparent)}.strike-button.ready>span{color:var(--orange)}.challenge-picker{background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:12px 15px}.challenge-picker>span{font-size:10px;color:var(--muted)}.challenge-picker>div{display:flex;gap:10px;margin-top:10px}.challenge-picker button{background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:7px 12px;flex:1;font-size:11px}.challenge-picker b{font:10px 'IBM Plex Mono',monospace;color:var(--green);margin-left:7px}.challenge-picker button:disabled{opacity:.4;cursor:not-allowed}.combat-tip{font-size:10px;line-height:1.8;margin:12px 2px 7px;color:var(--muted)}.combat-feed{min-height:22px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:10px;margin:7px 2px}.combat-event{animation:event-enter .25s ease-out}.combat-event.positive{color:var(--green)}.combat-event.negative{color:var(--bad)}.challenge-card{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;background:var(--soft);border:1px solid var(--green);border-radius:9px;margin:15px 0}.challenge-card strong{display:block;font:23px 'IBM Plex Mono',monospace;margin:9px 0;color:var(--green);overflow-wrap:anywhere}.challenge-card small{display:block;font-size:10px;color:var(--muted)}.challenge-card .text-button{font-size:10px}.word-well.attack-hit{animation:attack-hit .45s ease-out}.word-well.blocked-flash{animation:block-flash .45s ease-out}.fighter-hud.power-flash{animation:block-flash .35s ease-out}.linefall-input-card.challenge-active{border-color:var(--green)}.round-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.round-summary strong{font:21px 'IBM Plex Mono',monospace;display:block}.round-summary span{font-size:10px;color:var(--muted);display:block;margin-top:5px}.dark .insight-teaser{background:var(--soft);border-color:var(--line)}.dark .insight-teaser strong{color:var(--ink)}.dark .insight-teaser small{color:var(--muted)}@keyframes attack-hit{0%,100%{transform:translateX(0)}20%{transform:translateX(-5px);box-shadow:inset 0 0 60px #d6514355}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}}@keyframes block-flash{0%{box-shadow:inset 0 0 50px color-mix(in srgb,var(--green) 40%,transparent)}100%{box-shadow:none}}@keyframes event-enter{from{transform:translateY(4px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:800px){header{gap:15px}.appearance-open{padding:5px 8px;font-size:17px}.combat-hud{padding:15px;gap:10px;grid-template-columns:1fr 30px 1fr}.fighter-title{gap:8px}.combo-tag{font-size:8px}.fighter-avatar{width:27px;height:27px;font-size:16px}.combat-actions{grid-template-columns:1fr 1fr}.challenge-picker{grid-column:span 2}.challenge-picker>div{margin-top:0}.challenge-picker{display:flex;align-items:center;gap:15px}.challenge-picker>div{flex:1}}@media(max-width:520px){.appearance-open{margin-left:auto}.upgrade{font-size:0;padding:7px 9px}.upgrade>span{font-size:14px;margin:0}.combat-hud{grid-template-columns:1fr 24px 1fr;padding:12px 10px;gap:8px}.fighter-avatar{display:none}.fighter-title{flex-wrap:wrap;gap:6px}.fighter-title small{font-size:7px}.fighter-title strong{font-size:14px}.combo-tag{margin-left:0;width:100%;font-size:8px;min-height:12px}.incoming-status{font-size:7px;line-height:1.7}.duel-separator span{font-size:20px}.duel-separator small{font-size:6px}.energy-track{margin-top:10px}.ability-button{padding:12px 10px;grid-template-columns:22px 1fr}.ability-button>span{font-size:22px}.ability-button small{font-size:8px}.challenge-picker{display:block;padding:12px}.challenge-picker>div{margin-top:10px}.combat-tip{font-size:9px}.challenge-card{display:block;padding:17px}.challenge-card strong{font-size:18px}.challenge-card .text-button{margin-top:12px;padding:0}.round-summary{grid-template-columns:repeat(2,1fr)}.palette-presets{gap:4px}.palette-presets small{font-size:8px}}@media(prefers-reduced-motion:reduce){.word-well.attack-hit,.word-well.blocked-flash,.fighter-hud.power-flash,.combat-event{animation:none}.energy-track>span,.ability-button{transition:none}}
.custom-colours input[type=text]{height:29px;font:10px 'IBM Plex Mono',monospace;padding:5px 7px;color:var(--ink);background:var(--bg)}
.rival-well .well-line.active-line .word-block,.dark .rival-well .well-line.active-line .word-block{background:var(--orange);border-color:var(--orange);color:#20170f}
.duel-active #battle>.section-top,.duel-active .racers{display:none}.duel-active #battle{padding-top:12px}.duel-active .race-topline{margin-top:12px}.duel-active .combat-hud{margin-top:10px}.race-typing-card .challenge-card{margin-top:0;padding:12px 15px}.race-typing-card .challenge-card strong{font-size:22px}.duel-active #race-countdown{font-size:12px;margin-bottom:10px}.duel-active #race-input{margin-top:8px}.duel-active .linefall-help{margin-top:10px}.duel-active .combat-tip{margin-bottom:4px}
@media(min-width:801px){.word-block{font-size:14px}.duel-active .word-well{height:258px}.duel-active .well-line{min-height:35px}.duel-active .word-well:before{background:repeating-linear-gradient(to top,transparent 0,transparent 34px,var(--line) 34px,var(--line) 35px,transparent 35px,transparent 40px)}}
/* The cursor floats over the text, so moving it never changes word spacing. */
#words .caret,#race-passage .race-caret{border-left:0;margin-left:0;animation:none}
#words .end-caret::after{display:none}
.moving-caret{position:absolute;left:0;top:0;width:2px;border-radius:2px;background:var(--orange);pointer-events:none;z-index:2;will-change:transform;transition:transform 90ms cubic-bezier(.2,.75,.3,1),height 90ms ease;transform-origin:top left}
.moving-caret.caret-snap{transition:none}.moving-caret.caret-idle{animation:smooth-caret-blink 1s ease-in-out infinite}
#typing-area.blurred .moving-caret{opacity:0}.placement-copy{position:relative;overflow:hidden;height:120px}
.placement-progress{height:4px;border-radius:3px;background:var(--soft);overflow:hidden;margin:-4px 0 18px}
.placement-progress>span{display:block;width:0;height:100%;background:var(--green);border-radius:3px;transition:width 160ms linear}
@keyframes smooth-caret-blink{0%,100%{opacity:1}50%{opacity:.15}}
@media(prefers-reduced-motion:reduce){.moving-caret,.placement-progress>span{transition:none}.moving-caret.caret-idle{animation:none}}
/* Cursor positions are interpolated every animation frame, including native input fields. */
.moving-caret,.moving-caret.caret-snap{transition:none}
.custom-caret-input{caret-color:transparent}
.input-moving-caret{background:var(--green);width:2px;z-index:3}
.caret-input-mirror{position:fixed;left:0;top:-10000px;visibility:hidden;pointer-events:none;white-space:pre-wrap;overflow-wrap:break-word;box-sizing:border-box;border:0;margin:0;min-height:0;height:auto}
.smooth-cursor-option{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-top:1px solid var(--line);margin:15px 0}
.smooth-cursor-option strong{display:block;font-size:12px;font-weight:500}.smooth-cursor-option small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.smooth-cursor-option input{width:18px;height:18px;accent-color:var(--green);cursor:pointer}

/* Word list selector */
.word-list-control{display:inline-flex;align-items:center;max-width:100%}.word-list-control select{font:inherit;font-size:13px;font-weight:600;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 30px 8px 12px;cursor:pointer;max-width:100%;color-scheme:light dark}.word-list-control select:focus-visible{outline:2px solid var(--green);outline-offset:3px}.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}
/* Expanded insights and guided practice */
.insight-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}.insight-controls label,.next-key-control{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:6px}.insight-controls select,.insight-controls input,.next-key-control select{width:100%;min-width:0;font:inherit;color:var(--ink);background:var(--bg);padding:9px;border:1px solid var(--line);border-radius:7px}.insight-controls label[hidden]{display:none}.chart-label-toggle{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}.chart-scroll,.table-scroll{overflow:auto;width:100%;max-width:100%}#chart .chart-scroll svg{max-width:none;display:block}#chart svg text{fill:var(--muted);font:11px system-ui}#chart circle{cursor:pointer;stroke:var(--bg);stroke-width:2}#chart circle:focus{outline:none;stroke:var(--ink);stroke-width:3}.analytics-grid>*{min-width:0}.insight-table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:13px;margin:12px 0}.insight-table th,.insight-table td{padding:12px;text-align:left;border-bottom:1px solid var(--line)}.insight-table th{color:var(--muted);font-size:11px;font-weight:600}.insight-table td small{display:block;color:var(--muted);margin-top:4px}.deep-insights{border-bottom:1px solid var(--line);padding:10px 0 28px;margin-bottom:28px}.transition-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.next-key-control{max-width:180px}.transition-row{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}.transition-row span{margin-left:auto}.transition-row small{color:var(--muted)}details summary{cursor:pointer;color:var(--muted);font-size:12px}.lesson-grid,.suggested-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.lesson-card{padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.lesson-card h3{margin:12px 0}.lesson-card ol{padding-left:20px;color:var(--muted);font-size:13px;line-height:1.9}.lesson-card p{min-height:36px;line-height:1.6}.lesson-status{border:1px solid var(--green);background:var(--soft);padding:20px;border-radius:12px;margin:20px 0}.lesson-status[hidden]{display:none}.lesson-status button{margin-right:14px}.session-review{margin:24px 0;text-align:left}.session-review[hidden]{display:none}.review-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px}.review-columns ul{padding-left:18px;color:var(--muted);font-size:14px;line-height:1.8}.review-summary{font-size:14px;color:var(--muted);line-height:1.7}.review-action{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.review-action p{font-size:13px;color:var(--muted)}@media(max-width:700px){.lesson-grid,.suggested-grid,.transition-grid,.review-columns{grid-template-columns:1fr}.insight-controls{grid-template-columns:1fr 1fr}.insight-table th,.insight-table td{padding:10px 8px}.transition-row{flex-wrap:wrap}}

.flow-status{display:flex;flex-direction:column;gap:7px;padding:16px;border:1px solid var(--line);border-radius:9px;background:var(--soft);margin-top:16px;font-size:12px}.flow-status small,.flow-status span{color:var(--muted);line-height:1.6}.flow-status[hidden]{display:none}.review-columns li::before,.lesson-card li::before{content:none!important}.review-columns li,.lesson-card li{padding-left:0!important}.test-bottom{flex-wrap:wrap}.test-bottom #finish-flow{font-size:12px} .flow-intro{margin-bottom:24px}

/* Continuous difficulty */
.difficulty-control{width:260px;max-width:100%;flex-shrink:0}.difficulty-control>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px}.difficulty-control label{color:var(--muted)}.difficulty-control output{font-family:'IBM Plex Mono',monospace;font-weight:600;color:var(--ink)}.difficulty-control input[type=range]{width:100%;accent-color:var(--green);height:20px;cursor:pointer;margin:7px 0 2px}.difficulty-control input:focus-visible{outline:2px solid var(--green);outline-offset:4px;border-radius:4px}.difficulty-control .difficulty-scale{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.difficulty-control>small{display:block;font-size:9px;color:var(--muted);margin-top:5px}.difficulty-control input:disabled{cursor:default;opacity:.4}.flow-status meter{width:100%;height:9px;accent-color:var(--green)}.flow-enter-hint{font-size:11px;color:var(--muted)}.flow-enter-hint kbd{color:var(--ink)}@media(max-width:520px){.difficulty-control{width:210px}.test-meta{align-items:center}.test-bottom .flow-enter-hint{flex-basis:100%;text-align:center;order:4;margin-top:5px}}

.account-open{border:1px solid var(--line);border-radius:7px;padding:10px 13px;font-size:12px;white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis}.account-signin{display:block;text-align:center;text-decoration:none}.account-field{display:block;margin:18px 0 8px;font-weight:600}.account-field small{display:block;font-weight:400;color:var(--muted);margin-top:5px}#account-username{width:100%;font:inherit;color:var(--ink);background:var(--bg);padding:12px;border:1px solid var(--line);border-radius:7px;margin-bottom:14px}#account-member .text-button{display:inline-block;margin:18px 0 0}#account-status{font-size:12px}header{gap:24px}.account-open+.upgrade{margin-left:0}@media(max-width:800px){header{gap:14px}.account-open{margin-left:auto;font-size:11px;padding:8px}.account-open+.upgrade{display:none}}

/* Per-test letter accuracy */
.session-heatmap{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0 16px;margin:14px 0 22px}.session-heatmap .panel-heading{margin-bottom:18px}.session-heatmap h4{margin:0;font-size:16px;font-weight:500}.session-keyboard{display:flex;flex-direction:column;gap:8px;max-width:740px;margin:0 auto}.session-key-row{display:flex;justify-content:center;gap:7px}.session-key{background:var(--key-heat);color:#20372c;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:62px;min-width:0;height:79px;border:2px solid transparent;border-radius:9px;box-shadow:0 2px 0 #00000014;transition:transform .15s}.session-key strong{font:600 19px 'IBM Plex Mono',monospace}.session-key span{font:500 12px 'IBM Plex Mono',monospace}.session-key small{font-size:9px;opacity:.8}.session-key.unobserved{background:var(--soft);color:var(--muted);box-shadow:none}.session-key.small-sample{border:2px dashed #20372c66}.session-key[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:3px;transform:translateY(-2px)}.session-key:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.key-heat-legend{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:12px;margin:20px 0 12px;font-size:11px;color:var(--muted)}.key-heat-legend>span{display:inline-flex;align-items:center;gap:6px}.key-heat-legend i{display:inline-block;width:10px;height:10px;border-radius:3px}.heat-good{background:#91c998}.heat-bad{background:#e39755}.heat-none{background:var(--soft);border:1px solid var(--line)}.key-heat-legend .heat-gradient{width:110px;height:7px;border-radius:8px;background:linear-gradient(90deg,#91c998,#e2c36b,#e39755)}.key-heat-detail{font-size:13px;text-align:center;min-height:23px;margin:10px 0 6px;color:var(--ink)}.key-heat-note{font-size:11px;line-height:1.7;text-align:center;margin:0;color:var(--muted)}@media(max-width:700px){.session-key-row{gap:4px}.session-keyboard{gap:5px}.session-key{width:calc((100% - 36px)/10);height:68px;border-radius:6px;gap:4px}.session-key strong{font-size:16px}.session-key span{font-size:10px}.session-key small{font-size:8px}.key-heat-legend{gap:9px}.key-heat-legend .heat-gradient{width:65px}}@media(max-width:420px){.session-key-row{gap:3px}.session-key{width:calc((100% - 27px)/10);height:61px}.session-key small{font-size:7px}.session-key strong{font-size:14px}.session-key span{font-size:9px}.session-heatmap .panel-heading{gap:8px}.session-heatmap h4{font-size:14px}}

/* Focused, free practice */
#drill-challenge-label{font:12px 'IBM Plex Mono',monospace;color:var(--green)}#leave-drill{font-size:11px;margin-left:auto}.flow-status{margin:16px 0}.premium-panel .panel-heading h3{margin-right:0}.below .insight-teaser{cursor:pointer}.battle-mode-picker{justify-content:flex-start}.session-heatmap .panel-heading>span{font-size:11px;color:var(--muted)}

#flow-clock-state{min-height:18px;font-size:11px;color:var(--green)}

/* Homepage-style inline battles */
#race-typing-area{position:relative}#race-typing-area.inline-race{height:204px;overflow:hidden;margin:22px 0;cursor:text;border-radius:5px}#race-typing-area.inline-race:focus-visible{outline:2px solid var(--green);outline-offset:8px}.inline-race #race-passage{font:26px/1.95 'IBM Plex Mono',monospace;letter-spacing:.1px;color:var(--word);position:relative;overflow:visible;overflow-wrap:normal;max-height:none;min-height:0;word-break:normal;pointer-events:none}.inline-race .race-word{display:inline-block;white-space:pre}.inline-race #race-passage .race-good{color:var(--ink)}.inline-race #race-passage .race-bad{color:var(--bad);background:transparent}.inline-race #race-input{position:absolute;inset:0;width:100%;height:100%;padding:0;margin:0;opacity:.001;resize:none;border:0;background:transparent;cursor:text;font-size:16px;z-index:1}.inline-race #race-input:focus{outline:none}.race-focus-hint{display:none}.inline-race.blurred #race-passage{filter:blur(3px);opacity:.45}.inline-race.blurred .race-focus-hint{display:grid;position:absolute;inset:0;place-content:center;pointer-events:none;font-size:12px;color:var(--muted);z-index:2}.inline-race .moving-caret{z-index:3;pointer-events:none}.inline-race .input-moving-caret{display:none!important}.inline-race .race-caret.end-caret{display:inline-block;width:0}.battle-fireworks{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:80}#race-result{position:relative;overflow:hidden;padding:30px;text-align:center}#race-result .battle-result-symbol{font-size:39px;line-height:1.2;color:var(--green);margin-bottom:12px}.battle-result-kicker{display:block;text-transform:uppercase;letter-spacing:3px;font:11px 'IBM Plex Mono',monospace;color:var(--green);margin-bottom:12px}#race-result[data-outcome=win]{border-color:var(--green);background:linear-gradient(135deg,var(--soft),var(--surface))}#race-result[data-outcome=loss]{border-color:var(--orange)}#race-result[data-outcome=loss] .battle-result-symbol,#race-result[data-outcome=loss] .battle-result-kicker{color:var(--orange)}#race-result.result-enter{animation:result-reveal .55s cubic-bezier(.2,.75,.3,1) both}#race-result[data-outcome=win].result-enter .battle-result-symbol{animation:victory-star .9s cubic-bezier(.2,.75,.3,1) both}#race-result[data-outcome=loss].result-enter .battle-result-symbol{animation:reset-turn .7s ease-out both}@keyframes result-reveal{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}@keyframes victory-star{from{transform:rotate(-80deg) scale(.2);opacity:0}to{transform:none;opacity:1}}@keyframes reset-turn{from{transform:rotate(-150deg);opacity:0}to{transform:rotate(0);opacity:1}}@media(max-width:800px){.inline-race #race-passage{font-size:22px}#race-typing-area.inline-race{height:174px}}@media(max-width:520px){.inline-race #race-passage{font-size:21px}#race-typing-area.inline-race{height:168px}#race-result{padding:24px 16px}}@media(prefers-reduced-motion:reduce){#race-result.result-enter,#race-result.result-enter .battle-result-symbol{animation:none!important}}
/* Shared hand and standard-keyboard visuals */
.typing-visual-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:28px 0 20px}.typing-visual-toolbar h3{margin:0}.typing-visual-toolbar label{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:10px}.typing-visual-toolbar select{font:inherit;padding:9px 12px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--ink)}.hand-visuals{display:grid;grid-template-columns:1fr 1fr;gap:18px}.hand-card{border:1px solid var(--line);border-radius:12px;background:var(--bg);display:flex;align-items:center;justify-content:space-around;gap:12px;padding:20px}.hand-card h4{font-size:17px;margin:0 0 10px}.hand-card strong{display:block;font-size:18px;color:var(--green);font-weight:500}.hand-card small{font-size:11px;color:var(--muted);display:block;margin-top:8px}.hand-diagram{display:block;width:175px;height:218px;flex-shrink:0;overflow:visible}.visual-finger{cursor:pointer}.visual-finger:focus{outline:none}.visual-finger:focus rect,.visual-finger:hover rect{stroke:var(--ink);stroke-width:2.5}.visual-mapping-note{font-size:11px}.key-visual-scroll,#heatmap.key-visual-scroll{display:block;overflow-x:auto;width:100%;max-width:100%;padding:7px 4px 9px}.visual-keyboard{min-width:650px;width:100%;display:flex;flex-direction:column;gap:6px}.visual-key-row{display:flex;gap:5px;align-items:stretch}.visual-key,#heatmap .visual-key{display:flex;flex:1;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--key-heat);color:#20372c;border:2px solid transparent;border-radius:7px;height:65px;padding:3px;box-shadow:0 2px 0 #00000018}.visual-key strong{font:600 16px 'IBM Plex Mono',monospace}.visual-key span,#heatmap .visual-key span{font:500 10px 'IBM Plex Mono',monospace;display:block;place-content:normal;width:auto;height:auto;background:transparent;border-radius:0;color:inherit}.visual-key small{font-size:8px;opacity:.8;white-space:nowrap}.visual-no-data,#heatmap .visual-no-data{background:var(--soft);color:var(--muted);box-shadow:none}.visual-small-sample{border-style:dashed!important;border-color:#20372c66!important}.visual-key[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:2px}.visual-control,#heatmap .visual-control{display:flex;flex:1;min-width:0;align-items:center;justify-content:center;width:auto;height:auto;border-radius:6px;border:1px solid var(--line);font:10px 'IBM Plex Mono',monospace;background:var(--bg);color:var(--muted);padding:6px}.visual-key-row .key-wide-15{flex:1.5!important}.visual-key-row .key-wide-18{flex:1.75!important}.visual-key-row .key-wide-2{flex:2!important}.visual-key-row .key-wide-22{flex:2.25!important}.visual-key-row .key-wide-28{flex:2.75!important}.visual-key-row .key-space{flex:6.25!important}.visual-key-row:last-child .visual-control{flex:1.25}.key-visual-legend{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;font-size:11px;color:var(--muted);margin:12px 0}.key-visual-legend>i{display:block;width:110px;height:8px;border-radius:5px;background:linear-gradient(90deg,#91c998,#e2c36b,#e39755)}.visual-legend-empty{margin-left:12px}.key-visual-detail{min-height:22px;text-align:center;font-size:12px;color:var(--ink)}.insight-focus{margin-top:24px}.deep-insights>details{margin-top:20px}@media(max-width:800px){.hand-card{display:block;text-align:center;padding:16px 10px}.hand-diagram{margin:10px auto 0;max-width:100%;height:185px}.hand-card strong{font-size:16px}.typing-visual-toolbar{align-items:flex-start}.typing-visual-toolbar label{display:block}.typing-visual-toolbar select{display:block;margin-top:7px;max-width:180px}}@media(max-width:520px){.hand-visuals{gap:10px}.hand-card h4{font-size:15px}.hand-card strong{font-size:13px}.hand-card small{font-size:10px}.hand-diagram{height:155px;width:130px}.typing-visual-toolbar{display:block}.typing-visual-toolbar label{margin-top:14px}.typing-visual-toolbar select{max-width:100%;width:100%}.visual-legend-empty{margin-left:0;width:100%;text-align:center}.visual-keyboard{min-width:650px}}
/* Neutral unobserved keys and a short post-test review */
:root{--key-empty:#e4e5e7;--key-empty-ink:#666b72;--key-empty-line:#c5c8ce}body.dark{--key-empty:#41454b;--key-empty-ink:#c8cbd1;--key-empty-line:#61666e}.visual-no-data,#heatmap .visual-no-data,.session-key.unobserved{background:var(--key-empty);color:var(--key-empty-ink);border-color:var(--key-empty-line)}.review-takeaways{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0 26px}.review-takeaways>div{border:1px solid var(--line);border-radius:10px;padding:18px;background:var(--bg)}.review-takeaway-label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:13px}.review-takeaways strong{font-size:23px;font-weight:500;display:block;color:var(--green)}.review-takeaways>div:nth-child(2) strong{color:var(--orange)}.review-takeaways small{display:block;color:var(--muted);font-size:11px;margin-top:10px;line-height:1.5}.review-takeaways .soft-btn{font-size:13px;text-align:left}.review-pace{font-size:12px;margin:0 0 18px;color:var(--muted)}.session-metric-label select{font:inherit;font-size:11px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px}.review-method{margin-top:12px}.review-method p{font-size:11px;line-height:1.7;max-width:680px;margin-bottom:0}.session-heatmap{border-bottom:0;padding-bottom:0;margin-bottom:0}@media(max-width:620px){.review-takeaways{grid-template-columns:1fr;gap:9px}.review-takeaways>div{padding:14px 16px;display:grid;grid-template-columns:70px 1fr;align-items:center;gap:6px}.review-takeaway-label{margin:0;grid-row:span 2}.review-takeaways strong{font-size:20px}.review-takeaways small{margin:0;grid-column:2}.review-takeaways .soft-btn{padding:8px 0}}

.drill-target-results{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0 14px}.drill-target-result{background:var(--target-fill);color:#20372c;padding:17px 20px;border-radius:10px;min-width:130px;flex:1;max-width:260px}.drill-target-result strong{font:600 24px 'IBM Plex Mono',monospace;display:block}.drill-target-result b{font-size:20px;display:block;margin:9px 0}.drill-target-result span{font-size:11px}.drill-target-result.no-data{background:var(--key-empty);color:var(--key-empty-ink)}.drill-report-note{font-size:11px;color:var(--muted)}.drill-all-keys{margin-top:24px}.drill-all-keys>summary{font-size:12px}.drill-all-keys .session-heatmap{margin-top:14px}

.review-takeaways>.drill-focus-clean strong{color:var(--green)}
/* Toolbar difficulty and clean-streak colour */
.toolbar .difficulty-control{width:210px;flex:0 1 210px}.toolbar .difficulty-rail{display:flex;align-items:center;gap:10px}.toolbar .difficulty-rail>span{font-size:10px;color:var(--muted);white-space:nowrap}.toolbar .difficulty-control input[type=range]{width:100%;min-width:55px;margin:0;height:18px}.streak-option{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;border-top:1px solid var(--line);margin-top:14px;font-size:12px}.streak-option small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.streak-option select{background:var(--bg);color:var(--ink);padding:8px;border:1px solid var(--line);border-radius:6px}.keyboard-metric-tabs{display:flex;gap:4px;padding:4px;background:var(--bg);border:1px solid var(--line);border-radius:8px}.keyboard-metric-tabs button{padding:7px 10px;border-radius:5px;color:var(--muted);font-size:11px;white-space:nowrap}.keyboard-metric-tabs button.selected{background:var(--soft);color:var(--ink)}@media(max-width:800px){.toolbar .difficulty-control{width:190px;flex-basis:190px}.session-heatmap .panel-heading{flex-wrap:wrap}}@media(max-width:520px){.toolbar .difficulty-control{width:190px;flex:1 1 190px}.keyboard-metric-tabs button{padding:7px 8px;font-size:10px}#streak-indicator{bottom:12px;left:12px;font-size:9px}}@media(prefers-reduced-motion:reduce){body.streak-enabled{transition:none}}
.assessment-entry{margin-bottom:24px}.assessment-controls{display:flex;gap:18px;flex-wrap:wrap;margin:20px 0}.assessment-controls label{display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--muted);min-width:150px}.assessment-controls select{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:10px}.assessment-progress{display:flex;gap:5px;flex-wrap:wrap;margin:16px 0 24px}.assessment-letter{width:30px;height:32px;display:grid;place-items:center;border-radius:5px;background:var(--key-empty);color:var(--key-empty-ink);font:12px 'IBM Plex Mono',monospace}.assessment-letter.current{outline:2px solid var(--green);outline-offset:2px}.assessment-letter.done{background:#91c998;color:#20372c}.assessment-stage-heading{display:flex;align-items:center;gap:34px}.assessment-stage-heading strong{font:42px 'IBM Plex Mono',monospace;color:var(--green);display:block;margin-top:8px}.assessment-stage-heading b{font:20px 'IBM Plex Mono',monospace;display:block;margin-top:12px}.assessment-stage-heading>span:last-child{margin-left:auto;font-size:12px}#assessment-area{position:relative;height:200px;overflow:hidden;margin:30px 0 20px;cursor:text}#assessment-words{font:24px/1.95 'IBM Plex Mono',monospace;color:var(--word);position:relative}.assessment-word{display:inline-block;white-space:pre;margin-right:.65em}.assessment-target{border-bottom:1px solid var(--green)}.assessment-good{color:var(--ink)}.assessment-bad{color:var(--bad)}#assessment-input{position:absolute;inset:0;width:100%;height:100%;opacity:.001;font-size:16px;border:0;padding:0;resize:none;cursor:text}.assessment-paused #assessment-words{filter:blur(3px);opacity:.4}.assessment-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:22px}.assessment-actions .primary{width:auto;min-width:180px}#assessment-transition-rows .text-button{font-size:11px}#assessment-uncovered{font-size:11px;margin-top:18px}#assessment-report-summary{margin-top:20px}@media(max-width:620px){.assessment-stage-heading{gap:18px}.assessment-stage-heading>span:last-child{font-size:10px}.assessment-stage-heading strong{font-size:32px}.assessment-stage-heading b{font-size:16px}#assessment-words{font-size:21px}.assessment-actions>*{width:100%!important;text-align:center;max-width:none}.assessment-controls label{flex:1;min-width:100px}}

.input-moving-caret{background:var(--orange)}

/* Key-to-key rhythm */
.transition-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-top:30px}.transition-heading h3{margin:10px 0 0}.transition-heading p{font-size:12px;margin:0}.transition-explainer{font-size:12px;line-height:1.7;max-width:740px}.transition-grid{gap:20px;margin-top:22px}.transition-column{min-width:0;padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}.transition-column h4{font-size:16px;margin:0}.transition-column h4>span{display:inline-grid;place-items:center;width:27px;height:27px;margin-right:6px;border-radius:50%;background:var(--soft)}.transition-column>p{font-size:12px;margin:8px 0 24px}.fast-column{--transition-colour:#91c998}.slow-column{--transition-colour:#e39755}.transition-card{padding:18px 0;border-top:1px solid var(--line)}.transition-card-top{display:flex;align-items:center;gap:12px}.transition-rank{font:10px 'IBM Plex Mono',monospace;color:var(--muted)}.transition-keycaps{display:inline-flex;align-items:center;gap:9px}.transition-keycaps kbd{display:grid;place-items:center;width:36px;height:37px;border:1px solid var(--line);border-bottom-width:3px;border-radius:7px;background:var(--surface);font:17px 'IBM Plex Mono',monospace;text-transform:uppercase;color:var(--ink)}.transition-keycaps>span{color:var(--muted)}.transition-card-top>strong{margin-left:auto;white-space:nowrap;font:22px 'IBM Plex Mono',monospace;color:var(--transition-colour)}.transition-card-top>strong small{font:11px 'DM Sans',sans-serif;color:var(--muted)}.transition-track{height:5px;border-radius:5px;background:var(--soft);margin:17px 0 10px;overflow:hidden}.transition-track>span{display:block;height:100%;border-radius:5px;background:var(--transition-colour)}.transition-card-meta{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:var(--muted)}.transition-drill{font-size:11px;margin-top:12px}.transition-empty{padding:22px 0 8px;display:flex;flex-direction:column;align-items:flex-start;gap:16px}.transition-empty strong{font-size:13px;line-height:1.6}.transition-empty p{font-size:12px;color:var(--muted);line-height:1.7;margin:0}@media(max-width:600px){.transition-heading{display:block}.transition-heading p{margin-top:12px}.transition-column{padding:18px}.transition-card-top{gap:8px}.transition-keycaps{gap:6px}}

keystone-choice{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}keystone-choice option{display:none}keystone-choice button,.finger-map-choices button{font:11px 'DM Sans',sans-serif;border:1px solid var(--line);border-radius:6px;padding:9px 12px;color:var(--muted);background:var(--bg);cursor:pointer}keystone-choice button.selected,.finger-map-choices button.selected{color:var(--ink);background:var(--soft);border-color:var(--green)}keystone-choice button:focus-visible,.finger-map-choices button:focus-visible{outline:2px solid var(--green);outline-offset:3px}.next-key-control{max-width:none}.typing-visual-toolbar label{display:block}.assessment-controls label{max-width:100%}.finger-map-editor{margin:20px 0;padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.finger-map-editor[hidden]{display:none}.finger-map-editor p{font-size:12px;line-height:1.7}.finger-map-choices{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}.finger-key-highlight{outline:2px solid var(--green)!important;outline-offset:2px;box-shadow:0 0 0 4px var(--soft)}.visual-finger.finger-highlight rect{stroke:var(--ink);stroke-width:3}.visual-finger{cursor:pointer}.finger-map-editor .visual-key span{font-size:8px;white-space:normal}.finger-map-editor .visual-key small{font-size:7px}.insight-controls{grid-template-columns:1fr 1fr}.streak-option{align-items:flex-start}.streak-option keystone-choice{max-width:235px}@media(max-width:700px){.insight-controls{grid-template-columns:1fr}.finger-map-editor{padding:15px}}@media(prefers-reduced-motion:no-preference){.visual-finger rect{transition:stroke .15s,stroke-width .15s}.visual-key{transition:outline-color .15s}}

.training-builder>label{display:block;margin-bottom:14px;font-size:14px;font-weight:600}.training-builder>label small{display:block;margin-top:7px;font-size:11px;font-weight:400;color:var(--muted)}.training-input-row{display:flex;flex-direction:column;align-items:stretch;gap:16px}.training-input-row input{flex:none;width:100%;box-sizing:border-box;min-height:48px}.training-input-row>button{align-self:flex-start;min-width:190px}.training-builder #training-plan{margin-top:16px;line-height:1.7}

.choice-field{font-size:12px;color:var(--muted)}.choice-label{display:block;margin-bottom:6px}.assessment-controls .choice-field{flex:1;min-width:150px}.typing-visual-toolbar .choice-field{max-width:100%;margin-top:12px}.insight-controls .choice-field{display:flex;flex-direction:column;gap:6px}.next-key-control.choice-field{display:block}.choice-field keystone-choice{margin-top:0}

.session-graph{margin:24px 0}.session-graph .muted{font-size:13px;margin-bottom:16px}.session-graph-scroll{overflow-x:auto}.session-graph svg{display:block;width:100%;min-width:420px;height:auto}.session-graph svg text{fill:var(--muted);font-size:11px;font-family:inherit}.session-graph .pace-grid{stroke:var(--line);stroke-dasharray:3 5}.session-graph circle{cursor:crosshair;stroke:var(--bg);stroke-width:2}.session-graph circle:hover,.session-graph circle:focus{r:6;outline:none;stroke:var(--ink)}

/* The welcome message is shown briefly once per tab, then the workspace stays compact. */
#test>.intro{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;background:var(--bg);pointer-events:none;animation:welcome-out 2.2s ease forwards}
#test>.intro h1{margin-top:22px}#test{padding-top:36px}.studio-ready #test>.intro{display:none}
@keyframes welcome-out{0%,65%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){#test>.intro{animation:none}.studio-ready #test>.intro{display:none}}
@media(max-width:600px){#test{padding-top:22px}#test>.intro h1{font-size:48px}}

.pace-legend{display:flex;flex-wrap:wrap;gap:12px 22px;font-size:11px;color:var(--muted);margin:16px 0 8px}.pace-legend>span{display:flex;align-items:center;gap:7px}.pace-legend i{width:18px;height:3px;background:var(--green);display:inline-block}.pace-legend .pace-accuracy{background:var(--orange)}.pace-legend .pace-errors{background:var(--bad);width:7px;height:7px;border-radius:50%}.pace-speed-line{fill:none;stroke:var(--green);stroke-width:2.5;stroke-linejoin:round}.pace-accuracy-line{fill:none;stroke:var(--orange);stroke-width:2;stroke-dasharray:6 4}.pace-error-stem{stroke:var(--bad);stroke-width:1;opacity:.22}.session-graph circle.pace-error-dot{fill:var(--bad);stroke:var(--surface);stroke-width:1.5}.pace-sample{fill:var(--green)}.session-graph circle.pace-extreme{fill:none;stroke:var(--ink);stroke-width:1.5;pointer-events:none}.pace-detail{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:13px;min-height:49px;font-size:12px}.pace-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.pace-highlights>div{border:1px solid var(--line);border-radius:10px;padding:17px;background:var(--bg)}.pace-highlights span{font-size:11px;color:var(--muted)}.pace-highlights strong{display:block;font:26px 'IBM Plex Mono',monospace;margin-top:9px}.pace-highlights small{font-size:10px;color:var(--muted)}.pace-highlights p{font-size:11px;margin:7px 0 0;overflow-wrap:anywhere}.pace-moments-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.pace-moments-heading h4{font-weight:500}.pace-moments-heading>span{font-size:10px;color:var(--muted)}.pace-moment{display:grid;grid-template-columns:58px 50px 1fr 1.5fr;gap:10px;align-items:center;text-align:left;width:100%;padding:13px 10px;border-bottom:1px solid var(--line);font-size:11px;border-radius:5px}.pace-moment-kind{color:var(--green);font-size:10px}.pace-error-moment .pace-moment-kind{color:var(--bad)}.pace-moment time{color:var(--muted);font-family:'IBM Plex Mono',monospace}.pace-moment strong{overflow-wrap:anywhere;font-family:'IBM Plex Mono',monospace}.pace-moment>span:last-of-type{color:var(--muted)}.pace-moment small{grid-column:3/5;color:var(--muted);overflow-wrap:anywhere}.pace-moment:hover,.pace-moment.selected{background:var(--soft)}.pace-more{margin-top:16px;font-size:12px}.pace-more summary{cursor:pointer;color:var(--green);padding:8px 0}.pace-method{font-size:10px;margin-top:20px}@media(max-width:600px){.pace-highlights{grid-template-columns:1fr}.pace-highlights>div{padding:13px}.pace-moment{grid-template-columns:45px 43px 1fr}.pace-moment>span:last-of-type{grid-column:2/4}.pace-moment small{grid-column:2/4}.pace-moments-heading{align-items:flex-start;flex-direction:column;gap:0}}

.caps-warning{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border:1px solid var(--orange);border-radius:7px;background:color-mix(in srgb,var(--orange) 12%,var(--surface));color:var(--ink);font:500 12px 'IBM Plex Mono',monospace;white-space:nowrap}.test-meta .caps-warning{margin-right:auto}#assessment-caps{margin:0 0 14px}

/* A compact, shared results view keeps the chart and keyboard together. */
.results-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
.results-grid>.panel{min-width:0;margin:0 0 20px;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
main:has(#test:not([hidden]) #result:not([hidden])){max-width:1440px}
body:has(#test:not([hidden]) #result:not([hidden])) header{height:76px}
.test-wrap:has(#result:not([hidden])) .toolbar,.test-wrap:has(#result:not([hidden])) .test-meta,#test:has(#result:not([hidden]))>.below{display:none}
#test:has(#result:not([hidden])){padding-top:22px}
.test-wrap:has(#result:not([hidden])) #result{padding:20px 0 18px;gap:36px}
.test-wrap:has(#result:not([hidden])) #result strong{font-size:34px}
.results-grid .panel-heading{align-items:center;flex-wrap:wrap;margin-bottom:10px}
.results-grid .panel-heading h3{font-size:15px;margin:0}
.results-grid .panel-heading>span{font-size:9px}
.results-grid .pace-legend{font-size:9px;gap:9px 14px;margin:12px 0 8px}
.results-grid .session-graph svg{min-width:0}
.results-grid .pace-detail{font-size:10px;min-height:38px;margin:8px 0 10px;padding:10px}
.pace-report-details>summary,.drill-breakdown>summary{cursor:pointer;color:var(--green);font-size:11px;padding:9px 0}
.results-grid .review-takeaways{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 14px}
.results-grid .review-takeaways>div{display:block;min-width:0;padding:10px;border-radius:7px}
.results-grid .review-takeaway-label{font-size:8px;letter-spacing:1px;margin-bottom:7px}
.results-grid .review-takeaways strong{font-size:17px;overflow-wrap:anywhere}
.results-grid .review-takeaways small{font-size:9px;margin-top:5px;line-height:1.4}
.results-grid .review-takeaways .soft-btn{font-size:11px;padding:0;line-height:1.5}
.results-grid .review-pace{font-size:10px;margin:0 0 10px}
.results-grid .session-heatmap{padding:12px 0 8px;margin:0 0 8px;border-bottom:0}
.results-grid .session-heatmap .panel-heading{margin-bottom:12px;gap:8px}
.results-grid .session-heatmap h4{font-size:13px}
.results-grid .keyboard-metric-tabs{padding:2px;gap:2px}
.results-grid .keyboard-metric-tabs button{font-size:9px;padding:5px 7px}
.results-grid .visual-keyboard{min-width:0;gap:4px}
.results-grid .visual-key-row{gap:3px}
.results-grid .visual-key{height:46px;border-width:1px;border-radius:5px;gap:3px;padding:2px}
.results-grid .visual-key strong{font-size:12px}
.results-grid .visual-key span{font-size:8px}
.results-grid .visual-key small{display:none}
.results-grid .visual-control{font-size:7px;padding:2px}
.results-grid .key-visual-legend{font-size:9px;gap:7px;margin:10px 0}
.results-grid .key-heat-detail{font-size:10px;margin:8px 0;min-height:17px}
.results-grid .review-method{font-size:10px}
.results-grid .review-method p{font-size:11px}
.results-grid .drill-breakdown{margin-top:8px}
@media(max-width:1000px){.results-grid{grid-template-columns:1fr}.results-grid>.panel{margin-bottom:0}.results-grid{padding-bottom:20px}.results-grid .visual-key{height:55px}.results-grid .visual-key strong{font-size:14px}}
@media(max-width:520px){.results-grid>.panel{padding:13px}.test-wrap:has(#result:not([hidden])) #result{gap:18px;flex-wrap:wrap}.test-wrap:has(#result:not([hidden])) #result strong{font-size:28px}.results-grid .visual-key{height:43px}.results-grid .visual-key strong{font-size:11px}.results-grid .visual-key-row{gap:2px}.results-grid .visual-control{font-size:6px}}
.results-grid .session-graph svg text{font-size:14px}

.results-grid .pace-highlights{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:13px 0}.results-grid .pace-highlights>div{padding:11px}.results-grid .pace-highlights span{font-size:9px}.results-grid .pace-highlights strong{font-size:22px;margin-top:6px}.results-grid .pace-highlights p{font-size:9px;margin-top:5px}.results-grid .pace-moments-heading h4{font-size:12px;margin:12px 0}.results-grid .pace-moment{padding:10px 7px;font-size:10px;gap:7px;grid-template-columns:46px 43px minmax(0,1fr) minmax(0,1.5fr)}.results-grid .pace-moment small{font-size:9px}.results-grid .pace-method{font-size:9px;margin:14px 0 0}@media(max-width:520px){.results-grid .pace-moment{grid-template-columns:43px 40px minmax(0,1fr)}.results-grid .pace-highlights strong{font-size:19px}}

.review-next-card{border-color:var(--green)!important}.drill-start-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 13px;border:1px solid var(--green);border-radius:7px;background:var(--green);color:var(--bg);font-size:12px;font-weight:650;line-height:1.4;cursor:pointer;text-align:left;transition:filter .15s,transform .15s}.drill-start-button:hover{filter:brightness(1.1);transform:translateY(-1px)}.drill-start-button:active{transform:translateY(0)}.drill-start-button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.results-grid .review-next-card{padding:10px}.results-grid .review-next-card .drill-start-button{width:100%;font-size:11px;padding:9px 7px}.results-grid .review-next-card small{font-size:9px;margin-top:7px}

/* Personal practice tools */
header{gap:24px}.keyboard-profile-open{margin-left:auto;border:1px solid var(--line);border-radius:7px;padding:9px 12px;font-size:11px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-options{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.profile-option{border:1px solid var(--line);padding:11px 14px;border-radius:8px;background:var(--bg);font-size:12px}.profile-option.selected{border-color:var(--green);background:var(--soft)}.profile-option small{display:block;color:var(--muted);font-size:9px;margin-top:5px}.profile-name-row{display:flex;gap:9px;margin:9px 0 18px}.profile-name-row input{flex:1;min-width:0;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:11px}.profile-insights-note{font-size:11px;margin:0 0 18px}.profile-insights-note strong{color:var(--green)}
.daily-entry{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;border:1px solid var(--line);border-radius:12px;margin:0 0 20px;background:var(--surface)}.daily-entry h2{font-size:22px;letter-spacing:-.5px;margin:9px 0 7px;font-weight:500}.daily-entry p{font-size:11px;margin:0}.daily-entry .drill-start-button{white-space:nowrap}#test:has(#result:not([hidden])) .daily-entry{display:none}.daily-status{padding:19px 22px;margin-bottom:18px;border:1px solid var(--green);border-radius:12px;background:var(--surface)}.daily-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.daily-heading h3{font-size:17px;margin:9px 0}.daily-steps{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.daily-steps>span{padding:7px 9px;background:var(--bg);border:1px solid var(--line);border-radius:6px;font-size:10px;color:var(--muted)}.daily-steps>span.current{border-color:var(--green);color:var(--ink);background:var(--soft)}.daily-steps>span.done{color:var(--green)}.daily-steps small{opacity:.7;font-size:9px}.daily-status p{font-size:12px}.daily-status>small{display:block;color:var(--muted);font-size:10px;margin-top:13px}.daily-running .toolbar{display:none}.daily-comparison{display:flex;gap:15px;flex-wrap:wrap}.daily-comparison strong{font:18px 'IBM Plex Mono',monospace}.daily-comparison span{width:100%;font-size:11px;color:var(--muted)}
.weakness-progress{margin:20px 0 24px;padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.weakness-progress h3{margin:10px 0}.weakness-progress>.muted{font-size:12px}.progress-targets{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:20px 0}.progress-targets>button{border:1px solid var(--line);padding:9px 12px;border-radius:6px;font-size:12px}.progress-targets>button.selected{border-color:var(--green);background:var(--soft)}.progress-targets label{font-size:10px;color:var(--muted);display:flex;gap:9px;align-items:center;margin-left:auto}.progress-targets input{width:65px;color:var(--ink);background:var(--bg);border:1px solid var(--line);padding:9px;border-radius:6px;font:13px 'IBM Plex Mono',monospace}.weakness-comparison{display:grid;grid-template-columns:1fr 1fr;gap:14px}.weakness-comparison>div{background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:16px}.weakness-comparison span{display:block;font-size:11px;color:var(--muted)}.weakness-comparison strong{display:block;font:18px 'IBM Plex Mono',monospace;margin:12px 0}.weakness-comparison strong small{color:var(--muted)}.weakness-comparison p{font-size:11px;margin:0}.weakness-timing-chart svg{width:100%;max-height:180px}.weakness-timing-chart text{fill:var(--muted);font:11px 'DM Sans',sans-serif}.progress-method,.progress-empty{font-size:10px;color:var(--muted);line-height:1.8}.target-practice-action{display:flex;align-items:center;gap:12px;margin:10px 0}.target-practice-action small{font-size:10px;color:var(--muted)}.target-practice-action .drill-start-button{font-size:11px;padding:8px 11px}.pace-speed-toggle{display:flex;gap:5px;margin:10px 0}.pace-speed-toggle button{border:1px solid var(--line);border-radius:6px;padding:6px 9px;font-size:10px;color:var(--muted)}.pace-speed-toggle button[aria-pressed=true]{color:var(--ink);border-color:var(--green);background:var(--soft)}.pace-speed-toggle button:disabled{opacity:.4;cursor:not-allowed}
@media(max-width:900px){header{gap:15px;flex-wrap:wrap;height:auto;min-height:100px;padding-top:15px;padding-bottom:15px}body:has(#test:not([hidden]) #result:not([hidden])) header{height:auto;min-height:90px}.keyboard-profile-open{max-width:140px}nav{gap:18px;height:45px}.daily-entry{flex-direction:column;align-items:flex-start}.weakness-comparison{grid-template-columns:1fr}.progress-targets label{margin-left:0}}@media(max-width:520px){header{gap:10px}.keyboard-profile-open{max-width:130px;font-size:10px;padding:8px}.brand{font-size:20px}.weakness-progress{padding:16px}.daily-status{padding:15px}.daily-heading{align-items:flex-start}.daily-heading h3{font-size:15px}.daily-entry{padding:18px}.target-practice-action{flex-wrap:wrap}}

.daily-running .daily-entry{display:none}

.keyboard-layout-options{display:flex;flex-wrap:wrap;gap:8px}.keyboard-layout-options .selected{background:var(--green);color:var(--bg);border-color:var(--green)}
.split-keyboard{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:12px 4px 20px}.keyboard-half{display:flex;flex-direction:column;gap:6px;min-width:0}.keyboard-layout-note{font-size:10px;color:var(--muted);line-height:1.6;margin:8px 0}.keyboard-layer-label{font-size:10px;color:var(--muted);margin:5px 0}.layout-cornix .keyboard-half .visual-key-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.layout-cornix .keyboard-half .visual-key-row:nth-child(-n+3)>:nth-child(3),.layout-cornix .keyboard-half .visual-key-row:nth-child(-n+3)>:nth-child(4){transform:translateY(-8px)}.layout-cornix .keyboard-half .visual-key-row:nth-child(-n+3)>:nth-child(2),.layout-cornix .keyboard-half .visual-key-row:nth-child(-n+3)>:nth-child(5){transform:translateY(-4px)}.layout-cornix .keyboard-half .visual-key-row:last-child{margin-top:8px}.layout-cornix .keyboard-half.left .visual-key-row:last-child>:nth-last-child(-n+3){transform:rotate(12deg) translateY(6px)}.layout-cornix .keyboard-half.right .visual-key-row:last-child>:nth-child(-n+3){transform:rotate(-12deg) translateY(6px)}.layout-alice .split-keyboard{gap:32px;padding:22px 10px 30px}.layout-alice .keyboard-half.left{transform:rotate(7deg)}.layout-alice .keyboard-half.right{transform:rotate(-7deg)}.results-grid .keyboard-layout-note{font-size:9px}.results-grid .keyboard-half{gap:4px}.results-grid .split-keyboard{gap:20px}.results-grid .layout-cornix .keyboard-half .visual-key-row{gap:3px}

.daily-entry{position:relative;padding-right:58px}.daily-entry[hidden]{display:none}.daily-dismiss{position:absolute;right:13px;top:10px;font-size:23px;line-height:1;background:transparent;border:0;color:var(--muted);padding:8px;cursor:pointer}.daily-dismiss:hover{color:var(--ink)}

.jiffy-split{display:grid;grid-template-columns:34fr 38fr;gap:24px}.jiffy-board{min-width:0}.jiffy-accent{height:20px;border:1px solid var(--line);background:linear-gradient(90deg,#6d584244,#a88a6544);margin-bottom:7px;border-radius:6px;position:relative}.jiffy-accent i{position:absolute;top:2px;left:8px;width:14px;height:14px;border-radius:50%;background:var(--soft);border:1px solid var(--line)}.jiffy-board.right .jiffy-accent i{left:auto;right:8px}.jiffy-keys{display:grid;grid-template-columns:repeat(38,minmax(0,1fr));grid-template-rows:repeat(5,65px);gap:5px 1px}.jiffy-board.left .jiffy-keys{grid-template-columns:repeat(34,minmax(0,1fr))}.jiffy-cell{min-width:0;display:flex;padding:0 1px}.jiffy-cell>.visual-key,.jiffy-cell>.visual-control{width:100%;height:100%;box-sizing:border-box}.jiffy-cell>.visual-control{font-size:9px}.results-grid .jiffy-keys{grid-template-rows:repeat(5,46px);gap:3px 1px}.results-grid .jiffy-split{gap:15px}.results-grid .jiffy-cell>.visual-control{font-size:7px}.results-grid .jiffy-cell .visual-key strong{font-size:11px}

.pace-tooltip{position:fixed;z-index:100;pointer-events:none;transform:translate(-50%,-100%);max-width:min(320px,calc(100vw - 24px));width:max-content;padding:12px 15px;border:1px solid var(--green);border-radius:9px;background:var(--surface);color:var(--ink);box-shadow:0 8px 26px #0004;font:11px/1.7 'IBM Plex Mono',monospace;white-space:normal;overflow-wrap:anywhere}.pace-tooltip[hidden]{display:none}

/* A compact pixel dancer follows the keyboard, never the background. */
.typing-feedback{height:104px;max-width:960px;margin:0 auto;display:flex;align-items:flex-end;justify-content:center;pointer-events:none;}
#typing-feedback:has(+ #typing-area[hidden]),#assessment-feedback:has(+ #assessment-area[hidden]){display:none}
#typing-dancer{display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none;}
#typing-dancer[hidden]{display:none}
.pixel-dancer{width:96px;height:104px;image-rendering:pixelated;overflow:visible;}
.dancer-caption{display:none;}
.typing-feedback:has(#typing-dancer[hidden]){height:0;min-height:0;}
.dancer-option{display:flex;gap:18px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:18px 0;margin-top:14px;}
.dancer-option>span{display:flex;flex-direction:column;gap:6px;max-width:320px;}.dancer-option small{font-size:11px;line-height:1.6;color:var(--muted);}
#typing-area,#assessment-area{max-width:960px;margin:4px auto 18px;}

/* Related hues, distinct values: the dancer follows every preset and custom palette. */
.pixel-dancer{--dancer-hair:color-mix(in srgb,var(--ink) 60%,var(--bg));--dancer-skin:color-mix(in srgb,var(--orange) 65%,var(--ink));--dancer-shade:color-mix(in srgb,var(--orange) 80%,var(--bg));--dancer-shirt:color-mix(in srgb,var(--green) 70%,var(--ink));--dancer-trim:color-mix(in srgb,var(--green) 25%,var(--ink));--dancer-pants:color-mix(in srgb,var(--green) 65%,var(--bg));--dancer-shoe:var(--ink);}

#typing-dancer{position:relative;isolation:isolate;}
.pixel-dancer{position:relative;z-index:1;}
.dancer-fire{position:absolute;inset:0;width:96px;height:104px;z-index:0;pointer-events:none;--fire-gold:color-mix(in srgb,var(--orange) 55%,#ffe399);--fire-core:color-mix(in srgb,var(--ink) 25%,#fff0b0);}
.fire-small,.fire-large{opacity:0;transform-origin:24px 49px;}
#typing-dancer[data-fire="1"] .fire-small,#typing-dancer[data-fire="2"] .fire-large{opacity:1;animation:pixel-fire .6s steps(2,end) infinite;}
@keyframes pixel-fire{0%,100%{transform:scaleY(.9)}50%{transform:scaleY(.84) translateX(1px)}}
@media(prefers-reduced-motion:reduce){#typing-dancer .fire-small,#typing-dancer .fire-large{animation:none;}}

.dancer-open{border:1px solid var(--line);border-radius:7px;padding:9px 12px;font-size:11px;white-space:nowrap;}
#dancer-dialog{width:min(790px,calc(100vw - 32px));max-width:790px;}
.dancer-cast{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0;}
.dancer-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;padding:16px 10px;border:1px solid var(--line);border-radius:12px;background:var(--soft);color:var(--ink);}
.dancer-card[aria-pressed="true"]{border:2px solid var(--green);padding:15px 9px;box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 15%,transparent);}
.dancer-card strong{font-size:17px;}.dancer-card b{font:10px 'IBM Plex Mono',monospace;color:var(--green);}.dancer-card small{font-size:10px;line-height:1.6;color:var(--muted);}
.dancer-preview{height:118px;width:100%;display:grid;place-items:center;border-radius:8px;background:var(--preview-bg,var(--bg));margin-bottom:5px;}
.dancer-preview .pixel-dancer{width:96px;height:104px;}
.dancer-rules{font-size:11px;padding-top:16px;border-top:1px solid var(--line);}
[data-character="cyberpunk"]{--preview-bg:#141124;--costume-primary:#67e4ed;--costume-secondary:#b563d9;--costume-trim:#f2a2ee;--costume-hair:#6b5d89;--costume-skin:#d5b2a4;--costume-shoe:#e5eaf8;}
[data-character="bollywood"]{--preview-bg:#2b1724;--costume-primary:#d27397;--costume-secondary:#ae526c;--costume-trim:#ffd27d;--costume-hair:#69505b;--costume-skin:#b97d5e;--costume-shoe:#f4bb78;}
[data-character="breakdance"]{--preview-bg:#17251f;--costume-primary:#8bd4bd;--costume-secondary:#709289;--costume-trim:#eee8c8;--costume-hair:#535d54;--costume-skin:#c89672;--costume-shoe:#eee8d7;}
[data-character="ballet"]{--preview-bg:#291f2b;--costume-primary:#efb7d0;--costume-secondary:#dfc7c2;--costume-trim:#fae4ef;--costume-hair:#9c737f;--costume-skin:#dcb7a5;--costume-shoe:#f7d4e7;}
[data-character] .pixel-dancer{--dancer-shirt:var(--costume-primary);--dancer-pants:var(--costume-secondary);--dancer-trim:var(--costume-trim);--dancer-hair:var(--costume-hair);--dancer-skin:var(--costume-skin);--dancer-shade:color-mix(in srgb,var(--costume-skin) 75%,#503746);--dancer-shoe:var(--costume-shoe);}
@media(max-width:600px){.dancer-cast{grid-template-columns:1fr 1fr;gap:10px;}.dancer-card{padding:12px 8px;}.dancer-open{font-size:10px;padding:7px 9px;}}

/* Phone layout: safe areas, thumb targets and a compact typing view above iOS keys. */
.mobile-controls{display:none;}
@media(max-width:600px){
 html{-webkit-text-size-adjust:100%;scroll-padding-top:12px;}
 body{min-height:100svh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);}
 header{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;height:auto;min-height:0;padding:calc(10px + env(safe-area-inset-top)) 16px 0;}
 header .brand{grid-column:1/3;font-size:21px;gap:8px;min-height:44px;}.brand .logo{width:29px;height:29px;font-size:27px;}.brand .beta{display:none;}
 header .appearance-open{grid-column:3;grid-row:1;justify-self:end;min-width:44px;min-height:44px;margin:0;}
 header .account-open{grid-column:4;grid-row:1;min-height:44px;margin:0;font-size:11px;max-width:100%;padding:8px;}
 header .keyboard-profile-open{grid-column:1/3;grid-row:2;width:100%;max-width:none;min-height:44px;margin:0;text-align:left;}
 header .dancer-open{grid-column:3/5;grid-row:2;min-height:44px;font-size:12px;}
 header nav{grid-column:1/-1;grid-row:3;display:grid;grid-template-columns:repeat(3,1fr);width:100%;height:48px;gap:0;}header .nav{min-height:44px;font-size:12px;}
 main{padding:0 12px;min-width:0;}#test{padding-top:14px;}.page:not(#test){padding:24px 0;}.page:not(#test) h1{font-size:35px;letter-spacing:-1.5px;}
 .daily-entry{padding:15px 44px 15px 16px;margin:0 0 14px;gap:10px;}.daily-entry h2{font-size:21px;margin:8px 0;}.daily-entry p{font-size:11px;margin:0;}.daily-entry .drill-start-button{min-height:44px;width:100%;font-size:12px;}.daily-dismiss{min-width:44px;min-height:44px;right:3px;top:3px;}
 .test-wrap{padding:0 14px;border-radius:12px;}.toolbar{display:flex;flex-wrap:wrap;gap:12px;padding:12px 0;}.modes{display:flex;flex-wrap:wrap;gap:4px;width:100%;}.toolbar button{min-height:40px;padding:8px 10px;}.modes .divider{display:none;}.difficulty-control{width:100%;}.difficulty-control input[type=range]{height:28px;margin:0;}.durations{width:100%;display:flex;gap:7px;}.durations button{flex:1;min-height:40px;}
 .test-meta{padding-top:12px;min-height:38px;gap:8px;}#test-state{font-size:10px;margin-left:auto;margin-right:6px;}#countdown{font-size:20px;white-space:nowrap;}
 .typing-feedback{height:78px;}.pixel-dancer,.dancer-fire{width:72px;height:78px;}
 #typing-area{height:116px;margin:2px auto 12px;}#words{font-size:21px;line-height:1.75;letter-spacing:0;}#assessment-area{height:132px;margin:2px auto 12px;}#assessment-words{font-size:21px;line-height:1.75;}
 #input,#assessment-input{font-size:16px;touch-action:manipulation;}
 .test-bottom{display:flex;flex-wrap:wrap;gap:8px;padding:10px 0;}.start-label{font-size:9px;flex:1;min-width:130px;}.shortcut,.flow-enter-hint{display:none!important;}#restart{min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;font-size:20px;}#restart span{font-size:11px;}.test-bottom .soft-btn,.test-bottom .text-button{min-height:44px;}
 .below{flex-direction:column;align-items:stretch;gap:16px;margin:20px 0 30px;}.insight-teaser{width:100%;}.session-note p{font-size:11px;}
 footer{padding:20px 16px calc(20px + env(safe-area-inset-bottom));flex-direction:column;align-items:flex-start;gap:12px;}footer>div{flex-wrap:wrap;line-height:1.8;}
 input:not([type=range]):not([type=color]):not([type=checkbox]),textarea,select{font-size:16px!important;}
 dialog{width:calc(100vw - 24px);max-width:calc(100vw - 24px);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px);padding:24px 18px;border-radius:16px;overscroll-behavior:contain;}dialog h2{font-size:26px;}.close{min-width:44px;min-height:44px;top:4px;right:4px;}
 #dancer-dialog{width:calc(100vw - 24px);}.dancer-cast{gap:9px;margin:18px 0;}.dancer-preview{height:100px;}.dancer-card small{font-size:10px;}.dancer-card{min-width:0;}.dancer-option{gap:12px;}.dancer-option>span{min-width:0;}
 button,a.primary,.soft-btn,keystone-choice>button{touch-action:manipulation;}keystone-choice{max-width:100%;}keystone-choice>button{min-height:40px;}.keyboard-layout-options,.profile-name-row{flex-wrap:wrap;}.profile-name-row input{width:100%;flex-basis:100%;}
 .section-top{flex-wrap:wrap;gap:12px;}.stats{grid-template-columns:1fr 1fr;gap:10px;}.stat{padding:16px;}.panel{min-width:0;padding:16px;}.analytics-grid,.training-columns{grid-template-columns:1fr;gap:16px;}.training-input-row{flex-wrap:wrap;}.training-input-row input{flex-basis:100%;}
 .results-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;}.results-grid>.panel{padding:13px;min-width:0;}.test-wrap:has(#result:not([hidden])){padding:0 10px;}.test-wrap:has(#result:not([hidden])) #result{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:22px 4px;}.results-grid .panel-heading{flex-direction:column;align-items:flex-start;gap:7px;}.results-grid .panel-heading>span{font-size:10px;}
 .session-graph-scroll svg{width:100%;height:auto;min-width:0;}.session-graph svg text{font-size:12px;}.pace-speed-toggle{display:flex;flex-wrap:wrap;gap:6px;}.pace-speed-toggle button{min-height:44px;}.pace-legend{font-size:10px;gap:8px 14px;}.results-grid .pace-highlights{gap:6px;}.results-grid .pace-highlights>div{padding:9px 7px;}.results-grid .pace-highlights strong{font-size:20px;}.results-grid .pace-highlights small{font-size:8px;}
 .typing-visual-toolbar{flex-wrap:wrap;gap:10px;}.key-visual-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}.visual-keyboard{min-width:520px;}.hand-visuals{grid-template-columns:1fr;}.table-scroll{max-width:100%;overflow:auto;}.choice-field{min-width:0;}
 body.mobile-typing header,body.mobile-typing #daily-suggestion,body.mobile-typing #daily-status,body.mobile-typing .toolbar,body.mobile-typing .below,body.mobile-typing footer{display:none!important;}
 body.mobile-typing main{padding:8px 8px calc(8px + env(safe-area-inset-bottom));}body.mobile-typing #test{padding-top:0;}body.mobile-typing .test-wrap{padding:0 12px;box-shadow:none;}
 body.mobile-typing .mobile-controls{display:block;min-height:40px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;color:var(--green);font-size:11px;}
 body.mobile-typing .typing-feedback{height:65px;}body.mobile-typing .pixel-dancer,body.mobile-typing .dancer-fire{width:60px;height:65px;}body.mobile-typing #typing-area{height:clamp(80px,calc(var(--visual-height,100dvh) - 190px),116px);}body.mobile-typing .test-meta{padding-top:4px;}body.mobile-typing .test-bottom{padding:6px 0;}
}
@media(orientation:landscape) and (max-height:500px) and (pointer:coarse){header{padding-top:0;}body.mobile-typing header,body.mobile-typing .toolbar,body.mobile-typing #daily-suggestion,body.mobile-typing .below,body.mobile-typing footer{display:none!important;}.typing-feedback{height:52px;}.pixel-dancer,.dancer-fire{width:48px;height:52px;}body.mobile-typing .mobile-controls{display:block;}#typing-area{height:85px;}#words{font-size:20px;line-height:1.6;}}

.dancer-fire{opacity:.75;}#typing-dancer[data-stumble="true"] .dancer-caption{color:var(--orange);}

/* Crisp, shaded pixel sprites; only the joints interpolate between keystrokes. */
.dancer-sprite-slot{display:flex;align-items:flex-end;justify-content:center;line-height:0;position:relative;z-index:1;}
.dancer-sprite-v2{--sprite-outline:color-mix(in srgb,var(--costume-hair) 45%,#10131e);--sprite-highlight:color-mix(in srgb,var(--dancer-shirt) 55%,var(--dancer-trim));--sprite-shadow:color-mix(in srgb,var(--dancer-shirt) 60%,#18202c);--sprite-floor:color-mix(in srgb,var(--green) 18%,transparent);}
.dancer-preview .dancer-sprite-v2{width:112px;height:126px;}.dancer-preview{height:134px;overflow:hidden;}
@media(max-width:600px){.dancer-preview{height:112px;}.dancer-preview .dancer-sprite-v2{width:96px;height:108px;}}

/* Keep the last dance pose alongside results and long insight pages. */
.stats-dancer-rail{position:fixed;right:18px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:30;padding:5px 8px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--bg) 90%,transparent);box-shadow:0 4px 20px #0002;pointer-events:none;}
.stats-dancer-rail[hidden]{display:none;}
@media(max-width:600px){.stats-dancer-rail{right:calc(10px + env(safe-area-inset-right));bottom:calc(10px + env(safe-area-inset-bottom));padding:2px 4px;}.stats-dancer-rail .pixel-dancer,.stats-dancer-rail .dancer-fire{width:60px;height:65px;}}

/* Travel is driven by the same pose timeline, so pauses and deletion preserve it. */
#typing-dancer{--dancer-range:clamp(24px,8vw,84px);transform:translateX(calc(var(--dancer-travel,0) * var(--dancer-range)));}
.stats-dancer-rail #typing-dancer{--dancer-range:10px;}
.dancer-sprite-v3{--sprite-outline:color-mix(in srgb,var(--costume-hair) 45%,#10131e);--sprite-floor:color-mix(in srgb,var(--green) 18%,transparent);image-rendering:pixelated;}
.dancer-preview .dancer-sprite-v3{width:112px;height:126px;}
@media(max-width:600px){.dancer-preview .dancer-sprite-v3{width:96px;height:108px;}}
@media(prefers-reduced-motion:reduce){#typing-dancer{transform:none;}}

/* A bounded dance area: characters plant and lift their feet within its edges. */
.typing-feedback.dance-stage{--stage-sprite-width:96px;--stage-sprite-height:108px;position:relative;display:block;width:100%;max-width:420px;height:132px;min-height:0;margin:0 auto 4px;overflow:hidden;pointer-events:none;}
.dance-stage #typing-dancer,.dance-stage .dance-guest{position:absolute;left:50%;bottom:4px;right:auto;top:auto;display:block;width:var(--stage-sprite-width,96px);height:var(--stage-sprite-height,108px);transform:translateX(calc(-50% + var(--actor-x,0px)));padding:0;margin:0;}
.dance-stage .dance-actor .pixel-dancer,.dance-stage .dance-actor .dancer-fire{width:var(--stage-sprite-width,96px);height:var(--stage-sprite-height,108px);}
.dance-guest[hidden]{display:none!important;}
.stats-dancer-rail.dance-stage{--stage-sprite-width:96px;--stage-sprite-height:108px;position:fixed;width:300px;max-width:calc(100vw - 24px);height:132px;overflow:hidden;padding:0;}
.dance-guest[data-fire="1"] .fire-small,.dance-guest[data-fire="2"] .fire-large{opacity:1;animation:pixel-fire .6s steps(2,end) infinite;}
@media(max-width:600px){.typing-feedback.dance-stage{--stage-sprite-width:72px;--stage-sprite-height:81px;height:100px;max-width:100%;}body.mobile-typing .typing-feedback.dance-stage{--stage-sprite-width:64px;--stage-sprite-height:72px;height:82px;}.stats-dancer-rail.dance-stage{--stage-sprite-width:72px;--stage-sprite-height:81px;width:220px;height:102px;}}
@media(prefers-reduced-motion:reduce){.dance-guest .fire-small,.dance-guest .fire-large{animation:none!important;}}

/* The stage stays anchored while dancers perform inside it. */
:root{--app-header-height:105px;--fixed-stage-height:132px;}
body{padding-top:calc(var(--app-header-height) + var(--fixed-stage-height) + 12px);}
body.dance-stage-off{padding-top:calc(var(--app-header-height) + 12px);}
header,body:has(#test:not([hidden]) #result:not([hidden])) header{position:fixed;top:0;left:50%;transform:translateX(-50%);width:100%;height:105px;z-index:45;background:var(--bg);}
#dance-stage-band{position:fixed;left:0;right:0;top:var(--app-header-height);height:var(--fixed-stage-height);z-index:40;background:var(--bg);border-bottom:1px solid var(--line);pointer-events:none;}
#dance-stage-band[hidden]{display:none;}
#dance-stage-band .stats-dancer-rail.dance-stage{position:relative;inset:auto;--stage-sprite-width:96px;--stage-sprite-height:108px;width:360px;max-width:calc(100vw - 24px);height:100%;margin:0 auto;border:0;border-radius:0;box-shadow:none;background:transparent;overflow:hidden;}
.typing-feedback{display:none!important;height:0!important;min-height:0!important;margin:0!important;}
#test{padding-top:0;}.page:not(#test){padding-top:24px;}
.test-wrap{display:flex;flex-direction:column;}.test-wrap>.toolbar{order:20;border-top:1px solid var(--line);border-bottom:0;}.test-wrap>.test-meta{order:0;padding-top:10px;min-height:36px;}.test-wrap>#typing-area,.test-wrap>#result{order:1;}.test-wrap>.results-grid,.test-wrap>#flow-status{order:2;}.test-wrap>#lesson-status{order:3;}.test-wrap>.test-bottom{order:4;}
@media(max-width:900px){header,body:has(#test:not([hidden]) #result:not([hidden])) header{height:auto;min-height:0;}}
@media(max-width:600px){:root{--fixed-stage-height:100px;--app-header-height:146px;}body.mobile-typing header{display:grid!important;}#dance-stage-band .stats-dancer-rail.dance-stage{--stage-sprite-width:72px;--stage-sprite-height:81px;width:300px;}body.mobile-typing main{padding-top:0;}body.mobile-typing .test-meta{padding-top:4px;}body.mobile-typing #typing-area{height:clamp(74px,calc(var(--visual-height,100dvh) - var(--app-header-height) - var(--fixed-stage-height) - 100px),116px);}#test{padding-top:0;}}
@media(orientation:landscape) and (max-height:500px) and (pointer:coarse){:root{--fixed-stage-height:64px;}body.mobile-typing header{display:flex!important;}#dance-stage-band .stats-dancer-rail.dance-stage{--stage-sprite-width:48px;--stage-sprite-height:54px;}}

/* Pixel scenery stays fixed; the incoming scene wipes across with the entrant. */
#dance-stage-band .stats-dancer-rail.dance-stage{z-index:1;}
.stage-scene{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.stage-scene svg{display:block;width:100%;height:100%;image-rendering:pixelated;}
.stage-scene-incoming{z-index:0;will-change:opacity;}
.stage-scene[hidden]{display:none!important;}
.stage-lamp{animation:stage-light 2.4s steps(2,end) infinite;animation-delay:var(--lamp-delay,0s);}
@keyframes stage-light{0%,100%{opacity:1}50%{opacity:.72}}
@media(prefers-reduced-motion:reduce){.stage-lamp{animation:none;}}

/* Keep the stage in document flow so it scrolls away with the page. */
body{padding-top:var(--app-header-height);}
body.dance-stage-off{padding-top:calc(var(--app-header-height) + 12px);}
#dance-stage-band{position:relative;inset:auto;margin-bottom:12px;}

/* Full-width pixel theatre; crisp game accents with quiet, modern panels. */
html,body,main,.test-wrap{overflow-anchor:none;}
:root{--fixed-stage-height:184px;}
#dance-stage-band{margin-bottom:0;border-bottom:3px solid var(--line);}
#dance-stage-band .stats-dancer-rail.dance-stage{width:100%;max-width:none;--stage-sprite-width:128px;--stage-sprite-height:144px;}
#dance-stage-band .dance-actor{bottom:7px;}
header{max-width:none;}
.logo{font-family:'IBM Plex Mono',monospace;font-size:20px;border-radius:3px;box-shadow:3px 3px 0 var(--soft);}
.brand{letter-spacing:-.8px;}.eyebrow,.test-meta,.wallet-label,.combo-badge{font-family:'IBM Plex Mono',monospace;}
.test-wrap,.panel{border-radius:8px;}
.primary,.drill-start-button{border-radius:4px;box-shadow:3px 3px 0 var(--soft);}
.beat-wallet{max-width:1080px;margin:0 auto 20px;display:flex;align-items:center;gap:28px;min-height:58px;border-bottom:1px solid var(--line);font-size:12px;padding:12px 0;}
.beat-wallet>div{display:flex;align-items:center;gap:10px;}.beat-wallet strong{margin-left:8px;font-family:'IBM Plex Mono',monospace;color:var(--ink);}.beat-wallet small{margin-left:auto;color:var(--muted);font-size:10px;}.wallet-label{color:var(--muted);font-size:9px;letter-spacing:1px;}
.gold-coin{width:13px;height:13px;display:block;background:#e5bc68;border:3px solid #99723f;box-shadow:2px 0 #e5bc68,-2px 0 #e5bc68,0 2px #e5bc68,0 -2px #e5bc68;}.score-spark{color:var(--green);font-size:22px;}
.dance-judges{order:1;margin:20px 0 6px;padding:22px;border:1px solid var(--line);border-radius:8px;background:var(--surface);}
.dance-judges[hidden]{display:none;}.judges-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;}.judges-heading h3{margin:5px 0 0;font-size:20px;font-weight:500;letter-spacing:-.5px;}.combo-badge{font-size:9px;letter-spacing:.5px;padding:8px 10px;background:var(--soft);color:var(--green);border:1px solid var(--line);white-space:nowrap;}
.judge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}.judge-card{display:flex;gap:14px;border-top:2px solid var(--green);padding:18px 0 10px;}.judge-card svg{width:44px;height:44px;flex-shrink:0;image-rendering:pixelated;}.judge-card span{font:9px 'IBM Plex Mono',monospace;color:var(--muted);letter-spacing:.5px;}.judge-card strong{display:block;font:32px 'IBM Plex Mono',monospace;line-height:1.4;}.judge-card strong small{font-size:12px;color:var(--muted);margin-left:4px;}.judge-card p{font-size:11px;color:var(--muted);margin:5px 0;line-height:1.6;}
.award-strip{display:flex;gap:30px;align-items:center;background:var(--soft);padding:16px 20px;margin-top:14px;border-radius:4px;}.award-strip>div{display:flex;flex-direction:column;gap:4px;white-space:nowrap;}.award-strip span{font:22px 'IBM Plex Mono',monospace;color:var(--green);}.award-strip small{font:8px 'IBM Plex Mono',monospace;letter-spacing:1px;}.award-strip p{margin:0 0 0 auto;font-size:11px;line-height:1.8;color:var(--muted);text-align:right;}.judge-rules{font-size:11px;color:var(--muted);margin-top:16px;line-height:1.8;}.judge-rules summary{cursor:pointer;}.judge-rules p{max-width:850px;}
@media(min-width:1600px){main{max-width:1320px;}.beat-wallet{max-width:1260px;}:root{--fixed-stage-height:200px;}}
@media(max-width:1140px){.beat-wallet{margin-left:30px;margin-right:30px;}}
@media(max-width:700px){.beat-wallet{gap:15px;flex-wrap:wrap;margin:0 18px 12px;padding:12px 0;}.wallet-label{display:none;}.beat-wallet small{width:100%;margin:0;font-size:9px;}.judge-grid{gap:12px;}.judge-card{display:block;}.judge-card svg{width:32px;height:32px;margin-bottom:6px;}.judge-card span{font-size:8px;}.judge-card p{font-size:10px;}.dance-judges{padding:15px;}.judges-heading h3{font-size:16px;}.combo-badge{font-size:8px;padding:7px;}.award-strip{flex-wrap:wrap;gap:16px;}.award-strip p{width:100%;text-align:left;margin:0;}}
@media(max-width:600px){:root{--fixed-stage-height:120px;}#dance-stage-band .stats-dancer-rail.dance-stage{width:100%;--stage-sprite-width:80px;--stage-sprite-height:90px;}.beat-wallet strong{margin-left:4px;}body.mobile-typing .beat-wallet{display:none;}}
@media(orientation:landscape) and (max-height:500px) and (pointer:coarse){:root{--fixed-stage-height:74px;}#dance-stage-band .stats-dancer-rail.dance-stage{--stage-sprite-width:48px;--stage-sprite-height:54px;}}

/* Angular arcade shell: pixels for identity, clean space for concentration. */
body *,body *::before,body *::after{border-radius:0!important;}
.brand{gap:11px;}.brand .pixel-logo{display:block;background:none;color:var(--green);width:36px;height:36px;box-shadow:none;flex-shrink:0;}.pixel-logo svg{width:100%;height:100%;display:block;image-rendering:pixelated;}.pixel-wordmark{display:block;width:141px;height:21px;image-rendering:pixelated;}.brand .beta{margin-left:0;font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:1px;padding:4px;}
h1,h2,h3,h4,.nav,.primary,.soft-btn,.drill-start-button,.account-open,.keyboard-profile-open,.dancer-open{font-family:'IBM Plex Mono',monospace;}
h1{font-weight:500;letter-spacing:-2px;}h1 em,h2 em{font-family:inherit;font-style:normal;color:var(--green);}h2{letter-spacing:-.8px;}h3{letter-spacing:-.5px;}.eyebrow{letter-spacing:1.6px;}
.panel,.test-wrap,.dance-judges,.practice-card,.insight-teaser,.adaptive-studio{box-shadow:3px 3px 0 var(--line);border:1px solid var(--line);}
.primary,.drill-start-button{box-shadow:3px 3px 0 color-mix(in srgb,var(--green) 30%,var(--bg));border:1px solid var(--green);}
.primary:active,.drill-start-button:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--line);}
.soft-btn,.account-open,.keyboard-profile-open,.dancer-open,.appearance-open{border:1px solid var(--line);}
.nav.active::after{height:3px;}.toolbar button.selected,.durations button.selected{box-shadow:inset 0 -2px var(--green);}
.stats .stat,.judge-card{border-top:2px solid var(--green);}.stat strong,.history-row strong{font-family:'IBM Plex Mono',monospace;}
dialog{border:1px solid var(--green);box-shadow:8px 8px 0 color-mix(in srgb,var(--bg) 75%,transparent);}.pace-tooltip,#toast{box-shadow:4px 4px 0 var(--line);border:1px solid var(--green);}
input[type=range]::-webkit-slider-thumb{border-radius:0!important;}input[type=range]::-moz-range-thumb{border-radius:0!important;}
footer .footer-mark{font-family:'IBM Plex Mono',monospace;font-weight:500;}
@media(max-width:900px){.pixel-wordmark{width:118px;height:18px;}.brand .pixel-logo{width:30px;height:30px;}.brand{gap:8px;}h1{letter-spacing:-1.5px;}}
@media(max-width:600px){.pixel-wordmark{width:112px;height:17px;}.brand .pixel-logo{width:28px;height:28px;}.brand .beta{font-size:6px;padding:3px;}h1{font-size:34px;}.panel,.test-wrap,.dance-judges{box-shadow:2px 2px 0 var(--line);}.nav{font-size:11px;}}

/* Keep the word viewport centred and fully sized inside the flex test panel. */
#typing-area{width:100%;max-width:960px;align-self:center;flex-shrink:0;margin:18px auto 22px;}
#words{width:100%;text-align:left;}
.test-wrap>.test-meta,.test-wrap>.test-bottom{width:100%;max-width:960px;align-self:center;}
#test-state:empty{display:none;}#countdown{margin-left:auto;}
@media(max-width:600px){#typing-area{margin:10px auto 16px;}}

/* Let the active test use the screen instead of nesting narrow containers. */
main:has(#test:not([hidden])){width:100%;max-width:none;padding-left:clamp(12px,2vw,40px);padding-right:clamp(12px,2vw,40px);}
#test .test-wrap{padding-left:clamp(12px,1.25vw,24px);padding-right:clamp(12px,1.25vw,24px);}
#typing-area,.test-wrap>.test-meta,.test-wrap>.test-bottom{max-width:none;}
#typing-area{margin-top:6px;margin-bottom:12px;}
.test-wrap>.test-meta{min-height:28px;padding-top:4px;}
.beat-wallet{width:auto;max-width:none;min-height:42px;margin:0 clamp(12px,2vw,40px) 8px;padding:6px 0;}
@media(min-width:601px){:root{--fixed-stage-height:156px;}}
@media(max-width:600px){.beat-wallet{padding:7px 0;gap:8px 15px;}#typing-area{margin-top:4px;margin-bottom:10px;}}
@media(orientation:landscape) and (max-height:500px) and (pointer:coarse){:root{--fixed-stage-height:74px;}}

/* A comfortable central workspace, including on ultrawide monitors. */
main:has(#test:not([hidden])){width:100%;max-width:1280px;margin-inline:auto;padding-inline:24px;}
#typing-area,.test-wrap>.test-meta,.test-wrap>.test-bottom{width:100%;max-width:1120px;margin-inline:auto;}
.beat-wallet{max-width:1232px;margin-inline:auto;padding-inline:0;}
@media(max-width:1280px){.beat-wallet{margin-inline:24px;}}
@media(max-width:600px){main:has(#test:not([hidden])){padding-inline:12px;}.beat-wallet{margin-inline:12px;}}

.gold-shop-open{display:flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid var(--green);color:var(--green);font:11px 'IBM Plex Mono',monospace;white-space:nowrap;box-shadow:2px 2px 0 var(--line);margin-left:auto;}
.beat-wallet small{margin-left:0;}#gold-shop-dialog{width:min(840px,calc(100vw - 32px));max-width:840px;padding:30px;max-height:calc(100dvh - 32px);overflow:auto;}#gold-shop-dialog h2{font-size:28px;margin:12px 0 22px;}
.shop-summary{display:flex;flex-wrap:wrap;gap:14px 28px;padding:14px 16px;background:var(--soft);border:1px solid var(--line);font-size:11px;}.shop-summary strong{font:16px 'IBM Plex Mono',monospace;display:block;margin-top:5px;color:var(--green);}.shop-items{margin-top:24px;display:grid;gap:14px;}.shop-item{display:grid;grid-template-columns:72px 1fr 134px;gap:18px;align-items:center;padding:20px;border:1px solid var(--line);box-shadow:3px 3px 0 var(--line);}.shop-item.owned{border-color:var(--green);}.shop-item-art{width:72px;height:72px;display:grid;place-items:center;background:var(--soft);color:var(--green);border:1px solid var(--line);}.shop-item-art svg{width:48px;height:48px;image-rendering:pixelated;}.shop-item h3{font-size:16px;margin:6px 0 10px;}.shop-item p{font-size:11px;line-height:1.6;margin:5px 0;}.shop-perks{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;}.shop-perks span{font:9px 'IBM Plex Mono',monospace;padding:5px 7px;background:var(--soft);color:var(--green);}.shop-item-buy{display:flex;flex-direction:column;gap:12px;align-items:stretch;text-align:center;}.shop-item-buy>strong{font:15px 'IBM Plex Mono',monospace;}.shop-item-buy small{font-size:9px;line-height:1.6;color:var(--muted);}.shop-item button{font-size:11px;padding:10px 12px;}.shop-item button:disabled{opacity:.45;cursor:default;box-shadow:none;}.shop-signin{padding:12px;background:var(--soft);font-size:12px;line-height:1.8;}.shop-signin a{text-decoration:underline;color:var(--green);}.shop-footnote{font-size:10px;}#shop-status{font-size:12px;color:var(--green);line-height:1.7;min-height:20px;}
@media(max-width:800px){.beat-wallet{gap:12px;flex-wrap:wrap;}.beat-wallet small{flex-basis:100%;}.gold-shop-open{margin-left:auto;}}
@media(max-width:600px){#gold-shop-dialog{padding:22px 16px;}.shop-item{grid-template-columns:48px 1fr;gap:14px;padding:15px;}.shop-item-art{width:48px;height:48px;}.shop-item-art svg{width:36px;height:36px;}.shop-item-buy{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;align-items:center;}.shop-item-buy small{grid-column:1/-1;}.shop-item h3{font-size:14px;}.shop-summary{gap:12px 22px;}.gold-shop-open{padding:7px 9px;font-size:10px;}}

.shop-filters{display:flex;flex-wrap:wrap;gap:6px;margin:20px 0 12px;}.shop-filters button{padding:8px 10px;border:1px solid var(--line);font:10px 'IBM Plex Mono',monospace;}.shop-filters button[aria-pressed=true]{background:var(--soft);color:var(--green);border-color:var(--green);}.shop-item .shop-scope{font:9px 'IBM Plex Mono',monospace;letter-spacing:.4px;color:var(--green);}.shop-item .shop-buff{font-size:10px;line-height:1.7;padding-left:9px;border-left:2px solid var(--green);margin-top:10px;}.stage-owned-props{position:absolute;inset:0;z-index:2;pointer-events:none;}.stage-owned-props[hidden]{display:none;}.stage-owned-prop{position:absolute;}.stage-owned-prop svg{display:block;width:100%;height:100%;image-rendering:pixelated;}.prop-spotlight-crown{width:72px;height:72px;bottom:0;left:max(12px,calc(50% - 220px));}.prop-disco-orb{width:86px;height:72px;top:0;left:50%;transform:translateX(-50%);}#dance-stage-band .dance-actor{z-index:3;}.prop-spark,.prop-mirror{animation:prop-glint 2.8s steps(2,end) infinite;}.prop-light-beams{animation:prop-glint 4s steps(3,end) infinite;}@keyframes prop-glint{0%,100%{opacity:1}50%{opacity:.4}}@media(max-width:600px){.prop-spotlight-crown{width:52px;height:52px;left:12px;}.prop-disco-orb{width:65px;height:54px;}}@media(prefers-reduced-motion:reduce){.prop-spark,.prop-mirror,.prop-light-beams{animation:none;}}

.stage-prop-wing{position:absolute;bottom:0;width:calc(50% - 104px);max-width:420px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-content:end;align-items:end;gap:0 6px;}.wing-left{right:calc(50% + 100px);direction:rtl;}.wing-right{left:calc(50% + 100px);}.stage-prop-wing .stage-owned-prop{position:relative;width:100%;height:48px;max-width:64px;justify-self:center;}.stage-prop-wing .stage-owned-prop svg{width:100%;height:100%;}.shop-collection{margin-top:20px;border-top:1px solid var(--line);padding-top:15px;font-size:11px;line-height:1.7;}.shop-collection summary{cursor:pointer;font-family:'IBM Plex Mono',monospace;}.shop-collection p{padding:8px 0;border-bottom:1px solid var(--line);}.prop-mist{animation:prop-glint 4s steps(4,end) infinite;}@media(max-width:700px){.stage-prop-wing{width:calc(50% - 70px);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;}.wing-left{right:calc(50% + 64px);}.wing-right{left:calc(50% + 64px);}.stage-prop-wing .stage-owned-prop{height:34px;max-width:42px;}}@media(prefers-reduced-motion:reduce){.prop-mist{animation:none;}}

.xp-hud{display:flex;gap:10px;align-items:center;min-width:172px;margin-left:auto;padding:9px 10px;border:1px solid var(--line);font-family:'IBM Plex Mono',monospace;}.xp-level{display:flex;flex-direction:column;gap:2px;border-right:1px solid var(--line);padding-right:10px;}.xp-level span{font-size:7px;letter-spacing:1px;color:var(--muted);}.xp-level strong{font-size:18px;color:var(--green);line-height:1.2;}.xp-detail{flex:1;min-width:90px;}.xp-detail>div:first-child{display:flex;justify-content:space-between;gap:12px;align-items:center;}.xp-detail strong{font-size:10px;font-weight:500;}.xp-detail small{font-size:8px;color:var(--muted);white-space:nowrap;}.xp-track{height:5px;background:var(--soft);margin-top:8px;}.xp-track i{display:block;height:100%;background:var(--green);transition:width .35s steps(10,end);}header{gap:clamp(10px,1.5vw,24px);}.shop-item-art svg{max-width:100%;}.shop-filters{position:sticky;top:-30px;background:var(--bg);padding-block:10px;z-index:1;}@media(max-width:900px){.xp-hud{min-width:158px;margin-left:0;}}@media(max-width:600px){header .xp-hud{grid-column:3/5;grid-row:2;min-width:0;width:100%;margin:0;min-height:44px;padding:6px 9px;}.xp-level strong{font-size:16px;}.xp-detail{min-width:0;}.xp-detail strong{font-size:9px;}.xp-detail small{font-size:7px;}.xp-track{margin-top:6px;}.shop-filters{top:-22px;}}@media(prefers-reduced-motion:reduce){.xp-track i{transition:none;}}

@media(min-width:601px) and (max-width:1200px){header,body:has(#test:not([hidden]) #result:not([hidden])) header{height:auto;min-height:0;flex-wrap:wrap;padding:12px 24px 0;}header nav{order:10;flex-basis:100%;height:44px;justify-content:center;}header .nav{min-height:44px;}header .xp-hud{margin-left:auto;}}

.stage-prop-wing{height:calc(100% - 8px);grid-template-rows:repeat(var(--rows-lg,1),minmax(0,1fr));}.stage-prop-wing .stage-owned-prop{height:100%;max-height:48px;}@media(max-width:700px){.stage-prop-wing{grid-template-rows:repeat(var(--rows-sm,1),minmax(0,1fr));}.stage-prop-wing .stage-owned-prop{height:100%;max-height:34px;}}

.insight-keyboard-scope{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:24px 0 8px;padding:14px 16px;border:1px solid var(--line);background:var(--surface);}.insight-keyboard-scope>label{font:11px 'IBM Plex Mono',monospace;}.insight-keyboard-scope select{padding:9px 12px;color:var(--ink);background:var(--bg);border:1px solid var(--line);font:11px 'IBM Plex Mono',monospace;max-width:100%;}.insight-keyboard-checks{flex-basis:100%;display:flex;flex-wrap:wrap;gap:12px 20px;border:0;padding:8px 0;margin:0;}.insight-keyboard-checks[hidden]{display:none;}.insight-keyboard-checks legend{font-size:10px;color:var(--muted);padding-bottom:8px;}.insight-keyboard-checks label{display:flex;align-items:center;gap:7px;font-size:12px;}.insight-keyboard-checks input{accent-color:var(--green);width:16px;height:16px;}

/* A game-store window, with clear item cards and separate owned inventory. */
#gold-shop-dialog{width:min(1220px,calc(100vw - 32px));max-width:1220px;padding:0;max-height:calc(100dvh - 32px);background:var(--bg);overflow:auto;}#gold-shop-dialog>.close{position:absolute;right:12px;top:12px;z-index:5;}
#gold-shop-dialog .store-header{position:relative;inset:auto;transform:none;width:100%;max-width:none;height:auto;min-height:124px;padding:24px 64px 24px 24px;display:flex;gap:18px;border-bottom:1px solid var(--line);background:var(--surface);z-index:auto;margin:0;}#gold-shop-dialog .store-header h2{margin:6px 0;font-size:25px;letter-spacing:-1px;}#gold-shop-dialog .store-header p{margin:0;color:var(--muted);font-size:12px;}.merchant-portrait{width:68px;height:68px;flex-shrink:0;border:1px solid var(--line);background:var(--soft);box-shadow:3px 3px 0 var(--line);}.merchant-portrait svg{width:100%;height:100%;image-rendering:pixelated;}.store-gold{margin-left:auto;display:flex;flex-direction:column;text-align:right;gap:5px;}.store-gold>small{font:8px 'IBM Plex Mono',monospace;color:var(--muted);letter-spacing:1px;}.store-gold strong{font:28px 'IBM Plex Mono',monospace;color:var(--green);}.store-gold>span{font-size:10px;color:var(--muted);white-space:nowrap;}
.store-view-tabs{display:flex;align-items:center;gap:5px;padding:12px 24px;border-bottom:1px solid var(--line);}.store-view-tabs button{padding:10px 16px;font:11px 'IBM Plex Mono',monospace;border:1px solid var(--line);}.store-view-tabs button[aria-pressed=true]{color:var(--bg);background:var(--green);border-color:var(--green);}.store-view-tabs button small{font-size:9px;margin-left:7px;}.store-view-tabs>span{margin-left:auto;font-size:10px;color:var(--muted);}
.store-layout{display:grid;grid-template-columns:190px minmax(0,1fr);min-height:340px;}.store-sidebar{padding:22px 16px;border-right:1px solid var(--line);}.store-sidebar .shop-filters{position:static;display:flex;flex-direction:column;gap:6px;margin:10px 0 24px;padding:0;background:transparent;}.store-sidebar .shop-filters button{text-align:left;padding:11px 10px;font-size:10px;}.store-loadout{padding-top:18px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px;}.store-loadout>small{font:8px 'IBM Plex Mono',monospace;color:var(--muted);}.store-loadout>strong{font-size:11px;font-weight:500;}.store-loadout>span{font:9px 'IBM Plex Mono',monospace;color:var(--green);}.store-loadout>p{font-size:10px;color:var(--muted);line-height:1.7;margin:0;}
.store-shelf{padding:22px;min-width:0;}.store-shelf-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;}.store-shelf-heading h3{font-size:17px;margin:0 0 6px;}.store-shelf-heading span{font-size:10px;color:var(--muted);}.store-search input{width:180px;max-width:100%;border:1px solid var(--line);padding:10px;background:var(--surface);color:var(--ink);font:10px 'IBM Plex Mono',monospace;}.store-item-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start;}.store-item-card{border:1px solid var(--line);background:var(--surface);box-shadow:3px 3px 0 var(--line);min-width:0;display:flex;flex-direction:column;align-self:stretch;}.store-item-card[hidden]{display:none;}.store-card-top{display:flex;justify-content:space-between;gap:7px;padding:10px 11px;font:7px 'IBM Plex Mono',monospace;letter-spacing:.3px;color:var(--muted);border-bottom:1px solid var(--line);}.store-card-top>b{color:var(--green);white-space:nowrap;font-weight:500;}.store-item-art{height:118px;display:grid;place-items:center;background-color:var(--soft);background-image:linear-gradient(45deg,color-mix(in srgb,var(--line) 30%,transparent) 25%,transparent 25%,transparent 75%,color-mix(in srgb,var(--line) 30%,transparent) 75%),linear-gradient(45deg,color-mix(in srgb,var(--line) 30%,transparent) 25%,transparent 25%,transparent 75%,color-mix(in srgb,var(--line) 30%,transparent) 75%);background-position:0 0,8px 8px;background-size:16px 16px;border-bottom:1px solid var(--line);color:var(--green);}.store-item-art svg{width:82px;height:82px;image-rendering:pixelated;}.store-card-body{padding:14px 12px;flex:1;}.store-card-body h4{font-size:13px;margin:0 0 9px;letter-spacing:-.3px;}.store-unlock{font-size:9px;color:var(--muted);line-height:1.6;min-height:28px;margin:0 0 12px;}.store-card-stats{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px;}.store-card-stats>div{display:flex;flex-direction:column;gap:5px;}.store-card-stats small{font:7px 'IBM Plex Mono',monospace;color:var(--muted);}.store-card-stats strong{font:11px 'IBM Plex Mono',monospace;color:var(--green);}.store-card-stats i{font-style:normal;color:var(--muted);}.store-card-details{font-size:10px;color:var(--muted);line-height:1.7;}.store-card-details summary{cursor:pointer;color:var(--ink);}.store-card-details p{margin:8px 0 0;font-size:10px;}
.store-card-buy{padding:12px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;}.store-price{font:15px 'IBM Plex Mono',monospace;}.store-price small{font-size:9px;color:var(--muted);}.store-card-buy button{font-size:10px;padding:9px 11px;}.store-card-buy button:disabled{opacity:.4;cursor:default;box-shadow:none;}.store-card-buy>small{grid-column:1/-1;font-size:9px;color:var(--muted);line-height:1.5;}.store-owned{font:9px 'IBM Plex Mono',monospace;color:var(--green);grid-column:1/-1;}.store-empty{padding:30px 12px;color:var(--muted);font-size:12px;grid-column:1/-1;}#gold-shop-dialog .store-footer{display:block;padding:14px 24px;border-top:1px solid var(--line);margin:0;background:var(--surface);font-size:10px;}.store-footer #shop-status{margin:0 0 5px;min-height:0;}.store-footer>small{font-size:9px;color:var(--muted);}
@media(max-width:1050px){.store-item-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.store-layout{grid-template-columns:164px minmax(0,1fr);}.store-shelf{padding:18px;}.store-view-tabs>span{display:none;}}
@media(max-width:700px){#gold-shop-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);}#gold-shop-dialog .store-header{padding:18px 45px 18px 16px;gap:12px;min-height:100px;flex-wrap:wrap;}#gold-shop-dialog .store-header h2{font-size:19px;}.merchant-portrait{width:48px;height:48px;}.store-gold{flex-basis:100%;flex-direction:row;text-align:left;align-items:center;gap:12px;margin:0;}.store-gold strong{font-size:22px;}.store-gold>span{margin-left:auto;font-size:9px;}.store-layout{display:block;}.store-sidebar{padding:14px 16px 0;border-right:0;border-bottom:1px solid var(--line);}.store-sidebar>.eyebrow,.store-loadout{display:none;}.store-sidebar .shop-filters{display:flex;flex-direction:row;flex-wrap:wrap;gap:6px;margin:0 0 14px;}.store-sidebar .shop-filters button{font-size:9px;padding:8px;}.store-view-tabs{padding:12px 16px;}.store-view-tabs button{font-size:10px;padding:9px 12px;}.store-shelf{padding:16px;}.store-shelf-heading{gap:10px;}.store-shelf-heading h3{font-size:15px;}.store-search input{width:140px;}.store-item-grid{gap:12px;}.store-item-art{height:98px;}.store-item-art svg{width:68px;height:68px;}.store-card-top{font-size:6px;padding:8px;}.store-card-body{padding:12px 10px;}.store-card-buy{padding:10px;gap:8px;}.store-card-buy button{padding:8px;font-size:9px;}.store-price{font-size:12px;}#gold-shop-dialog .store-footer{padding:14px 16px;}}
@media(max-width:380px){.store-item-grid{grid-template-columns:1fr;}.store-shelf-heading{flex-wrap:wrap;}}

.history-loading{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:10px 0 18px;padding:12px 14px;border:1px solid var(--line);}.history-loading[hidden]{display:none;}.history-loading>span{font-size:11px;color:var(--muted);margin-right:auto;}.history-loading button{font-size:11px;}#dance-stage-band .dance-stage{--ground-height:24px;}.stage-ground{position:absolute;left:0;right:0;bottom:0;height:var(--ground-height);border-top:2px solid;z-index:1;pointer-events:none;}#dance-stage-band .dance-actor{bottom:calc(var(--ground-height) - var(--stage-sprite-height) / 9);}#dance-stage-band .dance-actor::after{content:'';position:absolute;left:50%;bottom:calc(var(--stage-sprite-height) / 9 - 2px);width:38%;height:3px;background:#0003;transform:translateX(-50%);z-index:-1;}@media(max-width:600px){#dance-stage-band .dance-stage{--ground-height:14px;}.history-loading>span{flex-basis:100%;}}

.lucky-machine{display:flex;align-items:center;justify-content:center;gap:40px;padding:32px;margin:20px 0;background:var(--bg);border:2px solid var(--border)}
.pixel-chest{width:132px;height:100px;flex-shrink:0;border:8px solid #7a532d;background:linear-gradient(#dfb958 0 35%,#6c4928 35% 43%,#bb8d39 43%);box-shadow:8px 8px 0 #0004;display:grid;place-items:center;color:#fff0ba;font-size:42px;font-weight:900;image-rendering:pixelated}
.lucky-controls{max-width:430px}.lucky-controls p{margin:10px 0}.lucky-controls small{display:block;margin-top:12px;color:var(--muted)}.lucky-controls button{font-size:16px;padding:14px 28px}
.lucky-odds{display:flex;flex-wrap:wrap;gap:8px}.lucky-odds span{padding:8px 12px;border:1px solid var(--rarity);color:var(--rarity);font-size:12px}.lucky-explainer{font-size:12px;color:var(--muted);margin:12px 0}
.rarity-card{border-top:3px solid var(--rarity)}.rarity-card .store-card-top>span{color:var(--rarity)}.lucky-reveal{display:flex;gap:20px;align-items:center;padding:24px;border:2px solid var(--rarity);margin:20px 0;background:var(--bg)}.lucky-reveal[hidden]{display:none}.lucky-reveal>svg{width:80px;height:80px;color:var(--rarity)}.lucky-reveal small{color:var(--rarity)}.lucky-reveal p{margin-top:8px}.is-spinning .pixel-chest{animation:box-rattle .18s steps(2) infinite}@keyframes box-rattle{50%{transform:translateY(-5px) rotate(4deg)}}
.away-gold-notice{position:fixed;z-index:1200;top:76px;right:20px;display:flex;gap:14px;align-items:center;max-width:440px;padding:20px;background:var(--panel,var(--bg));border:2px solid var(--accent);box-shadow:6px 6px 0 #0006}.away-gold-notice[hidden]{display:none}.away-gold-notice p{margin:6px 0}.away-gold-notice small{color:var(--muted);font-size:11px}.away-gold-notice button{align-self:flex-start;padding:4px 8px}
@media(max-width:600px){.lucky-machine{flex-direction:column;gap:24px;padding:24px 16px}.lucky-controls{text-align:center}.away-gold-notice{left:12px;right:12px;top:70px}.lucky-reveal{padding:16px;gap:12px}.lucky-reveal>svg{width:56px;flex-shrink:0}}
@media(prefers-reduced-motion:reduce){.is-spinning .pixel-chest{animation:none}}

.box-browser{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:18px 0}.box-browser label{display:grid;gap:6px;font-size:11px;color:var(--muted)}.box-browser select{padding:10px;background:var(--bg);color:var(--text);border:1px solid var(--border);font:inherit;min-width:130px}.box-browser>span{margin-left:auto;font-size:12px;color:var(--muted);padding-bottom:10px}
.rarity-legendary .store-item-art,.rarity-mythic .store-item-art,.rarity-secret .store-item-art{background:radial-gradient(ellipse at center,color-mix(in srgb,var(--rarity) 24%,transparent),transparent 68%),repeating-linear-gradient(0deg,transparent 0 7px,#ffffff04 7px 8px);position:relative;overflow:hidden}.rarity-legendary .store-item-art:after,.rarity-mythic .store-item-art:after,.rarity-secret .store-item-art:after{content:'✦';position:absolute;top:18px;right:22px;color:var(--rarity);font-size:24px;text-shadow:-150px 45px 0 var(--rarity),-45px 70px 0 var(--rarity)}.rarity-secret{box-shadow:inset 0 0 24px #8dfff014;border-color:#8dfff0}.rarity-mythic{border-color:#ff7bad}.rarity-legendary{border-color:#ffd26b}

.lucky-machine[hidden],.lucky-odds[hidden],.lucky-explainer[hidden]{display:none}.collection-progress{padding:20px;background:var(--bg);border:1px solid var(--border);margin:16px 0}.collection-progress>div:first-child{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.collection-progress span{font-size:12px;color:var(--muted)}.collection-track{height:8px;background:#ffffff0c;margin:14px 0}.collection-track i{height:100%;display:block;background:var(--accent)}.collection-tiers{display:flex;flex-wrap:wrap;gap:14px}.store-item-art{position:relative}.collection-stamp{position:absolute;bottom:6px;left:8px;font-size:9px;color:var(--rarity);letter-spacing:1px}.drop-perks{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.drop-perks b{padding:7px 10px;border:1px solid var(--rarity);font-size:12px;color:var(--rarity)}.drop-perks span{display:block;width:100%;font-size:12px}.lucky-reveal:not([hidden]){animation:collect-reveal .5s ease-out}.lucky-reveal.rarity-legendary,.lucky-reveal.rarity-mythic,.lucky-reveal.rarity-secret{box-shadow:inset 0 0 40px color-mix(in srgb,var(--rarity) 14%,transparent),0 0 24px color-mix(in srgb,var(--rarity) 20%,transparent)}
@keyframes collect-reveal{from{transform:translateY(12px) scale(.96);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){.lucky-reveal:not([hidden]){animation:none}}

body>header .header-tools{display:flex;align-items:center;gap:8px;margin-left:auto;padding:6px;border:1px solid var(--line);background:var(--surface);min-width:0}body>header .header-tools .keyboard-profile-open{margin:0;max-width:180px;min-height:40px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body>header .header-tools .appearance-open{margin:0;min-width:40px;min-height:40px}body>header .header-tools .xp-hud{margin:0;min-width:172px;border:0;border-left:1px solid var(--line);padding:4px 10px;min-height:40px}body>header #account-open{flex-shrink:0;margin:0}body>header{gap:20px}
@media(min-width:601px) and (max-width:1200px){body>header .header-tools{margin-left:auto}body>header .header-tools .keyboard-profile-open{max-width:150px}body>header .header-tools .xp-hud{min-width:160px}}
@media(max-width:600px){body>header,body:has(#test:not([hidden]) #result:not([hidden]))>header{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:42px 52px 40px;height:auto;min-height:0;padding:6px 14px 0;gap:4px 10px}body>header .brand{grid-column:1;grid-row:1;min-width:0}body>header #account-open{grid-column:2;grid-row:1;justify-self:end}body>header .header-tools{grid-column:1/-1;grid-row:2;width:100%;margin:0;gap:6px;padding:4px}body>header .header-tools .keyboard-profile-open{grid-column:auto;grid-row:auto;max-width:none;min-width:0;flex:1;font-size:9px;padding:8px;min-height:40px}body>header .header-tools .appearance-open{grid-column:auto;grid-row:auto;min-height:40px;padding:6px 8px}body>header .header-tools .xp-hud{grid-column:auto;grid-row:auto;width:156px;min-width:136px;flex-shrink:0;padding:4px 7px;min-height:40px}body>header nav{grid-column:1/-1;grid-row:3;order:0;width:100%;height:40px;justify-content:center;gap:28px}body>header .nav{font-size:11px;min-height:40px}body>header .xp-detail small{font-size:7px}.store-view-tabs{flex-wrap:wrap}}

[data-character="synthwave"]{--preview-bg:#201434;--costume-primary:#b69be7;--costume-secondary:#4c3c68;--costume-trim:#a4eee0;--costume-hair:#644a88;--costume-skin:#bb8666;--costume-shoe:#e8d6ed}
[data-character="disco"]{--preview-bg:#26192b;--costume-primary:#eab76b;--costume-secondary:#cd889e;--costume-trim:#fff1bd;--costume-hair:#5c403e;--costume-skin:#aa7457;--costume-shoe:#fff0cf}
[data-character="irish"]{--preview-bg:#0c211d;--costume-skin:#f3c6a1;--costume-primary:#278968;--costume-trim:#f4d18b;--costume-secondary:#f4ddc7;--costume-shoe:#171720;--costume-hair:#b86c3c}
[data-character="salsa"]{--preview-bg:#27131c;--costume-skin:#c98c68;--costume-primary:#bc384b;--costume-trim:#f3cf81;--costume-secondary:#24202c;--costume-shoe:#f3e3c4;--costume-hair:#241b29}
[data-costume-palette="ember"]{--costume-primary:#dc9670;--costume-secondary:#724c4a;--costume-trim:#b8edcd;--costume-shoe:#f1ddc1}[data-costume-palette="glacier"]{--costume-primary:#a4dbea;--costume-secondary:#455f83;--costume-trim:#f1f5f4;--costume-shoe:#c5e9f0}[data-costume-palette="amethyst"]{--costume-primary:#bf9ce3;--costume-secondary:#99567f;--costume-trim:#ffe8c3;--costume-shoe:#ebd8ef}[data-costume-palette="mono"]{--costume-primary:#e3ded1;--costume-secondary:#555460;--costume-trim:#ebc97d;--costume-shoe:#efe8d8}
.cosmetic-preview{height:170px;display:grid;place-items:center;background:var(--preview-bg);border-bottom:1px solid var(--line)}.cosmetic-preview .pixel-dancer{position:static!important;inset:auto;transform:none!important;width:110px;height:124px;max-width:100%;image-rendering:pixelated}.cosmetic-copy{padding:18px}.cosmetic-copy h4{margin:0 0 10px}.cosmetic-copy p{font-size:12px;line-height:1.6;color:var(--muted)}.cosmetic-copy button{margin-top:12px;width:100%;padding:10px}.appearance-store-note{color:var(--muted);font-size:12px;margin:16px 0}

@font-face{font-family:'TypeBeat DejaVu Mono';src:url('fonts/dejavu-mono.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'TypeBeat DejaVu Serif';src:url('fonts/dejavu-serif.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
#words,#assessment-words,.inline-race #race-passage{font-family:var(--typing-font,'IBM Plex Mono',monospace)}.typing-font-section{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.typing-font-section h3{font-size:17px}.typing-font-section>p{font-size:12px;color:var(--muted)}#font-preview-text{width:100%;padding:12px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-size:14px}.typing-font-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.typing-font-options button{text-align:left;padding:14px;border:1px solid var(--line);background:var(--bg);min-width:0}.typing-font-options button[aria-pressed=true]{border-color:var(--green);background:var(--soft);box-shadow:inset 0 0 0 1px var(--green)}.typing-font-options strong,.typing-font-options small,.typing-font-options span{display:block}.typing-font-options strong{font:12px 'IBM Plex Mono',monospace}.typing-font-options small{font-size:10px;color:var(--muted);margin:6px 0 14px}.typing-font-options span{font-size:19px;line-height:1.6;overflow-wrap:anywhere}.moving-caret{border-radius:0}.moving-caret.caret-idle{animation:smooth-caret-blink 1.2s ease-in-out infinite}@media(max-width:600px){.typing-font-options{grid-template-columns:1fr}.typing-font-options span{font-size:18px}}@media(prefers-reduced-motion:reduce){.moving-caret.caret-idle{animation:none}}

.level-milestone-notice{display:flex;align-items:center;gap:14px;max-width:1120px;margin:12px auto;padding:14px 18px;border:1px solid var(--green);background:var(--soft)}.level-milestone-notice[hidden]{display:none}.level-milestone-notice>span{font-size:28px;color:var(--green)}.level-milestone-notice strong{display:block;font:12px 'IBM Plex Mono',monospace}.level-milestone-notice small{display:block;margin-top:5px;color:var(--muted);font-size:11px}.level-milestone-notice button{margin-left:auto;font-size:20px}.beat-wallet .next-level-bonus{color:var(--green)}

/* A larger pixel theatre, still in document flow and centred over the words. */
:root{--fixed-stage-height:300px}#dance-stage-band .stats-dancer-rail.dance-stage{--stage-sprite-width:192px;--stage-sprite-height:216px;--ground-height:42px}#dance-stage-band .stage-prop-wing{width:calc(50% - 136px);max-width:560px}.stage-prop-wing.wing-left{right:calc(50% + 126px)}.stage-prop-wing.wing-right{left:calc(50% + 126px)}#dance-stage-band .stage-prop-wing .stage-owned-prop{max-width:88px;max-height:78px}.stage-owned-props{will-change:opacity}.stage-incoming-props{z-index:2}.stage-owned-prop[data-rarity]:not([data-rarity="common"])>svg{filter:drop-shadow(0 0 5px var(--rarity))}.stage-owned-prop[data-rarity="legendary"]>svg,.stage-owned-prop[data-rarity="mythic"]>svg,.stage-owned-prop[data-rarity="secret"]>svg{filter:drop-shadow(0 0 5px var(--rarity)) drop-shadow(0 0 9px color-mix(in srgb,var(--rarity) 45%,transparent))}.rarity-card:not(.rarity-common) .store-item-art>svg{filter:drop-shadow(0 0 7px var(--rarity))}.rarity-card:not(.rarity-common){box-shadow:inset 0 0 20px color-mix(in srgb,var(--rarity) 7%,transparent);border-color:color-mix(in srgb,var(--rarity) 65%,var(--line))}.rarity-card.rarity-legendary,.rarity-card.rarity-mythic,.rarity-card.rarity-secret{box-shadow:inset 0 0 24px color-mix(in srgb,var(--rarity) 10%,transparent),0 0 10px color-mix(in srgb,var(--rarity) 10%,transparent)}.prop-disco-orb{width:116px;height:102px}
@media(max-width:600px){:root{--fixed-stage-height:190px}#dance-stage-band .stats-dancer-rail.dance-stage{--stage-sprite-width:128px;--stage-sprite-height:144px;--ground-height:24px}#dance-stage-band .stage-prop-wing{width:calc(50% - 82px)}.stage-prop-wing.wing-left{right:calc(50% + 76px)}.stage-prop-wing.wing-right{left:calc(50% + 76px)}#dance-stage-band .stage-prop-wing .stage-owned-prop{max-height:48px;max-width:48px}.prop-disco-orb{width:78px;height:70px}body.mobile-typing{--fixed-stage-height:130px}body.mobile-typing #dance-stage-band .stats-dancer-rail.dance-stage{--stage-sprite-width:96px;--stage-sprite-height:108px;--ground-height:18px}}
@media(orientation:landscape) and (max-height:500px) and (pointer:coarse){:root{--fixed-stage-height:96px}#dance-stage-band .stats-dancer-rail.dance-stage{--stage-sprite-width:64px;--stage-sprite-height:72px;--ground-height:14px}}

.layout-alice .split-keyboard{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:28px;padding:10px 4px 28px}.layout-alice .keyboard-half.left,.layout-alice .keyboard-half.right{transform:none;padding:8px 7px 24px;border:1px solid var(--line);background:var(--surface);gap:7px}.layout-alice .alice-key-row{gap:5px;align-items:flex-start;--alice-curve-step:6px}.layout-alice .alice-key-cell{min-width:0;flex:var(--alice-units,1);transform:translateY(calc(var(--alice-depth)*var(--alice-curve-step))) rotate(var(--alice-angle));transform-origin:50% 50%}.layout-alice .alice-key-cell>.visual-key,.layout-alice .alice-key-cell>.visual-control{width:100%;min-width:0;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.layout-alice .alice-key-cell>.visual-control{height:58px;flex:none}.layout-alice .keyboard-half .alice-key-row:last-child{margin-top:8px}.results-grid .layout-alice .alice-key-row{gap:3px;--alice-curve-step:4px}.results-grid .layout-alice .alice-key-cell>.visual-control{height:48px}@media(max-width:520px){.results-grid .layout-alice .alice-key-cell>.visual-control{height:43px}.layout-alice .split-keyboard{gap:20px}}

.layout-alice .alice-key-cell>.visual-control{height:65px}.results-grid .layout-alice .alice-key-cell>.visual-control{height:55px}@media(max-width:520px){.results-grid .layout-alice .alice-key-cell>.visual-control{height:43px}}

#test .test-wrap{position:relative}.typing-missions{position:absolute;right:calc(100% + 18px);top:var(--mission-top,8px);width:196px;text-align:left}.missions-title h3{font-size:13px;line-height:1.5;margin:8px 0}.missions-title>small,.missions-note{font-size:10px;line-height:1.6;color:var(--muted)}.mission-card{margin-top:10px;border:1px solid var(--line);padding:12px;background:var(--surface)}.mission-card>span{font:10px 'IBM Plex Mono',monospace;color:var(--green)}.mission-card strong{display:block;font-size:12px;line-height:1.6;margin:7px 0}.mission-track{height:5px;background:var(--soft);margin:10px 0}.mission-track i{height:100%;display:block;background:var(--green);transition:width .15s}.mission-card small{font-size:10px;color:var(--muted)}.mission-card button{display:block;margin-top:10px;color:var(--green);font-size:10px;text-align:left;padding:0}.mission-card button:disabled{color:var(--muted);cursor:default}@media(max-width:1720px) and (min-width:1001px){#test .test-wrap{padding-left:202px}.typing-missions{left:12px;right:auto;width:168px}}@media(max-width:1000px){.typing-missions{position:static;width:100%;order:-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.missions-title,.missions-note{grid-column:1/-1}.missions-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.missions-title h3{margin:0}.mission-card{margin:0;padding:9px}.mission-card strong{font-size:10px}.missions-note{margin:0}.mission-card>span{font-size:9px}}@media(max-width:600px){body.mobile-typing .typing-missions .missions-title,body.mobile-typing .typing-missions .missions-note,body.mobile-typing .mission-card button{display:none}.mission-card strong{font-size:9px}.mission-card{padding:6px}.mission-track{margin:6px 0}.mission-card small{font-size:8px}}

#gold-shop-dialog.cosmetics-view .lucky-machine,#gold-shop-dialog.cosmetics-view .lucky-odds,#gold-shop-dialog.cosmetics-view .lucky-explainer{display:none}.store-item-grid.cosmetics-shelves{display:block}.cosmetic-shelf{margin:26px 0 36px}.cosmetic-shelf-heading{padding:12px 0;border-top:2px solid var(--line);margin-bottom:14px}.cosmetic-shelf-heading h3{margin:4px 0}.cosmetic-shelf-heading p{font-size:12px;color:var(--muted)}.rarity-card:not(.rarity-common) .cosmetic-preview>svg{filter:drop-shadow(0 0 5px var(--rarity))}.cosmetic-shelf .store-card-top{color:var(--rarity)}
[data-character][data-skin="chrome"]{--costume-primary:#adc7d1;--costume-secondary:#415469;--costume-trim:#8df4ed}[data-character][data-skin="hood"]{--costume-primary:#697595;--costume-secondary:#424458;--costume-trim:#bdd9cb}[data-character][data-skin="peacock"]{--costume-primary:#57a89a;--costume-secondary:#486582;--costume-trim:#f1cc7a}[data-character][data-skin="ruby"]{--costume-primary:#b36579;--costume-secondary:#834563;--costume-trim:#f5cc7e}[data-character][data-skin="varsity"]{--costume-primary:#b18b70;--costume-secondary:#4a6679;--costume-trim:#e8dcc2}[data-character][data-skin="swan"]{--costume-primary:#626176;--costume-secondary:#393b50;--costume-trim:#d9dceb}[data-character][data-skin="starlight"]{--costume-primary:#a8c5e8;--costume-secondary:#778bbd;--costume-trim:#edf0fa}[data-character][data-skin="mixtape"]{--costume-primary:#c68fa5;--costume-secondary:#565580;--costume-trim:#c9e5c6}[data-character][data-skin="arcade"]{--costume-primary:#8bb5de;--costume-secondary:#714c96;--costume-trim:#f0cb91}[data-character][data-skin="cosmic"]{--costume-primary:#bc8ac6;--costume-secondary:#655480;--costume-trim:#eee1a0}[data-character][data-skin="roller"]{--costume-primary:#7cc4bd;--costume-secondary:#a77f92;--costume-trim:#f6d7a0}
/* Purchased palettes override a skin's original colourway, for every performer. */
[data-costume-palette="ember"]{--costume-primary:#dc9670;--costume-secondary:#724c4a;--costume-trim:#b8edcd;--costume-shoe:#f1ddc1}[data-costume-palette="glacier"]{--costume-primary:#a4dbea;--costume-secondary:#455f83;--costume-trim:#f1f5f4;--costume-shoe:#c5e9f0}[data-costume-palette="amethyst"]{--costume-primary:#bf9ce3;--costume-secondary:#99567f;--costume-trim:#ffe8c3;--costume-shoe:#ebd8ef}[data-costume-palette="mono"]{--costume-primary:#e3ded1;--costume-secondary:#555460;--costume-trim:#ebc97d;--costume-shoe:#efe8d8}
.stage-key-equalizer{position:absolute;z-index:1;bottom:var(--ground-height);left:50%;transform:translateX(-50%);display:flex;align-items:flex-end;gap:8px;width:260px;height:84px;opacity:.21;pointer-events:none}.stage-key-equalizer i{flex:1;min-height:8px;height:8px;background:var(--green);transition:height 70ms ease-out;box-shadow:inset 0 -3px 0 #0003}.stage-key-equalizer i:nth-child(even){background:var(--costume-trim,var(--orange))}.stage-key-glow{position:absolute;z-index:1;left:50%;bottom:var(--ground-height);width:340px;height:210px;transform:translateX(-50%);background:radial-gradient(ellipse at bottom,var(--green),transparent 70%);opacity:0;pointer-events:none}.keybeat-live .stage-lamp{animation:none}.keybeat-live[data-key-beat="1"] .stage-lamp:nth-child(odd){opacity:.65}.keybeat-live[data-key-beat="0"] .stage-lamp:nth-child(even){opacity:.65}
.insight-key-popout{position:fixed;z-index:1300;width:280px;padding:16px;border:1px solid var(--green);background:var(--surface);box-shadow:5px 5px 0 color-mix(in srgb,var(--bg) 80%,transparent);pointer-events:none}.insight-key-popout[hidden]{display:none}.key-popout-heading{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:12px}.key-popout-heading kbd{display:grid;place-content:center;min-width:40px;height:40px;background:var(--soft);font:20px 'IBM Plex Mono',monospace;color:var(--green)}.key-popout-heading strong{font-size:12px}.key-popout-heading small{display:block;margin-top:6px;font-size:10px;color:var(--muted)}.insight-key-popout dl{margin:12px 0}.insight-key-popout dl>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px;padding:7px 0}.insight-key-popout dt{font-size:11px;color:var(--muted)}.insight-key-popout dd{margin:0;font:12px 'IBM Plex Mono',monospace}.insight-key-popout dl small{flex-basis:100%;text-align:right;font-size:9px;color:var(--muted)}.insight-key-popout p{font-size:10px;line-height:1.6;margin:0;color:var(--muted)}
#insights .section-top{border-bottom:2px solid var(--line);padding-bottom:24px}#insights .section-top .eyebrow{color:var(--green)}#insights .stats{gap:12px;margin:22px 0}#insights .stat{border:1px solid var(--line);border-top:3px solid var(--green);box-shadow:3px 3px 0 var(--line);background:var(--surface)}#insights .insight-keyboard-panel{margin:18px 0;padding:24px;border-top:3px solid var(--green)}#insights .analytics-grid{gap:20px}#insights .panel h3{font-size:18px}#insights .visual-key{box-shadow:2px 3px 0 color-mix(in srgb,var(--key-heat,var(--line)) 45%,var(--bg))}#insights .insight-controls{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0}#insights .insight-table thead{font:10px 'IBM Plex Mono',monospace;color:var(--green)}
.judge-card{display:flex;flex-direction:column;align-items:center;text-align:center}.judge-card .judge-figure{width:176px;max-width:100%;height:152px;flex-shrink:0}.judge-card .judge-figure svg{width:100%;height:100%;image-rendering:pixelated}.judge-card .judge-figure{animation:scorecard-lift .28s steps(4,end) both}.judge-card:nth-child(2) .judge-figure{animation-delay:.1s}.judge-card:nth-child(3) .judge-figure{animation-delay:.2s}.judge-card>div:last-child{width:100%}.judge-card p{font-size:10px}@keyframes scorecard-lift{from{transform:translateY(8px);opacity:.5}to{transform:none;opacity:1}}
@media(max-width:600px){.judge-card .judge-figure{height:100px;width:116px}.stage-key-equalizer{width:180px;height:56px;gap:5px}#insights .insight-keyboard-panel{padding:16px}.insight-key-popout{width:250px}.judge-card{padding:10px 6px}}@media(prefers-reduced-motion:reduce){.judge-card .judge-figure{animation:none}.stage-key-equalizer i{transition:none}.stage-key-glow{display:none}}

@media(min-width:1001px){.typing-missions{max-height:560px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:5px}.mission-card{padding:10px}.mission-card strong{font-size:11px;line-height:1.5;margin:5px 0}.mission-track{margin:7px 0}.missions-note{position:sticky;bottom:0;background:var(--bg);padding:8px 0}}@media(max-width:600px){body.mobile-typing .typing-missions{max-height:120px;overflow-y:auto;overscroll-behavior:contain}}

.dancer-pace-notice{position:absolute;z-index:8;left:calc(50% + 106px);bottom:calc(var(--ground-height) + 76px);padding:10px 12px;border:2px solid #ef747d;background:#24161feb;color:#ff949c;box-shadow:4px 4px 0 #130e16;pointer-events:none;font-family:'IBM Plex Mono',monospace;max-width:170px}.dancer-pace-notice[hidden]{display:none}.dancer-pace-notice strong{display:block;font-size:23px;line-height:1.25}.dancer-pace-notice span,.dancer-pace-notice small{display:block;margin-top:5px;font-size:10px}.dancer-pace-notice small{color:#f3c1c5}.dance-actor[data-pace-blocked="true"] .dancer-fire{display:none}@media(max-width:600px){.dancer-pace-notice{left:calc(50% + 61px);bottom:calc(var(--ground-height) + 43px);padding:6px;max-width:114px}.dancer-pace-notice strong{font-size:16px}.dancer-pace-notice span,.dancer-pace-notice small{font-size:8px}}

.pb-celebrating>.dance-actor:not(.pb-cast-actor){visibility:hidden}.pb-party-banner{position:absolute;z-index:7;top:18px;left:50%;transform:translateX(-50%);text-align:center;padding:10px 22px;background:#17142aeb;border:3px solid #f2c96d;box-shadow:5px 5px 0 #0006;color:#f2c96d;font-family:'IBM Plex Mono',monospace;white-space:nowrap}.pb-party-banner span{font-size:12px;letter-spacing:2px}.pb-party-banner strong{display:block;color:#fff3c5;font-size:30px;margin:2px 0}.pb-party-banner small{font-size:10px;color:#86efde}#dance-stage-band .pb-cast-actor{--stage-sprite-width:clamp(44px,calc((100vw - 24px)/var(--pb-count) - 8px),160px);--stage-sprite-height:calc(var(--stage-sprite-width)*1.125);z-index:5}.pb-pixel-confetti{position:absolute;inset:0;overflow:hidden;z-index:6;pointer-events:none}.pb-pixel-confetti i{position:absolute;top:-12px;width:6px;height:10px;background:var(--c);box-shadow:3px 3px 0 #0003;animation:pb-confetti calc(2.5s + var(--i)*.025s) steps(24,end) infinite;animation-delay:calc(var(--i)*-.13s)}.pb-celebrating .stage-lamp{filter:brightness(1.6);animation:pb-arcade-light 1.6s steps(2,end) infinite}.pb-celebrating .stage-lamp:nth-child(even){animation-delay:.8s}@keyframes pb-confetti{to{transform:translate(28px,340px) rotate(270deg)}}@keyframes pb-arcade-light{50%{opacity:.55;filter:brightness(1)}}@media(max-width:600px){.pb-party-banner{top:8px;padding:5px 12px}.pb-party-banner span{font-size:9px;letter-spacing:1px}.pb-party-banner strong{font-size:21px}.pb-party-banner small{font-size:8px}}@media(prefers-reduced-motion:reduce){.pb-pixel-confetti i{animation:none;top:calc(var(--i)*7px)}.pb-celebrating .stage-lamp{animation:none}}
/* Mission board: compact arcade cards, with task, reward and progress separated. */
.typing-missions{border:1px solid var(--line);border-top:3px solid var(--green);background:var(--surface);box-shadow:4px 4px 0 color-mix(in srgb,var(--line) 65%,transparent);padding:0!important;scrollbar-gutter:stable}.missions-title{display:flex;align-items:center;gap:10px;padding:14px 12px 12px;border-bottom:1px solid var(--line);background:var(--soft)}.mission-board-icon{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--green);color:var(--green);font-size:19px;flex-shrink:0}.missions-title h3{font-size:16px;margin:3px 0 0;line-height:1.2}.missions-title .eyebrow{font-size:7px;letter-spacing:1.5px}.missions-title>small{flex-basis:100%;font-size:9px}.missions-title{flex-wrap:wrap}.mission-card{margin:0;padding:13px 12px!important;border:0;border-bottom:1px solid var(--line);background:transparent;box-shadow:inset 3px 0 0 transparent}.mission-card:last-of-type{border-bottom:0}.mission-card-top{display:flex;justify-content:space-between;gap:6px;align-items:center}.mission-category{font-size:8px;line-height:1.4;color:var(--muted)}.mission-category i{font:8px 'IBM Plex Mono',monospace;font-style:normal;margin-right:5px;color:var(--green)}.mission-reward{white-space:nowrap;color:var(--fire-gold,#e9c578);font:bold 12px 'IBM Plex Mono',monospace;background:color-mix(in srgb,#e9c578 9%,transparent);padding:4px 5px;border:1px solid color-mix(in srgb,#e9c578 30%,transparent)}.mission-reward small{font-size:8px;color:inherit!important;margin-left:3px}.mission-card strong{font-size:12px!important;font-weight:500;line-height:1.6!important;margin:10px 0!important;color:var(--ink)}.mission-condition{font-size:9px;line-height:1.5;color:var(--muted);margin:0 0 9px}.mission-progress-label{display:flex;justify-content:space-between;align-items:center;gap:5px;font-size:8px;color:var(--muted)}.mission-progress-label b{font:10px 'IBM Plex Mono',monospace;color:var(--green);white-space:nowrap}.mission-progress-label b span{color:var(--muted)}.mission-track{margin:6px 0 0;height:6px;border:1px solid var(--line);background:var(--bg)}.mission-track i{background:var(--green);box-shadow:0 0 6px color-mix(in srgb,var(--green) 35%,transparent)}.mission-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.mission-actions:empty{display:none}.mission-card button{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:6px 7px;border:1px solid var(--line);background:var(--soft);font-size:9px;min-height:28px;flex:1}.mission-card button:hover:not(:disabled){border-color:var(--green)}.mission-card button:focus-visible{outline:2px solid var(--green);outline-offset:2px}.mission-ready{box-shadow:inset 3px 0 0 var(--green);background:color-mix(in srgb,var(--green) 5%,var(--surface))}.mission-bank{font-size:9px;color:var(--green);margin:8px 0 0}.missions-note{display:flex;gap:7px;margin:0;padding:12px!important;background:var(--soft)!important;border-top:1px solid var(--line);font-size:9px;line-height:1.7;position:static;grid-column:1/-1}.missions-note>span{color:var(--green)}
@media(min-width:1721px){.typing-missions{width:216px}}@media(min-width:1001px) and (max-width:1720px){#test .test-wrap{padding-left:222px}.typing-missions{width:188px}}@media(max-width:1000px){.typing-missions{gap:0;grid-template-columns:repeat(2,minmax(0,1fr));margin:14px 0}.missions-title{grid-column:1/-1;padding:12px}.missions-title>small{flex-basis:auto;margin-left:auto}.mission-card{border-right:1px solid var(--line)}.mission-card strong{font-size:11px!important}}@media(max-width:600px){.mission-reward{font-size:11px}.mission-category{font-size:8px}.mission-card{padding:10px!important}body.mobile-typing .mission-card{padding:8px!important}body.mobile-typing .mission-card strong{font-size:10px!important;margin:6px 0!important}body.mobile-typing .mission-condition,body.mobile-typing .mission-actions{display:none}}
/* Shop sections put ownership and upgrade outcomes before the transaction. */
#gold-shop-dialog .store-header{padding-bottom:20px}.store-view-tabs{position:sticky;top:0;z-index:9;background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;gap:6px;padding:12px 24px}.store-view-tabs button{padding:10px 16px;border:1px solid transparent;color:var(--muted);font-size:11px}.store-view-tabs button[aria-pressed=true]{background:var(--soft);border-color:var(--green);color:var(--green);box-shadow:inset 0 -2px var(--green)}.lucky-machine{justify-content:flex-start;gap:24px;margin:22px 24px 0;padding:24px;background:var(--soft);border:1px solid var(--line);border-left:3px solid var(--fire-gold,#e9c578)}.lucky-machine .pixel-chest{width:100px;height:82px;border-width:6px;font-size:30px}.lucky-controls{max-width:none}.lucky-controls .eyebrow{font-size:8px;color:var(--fire-gold,#e9c578)}.lucky-controls h3{font-size:23px;margin:6px 0}.lucky-controls p{font-size:12px;line-height:1.7;max-width:540px}.lucky-controls button{font-size:13px;padding:12px 18px}.lucky-controls small{max-width:550px;font-size:10px;line-height:1.7}.shop-odds-details{margin:0 24px 16px;padding:12px 16px;border:1px solid var(--line);border-top:0;background:var(--bg)}.shop-odds-details summary{cursor:pointer;font-size:11px;color:var(--ink)}.shop-odds-details summary>span{float:right;color:var(--muted);font-size:10px}.shop-odds-details .lucky-odds{margin-top:14px}.shop-section-heading{padding:20px 24px 4px}.shop-section-heading .eyebrow{font-size:8px}.shop-section-heading h3{font-size:21px;margin:7px 0}.shop-section-heading p{font-size:12px;color:var(--muted);line-height:1.7;margin:8px 0}.item-applies{display:block;color:var(--rarity,var(--green));font-size:9px;line-height:1.7;margin-bottom:8px}.upgrade-before{font-size:10px;color:var(--muted);font-weight:400}.upgrade-before i{font-style:normal;color:var(--green)}.store-card-stats strong{font-size:13px;line-height:1.7}.store-card-buy{flex-wrap:wrap;gap:9px}.store-card-buy>strong{font:13px 'IBM Plex Mono',monospace}.store-card-buy button{flex:1;font-size:10px;min-height:36px}.shop-empty{grid-column:1/-1;padding:36px 24px;border:1px dashed var(--line);text-align:center;background:var(--soft)}.shop-empty>span{font-size:32px;color:var(--green)}.shop-empty h4{font-size:18px;margin:14px 0 8px}.shop-empty p{max-width:450px;margin:0 auto;font-size:12px;color:var(--muted);line-height:1.9}.store-footer p{max-width:760px;line-height:1.8}#shop-status:empty{display:none}.shop-odds-details[hidden],.shop-section-heading[hidden]{display:none}
@media(max-width:700px){.store-view-tabs{padding:10px;gap:4px;overflow-x:auto;flex-wrap:nowrap}.store-view-tabs button{font-size:10px;white-space:nowrap;padding:9px}.lucky-machine{margin:16px 16px 0;padding:16px;gap:14px;flex-direction:row;align-items:center}.lucky-machine .pixel-chest{width:64px;height:58px;border-width:4px;font-size:23px}.lucky-controls{text-align:left}.lucky-controls h3{font-size:20px}.lucky-controls p{font-size:11px}.lucky-controls button{font-size:11px;padding:10px 12px}.lucky-controls small{font-size:9px}.shop-odds-details{margin:0 16px 10px;padding:11px}.shop-odds-details summary>span{float:none;display:block;margin:7px 0 0 14px;font-size:9px}.shop-section-heading{padding:18px 16px 4px}.shop-section-heading h3{font-size:19px}.shop-section-heading p{font-size:11px}.store-card-stats strong{font-size:11px}.store-card-buy button{flex-basis:100%}}
/* Rarity effects follow each prop through scene transitions; gear lights its dancer. */
.stage-owned-prop{isolation:isolate}.stage-item-aura{display:none;position:absolute;inset:8% -10% -8%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 60%,color-mix(in srgb,var(--rarity) 48%,transparent),transparent 72%);opacity:.65}.stage-owned-prop:not([data-rarity="common"]) .stage-item-aura{display:block;animation:rarity-aura 3.6s ease-in-out infinite}.stage-owned-prop:not([data-rarity="common"])>svg{filter:drop-shadow(0 0 3px var(--rarity)) drop-shadow(0 0 8px color-mix(in srgb,var(--rarity) 65%,transparent))}.stage-owned-prop:is([data-rarity="legendary"],[data-rarity="mythic"],[data-rarity="secret"])>svg{filter:drop-shadow(0 0 4px var(--rarity)) drop-shadow(0 0 12px var(--rarity))}.stage-owned-prop:is([data-rarity="legendary"],[data-rarity="mythic"],[data-rarity="secret"]) .stage-item-aura{inset:-10% -25% -10%;opacity:.85}.dance-actor[data-gear-rarity] .dancer-sprite-slot{filter:drop-shadow(0 0 4px var(--gear-glow)) drop-shadow(0 0 9px color-mix(in srgb,var(--gear-glow) 65%,transparent))}.dance-actor:is([data-gear-rarity="legendary"],[data-gear-rarity="mythic"],[data-gear-rarity="secret"]) .dancer-sprite-slot{filter:drop-shadow(0 0 5px var(--gear-glow)) drop-shadow(0 0 14px color-mix(in srgb,var(--gear-glow) 75%,transparent))}@keyframes rarity-aura{50%{opacity:.9}}@media(prefers-reduced-motion:reduce){.stage-owned-prop .stage-item-aura{animation:none!important}}
.store-item-art .item-pixel-art{width:104px;height:104px;max-width:88%;max-height:88%;image-rendering:pixelated;overflow:visible}.store-item-art{background-image:radial-gradient(ellipse at 50% 72%,color-mix(in srgb,var(--rarity,var(--green)) 12%,transparent),transparent 66%),linear-gradient(0deg,color-mix(in srgb,var(--line) 22%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--line) 22%,transparent) 1px,transparent 1px);background-size:auto,16px 16px,16px 16px}.stage-owned-prop .item-pixel-art{overflow:visible}.lucky-reveal>.item-pixel-art{width:96px;height:96px;flex-shrink:0}@media(max-width:700px){.store-item-art .item-pixel-art{width:86px;height:86px}}
.collection-mystery{font-size:11px;line-height:1.8;color:var(--muted);margin:12px 0}.cosmetic-navigation{display:flex;gap:8px;flex-wrap:wrap;grid-column:1/-1;padding:18px 0 6px}.cosmetic-navigation button{padding:10px 16px;border:1px solid var(--line);color:var(--muted);font-size:11px}.cosmetic-navigation button[aria-pressed=true]{border-color:var(--green);background:var(--soft);color:var(--green);box-shadow:inset 0 -2px var(--green)}.cosmetic-type{display:block;color:var(--rarity,var(--green));font:8px 'IBM Plex Mono',monospace;letter-spacing:1px;margin-bottom:9px}.cosmetic-rotation-note{font-size:10px!important;line-height:1.7;padding-top:10px;border-top:1px solid var(--line);color:var(--green)!important}.cosmetic-preview[data-cosmetic-kind="dancer"]{height:190px;background:radial-gradient(ellipse at 50% 90%,color-mix(in srgb,var(--rarity,var(--green)) 20%,transparent),transparent 65%),linear-gradient(0deg,var(--soft),var(--bg));border-bottom:1px solid var(--line)}.cosmetic-preview[data-cosmetic-kind="dancer"]>svg{width:144px;height:162px;image-rendering:pixelated}.cosmetic-shelf-heading p{max-width:680px;line-height:1.8}.cosmetic-copy h4{font-size:18px}.cosmetic-copy{padding:20px}.cosmetic-copy>button{width:100%;margin-top:12px;min-height:40px}@media(max-width:700px){.cosmetic-navigation{gap:6px}.cosmetic-navigation button{padding:9px 12px;font-size:10px}.cosmetic-preview[data-cosmetic-kind="dancer"]{height:154px}.cosmetic-preview[data-cosmetic-kind="dancer"]>svg{width:112px;height:126px}.cosmetic-copy{padding:14px}.cosmetic-copy h4{font-size:16px}}

/* Missions sit in document flow immediately above the dance stage. */
.typing-missions.stage-missions{position:relative;inset:auto;display:block;width:calc(100% - 48px);max-width:1320px;max-height:none;overflow:visible;margin:18px auto 16px;scrollbar-gutter:auto;text-align:left}.typing-missions.stage-missions[hidden]{display:none}.stage-missions .missions-title{padding:10px 14px;gap:10px;flex-wrap:nowrap}.stage-missions .missions-title h3{font-size:15px}.stage-missions .missions-title>small{flex-basis:auto;margin-left:auto}.stage-missions .missions-title .eyebrow{display:none}.stage-missions .mission-board-icon{width:24px;height:24px;font-size:16px}.stage-missions .mission-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch}.stage-missions .mission-card{border-right:1px solid var(--line);border-bottom:0;padding:12px!important;min-width:0;display:flex;flex-direction:column}.stage-missions .mission-card:last-child{border-right:0}.stage-missions .mission-card strong{font-size:11px!important;margin:8px 0!important}.stage-missions .mission-progress-label{margin-top:auto}.stage-missions .mission-condition{font-size:8px;margin-bottom:7px}.stage-missions .mission-actions{min-height:28px;margin-top:8px}.stage-missions .mission-actions:empty{min-height:0}.stage-missions .missions-note{padding:8px 14px!important;position:static;font-size:9px;line-height:1.6}@media(max-width:1100px){.stage-missions .mission-cards{display:flex;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin}.stage-missions .mission-card{flex:0 0 205px;scroll-snap-align:start}.typing-missions.stage-missions{width:calc(100% - 32px)}}@media(max-width:600px){.typing-missions.stage-missions{width:calc(100% - 20px);margin:10px auto;max-height:none}.stage-missions .mission-card{flex-basis:185px}.stage-missions .missions-title{padding:8px 10px}.stage-missions .missions-title>small{font-size:8px}.stage-missions .missions-note{padding:7px 10px!important}body.mobile-typing .typing-missions.stage-missions{max-height:none}body.mobile-typing .stage-missions .missions-title,body.mobile-typing .stage-missions .missions-note{display:none}body.mobile-typing .stage-missions .mission-card{flex-basis:170px;padding:7px!important}body.mobile-typing .stage-missions .mission-actions{display:none}}
/* A quieter mission rail with one clear reading order and aligned controls. */
.typing-missions.stage-missions{border:1px solid var(--line);box-shadow:none;background:var(--bg);margin:14px auto 12px}.stage-missions .missions-title{padding:9px 14px;border-bottom:1px solid var(--line);background:transparent}.stage-missions .mission-board-icon{border:0;width:auto;height:auto;font-size:13px;opacity:.7}.stage-missions .missions-title h3{font:10px 'IBM Plex Mono',monospace;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}.stage-missions .missions-title>small{font-size:8px;color:var(--muted)}.stage-missions .mission-card{display:grid;grid-template-areas:'meta' 'title' 'condition' 'progress' 'track' 'actions';grid-template-rows:15px 32px 10px 12px 4px 24px;gap:4px;padding:12px 14px!important;position:relative;border-color:var(--line);box-shadow:none;background:transparent}.stage-missions .mission-card-top{grid-area:meta}.stage-missions .mission-category{font-size:8px;opacity:.75}.stage-missions .mission-category i{display:none}.stage-missions .mission-reward{padding:0;border:0;background:transparent;font-size:10px;font-weight:500;color:var(--fire-gold,#dfbd7b)}.stage-missions .mission-reward small{font-size:8px}.stage-missions .mission-card strong{grid-area:title;font-size:11px!important;line-height:1.5!important;margin:0!important;font-weight:400;align-self:start}.stage-missions .mission-condition{grid-area:condition;font-size:8px;line-height:1.2;margin:0;color:var(--muted)}.stage-missions .mission-progress-label{grid-area:progress;margin:0;justify-content:flex-end}.stage-missions .mission-progress-label>span{display:none}.stage-missions .mission-progress-label b{font-size:8px;color:var(--muted);font-weight:400}.stage-missions .mission-track{grid-area:track;margin:0;height:3px;border:0;background:var(--line)}.stage-missions .mission-track i{box-shadow:none;opacity:.8}.stage-missions .mission-actions{grid-area:actions;min-height:0;margin:2px 0 0;gap:8px;align-items:center}.stage-missions .mission-actions:empty{display:block}.stage-missions .mission-card button{border:0;padding:0;background:transparent;min-height:20px;font-size:9px;justify-content:flex-start;gap:5px;flex:0 1 auto;line-height:1.4}.stage-missions .mission-card button:hover:not(:disabled){text-decoration:underline;text-underline-offset:3px}.stage-missions .mission-card button:disabled{opacity:.5}.stage-missions .mission-ready .mission-track i{opacity:1}.stage-missions .mission-bank{position:absolute;bottom:10px;left:14px;font-size:8px;margin:0;pointer-events:none}.stage-missions .mission-ready .mission-actions{visibility:hidden}.stage-missions .missions-note{padding:7px 14px!important;background:transparent!important;border-top:1px solid var(--line);color:var(--muted);font-size:8px;line-height:1.5}.stage-missions .missions-note>span{display:none}@media(max-width:1100px){.stage-missions .mission-card{flex-basis:205px}}@media(max-width:600px){.typing-missions.stage-missions{margin:8px auto}.stage-missions .mission-card{padding:10px 12px!important;flex-basis:190px;grid-template-rows:14px 32px 10px 12px 3px 22px}.stage-missions .missions-title{padding:8px 12px}body.mobile-typing .stage-missions .mission-card{display:grid;grid-template-areas:'meta' 'title' 'progress' 'track';grid-template-rows:13px 29px 10px 3px;gap:3px;padding:8px 10px!important}body.mobile-typing .stage-missions .mission-card strong{font-size:10px!important;margin:0!important}body.mobile-typing .stage-missions .mission-actions,body.mobile-typing .stage-missions .mission-condition{display:none}}

/* Shops share the persistent primary navigation. */
body>header nav{flex-shrink:0;gap:clamp(14px,1.6vw,25px)}
body>header nav .nav{white-space:nowrap}
body>header nav .shop-nav{color:var(--green)}
body>header nav .shop-nav:hover{color:var(--ink);background:var(--soft)}
@media(min-width:601px) and (max-width:1400px){body>header,body:has(#test:not([hidden]) #result:not([hidden]))>header{height:auto;min-height:0;flex-wrap:wrap;padding:12px 24px 0}body>header nav{order:10;flex-basis:100%;height:44px;justify-content:center}body>header .nav{min-height:44px}}
@media(max-width:600px){body>header nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;justify-content:stretch}body>header nav .nav{font-size:clamp(8px,2.25vw,11px);padding:0 3px;min-width:0}}

/* A collection accumulates from the floor in overlapping heaps. */
.stage-pile-bank{position:absolute;bottom:var(--ground-height,24px);height:calc(100% - var(--ground-height,24px) - 12px);width:calc(50% - 124px);max-width:600px}
.stage-pile-bank.pile-left{right:calc(50% + 116px)}.stage-pile-bank.pile-right{left:calc(50% + 116px)}
.stage-item-pile{position:relative;height:100%;width:100%;--pile-size:clamp(48px,6vw,84px);--pile-step:min(30px,calc((100% - var(--pile-size)) / var(--pile-rows)))}
.stage-item-pile .pile-item{position:absolute;width:var(--pile-size);height:var(--pile-size);left:var(--pile-x);bottom:calc(var(--pile-row) * var(--pile-step) - var(--pile-size) * .07);transform:translateX(-50%) rotate(var(--pile-tilt));transform-origin:50% 90%}
@media(max-width:600px){.stage-pile-bank{width:calc(50% - 72px)}.stage-pile-bank.pile-left{right:calc(50% + 68px)}.stage-pile-bank.pile-right{left:calc(50% + 68px)}.stage-item-pile{--pile-size:38px;--pile-step:min(19px,calc((100% - var(--pile-size)) / var(--pile-rows)))}body.mobile-typing .stage-pile-bank{width:calc(50% - 54px)}body.mobile-typing .pile-left{right:calc(50% + 50px)}body.mobile-typing .pile-right{left:calc(50% + 50px)}body.mobile-typing .stage-item-pile{--pile-size:30px}}

/* Mission selection gives Practice a game-like purpose without extra currency. */
.practice-quest-heading{padding:36px 0 24px}.practice-quest-heading h1{font-size:clamp(32px,4vw,52px);margin:14px 0}.practice-quest-heading p{margin-bottom:0}
.quest-overview{display:flex;flex-wrap:wrap;align-items:center;gap:24px 40px;padding:22px 24px;border:1px solid var(--line);background:var(--surface)}.quest-overview>div{display:grid;gap:8px}.quest-overview span,.quest-tracked>span{font:8px 'IBM Plex Mono',monospace;letter-spacing:1px;color:var(--muted)}.quest-overview strong{font:20px 'IBM Plex Mono',monospace}.quest-gold{color:var(--fire-gold,#d3ae65);font-family:'IBM Plex Mono',monospace}.quest-overview p{font-size:11px;max-width:220px;margin:0 0 0 auto}.quest-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px}.quest-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);background:var(--surface);padding:22px;position:relative}.quest-selected{border-color:var(--green);box-shadow:inset 0 3px var(--green)}.quest-card-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;font-size:11px}.quest-number{font:24px 'IBM Plex Mono',monospace;color:var(--muted);opacity:.5}.quest-card>.eyebrow{font-size:7px;letter-spacing:1px}.quest-card h3{font:17px/1.6 'IBM Plex Mono',monospace;margin:10px 0}.quest-card p{font-size:11px;line-height:1.8;margin:0 0 24px}.quest-progress{display:flex;justify-content:space-between;margin-top:auto;font:10px 'IBM Plex Mono',monospace;color:var(--muted)}.quest-progress b{color:var(--green)}.quest-track{height:6px;background:var(--line);margin:10px 0 18px}.quest-track i{display:block;height:100%;background:var(--green)}.quest-card>button{width:100%;min-height:42px;text-align:left;font-size:11px;border:1px solid var(--line);background:var(--soft)}.quest-card>button:hover{border-color:var(--green)}.quest-rules{font-size:11px;margin:20px 0;line-height:1.9}.quest-receipt{border:1px solid var(--green);padding:16px 20px;background:var(--soft);color:var(--green);font:12px/1.8 'IBM Plex Mono',monospace;animation:quest-receipt-in .25s ease-out}.quest-receipt[hidden]{display:none}.quest-tracked{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:16px 20px;margin-top:16px;border-left:3px solid var(--green);background:var(--soft)}.quest-tracked strong{font-size:12px}.quest-tracked small{color:var(--muted);font-size:10px;margin-left:auto}.practice-drills-heading{margin:52px 0 22px;padding-top:28px;border-top:1px solid var(--line)}.practice-drills-heading h2{font-size:24px;margin:12px 0}.practice-drills-heading p{font-size:12px}@keyframes quest-receipt-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:900px){.quest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quest-overview p{max-width:none;margin:0;width:100%}}@media(max-width:600px){.practice-quest-heading{padding-top:24px}.quest-grid{grid-template-columns:1fr;gap:12px}.quest-overview{gap:20px;padding:18px}.quest-overview strong{font-size:16px}.quest-card{padding:20px}.quest-card-heading{margin-bottom:16px}.quest-tracked small{margin:0}.practice-drills-heading{margin-top:36px}}@media(prefers-reduced-motion:reduce){.quest-receipt{animation:none}}

.stage-missions .mission-card.mission-tracked{background:color-mix(in srgb,var(--green) 7%,var(--bg));box-shadow:inset 0 -2px var(--green)}

.lucky-reveal{position:relative;padding-right:56px}.last-drop-label{display:block;font:8px 'IBM Plex Mono',monospace;letter-spacing:1.3px;color:var(--muted);margin-bottom:10px}.lucky-reveal .dismiss-drop{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);font-size:22px;color:var(--muted)}.lucky-reveal .dismiss-drop:hover{border-color:var(--rarity);color:var(--ink)}

/* Upright artwork packed into compact clusters rather than scattered heaps. */
.stage-item-pile{width:min(100%,280px);margin-inline:auto;--pile-step:min(48px,calc((100% - var(--pile-size)) / var(--pile-rows)))}
.stage-item-pile .pile-item{transform:translateX(-50%)}
@media(max-width:600px){.stage-item-pile{width:min(100%,150px);--pile-step:min(26px,calc((100% - var(--pile-size)) / var(--pile-rows)))}}
/* Costume halo is shared by all performers; default costumes stay faint. */
.dance-actor{--dancer-halo:var(--costume-trim,var(--sprite-trim,var(--green)));--halo-strength:50%;--halo-radius:10px}
.dance-actor[data-skin="default"],.dance-actor:not([data-skin]){--halo-strength:18%;--halo-radius:6px}
.dance-actor .dancer-sprite-slot{filter:drop-shadow(0 0 3px color-mix(in srgb,var(--dancer-halo) var(--halo-strength),transparent)) drop-shadow(0 0 var(--halo-radius) color-mix(in srgb,var(--dancer-halo) var(--halo-strength),transparent))}
.dance-actor[data-gear-rarity] .dancer-sprite-slot{filter:drop-shadow(0 0 4px var(--gear-glow)) drop-shadow(0 0 9px color-mix(in srgb,var(--gear-glow) 65%,transparent)) drop-shadow(0 0 var(--halo-radius) color-mix(in srgb,var(--dancer-halo) var(--halo-strength),transparent))}
.dance-actor:is([data-gear-rarity="legendary"],[data-gear-rarity="mythic"],[data-gear-rarity="secret"]) .dancer-sprite-slot{filter:drop-shadow(0 0 5px var(--gear-glow)) drop-shadow(0 0 14px color-mix(in srgb,var(--gear-glow) 75%,transparent)) drop-shadow(0 0 var(--halo-radius) color-mix(in srgb,var(--dancer-halo) var(--halo-strength),transparent))}

/* All collected props share the floor; the practice hub prioritises missions. */
.stage-item-pile{width:min(100%,400px)}
.stage-item-pile .pile-item{bottom:calc(var(--pile-size) * -.07)}
body:has(#practice:not([hidden])) #dance-stage-band,body:has(#practice:not([hidden]))>.beat-wallet{display:none}
#practice{padding-top:0}#practice .practice-quest-heading{padding:20px 0 14px}#practice .practice-quest-heading h1{font-size:30px;margin:8px 0}#practice .practice-quest-heading>p{font-size:12px;margin:6px 0 0}#practice .quest-overview{padding:12px 16px;gap:14px 28px}#practice .quest-overview>div{display:flex;align-items:center;gap:8px}#practice .quest-overview span{font-size:7px}#practice .quest-overview strong{font-size:13px}#practice .quest-overview p{font-size:9px;max-width:none;width:auto}#practice .quest-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:12px}#practice .quest-card{padding:14px;box-shadow:none}#practice .quest-card-heading{margin-bottom:12px;font-size:10px}#practice .quest-number{font-size:15px}#practice .quest-card h3{font-size:12px;line-height:1.6;margin:8px 0;min-height:58px}#practice .quest-card p{font-size:9px;line-height:1.7;margin-bottom:14px}#practice .quest-progress{font-size:9px}#practice .quest-track{height:4px;margin:7px 0 12px}#practice .quest-card>button{min-height:34px;font-size:9px;padding:7px}#practice .quest-rules{font-size:9px;margin:12px 0}#practice .quest-tracked{padding:10px 14px;margin-top:10px}#practice .quest-receipt{padding:10px 14px;margin:10px 0;font-size:10px}#practice .practice-drills-heading{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:24px 0 12px;padding-top:16px}#practice .practice-drills-heading h2{font-size:18px;margin:0}#practice .practice-drills-heading p{font-size:10px;margin:0}#practice .practice-drills-heading .eyebrow{display:none}
.practice-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px;overflow-x:auto}.practice-tabs button{font:11px 'IBM Plex Mono',monospace;white-space:nowrap;padding:12px 16px;border:1px solid transparent;color:var(--muted)}.practice-tabs button[aria-selected=true]{color:var(--green);border-color:var(--line);border-bottom-color:var(--green);background:var(--soft);box-shadow:inset 0 -2px var(--green)}.practice-tab-panel[hidden]{display:none!important}#practice .practice-tab-panel>.panel{margin:0 0 14px;padding:20px;box-shadow:none}#practice .practice-tab-panel h2{font-size:19px;margin-top:0}#practice .practice-tab-panel p{font-size:11px}#practice .practice-grid{margin:12px 0;gap:12px}#practice .practice-card{padding:20px;box-shadow:none}#practice .practice-card h2{font-size:17px;margin:14px 0 8px}#practice .practice-card p{font-size:11px;line-height:1.7}#practice .practice-card>span,#practice .practice-card>b{font-size:9px}#practice .suggested-grid,#practice .lesson-grid{gap:12px}#practice .suggested-drill,#practice .lesson-card{padding:16px;box-shadow:none}#practice .training-columns{gap:24px;margin-top:14px}#practice .training-columns h4{margin-top:14px}#practice .training-builder{margin-top:16px;padding-top:16px}#practice .lesson-card h3{font-size:17px}#practice .lesson-card li{font-size:11px}
@media(max-width:1100px){#practice .quest-grid{grid-template-columns:repeat(3,minmax(0,1fr))}#practice .quest-card h3{min-height:0}#practice .quest-overview p{width:100%;margin:0}#practice .quest-card p{min-height:30px}}
@media(max-width:600px){#practice .practice-quest-heading h1{font-size:26px}#practice .quest-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#practice .quest-card{padding:12px}#practice .quest-card h3{font-size:11px}#practice .quest-overview{gap:10px 16px}#practice .quest-overview>div{display:grid;gap:5px}#practice .quest-card p{font-size:9px;min-height:0}.practice-tabs button{font-size:10px;padding:11px 12px}#practice .practice-drills-heading{gap:6px}#practice .practice-drills-heading p{width:100%}#practice .practice-tab-panel>.panel{padding:16px}#practice .practice-grid{grid-template-columns:1fr}#practice .practice-card{padding:16px}#practice .training-columns{grid-template-columns:1fr;gap:12px}.stage-item-pile{width:min(100%,180px)}}

/* Page navigation and shops are separate header groups. */
body>header .primary-navigation{display:flex;align-items:center;gap:20px;height:100%;flex-shrink:0}
body>header .primary-navigation nav{display:flex;align-items:stretch;gap:20px;order:0;flex-basis:auto;width:auto;height:100%;margin:0}
.header-shop-links{display:flex;align-items:center;gap:16px;border-left:1px solid var(--line);padding-left:20px;height:28px}
.header-shop-links .shop-nav{font:11px 'IBM Plex Mono',monospace;color:var(--green);white-space:nowrap;padding:8px 0;min-height:36px}
.header-shop-links .shop-nav:hover{color:var(--ink);text-decoration:underline;text-underline-offset:5px}
@media(min-width:601px) and (max-width:1400px){body>header .primary-navigation{order:10;flex-basis:100%;height:44px;justify-content:center}body>header .primary-navigation nav{flex-basis:auto;height:44px}}
@media(max-width:600px){body>header .primary-navigation{grid-column:1/-1;grid-row:3;width:100%;height:40px;gap:12px;justify-content:center}body>header .primary-navigation nav{grid-column:auto;grid-row:auto;display:flex;gap:clamp(9px,3vw,16px);width:auto;flex-basis:auto;height:40px}body>header .primary-navigation .nav{font-size:10px;padding:0;min-height:40px}.header-shop-links{height:22px;padding-left:12px;gap:10px}.header-shop-links .shop-nav{font-size:9px;min-height:36px}}

.premium-machine{border-color:color-mix(in srgb,#bd8bff 50%,var(--line));border-left-color:#bd8bff;background:color-mix(in srgb,#bd8bff 5%,var(--soft))}.premium-machine .pixel-chest{border-color:#bd8bff;background:#6b467f;color:#f4d9ff}.premium-odds{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:14px;font:10px 'IBM Plex Mono',monospace}.premium-odds span{color:var(--rarity)}.premium-odds b{font-weight:500}.is-spinning .pixel-chest{animation:chest-rarity-roll 2100ms linear infinite!important}.premium-machine.is-spinning .pixel-chest{animation-name:premium-rarity-roll!important}.lucky-reveal:not([hidden]){animation:chest-awarded .4s ease-out}.pixel-chest{transition:box-shadow .1s}
@keyframes chest-rarity-roll{0%,100%{border-color:#a9b6b2;background:#46564f;box-shadow:0 0 18px #a9b6b255;transform:translateY(0)}20%{border-color:#6ab8ff;background:#244b6a;box-shadow:0 0 28px #6ab8ff88;transform:translateY(-3px)}40%{border-color:#bd8bff;background:#644279;box-shadow:0 0 28px #bd8bff88;transform:translateY(1px)}60%{border-color:#ffd26b;background:#7c5c20;box-shadow:0 0 30px #ffd26b99;transform:translateY(-4px)}80%{border-color:#ff7bad;background:#793653;box-shadow:0 0 32px #ff7bad99;transform:translateY(0)}}
@keyframes premium-rarity-roll{0%,100%{border-color:#6ab8ff;background:#244b6a;box-shadow:0 0 24px #6ab8ff88;transform:translateY(0)}33%{border-color:#bd8bff;background:#644279;box-shadow:0 0 28px #bd8bff88;transform:translateY(-3px)}66%{border-color:#ffd26b;background:#7c5c20;box-shadow:0 0 30px #ffd26b99;transform:translateY(1px)}85%{border-color:#ff7bad;background:#793653;box-shadow:0 0 32px #ff7bad99;transform:translateY(-4px)}}
@keyframes chest-awarded{from{opacity:.3;box-shadow:0 0 32px var(--rarity);transform:translateY(6px)}to{opacity:1;box-shadow:0 0 0 transparent;transform:none}}@media(prefers-reduced-motion:reduce){.is-spinning .pixel-chest,.lucky-reveal:not([hidden]){animation:none!important}}

.lucky-machine.has-result .pixel-chest{border-color:var(--chest-result);color:var(--chest-result);background:color-mix(in srgb,var(--chest-result) 18%,var(--bg));box-shadow:0 0 22px color-mix(in srgb,var(--chest-result) 40%,transparent)}

.premium-sale{display:flex;align-items:center;gap:12px;margin:14px 0 9px;font:12px 'IBM Plex Mono',monospace}.premium-sale s{color:var(--muted);text-decoration-thickness:2px}.premium-sale strong{padding:4px 7px;border:1px solid #bd8bff;color:#bd8bff;font-size:9px}
.dance-battle-hud{border:1px solid var(--green);padding:12px 16px;margin:12px 0;background:var(--soft);font-family:'IBM Plex Mono',monospace}.dance-battle-hud[hidden]{display:none}.dance-battle-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px}.dance-battle-heading>strong{color:var(--green);letter-spacing:1px}.dance-battle-heading>span{font-size:9px;color:var(--muted)}.dance-battle-scores{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center;margin-top:12px}.dance-battle-scores>div>span{display:flex;justify-content:space-between;font-size:10px;gap:12px}.dance-battle-scores b{color:var(--green);font-weight:500}.dance-battle-scores i{display:block;height:5px;margin:7px 0;background:linear-gradient(to right,var(--green) var(--hold),var(--line) var(--hold))}.dance-battle-scores>div:last-child i{background:linear-gradient(to right,var(--orange) var(--hold),var(--line) var(--hold))}.dance-battle-scores small,.battle-vs{font-size:9px;color:var(--muted)}.dance-battle-verdict{font-size:9px;margin:10px 0 0;line-height:1.6}.dance-battle-hud[data-outcome="won"]{border-color:var(--fire-gold,#ffd26b)}.dance-battle-hud[data-outcome="lost"]{border-color:var(--orange)}#dance-stage-band .dance-battle-active #typing-dancer{left:calc(50% - min(14vw,130px))}#dance-stage-band .dance-battle-active .battle-rival{left:calc(50% + min(14vw,130px));z-index:3}
@media(max-width:600px){.dance-battle-hud{padding:10px 12px}.dance-battle-heading{align-items:flex-start;flex-direction:column;gap:5px}.dance-battle-scores{gap:10px}.dance-battle-scores>div>span{font-size:8px;gap:5px}#dance-stage-band .dance-battle-active #typing-dancer{left:calc(50% - 72px)}#dance-stage-band .dance-battle-active .battle-rival{left:calc(50% + 72px)}}

.afk-upgrade-panel{margin:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px;border:1px solid var(--line);background:var(--surface)}.afk-upgrade-panel h3{margin:8px 0;font-size:18px}.afk-upgrade-panel p{font-size:11px;max-width:600px;margin:0;line-height:1.8}.afk-upgrade-panel>div:last-child{flex-shrink:0;display:grid;gap:8px}.afk-upgrade-panel button{font-size:11px;padding:12px;border:1px solid var(--green)}.afk-upgrade-panel button:disabled{opacity:.5;cursor:default}.afk-upgrade-panel small{color:var(--muted);font-size:9px}.cosmetics-view .afk-upgrade-panel{display:none}@media(max-width:700px){.afk-upgrade-panel{flex-direction:column;align-items:stretch;margin:16px;padding:16px}}

.stage-ambient-stars{animation:stage-stars 9s ease-in-out infinite}.stage-atmosphere{animation:stage-haze 12s ease-in-out infinite}@keyframes stage-stars{50%{opacity:.6}}@keyframes stage-haze{50%{opacity:.45}}@media(prefers-reduced-motion:reduce){.stage-ambient-stars,.stage-atmosphere{animation:none}}

.first-box-guide{position:fixed;z-index:90;width:min(330px,calc(100vw - 24px));padding:20px;background:var(--surface);border:1px solid var(--green);box-shadow:0 12px 32px #0003}.first-box-guide[hidden]{display:none}.first-box-guide h3{font:15px/1.5 'IBM Plex Mono',monospace;margin:10px 0}.first-box-guide p{font-size:11px;line-height:1.9;margin:0 0 14px}.first-box-guide .primary{width:100%;font-size:11px;padding:12px}.first-box-guide small{display:block;font-size:9px;color:var(--muted);line-height:1.7;margin-top:12px}.first-box-dismiss{position:absolute;top:6px;right:6px;width:28px;height:28px;font-size:20px}.first-box-ready{box-shadow:inset 0 -2px var(--fire-gold,#ffd26b);color:var(--fire-gold,#ffd26b)!important}

:root{--history-average:var(--ink)}.analytics-grid:has(#history-chart-panel){grid-template-columns:1fr}#history-chart-panel{grid-column:1/-1;padding:24px;overflow:hidden}#history-chart-panel .insight-controls{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}#history-chart-panel .insight-controls select{width:100%;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-size:11px;padding:10px}#insight-activity{padding:16px 0 22px;border-bottom:1px solid var(--line);margin-bottom:16px}.history-activity-heading{display:flex;align-items:center;gap:18px;font:10px 'IBM Plex Mono',monospace;margin-bottom:12px}.history-activity-heading>span{color:var(--muted)}.history-activity-heading small{margin-left:auto;display:flex;gap:4px;align-items:center;color:var(--muted)}.history-activity-heading i{width:10px;height:10px;background:var(--green);opacity:.15}.history-activity-heading i:nth-child(2){opacity:.4}.history-activity-heading i:nth-child(3){opacity:.7}.history-activity-heading i:nth-child(4){opacity:1}.history-calendar-scroll{overflow:auto}.history-calendar-scroll svg{display:block;min-width:650px;width:100%;max-height:160px}.history-calendar-scroll text{fill:var(--muted);font:8px 'IBM Plex Mono',monospace}.history-quick-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.history-quick-filters button{padding:8px 12px;font:10px 'IBM Plex Mono',monospace;background:var(--soft);border:1px solid var(--line)}.history-quick-filters button:hover{border-color:var(--green)}.history-series{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin:18px 0 6px}.history-series button{font:9px 'IBM Plex Mono',monospace;color:var(--muted);display:flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid var(--line)}.history-series i{width:14px;height:2px;background:var(--series-colour)}.history-series button[aria-pressed=false]{opacity:.4}.history-series button[aria-pressed=true]{background:var(--soft);color:var(--ink)}.history-main-chart{display:block;width:100%;overflow:visible;touch-action:pan-y;min-height:230px}.history-main-chart text{fill:var(--muted);font:9px 'IBM Plex Mono',monospace}.history-grid line{stroke:var(--line);stroke-width:1;opacity:.55}.history-points circle{fill:var(--green);opacity:.28;cursor:crosshair}.history-points circle:focus{opacity:1;r:5;outline:none}.history-avg10,.history-avg100,.history-best,.history-accuracy{fill:none;stroke-linejoin:round;stroke-linecap:round}.history-avg10{stroke:var(--green);stroke-width:1.6;opacity:.6}.history-avg100{stroke:var(--ink);stroke-width:2.5}.history-best{stroke:var(--muted);stroke-width:1;opacity:.35}.history-accuracy{stroke:var(--orange);stroke-width:1.3;opacity:.7}.history-main-chart .history-accuracy-label{fill:var(--orange);opacity:.75}.history-crosshair{stroke:var(--muted);stroke-dasharray:3 4;stroke-width:1;pointer-events:none}.history-chart-tooltip{position:fixed;z-index:110;pointer-events:none;background:var(--surface);border:1px solid var(--green);padding:12px 14px;box-shadow:0 5px 20px #0003;min-width:190px;font:10px/1.7 'IBM Plex Mono',monospace}.history-chart-tooltip[hidden]{display:none}.history-chart-tooltip>span{display:block;color:var(--muted)}.history-chart-tooltip dl{margin:8px 0 0}.history-chart-tooltip dl>div{display:flex;justify-content:space-between;gap:20px}.history-chart-tooltip dt{color:var(--muted)}.history-chart-tooltip dd{margin:0;color:var(--green)}.history-trend{font:10px/1.7 'IBM Plex Mono',monospace;color:var(--muted);margin:12px 0}.history-chart-empty{min-height:260px;display:grid;place-content:center;text-align:center;gap:12px;color:var(--muted)}#history-chart-panel #chart-detail{font-size:10px}#history-chart-panel details{font-size:11px;margin-top:16px}@media(max-width:900px){#history-chart-panel .insight-controls{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){#history-chart-panel{padding:16px}#history-chart-panel .insight-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.history-activity-heading{gap:10px;flex-wrap:wrap}.history-activity-heading small{margin:0}.history-series{justify-content:flex-start}.history-main-chart{min-height:220px}.history-main-chart text{font-size:11px}.history-quick-filters button{font-size:9px;padding:8px}.history-trend{font-size:9px}}
/* Remove the earlier compact-chart box so the history chart can use its full width. */
#history-chart-panel #chart{display:block;height:auto;min-height:0;padding:0;overflow:visible}#history-chart-panel #chart svg.history-main-chart{display:block;width:100%;height:auto;aspect-ratio:1000/330;min-height:0;max-height:none}
@media(max-width:600px){#history-chart-panel #chart svg.history-main-chart{min-height:220px}}

/* Clear mission launch targets and regular multi-open. */
.stage-missions .mission-card{grid-template-rows:15px 32px 10px 12px 4px minmax(44px,auto)}
.stage-missions .mission-actions{align-items:stretch;flex-wrap:wrap;gap:6px;height:auto}
.stage-missions .mission-card .mission-actions button{min-height:44px;padding:9px 12px;border:1px solid var(--green);background:var(--soft);color:var(--green);font-size:11px;font-weight:600;justify-content:center;flex:1 1 auto}
.stage-missions .mission-card .mission-actions button:hover:not(:disabled){background:var(--green);color:var(--bg);text-decoration:none}
#practice .quest-card>button{min-height:48px;padding:12px;font-size:12px;border-color:var(--green);color:var(--green)}
.lucky-bundle{border-top:1px solid var(--line);margin-top:20px;padding-top:8px}.lucky-bundle .premium-sale{flex-wrap:wrap}.lucky-bundle .premium-sale strong{color:var(--green);border-color:var(--green)}
.bundle-results{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:20px;border-bottom:1px solid var(--line)}.bundle-results[hidden],.cosmetics-view .bundle-results{display:none}.bundle-results article{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 8px;border:1px solid var(--rarity);background:var(--soft);text-align:center;min-width:0}.bundle-results svg{width:64px;height:64px;image-rendering:pixelated}.bundle-results small{color:var(--rarity);font-size:9px}.bundle-results strong{font-size:11px;line-height:1.6}.bundle-results span{font-size:9px;color:var(--muted)}
@media(max-width:600px){.stage-missions .mission-card{grid-template-rows:14px 32px 10px 12px 3px minmax(44px,auto)}.bundle-results{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}}

/* The panel of three: original seated pixel portraits and raised paddles. */
.dance-judges{padding:24px;border-radius:0;box-shadow:none}.judges-heading{margin-bottom:22px}.judges-heading h3{font-size:20px;letter-spacing:-.4px}.judge-grid{gap:16px}.judge-card{border:1px solid var(--line);border-top:3px solid var(--judge-accent);background:var(--bg);padding:18px 14px 14px;gap:12px;overflow:hidden;position:relative}.judge-card:before{content:'';position:absolute;inset:0 0 auto;height:110px;pointer-events:none;background:linear-gradient(180deg,color-mix(in srgb,var(--judge-accent) 9%,transparent),transparent)}.judge-card .judge-figure{width:288px;height:auto;aspect-ratio:144/112;max-width:100%;animation:none;position:relative}.judge-card .judge-figure svg{display:block;width:100%;height:100%;margin:0}.judge-card .judge-copy{position:relative;border-top:1px solid var(--line);padding-top:14px}.judge-card .judge-role{font-size:8px;letter-spacing:1.5px;color:var(--judge-accent)}.judge-card h4{font:500 14px/1.5 'IBM Plex Mono',monospace;margin:8px 0}.judge-card p{font-size:11px;line-height:1.7;margin:0 auto;max-width:240px}.judge-paddle{transform-origin:59px 66px;animation:judge-raise .65s steps(6,end) both}.judge-card:nth-child(2) .judge-paddle{animation-delay:.16s}.judge-card:nth-child(3) .judge-paddle{animation-delay:.32s}.judge-sparkles{animation:judge-sparkle 1.5s steps(2,end) 2}.judge-eyes{animation:judge-blink 6s steps(1,end) 2;transform-origin:43px 43px}.judge-card:nth-child(2) .judge-eyes{animation-delay:1.5s}.judge-card:nth-child(3) .judge-eyes{animation-delay:3s}.award-strip{border:1px solid var(--line);border-radius:0;margin-top:18px}.award-strip>div{min-width:72px}.award-strip>div:first-child span{color:var(--fire-gold,#e3bf72)}
@keyframes judge-raise{from{transform:rotate(26deg) translateY(10px)}to{transform:rotate(0) translateY(0)}}@keyframes judge-sparkle{0%,100%{opacity:0}40%,80%{opacity:1}}@keyframes judge-blink{0%,46%,50%,100%{transform:scaleY(1)}48%{transform:scaleY(.1)}}
@media(max-width:800px){.judge-grid{gap:10px}.judge-card{padding:12px 8px}.judge-card h4{font-size:11px}.judge-card p{font-size:10px}.judge-card .judge-role{font-size:7px;letter-spacing:.7px}}
@media(max-width:520px){.dance-judges{padding:14px}.judges-heading{align-items:flex-start;flex-wrap:wrap;gap:10px}.judges-heading h3{font-size:16px}.judge-grid{gap:6px}.judge-card{padding:10px 4px;gap:8px}.judge-card .judge-figure{height:auto;width:100%}.judge-card .judge-copy{padding-top:10px}.judge-card h4{font-size:10px;min-height:45px;margin:6px 0}.judge-card .judge-role{font-size:6px;letter-spacing:0}.judge-card p{font-size:9px;line-height:1.6}.award-strip{padding:14px;gap:18px}}
@media(prefers-reduced-motion:reduce){.judge-paddle,.judge-sparkles,.judge-eyes{animation:none}}

/* Account appearance and progress together; keyboard settings stand alone. */
body>header{gap:16px}body>header .keyboard-settings{display:flex;align-items:center;margin-left:auto;min-width:0}body>header .keyboard-settings .keyboard-profile-open{margin:0;min-height:42px;border-radius:0;max-width:180px}body>header .header-tools{margin-left:0;gap:8px;padding:5px}body>header .header-tools #account-open{min-height:40px;max-width:140px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}body>header .header-tools .xp-hud{border-right:1px solid var(--line)}
@media(min-width:601px) and (max-width:900px){body>header .keyboard-settings .keyboard-profile-open{max-width:140px}body>header .header-tools .xp-hud{min-width:140px}body>header .header-tools{margin-left:auto}}
@media(max-width:600px){body>header .keyboard-settings{grid-column:2;grid-row:1;justify-self:end;margin:0}body>header .keyboard-settings .keyboard-profile-open{grid-column:auto;grid-row:auto;min-height:36px;width:auto;max-width:145px;font-size:9px;padding:8px}body>header .header-tools{grid-column:1/-1;grid-row:2;margin:0;gap:6px;justify-content:space-between}body>header .header-tools .xp-hud{width:auto;min-width:120px;flex:1;padding:4px 9px}body>header .header-tools #account-open{grid-column:auto;grid-row:auto;max-width:128px;min-height:40px;padding:8px 10px;font-size:10px}}

[data-character="tap"]{--preview-bg:#09090e;--costume-primary:#29252e;--costume-secondary:#38313d;--costume-trim:#e4c681;--costume-hair:#26212a;--costume-skin:#bd927c;--costume-shoe:#18171f}
[data-character="tap"] .pixel-dancer{--sprite-outline:#5b525d}
[data-character="tap"][data-skin="ivory"]{--costume-primary:#ede2cc;--costume-secondary:#61575c;--costume-trim:#ddba71;--costume-shoe:#302a32}
[data-character="tap"][data-skin="royal"]{--costume-primary:#6c3448;--costume-secondary:#2e2734;--costume-trim:#f1d28a;--costume-shoe:#19151e}
[data-character="tap"][data-costume-palette="ember"]{--costume-primary:#b87958;--costume-secondary:#4d363b;--costume-trim:#e5cf9b}
[data-character="tap"][data-costume-palette="glacier"]{--costume-primary:#8bb6c9;--costume-secondary:#34475a;--costume-trim:#f3e9cf}
[data-character="tap"][data-costume-palette="amethyst"]{--costume-primary:#9e7cbb;--costume-secondary:#49324f;--costume-trim:#f1d398}
[data-character="tap"][data-costume-palette="mono"]{--costume-primary:#e6ddca;--costume-secondary:#46414c;--costume-trim:#e3bd72}
/* Narrow windows and phones: preserve readable controls instead of squeezing. */
@media(max-width:1050px){
 .judge-grid{gap:10px}.judges-heading{flex-wrap:wrap}.award-strip p{overflow-wrap:anywhere}
 .insight-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.insight-controls>*{min-width:0}.insight-controls select{width:100%;min-width:0}
 .lucky-controls{min-width:0;max-width:100%}.store-card-buy{grid-template-columns:1fr}.store-card-buy button{width:100%;min-height:44px}
}
@media(max-width:700px){
 .judge-grid{grid-template-columns:1fr}.judge-card{display:grid;grid-template-columns:136px minmax(0,1fr);gap:14px;align-items:center;padding:12px;text-align:left;border-top:1px solid var(--line);border-left:3px solid var(--judge-accent)}.judge-card .judge-figure{width:136px;height:auto;max-width:100%}.judge-card .judge-copy{border-top:0;padding:0;min-width:0}.judge-card h4{font-size:13px;min-height:0;margin:7px 0}.judge-card .judge-role{font-size:8px;letter-spacing:.6px}.judge-card p{font-size:10px;max-width:none;margin:0}.judge-card:before{height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--judge-accent) 7%,transparent),transparent)}
 .award-strip{flex-wrap:wrap}.award-strip p{flex-basis:100%;margin:0;text-align:left}.lucky-controls button{white-space:normal;line-height:1.6;width:100%;padding:12px;min-height:48px}.premium-odds{justify-content:flex-start;gap:8px 12px}.lucky-machine{gap:18px}.store-gold{flex-wrap:wrap}.store-gold>span{white-space:normal;line-height:1.6}.box-browser{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 12px}.box-browser label,.box-browser select{min-width:0;width:100%}.box-browser>span{margin:0}.store-item-grid{gap:10px}.cosmetic-navigation{flex-wrap:wrap}.cosmetic-navigation button{min-height:44px}.cosmetic-copy button{min-height:44px;white-space:normal}.store-view-tabs button{min-height:44px}
}
@media(max-width:600px){
 body>header{padding-top:calc(6px + env(safe-area-inset-top));grid-template-rows:42px 50px 44px;gap:4px 8px}body>header .header-tools .appearance-open{min-height:44px;min-width:44px}body>header .header-tools .xp-hud{min-width:0;flex:1;width:auto}body>header .header-tools #account-open{min-width:0;max-width:110px;min-height:44px}body>header .primary-navigation{height:44px;gap:10px;justify-content:space-between}body>header .primary-navigation nav{height:44px;gap:clamp(9px,3vw,16px)}body>header .primary-navigation .nav,.header-shop-links .shop-nav{min-height:44px}.header-shop-links{padding-left:10px;gap:10px}
 .dance-judges{padding:12px}.judge-card{grid-template-columns:120px minmax(0,1fr);padding:10px;gap:12px}.judge-card .judge-figure{width:120px}.judge-card h4{font-size:12px;min-height:0}.judge-card p{font-size:10px}.judge-card .judge-role{font-size:7px}.judges-heading h3{font-size:16px}
 #gold-shop-dialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 16px);border-radius:0}#gold-shop-dialog .store-header{padding:18px 44px 14px 14px}#gold-shop-dialog .store-header p{font-size:11px;line-height:1.6}.store-gold>small{font-size:7px}.store-gold>span{flex-basis:100%;margin:0}.store-view-tabs{gap:5px;padding:10px 12px}.store-view-tabs button{font-size:9px;padding:9px}.lucky-machine{margin:12px;padding:18px 14px;gap:14px;align-items:stretch}.lucky-machine .pixel-chest{width:72px;height:56px;border-width:5px;font-size:26px;align-self:center;box-shadow:4px 4px 0 #0004}.lucky-controls{text-align:left}.lucky-controls h3{font-size:20px}.lucky-controls p{font-size:11px;line-height:1.7}.lucky-controls small{font-size:10px;line-height:1.8}.premium-sale{font-size:11px;gap:8px}.premium-odds span{font-size:9px}.lucky-bundle{margin-top:14px}.lucky-reveal{margin:12px;align-items:flex-start;flex-wrap:wrap}.lucky-reveal>div{min-width:0;flex:1}.lucky-reveal h3{font-size:16px;line-height:1.5}.drop-perks b{padding:6px;font-size:10px}.drop-perks span{font-size:10px}.afk-upgrade-panel{margin:12px;display:flex;flex-direction:column;align-items:stretch;gap:12px}.afk-upgrade-panel button{width:100%;min-height:48px;white-space:normal}.afk-upgrade-panel h3{font-size:16px}.afk-upgrade-panel p{font-size:11px;line-height:1.7}.shop-section-heading,.collection-progress{padding:14px}.collection-progress>div:first-child{gap:10px}.collection-progress span{font-size:10px}.collection-tiers{gap:10px}.cosmetic-copy{padding:12px}.cosmetic-copy h4{font-size:12px;line-height:1.5}.cosmetic-copy p{font-size:10px}.cosmetic-preview{height:130px}.cosmetic-preview .pixel-dancer{width:86px;height:98px}.cosmetic-copy button{font-size:10px;padding:8px}.cosmetic-shelf-heading h3{font-size:16px}.cosmetic-shelf-heading p{font-size:11px;line-height:1.7}
 .history-quick-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.history-quick-filters button,.history-series button{min-height:40px}.insight-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.insight-controls label,.insight-controls .choice-label{font-size:10px}.insight-controls select{padding:10px 6px}.history-main-chart{overflow:visible}.history-series{flex-wrap:wrap}.section-top h1{max-width:100%}.result-content,.results-grid,.result-grid{min-width:0}.table-scroll,.key-visual-scroll{max-width:100%;overscroll-behavior-x:contain}
}
@media(max-width:380px){body>header .brand .pixel-wordmark{width:96px}body>header .keyboard-settings .keyboard-profile-open{max-width:126px;font-size:8px}body>header .primary-navigation{gap:7px}body>header .primary-navigation .nav{font-size:9px}.header-shop-links{padding-left:7px;gap:8px}.header-shop-links .shop-nav{font-size:8px}.judge-card{grid-template-columns:100px minmax(0,1fr);gap:8px}.judge-card .judge-figure{width:100px}.judge-card h4{font-size:11px}.judge-card p{font-size:9px}.store-item-grid{grid-template-columns:1fr}.box-browser{grid-template-columns:1fr 1fr}}

/* One shop destination per activity. */
#gold-shop-dialog:not([data-view="boxes"]) .lucky-machine,#gold-shop-dialog:not([data-view="boxes"]) .shop-odds-details,#gold-shop-dialog:not([data-view="boxes"]) .lucky-reveal,#gold-shop-dialog:not([data-view="boxes"]) .bundle-results{display:none}
#gold-shop-dialog[data-view="boxes"] .shop-section-heading,#gold-shop-dialog[data-view="boxes"] .collection-progress,#gold-shop-dialog[data-view="boxes"] .box-browser,#gold-shop-dialog[data-view="boxes"]>.store-item-grid{display:none}
#gold-shop-dialog:not([data-view="merchant"]) .afk-upgrade-panel{display:none}
/* A locally served arcade font, with a readable body and opt-in typing font. */
@font-face{font-family:'Press Start 2P';src:url('fonts/press-start-2p.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
:root{--arcade-font:'Press Start 2P','IBM Plex Mono',monospace}
h1,h2,h3,.section-top h1,.practice-drills-heading h2,.judges-heading h3{font-family:var(--arcade-font);font-weight:400;line-height:1.65;letter-spacing:-.5px;font-synthesis:none}
body>header .primary-navigation .nav,body>header .shop-nav,.store-view-tabs button,.eyebrow,.combo-badge,.judge-role,.last-drop-label{font-family:var(--arcade-font);font-weight:400;line-height:1.8;letter-spacing:0;font-synthesis:none}
body>header .primary-navigation .nav{font-size:9px}body>header .shop-nav{font-size:8px}.store-view-tabs button{font-size:9px}.eyebrow{font-size:7px}.judges-heading h3{font-size:16px}.lucky-controls h3{font-size:20px}.shop-section-heading h3{font-size:17px}.judge-card h4{font-family:var(--arcade-font);font-weight:400;font-size:10px;line-height:1.9;font-synthesis:none}.combo-badge{font-size:7px}.judge-card .judge-role{font-size:6px}.practice-quest-heading h1{font-family:var(--arcade-font)}
/* Centred result score display. Preserve large, easy-to-read numeric data. */
#result:not([hidden]){display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;width:min(100%,1040px);align-self:center;margin:12px auto 24px;padding:16px;border:1px solid var(--line);background:var(--bg);text-align:center}
#result>div{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-width:0;min-height:116px;padding:18px 12px;border:1px solid var(--line);background:var(--surface);position:relative}
#result>div:first-child{border-color:var(--green);background:var(--soft)}#result>div:before,#result>div:after{content:'';position:absolute;width:5px;height:5px;background:var(--green);opacity:.7}#result>div:before{top:-1px;left:-1px}#result>div:after{bottom:-1px;right:-1px}
#result>div>small{font-family:var(--arcade-font);font-size:7px;line-height:1.9;letter-spacing:0;text-transform:uppercase;color:var(--muted);font-synthesis:none}
#result>div>strong{font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:40px;line-height:1;letter-spacing:-1px;font-variant-numeric:tabular-nums;color:var(--ink)}#result>div:first-child>strong{font-size:48px;color:var(--green)}#result strong>small{font:12px 'IBM Plex Mono',monospace;color:var(--muted);margin-left:4px}
@media(max-width:800px){#result:not([hidden]){gap:8px;padding:10px}#result>div{padding:14px 8px;min-height:100px}#result>div>strong{font-size:32px}#result>div:first-child>strong{font-size:38px}#result>div>small{font-size:6px}}
@media(max-width:600px){h1,h2,h3{letter-spacing:-.3px}body>header .primary-navigation .nav{font-size:8px}body>header .shop-nav{font-size:7px}body>header .primary-navigation{gap:8px}body>header .primary-navigation nav{gap:10px}.header-shop-links{gap:8px;padding-left:8px}.store-view-tabs button{font-size:8px}.lucky-controls h3{font-size:17px}.judge-card h4{font-size:9px}.judges-heading h3{font-size:13px}#practice .practice-quest-heading h1{font-size:22px}#result:not([hidden]){grid-template-columns:repeat(2,minmax(0,1fr));margin:10px auto 16px;padding:8px}#result>div{min-height:98px;padding:14px 8px;gap:12px}#result>div>strong{font-size:32px}#result>div:first-child>strong{font-size:40px}#result>div>small{font-size:6px}}
@media(max-width:380px){body>header .primary-navigation nav{gap:8px}body>header .primary-navigation .nav{font-size:7px}body>header .shop-nav{font-size:6px}.header-shop-links{gap:7px;padding-left:7px}.judge-card h4{font-size:8px}.store-view-tabs button{font-size:7px}#result>div>small{font-size:5px}}

[data-character="tap"][data-skin="default"],[data-character="tap"]:not([data-skin]){--costume-primary:#33343e;--costume-secondary:#272932;--costume-shoe:#171821}
#result>div>small{font-size:9px}@media(max-width:800px){#result>div>small{font-size:7px}}@media(max-width:380px){#result>div>small{font-size:6px}}
/* Compact result readout: a light underline instead of nested boxes. */
#result:not([hidden]){width:min(100%,840px);border:0;background:transparent;padding:0;gap:16px;margin:10px auto 18px}
#result>div{min-height:82px;padding:10px 8px;gap:10px;border:0;border-bottom:1px solid var(--line);background:transparent}
#result>div:first-child{background:transparent;border:0;border-bottom:1px solid color-mix(in srgb,var(--green) 60%,var(--line))}
#result>div:before,#result>div:after{display:none}
#result>div>strong{font-size:30px}#result>div:first-child>strong{font-size:36px}#result>div>small{font-size:7px}
@media(max-width:600px){#result:not([hidden]){gap:8px 16px;margin:8px auto 14px}#result>div{min-height:72px;padding:8px 4px;gap:9px}#result>div>strong{font-size:26px}#result>div:first-child>strong{font-size:32px}#result>div>small{font-size:6px}}

#result>div,#result>div:first-child{border:0;box-shadow:none}
#test>.intro h1{max-width:900px;font-size:clamp(24px,4vw,40px);line-height:1.7;text-align:center}#test>.intro p{text-align:center;max-width:560px;line-height:1.8}@media(max-width:600px){#test>.intro h1{font-size:26px}}
.first-box-guide.guide-in-shop{position:relative;top:auto;left:auto;width:100%;margin:18px 0 0;padding:18px;box-shadow:none;z-index:auto;background:var(--surface)}.first-box-guide .first-box-dismiss{width:36px;height:36px}.first-box-guide.guide-in-shop h3{font-size:13px;max-width:90%;line-height:1.7}.first-box-guide.guide-in-shop .primary{font-size:11px;min-height:44px}.first-box-guide.guide-in-shop p{font-size:11px}

.first-box-guide.guide-in-shop{margin:0 0 18px}
/* Loot openings are a dedicated, top-aligned shop view, including short screens. */
.loot-spotlight[hidden]{display:none}.loot-spotlight{padding:16px;min-width:0}.loot-active .lucky-machine,.loot-active .shop-odds-details{display:none!important}.loot-active .store-header{padding-top:14px;padding-bottom:10px}.loot-active .store-header p,.loot-active .store-gold>span{display:none}.loot-active .store-header h2{font-size:20px;margin:7px 0}.loot-active .store-view-tabs{padding-top:7px;padding-bottom:7px}.loot-spotlight .lucky-reveal{margin:0;padding:20px 44px 20px 20px;align-items:center}.loot-spotlight .lucky-reveal[hidden]{display:none}.loot-spotlight .last-drop-label{font-size:8px;line-height:1.7}.loot-spotlight .lucky-reveal h3{font:12px/1.8 'Press Start 2P',monospace;overflow-wrap:anywhere}.loot-spotlight .lucky-reveal>div{min-width:0}.loot-spotlight .bundle-results{padding:14px 0;border:0}.loot-continue{display:block;margin:16px auto 0;min-height:44px;font-size:11px}.loot-opening{display:grid;justify-items:center;gap:16px;text-align:center;padding:28px 12px}.loot-opening .pixel-chest{position:relative;animation:chest-rarity-roll 2100ms linear infinite}.loot-opening h3{font:12px/1.8 'Press Start 2P',monospace;margin:0}.loot-opening p{font-size:12px;color:var(--muted);margin:0}.loot-active #shop-status{padding:0 16px 16px}.loot-active .dismiss-drop{display:none}
.rotation-manager{padding:18px 0 24px;border-bottom:1px solid var(--line);margin-bottom:24px;grid-column:1/-1}.rotation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.rotation-card{border:1px solid var(--line);background:var(--surface);padding:12px;min-width:0}.rotation-card .cosmetic-preview{height:112px;border-bottom:1px solid var(--line);margin:-12px -12px 14px}.rotation-card h4{font:10px/1.8 'Press Start 2P',monospace;margin:8px 0 14px}.rotation-card label{display:flex;flex-direction:column;gap:7px;font:11px/1.6 'IBM Plex Mono',monospace;margin:10px 0;color:var(--muted)}.rotation-card label.rotation-toggle{flex-direction:row;align-items:center;color:var(--ink);min-height:40px}.rotation-toggle input{width:18px;height:18px;accent-color:var(--green);margin:0 5px 0 0}.rotation-card select{width:100%;min-width:0;min-height:42px;padding:8px;background:var(--bg);border:1px solid var(--line);border-radius:0;color:var(--ink);font:11px 'IBM Plex Mono',monospace}.rotation-feedback{font-size:11px;line-height:1.8;color:var(--green);margin:14px 0 0}
/* Small arcade details, keeping the typing area quiet and legible. */
footer>span{display:flex;align-items:center;gap:12px}footer .footer-mark{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;background:var(--green);color:var(--bg);box-shadow:3px 3px 0 var(--line)}.footer-mark svg{width:28px;height:28px;image-rendering:pixelated}.footer-slogan{font:7px/2 'Press Start 2P',monospace;letter-spacing:0;color:var(--muted)}.below{align-items:stretch;gap:20px}.below .session-note{display:flex;align-items:center;gap:16px;padding:14px 0;max-width:none;margin:0}.session-note .tiny-icon{font:11px/1 'IBM Plex Mono',monospace;color:var(--green);letter-spacing:2px}.below .eyebrow{display:block;font:7px/1.8 'Press Start 2P',monospace;letter-spacing:0;color:var(--green);margin-bottom:8px}.below .session-note strong,.below .insight-teaser strong{display:block;font:10px/1.8 'Press Start 2P',monospace;letter-spacing:0}.below .session-note p,.below .insight-teaser small{font:11px/1.7 'IBM Plex Mono',monospace;color:var(--muted);margin:6px 0 0}.below .insight-teaser{display:flex;align-items:center;text-align:left;gap:16px;border:1px solid var(--line);border-radius:0;background:var(--soft);box-shadow:3px 3px 0 var(--line);padding:18px 20px;max-width:420px;width:auto}.insight-teaser .spark{font:22px 'IBM Plex Mono',monospace;letter-spacing:2px;color:var(--green)}.insight-teaser .arrow{margin-left:auto;color:var(--green);font-size:12px}.below .insight-teaser:hover{border-color:var(--green);box-shadow:3px 3px 0 var(--green)}.below .insight-teaser:focus-visible{outline:2px solid var(--green);outline-offset:5px}
@media(max-width:700px){.rotation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rotation-card{padding:10px}.rotation-card .cosmetic-preview{margin:-10px -10px 12px}.rotation-card h4{font-size:8px}.loot-spotlight{padding:12px}.loot-spotlight .lucky-reveal{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;padding:14px}.loot-spotlight .lucky-reveal[hidden]{display:none}.loot-spotlight .lucky-reveal>.item-pixel-art{width:64px;height:64px;align-self:start}.loot-spotlight .lucky-reveal h3{font-size:10px;margin:8px 0}.loot-spotlight .lucky-reveal p{font-size:11px;line-height:1.6}.loot-spotlight .drop-perks{gap:6px}.loot-spotlight .drop-perks b{font-size:9px}.loot-spotlight .last-drop-label{font-size:7px}.loot-spotlight .bundle-results{grid-template-columns:repeat(2,minmax(0,1fr))}.below{flex-direction:column;gap:8px}.below .insight-teaser{width:100%;max-width:none}.below .session-note{margin:0}.footer-slogan{font-size:6px}.loot-active .store-gold>strong{font-size:22px}}
@media(max-height:600px){.loot-active .store-header{padding-top:10px;padding-bottom:8px}.loot-active .store-header .eyebrow,.loot-active .store-gold>small{display:none}.loot-spotlight .lucky-reveal{padding:12px}.loot-spotlight .lucky-reveal>.item-pixel-art{width:64px;height:64px}.loot-opening{padding:12px;gap:10px}.loot-opening .pixel-chest{width:70px;height:56px}.loot-continue{margin-top:10px}.loot-spotlight .lucky-reveal h3{margin:6px 0}.loot-spotlight .last-drop-label{margin-bottom:5px}}
@media(prefers-reduced-motion:reduce){.loot-opening .pixel-chest{animation:none!important}}
.rotation-manager{padding:20px}.rotation-card .cosmetic-preview{display:grid;place-items:center;overflow:hidden}.rotation-card .cosmetic-preview[data-cosmetic-kind="dancer"]>svg{width:86px;height:98px;max-height:100%}
@media(max-width:600px){.rotation-manager{padding:16px 12px}}

/* Keep a balanced inset around the passage on narrow desktop and phone screens. */
@media(max-width:1280px){#test .test-wrap{padding-inline:clamp(18px,2.5vw,28px);}}
/* Compact play controls and clear, connected practice steps. */
.result-next-step,.first-reward-help{order:2;display:flex;flex-wrap:wrap;align-items:center;gap:16px;border:1px solid var(--line);border-left:3px solid var(--green);padding:18px;margin:16px 0;text-align:left;background:var(--soft)}.result-next-step[hidden],.first-reward-help[hidden],.first-round-intro[hidden]{display:none}.result-next-step>div,.first-reward-help>div{flex:1;min-width:200px}.result-next-step h3,.first-reward-help h3{font:11px/1.8 'Press Start 2P',monospace;margin:8px 0}.result-next-step p,.first-reward-help p{font:11px/1.8 'IBM Plex Mono',monospace;margin:6px 0}.result-next-step small{display:block;font-size:10px;line-height:1.7;color:var(--muted)}.result-next-step button,.first-reward-help button{min-height:44px;font-size:11px;white-space:normal}.target-comparison{color:var(--green)}
.equipment-summary{max-width:1232px;margin:0 auto 12px;border-bottom:1px solid var(--line);font-family:'IBM Plex Mono',monospace;text-align:left}.equipment-summary>summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px 22px;padding:12px 0;cursor:pointer;list-style:none;font-size:10px}.equipment-summary>summary>span{color:var(--muted)}.equipment-summary>summary>b{font-weight:500;color:var(--green)}.equipment-summary>summary>small{margin-left:auto;color:var(--muted)}.equipment-detail{border-top:1px solid var(--line);padding:12px 16px;background:var(--soft)}.equipment-detail p{font-size:11px;line-height:1.8;color:var(--muted)}.equipment-detail ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px;list-style:none;padding:0}.equipment-detail li{display:flex;flex-direction:column;font-size:10px;line-height:1.8}.equipment-detail li span{color:var(--muted)}
.skill-run{padding:22px;border:1px solid var(--line);border-left:3px solid var(--green);background:var(--soft);margin:0 0 24px}.skill-run-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.skill-run h2{font:13px/1.8 'Press Start 2P',monospace;margin:10px 0}.skill-run p{font-size:11px;line-height:1.8;color:var(--muted)}.skill-run .skill-note{color:var(--green)}.skill-run button{min-height:44px;white-space:normal;font-size:11px;flex-shrink:0}.skill-run>small{font-size:10px;line-height:1.8;color:var(--muted)}.skill-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;list-style:none;padding:0;margin:18px 0}.skill-steps li{display:flex;gap:10px;align-items:center;border:1px solid var(--line);padding:12px;font:11px/1.7 'IBM Plex Mono',monospace;color:var(--muted)}.skill-steps li>b{font:12px 'Press Start 2P',monospace}.skill-steps .current{border-color:var(--green);color:var(--ink)}.skill-steps .complete{color:var(--green)}.skill-run #skill-exit{margin-left:12px}
.first-round-intro{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;padding:18px;margin:0 0 6px;border-left:3px solid var(--green);background:var(--soft)}.first-round-intro>div{flex:1;min-width:220px}.first-round-intro h2{font:12px/1.9 'Press Start 2P',monospace;margin:8px 0}.first-round-intro p{font:11px/1.8 'IBM Plex Mono',monospace;color:var(--muted);margin:0}.first-round-intro button{min-height:44px;font-size:11px}.first-round-intro .text-button{max-width:none;text-align:center}
#test>.typing-missions.stage-missions{width:100%;max-width:none;margin:12px 0 16px}.missions-compact .mission-cards,.missions-compact .missions-note{display:none!important}.missions-compact .missions-title{padding:8px 12px!important;display:flex!important;align-items:center;min-height:44px}.missions-compact .mission-board-icon{width:18px;height:18px;font-size:12px}.missions-compact .missions-title h3{font:10px 'IBM Plex Mono',monospace}.mission-board-toggle{min-height:32px;font:10px 'IBM Plex Mono',monospace;padding:6px 10px;margin-left:8px}.missions-compact .missions-title>small{font-size:9px}
body.typing-focus .stage-missions,body.typing-focus .beat-wallet,body.typing-focus .equipment-summary,body.typing-focus .below,body.typing-focus .first-round-intro,body.typing-focus .first-box-guide{display:none!important}body.typing-focus .stage-scene,body.typing-focus .stage-owned-props,body.typing-focus .stage-key-equalizer,body.typing-focus .stage-key-glow{display:none!important}body.typing-focus{--fixed-stage-height:160px}body.typing-focus #dance-stage-band .stats-dancer-rail.dance-stage{--stage-sprite-width:104px;--stage-sprite-height:117px;--ground-height:20px}body.typing-focus.focus-hide-dancer #dance-stage-band{display:none!important}body:has(#practice:not([hidden])) .equipment-summary{display:none}
@media(max-width:1280px){.equipment-summary{margin-inline:24px}}
@media(max-width:600px){.equipment-summary{margin-inline:14px}.equipment-summary>summary{gap:8px 12px;font-size:9px}.equipment-summary>summary>span{flex-basis:100%}.equipment-detail ul{grid-template-columns:1fr}.skill-run{padding:16px}.skill-run-heading{display:block}.skill-run h2{font-size:11px}.skill-run-heading>button{width:100%;margin-top:8px}.skill-steps{grid-template-columns:1fr;gap:6px}.skill-steps li{padding:10px}.first-round-intro{padding:14px}.first-round-intro h2{font-size:10px}.first-round-intro>div{min-width:0;flex-basis:100%}.first-round-intro .primary{flex:1}.result-next-step,.first-reward-help{padding:14px;gap:12px}.result-next-step>div,.first-reward-help>div{min-width:0;flex-basis:100%}.result-next-step button{width:100%}.result-next-step h3{font-size:10px}.missions-compact .missions-title{gap:7px;flex-wrap:wrap}.missions-compact .missions-title>small{margin-left:auto}.mission-board-toggle{font-size:9px;margin-left:0}body.typing-focus{--fixed-stage-height:130px}}

/* Focus is a compact, persistent top-bar switch. */
.focus-header-toggle{display:flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:7px 10px;border:1px solid var(--line);background:transparent;color:var(--muted);font:10px 'IBM Plex Mono',monospace;white-space:nowrap}.focus-header-toggle>i{display:block;width:19px;height:10px;border:1px solid var(--muted);position:relative}.focus-header-toggle>i:after{content:'';position:absolute;width:5px;height:6px;left:1px;top:1px;background:var(--muted)}.focus-header-toggle[aria-pressed=true]{color:var(--green);border-color:var(--green);background:var(--soft)}.focus-header-toggle[aria-pressed=true]>i{border-color:var(--green)}.focus-header-toggle[aria-pressed=true]>i:after{left:11px;background:var(--green)}.focus-header-toggle:focus-visible{outline:2px solid var(--green);outline-offset:3px}#test .test-wrap{padding-inline:clamp(18px,2.5vw,32px)}
@media(max-width:600px){.focus-header-toggle{font-size:9px;padding:6px 7px;gap:5px;min-height:34px}.focus-header-toggle>span:first-child{display:none}}
.music-header-toggle{display:flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:7px 9px;color:var(--muted);background:transparent;border:1px solid var(--line);font:10px 'IBM Plex Mono',monospace;white-space:nowrap}.music-header-toggle>span:first-child{font-size:15px}.music-header-toggle>i{font:7px 'Press Start 2P',monospace;color:var(--muted)}.music-header-toggle[aria-pressed=true]{color:var(--green);border-color:var(--green);background:var(--soft)}.music-header-toggle[aria-pressed=true]>i{color:var(--green)}.music-header-toggle:focus-visible{outline:2px solid var(--green);outline-offset:3px}.music-settings{border-top:1px solid var(--line);padding-top:20px;margin:20px 0}.music-settings h3{font:12px/1.8 'Press Start 2P',monospace}.music-settings p,.music-settings>small{font-size:11px;line-height:1.8;color:var(--muted)}.music-settings label{display:block;font:11px 'IBM Plex Mono',monospace;margin:16px 0}.music-settings select{display:block;width:100%;min-height:42px;padding:10px;margin-top:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}.music-settings input{display:block;width:100%;margin-top:12px;accent-color:var(--green)}.music-settings output{float:right;color:var(--green)}
@media(max-width:600px){body>header .header-tools{gap:4px}.music-header-toggle{font-size:9px;padding:6px;gap:4px;min-height:34px}.music-header-toggle>span:first-child{display:none}.music-header-toggle>i{font:7px 'IBM Plex Mono',monospace}.focus-header-toggle{padding:6px;gap:4px}.focus-header-toggle>i{width:17px}.focus-header-toggle[aria-pressed=true]>i:after{left:9px}body>header .header-tools .xp-hud{padding-inline:5px}body>header .header-tools #account-open{max-width:84px;padding-inline:7px}body>header .header-tools .appearance-open{min-width:32px;padding-inline:6px}}

/* Item effects are always visible beside their descriptions. */
.store-card-body .item-description{margin:10px 0 14px}.store-card-body .item-description p{margin:6px 0;line-height:1.8}.store-card-body .item-description .item-move{color:var(--ink)}.store-card-body .item-description .item-buff,.lucky-reveal .item-buff{font:11px/1.8 "IBM Plex Mono",monospace;color:var(--rarity,var(--green));margin:9px 0;padding-left:10px;border-left:2px solid var(--rarity,var(--green))}
.music-now-playing{padding:12px;margin:14px 0;background:var(--soft);border-left:2px solid var(--green);font:11px/1.8 'IBM Plex Mono',monospace;color:var(--green)}.music-settings .music-track-tempo{font-size:10px;min-height:34px;margin:6px 0 14px}.music-settings>input[type=range]{margin:12px 0 16px}.music-settings>select{margin:8px 0 14px}.music-settings>small{display:block;margin-top:12px}

.pb-party-banner{white-space:normal;width:max-content;max-width:calc(100% - 24px);line-height:1.6}.pb-party-banner .pb-record-scope{display:block;font:11px/1.8 'IBM Plex Mono',monospace;color:#fff3c5;margin:3px 0}.pb-party-banner>small{display:block;font-size:10px;line-height:1.7}.pb-party-banner>span{font-size:10px;letter-spacing:1px}@media(max-width:600px){.pb-party-banner{padding:8px 12px}.pb-party-banner strong{font-size:24px}.pb-party-banner .pb-record-scope,.pb-party-banner>small{font-size:9px}.pb-party-banner>span{font-size:8px}}

.difficulty-rail.five-level-difficulty{display:flex;flex-direction:column;align-items:stretch;gap:2px;min-width:0;width:300px;max-width:100%}.five-level-difficulty input[type=range]{width:100%;margin:0;min-width:0}.difficulty-stop-labels{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;font:8px/1.5 'IBM Plex Mono',monospace;color:var(--muted);text-align:center}.difficulty-stop-labels span{position:relative;padding-top:6px}.difficulty-stop-labels span:before{content:'';position:absolute;left:50%;top:0;width:2px;height:3px;background:var(--line)}.difficulty-stop-labels span:first-child{text-align:left}.difficulty-stop-labels span:last-child{text-align:right}.difficulty-stop-labels span:first-child:before{left:7px}.difficulty-stop-labels span:last-child:before{left:auto;right:7px}@media(max-width:600px){.difficulty-rail.five-level-difficulty{width:100%;min-width:0}.difficulty-stop-labels{font-size:7px}}

.toolbar .difficulty-control{width:300px;flex:0 1 300px;min-width:260px}.difficulty-rail.five-level-difficulty{width:100%}.difficulty-stop-labels{display:block;position:relative;height:20px;margin-inline:8px;font-size:9px}.difficulty-stop-labels span{position:absolute;top:0;left:0;transform:translateX(-50%);white-space:nowrap}.difficulty-stop-labels span:nth-child(2){left:25%}.difficulty-stop-labels span:nth-child(3){left:50%}.difficulty-stop-labels span:nth-child(4){left:75%}.difficulty-stop-labels span:first-child{transform:none}.difficulty-stop-labels span:last-child{left:100%;transform:translateX(-100%)}.difficulty-stop-labels span:first-child:before{left:0}.difficulty-stop-labels span:last-child:before{right:0}.difficulty-stop-labels span.selected{color:var(--green)}@media(max-width:600px){.toolbar .difficulty-control{width:100%;min-width:0;flex:1 1 100%}.difficulty-stop-labels{font-size:8px}}

.mission-refresh{display:block;margin-top:12px;padding:7px 9px;border:1px solid var(--line);border-radius:0;background:transparent;color:var(--accent);font:inherit;font-size:10px;cursor:pointer}.mission-refresh:disabled{opacity:.55;cursor:default}.mission-refresh:not(:disabled):hover{background:var(--panel)}

.stage-missions .mission-card>.mission-refresh{grid-column:1;grid-row:7;align-self:end;margin:8px 0 0;min-height:24px;color:var(--green)}
@media(max-width:600px){body.mobile-typing .stage-missions .mission-card>.mission-refresh{display:none}}

/* Maeve and Rafael: the costume travels with the performer. */
.stage-dancer-picker{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap;padding:7px 12px;border-bottom:1px solid var(--line);background:var(--bg)}.stage-dancer-picker>span{font-size:8px;color:var(--muted);margin-right:7px}.stage-dancer-picker button{font:10px 'IBM Plex Mono',monospace;padding:6px 9px;border:1px solid transparent;min-height:32px;color:var(--muted)}.stage-dancer-picker button[aria-pressed=true]{border-color:var(--green);color:var(--green);background:var(--soft)}.stage-dancer-picker small{display:block;font-size:8px;margin-top:3px}.stage-dancer-picker button:disabled{opacity:.45}
.typing-missions.missions-compact{position:sticky!important;top:var(--app-header-height);z-index:8;margin-top:8px;background:var(--bg)}.typing-missions.missions-compact .mission-cards,.typing-missions.missions-compact .missions-note{display:none!important}.test-wrap>.typing-missions{order:1;flex-shrink:0;align-self:stretch;max-width:none;margin:8px 0}.test-wrap>.typing-missions.results-missions{order:0;margin:0}.results-missions .missions-title{padding:7px 10px}.results-missions .missions-title h3{font-size:10px}.results-missions .missions-title .eyebrow{display:none}
/* Results occupy the old words area; analysis begins immediately below judges. */
body.results-view{--fixed-stage-height:180px}body.results-view #dance-stage-band .stats-dancer-rail.dance-stage{--stage-sprite-width:120px;--stage-sprite-height:135px;--ground-height:24px}body.results-view .beat-wallet,body.results-view .equipment-summary{display:none!important}body.results-view .stage-dancer-picker{padding:2px 10px}body.results-view .stage-dancer-picker small{display:none}body.results-view .stage-dancer-picker button{min-height:25px;font-size:9px;padding:3px 8px}body.results-view #test .intro,body.results-view .test-meta,body.results-view #test .toolbar{display:none!important}body.results-view #test .test-wrap{padding-top:0;padding-bottom:6px}
body.results-view #result:not([hidden]){order:1;grid-template-columns:repeat(4,minmax(0,1fr));width:min(100%,760px);gap:14px;margin:8px auto;padding:0;transition:opacity .35s}body.results-view #result>div{min-height:48px;padding:4px;gap:5px}body.results-view #result>div>strong,body.results-view #result>div:first-child>strong{font-size:26px}body.results-view #result>div>small{font-size:7px}body.results-view #dance-judges{order:2;padding:8px 0;margin:0;border:0;background:transparent}body.results-view .judges-heading{margin:0 0 5px}body.results-view .judges-heading h3{font-size:12px;margin:0}body.results-view .judges-heading .eyebrow{display:none}body.results-view .combo-badge{padding:4px 6px;font-size:8px}body.results-view .judge-grid{gap:12px}body.results-view .judge-card{padding:6px 0;gap:8px;align-items:center}body.results-view .judge-card svg{width:70px;height:70px;max-height:70px;flex-shrink:0;margin:0}body.results-view .judge-card h4{font-size:9px;margin:0 0 4px}body.results-view .judge-card p{font-size:9px;line-height:1.45;margin:0}body.results-view .award-strip{padding:5px 10px;gap:12px;margin-top:4px}body.results-view .award-strip>div{display:flex;gap:5px;align-items:center}body.results-view .award-strip>div>span{font-size:17px}body.results-view .award-strip small{font-size:8px}body.results-view .award-strip>p{font-size:8px;line-height:1.4;margin:0}body.results-view .judge-rules{margin-top:3px;font-size:9px}body.results-view .results-grid{order:3;gap:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}body.results-view .results-grid>.panel{padding:12px;margin-top:7px}body.results-view .results-grid .panel-heading{margin-bottom:8px}body.results-view .results-grid .panel-heading h3{font-size:12px;margin:0}body.results-view .review-takeaways{gap:8px;padding-bottom:8px;margin-bottom:10px}body.results-view .review-takeaways strong{font-size:14px}body.results-view .review-takeaways small{font-size:9px}body.results-view .test-bottom{order:4;padding:8px 0;min-height:32px}body.results-view .below{display:none}.mission-completion-show{order:1;min-height:64px;margin:7px auto;padding:8px 16px;width:min(100%,760px);text-align:center;color:var(--green);background:var(--soft);border:1px solid var(--green);animation:mission-victory 2.6s both}.mission-completion-show>span{font:9px/1.8 var(--arcade-font)}.mission-completion-show>div{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:6px 0}.mission-completion-show strong{font-size:11px;font-weight:500}.mission-completion-show small{font-size:9px;color:var(--muted)}body.mission-encore #result{position:absolute!important;opacity:0;pointer-events:none}@keyframes mission-victory{0%{opacity:0;transform:translateY(6px)}12%,78%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-5px)}}
@media(max-width:750px){body.results-view .judge-card{display:flex;flex-direction:column;text-align:center;gap:4px}body.results-view .judge-card h4{font-size:7px}body.results-view .judge-card svg{width:58px;height:58px}body.results-view .award-strip>p{display:none}body.results-view .results-grid{grid-template-columns:1fr}body.results-view .results-grid .session-review{order:-1}body.results-view #result>div>strong,body.results-view #result>div:first-child>strong{font-size:22px}.stage-dancer-picker{gap:2px}.stage-dancer-picker>span{display:none}.stage-dancer-picker button{font-size:9px;padding:5px 7px}body.results-view{--fixed-stage-height:140px}body.results-view #dance-stage-band .stats-dancer-rail.dance-stage{--stage-sprite-width:96px;--stage-sprite-height:108px}.typing-missions.missions-compact .missions-title>small{display:none}}
@media(prefers-reduced-motion:reduce){.mission-completion-show{animation:none}}

body.results-view .session-review{display:flex;flex-direction:column}body.results-view .session-review>.panel-heading{order:-1}body.results-view .session-review>.session-heatmap{order:0;margin-top:0}body.results-view .session-review>.review-takeaways{order:1;margin-top:12px}body.results-view .first-reward-help,body.results-view .result-next-step{order:5}body.results-view .mission-completion-show{min-height:70px}.stage-dancer-specialty{flex-basis:100%;text-align:center;font-size:9px;color:var(--muted);margin:2px 0;line-height:1.5}body.results-view .stage-dancer-specialty{display:none}

body.results-view .judge-card{display:flex;flex-direction:row;text-align:left;min-height:80px}body.results-view .judge-card .judge-figure{width:90px;height:70px;aspect-ratio:auto;flex:0 0 90px}body.results-view .judge-card .judge-figure svg{width:90px;height:70px;max-height:none}body.results-view .judge-card .judge-copy{padding:0;border:0;min-width:0}body.results-view .judge-card .judge-copy h4{min-height:0}body.results-view .judges-heading{min-height:20px}body.results-view .award-strip{min-height:32px}body.results-view .judge-card:before{height:100%}@media(max-width:750px){body.results-view .judge-card{flex-direction:column;text-align:center;min-height:110px}body.results-view .judge-card .judge-figure{width:76px;height:59px;flex:0 0 59px}body.results-view .judge-card .judge-figure svg{width:76px;height:59px}body.results-view .judge-card h4{font-size:7px}}

/* Missions join the header as a flat, expandable tray. */
.typing-missions.stage-missions.header-missions,.typing-missions.stage-missions.header-missions.missions-compact{position:sticky!important;top:var(--app-header-height);z-index:45;left:auto;right:auto;width:100%;max-width:none;max-height:none;margin:0!important;border:0;border-bottom:1px solid var(--line);box-shadow:none;background:var(--bg);scrollbar-gutter:auto;overflow:visible}.header-missions .missions-title{min-height:35px;padding:6px clamp(18px,4vw,56px)!important;border-top:0;background:var(--bg)}.header-missions .missions-title h3{font-size:10px;line-height:1.5;margin:0}.header-missions .missions-title .eyebrow,.header-missions .mission-board-icon{display:none}.header-missions .missions-title>small{flex-basis:auto;margin-left:auto;font-size:8px}.header-missions .mission-board-toggle{min-height:25px;padding:4px 9px;font-size:9px;margin-left:10px}.header-missions .mission-cards{padding-inline:clamp(18px,4vw,56px);border-top:1px solid var(--line)}.header-missions .mission-card{flex:1 1 0;min-width:190px;padding:10px 12px!important}.header-missions .missions-note{padding:5px clamp(18px,4vw,56px)!important;font-size:8px}.header-missions.missions-compact .missions-title{border-bottom:0}.header-missions:not(.missions-compact){max-height:calc(100dvh - var(--app-header-height) - 80px);overflow-y:auto;overscroll-behavior:contain}body.results-view .header-missions{order:initial}@media(max-width:750px){.header-missions .mission-cards{padding-inline:12px}.header-missions .mission-card{flex:0 0 200px}.header-missions .missions-title{padding-inline:14px!important}.header-missions .missions-title>small{display:none}.header-missions .mission-board-toggle{margin-left:auto}}

#insights>#history-chart-panel{width:100%;margin-top:16px;margin-bottom:18px}#insights>.analytics-grid:empty{display:none}

body.typing-focus #test .test-wrap{padding-top:12px}body.typing-focus #typing-area{padding-top:10px;margin-top:14px;scroll-margin-top:calc(var(--app-header-height) + 16px)}body.typing-focus #words{line-height:1.9}body.typing-focus .stage-dancer-picker{display:none}
.cosmetics-view .cosmetic-overview{display:flex;justify-content:space-between;align-items:center;gap:24px;grid-column:1/-1;border-bottom:1px solid var(--line);padding:12px 0 22px}.cosmetic-overview>div>span{font:8px var(--arcade-font);color:var(--green)}.cosmetic-overview h3{font:14px/1.8 var(--arcade-font);margin:10px 0}.cosmetic-overview p{font-size:11px;max-width:570px;line-height:1.7;margin:0}.cosmetic-collection-count{display:flex;flex-direction:column;gap:6px;text-align:right;white-space:nowrap}.cosmetic-collection-count strong{font:32px 'IBM Plex Mono',monospace;color:var(--green)}.cosmetic-collection-count span{font:9px 'IBM Plex Mono',monospace!important;color:var(--muted)!important}.cosmetics-view .cosmetic-navigation{position:sticky;top:-1px;z-index:8;display:flex;gap:0;padding:0;background:var(--bg);border-bottom:1px solid var(--line);grid-column:1/-1}.cosmetics-view .cosmetic-navigation button{flex:1;padding:14px 12px;border:0;border-bottom:3px solid transparent;font:9px var(--arcade-font);color:var(--muted);background:transparent}.cosmetics-view .cosmetic-navigation button[aria-pressed=true]{color:var(--green);border-bottom-color:var(--green);background:var(--soft)}.cosmetics-view .rotation-manager{margin:0 0 10px;padding:0;border:1px solid var(--line)}.cosmetic-loop>summary{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:14px 16px;cursor:pointer;background:var(--soft)}.cosmetic-loop>summary>span{font:8px var(--arcade-font);color:var(--green)}.cosmetic-loop>summary strong{font-size:12px;font-weight:500}.cosmetic-loop>summary small{font-size:10px;margin-left:auto;color:var(--muted)}.cosmetic-loop>.cosmetic-shelf-heading,.cosmetic-loop>.rotation-grid,.cosmetic-loop>.rotation-feedback,.cosmetic-loop>.muted{margin:14px 16px}.cosmetics-view .cosmetic-shelf{margin-top:10px}.cosmetics-view .cosmetic-shelf-heading{margin-bottom:14px}.cosmetics-view .cosmetic-shelf-heading h3{font:12px/1.8 var(--arcade-font);margin:6px 0}.cosmetics-view .cosmetic-shelf-heading p{font-size:11px;margin:6px 0}.cosmetics-view .cosmetic-shelf>.store-item-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.cosmetics-view .store-item-card{display:flex;flex-direction:column;min-width:0;box-shadow:inset 0 0 30px color-mix(in srgb,var(--rarity) 6%,transparent)}.cosmetics-view .cosmetic-preview{height:174px;display:grid;place-items:center;background:linear-gradient(180deg,var(--preview-bg,var(--bg)),color-mix(in srgb,var(--rarity) 9%,var(--bg)));border-bottom:1px solid color-mix(in srgb,var(--rarity) 35%,var(--line))}.cosmetics-view .cosmetic-preview svg{width:128px;height:144px;image-rendering:pixelated}.cosmetics-view .cosmetic-copy{display:flex;flex-direction:column;flex:1;padding:15px}.cosmetics-view .cosmetic-copy h4{font:10px/1.9 var(--arcade-font);margin:8px 0}.cosmetics-view .cosmetic-copy p{font-size:11px;line-height:1.7}.cosmetics-view .cosmetic-type{font-size:8px;letter-spacing:.6px;color:var(--rarity)}.cosmetics-view .dancer-specialty-description{padding:9px 10px;background:color-mix(in srgb,var(--rarity) 8%,var(--bg));border-left:2px solid var(--rarity);color:var(--ink)}.cosmetics-view .cosmetic-copy .primary{width:100%;min-height:42px;margin-top:auto;font-size:10px;white-space:normal}.cosmetics-view .store-card-top{padding:10px 12px;font-size:8px;background:color-mix(in srgb,var(--rarity) 8%,var(--bg))}.cosmetics-view .cosmetic-rotation-note{font-size:9px!important;color:var(--muted)}@media(max-width:800px){.cosmetics-view .cosmetic-shelf>.store-item-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cosmetic-overview h3{font-size:11px}.cosmetic-collection-count{display:none}.cosmetics-view .cosmetic-navigation button{font-size:8px;padding:12px 7px}.cosmetic-loop>summary small{margin-left:0}}@media(max-width:450px){.cosmetics-view .cosmetic-shelf>.store-item-grid{grid-template-columns:1fr}.cosmetics-view .cosmetic-preview{height:155px}.cosmetic-overview h3{font-size:10px}.cosmetics-view .rotation-grid{grid-template-columns:1fr}}

/* Inventory browsing: compact collectible tiles with full hover/focus details. */
#gold-shop-dialog .store-item-grid:not(.cosmetics-shelves){grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}#gold-shop-dialog .store-item-card{position:relative;min-width:0}#gold-shop-dialog .store-item-card .store-item-art{height:100px;min-height:100px;padding:8px}#gold-shop-dialog .store-item-art>.item-pixel-art,#gold-shop-dialog .store-item-art>svg{width:82px;height:82px}#gold-shop-dialog .store-card-body{padding:10px}#gold-shop-dialog .store-card-body h4{font:9px/1.7 var(--arcade-font);margin:0 0 6px;min-height:31px}#gold-shop-dialog .item-description{display:none}#gold-shop-dialog .item-applies{font-size:8px;line-height:1.5}#gold-shop-dialog .store-card-stats{gap:5px;margin-top:8px}#gold-shop-dialog .store-card-stats strong{font-size:12px}#gold-shop-dialog .store-card-stats small{font-size:7px}#gold-shop-dialog .store-card-top{padding:8px;font-size:7px;gap:4px;flex-wrap:wrap}#gold-shop-dialog .store-card-buy{padding:9px;gap:7px}#gold-shop-dialog .store-card-buy strong{font-size:12px}#gold-shop-dialog .store-card-buy button{min-height:36px;font-size:9px;padding:7px}#gold-shop-dialog .collection-stamp{font-size:6px;padding:4px}.item-details-button{display:block;font:9px 'IBM Plex Mono',monospace;color:var(--green);padding:4px 0!important;text-decoration:underline;text-underline-offset:3px;min-height:24px;margin:3px 0 5px}.cosmetics-view .cosmetic-shelf>.store-item-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))!important}.cosmetics-view .cosmetic-preview{height:112px!important}.cosmetics-view .cosmetic-preview svg{height:100px!important;width:89px!important}.cosmetics-view .cosmetic-copy{padding:10px!important}.cosmetics-view .cosmetic-copy h4{font-size:9px!important;min-height:34px;margin:5px 0!important}.cosmetics-view .cosmetic-copy>p{display:none}.cosmetics-view .cosmetic-type{font-size:7px!important}.cosmetics-view .cosmetic-copy .primary{min-height:36px!important;font-size:9px!important;padding:7px!important}.shop-item-popout{position:fixed;z-index:200;width:min(330px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;pointer-events:none;padding:16px;background:var(--bg);border:1px solid var(--rarity,var(--green));box-shadow:5px 5px 0 #0008;color:var(--ink);text-align:left}.shop-item-popout[hidden]{display:none}.shop-item-popout.pinned{pointer-events:auto}.shop-item-popout>small{font:8px/1.7 'IBM Plex Mono',monospace;color:var(--rarity)}.shop-item-popout h3{font:11px/1.9 var(--arcade-font);margin:9px 20px 10px 0}.shop-item-popout p{font:11px/1.7 'IBM Plex Mono',monospace;color:var(--muted);margin:8px 0}.shop-item-popout .store-card-stats{display:flex;gap:14px;border-top:1px solid var(--line);padding-top:10px}.shop-item-popout .store-card-stats>div{flex:1}.shop-item-popout .store-card-stats small{font-size:8px}.shop-item-popout .store-card-stats strong{display:block;font-size:14px;margin-top:4px;color:var(--green)}.item-popout-close{position:absolute;right:8px;top:7px;padding:5px;font-size:20px;color:var(--muted)}@media(max-width:450px){#gold-shop-dialog .store-item-grid:not(.cosmetics-shelves){grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}.cosmetics-view .cosmetic-copy h4{font-size:8px!important}.cosmetics-view .cosmetic-type{font-size:6px!important}}

@font-face{font-family:'TypeBeat Arcade Mono';src:url('fonts/arcade-mono.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:'TypeBeat DejaVu Sans';src:url('fonts/dejavu-sans.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
#appearance-dialog{width:min(940px,calc(100vw - 24px));padding:28px;max-height:90dvh}#appearance-dialog>h2{font:16px/1.9 var(--arcade-font);margin:12px 0}#appearance-dialog>.muted{font-size:12px}#appearance-dialog .appearance-modes{display:flex;gap:8px;margin:18px 0}#appearance-dialog .appearance-modes button{flex:1;min-height:42px;border:1px solid var(--line);border-radius:0}#appearance-dialog .appearance-modes .selected{border-color:var(--green);background:var(--soft)}#palette-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0;margin:18px 0 24px}#palette-presets>button{border:1px solid var(--line);padding:6px;background:var(--surface);border-radius:0;min-width:0;text-align:left}#palette-presets>button.selected{border:2px solid var(--green);padding:5px}#palette-presets .palette-sample{display:block;position:relative;height:72px;width:100%;background:var(--swatch-bg)!important;padding:13px 10px;color:var(--swatch-ink)}#palette-presets .palette-sample b{font:19px 'IBM Plex Mono',monospace;font-weight:500;color:var(--swatch-ink)}#palette-presets .palette-sample i{position:absolute;left:10px;bottom:12px;top:auto;width:35px;height:5px;background:var(--swatch-accent)!important;border-radius:0}#palette-presets .palette-sample em{position:absolute;left:49px;bottom:12px;width:21px;height:5px;background:var(--swatch-ink);opacity:.4}#palette-presets>button>small{display:block;padding:8px 4px 3px;font-size:10px;color:var(--ink)}.typing-font-section{border-top:1px solid var(--line);padding-top:22px;margin-top:24px}.typing-font-section>h3{font:11px/1.8 var(--arcade-font)}.typing-font-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.typing-font-options>button{padding:14px;border:1px solid var(--line);background:var(--surface);border-radius:0;text-align:left;min-width:0}.typing-font-options>button[aria-pressed=true]{border-color:var(--green);background:var(--soft)}.typing-font-options strong{display:flex;justify-content:space-between;font:12px 'IBM Plex Mono',monospace}.font-selected{color:var(--green)}.typing-font-options small{font-size:9px;display:block;color:var(--muted);margin:8px 0}.typing-font-options>button>span{display:block;font-size:20px;line-height:1.7;overflow-wrap:anywhere;white-space:normal;margin-top:10px}.typing-font-options [data-typing-font="pixel"]>span{font-size:12px;line-height:2.1}#font-preview-text{width:100%;padding:12px;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:0;margin:8px 0 14px;font:14px 'IBM Plex Mono',monospace}@media(max-width:600px){#appearance-dialog{padding:18px}#palette-presets{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.typing-font-options{grid-template-columns:1fr}#palette-presets .palette-sample{height:62px;padding:10px 7px}#palette-presets .palette-sample b{font-size:16px}#palette-presets>button>small{font-size:9px}}

.typing-progress{order:0;width:min(100%,960px);align-self:center;margin:8px auto 6px}.typing-progress[hidden]{display:none}.typing-progress-label{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:7px;font:9px 'IBM Plex Mono',monospace;color:var(--muted)}.typing-progress-value{color:var(--green);font-variant-numeric:tabular-nums}.typing-progress-track{height:5px;background:var(--line);overflow:hidden}.typing-progress-track>i{display:block;height:100%;background:var(--green);transition:width .1s linear}.typing-progress-track.ongoing>i{opacity:.35;background:repeating-linear-gradient(90deg,var(--green) 0 16px,transparent 16px 21px)}#test .test-meta #countdown{display:none}#test .test-meta{min-height:0;padding-top:3px}.pb-marker-toggle{border:1px solid var(--line);padding:7px 9px;min-height:38px;font:9px 'IBM Plex Mono',monospace;color:var(--muted);white-space:nowrap}.pb-marker-toggle[aria-pressed=true]{color:var(--green);border-color:var(--green);background:var(--soft)}.pb-pace-marker{position:absolute;z-index:3;font:8px/1.3 'IBM Plex Mono',monospace;color:var(--orange);padding:1px 3px;background:var(--bg);pointer-events:none;white-space:nowrap}.pb-pace-marker:after{content:'';position:absolute;top:100%;left:3px;border:3px solid transparent;border-top-color:var(--orange)}body.results-view .typing-progress{display:none}@media(max-width:600px){.pb-marker-toggle{min-height:32px;font-size:8px;padding:5px}.typing-progress-label{font-size:8px}.typing-progress{margin-top:5px}}

/* The timer is the top edge of the typing box, separated from the word lines. */
#test .test-wrap>.typing-progress{order:-1;position:relative;align-self:stretch;width:auto;max-width:none;margin:0 calc(-1 * clamp(18px,2.5vw,32px)) 22px;padding:13px clamp(18px,2.5vw,32px) 15px;border-bottom:1px solid var(--line);background:linear-gradient(100deg,color-mix(in srgb,var(--green) 5%,var(--surface)),var(--surface));box-shadow:inset 0 1px 0 color-mix(in srgb,var(--ink) 4%,transparent)}.typing-progress-label{max-width:960px;margin:0 auto;font-size:9px;letter-spacing:.6px}.typing-progress-track{position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--line)}.typing-progress-value{font-size:11px;letter-spacing:0}#test .test-wrap{border-color:color-mix(in srgb,var(--ink) 17%,var(--bg));box-shadow:0 8px 28px #0000000a}#test #typing-area{margin-top:6px}body.typing-focus #test .test-wrap{padding-top:0}body.typing-focus #test #typing-area{padding-top:10px;margin-top:4px}.header-missions.missions-compact{box-shadow:0 1px 0 color-mix(in srgb,var(--ink) 4%,transparent)!important}.stage-dancer-picker button{transition:background .15s,border-color .15s,color .15s}.stage-dancer-picker[data-selection]:not([data-selection="automatic"]) button[aria-pressed=true]{box-shadow:inset 0 -2px 0 var(--green)}body.results-view .judge-card{border-top:1px solid var(--line);border-left:2px solid var(--judge-accent);padding-inline:10px}body.results-view .results-grid>.panel{border-color:var(--line);background:color-mix(in srgb,var(--surface) 70%,var(--bg))}.cosmetics-view .cosmetic-overview{padding-top:6px;padding-bottom:16px}#gold-shop-dialog .store-item-card:focus-visible{outline:2px solid var(--rarity);outline-offset:3px}.shop-item-popout{box-shadow:0 12px 40px #0006,3px 3px 0 color-mix(in srgb,var(--rarity) 30%,var(--bg))}@media(max-width:600px){#test .test-wrap>.typing-progress{padding-block:11px 13px;margin-bottom:17px}.typing-progress-label{font-size:8px}.typing-progress-value{font-size:10px}}

/* The stage is decorative; its picker must explicitly accept pointer input. */
#dance-stage-band .stage-dancer-picker{pointer-events:auto;position:relative;z-index:12}#dance-stage-band .stage-dancer-picker button{pointer-events:auto}
.cosmetics-view .store-header{padding:14px 20px!important}.cosmetics-view .store-header h2{font:17px/1.8 var(--arcade-font)!important;margin:6px 0!important}.cosmetics-view .store-header>div>p{font-size:10px!important;margin:4px 0!important}.cosmetics-view .store-view-tabs{padding:8px 16px!important;gap:6px}.cosmetics-view .store-view-tabs button{font-size:8px!important;padding:9px!important}.cosmetics-view .cosmetic-overview{padding:10px 16px!important}.cosmetics-view .cosmetic-overview h3{font-size:10px!important;margin:7px 0!important}.cosmetics-view .cosmetic-overview p,.cosmetics-view .cosmetic-collection-count{display:none}.cosmetics-view .cosmetic-navigation button{padding:11px 8px}.cosmetics-view .cosmetic-loop>summary{padding:10px 14px}.cosmetics-view .cosmetic-shelf{margin-top:6px}.cosmetics-view .cosmetic-shelf-heading{padding-inline:4px;margin-bottom:10px}.cosmetics-view .cosmetic-shelf-heading h3{font-size:10px;margin:5px 0}.cosmetics-view .cosmetic-shelf-heading p{font-size:10px;margin:3px 0}

.header-tools .gold-hud{display:flex!important;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;min-height:38px;padding:6px 10px;border:1px solid color-mix(in srgb,#e6c67e 30%,var(--line));background:color-mix(in srgb,#e6c67e 5%,var(--bg));color:var(--ink);font:10px 'IBM Plex Mono',monospace;white-space:nowrap}.gold-hud strong{font-weight:500;font-size:14px;color:#e6c67e;font-variant-numeric:tabular-nums}.gold-hud .gold-coin{width:12px;height:12px;margin:0;flex:0 0 12px}.gold-hud>span{font-size:9px;color:var(--muted)}.header-tools .gold-hud:hover{border-color:#e6c67e;background:color-mix(in srgb,#e6c67e 10%,var(--bg))}body.typing-focus .header-tools .gold-hud,body.results-view .header-tools .gold-hud{display:flex!important}@media(max-width:700px){.header-tools .gold-hud{padding:5px 7px;min-height:32px;gap:5px}.gold-hud strong{font-size:12px}.gold-hud>span{display:none}.gold-hud .gold-coin{width:10px;height:10px;flex-basis:10px}}

/* Preserve the quiet Focus scenery when the test transitions to results. */
body.focus-scenery-hidden .stage-scene,body.focus-scenery-hidden .stage-owned-props,body.focus-scenery-hidden .stage-key-equalizer,body.focus-scenery-hidden .stage-key-glow{display:none!important}

/* During a Focus round, retain geometry but show only the performance. */
body.round-active *{visibility:hidden!important}
body.round-active #words,body.round-active #words *,
body.round-active #typing-area .moving-caret,
body.round-active .typing-progress,body.round-active .typing-progress *,
body.round-active .dance-actor,body.round-active .dance-actor *{visibility:visible!important}
body.round-active .test-wrap,body.round-active #dance-stage-band,body.round-active #stats-dancer-rail{background:transparent!important;border-color:transparent!important;box-shadow:none!important}
body.round-active #input{visibility:visible!important}

/* Keep setup controls out of the way during every active round. */
body.round-active header nav,body.round-active .header-tools,
body.round-active #test .intro,body.round-active #test .toolbar,
body.round-active #test .test-meta,body.round-active #test .test-bottom,
body.round-active .stage-dancer-picker,body.round-active .equipment-summary,
body.round-active .below,body.round-active footer{visibility:hidden!important;pointer-events:none!important}

.stage-exit-door{position:absolute;bottom:7px;left:50%;width:68px;height:116px;transform:translateX(-50%);border:4px solid var(--muted);border-bottom:0;border-radius:6px 6px 0 0;background:#080b15;perspective:180px;z-index:1;opacity:0;transition:opacity .2s;pointer-events:none}.dance-stage[data-phase="handoff"] .stage-exit-door{opacity:1}.stage-door-leaf{position:absolute;inset:0;background:var(--surface);border:2px solid var(--green);transform-origin:right center;transition:transform .24s ease-in-out}.stage-door-leaf i{position:absolute;left:8px;top:55%;width:5px;height:5px;background:var(--green)}.door-open .stage-door-leaf{transform:rotateY(100deg)}body.focus-scenery-hidden .stage-exit-door{display:none!important}@media(prefers-reduced-motion:reduce){.stage-exit-door,.stage-door-leaf{transition:none}}

/* Let the typing surface blend into the page. */
#test .test-wrap{background:transparent!important;border-color:transparent!important;box-shadow:none!important}

body.round-active{background:var(--bg)!important;background-image:none!important}
body.round-active::before,body.round-active::after{display:none!important}

/* Keep the selected stage scenery visible in the minimal typing view. */
body.round-active .stage-scene:not([hidden]){display:block!important}
body.round-active .stage-scene[hidden]{display:none!important}
body.round-active .stage-scene,body.round-active .stage-scene *{visibility:visible!important}

.mobile-setup-toggle{display:none}
@media(max-width:600px){
 body{--app-header-height:90px;--fixed-stage-height:108px}
 body>header,body.results-view>header,body:has(#test:not([hidden]) #result:not([hidden]))>header{grid-template-rows:40px 38px;padding:5px 14px;gap:2px 8px;height:90px}
 body>header .header-tools,body>header .keyboard-settings{display:none!important}
 body>header nav{grid-row:2;height:38px;gap:22px}
 body>header .brand{font-size:18px}
 body:has(#test:not([hidden])) .stage-missions,body:has(#test:not([hidden])) .equipment-summary,
 #test .intro,#test .below,#test .first-round-intro,#test .first-box-guide{display:none!important}
 #test .toolbar{display:none!important}
 .mobile-setup-toggle{display:block;margin:8px 0 10px auto;font-size:11px;min-height:40px;padding:8px 15px}
 body.mobile-options-open{--app-header-height:150px}
 body.mobile-options-open>header{height:150px;grid-template-rows:40px 54px 38px}
 body.mobile-options-open>header .header-tools{display:flex!important;grid-row:2;overflow-x:auto}
 body.mobile-options-open>header nav{grid-row:3}
 body.mobile-options-open #test .toolbar{display:flex!important;gap:12px;padding:12px 0}
 #test .test-wrap{padding:0 14px!important}
 #dance-stage-band .stats-dancer-rail.dance-stage{--stage-sprite-width:80px;--stage-sprite-height:90px;--ground-height:14px}
 #dance-stage-band{height:var(--fixed-stage-height);margin-bottom:0}
 body.mobile-typing,body.round-active{--app-header-height:0px;--fixed-stage-height:92px;padding-top:0!important}
 body.mobile-typing>header,body.round-active>header{display:none!important}
 body.mobile-typing .mobile-setup-toggle,body.round-active .mobile-setup-toggle,
 body.mobile-typing #test .test-meta,body.mobile-typing #test .test-bottom,
 body.round-active #test .test-meta,body.round-active #test .test-bottom,
 body.mobile-typing .stage-dancer-picker,body.round-active .stage-dancer-picker{display:none!important}
 body.mobile-typing #dance-stage-band .stats-dancer-rail.dance-stage,body.round-active #dance-stage-band .stats-dancer-rail.dance-stage{--stage-sprite-width:64px;--stage-sprite-height:72px;--ground-height:10px}
 body.mobile-typing main,body.round-active main{padding:0 10px!important}
 body.mobile-typing #test #typing-area,body.round-active #test #typing-area{height:clamp(70px,calc(var(--visual-height,100dvh) - 160px),130px);margin:8px 0!important;padding-top:4px}
 body.mobile-typing #words,body.round-active #words{font-size:21px;line-height:1.7}
 body.mobile-typing .typing-progress,body.round-active .typing-progress{padding-top:8px;margin-top:0}
 body.mobile-typing .mobile-controls{display:block!important;visibility:visible!important;min-height:32px;padding:6px 10px;margin:4px 0}
}

/* Mobile header and stage share normal flow, avoiding overlay after keyboard dismissal. */
@media(max-width:600px){
 body,body.dance-stage-off{padding-top:0!important}
 body>header,body.results-view>header,body:has(#test:not([hidden]) #result:not([hidden]))>header{position:relative!important;top:auto;left:auto;transform:none!important;width:100%;z-index:45}
 #dance-stage-band{position:relative!important;inset:auto!important}
}
.next-practice-panel{margin:20px 0 26px;border-left:3px solid var(--green)}.next-practice-panel h2{font-size:21px;margin:0 0 8px}.next-practice-panel>p{max-width:720px;font-size:12px}.next-practice-targets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.next-practice-targets>div{padding:16px;background:var(--soft);border-radius:8px}.next-practice-targets strong{font:24px 'IBM Plex Mono',monospace}.next-practice-targets p{font-size:11px}.next-practice-targets button{width:100%;min-height:42px}.practice-extra-missions{margin:28px 0;border-top:1px solid var(--line);padding-top:18px}.practice-extra-missions>summary{cursor:pointer;font-size:14px;padding:12px 0}#practice .practice-tabs{position:relative;flex-wrap:wrap;gap:8px}#practice .practice-tabs button{min-height:44px}@media(max-width:600px){.next-practice-targets{grid-template-columns:1fr}.next-practice-panel{padding:18px}.next-practice-targets>div{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.next-practice-targets p{grid-column:1;margin:0}.next-practice-targets button{grid-column:2;grid-row:1/3;width:auto}.practice-quest-heading h1,#insights .section-top h1{font-size:34px!important}}
header.settings-grouped .keyboard-settings{display:none!important}header.settings-grouped .header-tools{border:0;background:transparent;padding:0;gap:12px;margin-left:auto}header.settings-grouped .xp-hud{border:0!important}.header-settings-toggle{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--green)}.header-settings-toggle:hover{background:var(--soft)}.header-settings-dialog{width:440px;padding:28px;max-height:85dvh;overflow:auto}.header-settings-dialog h2{margin:0 0 8px}.header-settings-options{display:grid;gap:10px;margin-top:22px}.header-settings-options>button{display:flex!important;align-items:center;justify-content:space-between;width:100%;min-height:48px;margin:0!important;padding:12px 14px!important;border:1px solid var(--line)!important;border-radius:8px;background:var(--soft);font-size:12px}.header-settings-options .music-header-toggle>span:first-child{display:inline!important}.header-settings-options .appearance-open{font-size:14px!important}body.round-active .header-settings-toggle{visibility:hidden!important}@media(max-width:600px){body>header.settings-grouped .header-settings-toggle{grid-row:1;grid-column:2;justify-self:end;width:38px;height:38px}body>header.settings-grouped .header-tools{display:none!important}body.mobile-options-open>header.settings-grouped{height:90px;grid-template-rows:40px 38px}body.mobile-options-open>header.settings-grouped nav{grid-row:2}.header-settings-dialog{padding:24px 18px}.header-settings-dialog h2{font-size:25px}}

#chart:has(.history-main-chart){height:auto;display:block;padding:12px 0}.history-metric-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:4px 0 24px}.history-metric-cards>div{padding:16px 18px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.history-metric-cards span{font-size:10px;color:var(--muted)}.history-metric-cards strong{display:block;margin-top:9px;font-size:27px;font-weight:500;font-variant-numeric:tabular-nums}.history-metric-cards small{font-size:10px;margin-left:4px;color:var(--muted)}#chart svg.history-main-chart{width:100%;height:auto;min-height:240px;overflow:visible}.history-results-line{fill:none;stroke:var(--green);stroke-width:1;opacity:.25}.history-main-chart .history-grid line{stroke-dasharray:3 6;opacity:.6}.history-main-chart .history-avg10{stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.history-main-chart .history-avg100{stroke-width:2;stroke-dasharray:7 4}.history-main-chart .history-points circle{opacity:.65;transition:r .12s}.history-main-chart .history-points circle:hover,.history-main-chart .history-points circle:focus{r:5;opacity:1;stroke:var(--surface);stroke-width:2}.history-main-chart .history-crosshair{stroke:var(--muted);stroke-dasharray:4 4}.history-chart-tooltip{border-radius:10px;box-shadow:0 10px 35px #0003;padding:14px!important}.history-chart-tooltip dd{font-variant-numeric:tabular-nums}@media(max-width:600px){.history-metric-cards{grid-template-columns:repeat(2,1fr);gap:8px}.history-metric-cards>div{padding:12px}.history-metric-cards strong{font-size:23px}#chart svg.history-main-chart{min-height:0}#history-series{gap:7px;flex-wrap:wrap}#history-series button{min-height:38px}}

/* The Type page ends with its typing controls. */
body:has(#test:not([hidden]))>footer{display:none!important}
#test>.below{display:none!important}

.header-settings-dialog{width:560px}.header-settings-options{gap:0}.settings-option{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px 0;border-top:1px solid var(--line)}.settings-option-copy strong{display:block;font:12px/1.6 'IBM Plex Mono',monospace;color:var(--ink)}.settings-option-copy small{display:block;margin-top:5px;font:11px/1.6 'DM Sans',sans-serif;color:var(--muted)}.settings-option>button{display:flex!important;align-items:center;justify-content:center;gap:7px;min-height:40px;max-width:185px;padding:8px 12px!important;margin:0!important;border:1px solid var(--line);border-radius:6px;background:var(--soft);font:11px/1.5 'IBM Plex Mono',monospace;white-space:normal}.settings-focus-state>span,.settings-focus-state>i{display:none!important}.settings-focus-state:after{content:'Off'}.settings-focus-state[aria-pressed=true]:after{content:'On'}.settings-option .music-header-toggle>span:first-child{display:none!important}.settings-option .appearance-open{font-size:11px!important}@media(max-width:600px){.settings-option{gap:12px;grid-template-columns:minmax(0,1fr) 105px}.settings-option>button{width:100%;max-width:105px;font-size:10px}.settings-option-copy strong{font-size:11px}.settings-option-copy small{font-size:10px}}
