*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
html,body{width:100%;height:100%;overflow:hidden;background:#5cc23c;touch-action:none;font-family:"Arial Rounded MT Bold","Nunito","Varela Round","Quicksand",ui-rounded,"SF Pro Rounded","Trebuchet MS",system-ui,sans-serif;font-weight:900;color:#fff}
canvas#c{position:fixed;inset:0;width:100%;height:100%;cursor:none}
.hide{display:none!important}
#hud{position:fixed;top:0;left:0;right:0;display:flex;justify-content:center;gap:2vmin;flex-wrap:wrap;padding:1.2vmin;pointer-events:none;z-index:2}
.pill{background:linear-gradient(#ffb43a,#ff7a1a);border:3px solid #7a3b00;border-radius:999px;padding:.25em .8em;font-size:clamp(13px,3.4vmin,26px);text-shadow:0 2px 0 #7a3b00;box-shadow:0 4px 0 #7a3b00}
#combo{width:100%;text-align:center;color:#fff35a;font-size:clamp(16px,4.5vmin,36px);text-shadow:0 3px 0 #c4400d,0 0 10px #fff8;height:1.2em}
#rt{position:fixed;bottom:2vmin;left:50%;transform:translateX(-50%);background:#0006;border-radius:999px;padding:.3em 1em;font-size:clamp(13px,3vmin,22px);pointer-events:none;z-index:2;white-space:nowrap}
.rb{position:fixed;bottom:12px;width:50px;height:50px;border-radius:50%;border:3px solid #fff;background:#0005;font-size:24px;z-index:6;color:#fff}
#mute{right:12px}#quit{left:12px}
.ov{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.2vmin;background:radial-gradient(#0005,#000a);text-align:center;padding:16px;z-index:4;overflow:auto}
h1{font-size:clamp(38px,11vmin,96px);line-height:.95;color:#ffe14d;-webkit-text-stroke:3px #8a2b00;text-shadow:0 6px 0 #8a2b00,0 10px 20px #0008;transform:rotate(-3deg);animation:bob 2s ease-in-out infinite}
h2{font-size:clamp(28px,7vmin,60px);color:#ffe14d;-webkit-text-stroke:2px #8a2b00;text-shadow:0 5px 0 #8a2b00}
@keyframes bob{50%{transform:rotate(3deg) scale(1.04)}}
p{font-size:clamp(15px,3.6vmin,26px);text-shadow:0 2px 0 #0008}.sm{font-size:clamp(13px,3vmin,20px);opacity:.9}
.btn{font:inherit;font-size:clamp(20px,5.5vmin,40px);padding:.35em 1.4em;border:4px solid #8a1b00;border-radius:999px;background:linear-gradient(#ff8a5a,#ff3d1f);color:#fff;text-shadow:0 2px 0 #8a1b00;box-shadow:0 7px 0 #8a1b00;cursor:pointer}
.btn:active{transform:translateY(5px);box-shadow:0 2px 0 #8a1b00}
.btn.alt{background:linear-gradient(#6ed0ff,#2390e0);border-color:#0a3f75;box-shadow:0 7px 0 #0a3f75;text-shadow:0 2px 0 #0a3f75;font-size:clamp(16px,4vmin,28px)}
.row{display:flex;gap:2vmin;flex-wrap:wrap;justify-content:center}
#levels{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(64px,15vmin,110px),1fr));gap:2vmin;width:min(92vw,720px)}
.lv{font:inherit;aspect-ratio:1;border-radius:24%;border:4px solid #5a3200;background:linear-gradient(#a8e86a,#4fae2a);color:#fff;font-size:clamp(22px,6vmin,42px);text-shadow:0 3px 0 #2d5e10;box-shadow:0 6px 0 #5a3200;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer}
.lv small{font-size:.42em;letter-spacing:1px;color:#ffe14d;text-shadow:0 1px 0 #6a4000}
.lv.locked{background:linear-gradient(#999,#666);border-color:#333;box-shadow:0 6px 0 #333;color:#ddd}
.stars{font-size:clamp(40px,12vmin,90px);letter-spacing:.1em}
.stars span{display:inline-block;animation:pop .5s backwards}.stars .off{filter:grayscale(1) brightness(.5)}
@keyframes pop{0%{transform:scale(0) rotate(-90deg)}80%{transform:scale(1.3)}}
.card{background:#fff;color:#4a2a00;border:4px solid #8a5a20;border-radius:20px;padding:.8em 1.2em;font-size:clamp(14px,3.4vmin,22px);line-height:1.5;box-shadow:0 6px 0 #8a5a20}
.card b{color:#e5531a}
#chart{width:min(90vw,640px);height:min(40vh,300px);background:#fff;border:4px solid #8a5a20;border-radius:20px}
#meter{width:min(40vw,260px);height:12px;margin:0 auto 4px;background:#0005;border:2px solid #fff;border-radius:99px;overflow:hidden}#meter i{display:block;height:100%;background:linear-gradient(90deg,#ffe14d,#ff5b3a,#ff3dd0);transition:transform .15s}
#music{right:70px}
.ov:not(.hide){animation:ovIn .35s ease-out}.ov:not(.hide)>*{animation:upIn .45s cubic-bezier(.2,1.5,.4,1) backwards}.ov>*:nth-child(2){animation-delay:.05s}.ov>*:nth-child(3){animation-delay:.1s}.ov>*:nth-child(4){animation-delay:.15s}.ov>*:nth-child(5){animation-delay:.2s}.ov>*:nth-child(6){animation-delay:.25s}
@keyframes ovIn{from{opacity:0}}@keyframes upIn{from{opacity:0;transform:translateY(30px) scale(.8)}}
.btn,.lv,.dbtn{transition:transform .12s}.btn:hover,.lv:hover,.dbtn:hover{transform:scale(1.07) rotate(-1deg)}
.ov:not(.hide)>.pulse{animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{50%{transform:scale(1.09)}}
#diffs{display:flex;gap:1.5vmin;flex-wrap:wrap;justify-content:center}
.dbtn{font:inherit;color:#fff;font-size:clamp(14px,3.6vmin,24px);line-height:1.1;padding:.4em .7em;min-width:5.2em;border-radius:18px;border:4px solid #2d5e10;background:linear-gradient(#a8e86a,#4fae2a);box-shadow:0 5px 0 #2d5e10;text-shadow:0 2px 0 #2d5e10;cursor:pointer}
.dbtn small{display:block;font-size:.6em;opacity:.9}.dbtn.on{background:linear-gradient(#ffe14d,#ffa31a);border-color:#8a4b00;box-shadow:0 5px 0 #8a4b00,0 0 0 4px #fff;text-shadow:0 2px 0 #8a4b00;transform:scale(1.08)}
/* ===== menu theme ===== */
.ov.menu{background:linear-gradient(#5ec8ff 0%,#a8e4ff 32%,rgba(168,228,255,0) 46%),radial-gradient(ellipse at 50% 120%,#0000 40%,#0006 100%)}
.ov.menu::before,.ov.menu::after{content:'';position:fixed;top:6vh;left:-30vw;width:22vmin;height:8vmin;background:#fff;border-radius:99px;box-shadow:8vmin -3vmin 0 1vmin #fff,15vmin 0 0 -1vmin #fff;opacity:.9;animation:cloud 38s linear infinite;z-index:-1;pointer-events:none}
.ov.menu::after{top:16vh;animation-duration:55s;animation-delay:-20s;transform:scale(.7)}
@keyframes cloud{to{left:110vw}}
.ov.menu,.ov#over{z-index:4;isolation:isolate}
.sign{position:relative;padding:2.2vmin 5vmin 2.6vmin;background:repeating-linear-gradient(0deg,#c98a4a 0 14%,#b87838 14% 16%),#c98a4a;border:5px solid #6b3a12;border-radius:22px;box-shadow:inset 0 4px 0 #e6ad6c,inset 0 -6px 0 #9a5f28,0 10px 0 #4a2608,0 18px 30px #0006;transform:rotate(-2deg)}
.sign::before,.sign::after{content:'';position:absolute;top:12px;width:14px;height:14px;border-radius:50%;background:radial-gradient(#ddd,#777);box-shadow:0 0 0 2px #4a2608}
.sign::before{left:14px}.sign::after{right:14px}
.sign h1{animation:none;transform:none}.sign.sm2{padding:1.4vmin 5vmin 1.8vmin;transform:rotate(-1deg)}
.titlemoles{display:flex;gap:6vmin;height:9vmin;margin-top:-1vmin}
.tm{display:block;width:9vmin;height:9vmin;background:radial-gradient(circle at 35% 40%,#2a1406 9%,#0000 10%),radial-gradient(circle at 65% 40%,#2a1406 9%,#0000 10%),radial-gradient(ellipse at 50% 62%,#ff5f8a 10%,#0000 11%),radial-gradient(ellipse at 50% 75%,#e8b98a 30%,#0000 31%),#9a6232;border-radius:50% 50% 12% 12%;border:3px solid #6e4220;animation:peek 2.4s ease-in-out infinite}
.tm.d1{animation-delay:.8s}.tm.d2{animation-delay:1.6s}
@keyframes peek{0%,100%{transform:translateY(60%) scaleY(.6);opacity:0}30%,60%{transform:none;opacity:1}}
.card{background:linear-gradient(#fffaf0,#f5e3c4);border-color:#8a5a20}
#iGoal{text-align:center}
/* level map */
#levels{max-width:720px}
.lv{position:relative;background:repeating-linear-gradient(90deg,#c98a4a 0 18%,#bd7f40 18% 20%);border-color:#6b3a12;box-shadow:inset 0 4px 0 #e6ad6c,0 6px 0 #4a2608,0 10px 16px #0005;text-shadow:0 3px 0 #6b3a12;animation:upIn .45s cubic-bezier(.2,1.5,.4,1) backwards;gap:2px}
.lv .ln{font-size:1em;line-height:1}.lv small{display:flex;gap:1px}.lv small em{font-style:normal;color:#5a3216;text-shadow:none;font-size:1.1em}.lv small em.on{color:#ffe14d;text-shadow:0 1px 0 #8a4b00}
.lv .lb{font-size:.32em;background:#0005;border-radius:99px;padding:0 .5em}
.lv.next{animation:upIn .45s backwards,glow 1.2s ease-in-out infinite;border-color:#ffe14d}
@keyframes glow{50%{box-shadow:inset 0 4px 0 #e6ad6c,0 6px 0 #4a2608,0 0 0 6px #ffe14d88,0 0 24px #ffe14d}}
.lv.locked{background:repeating-linear-gradient(90deg,#8a8a8a 0 18%,#7d7d7d 18% 20%);border-color:#444;box-shadow:inset 0 4px 0 #aaa,0 6px 0 #333}
.lv .lk{font-size:.8em;filter:grayscale(.3)}
/* results */
#over{background:radial-gradient(circle at 50% 35%,#ffe9a0 0,#ffb84d 25%,#e8641a 60%,#7a2a00 100%)}
#over.fail{background:radial-gradient(circle at 50% 35%,#b9d7ff 0,#6f93c9 35%,#2e3f6e 75%,#141c35 100%)}
#over.win::before{content:'';position:fixed;inset:-50%;background:repeating-conic-gradient(#fff2 0 10deg,#0000 10deg 20deg);animation:spin 30s linear infinite;z-index:-1}
@keyframes spin{to{transform:rotate(360deg)}}
.banner{position:relative;font-size:clamp(24px,6.5vmin,54px);color:#fff;padding:.25em 1.4em .35em;background:linear-gradient(#ff6a3a,#d8361a);border:4px solid #7a1a00;border-radius:12px;box-shadow:0 6px 0 #7a1a00,0 12px 24px #0006;text-shadow:0 3px 0 #7a1a00;line-height:1.05}
.banner small{display:block;font-size:.42em;opacity:.95}
.banner::before,.banner::after{content:'';position:absolute;top:22%;width:1.2em;height:80%;background:#b02a10;border:4px solid #7a1a00;z-index:-1}
.banner::before{left:-.9em;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,35% 50%)}.banner::after{right:-.9em;clip-path:polygon(0 0,100% 0,65% 50%,100% 100%,0 100%)}
.fail .banner{background:linear-gradient(#7aa0d8,#4a6aa8);border-color:#1e2e58;box-shadow:0 6px 0 #1e2e58,0 12px 24px #0006;text-shadow:0 3px 0 #1e2e58}
.fail .banner::before,.fail .banner::after{background:#3a5490;border-color:#1e2e58}
.bigmole{width:clamp(80px,20vmin,170px);margin:-1vmin 0 -3vmin}.bigmole svg{width:100%;display:block}
.cheer{animation:cheer .6s ease-in-out infinite alternate}.cheer .arms{animation:wave .3s ease-in-out infinite alternate;transform-origin:100px 90px}
@keyframes cheer{to{transform:translateY(-8%) rotate(3deg)}}@keyframes wave{to{transform:rotate(6deg)}}
.sad{animation:sad 2s ease-in-out infinite}@keyframes sad{50%{transform:translateY(4%) rotate(-3deg)}}
.stars{line-height:1}.stars span{color:#ffe14d;-webkit-text-stroke:3px #a86a00;text-shadow:0 5px 0 #a86a00,0 0 20px #fff8;animation:starIn .5s cubic-bezier(.2,1.8,.4,1) backwards}
.stars span:nth-child(2){font-size:1.25em;vertical-align:-.1em}.stars .off{color:#0003;-webkit-text-stroke:3px #0002;text-shadow:none;filter:none}
@keyframes starIn{0%{transform:scale(3) rotate(-120deg);opacity:0}100%{transform:none;opacity:1}}
.bigscore{font-size:clamp(34px,10vmin,80px);color:#fff;-webkit-text-stroke:3px #7a2a00;text-shadow:0 5px 0 #7a2a00;line-height:1;position:relative}
.fail .bigscore{-webkit-text-stroke-color:#1e2e58;text-shadow:0 5px 0 #1e2e58}
.bigscore.nbs::after{content:attr(data-nb);position:absolute;right:-5.5em;top:0;font-size:.28em;-webkit-text-stroke:0;background:#ff3dd0;color:#fff;padding:.3em .7em;border-radius:99px;transform:rotate(12deg);text-shadow:none;box-shadow:0 3px 0 #8a0070;animation:starIn .4s backwards}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5vmin;width:min(94vw,640px)}
@media (max-aspect-ratio:3/4){.cards{grid-template-columns:repeat(2,1fr)}}
.sc{position:relative;background:linear-gradient(#fffaf0,#f5e3c4);border:4px solid #8a5a20;border-radius:16px;padding:.4em .2em;color:#4a2a00;box-shadow:0 5px 0 #8a5a20;display:flex;flex-direction:column;align-items:center;font-size:clamp(12px,2.8vmin,18px)}
.sc i{font-style:normal;font-size:1.4em}.sc b{font-size:1.7em;color:#e5531a;line-height:1.1}.sc u{text-decoration:none;font-size:.5em;margin-left:2px}
.nb{position:absolute;top:-.8em;right:-.4em;font-style:normal;font-size:.75em;background:#ff3dd0;color:#fff;padding:.1em .5em;border-radius:99px;transform:rotate(10deg);box-shadow:0 2px 0 #8a0070}
#confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:-1}
#confetti i{position:absolute;top:-5%;border-radius:2px;animation:fall linear forwards}
@keyframes fall{to{top:105%;transform:rotate(720deg) translateX(10vw)}}
#over p{text-shadow:0 2px 0 #0006}
.ov{justify-content:safe center}
@media (max-height:720px){.ov{gap:1.3vmin}.bigmole{width:14vmin;margin:-1vmin 0 -2vmin}.stars{font-size:9vmin}.bigscore{font-size:8.5vmin}.banner{font-size:5.5vmin}.sc{padding:.2em}.sc i{font-size:1.1em}.sc b{font-size:1.4em}.ov .btn{font-size:4.6vmin}.ov .btn.alt{font-size:3.6vmin}}
.sign.sm2{padding:1.4vmin 9vmin 1.8vmin}.sign::before,.sign::after{top:50%;margin-top:-7px}

/* polish pass */
#hud{gap:1.4vmin;flex-wrap:nowrap;padding:max(8px,env(safe-area-inset-top)) 8px 0;flex-wrap:wrap}
.pill{white-space:nowrap;background:linear-gradient(#ffc04d,#ff8a1f);border-color:#7a3b00;padding:.2em .7em}
.pill small{font-size:.65em;opacity:.85}
#score.done{background:linear-gradient(#b6f06a,#4fae2a);border-color:#2d5e10;box-shadow:0 4px 0 #2d5e10;text-shadow:0 2px 0 #2d5e10}
#time.low{background:linear-gradient(#ff6a5a,#d81a1a);border-color:#6a0000;box-shadow:0 4px 0 #6a0000;animation:tick 1s infinite}
@keyframes tick{0%{transform:scale(1.18)}30%{transform:scale(1)}}
#lives.hurt{animation:hurt .35s}@keyframes hurt{20%,60%{transform:translateX(-6px) rotate(-4deg)}40%,80%{transform:translateX(6px) rotate(4deg)}}
#combo{order:9}
@media (max-width:480px){.pill{font-size:15px;padding:.2em .55em}#hud{gap:5px}#rt{font-size:12px;bottom:74px}}
#rt{transition:opacity .2s}
#paused{cursor:pointer}
.rb{transition:transform .1s,opacity .2s}.rb:active{transform:scale(.88)}

#toast{position:fixed;left:50%;top:22%;transform:translate(-50%,-30px) scale(.8);opacity:0;z-index:8;pointer-events:none;background:linear-gradient(#fffaf0,#f5e3c4);color:#4a2a00;border:4px solid #8a5a20;border-radius:18px;padding:.5em 1.1em;font-size:clamp(15px,3.6vmin,24px);text-align:center;box-shadow:0 6px 0 #8a5a20,0 10px 24px #0005;transition:transform .35s cubic-bezier(.2,1.5,.4,1),opacity .25s;max-width:90vw}
#toast.show{opacity:1;transform:translate(-50%,0) scale(1)}#toast.ach{background:linear-gradient(#fff6b0,#ffd23a);border-color:#a86a00;box-shadow:0 6px 0 #a86a00,0 0 30px #ffe14d}#toast small{font-size:.7em;opacity:.8}
#daily{position:relative;overflow:hidden;background:#0005;border:3px solid #fff8;border-radius:99px;padding:.3em 1.1em;font-size:clamp(13px,3vmin,18px)}#daily i{position:absolute;left:0;bottom:0;height:4px;background:#7dff6a}
.tbtn{font:inherit;color:#fff;background:#0004;border:2px solid #fff6;border-radius:99px;padding:.25em .9em;font-size:clamp(12px,2.6vmin,16px);cursor:pointer}
.ov>*{flex-shrink:0}#toast{top:auto;bottom:18%}@media (max-height:520px){.titlemoles{display:none}.ov p.sm{display:none}}
.sign h1{font-size:min(11vmin,9.6vw)}
/* ---- pass: map journey, zones, wipe, results bar, typography ---- */
:root{--fs-s:clamp(12px,2.8vmin,17px);--fs-m:clamp(15px,3.4vmin,22px)}
.card{font-size:var(--fs-m);line-height:1.45;padding:.7em 1.1em}.sm{font-size:var(--fs-s)}
p{font-size:var(--fs-m)}
#map{justify-content:flex-start;padding-top:max(16px,3vh)}
#levels{position:relative;display:flex;flex-direction:column;gap:1.2vmin;width:min(94vw,560px);max-width:none;grid-template-columns:none}
#path{position:absolute;left:0;top:0;pointer-events:none;z-index:0;overflow:visible}
.zone{position:relative;border-radius:22px;padding:2.2vmin 2vmin 1.6vmin;border:4px solid #0003;box-shadow:inset 0 0 0 3px #fff4}
.zone.z0{background:linear-gradient(#9be86a,#4fae2a)}.zone.z1{background:linear-gradient(#ffe0a0,#e0a050)}.zone.z2{background:linear-gradient(#ffffff,#a8cce8)}.zone.z3{background:linear-gradient(#3a5a9a,#141c3a)}
.zl{position:absolute;top:-.8em;left:1em;font-size:var(--fs-s);background:#5a3216;border:3px solid #3a1e08;color:#ffe14d;padding:.1em .8em;border-radius:99px;z-index:2;box-shadow:0 3px 0 #3a1e08}
.zrow{display:flex;justify-content:space-around;gap:2vmin;position:relative;z-index:1}.zrow.rev{flex-direction:row-reverse}
.zrow .lv{width:clamp(66px,16vmin,104px);aspect-ratio:1;border-radius:50%}
.lv.boss{width:clamp(80px,19vmin,124px)!important;background:radial-gradient(circle at 40% 35%,#c8a0ff,#5a2e90);border-color:#2a1050;box-shadow:inset 0 4px 0 #e6d0ff,0 6px 0 #2a1050,0 0 24px #c89aff}
.lv.boss.locked{filter:grayscale(.7) brightness(.7)}
.zchip{display:inline-block;font-size:var(--fs-s);background:#5a3216;color:#ffe14d;border-radius:99px;padding:.1em .9em;margin-bottom:.4em}
#wipe{position:fixed;inset:0;z-index:9;pointer-events:none;background:radial-gradient(circle,#6e4220,#2a1406);clip-path:circle(0% at 50% 50%)}
#wipe.on{clip-path:circle(80% at 50% 50%);transition:clip-path .3s ease-in}#wipe.off{clip-path:circle(0% at 50% 50%);transition:clip-path .35s ease-out}
.pbar{position:relative;width:min(80vw,460px);height:18px;background:#0005;border:3px solid #fff;border-radius:99px;margin-top:.6em}
.pbar i{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:linear-gradient(90deg,#ffe14d,#7dff6a);animation:grow 1.1s cubic-bezier(.2,.8,.3,1) backwards}
@keyframes grow{from{width:0}}
.pbar b{position:absolute;top:-1.25em;transform:translateX(-50%);font-size:13px;color:#ffe14d;-webkit-text-stroke:1px #7a2a00}
.pbar span{position:absolute;left:50%;top:115%;transform:translateX(-50%);white-space:nowrap;font-size:12px;opacity:.9}
.cards{margin-top:1.2em}
#path{z-index:1}.zrow{z-index:2}#toast.ach{bottom:3%}
@media (max-height:700px){.zrow .lv{width:clamp(52px,12.5vmin,104px)}.lv.boss{width:clamp(60px,14vmin,124px)!important}.zone{padding:1.6vmin 2vmin 1vmin}#levels{gap:1.8vmin}}

#quit{font-size:20px}.done{color:#ffe14d}
#start .row{gap:2vmin}
.zchip{display:table;margin:0 auto .4em}
/* Keep menus scrollable on short screens, including touch and safe-area insets. */
html,body{touch-action:auto;overscroll-behavior:none}
canvas#c{touch-action:none}
.ov{justify-content:flex-start;touch-action:pan-y pinch-zoom;gap:clamp(10px,1.6vmin,16px);padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(80px,calc(env(safe-area-inset-bottom) + 70px)) max(18px,env(safe-area-inset-left));scrollbar-color:#8a5a20 #e8b98a}
.ov>:first-child{margin-top:auto}.ov>:last-child{margin-bottom:auto}
#map>:first-child{margin-top:0}
.sign{max-width:94%;margin-bottom:12px}.sign h1{font-size:min(9vmin,9.6vw,80px);-webkit-text-stroke:clamp(1px,.3vmin,3px) #8a2b00;text-shadow:0 .06em 0 #8a2b00,0 .1em .2em #0008}
.card{max-width:min(94vw,720px);overflow-wrap:anywhere}
#diffs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(8px,1.5vmin,14px);width:min(100%,600px)}
.dbtn{min-width:0;padding:.5em .25em;overflow-wrap:anywhere;background:linear-gradient(#397a22,#245a17)}
.dbtn.on{color:#542600;text-shadow:none}
.btn,.tbtn{min-height:44px}
.btn{background:linear-gradient(#e85a2c,#c93318)}
.btn.alt{background:linear-gradient(#267fb4,#0862a5)}
.tbtn,#daily{background:#213a20}
.rb{bottom:max(12px,env(safe-area-inset-bottom))}
#mute{right:max(12px,env(safe-area-inset-right))}#music{right:max(70px,calc(env(safe-area-inset-right) + 70px))}#quit{left:max(12px,env(safe-area-inset-left))}
#rt{max-width:calc(100vw - 140px);white-space:normal;text-align:center;bottom:max(12px,env(safe-area-inset-bottom))}
#meterFill{width:100%;transform:scaleX(0);transform-origin:left;transition:transform .15s}
button:focus-visible,canvas:focus-visible{outline:3px solid #fff;outline-offset:5px;box-shadow:0 0 0 7px #3a1e08}
button:disabled{cursor:default}.rb:disabled{opacity:.4}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#saveRetry{position:fixed;top:max(8px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:8;max-width:90vw}
.sys-paused *,.sys-paused *::before,.sys-paused *::after{animation-play-state:paused!important}
body.rm *,body.rm *::before,body.rm *::after{animation:none!important;transition:none!important}
@media(max-width:480px){#diffs{grid-template-columns:repeat(2,minmax(0,1fr));max-width:330px}.dbtn{font-size:16px}.dbtn.on{transform:none}}
@media(max-height:520px){.sign h1{font-size:clamp(28px,7vmin,44px)}.ov p.sm{display:block;max-width:90vw}.ov{gap:10px}}
@media(max-height:520px) and (min-width:600px){#over{gap:8px;padding-top:12px}#over .bigmole{display:none}#over .bigscore{font-size:34px}#over .stars{font-size:36px}#over .banner{font-size:24px}}
#credits{font-size:clamp(12px,2.6vmin,16px);line-height:1.4;color:#fff;background:#213a20;padding:.2em .8em;border-radius:99px}

/* Keep the field clear; instructions occupy a separate practice or paused screen. */
.ico{display:inline-block;width:1.1em;height:1.1em;vertical-align:-.16em;flex-shrink:0}
.btn,.tbtn,.pill,.rb{display:inline-flex;align-items:center;justify-content:center;gap:.35em}
.btn .ico{width:.9em;height:.9em}.rb .ico{width:25px;height:25px}
.dbtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
.dbtn>.ico{width:25px;height:25px}.dbtn>span{line-height:1.15}
#start{gap:12px}
.menu-brand,.menu-actions{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:620px}
.menu-brand .sign{margin-bottom:3px}.menu-brand p{max-width:38ch;text-wrap:balance}
.menu-brand .titlemoles{margin:0 0 5px}.menu-actions>#go{min-width:60%}
.menu-actions>.row{width:100%;gap:10px}.menu-actions>.row>.btn{flex:1;padding:.4em .6em}
#start .menu-settings{gap:8px;width:min(100%,620px)}
#start .menu-settings>.tbtn{flex:1;max-width:300px}
#daily{display:flex;align-items:center;gap:.5em;max-width:100%;border-radius:16px;padding:.35em .8em}
#daily small{display:block;font-size:.72em;margin-top:2px;color:#d4e9c8}
#daily>.ico{width:23px;height:23px}
#credits{margin-top:0}
#hud{row-gap:5px;column-gap:7px}
#hud .pill{font-size:clamp(14px,2.8vmin,22px);padding:.25em .6em;min-height:34px}
#lives{gap:3px}.life{color:#9f1931;display:flex}.life.empty{color:#5c2632}.life.empty path{fill:none}
#combo{font-size:clamp(12px,2.5vmin,17px);height:auto;min-height:29px;line-height:1.15;color:#fff6cc;text-shadow:none;background:#213a20;border-radius:12px;width:auto;max-width:94vw;padding:5px 14px}
#meter{height:9px;width:180px;margin:0 auto 4px;border-width:1px}
#meterFill{background:#ffe19a;transition:transform .12s ease-out}
#meter.fever{border-color:#ffcc62}#meter.fever #meterFill{background:#ffb33d}
#waveText{width:100%;font-size:clamp(11px,2.3vmin,15px);line-height:1.3;color:#213715;background:#fff3d8;border:2px solid #756039;border-radius:10px;max-width:90vw;padding:3px 10px;min-height:24px}
#rt{background:#213a20;font-size:clamp(11px,2.5vmin,16px);line-height:1.3;min-height:24px;max-width:calc(100vw - 150px);padding:.35em .8em}
#coach{position:fixed;z-index:3;top:max(12px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(92vw,540px);border:3px solid #80552c;border-radius:16px;background:#fff3d8;color:#422b16;text-align:center;padding:10px 14px;box-shadow:0 5px 12px #293b1d40;pointer-events:none}
#coach b{font-size:clamp(17px,3vmin,24px)}#practiceProgress{margin-left:12px;color:#85501d;font-size:18px}
#coach p{font-size:clamp(12px,2.4vmin,16px);line-height:1.4;margin-top:6px;text-shadow:none}
#lesson{z-index:7;background:#182713dc;padding:18px;justify-content:safe center}
.lesson-card{display:flex;flex-direction:column;align-items:center;gap:14px;width:min(100%,560px);padding:22px;border:4px solid #80552c;border-radius:20px;color:#422b16;background:#fff3d8;box-shadow:0 8px 25px #101c1560}
.lesson-card h2{font-size:clamp(23px,4.5vmin,34px);color:#75451e;-webkit-text-stroke:0;text-shadow:none;line-height:1.15}
.lesson-card p{text-shadow:none;font-size:clamp(15px,2.8vmin,20px);line-height:1.45;max-width:40ch}
.lesson-card p.sm{font-size:13px;color:#594735;opacity:1}
#lessonArt{width:160px;height:140px;flex-shrink:0}
.lesson-card .btn{font-size:clamp(18px,3.5vmin,26px);margin-top:2px}
#paused{z-index:8}
#gearChoices{width:min(100%,620px);display:flex;flex-direction:column;gap:20px}
#gearChoices h3{font-size:20px;margin-bottom:10px;color:#fff;text-shadow:0 2px 2px #213a20}
.gear-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.gear{font:inherit;display:flex;flex-direction:column;align-items:center;padding:8px 5px 12px;border:3px solid #80552c;border-radius:16px;color:#422b16;background:#fff3d8;box-shadow:0 4px 9px #213a2030;cursor:pointer;min-width:0}
.gear.selected{border-color:#376429;box-shadow:inset 0 0 0 2px #376429,0 4px 9px #213a2030;background:#e0f2c4}
.gear:disabled{color:#66533d;background:#e4ddcc;opacity:1}
.gear:disabled canvas{filter:grayscale(.8);opacity:.65}
.gear canvas{width:100%;max-width:135px;height:auto;aspect-ratio:8/7;pointer-events:none}
.gear b{font-size:clamp(13px,2.5vmin,19px);overflow-wrap:anywhere}
.gear small{font-size:clamp(11px,2vmin,13px);line-height:1.35;margin-top:5px;overflow-wrap:anywhere;max-width:20ch}
#gearProgress{display:flex;align-items:center;gap:8px;background:#213a20;padding:6px 14px;border-radius:12px}
@media(max-height:720px){.menu-brand .titlemoles{display:none}.menu-brand,.menu-actions{gap:9px}.menu-brand .sign h1{font-size:min(7.8vmin,9vw,65px)}#start{gap:9px}.menu-actions .dbtn{padding:.3em .2em}}
@media(max-width:480px){#hud{padding-top:max(8px,env(safe-area-inset-top))}#rt{bottom:max(72px,calc(env(safe-area-inset-bottom) + 65px));max-width:90vw}.menu-brand p.sm{font-size:12px}.menu-actions .tbtn,#start .menu-settings .tbtn{font-size:12px;padding:.25em .6em}.menu-actions .dbtn>.ico{width:20px;height:20px}.lesson-card{padding:18px}#gearChoices{gap:18px}}
@media(min-width:640px) and (max-height:520px){
 #start{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.15fr);grid-template-rows:1fr auto auto;grid-template-areas:"brand actions" "settings actions" "credits actions";align-items:center;align-content:safe center;justify-items:center;gap:10px 26px;padding:16px 22px max(68px,calc(env(safe-area-inset-bottom) + 60px))}
 #start>:first-child,#start>:last-child{margin:0}.menu-brand{grid-area:brand;gap:10px}.menu-actions{grid-area:actions;gap:9px}#start .menu-settings{grid-area:settings;flex-wrap:nowrap}#credits{grid-area:credits}
 .menu-brand .sign{width:100%;padding:12px 8px;max-width:100%;margin-bottom:4px}.menu-brand .sign h1{font-size:clamp(25px,4.5vw,45px);-webkit-text-stroke:1px #8a2b00}.menu-brand p{font-size:15px}.menu-brand p.sm{display:block;font-size:12px;max-width:34ch}
 .menu-actions #diffs{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.menu-actions .dbtn{font-size:13px;border-width:3px;border-radius:12px;min-height:68px;transform:none}.menu-actions .dbtn>.ico{width:18px;height:18px}.menu-actions .dbtn small{font-size:9px}
 .menu-actions>.btn{font-size:23px;padding:.25em 1em}.menu-actions .btn.alt{font-size:16px}.menu-actions .tbtn,#start .menu-settings .tbtn{font-size:11px;padding:.25em .45em}.menu-actions #daily{font-size:12px}.menu-actions #daily small{font-size:10px}
 #lesson .lesson-card{display:grid;grid-template-columns:140px minmax(0,1fr);column-gap:20px;width:min(100%,700px);padding:18px;row-gap:10px}#lessonTitle{grid-column:1/-1}#lessonArt{grid-column:1;grid-row:2/5;width:140px;height:123px}.lesson-card p{font-size:15px}.lesson-card .btn{justify-self:center}.lesson-card p.sm{font-size:12px}
 #hud .pill{font-size:14px;min-height:30px}#combo{min-height:24px;font-size:12px}#waveText{font-size:11px;min-height:20px;padding:2px 10px}#coach{width:min(70vw,600px);padding:8px 12px}#coach p{font-size:12px;line-height:1.3}
 #wardrobe .sign{margin-bottom:4px}#gearChoices{flex-direction:row;gap:18px;max-width:700px}#gearChoices>section{flex:1;min-width:0}.gear canvas{max-width:80px}.gear b{font-size:12px}.gear small{font-size:10px}.gear{padding:4px 3px 8px}.gear-row{gap:7px}#wardrobe{gap:10px}
}
@media(hover:hover) and (pointer:fine){.gear:not(:disabled):hover{border-color:#376429}.btn:hover,.lv:hover,.dbtn:hover{transform:scale(1.025)}}
@media(hover:none){.btn:hover,.lv:hover,.dbtn:hover{transform:none}}

/* Arcade scoreboard: cream lettering on the game's forest-green palette. */
.scoreboard-link{color:#fff3c7;background:#213a20;border:2px solid #f2d274;font-size:16px;padding:8px 22px;min-height:44px}
.arcade-board{width:min(100%,640px);padding:20px 24px 16px;background:#192e22;color:#fff3cf;border:5px solid #b47a39;border-radius:16px;box-shadow:0 10px 28px #15271660}
.arcade-board h2{font-size:clamp(25px,5vw,42px);color:#ffe18a;text-shadow:none;-webkit-text-stroke:0;line-height:1.15;text-wrap:balance}
.arcade-board p{text-shadow:none;font-weight:600;line-height:1.5}
.board-intro{font-size:16px;margin-top:8px}
.board-scope{font-size:13px;color:#c4d8bf;margin:5px 0 12px}
#boardTable{width:100%;border-collapse:collapse;text-align:left;font-variant-numeric:tabular-nums}
#boardTable thead th{font-size:12px;color:#c4d8bf;padding:8px 8px 10px;border-bottom:2px solid #698064}
#boardTable th:last-child{text-align:right}
#boardRows td,#boardRows th{padding:6px 8px;border-bottom:1px solid #3e563f;font-size:19px;line-height:1.2}
#boardRows tr:last-child>*{border-bottom:0}
#boardRows tr:first-child{color:#ffe18a}
#boardRows .board-rank{font-size:15px;color:#c4d8bf;width:52px}
#boardRows .board-name{font-family:ui-monospace,"Courier New",monospace;font-size:23px;letter-spacing:.14em}
#boardRows .board-round{font-size:14px;font-weight:700}
#boardRows small{display:block;font:600 12px/1.3 "Trebuchet MS",sans-serif;letter-spacing:normal;margin-top:3px;color:#c4d8bf}
#boardRows .board-points{text-align:right;font-weight:900}
#boardRows .board-posted{background:#344d2d}
#boardRows .board-posted small{color:#ffe18a}
#boardEmpty{padding:25px 0}
#boardEmpty p{font-size:18px}
#boardEmpty p+p{font-size:14px;color:#c4d8bf;margin-top:8px}
#boardStatus{font-size:13px;color:#c4d8bf;margin-top:16px;min-height:20px}
#scoreboard button:disabled,#roundEntry button:disabled{opacity:.55;cursor:default;transform:none}
.round-entry{width:min(100%,540px);background:#192e22;color:#fff3cf;border-radius:14px;padding:16px 20px;box-shadow:0 5px 18px #17241640}
.round-entry h2{font-size:22px;color:#ffe18a;text-shadow:none;-webkit-text-stroke:0}
#over #roundStatus{font-size:14px;line-height:1.45;text-shadow:none;font-weight:600;margin-top:6px}
#roundForm{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:12px}
.arcade-name-field{display:flex;flex-direction:column;align-items:center;gap:5px}
.arcade-name-field label{font-size:13px}
.arcade-name-field small{font-size:12px;color:#c4d8bf;font-weight:600}
#arcadeName{width:150px;min-height:54px;border:2px solid #f2d274;border-radius:7px;background:#fff3cf;color:#213a20;font:900 30px/1.2 ui-monospace,"Courier New",monospace;letter-spacing:.22em;text-align:center;padding:6px 4px 6px 11px;text-transform:uppercase;user-select:text;-webkit-user-select:text;touch-action:manipulation;caret-color:#213a20}
#arcadeName::placeholder{color:#686e56;opacity:1}
#arcadeName::selection{background:#b7d8a4;color:#192e22}
#arcadeName:focus-visible,#boardTitle:focus-visible{outline:3px solid #fff;outline-offset:5px}
#roundForm #saveRound{background:#bd391b;font-size:20px;padding:.5em .8em;min-height:48px}
#roundCheck{margin-top:10px;font-size:14px}
#over:has(#roundEntry:not(.hide)) .bigmole{display:none}
@media(max-width:400px){.arcade-board{padding:20px 10px 16px}.board-intro{font-size:14px}.board-scope{font-size:12px}#boardRows td,#boardRows th{padding:9px 5px}#boardRows .board-rank{width:38px}#boardRows .board-name{font-size:20px}#boardRows .board-points{font-size:18px}.round-entry{padding:14px 12px}#roundForm{gap:12px}#arcadeName{width:130px}#roundForm #saveRound{font-size:16px}}
@media(min-width:640px) and (max-height:520px){.arcade-board{padding-top:20px}.round-entry{padding:12px 20px}#roundForm{margin-top:8px}}

#over:has(#roundEntry:not(.hide)) .stars{font-size:clamp(36px,8vmin,64px)}
#over:has(#roundEntry:not(.hide)) .bigscore{font-size:clamp(40px,8vmin,64px)}
#over:has(#roundEntry:not(.hide)) .banner{font-size:clamp(24px,4.8vmin,42px)}
#over.win #oMsg{color:#422b16;background:#fff3d8;padding:5px 12px;border-radius:8px;text-shadow:none;opacity:1}

#over{overflow-x:hidden}

body:has(#scoreboard:not(.hide)) #mute,body:has(#scoreboard:not(.hide)) #music{visibility:hidden}
