:root{font-family:Avenir Next,Avenir,Segoe UI,sans-serif;font-synthesis:none;color:var(--ink);background:#71bdb4;--paper:var(--terra-paper,#f2e4c9);--parchment:var(--terra-parchment,#e4d8c3);--ink:var(--terra-ink,#22283c);--ink-soft:#46524f;--rule:#22283c40;--burgundy:var(--terra-burgundy,#793d59);--teal:#1f6670;--good:#2d6254;--brass:var(--terra-brass,#efc66e);--gold:#7a5230;--hover:#f6ecd5;--focus:#226f6c;--band-liberated:#2f6f6a;--band-low:#4b6a38;--band-controlled:#6b5218;--band-heavy:#8c4424;--band-lockdown:#793d59;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--ui-fs-label:10px;--ui-fs-small:11px;--ui-fs-meta:12px;--ui-fs-body:13px;--ui-fs-lead:15px;--ui-fs-head:22px;--ui-fs-num:26px;--serif:Georgia,"Times New Roman",serif;--edge:2px solid var(--ink);--hair:1px solid var(--rule);--shadow:2px 3px 0 var(--ink);--shadow-lg:5px 6px 0 #22283c59;--hud-paper:color-mix(in srgb,var(--paper) 88%,transparent);--hud-veil:color-mix(in srgb,var(--paper) 72%,transparent);--hud-rule:#22283c59;--hud-edge:1px solid var(--hud-rule);--hud-soft:#38433f;--hud-good:#275a4d;--gutter:28px;--panel-w:440px;--hud-h:44px;--hud-band:44px;--hud-top:max(12px,var(--sat));--sat:env(safe-area-inset-top,0px);--sar:env(safe-area-inset-right,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px)}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button{cursor:pointer;transition:background .16s,color .16s}button:disabled{cursor:not-allowed}button:hover:not(:disabled){filter:brightness(1.06)}[hidden]{display:none!important}button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:3px}#panel:focus{outline:none}html,body{overscroll-behavior:none;-webkit-user-select:none;user-select:none}#panel,#panel *{-webkit-user-select:text;user-select:text}#world{display:block;position:fixed;inset:0;width:100%;height:100%;outline:0}#app{position:fixed;inset:0;pointer-events:none}#app button,#app input,#panel{pointer-events:auto}.overline,.section-label{font-size:var(--ui-fs-label);font-weight:800;letter-spacing:.18em;text-transform:uppercase}kbd{display:inline-flex;justify-content:center;align-items:center;min-width:24px;height:24px;padding:0 var(--sp-1);border:1px solid var(--ink);border-radius:2px;background:#fff9df;box-shadow:0 2px 0 var(--ink);color:var(--ink);font:700 var(--ui-fs-label) "Avenir Next",sans-serif;letter-spacing:.06em;-webkit-text-stroke:0}@keyframes paper-in{0%{opacity:0;translate:0 18px;rotate:-2deg}to{opacity:1;translate:0 0;rotate:0deg}}@keyframes ledger-in{0%{opacity:0;translate:35px 0}to{opacity:1;translate:0 0}}@keyframes sheet-in{0%{opacity:0;translate:0 40px}to{opacity:1;translate:0 0}}.reduced-motion *{animation:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}#debug{position:absolute;top:70px;left:38px;font:11px monospace;color:#aee4bc;background:#0008;padding:8px}#save-status{position:absolute;bottom:7px;right:38px;font-size:var(--ui-fs-label);color:#284a42;background:#e8ecdaaa}#crosshair{position:absolute;top:50%;left:50%;width:5px;height:5px;background:#f7f1d4;border-radius:50%;box-shadow:0 0 0 1px var(--ink);opacity:0}.playing #crosshair{opacity:.8}.playing .welcome{display:none}.welcome{position:absolute;left:max(8vw,calc(var(--sal) + var(--sp-4)));top:21vh;width:min(340px,84vw);animation:paper-in .7s both}.eyebrow{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--ui-fs-label);font-weight:800;letter-spacing:.2em;color:var(--ink)}.eyebrow>span{width:28px;height:1px;background:var(--ink)}.welcome .eyebrow{width:fit-content;padding:var(--sp-1) var(--sp-2);background:var(--paper)}.title-stamp{display:inline-block;margin:22px 0 15px;padding:7px 12px;background:#cf755c;color:#f6efd7;border:2px solid var(--ink);box-shadow:var(--shadow);transform:rotate(-3deg);font-size:var(--ui-fs-label);font-weight:800;letter-spacing:.2em}h1{font-family:Impact,Arial Narrow,sans-serif;font-size:clamp(108px,12.5vw,196px);font-weight:900;line-height:.79;letter-spacing:-.045em;color:#eff0d9;margin:10px 0 28px;transform:rotate(-3deg);-webkit-text-stroke:2px var(--ink);text-shadow:1px 2px 0 var(--ink),3px 4px 0 var(--ink),5px 6px 0 var(--ink),7px 8px 0 var(--ink),9px 10px 0 var(--ink)}h1>span{display:block}h1>span+span{margin-left:5px}.title-dot{color:var(--brass)}.welcome p{width:fit-content;max-width:100%;margin:0 0 24px;padding:10px 14px;background:var(--paper);border:1px solid var(--ink);box-shadow:var(--shadow);font-size:var(--ui-fs-lead);font-weight:600;line-height:1.55;color:var(--ink)}.primary{display:flex;align-items:center;justify-content:space-between;gap:55px;min-width:270px;min-height:44px;padding:15px 20px;background:#f0c965;color:#304341;border:2px solid var(--ink);box-shadow:4px 5px 0 var(--ink);transform:rotate(-1deg);font-size:var(--ui-fs-body);font-weight:800;letter-spacing:.04em;transition:transform .18s,box-shadow .18s}.primary span{font-size:24px;font-weight:400}.primary:hover:not(:disabled){filter:none;transform:translate(-1px,-3px) rotate(0);box-shadow:5px 8px 0 var(--ink)}.primary:active:not(:disabled){transform:translate(3px,4px);box-shadow:1px 1px 0 var(--ink)}.welcome-foot{width:fit-content;margin-top:18px;padding:6px 9px;background:var(--paper);color:#345653;font-size:var(--ui-fs-label);font-weight:700;letter-spacing:.14em}@media(max-height:800px)and (min-width:701px){.welcome{top:17vh}h1{font-size:clamp(100px,10.5vw,145px);margin-bottom:22px}.title-stamp{margin-top:15px}.welcome p{font-size:var(--ui-fs-body);margin-bottom:18px}.welcome-foot{margin-top:15px}}@media(max-width:900px){.welcome{left:max(7vw,calc(var(--sal) + var(--sp-4)))}.welcome h1{font-size:145px}}@media(max-width:700px){.welcome{top:22vh;left:max(8vw,calc(var(--sal) + var(--sp-4)));width:calc(100vw - 62px);max-width:340px}.welcome:before{content:"";position:absolute;z-index:-1;inset:-16px -14px -18px;background:#83bdb6eb;clip-path:polygon(0 1%,98% 0,100% 99%,1% 100%)}.welcome h1{font-size:112px}.welcome p{font-size:var(--ui-fs-body)}.title-stamp{margin-top:15px}.welcome .primary,.pause .primary{min-width:0;width:100%;gap:var(--sp-3)}}@media(max-height:700px){.welcome{top:110px}.welcome h1{font-size:100px;margin:6px 0 18px}.title-stamp{margin:12px 0}.welcome p{margin-bottom:14px}.welcome-foot{margin-top:12px}.welcome .primary{padding:10px 16px}}@media(max-height:540px)and (min-width:701px){.welcome{top:104px;width:min(650px,85vw);display:grid;grid-template-columns:210px 290px;column-gap:28px;align-items:start}.welcome .eyebrow{grid-column:1 / -1}.title-stamp{grid-column:1;width:fit-content}.welcome h1{grid-column:1;grid-row:3 / 6;font-size:106px}.welcome p{grid-column:2;grid-row:3}.welcome .primary{grid-column:2;grid-row:4}.welcome-foot{grid-column:2;grid-row:5}}@media(max-height:560px)and (max-width:700px){.welcome{top:96px;bottom:20px;overflow-y:auto;padding:8px 8px 12px;pointer-events:auto}.welcome h1{font-size:78px}.welcome:before{display:none}.welcome-foot{display:none}}#hud{position:absolute;z-index:2;top:var(--hud-top);left:max(var(--gutter),var(--sal));right:max(var(--gutter),var(--sar));display:grid;grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr);align-items:start;gap:var(--sp-3);pointer-events:none}body:not(.started) .identity,body:not(.started) .ribbon,body:not(.started) .treasury,body:not(.started) #hud-bottom,body:not(.started) #marker,body:not(.started) #toast{display:none}.identity,.treasury,.ribbon,.objective,.controls,#interaction,#toast{background:#f2e4c9e0;background:var(--hud-paper);border:var(--hud-edge)}.identity,.treasury{min-height:var(--hud-band);padding:0 var(--sp-3)}.identity{justify-self:start;display:flex;align-items:center;gap:var(--sp-2);min-width:0}.identity svg{flex:none;width:16px;height:20px;fill:none;stroke:var(--ink);stroke-width:1.6}.identity b{font:700 var(--ui-fs-lead)/1.2 var(--serif);letter-spacing:.06em;white-space:nowrap}.treasury{justify-self:end;display:grid;justify-items:end;align-content:center}.treasury .amount{display:flex;align-items:baseline;gap:var(--sp-1)}.treasury small{margin-right:var(--sp-1);font-size:var(--ui-fs-small);font-weight:800;letter-spacing:.14em;color:var(--hud-soft)}.coin{font-size:var(--ui-fs-body);color:var(--gold)}.treasury strong{font:700 22px/1 var(--serif);font-variant-numeric:tabular-nums}.income{font-size:var(--ui-fs-body);line-height:16px;color:var(--hud-soft);font-variant-numeric:tabular-nums;white-space:nowrap}.income b{color:var(--hud-good);font-weight:800}.ribbon{--rib-min:clamp(280px,26vw,340px);position:relative;min-width:var(--rib-min);max-width:40vw;display:flex;flex-direction:column;min-height:var(--hud-band);background:#f2e4c9b8;background:var(--hud-veil)}@media(min-width:1200px){.ribbon{max-width:min(640px,50vw)}}.tape{position:relative;flex:none;align-self:center;width:var(--rib-min);max-width:100%;height:18px;overflow:hidden;border-bottom:var(--hair);-webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--sp-4),#000 calc(100% - var(--sp-4)),transparent);mask-image:linear-gradient(90deg,transparent,#000 var(--sp-4),#000 calc(100% - var(--sp-4)),transparent)}.strip{position:absolute;left:50%;top:0;width:2160px;height:100%;will-change:transform;background:repeating-linear-gradient(90deg,var(--ink) 0 1px,transparent 1px 30px) 0 100%/100% 3px no-repeat,repeating-linear-gradient(90deg,var(--ink) 0 1px,transparent 1px 90px) 0 100%/100% 5px no-repeat}.strip span{position:absolute;top:2px;transform:translate(-50%);font:800 var(--ui-fs-label)/1 "Avenir Next",sans-serif;letter-spacing:.06em;color:var(--ink)}.strip span.card{top:1px;font:700 var(--ui-fs-body)/1 var(--serif);color:var(--ink)}.index{position:absolute;left:50%;bottom:0;width:0;height:0;margin-left:-4px;border:4px solid transparent;border-bottom:6px solid var(--burgundy);border-top:0}.rb-pin{position:absolute;left:50%;top:4px;width:10px;height:10px;margin-left:-5px}.rb-pin:before{content:"";position:absolute;inset:1px;background:var(--brass);border:1.5px solid var(--ink);transform:rotate(45deg)}.rb-pin[data-side]:before{inset:0;border:0;background:var(--burgundy);transform:none;clip-path:polygon(0 0,100% 50%,0 100%)}.rb-pin[data-side=l]:before{clip-path:polygon(100% 0,0 50%,100% 100%)}.ribbon:has(.rb-pin[data-side=l]) .tape{-webkit-mask-image:linear-gradient(90deg,transparent 24px,#000 40px,#000 calc(100% - var(--sp-4)),transparent);mask-image:linear-gradient(90deg,transparent 24px,#000 40px,#000 calc(100% - var(--sp-4)),transparent)}.ribbon:has(.rb-pin[data-side=r]) .tape{-webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--sp-4),#000 calc(100% - 40px),transparent calc(100% - 24px));mask-image:linear-gradient(90deg,transparent,#000 var(--sp-4),#000 calc(100% - 40px),transparent calc(100% - 24px))}.meta{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--sp-2);padding:2px 10px;font-size:var(--ui-fs-meta);font-weight:700;letter-spacing:.06em;color:var(--ink);white-space:nowrap}#clock{font:700 var(--ui-fs-lead)/20px var(--serif);font-variant-numeric:tabular-nums;letter-spacing:.04em;color:var(--ink)}.phase{flex:none;width:12px;height:12px;margin-left:calc(-1 * var(--sp-1));background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cg stroke='%2322283c' stroke-width='1.1' stroke-linecap='round'%3E%3Cpath d='M6 .7v1.5M6 9.8v1.5M.7 6h1.5M9.8 6h1.5M2.3 2.3l1 1M8.7 8.7l1 1M2.3 9.7l1-1M8.7 3.3l1-1'/%3E%3Ccircle cx='6' cy='6' r='2.3' fill='%23efc66e'/%3E%3C/g%3E%3C/svg%3E") center/12px 12px no-repeat}.phase[data-phase=night]{width:10px;height:10px;border-radius:50%;background:none;box-shadow:inset -4px 1px 0 0 var(--ink);transform:rotate(-20deg)}#curfew:empty{display:none}#curfew.on{font-weight:800;box-shadow:inset 0 -2px var(--burgundy)}@media(min-width:1200px){#curfew:not(:empty)+#weather:before{content:"·";margin-right:var(--sp-2)}}.occupation{display:flex;align-items:center;margin-left:auto}.ward-noun{padding-right:var(--sp-1);font-size:var(--ui-fs-small);line-height:15px;font-weight:600;letter-spacing:.05em}.tag{padding:0 var(--sp-1);background:var(--band,var(--band-heavy));color:var(--paper);font-size:var(--ui-fs-meta);line-height:15px;font-weight:800;letter-spacing:.03em;font-variant-numeric:tabular-nums}.tag[data-band=liberated]{--band:var(--band-liberated)}.tag[data-band=low]{--band:var(--band-low)}.tag[data-band=controlled]{--band:var(--band-controlled)}.tag[data-band=heavy]{--band:var(--band-heavy)}.tag[data-band=lockdown]{--band:var(--band-lockdown)}#marker{position:absolute;z-index:1;left:0;top:0;width:0;height:0;will-change:transform,opacity}.mk-pin{position:absolute;left:-9px;top:-9px;width:18px;height:18px;background:var(--brass);border:2px solid var(--ink);transform:rotate(45deg);box-shadow:1px 1px 0 var(--ink)}.mk-pin:after{content:"";position:absolute;inset:3px;background:var(--ink)}.mk-dist{position:absolute;left:0;top:17px;transform:translate(-50%);font:800 var(--ui-fs-small)/1 "Avenir Next",sans-serif;letter-spacing:.04em;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--paper);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill}.mk-chev{position:absolute;left:-8px;top:-8px;width:16px;height:16px;display:none}.mk-chev svg{display:block;width:16px;height:16px;fill:none;stroke-linecap:round;stroke-linejoin:round}.mk-chev .o{stroke:var(--ink);stroke-width:5}.mk-chev .i{stroke:var(--brass);stroke-width:2}#marker.edge .mk-chev{display:block}#hud-bottom{position:absolute;z-index:2;left:max(var(--gutter),var(--sal));right:max(var(--gutter),var(--sar));bottom:max(var(--gutter),calc(var(--sab) + var(--sp-4)));display:flex;justify-content:space-between;align-items:flex-end;gap:var(--sp-4);pointer-events:none}.objective{width:340px;max-width:100%;padding:3px var(--sp-3) 3px 10px;border-left:2px solid var(--gold)}.objective .head,.steps{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-3);font-size:var(--ui-fs-meta);line-height:15px;font-weight:700;letter-spacing:.12em;color:var(--hud-soft);font-variant-numeric:tabular-nums;white-space:nowrap}.objective .overline{font-size:var(--ui-fs-small);color:var(--burgundy)}.objective p{margin:0 0 2px;font:700 14px/18px var(--serif)}.steps{padding-top:2px;border-top:var(--hair)}.controls{display:flex;align-items:center;gap:var(--sp-3);margin-left:auto;padding:2px var(--sp-3);font-size:var(--ui-fs-small);font-weight:700;letter-spacing:.04em;color:var(--ink);transition:opacity 1.6s ease}.controls span,.ledger-control{display:flex;align-items:center;gap:var(--sp-1)}.controls kbd{min-width:18px;height:18px;box-shadow:0 1px 0 var(--ink);font-size:var(--ui-fs-small)}.controls kbd+kbd{margin-left:-1px}.ledger-control{min-height:24px;padding:0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit}body.hint-off .controls:not(:focus-within){opacity:0;pointer-events:none}@media(max-width:900px){.controls span:nth-child(3){display:none}}#interaction{position:absolute;z-index:2;left:50%;top:58%;transform:translate(-50%);display:flex;align-items:center;gap:var(--sp-2);width:max-content;max-width:calc(100vw - 2*var(--sp-4));padding:3px var(--sp-3) 3px 5px;font:700 14px/17px Avenir Next,sans-serif}#interaction kbd{width:24px;height:24px;background:var(--brass);font-size:var(--ui-fs-body);font-weight:800;box-shadow:none}#interaction small{display:block;font-size:var(--ui-fs-small);line-height:13px;font-weight:700;letter-spacing:.12em;color:var(--hud-soft)}#toast{position:absolute;z-index:4;left:50%;top:calc(var(--hud-top) + var(--hud-h) + var(--sp-2));width:max-content;max-width:min(640px,calc(100vw - 2*var(--sp-4)));padding:var(--sp-1) var(--sp-3);border-left:3px solid var(--teal);font-size:var(--ui-fs-body);font-weight:600;line-height:18px;opacity:0;visibility:hidden;transform:translate(-50%,-4px);pointer-events:none;transition:opacity .25s,transform .25s,visibility 0s .25s}#toast.show{opacity:1;visibility:visible;transform:translate(-50%);transition-delay:0s}.t-over{margin-right:var(--sp-1);font-size:var(--ui-fs-small);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--burgundy)}.t-over:after{content:" ·"}body:has(#panel:not([hidden])) #toast{left:calc((100% - var(--panel-w) - var(--sp-4))/2);max-width:min(560px,calc(100vw - var(--panel-w) - 3*var(--sp-4)))}@media(max-width:900px){:root{--gutter:22px}.ribbon{--rib-min:clamp(260px,34vw,320px);max-width:46vw}.meta{padding-inline:var(--sp-2);column-gap:6px}}@media(max-width:700px){:root{--gutter:var(--sp-4);--hud-band:40px;--hud-h:92px}#hud{grid-template-columns:1fr auto;grid-template-areas:"id tre" "rib rib";row-gap:var(--sp-2)}.identity{grid-area:id}.treasury{grid-area:tre}.ribbon{--rib-min:100%;grid-area:rib;justify-self:center;width:min(100%,360px);min-width:0;max-width:none}.identity svg,.treasury small{display:none}.identity b{font-size:var(--ui-fs-body)}.treasury strong{font-size:18px}}@media(max-height:520px)and (pointer:coarse){:root{--gutter:var(--sp-4);--hud-band:40px;--hud-h:44px}#hud{grid-template-columns:auto 1fr auto;grid-template-areas:"id rib tre";column-gap:var(--sp-3)}.ribbon{--rib-min:100%;width:min(100%,360px);min-width:0;max-width:none}.tape{height:16px}.strip span.card{font-size:var(--ui-fs-small)}.rb-pin{top:3px}#clock{font-size:var(--ui-fs-body);line-height:18px}.meta{padding-block:1px}.identity svg,.treasury small{display:none}.identity b{font-size:var(--ui-fs-body)}.treasury strong{font-size:18px}}body.touch{--ticket-h:28px}body.touch .controls,body.touch #crosshair{display:none}body.touch .identity{padding-left:calc(44px + var(--sp-2))}body.touch #hud{left:max(var(--sp-4),var(--sal))}body.touch #touch .touch-pause{left:max(var(--sp-4),var(--sal));top:calc(var(--hud-top) - (44px - var(--hud-band)) / 2);width:44px;height:44px;border:0;border-radius:0;background:none;color:var(--ink)}body.touch #touch .touch-pause:after{content:"";position:absolute;right:0;top:calc((44px - var(--hud-band)) / 2);bottom:calc((44px - var(--hud-band)) / 2);border-right:var(--hud-edge)}.touch-pause svg{display:block;width:12px;height:14px;margin:auto;fill:currentColor}body.touch #touch .touch-pause:active{background:var(--brass)}body.touch:has(#pause:not([hidden])) .touch-pause{visibility:hidden}body.touch #hud-bottom{top:calc(var(--hud-top) + var(--hud-h) + var(--sp-2));bottom:auto;left:max(var(--sp-4),var(--sal));right:auto}body.touch .objective{width:min(360px,calc(100vw - 2*var(--sp-4)));height:var(--ticket-h);padding-block:var(--sp-1)}body.touch .objective .head,body.touch .objective .steps{display:none}body.touch .objective p{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body.touch #toast{top:calc(var(--hud-top) + var(--hud-h) + var(--ticket-h) + 2*var(--sp-2))}@media(max-width:700px),(max-height:520px)and (pointer:coarse){body:has(#panel:not([hidden])) .ribbon,body:has(#panel:not([hidden])) #hud-bottom,body:has(#panel:not([hidden])) #marker,body:has(#pause:not([hidden])) .identity,body:has(#pause:not([hidden])) .ribbon,body:has(#pause:not([hidden])) #hud-bottom,body:has(#pause:not([hidden])) #marker{visibility:hidden}}body.touch #interaction{left:max(var(--sp-4),var(--sal));top:auto;bottom:max(var(--sp-4),calc(var(--sab) + var(--sp-2)));transform:none;max-width:calc(100vw - 190px - var(--sal));padding:var(--sp-1) var(--sp-3)}body.touch #interaction kbd{display:none}@media(max-width:700px){body:has(#panel:not([hidden])) #toast,body:has(#pause:not([hidden])) #toast{left:50%;top:var(--hud-top);max-width:calc(100vw - 2*var(--sp-4))}}.panel,.pause{position:absolute;z-index:3;background:var(--paper);border:var(--edge);box-shadow:var(--shadow-lg);color:var(--ink)}.panel{top:var(--sp-4);right:var(--sp-4);bottom:var(--sp-4);width:var(--panel-w);max-width:calc(100vw - 2*var(--sp-4));display:flex;flex-direction:column;animation:ledger-in .25s both}.panel-top,.panel-bottom{flex:none;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);background:var(--parchment)}.panel-top{padding:var(--sp-1) var(--sp-1) var(--sp-1) var(--sp-4);border-bottom:1px solid var(--ink);touch-action:none}.panel-top>span{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--ui-fs-label);font-weight:800;letter-spacing:.16em}.panel-top svg{width:14px;height:19px;fill:none;stroke:var(--ink);stroke-width:1.6}.panel-top button{width:44px;height:44px;padding:0;border:1px solid transparent;background:none;color:var(--ink);font-size:26px;line-height:1}.panel-top button:hover{border-color:var(--ink);filter:none}.panel-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--sp-4) var(--sp-5) var(--sp-5);scrollbar-width:thin;scrollbar-color:var(--ink-soft) transparent}.panel-bottom{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--ink);font-size:var(--ui-fs-label);font-weight:800;letter-spacing:.1em;font-variant-numeric:tabular-nums}.panel-bottom small{font-size:var(--ui-fs-label);color:var(--ink-soft)}.panel .overline,.pause .eyebrow{display:block;color:var(--burgundy)}.panel h2,.pause h2{margin:var(--sp-1) 0 var(--sp-3);font:700 28px/1.15 var(--serif);letter-spacing:-.01em;color:var(--ink)}.panel h3{margin:var(--sp-1) 0;font:700 17px/1.25 var(--serif);color:var(--ink)}.description,.muted,.footnote{color:var(--ink-soft)}.description{margin:0 0 var(--sp-4);font-size:var(--ui-fs-body);line-height:1.6}.muted{margin:var(--sp-1) 0 var(--sp-3);font-size:var(--ui-fs-body);line-height:1.55}.footnote{margin:var(--sp-3) 0;font-size:var(--ui-fs-small);line-height:1.5}.footnote b{color:var(--ink)}.section-label{display:flex;align-items:center;gap:var(--sp-2);margin:var(--sp-5) 0 var(--sp-2);color:var(--ink-soft)}.section-label:after{content:"";flex:1;height:1px;background:var(--ink);opacity:.4}.tabs{display:grid;grid-template-columns:repeat(12,1fr);margin:var(--sp-3) 0 var(--sp-4)}.tabs button{grid-column:span 4;min-height:44px;padding:0 var(--sp-1);border:0;border-bottom:1px solid var(--rule);background:none;color:var(--ink-soft);font-size:var(--ui-fs-small);font-weight:700;text-align:center;white-space:nowrap}.tabs button:nth-child(-n+4){grid-column:span 3}.tabs button:hover:not(.active){color:var(--ink);filter:none}.tabs button.active{color:var(--ink);font-weight:800;box-shadow:inset 0 -3px 0 var(--burgundy)}.ledger-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:var(--hair)}.ledger-row.block{display:block}.ledger-row small{display:block;font-size:var(--ui-fs-label);font-weight:800;letter-spacing:.14em;color:var(--ink-soft)}.ledger-row p{margin:var(--sp-1) 0 0;font-size:var(--ui-fs-small);line-height:1.5;color:var(--ink-soft);font-variant-numeric:tabular-nums}.find{width:44px;height:44px;padding:0;border:1px solid var(--ink);background:none;color:var(--ink);font-size:18px;line-height:1}.find:hover{background:var(--brass);filter:none}.stat-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-4);padding:var(--sp-2) 0;border-bottom:1px dotted #22283c80;font-size:var(--ui-fs-body);line-height:1.4;color:var(--ink-soft)}.stat-row b{font-weight:700;text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}.city-stage{margin:0 0 var(--sp-2);padding:0 0 var(--sp-3);border-bottom:var(--hair)}.city-stage>span{font-size:var(--ui-fs-label);font-weight:800;letter-spacing:.16em;color:var(--gold)}.city-stage p{margin:var(--sp-1) 0 0;font-size:var(--ui-fs-small);color:var(--ink-soft)}.status-good,.complete{color:var(--good)}.status-good{margin:var(--sp-1) 0;font-size:var(--ui-fs-small);line-height:1.5}.complete{display:block;padding:var(--sp-2) 0 0;font-size:var(--ui-fs-label);font-weight:800;letter-spacing:.14em}.complete:before{content:"✓ "}.map{margin:0 0 var(--sp-4);border:1px solid var(--ink);background:#31494b}.map svg{display:block;width:100%}.level-track{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:var(--sp-2);margin:var(--sp-4) 0}.level-track span{padding-top:var(--sp-1);border-top:3px solid var(--rule);font-size:var(--ui-fs-label);font-weight:700;letter-spacing:.08em;color:var(--ink-soft);font-variant-numeric:tabular-nums}.level-track .done{border-top-color:var(--teal);color:var(--good)}.instrument{display:grid;grid-template-columns:1fr 1fr;margin:0 0 var(--sp-3)}.instrument>div{padding:var(--sp-1) var(--sp-4) var(--sp-1) 0}.instrument>div+div{padding-left:var(--sp-4);border-left:var(--hair)}.instrument small{display:block;font-size:var(--ui-fs-label);font-weight:800;letter-spacing:.14em;color:var(--ink-soft)}.instrument strong{display:block;margin:var(--sp-1) 0;font:700 var(--ui-fs-num)/1.1 var(--serif);font-variant-numeric:tabular-nums}.instrument em{font:400 var(--ui-fs-lead) var(--serif);color:var(--ink-soft)}.instrument span{font-size:var(--ui-fs-small);color:var(--ink-soft)}.production-bar{height:6px;margin:0 0 var(--sp-3);border:1px solid var(--ink)}.production-bar span{display:block;height:100%;background:var(--teal)}.purchase{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--sp-3);width:100%;min-height:48px;margin:var(--sp-3) 0 var(--sp-1);padding:0 var(--sp-4);background:var(--brass);border:var(--edge);box-shadow:var(--shadow);color:var(--ink);font-size:var(--ui-fs-body);font-weight:700;text-align:left;transition:transform .12s,box-shadow .12s,background .12s}.purchase b{font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}.purchase:not(:disabled):hover{transform:translate(-1px,-2px);box-shadow:3px 5px 0 var(--ink);filter:none}.purchase:not(:disabled):active{transform:translate(2px,3px);box-shadow:none}.purchase:disabled{border-style:dashed;border-color:#22283c99;box-shadow:none;color:#3f4d4b;background:#22283c12}.purchase:disabled b{color:var(--burgundy)}.purchase[data-cost]:disabled:not([data-locked]){background-image:linear-gradient(90deg,var(--brass) var(--saved,0%),#efc66e55 var(--saved,0%))}.purchase[data-locked]:disabled b{color:var(--ink-soft)}.slider{display:grid;grid-template-columns:1fr 48%;align-items:center;gap:var(--sp-3);min-height:48px;border-bottom:var(--hair);font-size:var(--ui-fs-body)}.slider input{width:100%;height:44px;margin:0;accent-color:var(--teal)}.check{display:flex;align-items:center;gap:var(--sp-3);min-height:44px;margin:var(--sp-2) 0;font-size:var(--ui-fs-body);color:var(--ink-soft)}.check input{width:20px;height:20px;margin:0;accent-color:var(--teal)}.quality{display:grid;grid-template-columns:1fr 1fr}.quality button{min-height:44px;border:1px solid var(--ink);background:none;color:var(--ink-soft);font-size:var(--ui-fs-body);font-weight:700}.quality button+button{border-left:0}.quality .active{background:var(--ink);color:var(--paper)}.plain{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:48px;padding:0 var(--sp-1);border:0;border-bottom:var(--hair);background:none;color:var(--ink);font-size:var(--ui-fs-body);font-weight:700;text-align:left;transition:background .12s,padding .12s}.plain:after{content:"→";font-weight:400;color:var(--ink-soft)}.plain:hover:not(:disabled),.plain:focus-visible{background:var(--hover);padding-inline:var(--sp-3);filter:none}.danger-text,.danger-text:after{color:var(--burgundy)}.danger{margin-top:var(--sp-4);padding:var(--sp-1) 0 var(--sp-1) var(--sp-3);border-left:3px solid var(--burgundy)}.danger h3{margin-top:0;color:var(--burgundy)}.danger p{margin:var(--sp-1) 0;font-size:var(--ui-fs-body);line-height:1.5;color:#4a2c3a}.danger button{display:block;width:100%;min-height:44px;margin-top:var(--sp-2);padding:0 var(--sp-3);border:2px solid var(--burgundy);background:none;color:var(--burgundy);font-size:var(--ui-fs-body);font-weight:700;text-align:left}.danger button[data-action=reset-confirm]{background:var(--burgundy);color:var(--paper)}.pause{left:8vw;top:50%;transform:translateY(-50%);width:min(380px,calc(100vw - 2*var(--sp-4)));max-height:calc(100dvh - 2*var(--sp-4));overflow-y:auto;padding:var(--sp-5);animation:paper-in .25s both}.pause p{margin:0 0 var(--sp-4);font-size:var(--ui-fs-body);line-height:1.55;color:var(--ink-soft)}.pause .primary{width:100%;margin-bottom:var(--sp-3);transform:none}@media(max-width:700px){.panel,.pause{inset:auto 0 0;width:100%;max-width:none;max-height:85dvh;transform:none;border-width:2px 0 0;box-shadow:none;animation:sheet-in .25s both}.panel:before,.pause:before{content:"";display:block;flex:none;width:44px;height:4px;margin:var(--sp-2) auto var(--sp-1);background:var(--ink);opacity:.4;border-radius:2px}.pause{padding:0 var(--sp-4) calc(var(--sp-4) + var(--sab))}.pause:before{margin-bottom:var(--sp-4)}.panel-scroll{padding:var(--sp-3) var(--sp-4) var(--sp-4)}.panel-bottom{padding-bottom:calc(var(--sp-3) + var(--sab))}.panel-bottom small{display:none}.panel h2,.pause h2{font-size:24px}}@media(max-height:520px)and (min-width:701px){:root{--panel-w:min(480px,62vw)}.panel{top:var(--sp-2);right:max(var(--sp-2),var(--sar));bottom:var(--sp-2)}.panel-top{padding-block:0}.panel-top>span{font-size:var(--ui-fs-label)}.panel-bottom{padding-block:var(--sp-2)}.tabs{margin:var(--sp-2) 0}.tabs button{min-height:40px}.panel .overline{display:none}.panel-scroll{padding:var(--sp-3) var(--sp-4) var(--sp-4)}.panel h2{font-size:22px;margin-bottom:var(--sp-2)}.pause{padding:var(--sp-4)}.pause h2{font-size:22px}.pause p{margin-bottom:var(--sp-3)}}@media(min-width:701px)and (max-width:900px){:root{--panel-w:min(440px,calc(100vw - 2*var(--sp-4)))}}#touch{position:fixed;inset:0;pointer-events:none;z-index:5;display:none}body.touch.started #touch.live{display:block}.stick-base{position:absolute;left:0;top:0;width:120px;height:120px;border-radius:50%;border:2px solid #e8dcc0aa;background:#10181a44;opacity:0;transition:opacity .15s}.stick-base.active{opacity:1}.stick-knob{position:absolute;left:36px;top:36px;width:48px;height:48px;border-radius:50%;background:#e8dcc0cc;box-shadow:0 2px 8px #0008}.touch-btn{position:absolute;pointer-events:auto;border:2px solid #d2b27a;background:#10181acc;color:#efe2c2;font:700 11px/1 Avenir Next,sans-serif;letter-spacing:1.5px;border-radius:50%;width:64px;height:64px;touch-action:none;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}.touch-btn:active{background:#d2b27a;color:#10181a}.touch-jump{right:max(24px,env(safe-area-inset-right));bottom:max(28px,env(safe-area-inset-bottom))}.touch-use{right:calc(max(24px,env(safe-area-inset-right)) + 82px);bottom:max(56px,env(safe-area-inset-bottom));width:74px;height:74px;opacity:.35}.touch-use.ready{opacity:1;border-color:#f3cf87;box-shadow:0 0 0 4px #f3cf8744}.touch-ledger{right:max(24px,env(safe-area-inset-right));bottom:calc(max(28px,env(safe-area-inset-bottom)) + 82px);width:56px;height:56px;font-size:9px;letter-spacing:1px}.touch-pause{left:max(16px,env(safe-area-inset-left));top:max(16px,env(safe-area-inset-top));width:44px;height:44px;border-radius:8px;font-size:13px}#cut{position:fixed;inset:0;background:#000;opacity:0;pointer-events:none;z-index:8;transition:opacity 1.6s ease}#cut.on{opacity:1}#cut.now{transition:none}#hud,#hud-bottom,#marker{transition:opacity 1.2s ease}body.scene #hud,body.scene #hud-bottom,body.scene #marker,body.scene #toast,body.scene .touch-ledger{opacity:0;visibility:hidden;pointer-events:none}body.scene.dialogue #touch{display:none!important}body.scene .pause{z-index:10}body.scene .pause [data-action=ledger],body.scene .pause [data-action=settings]{display:none}#dialogue{position:fixed;left:50%;bottom:96px;transform:translate(-50%);width:min(640px,calc(100vw - 32px));z-index:9;display:flex;flex-direction:column;gap:var(--sp-2);align-items:stretch}#dialogue[hidden]{display:none}.dlg-card{pointer-events:auto;background:#f2e4c9e0;background:var(--hud-paper);border:var(--hud-edge);color:var(--ink);padding:var(--sp-2) var(--sp-4) 6px;cursor:pointer}.dlg-card .overline{display:block;font:800 var(--ui-fs-small) "Avenir Next",sans-serif;letter-spacing:.18em;color:var(--burgundy);margin-bottom:2px}.dlg-card p{margin:0;font:600 16px/1.4 var(--serif);text-shadow:none}.dlg-card small{display:block;margin-top:2px;font-size:var(--ui-fs-label);letter-spacing:.14em;color:var(--hud-soft);text-align:right}.dlg-choices{display:flex;flex-direction:column;gap:6px}.dlg-choices button{pointer-events:auto;display:flex;gap:var(--sp-3);align-items:center;text-align:left;background:#f2e4c9e0;background:var(--hud-paper);border:var(--hud-edge);color:var(--ink);font:700 var(--ui-fs-lead) "Avenir Next",sans-serif;padding:var(--sp-2) var(--sp-3);min-height:44px;cursor:pointer}.dlg-choices button:hover,.dlg-choices button:focus-visible{background:#edd08a;outline:none}.dlg-choices kbd{font:800 var(--ui-fs-small) "Avenir Next",sans-serif;border:1px solid var(--ink);box-shadow:none;padding:2px 7px;background:#fff8;min-width:12px;text-align:center}#skip{display:none;position:fixed;right:max(16px,env(safe-area-inset-right));top:max(14px,env(safe-area-inset-top));z-index:9;pointer-events:auto;background:#f2e4c9e0;background:var(--hud-paper);color:var(--ink);border:var(--hud-edge);border-radius:2px;font:800 var(--ui-fs-label) "Avenir Next",sans-serif;letter-spacing:1.8px;padding:8px 14px;min-height:36px;cursor:pointer}#skip kbd{font:inherit;opacity:.6;margin-left:6px}body.scene #skip{display:block}#title-card{position:fixed;left:50%;top:38%;transform:translate(-50%);z-index:7;pointer-events:none;text-align:center;opacity:0;transition:opacity 1.4s ease;color:#f4ead0;text-shadow:0 2px 14px #000a}#title-card.show{opacity:1}#title-card b{display:block;font:900 clamp(56px,11vw,120px)/1 "Avenir Next",sans-serif;letter-spacing:.18em;padding-left:.18em}#title-card span{display:block;font:700 11px Avenir Next,sans-serif;letter-spacing:.4em;margin-top:10px}@media(max-width:700px),(max-height:520px){#dialogue{bottom:auto;top:max(64px,calc(env(safe-area-inset-top) + 56px))}.dlg-card p{font-size:15px}#title-card{top:30%}}
