@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700;800&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{font-family:'DM Sans',system-ui,sans-serif;color:#f1eed4;background:#102820;font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-height:100dvh}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation;color:inherit}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #f1cd74;outline-offset:4px}button{transition:filter .16s,transform .16s}button:hover{filter:brightness(1.15)}button:active{transform:translateY(2px)}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.forest-backdrop{position:fixed;inset:0;z-index:-2;background:linear-gradient(#071e22b0,#071d1ae0),url('assets/cover-imagegen-v1.png') center/cover}.forest-backdrop:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 15%,#061914c9 90%)}.app{width:min(1100px,100%);margin:auto;padding:0 26px 15px}.topbar{height:66px;display:flex;align-items:center;justify-content:space-between}.brand{font:600 20px 'Cinzel',Georgia,serif;letter-spacing:-.6px;border:0;background:none;padding:0;text-shadow:0 2px 12px #000}.brand span{color:#dabd7f}.top-actions{display:flex;gap:8px}.round-button{width:38px;height:38px;border-radius:50%;border:1px solid #8b9b665e;background:linear-gradient(#29473c,#132c25);box-shadow:inset 0 1px #bcc99a22,0 3px 8px #0005;color:#d7d7ac;font-size:19px}.game-shell{width:min(100%,calc(100dvh - 170px),760px);margin:auto}.hud{display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(120deg,#213b2ff0,#152d24f0);border:1px solid #9b9b5b66;border-bottom:0;border-radius:17px 17px 0 0;padding:13px 23px;position:relative;box-shadow:0 0 25px #0004}.hud:after{content:"";position:absolute;bottom:0;left:22px;right:22px;height:1px;background:linear-gradient(90deg,transparent,#b1a16f77,transparent)}.chapter small,.score-hud small{display:block;font-size:9px;letter-spacing:2px;color:#b1b18b;font-weight:700}.chapter b{font:600 15px 'Cinzel',Georgia,serif;display:block;margin-top:5px}.seed-hud{display:flex;align-items:center;gap:9px}.seed-hud small{font-size:11px;color:#b9bb90;white-space:nowrap}.seed-slots{display:flex;gap:7px}.seed-slots i{font-style:normal;font-size:26px;color:#556747;text-shadow:0 1px 2px #000;transition:color .4s,transform .4s}.seed-slots i.collected{color:#ffdd79;text-shadow:0 0 15px #ffd263aa;transform:scale(1.12)}.score-hud{text-align:right;min-width:54px}.score-hud strong{display:block;font:700 23px 'Cinzel',Georgia,serif;color:#f0d589;margin-top:2px}.play{background:#173025;border:1px solid #9b9b5b66;border-top:0;box-shadow:0 20px 80px #0009}.board-wrap{position:relative;padding:12px;background:linear-gradient(135deg,#546141,#1e3525 12%,#36472e 88%,#8b8755);box-shadow:inset 0 0 0 3px #0e241b,inset 0 0 0 5px #87906355;margin:0 9px;border-radius:9px}canvas{display:block;width:100%;height:auto;aspect-ratio:1;touch-action:none;border-radius:3px;background:#1a3026}.status{font-size:11px;line-height:1.4;text-align:center;min-height:39px;padding:12px 7px 10px;color:#c2c8a1;letter-spacing:.2px}.control-deck{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border:1px solid #9b9b5b66;border-top-color:#5d6b4255;border-radius:0 0 17px 17px;background:#132c24ed;box-shadow:0 10px 20px #0004}.tool-group{display:flex;gap:7px;align-items:center}.tool-button,.dark-button{padding:10px 13px;border:1px solid #7f89544d;border-radius:9px;background:linear-gradient(#354b34,#1d3526);font-size:11px;font-weight:600;box-shadow:inset 0 1px #bbbf8c22,0 3px 0 #0b2118}.tool-button span{color:#ecd484;font-size:20px;vertical-align:middle;margin-right:4px}.tool-button small{display:inline-block;color:#a8b98b;font-size:10px;margin-left:6px}.icon-tool{font-size:24px;padding:3px 11px}.run-stats{display:flex;gap:12px;align-items:center;color:#aebc94;font-size:10px;white-space:nowrap}.run-stats b{font-weight:500;color:#d4d7b5}.dew-counter{color:#82d5da}.control-help{color:#819780;font-size:10px;letter-spacing:.5px;text-align:center;margin:14px 0 0}.dpad{display:grid;grid-template-columns:repeat(3,34px);gap:3px}.dpad button{border:1px solid #80956855;background:linear-gradient(#3e563b,#253c2b);border-radius:7px;box-shadow:inset 0 1px #cfdbac22,0 2px #0c2218;font-size:20px;height:27px;padding:0;touch-action:none;user-select:none}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-column:1}.level-toast{position:absolute;top:40%;left:8%;right:8%;text-align:center;background:linear-gradient(90deg,transparent,#071e17e8 15%,#071e17e8 85%,transparent);padding:21px 10px;pointer-events:none;opacity:0;transform:translateY(6px);transition:opacity .5s,transform .5s}.level-toast.visible{opacity:1;transform:translateY(0)}.level-toast small{display:block;color:#c5b677;font-size:9px;letter-spacing:3px;margin-bottom:8px}.level-toast span{font:600 clamp(18px,3.5vw,30px) 'Cinzel',Georgia,serif;color:#f5e7b7}.pickup-toast{position:absolute;left:0;right:0;top:9%;text-align:center;pointer-events:none;opacity:0;font-size:15px;font-weight:700;color:#ffe6a0;text-shadow:0 2px 6px #03190e;transform:translateY(10px);transition:opacity .25s,transform .35s}.pickup-toast.visible{opacity:1;transform:translateY(0)}.overline{font-size:9px;letter-spacing:3px;color:#c5be84;font-weight:700}.title-screen{position:fixed;inset:0;z-index:10;display:flex;align-items:center;background:#123429 url('assets/cover-imagegen-v1.png') center/cover;overflow:auto;min-height:100dvh}.title-vignette{position:absolute;inset:0;background:linear-gradient(90deg,#061d18ee 0%,#0b281dcc 24%,#102d1f70 50%,transparent 80%),linear-gradient(0deg,#061912a8,transparent 30%,transparent 80%,#071d1955)}.title-back{position:absolute;top:27px;left:32px;font-size:12px;color:#dce6c7;z-index:2}.title-content{position:relative;z-index:1;padding:80px 7vw 45px;width:min(720px,60%);text-align:center}.title-content h1{font:700 clamp(48px,7vw,98px)/.94 'Cinzel',Georgia,serif;letter-spacing:-3px;margin:25px 0 12px;color:#f4edc3;text-shadow:0 4px 0 #314a26,0 6px 18px #03120c}.title-content h1 span{display:block;color:#e4c578;font-size:.65em;letter-spacing:1px;margin-top:12px}.title-rule{font-size:24px;color:#d9bb71;margin:19px 0 12px}.title-content p{font-size:14px;line-height:1.9;color:#d1dbb7;margin-bottom:27px}.gold-button{display:block;border:1px solid #fae09a;border-radius:10px;background:linear-gradient(#f2d891,#c3a259);box-shadow:inset 0 2px #fff4c99c,0 4px 0 #6c572b,0 8px 28px #010c0877;color:#293b24;font-weight:800;font-size:15px;padding:16px 24px;min-width:220px;margin:0 auto;position:relative}.gold-button span{margin-left:20px}.text-button{display:block;border:0;background:none;color:#c7d3ab;font-size:12px;margin:17px auto 0;padding:8px}.title-credit{font-size:8px;letter-spacing:2.5px;color:#9cab80;margin-top:37px}.floating-motes{position:absolute;inset:0;pointer-events:none}.floating-motes i{position:absolute;width:4px;height:4px;background:#eadd85;border-radius:50%;box-shadow:0 0 18px 5px #f9d67a33;left:70%;top:60%;animation:drift 7s ease-in-out infinite alternate}.floating-motes i:nth-child(2){left:40%;top:20%;animation-delay:-3s}.floating-motes i:nth-child(3){left:80%;top:30%;animation-delay:-1s}.floating-motes i:nth-child(4){left:20%;top:80%;animation-delay:-5s}.floating-motes i:nth-child(5){left:90%;top:70%;animation-delay:-2s}dialog{border:1px solid #a5a06988;border-radius:22px;background:radial-gradient(ellipse at top,#3a5032,#132e25 75%);color:#e8e9c8;padding:32px;text-align:center;width:min(450px,calc(100% - 28px));box-shadow:inset 0 0 0 5px #99a36515,0 30px 100px #000a;overflow:hidden}dialog::backdrop{background:#041b14bc;backdrop-filter:blur(9px)}dialog h2{font:600 27px/1.2 'Cinzel',Georgia,serif;letter-spacing:-.8px;margin:16px 0}dialog p{font-size:12px;line-height:1.9;color:#abbc95}dialog .gold-button{width:100%;margin-top:23px}dialog .dark-button{width:100%;margin-top:13px}.modal-spirit{display:block;width:125px;height:125px;object-fit:contain;margin:0 auto 10px;filter:drop-shadow(0 8px 20px #d5dc6f22)}.dialog-close{position:absolute;top:12px;right:14px;border:0;background:none;color:#c7cca1;font-size:27px}.level-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:28px 0}.level-grid button{border:1px solid #89936277;background:linear-gradient(#42593a,#263f2c);color:#ede6b7;aspect-ratio:1;border-radius:14px;font:600 22px 'Cinzel',Georgia,serif;box-shadow:0 3px 0 #0b2118;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px}.level-grid button.active{border-color:#e4c778;background:linear-gradient(#7f7944,#4c5a32);box-shadow:0 0 18px #b49c4922}.level-grid small{font:11px system-ui;color:#e4c36a;min-height:13px;letter-spacing:1px}.total{border-top:1px solid #a1a56a33;padding-top:19px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;color:#a5b18a}.total b{color:#f1d386}.earned{color:#efd27b;font-size:39px;letter-spacing:10px;margin:20px 0;text-shadow:0 0 20px #e0c56d44}.earned b{display:inline-block;animation:star-in .6s both}.earned b:nth-child(2){animation-delay:.12s}.earned b:nth-child(3){animation-delay:.24s}.earned span{color:#506342}.result-score{color:#eed17e;font:600 24px 'Cinzel',Georgia,serif}.victory-rays{position:absolute;inset:-100px;z-index:-1;background:repeating-conic-gradient(#d6ba4911 0deg 10deg,transparent 10deg 25deg);pointer-events:none;animation:spin 70s linear infinite}@keyframes drift{to{transform:translate(30px,-40px);opacity:.2}}@keyframes star-in{from{opacity:0;transform:scale(.3) rotate(-20deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1000px){.dpad{display:none}.game-shell{width:min(calc(100dvh - 280px),760px)}.control-deck{padding:14px 18px}}
@media(max-width:760px){.app{padding:0 10px 12px}.topbar{height:54px;padding:0 4px}.brand{font-size:16px}.round-button{width:33px;height:33px;font-size:17px}.game-shell{width:min(100%,calc(100dvh - 190px))}.hud{padding:12px 13px;border-radius:13px 13px 0 0;gap:8px}.chapter small{font-size:8px;letter-spacing:1.5px}.chapter b{font-size:11px;max-width:155px}.seed-slots{gap:4px}.seed-slots i{font-size:22px}.seed-hud{gap:6px}.seed-hud small{font-size:9px}.score-hud strong{font-size:20px}.score-hud small{font-size:8px;letter-spacing:1px}.score-hud{min-width:40px}.board-wrap{padding:8px;margin:0 5px}.status{font-size:10px;min-height:37px;padding:11px 6px}.control-deck{padding:12px 10px;gap:7px;position:relative;flex-wrap:wrap}.tool-group{gap:5px;flex:1}.tool-button{padding:9px 8px;font-size:10px}.tool-button span{font-size:18px}.tool-button small{margin-left:4px}.icon-tool{font-size:23px;padding:3px 8px}.run-stats{gap:12px;flex-basis:100%;justify-content:center;font-size:9px;margin-top:5px}.dpad{grid-template-columns:repeat(3,37px);gap:4px}.dpad button{height:30px}.control-help{font-size:8px;letter-spacing:.2px;margin:12px 0}.title-screen{background-position:62% center;align-items:flex-end}.title-vignette{background:linear-gradient(0deg,#071e17 0%,#071e17ed 25%,#09261870 62%,#09261833)}.title-content{width:100%;padding:110px 25px 35px}.title-content h1{font-size:68px;letter-spacing:-2px;margin-top:18px}.title-content .overline{font-size:8px;letter-spacing:2px}.title-content p{font-size:12px;margin-bottom:24px}.title-rule{margin:16px 0 10px}.title-back{top:23px;left:23px}.title-credit{margin-top:25px;font-size:7px}.title-content .text-button{margin-top:12px}.gold-button{padding:14px 25px}.level-grid{gap:10px}.level-grid button{font-size:19px}dialog{padding:28px 23px}dialog h2{font-size:24px}.modal-spirit{width:105px;height:105px}}
@media(max-height:500px) and (orientation:landscape){.topbar{height:43px}.game-shell{width:calc(100dvh - 78px);position:relative}.hud{padding:5px 12px}.hud .chapter b{font-size:10px}.hud small{font-size:7px}.seed-slots i{font-size:17px}.score-hud strong{font-size:16px}.status{display:none}.control-deck{position:fixed;right:20px;top:100px;width:150px;display:flex;flex-direction:column;border-radius:13px}.dpad{display:grid}.run-stats{flex-wrap:wrap}.control-help{display:none}.title-content{padding:50px 35px 15px;width:60%}.title-content h1{font-size:46px}.title-content p{font-size:10px;margin-bottom:10px}.title-rule,.title-credit{display:none}.title-screen{align-items:center}.title-content .overline{font-size:7px}.title-vignette{background:linear-gradient(90deg,#071e17ef,transparent)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
