:root{color-scheme:dark;--ink:#f0eefb;--muted:#a9a6c1;--mint:#9aefcd;--bg:#14152b;font-family:Inter,ui-sans-serif,system-ui,sans-serif;background:var(--bg);color:var(--ink)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 75% 0,#30224c,transparent 55%),var(--bg);min-height:100vh}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #bda0ff;outline-offset:4px}button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}.topbar{max-width:1280px;margin:auto;padding:26px 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff12}.brand{font-size:13px;letter-spacing:3px;font-weight:850;color:var(--mint);background:none;border:0;padding:10px 0}.top-controls{display:flex;align-items:center;gap:20px}.coin-total{font-weight:800;color:#ffe09a;font-size:20px}.quiet,.text-button{border:0;background:none;color:var(--muted);padding:10px 4px;font-size:13px}.quiet:hover,.text-button:hover{color:white}.main{max-width:1280px;margin:auto;padding:42px 40px 20px}.eyebrow{color:var(--mint);font-size:11px;font-weight:750;letter-spacing:2px;margin:0 0 12px}h1{font-size:clamp(32px,5vw,58px);letter-spacing:-2px;line-height:1.05;margin:0 0 16px}h2{font-size:20px;letter-spacing:-.5px;margin:14px 0 8px}.subhead{color:var(--muted);font-size:16px;margin:0 0 25px}.intro{text-align:center}.arena{border:1px solid #9f80ce33;border-radius:20px;overflow:hidden;max-height:310px;margin:28px 0 30px;position:relative;box-shadow:0 20px 90px #0003}.arena svg{display:block;width:100%;height:310px;object-fit:cover}.fighter{animation:breathe 3s ease-in-out infinite;transform-origin:center}.journey{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stage{border:1px solid #ffffff20;border-radius:16px;background:linear-gradient(130deg,#ffffff0b,#ffffff03);padding:23px;position:relative;min-width:0;border-top:3px solid var(--accent,#ffd38b)}.stage-number{color:var(--accent,#ffd38b);font-size:23px;font-weight:900}.stage.locked{opacity:.5}.skill{color:var(--muted);font-size:13px;line-height:1.5;min-height:40px;margin:0}.level-path,.permanent-path,.stones{display:flex;gap:8px;margin:20px 0 10px}.level-path span,.permanent-path span{height:28px;width:28px;display:grid;place-items:center;border:1px solid #ffffff26;border-radius:50%;color:#a7a2bb;font-size:11px}.level-path .cleared,.permanent-path .cleared{background:var(--mint);color:#12352c;border-color:var(--mint)}.progress-label{font-size:11px;color:var(--muted);margin:10px 0 18px}.button{border:1px solid #ffffff2b;border-radius:9px;padding:13px 20px;font-size:13px;font-weight:750;transition:transform .15s,background .15s}.button:hover{transform:translateY(-2px)}.primary{background:var(--mint);border-color:var(--mint);color:#17362e;box-shadow:0 4px 0 #52947b}.secondary{background:#f4f1ff;color:#332e57;border-color:#dad3ed}.stage-state{display:block;font-size:12px;color:var(--muted);padding:12px 0}.bonus{grid-column:1/-1;display:flex;align-items:center;gap:22px;min-height:95px;padding:20px 26px}.bonus h2{margin:0}.bonus .skill{min-height:0;flex:1}.footer{max-width:1280px;margin:0 auto;padding:20px 40px 30px;display:flex;justify-content:center;gap:18px;align-items:center;color:#8d89a5;font-size:11px}.footer .text-button{font-size:11px}.stage-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.stage-heading .eyebrow{margin:0}.hud{display:flex;align-items:center;gap:20px;flex-wrap:wrap;background:#ffffff06;border:1px solid #ffffff16;border-radius:14px;padding:16px 24px;font-size:12px;color:var(--muted);margin-bottom:24px}.hud .permanent-path,.hud .stones{margin:0}.stones span{height:30px;width:30px;display:grid;place-items:center;background:#ffffff0a;border-radius:8px;color:#8e87a6;font-size:20px}.stones .lit{background:#ac8df1;color:#241d3c}.bonus-meter{padding:9px 12px;background:#ffffff0b;border-radius:8px;color:#c8b3fa}.challenge-card.paper-question{background:#fffcf6;border-radius:18px;border:0;color:#20384b;box-shadow:0 16px 60px #0003;overflow:visible;position:relative;margin:0 auto;max-width:900px}.challenge-card .paper-question-body{padding:38px 44px}.challenge-card .paper-prompt{font-size:20px;line-height:1.65;color:#20384b;white-space:pre-line;margin-bottom:28px}.answer-form{max-width:480px}.answer-form label{font-size:12px;font-weight:700;color:#657383;display:block;margin-bottom:9px}.answer-row{display:flex;gap:10px;align-items:stretch}.answer-input{width:100%;min-width:0;background:white;color:#183b56;border:1px solid #b7c4cc;border-radius:8px;padding:10px 15px;height:46px}.answer-row .button{height:46px;box-shadow:none;flex:none}.example{font-size:12px;color:#657383;margin:7px 0 0}.question-actions{display:flex;align-items:center;gap:16px;margin-top:22px}.question-actions .text-button{color:#61677e}.feedback{font-size:15px;line-height:1.6;color:#365d53;min-height:24px;margin:24px 0 0}.main>.feedback{color:var(--muted)}.error{color:#a62942}.coin-burst{position:absolute;right:22px;top:-22px;background:#ffe09a;color:#664500;font-size:24px;font-weight:900;padding:12px 20px;border-radius:12px;animation:pop .6s cubic-bezier(.2,1.6,.4,1)}.victory{box-shadow:0 0 0 3px #91edc4,0 20px 100px #91edc433!important}.report-wrap{overflow:auto;margin:35px 0}.report{width:100%;border-collapse:collapse;font-size:13px}.report th,.report td{padding:18px 14px;text-align:left;border-bottom:1px solid #ffffff18;white-space:nowrap}.report thead th{font-size:11px;color:var(--muted);font-weight:600}.report tbody th{white-space:normal;min-width:200px}.report-note{font-size:13px;color:var(--muted);max-width:700px;line-height:1.6}.danger{color:#ffa5af}.loading,.boot,.fatal{text-align:center;padding:100px 30px;color:var(--muted)}.paper-teaching{color-scheme:light}.paper-teaching button{cursor:pointer}.challenge-card .paper-prompt .katex{color:inherit}
@keyframes breathe{50%{translate:0 -5px}}@keyframes pop{from{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}
@media(max-width:850px){.journey{grid-template-columns:repeat(2,1fr)}.bonus{flex-wrap:wrap}.bonus .skill{flex-basis:50%}.topbar{padding:20px}.main{padding:30px 20px}.top-controls{gap:12px}.arena,.arena svg{height:250px}.hud{gap:12px}.challenge-card .paper-question-body{padding:28px}.footer{padding:18px}.stage-heading .eyebrow{font-size:9px}}
@media(max-width:480px){.brand{font-size:10px;letter-spacing:1px}.top-controls{gap:9px}.quiet{font-size:11px}.coin-total{font-size:17px}.main{padding:26px 14px}.arena,.arena svg{height:200px}.stage{padding:16px}.stage h2{font-size:17px}.stage .button{padding:12px}.level-path{gap:5px}.level-path span{width:23px;height:23px}.bonus{gap:13px}.challenge-card .paper-question-body{padding:24px 20px}.challenge-card .paper-prompt{font-size:17px}.hud{padding:14px}.answer-input,.answer-row .button{height:42px}.question-actions{gap:10px;flex-wrap:wrap}.stage-heading{gap:12px}.report th,.report td{padding:14px 10px}}
.combat-arena{height:155px;margin:0 auto 20px;max-width:900px}.combat-arena svg{height:155px;width:100%;transform:scale(1.15)}.power-up{box-shadow:0 0 35px #9aefcd44}.power-up .fighter{animation:power .65s ease-out}.celebration-spark{position:absolute;left:var(--x);top:0;color:#ffe09a;font-size:23px;animation:spark 1.8s var(--delay) both;pointer-events:none}@keyframes power{50%{translate:0 -15px;filter:drop-shadow(0 0 12px #9aefcd)}}@keyframes spark{from{translate:0 -30px;opacity:0;rotate:0deg}20%{opacity:1}to{translate:0 170px;opacity:0;rotate:100deg}}
@media(max-width:480px){.combat-arena{height:105px}.combat-arena svg{height:105px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.celebration-spark{display:none}}

/* Arcade field: compact controls, no raised buttons or decorative edge strips. */
.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}
#game{min-height:100vh;padding-bottom:70px;background:radial-gradient(circle at 50% 30%,#7a54c01f,transparent 55%)}
.topbar{border:0;padding-top:16px;padding-bottom:0}
.brand{font-size:29px;letter-spacing:0}
.icon-button{border:0;border-radius:50%;width:46px;height:46px;display:grid;place-items:center;padding:10px;background:#302b48;color:#d9d2f1;font-size:22px}
.top-controls{gap:14px}.main{padding-top:12px}.arena{border:0;box-shadow:none;max-height:340px;margin:12px 0 24px}.arena svg{height:340px;width:100%}
.journey{gap:18px}.stage{border:0;background:#28253e;padding:20px 24px;text-align:center;transition:background .2s}.stage:not(.locked):hover{background:#34304c}.stage-number{position:absolute;top:15px;left:18px;font-size:12px}.stage-rune{display:grid;place-items:center;height:78px;color:var(--accent);font-size:58px;font-weight:900;line-height:1}.stage h2{margin:6px 0 20px;font-size:16px}.stage.locked{opacity:.62}.level-path{justify-content:center;gap:10px;margin:0 0 15px}.level-path span,.permanent-path span{border:0;background:none;border-radius:0;color:#615970;font-size:21px;width:24px;height:26px}.level-path .cleared,.permanent-path .cleared{background:none;color:var(--mint)}.stage-state{padding:8px;font-size:23px;line-height:26px}.stage-play{min-width:65px}.bonus{justify-content:center;min-height:74px;padding:14px}.bonus .stage-number{position:static;font-size:28px}.bonus h2{margin:0}.bonus .stage-state{margin-left:auto}.bonus .button{margin-left:auto}
#game button{box-shadow:none!important;border:0!important;transition:filter .15s,background .15s,scale .15s}
#game button:hover{transform:none;filter:brightness(1.16);scale:1.035}
#game button:active{scale:.97}.primary{background:#9aefcd}.button{min-height:44px;border-radius:10px}
body:has(#game) button{border:0!important;box-shadow:none!important}
.answer-row .button{min-height:0}
.speaker{position:fixed;right:22px;bottom:22px;z-index:10000;background:#37304f;color:#c4f6df}
.speaker[aria-pressed="false"]{color:#b0a5c7}.speaker svg{width:24px;height:24px}.save-error{position:fixed;bottom:22px;right:80px;z-index:9999;color:#ffd099;background:#633945}
.stage-heading{margin:0 auto 8px;max-width:900px;justify-content:flex-end}.round-badge{font-size:12px;color:#b8a7d3;font-weight:800;letter-spacing:3px}
.combat-arena{height:180px;max-width:900px;margin:0 auto 14px}.combat-arena svg{height:180px;transform:scale(1.13)}
.hud{position:relative;max-width:900px;margin:0 auto 18px;padding:14px 20px;background:none;border:0;justify-content:space-between;gap:15px}.hud .permanent-path{gap:8px}.stones{gap:14px}.stones span{position:relative;width:44px;height:44px;border-radius:50%;font-size:24px;color:#5e536f;background:radial-gradient(circle at 35% 30%,#504362,#282038);border:2px solid #62506e;transition:background .25s,color .25s,scale .25s}.stones .lit{background:radial-gradient(circle at 35% 30%,#fff4b2,#e7b454);border-color:#f3d78b;color:#62400a;scale:1.08}.bonus-meter{display:flex;align-items:center;gap:7px;padding:8px 10px;background:#302942}.bonus-meter span{color:#675d7b;font-size:16px}.bonus-meter .charged{color:#f6ce7c}.bonus-meter .mini-rune{font-size:21px;color:#d4b0ff;margin-right:5px}
.challenge-card.paper-question{box-shadow:none;border:0;max-width:900px}.challenge-card .paper-question-body{padding:28px 36px}.challenge-card .paper-prompt{margin-bottom:24px}.feedback{font-size:25px;min-height:0;margin:16px 0 0}.feedback:empty{display:none}.feedback.error{font-size:14px}.victory{box-shadow:none!important;background:#f2fff6!important}.question-actions{margin-top:18px}.next-button{min-width:90px;font-size:24px;padding:5px 25px}.example{margin-top:6px}.power-up{box-shadow:none}
.pin-dialog{color-scheme:dark;background:#2d2543;color:#f4efff;border:0;border-radius:20px;padding:36px;max-width:calc(100vw - 36px)}
.pin-dialog::backdrop{background:#0b0b20bd;backdrop-filter:blur(8px)}.pin-form{display:grid;grid-template-columns:1fr 48px;gap:18px;position:relative}.pin-form label{grid-column:1/-1;font-size:15px;font-weight:650}.pin-input{width:180px;height:50px;border:0;border-radius:9px;background:#171528;color:white;text-align:center;letter-spacing:12px;font-size:24px;padding:8px 12px}.pin-input[aria-invalid="true"]{outline:2px solid #f18d9a}.pin-cancel{position:absolute;right:-25px;top:-25px;width:30px;height:30px;font-size:20px;background:none}.loading-spinner{height:40px;width:40px;border:3px solid #514664;border-top-color:var(--mint);border-radius:50%;margin:150px auto;animation:spin .8s linear infinite}@keyframes spin{to{rotate:360deg}}
@media(max-width:850px){.arena svg{height:280px}.arena{max-height:280px}.combat-arena,.combat-arena svg{height:155px}.combat-arena{max-height:155px}.hud{padding:8px 4px}.challenge-card .paper-question-body{padding:26px}.stage{padding:18px}.stage-rune{height:65px;font-size:48px}}
@media(max-width:480px){.topbar{padding:12px 14px 0}.main{padding:8px 14px 16px}.arena,.arena svg{height:215px}.arena{margin:4px 0 14px}.stage h2{font-size:14px;margin-bottom:12px}.journey{gap:12px}.stage{padding:18px 12px 12px}.stage-rune{height:58px;font-size:40px}.stage-number{top:12px;left:12px}.level-path{gap:5px}.level-path span{width:20px;font-size:17px}.bonus{gap:14px;min-height:65px;flex-wrap:nowrap}.bonus .stage-number{font-size:23px}.bonus h2{margin:0;white-space:nowrap}.combat-arena,.combat-arena svg{height:125px}.combat-arena{max-height:125px;margin-bottom:8px}.hud{gap:8px;justify-content:center;margin-bottom:12px}.hud .permanent-path{gap:3px}.permanent-path span{width:17px;font-size:16px}.stones{gap:8px}.stones span{width:34px;height:34px;font-size:18px}.challenge-card .paper-question-body{padding:23px 20px}.speaker{right:16px;bottom:16px}.save-error{bottom:16px;right:72px}.stage-heading{margin-bottom:4px}.bonus-meter{gap:4px;padding:6px}.bonus-meter span{font-size:13px}.bonus-meter .mini-rune{font-size:17px}}
.bounty{display:inline-block;color:#ffda8c;font-weight:750;font-size:12px;white-space:nowrap}.stage>.bounty{margin:-6px 0 15px}.bonus>.bounty{margin:0 10px}.round-bounty{font-size:13px}.reward-editor{max-width:650px;margin:32px 0}.reward-form details{padding:14px 0;border-bottom:1px solid #ffffff15}.reward-form summary{cursor:pointer;font-size:14px;font-weight:650;padding:5px 0}.reward-row{display:grid;grid-template-columns:1fr 90px 90px;align-items:center;gap:15px;padding:7px 0;font-size:13px}.reward-row input{width:100%;height:40px;border:0;border-radius:8px;background:#302a46;color:#fff;padding:9px}.reward-labels{color:var(--muted);font-size:11px}.bonus-rewards{padding:20px 0}.reward-form>.button{min-width:100px}.bonus .bounty{font-size:14px}
@media(max-width:480px){.hud{gap:12px}.round-bounty{font-size:11px}.bonus{flex-wrap:wrap}.bonus>.bounty{font-size:11px;margin:0}.bonus h2{font-size:13px}.reward-row{grid-template-columns:1fr 70px 70px;gap:10px}}
.reward-slider-row{border:0;border-radius:14px;background:#28233b;margin:0 0 14px;padding:18px 20px;display:grid;grid-template-columns:1fr 1fr;gap:25px;min-width:0}.reward-slider-row legend{float:left;grid-column:1/-1;width:100%;padding:0;margin:0 0 5px;font-size:14px;font-weight:650}.slider-control{display:grid;gap:10px;min-width:0}.slider-heading{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted)}.slider-heading output{color:#ffda8c;font-size:16px;font-weight:750}.slider-control input[type="range"]{width:100%;accent-color:var(--mint);height:24px;margin:0;cursor:pointer}.reset-button{display:block;background:#b74859;color:#fff;margin-top:28px;padding:13px 28px}.reset-button:hover{background:#d15a6d}
.reward-slider-row{grid-template-columns:140px 32px minmax(80px,1fr) 32px;gap:12px;padding:12px 18px;align-items:center}.range-title{font-size:13px;font-weight:650}.range-value{color:#ffda8c;font-size:14px;font-weight:750;text-align:center}.dual-range{position:relative;height:36px;touch-action:none;cursor:pointer;min-width:0}.dual-range::before{content:'';position:absolute;left:9px;right:9px;top:16px;height:4px;border-radius:4px;background:linear-gradient(to right,#62566f 0 var(--low),#9aefcd var(--low) var(--high),#62566f var(--high) 100%)}.dual-range input[type="range"]{position:absolute;inset:0;width:100%;height:36px;margin:0;padding:0;background:transparent;appearance:none;pointer-events:none;outline:none}.dual-range input::-webkit-slider-runnable-track{background:transparent;height:4px}.dual-range input::-moz-range-track{background:transparent;height:4px}.dual-range input::-webkit-slider-thumb{appearance:none;width:18px;height:18px;border-radius:50%;background:#9aefcd;border:2px solid #28233b;margin-top:-7px;pointer-events:auto;cursor:grab}.dual-range input::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#9aefcd;border:2px solid #28233b;pointer-events:auto;cursor:grab}.dual-range input:focus-visible::-webkit-slider-thumb{outline:2px solid #d5baff;outline-offset:3px}.dual-range input:focus-visible::-moz-range-thumb{outline:2px solid #d5baff;outline-offset:3px}
@media(max-width:480px){.reward-slider-row{grid-template-columns:90px 26px minmax(65px,1fr) 26px;gap:6px;padding:10px}.range-title{font-size:11px}.range-value{font-size:12px}}
.reward-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:20px}.reward-actions .reset-button{margin:0}.reward-actions .button{min-width:100px}
.answer-form{max-width:620px}.answer-row{flex-wrap:nowrap}.answer-row .secondary{white-space:nowrap}.question-actions:has(>button[hidden]:only-child){display:none}
dialog.arcade-help-opening::backdrop{background:transparent!important}
.home-fight-banner.arena{height:auto;max-height:none;max-width:900px;aspect-ratio:16/9;margin-inline:auto;background:#0b0c18;overflow:hidden;display:grid;place-items:center}.home-fight-banner>.fighter-gif{width:100%;height:100%;max-height:none;object-fit:contain}.stage-fighter{display:block;width:100%;height:108px;object-fit:contain;margin:4px auto 12px;image-rendering:pixelated}.bonus-fighter{width:70px;height:70px;object-fit:contain;image-rendering:pixelated}.level-path .fighter-gif{width:26px;height:30px;object-fit:contain;image-rendering:pixelated}.fighter-celebration{position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:flex-start;padding:60px 8vw 90px;pointer-events:none;z-index:180}.fighter-celebration>.fighter-gif{width:min(480px,65vw);height:min(360px,45vh);object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 12px 18px #0005);animation:fighter-arrive .3s ease-out both}.fighter-from-right{justify-content:flex-end}.fighter-from-right>.fighter-gif{transform:scaleX(-1)}.fighter-streak{justify-content:center;background:radial-gradient(ellipse at bottom,#9aefcd18,transparent 65%)}.fighter-nextLevel{justify-content:center;align-items:center;background:#12102466;backdrop-filter:blur(3px)}
@keyframes fighter-arrive{from{opacity:0;translate:0 30px}to{opacity:1;translate:0 0}}
@media(max-width:480px){.stage-fighter{height:85px}.bonus-fighter{width:48px;height:48px}.fighter-celebration{padding:20px 10px 85px}.fighter-celebration>.fighter-gif{width:80vw;height:35vh}}
@media(prefers-reduced-motion:reduce){.home-fight-banner>.fighter-gif,.stage-fighter,.bonus-fighter,.level-path .fighter-gif{visibility:hidden}.home-fight-banner{background:linear-gradient(130deg,#302847,#17192f)!important}}
.fighter-celebration>.fighter-gif{animation:none}.fighter-correct>.fighter-gif{position:absolute;left:0;bottom:70px;width:min(360px,70vw);height:min(320px,35vh);transform:none;opacity:1}.fighter-correct{padding:0}
.question-topbar.topbar{max-width:none;padding:22px clamp(14px,3vw,40px) 26px;display:grid;grid-template-columns:46px minmax(0,1fr) 46px;align-items:center}.streak-hud.hud{margin:0;padding:0;display:flex;justify-self:center;justify-content:center;align-items:center;gap:18px;flex-wrap:nowrap;background:none;border:0}.streak-figure{width:44px;height:54px;display:grid;place-items:center}.streak-portrait{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.streak-figure.shadow .streak-portrait{filter:brightness(0) invert(1);opacity:.16}.streak-figure.filled .streak-portrait{filter:none;opacity:1}#game[data-screen="play"] .play-main{padding:10px clamp(14px,3vw,40px) 20px;max-width:none;width:100%}.play-main .challenge-card.paper-question{max-width:none;width:100%;margin-top:0}
@media(max-width:480px){.question-topbar.topbar{padding:18px 14px 22px}.streak-hud.hud{gap:13px}.streak-figure{width:36px;height:46px}#game[data-screen="play"] .play-main{padding:10px 14px 20px}}
@media(max-width:480px){.answer-row{gap:7px}.answer-row .button{padding:9px 12px;font-size:12px}.answer-input{padding:9px;flex:1;width:0}.answer-row .secondary{padding-inline:10px}}
@media(max-width:360px){.streak-hud.hud{gap:9px}.streak-figure{width:30px;height:42px}}
.back-home{background:#183b56;color:#fff}.back-home svg{width:25px;height:25px;display:block}.home-topbar{justify-content:flex-end}
.fighter-streak{align-items:center;justify-content:center;padding:5vh 2vw;background:#100e21ef;backdrop-filter:blur(7px)}.fighter-streak>.fighter-gif{width:min(95vw,1400px);height:min(80vh,800px);object-fit:cover;object-position:left center;filter:none}
.stage-earned{position:absolute;right:14px;top:12px;background:#ffe09a;color:#61420b;border-radius:8px;padding:7px 9px;font-size:13px;font-weight:800;line-height:1}.stage:has(.stage-earned){padding-top:38px}.stage.bonus:has(.stage-earned){padding-top:30px}.level-path span{width:28px;height:32px}.level-glove{width:27px;height:31px;display:block;filter:grayscale(1);opacity:.3}.level-path .cleared .level-glove{filter:none;opacity:1}
