:root{color-scheme:dark;--bg:#101520;--panel:#17202e;--ink:#edf3f5;--muted:#9aaabc;--line:#314052;--lime:#d4ed9b;--purple:#c2b1fc;--btn:58px;--gap:12px;--opacity:.8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;min-height:100dvh;padding:14px max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left));display:flex;flex-direction:column;align-items:center}button,input,select{font:inherit}button{cursor:pointer;color:inherit;background:#223043;border:1px solid #405065;border-radius:9px;padding:11px 18px;font-weight:750;transition:background .15s,transform .15s}button:hover{background:#334258}button:active{transform:translateY(1px)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--purple);outline-offset:3px}button:disabled{opacity:.3;cursor:default}button.primary{background:var(--lime);color:#18231c;border-color:var(--lime)}button.primary:hover{background:#e5ffaf}button.ghost{background:transparent}header,footer,#hud{width:min(1280px,100%);display:flex;align-items:center;justify-content:space-between;gap:16px}header{min-height:54px;margin-bottom:12px}#brand{display:flex;gap:11px;align-items:center;border:0;background:none;padding:0;text-align:left;letter-spacing:2px;font-size:10px;line-height:1.5}#brand img{width:38px;height:38px;border-radius:50%}#brand strong{display:block;font-size:19px;letter-spacing:1px}#chapter{font-size:11px;letter-spacing:2px;font-weight:800;color:#c4d0e0}#pause{font-size:12px;padding:10px 13px}#stage{position:relative;width:min(1280px,100%);aspect-ratio:900/506;max-height:calc(100dvh - 158px);background:#131c29;border:1px solid var(--line);border-radius:16px;overflow:hidden;isolation:isolate}#game{width:100%;height:100%;object-fit:fill;display:block;touch-action:none}#overlay{position:absolute;inset:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;touch-action:pan-y}#overlay:empty{pointer-events:none}.screen{min-height:100%;padding:clamp(22px,4vw,54px);background:linear-gradient(125deg,#172332f5,#121828fc);}.eyebrow{color:var(--lime);font-size:10px;letter-spacing:2.5px;font-weight:800;text-transform:uppercase;margin-bottom:15px}.menu{display:grid;grid-template-columns:1.1fr 1fr;gap:30px;align-items:center}.menu h1{font-size:clamp(37px,5.8vw,78px);font-weight:950;letter-spacing:-4px;line-height:.95;margin:12px 0 20px}.menu h1 em{font-style:normal;color:var(--lime)}p{color:var(--muted);max-width:630px;margin:12px 0 20px}.lead{font-size:clamp(14px,1.5vw,19px);color:#bdcbdc;max-width:420px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.actions button{flex:1;min-width:115px}.menuLinks{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.menuLinks button{font-size:11px;padding:10px 13px}.hero{position:relative;min-height:320px;border:1px solid #435166;border-radius:120px 120px 18px 18px;background:radial-gradient(ellipse at center,#38466d,#1b2637 70%);overflow:hidden;display:flex;align-items:center;justify-content:center}.hero:before{content:'';position:absolute;width:250px;height:250px;border:1px solid #c2b1fc40;border-radius:50%;box-shadow:0 0 0 40px #c2b1fc09,0 0 0 80px #c2b1fc05}.hero canvas{position:relative;width:230px;height:230px}.hero .stamp{position:absolute;bottom:20px;left:20px;right:20px;text-align:center;letter-spacing:2px;font-size:10px;color:var(--purple)}.tags{display:flex;gap:16px;margin-top:25px;font-size:10px;letter-spacing:1px;color:#8295ae}.topline{display:flex;align-items:center;justify-content:space-between;gap:20px}.topline h2{margin:0;font-size:clamp(24px,3vw,38px);letter-spacing:-1px}.close{padding:5px 13px;font-size:23px;background:transparent}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:20px}.level{padding:0;overflow:hidden;text-align:left;position:relative}.level canvas{width:100%;height:78px;display:block}.level .cardbody{padding:12px}.level .num{font-size:10px;letter-spacing:2px;color:var(--purple)}.level strong{display:block;font-size:13px;margin:4px 0}.level small{display:block;color:var(--muted);font-size:10px;font-weight:500}.level.cleared{border-color:#9abc79}.level .awards{color:var(--lime);margin-top:8px}.tabs{display:flex;gap:8px;margin:15px 0}.tabs .active{background:var(--purple);color:#17162b}.center{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:100%}.center>p{max-width:480px}.modal{background:radial-gradient(ellipse at top,#323149ed,#111a28fb)}.taunt{font-size:clamp(30px,4.9vw,66px);line-height:1.06;letter-spacing:-2px;font-weight:950;max-width:850px;margin:12px 0 24px;text-wrap:balance;animation:pop .22s ease-out}.win .taunt{color:var(--lime);text-shadow:0 0 40px #c7ec9830}.dead .taunt{color:#ffadc4}.resultLabel{border:1px solid #697a50;border-radius:50px;padding:5px 13px;font-size:10px;letter-spacing:3px;color:var(--lime)}.dead .resultLabel{color:#ffadc4;border-color:#765267}.stats{display:flex;gap:38px;justify-content:center;margin:5px 0 12px}.stats small{display:block;font-size:10px;letter-spacing:1px;color:var(--muted)}.stats strong{font-size:25px}.fine{font-size:11px;color:var(--muted)}.badges{color:var(--lime);font-size:12px;letter-spacing:1px}.nameform{width:min(420px,100%)}label{display:block;font-size:12px;color:#c0cbda;margin:12px 0 5px}input[type=text]{width:100%;padding:14px;border:1px solid #6e708b;border-radius:8px;background:#101925;color:#fff;font-size:21px;text-align:center}select{padding:10px;background:#182638;color:#fff;border:1px solid #526176;border-radius:6px}#nameError{color:#ffadc4;min-height:22px;font-size:12px}.settings{display:grid;grid-template-columns:1fr 1fr;gap:18px 30px;margin:20px 0}.setting{display:flex;justify-content:space-between;gap:15px;align-items:center}.setting label{margin:0}.setting input[type=range]{width:130px;accent-color:var(--lime)}.setting input[type=checkbox]{width:22px;height:22px;accent-color:var(--lime)}.helpgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.helpgrid h3{font-size:15px;color:var(--lime)}.helpgrid p{font-size:13px}kbd{display:inline-block;background:#334357;border:1px solid #607185;padding:2px 8px;border-radius:4px;color:#fff}table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:12px 7px;border-bottom:1px solid var(--line);text-align:left}th{font-size:10px;letter-spacing:1px;color:var(--muted)}tr.you{color:var(--lime)}.boardtop{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:18px 0}.errornote{color:#ffbfad;font-size:12px}#hud{font-size:10px;letter-spacing:1px;min-height:42px;color:var(--muted)}#hud b{font-size:15px;letter-spacing:0;color:#e5edf7;padding-left:5px}#runLabel{margin-left:auto;font-size:9px}#retry{padding:5px 9px;font-size:10px}footer{font-size:8px;letter-spacing:1px;color:#6f8199;min-height:20px}#toast{position:absolute;left:50%;top:20px;transform:translateX(-50%);padding:9px 20px;border-radius:30px;color:#18231c;background:var(--lime);font-size:12px;font-weight:800;pointer-events:none;opacity:0;z-index:3;transition:opacity .2s;max-width:90%;text-align:center}#toast.show{opacity:1}#touch{display:none;width:min(1280px,100%);justify-content:space-between;gap:20px;touch-action:none}#touch>div{display:flex;gap:var(--gap)}#touch button{width:var(--btn);height:var(--btn);padding:0;font-size:26px;background:#29394bdd;opacity:var(--opacity);user-select:none;-webkit-user-select:none;touch-action:none}body[data-mode=play] #touch button:active{background:var(--lime);color:#15221b}.notice{padding:12px 16px;background:#c2b1fc12;border-left:3px solid var(--purple);font-size:12px;color:#c6cfe1;margin:18px 0}.resumeNote{color:var(--purple)}@keyframes pop{from{transform:scale(.94);opacity:.85}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(pointer:coarse){body[data-mode=play] #touch{display:flex}body[data-mode=play] #stage{max-height:calc(100dvh - 230px)}footer{display:none}}@media(max-width:750px){body{padding:8px}header{min-height:38px;margin-bottom:7px}#brand img{width:28px;height:28px}#brand{font-size:8px}#brand strong{font-size:13px}#chapter{font-size:8px;letter-spacing:.5px}#pause span{display:none}#pause{padding:5px 10px}#stage{max-height:none;min-height:440px;aspect-ratio:auto}.menu{grid-template-columns:1fr}.menu h1{font-size:56px;letter-spacing:-3px}.hero{display:none}.screen{padding:23px}.grid{grid-template-columns:1fr 1fr;gap:10px}.level strong{font-size:11px}.settings,.helpgrid{grid-template-columns:1fr}.taunt{font-size:38px}.stats{gap:20px}.stats strong{font-size:22px}body[data-mode=play] #stage,body[data-mode=dying] #stage{min-height:0;aspect-ratio:900/506;max-height:none}.tags{gap:10px;font-size:8px}#runLabel{max-width:135px;font-size:8px}.center{min-height:440px}}@media(max-height:540px) and (orientation:landscape){body{padding:5px 12px}header{min-height:30px;margin-bottom:5px}#brand img{width:24px;height:24px}#brand strong{font-size:12px}#brand{font-size:7px}#pause{padding:3px 9px}#stage{width:min(900px,100%);max-height:calc(100dvh - 92px);min-height:0;aspect-ratio:900/506}#hud{min-height:30px}footer{display:none}.screen{padding:18px 26px}.menu{grid-template-columns:1.3fr 1fr;gap:25px}.menu h1{font-size:42px;letter-spacing:-2px;margin:8px 0 12px}.hero{display:flex;min-height:235px}.hero canvas{width:165px;height:165px}.lead{font-size:12px;margin:7px 0 10px}.eyebrow{font-size:8px;margin-bottom:7px}.tags{margin-top:12px}.actions{margin-top:10px}.actions button{padding:8px 12px;font-size:12px}.menuLinks button{padding:7px 9px;font-size:9px}.center{min-height:100%}.taunt{font-size:37px;margin:10px 0 12px}.stats strong{font-size:20px}.stats{gap:25px}.grid{grid-template-columns:repeat(3,1fr)}.settings,.helpgrid{grid-template-columns:1fr 1fr}.settings{gap:12px 20px}.topline h2{font-size:25px}.nameform input{padding:8px}.center>p{font-size:12px;margin:8px 0}body[data-mode=play] #stage{max-height:calc(100dvh - 145px)}#touch{position:fixed;bottom:6px;left:12px;right:12px;width:auto;pointer-events:none}#touch>div{pointer-events:auto}body[data-mode=play] #hud{padding:0 150px}#touch button{width:48px;height:48px}#runLabel{display:none}}

body:not([data-mode=play]) #toast{display:none}
@media(max-height:540px) and (orientation:landscape){.settings{gap:8px 18px;margin:12px 0}.setting{font-size:12px}.setting button{padding:7px 10px;font-size:11px}.setting label{font-size:11px}.settings+.actions{margin-top:6px}.screen>p.fine{margin:8px 0}.topline h2{font-size:22px}.screen>.eyebrow{margin-bottom:7px}#touch button{width:clamp(44px,var(--btn),68px);height:clamp(44px,var(--btn),68px)}}
/* V5 returns to the original light, restrained visual identity. */
:root{color-scheme:light;--bg:#efece3;--panel:#f7f5ed;--ink:#28352c;--muted:#74816c;--line:#c9cdbf;--lime:#d1e995;--purple:#657955}
body{background:var(--bg);color:var(--ink)}button{background:#f6f4eb;border-color:#929d87;color:#2b382b;border-radius:5px}button:hover{background:#e2e6d5}button.primary{background:#d2e999;border-color:#63774f;color:#28352c}button.primary:hover{background:#c4df85}#chapter{color:#46523e}#stage{background:#f4f2e9;border-color:#c8cbbf;border-radius:8px}.screen{background:#f7f5edf7}.eyebrow{color:#6c8056}.menu h1{letter-spacing:-3px}.menu h1 em{color:#27382b}.lead{color:#64735d}.hero{border:0;border-radius:0;background:none}.hero:before{display:none}.hero .stamp{color:#788970}.tags{color:#7d8874}.menuLinks button{background:transparent}.level{background:#f5f4ea;border-color:#aeb5a2}.level .num{color:#738269}.level.cleared{border-color:#657f45}.level .awards{color:#557736}.tabs .active{background:#cfe397;color:#2d3b28}.modal{background:#f2f0e6f2}.win .taunt{color:#385329;text-shadow:none}.dead .taunt{color:#ac4636}.resultLabel{border-color:#92a876;color:#607844}.dead .resultLabel{color:#ac4636;border-color:#c98f7e}.stats strong{color:#2c3a2b}.badges{color:#597838}label{color:#506149}input[type=text]{background:#fffef7;color:#293728;border-color:#839477}select{background:#f7f5ed;color:#293728;border-color:#8b9b7f}.setting input[type=range],.setting input[type=checkbox]{accent-color:#738c4b}.helpgrid h3{color:#566f40}kbd{background:#e7eadb;border-color:#a8b39c;color:#34462d}.notice{background:#e5e9d8;border-color:#95a87d;color:#54664a}.boardtop{color:#52644a}tr.you{color:#587b33}#hud{color:#7a876e}#hud b{color:#394c2f}footer{color:#909b82}#touch button{background:#e1e6d4e8;color:#3a4f2f;border-color:#8c9e79}.errornote,#nameError{color:#ab4a38}#toast{background:#d8e9b5;color:#3d532c}.resumeNote{color:#708758}

.character-picker{display:flex;align-items:center;justify-content:center;gap:16px;margin:8px 0}.character-picker button{display:flex;flex-direction:column;align-items:center;gap:8px;width:128px;height:145px}.character-picker button[aria-pressed=true]{border:3px solid #79944f;background:#e2eccb}.character-picker img{width:85px;height:85px;object-fit:contain}.bow-portrait{width:85px;height:85px;background:url('assets/bow-sprites.png') 0 0/340px 255px}.character-picker canvas{width:165px;height:165px}body[data-mode=characters] h2{margin:5px 0;font-size:25px}@media(max-width:600px){.character-picker{gap:8px}.character-picker canvas{display:none}}@media(max-height:540px){.character-picker button{height:112px;width:112px;padding:6px}.character-picker img,.bow-portrait{width:65px;height:65px}.bow-portrait{background-size:260px 195px}.character-picker canvas{width:115px;height:115px}.character-picker{margin:0}.character-picker+p{margin:3px 0!important}}

.character-picker #robotPortrait{display:block;width:85px;height:85px}body[data-mode=characters] .actions button{min-width:140px}@media(max-height:540px){.character-picker #robotPortrait{width:65px;height:65px}}

#beanedTaunt{display:block;width:200px;height:200px;margin:-16px auto -4px}.dead:has(#beanedTaunt) .taunt{font-size:clamp(22px,3.3vw,38px)}@media(max-height:560px){#beanedTaunt{width:110px;height:110px;margin:-10px auto}.dead:has(#beanedTaunt){padding:18px}.dead:has(#beanedTaunt) .stats{margin:10px 0}}
#beanedTaunt{margin:4px auto 0}.dead:has(#beanedTaunt) .actions button{white-space:nowrap}
@media(max-height:560px) and (orientation:landscape){.dead:has(#beanedTaunt){display:grid;grid-template-columns:140px minmax(0,560px);grid-template-rows:auto auto auto auto auto;justify-content:center;align-content:center;gap:5px 16px;padding:12px 24px}.dead #beanedTaunt{grid-column:1;grid-row:1/6;width:140px;height:140px;margin:0;align-self:center}.dead:has(#beanedTaunt)>:not(canvas){grid-column:2;margin:0}.dead:has(#beanedTaunt) .resultLabel{justify-self:center}.dead:has(#beanedTaunt) .taunt{font-size:26px;letter-spacing:-1px;margin:5px 0}.dead:has(#beanedTaunt) .stats{margin:0}.dead:has(#beanedTaunt) .actions{justify-self:center}.dead:has(#beanedTaunt) .fine{font-size:10px;margin-top:4px}}
