:root{--ink:#2c2418;--ink-soft:#5c5040;--panel:#faf4e6f0;--edge:#8a7a5c;--accent:#3f7a4a;--ok:#2f7a3d;--warn:#a8690c;--error:#b23a2a;--radius:10px;--font:Georgia, "Iowan Old Style", "Palatino Linotype", serif;--gap:8px}body.style-pixel{--ink:#f1ead8;--ink-soft:#c6bca4;--panel:#1e1a14eb;--edge:#0d0b08;--accent:#7cc36a;--ok:#7cc36a;--warn:#f0b84a;--error:#ff6f5e;--radius:0px;--font:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{height:100%;font-family:var(--font);color:var(--ink);touch-action:none;-webkit-user-select:none;user-select:none;background:#a9c48b;margin:0;overflow:hidden}#app,#game{position:fixed;inset:0}#game canvas{display:block}body.style-pixel #game canvas{image-rendering:pixelated}#paper{pointer-events:none;opacity:0;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.55  0 0 0 0 0.47  0 0 0 0 0.35  0 0 0 0.55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:fixed;inset:0}body.style-storybook #paper{opacity:.35}button{font:inherit;color:var(--ink);background:var(--panel);border:1.5px solid var(--edge);border-radius:var(--radius);cursor:pointer;min-width:44px;min-height:44px;padding:8px 12px;font-size:14px}button:hover:not(:disabled){border-color:var(--accent)}button.active{outline:2px solid var(--accent);outline-offset:1px}button:disabled{opacity:.45;cursor:default}button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}body.style-pixel button{border-width:2px;box-shadow:2px 2px #000}.hidden{display:none!important}.topbar{top:calc(env(safe-area-inset-top) + var(--gap));left:var(--gap);right:var(--gap);gap:var(--gap);pointer-events:none;flex-wrap:wrap;align-items:center;display:flex;position:fixed}.topbar>*{pointer-events:auto}.title{background:var(--panel);border:1.5px solid var(--edge);border-radius:var(--radius);padding:8px 12px;font-size:18px;font-weight:700}.inventory,.shelter{background:var(--panel);border:1.5px solid var(--edge);border-radius:var(--radius);gap:10px;padding:10px 12px;font-size:14px;display:flex}.shelter.ready{color:var(--ok);font-weight:700}.topbar button:first-of-type{margin-left:auto}.status{left:50%;bottom:calc(env(safe-area-inset-bottom) + 132px);max-width:calc(100vw - 2 * var(--gap));background:var(--panel);border:1.5px solid var(--edge);border-radius:var(--radius);align-items:center;gap:10px;padding:8px 14px;font-size:15px;display:flex;position:fixed;transform:translate(-50%)}.status .icon{text-align:center;width:1.2em;font-weight:700}.status[data-tone=ok] .icon{color:var(--ok)}.status[data-tone=warn]{border-color:var(--warn)}.status[data-tone=warn] .icon{color:var(--warn)}.status[data-tone=error]{border-color:var(--error)}.status[data-tone=error] .icon{color:var(--error)}.status .cascade{border-color:var(--error);min-height:34px;padding:4px 10px}.touch-confirm{right:var(--gap);bottom:calc(env(safe-area-inset-bottom) + 132px);gap:var(--gap);display:flex;position:fixed}.touch-confirm .ok{border-color:var(--ok);min-width:96px;font-weight:700}.bottom{padding:0 var(--gap) calc(env(safe-area-inset-bottom) + var(--gap));background:var(--panel);border-top:1.5px solid var(--edge);position:fixed;bottom:0;left:0;right:0}.tabs{top:0;left:var(--gap);gap:4px;display:flex;position:absolute;transform:translateY(-100%)}.tabs button{border-radius:var(--radius) var(--radius) 0 0;background:var(--panel);border-bottom:none;min-height:36px;padding:4px 14px}.tabs button[aria-selected=true]{box-shadow:inset 0 3px 0 var(--accent);outline:none;font-weight:700}.bar{gap:var(--gap);padding-top:var(--gap);display:flex;overflow-x:auto}body.mode-play .build-bar,body.mode-build .play-bar,body.mode-play .build-only{display:none}.tool{white-space:nowrap;flex:none}.piece{flex-direction:column;flex:none;justify-content:flex-end;align-items:center;gap:2px;width:104px;height:104px;padding:6px 4px;font-size:11.5px;line-height:1.15;display:flex}.piece img{object-fit:contain;flex:auto;max-width:88px;min-height:0}body.style-pixel .piece img{image-rendering:pixelated}.piece .name{text-align:center}.piece .cost{color:var(--ink-soft);font-size:10.5px}.piece.locked{opacity:.5}.piece.locked .cost:after{content:" · locked"}.chip{background:var(--panel);border:1.5px solid var(--edge);border-radius:var(--radius);padding:10px 12px;font-size:14px}.inventory{flex-wrap:wrap;gap:4px 12px;max-width:min(560px,60vw);display:flex}.inventory .seed{color:var(--ok)}.inventory .food{color:var(--warn)}.topbar .chip+button,.topbar .inventory+button{margin-left:auto}.goals{left:var(--gap);top:calc(env(safe-area-inset-top) + 72px);background:var(--panel);border:1.5px solid var(--edge);border-radius:var(--radius);width:260px;padding:8px 12px;font-size:14px;position:fixed}.goals-head{all:unset;cursor:pointer;font-weight:700}.goals ul{margin:6px 0;padding:0;line-height:1.55;list-style:none}.goals li.done{color:var(--ink-soft);text-decoration:line-through}.goals .hint{color:var(--ink-soft);margin:0;font-size:13px}.goals.collapsed ul,.goals.collapsed .hint{display:none}.panel{right:var(--gap);top:calc(env(safe-area-inset-top) + 72px);width:min(360px, calc(100vw - 2 * var(--gap)));background:var(--panel);border:1.5px solid var(--edge);border-radius:var(--radius);max-height:calc(100vh - 260px);padding:14px 16px;position:fixed;overflow-y:auto}.panel h2{margin:0 0 4px;font-size:19px}.panel .sub{color:var(--ink-soft);margin:4px 0;font-size:13px}.panel .line{margin:8px 0;line-height:1.45}.panel .note{margin:8px 0 0;font-style:italic}.panel .close{float:right;min-width:34px;min-height:34px;padding:2px 8px}.panel .gifts{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.panel .stages{margin:8px 0;padding-left:20px;line-height:1.6}.panel .stages .done{color:var(--ink-soft)}.panel .stages .current{font-weight:700}.toasts{pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:fixed;top:40%;left:50%;transform:translate(-50%)}.toast{background:var(--panel);border:1.5px solid var(--ok);border-radius:var(--radius);padding:6px 12px;font-weight:700;transition:opacity .8s,transform .8s}.toast.fade{opacity:0;transform:translateY(-16px)}.help .help-card{grid-template-rows:1fr auto;grid-template-columns:200px 1fr;gap:12px 20px;width:min(820px,100vw - 32px);max-width:none;height:min(620px,100vh - 48px);padding:20px;display:grid;position:relative}.help-nav{flex-direction:column;gap:4px;display:flex;overflow-y:auto}.help-nav button{text-align:left;min-height:36px;padding:6px 10px;font-size:14px}.help-nav button[aria-current=true]{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent);font-weight:700}.help-content{outline:none;padding-right:8px;line-height:1.55;overflow-y:auto}.help-content h2{margin:0 0 10px;padding-right:40px}.help-content ul{margin:0 0 12px;padding-left:22px}.help-card>.close{min-width:34px;min-height:34px;padding:2px 8px;position:absolute;top:12px;right:12px}.help-footer{flex-wrap:wrap;grid-column:1/-1;justify-content:flex-end;gap:8px;display:flex}.tip{right:var(--gap);bottom:calc(env(safe-area-inset-bottom) + 186px);width:min(340px, calc(100vw - 2 * var(--gap)));background:var(--panel);border:2px solid var(--accent);border-radius:var(--radius);padding:12px 14px;position:fixed;box-shadow:0 4px 14px #0000002e}.tip strong{margin-bottom:4px;display:block}.tip p{margin:0 0 10px;line-height:1.45}.tip .row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tip .row button{min-height:36px;padding:4px 10px}.tip .ok{border-color:var(--accent);font-weight:700}button.link{box-shadow:none;min-height:32px;color:var(--ink-soft);background:0 0;border:none;padding:4px 6px;text-decoration:underline}.goals .link{margin-top:2px;padding-left:0}.night{pointer-events:none;mix-blend-mode:multiply;opacity:0;background:#0d1530;transition:opacity 4s;position:fixed;inset:0}.modal{background:#14100a59;place-items:center;display:grid;position:fixed;inset:0}.card{background:var(--panel);border:1.5px solid var(--edge);border-radius:calc(var(--radius) * 1.4);max-width:min(440px,100vw - 32px);padding:20px 24px}.card h2{margin:0 0 10px;font-size:20px}.card p{line-height:1.5}.card ul{margin:0 0 16px;padding-left:20px;line-height:1.5}.tools .glyph{margin-right:6px}@media (width<=700px){.help .help-card{grid-template-rows:auto 1fr auto;grid-template-columns:1fr}.help-nav{flex-direction:row;padding-right:40px;overflow:auto hidden}.help-nav button{flex:none}.tip{bottom:calc(env(safe-area-inset-bottom) + 236px)}.goals{width:auto;right:var(--gap);top:auto;bottom:calc(env(safe-area-inset-bottom) + 172px);font-size:13px}.goals.collapsed{right:auto}.panel{top:auto;bottom:calc(env(safe-area-inset-bottom) + 130px);max-height:50vh}.inventory{max-width:calc(100vw - 2 * var(--gap))}.title{display:none}.topbar button,.inventory,.shelter{padding:6px 9px;font-size:13px}.tools{top:auto;bottom:calc(env(safe-area-inset-bottom) + 190px);transform:none}.tools .label{display:none}.tools .glyph{margin:0}.tools button{text-align:center;padding:6px}.status{left:var(--gap);right:var(--gap);bottom:calc(env(safe-area-inset-bottom) + 122px);font-size:13.5px;transform:none}.touch-confirm{bottom:calc(env(safe-area-inset-bottom) + 178px)}.piece{width:92px;height:100px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.modal{z-index:50}.tip{z-index:40}.modal .card{background:#faf4e6}body.style-pixel .modal .card{background:#1e1a14}
