:root{--ink: #23301f;--plate: #fff9e4;--tight: 3px;--item: 7px;--w1: 64px;--w2: 100px;--w3: 136px;--w4: 184px;--hurt: #d9483a;--sick: #4f9a3a;--hungry: #d98a2a;--starving: #b8322a}.plates{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.plate{position:absolute;top:0;left:0;margin-top:-7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px 8px;border-radius:8px;background:var(--plate);color:var(--ink);box-shadow:0 3px 12px #0a283c38;font-family:Avenir Next,Avenir,Trebuchet MS,system-ui,sans-serif;font-size:11px;font-weight:650;line-height:1.35;white-space:nowrap}.plate.w1{width:var(--w1)}.plate.w2{width:var(--w2)}.plate.w3{width:var(--w3)}.plate.w4{width:var(--w4)}.plate:after{content:"";position:absolute;left:50%;bottom:-5px;transform:translate(-50%);border:6px solid transparent;border-bottom:0;border-top-color:var(--plate)}.plate .rows{position:relative;z-index:1;display:flex;flex-direction:column;align-items:stretch;gap:3px}.plate .row{display:flex;align-items:center;justify-content:center;gap:var(--tight)}.plate .row b{font-weight:750;font-variant-numeric:tabular-nums}.plate .row.title{font-size:12px;font-weight:750}.plate .rows:has(.row.gauge~.row.gauge){display:grid;grid-template-columns:repeat(3,auto);justify-content:center;align-items:center;gap:3px var(--tight)}.plate .rows:has(.row.gauge~.row.gauge)>.row{grid-column:1 / -1}.plate .rows:has(.row.gauge~.row.gauge)>.row.gauge{display:contents}.plate .noicon{display:none}.plate .rows:has(.row.gauge~.row.gauge) .noicon{display:block}.plate .meter{position:relative;width:46px;height:7px;border-radius:4px;overflow:hidden;flex:none;background:#23301f29;box-shadow:inset 0 1px 1px #23301f40}.plate .meter i{display:block;height:100%;border-radius:4px;transition:width .4s}.plate .meter.belief i{background:linear-gradient(#f8de8a,#d6a032)}.plate .meter.room i{background:linear-gradient(#bfe08a,#6c9c34)}.plate .meter.wood i{background:linear-gradient(#d9a86e,#96612f)}.plate .meter.build i{background:linear-gradient(#b3cbe0,#557a9a)}.plate .meter.stone i{background:linear-gradient(#dcd8ce,#8e897d)}.plate .meter.planks i{background:linear-gradient(#ecd3a4,#b98c52)}.plate .meter.food i{background:linear-gradient(#f6bf87,#cc6a30)}.plate .meter.task i{background:linear-gradient(#f2e2b8,#b8925a)}.plate .meter.full i{filter:brightness(1.12) saturate(1.1);box-shadow:0 0 6px #ffd76acc}.plate button{pointer-events:auto;padding:2px 8px;border:0;border-radius:999px;background:#23301f;color:#fff9e4;font:inherit;font-size:10px;font-weight:700;cursor:pointer}.plate.counted{padding-right:13px}.plate .count{position:absolute;z-index:2;top:-7px;right:-7px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:linear-gradient(#3b4a33,#1f2a1b);color:#fff9e4;font-size:9.5px;font-weight:800;line-height:16px;text-align:center;font-variant-numeric:tabular-nums;box-shadow:0 0 0 1.5px var(--plate),inset 0 0 0 1px #d6a0328c,0 2px 5px #0a283c4d}.plate.fold{pointer-events:auto;cursor:pointer}.plate .caret{margin-left:calc(var(--item) - var(--tight));width:0;height:0;border:4px solid transparent;border-bottom:0;border-top-color:#23301f8c;transition:transform .2s}.plate .caret-row .caret{margin-left:0}.plate.fold.open .caret{transform:rotate(180deg)}.plate.debug{margin-top:0;padding:2px 7px;border-radius:6px;background:#162014bd;color:#fff;box-shadow:none;font-weight:600}.plate.debug:after{display:none}.plate .chips{display:flex;align-items:center;gap:var(--item)}.plate .chip{position:relative;display:inline-flex;align-items:center;gap:var(--tight)}.plate .chip.short{opacity:.42}.plate .chip.short b{color:var(--hurt)}.plate .flow{width:7px;height:9px;flex:none;margin:0 calc(var(--tight) - var(--item))}.plate .flow path{fill:none;stroke:#23301f80;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.plate .store{display:grid;grid-template-columns:repeat(4,max-content);align-items:center;gap:3px var(--item)}.plate .store .chip b{min-width:1.3em}.plate .store .chip.kind:before{content:"";position:absolute;left:calc(var(--item) / -2 - .5px);top:2px;bottom:2px;width:1px;background:#23301f38}.plate .row.states{gap:var(--item)}.plate .tag{display:inline-flex;align-items:center;gap:var(--tight);font-weight:750}.plate .tag .ic{--C: var(--plate)}.plate .tag.hurt .ic{--F: var(--hurt);--S: var(--hurt)}.plate .tag.sick .ic{--F: var(--sick);--S: var(--sick)}.plate .tag.hungry .ic{--F: var(--hungry);--S: var(--hungry)}.plate .tag.starving .ic{--F: var(--starving);--S: var(--starving)}symbol .f{fill:var(--F);stroke:var(--O, none);stroke-width:var(--OW, 0);stroke-linejoin:round}symbol .s{fill:var(--S);stroke:var(--O, none);stroke-width:var(--OW, 0);stroke-linejoin:round}symbol .c{fill:none;stroke:var(--C);stroke-width:var(--CW, 1.3);stroke-linecap:round;stroke-linejoin:round}symbol .k{fill:none;stroke:var(--K);stroke-width:1.8;stroke-linecap:round}symbol .d{fill:var(--D)}.ic{width:14px;height:14px;flex:none;overflow:visible}.ic{--F: color-mix(in srgb, var(--g) 80%, #1a1408);--S: color-mix(in srgb, var(--g2) 70%, var(--g));--K: color-mix(in srgb, var(--g) 80%, #1a1408);--C: var(--plate);--D: var(--plate)}.plate.burning{box-shadow:0 0 0 1px #e26e2899,0 0 14px 3px #ff6e1e61,0 3px 12px #0a283c38,inset 0 8px 9px -8px #ff882899}.plate canvas.fire{position:absolute;pointer-events:none;filter:blur(.5px)}.plate.blessed{box-shadow:0 0 0 1px #d6a032bf,0 0 12px 3px #ffd66e80,0 3px 12px #0a283c38,inset 0 8px 9px -8px #ffdc78b3}.plate .blessing{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.plate .halo{position:absolute;left:50%;bottom:100%;width:120%;height:26px;transform:translate(-50%);background:repeating-conic-gradient(from -64deg at 50% 100%,#ffe28c8c 0,#ffe28c8c 5deg,#ffe28c00 5deg,#ffe28c00 16deg);-webkit-mask:radial-gradient(ellipse 60% 100% at 50% 100%,#000 15%,transparent 72%);mask:radial-gradient(ellipse 60% 100% at 50% 100%,#000 15%,transparent 72%)}.plate .motes i{position:absolute;bottom:calc(100% - 2px);width:3px;height:3px;border-radius:50%;background:#fff3c4;box-shadow:0 0 4px 1px #ffd66ee6;opacity:0;animation:plate-rise 3.2s ease-out infinite}.plate .motes i:nth-child(1){left:22%}.plate .motes i:nth-child(2){left:47%;animation-delay:-1.1s;animation-duration:3.8s}.plate .motes i:nth-child(3){left:68%;animation-delay:-2.2s;animation-duration:3s}.plate .motes i:nth-child(4){left:84%;animation-delay:-.6s;animation-duration:3.5s}@keyframes plate-rise{0%{transform:translate(0);opacity:0}20%{opacity:.95}to{transform:translate(3px,-18px);opacity:0}}.plate svg.wall{position:absolute;left:0;bottom:calc(100% - 1px);pointer-events:none;overflow:visible;filter:drop-shadow(0 -1px 1px rgba(10,40,60,.13))}.plate svg.wall rect{fill:var(--plate);stroke:#23301f33;stroke-width:.8}.plate.building .meter.build i{position:relative;overflow:hidden}.plate.building .meter.build i:after{content:"";position:absolute;top:0;bottom:0;left:-14px;right:0;background:repeating-linear-gradient(-45deg,#ffffff52 0,#ffffff52 3px,#fff0 3px,#fff0 7px);animation:plate-work 1.4s linear infinite}@keyframes plate-work{to{transform:translate(9.9px)}}@media(prefers-reduced-motion:reduce){.plate .motes{display:none}.plate.building .meter.build i:after{animation:none}}:root{color-scheme:light;--paper: rgba(255, 249, 228, .9);font-family:Avenir Next,Avenir,Trebuchet MS,system-ui,sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;color:var(--ink);background:#17628f}body{user-select:none;-webkit-user-select:none;touch-action:none}button{font:inherit}[hidden]{display:none!important}#world,#world canvas{position:fixed;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%}#hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}#hint{position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom));max-width:calc(100% - 32px);transform:translate(-50%);padding:9px 18px;border-radius:20px;background:var(--paper);box-shadow:0 6px 24px #0a283c40;font-size:13px;font-weight:600;line-height:1.35;text-align:center;text-wrap:balance}#controls,#hint{z-index:1}#controls{position:absolute;top:16px;right:16px;display:flex;flex-direction:column;align-items:stretch;gap:8px;pointer-events:auto}#controls button{padding:8px 14px;border:0;border-radius:999px;background:var(--paper);color:var(--ink);box-shadow:0 6px 24px #0a283c40;font-size:13px;font-weight:700;cursor:pointer}#controls button:hover{background:#fff}#controls button .cost{margin-left:7px;padding:1px 7px;border-radius:999px;background:linear-gradient(#f8de8a,#d6a032);font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}#controls button.armed{background:var(--ink);color:#fff9e4}#controls.fold #more{order:1}#controls.fold #reset,#controls.fold #states,#controls.fold #sound{order:2}#controls button.open{box-shadow:inset 0 0 0 2px #d6a032,0 6px 24px #0a283c40}#depth{position:absolute;top:0;left:0;padding:4px 10px;border-radius:999px;background:#ffecaaf2;box-shadow:0 4px 14px #00000040;font-size:13px;font-weight:800}#fatal{position:absolute;top:50%;left:50%;width:min(420px,calc(100% - 32px));transform:translate(-50%,-50%);padding:20px;border-radius:16px;background:var(--paper);pointer-events:auto}#fatal h2{margin:0 0 8px;font:500 22px/1.2 Georgia,serif}body.titled #hud,body.titled .plates{opacity:0;pointer-events:none}#hud,.plates{transition:opacity .9s ease}#title{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(18px,4svh,40px);padding:16px 16px 10svh;cursor:default}#title .logo{position:relative;width:min(100%,820px);overflow:visible;filter:drop-shadow(0 6px 18px rgba(10,40,60,.35))}#title .paper{fill:var(--plate);opacity:0}#title .letter,#title .tier,#title .sky,#title .sun,#title .gem{opacity:0}#title.show .paper{animation:show .5s ease-out .35s both}#title.show .letter{animation:rise .8s cubic-bezier(.2,.9,.3,1) calc(.2s + var(--i) * 70ms) both}#title.show .tier{transform-box:view-box;animation:terrace .7s cubic-bezier(.3,1.35,.5,1) calc(.45s + var(--i) * 95ms) both}#title.show .sky{animation:show .7s ease-out 1.05s both}#title.show .sun{animation:sunrise 1s cubic-bezier(.2,.8,.3,1) 1.15s both}#title.show .gem{animation:plant .9s linear 1.45s both}#title .gem path{fill:#14211f}#title .menu{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:10px;opacity:0;visibility:hidden}#title.show .menu{animation:appear .6s cubic-bezier(.2,.8,.2,1) 1.9s both}#title .pill{min-width:190px;padding:12px 30px;border:0;border-radius:999px;background:var(--paper);color:var(--ink);box-shadow:0 6px 24px #0a283c40;font-size:16px;font-weight:700;cursor:pointer;outline:none;transition:background .2s,transform .2s,box-shadow .2s}#title .pill:is(:hover,:focus-visible){background:#fff;box-shadow:inset 0 0 0 2px #d6a032,0 6px 24px #0a283c40}#title .pill:active{transform:scale(.97)}#title .pill.confirm{background:var(--ink);color:#fff9e4}#title.chosen{pointer-events:none}#title.chosen :is(.logo,.menu){animation:away .8s ease-in both}#title .cover{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff9e4;opacity:0;pointer-events:none}@keyframes show{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(260px)}to{opacity:1;transform:none}}@keyframes terrace{0%{opacity:0;transform:translateY(420px)}40%{opacity:1}to{opacity:1;transform:none}}@keyframes sunrise{0%{opacity:0;transform:translateY(360px)}to{opacity:1;transform:none}}@keyframes plant{0%{opacity:0;transform:translateY(-1400px);animation-timing-function:cubic-bezier(.55,0,.85,.35)}20%{opacity:1}62%{transform:none;animation-timing-function:cubic-bezier(.2,.7,.4,1)}80%{transform:translateY(-90px);animation-timing-function:cubic-bezier(.5,0,.8,.5)}to{opacity:1;transform:none}}@keyframes appear{0%{opacity:0;visibility:visible;transform:translateY(12px)}to{opacity:1;visibility:visible;transform:none}}@keyframes away{to{opacity:0;transform:translateY(-24px)}}@media(prefers-reduced-motion:reduce){#title *,#title{animation-delay:0s!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
