:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#120e18;--ink:#f4ead7;--muted:#c3b6c4;--gold:#e7b15a;--panel:#181020f0;--line:#e7b15a73;font-family:Palatino,Iowan Old Style,Palatino Linotype,Georgia,serif}*{box-sizing:border-box}html,body{background:radial-gradient(900px 420px at 50% -10%, #3a2748 0%, transparent 60%), var(--bg);min-height:100%;color:var(--ink);margin:0}body{min-height:100dvh;overflow:hidden}button,input{font:inherit;color:inherit}button{border:1px solid var(--line);cursor:pointer;background:#342230;border-radius:999px;min-height:44px;padding:.65rem 1rem}button.primary{background:var(--gold);color:#1b120f;border-color:var(--gold)}button.texty{color:var(--muted);text-underline-offset:3px;background:0 0;border-color:#0000;text-decoration:underline}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.app{min-height:100dvh;padding:env(safe-area-inset-top) max(12px, env(safe-area-inset-right)) 0 max(12px, env(safe-area-inset-left));-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}.top{justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 4px 6px;display:flex}.eyebrow,.note{color:var(--muted);letter-spacing:.04em;margin:0;font-size:.92rem}h1,h2,p{margin:0}h1{letter-spacing:.01em;font-size:1.35rem;font-weight:600}.room-line{margin-top:2px}.blurb{color:var(--muted);max-width:46rem;margin-top:2px}.header-actions,.actions{flex-wrap:wrap;gap:8px;display:flex}.meters{flex-wrap:wrap;align-items:center;gap:16px;padding:0 4px 8px;display:flex}.hp{align-items:center;gap:8px;min-width:min(100%,240px);display:flex}.hp-track{background:#3a2430;border-radius:999px;flex:1;min-width:96px;height:12px;overflow:hidden}.hp-fill{transform-origin:0;background:linear-gradient(90deg,#a83232,#e15a4a);width:100%;height:100%}.gold{color:var(--gold)}.blessings{color:var(--muted);font-size:.92rem}.stage-wrap{aspect-ratio:16/9;background:#100c16;border-radius:16px;width:min(960px,100%,177.778dvh - 408.889px);margin:0 auto;position:relative;overflow:hidden;box-shadow:0 18px 50px #00000059}canvas{touch-action:none;width:100%;height:100%;display:block}.controls{padding:10px 4px max(12px, env(safe-area-inset-bottom));justify-content:space-between;align-items:center;gap:12px;margin-top:auto;display:flex}body:not([data-phase=combat]) .controls{display:none}body:not([data-phase=combat]) .stage-wrap{width:min(960px,100%,177.778dvh - 266.667px)}.stick{touch-action:none;background:#f4ead714;border:1px solid #f4ead740;border-radius:50%;flex:none;width:112px;height:112px;position:relative}.knob{background:#f3ead8;border-radius:50%;width:52px;height:52px;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%}.atk{color:#fff8f2;background:#e25a32;border-color:#ffb08a;border-radius:50%;flex:none;width:112px;height:112px;font-size:1.05rem}.keys{color:var(--muted);text-align:center;flex:1;margin:0}.overlay{z-index:5;background:#08060c9e;place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow:auto}.overlay[hidden]{display:none}.sheet{background:var(--panel);border:1px solid var(--line);border-radius:18px;width:min(560px,100%);padding:18px;box-shadow:0 24px 70px #0006}.sheet h2{margin:4px 0 8px;font-size:clamp(1.7rem,4vw,2.4rem);line-height:1.05}.sheet p{margin-top:8px;line-height:1.4}.offers{gap:8px;margin-top:12px;display:grid}.offer{text-align:left;background:#2a2034;border-radius:14px;flex-direction:column;align-items:flex-start;gap:4px;min-height:92px;display:flex}.offer span{color:var(--muted);font-size:.92rem}.actions{margin-top:14px}.actions button{flex:180px}dialog{border:1px solid var(--line);width:min(560px,100% - 24px);color:var(--ink);background:#1b1424;border-radius:18px;padding:18px}dialog::backdrop{background:#0000008c}dialog h2{margin-bottom:8px;font-size:1.6rem}dialog ul,.sheet ul{margin:8px 0 0;padding-left:1.1rem}dialog li,.sheet li{margin:.45rem 0;line-height:1.35}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width>=720px){.offers{grid-template-columns:1fr 1fr 1fr}}@media (width<=700px){.keys{display:none}h1{font-size:1.15rem}.top{flex-direction:column;align-items:stretch}.header-actions{justify-content:flex-start}}@media (width<=380px){.stick,.atk{width:96px;height:96px}}
