:root{color-scheme:dark;--gold:#ffda82;--cream:#fff2d5;--muted:#c3c2a3;--wood:url('assets/wood-panel-v1.webp')}*{box-sizing:border-box}body{margin:0;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr);place-items:center;color:var(--cream);background:linear-gradient(#10251eec,#0b1b18f5),url('assets/forest-v1.webp') center/cover fixed;font-family:system-ui,-apple-system,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;font:inherit;color:inherit}button:disabled{opacity:.45;cursor:default}button:hover:not(:disabled){filter:brightness(1.12)}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #a1ffda;outline-offset:2px}[hidden]{display:none!important}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden;white-space:nowrap;margin:-1px}.shell{width:min(520px,calc(100vw - 12px),calc((100dvh - 226px)*.7142857));min-width:0;margin:auto;padding:6px}.console{container-type:inline-size;padding:5px 12px 10px;background:var(--wood) center/100% 100%;border-radius:16px 16px 0 0;border-top:1px solid #d49c50;box-shadow:0 10px 40px #0007}header{height:48px;display:flex;align-items:center;gap:5px}.icon-button{height:44px;width:44px;flex:none;display:grid;place-items:center;padding:2px;border:1px solid #daaa5950;border-radius:10px;background:#1a201acc;box-shadow:0 3px #140f0c}.icon{display:inline-block;width:32px;height:32px;flex:none;background:url('assets/ui-icons-v1.webp') no-repeat;background-size:400% 300%;vertical-align:middle;pointer-events:none}.home{background-position:0 0}.map{background-position:33.333333% 0}.sound{background-position:66.666667% 0}.muted{background-position:100% 0}.pause{background-position:0 50%}.play{background-position:33.333333% 50%}.restart{background-position:66.666667% 50%}.close{background-position:100% 50%}.star{background-position:0 100%}.clock{background-position:33.333333% 100%}.lock{background-position:66.666667% 100%}.left-arrow{transform:rotate(180deg)}.identity{flex:1;min-width:0;text-align:center}h1{font:700 22px/1 Georgia,serif;margin:0 0 5px;color:var(--gold);text-shadow:0 2px #190d09}.identity small{display:block;font-size:8px;letter-spacing:1.2px;white-space:nowrap}.hud{display:grid;grid-template-columns:1fr 1.5fr;gap:18px;border-top:1px solid #ffe7a125;padding-top:7px;margin-top:5px}.hud small{display:block;font-size:8px;letter-spacing:1.2px;color:#e1c39e}.hud b{font-size:24px;font-variant-numeric:tabular-nums}.hud em{font-style:normal;font-size:14px;color:#d4b289}.energy-stat small:first-child{display:flex;justify-content:space-between}.energy-track{height:10px;background:#100f0dcc;border:1px solid #d5b5745e;border-radius:8px;overflow:hidden;margin:5px 0}.energy-track i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#71ad66,#d9e886)}.energy-track.low i{background:linear-gradient(90deg,#e07b51,#ffc775)}#starsTotal{font-size:7px;letter-spacing:.5px}.stage{position:relative;aspect-ratio:600/840;background:#879759;border:2px solid #65462d;border-top:0;overflow:hidden;box-shadow:0 20px 50px #0006}canvas{width:100%;height:100%;display:block;touch-action:manipulation}.goal-track{position:absolute;top:0;left:0;right:0;height:4px;background:#241c1a66}.goal-track i{height:100%;width:0;display:block;background:var(--gold)}#status{position:absolute;bottom:12px;left:10px;right:10px;text-align:center;font-size:11px;font-weight:800;color:#fff2c6;pointer-events:none;text-shadow:0 2px 5px #172113,0 0 10px #172113;background:#1728178c;border-radius:7px;padding:6px}.controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:var(--wood) center/100% 100%;padding:11px 12px 14px;border-radius:0 0 16px 16px}.controls button,.primary,.secondary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:8px 12px;border:1px solid #f7d68e;border-radius:11px;background:linear-gradient(#ffe59b,#e7b65b);color:#3d341d;font-size:11px;letter-spacing:.6px;font-weight:900;box-shadow:inset 0 1px #fff8,0 4px #6a481f;touch-action:manipulation}.controls button:last-child{background:linear-gradient(#e2edaa,#a9c37b);border-color:#d7e69d;box-shadow:inset 0 1px #fff8,0 4px #53622f}.controls .icon{height:25px;width:25px}.help{font-size:8px;color:#a4b29a;text-align:center;margin:9px 0 0}.overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:safe center;padding:16px;overflow:auto;background:radial-gradient(ellipse at 50% 25%,#52723c80,transparent 70%),#0c2119eb;backdrop-filter:blur(7px)}.panel{width:min(425px,100%);padding:20px 24px;text-align:center;border:2px solid #a1a263;border-radius:20px;background:linear-gradient(#294932,#172e25);box-shadow:0 25px 100px #0009;overflow:hidden}.menu-art{display:block;width:calc(100% + 48px);height:auto;margin:-20px -24px 18px}.panel.result .menu-art{display:none}.eyebrow{color:var(--gold);font-size:9px;font-weight:800;letter-spacing:1.7px;margin:0 0 10px}h2{font:700 29px/1.1 Georgia,serif;margin:10px 0 12px;letter-spacing:-.5px}.panel>p:not(.eyebrow){font-size:12px;line-height:1.7;color:#ced1ae}.panel>.primary{width:100%;margin:16px 0 10px}.secondary{width:100%;background:linear-gradient(#4f7144,#2f5134);color:#f0efd0;border:1px solid #90ac6c;box-shadow:0 3px #173b28}.record{font-size:10px!important;margin:12px 0 4px}.quiet{display:inline-flex;align-items:center;justify-content:center;gap:5px;background:none;border:0;color:#ced1ae;font-size:11px;padding:7px;min-height:40px}.quiet .icon{height:23px;width:23px}.star-row{display:inline-flex;gap:2px;align-items:center;justify-content:center}#resultStars .icon{width:46px;height:46px}.unearned{filter:grayscale(1);opacity:.24}dialog{width:min(610px,calc(100% - 24px));max-height:87dvh;padding:22px;border:2px solid #a1a263;border-radius:19px;background:linear-gradient(#294932,#172e25);color:var(--cream);box-shadow:0 25px 90px #0009}dialog::backdrop{background:#0c2119e8;backdrop-filter:blur(6px)}dialog p{font-size:12px;color:var(--muted);line-height:1.6}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:10px}#levels h3{font-size:11px;color:var(--gold);margin:22px 0 10px}.level-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.level-grid button{min-height:71px;padding:10px 2px 5px;border:1px solid #c5a56288;border-radius:11px;background:var(--wood) center/cover;box-shadow:0 3px #142216}.level-grid button>b{font-size:20px}.level-grid small{display:block;margin-top:3px}.level-grid .icon{height:16px;width:16px}.level-grid .star-row{gap:0}.level-grid .lock{height:22px;width:22px}.level-grid button.current{border:2px solid var(--gold)}#pauseDialog{max-width:365px;text-align:center}#pauseDialog .primary{width:100%;margin:16px 0 8px}.credit{font-size:8px;letter-spacing:1px;opacity:.6}
@media(max-width:600px){.shell{width:min(100%,calc((100dvh - 226px)*.7142857));padding:4px}.console{padding:4px 9px 9px}.hud{gap:10px}.hud b{font-size:22px}.controls{padding:10px 9px 13px;gap:8px}.controls button{font-size:10px;padding:7px;gap:4px}.identity h1{font-size:20px}.identity small{font-size:7px;letter-spacing:.6px}.level-grid{grid-template-columns:repeat(3,1fr)}.panel{padding:18px 22px}.menu-art{width:calc(100% + 44px);margin:-18px -22px 16px}h2{font-size:27px}.panel>p:not(.eyebrow){font-size:11px}}
@media(max-height:500px) and (min-width:481px){.shell{width:min(640px,100%);height:calc(100dvh - 10px);padding:3px;display:grid;grid-template-columns:100px minmax(0,1fr) 100px;grid-template-rows:100px 1fr;gap:0 8px}.console{grid-column:1/-1;padding:1px 10px 6px;border-radius:12px}header{height:44px}.icon-button{width:44px;height:44px}.icon-button .icon{width:26px;height:26px}.identity h1{font-size:18px}.identity small{font-size:6px}.hud{margin-top:3px;padding-top:4px}.hud b{font-size:18px}.hud small{font-size:7px}.energy-track{margin:3px 0;height:7px}#starsTotal{display:none}.stage{grid-column:2;grid-row:2;width:calc((100dvh - 116px)*.7142857);max-width:100%;height:auto;align-self:center;justify-self:center;border-top:2px solid #65462d}.controls{display:contents}#left,#right{grid-row:2;align-self:center;min-height:78px;flex-direction:column;padding:6px;font-size:9px;border-radius:13px}#left{grid-column:1}#right{grid-column:3}.help{display:none}#status{font-size:8px;padding:4px;bottom:4px;left:4px;right:4px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Gameplay feedback and small-screen controls. */
.goal-label{position:absolute;top:12px;right:12px;padding:5px 8px;border:1px solid #fff1b04a;border-radius:7px;background:#173326bc;color:#fff1c2;font-size:9px;font-weight:800;letter-spacing:.5px;pointer-events:none}
.energy-track>i{transition:width .12s linear}.stage.hit::after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 45px #d4523a7a;border:3px solid #f5a07199}.save-notice{font-size:11px!important;color:#ffe2a3!important;padding:8px;background:#143523;border:1px solid #b1ad6f66;border-radius:8px}
@container(max-width:290px){.identity{display:none}header{justify-content:space-between}}
