:root{--cream:#f8f4e9;--ink:#28483f;--muted:#738078;--orange:#d66d49;--gold:#e4b861;--line:#dcdccb;--paper:#fffcf3;--green:#4f7e6b;font-family:system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,select{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{border:1px solid transparent;background:var(--ink);color:var(--paper);border-radius:12px;padding:13px 19px;min-height:48px;font-size:13px;font-weight:700;cursor:pointer;transition:transform .14s,box-shadow .14s,background .14s}button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 0 #28483f15}button:active:not(:disabled){transform:translateY(1px);box-shadow:none}button:disabled{opacity:.42;cursor:not-allowed}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid var(--orange);outline-offset:3px}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}.topbar{max-width:1040px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:16px 28px;border-bottom:1px solid var(--line);gap:12px}.topbar>a:first-child{font-size:12px}.brand{font-family:Georgia,serif;font-size:30px;font-weight:800;letter-spacing:-1.6px;display:flex;align-items:center;gap:5px}.brand-star{color:var(--orange);font-size:33px}.brand-dot{color:var(--orange);margin-left:-4px}.quiet-button{background:none;color:var(--ink);border:1px solid var(--line);padding:8px 12px;min-height:38px;font-size:11px}.game-heading{max-width:790px;margin:24px auto 22px;padding:0 20px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:800;color:var(--orange);margin:0 0 10px}h1{font-family:Georgia,system-ui,serif;letter-spacing:-1.4px;font-size:44px;line-height:1.15;margin:0 0 8px}.game-heading>p:last-child{font-size:14px;color:var(--muted);margin:0}.layout{max-width:790px;display:grid;grid-template-columns:minmax(0,440px) minmax(0,270px);gap:36px;margin:0 auto;padding:0 20px}.play-column{min-width:0}.statbar{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:12px 2px;font-size:11px;font-weight:800;min-height:45px}.statbar>span:nth-child(2){color:var(--orange)}.stage-shell{border:1px solid #c8ceba;border-radius:20px;overflow:hidden;background:#f1e6c7;box-shadow:0 8px 0 #28483f0a}#stage{position:relative;min-height:400px}canvas{display:block;width:100%;height:auto;aspect-ratio:420/510;touch-action:none}.checker-edge{height:9px;background:conic-gradient(#658e7a 25%,#ebdfc5 0 50%,#658e7a 0 75%,#ebdfc5 0) 0 0/18px 18px}.controls{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;padding:15px 0}.direction-pad{display:flex;width:100%;justify-content:center;gap:10px}.direction-pad button{min-width:62px;font-size:20px;background:var(--paper);border:1px solid #c7cebf;color:var(--ink);box-shadow:0 3px 0 #28483f12;touch-action:none;user-select:none}.power{background:#f0dcaa;color:#665336;border:1px solid #ddc98f}.secondary{background:var(--paper);border-color:var(--line);color:var(--ink)}select{border:1px solid var(--line);padding:12px 8px;min-height:48px;border-radius:12px;background:var(--paper);max-width:100%;font-size:12px}.controls>.power,.controls>.secondary{font-size:11px;padding:12px}.sidebar{padding-top:44px}.chapter-row{font-size:11px;letter-spacing:.6px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:16px;font-weight:800}.tiny-flower{font-size:26px;color:var(--orange)}.mission{font-size:13px;line-height:1.8;color:#5f7468;margin:16px 0}.bebo-scene{border-radius:22px;background:#eae7d5;text-align:center;padding:6px 15px 18px;position:relative;overflow:hidden}.bebo-scene:before{content:'✳';position:absolute;left:12px;top:15px;font-size:28px;color:#bcbea4}#bebo{width:145px;margin:0 auto -6px}#bebo svg{display:block;width:100%}.speech{border-radius:13px;background:var(--paper);font-size:12px;line-height:1.65;padding:13px;min-height:65px;position:relative}.speech:before{content:'';position:absolute;top:-7px;left:46%;border-right:8px solid transparent;border-left:8px solid transparent;border-bottom:9px solid var(--paper)}.bebo-eyes{transform-origin:90px 65px;animation:blink 7s infinite}.bebo-hand{transform-origin:45px 120px;animation:wave 4.5s ease-in-out infinite}#bebo[data-mood=concern] .bebo-mouth{transform:translate(0,176px) scaleY(-1)}#bebo[data-mood=proud]{animation:proud .5s ease-in-out 2}.side-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.side-actions button{padding:12px 5px;font-size:12px}.album-button{margin:16px 0 0;background:none;color:var(--green);border:1px dashed #b9c6b0;width:100%;font-size:24px;text-align:left;display:flex;align-items:center;gap:10px}.album-button span{font-size:10px;font-weight:600}.storage-note{font-size:10px;color:var(--muted);line-height:1.6}.text-button{background:none;color:var(--muted);font-size:10px;min-height:32px;padding:0}footer{max-width:790px;margin:30px auto 0;padding:16px 20px 25px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px;color:var(--muted);font-size:9px;letter-spacing:.8px}.modal[hidden]{display:none}.modal{position:fixed;inset:0;background:#203d35a6;backdrop-filter:blur(5px);display:grid;place-items:center;z-index:50;padding:18px}.modal-card{background:var(--cream);border:1px solid #fff7dd;border-radius:24px;width:min(450px,100%);max-height:92dvh;overflow:auto;text-align:center;padding:32px 27px;box-shadow:0 20px 90px #182b2944}.modal h2{font-family:Georgia,system-ui,serif;font-size:32px;letter-spacing:-.8px;margin:10px 0 14px}.modal p{font-size:13px;color:#62786a;line-height:1.9;margin:0 0 20px}.modal-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:18px}.modal-actions button:not(:first-child){background:var(--paper);color:var(--ink);border-color:var(--line)}.result-stars{font-size:42px;color:#ca9d40;letter-spacing:5px;margin-top:12px}.result-score{font-family:Georgia,serif;font-size:48px;margin:6px}.result-score small{display:block;font:700 10px system-ui;letter-spacing:1.6px;color:var(--muted);margin-top:7px}.level-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.level-grid button{padding:12px 2px;background:#e5e8d8;color:var(--ink);font-size:12px}.level-grid button.current{border:2px solid var(--orange)}.mode-options{margin-top:14px}.mode-options button{margin:4px;background:#d8e6df;color:var(--ink)}.harvest-decoration{height:62px;display:flex;justify-content:space-around;align-items:center;color:#638e6b;font-size:36px;background:repeating-linear-gradient(0deg,transparent,transparent 27px,#aab19a 28px,transparent 29px)}.match-board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;padding:12px;background:#e4e6cc;touch-action:none}.tile{padding:0;min-height:0;aspect-ratio:1;position:relative;border-radius:9px;background:#faf5df;border:1px solid #d7d7bd;display:grid;place-items:center}.tile:hover:not(:disabled){transform:none;background:#fffbee;box-shadow:none}.tile svg{width:88%;height:88%;pointer-events:none}.tile.selected{outline:3px solid var(--orange);outline-offset:-2px;background:#ffe2ae}.tile.hint{outline:3px dashed #597e61;outline-offset:-2px}.tile.popped{animation:pop .3s}.vine{position:absolute;font-size:47px;line-height:1;inset:0;color:#587b48;pointer-events:none;text-shadow:1px 1px #fff}.crate{background:#aa8260}.crate svg{opacity:.15}.crate-mark{position:absolute;inset:0;display:grid;place-items:center;color:#fff1c8;font-size:36px;pointer-events:none}.special{position:absolute;bottom:0;right:0;background:#28483f;color:#fff5cd;border-radius:7px;font-size:14px;padding:0 3px}.kitchen{padding-bottom:10px;background:#eee2c7}.kitchen-canopy{text-align:center;font-weight:800;color:#f9f0d8;background:repeating-linear-gradient(90deg,#507e6c 0 30px,#65917c 30px 60px);padding:17px 5px;border-bottom:6px solid #e8c079;font-size:13px}.guests{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:14px 10px 10px}.guest{padding:10px 4px 7px;background:#fff7e0;color:var(--ink);border:1px solid #d8cdaf;display:flex;align-items:center;flex-direction:column;gap:3px;min-height:125px;border-radius:14px;font-size:11px}.guest.empty{background:#e6d9bd;border-style:dashed;justify-content:center;color:#9a9d84;font-size:25px}.guest small{font-size:9px}.guest .order{border-radius:7px;padding:3px 7px;background:#eae5cc;font-size:9px}.guest-face{width:35px;height:39px;background:#eaba96;border-radius:15px;position:relative;border-top:8px solid #71624f;display:flex;gap:7px;align-items:center;justify-content:center}.guest-face i{width:3px;height:4px;border-radius:100%;background:#33493b}.guest-face b{position:absolute;bottom:-2px;font-size:19px}.mood-worried b{transform:scaleY(-1);bottom:-5px}.guest progress{width:84%;height:7px;accent-color:#648764;margin-top:3px}.filling-options{display:flex;gap:6px;padding:0 10px 12px}.filling-options button{flex:1;min-width:0;padding:8px 2px;font-size:10px;background:#f6efd8;color:#526c58;border:1px solid #c4c6a6;min-height:39px}.filling-options .selected{background:#406e5d;color:#fff2d8}.worktop{padding:12px 10px;background:#c69c70;border-top:7px solid #ba8961;border-bottom:4px solid #b18763;display:grid;grid-template-columns:.8fr 1.6fr;gap:10px}.fold-station{padding:0 5px;background:#f1ddb3;color:#705a3e;border:2px solid #987952;border-radius:15px;min-height:133px;display:flex;align-items:center;justify-content:center;flex-direction:column}.fold-station svg{width:82px;max-width:100%}.fold-station span{font-size:9px;line-height:1.5}.pots{display:grid;grid-template-columns:1fr 1fr;gap:7px}.pot{padding:4px 2px;background:none;color:#574d35;border:1px solid #987952;display:flex;align-items:center;flex-direction:column;position:relative;gap:5px;min-width:0}.pot-body{width:63px;max-width:100%;height:58px;border-radius:5px 5px 26px 26px;background:#6f8b83;border:3px solid #45685b;display:grid;place-items:center;font-size:28px;color:#e3dfc3}.pot-body svg{width:48px;height:45px}.pot strong{font-size:10px}.pot small{font-size:8px;line-height:1.5}.steam{font-size:15px;line-height:1;height:16px;color:#fff4d7;opacity:.15}.cooking .steam,.ready .steam{opacity:1;animation:steam 1.6s infinite}.ready{background:#dde8b9;box-shadow:inset 0 0 0 2px #86a166}.burnt{background:#af7257}.burnt .pot-body{background:#5f5246}.plate{display:flex;align-items:center;justify-content:center;gap:12px;font-size:10px;padding:9px 12px;min-height:65px}.serving-plate{width:64px;height:41px;border-radius:50%;background:#faf4da;border:3px solid #819d8a;display:grid;place-items:center;font-size:23px;color:#c8c9ad}.serving-plate svg{width:50px;height:40px}.word-preview-note{text-align:center;background:#dfd8b9;color:#586855;padding:13px 8px;font-size:9px;font-weight:800;letter-spacing:.8px}.word-board{padding:19px 35px 10px;display:grid;gap:6px}.word-row{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.letter{aspect-ratio:1;display:grid;place-items:center;position:relative;background:#fff9e7;border:2px solid #cccdb8;border-radius:7px;font-size:26px;font-weight:700;padding-bottom:6px}.letter small{position:absolute;bottom:0;right:4px;font-size:10px}.state-0{background:#ccd0c3!important;color:#475c50!important;border-color:#a3b0a1!important}.state-1{background:#e7c878!important;color:#5a512c!important;border-color:#cfaa4e!important}.state-2{background:#4f806c!important;color:#fff3d7!important;border-color:#37654f!important}.word-keys{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:4px;padding:8px 10px}.key{min-height:39px;min-width:0;padding:0;font-size:16px;border-radius:6px;background:#fff6dc;color:#395948;border:1px solid #c4c9ad}.key.wide{grid-column:span 3;font-size:12px}.word-bank{padding:12px 16px;font-size:11px;color:#586e5c}.word-bank summary{cursor:pointer;min-height:32px}.word-bank p{font-size:12px;line-height:2.2;max-height:140px;overflow:auto}.word-bank[open]{background:#faf4df}textarea{width:100%;min-height:100px}#stage:has(.word-board),#stage:has(.match-board),#stage:has(.kitchen){min-height:0}@keyframes blink{0%,44%,48%,100%{transform:scaleY(1)}46%{transform:scaleY(.1)}}@keyframes wave{0%,75%,100%{transform:rotate(0)}85%{transform:rotate(-12deg)}}@keyframes proud{50%{transform:translateY(-4px) rotate(2deg)}}@keyframes pop{50%{transform:scale(.8);opacity:.5}}@keyframes steam{50%{transform:translateY(-4px);opacity:.4}}@media(max-width:700px){.topbar{padding:10px 15px}.brand{font-size:25px}.brand-star{font-size:25px}.topbar>a:first-child{font-size:10px}.game-heading{max-width:460px;margin:18px auto 9px;padding:0 16px}h1{font-size:32px}.game-heading .eyebrow{font-size:8px;margin-bottom:7px}.game-heading>p:last-child{font-size:12px}.layout{display:flex;flex-direction:column;max-width:460px;padding:0 14px;gap:0}.sidebar{padding-top:3px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.chapter-row{grid-column:1/-1;padding-bottom:7px;font-size:10px}.mission{grid-column:1/-1;margin:0;font-size:11px}.bebo-scene{grid-column:1/-1;display:flex;align-items:center;padding:0 10px;background:#e9e7d8;min-height:82px}#bebo{flex:0 0 90px;margin:0}.speech{font-size:11px;min-height:0;flex:1}.speech:before{display:none}.side-actions{margin:0}.album-button{margin:0;font-size:24px}.storage-note{grid-column:1/-1;margin:0;font-size:10px}.text-button{text-align:left}.controls{padding:12px 0}.statbar{font-size:10px}.modal-card{padding:24px 20px}.modal h2{font-size:28px}.modal p{font-size:12px}.direction-pad button{min-width:64px}.word-board{padding-left:32px;padding-right:32px}footer{font-size:8px;margin-top:18px;padding:14px}}@media(max-width:350px){h1{font-size:28px}.word-board{padding-left:25px;padding-right:25px}.letter{font-size:21px}.key{font-size:13px;min-height:40px}.match-board{gap:3px;padding:8px}.guest{min-height:117px}.topbar{gap:7px}.quiet-button{font-size:9px}.direction-pad button{min-width:54px}.pot-body{width:49px}.sidebar{gap:8px}.controls>.power{font-size:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Semantic harvest controls mirror the drawn cells. Canvas focus rings remain visible. */
.harvest-accessible-grid{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
