:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#fff0cf;--ink:#2f2934;--cream:#fff0cf;--sun:#f4bd43;--coral:#e96c58;--primary-ui-scale:2;--level-menu-scale:1.5;--hud-gap:calc(8px * var(--primary-ui-scale));--hud-group-gap:calc(10px * var(--primary-ui-scale));--hud-button-size:max(44px, min(calc(64px * var(--primary-ui-scale)), 11.8vw));background:#183f38;font-family:Trebuchet MS,Arial Rounded MT Bold,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{background:#183f38;width:100%;min-width:300px;min-height:100%;margin:0;overflow:hidden}button,canvas{-webkit-tap-highlight-color:transparent}button{font:inherit;transform-origin:50% 58%;transition:transform .11s cubic-bezier(.2,.8,.25,1.25),background-color .12s,box-shadow .12s}.game-shell{background:radial-gradient(circle at 12% 14%,#fff0cf1a,#0000 30rem),radial-gradient(circle at 86% 82%,#e96c581a,#0000 34rem),linear-gradient(150deg,#326f5c,#183f38 72%);width:100vw;height:100dvh;position:relative;overflow:hidden}#game{z-index:1;touch-action:none;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}#game:focus-visible{box-shadow:inset 0 0 0 5px var(--cream)}.petal-layer{z-index:2;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.level-number,.corner-button{border:calc(4px * var(--primary-ui-scale)) solid var(--ink);background:var(--cream);color:var(--ink);box-shadow:calc(5px * var(--primary-ui-scale)) calc(6px * var(--primary-ui-scale)) 0 #19191f47}.level-menu,.level-grid button{border:calc(4px * var(--level-menu-scale)) solid var(--ink);background:var(--cream);color:var(--ink);box-shadow:calc(5px * var(--level-menu-scale)) calc(6px * var(--level-menu-scale)) 0 #19191f47}.hud{top:max(calc(14px * var(--primary-ui-scale)), env(safe-area-inset-top));left:max(calc(14px * var(--primary-ui-scale)), env(safe-area-inset-left));right:max(calc(14px * var(--primary-ui-scale)), env(safe-area-inset-right));z-index:4;justify-content:space-between;align-items:flex-start;gap:var(--hud-gap);pointer-events:none;display:flex;position:fixed}.hud>*{pointer-events:auto}.hud-group{align-items:flex-start;gap:var(--hud-gap);flex:none;display:flex}.level-context{gap:var(--hud-group-gap)}.level-number{width:var(--hud-button-size);height:var(--hud-button-size);flex:0 0 var(--hud-button-size);font-size:calc(2rem * var(--primary-ui-scale));transform-origin:50%;border-radius:48% 42% 46% 44%;place-items:center;font-weight:900;display:grid;transform:rotate(-2deg)}.corner-button{width:var(--hud-button-size);height:var(--hud-button-size);flex:0 0 var(--hud-button-size);border-radius:calc(17px * var(--primary-ui-scale)) calc(8px * var(--primary-ui-scale)) calc(17px * var(--primary-ui-scale)) calc(8px * var(--primary-ui-scale));cursor:pointer;place-items:center;display:grid;position:relative}.corner-button svg{width:calc(44px * var(--primary-ui-scale));height:calc(44px * var(--primary-ui-scale));fill:var(--ink);transform-origin:50%;overflow:visible}.corner-button .icon-stroke{fill:none;stroke:var(--ink);stroke-width:7px;stroke-linecap:round;stroke-linejoin:round}.corner-button .icon-fill{fill:var(--ink)}.corner-button:focus-visible,.level-grid button:focus-visible{background:var(--sun);outline:none;transform:translateY(-3px)rotate(-1deg)}.corner-button:focus-visible{transform:translateY(calc(-2px * var(--primary-ui-scale))) rotate(-1deg)}.corner-button:focus-visible,.level-grid button:focus-visible{animation:.22s cubic-bezier(.2,.8,.25,1.2) focus-bloom}@media (hover:hover) and (pointer:fine){.corner-button:hover,.level-grid button:hover{background:var(--sun);outline:none;transform:translateY(-3px)rotate(-1deg)}.corner-button:hover{transform:translateY(calc(-2px * var(--primary-ui-scale))) rotate(-1deg)}}.corner-button:active:not(:disabled){box-shadow:calc(2px * var(--primary-ui-scale)) calc(3px * var(--primary-ui-scale)) 0 #19191f3d;transform:translateY(calc(3px * var(--primary-ui-scale))) scale(.91) rotate(1deg);transition-duration:55ms}.level-grid button:active:not(:disabled){box-shadow:calc(2px * var(--level-menu-scale)) calc(3px * var(--level-menu-scale)) 0 #19191f3d;transform:translateY(calc(3px * var(--level-menu-scale))) scale(.91) rotate(1deg);transition-duration:55ms}.corner-button:disabled{cursor:default;transform:none}.music-note{fill:none;stroke:var(--ink);stroke-width:5.5px;stroke-linecap:round;stroke-linejoin:round}.music-note-head{fill:var(--ink)}.music-mute-x{fill:none;opacity:0;stroke:var(--ink);stroke-width:7px;stroke-linecap:round;transform-box:fill-box;transform-origin:50%;transition:opacity .11s,transform .15s cubic-bezier(.18,.9,.25,1.25);transform:scale(.6)rotate(-16deg)}.music-button[aria-pressed=false] .music-mute-x{opacity:1;transform:scale(1)rotate(0)}.hint-question{color:var(--ink);font-family:Arial Rounded MT Bold,Trebuchet MS,sans-serif;font-size:calc(2.7rem * var(--primary-ui-scale));-webkit-text-stroke:calc(.45px * var(--primary-ui-scale)) var(--ink);transform-origin:50%;font-weight:900;line-height:1}.hint-button[data-state=loading]{background:var(--sun);cursor:progress}.hint-button[data-state=loading] .hint-question{animation:.62s ease-in-out infinite alternate hint-thinking}.hint-button[data-state=ready]{background:var(--sun)}.hint-button[data-state=unavailable]{background:var(--coral)}.hint-action{width:var(--hud-button-size);height:var(--hud-button-size);flex:0 0 var(--hud-button-size);position:relative}.hint-action>.hint-button{width:100%;height:100%}.hint-status{top:calc(100% + calc(6px * var(--primary-ui-scale)));z-index:4;min-width:var(--hud-button-size);max-width:calc(138px * var(--primary-ui-scale));justify-content:center;align-items:center;gap:calc(6px * var(--primary-ui-scale));padding:calc(7px * var(--primary-ui-scale)) calc(9px * var(--primary-ui-scale));border:calc(3px * var(--primary-ui-scale)) solid var(--ink);border-radius:calc(13px * var(--primary-ui-scale)) calc(5px * var(--primary-ui-scale));background:var(--cream);box-shadow:calc(4px * var(--primary-ui-scale)) calc(5px * var(--primary-ui-scale)) 0 #19191f3d;color:var(--ink);font-size:calc(.68rem * var(--primary-ui-scale));text-align:center;pointer-events:none;font-weight:900;display:flex;position:absolute;left:50%;transform:translate(-50%)}.hint-status[hidden]{display:none}.hint-status strong{color:#527eae;font-size:calc(1.35rem * var(--primary-ui-scale));line-height:.8}.corner-button.is-hint-target{background:var(--sun);animation:.52s cubic-bezier(.18,.9,.25,1.25) infinite alternate hint-target}.level-actions,.audio-actions{align-items:flex-start;gap:var(--hud-gap);display:flex}.level-action-button{position:relative}.level-action-button svg{width:calc(42px * var(--primary-ui-scale));height:calc(42px * var(--primary-ui-scale));display:block}.level-action-button .icon-stroke{stroke-width:6px}.shortcut-badge{right:calc(-5px * var(--primary-ui-scale));bottom:calc(-6px * var(--primary-ui-scale));min-width:calc(20px * var(--primary-ui-scale));height:calc(20px * var(--primary-ui-scale));padding:0 calc(3px * var(--primary-ui-scale));border:calc(2px * var(--primary-ui-scale)) solid var(--ink);background:var(--sun);font-size:calc(.7rem * var(--primary-ui-scale));border-radius:35% 48% 38% 46%;place-items:center;font-weight:900;line-height:1;display:grid;position:absolute;transform:rotate(4deg)}.undo-button.is-teaching .shortcut-badge{animation:.42s cubic-bezier(.18,.9,.25,1.25) shortcut-nudge}.level-menu{z-index:5;width:min(92vw, calc(480px * var(--level-menu-scale)));max-height:calc(100dvh - calc(28px * var(--level-menu-scale)));gap:calc(14px * var(--level-menu-scale));padding:calc(18px * var(--level-menu-scale));border-radius:calc(26px * var(--level-menu-scale)) calc(9px * var(--level-menu-scale)) calc(26px * var(--level-menu-scale)) calc(9px * var(--level-menu-scale));transform-origin:50% 56%;box-shadow:calc(5px * var(--level-menu-scale)) calc(6px * var(--level-menu-scale)) 0 #19191f47, 0 0 0 100vmax #12302a6b;display:grid;position:fixed;inset:50% auto auto 50%;overflow-y:auto;transform:translate(-50%,-50%)rotate(-1deg)}.level-menu[hidden]{display:none}.level-grid{margin:calc(-12px * var(--level-menu-scale));padding:calc(12px * var(--level-menu-scale));grid-template:1fr/1fr;display:grid;overflow:hidden}.level-page{width:min(100%, calc(390px * var(--level-menu-scale)));gap:calc(8px * var(--level-menu-scale));transform-origin:50% 52%;grid-area:1/1;margin:0 auto;display:grid}.level-page[hidden]{display:none}.chapter-group{min-width:0}.chapter-levels{grid-template-columns:repeat(6, minmax(calc(42px * var(--level-menu-scale)), 1fr));gap:calc(6px * var(--level-menu-scale));display:grid}.level-grid button{aspect-ratio:1;width:100%;min-width:0;padding:calc(4px * var(--level-menu-scale));border-width:calc(3px * var(--level-menu-scale));border-radius:calc(14px * var(--level-menu-scale)) calc(5px * var(--level-menu-scale)) calc(14px * var(--level-menu-scale)) calc(5px * var(--level-menu-scale));font-size:calc(1.08rem * var(--level-menu-scale));cursor:pointer;font-weight:900;position:relative;overflow:visible}.level-grid button:nth-child(2n):focus-visible{transform:translateY(-3px)rotate(1deg)}.level-grid button:nth-child(odd):focus-visible{transform:translateY(-3px)rotate(-1deg)}@media (hover:hover) and (pointer:fine){.level-grid button:nth-child(2n):hover{transform:translateY(-3px)rotate(1deg)}.level-grid button:nth-child(odd):hover{transform:translateY(-3px)rotate(-1deg)}}.level-grid button[data-status=completed]{background:#a8cc8f}.level-grid button[data-status=locked]{opacity:.38;filter:saturate(.45);cursor:default;box-shadow:calc(2px * var(--level-menu-scale)) calc(3px * var(--level-menu-scale)) 0 #19191f2e}.level-grid button[aria-current=true]{background:var(--sun);opacity:1;filter:none;box-shadow:calc(5px * var(--level-menu-scale)) calc(6px * var(--level-menu-scale)) 0 #19191f47, 0 0 0 calc(3px * var(--level-menu-scale)) var(--cream)}.level-grid button[aria-current=true]:after{inset:calc(-7px * var(--level-menu-scale));border:calc(3px * var(--level-menu-scale)) solid var(--sun);border-radius:calc(18px * var(--level-menu-scale)) calc(8px * var(--level-menu-scale)) calc(18px * var(--level-menu-scale)) calc(8px * var(--level-menu-scale));content:"";pointer-events:none;animation:.26s cubic-bezier(.18,.9,.25,1.25) both selected-bloom;position:absolute}.level-button-number{z-index:1;position:relative}.level-state-mark{top:calc(3px * var(--level-menu-scale));right:calc(4px * var(--level-menu-scale));width:calc(14px * var(--level-menu-scale));height:calc(14px * var(--level-menu-scale));position:absolute}.level-grid button[data-status=completed] .level-state-mark{background:linear-gradient(90deg, transparent 44%, var(--ink) 45% 58%, transparent 59%) 50% 100% / 100% 68% no-repeat}.level-grid button[data-status=completed] .level-state-mark:before,.level-grid button[data-status=completed] .level-state-mark:after{top:calc(1px * var(--level-menu-scale));width:calc(8px * var(--level-menu-scale));height:calc(5px * var(--level-menu-scale));background:var(--ink);content:"";border-radius:100% 12%;position:absolute}.level-grid button[data-status=completed] .level-state-mark:before{left:0;transform:rotate(28deg)}.level-grid button[data-status=completed] .level-state-mark:after{right:0;transform:scaleX(-1)rotate(28deg)}.level-grid button[data-status=locked] .level-state-mark:before{inset:calc(1px * var(--level-menu-scale)) calc(2px * var(--level-menu-scale));border:calc(2px * var(--level-menu-scale)) solid var(--ink);content:"";border-radius:50%;position:absolute}.level-grid button[data-status=locked] .level-state-mark:after{top:calc(3px * var(--level-menu-scale));left:calc(5px * var(--level-menu-scale));width:calc(2px * var(--level-menu-scale));height:calc(6px * var(--level-menu-scale));background:var(--ink);content:"";position:absolute;transform:rotate(-18deg)}.level-grid button.is-unlocking{animation:.48s cubic-bezier(.18,.9,.25,1.25) unlock-button}.level-grid button.is-unlocking .level-state-mark:before{inset:calc(1.333px * var(--level-menu-scale));border:calc(1.333px * var(--level-menu-scale)) solid var(--ink);background:var(--sun);content:"";border-radius:50%;animation:.48s ease-out both unlock-seed;position:absolute}.level-grid button.is-unlocking .level-state-mark:after{left:calc(4px * var(--level-menu-scale));bottom:calc(.667px * var(--level-menu-scale));width:calc(2px * var(--level-menu-scale));height:calc(8px * var(--level-menu-scale));border-radius:calc(2px * var(--level-menu-scale));background:var(--ink);content:"";transform-origin:50% 100%;animation:.48s cubic-bezier(.18,.9,.25,1.25) both unlock-sprout;position:absolute}.level-pagination{justify-content:center;align-items:center;gap:calc(13px * var(--level-menu-scale));grid-template-columns:auto auto auto;display:grid}.level-page-arrow{width:calc(48px * var(--level-menu-scale));height:calc(42px * var(--level-menu-scale));padding:calc(4px * var(--level-menu-scale));border:calc(3px * var(--level-menu-scale)) solid var(--ink);background:var(--cream);box-shadow:calc(3px * var(--level-menu-scale)) calc(4px * var(--level-menu-scale)) 0 #19191f3d;cursor:pointer;border-radius:58% 35%;place-items:center;display:grid}.level-page-arrow svg{width:100%;height:100%;fill:var(--ink);overflow:visible}.level-page-arrow:focus-visible{background:var(--sun);transform:translateY(calc(-2px * var(--level-menu-scale))) rotate(-1deg);outline:none}@media (hover:hover) and (pointer:fine){.level-page-arrow:hover{background:var(--sun);transform:translateY(calc(-2px * var(--level-menu-scale))) rotate(-1deg);outline:none}}.level-page-arrow:active:not(:disabled){transform:translateY(calc(2px * var(--level-menu-scale))) scale(.9)}.level-page-arrow:disabled{opacity:.28;cursor:default;box-shadow:none}.level-page-seeds{align-items:center;gap:calc(8px * var(--level-menu-scale));display:flex}.level-page-seed{width:calc(17px * var(--level-menu-scale));height:calc(17px * var(--level-menu-scale));border:calc(2px * var(--level-menu-scale)) solid var(--ink);box-shadow:calc(2px * var(--level-menu-scale)) calc(2px * var(--level-menu-scale)) 0 #19191f33;cursor:pointer;background:#78a868;border-radius:60% 42% 58% 40%;padding:0;transform:rotate(-18deg)}.level-page-seed:nth-child(2){transform:rotate(18deg)}.level-page-seed[aria-current=true]{background:var(--sun);box-shadow:0 0 0 calc(3px * var(--level-menu-scale)) var(--cream);cursor:default;transform:scale(1.18)rotate(-8deg)}.level-page-seed:nth-child(2)[aria-current=true]{transform:scale(1.18)rotate(8deg)}.level-page-seed:focus-visible{outline:calc(2px * var(--level-menu-scale)) solid var(--cream);outline-offset:calc(3px * var(--level-menu-scale))}.controls-reference{justify-content:center;align-items:center;gap:calc(8px * var(--level-menu-scale));padding-top:calc(2px * var(--level-menu-scale));flex-wrap:wrap;display:flex}.controls-reference>span{justify-items:center;gap:calc(4px * var(--level-menu-scale));display:grid}.controls-reference kbd,.completion-key-hint kbd{padding:calc(4px * var(--level-menu-scale)) calc(7px * var(--level-menu-scale));border:calc(2px * var(--level-menu-scale)) solid var(--ink);border-radius:calc(7px * var(--level-menu-scale)) calc(3px * var(--level-menu-scale));background:var(--cream);color:var(--ink);box-shadow:0 calc(3px * var(--level-menu-scale)) 0 #2f293459;font:900 calc(.68rem * var(--level-menu-scale))/1 "Trebuchet MS", sans-serif}.controls-reference small{color:#5e594f;font-size:calc(.48rem * var(--level-menu-scale));letter-spacing:.04em;font-weight:900}.completion-key-hint{z-index:4;color:var(--cream);align-items:center;gap:8px;font-weight:900;animation:.24s cubic-bezier(.18,.9,.25,1.2) both completion-hint-in;display:flex;position:fixed;top:calc(50% + clamp(105px,19vh,175px));left:50%;transform:translate(-50%)}.completion-key-hint[hidden]{display:none}.completion-key-hint kbd{--level-menu-scale:1;font-size:.76rem}.sound-button{padding:calc(6px * var(--primary-ui-scale));place-items:center;display:grid}.sound-button svg{width:calc(38px * var(--primary-ui-scale));height:calc(38px * var(--primary-ui-scale));overflow:visible}.sound-body{fill:var(--ink)}.sound-wave,.sound-mute-x{fill:none;stroke:var(--ink);stroke-width:6.5px;stroke-linecap:round;transform-box:fill-box;transform-origin:50%;transition:opacity .11s,transform .15s cubic-bezier(.18,.9,.25,1.25),stroke-dashoffset .16s}.sound-wave{stroke-dasharray:40;stroke-dashoffset:0}.sound-wave-two{transition-delay:35ms}.sound-mute-x{opacity:0;stroke-width:8px;transform:scale(.55)rotate(-18deg)}.sound-button[aria-pressed=false] .sound-wave{opacity:0;stroke-dashoffset:40px;transition-delay:0s;transform:scale(.55)}.sound-button[aria-pressed=false] .sound-mute-x{opacity:1;transition-delay:45ms;transform:scale(1)rotate(0)}[data-high-contrast=true]{filter:contrast(1.18)saturate(.9)}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes focus-bloom{0%{box-shadow:2px 3px #19191f3d,0 0 #fff0cf00}65%{box-shadow:5px 6px #19191f47,0 0 0 7px #fff0cfb3}to{box-shadow:5px 6px 0 #19191f47, 0 0 0 3px var(--cream)}}@keyframes selected-bloom{0%{opacity:0;transform:scale(.68)rotate(-7deg)}70%{opacity:1;transform:scale(1.06)rotate(1deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes unlock-button{0%{transform:translateY(5px)scale(.78)rotate(-4deg)}58%{transform:translateY(-4px)scale(1.08)rotate(2deg)}to{transform:translateY(0)scale(1)rotate(0)}}@keyframes unlock-seed{0%,34%{opacity:1;transform:scale(.82)rotate(-12deg)}55%{opacity:1;transform:scale(1.08)rotate(8deg)}75%,to{opacity:0;transform:scale(.3)rotate(18deg)}}@keyframes unlock-sprout{0%,46%{opacity:0;transform:scaleY(0)rotate(-8deg)}70%{opacity:1;transform:scaleY(1.16)rotate(4deg)}to{opacity:1;transform:scaleY(1)rotate(0)}}@keyframes shortcut-nudge{0%{transform:scale(.7)rotate(-8deg)}62%{transform:scale(1.22)rotate(7deg)}to{transform:scale(1)rotate(4deg)}}@keyframes completion-hint-in{0%{opacity:0;transform:translate(-50%,8px)scale(.86)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes hint-thinking{0%{transform:rotate(-7deg)scale(.92)}to{transform:rotate(7deg)scale(1.04)}}@keyframes hint-target{0%{transform:translateY(0)scale(1)}to{transform:translateY(calc(-3px * var(--primary-ui-scale))) scale(1.04)}}@media (max-width:620px){:root{--hud-button-size:max(44px, min(calc(54px * var(--primary-ui-scale)), 11.8vw))}.level-number{font-size:calc(1.55rem * var(--primary-ui-scale))}.corner-button svg{width:calc(38px * var(--primary-ui-scale));height:calc(38px * var(--primary-ui-scale))}.hint-status{max-width:calc(118px * var(--primary-ui-scale))}.level-action-button svg{width:calc(35px * var(--primary-ui-scale));height:calc(35px * var(--primary-ui-scale))}.sound-button svg{width:calc(34px * var(--primary-ui-scale));height:calc(34px * var(--primary-ui-scale))}.level-menu{width:min(94vw, calc(480px * var(--level-menu-scale)));padding:calc(14px * var(--level-menu-scale))}.level-page{gap:calc(6px * var(--level-menu-scale))}.chapter-levels{gap:calc(4px * var(--level-menu-scale))}.level-grid button{font-size:calc(.95rem * var(--level-menu-scale))}.shortcut-badge{border-width:2px;min-width:20px;height:20px;padding:0 3px;font-size:.7rem;bottom:-5px;right:-4px}.completion-key-hint{top:calc(50% + 112px)}}@media (max-width:620px) and (orientation:portrait){:root{--hud-button-size:calc(54px * var(--primary-ui-scale))}}@media (max-width:620px) and (orientation:portrait),(max-width:900px) and (max-height:500px),(max-width:1200px) and (orientation:landscape) and (min-aspect-ratio:3/2),(orientation:landscape) and (min-aspect-ratio:3/2) and (pointer:coarse){.level-context,.hud-group-right{grid-template-columns:repeat(2, var(--hud-button-size));gap:var(--hud-gap);display:grid}.level-actions{display:contents}.level-number{grid-area:1/1}.hint-action{grid-area:1/2}.undo-button{grid-area:2/1}.restart-button{grid-area:2/2}.hud-group-right .menu-button{grid-area:1/2}.hud-group-right .music-button{grid-area:2/1}.hud-group-right .main-sound-button{grid-area:2/2}.hint-status{top:calc(200% + var(--hud-gap) * 2);width:calc(var(--hud-button-size) * 2 + var(--hud-gap));max-width:none;left:auto;right:0;transform:none}}.game-shell[data-input-mode=touch] .shortcut-badge,.game-shell[data-input-mode=touch] .controls-reference,.game-shell[data-input-mode=touch] .completion-key-hint{display:none}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
