:root{--paper:#faf3db;--ink:#283c33;--green:#477a55;--lime:#dbe89c;--peach:#efb28c;--red:#bc4b47;--muted:#657364;--edge:#ccdab0;--shadow:#355440;--font:"Trebuchet MS","Segoe UI",sans-serif;font-family:var(--font);color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,a,input{font:inherit}button{color:inherit;cursor:pointer}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid var(--red);outline-offset:4px}[hidden]{display:none!important}.sr{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 22px;border:2px solid var(--ink);border-radius:18px;background:var(--paper);box-shadow:0 4px 0 var(--shadow);font-weight:800;text-decoration:none;color:var(--ink);touch-action:manipulation}.button:active{transform:translateY(3px);box-shadow:0 1px 0 var(--shadow)}.button.primary{background:var(--lime)}.button svg,.icon-button svg{width:24px;height:24px;flex:none}.icon-button{width:52px;height:52px;border:2px solid var(--edge);border-radius:16px;background:#fff9e8;display:inline-grid;place-items:center;touch-action:manipulation}.text-link{min-height:48px;display:inline-flex;align-items:center;gap:7px;color:var(--green);font-weight:800;text-decoration:none}
.comparison{overflow-y:auto;padding:clamp(16px,3vw,38px);max-width:1680px;margin:auto}.review-head{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:center;margin-bottom:24px}.review-head h1{font-size:42px;margin:0;font-weight:900;letter-spacing:-.06em}.review-head p{margin:0;color:var(--muted);font-size:18px}.review-head a{margin-right:auto}.style-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}.style-card{margin:0;border-radius:24px;padding:14px;background:#fffbed;border:2px solid #e4d9b9;overflow:hidden}.style-card header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.style-card h2{font-size:24px;margin:0}.style-letter{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--lime);font-weight:900}.style-card img{display:block;width:100%;height:auto;object-fit:contain;border-radius:14px}.style-card p{font-size:15px;color:var(--muted);margin:14px 0 2px}.review-footer{display:flex;justify-content:center;padding:30px 0 12px}@media(max-width:780px){.style-grid{grid-template-columns:1fr;max-width:480px;margin:auto}.review-head{justify-content:center}.review-head a{flex-basis:100%}.review-head h1{font-size:36px}}
html.game,html.game body{height:100%;overflow:hidden;overscroll-behavior:none}#app{position:fixed;inset:0;display:flex;flex-direction:column;max-width:840px;margin:auto;padding:env(safe-area-inset-top) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));gap:12px}#hud{display:flex;align-items:center;gap:12px;min-height:74px;flex:none}.metric{display:flex;align-items:center;gap:7px;min-width:0;font-size:24px;font-weight:900;font-variant-numeric:tabular-nums}.metric svg{width:24px;height:24px;flex:none}.metric small{font-size:15px}.metric.best{margin-right:auto;color:var(--green)}#hud .icon-button{width:48px;height:48px;flex:none}.board-space{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;position:relative}#board{display:block;width:100%;height:auto;aspect-ratio:4/3;max-height:100%;border:3px solid var(--green);border-radius:14px;background:#e8efcf;touch-action:none;object-fit:contain}#grace{position:absolute;top:50%;left:50%;width:66px;height:66px;border:7px solid var(--peach);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;animation:rescue .5s ease-out infinite}#app.rewinding #board{border-color:#748ba2}#controls{display:flex;align-items:center;justify-content:center;gap:12px;flex:none;min-height:68px}#rewind{min-width:160px;touch-action:none}#rewind[aria-pressed=true]{background:#c4d8e6;box-shadow:0 1px 0 var(--shadow);transform:translateY(3px)}.prototype-mark{font-size:12px;color:var(--muted);text-align:center;flex:none;margin:0;line-height:1.5}#panel{position:absolute;inset:0;display:grid;align-items:center;justify-items:center;padding:16px;background:rgba(250,243,219,.86);z-index:3}.menu-card{width:min(360px,100%);max-height:100%;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;padding:26px 20px;text-align:center;border:2px solid var(--edge);border-radius:28px;background:#fffbed;box-shadow:0 7px 0 #d5dfb8}.menu-card h1,.menu-card h2{font-weight:900;letter-spacing:-.055em;margin:0 0 22px;font-size:48px}.menu-card h2{font-size:36px}.menu-card .button{width:100%;margin-top:12px}.mode-picker{display:flex;gap:6px;padding:5px;border-radius:18px;background:#e8eddb;margin-bottom:12px}.mode-picker button{min-height:48px;flex:1;border:0;background:transparent;border-radius:13px;font-weight:800}.mode-picker button[aria-pressed=true]{background:var(--green);color:white}.menu-links{display:flex;justify-content:space-between;gap:14px;margin-top:18px}.result-score{font-size:68px;font-weight:900;line-height:1.1;margin:8px 0}.result-meta{color:var(--muted);margin:12px 0;display:flex;justify-content:center;gap:20px}.result-meta svg{width:20px;height:20px;vertical-align:middle}#dialog{position:fixed;inset:0;z-index:8;display:grid;place-items:center;padding:16px;background:#283c3366}.dialog-card{position:relative;width:min(400px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;background:#fffbed;border:2px solid var(--edge);border-radius:24px;padding:20px;scrollbar-width:thin;scrollbar-color:#7c9467 #e8eddb}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;top:-20px;padding:8px 0;background:#fffbed;z-index:1}.dialog-head h2{margin:0;font-size:30px}.scores{list-style:none;margin:18px 0 0;padding:0}.scores li{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--edge);padding:15px 4px;font-size:24px;font-weight:850}.scores li .rank{font-size:16px;color:var(--muted);min-width:24px}.scores li strong{margin-right:auto}.scores li small{font-size:15px;color:var(--muted);display:flex;align-items:center;gap:5px}.scores li svg{width:18px;height:18px}.no-scores{color:var(--muted);padding:24px 0}#update{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);z-index:12;display:flex;gap:10px;padding:12px;background:#fffbed;border:2px solid var(--edge);border-radius:18px;box-shadow:0 5px 16px #283c3333}#update button{min-height:48px;border:0;border-radius:12px;padding:10px 16px;background:var(--lime);font-weight:800}
@keyframes rescue{from{opacity:.9;transform:translate(-50%,-50%) scale(.85)}to{opacity:.2;transform:translate(-50%,-50%) scale(1.3)}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}#grace{opacity:.8}}@media(max-width:380px){#app{gap:8px;padding-left:10px;padding-right:10px}#hud{gap:8px}.metric{font-size:21px}.metric svg{width:20px;height:20px}#hud .icon-button{width:48px}.menu-card{padding:22px 16px}}
.menu-card{scrollbar-width:thin;scrollbar-color:#7c9467 #e8eddb}@media(max-height:500px){#panel{position:fixed;inset:8px;padding:8px}.menu-card{padding:14px 20px}.menu-card h1,.menu-card h2{font-size:32px;margin-bottom:12px}.menu-links{margin-top:8px}.menu-card .button{margin-top:8px}.mode-picker{margin-bottom:6px}.result-score{font-size:44px}.result-meta{margin:8px 0}}
button svg{pointer-events:none}
/* A: painted picnic garden. The original generated lawn and sprites lead the screen. */
html.game{--paper:#fbf0d4;--ink:#4b3024;--green:#55734b;--lime:#d7df91;--peach:#eaaa75;--red:#b84536;--muted:#746448;--edge:#c6cd99;--shadow:#75925a;background:var(--paper)}
html.game body{background:var(--paper) url("art/storybook/paper.webp") center/cover no-repeat}
#app{max-width:1060px;padding:env(safe-area-inset-top) max(16px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));gap:10px}
#hud{min-height:78px;gap:14px;position:relative;z-index:2}.metric{font-size:30px;font-weight:800;color:var(--ink)}.metric svg,.metric img{width:30px;height:30px;object-fit:contain;flex:none}.metric.best{color:var(--ink)}.metric small{font-size:17px}.metric:first-child{color:var(--ink)}
.icon-button{border:0;border-radius:50%;background:#728354;color:#fff5d9;box-shadow:0 3px 0 #4d613e}.icon-button:active{box-shadow:0 1px 0 #4d613e;transform:translateY(2px)}#hud .icon-button{width:50px;height:50px}.icon-button:disabled{box-shadow:none;opacity:.45}
#board{border:0;border-radius:7px;background:#aaba71;box-shadow:0 0 0 2px #5e783f,0 7px 12px #654b2426;position:relative;z-index:1}
#app.rewinding #board{box-shadow:0 0 0 3px #b48754,0 7px 12px #654b2426}
#grace{z-index:2;border-color:#f4cc7d;background:#efae5b22}
#controls{position:relative;z-index:2;min-height:66px;padding:5px 0}#rewind{min-width:160px;border:0;background:#f8ecd0;color:var(--ink);box-shadow:0 4px 0 #b69b72;font-weight:800;min-height:54px;border-radius:26px;padding:12px 24px}
#rewind[aria-pressed=true]{background:#e7d3a8;box-shadow:0 1px 0 #b69b72;transform:translateY(3px)}
#panel{background:#fbf0d485;backdrop-filter:blur(2px);position:fixed;inset:0;padding:24px;z-index:4}
.menu-card{border:0;border-radius:38px 32px 35px 29px;background:#fff4dfeF;box-shadow:0 7px 0 #b5bf8880,0 12px 50px #573d2224;padding:28px 26px;width:min(350px,100%);scrollbar-color:#78915c #e9dfbf}
.menu-card h1,.menu-card h2{color:var(--ink);font-family:Georgia,"Times New Roman",serif;letter-spacing:-.05em;font-size:48px;margin-bottom:22px}
.menu-card h1{display:flex;align-items:center;justify-content:center;gap:12px}.menu-portrait{width:70px;height:70px;object-fit:contain;filter:drop-shadow(0 3px 0 #5c743633)}
.button{border:0;border-radius:25px;background:#f6e5bd;box-shadow:0 4px 0 #bea477;color:var(--ink);font-weight:800;min-height:54px}.button.primary{background:#66854f;color:#fff7e2;box-shadow:0 4px 0 #3e5e35}.button:active{box-shadow:0 1px 0 #bea477;transform:translateY(3px)}.button.primary:active{box-shadow:0 1px 0 #3e5e35}
.mode-picker{background:#e4e5c5;border-radius:20px;margin-bottom:14px}.mode-picker button{color:var(--ink);border-radius:16px;min-height:48px}.mode-picker button[aria-pressed=true]{background:#fff7de;color:#3c5731;box-shadow:0 2px 0 #aab57b}
.menu-links{justify-content:center;margin-top:20px;gap:36px}.text-link{border:0;background:none;padding:0 10px;color:#4b623c}.menu-links #help{width:48px;border-radius:50%;background:#e5e5c5;justify-content:center;font-family:Georgia,serif;font-size:24px}
.dialog-card{background:#fff4df;border:0;border-radius:30px;box-shadow:0 7px 0 #b5bf8880,0 12px 50px #573d2230;color:var(--ink);scrollbar-color:#78915c #e9dfbf}.dialog-head{background:#fff4df}.dialog-head h2{font-family:Georgia,serif;font-size:32px;letter-spacing:-.04em}.scores li{border-color:#dddbb1}.scores li .name{font-size:16px;min-width:54px}.scores li strong{font-size:26px}.no-scores{font-size:18px;text-align:center}.result-meta{color:var(--ink)}.result-meta img{width:24px;height:24px;vertical-align:middle}
.score-scope{display:flex;gap:12px;margin:14px 0}.score-scope button{border:0;min-height:48px;flex:1;border-radius:15px;background:#ede8c9;color:#6c694b;font-weight:800}.score-scope button[aria-pressed=true]{background:#71874f;color:#fff7e2}.score-status{font-size:14px;line-height:1.4;color:#746448;text-align:center;padding:10px 0}.profile{display:flex;align-items:center;gap:12px;margin-top:18px}.profile label{font-weight:800;font-size:15px}.profile input{min-width:0;width:104px;min-height:48px;border:2px solid #bfc89b;border-radius:14px;background:#fff9e8;text-align:center;color:var(--ink);font-weight:800;text-transform:uppercase;letter-spacing:.1em}
#update{max-width:calc(100% - 24px);width:max-content;background:#fff4df;box-shadow:0 4px 0 #b5bf8880;border:0;color:var(--ink);align-items:center;flex-wrap:wrap;justify-content:center;font-size:15px}#update button{background:#d7df91;color:var(--ink)}
.help-card .help-cue{display:flex;justify-content:center;gap:24px;align-items:center;margin:24px 0;color:#6d8051}.help-cue svg{width:80px;height:80px}.help-card p{font-size:16px;text-align:center;margin:14px 0;color:var(--muted)}.help-card kbd{display:inline-block;border:1px solid #c6cd99;border-radius:6px;background:#fff9e8;padding:5px 8px;font:inherit}
#breeze{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}.leaf{position:absolute;width:28px;height:28px;background:url("art/storybook/leaf-a.png") center/contain no-repeat;opacity:.9;animation:breeze 11s ease-in-out infinite;transform-origin:50% 90%}.leaf-one{top:calc(var(--board-top,170px) - 44px);left:14px;rotate:-25deg}.leaf-two{top:calc(var(--board-bottom,470px) + 22px);left:26px;background-image:url("art/storybook/leaf-b.png");animation-delay:-4s;rotate:25deg}.leaf-three{bottom:20px;right:16px;animation-delay:-7s;rotate:50deg}
@keyframes breeze{0%,100%{transform:translate(0,0) rotate(-8deg)}40%{transform:translate(8px,-7px) rotate(12deg)}60%{transform:translate(12px,-4px) rotateY(160deg) rotate(18deg)}}
@media(prefers-reduced-motion:reduce){.leaf{animation:none;transform:none}}
@media(max-width:430px){#hud{gap:10px}.metric{font-size:25px}.metric svg,.metric img{width:27px;height:27px}.metric small{font-size:16px}#app{padding-left:14px;padding-right:14px}#hud .icon-button{width:48px;height:48px}.menu-card{padding:25px 22px}.menu-card h1{font-size:44px}.menu-portrait{width:62px;height:62px}}
@media(max-width:380px){#hud{gap:8px}.metric{font-size:23px}.metric svg,.metric img{width:24px;height:24px}.metric{gap:6px}#app{padding-left:12px;padding-right:12px}.menu-card{padding:24px 20px}}
@media(max-height:500px){#app{padding-bottom:8px}#hud{min-height:62px}#controls{min-height:58px}#panel{inset:0;padding:12px}.menu-card{padding:16px 24px}.menu-card h1,.menu-card h2{font-size:36px;margin-bottom:12px}.menu-portrait{width:52px;height:52px}.mode-picker{margin-bottom:8px}.menu-links{margin-top:12px}.menu-card .button{margin-top:8px}.result-score{font-size:42px}}
#garden-frame{position:absolute;pointer-events:none;background:url("art/storybook/lawn.webp") center/100% 100% no-repeat;border-radius:18px;box-shadow:0 7px 12px #654b2426;z-index:0}#board{box-shadow:0 0 0 1px #5e783f;border-radius:3px}#app{padding-left:24px;padding-right:24px}@media(max-width:430px){#app{padding-left:22px;padding-right:22px}}@media(max-width:380px){#app{padding-left:20px;padding-right:20px}}
@media(max-width:380px){#hud{gap:7px}.metric{font-size:22px}#hud .metric:nth-child(3){gap:4px}#hud .metric:nth-child(3) svg{width:18px;height:18px}#hud .metric:nth-child(3) small{font-size:13px}}
