:root{--bg:#070b12;--moon:#8fb0d8;--deep:#1b2a40;--lantern:#ffb45a;--ember:#d8402c;--felt:#2f4a36;--bronze:#b08a4a;--bell:#7dff9a;--ink:#dfe8f5;--dim:#8a9bb3;--panel:#0e1624db;--line:#ffb45a66;--head:"Cormorant Garamond", Georgia, "Times New Roman", serif;--num:"Inter", system-ui, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#app{background:var(--bg);height:100%;color:var(--ink);font-family:var(--num);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}input,textarea,select,[contenteditable=true]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}img,canvas{-webkit-user-drag:none}button{touch-action:manipulation;font-family:var(--num)}canvas{width:100%;height:100%;display:block}#app{position:relative}.ui,.hud{pointer-events:none;position:absolute;inset:0}.ui .screen{pointer-events:auto}h2,h3{font-family:var(--head);letter-spacing:.04em;margin:0;font-weight:600}.screen{position:absolute;inset:0}.title{background:radial-gradient(at 70% 30%,#223652 0%,#0b1220 60%,#05070c 100%);overflow:hidden}.title .keyart{opacity:0;background:50%/cover no-repeat;transition:opacity .6s;position:absolute;inset:0}.title .keyart.on{opacity:1}.title:after{content:"";pointer-events:none;background:linear-gradient(90deg,#05080eeb 0%,#05080e8c 40%,#0000 70%);position:absolute;inset:0}.titlebox{z-index:2;width:min(520px,88vw);position:absolute;top:50%;left:6vw;transform:translateY(-50%)}.wordmark{font-family:var(--head);text-transform:uppercase;line-height:.9}.wordmark .w1{letter-spacing:.12em;color:var(--ink);font-size:clamp(40px,7vw,92px);font-weight:600;display:block}.wordmark .w2{letter-spacing:.18em;color:var(--lantern);text-shadow:0 0 30px #ff963c59;font-size:clamp(54px,10vw,130px);font-weight:700;display:block}.tagline{font-family:var(--head);color:var(--moon);max-width:460px;margin:16px 0 26px;font-size:20px;font-style:italic}.list{flex-direction:column;gap:6px;display:flex}.item{cursor:pointer;background:#0e162466;border-left:2px solid #0000;padding:11px 16px;transition:background .1s,border-color .1s}.item b{font-family:var(--head);letter-spacing:.08em;text-transform:uppercase;font-size:24px;font-weight:600;display:block}.item span{color:var(--dim);font-size:13px}.item.sel{border-left-color:var(--lantern);background:#ffb45a1f}.item.sel b{color:var(--lantern)}.item.disabled{opacity:.4;cursor:default}.loadline{color:var(--moon);letter-spacing:.06em;margin-top:14px;font-size:13px}.foot{color:var(--dim);margin-top:12px;font-size:12px}.warn{color:var(--ember);margin-top:10px;font-size:13px}.legal{color:var(--dim);z-index:2;font-size:11px;position:absolute;bottom:18px;left:6vw}.panelscreen{background:#05080ebd;justify-content:center;align-items:center;display:flex}.sheet{background:var(--panel);border:1px solid var(--line);width:min(560px,92vw);max-height:92vh;padding:28px 32px;overflow:auto}.sheet.wide{width:min(760px,94vw)}.sheet.small{width:min(420px,92vw)}.sheet h2{color:var(--lantern);margin-bottom:14px;font-size:36px}.sheet h2.red{color:var(--ember);font-size:52px}.sheet .row{border-bottom:1px solid #8fb0d824;align-items:center;gap:14px;padding:8px 0;font-size:15px;display:flex}.sheet .row span{flex:0 0 170px}.sheet .row input[type=range]{accent-color:var(--lantern);flex:1}.sheet .row input[type=checkbox]{width:20px;height:20px;accent-color:var(--lantern)}.sheet .row em{text-align:right;width:48px;color:var(--moon);font-variant-numeric:tabular-nums;font-style:normal}.btns{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}button{color:var(--ink);border:1px solid var(--moon);cursor:pointer;letter-spacing:.04em;background:#1b2a40cc;padding:8px 18px;font-size:14px}button:hover:not(:disabled){border-color:var(--lantern);color:var(--lantern)}button:disabled{opacity:.4;cursor:default}.note{color:var(--dim);font-size:14px;line-height:1.5}table.ctl{border-collapse:collapse;width:100%;margin:8px 0;font-size:14px}table.ctl th{text-align:left;font-family:var(--head);color:var(--moon);letter-spacing:.08em;border-bottom:1px solid var(--line);padding:6px 8px;font-size:17px}table.ctl td{border-bottom:1px solid #8fb0d81a;padding:5px 8px}table.ctl td:first-child{color:var(--lantern)}.stats{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;margin:16px 0 20px;display:grid}.stats div{border-top:1px solid var(--line);padding-top:8px}.stats b{font-size:28px;font-family:var(--num);color:var(--ink);font-weight:600;display:block}.stats span{color:var(--dim);font-size:12px}.hud{z-index:3}.vitals{justify-content:space-between;align-items:flex-end;display:flex;position:absolute;bottom:22px;left:28px;right:28px}.hp{align-items:center;gap:10px;display:flex}.hp label{font-family:var(--head);letter-spacing:.18em;color:var(--moon);font-size:16px}.hp i{border:1px solid var(--line);background:#05080e99;width:220px;height:8px;display:block}.hp b{background:linear-gradient(90deg, var(--bronze), var(--lantern));height:100%;transition:width .15s;display:block}.hud.low .hp b{background:var(--ember)}.hp em{font-style:normal;font-family:var(--num);min-width:40px;font-size:22px;font-weight:600}.gear{text-align:right;text-shadow:0 1px 6px #000}.wname{font-family:var(--head);letter-spacing:.14em;color:var(--lantern);text-transform:uppercase;font-size:22px}.ammo strong{font-family:var(--num);font-variant-numeric:tabular-nums;font-size:44px;font-weight:600}.ammo strong.empty{color:var(--ember)}.ammo span{color:var(--moon);font-variant-numeric:tabular-nums;margin-left:8px;font-size:16px}.meta{color:var(--dim);font-size:12px}.siege{font-family:var(--head);letter-spacing:.18em;color:var(--lantern);text-shadow:0 1px 8px #000;border-bottom:1px solid var(--line);padding:4px 18px;font-size:20px;position:absolute;top:18px;left:50%;transform:translate(-50%)}.siege[hidden],.bossbar[hidden],.prompt[hidden],.hint[hidden],.sub[hidden],.capture[hidden]{display:none}.bossbar{text-align:center;width:min(560px,70vw);position:absolute;top:56px;left:50%;transform:translate(-50%)}.bossbar span{font-family:var(--head);letter-spacing:.3em;color:var(--bell);font-size:18px}.bossbar i{background:#05080eb3;border:1px solid #7dff9a80;height:8px;margin-top:4px;display:block}.bossbar b{background:linear-gradient(90deg, #2c8a4a, var(--bell));width:100%;height:100%;display:block}.cross{opacity:0;width:0;height:0;transition:opacity .1s;position:absolute;top:50%;left:50%}.cross.on{opacity:1}.cross i{border:1px solid #ffdcbeb3;border-radius:50%;width:28px;height:28px;position:absolute;top:-14px;left:-14px}.cross.enemy i{border-color:var(--ember);box-shadow:0 0 8px #d8402ccc}.hitm{opacity:0;width:0;height:0;position:absolute;top:50%;left:50%}.hitm.on{opacity:1}.hitm:before,.hitm:after{content:"";background:#fff;width:24px;height:2px;position:absolute;top:-1px;left:-12px;transform:rotate(45deg)}.hitm:after{transform:rotate(-45deg)}.hitm.head:before,.hitm.head:after{background:var(--ember)}.hitm.kill:before,.hitm.kill:after{background:var(--lantern)}.prompt{border:1px solid var(--line);font-size:17px;font-family:var(--head);letter-spacing:.06em;background:#0e1624c7;align-items:center;gap:12px;padding:8px 16px;display:flex;position:absolute;top:62%;left:50%;transform:translate(-50%)}.keycap{text-align:center;border:1px solid var(--lantern);min-width:28px;color:var(--lantern);font-family:var(--num);padding:2px 8px;font-size:14px;font-weight:600;display:inline-block}.holdbar{background:#ffffff26;width:70px;height:5px;display:block}.holdbar b{background:var(--lantern);width:0;height:100%;display:block}.hint{text-align:center;max-width:min(680px,86vw);font-family:var(--head);color:var(--ink);text-shadow:0 1px 8px #000,0 0 2px #000;font-size:22px;line-height:1.3;position:absolute;top:14%;left:50%;transform:translate(-50%)}.sub{text-align:center;max-width:min(720px,86vw);font-family:var(--head);color:var(--moon);text-shadow:0 1px 8px #000;font-size:22px;font-style:italic;position:absolute;bottom:20%;left:50%;transform:translate(-50%)}.toasts{flex-direction:column;align-items:flex-end;gap:4px;display:flex;position:absolute;top:22px;right:28px}.toast{border-right:2px solid var(--lantern);background:#0e1624cc;padding:4px 12px;font-size:14px}.dmg{opacity:0;background:radial-gradient(#0000 35%,#96140abf 100%);position:absolute;inset:0}.lowhp{opacity:0;pointer-events:none;background:radial-gradient(#0000 50%,#780a0a99 100%);position:absolute;inset:0}.capture{color:var(--dim);font-size:13px;position:absolute;bottom:90px;left:50%;transform:translate(-50%)}.casescreen{background:#05080ed1;flex-wrap:wrap;justify-content:center;align-items:center;gap:28px;padding:16px;display:flex;overflow:auto}.casescreen[hidden],.shopscreen[hidden]{display:none}.case{background:#1c1a16;border:2px solid #3a2e20;border-radius:6px;padding:16px 18px 14px;box-shadow:0 10px 40px #0009,inset 0 0 0 1px #ffb45a26}.case-head{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.case-head h2{color:var(--lantern);font-size:28px}.money{color:var(--dim);font-variant-numeric:tabular-nums;font-size:13px}.felt{background-color:var(--felt);background-image:var(--felt-img,none), linear-gradient(#00000038 1px, transparent 1px), linear-gradient(90deg, #00000038 1px, transparent 1px);touch-action:none;cursor:grab;background-size:cover,52px 52px,52px 52px;position:relative;box-shadow:inset 0 0 30px #0000008c}.items{position:absolute;inset:0}.item.float,.items .item{position:absolute}.items .item,.floating .item{background:var(--tile,#555);border:1px solid #ffdca080;border-radius:3px;padding:0;display:block;overflow:hidden;box-shadow:0 2px 6px #00000080}.items .item img,.floating .item img{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block}.items .item.rotimg img,.floating .item.rotimg img{max-width:none;position:absolute;top:50%;left:50%}.items .item .lbl,.floating .item .lbl{text-align:center;font-family:var(--head);color:#f4ead8;text-shadow:0 1px 3px #000;justify-content:center;align-items:center;padding:2px;font-size:14px;font-weight:700;line-height:1;display:flex;position:absolute;inset:0}.items .item b,.floating .item b{font-size:13px;font-family:var(--num);color:#fff;text-shadow:0 1px 3px #000;position:absolute;bottom:1px;right:3px}.items .item i,.floating .item i{letter-spacing:.1em;color:var(--lantern);text-shadow:0 1px 3px #000;font-size:9px;font-style:normal;position:absolute;top:2px;left:3px}.items .item.sel{border-color:var(--lantern);box-shadow:0 0 10px #ffb45a80}.items .item.lifted{opacity:.25}.items .cursor{border:2px solid var(--lantern);pointer-events:none;position:absolute}.ghost{pointer-events:none;border:2px solid;display:none;position:absolute}.ghost.ok{background:#7dff9a26;border-color:#7dff9ae6}.ghost.bad{background:#d8402c2e;border-color:#d8402ce6}.floating{z-index:20;pointer-events:none;position:fixed;top:0;left:0}.floating[hidden]{display:none}.floating .item{opacity:.92}.keystrip{align-items:center;gap:12px;min-height:30px;margin-top:10px;display:flex}.keystrip label{font-family:var(--head);letter-spacing:.2em;color:var(--moon);font-size:14px}.keychip{border:1px solid var(--bronze);color:var(--bronze);font-family:var(--head);padding:4px 10px;font-size:16px}.keystrip .none{color:var(--dim);font-size:13px}.side{background:var(--panel);border:1px solid var(--line);align-self:flex-start;width:260px;padding:18px}.side h3{color:var(--ink);font-size:26px}.side .idesc{color:var(--dim);min-height:60px;font-size:14px;line-height:1.45}.side .help{color:var(--dim);margin-top:16px;font-size:12px}.side button[hidden]{display:none}.shopscreen{background:radial-gradient(at 50% 60%,#3c26108c,#05080ee6);justify-content:center;align-items:center;display:flex}.shop{border:1px solid var(--bronze);background:#18100ae6;width:min(680px,94vw);padding:22px 26px}.shop-head{justify-content:space-between;align-items:baseline;display:flex}.shop-head h2{color:var(--lantern);font-size:32px}.tabs{gap:6px;margin:12px 0;display:flex}.tabs button.on{border-color:var(--lantern);color:var(--lantern)}.line{font-family:var(--head);color:#e8d3a8;min-height:52px;font-size:20px;font-style:italic;line-height:1.3}.rows{flex-direction:column;gap:4px;max-height:44vh;display:flex;overflow:auto}.rows .row{cursor:pointer;background:#ffb45a0d;border-left:2px solid #0000;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.rows .row.sel{border-left-color:var(--lantern);background:#ffb45a24}.rows .row.off{opacity:.4}.rows .row b{font-family:var(--head);letter-spacing:.04em;font-size:19px;display:block}.rows .row small{color:var(--dim);font-size:12px}.rows .row em{font-style:normal;font-family:var(--num);color:var(--bronze);font-variant-numeric:tabular-nums;font-weight:600}@media (width<=720px){.vitals{bottom:12px;left:12px;right:12px}.hp i{width:110px}.ammo strong{font-size:32px}.hint{font-size:17px}}
