:root{color-scheme:dark;--ink: #e8ece4;--muted: #b4bdae;--panel: rgba(16, 22, 18, .72);--line: rgba(232, 236, 228, .16);--accent: #d4a24a;--accent-ink: #1a160c;--danger: #c45a3a;--warn: #d4a24a;font-family:Segoe UI,Helvetica Neue,Helvetica,Arial,sans-serif}*,*:before,*:after{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;height:100dvh;overflow:hidden;background:#6eb3c8;color:var(--ink);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none;overscroll-behavior:none}html.admin,html:has(body.admin-page){height:auto;min-height:100dvh;overflow-x:hidden;overflow-y:scroll;touch-action:pan-y;overscroll-behavior:auto;user-select:text;-webkit-user-select:text}html.admin body,body.admin-page{height:auto;min-height:100dvh;overflow:visible;touch-action:pan-y;overscroll-behavior:auto;user-select:text;-webkit-user-select:text}#viewport{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#ui{position:fixed;inset:0;pointer-events:none}#ui button,#ui a{pointer-events:auto}.menu{position:absolute;inset:0;display:grid;place-items:end start;padding:clamp(24px,5vw,64px);background:linear-gradient(90deg,rgba(10,14,12,.78) 0%,rgba(10,14,12,.35) 42%,transparent 68%)}.menu-card{max-width:28rem}.menu .eyebrow{margin:0 0 .4rem;letter-spacing:.22em;text-transform:uppercase;font-size:.72rem;color:var(--muted)}.menu h1{margin:0;font-size:clamp(2.4rem,6vw,4.2rem);font-weight:650;letter-spacing:-.03em;line-height:.95}.menu .tag{margin:.9rem 0 .7rem;max-width:22rem;color:var(--muted);line-height:1.45}.menu .end-epitaph{margin:-.15rem 0 1rem;font-style:italic;color:var(--accent)}.pause-tune{color:var(--accent);text-decoration:none}.pause-tune:hover,.pause-tune:focus-visible{text-decoration:underline}.menu-controls{margin:0 0 1.6rem;max-width:22rem;color:var(--accent);font-size:.78rem;letter-spacing:.06em;line-height:1.4}.menu-actions{display:flex;flex-wrap:wrap;gap:.7rem}.btn{transition:border-color .16s ease,background .16s ease,color .16s ease;appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:.7rem 1.15rem;font:inherit;font-size:.95rem;letter-spacing:.02em;cursor:pointer;touch-action:manipulation}.btn:hover,.btn:focus-visible{border-color:var(--accent);outline:none}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn:disabled{opacity:.45;cursor:not-allowed}#ui .guide{pointer-events:auto;position:absolute;inset:0;overflow:auto;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:linear-gradient(90deg,#080c0aeb,#080c0ac7 55%,#080c0a8c)}.guide-page{max-width:38rem;padding-bottom:4.5rem}.guide-head h1{margin:0;font-family:Palatino,Palatino Linotype,Book Antiqua,Georgia,serif;font-size:clamp(2.1rem,5vw,3.4rem);font-weight:650;letter-spacing:-.03em;line-height:.95}.guide-lede{margin:.8rem 0 0;max-width:28rem;color:var(--muted);line-height:1.45}.guide-toc{display:flex;flex-wrap:wrap;gap:.45rem .9rem;margin:1.4rem 0 1.8rem}.guide-toc a{color:var(--accent);text-decoration:none;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.guide-toc a:hover,.guide-toc a:focus-visible{text-decoration:underline}.guide h2{margin:1.8rem 0 .55rem;font-family:Palatino,Palatino Linotype,Book Antiqua,Georgia,serif;font-size:1.35rem;font-weight:650;letter-spacing:.02em}.guide h3{margin:0 0 .35rem;font-size:1.05rem}.guide p,.guide li,.guide dd{color:var(--muted);line-height:1.5}.guide strong{color:var(--ink);font-weight:600}.guide ol,.guide ul{margin:.4rem 0 .8rem;padding-left:1.2rem}.guide-keys{margin:0}.guide-keys div{display:grid;grid-template-columns:9.5rem 1fr;gap:.4rem 1rem;padding:.45rem 0;border-top:1px solid var(--line)}.guide-keys dt{margin:0;color:var(--accent);font-size:.82rem;letter-spacing:.04em}.guide-keys dd{margin:0}.guide-age{margin:.9rem 0 1.1rem;padding-top:.7rem;border-top:1px solid var(--line)}.guide-age-kicker{margin:0 0 .2rem;color:var(--accent);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}.guide-age-goal{margin:.45rem 0 0}.guide-close{margin:2rem 0 0;color:var(--accent);font-family:Palatino,Palatino Linotype,Book Antiqua,Georgia,serif;font-style:italic}.guide-back{position:sticky;bottom:.6rem;margin-top:1.5rem}@media(max-width:640px){.guide-keys div{grid-template-columns:1fr;gap:.15rem}}.hud{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:max(14px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 14px max(16px,env(safe-area-inset-left));pointer-events:none;text-shadow:0 1px 2px rgba(0,0,0,.55)}.hud-cluster{display:flex;flex-direction:column;gap:.45rem;max-width:min(22rem,calc(100% - 12rem))}.hud-id{display:flex;align-items:baseline;gap:.55rem;font-family:Palatino,Palatino Linotype,Book Antiqua,Georgia,serif}.hud-id span{color:var(--muted);font-family:Segoe UI,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.78rem;letter-spacing:.08em}.hud-id span:after{content:" in troop";opacity:.7}.hud-goal{display:flex;flex-direction:column;gap:.2rem}.hud-age{color:var(--accent);font-family:Palatino,Palatino Linotype,Book Antiqua,Georgia,serif;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}.hud-goal p{margin:0;color:var(--ink);font-size:.88rem;line-height:1.25;text-wrap:balance}.hud-goal-row{display:flex;align-items:center;gap:.55rem}.hud-goal-track{flex:1;height:4px;background:#0a0e0c8c;border:1px solid var(--line);overflow:hidden}.hud-goal-track i{display:block;height:100%;width:0;background:var(--accent)}.hud-goal-row span{color:var(--accent);font-size:.68rem;letter-spacing:.08em;white-space:nowrap}.hud-pack,.hud-tools{display:flex;flex-wrap:wrap;gap:.4rem}.item-pack b{letter-spacing:.04em}.item-pack.is-full{border-color:var(--warn);color:var(--warn)}.speech-layer{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}.speech-bubble{position:absolute;transform:translate(-50%,-110%);padding:.12rem .42rem .16rem;border-radius:10px 10px 10px 3px;background:#101612db;border:1px solid rgba(232,236,228,.18);color:var(--ink);font-size:.74rem;letter-spacing:.04em;white-space:nowrap;text-shadow:0 1px 1px rgba(0,0,0,.5)}.item{display:inline-flex;align-items:center;gap:.32rem;padding:.18rem .42rem .18rem .28rem;background:var(--panel);border:1px solid var(--line);color:var(--ink);font-size:.72rem;letter-spacing:.03em}.item em{font-style:normal;color:var(--muted)}.item b{font-weight:650}.item.is-empty{opacity:.48}.item-tool{border-color:#d4a24a66}.item-mark{display:inline-block;width:.7rem;height:.7rem;flex:none}.mark-berries{border-radius:50%;background:#6aaa3a;box-shadow:.22rem -.12rem 0 -.12rem #8bc24a}.mark-stone{background:#8a8678;transform:rotate(45deg) scale(.78)}.mark-wood{border-radius:1px;background:#8a5a30}.mark-flint{background:#9ab0d0;clip-path:polygon(50% 0,100% 100%,0 100%)}.mark-bamboo{background:linear-gradient(90deg,#c4c46a 40%,transparent 40%,transparent 60%,#c4c46a 60%)}.mark-water{background:#4a8aaa;border-radius:50%/40% 40% 60% 60%}.mark-meat{background:#a85a48;clip-path:polygon(0 50%,100% 0,100% 100%)}.mark-seed{background:#c4b15a;border-radius:50% 50% 50% 0;transform:rotate(-35deg)}.mark-goat,.mark-cow{border-radius:50%;background:#c8c0b0}.mark-cow{background:#5a4638}.mark-tool{background:var(--accent);clip-path:polygon(15% 0,100% 40%,70% 100%,0 55%)}.hud-rail{position:absolute;z-index:6;top:max(12px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));display:flex;flex-direction:column;align-items:stretch;gap:.5rem;width:10.2rem}.hud-clock{display:flex;flex-direction:column;align-items:stretch;gap:.22rem;width:100%}.hud-clock-row{display:flex;align-items:baseline;justify-content:space-between;gap:.45rem}.hud-clock strong{color:var(--accent);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.hud-clock[data-part=dawn] strong{color:#e8a070}.hud-clock[data-part=evening] strong{color:#e08a58}.hud-clock[data-part=early-night] strong,.hud-clock[data-part=midnight] strong,.hud-clock[data-part=late-night] strong{color:#8aa4c8}.hud-cycle-left{color:var(--muted);font-size:.64rem;letter-spacing:.08em;font-variant-numeric:tabular-nums}.hud-cycle{position:relative;width:100%;height:10px;background:#0a0e0cb8;border:1px solid var(--line);overflow:hidden}.hud-cycle-spectrum{position:absolute;inset:0}.hud-cycle-parts{position:absolute;inset:0;display:flex;height:100%;z-index:1}.hud-cycle-seg{display:block;height:100%;box-shadow:inset -1px 0 #0a0e0c8c}.hud-cycle-seg.is-now{box-shadow:inset -1px 0 #0a0e0c8c,inset 0 0 0 1px #e8ece459}.hud-cycle-future{position:absolute;top:0;right:0;bottom:0;width:100%;background:#080a0cc7;pointer-events:none;z-index:2}.hud-cycle-now{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:#e8ece4;box-shadow:0 0 6px #e8ece4d9;pointer-events:none;z-index:3}.hud-fire{display:block;width:100%;height:5px;background:#0a0e0c8c;border:1px solid rgba(224,112,48,.45);overflow:hidden}.hud-fire i{display:block;height:100%;background:linear-gradient(90deg,#e07030,#f0c050)}.hud-fire.is-low{border-color:var(--danger)}.hud-fire.is-low i{background:#c45a3a}.hud-alert{position:absolute;top:calc(max(12px,env(safe-area-inset-top)) + 7.6rem);left:50%;transform:translate(-50%);max-width:min(28rem,80vw);padding:.35rem .7rem;background:#120a08d1;border:1px solid var(--warn);color:var(--accent);font-size:.78rem;letter-spacing:.04em;text-align:center;z-index:6}.hud-alert.is-danger{border-color:var(--danger);color:#f0c8bc}.hud-hint{font-size:.82rem;letter-spacing:.03em;color:var(--ink);max-width:min(36rem,92vw)}.hud-hint span{display:inline-block;padding:.28rem .55rem .32rem 0}.hud-bar{display:flex;justify-content:space-between;gap:1rem;font-size:.78rem;letter-spacing:.04em;color:var(--muted)}.health{width:min(18rem,52vw);height:8px;border:1px solid var(--line);background:#0a0e0c8c;overflow:hidden}.health i{display:block;height:100%;width:100%;background:#c4b15a}.health i.is-low{background:#b44a32}.end-fallen{margin:0 0 1.2rem;padding:0;list-style:none;color:var(--muted);font-size:.82rem;letter-spacing:.03em;line-height:1.55}.end-fallen li{border-top:1px solid var(--line);padding:.35rem 0}.hud-pillars{font-size:.7rem;letter-spacing:.06em;color:var(--muted);opacity:.9}.hud-stock [data-stock]{display:flex;flex-wrap:wrap;gap:.45rem .7rem;align-items:center}.chip{display:inline-flex;align-items:center;gap:.28rem;color:var(--ink)}.chip img{width:22px;height:22px;object-fit:contain;filter:drop-shadow(0 1px 1px rgba(0,0,0,.45))}.chip-swatch{display:inline-block;width:.62rem;height:.62rem;border-radius:1px;box-shadow:0 1px 1px #00000073}.hud strong{color:var(--ink);font-weight:600;letter-spacing:.08em;text-transform:uppercase}.subtitle{position:absolute;left:50%;bottom:calc(204px + env(safe-area-inset-bottom));transform:translate(-50%);width:min(40rem,90vw);margin:0;pointer-events:none;z-index:3;text-align:center}.subtitle p{display:inline-block;margin:0;padding:.55rem 1.15rem .62rem;max-width:100%;color:#f6f1e6;background:#080a089e;border-top:1px solid rgba(212,162,74,.55);font-size:clamp(1.08rem,2.5vw,1.48rem);font-weight:500;letter-spacing:.015em;line-height:1.35;text-wrap:balance;text-shadow:0 1px 0 rgba(0,0,0,.85),0 2px 10px rgba(0,0,0,.7)}body.play-hud .hud{padding-bottom:calc(168px + env(safe-area-inset-bottom))}.touch-hud{position:absolute;inset:0;pointer-events:none;z-index:2}.touch-leave{position:absolute;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));pointer-events:auto;appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;padding:.55rem .8rem;min-height:44px;cursor:pointer;display:flex;flex-direction:column;align-items:flex-end;gap:.15rem}.touch-stick{position:absolute;left:calc(env(safe-area-inset-left) + 88px);top:calc(100% - env(safe-area-inset-bottom) - 96px);width:132px;height:132px;margin-left:-66px;margin-top:-66px;pointer-events:none;opacity:.4}.touch-stick.is-live{opacity:.95}.touch-stick-ring,.touch-stick-knob{position:absolute;border-radius:50%}.touch-stick-ring{inset:0;border:1px solid rgba(212,162,74,.55);background:radial-gradient(circle at 50% 42%,rgba(232,236,228,.08),transparent 58%),#1218128c;box-shadow:inset 0 0 0 10px #10161259,0 6px 18px #00000047}.touch-stick-knob{left:50%;top:50%;width:52px;height:52px;margin:-26px 0 0 -26px;background:radial-gradient(circle at 38% 32%,#f0d38a,#b8863a 58%,#6d4e22);box-shadow:0 2px #ffe6aa59 inset,0 4px 10px #0006;will-change:transform}.touch-tray{position:absolute;right:max(14px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:flex-end;gap:10px}.touch-minis{display:flex;gap:8px}.touch-mini,.touch-hand,.touch-leave{pointer-events:auto;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.touch-mini{appearance:none;min-width:64px;min-height:48px;padding:.45rem .65rem;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.12rem}.touch-mini[aria-disabled=true]{opacity:.38}.touch-hand{appearance:none;position:relative;width:92px;height:92px;border-radius:50%;border:1px solid rgba(212,162,74,.35);background:radial-gradient(circle at 50% 40%,rgba(232,236,228,.12),transparent 60%),#101612c7;color:var(--muted);font:inherit;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.touch-hud kbd{font:inherit;font-size:.58rem;letter-spacing:.14em;color:var(--accent);opacity:.85}.touch-hand kbd{position:absolute;left:0;right:0;bottom:10px}.touch-mini:hover:not([aria-disabled=true]),.touch-leave:hover,.touch-hand:hover:not([aria-disabled=true]){border-color:var(--accent)}body.touch-play .touch-hud kbd{display:none}.touch-hand.is-ready{color:var(--accent-ink);background:radial-gradient(circle at 50% 36%,#f0d38a,#d4a24a 62%,#9a7428);border-color:#e8c56a;box-shadow:0 0 0 4px #d4a24a38}.touch-hand[aria-disabled=true]{cursor:default}.touch-mini.is-down,.touch-hand.is-down,.touch-leave.is-down{transform:translateY(1px)}@media(max-width:820px){.hud-cluster{max-width:min(22rem,calc(100% - 11.2rem))}.hud-alert{top:calc(max(12px,env(safe-area-inset-top)) + 8.2rem)}}@media(pointer:coarse){.btn{min-height:48px;padding:.85rem 1.3rem}}@media(pointer:fine){body.play-hud:not(.touch-play) .touch-stick{opacity:.55}body.play-hud:not(.touch-play) .touch-hand{display:none}}@media(orientation:landscape)and (max-height:500px){body.play-hud .hud{padding-bottom:calc(112px + env(safe-area-inset-bottom))}.subtitle{bottom:calc(148px + env(safe-area-inset-bottom))}.subtitle p{font-size:1.05rem;padding:.4rem .9rem .48rem}.touch-stick{width:108px;height:108px;margin-left:-54px;margin-top:-54px;top:calc(100% - env(safe-area-inset-bottom) - 70px)}.touch-stick-knob{width:42px;height:42px;margin:-21px 0 0 -21px}.touch-hand{width:72px;height:72px}.touch-mini{min-height:40px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.engine-fault{position:fixed;z-index:100000;left:50%;top:28%;transform:translate(-50%);width:min(28rem,calc(100vw - 24px));appearance:none;border:1px solid var(--danger);background:#100a08f0;color:var(--ink);font:inherit;font-size:.95rem;letter-spacing:.04em;padding:1rem 1.1rem;text-align:left;cursor:pointer}#ui .pause{pointer-events:auto;position:absolute;inset:0;display:grid;place-items:end start;padding:clamp(24px,5vw,64px);background:linear-gradient(90deg,#0a0e0ce0,#0a0e0c8c 42%,#0a0e0c33 68%)}.hud-corner{display:flex;justify-content:flex-end;gap:.4rem;pointer-events:auto}.hud-map-btn,.hud-leave-btn{appearance:none;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);font:inherit;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;padding:.42rem .85rem;cursor:pointer;transition:border-color .16s ease,color .16s ease,background .16s ease}.hud-map-btn:hover,.hud-map-btn:focus-visible,.hud-leave-btn:hover,.hud-leave-btn:focus-visible{border-color:var(--accent);color:var(--accent)}.map-overlay{pointer-events:auto;position:absolute;inset:0;z-index:40;display:grid;place-items:center;background:#080c0a9e;backdrop-filter:blur(2px)}.map-card{background:#171d17;border:1px solid var(--line);border-radius:10px;box-shadow:0 18px 60px #0000008c;padding:.9rem 1rem .75rem;width:min(30rem,calc(100vw - 28px))}.map-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.5rem}.map-head .eyebrow{margin:0}.map-canvas{display:block;width:100%;height:auto;border:1px solid rgba(90,70,40,.5);border-radius:4px}.map-note{margin:.5rem 0 0;font-size:.78rem;color:var(--muted)}.btn-small{min-height:34px;padding:.3rem .7rem;font-size:.78rem}.ctx-menu{pointer-events:auto;position:fixed;z-index:50;min-width:10.5rem;padding:.35rem 0 .4rem;background:#0c100ef0;border:1px solid rgba(212,162,74,.45);border-radius:8px;box-shadow:0 10px 28px #00000080}.ctx-menu-title{margin:0 0 .2rem;padding:.15rem .75rem .28rem;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.ctx-menu button{display:block;width:100%;appearance:none;border:0;background:transparent;color:var(--ink);font:inherit;font-size:.88rem;text-align:left;padding:.42rem .85rem;cursor:pointer;transition:background .12s ease,color .12s ease}.ctx-menu button:hover:not(:disabled),.ctx-menu button:focus-visible:not(:disabled){background:#d4a24a29;color:var(--accent)}.ctx-menu button:disabled{color:var(--muted);cursor:default;opacity:.55}body.admin-page{background:radial-gradient(1200px 600px at 10% -10%,rgba(212,162,74,.12),transparent 55%),#121814}.admin{max-width:42rem;margin:0 auto;padding:clamp(24px,5vw,56px) 1.2rem 4rem}.admin-head h1{margin:0;font-family:Palatino,Palatino Linotype,Book Antiqua,Georgia,serif;font-size:clamp(2.2rem,6vw,3.6rem)}.admin-grid{display:grid;gap:.85rem;margin:1.6rem 0 1.4rem}.admin-row{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:.25rem .8rem;align-items:center}.admin-label{grid-column:1 / -1;font-size:.82rem;letter-spacing:.04em}.admin-label em{display:block;margin-top:.12rem;font-style:normal;color:var(--muted);font-size:.72rem;letter-spacing:.02em}.admin-row input[type=range]{width:100%;accent-color:var(--accent)}.admin-row b{min-width:3.2rem;text-align:right;color:var(--accent);font-variant-numeric:tabular-nums}.admin-actions{display:flex;flex-wrap:wrap;gap:.7rem}.admin-actions a{text-decoration:none}
