@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@400;500;600;650;700;750;800&display=swap');

:root{--paper:#f6f4eb;--ink:#293b31;--muted:#90958a;--green:#427754;--line:#e2e4d8;--yellow:#f3ce6c;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-height:100svh;overflow-x:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #d6a333;outline-offset:4px}button{color:inherit}a{color:inherit;text-decoration:none}button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}button:active{transform:translateY(1px)}[hidden]{display:none!important}
.layout{max-width:1120px;margin:0 auto;min-height:100svh;display:grid;grid-template-columns:1fr 440px;gap:105px;align-items:center;padding:36px 36px;position:relative}.ambient{position:fixed;border:1px solid #e4e7d9;border-radius:50%;pointer-events:none;z-index:-1}.ambient-one{width:780px;height:780px;left:-460px;top:50%}.ambient-two{width:680px;height:680px;right:-410px;top:-330px}.intro{padding:16px 0}.brand{display:inline-flex;align-items:center;gap:10px;font-family:Outfit,sans-serif;font-weight:750;font-size:28px;letter-spacing:-1.3px}.brand-mark{width:31px;height:34px;background:var(--green);border-radius:8px 8px 11px 11px;color:var(--paper);font-size:31px;line-height:29px;text-align:center;transform:rotate(-7deg);position:relative;letter-spacing:0}.brand-mark span{color:var(--yellow);position:absolute;right:1px;top:-8px;font-size:22px}.brand-dot{font:11px 'DM Sans',sans-serif;align-self:flex-start;margin-top:7px;margin-left:-5px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700}.intro>.eyebrow{margin-top:55px;display:flex;align-items:center;gap:9px}.eyebrow>span:first-child{width:6px;height:6px;border-radius:50%;background:var(--green)}h1,h2,h3,p{margin:0}h1{font-family:Outfit,sans-serif;font-size:clamp(42px,4.2vw,62px);font-weight:650;letter-spacing:-2.8px;line-height:1.07;margin:20px 0}h1>span{color:var(--green)}.intro-description{font-size:14px;line-height:1.8;color:#7b8176}.intro-art{height:198px;position:relative;margin:16px 0 12px}.intro-art canvas{width:160px;height:170px;image-rendering:pixelated;transform:rotate(-8deg);border:9px solid #fffcf5;box-shadow:0 8px 24px #364b3520;position:absolute;left:20px;top:10px;border-radius:3px}.art-note{position:absolute;top:65px;left:204px;font-size:13px;transform:rotate(-8deg);color:#7a8674}.art-note svg{width:65px;height:37px;display:block;transform:scaleX(-1) rotate(-18deg);margin-top:13px;fill:none;stroke:#7a8674;stroke-width:1.5;stroke-linecap:round}.art-spark{position:absolute;font-size:42px;left:159px;top:0;color:#d6a743;transform:rotate(18deg)}.desktop-tip{display:flex;gap:13px;align-items:center;font-size:12px;line-height:1.8}.desktop-tip strong{font-size:13px;font-weight:600}.desktop-tip span{color:#8a9184}.desktop-tip .tip-hand{font-size:25px;background:#e8ebdf;border-radius:13px;width:43px;height:43px;text-align:center;color:var(--green)}.intro footer{margin-top:42px;font-size:9px;letter-spacing:1.3px;color:#949b8c}.intro footer span{padding:0 12px;color:#8c9a76}
.game-app{height:min(850px,calc(100svh - 64px));min-height:620px;background:#fffdf6;border:1px solid #e5e5d9;border-radius:29px;box-shadow:0 20px 70px #34422f0b,0 3px 8px #34422f04;padding:23px 23px 0;display:flex;flex-direction:column;position:relative;overflow:hidden}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.app-header .brand{font-size:23px}.app-header .brand-mark{width:27px;height:29px;font-size:27px;line-height:25px;border-radius:7px 7px 9px 9px}.header-actions{display:flex;gap:7px}.icon-button{height:32px;width:32px;background:transparent;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center}.icon-button svg{width:17px;height:17px}.help-button{font-weight:600;font-size:16px}.level-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.level-header .eyebrow{font-size:8px;letter-spacing:1.7px;color:#9a9d90;margin-bottom:7px}.level-header h2{font-family:Outfit,sans-serif;font-size:22px;letter-spacing:-.5px;font-weight:600;white-space:nowrap}.level-header h2 span{font-size:17px;color:#d7aa4b;margin-left:4px}.level-badge{background:#ecf0e2;padding:9px 10px;border-radius:9px;font-size:12px;font-weight:700;color:#54714c;white-space:nowrap}.level-badge span{font-weight:400;color:#909e81;font-size:10px}.score-row{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin-bottom:9px}.score-label{display:flex;gap:7px;align-items:center;color:#8b9083}.score-label strong{font-size:16px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;min-width:10px}.mini-pixel{width:10px;height:10px;border-radius:2px;background:#69a773;box-shadow:2px 2px 0 #dbe8cf;margin-right:3px}#percent{font-size:11px;color:#607a50;font-weight:600}.progress-track{height:5px;background:#e9eddf;border-radius:9px;overflow:hidden;margin-bottom:17px}#progress-fill{height:100%;width:0;background:#75a86b;border-radius:9px;transition:width .25s}
.play-area{position:relative;flex:1;min-height:240px;border:1px solid #e6e7d8;border-radius:17px;overflow:hidden;background:#eef0e3;isolation:isolate}#game{width:100%;height:100%;display:block;touch-action:none;user-select:none;position:absolute;inset:0}.scene-label{position:absolute;top:14px;left:14px;display:flex;align-items:center;gap:6px;pointer-events:none;font-size:7px;letter-spacing:1.3px;color:#929c85;font-weight:600}.scene-label>span:first-child{width:4px;height:4px;background:#9bad88;border-radius:50%}.scene-button{position:absolute;top:8px;right:9px;width:26px;height:26px;border:1px solid #dce1cf;border-radius:8px;background:#f6f7eeaa;display:grid;place-items:center;color:#849574}.scene-button svg{width:13px;height:13px;stroke-width:2}.start-hint{position:absolute;bottom:80px;left:0;width:100%;text-align:center;font-size:10px;color:#748468;pointer-events:none;transition:opacity .4s}.start-hint>span{display:inline-block;margin-right:4px;animation:bob 1.7s infinite}.toast{position:absolute;top:42px;left:50%;transform:translate(-50%,-5px);font-size:11px;padding:9px 13px;border-radius:20px;background:#2e4539ed;color:#fffdf6;opacity:0;transition:.2s;pointer-events:none;white-space:nowrap;box-shadow:0 3px 8px #273d2520}.toast.visible{opacity:1;transform:translate(-50%,0)}
.palette-section{padding:18px 0 13px}.palette-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.palette-heading h3{font-size:12px;font-weight:700}.palette-heading>span{font-size:7px;letter-spacing:1px;color:#969e8d;font-weight:600}.tiny-arrow{font-size:14px;margin-left:3px}.palette{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.palette-pot{border:1px solid transparent;border-radius:12px;background:transparent;padding:5px 0 4px;touch-action:none;user-select:none;display:flex;align-items:center;flex-direction:column;gap:5px;transition:background .2s,opacity .2s}.palette-pot:hover,.palette-pot.selected{background:#edf0e3;border-color:#d8e0cb}.palette-pot.depleted{opacity:.28}.palette-pot .pot-name{font-size:8px;color:#828976;white-space:nowrap}.palette-pot svg{width:36px;height:41px;overflow:visible}.palette-pot .pot-remaining{font-size:8px;color:#859174;font-variant-numeric:tabular-nums}.bottom-bar{border-top:1px solid #ececdf;display:flex;justify-content:space-between;align-items:center;padding:13px 0 17px;color:#969c8c;font-size:9px;gap:4px}.bottom-bar>span{display:flex;align-items:center;gap:5px}.live-dot{width:4px;height:4px;background:#88a775;border-radius:50%}.bottom-bar button{padding:0;border:0;background:none;font-size:9px;color:#8d9583;display:flex;align-items:center;gap:4px}.bottom-bar svg{width:12px;height:12px}.drag-ghost{position:fixed;width:50px;height:55px;pointer-events:none;z-index:30;filter:drop-shadow(0 7px 5px #253c3938);transform:translate(-50%,-80%) rotate(-5deg)}.drag-ghost svg{width:100%;height:100%}
.pause-overlay{position:absolute;inset:0;background:#fffdf6ec;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;backdrop-filter:blur(6px)}.pause-overlay>span{color:var(--green);font-size:45px;margin-bottom:16px}.pause-overlay h2{font:600 35px Outfit,sans-serif;letter-spacing:-1px}.pause-overlay p{color:#8a9380;font-size:13px;margin:12px 0 28px}.pause-overlay .primary-button{width:230px}.primary-button{width:100%;border:0;border-radius:13px;background:var(--green);color:#fffdf6;font-weight:600;padding:16px 20px;font-size:14px;display:flex;justify-content:space-between;align-items:center}.primary-button span{font-size:19px}.text-button{border:0;background:none;font-size:12px;color:#839071;margin:18px auto 0;display:block}dialog{width:calc(100% - 36px);max-width:390px;border:1px solid #e2e5d4;background:#fffdf6;color:var(--ink);border-radius:24px;padding:29px;box-shadow:0 22px 100px #1d302f26}dialog::backdrop{background:#253d3860;backdrop-filter:blur(6px)}.dialog-close:not(.primary-button){position:absolute;top:14px;right:16px;border:0;background:#f0f0e6;width:29px;height:29px;border-radius:50%;font-size:20px;color:#859174}.dialog-symbol{font-size:38px;color:#d7aa4b;margin-bottom:14px}dialog .eyebrow{font-size:8px;color:#89967c}dialog h2{font:600 38px/.98 Outfit,sans-serif;letter-spacing:-1.2px;margin:13px 0 26px}dialog ol{padding:0;list-style:none;margin:0}dialog li{display:flex;gap:13px;margin:17px 0}dialog li>span{font-size:10px;color:#84a06b;background:#edf1e3;align-self:flex-start;padding:7px;border-radius:7px}dialog li strong{font-size:12px}dialog li p,.help-footnote{font-size:11px;line-height:1.65;color:#859079;margin-top:4px}.help-footnote{border-top:1px solid #e5e8d8;padding-top:15px;margin:19px 0}.win-copy{font-size:14px;color:#7b8970;line-height:1.9;margin-bottom:26px}.win-copy strong{color:var(--green);font-size:24px}@keyframes bob{50%{transform:translateY(4px)}}
@media(min-width:1500px){.layout{gap:150px;max-width:1200px;grid-template-columns:1fr 460px}.game-app{height:870px}}
@media(max-width:920px){.layout{gap:40px;padding:24px;grid-template-columns:1fr 400px}.intro h1{font-size:43px}.intro-description{font-size:12px}.art-note{left:175px;font-size:11px}.intro footer{font-size:7px}.game-app{padding:20px 19px 0}}
@media(max-width:740px){body{background:#fffdf6}.intro,.ambient{display:none}.layout{display:block;min-height:100svh;padding:0;max-width:480px}.game-app{height:100svh;min-height:540px;border:0;border-radius:0;box-shadow:none;padding:max(18px,env(safe-area-inset-top)) 20px 0}.app-header{margin-bottom:20px}.bottom-bar{padding-bottom:max(13px,env(safe-area-inset-bottom))}.play-area{min-height:220px}.level-header{margin-bottom:16px}}
@media(max-height:740px) and (max-width:740px){.game-app{padding-top:max(12px,env(safe-area-inset-top));padding-left:16px;padding-right:16px}.app-header{margin-bottom:13px}.level-header{margin-bottom:11px}.level-header h2{font-size:20px}.progress-track{margin-bottom:11px}.palette-section{padding:11px 0 7px}.palette-heading{margin-bottom:5px}.bottom-bar{padding-top:9px}.palette-pot svg{height:34px;width:31px}.palette-pot{gap:3px}.scene-label{font-size:6px}.start-hint{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
