:root{font-family:Segoe UI,Arial,sans-serif;color:#fff4d8;background:#102e2b;font-synthesis:none;font-weight:400;--gold:#f6c76b;--muted:#a5bab0}*{box-sizing:border-box}body{margin:0;min-width:0;min-height:100dvh;background:radial-gradient(ellipse at 12% 30%,#235a45a8,transparent 46%),radial-gradient(ellipse at 85% 80%,#3b4c2e70,transparent 38%),#102e2b}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(#ffe3a452 1px,transparent 1px);background-size:103px 137px;opacity:.25}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #fff4d8;outline-offset:4px}button:disabled{opacity:.45;cursor:default}button{transition:background .15s,transform .15s}button:not(:disabled):active{transform:translateY(1px)}.layout{position:relative;max-width:1360px;min-height:100dvh;margin:auto;display:grid;grid-template-columns:1fr minmax(360px,470px) 1fr;gap:54px;align-items:center;padding:36px 42px}.story{align-self:center}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:700;color:#b8c9b6;line-height:1.6}.story>.eyebrow{display:flex;align-items:center;gap:9px;white-space:nowrap}.eyebrow>span{display:block;width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold)}h1{font-family:Georgia,serif;font-weight:400;line-height:.94;font-size:70px;letter-spacing:-4px;margin:30px 0 28px;color:#fff0cb}h1>span{display:block;color:var(--gold);margin-left:29px}h1>i{display:block;font:11px Segoe UI,sans-serif;font-weight:600;letter-spacing:7px;margin:23px 0 0 42px;font-style:normal;color:#bac7b2}.tagline{font-family:Georgia,serif;font-size:24px;line-height:1.35;color:#e1e8cf;margin-top:34px}.story-copy{color:#a5bdae;font-size:13px;line-height:1.9}.forest-art{height:180px;position:relative;overflow:hidden;margin-top:20px}.moon{position:absolute;top:22px;right:27%;width:48px;height:48px;background:#f6c76b10;border-radius:50%;box-shadow:0 0 45px #f6c76b14}.tree{position:absolute;border-radius:70% 25% 65% 30%;background:#315c45;transform:rotate(-35deg);box-shadow:inset 5px 5px #53765022}.tree.one{height:105px;width:65px;left:2px;bottom:14px}.tree.two{height:95px;width:47px;left:58px;bottom:4px;transform:rotate(24deg);background:#416e49}.moss{height:30px;width:230px;position:absolute;bottom:0;background:#31563d;border-radius:50%}.lantern{position:absolute;bottom:24px;left:123px;width:45px;height:58px;border:5px solid #bc9a52;border-radius:17px 17px 22px 22px;background:#f6c76b27;box-shadow:0 0 38px #f6c76b44;display:grid;place-items:center;transform:rotate(8deg)}.lantern:before{content:"";position:absolute;top:-14px;left:10px;width:14px;height:10px;border:3px solid #bc9a52;border-radius:8px 8px 0 0}.lantern span{color:#ffe7ab;font-size:31px;text-shadow:0 0 16px #ffd367}.spark{position:absolute;width:4px;height:4px;border-radius:50%;background:#ffe3a4;box-shadow:0 0 12px #f6c76b}.spark.a{left:95px;top:36px}.spark.b{left:205px;top:75px}.spark.c{left:63px;top:16px}.edition{font-size:9px;letter-spacing:2px;color:#8fa997;margin-top:18px}.game{width:100%;border:1px solid #99b39725;border-radius:30px;padding:24px;background:linear-gradient(150deg,#295449b5,#173b35e6);box-shadow:0 24px 80px #041b1a50,inset 0 1px #ffffff0a}.game-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.wordmark{font-family:Georgia,serif;color:#f6db9e;font-size:20px;text-decoration:none;letter-spacing:-.5px}.icon-button{width:30px;height:30px;border-radius:50%;border:1px solid #d3d6a82b;background:transparent;color:#c8d7bd;font-family:Georgia,serif}.chapter{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:19px}.chapter .eyebrow{font-size:8px;letter-spacing:1.6px}.chapter h2{font-size:16px;font-weight:600;margin:5px 0 0;color:#f0efd9;letter-spacing:-.3px}.levels-button{background:transparent;border:0;font-size:11px;padding:9px 0 9px 9px;color:#c4d3c0;white-space:nowrap}.levels-button span{margin-left:6px;font-size:18px;vertical-align:middle}.hud{display:flex;gap:12px;align-items:stretch;margin-bottom:12px}.goals{flex:1;background:#0e2b275e;border:1px solid #aecab719;border-radius:17px;padding:12px 15px;display:flex;align-items:center;gap:14px}.hud-label{font-size:8px;letter-spacing:1.8px;color:#9bb7a7;font-weight:700}#goals{display:flex;align-items:center;gap:13px}.goal{display:flex;align-items:center;gap:4px}.goal svg{width:31px;height:31px;filter:drop-shadow(0 2px 2px #0003)}.goal b{font-size:20px;min-width:16px}.goal.done b{color:#8cdaaa}.moves{background:#f6c76b13;border:1px solid #f6c76b35;border-radius:17px;min-width:70px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 12px}.moves strong{font-size:30px;line-height:1.1;color:#ffe1a0;font-weight:600}.moves .low{color:#f4a18c}.board-wrap{position:relative;border:5px solid #6b7953;border-radius:19px;background:#153d35;box-shadow:inset 0 0 0 2px #253d2d,0 8px 16px #031d1933;padding:3px}#board{width:100%;aspect-ratio:1;touch-action:none;overflow:hidden;border-radius:11px}#board canvas{display:block;touch-action:none}#loading{position:absolute;inset:0;display:grid;place-items:center;background:#183d35;border-radius:13px;color:#e4d29c;font-size:13px}.under-board{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 1px 16px;font-size:10px;min-height:43px}#status{color:#abc5b3;line-height:1.5}#score{color:#d5cfa5;white-space:nowrap}.tools{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tools button{border:1px solid #91b19b38;background:#2d5649;border-radius:13px;padding:10px 8px;font-size:12px;color:#e5e8cc;box-shadow:0 3px #0f2b264d}.tools button:hover:not(:disabled){background:#3a6655}.tools button span{font-size:19px;vertical-align:middle;color:var(--gold);margin-right:5px}.journey{margin-top:25px;border-top:1px solid #9fb69c20;padding-top:18px}.journey>div:first-child{display:flex;align-items:center;gap:10px}.journey>div>span{font-size:25px;color:var(--gold)}.journey p{font-size:11px;margin:0;color:#dce2c5}.journey small{display:block;color:#99b29f;margin-top:3px;font-size:9px}.progress-track{margin-top:12px;height:4px;border-radius:4px;background:#0d2f28;overflow:hidden}.progress-track i{display:block;height:100%;background:linear-gradient(90deg,#bb9a50,#ffe2a0);border-radius:4px;transition:width .3s}.game footer{font-size:8px;letter-spacing:.3px;color:#819d8e;text-align:center;margin-top:18px}.guide{max-width:265px}.guide-card{border-top:1px solid #b2c19830;border-bottom:1px solid #b2c19830;padding:24px 0}.guide .eyebrow{font-size:8px;letter-spacing:1.4px}.guide h3{font:23px/1.3 Georgia,serif;color:#e4e9d0;margin:16px 0 28px}.recipe{display:flex;align-items:center;gap:13px;margin-top:23px}.booster{width:42px;height:42px;border-radius:14px;background:#f6c76b15;display:grid;place-items:center;color:#f6d995;font-size:26px;border:1px solid #f6c76b29;flex-shrink:0}.booster.pollen{background:#ef9c6410;color:#e9a578;border-color:#ef9c6430}.booster.heart{background:#bc98ef12;color:#c8b0e6;border-color:#bc98ef30}.recipe p{margin:0}.recipe b{font-size:12px;font-weight:600;color:#e5e6cd}.recipe small{display:block;color:#9ab2a1;margin-top:4px;font-size:10px;line-height:1.5}.guide-note{font-size:11px;line-height:1.7;color:#9cb29f;margin:28px 0 0}.quiet-note{font:italic 17px/1.7 Georgia,serif;color:#7e9c86;margin:26px 0 0}dialog{max-width:390px;width:calc(100% - 32px);border:1px solid #73815b;border-radius:25px;background:linear-gradient(145deg,#2c5746,#183b33);color:#fff4d8;box-shadow:0 20px 90px #0008;text-align:center;padding:32px 25px}dialog::backdrop{background:#071f1bd9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}dialog h2{font:29px/1.2 Georgia,serif;margin:16px 0}dialog p{font-size:13px;line-height:1.8;color:#bdcfba;margin:16px 0 24px}.modal-spark{display:block;color:var(--gold);font-size:49px;margin-bottom:15px}.primary{width:100%;border:1px solid #ffe7ad;background:linear-gradient(#f8d787,#e8b358);color:#3b3d25;padding:14px;border-radius:13px;font-weight:700;font-size:13px;box-shadow:0 4px #947239}.text-button{display:block;width:100%;background:transparent;border:0;color:#b6c9af;padding:18px 0 0;font-size:12px}.level-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:24px 0}.level{border:1px solid #9cbb8d45;border-radius:13px;background:#244a3d;padding:9px 0;font-size:19px}.level small{display:block;color:#849b80;font-size:12px}.level.completed{border-color:#f6c76b60;background:#f6c76b13}.level.completed small{color:var(--gold)}.toast{position:fixed;left:50%;bottom:40px;transform:translate(-50%,10px);max-width:calc(100% - 32px);width:max-content;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;background:#f8edcf;color:#244337;padding:12px 20px;border-radius:14px;font-size:12px;box-shadow:0 6px 35px #0004;z-index:10}.toast.visible{opacity:1;transform:translate(-50%)}@media(min-width:1600px){.layout{gap:75px}}@media(max-width:1150px){.layout{grid-template-columns:1fr minmax(350px,450px);max-width:920px;gap:55px}.guide{display:none}h1{font-size:64px}.story>.eyebrow{font-size:8px;letter-spacing:1px}}@media(max-width:720px){body{background:radial-gradient(ellipse at 30% 10%,#32644866,transparent 60%),#102e2b}.layout{display:block;max-width:470px;padding:0;min-height:100dvh}.story,.guide{display:none}.game{border:0;border-radius:0;box-shadow:none;padding:18px 16px max(16px,env(safe-area-inset-bottom));background:transparent;min-height:100dvh}.game-header{margin-bottom:22px}.wordmark{font-size:22px}.chapter{margin-bottom:17px}.chapter h2{font-size:16px}.hud{margin-bottom:10px}.goals{padding:10px 12px;gap:10px}#goals{gap:10px}.goal b{font-size:19px}.goal svg{width:29px;height:29px}.journey{margin-top:22px}.under-board{font-size:10px;padding-bottom:13px}.game footer{margin-top:16px}.toast{bottom:26px}}@media(max-width:360px){.game{padding:14px 10px}.hud-label{font-size:7px;letter-spacing:1px}.goals{gap:6px;padding:9px}#goals{gap:6px}.goal{gap:2px}.goal svg{width:25px;height:25px}.goal b{font-size:16px}.moves{min-width:60px}.chapter h2{font-size:14px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.goal-art{display:block;width:34px;height:34px;object-fit:contain;filter:drop-shadow(0 2px 2px #0003)}@media(max-width:360px){.goal-art{width:27px;height:27px}}
