:root{--ink: #e8dcc0;--muted: #a8977a;--gold: #ebd39a;--accent: #d4a94f;--border: #5a4424;--border-hi: #7a5c2e;--night: #0b0907;--display: "Cinzel", "Trajan Pro", Georgia, serif;--text: "EB Garamond", Garamond, Georgia, serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#050403;color:var(--ink);font-family:var(--text);font-size:17px;-webkit-user-select:none;user-select:none}#stage canvas{display:block}.hidden{display:none!important}.gump{background:linear-gradient(#1a130deb,#0b0907f2);border:1px solid var(--border);box-shadow:inset 0 0 0 1px var(--night),inset 0 1px 0 1px #ebd39a0f,0 8px 24px #00000073;border-radius:5px}#hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}#hud .bar{position:absolute;top:22px;left:50%;transform:translate(-50%);display:flex;gap:18px;padding:6px 14px}.stat span{color:var(--muted);font-variant:small-caps}.stat b{color:var(--gold);font:600 18px var(--display)}#boss{position:absolute;top:66px;left:50%;transform:translate(-50%);width:min(460px,calc(100% - 32px));padding:6px 12px 9px;text-align:center}#boss b{color:var(--gold);font:600 16px var(--display);letter-spacing:.06em}#boss .track{margin-top:5px;height:8px;background:#1c0a08;border:1px solid var(--border)}#bossfill{height:100%;background:linear-gradient(#e0503a,#8c1c14);transition:width .1s}#banner{position:absolute;top:26%;width:100%;text-align:center;color:var(--gold);font:600 34px var(--display);letter-spacing:.08em;text-shadow:0 2px 12px #000,0 0 2px #000}#overlay,#loading{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0000008c}#loading{background:var(--night)}.dialog{padding:26px 40px;text-align:center;min-width:320px;max-width:min(760px,calc(100% - 32px))}.dialog h1{margin:0 0 10px;color:var(--gold);font:600 34px var(--display)}.dialog p{margin:8px 0}.dialog .keys{margin:14px 0;padding:0;list-style:none;color:var(--muted)}.dialog .best{color:var(--accent)}button.primary,a.primary{display:inline-block;text-decoration:none;margin-top:12px;padding:8px 26px;color:var(--night);background:linear-gradient(#ebd39a,#b98b3e);border:1px solid var(--border-hi);border-radius:4px;font:600 17px var(--display);cursor:pointer}button.primary:hover,a.primary:hover{filter:brightness(1.08)}#xp{position:absolute;top:0;left:0;right:0;height:10px;background:#0a0805d9;border-bottom:1px solid var(--border)}#xpfill{height:100%;width:0;background:linear-gradient(#f3d77e,#b8862c);transition:width .15s}.stat.time b{font-size:22px}#skills{position:absolute;top:22px;left:12px;min-width:200px;padding:6px 12px 8px;font-size:15px}#skills h3{margin:4px 0 2px;color:var(--accent);font:600 12px var(--display);letter-spacing:.08em}#skills ul{margin:0;padding:0;list-style:none}#skills li{display:flex;justify-content:space-between;gap:12px}#skills li b{color:var(--gold)}#skills ul:empty:after{content:"–";color:var(--muted)}.dialog h2{margin:0 0 4px;color:var(--gold);font:600 26px var(--display)}.dialog .sub{color:var(--muted)}.offers{display:flex;gap:12px;margin-top:14px}.offer{position:relative;flex:1;display:flex;flex-direction:column;gap:4px;min-width:0;padding:12px 12px 14px;color:var(--ink);text-align:left;font:16px var(--text);background:linear-gradient(#281e14e6,#0e0b08f2);border:1px solid var(--rarity);border-radius:5px;box-shadow:inset 0 0 14px color-mix(in srgb,var(--rarity) 25%,transparent);cursor:pointer}.offer:hover{filter:brightness(1.15)}.offer .key{position:absolute;top:6px;right:8px;color:var(--muted);font-size:13px}.offer .rarity{color:var(--rarity);font:600 12px var(--display);letter-spacing:.06em}.offer b{color:var(--gold);font:600 17px var(--display)}.offer .lv{color:var(--muted);font-size:14px}.offer small{color:var(--muted)}.offers .card{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}.offers .card .offer{flex:1}.offers .ban,.choicebar button{padding:4px 8px;color:var(--muted);font:13px var(--text);background:#120c07;border:1px solid var(--border);border-radius:4px;cursor:pointer}.offers .ban:hover:not(:disabled){color:#ff8a7a;border-color:#a8483a}.offers .ban:disabled,.choicebar button:disabled{opacity:.4;cursor:default}.choicebar{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:14px;color:var(--muted);font-size:14px}.choicebar button{color:#d8b8ff;border-color:#6a4a8a}.offer.legendary,.offer.evolve{box-shadow:inset 0 0 22px color-mix(in srgb,var(--rarity) 40%,transparent),0 0 12px color-mix(in srgb,var(--rarity) 45%,transparent)}.dialog .title{max-height:calc(100vh - 80px);overflow-y:auto}.templates{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:10px 0 6px}.tpl{display:flex;flex-direction:column;gap:4px;padding:10px;color:var(--ink);text-align:left;font:15px var(--text);background:linear-gradient(#281e14e6,#0e0b08f2);border:1px solid var(--border-hi);border-radius:5px;cursor:pointer}.tpl b{color:var(--gold);font:600 17px var(--display)}.tpl small{color:var(--muted);font-size:13px}.tpl .note{margin-top:auto;color:var(--accent);font:600 13px var(--display)}.tpl.on{border-color:var(--gold);box-shadow:inset 0 0 16px #f2c14e59,0 0 10px #f2c14e59}.tpl.locked{opacity:.75}.tpl:disabled{opacity:.45;cursor:default}.tpl:not(:disabled):hover{filter:brightness(1.15)}.upgrades{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;margin:8px 0;padding:0;list-style:none;text-align:left}.upgrades li{display:flex;align-items:center;justify-content:space-between;gap:10px}.upgrades small{color:var(--muted)}.upgrades button{flex:none;padding:3px 10px;color:var(--gold);background:#1e160ee6;border:1px solid var(--border-hi);border-radius:4px;font:600 13px var(--display);cursor:pointer}.upgrades button:disabled{opacity:.45;cursor:default}.dialog .banked{color:var(--gold)}@media(max-width:700px){.templates,.upgrades{grid-template-columns:1fr 1fr}.upgrades{grid-template-columns:1fr}}#hud .bar button,#bagbtn{padding:2px 12px;color:var(--gold);background:#1e160ee6;border:1px solid var(--border-hi);border-radius:4px;font:600 14px var(--display);cursor:pointer}#log{position:absolute;left:14px;bottom:140px;max-width:40%;display:flex;flex-direction:column;gap:2px;font-size:16px;text-shadow:0 1px 3px #000,0 0 2px #000;pointer-events:none}#log div{animation:fade 4s forwards}@keyframes fade{0%,75%{opacity:1}to{opacity:0}}.doll{display:flex;gap:18px;margin-top:10px;text-align:left}.doll .slots{display:grid;grid-template-columns:repeat(2,92px);gap:6px;align-content:start}.slot,.item{position:relative;display:flex;align-items:center;justify-content:center;width:92px;height:62px;padding:0;background:#080604b3;border:1px solid var(--border);border-radius:4px;cursor:pointer}.item{width:52px;height:52px}.slot.full,.item{border-color:var(--rarity);box-shadow:inset 0 0 10px color-mix(in srgb,var(--rarity) 30%,transparent)}.slot .label{position:absolute;bottom:2px;left:0;right:0;color:var(--muted);font-size:12px;text-align:center}.slot.full .label{display:none}.doll .side{width:238px}.doll h3{margin:0 0 6px;color:var(--accent);font:600 13px var(--display)}.doll .grid{display:grid;grid-template-columns:repeat(auto-fill,52px);gap:6px;min-height:52px}#tooltip{position:fixed;z-index:10;width:260px;padding:8px 10px;font-size:15px;pointer-events:none}.doll .hint{margin:10px 0 0;color:var(--muted);font-size:14px}.detail b,.detail .rarity,.detail small{display:block}.detail .rarity{font:600 11px var(--display)}.detail small{color:var(--muted)}.detail ul{margin:4px 0 0;padding:0;list-style:none}.detail .worn,.detail .diff{margin-top:8px;padding-top:6px;border-top:1px solid var(--border)}.detail .diff .up{color:#79cf5f}.detail .diff .down{color:#e06a5a}.dialog h3{margin:14px 0 6px;color:var(--accent);font:600 14px var(--display);letter-spacing:.08em}.dealt{margin:0 auto;padding:0;width:420px;max-width:100%;list-style:none;text-align:left}.dealt li{display:grid;grid-template-columns:9em 1fr 4.5em 3em;gap:8px;align-items:center;font-size:15px}.dealt i{height:6px;width:var(--w);background:linear-gradient(90deg,var(--accent),var(--gold));border-radius:3px}.dealt b{text-align:right}.dealt small{color:var(--muted);text-align:right}.dialog .totals{color:var(--muted);font-size:15px}.slot,.item{font-family:var(--text)}.detail li small{display:inline}#status{position:absolute;bottom:12px;left:50%;transform:translate(-50%);width:min(560px,calc(100% - 32px));padding:8px 12px 6px}#status .hp{position:relative;height:18px;background:#1c0a08;border:1px solid var(--border);border-radius:3px;overflow:hidden}#hpfill{height:100%;background:linear-gradient(#5fd36a,#23843a);transition:width .1s}#hptext{position:absolute;top:0;right:0;bottom:0;left:0;color:#fff;font:600 13px var(--display);line-height:17px;text-align:center;text-shadow:0 1px 2px #000}#stats{display:grid;grid-template-columns:repeat(5,1fr);gap:2px 12px;margin:6px 0 0;padding:0;list-style:none;font-size:14px}#stats li{display:flex;justify-content:space-between;gap:6px;white-space:nowrap}#stats li span{color:var(--muted)}#stats li b{color:var(--gold)}#stats li.off b{color:var(--muted);font-weight:400}#belt{display:flex;justify-content:center;gap:8px;margin-bottom:6px}#belt .potion{position:relative;width:40px;height:40px;display:grid;place-items:center;background:#120c07;border:1px solid var(--border);border-radius:4px;cursor:pointer}#belt .potion:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;transform-origin:bottom;transform:scaleY(var(--wait, 0));pointer-events:none}#belt .dash .icon{color:var(--gold);font:600 22px var(--display)}#belt .potion.empty .icon{opacity:.25;filter:grayscale(1)}#belt .potion b{position:absolute;right:3px;bottom:1px;color:#fff;font-size:13px;text-shadow:0 1px 2px #000}#belt .potion .k{position:absolute;left:3px;top:0;color:var(--muted);font-size:11px}#status.poisoned #hpfill{background:linear-gradient(#b6d84a,#6b8a1c)}#pain{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 90px 20px #c8140abf;opacity:0;transition:opacity .35s}body.hurt #pain{opacity:1;transition:opacity .05s}body.hurt #status #hpfill{background:linear-gradient(#ff5a46,#a01c12)}body.hurt #status .hp{border-color:#e0503a;box-shadow:0 0 8px #e0503acc}#helpbtn{position:absolute;top:22px;right:12px;width:38px;height:38px;padding:0;color:var(--gold);font:700 22px var(--display);cursor:pointer}.help{max-height:62vh;overflow-y:auto;padding-right:14px;text-align:left}.help h3{margin:10px 0 4px;color:var(--accent);font:600 14px var(--display);letter-spacing:.08em}.help .keys li{margin-bottom:4px}#helpbtn,#bagbtn,#belt .potion{pointer-events:auto}#skills h3 small{margin-left:6px;color:var(--muted);font:500 11px var(--display)}#skills li b small{color:var(--muted);font-size:11px;font-weight:400}#dialog{position:relative}.confirm{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0000008c}.confirm .gump{max-width:340px;padding:18px 26px}.confirm p{margin:0 0 4px}.confirm button+button{margin-left:10px}button.primary.quiet{color:var(--ink);background:none;border:1px solid var(--border)}#hud #bagbtn.full{color:#ffb0a0;border-color:#c03a2a;animation:bag-full 1.2s ease-in-out infinite}@keyframes bag-full{50%{box-shadow:0 0 10px #e03a2ab3}}.warn{color:#ff8a70}.keep{display:flex;flex-wrap:wrap;gap:4px}.doll .hint+h3{margin-top:12px}.keep button{padding:2px 7px;color:var(--rarity);background:#00000059;border:1px solid color-mix(in srgb,var(--rarity) 60%,transparent);border-radius:3px;font:500 12px var(--text);cursor:pointer}.keep button.off{color:var(--muted);border-color:var(--border);text-decoration:line-through;opacity:.6}@media(prefers-reduced-motion:reduce){#hud #bagbtn.full{animation:none;box-shadow:0 0 8px #e03a2a99}}
