:root{--card-w: 100px;--card-h: 140px;--table-2: #150f0a;--mat-1: #d9cbb0;--mat-2: #c5b394;--mat-line: rgba(94, 72, 46, .13);--paper: #fbf7ef;--paper-edge: #ddd2bd;--ink: #33291f;--ui-bg: rgba(24, 18, 12, .94);--ui-panel: rgba(30, 23, 16, .97);--ui-line: rgba(255, 245, 228, .13);--ui-text: #f3ead9;--ui-dim: rgba(243, 234, 217, .62);--accent: #f0c469;--good: #6fd08c;--warn: #e2803a;--bad: #d4585f;font-synthesis-weight:none}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--table-2);color:var(--ui-text);font-family:Segoe UI,Inter,Roboto,system-ui,-apple-system,sans-serif}#app{position:fixed;inset:0;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;cursor:default}#app.is-panning{cursor:grabbing}#viewport{position:absolute;inset:0;overflow:hidden;background:radial-gradient(120% 90% at 50% -10%,#4a382a 0%,transparent 60%),linear-gradient(#33261b,var(--table-2))}#viewport:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:60;background:radial-gradient(120% 90% at 50% 6%,rgba(255,238,208,.12) 0%,transparent 55%),radial-gradient(130% 120% at 50% 50%,transparent 55%,rgba(0,0,0,.45) 100%)}#world{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}#surface{position:absolute;left:0;top:0;border-radius:34px;background:repeating-linear-gradient(90deg,transparent 0 79px,var(--mat-line) 79px 80px),repeating-linear-gradient(0deg,transparent 0 79px,var(--mat-line) 79px 80px),radial-gradient(90% 60% at 50% 0%,#e3d6bc 0%,transparent 55%),linear-gradient(160deg,var(--mat-1),var(--mat-2));box-shadow:inset 0 0 0 3px #785e3c59,inset 0 0 60px #60482c47,0 26px 60px #0000008c}.card{position:absolute;left:0;top:0;width:var(--card-w);height:var(--card-h);margin-left:calc(var(--card-w) / -2);margin-top:calc(var(--card-h) / -2);will-change:transform;transform-origin:50% 50%;cursor:grab;--lift: 0}.card.is-dragging{cursor:grabbing}.card-body{position:relative;width:100%;height:100%;border-radius:11px;overflow:hidden;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--paper-edge);box-shadow:0 calc(1px + 7px * var(--lift)) calc(4px + 16px * var(--lift)) rgba(32,22,12,calc(.2 + .24 * var(--lift))),0 1px 2px #20160c38,inset 0 1px #ffffffd9;transition:filter .11s ease-out}.card:hover .card-body{filter:brightness(1.05) saturate(1.03)}.card:hover:not(.is-dragging) .card-body{border-color:#c3b193}.card-edge{height:5px;flex:none;background:var(--cat, #888)}.card-header{flex:none;height:31px;padding:3px 7px 0;display:flex;align-items:flex-start;gap:4px;background:linear-gradient(#fffdf8,#f4eee1);border-bottom:1px solid rgba(120,96,62,.14)}.card-name{font-size:11px;line-height:1.12;font-weight:700;letter-spacing:.1px;color:var(--ink);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.card-art{position:relative;flex:1;min-height:0;display:grid;place-items:center;background:radial-gradient(78% 62% at 50% 34%,color-mix(in srgb,var(--cat) 15%,transparent) 0%,transparent 72%),linear-gradient(#faf5ea,#efe6d4)}.art-svg{width:100%;height:100%;display:block}.card-cat{position:absolute;left:5px;bottom:4px;display:flex;align-items:center;gap:3px;font-size:7.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--cat, #777);opacity:.92}.card-cat .glyph{font-size:8.5px;line-height:1}.card-badge{position:absolute;right:4px;bottom:4px;min-width:20px;padding:1px 5px;border-radius:8px;font-size:10px;font-weight:800;text-align:center;color:#fffaf0;background:var(--cat, #555);box-shadow:0 1px 3px #00000059}.card-badge[hidden]{display:none}.card.is-buried .card-body{filter:saturate(.9) brightness(.98)}.card.is-busy .card-edge{animation:busy-pulse 1.25s ease-in-out infinite}@keyframes busy-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.55)}}.card.is-busy[data-category=Person] .card-art:after{content:"AT WORK";position:absolute;left:0;right:0;top:0;padding:2px 0;text-align:center;font-size:7.5px;font-weight:900;letter-spacing:.8px;color:#2a1c08;background:var(--accent);box-shadow:0 1px 4px #0000004d}.card.is-hungry .card-body{filter:saturate(.72) hue-rotate(-6deg)}.card.is-hungry .card-art:before{content:"HUNGRY";position:absolute;left:0;right:0;top:0;z-index:2;padding:2px 0;text-align:center;font-size:7.5px;font-weight:900;letter-spacing:.8px;color:#fff2f2;background:var(--bad)}.card.is-hungry.is-busy[data-category=Person] .card-art:after{top:13px}.card.is-dragging .card-body{border-color:#cbbda2}.card.is-assembling .card-body{box-shadow:0 calc(1px + 7px * var(--lift)) calc(4px + 16px * var(--lift)) rgba(32,22,12,calc(.2 + .24 * var(--lift))),0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent),inset 0 1px #ffffffd9}.card.is-locked .card-body{box-shadow:0 calc(1px + 7px * var(--lift)) calc(4px + 16px * var(--lift)) rgba(32,22,12,calc(.2 + .24 * var(--lift))),0 0 0 2px #a99bc4bf,inset 0 1px #ffffffd9}.card.is-blocked .card-body{box-shadow:0 calc(1px + 7px * var(--lift)) calc(4px + 16px * var(--lift)) rgba(32,22,12,calc(.2 + .24 * var(--lift))),0 0 0 2px color-mix(in srgb,var(--bad) 60%,transparent),inset 0 1px #ffffffd9}#drop-halo{--halo: var(--good);--halo-ink: #10301c;position:absolute;left:0;top:0;border-radius:17px;pointer-events:none;opacity:0;transition:opacity 90ms ease-out;border:3px solid var(--halo);box-shadow:0 0 0 5px color-mix(in srgb,var(--halo) 22%,transparent),0 0 26px color-mix(in srgb,var(--halo) 50%,transparent);background:color-mix(in srgb,var(--halo) 11%,transparent)}#drop-halo[data-kind=assemble]{--halo: var(--accent);--halo-ink: #2a1c08}#drop-halo[data-kind=merge]{--halo: #6fb6e0;--halo-ink: #0d2634}#drop-halo[data-kind=locked]{--halo: #a99bc4;--halo-ink: #221a33}#drop-halo[data-kind=fight]{--halo: var(--bad);--halo-ink: #2a0d0f}#drop-halo[data-kind=equip]{--halo: #d59a5a;--halo-ink: #2e1c08}#drop-halo.on{opacity:1}#drop-halo .halo-label{position:absolute;left:50%;top:-14px;transform:translate(-50%);padding:2px 9px;border-radius:9px;font-size:10.5px;font-weight:800;letter-spacing:.3px;white-space:nowrap;color:var(--halo-ink);background:var(--halo);box-shadow:0 2px 6px #00000059}#drop-halo .halo-detail{position:absolute;left:50%;bottom:-16px;transform:translate(-50%);padding:1px 7px;border-radius:8px;font-size:9.5px;font-weight:700;white-space:nowrap;color:var(--ui-text);background:#16100be6}#drop-halo .halo-detail:empty{display:none}.progress{position:absolute;left:0;top:0;width:92px;margin-left:-46px;padding:3px 5px 4px;border-radius:9px;pointer-events:none;background:#1a130deb;box-shadow:0 3px 9px #0000006b;will-change:transform}.progress .row{display:flex;justify-content:space-between;align-items:baseline;gap:4px;margin-bottom:3px}.progress .label{font-size:9px;font-weight:800;letter-spacing:.3px;color:var(--accent);text-transform:uppercase}.progress .time{margin-left:auto;font-size:9px;font-weight:700;color:var(--ui-dim);font-variant-numeric:tabular-nums}.progress .track{height:5px;border-radius:3px;overflow:hidden;background:#fff0d629}.progress .fill{height:100%;width:0;border-radius:3px;background:linear-gradient(90deg,#e0a94a,var(--accent))}.progress .need{margin-top:3px;font-size:8.5px;font-weight:700;line-height:1.25;color:var(--ui-dim)}.progress .need:empty{display:none}.progress.is-assemble .track,.progress.is-locked .track,.progress.is-blocked .track{display:none}.progress.is-assemble .label,.progress.is-assemble .time{color:var(--accent)}.progress.is-locked{background:#281e37ed}.progress.is-locked .label,.progress.is-locked .time{color:#c7b9e4}.progress.is-blocked{background:#341a1ced}.progress.is-blocked .label,.progress.is-blocked .time{color:#f0a3a7}.progress .loop{display:none;margin-left:3px;color:var(--good);font-weight:900}.progress.is-looping .loop{display:inline}.progress.is-looping{box-shadow:0 0 0 1px #6fd08c73,0 3px 9px #0000006b}.progress.is-slow .label{color:var(--bad)}#zones{position:absolute;left:0;top:0;pointer-events:none}.zone{--zone: #9a8f7a;position:absolute;left:0;top:0;border-radius:20px;border:1px dashed color-mix(in srgb,var(--zone) 42%,transparent);background:color-mix(in srgb,var(--zone) 7%,transparent);box-shadow:inset 0 0 40px color-mix(in srgb,var(--zone) 8%,transparent);transition:background .16s ease-out,border-color .16s ease-out,width .22s cubic-bezier(.22,1,.36,1)}.zone.is-off{display:none}.zone-name{position:absolute;left:14px;top:7px;font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:color-mix(in srgb,var(--zone) 78%,#3a2f1e);opacity:.72;user-select:none}.zone-fold{position:absolute;right:10px;top:4px;padding:2px 9px;border-radius:9px;border:1px solid color-mix(in srgb,var(--zone) 45%,transparent);background:color-mix(in srgb,var(--zone) 16%,rgba(255,250,240,.5));color:color-mix(in srgb,var(--zone) 80%,#33291a);font:inherit;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;pointer-events:auto;opacity:.6;transition:opacity .12s ease-out}.zone-fold:hover{opacity:1}.zone.is-target{background:color-mix(in srgb,var(--zone) 15%,transparent);border-color:color-mix(in srgb,var(--zone) 78%,transparent);border-style:solid}.zone.is-target .zone-name{opacity:1}.snap-ghost{--ghost: #cbb68a;position:absolute;left:0;top:0;width:100px;height:140px;border-radius:12px;border:2px dashed color-mix(in srgb,var(--ghost) 85%,transparent);background:color-mix(in srgb,var(--ghost) 12%,transparent);pointer-events:none;opacity:0;z-index:3;transition:opacity .11s ease-out}.snap-ghost.on{opacity:.9}.snap-ghost[data-kind=row]{--ghost: #9fb4c8;border-style:dotted}.snap-ghost span{position:absolute;left:50%;top:-13px;transform:translate(-50%);padding:1px 8px;border-radius:8px;white-space:nowrap;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#2c2214;background:color-mix(in srgb,var(--ghost) 88%,#fff)}.btn{min-height:32px;padding:0 12px;border-radius:8px;border:1px solid var(--ui-line);background:#3a2d20d9;color:var(--ui-text);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .12s ease,border-color .12s ease,transform 80ms ease}.btn:hover{background:#54412df2;border-color:#fff5e447}.btn:active{transform:translateY(1px)}.btn.icon{min-width:32px;padding:0;font-size:15px;line-height:1}.btn.primary{background:var(--accent);color:#2a1c08;border-color:transparent}.btn.primary:hover{background:#f7d489}.badge{display:none;min-width:16px;height:16px;margin-left:6px;padding:0 4px;border-radius:8px;font-size:10px;line-height:16px;font-weight:900;text-align:center;color:#2a1c08;background:var(--accent)}.badge.on{display:inline-block}#topbar{position:absolute;top:0;left:0;right:0;z-index:70;height:52px;display:flex;align-items:center;gap:14px;padding:0 14px;background:linear-gradient(#120d08f7,#120d08e6);border-bottom:1px solid var(--ui-line);backdrop-filter:blur(6px)}#topbar .brand{font-size:13px;font-weight:900;letter-spacing:1.4px;color:var(--accent);flex:none}.stat{display:flex;flex-direction:column;justify-content:center;gap:1px;flex:none;padding:0 12px;border-left:1px solid var(--ui-line);min-width:72px}.stat .k{font-size:8.5px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--ui-dim)}.stat .v{font-size:14px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--ui-text);line-height:1.1}.stat .v small{font-size:11px;font-weight:700;color:var(--ui-dim)}.stat.is-warn .v{color:var(--warn)}.stat.is-bad .v{color:var(--bad)}.stat.is-good .v{color:var(--good)}#stat-day{min-width:96px}.day-track{height:3px;margin-top:3px;border-radius:2px;background:#fff0d626;overflow:hidden}.day-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--warn))}#tally{flex:1;min-width:0;display:flex;gap:5px;overflow-x:auto;padding:4px 6px;scrollbar-width:thin;scrollbar-color:rgba(255,245,228,.2) transparent}#tally::-webkit-scrollbar{height:5px}#tally::-webkit-scrollbar-thumb{background:#fff5e433;border-radius:3px}.tally-chip{flex:none;display:flex;align-items:center;gap:5px;padding:3px 9px;border-radius:11px;font-size:11.5px;font-weight:700;color:var(--ui-text);background:#fff4e00f;border:1px solid var(--ui-line);font-variant-numeric:tabular-nums}.tally-chip .dot{width:7px;height:7px;border-radius:50%;background:var(--cat, #888)}#topbar-actions{display:flex;gap:7px;flex:none}#objective{position:absolute;left:14px;bottom:14px;z-index:68;width:268px;padding:11px 13px 12px;border-radius:12px;background:var(--ui-panel);border:1px solid var(--ui-line);box-shadow:0 8px 26px #00000080;cursor:pointer;transition:border-color .14s ease}#objective:hover{border-color:#f0c46966}#objective[hidden]{display:none}#objective .obj-head{display:flex;justify-content:space-between;align-items:baseline;font-size:8.5px;font-weight:900;letter-spacing:1.3px;text-transform:uppercase;color:var(--accent);margin-bottom:4px}#objective .obj-step{color:var(--ui-dim);letter-spacing:.6px}#objective .obj-title{font-size:14px;font-weight:800;line-height:1.25;margin-bottom:7px}#objective .obj-bar{height:5px;border-radius:3px;background:#fff0d624;overflow:hidden;margin-bottom:5px}#objective .obj-bar i{display:block;height:100%;width:0;border-radius:3px;background:linear-gradient(90deg,#e0a94a,var(--accent));transition:width .26s ease-out}#objective .obj-count{font-size:11px;font-weight:700;color:var(--ui-dim);font-variant-numeric:tabular-nums}#objective .obj-desc{display:none;margin-top:8px;padding-top:8px;border-top:1px solid var(--ui-line);font-size:11.5px;line-height:1.45;color:var(--ui-dim)}#objective.expanded .obj-desc{display:block}#objective.done .obj-title{color:var(--good)}#board-controls{position:absolute;right:14px;bottom:14px;z-index:68;display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end;max-width:calc(100vw - 28px)}@media(max-width:620px){#keyhint{display:none}#board-controls{bottom:auto;top:62px}#btn-zoom-in,#btn-zoom-out{display:none}}#keyhint{position:absolute;right:14px;bottom:56px;z-index:66;font-size:10.5px;color:#f3ead966;text-align:right;pointer-events:none;line-height:1.6}#keyhint kbd{display:inline-block;min-width:16px;padding:0 4px;border-radius:4px;border:1px solid rgba(255,245,228,.18);background:#fff5e412;font:inherit;font-size:9.5px;font-weight:700;text-align:center}#toast{position:absolute;top:66px;left:50%;z-index:80;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.toast-item{padding:7px 15px;border-radius:10px;font-size:12.5px;font-weight:800;color:#2a1c08;background:var(--accent);box-shadow:0 4px 16px #00000080;animation:toast-in .26s cubic-bezier(.22,1,.36,1);transition:opacity .4s ease,transform .4s ease}.toast-item.kind-warn{background:var(--warn);color:#2a1408}.toast-item.kind-good{background:var(--good);color:#10301c}.toast-item.out{opacity:0;transform:translateY(-8px)}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px) scale(.94)}to{opacity:1;transform:none}}#day-banner{position:absolute;inset:0;z-index:82;display:grid;place-items:center;pointer-events:none;opacity:0}#day-banner.show{animation:day-flash 2.2s ease-out}#day-banner .db-inner{text-align:center;padding:18px 46px;border-radius:16px;background:#120d08db;border:1px solid rgba(240,196,105,.35);box-shadow:0 16px 50px #0009}#day-banner .db-day{font-size:34px;font-weight:900;letter-spacing:4px;color:var(--accent);line-height:1}#day-banner .db-note{margin-top:8px;font-size:12.5px;font-weight:700;color:var(--ui-dim)}#day-banner .db-note.bad{color:var(--bad)}@keyframes day-flash{0%{opacity:0;transform:scale(.96)}12%{opacity:1;transform:scale(1)}78%{opacity:1}to{opacity:0}}#hint{position:absolute;left:50%;bottom:18px;z-index:66;transform:translate(-50%);max-width:520px;padding:9px 16px;border-radius:10px;text-align:center;font-size:12.5px;line-height:1.4;color:var(--ui-text);background:var(--ui-bg);border:1px solid var(--ui-line);pointer-events:none;transition:opacity .26s ease}#hint[hidden]{display:none}#hint.fade{opacity:0}#inspect{position:absolute;top:52px;right:0;bottom:0;z-index:76;width:296px;padding:16px 18px;overflow-y:auto;background:var(--ui-panel);border-left:1px solid var(--ui-line);box-shadow:-12px 0 34px #00000073;transform:translate(100%);transition:transform .2s cubic-bezier(.22,1,.36,1)}#inspect.open{transform:none}#inspect .head{display:flex;align-items:center;gap:10px;margin-bottom:10px}#inspect .swatch{width:34px;height:34px;flex:none;border-radius:9px;display:grid;place-items:center;font-size:15px;color:#fff;background:var(--cat, #666)}#inspect .name{font-size:17px;font-weight:800}#inspect .cat{font-size:10px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:var(--cat, #999)}#inspect .desc{font-size:12.5px;line-height:1.55;color:var(--ui-dim);margin:0 0 12px}#inspect .state{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.state-chip{padding:4px 9px;border-radius:8px;font-size:11px;font-weight:700;color:#f3ead9e6;background:#fff0d612;border:1px solid var(--ui-line)}.state-chip.hot{color:#2a1c08;background:var(--accent);border-color:transparent}.state-chip.bad{color:#fff2f2;background:var(--bad);border-color:transparent}#inspect .close{width:100%}#recipe-book{position:absolute;inset:0;z-index:90;display:grid;place-items:center;padding:40px;background:#080503a8;backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .18s ease}#recipe-book.open{opacity:1;pointer-events:auto}.rb-panel{display:flex;flex-direction:column;width:min(1000px,100%);max-height:100%;border-radius:14px;overflow:hidden;background:var(--ui-panel);border:1px solid var(--ui-line);box-shadow:0 24px 70px #000000a6;transform:translateY(10px) scale(.99);transition:transform .18s cubic-bezier(.22,1,.36,1)}#recipe-book.open .rb-panel{transform:none}.rb-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--ui-line)}.rb-title{font-size:17px;font-weight:900;letter-spacing:.3px}.rb-sub{margin-top:2px;font-size:11.5px;color:var(--ui-dim)}.rb-body{flex:1;min-height:0;overflow-y:auto;padding:14px 16px 20px;scrollbar-width:thin;scrollbar-color:rgba(255,245,228,.2) transparent}.rb-body::-webkit-scrollbar{width:8px}.rb-body::-webkit-scrollbar-thumb{background:#fff5e42e;border-radius:4px}.rb-section{margin-bottom:18px}.rb-sec-head{display:flex;align-items:baseline;justify-content:space-between;margin:0 2px 8px;font-size:10.5px;font-weight:900;letter-spacing:1.2px;text-transform:uppercase;color:var(--accent)}.rb-sec-count{font-size:10.5px;font-weight:700;color:var(--ui-dim)}.rb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:8px}.rb-row{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:11px;background:#fff4e00d;border:1px solid var(--ui-line);border-left:3px solid var(--cat, #777)}.rb-result{position:relative;flex:none}.rb-thumb{width:44px;height:44px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(#faf5ea,#e8dfcd);box-shadow:0 2px 5px #00000059;overflow:hidden}.rb-thumb .art-svg{width:100%;height:100%}.rb-thumb-locked{font-size:20px;font-weight:900;color:#f3ead952;background:#fff4e00f;box-shadow:none}.rb-qty{position:absolute;right:-4px;bottom:-4px;min-width:18px;padding:0 4px;border-radius:7px;text-align:center;font-size:9.5px;font-weight:900;color:#fffaf0;background:var(--cat, #555);box-shadow:0 1px 3px #0006}.rb-main{flex:1;min-width:0}.rb-name{font-size:13.5px;font-weight:800;margin-bottom:4px}.rb-inputs{display:flex;flex-wrap:wrap;gap:4px}.rb-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 6px 2px 3px;border-radius:7px;font-size:10px;font-weight:700;color:#f3ead9d9;background:#fff4e012;border:1px solid var(--ui-line)}.rb-chip b{font-weight:900;color:var(--accent)}.rb-chip-art{width:16px;height:16px;display:block;border-radius:4px;overflow:hidden;background:linear-gradient(#faf5ea,#e8dfcd)}.rb-chip-art .art-svg{width:100%;height:100%}.rb-chip.is-opt{border-style:dashed;border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent)}.rb-chip.is-ghost{padding:2px 7px;color:#f3ead961;font-style:italic}.rb-time{flex:none;font-size:11.5px;font-weight:800;color:var(--ui-dim);font-variant-numeric:tabular-nums}.rb-row.is-locked{border-left-color:#a99bc480;opacity:.5}.rb-row.is-locked .rb-name{color:#f3ead980;font-weight:700}#exploration{position:absolute;inset:0;z-index:90;display:grid;place-items:center;padding:40px;background:#080503a8;backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .18s ease}#exploration.open{opacity:1;pointer-events:auto}#exploration .rb-panel{transform:translateY(10px) scale(.99)}#exploration.open .rb-panel{transform:none}.ex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:10px}.ex-card{padding:12px 13px;border-radius:12px;background:#fff4e00d;border:1px solid var(--ui-line)}.ex-card.is-spent{opacity:.5}.ex-head{display:flex;align-items:center;gap:11px;margin-bottom:8px}.ex-thumb{width:54px;height:54px;flex:none;border-radius:9px;overflow:hidden;background:linear-gradient(#faf5ea,#e8dfcd);box-shadow:0 2px 6px #0006}.ex-thumb .art-svg{width:100%;height:100%}.ex-title{min-width:0}.ex-name{font-size:14.5px;font-weight:800;margin-bottom:4px}.ex-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;font-weight:700;color:var(--ui-dim)}.ex-risk{padding:1px 7px;border-radius:7px;font-weight:900;letter-spacing:.4px;text-transform:uppercase;font-size:9.5px}.risk-safe{color:#10301c;background:var(--good)}.risk-low{color:#14301f;background:#a8d8ae}.risk-mod{color:#2a1408;background:var(--warn)}.risk-bad{color:#2a0d0f;background:var(--bad)}.ex-desc{font-size:11.5px;line-height:1.45;color:var(--ui-dim);margin-bottom:9px}.ex-row{display:flex;align-items:baseline;gap:8px;margin-top:6px}.ex-key{flex:none;width:72px;font-size:9.5px;font-weight:900;letter-spacing:.8px;text-transform:uppercase;color:#f3ead966}.ex-chips{display:flex;flex-wrap:wrap;gap:4px}.ex-empty{padding:16px 4px 4px;font-size:12px;font-style:italic;color:#f3ead973;text-align:center}.card.is-tired .card-body{filter:saturate(.8) brightness(.97)}.card.is-tired .card-art:before{content:"TIRED";position:absolute;left:0;right:0;top:0;z-index:2;padding:2px 0;text-align:center;font-size:7.5px;font-weight:900;letter-spacing:.8px;color:#eaf1f6;background:#5b7c93}.card.is-tired.is-busy[data-category=Person] .card-art:after{top:13px}.card[data-category=Location] .card-art{background:linear-gradient(#f3ead4,#e3d7bb)}.card.is-regrowing .card-body{filter:saturate(.45) brightness(.94)}.card.is-regrowing .card-art:before{content:"REGROWING";position:absolute;left:0;right:0;top:0;z-index:2;padding:2px 0;text-align:center;font-size:7.5px;font-weight:900;letter-spacing:.8px;color:#eef5e8;background:#6f9440}.card.is-hostile .card-body{box-shadow:0 0 0 2px color-mix(in srgb,var(--bad) 55%,transparent),0 6px 16px #0006}.card.is-hostile .card-art{background:linear-gradient(#f0dcd6,#e0c3ba)}.card.is-fighting .card-edge{animation:fight-pulse .9s ease-in-out infinite}@keyframes fight-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.9) saturate(1.3)}}.card.is-down .card-body{filter:saturate(.25) brightness(.86)}.card.is-down .card-art:before{content:"DOWN";position:absolute;left:0;right:0;top:0;z-index:3;padding:2px 0;text-align:center;font-size:7.5px;font-weight:900;letter-spacing:1.2px;color:#fff2f2;background:var(--bad)}.card.is-fighting:not(.is-down).is-hungry .card-art:before,.card.is-fighting:not(.is-down).is-tired .card-art:before{content:none}.card.is-down .card-art:after{content:none}.card-art{--band: 0px}.card.is-busy[data-category=Person] .card-art,.card.is-tired .card-art,.card.is-regrowing .card-art,.card.is-down .card-art{--band: 13px}.card-hp{position:absolute;left:0;right:0;top:var(--band);z-index:3;height:5px;overflow:hidden;background:#18100a80;border-top:1px solid rgba(255,248,236,.75)}.card-hp[hidden]{display:none}.card-hp>i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#5fbe7c,var(--good));transition:width .16s ease-out}.card-hp.low>i{background:linear-gradient(90deg,#c04b52,var(--bad))}.card-pop{position:absolute;left:0;right:0;top:26%;z-index:4;text-align:center;font-size:17px;font-weight:900;color:#fff0ee;text-shadow:0 1px 0 #7a2026,0 2px 6px rgba(0,0,0,.5);pointer-events:none;opacity:0}.card-pop[hidden]{display:none}.card-pop.go{animation:dmg-float .7s ease-out forwards}@keyframes dmg-float{0%{opacity:0;transform:translateY(6px) scale(.7)}18%{opacity:1;transform:translateY(0) scale(1.15)}to{opacity:0;transform:translateY(-22px) scale(.95)}}.progress.is-fight{border-color:color-mix(in srgb,var(--bad) 50%,transparent)}.progress.is-fight .label{color:var(--bad)}.progress.is-fight .time{color:var(--bad);font-variant-numeric:tabular-nums}.progress.is-fight .fill{background:linear-gradient(90deg,#a83b42,var(--bad))}#inspect .hp{display:flex;align-items:center;gap:9px;margin:0 0 12px}#inspect .hp[hidden]{display:none}#inspect .hp-bar{flex:1;height:8px;border-radius:5px;overflow:hidden;background:#fff0d617;box-shadow:inset 0 0 0 1px var(--ui-line)}#inspect .hp-bar>i{display:block;height:100%;background:linear-gradient(90deg,#5fbe7c,var(--good));transition:width .18s ease-out}#inspect .hp.low .hp-bar>i{background:linear-gradient(90deg,#c04b52,var(--bad))}#inspect .hp.out .hp-bar>i{background:#d4585f59}#inspect .hp-text{flex:none;font-size:12px;font-weight:800;color:var(--ui-dim);font-variant-numeric:tabular-nums}#inspect .btn.act{width:100%;margin-bottom:8px}#inspect .btn.act[hidden]{display:none}#inspect .btn.retreat{color:#fff2f2;background:var(--bad);border-color:transparent}.card.is-fighting[data-category=Person] .card-art:after{content:"FIGHTING";background:var(--bad);color:#fff2f2}#workers,#game-menu{position:absolute;inset:0;z-index:90;display:grid;place-items:center;padding:40px;background:#080503a8;backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .18s ease}#workers.open,#game-menu.open{opacity:1;pointer-events:auto}.rb-panel.narrow{width:min(460px,100%)}.wk-filters{display:flex;gap:6px;padding:0 18px 12px;border-bottom:1px solid var(--ui-line)}.wk-filter{font-size:11.5px;padding:5px 11px}.wk-filter.on{color:#2a1c08;background:var(--accent);border-color:transparent}.wk-count{margin-left:5px;opacity:.65;font-variant-numeric:tabular-nums}.wk-list{display:flex;flex-direction:column;gap:5px}.wk-row{display:grid;grid-template-columns:84px 1fr auto;align-items:center;gap:12px;width:100%;padding:9px 12px;border:1px solid var(--ui-line);border-left:3px solid var(--ui-line);border-radius:10px;background:#fff4e00d;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background .12s ease,border-color .12s ease}.wk-row:hover{background:#fff4e01a}.wk-row.state-idle{border-left-color:#f3ead959}.wk-row.state-busy{border-left-color:var(--accent)}.wk-row.state-away{border-left-color:#6fb6e0}.wk-row.state-fighting{border-left-color:var(--bad)}.wk-row.state-down{border-left-color:var(--bad);opacity:.65}.wk-name{font-size:14px;font-weight:800}.wk-doing{min-width:0;font-size:12px;font-weight:700;color:var(--ui-dim)}.wk-doing em{display:block;font-size:11px;font-style:normal;font-weight:600;color:#f3ead96b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wk-side{display:flex;align-items:center;gap:5px;flex:none}.wk-hp{font-size:11px;font-weight:800;color:var(--good);font-variant-numeric:tabular-nums}.wk-hp.low{color:var(--warn)}.wk-hp.out{color:var(--bad)}.wk-tag{padding:2px 7px;border-radius:7px;font-size:10px;font-weight:800;color:#f3ead9cc;background:#fff0d614;border:1px solid var(--ui-line)}.wk-tag.bad{color:#fff2f2;background:var(--bad);border-color:transparent}.wk-tag.arm{color:#2e1c08;background:#d59a5a;border-color:transparent}.gm-row{display:flex;justify-content:space-between;align-items:baseline;padding:7px 2px;border-bottom:1px solid var(--ui-line);font-size:12.5px}.gm-key{font-weight:700;color:var(--ui-dim)}.gm-val{font-weight:800;font-variant-numeric:tabular-nums}.gm-acts{display:flex;flex-direction:column;gap:8px;margin:16px 0 12px}.gm-acts .btn{width:100%}.gm-acts .btn[disabled]{opacity:.4;pointer-events:none}.btn.danger{color:#fff2f2;background:var(--bad);border-color:transparent}.gm-confirm{padding:9px 11px;border-radius:9px;font-size:12px;font-weight:700;line-height:1.45;color:#ffd9da;background:#d4585f29;border:1px solid rgba(212,88,95,.45)}.gm-note{font-size:11.5px;line-height:1.5;color:#f3ead980}.card.is-found .card-body{animation:found-ring 1.4s ease-out}@keyframes found-ring{0%,to{box-shadow:0 6px 16px #0006}15%,55%{box-shadow:0 0 0 3px var(--accent),0 0 22px color-mix(in srgb,var(--accent) 65%,transparent),0 6px 16px #0006}}.card.is-pinned .card-body:after{content:"";position:absolute;right:6px;bottom:6px;width:9px;height:9px;border-radius:50%;background:#c8892f;box-shadow:0 0 0 2px #fff8e8d9,0 1px 3px #0006;pointer-events:none}#inspect .btn.act.pin.on{color:#2a1c08;background:var(--accent);border-color:transparent}#btn-alert{min-width:30px;padding-left:9px;padding-right:9px;font-weight:800;animation:alert-pulse 1.5s ease-in-out infinite}@keyframes alert-pulse{0%,to{box-shadow:0 0 #c44a428c}50%{box-shadow:0 0 0 7px #c44a4200}}@media(prefers-reduced-motion:reduce){#btn-alert{animation:none}}#main-menu{position:absolute;inset:0;z-index:120;display:none;align-items:center;justify-content:center;padding:24px;background:radial-gradient(120% 80% at 50% 0%,rgba(214,154,92,.16) 0%,transparent 60%),radial-gradient(100% 90% at 50% 100%,rgba(0,0,0,.5) 0%,transparent 70%),#150f0a}#main-menu.open{display:flex}@media(max-height:640px){.mm-logo{width:min(250px,60%)}.mm-body{margin-top:16px}.mm-tag{display:none}}.mm-panel{width:min(440px,100%);text-align:center;animation:mm-rise .32s cubic-bezier(.22,1,.36,1)}@keyframes mm-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.mm-panel{animation:none}}.mm-logo{display:block;width:min(340px,78%);height:auto;margin:0 auto;filter:drop-shadow(0 10px 22px rgba(0,0,0,.55))}.mm-tag{margin-top:10px;font-size:13px;letter-spacing:.02em;color:var(--ui-dim)}.mm-body{margin-top:22px;display:flex;flex-direction:column;gap:10px}.mm-act{display:flex;flex-direction:column;align-items:center;gap:3px;width:100%;padding:15px 18px;height:auto;text-align:center;white-space:normal}.mm-act-label{font-size:15px;font-weight:700;letter-spacing:.04em}.mm-act-note{font-size:11.5px;font-weight:500;letter-spacing:.02em;opacity:.72}.mm-confirm,.mm-note,.mm-fail{font-size:12px;line-height:1.5;text-align:left;padding:10px 13px;border-radius:10px}.mm-confirm{color:#ffe4e0;background:#c44a422e;border:1px solid rgba(196,74,66,.45)}.mm-fail{color:#ffe4e0;background:#c44a4224;border:1px solid rgba(196,74,66,.4)}.mm-note{margin-top:6px;color:var(--ui-dim);background:#ffffff0a}#app.at-menu #topbar,#app.at-menu #objective,#app.at-menu #board-controls,#app.at-menu #keyhint,#app.at-menu #hint{display:none}
