:root{color-scheme:light;--ink:#405334;--muted:#879379;--line:#e7ead9;--orange:#ffb354}*{box-sizing:border-box}body{margin:0;background:#fffdf3;color:var(--ink);font:15px 'Trebuchet MS',Arial,sans-serif;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.app{max-width:920px;margin:auto;padding:24px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.identity{display:flex;gap:17px;align-items:center}.identity img{width:78px;height:78px;object-fit:contain}.eyebrow{font-size:9px;letter-spacing:2px;color:#8b977f;font-weight:bold}h1{font-size:34px;letter-spacing:-1px;margin:5px 0}header p{font-size:13px;margin:0;color:var(--muted)}button{font:inherit;font-size:13px;font-weight:bold;min-height:44px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);padding:12px 18px;cursor:pointer}button:hover:not(:disabled){background:#fff3d6}button:disabled{opacity:.4;cursor:default}button:focus-visible,#board:focus-visible{outline:3px solid #659f73;outline-offset:3px}.primary{background:var(--orange);border-color:#eea445;color:#694321;box-shadow:0 3px #e1973d}.primary:hover:not(:disabled){background:#ffc778}.layout{display:grid;grid-template-columns:minmax(0,1fr) 258px;gap:36px;align-items:center}.game{min-width:0;background:white;border:1px solid var(--line);border-radius:25px;padding:17px;box-shadow:0 12px 35px #71924f08}.hud{display:flex;justify-content:space-between;padding:2px 9px 19px}.hud>div:last-child{text-align:right}.hud>div:nth-child(2){text-align:center}.hud small{display:block;font-size:9px;color:var(--muted);letter-spacing:1.5px;margin-bottom:4px}.hud b{font-size:27px;font-variant-numeric:tabular-nums}#board{aspect-ratio:1;width:100%;position:relative;border-radius:22px;touch-action:none}canvas{display:block}#message{text-align:center;min-height:16px;font-size:11px;color:var(--muted);margin:18px 0}.controls{display:flex;justify-content:space-between;gap:12px}.directions{display:flex;gap:5px}.directions button{width:44px;padding:6px;font-size:23px;background:#f5f8ec}#undo{font-size:11px;padding:10px 12px;background:#fff8e8}.harvest{text-align:center}.target-icon{position:relative;width:98px;height:98px;background:#ffc66c;border:1px solid #f2b95a;border-radius:24px;margin:22px auto 18px;display:grid;place-items:center;box-shadow:0 7px #eed39b}.target-icon span{font-size:35px;color:#87511f;font-weight:bold;letter-spacing:-1px}.target-icon i{position:absolute;right:-10px;top:-7px;width:34px;height:16px;border-radius:100% 0 100% 0;background:#95bb71;transform:rotate(-20deg)}h2{font-size:22px;letter-spacing:-.6px;margin:10px 0 17px}.meter{height:7px;border-radius:8px;background:#e9eddc;overflow:hidden;margin:0 20px}.meter span{display:block;background:#91b87a;height:100%;width:0;transition:width .2s}.harvest p{font-size:10px;color:var(--muted);letter-spacing:1px}.harvest b{color:#69884f;font-size:13px;margin-left:6px}.tip{font-size:13px;line-height:1.75;color:#839073;background:#f4f6e9;border-radius:15px;padding:16px;margin:23px 0}aside>.primary{width:100%}aside>#help{width:100%;margin-top:10px}.text{border:0;background:transparent;font-size:11px;font-weight:normal;color:#839176}.legend{text-align:center;font-size:11px;color:#a0a991;margin:18px 0}footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:6px}.footnote{text-align:center;font-size:10px;color:#99a58c;margin:24px 0 0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}dialog{width:420px;max-width:calc(100vw - 28px);max-height:90dvh;overflow:auto;border:1px solid #e6e8d6;border-radius:26px;background:#fffdf6;color:var(--ink);padding:28px;text-align:center;box-shadow:0 22px 90px #6b855530}dialog::backdrop{background:#e4ebd3bb;backdrop-filter:blur(6px)}dialog>img{width:180px;height:180px;object-fit:contain}dialog h2{font-size:27px;margin:12px 0}dialog p{font-size:14px;line-height:1.7;color:#89947e}dialog .tip{font-size:12px;margin:16px 0}dialog .primary{width:100%;margin-top:8px}#modal-actions{display:grid;gap:10px;margin-top:20px}.achievement{display:flex;align-items:center;gap:14px;padding:12px 0;text-align:left;border-bottom:1px solid var(--line)}.achievement img{width:48px;height:48px}.achievement h3{font-size:15px;margin:0}.achievement p{font-size:12px;margin:4px 0}.locked{opacity:.4}@media(min-width:761px){.app{max-width:clamp(680px,calc(100dvh + 38px),920px)}}@media(max-width:760px){.app{max-width:510px;padding:14px}.layout{display:block}header{margin-bottom:16px}.identity{gap:11px}.identity img{width:59px;height:59px}.identity .eyebrow{font-size:8px;letter-spacing:1.3px}h1{font-size:27px}header p{font-size:11px}#pause{padding:10px 13px;font-size:12px}.game{padding:12px;border-radius:21px}.hud{padding:0 7px 13px}.hud b{font-size:23px}.hud small{font-size:8px}#message{font-size:10px;margin:14px 0}.directions{gap:4px}.directions button{width:40px;min-height:44px}.controls{gap:5px}#undo{font-size:10px;padding:8px}aside{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;align-items:center}.harvest{grid-column:1/-1;display:flex;gap:9px;align-items:center;padding:10px 12px;background:#f3f6e8;border-radius:14px}.harvest>.eyebrow{font-size:8px;max-width:54px;letter-spacing:1px}.target-icon{width:41px;height:41px;flex-shrink:0;margin:0 3px 3px;border-radius:11px;box-shadow:0 3px #eed39b}.target-icon span{font-size:18px}.target-icon i{width:18px;height:8px;right:-5px;top:-3px}.harvest h2{font-size:13px;margin:0;text-align:left;flex:1}.harvest .meter{display:none}.harvest p{font-size:8px;letter-spacing:0;max-width:50px;line-height:1.6}.harvest b{margin:0;display:block;font-size:12px}aside>.tip,aside>.legend{display:none}aside>.primary{min-height:44px;padding:10px;font-size:12px}aside>#help{margin:0}footer{grid-column:1/-1;padding:0}.footnote{margin:10px 0}}@media(prefers-reduced-motion:reduce){.meter span{transition:none}}@media(max-width:350px){.identity img{width:43px;height:43px}h1{font-size:23px}.identity p{display:none}.directions button{width:35px}.app{padding:10px}}

#board{overflow:hidden}
