:root{--clay: #b65a3c;--clay-dark: #93442e;--sage: #737f68;--sage-dark: #58644f;--cream: #fff4e2;--ceramic: #e9ddc9;--taupe: #a18a77;--red: #a83d30;--ink: #594338;--font: "Fredoka", "Avenir Next Rounded", "Avenir Next", system-ui, sans-serif}html,body{margin:0;height:100%;overflow:hidden;background:#99a78f;overscroll-behavior:none}.game-shell{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.game-shell img,.game-shell svg{-webkit-user-drag:none;user-drag:none}#shell{position:fixed;left:50%;top:50%;width:375px;height:667px;margin:-333.5px 0 0 -187.5px;overflow:hidden;font-family:var(--font);color:var(--cream);transform-origin:50% 50%}#bg{position:absolute;inset:0;background:linear-gradient(160deg,#b4bda9,#a8b49c,#99a78f)}canvas#game{position:absolute;inset:0;width:375px;height:667px;touch-action:none}#surface{position:absolute;inset:0;touch-action:none;pointer-events:none}#surface.on{pointer-events:auto}#ui{position:absolute;inset:0;pointer-events:none}#ui>*{pointer-events:auto}[hidden]{display:none!important}button{font:inherit;color:inherit;cursor:pointer;-webkit-appearance:none;appearance:none}button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--sage-dark);outline-offset:2px}.btn{min-height:48px;min-width:48px;padding:0 18px;border-radius:16px;border:2px solid transparent;background:var(--clay);color:var(--cream);box-shadow:none;font-weight:600;font-size:17px;letter-spacing:.04em;text-transform:uppercase;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .08s,background .08s}.btn:active:not(:disabled){transform:translateY(1px);background:var(--clay-dark)}.btn.primary{background:var(--clay);color:var(--cream)}.btn.danger{background:var(--red)}.btn.round{padding:0;width:48px;height:48px;border-radius:50%;background:var(--sage)}.btn.round:active:not(:disabled){background:var(--sage-dark)}.btn svg{width:24px;height:24px;flex:none}.panel{background:var(--ceramic);color:var(--ink);border:2px solid transparent;border-radius:20px;box-shadow:0 3px 10px #3e27181f}.carved{font-family:var(--font);font-weight:700;color:var(--cream);text-transform:uppercase;letter-spacing:.04em;text-shadow:0 2px 6px rgba(62,39,24,.6)}.screen{position:absolute;inset:0;animation:fade .25s}#hud{position:absolute;inset:0;pointer-events:none!important}#hud>*{pointer-events:auto}#previewFrame{position:absolute;left:12px;top:12px;width:96px;height:96px;box-sizing:border-box;border-radius:16px;border:3px solid var(--ceramic);overflow:hidden;background:#665449;color:var(--ink);box-shadow:0 3px 10px #3e27181f;pointer-events:auto!important;padding:0;cursor:pointer;font-family:inherit}#previewFrame.expanded{z-index:2;width:192px;height:192px}#previewFrame.expanded canvas{width:186px;height:186px}#previewFrame canvas{width:90px;height:90px;display:block}#previewFrame.pulse{animation:framePulse .7s ease-in-out 3}#previewFrame b{position:absolute;left:0;right:0;bottom:0;background:var(--ceramic);text-align:center;font-size:9px;letter-spacing:.14em;text-transform:uppercase}.target-arrow{display:inline-block;width:18px;height:18px;vertical-align:-4px;margin-left:3px}#hud.intro-guidance #streakHud,#hud.intro-guidance #info,#hud.intro-guidance #swipeBtn,#hud.intro-guidance #dynamiteBtn,#hud.intro-guidance #hintBtn{display:none}@keyframes framePulse{50%{box-shadow:0 0 0 5px #737f68d9,0 6px 14px #00000073;transform:scale(1.06)}}#info{position:absolute;left:118px;top:12px;width:195px;min-height:64px;box-sizing:border-box;padding:8px 12px;pointer-events:none!important}#info .name{font-weight:700;font-size:14px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}#hud.free-play #info{left:12px;width:295px}#info .irow{display:flex;align-items:center;gap:6px;margin-top:2px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;opacity:.95}#info .irow .cube-sprite{width:22px;height:22px;flex:none}#info .irow .num{font-size:24px;font-weight:900;color:var(--clay);letter-spacing:0;min-width:34px}#damage{margin-left:auto;display:inline-flex;align-items:center;gap:3px;padding:1px 7px 1px 4px;color:var(--red);font-weight:900;font-size:13px;letter-spacing:0}#damage .cube-sprite{width:16px;height:16px}#pauseBtn{position:absolute;left:319px;top:12px}#swipeBtn{position:absolute;left:319px;top:62px;background:var(--sage)}#swipeBtn.active{background:var(--clay);color:var(--cream);border-color:var(--ceramic)}#controls{position:absolute;left:12px;right:12px;bottom:14px;display:flex;gap:12px;justify-content:flex-end;pointer-events:none!important}#controls>button{pointer-events:auto}.ctl{flex:1;height:58px;padding:0 12px;justify-content:flex-start;position:relative;overflow:hidden}.ctl:disabled{cursor:default;background:#d4c5b4;color:#695344;box-shadow:none}#hintBtn.pulse{animation:btnPulse .8s ease-in-out infinite}@keyframes btnPulse{50%{box-shadow:inset 0 0 0 4px var(--cream)}}#toast{position:absolute;left:20px;right:20px;bottom:92px;padding:10px 16px;border-radius:22px;text-align:center;font-weight:700;font-size:15px;line-height:1.25;pointer-events:none!important;opacity:0;transform:translateY(10px);transition:opacity .25s,transform .25s}#toast.on{opacity:1;transform:none}#toast.top{bottom:auto;top:122px}#hand{position:absolute;width:64px;height:80px;z-index:6;transform:translate(-19px,-4px);pointer-events:none!important;filter:drop-shadow(0 3px 3px rgba(45,25,12,.35))}#hand i{display:block;width:100%;height:100%;animation:handTap 1s ease-in-out infinite}#hand svg{width:100%;height:100%}#hand.rotate i{animation:handSwipe 1.6s ease-in-out infinite}#hand.hint{transform:translate(-45px,-76px)}#hand.hint svg{transform:rotate(180deg)}@keyframes handTap{0%,to{transform:translateY(9px)}50%{transform:translateY(0)}}@keyframes handSwipe{0%,to{transform:translate(-45px)}50%{transform:translate(45px)}}#ring{position:absolute;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;border:4px dotted var(--cream);box-shadow:0 0 0 2px var(--sage-dark),0 0 12px var(--sage);pointer-events:none!important;animation:ringSpin 2.4s linear infinite}@keyframes ringSpin{to{transform:rotate(360deg)}}.tapfx{position:absolute;width:36px;height:36px;margin:-18px;border-radius:50%;border:2px solid rgba(255,255,255,.85);pointer-events:none!important;animation:tapfx .35s ease-out forwards}@keyframes tapfx{0%{transform:scale(.3);opacity:1}to{transform:scale(1.1);opacity:0}}#shell.hurt #bg:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 35%,rgba(230,25,35,.25) 70%,rgba(230,25,35,.65) 100%);box-shadow:inset 0 0 100px 30px #ff232df2;animation:hurt .7s ease-out forwards}@keyframes hurt{0%,18%{opacity:1}to{opacity:0}}#start{display:flex;flex-direction:column;align-items:center;pointer-events:none!important}#start>*{pointer-events:auto}#start h1{margin:14px 0 0;flex:none;line-height:0}#logo{width:200px;height:auto;filter:drop-shadow(0 6px 10px rgba(0,0,0,.45))}#settingsBtn{position:absolute;right:12px;top:12px}#list{flex:1;min-height:0;box-sizing:border-box;width:351px;margin:8px 0 12px;padding:8px;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;background:transparent;border:0;scrollbar-color:var(--taupe) transparent;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:102px;align-content:start;gap:8px}.level-tile{display:flex;flex-direction:column;align-items:center;justify-content:space-between;min-width:0;padding:4px 6px;box-sizing:border-box;border-radius:18px}.level-tile .n{color:var(--ink);font-weight:700;font-size:22px;line-height:24px}.level-tile.done .n{color:var(--ink)}.level-tile.next{border-color:var(--clay);background:var(--ceramic)}.level-tile.locked{background:var(--ceramic);border-color:transparent;justify-content:center;gap:6px}.level-tile.locked .n{opacity:1}.level-tile.locked .btn:disabled{cursor:default;color:var(--ink);background:transparent;border-color:transparent;box-shadow:none}.level-tile .btn{min-height:44px;min-width:0;width:100%;padding:0 4px;font-size:14px}.level-tile .stars svg{width:14px;height:14px}.free-play-tile{grid-column:1 / -1;padding:8px;display:flex;align-items:center}.free-play-tile .btn{width:100%;min-height:54px}.stars{display:inline-flex;gap:2px;vertical-align:middle}.stars svg{width:18px;height:18px}.stars .on{fill:var(--clay);stroke:var(--clay)}.stars .off{fill:none;stroke:var(--taupe)}.stars.big svg{width:56px;height:56px}.stars.big .on{animation:starPop .5s cubic-bezier(.2,1.6,.4,1) backwards}.stars.big svg:nth-child(2){animation-delay:.25s}.stars.big svg:nth-child(3){animation-delay:.5s}@keyframes starPop{0%{transform:scale(0) rotate(-90deg)}}#results,#gallery{pointer-events:none!important}#results>*,#gallery>*{pointer-events:auto}#results .card{position:absolute;left:16px;right:16px;bottom:16px;padding:14px 16px 16px;text-align:center}#results h2,#gallery h2{margin:2px 0 0;font-size:32px;line-height:1.05}#results .name,#gallery .name{font-weight:600;text-shadow:0 2px 4px rgba(0,0,0,.6);font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--cream)}#results .dmg{margin:4px 0 10px;font-size:14px;font-weight:700}#results .btns{display:flex;gap:10px;margin-top:10px}#results .btns .btn{flex:1;font-size:14px}#results .next{width:100%;height:54px}#results .head{position:absolute;top:26px;left:0;right:0;text-align:center}#gallery .head{position:absolute;top:28px;left:0;right:0;text-align:center}#gallery .cap{position:absolute;width:125px;top:336px;text-align:center;font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:var(--ceramic);color:var(--ink);border-radius:12px;padding:6px;box-sizing:border-box}#gallery .cap .stars svg{width:22px;height:22px}#gallery .pager{position:absolute;left:0;right:0;top:450px;display:flex;justify-content:center;align-items:center;gap:18px;font-weight:800;letter-spacing:.1em;text-shadow:0 2px 6px rgba(0,0,0,.8)}#gallery .pager .btn:disabled{opacity:.35}#gallery .pager span{background:var(--ceramic);color:var(--ink);text-shadow:none;padding:8px 12px;border-radius:12px}#gallery .cap .no{color:var(--clay)}#gallery .btn.primary{position:absolute;left:40px;right:40px;bottom:30px;height:56px;font-size:18px}.overlay{position:absolute;inset:0;background:#1e0f058c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;animation:fade .2s}.overlay>.panel{position:relative;animation:popIn .22s cubic-bezier(.3,1.4,.6,1)}@keyframes popIn{0%{transform:scale(.9)}}@keyframes fade{0%{opacity:0}}.overlay .panel{width:335px;max-height:627px;overflow-y:auto;box-sizing:border-box;padding:22px;display:flex;flex-direction:column;gap:18px;box-shadow:0 12px 36px #1e0f054d}.popup-close{position:absolute;right:8px;top:8px;width:44px;height:44px;padding:10px;border:none;border-radius:50%;background:transparent;display:grid;place-items:center}.popup-close img{width:24px;height:24px}.popup-close:active{background:#d8c7b3}.overlay h3{padding:0 30px;margin:0 0 4px;font-size:28px;line-height:1.1;text-align:center;color:var(--ink);text-shadow:none}.overlay p{margin:0;font-size:14.5px;line-height:1.35;text-align:center}.overlay ul{margin:0;padding:0 0 0 20px;font-size:14px;line-height:1.4}.overlay .btn{width:100%;min-height:48px;flex-shrink:0;font-size:15px;letter-spacing:.02em;background:#f7f0e4;border-color:#cebeaa;color:var(--ink)}.overlay .btn.primary{background:var(--clay);border-color:var(--clay);color:var(--cream)}.overlay .btn.danger{background:#a43e32;border-color:#a43e32;color:#fff5e5}.overlay .btn:active:not(:disabled){filter:brightness(.92)}.dialog-options{border:1px solid #cebeaa;border-radius:16px;overflow:hidden;background:#f7f0e4}.dialog-options .btn{border:0;border-radius:0;min-height:54px;font-size:16px}.dialog-options .btn+.btn{border-top:1px solid #ded0bd}.dialog-actions{display:grid;gap:10px}.restart-section{border-top:1px solid #cebeaa;padding-top:16px;display:grid;gap:10px}.overlay .restart-section p{color:#796551;font-size:13px}.overlay .btn.restart-level{border-color:#b7715b;color:#944933;background:transparent}.reset-section{display:grid;gap:10px;padding:16px 12px 12px;border:1px solid #d4a59a;border-radius:16px;background:#f1dbd2}.reset-section h4{margin:0;color:#923e32;font-size:17px;text-align:left}.overlay .reset-section p{text-align:left;font-size:13px;color:#795244}.overlay .reset-section .btn{padding:0 10px;font-size:14px}.switch{justify-content:space-between!important;text-transform:none!important}.switch .knob{width:52px;height:30px;border-radius:15px;background:var(--taupe);position:relative;transition:background .15s}.switch .knob:after{content:"";position:absolute;left:3px;top:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:left .15s}.switch .knob{box-shadow:none}.switch .knob:after{box-shadow:0 2px 3px #00000059}.switch[aria-checked=true] .knob{background:var(--sage-dark)}.switch[aria-checked=true] .knob:after{left:25px}.switch .knob b{position:absolute;top:7px;font-size:11px;left:8px;display:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}#hintBtn,#dynamiteBtn{position:relative;background:var(--clay);overflow:visible}#hintBtn svg{width:28px;height:28px}#hintBtn .count,#dynamiteBtn .count{position:absolute;top:-5px;right:-5px;width:22px;height:22px;border:2px solid var(--ceramic);border-radius:50%;display:grid;place-items:center;background:var(--cream);color:var(--clay-dark);font-size:13px;font-weight:700;letter-spacing:0}#hintBtn:disabled,#dynamiteBtn:disabled{background:#b5a591}#hintBtn.no-uses .count,#dynamiteBtn.no-uses .count{background:var(--ceramic);color:var(--ink)}#buildBtn{position:absolute;left:319px;top:112px;flex-direction:column;gap:0}#buildBtn>span{font-size:23px;line-height:23px}#buildBtn small{font-size:10px}#buildBtn[aria-pressed=true]{background:var(--clay)}#swipeBtn:disabled{opacity:.45}.rhythm-tile{grid-column:1 / -1;padding:10px;min-height:102px;display:grid;align-items:center}#rhythmModeBtn{width:100%;flex-direction:column;gap:4px;min-height:68px}#rhythmModeBtn small{font-size:12px}#rhythmLane{position:absolute;left:12px;right:12px;bottom:14px;height:72px;box-sizing:border-box;padding:8px;pointer-events:none!important}.lane-caption{display:flex;justify-content:space-between;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.rhythm-rail{position:relative;height:38px;overflow:hidden}.rhythm-rail:before{content:"";position:absolute;top:18px;left:14px;right:14px;height:3px;background:#c8b296;border-radius:2px}.rhythm-goal{position:absolute;left:292px;top:5px;width:28px;height:28px;transform:translate(-50%);border:3px solid var(--clay);border-radius:50%}.rhythm-pip{position:absolute;top:11px;width:16px;height:16px;transform:translate(-50%);border-radius:50%;background:var(--sage);border:2px solid var(--cream);box-shadow:0 2px 3px #513e3326}.rhythm-pip.aligned{background:var(--clay);box-shadow:0 0 0 3px #bc5c3840}#rhythmHud{position:absolute;left:12px;right:12px;bottom:94px;padding:8px 14px;pointer-events:none!important}.rhythm-scores{display:flex;justify-content:space-between}.rhythm-scores>div{display:flex;flex-direction:column}.rhythm-scores>div:last-child{text-align:right}.rhythm-scores small{font-size:10px;text-transform:uppercase;letter-spacing:.08em}.rhythm-scores b{font-size:26px;color:var(--clay);line-height:1.1}.rhythm-status{display:flex;justify-content:space-between;font-size:13px;margin-top:4px}#rhythmFeedback{font-size:12px;text-align:center;min-height:16px;margin-top:5px}#rhythmFeedback.good{color:#3c7540}#rhythmFeedback.bad{color:var(--red)}.rhythm-tap-toast{position:absolute;z-index:4;padding:5px 9px;border-radius:14px;background:#fffdf5f2;color:#3c7540;box-shadow:0 2px 8px #412e1d26;font-size:14px;font-weight:600;white-space:nowrap;pointer-events:none!important;animation:rhythmTapToast .9s ease-out forwards}@keyframes rhythmTapToast{0%{opacity:0;transform:translate(-50%,-100%)}15%,60%{opacity:1}to{opacity:0;transform:translate(-50%,-100%) translateY(-24px)}}@media(prefers-reduced-motion:reduce){.rhythm-tap-toast{animation:none;transform:translate(-50%,-100%)}}#hud.rhythm-mode #toast{bottom:208px}.rhythm-results .final-score{font-size:44px;color:var(--clay)}.rhythm-results .btn{width:100%;margin-top:8px}#hud.rhythm-mode #info .name{font-size:12px;white-space:normal}.brush-sizes{display:flex;flex:1;gap:4px;padding:4px;border-radius:16px;background:var(--ceramic);pointer-events:auto}.brush-size{flex:1;min-width:44px;min-height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:2px solid transparent;border-radius:12px;background:transparent;color:var(--ink);font-size:12px;font-weight:600}.brush-size[aria-pressed=true]{background:var(--clay);color:var(--cream)}.brush-grid{display:grid;grid-template-columns:repeat(var(--brush-size),5px);gap:2px;min-height:19px;align-content:center}.brush-grid i{width:5px;height:5px;border-radius:1px;background:currentColor}#hud.free-play #freeListBtn{flex:0 0 112px;justify-content:center;padding:0 8px;font-size:13px}#streakHud{position:absolute;top:84px;left:118px;height:46px;min-width:130px;padding:3px 10px 3px 5px;display:flex;align-items:center;gap:5px;font-size:14px;pointer-events:none}#streakHud .streak-countdown{position:relative;width:40px;height:40px;flex:none;display:grid;place-items:center}#streakHud svg{position:absolute;inset:0;width:40px;height:40px;transform:rotate(-90deg)}#streakHud circle{fill:none;stroke-width:3}#streakHud .streak-track{stroke:#d6c3ab}#streakRing{stroke:#b96840;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100}#streakHud b{font-size:16px;line-height:1;font-variant-numeric:tabular-nums}#streakHud.active b{color:#a4512e}.level-tile-heading{display:flex;width:100%;align-items:center;justify-content:center;min-height:24px}.level-tile.done .level-tile-heading{justify-content:space-between;padding:0 4px}.level-best-streak{display:flex;flex-direction:column;align-items:center;font-size:9px;line-height:10px;color:#74503a}.level-best-streak b{font-size:14px;line-height:14px;color:#a4512e}.streak-result{display:flex;justify-content:center;gap:22px;font-size:13px;margin-bottom:10px;color:#74503a}.streak-result b{color:#a4512e;font-size:17px;margin-left:4px}#dynamiteBtn img{width:34px;height:34px}#dynamiteBtn.armed{outline:3px solid var(--cream);outline-offset:4px;background:var(--clay-dark)}.boost-earned{margin:-2px 0 10px;color:var(--clay-dark);font-size:13px;font-weight:600}.legal-links{display:flex;justify-content:center;align-items:center;gap:2px;margin-top:-6px;color:#796551;font-size:13px}.legal-links button{min-height:44px;padding:0 8px;border:0;background:none;color:var(--clay-dark);font:500 13px var(--font);text-decoration:underline}
