:root{--gold:#d9b46a;--panel:#100d0cf0;--border:#5a4632;--text:#e8dcc4;--muted:#9a8b74;font-family:Palatino Linotype,Book Antiqua,Georgia,Yu Mincho,YuMincho,Hiragino Mincho ProN,serif}*{box-sizing:border-box}html,body{height:100%;color:var(--text);-webkit-user-select:none;user-select:none;background:#000;margin:0;overflow:hidden}#app canvas{display:block}#loading{letter-spacing:.05em;color:var(--gold);justify-content:center;align-items:center;font-size:18px;display:flex;position:fixed;inset:0}#loading.error{color:#ff6b5b}#hud{pointer-events:none;position:fixed;inset:0}.hidden{display:none!important}kbd{border:1px solid var(--border);background:#1c1510;padding:0 4px;font-family:inherit;font-size:.85em}button{font-family:inherit}button.primary{pointer-events:auto;color:var(--gold);cursor:pointer;background:linear-gradient(#4a3725,#241a10);border:1px solid #8a6a40;padding:10px 24px;font-size:16px}button.primary:hover{filter:brightness(1.25)}.vignette{opacity:0;position:absolute;inset:0;box-shadow:inset 0 0 160px 40px #a00000e6}.banner{text-align:center;letter-spacing:.08em;width:100%;color:var(--gold);text-shadow:0 0 18px #ffbe50cc,0 2px 4px #000;opacity:0;font-size:46px;position:absolute;top:26%}.banner.show{animation:2.4s forwards banner}@keyframes banner{0%{opacity:0;transform:scale(.8)}15%{opacity:1;transform:scale(1)}70%{opacity:1}to{opacity:0}}.topbar{text-shadow:0 1px 2px #000;justify-content:space-between;font-size:15px;display:flex;position:absolute;top:12px;left:16px;right:16px}.info span{margin-right:16px}.info .gold{color:var(--gold)}.zone{color:var(--muted);letter-spacing:.05em}.topbar-right{align-items:center;gap:16px;display:flex}.target{text-align:center;width:320px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.target-name{text-shadow:0 1px 3px #000;margin-bottom:4px;font-size:16px}.target-name.elite{color:#8fb0ff}.bar{border:1px solid var(--border);background:#1a0d0b;height:14px;position:relative}.bar .fill{background:linear-gradient(#b3261e,#6e120d);position:absolute;inset:0 auto 0 0}.bar span{font-size:11px;line-height:14px;position:relative}.messages{flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;top:72px;left:50%;transform:translate(-50%)}.message{white-space:nowrap;text-shadow:0 1px 3px #000,0 0 6px #000;font-size:15px;animation:3s forwards message}@keyframes message{0%{opacity:0;transform:translateY(6px)}8%{opacity:1;transform:none}75%{opacity:1}to{opacity:0}}.labels,.floats{position:absolute;inset:0;overflow:hidden}.label{white-space:nowrap;pointer-events:auto;cursor:pointer;background:#000000b8;border:1px solid #ffffff1f;padding:1px 6px;font-size:13px;position:absolute;top:0;left:0}.label.rarity-rare{border-color:#ffd84a80}.label.rarity-epic{border-color:color-mix(in srgb, currentColor 60%, transparent)}.label.rarity-legendary,.label.rarity-mythic{text-shadow:0 0 6px;border-color:currentColor;font-weight:700;animation:1.8s ease-in-out infinite label-pulse}.label.rarity-legendary:before,.label.rarity-mythic:before{content:"✦ "}@keyframes label-pulse{0%,to{box-shadow:0 0 4px color-mix(in srgb, currentColor 40%, transparent)}50%{box-shadow:0 0 12px color-mix(in srgb, currentColor 70%, transparent)}}@media (prefers-reduced-motion:reduce){.label.rarity-legendary,.label.rarity-mythic{animation:none}}.label:hover{background:#281e14f2;border-color:currentColor}.float{white-space:nowrap;text-shadow:0 0 3px #000,0 2px 2px #000;will-change:transform, opacity;font-size:18px;font-weight:700;position:absolute;top:0;left:0}.float.damage{color:#fff}.float.crit{color:#fc3;font-size:26px}.float.hurt{color:#ff4a3a}.float.gold{color:var(--gold);font-size:15px}.float.heal{color:#6e6}.bottom{align-items:flex-end;gap:18px;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.orb{background:#0c0808;border:3px solid #3d2f22;border-radius:50%;width:110px;height:110px;position:relative;overflow:hidden;box-shadow:0 0 0 2px #120d09,inset 0 0 20px #000}.orb .fill{position:absolute;bottom:0;left:0;right:0}.orb.hp .fill{background:radial-gradient(circle at 40% 30%,#ff6b5b,#a3140c 55%,#4a0603)}.orb.mana .fill{background:radial-gradient(circle at 40% 30%,#7aa0ff,#1f3fb3 55%,#0a154a)}.orb:after{content:"";background:linear-gradient(#ffffff4d,#0000);border-radius:50%;position:absolute;inset:8% 22% 55%}.orb span{z-index:1;text-shadow:0 1px 2px #000;justify-content:center;align-items:center;font-size:14px;display:flex;position:absolute;inset:0}.center{flex-direction:column;align-items:center;gap:8px;margin-bottom:4px;display:flex}.skills{gap:8px;display:flex}.slot{width:58px;height:58px;color:inherit;border:2px solid var(--border);background:linear-gradient(#2a211a,#140f0b);justify-content:center;align-items:center;padding:0;font-size:26px;display:flex;position:relative;overflow:hidden}.slot kbd{text-align:center;color:var(--muted);background:0 0;border:none;padding:0;font-size:9px;position:absolute;bottom:1px;left:0;right:0}.slot .icon.painted{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.slot .icon.painted~kbd,.slot .icon.painted~.count{color:#f3e3c4;text-shadow:0 0 3px #000,0 1px 2px #000}.slot .cooldown{background:#000000a6;height:0;position:absolute;bottom:0;left:0;right:0}.slot .count{font-size:13px;position:absolute;top:2px;right:4px}.slot.no-mana .icon{filter:grayscale()brightness(.5)}.slot.skill{pointer-events:auto;cursor:help}.slot .lock{color:var(--muted);text-shadow:0 1px 2px #000;justify-content:center;align-items:center;font-size:11px;display:none;position:absolute;inset:0}.slot.locked .icon{filter:grayscale()brightness(.3)}.slot.locked .lock{display:flex}.bag-button{pointer-events:auto;cursor:pointer}.bag-button:hover{border-color:var(--gold)}.xp{border:1px solid var(--border);background:#120d09;width:420px;height:14px;position:relative}.xp .fill{background:linear-gradient(#e8c66a,#8a6a22);position:absolute;inset:0 auto 0 0}.xp span{text-align:center;text-shadow:0 1px 2px #000;font-size:10px;line-height:12px;position:absolute;inset:0}.panel{z-index:5;pointer-events:auto;background:radial-gradient(at 50% 0,#5a402440,#0000 60%),linear-gradient(#0c09078c,#080605cc),url(/ui/panel-stone.webp) 0 0/256px;border:2px solid #7a5d34;border-image:linear-gradient(#b38b4d,#5e4424 45%,#8a6838 70%,#4a351c) 1;width:480px;max-height:calc(100vh - 60px);padding:14px;position:absolute;top:44px;right:20px;overflow-y:auto;box-shadow:inset 0 0 0 1px #000,inset 0 0 0 3px #7a5d3459,inset 0 0 50px #000c,0 10px 40px #000}.panel header{letter-spacing:.06em;color:var(--gold);text-shadow:0 0 8px #d9b46a59,0 2px 2px #000;border-bottom:1px solid #0000;border-image:linear-gradient(90deg,#0000,#8a6838 20%,#c9a15e 50%,#8a6838 80%,#0000) 1;justify-content:space-between;margin-bottom:12px;padding-bottom:8px;font-size:18px;display:flex}.close{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:16px}.inventory-body{grid-template-columns:auto 1fr;gap:14px;display:grid}.hero-portrait{z-index:5;pointer-events:auto;border:2px solid #7a5d34;border-image:linear-gradient(#b38b4d,#5e4424 45%,#8a6838 70%,#4a351c) 1;width:320px;height:min(560px,100vh - 60px);position:absolute;top:44px;right:512px;box-shadow:inset 0 0 0 1px #000,0 10px 40px #000}.portrait-view{cursor:grab;touch-action:none;background:#070505;width:100%;height:100%;position:absolute;inset:0}.hero-portrait:after{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 3px #7a5d3459,inset 0 0 60px #000000d9}.portrait-view:active{cursor:grabbing}.portrait-caption{text-align:center;pointer-events:none;background:linear-gradient(#0000,#060403d9 60%);padding:28px 12px 12px;position:absolute;inset:auto 0 0}.portrait-caption b{letter-spacing:.18em;text-transform:uppercase;color:var(--gold);text-shadow:0 0 12px #d9b46a73,0 2px 2px #000;font-size:22px;font-weight:400;display:block}.portrait-caption span{letter-spacing:.06em;color:var(--muted);font-size:12px}@media (width<=879px){.hero-portrait{display:none}}.paperdoll{background:radial-gradient(at 50% 45%,#3a2a1cb3,#060403d9 75%);border:1px solid #3d2e1c;grid-template-rows:repeat(5,48px);grid-template-columns:repeat(3,48px);grid-template-areas:".helm amulet""weapon chest offhand""weapon chest offhand""ring1 belt ring2""gloves.boots";gap:5px;padding:8px;display:grid;box-shadow:inset 0 0 18px #000}.cell{background:radial-gradient(circle at 50% 40%,#1c150f,#070504 78%);border:1px solid #4a3822;justify-content:center;align-items:center;min-width:0;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 3px 6px #000,inset 0 0 0 1px #000000b3,0 1px #ffd69612}.cell .icon{width:78%;height:78%}.cell.item{color:var(--rarity);background:radial-gradient(circle at 50% 58%, color-mix(in srgb, var(--rarity) 32%, transparent), transparent 68%), radial-gradient(circle at 50% 40%, #1c150f, #070504 78%);border-color:color-mix(in srgb, var(--rarity) 55%, #4a3822);cursor:grab}.cell.item .icon.painted{object-fit:contain;filter:drop-shadow(0 2px 2px #000000e6);width:94%;height:94%;transition:transform .12s}.cell.item:hover{border-color:var(--rarity);box-shadow:inset 0 0 10px color-mix(in srgb, var(--rarity) 40%, #000)}.cell.item:hover .icon.painted{transform:scale(1.06)}.cell.empty{color:#3a2c1d}.cell.empty .icon{opacity:.7;width:62%;height:62%}.cell.locked:after{content:"";background:#96140a59;position:absolute;inset:0}.cell.item .icon{z-index:1;position:relative}.cell.item.rarity-epic,.cell.item.rarity-legendary,.cell.item.rarity-mythic{border-color:var(--rarity);animation:2.8s ease-in-out infinite item-breathe}@keyframes item-breathe{0%,to{box-shadow:inset 0 0 6px color-mix(in srgb, var(--rarity) 30%, #000)}50%{box-shadow:inset 0 0 14px color-mix(in srgb, var(--rarity) 55%, #000), 0 0 6px color-mix(in srgb, var(--rarity) 45%, transparent)}}.cell.item.rarity-legendary .icon.painted,.cell.item.rarity-mythic .icon.painted{filter:drop-shadow(0 2px 2px #000000e6) drop-shadow(0 0 4px var(--rarity))}.cell .shine{z-index:2;pointer-events:none;background:linear-gradient(115deg,#0000 38%,#fff5e161 50%,#0000 62%);animation:3.6s ease-in-out infinite item-shine;position:absolute;inset:0;transform:translate(-130%)}@keyframes item-shine{0%,60%{transform:translate(-130%)}90%,to{transform:translate(130%)}}.cell .sparkle{z-index:2;pointer-events:none;background:radial-gradient(circle, #fff 0 18%, var(--rarity) 34%, transparent 62%);clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);opacity:0;width:9px;height:9px;margin:-4px 0 0 -4px;animation:2.2s ease-in-out infinite item-twinkle;position:absolute}@keyframes item-twinkle{0%,to{opacity:0;transform:scale(.4)rotate(0)}45%{opacity:1;transform:scale(1.1)rotate(45deg)}60%{opacity:.6;transform:scale(.9)rotate(60deg)}}.cell.item.rarity-mythic:before{content:"";z-index:0;background:conic-gradient(from 0deg, transparent, var(--rarity) 12%, transparent 28%, #ffd98a 50%, transparent 66%, var(--rarity) 82%, transparent);opacity:.32;animation:5s linear infinite item-swirl;position:absolute;inset:-45%}@keyframes item-swirl{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.cell.item,.cell .shine,.cell .sparkle,.cell.item.rarity-mythic:before{animation:none}.cell .shine{display:none}.cell .sparkle{opacity:.8}}.cell .upgrade{color:#6ee06e;text-shadow:0 0 3px #000;font-size:11px;position:absolute;top:1px;right:3px}.slot-cell.drop-ok{border-color:#6ee06e;box-shadow:inset 0 0 8px #6ee06e59}.cell.drag-over{border-color:var(--gold);background:#2a2016}.stats{font-size:12px}.stats div{border-bottom:1px dotted #2c2219;justify-content:space-between;padding:1px 0;display:flex}.stats span{color:var(--muted)}.stats b{font-weight:400}.bag-toolbar{align-items:center;gap:6px;margin-top:12px;display:flex}.bag-count{color:var(--muted);margin-right:auto;font-size:12px}.bag-toolbar button{font:inherit;color:var(--text);border:1px solid var(--border);cursor:pointer;background:linear-gradient(#2b2015,#140e09);padding:3px 10px;font-size:12px;box-shadow:inset 0 1px #ffd6961f,0 1px 2px #000}.bag-toolbar button:hover:not(:disabled){border-color:var(--gold)}.bag-toolbar button:disabled{opacity:.4;cursor:default}.bag{grid-template-columns:repeat(10,1fr);gap:4px;margin-top:6px;display:grid}.bag .cell{aspect-ratio:1}.hint{text-align:center;color:var(--muted);margin:8px 0 0;font-size:11px}.tooltip{z-index:10;pointer-events:none;align-items:flex-start;gap:6px;display:flex;position:absolute;top:0;left:0}.tt-block{border:1px solid var(--border);background:#080605f5;min-width:200px;max-width:260px;padding:8px 12px;font-size:13px}.tt-block.equipped{opacity:.85}.tt-name,.tt-rarity{color:var(--rarity)}.tt-block.rarity-rare,.tt-block.rarity-epic{border-color:color-mix(in srgb, var(--rarity) 55%, #3a2c1d)}.tt-block.rarity-legendary,.tt-block.rarity-mythic{border-color:var(--rarity);box-shadow:0 0 12px color-mix(in srgb, var(--rarity) 40%, transparent), inset 0 0 18px #000c}.tt-name.rarity-legendary,.tt-name.rarity-mythic{background:linear-gradient(100deg, var(--rarity) 30%, #fff3d0 50%, var(--rarity) 70%) 0 0 / 250% 100%;color:#0000;text-shadow:none;filter:drop-shadow(0 0 6px color-mix(in srgb, var(--rarity) 55%, transparent));-webkit-background-clip:text;background-clip:text;font-size:17px;animation:2.8s linear infinite name-shimmer}.tt-name.rarity-mythic{background-image:linear-gradient(100deg, var(--rarity) 25%, #ffd98a 42%, #fff8e6 50%, #ffd98a 58%, var(--rarity) 75%)}@keyframes name-shimmer{0%{background-position:100% 0}to{background-position:-150% 0}}@media (prefers-reduced-motion:reduce){.tt-name.rarity-legendary,.tt-name.rarity-mythic{animation:none}}.tt-heading{text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:11px}.tt-name{font-size:16px}.tt-base{color:#d6d2c4}.tt-meta{color:var(--muted);margin:2px 0 6px;font-size:11px}.implicit{color:var(--text)}.affix{color:#8fa8ff}.tt-sell{color:var(--gold);margin-top:6px;font-size:11px}.tt-blocker{color:#ff5a4a;margin-top:6px}.tt-block .tt-heading:not(:first-child){border-top:1px solid #2c2219;margin-top:8px;padding-top:6px}.better{color:#6ee06e}.worse{color:#ff6a5a}.death{pointer-events:auto;background:radial-gradient(#0000,#3c0000d9);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.death h1{letter-spacing:.1em;color:#d23a2a;text-shadow:0 0 20px #000;margin:0 0 20px;font-size:54px}.help{pointer-events:auto;background:#0000008c;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.help-card{background:var(--panel);border:1px solid var(--border);max-width:460px;max-height:calc(100vh - 32px);padding:24px 32px;overflow-y:auto;box-shadow:0 10px 40px #000}.help-title{justify-content:space-between;align-items:center;gap:12px;margin:0 0 8px;display:flex}.help-card h2{letter-spacing:.1em;color:var(--gold);margin:0;font-size:30px}.help-card .language{border:1px solid var(--border);background:var(--panel);color:var(--text);font:inherit;padding:4px 8px;font-size:13px}.help-card p{color:var(--muted)}.help-card ul{padding-left:18px;line-height:1.9}.help-card button{margin:16px auto 0;display:block}.help-card .save-note{text-align:center;margin-bottom:0;font-size:12px}.help-card .reset-progress{font:inherit;color:var(--muted);cursor:pointer;pointer-events:auto;background:0 0;border:none;margin-top:10px;font-size:12px;text-decoration:underline}.help-card .reset-progress:hover{color:#ff6a5a}.help-card .spirit-name{color:var(--spirit)}@media (width>=1000px){.help{justify-content:flex-start;padding-left:6vw}}.hero-select{grid-template-columns:150px 1fr;gap:12px;margin:14px 0 4px;display:grid}.hero-preview{border:1px solid var(--border);cursor:grab;touch-action:none;width:150px;height:220px;box-shadow:inset 0 0 0 1px #000}.hero-side{flex-direction:column;justify-content:center;gap:10px;display:flex}.hero-picker{flex-direction:column;gap:10px;display:flex}.help-card .hero-side .primary{align-self:stretch;margin:0}.help-card .hero-choice{font:inherit;text-align:left;color:var(--text);border:1px solid var(--border);cursor:pointer;background:#00000059;flex:none;margin:0;padding:8px 10px}.hero-choice b{color:var(--gold);letter-spacing:.05em;display:block}.hero-choice span{color:var(--muted);font-size:12px}.hero-choice:hover{border-color:var(--gold)}.hero-choice[aria-checked=true]{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.hero-choice:disabled{cursor:progress;opacity:.6}.hero-status{min-height:1.2em;margin:0;font-size:12px}:root{--spirit:#8fd8ff;--boss:#ff6a50}.minimap{pointer-events:auto;cursor:pointer;border:2px solid #8a6838;border-radius:50%;width:180px;height:180px;position:absolute;top:44px;right:16px;overflow:hidden;box-shadow:0 0 0 1px #000,0 0 16px #000c,inset 0 0 18px #000000e6}.minimap canvas{display:block}.panel.world-map{z-index:6;width:auto;max-height:none;top:50%;left:50%;right:auto;overflow:visible;transform:translate(-50%,-50%)}.world-map canvas{border:1px solid #000;display:block;box-shadow:0 0 0 1px #5a4428}.world-map .explored{color:var(--muted);letter-spacing:0;margin-left:8px;font-size:13px}.world-map header .close{margin-left:auto}.quest-tracker{text-shadow:0 1px 2px #000;pointer-events:auto;cursor:pointer;text-align:right;background:linear-gradient(90deg,#0000,#0a0806bf 25%);border-right:2px solid #8a6838;width:270px;padding:8px 12px 10px;position:absolute;top:236px;right:16px}.quest-chapter{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px}.quest-title{color:var(--gold);margin:2px 0;font-size:17px}.quest-objective{font-size:13px}.quest-tracker.ready .quest-objective{color:var(--spirit);animation:1.6s ease-in-out infinite pulse}.quest-progress{background:#ffffff1a;width:70%;height:3px;margin-top:6px;margin-left:auto}.quest-progress .fill{background:linear-gradient(90deg,#8a6838,#ffd27a);height:100%;transition:width .3s;box-shadow:0 0 6px #ffd27ab3}@keyframes pulse{50%{opacity:.55}}.spirit-label{color:var(--spirit);white-space:nowrap;text-shadow:0 0 6px #58c8ffcc,0 1px 2px #000;pointer-events:auto;cursor:pointer;padding:1px 8px;font-size:13px;position:absolute;top:0;left:0}.spirit-label .marker{text-align:center;color:#ffd27a;text-shadow:0 0 12px #ffbe50e6,0 2px 3px #000;font-size:30px;line-height:1;animation:1.2s ease-in-out infinite bob;display:block}@keyframes bob{50%{transform:translateY(-5px)}}.objective-arrow{flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute;top:0;left:0}.objective-arrow .arrow-head{fill:#ffd27a;stroke:#3a2810;stroke-width:1.5px;filter:drop-shadow(0 0 6px #ffbe50e6);width:34px;height:34px}.objective-arrow .arrow-distance{color:#ffd27a;text-shadow:0 1px 2px #000;font-size:12px}#hud:has(.boss-bar:not(.hidden)) .target{top:76px}#hud:has(.boss-bar:not(.hidden)) .messages{top:130px}.boss-bar{text-align:center;width:min(560px,70vw);position:absolute;top:12px;left:50%;transform:translate(-50%)}.boss-name{letter-spacing:.08em;color:var(--boss);text-shadow:0 0 10px #000,0 2px 2px #000;font-size:20px}.boss-title{color:var(--muted);margin-bottom:4px;font-size:12px;font-style:italic}.boss-bar .bar{border-color:#8a3a2a;height:16px;box-shadow:0 0 14px #ff3c1e59}.boss-bar .bar .fill{background:linear-gradient(#d23a1e,#6e120d)}.boss-bar .bar span{line-height:16px}.subtitle{text-align:center;text-shadow:0 0 8px #000,0 2px 2px #000;opacity:0;max-width:70vw;font-size:19px;font-style:italic;transition:opacity .6s;position:absolute;bottom:200px;left:50%;transform:translate(-50%)}.subtitle b{color:var(--boss);font-style:normal}.place-title{letter-spacing:.3em;text-align:center;text-transform:uppercase;color:#e8dcc4;text-shadow:0 0 14px #000,0 2px 3px #000;opacity:0;width:100%;font-size:30px;position:absolute;top:16%}.place-title.show{animation:3.6s forwards place-title}@keyframes place-title{0%{opacity:0;letter-spacing:.5em}20%{opacity:.95}70%{opacity:.95}to{opacity:0;letter-spacing:.3em}}.subtitle.show{opacity:1}.panel.dialog{z-index:8;width:min(640px,100vw - 32px);animation:.25s ease-out dialog-in;inset:auto auto 150px 50%;transform:translate(-50%)}@keyframes dialog-in{0%{opacity:0;transform:translate(-50%,12px)}}.dialog-heading{letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:10px;font-size:13px}.dialog-body{align-items:flex-start;gap:14px;display:flex}.portrait{border:1px solid #5a4632;border-radius:50%;flex:none;width:64px;height:64px;box-shadow:inset 0 0 12px #000,0 0 0 3px #0009}.portrait.spirit{background:radial-gradient(circle at 50% 62%,#e8fbff 0 8%,#58c8ff 22%,#1a5f9a 45%,#06121e 72%);animation:2.4s ease-in-out infinite flame;box-shadow:inset 0 0 12px #000,0 0 18px #58c8ff8c}.portrait.lore{background:repeating-linear-gradient(#0000 0 9px,#3c281459 9px 10px),linear-gradient(#cdb48a,#8c7148);border-radius:4px}.portrait.boss{background:radial-gradient(circle at 50% 45%,#ffb08a 0 6%,#d23a1e 25%,#4a0a06 55%,#0c0302 75%);box-shadow:inset 0 0 12px #000,0 0 18px #ff3c1e80}@keyframes flame{50%{filter:brightness(1.25)hue-rotate(-8deg);transform:scale(1.03)}}.dialog-content{flex:1;min-height:64px}.speaker{letter-spacing:.05em;font-size:15px}.speaker.spirit{color:var(--spirit)}.speaker.lore{color:#cdb48a}.speaker.boss{color:var(--boss)}.dialog-text{min-height:3em;margin:4px 0 0;font-size:16px;line-height:1.5}.dialog-text.lore{color:#e2d3b4;font-style:italic}.dialog-reward{color:#ffd27a;margin-top:8px;font-size:13px}.dialog-footer{color:var(--muted);justify-content:flex-end;align-items:center;gap:12px;margin-top:10px;font-size:12px;display:flex}.dialog-footer .primary{padding:6px 18px;font-size:14px}.panel.journal{width:420px;left:20px;right:auto}.journal-body h3{letter-spacing:.1em;color:var(--gold);margin:14px 0 6px;font-size:14px}.journal-body h3:first-child{margin-top:0}.journal-body ul{margin:0;padding:0;list-style:none}.journal-body li{margin-bottom:8px;padding-left:18px;position:relative}.journal-body li:before{content:"◆";font-size:10px;position:absolute;top:4px;left:0}.journal-body li.done{color:var(--muted)}.journal-body li.done:before{content:"✓";color:#7fbf6a;font-size:13px;top:1px}.journal-body li.current b,.journal-body li.current:before{color:#ffd27a}.journal-body p{margin:2px 0 0;font-size:13px;line-height:1.4}.journal-end{color:var(--spirit);font-style:italic}.panel.travel{z-index:7;width:420px;top:50%;left:50%;right:auto;transform:translate(-50%,-50%)}.travel-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.travel-choice{text-align:left;width:100%;color:inherit;cursor:pointer;background:linear-gradient(#281e14b3,#140e0ad9);border:1px solid #6a5030;grid-template-columns:1fr auto;gap:2px 12px;padding:10px 12px;display:grid}.travel-choice b{color:var(--gold);letter-spacing:.04em;font-size:16px}.travel-choice .travel-status{color:#9fd0ff;align-self:center;font-size:12px}.travel-choice small{color:var(--muted);grid-column:1/-1;font-size:12px}.travel-choice:not(:disabled):hover{border-color:var(--gold);box-shadow:0 0 10px #d9b46a40}.travel-choice:disabled{cursor:default;opacity:.75}.travel-choice.locked .travel-status{color:#c06050}.travel-curtain{z-index:20;pointer-events:auto;background:radial-gradient(#0a121eeb,#020203);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.travel-curtain span{letter-spacing:.12em;color:#9fd0ff;text-shadow:0 0 12px #2a6ab0;font-size:22px}.event-cards{flex-direction:column;gap:6px;width:270px;display:flex;position:absolute;top:330px;right:16px}.event-card{--event-color:#ffd84a;text-align:right;text-shadow:0 1px 2px #000;border-right:2px solid var(--event-color);background:linear-gradient(90deg,#0000,#1e1408cc 25%);padding:7px 12px 9px}.event-card.trial{--event-color:#ff6aa8}.event-title{letter-spacing:.06em;color:var(--event-color);font-size:15px;animation:1.6s ease-in-out infinite pulse}.event-status{font-size:13px}.event-progress{background:#ffffff1a;width:70%;height:3px;margin-top:6px;margin-left:auto}.event-progress .fill{background:var(--event-color);height:100%;box-shadow:0 0 6px var(--event-color);transition:width .3s}.audio-control{pointer-events:auto;position:relative}.audio-toggle{width:30px;height:30px;color:var(--gold);border:1px solid var(--border);cursor:pointer;background:#100d0cb3;place-items:center;padding:4px;display:grid}.audio-toggle:hover{border-color:var(--gold)}.audio-toggle svg{width:100%;height:100%}.audio-toggle .cross{display:none}.audio-toggle.muted{color:var(--muted)}.audio-toggle.muted .waves{display:none}.audio-toggle.muted .cross{display:inline}.audio-popover{z-index:5;background:var(--panel);border:1px solid var(--border);gap:10px;width:250px;padding:12px 14px;font-size:14px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 6px 18px #0009}.audio-popover label{justify-content:space-between;align-items:center;gap:10px;display:flex}.audio-mute{cursor:pointer;justify-content:flex-start!important}.audio-channel{white-space:nowrap}.audio-channel input{width:130px;accent-color:var(--gold)}.target-affixes{text-align:center;letter-spacing:.04em;min-height:0;font-size:12px}.target-affixes:empty{display:none}.affix-fiery{color:#ff7a40}.affix-frozen{color:#8fdcff}.affix-swift{color:#ffe060}.affix-thorns{color:#c08aff}.affix-undying{color:#c8ffd0}.hub-actions{pointer-events:auto;gap:8px;display:flex;position:absolute;bottom:118px;left:50%;transform:translate(-50%)}.hub-actions button{color:var(--gold);cursor:pointer;background:linear-gradient(#3a2a1c,#1c140d);border:1px solid #8a6a40;padding:6px 14px;font-size:14px}.hub-actions button:hover{filter:brightness(1.25)}.panel.forge{width:520px;left:20px;right:auto}.forge-tabs{gap:6px;margin-bottom:10px;display:flex}.forge-tabs button{color:var(--muted);border:1px solid var(--border);cursor:pointer;background:#18120d;flex:1;padding:6px}.forge-tabs button[aria-selected=true]{color:var(--gold);border-color:var(--gold)}.forge-purse{flex-wrap:wrap;gap:14px;margin-bottom:10px;font-size:14px;display:flex}.forge-purse .gold{color:var(--gold)}.panel.forge.on-merchant .forge-upgrade,.panel.forge:not(.on-merchant) .forge-merchant{display:none}.forge-upgrade{grid-template-columns:1fr 220px;gap:12px;display:grid}.forge-items{scrollbar-color:#5a4632 transparent;scrollbar-width:thin;background:#00000059;grid-template-columns:repeat(auto-fill,46px);align-content:start;gap:4px;max-height:360px;padding:2px;display:grid;overflow:hidden auto}.forge-items .cell{cursor:pointer;width:46px;height:46px;padding:0;position:relative}.forge-items .cell.equipped{box-shadow:inset 0 0 0 1px #d9b46a99}.forge-items .cell.selected{outline:2px solid var(--gold);outline-offset:1px}.upgrade-level{color:#ffe2a0;text-shadow:0 1px 2px #000;font-size:12px;font-weight:700;position:absolute;bottom:1px;right:2px}.forge-detail .tt-name{font-size:16px}.forge-detail{align-content:start;gap:8px;font-size:14px;display:grid}.forge-step{color:var(--gold);font-size:18px}.forge-rows{color:var(--muted);gap:2px;display:grid}.forge-rows b{color:#9fe08a;font-weight:400}.forge-cost{color:var(--text)}.forge-chance{color:var(--muted)}.forge-chance b{color:var(--gold)}.forge-detail .primary{margin-top:4px}.forge-detail .primary:disabled{opacity:.45;cursor:default;filter:none}.tt-name.gilded{text-shadow:0 0 8px #ffe2a0cc}.forge-wares{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.forge-ware{color:var(--text);border:1px solid var(--border);cursor:pointer;background:#18120d;justify-items:center;gap:4px;padding:10px 6px;display:grid}.forge-ware svg{opacity:.85;width:34px;height:34px}.forge-ware small{color:var(--gold)}.forge-ware:hover:not(:disabled){border-color:var(--gold)}.forge-ware:disabled{opacity:.45;cursor:default}.panel.skills-panel{width:560px;left:20px;right:auto}.skill-row h3{color:var(--gold);letter-spacing:.05em;margin:10px 0 6px;font-size:15px;font-weight:400}.skill-choices{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.skill-choice{text-align:left;color:var(--text);border:1px solid var(--border);cursor:pointer;background:#18120d;align-content:start;gap:4px;padding:8px;display:grid}.skill-choice b{color:var(--gold);font-weight:400}.skill-choice span{color:var(--muted);font-size:12px;line-height:1.35}.skill-choice small{color:var(--muted);font-size:12px}.skill-choice.chosen{border-color:var(--gold);box-shadow:inset 0 0 12px #d9b46a40}.skill-choice.chosen small{color:#9fe08a}.skill-choice:disabled{opacity:.45;cursor:default}.skill-choice:hover:not(:disabled){border-color:var(--gold)}.tt-power{color:#ffb050;margin-top:4px}.event-card.rift{--event-color:#c8a0ff}.travel-rift{background:linear-gradient(90deg,#5a3c8240,#18120de6);border:1px solid #6a4a8a;gap:6px;padding:10px 12px;display:grid}.travel-rift .rift-head{justify-content:space-between;gap:8px;display:flex}.travel-rift b{color:#d8b8ff;letter-spacing:.04em;font-size:16px}.travel-rift small{color:var(--muted);font-size:12px}.rift-tier{align-items:center;gap:8px;display:flex}.rift-tier .tier-down,.rift-tier .tier-up{width:28px;height:28px;color:var(--gold);border:1px solid var(--border);cursor:pointer;background:#18120d}.rift-tier button:disabled{opacity:.4;cursor:default}.rift-tier .tier-label{text-align:center;flex:1;font-size:14px}.rift-tier .rift-go{margin:0;padding:6px 18px}.travel-rift.locked .travel-status{color:#c06050}.help-card .account-box{text-align:center}.help-card .account-box a{color:var(--gold)}.help-card .account-button{pointer-events:auto}.account-problem{font-size:13px;color:#ff8a6a!important}.account-actions{justify-content:center;gap:18px;display:flex}.help-card .account-actions button{margin:8px 0 0}.account-link{font:inherit;color:var(--muted);cursor:pointer;pointer-events:auto;background:0 0;border:none;font-size:12px;text-decoration:underline}.account-link:hover{color:var(--text)}.account-link.delete-account:hover{color:#ff6a5a}.account-overlay{z-index:10;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.account-card{background:var(--panel);border:1px solid var(--border);text-align:center;max-width:440px;padding:24px 32px;box-shadow:0 10px 40px #000}.account-card h2{letter-spacing:.08em;color:var(--gold);margin:0 0 12px;font-size:22px}.account-card p{color:var(--muted);line-height:1.7}.account-card a{color:var(--gold)}.account-card .account-fineprint{font-size:12px}.save-copies{flex-direction:column;gap:10px;margin-top:16px;display:flex}.save-copies .primary{flex-direction:column;gap:4px;display:flex}.save-copies .primary span{color:var(--text);font-size:13px}
