@font-face{font-family:Cinzel Decorative;font-weight:900;font-display:swap;src:url(/fonts/cinzel-decorative-latin-900-normal.woff2) format("woff2")}@font-face{font-family:Emberford Heading;font-display:swap;src:url(/fonts/emberford-heading.ttf) format("truetype")}@font-face{font-family:Emberford Numbers;font-display:swap;src:url(/fonts/emberford-numbers.ttf) format("truetype")}@font-face{font-family:Cinzel;font-weight:600;font-display:swap;src:url(/fonts/cinzel-latin-600-normal.woff2) format("woff2")}:root{--bg: #15130f;--panel: #221f19;--border: #4a4232;--text: #e8dfc8;--muted: #9a8f78;--accent: #d9a441;--good: #7fbf5a;--bad: #d0604d;font-family:system-ui,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh}h1,h2{margin:0 0 8px;font-weight:600}h2{font-size:15px;color:var(--accent)}ul,ol{margin:0 0 16px;padding:0;list-style:none}ol{list-style:decimal inside}button,input,select{font:inherit;color:var(--text);background:#2e2a22;border:1px solid var(--border);border-radius:4px;padding:6px 10px}button{cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.4;cursor:not-allowed}.hidden{display:none!important}.muted{color:var(--muted);font-weight:400}.error{color:var(--bad);min-height:1.2em}.gold{color:#f0c94a;font-weight:400}.game{display:grid;gap:8px;padding:8px;height:100vh;grid-template-columns:210px 1fr 290px;grid-template-rows:1fr 120px;grid-template-areas:"skills actions inventory" "chat chat inventory"}.panel{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:12px;overflow:auto}.skills{grid-area:skills}.actions{grid-area:actions}.inventory{grid-area:inventory}.chat{grid-area:chat;display:flex;flex-direction:column}.skills li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;cursor:pointer}.skills li>span:first-child{white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}.skills li>:not(:first-child){flex:none;white-space:nowrap}.skills li:hover,.skills li.selected{background:#322c22}.skills li.busy:after{content:"●";color:var(--good);margin-left:6px}.skills ol li{cursor:default;display:list-item;padding:2px 0}.xpbar{position:relative;height:18px;background:#12100c;border-radius:4px;margin-bottom:16px;overflow:hidden}.xpbar div{height:100%;background:#3f6b2f}.xpbar span{position:absolute;top:0;right:0;bottom:0;left:0;text-align:center;font-size:12px;line-height:18px}.action-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}.action{border:1px solid var(--border);border-radius:6px;padding:10px;display:flex;flex-direction:column;gap:6px}.action.locked{opacity:.5}.action.active{border-color:var(--good)}.action .meta{font-size:12px;color:var(--muted)}.action .progress{height:6px;background:#12100c;border-radius:3px;overflow:hidden}.action .progress div{height:100%;width:0;background:var(--good)}.inventory li{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:4px 0}.inventory li button{padding:2px 8px;font-size:12px}#chat-log{flex:1;overflow-y:auto;font-size:14px;margin-bottom:8px}#chat-log .from{color:var(--accent)}#chat-input{width:100%}#toasts{position:fixed;bottom:16px;right:16px;display:flex;flex-direction:column;gap:6px}.toast{background:#2e2a22;border:1px solid var(--border);padding:8px 12px;border-radius:4px;animation:fade 4s forwards}.toast.bad{border-color:var(--bad)}@keyframes fade{0%,80%{opacity:1}to{opacity:0}}@media(max-width:800px){.game{height:auto;grid-template-columns:1fr;grid-template-rows:auto;grid-template-areas:"actions" "skills" "inventory" "chat"}.chat{height:240px}}.skills h3{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:12px 8px 4px}.skills li .lvl{color:var(--muted)}.bar{position:relative;height:16px;background:#12100c;border-radius:4px;overflow:hidden;margin:4px 0 10px}.bar>div{height:100%;background:#3f6b2f;transition:width .2s}.bar.hp>div{background:#9b3a2e}.bar.monster>div{background:#6b3f8f}.bar.step>div{background:var(--accent);transition:none}.bar>span{position:absolute;top:0;right:0;bottom:0;left:0;text-align:center;font-size:11px;line-height:16px}.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.class-card{border:1px solid var(--border);border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:6px}.class-card p{margin:0;font-size:13px;color:var(--muted)}.abilities{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:8px 0 14px}.ability{border:1px solid var(--border);border-radius:6px;text-align:center;padding:6px 0}.ability b{display:block;font-size:18px}.ability small{color:var(--muted);text-transform:uppercase;font-size:11px}.stats{display:flex;flex-wrap:wrap;gap:6px 18px;margin-bottom:12px}.stats span b{color:var(--accent)}.equip-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-bottom:1px solid #2e2a22}.feature{margin:4px 0;font-size:13px}.feature.locked{opacity:.45}.credit{margin-top:18px;font-size:11px;color:var(--muted)}.credit p{margin:4px 0}.slot-pips{letter-spacing:2px;color:#7aa7d9}.areas{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-bottom:14px}.area{border:1px solid var(--border);border-radius:6px;padding:10px;display:flex;flex-direction:column;gap:4px}.area.active{border-color:var(--good)}.area p{margin:0;font-size:12px;color:var(--muted)}.fight{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px}.log{font-size:13px;max-height:170px;overflow-y:auto;border-top:1px solid var(--border);padding-top:6px}.log div{padding:1px 0}.log .hit{color:#e8dfc8}.log .crit{color:#ffcf5a;font-weight:600}.log .miss{color:var(--muted)}.log .hurt{color:#e08870}.log .heal{color:#8fd18a}.log .loot{color:#f0c94a}.log .level{color:#7fc6ff;font-weight:600}.log .bad{color:var(--bad);font-weight:600}.inventory li{flex-wrap:wrap}.inventory li.bank-row{flex-wrap:nowrap;padding:3px 0;gap:6px}.inventory li.bank-row .item-name{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inventory li.bank-row button{padding:1px 6px;font-size:11px;white-space:nowrap}.inventory li.bank-row .item-buttons{flex-shrink:0;gap:4px}.inventory .item-name{flex:1 1 100%}.gear-summary{display:flex;flex-wrap:wrap;gap:6px 14px;margin:4px 0 8px}.gear-chip{display:inline-flex;align-items:center;gap:2px;font-size:13px}.leaderboard-box summary{font-size:15px}#leaderboard{list-style:none;padding-left:0}#leaderboard li{display:flex;gap:6px;align-items:baseline}#leaderboard .rank-n{min-width:2.2em;color:var(--muted);font-variant-numeric:tabular-nums}.inventory .item-desc{flex:1 1 100%;font-size:11px;color:var(--muted)}.inventory .item-buttons{display:flex;gap:6px;margin-left:auto}.inventory .qty{color:var(--accent);font-weight:600}.inventory li.bank-filter{justify-content:space-between;font-size:12px;border-bottom:none;padding-bottom:0}.inventory li.bank-group{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom:1px solid var(--border);padding:10px 0 2px}.area.locked{opacity:.5;border-style:dashed}.area.cleared strong{color:var(--good)}.area .buttons{display:flex;gap:6px}.area>button:last-child,.area>.buttons:last-child{margin-top:auto}.hunt{display:flex;flex-direction:column;gap:4px;font-size:12px;border-top:1px solid var(--border);padding-top:6px;margin-top:2px}.hunt-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.hunt-row .bar{flex:1;min-width:120px;margin:0}.bar.hunt-bar>div{background:#8a6d2f}.hunt-label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);min-width:0}.hunt-rank{font-weight:600;color:var(--muted)}.hunt-rank.rank-1{color:#c08a52}.hunt-rank.rank-2{color:#c9ccd2}.hunt-rank.rank-3{color:#e8c45a}.hunt-loot{display:flex;flex-wrap:wrap;gap:4px 10px}.hunt-item{display:inline-flex;align-items:center;gap:4px;opacity:.75}.hunt-item.found{opacity:1}.hunt-item .icon{width:16px;height:16px}.hunt-got{color:#7fbf5a;font-weight:700}.hunt-miss{color:var(--muted)}.sealed-line{margin:-6px 0 10px}.area .buttons button{flex:1}h3.chapter{font-size:13px;color:var(--text);margin:14px 0 6px}.goal{border:1px solid #5a4a7a;background:#241f30;border-radius:6px;padding:6px 10px;font-size:13px}.difficulty{font-size:11px;font-weight:600;padding:1px 6px;border-radius:3px;vertical-align:middle}.difficulty.easy{background:#2f4a25;color:#a8e08c}.difficulty.medium{background:#4a4225;color:#f0d27a}.difficulty.hard{background:#4a2525;color:#f09a8c}.class-card.sealed{opacity:.6;border-style:dashed;text-align:center;align-items:center}.class-card .emblem{font-size:36px;line-height:1.2}@media(max-width:800px){.class-card.sealed{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:12px;row-gap:2px;text-align:left;padding:8px 12px}.class-card.sealed .icon-xl{grid-row:span 2;width:40px;height:40px;margin:0}}.bar.done>div{background:#b8902f}button.retire{border-color:var(--accent);color:#ffd98a;margin-bottom:8px}.donate-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.donate-row input{width:160px}.donate-row .password-input{width:300px;max-width:100%}.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px;padding:0;list-style:none}.shop-grid li{display:flex;flex-wrap:wrap;gap:4px;align-items:center;border:1px solid #2e2a22;border-radius:6px;padding:6px 8px}.shop-grid .item-name{flex:1 1 100%}.shop-grid .item-desc{flex:1 1 100%;font-size:11px;color:var(--muted)}.shop-grid button{padding:1px 8px;font-size:12px}.shop-grid li.locked{opacity:.45}.town-columns{display:grid;grid-template-columns:2fr 1fr;gap:16px;align-items:start}@media(max-width:900px){.town-columns{grid-template-columns:1fr}}.camp-line{font-size:12px;color:var(--muted);margin:6px 0}.camp-line b{color:#8fd18a}.locked-tag{font-size:11px;color:var(--accent)}#chat-log .system{color:#f0c94a;font-style:italic}.rarity-uncommon{color:#7fd17a}.rarity-rare{color:#6fa8ff}.rarity-very-rare{color:#c58bff}.rarity-legendary{color:#ffa94d;font-weight:600}.log .magic{color:#ffa94d;font-weight:700;text-shadow:0 0 6px rgba(255,169,77,.4)}.equip-row .item-desc{font-size:11px;color:var(--muted)}.icon{display:inline-flex;width:1.3em;height:1.3em;vertical-align:-.3em;margin-right:6px;flex-shrink:0;color:var(--text)}.icon:empty{display:none}.icon.px,.icon.px:empty{display:inline-block;background-repeat:no-repeat;image-rendering:pixelated}.icon.px.glow{filter:drop-shadow(0 0 1px var(--glow)) drop-shadow(0 0 1px var(--glow))}.icon-md{width:28px;height:28px;margin-right:4px}.icon-lg{width:26px;height:26px;vertical-align:-.45em}.icon-xl{width:64px;height:64px;margin:4px auto}.icon.emblem{color:#6f6656}.icon.emblem-inline{color:var(--accent);margin:0 4px}.skills li .icon{color:var(--accent)}.combatant{display:flex;gap:10px;align-items:center}.combatant>div{flex:1}.icon.portrait{width:56px;height:56px;padding:6px;border:1px solid var(--border);border-radius:8px;background:#17140f;margin:0}.icon.portrait.boss{border-color:#ffa94d;box-shadow:0 0 10px #ffa94d59}.foe-icons{display:flex;flex-wrap:wrap;gap:4px;margin:2px 0}.foe-icons .icon{color:#d9c9a8}.action strong .icon{width:22px;height:22px}.scene{position:relative;overflow:hidden;background:#0d0b09}.scene-paint{position:absolute;top:0;right:0;bottom:0;left:0;background-repeat:no-repeat;background-size:cover;image-rendering:pixelated}.card-scene{height:64px;margin:-10px -10px 8px;border-radius:6px 6px 0 0}.area.locked .card-scene{filter:grayscale(1) brightness(.5)}.login{position:relative;overflow:hidden;min-height:100vh;display:flex;flex-direction:column;align-items:center;background:radial-gradient(ellipse at 50% 85%,rgba(255,140,50,.16),transparent 45%),linear-gradient(#070b09,#13211a 55%,#1f3328)}.login-scene{position:absolute;left:0;right:0;bottom:0;height:55vh;z-index:0;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 35%);mask-image:linear-gradient(to bottom,transparent,#000 35%)}.login>:not(.login-scene){position:relative;z-index:1}.login-main{display:flex;flex-direction:column;align-items:center;gap:10px;padding:9vh 16px 0;width:100%;max-width:760px}.login .logo-wrap{margin:0;width:min(720px,100%);line-height:0}.login .logo{width:100%;height:auto;overflow:visible}.login .logo-wrap:has(.logo-px){--k: 2;width:auto;display:flex;flex-direction:column;align-items:center;gap:0}.login .logo-px{width:calc(274px * var(--k));max-width:100%;height:auto;image-rendering:pixelated;filter:drop-shadow(0 0 14px rgba(255,122,26,.4))}.logo-emblem{position:relative;width:calc(96px * var(--k));height:calc(96px * var(--k));image-rendering:pixelated;background:url(/brand/emblem-flame.png) 0 0 / 800% 100% no-repeat,url(/brand/emblem-base.png) 0 0 / 100% 100% no-repeat;animation:emblem-flame .84s steps(8) infinite,logo-breathe 3.6s ease-in-out infinite;filter:drop-shadow(0 0 16px rgba(255,122,26,.45))}@keyframes emblem-flame{to{background-position:114.2857% 0,0 0}}@media(min-width:1200px)and (min-height:1050px){.login .logo-wrap:has(.logo-px){--k: 3}}@media(max-width:580px){.login .logo-wrap:has(.logo-px){--k: 1}}.login .logo-wrap:has(.logo-px)+.tagline{margin-top:10px}.logo-flame{transform-box:fill-box;transform-origin:50% 100%;animation:flame-flicker 2.6s ease-in-out infinite}@keyframes flame-flicker{0%,to{transform:scale(1)}30%{transform:scale(.97,1.05)}55%{transform:scale(1.03,.97)}80%{transform:scale(.99,1.03)}}.reduce-motion .logo-flame{animation:none}.login .tagline{text-align:center;margin:-18px 0 10px;color:#e8cfa0;font-family:Cinzel,serif;font-weight:600;font-size:17px;letter-spacing:.1em;text-shadow:0 1px 2px #000}.login-card{background:#140e08d1;border:1px solid #5a4630;border-radius:10px;padding:16px 18px 10px;width:min(460px,100%);box-shadow:0 10px 40px #0000008c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.login-card label{display:block;font-weight:600;color:#ffd98a;margin-bottom:8px}.login-row{display:flex;gap:8px}.login-row input{flex:1;min-width:0;font-size:16px;padding:10px 12px}.login-row button{font-size:16px;padding:10px 22px}.login-card details{margin-top:8px;font-size:13px;color:var(--muted)}.login-card details summary{cursor:pointer}.login-card details input{width:100%;margin-top:6px;box-sizing:border-box}.login-card .error{margin:6px 0 0;min-height:0}.login-note{margin:8px 0 0;font-size:12px;color:var(--muted)}.login-status span+span:before{content:" · "}.login-status{margin:4px 0 0;padding:4px 10px;border-radius:6px;background:#00000073;min-height:1.2em;font-size:13px;color:#cfe3c0;text-align:center;text-shadow:0 1px 2px #000}.login-features{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.login-features li{display:flex;flex-direction:column;align-items:center;padding:6px 12px;border-radius:8px;background:#0c100de0;border:1px solid rgba(255,217,138,.15);font-size:12px}.login-features b{color:#ffd98a;font-size:14px}.login-features span{color:#c8b89a}.login-party{display:flex;align-items:flex-end;justify-content:center;gap:4px;margin-top:auto;padding-bottom:6vh}.login-party .hero-sprite{--cell: 210px}.login-party .face-left{transform:scaleX(-1)}.login-fire{width:72px;height:auto;image-rendering:pixelated;margin:0 6px 6px;filter:drop-shadow(0 0 18px rgba(255,150,50,.8))}.login-foot{position:absolute!important;bottom:8px;left:0;right:0;display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap;font-size:11px;color:#e8cfa099}.login-lang{position:absolute!important;top:10px;right:10px;z-index:2!important;display:flex;align-items:center;gap:4px;padding:3px 4px 3px 8px;border-radius:8px;background:#0c100de0;border:1px solid rgba(255,217,138,.25);font-size:16px}.login-lang select{font-size:14px;min-height:32px;max-width:46vw;background:#1a1610;color:#e8cfa0;border:1px solid #5a4630;border-radius:6px;padding:2px 6px}@media(max-height:760px),(max-width:600px){.login-party{display:none}.login-main{padding-top:max(5vh,56px)}.login-foot{position:relative!important;bottom:auto;margin-top:auto;padding:18px 16px 10px}}.particles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.particles span{position:absolute;width:var(--size);height:var(--size);border-radius:50%;opacity:0;animation:rise linear infinite}.particles-embers span{background:#ffb347;box-shadow:0 0 6px #ff7a1c}.particles-sparks span{background:#ff6aa8;box-shadow:0 0 8px #ff2a6a}.particles-spores span{background:#b5e07a;box-shadow:0 0 6px #8fd14a;animation-name:drift}.particles-fireflies span{background:#f4f0a0;box-shadow:0 0 8px #e8e060;animation-name:wander}.particles-dust span{background:#d8c8a8;opacity:.3;animation-name:drift}.particles-bubbles span{background:transparent;border:1px solid #9fe6f0;animation-name:rise}.particles-snow span{background:#fff;animation-name:fall}@keyframes rise{0%{transform:translateY(30px);opacity:0}15%{opacity:.9}to{transform:translate(var(--drift),-160px);opacity:0}}@keyframes fall{0%{transform:translateY(-60px);opacity:0}10%{opacity:.9}to{transform:translate(var(--drift),220px);opacity:.2}}@keyframes drift{0%{transform:translate(-20px);opacity:0}30%{opacity:.6}to{transform:translate(calc(var(--drift) * 2 + 40px),-30px);opacity:0}}@keyframes wander{0%,to{transform:translate(0);opacity:0}25%{opacity:1}50%{transform:translate(var(--drift),-20px);opacity:.4}75%{opacity:1}}.stage{position:relative;height:210px;margin:-12px -12px 12px;border-bottom:1px solid var(--border);border-radius:6px 6px 0 0;overflow:hidden}.stage-scene{position:absolute;top:0;right:0;bottom:0;left:0}.actors{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:end;padding:0 6% 18px}.phase.camp{align-self:end;display:flex;flex-direction:column;align-items:center;gap:4px;letter-spacing:0;font-size:13px}.phase.camp .node-sprite{animation:flicker .9s ease-in-out infinite alternate}.phase{align-self:center;font-weight:700;color:#ffd98a;text-shadow:0 0 8px #000,0 1px 2px #000;letter-spacing:.1em}.actor{display:flex;flex-direction:column;align-items:center;gap:4px;justify-self:center;width:170px}.actor.empty{visibility:hidden}.actor-name{font-size:12px;font-weight:600;text-shadow:0 1px 3px #000,0 0 6px #000;white-space:nowrap}.actor .icon.portrait{width:82px;height:82px;padding:10px;border-radius:50%;border:2px solid #8a7a5a;background:radial-gradient(circle at 50% 35%,#3a3226,#15110c);box-shadow:0 6px 14px #0009;margin:0;color:#f0e2c0}.actor.foe .icon.portrait{border-color:#7a4a4a;color:#f0c8b8}.actor.foe .portrait{animation:bob 3.2s ease-in-out infinite}.actor.boss .icon.portrait{border-color:#ffa94d;animation:bob 3.2s ease-in-out infinite,boss-glow 2s ease-in-out infinite}.actor.boss .sprite{animation:bob 3.2s ease-in-out infinite,boss-aura 2s ease-in-out infinite}.actor.you.low .icon.portrait{border-color:var(--bad);animation:low-pulse 1s ease-in-out infinite}.actor.gone{animation:gone-fade .5s ease-in 1.8s forwards}.actor.gone.faded{animation:none;opacity:0}@keyframes gone-fade{to{opacity:0;transform:translateY(20px)}}.actor.entering{animation:enter .6s ease-out}.hpbar{position:relative;width:150px;height:12px;background:#000000b3;border:1px solid rgba(255,255,255,.15);border-radius:6px;overflow:hidden}.hpbar .fill,.hpbar .ghost{position:absolute;left:0;top:0;bottom:0}.hpbar .ghost{background:#f0d080;transition:width .9s ease-in .25s}.hpbar .fill{background:linear-gradient(#c94a3a,#8a2a20);transition:width .25s ease-out}.hpbar.foe .fill{background:linear-gradient(#9a5ac9,#5a2a8a)}.hpbar span{position:absolute;top:0;right:0;bottom:0;left:0;font-size:9px;line-height:12px;text-align:center;text-shadow:0 1px 1px #000}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes boss-glow{0%,to{box-shadow:0 0 10px #ffa94d66,0 6px 14px #0009}50%{box-shadow:0 0 24px #ffa94dcc,0 6px 14px #0009}}@keyframes boss-aura{0%,to{filter:drop-shadow(0 0 4px rgba(255,169,77,.5)) drop-shadow(0 6px 4px rgba(0,0,0,.6))}50%{filter:drop-shadow(0 0 12px rgba(255,169,77,.9)) drop-shadow(0 6px 4px rgba(0,0,0,.6))}}@keyframes low-pulse{50%{box-shadow:0 0 16px #d0604de6}}@keyframes enter{0%{transform:translate(60px) scale(.8);opacity:0}to{transform:none;opacity:1}}.actor.hit .portrait{animation:hit .35s}.actor.hit-hard .portrait{animation:hit-hard .5s}.actor.dodge .portrait{animation:dodge .4s}.actor.lunge-right .portrait{animation:lunge-right .4s}.actor.lunge-left .portrait{animation:lunge-left .4s}.actor.cast .icon.portrait{animation:cast .5s}.actor.healed .icon.portrait{animation:healed .6s}.actor.dying,.actor.gone.dying{animation:dying 1.1s forwards}.actor.cast .sprite{animation:cast-sprite .5s}.actor.healed .sprite{animation:healed-sprite .6s}.actor.you.low .sprite{animation:low-sprite 1s ease-in-out infinite}@keyframes cast-sprite{40%{filter:drop-shadow(0 0 10px #9ad0ff) brightness(1.2)}}@keyframes healed-sprite{40%{filter:drop-shadow(0 0 10px #7fd17a) brightness(1.3)}}@keyframes low-sprite{50%{filter:drop-shadow(0 0 8px rgba(208,96,77,.9))}}@keyframes hit{30%{transform:translate(-6px);filter:brightness(1.8) saturate(.4)}60%{transform:translate(5px)}}@keyframes hit-hard{20%{transform:translate(-10px) rotate(-6deg);filter:brightness(2.2)}50%{transform:translate(8px) rotate(4deg)}}@keyframes dodge{50%{transform:translate(-14px) translateY(-6px);opacity:.6}}@keyframes lunge-right{40%{transform:translate(min(25%,70px)) scale(1.08)}}@keyframes lunge-left{40%{transform:translate(max(-25%,-110px)) scale(1.08)}}@keyframes cast{40%{box-shadow:0 0 26px #9ad0ff,0 0 8px #fff;transform:scale(1.06)}}@keyframes healed{40%{box-shadow:0 0 26px #7fd17a;filter:brightness(1.3)}}@keyframes dying{30%{transform:translateY(-6px) rotate(-8deg);filter:brightness(2)}to{transform:translateY(30px) rotate(20deg) scale(.6);opacity:0;filter:grayscale(1)}}.stage.shake{animation:shake .35s}.stage.defeat-flash:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(transparent 30%,#a0000099);animation:flash .9s forwards}@keyframes shake{25%{transform:translate(4px,-2px)}50%{transform:translate(-4px,2px)}75%{transform:translate(2px,1px)}}@keyframes flash{0%{opacity:1}to{opacity:0}}.sprite{image-rendering:pixelated;flex-shrink:0}.hero-sprite{--cell: 192px;width:var(--cell);height:var(--cell);background-repeat:no-repeat;background-size:calc(var(--cols) * var(--cell)) calc(var(--rows) * var(--cell));margin:calc(var(--cell) * -.3) calc(var(--cell) * -.15) calc(var(--cell) * -.26);filter:drop-shadow(0 4px 3px rgba(0,0,0,.55))}.monster-sprite{height:auto;filter:drop-shadow(0 6px 4px rgba(0,0,0,.6))}.monster-sprite.small{width:72px}.monster-sprite.large{width:96px}.monster-sprite.huge{width:128px}.actor .monster-sprite{max-height:128px;object-fit:contain;object-position:bottom}.workbench{position:relative;height:160px;margin:0 0 12px;border:1px solid var(--border);border-radius:6px;overflow:hidden;display:flex;align-items:flex-end;justify-content:center}.workbench .scene{position:absolute;top:0;right:0;bottom:0;left:0}.bench-actors{position:absolute;bottom:0;left:50%;transform:translate(-70%);display:flex;justify-content:center}.workbench .hero-sprite{position:relative;z-index:1;--cell: 200px;margin-bottom:calc(var(--cell) * -.2)}.node{position:absolute;z-index:0;line-height:0}.node-sprite{image-rendering:pixelated;filter:drop-shadow(0 3px 2px rgba(0,0,0,.5))}.node.struck{animation:struck .18s}@keyframes struck{30%{transform:translate(2px,1px);filter:brightness(1.35)}70%{transform:translate(-1px)}}.node.lit .node-sprite{animation:flicker .9s ease-in-out infinite alternate}@keyframes flicker{0%{filter:drop-shadow(0 0 4px rgba(255,140,30,.5)) brightness(1)}to{filter:drop-shadow(0 0 10px rgba(255,160,40,.8)) brightness(1.12)}}.node .ripple{position:absolute;left:62%;top:30%;width:26px;height:8px;border:2px solid rgba(190,225,255,.7);border-radius:50%;opacity:0}.working .node .ripple{animation:ripple 1.6s ease-out infinite}@keyframes ripple{0%{transform:scale(.3);opacity:.9}to{transform:scale(1.6);opacity:0}}.debris{position:absolute;width:4px;height:4px;z-index:2;pointer-events:none;animation:debris .55s ease-out forwards}@keyframes debris{0%{transform:translate(0);opacity:1}60%{transform:translate(var(--dx),var(--dy));opacity:1}to{transform:translate(calc(var(--dx) * 1.3),calc(var(--dy) * -.2 + 20px));opacity:0}}.workbench .caption{position:absolute;left:10px;top:8px;font-size:13px;font-weight:600;text-shadow:0 1px 3px #000,0 0 6px #000}.fx-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.float{position:absolute;transform:translate(-50%);font-weight:800;font-size:20px;white-space:nowrap;text-shadow:0 2px 0 #000,0 0 6px #000;animation:float-up 1.3s ease-out forwards}.float.dmg{color:#fff1d0}.float.hurt{color:#ff8a70}.float.crit{color:#ffd34a;font-size:26px}.float.heal{color:#8fe08a}.float.miss{color:#b8b0a0;font-size:15px;font-style:italic}@keyframes float-up{0%{opacity:0;transform:translate(-50%,10px) scale(.7)}15%{opacity:1;transform:translate(-50%) scale(1.15)}30%{transform:translate(-50%,-6px) scale(1)}to{opacity:0;transform:translate(-50%,-60px)}}.d20{position:absolute;width:34px;height:34px;display:grid;place-items:center;font-weight:800;font-size:14px;color:#1a1408;background:#e8dcc0;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);animation:roll 1.2s ease-out forwards}.d20.hit{background:#f0e2c0}.d20.miss{background:#8a8270}.d20.nat20{background:#ffd34a;box-shadow:0 0 12px #ffd34a}.d20.nat1{background:#d0604d;color:#fff}@keyframes roll{0%{transform:rotate(-200deg) scale(.3);opacity:0}30%{transform:rotate(15deg) scale(1.15);opacity:1}45%{transform:rotate(0) scale(1)}85%{opacity:1}to{opacity:0;transform:translateY(-10px)}}#fx-global{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50;display:flex;flex-direction:column;align-items:center;padding-top:70px;gap:8px}.banner{--banner-color: #ffd98a;font-size:30px;font-weight:800;letter-spacing:.04em;color:var(--banner-color);padding:10px 28px;background:linear-gradient(90deg,transparent,rgba(20,14,8,.92) 20%,rgba(20,14,8,.92) 80%,transparent);text-shadow:0 0 18px var(--banner-color),0 2px 0 #000;animation:banner 2.6s ease-out forwards}.banner.skill{font-size:20px;--banner-color: #9fd0ff}.banner.magic{font-size:26px}.banner.scenario{--banner-color: #ffd34a}@keyframes banner{0%{opacity:0;transform:scale(.6)}12%{opacity:1;transform:scale(1.08)}20%{transform:scale(1)}80%{opacity:1}to{opacity:0;transform:translateY(-20px)}}.pop{position:fixed;transform:translate(-50%);display:flex;align-items:center;font-weight:800;color:#ffe9a8;text-shadow:0 1px 2px #000;animation:float-up 1.2s ease-out forwards}.pop .icon{width:22px;height:22px}.toast{animation:toast-in .25s ease-out,fade 4s forwards}@keyframes toast-in{0%{transform:translate(30px);opacity:0}}button{transition:border-color .15s,transform .1s}button:active:not(:disabled){transform:scale(.96)}.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{animation:none!important;transition:none!important}.reduce-motion .particles{display:none}@media(max-width:800px){.stage{height:180px}.actor{width:120px}.actor .icon.portrait{width:62px;height:62px}.hero-sprite{--cell: 150px}.monster-sprite.small{width:56px}.monster-sprite.large{width:76px}.monster-sprite.huge{width:100px}.actor .monster-sprite{max-height:100px}.hpbar{width:110px}}.guide{border:1px solid var(--accent);background:linear-gradient(135deg,#d9a44129,#d9a4410a);border-radius:8px;padding:10px 14px;margin-bottom:12px}.guide-head{display:flex;justify-content:space-between;align-items:baseline}.guide-head strong{color:#ffd98a}.guide p{margin:6px 0 8px}.guide-buttons{display:flex;gap:10px;align-items:center;flex-wrap:wrap}button.primary{background:#6b4a1a;border-color:var(--accent);color:#fff3d8;font-weight:600;padding:7px 14px}button.primary:hover{background:#7d5820}button.link{background:none;border:none;color:var(--muted);text-decoration:underline;padding:0;font-size:12px}details.section{border-top:1px solid #2e2a22;padding:6px 0}details.section>summary{cursor:pointer;color:var(--accent);font-weight:600;font-size:15px;padding:4px 0;list-style:none}details.section>summary:before{content:"▸ ";color:var(--muted)}details.section[open]>summary:before{content:"▾ "}.panel-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:4px}.icon-btn{background:none;border:1px solid transparent;padding:0 3px;font-size:15px;line-height:1.2}.icon-btn:hover{border-color:var(--border)}.head-buttons{display:flex;flex-shrink:0;gap:2px}.icon-btn.off{opacity:.35;text-decoration:line-through}@media(pointer:coarse){.icon-btn{min-width:32px;min-height:32px}}.lang-menu{position:fixed;z-index:60;display:flex;flex-direction:column;min-width:180px;padding:4px;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 20px #0009}.lang-menu button{background:none;border:none;border-radius:6px;text-align:left;padding:10px 12px;font-size:15px}.lang-menu button:hover,.lang-menu button:focus-visible{background:#ffffff12}.lang-menu button.on{color:#ffd98a;font-weight:600}.lang-menu button.on:after{content:" ✓"}.skill-bonus{margin:-4px 0 12px;font-size:13px}.skill-bonus b{color:var(--accent)}.pop.bonus{color:#ffd34a;font-size:18px;text-shadow:0 0 8px rgba(255,211,74,.6),0 1px 2px #000}.settings-dialog{background:var(--panel, #1d1a15);color:inherit;border:1px solid var(--accent);border-radius:10px;padding:18px 22px;width:min(420px,calc(100vw - 32px))}.settings-dialog::backdrop{background:#0009}.settings-dialog h2{margin:0 0 6px}.settings-dialog h3{margin:14px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.setting{display:grid;grid-template-columns:110px 1fr 44px;align-items:center;gap:10px;margin:8px 0}.setting.check{grid-template-columns:auto 1fr}.setting.check small{grid-column:2}.setting select{grid-column:2 / span 2;background:#17140f;color:inherit;border:1px solid var(--border);border-radius:4px;padding:4px 6px}.setting input[type=range]{width:100%;accent-color:var(--accent)}.setting-value{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}.settings-dialog .small{font-size:12px}.dialog-buttons{display:flex;justify-content:flex-end;margin-top:10px}.profile-dialog .dialog-buttons{flex-wrap:wrap;gap:6px}.profile-dialog .dialog-buttons button{margin:0}.gear-link{margin:6px 0 4px}.gear-slot{margin-top:10px}.gear-slot h3{margin:0 0 4px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.gear-row{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:10px;padding:6px 8px;border:1px solid #2e2a22;border-radius:6px;margin-bottom:4px}.gear-row.worn{background:#d9a44112;border-color:#4a3f2a;grid-template-columns:1fr auto}.gear-row.best{border-color:var(--good);box-shadow:0 0 0 1px #7fd17a40 inset}.gear-row.unusable{opacity:.55}.gear-row .item-desc{font-size:11px;color:var(--muted)}.delta{font-size:12px;font-weight:700;margin-right:6px;white-space:nowrap}.delta.up{color:var(--good)}.delta.down{color:var(--bad)}.best-tag{font-size:11px;font-weight:700;color:#0f1a0e;background:var(--good);border-radius:10px;padding:1px 8px}.small{font-size:12px}.bounties{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px}.bounty{display:flex;flex-direction:column;gap:6px;border:1px solid var(--border);border-radius:6px;padding:8px 10px;background:#00000026}.bounty.done{border-color:var(--good);box-shadow:0 0 0 1px #7fd17a40 inset}.bounty.claimed{opacity:.55}.bounty>button{margin-top:auto}.bounty-actions{display:flex;gap:14px;align-items:center;margin-bottom:10px}@media(max-width:900px){.bounties{grid-template-columns:1fr}}.siege-card{border:1px solid #a8422a;border-radius:8px;padding:10px 12px;margin-bottom:12px;background:linear-gradient(135deg,#a8422a2e,#0000001a)}.siege-head{display:flex;gap:12px;align-items:center}.siege-head h2{margin:0 0 4px;color:#ffb38a}.siege-head p{margin:0 0 6px;font-size:13px}.siege-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:6px 0}.siege-card ol{margin:4px 0 0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:12px;color:var(--muted)}.abyss-card{border:1px solid #6b4fa0;border-radius:8px;padding:10px 12px;margin-bottom:12px;background:linear-gradient(135deg,#6b4fa033,#00000026)}.abyss-head{display:flex;gap:12px;align-items:center}.abyss-head .icon{width:48px;height:48px;flex:none}.abyss-head h2{margin:0 0 4px;color:#c9a8ff}.abyss-head p{margin:0 0 6px;font-size:13px}.abyss-card h3{margin:8px 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.trial-card{border-color:#b8923a;background:linear-gradient(135deg,#b8923a2e,#00000026)}.trial-card .abyss-head h2{color:#f0c94a}.abyss-card ol{margin:0;padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:12px;color:var(--muted)}.abyss-go{display:flex;gap:6px;align-items:center}.siege-quiet{font-size:12px}.titles{margin:-4px 0 8px;color:#ffcf6e;font-size:13px;font-weight:600;display:flex;flex-wrap:wrap;gap:4px;align-items:center}.title-chip{border:1px solid rgba(255,207,110,.35);background:#ffcf6e14;border-radius:999px;padding:1px 8px;font-size:12px}.title-more{background:none;border:none;color:var(--muted);font-size:12px;padding:2px 4px;cursor:pointer;text-decoration:underline;min-height:0}.spell-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:2px 12px;margin-bottom:10px}.slot-row{white-space:nowrap}.command-toggle{display:block;font-size:13px;margin:6px 0;cursor:pointer}.command-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:4px 0}.command-bar button{padding:8px 6px;font-weight:600}.command-bar button.queued{outline:2px solid var(--accent)}.command-bar button.urgent:not(.queued){border-color:#ff6a4a;animation:urgent .6s ease-in-out infinite alternate}@keyframes urgent{to{box-shadow:0 0 14px #ff6a4ab3}}.command-status{display:block;color:var(--muted)}.command-status.urgent{color:#ff8a6a;font-weight:700}.stage .telegraph{position:absolute;left:50%;top:10px;transform:translate(-50%);font-weight:800;font-size:18px;color:#ff8a6a;text-shadow:0 0 10px #000,0 2px 0 #000;animation:urgent-text .6s ease-in-out infinite alternate;pointer-events:none}@keyframes urgent-text{to{transform:translate(-50%) scale(1.12)}}.actor.you{position:relative}.actor .pet-sprite{position:absolute;left:6px;top:46px;width:32px;height:32px;image-rendering:pixelated;animation:bob 2.4s ease-in-out infinite;pointer-events:none}.pet-anim{display:inline-block;width:32px;height:32px;background:var(--idle) 0 0 / 400% 100% no-repeat;image-rendering:pixelated;animation:pet-idle .6s steps(4) infinite}.actor .pet-sprite.pet-anim{animation:pet-idle .6s steps(4) infinite}.pet-anim.hop,.actor .pet-sprite.pet-anim.hop{background-image:var(--hop);background-size:300% 100%;animation:pet-hop .27s steps(3) 1}@keyframes pet-idle{to{background-position:133.333% 0}}@keyframes pet-hop{to{background-position:150% 0}}.reduce-motion .pet-anim{animation:none}.pet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:14px}.pet-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px;border:1px solid var(--border);border-radius:8px;text-align:center;background:#00000026}.pet-card .pet-sprite{width:64px;height:64px;image-rendering:pixelated}.pet-card.active{border-color:#f0c94a;box-shadow:0 0 10px #f0c94a40}.pet-card.locked{opacity:.55}.pet-card small{font-size:11px;line-height:1.3}.pet-card>button{margin-top:auto}.pet-tag{display:inline-flex;gap:4px;flex-wrap:wrap;justify-content:center}.pet-tag span{font-size:10px;line-height:1.2;padding:1px 6px;border-radius:8px;border:1px solid var(--border);white-space:nowrap}.pet-role.battle{color:#f08a7a;border-color:#f08a7a80}.pet-role.idle{color:#8ad0f0;border-color:#8ad0f080}.pet-role.farming{color:#f0c94a;border-color:#f0c94a80}.pet-role.skilling{color:#9ad08a;border-color:#9ad08a80}.pet-tier{opacity:.8}.pet-card .pet-bonus,.achievement .pet-bonus{color:var(--text)}.achievement .pet-bonus{display:block}.pet-card .pet-source{font-style:italic}.pet-unknown{width:64px;height:64px;display:grid;place-items:center;font-size:28px;color:var(--muted);border:1px dashed var(--border);border-radius:50%}.achievement{padding:6px 0;border-bottom:1px solid var(--border)}.achievement.done strong{color:#f0c94a}.achievement-head{display:flex;justify-content:space-between;gap:8px}.achievement .bar{margin-top:4px}.achievement-reward{display:inline-block;margin:2px 8px 0 0;font-size:11px;color:#f0c94a}.loadout{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.loadout-side{flex:1 1 280px;min-width:0}.loadout-side h3{margin:10px 0 4px}.doll-frame{position:relative;flex:none;padding:14px;border-radius:10px;background:radial-gradient(circle at 50% 40%,#3a3226,#1a1611 70%);border:2px solid #5a4630;box-shadow:inset 0 0 0 2px #0e0b08,inset 0 0 24px #000000b3,0 6px 16px #00000080}.doll{position:relative;z-index:1;display:grid;gap:10px 22px;grid-template-columns:repeat(3,58px);grid-template-rows:repeat(4,58px);grid-template-areas:". head ." "cloak neck ." "weapon armor shield" "ring belt ."}.doll-frame .doll-hero{position:absolute;z-index:0;left:50%;top:50%;margin:0;transform:translate(-50%,-54%);opacity:.2;filter:grayscale(.4);pointer-events:none;--cell: 330px}.doll-slot,.bank-slot{position:relative;display:grid;place-items:center;cursor:pointer;border-radius:6px;background:linear-gradient(#2a241c,#1b1712);border:2px solid #4a3c2a;box-shadow:inset 0 2px 4px #0009,inset 0 -1px #ffdca00f}.doll-slot:hover,.bank-slot:hover{border-color:#8a6a3a}.doll-slot.selected,.bank-slot.selected{border-color:#f0c94a;box-shadow:0 0 0 1px #f0c94a,inset 0 2px 4px #0009}.doll-slot .icon{width:40px;height:40px}.doll-slot .slot-ghost{opacity:.18}.doll-up{position:absolute;top:1px;right:4px;font-size:12px;color:#7fd45a;text-shadow:0 1px 2px #000}.rarity-uncommon{border-color:#3f8a3a}.rarity-rare{border-color:#3a6ac8}.rarity-very-rare{border-color:#8a4ac8}.rarity-legendary{border-color:#d08a2a}.doll-stats{margin-top:0}.inventory li.bank-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:4px;padding:6px 0;border-bottom:none}.bank-slot{aspect-ratio:1}.bank-slot .icon{width:70%;height:70%}.bank-slot .stack{position:absolute;right:3px;bottom:1px;font-size:11px;font-weight:700;color:#ffe08a;text-shadow:1px 1px 0 #000,-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000}.bank-slot .worn-badge{position:absolute;left:3px;top:1px;font-size:9px;font-weight:700;color:#9ad0ff;text-shadow:1px 1px 0 #000}.inventory li.bank-detail{display:flex;flex-direction:column;align-items:stretch;gap:3px;margin-top:6px;padding:8px;border:1px solid #5a4630;border-radius:6px;background:#00000040}.bank-detail-head{display:flex;align-items:center;gap:6px;font-weight:600}.bank-detail-head .qty{margin-left:auto;white-space:nowrap}.bank-detail .item-buttons{margin:4px 0 0;flex-wrap:wrap}.daily-dialog{width:min(560px,calc(100vw - 32px))}.daily-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0 14px}.daily-day{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 6px;text-align:center;border-radius:8px;border:2px solid #4a3c2a;background:linear-gradient(#2a241c,#1b1712)}.daily-day span{font-size:22px}.daily-day small{font-size:11px;color:var(--muted);line-height:1.25}.daily-day.big{grid-column:span 2;border-color:#8a4ac8}.daily-day.today{border-color:#f0c94a;box-shadow:0 0 12px #f0c94a59;animation:daily-pulse 1.6s ease-in-out infinite}.daily-day.done{opacity:.45}.daily-day.done span:after{content:" ✓";font-size:14px;color:#7fd45a}@keyframes daily-pulse{50%{box-shadow:0 0 20px #f0c94a99}}.reduce-motion .daily-day.today{animation:none}#daily-toggle.ready{animation:daily-pulse 1.6s ease-in-out infinite;border-radius:6px}#chat-form{display:flex;gap:6px}#chat-channel{flex:none}#chat-log .tag{color:#9ad0ff}#chat-log .channel{color:#7fd45a}#chat-log .guild{color:#c8f0b0}.guild-create{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 12px}.guild-create input{flex:1 1 160px}.guild-create .guild-tag-input{flex:0 0 70px;text-transform:uppercase}.guild-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--border)}.guild-row>span:first-child{flex:1 1 auto;min-width:0}.guild-goal{margin:8px 0 12px}.guild-tiers{display:flex;flex-direction:column;gap:2px;font-size:12px}.guild-tiers .reached{color:#7fd45a}@media(max-width:800px){.game{grid-template-columns:minmax(0,1fr);grid-template-areas:"skills" "actions" "inventory" "chat";gap:8px;padding:8px}.game>.panel{min-width:0}.panel.skills{position:sticky;top:0;z-index:30;padding:6px 8px 4px;overflow:visible;box-shadow:0 6px 14px #00000073}.skills .panel-head{flex-wrap:nowrap;margin:0 0 4px;font-size:14px}#nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}#nav::-webkit-scrollbar{display:none}#nav{--fade-l: #000;--fade-r: #000;mask-image:linear-gradient(to right,var(--fade-l),#000 28px,#000 calc(100% - 28px),var(--fade-r));-webkit-mask-image:linear-gradient(to right,var(--fade-l),#000 28px,#000 calc(100% - 28px),var(--fade-r))}#nav.fade-start{--fade-l: transparent}#nav.fade-end{--fade-r: transparent}#nav h3{display:none}#nav li{flex:none;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:64px;padding:5px 6px;font-size:11px;text-align:center}#nav li>span:first-child{display:flex;flex-direction:column;align-items:center;gap:2px;white-space:nowrap}#nav li .icon{width:22px;height:22px;margin:0}#nav li .lvl{font-size:10px}#nav li.busy:after{position:absolute;margin:0;transform:translate(22px,-14px);font-size:9px}#nav li{position:relative}.leaderboard-box,.friends-box{display:none}.inventory h2{cursor:pointer;margin:0}.inventory h2:after{content:" ▾";color:var(--muted)}.inventory.open h2:after{content:" ▴"}.inventory:not(.open) #inventory{display:none}.chat{height:auto}#chat-log{max-height:130px}#toasts{left:12px;right:12px;bottom:12px}.siege-row{flex-wrap:wrap}.abyss-go{margin-left:auto}.siege-head p,.abyss-head p{font-size:12px}}.away-dialog{width:min(520px,calc(100vw - 32px))}.away-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin:10px 0}.away-tile{display:flex;flex-direction:column;align-items:center;padding:8px;border-radius:8px;border:1px solid #4a3c2a;background:linear-gradient(#2a241c,#1b1712)}.away-tile b{font-size:20px;color:#ffd98a}.away-tile small{color:var(--muted);font-size:11px}.away-skills{display:flex;flex-wrap:wrap;gap:4px 14px;margin:8px 0;font-size:13px}.away-skill .icon{width:18px;height:18px;color:var(--accent);vertical-align:-4px}.away-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:4px 10px;margin-bottom:10px;max-height:40vh;overflow-y:auto}.away-item{display:flex;align-items:center;gap:6px;min-width:0;font-size:13px}.away-item .icon{width:24px;height:24px;margin:0;flex:none}.away-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.away-item.rarity-uncommon .away-item-name{color:#6fdc6f}.away-item.rarity-rare .away-item-name{color:#6fa8ff}.away-item.rarity-very-rare .away-item-name{color:#c58cff}.away-item.rarity-legendary .away-item-name{color:#ffa940}.away-levelup{margin:4px 0 10px;padding:10px;text-align:center;font-family:var(--title-font, inherit);font-size:26px;font-weight:700;color:#ffd98a;border:1px solid #b8862e;border-radius:8px;background:radial-gradient(circle at 50% 30%,#ffc85a40,#281e0f99);text-shadow:0 0 12px rgba(255,190,80,.6);animation:away-burst .9s ease-out}@keyframes away-burst{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.08);opacity:1}to{transform:scale(1)}}.bar.paragon>div{background:linear-gradient(90deg,#8a4ac8,#d08a2a)}.rank-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.rank-board{border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:#00000026}.rank-board h3{margin:0;color:#ffd98a}.rank-board ol{list-style:none;margin:8px 0 0;padding:0}.rank-board li{display:flex;gap:8px;align-items:baseline;padding:3px 0;border-bottom:1px solid #2e2a22}.rank-board li.me,.rank-board li.me .who{color:#ffd98a;font-weight:600}.rank-n{width:22px;color:var(--muted);text-align:right}.rank-board .who{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-v{color:var(--accent);white-space:nowrap}.rank-board li:nth-child(1) .rank-n{color:#f0c94a}.rank-board li:nth-child(2) .rank-n{color:#c8d0d8}.rank-board li:nth-child(3) .rank-n{color:#d08a4a}.who.clickable{cursor:pointer}.who.clickable:hover{text-decoration:underline}.profile-dialog{width:min(480px,calc(100vw - 32px))}.profile-head{display:flex;align-items:center;gap:12px}.profile-head h2{margin:0}.profile-head p{margin:2px 0 0}.profile-head .pet-sprite{margin-left:auto;width:48px;height:48px;image-rendering:pixelated}.profile-dialog .titles{color:#f0c94a;font-size:13px}.reconnect{position:fixed;top:0;left:50%;transform:translate(-50%);z-index:100;padding:6px 16px;border-radius:0 0 8px 8px;background:#6b2a1a;color:#ffe0c8;border:1px solid var(--bad);border-top:none;font-size:13px;animation:daily-pulse 1.6s ease-in-out infinite}.merchant{border:1px solid #5a4a2a;border-radius:8px;padding:8px 10px;margin-bottom:12px;background:linear-gradient(180deg,rgba(120,80,30,.18),transparent)}.merchant h3{margin:0 0 4px;color:var(--accent)}.merchant.locked{opacity:.6}.merchant li.sold{opacity:.55}.shop-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:6px;font-size:13px}.shop-tabs{display:flex;flex-wrap:wrap;gap:4px}.shop-tabs button{padding:2px 10px;font-size:12px}.shop-tabs button.active{border-color:var(--accent);color:var(--accent)}.cmp{font-size:11px;padding:0 6px;border-radius:8px;border:1px solid currentColor}.cmp-better{color:#7fd17a}.cmp-worse{color:#e07a6a}.cmp-same{color:var(--muted)}.cmp-cannot{color:#a08a6a;opacity:.8}.new-tag{margin-left:6px;font-size:10px;text-transform:uppercase;color:#ffcf5a;border:1px solid #ffcf5a;border-radius:6px;padding:0 4px}.market-sell{border:1px solid #2e2a22;border-radius:8px;padding:8px 10px;margin-bottom:10px}.market-sell h3{margin:0 0 6px}.market-sell-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.market-sell-row select{flex:1 1 200px;min-width:0}.market-qty{width:80px}.market-price{width:110px}.market-search{flex:1 1 160px;min-width:0}.gear-actions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.market-sales{list-style:none;padding:0;margin:0;font-size:13px;display:grid;gap:2px}.market-sales li{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.abyss-mod{margin:6px 0;padding:4px 8px;border-left:3px solid #b78cf0;background:#b78cf014;font-size:13px}.trial-card .abyss-mod{border-left-color:#f0c94a;background:#f0c94a14}#chat-log .whisper{color:#d9a8ff}#chat-log .whisper .channel{font-style:italic;opacity:.85}.friends-box summary{font-size:15px}.friends{list-style:none;padding:0;margin:4px 0;display:grid;gap:2px}.friends li{display:flex;align-items:center;gap:6px;font-size:13px;opacity:.6}.friends li.online{opacity:1}.friends .dot{color:#6b6457;font-size:10px}.friends .dot.on{color:#6fd36f}.friend-main{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}.friend-main .small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.friends .icon-btn{padding:0 4px;font-size:13px}.friend-add-row{display:flex;gap:4px;margin-top:4px}.friend-add{flex:1;min-width:0}.guild-friends{margin-bottom:12px}.mythic-picker{margin:6px 0 10px;padding:8px 10px;border:1px solid #6a3a8a;border-radius:8px;background:#9650c814;display:grid;gap:4px}.mythic-picker .shop-tabs button.active{border-color:#c08cff;color:#c08cff}.prestige{color:#ffcf5a;font-size:12px}.quality-1{color:#9fd17a}.quality-2{color:#6fb7ff}.quality-3{color:#e0a0ff}.event-banner{margin-bottom:10px;padding:6px 10px;border:1px solid #c79b2e;border-radius:8px;background:linear-gradient(90deg,rgba(240,190,60,.18),transparent);font-size:13px}.event-banner strong{color:#ffd76a}.mastery{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin:6px 0 10px;font-size:13px}.mastery-rank{color:var(--muted)}.mastery-rank.reached{color:var(--good)}.mastery-rank.reached:before{content:"✓ "}.loot-float{position:absolute;transform:translate(-50%);display:flex;align-items:center;gap:4px;white-space:nowrap;font-weight:700;font-size:15px;color:#f2ead8;text-shadow:0 1px 0 #000,0 0 5px #000;opacity:0;animation:loot-up 2.4s ease-out forwards}.loot-float .icon{width:18px;height:18px}.loot-float.gold{color:#ffd34a}@keyframes loot-up{0%{opacity:0;transform:translate(-50%,10px)}12%{opacity:1;transform:translate(-50%)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-60px)}}.scenario-summary{pointer-events:auto;cursor:pointer;min-width:240px;max-width:min(380px,calc(100vw - 32px));padding:14px 18px;background:#16130ef2;border:1px solid #c79b2e;border-radius:10px;box-shadow:0 10px 30px #0009;text-align:center;animation:summary-in .35s ease-out;transition:opacity .6s,transform .6s}.scenario-summary.leaving{opacity:0;transform:translateY(-14px)}.summary-title{font-size:24px;font-weight:800;color:#ffd34a;letter-spacing:.03em}.summary-name{color:var(--muted);margin-bottom:8px}.summary-goal{margin:4px 0 8px;font-weight:600}.summary-goal.met{color:var(--good)}.summary-goal.missed{color:var(--bad)}.summary-rewards{font-weight:700;color:#ffe9a8;margin-bottom:4px}.summary-item{display:flex;align-items:center;justify-content:center;gap:6px;font-size:14px}.summary-item .icon{width:18px;height:18px}@keyframes summary-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.paragon-lvl{color:#6fb7ff;font-weight:700}.ingredients{display:flex;flex-direction:column;gap:2px;margin:4px 0 6px;font-size:13px}.ingredient{display:flex;align-items:center;gap:6px}.ingredient .icon{width:16px;height:16px;flex-shrink:0}.ingredient-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ingredient-have{color:var(--muted);font-variant-numeric:tabular-nums}.ingredient.short .ingredient-have{color:var(--bad);font-weight:700}.ingredient-qty{font-weight:700;font-variant-numeric:tabular-nums}.action>.bar.step{margin-top:auto}.action .perk-chance{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#nav h3.nav-section{cursor:pointer;-webkit-user-select:none;user-select:none}#nav h3.nav-section:hover{color:var(--text)}#nav .caret{display:inline-block;width:1em;color:var(--muted)}#nav .busy-dot{color:var(--good)}#nav li.collapsed{display:none}@media(max-width:800px){#nav li.collapsed{display:flex}}.boosts{margin:8px 0 12px;padding:10px 12px;border:1px solid #c79b2e;border-radius:8px;background:linear-gradient(90deg,rgba(240,190,60,.12),transparent)}.boosts p{margin:4px 0 8px}.boost-buttons{display:flex;flex-wrap:wrap;gap:6px}.boost-buttons button.running{border-color:var(--good);color:var(--good)}.ad-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#000c}.ad-box{display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px 32px;max-width:calc(100vw - 32px);border:1px dashed var(--muted);border-radius:10px;background:var(--panel)}.ad-count{font-size:28px;font-weight:800;color:var(--accent)}.action.locked>.bar,.action.locked>button{display:none}@media(max-width:800px){.action-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.action{padding:8px}}.boost-chips{position:absolute;top:6px;right:6px;z-index:3;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:60%;pointer-events:none}.boost-chip{padding:2px 7px;border-radius:10px;font-size:12px;font-weight:700;background:#0009;border:1px solid rgba(255,211,74,.6);color:#ffe9a8;white-space:nowrap}.boost-chip.speed{border-color:#7fbf5ab3;color:#c9f0b0}.boost-chip.haste{border-color:#e66e50bf;color:#ffd0c0}.boost-chip.gold{border-color:#ffc83ccc}.feedback-kinds{display:flex;gap:6px;margin:8px 0}.feedback-kinds button.active{border-color:var(--accent);color:var(--accent)}.feedback-text{width:100%;box-sizing:border-box;resize:vertical;font:inherit}.guild-donate-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.guild-donate-row input{width:80px}body.no-chat .panel.chat{display:none}body.chat-quiet .game{grid-template-rows:1fr auto}body.chat-quiet #chat-log{display:none}body.no-chat .game{grid-template-rows:1fr;grid-template-areas:"skills actions inventory"}@media(max-width:800px){body.no-chat .game{grid-template-rows:auto;grid-template-areas:"skills" "actions" "inventory"}}@media(max-width:800px){.donate-row .password-input{flex:1 1 100%;width:auto;min-width:0}.donate-row .password-input+button{flex:1 1 100%}#chat-channel{width:auto;max-width:88px}#chat-form input{min-width:0;flex:1}}.stage .actors{padding-bottom:22px}.stage-round{position:absolute;left:0;right:0;bottom:0;z-index:2;height:14px;margin:0;border-radius:0;background:#0009}.stage-round>div{opacity:.85}.stage-round>span{font-size:10px;line-height:14px;font-weight:600;text-shadow:0 1px 2px #000}.gear-row:not(.worn){grid-template-columns:1fr auto auto;gap:4px 8px}.gear-row:not(.worn)>span:first-child{grid-column:1 / -1}.gear-row:not(.worn)>button{grid-column:-2 / -1;justify-self:end}@media(max-width:800px){.gear-row.worn{grid-template-columns:1fr auto;gap:4px 8px}.gear-row.worn>span:first-child{grid-column:1 / -1}.gear-row.worn>button{grid-column:-2 / -1;justify-self:end}}body.portal-login #login-name,body.portal-login #login-secure{display:none}body.portal-login .login-row button{flex:1;padding:12px;font-size:18px}.login-foot a{color:#f0b44a;text-decoration:none}.login-foot a:hover{text-decoration:underline}.settings-dialog a{color:#f0b44a}.event-banner.event-hallowed{border-color:#e2701c;background:linear-gradient(90deg,rgba(226,112,28,.28),rgba(90,40,140,.18) 70%,transparent)}.event-banner.event-hallowed strong{color:#ff9a3c}.event-banner.event-winterfest{border-color:#7fc4ff;background:linear-gradient(90deg,rgba(127,196,255,.24),rgba(220,240,255,.1) 70%,transparent)}.event-banner.event-winterfest strong{color:#bfe3ff}.invite-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:10px;padding-top:8px;border-top:1px solid #2e2a22}.delete-row{margin-top:18px;padding-top:10px;border-top:1px solid #3a2a24}button.danger{color:#ff9a8a;border-color:#7a3a30;background:#781e1440}button.danger:hover{background:#a0281966}html.i18n-loading body{visibility:hidden}.hero-sprite.aura{filter:drop-shadow(0 4px 3px rgba(0,0,0,.55)) drop-shadow(0 0 4px var(--aura)) drop-shadow(0 0 10px var(--aura));animation:aura-pulse 2.6s ease-in-out infinite}@keyframes aura-pulse{50%{filter:drop-shadow(0 4px 3px rgba(0,0,0,.55)) drop-shadow(0 0 2px var(--aura)) drop-shadow(0 0 5px var(--aura))}}.reduce-motion .hero-sprite.aura{animation:none}.wardrobe-row{display:flex;align-items:center;gap:10px;margin:6px 0 10px;flex-wrap:wrap}.wardrobe-row label{font-weight:600}.aura-picks{display:flex;flex-wrap:wrap;gap:6px}.aura-locked{display:flex;flex-direction:column;gap:2px;max-width:170px}.aura-locked small,.aura-locked .small{font-size:11px;line-height:1.25}.aura-pick{display:inline-flex;align-items:center;gap:6px}.aura-pick.selected{border-color:var(--aura, #f0c94a);box-shadow:0 0 0 1px var(--aura, #f0c94a),0 0 10px var(--aura, rgba(240, 201, 74, .5))}.aura-pick.locked{opacity:.5}.aura-dot{width:12px;height:12px;border-radius:50%;background:var(--aura);box-shadow:0 0 6px var(--aura)}.chat-title{font-weight:400;font-size:.9em;opacity:.8}.profile-hero{display:flex;justify-content:center;height:120px;overflow:hidden;margin:4px 0}.profile-hero .hero-sprite{--cell: 150px}.arena-card{border-color:#c0603e;background:linear-gradient(135deg,#c0603e2e,#00000026)}.arena-card .abyss-head h2{color:#ff9a7a}.arena-row .icon{margin-right:4px}.duel-panel{border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:12px}.duel-vs{font-weight:700;color:var(--muted)}.duel-panel ol{margin:8px 0 0;padding-left:0;list-style:none;font-size:12px;color:var(--muted);max-height:160px;overflow-y:auto}.duel-result{margin:8px 0 0;font-weight:700}.duel-result.won{color:#8fe08a}.duel-result.lost{color:#ff8a7a}.duel-prize{margin:4px 0 0;color:#e8c36a}.arena-board{padding-left:0;list-style:none;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px}.festival-card{border-color:#d0a040;background:linear-gradient(135deg,#f0b43c29,#c83c781a)}.festival-card h2{margin:0 0 4px;color:#ffc860}.event-banner.event-festival{border-color:#f0b44a;background:linear-gradient(90deg,rgba(240,180,74,.22),rgba(200,60,120,.12) 70%,transparent)}.news-card{border:1px solid #b8923a;border-radius:8px;padding:10px 12px;margin-bottom:12px;background:linear-gradient(135deg,#f0c94a1f,#0000001a)}.news-card h2{margin:0 0 6px;color:#f0c94a}.news-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid var(--border)}.news-row p{margin:2px 0 0}.news-row button{flex:none}.news-card>button{margin-top:8px}.arena-who{display:flex;flex-direction:column;gap:2px;min-width:0}.arena-row{justify-content:space-between}.skill-bonus-row{display:grid;grid-template-columns:minmax(130px,1fr) 2fr;gap:0 10px;padding:5px 4px;border-top:1px solid var(--border);cursor:pointer;font-size:13px}.skill-bonus-row:hover{background:#ffffff08}.skill-bonus-row>:last-child{grid-column:2}.skill-bonus-row .icon{margin-right:4px}.skill-bonus-row .good{color:var(--good)}@media(max-width:600px){.skill-bonus-row{grid-template-columns:1fr}.skill-bonus-row>:last-child{grid-column:1}}.hands-card{border-color:#6a8a4a;background:linear-gradient(135deg,#6e964629,#0000001f)}.hands-card h2{margin:0 0 4px;color:#b8e08a}.hands-card>button{margin-top:8px}.duel-stage{position:relative;display:flex;align-items:flex-end;justify-content:space-around;gap:8px;padding:8px 6px 10px;border-radius:8px;margin-bottom:8px;overflow:hidden;background:radial-gradient(ellipse at 50% 120%,rgba(214,170,100,.35),transparent 60%),linear-gradient(180deg,#2a1a12,#3a2618 70%,#5a3c22)}.duel-actor{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;text-align:center}.duel-actor .hero-sprite{--cell: 130px;margin:calc(var(--cell) * -.22) calc(var(--cell) * -.15) calc(var(--cell) * -.18)}.duel-stage .face-left{transform:scaleX(-1)}.duel-actor strong{font-size:14px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.duel-bar{width:100%;max-width:180px}.duel-vs{align-self:center;font-weight:800;color:#f0c94a;text-shadow:0 2px 4px #000}.duel-actor.hurt .hero-sprite{animation:duel-hurt .35s}.duel-actor.hurt-hard .hero-sprite{animation:duel-hurt .45s;filter:drop-shadow(0 0 8px #ff4a3a)}@keyframes duel-hurt{25%{translate:-5px 0}50%{translate:5px 0}75%{translate:-3px 0}}.duel-actor.fallen .hero-sprite{opacity:.55;filter:grayscale(.7);transition:opacity .6s,filter .6s}.duel-float{position:absolute;top:18%;left:50%;transform:translate(-50%);font-weight:800;font-size:18px;color:#ffd0c0;text-shadow:0 2px 3px #000;pointer-events:none;animation:duel-float 1s ease-out forwards}.duel-float.crit{font-size:24px;color:#ffe066}.duel-float.miss{font-size:14px;color:#c8c8c8}@keyframes duel-float{0%{opacity:1;translate:0 0}to{opacity:0;translate:0 -40px}}.reduce-motion .duel-float,.reduce-motion .duel-actor .hero-sprite{animation:none}.regular-tag{font-size:11px;color:#9fc4e8;font-weight:600}.chapter-group{margin:6px 0;border:1px solid var(--border);border-radius:8px;padding:0 8px}.chapter-group>summary{cursor:pointer;padding:8px 2px;font-weight:700;color:var(--accent, #f0c94a)}.chapter-group[open]>summary{border-bottom:1px solid var(--border);margin-bottom:6px}.chapter-group>.areas{margin-bottom:8px}@media(max-width:800px){.chapter-group>.areas{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding-bottom:6px;overscroll-behavior-x:contain}.chapter-group>.areas>.area{flex:0 0 86%;scroll-snap-align:start}}.repeat-toggle{display:inline-flex;align-items:center;gap:4px;margin:0 0 0 auto;font:500 13px system-ui,sans-serif;letter-spacing:0;color:var(--text);cursor:pointer;white-space:nowrap}.recipe-group{margin:6px 0;border:1px solid var(--border);border-radius:8px;padding:0 8px}.recipe-group>summary{cursor:pointer;padding:8px 2px;font-weight:700}.recipe-group[open]>summary{margin-bottom:6px}.recipe-group>.action-grid{margin-bottom:8px}.skill-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;margin-bottom:12px}.skill-tile{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border:1px solid var(--border);border-radius:8px;cursor:pointer;text-align:center;background:#ffffff05}.skill-tile:hover{border-color:#8a7a5a}.skill-tile.busy{border-color:var(--good);box-shadow:0 0 0 1px var(--good)}.skill-tile strong{font-size:13px}.mastery-stars{color:#f0c94a;font-size:12px;letter-spacing:1px}.achievement.compact{padding-top:4px;padding-bottom:4px}.town-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.town-tabs button{flex:1 1 auto;padding:6px 10px}.town-tabs button.active{border-color:var(--accent);color:var(--accent);background:#f0c94a14}.achievement .achievement-reward{display:block}.codex-bonuses{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:-4px 0 6px}.codex-bonuses .achievement-reward{margin:0;font-size:12px}.codex-page>summary{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.codex-page>summary:before{margin-right:2px}.codex-page>.bar{margin:2px 0 8px}.codex-rank{display:inline-block;padding:0 6px;border-radius:9px;font-size:11px;font-weight:700;line-height:18px;border:1px solid currentColor;white-space:nowrap}.codex-rank.r1{color:#b9ad94}.codex-rank.r2{color:#d08a4a}.codex-rank.r3{color:#cfd6de}.codex-rank.r4{color:#f0c94a;background:#f0c94a1a}.codex-rewards{display:flex;flex-wrap:wrap;gap:4px 12px;margin:2px 0 6px;font-size:12px;color:var(--muted)}.codex-reward.got{color:#f0c94a}.codex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-bottom:8px}.codex-entry{display:flex;gap:8px;align-items:center;min-width:0;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:#00000026}.codex-entry.r4{border-color:#f0c94a99}.codex-entry .codex-sprite{width:44px;height:44px;flex:none;object-fit:contain;filter:drop-shadow(0 3px 2px rgba(0,0,0,.6))}.codex-entry.unseen .codex-sprite{filter:brightness(0) opacity(.45)}.codex-entry-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.codex-entry-head{display:flex;justify-content:space-between;align-items:center;gap:6px}.codex-entry-head strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.codex-entry .bar{margin:2px 0 0}.codex-entry small{font-size:11px;line-height:1.3}.codex-entry .achievement-reward{margin:0}.bar.codex-bar>div{background:#8a6d2f}@media(max-width:600px){.codex-grid{grid-template-columns:1fr}}.siege-reward{margin:4px 0}.siege-reward .bar{margin:2px 0 4px}.siege-reward p{margin:0}.boss-gear{margin:4px 0}.tonic-row{display:flex;flex-wrap:wrap;gap:4px 14px;margin:2px 0 6px;font-size:12px}.tonic{display:inline-flex;align-items:center;gap:6px}.tonic select{font-size:12px;padding:1px 4px;max-width:170px}.tonic-on{color:var(--good)}.hand-row{border-top:1px solid var(--border);padding:8px 0 6px;display:flex;flex-direction:column;gap:4px}.hand-row.idle{opacity:.85}.hand-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hand-head select{margin-left:auto;max-width:220px}.hand-skill .bar{margin:2px 0}.hand-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.small-btn{font-size:12px;padding:3px 8px}.hands-card>.bar{margin-top:6px}.stage .fx-strip{--s: 1.5;--z: calc(var(--s) * var(--k, 1));position:absolute;pointer-events:none;image-rendering:pixelated;background-repeat:no-repeat;width:calc(var(--fw) * var(--z) * 1px);height:calc(var(--fh) * var(--z) * 1px);margin:calc(var(--ay) * var(--z) * -1px) 0 0 calc(var(--ax) * var(--z) * -1px);transform-origin:calc(var(--ax) * var(--z) * 1px) calc(var(--ay) * var(--z) * 1px);background-size:calc(var(--frames) * var(--fw) * var(--z) * 1px) calc(var(--fh) * var(--z) * 1px);background-position:calc(var(--f) * var(--fw) * var(--z) * -1px) 0}.stage .fx-strip.flip{transform:scaleX(-1)}.stage .fx-strip.ending{opacity:0;transition:opacity .2s}@media(min-width:801px)and (min-height:700px){.stage .fx-strip{--s: 2}}@media(max-width:480px){.stage .fx-strip{--s: 1}}.stage.mini .fx-strip{--s: 1}.reduce-motion .fx-strip{display:none}.replay-tired{color:#e0a85a;font-size:12px;margin:0}.log .tip{color:#8fd3ff;border-left:2px solid #8fd3ff;padding-left:6px;margin:2px 0}.empower-row .hunt-label{margin-right:4px}.empower-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:4px 10px 8px;font-size:12px}.empowered{color:#ffd86b;font-weight:600}.unlock-teaser{margin:0 0 10px}.rested-line{color:#8fd3ff;margin:2px 0}.grade-ancient{color:#ff9a3d;font-weight:600}.grade-primal{color:#ff4d6d;font-weight:700;text-shadow:0 0 6px rgba(255,77,109,.45)}.abyss-tier-line{margin:4px 0}.abyss-go{flex-wrap:wrap;justify-content:flex-end;max-width:100%}.abyss-go select{min-width:0;max-width:100%}.season-banner{margin:0 0 10px;padding:6px 10px;border:1px solid #3c6f78;border-radius:6px;background:#7ef3ff14;color:#7ef3ff;font-size:13px;cursor:pointer}.season-journey{list-style:none;padding:0;margin:4px 0 6px}.season-journey li{padding:3px 0}.season-journey li.done{color:var(--good)}.season-board{list-style:none;margin:0;padding:8px 12px}.season-start{list-style:disc;margin:4px 0;padding-left:20px}.season-start li{margin:2px 0}.boost-chip.friend{background:#7ed38c26;border-color:#6fbf7a}.quest-hunt{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:4px 0}.quest-hunt p{margin:0;flex:1 1 200px}.class-card.retired{--heat: .1;position:relative;border-color:rgb(255 150 40 / calc(.45 + .55 * var(--heat)));animation:ember-glow calc(3.2s - 1.6s * var(--heat)) ease-in-out infinite alternate}.class-card.retired:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:inherit;pointer-events:none;background:linear-gradient(to top,rgb(255 110 20 / calc(.08 + .22 * var(--heat))),transparent 55%);animation:ember-flicker 1.7s steps(6,end) infinite}@keyframes ember-glow{0%{box-shadow:0 0 calc(4px + 10px * var(--heat)) rgb(255 120 30 / calc(.25 + .35 * var(--heat))),inset 0 0 6px #ff8c2833}to{box-shadow:0 0 calc(10px + 22px * var(--heat)) rgb(255 90 10 / calc(.4 + .45 * var(--heat))),inset 0 0 12px #ffa0324d}}@keyframes ember-flicker{0%,to{opacity:.75}33%{opacity:1}66%{opacity:.85}}@media(prefers-reduced-motion:reduce){.class-card.retired,.class-card.retired:after{animation:none}}.retired-badge{margin-left:6px;padding:1px 7px;border-radius:999px;font-size:12px;font-weight:600;color:#ffd27a;background:#ff781e2e;border:1px solid rgb(255 140 40 / .6);white-space:nowrap}.reduce-motion .class-card.retired,.reduce-motion .class-card.retired:after{animation:none}@media(min-width:801px){.inventory h2{cursor:pointer}.inventory h2:after{content:" ◂";color:var(--muted);font-size:.8em}body.bank-folded .inventory h2:after{content:" ▸"}body.bank-folded .game{grid-template-columns:210px minmax(0,1fr) 130px}body.bank-folded #inventory{display:none}.panel.skills{overflow-x:hidden}}@media(min-width:801px)and (max-width:1100px){.game{grid-template-columns:190px minmax(0,1fr) 240px}body.bank-folded .game{grid-template-columns:210px minmax(0,1fr) 120px}#nav li{font-size:15px;gap:6px;padding-right:6px}}@media(max-width:800px)and (hover:hover)and (pointer:fine){#nav{scrollbar-width:thin}#nav::-webkit-scrollbar{display:block;height:6px}#nav::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}}body.chat-quiet:not(.chat-open) .panel.chat,body.chat-hidden .panel.chat{display:none}body.chat-quiet:not(.chat-open) .game,body.chat-hidden .game{grid-template-rows:1fr;grid-template-areas:"skills actions inventory"}@media(max-width:800px){body.chat-quiet:not(.chat-open) .game,body.chat-hidden .game{grid-template-rows:auto;grid-template-areas:"skills" "actions" "inventory"}}.stage .hero-sprite{--cell: 192px}.stage .monster-sprite.small{width:96px}.stage .monster-sprite.large{width:128px}.stage .monster-sprite.huge{width:160px}.stage .actor .monster-sprite{max-height:160px}@media(min-width:801px)and (min-height:700px){.stage{height:clamp(260px,42vh,420px)}.stage .actor{width:260px}.stage .hero-sprite{--cell: 256px}.stage .monster-sprite.small{width:128px}.stage .monster-sprite.large{width:160px}.stage .monster-sprite.huge{width:224px}.stage .actor .monster-sprite{max-height:224px}.stage .hpbar{width:190px;height:14px}.stage .hpbar span{font-size:10px;line-height:14px}.stage .actor-name{font-size:14px}.stage .float{font-size:26px}.stage .float.crit{font-size:34px}}@media(max-width:800px){.stage{height:280px}.stage .actor{width:150px}.stage .monster-sprite.huge{width:128px}.stage .actor .monster-sprite{max-height:128px}}.stage .actor{position:relative}.stage .actor:not(.empty):before{content:"";position:absolute;z-index:-1;left:50%;bottom:26px;width:62%;height:16px;transform:translate(-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.55),transparent)}.stage .actor.dying:before,.stage .actor.gone:before{opacity:0;transition:opacity .6s}.stage-scene:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at 50% 55%,transparent 55%,rgba(0,0,0,.45))}.stage .monster-sprite{filter:drop-shadow(0 4px 0 rgba(0,0,0,.35))}.stage .monster-sprite.hd{width:128px;height:128px}.stage .actor .monster-sprite.hd{max-height:none}@media(min-width:801px)and (min-height:700px){.stage .monster-sprite.hd{width:256px;height:256px}}@media(min-width:801px)and (max-height:620px){.game,body.bank-folded .game{grid-template-columns:190px minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"skills actions" "inventory actions";padding:6px;gap:6px}body.chat-quiet:not(.chat-open) .game{grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"skills actions" "inventory actions"}body.chat-open .game,body:not(.chat-quiet) .game{grid-template-rows:minmax(0,1fr) auto auto;grid-template-areas:"skills actions" "inventory actions" "chat chat"}body.chat-hidden .game{grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"skills actions" "inventory actions"}.panel{padding:8px}.inventory{max-height:34vh}.inventory h2{margin:0}.inventory:not(.open) #inventory{display:none}.inventory h2:after,body.bank-folded .inventory h2:after{content:" ▴"}.inventory:not(.open) h2:after,body.bank-folded .inventory:not(.open) h2:after{content:" ▾"}#chat-log{max-height:90px}.stage{height:max(160px,46vh);margin:-8px -8px 8px}.skills li{padding:4px 8px}.skills h3{margin:6px 8px 2px}}details.event-banner{padding:4px 10px}details.event-banner>summary{cursor:pointer;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}details.event-banner>summary::-webkit-details-marker{display:none}details.event-banner>summary:after{content:" ▾";color:var(--muted)}details.event-banner[open]>summary:after{content:" ▴"}details.event-banner>p{margin:4px 0 2px}.guide{padding:8px 12px;margin-bottom:10px;font-size:14px}.guide p{margin:3px 0 6px}.log.short{max-height:none;overflow:hidden}.log-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.log-head h2{margin-bottom:4px}.log-head button{padding:1px 8px;font-size:12px}.actor.dying,.actor.gone.dying{animation:none}.actor.dying .portrait{animation:dying 1.1s forwards}.actor.dying .actor-name,.actor.dying .hpbar{animation:label-fade .6s .3s forwards}@keyframes label-fade{to{opacity:0}}.actor.gone .actor-name,.actor.gone .hpbar{opacity:0}.banner.level{position:relative;font-size:44px;padding:14px 44px}.banner.level:before{content:"";position:absolute;left:50%;top:50%;width:360px;height:360px;transform:translate(-50%,-50%);z-index:-1;background:radial-gradient(circle,rgba(255,217,138,.55),rgba(255,140,30,.18) 40%,transparent 70%);animation:level-burst 2.6s ease-out forwards}.banner.level small{display:block;font-size:15px;letter-spacing:.02em;color:#f3e6c4;text-shadow:0 1px 2px #000;margin-top:2px}@keyframes level-burst{0%{transform:translate(-50%,-50%) scale(.2);opacity:0}15%{opacity:1}to{transform:translate(-50%,-50%) scale(1.6);opacity:0}}body.no-chat #chat-toggle{display:none}@media(min-width:801px){.skills .panel-head .head-buttons{flex-wrap:wrap;flex-shrink:1}}@media(max-width:420px){#total-level{display:none}}.stage-hud{position:absolute;inset:6px 6px auto 6px;z-index:4;display:flex;align-items:flex-start;gap:8px;pointer-events:none}.hud-plate{flex:1 1 auto;min-width:0;max-width:62%;display:flex;flex-direction:column;gap:1px;padding:5px 10px;border-radius:8px;background:linear-gradient(90deg,#0a0805c7,#0a080573);text-shadow:0 1px 2px #000}.hud-plate strong{color:#ffd98a;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud-plate small{font-size:11px;color:#d8ccb0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud-ticker{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud-ticker.fresh{animation:ticker-in .3s ease-out}.hud-ticker.miss{color:#c8c0ae}@keyframes ticker-in{0%{opacity:0;transform:translateY(4px)}}.hud-orbs{flex:none;display:flex;gap:5px;margin-left:auto;pointer-events:auto}.orb{width:34px;height:34px;padding:0;border-radius:50%;font-size:16px;line-height:1;display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,#463a28f2,#14100af2);border:2px solid #8a7a5a;box-shadow:0 3px 8px #0009}.orb:hover:not(:disabled){border-color:var(--accent)}.orb.on{border-color:#ffd98a;box-shadow:0 0 10px #ffd98a99,0 3px 8px #0009}.orb.dim{opacity:.55}.hud-panel{position:absolute;top:42px;right:0;width:min(340px,100%);max-height:calc(var(--stage-h, 210px) - 70px);overflow:auto;pointer-events:auto;padding:8px 12px;border-radius:8px;border:1px solid #8a7a5a;background:#120e09f2;box-shadow:0 8px 20px #0009;font-size:13px}.hud-panel h3{margin:0 0 4px;font-size:13px;color:#ffd98a}.hud-panel p{margin:0 0 4px}.hud-panel .log{max-height:none;border-top:none;padding-top:0;font-size:12px}.stage .boost-chips{top:46px}.stage{--stage-h: 210px}@media(min-width:801px)and (min-height:700px){.stage{--stage-h: clamp(260px, 42vh, 420px)}.hud-plate strong{font-size:16px}.hud-plate small,.hud-ticker{font-size:13px}.orb{width:40px;height:40px;font-size:19px}.hud-panel{top:48px}.stage .boost-chips{top:52px}}@media(max-width:800px){.stage{--stage-h: 280px}.hud-plate{max-width:none}.orb{width:32px;height:32px;font-size:15px}.hud-orbs{gap:3px}}@media(min-width:801px)and (max-height:620px){.stage{--stage-h: max(160px, 46vh)}}@media(max-width:480px){.stage-hud{flex-direction:column;align-items:stretch;gap:4px}.hud-orbs{margin-left:0;justify-content:flex-end}.hud-panel{top:auto;position:relative}}h2.explained{display:flex;align-items:center;gap:6px}.info-btn{width:22px;height:22px;padding:0;border-radius:50%;font-size:13px;line-height:1;display:inline-grid;place-items:center;color:var(--muted);background:transparent}.info-btn.on{color:var(--accent);border-color:var(--accent)}@media(min-width:801px)and (max-height:450px){.hud-plate small,.hud-ticker{display:none}.hud-plate{max-width:40%}}h2,.news-card summary strong{font-family:Cinzel,Georgia,serif;letter-spacing:.02em}h3,details.section>summary{font-weight:600}h2{font-size:17px}.panel{background:linear-gradient(180deg,#27231b,#1f1c16 140px,#1d1a14);box-shadow:inset 0 1px #fff0c80d,0 2px 8px #00000059;border-color:#4f4634}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:12px;white-space:nowrap;background:#ffdc8c14;border:1px solid rgba(217,164,65,.4);color:#f0e2c0;cursor:default}.chip.reached{border-color:#7fbf5a99;color:#c9f0b0}.reward-chips,.skill-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0 4px}.skill-chip-row{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin:-4px 0 10px}.skill-chip-row .skill-bonus,.skill-chip-row .mastery{margin:0}.skill-chip-row .mastery{gap:6px;align-items:center}details.news-card{padding:8px 12px}details.news-card>summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none}details.news-card>summary::-webkit-details-marker{display:none}details.news-card>summary:before{content:"▸";color:var(--muted)}details.news-card[open]>summary:before{content:"▾"}details.news-card>summary button{margin-left:auto;padding:2px 10px;font-size:12px}details.news-card[open]>summary{margin-bottom:6px}.inventory li.bank-group{cursor:pointer;-webkit-user-select:none;user-select:none}.inventory li.bank-group .caret{color:var(--muted)}#nav li.nav-sub{padding-left:22px;font-size:.95em}@media(min-width:801px){#nav li{position:relative}#nav li.busy:after{position:absolute;left:25px;top:3px;margin:0;font-size:9px;line-height:1;text-shadow:0 0 2px #000,0 0 2px #000}#nav li.nav-sub.busy:after{left:39px}}.shop-grid .item-desc{font-size:12px;line-height:1.35;color:#b5a98e;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.shop-grid li{background:#0000002e;border-color:#3a3328;padding:8px 10px}.inventory li.bank-group{justify-content:flex-start;gap:4px}.skills .panel-head,.inventory h2{font-family:inherit;letter-spacing:0;font-size:15px}.doll{grid-template-columns:58px 170px 58px;gap:10px 12px;grid-template-areas:"head . neck" "cloak . ring" "armor . weapon" "belt . shield"}.doll-frame .doll-hero{opacity:1;filter:drop-shadow(0 6px 4px rgba(0,0,0,.6));--cell: 384px;transform:translate(-50%,-47%)}.doll-frame:after{content:"";position:absolute;left:50%;bottom:40px;width:120px;height:18px;transform:translate(-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.6),transparent);pointer-events:none}@media(max-width:380px){.doll-frame{max-width:100%;box-sizing:border-box}.doll{grid-template-columns:58px minmax(120px,170px) 58px}}.settings-dialog{max-height:calc(100dvh - 24px);overflow-y:auto}.settings-dialog .dialog-buttons{position:sticky;bottom:-18px;margin:0 -22px -18px;padding:10px 22px 14px;background:var(--panel, #1d1a15);border-top:1px solid #3a3328}.feedback-text{background:#15130f;color:var(--text);border:1px solid var(--border);border-radius:6px;padding:8px 10px}.hud-warn{pointer-events:auto;align-self:flex-start;margin-top:3px;padding:2px 8px;font-size:12px;border-radius:999px;color:#ffd0a0;background:#782814bf;border:1px solid #d0604d}.scene-lights{pointer-events:none;will-change:opacity}.lights-flicker{animation:scene-flicker 2.8s linear infinite}.lights-pulse{animation:scene-pulse 5s ease-in-out infinite alternate}@keyframes scene-flicker{0%,to{opacity:1}11%{opacity:.84}19%{opacity:.96}33%{opacity:.8}47%{opacity:1}61%{opacity:.87}74%{opacity:.97}88%{opacity:.82}}@keyframes scene-pulse{0%{opacity:.62}to{opacity:1}}.scene-mist{position:absolute;left:0;bottom:6%;width:200%;height:32%;pointer-events:none;opacity:.2;will-change:transform;background-image:radial-gradient(ellipse 14% 34% at 10% 62%,var(--mist),transparent 70%),radial-gradient(ellipse 18% 28% at 34% 48%,var(--mist),transparent 70%),radial-gradient(ellipse 12% 30% at 58% 66%,var(--mist),transparent 70%),radial-gradient(ellipse 20% 26% at 82% 52%,var(--mist),transparent 70%);background-size:50% 100%;background-repeat:repeat-x;animation:scene-mist 80s linear infinite}@keyframes scene-mist{to{transform:translate(-50%)}}.card-scene .scene-lights{animation:none}.workbench .scene:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at 50% 60%,transparent 55%,rgba(0,0,0,.4))}@media(prefers-reduced-motion:reduce){.scene-lights,.scene-mist{animation:none}}.reduce-motion .scene-mist{animation:none}body.quiet-server .leaderboard-box{display:none}.stage.mini{height:160px;cursor:pointer}.stage.mini .hero-sprite{--cell: 192px}.stage.mini .monster-sprite.small{width:64px}.stage.mini .monster-sprite.large{width:96px}.stage.mini .monster-sprite.huge{width:128px}.stage.mini .monster-sprite.hd{width:128px;height:128px}.stage.mini .actor .monster-sprite{max-height:96px}.stage.mini .actor{width:150px}.stage.mini .actor-name,.stage.mini .phase,.stage.mini .boost-chips,.stage.mini .telegraph{display:none}.stage.mini .hpbar{width:120px;height:10px}.stage.mini .hpbar span{font-size:8px;line-height:10px}.stage.mini .actors{padding-bottom:16px}.stage.mini .hud-plate small,.stage.mini .hud-orbs .orb:not([aria-label=Retreat]){display:none}.stage.mini .hud-panel{display:none}.stage.mini .stage-round{height:10px}.stage.mini .stage-round>span{font-size:8px;line-height:10px}@media(min-width:801px)and (max-height:620px){.stage.mini{height:120px}.stage.mini .hero-sprite{--cell: 192px}}@media(max-width:800px){.stage.mini .hero-sprite{--cell: 192px}}.stage .telegraph{top:auto;bottom:40px;font-size:16px;padding:2px 10px;border-radius:6px;background:#280804bf}.hud-panel{right:50%;transform:translate(50%);width:min(320px,100%)}@media(max-width:480px){.hud-panel{right:auto;transform:none;width:auto}}.orb .orb-cap{display:none}@media(min-width:801px)and (min-height:700px){.hud-orbs{gap:12px}.hud-orbs .orb{position:relative;margin-bottom:14px}.hud-orbs .orb .orb-cap{display:block;position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:2px;font-size:10px;line-height:12px;font-weight:600;white-space:nowrap;color:#e8dcc0;text-shadow:0 1px 2px #000;pointer-events:none}.stage .boost-chips{top:70px}}.stage.mini .hud-orbs .orb{margin-bottom:0}.stage.mini .hud-orbs .orb .orb-cap{display:none}.hpbar.you.healthy .fill{background:linear-gradient(#6fbf4a,#3f7f2a)}.hpbar.you.hurt .fill{background:linear-gradient(#e0a83a,#a0701f)}@media(min-width:801px){.duel-actor .hero-sprite{--cell: 256px}}.stage .monster-sprite.hd.hd-small{width:256px;height:256px}@media(min-width:801px)and (min-height:700px){.stage .monster-sprite.hd.hd-small{width:384px;height:384px}}@media(max-width:800px){.stage .monster-sprite.hd.hd-small{margin:0 -53px}.stage.mini .monster-sprite.hd.hd-small{margin:0}}.stage .actors{grid-template-rows:100%}.stage.mini .monster-sprite.hd.hd-small{width:128px;height:128px}.combat-tabs{display:flex;flex-wrap:wrap;gap:4px;margin:-4px 0 12px;padding:4px;overflow-x:auto;scrollbar-width:none;background:#00000040;border:1px solid var(--border);border-radius:0 0 8px 8px}.combat-tabs::-webkit-scrollbar{display:none}.combat-tabs button{flex:1 1 auto;display:flex;align-items:center;justify-content:center;gap:5px;padding:6px 8px;white-space:nowrap;background:transparent;border:1px solid transparent;border-radius:6px}.combat-tabs button:hover:not(.active){background:#ffffff0a}.combat-tabs button.active{border-color:var(--accent);color:var(--accent);background:#f0c94a14}.combat-tabs button .icon{width:18px;height:18px;margin:0}.combat-tabs button .lvl{color:var(--muted);font-size:12px}.combat-tabs button.busy:after{content:"●";color:#6fcf6f;font-size:9px}@media(max-width:700px){.combat-tabs{flex-wrap:wrap;margin:-2px 0 10px}.combat-tabs button{padding:5px 7px;font-size:13px}}.stage.mini .actor .monster-sprite.hd{max-height:none;margin-top:-24px}.stage.mini .actor .monster-sprite.hd.hd-small{width:192px;height:192px;margin:-56px -21px 0}@media(pointer:coarse){.shop-grid button,.shop-tabs button,button.small,.title-more{min-height:32px}}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:#8a6a3a #15110c}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#15110c;border-left:1px solid #2a2218}::-webkit-scrollbar-thumb{background:linear-gradient(90deg,#a07a40,#6e5228);border:2px solid #15110c;border-radius:6px;box-shadow:inset 0 1px #ffdc9659}::-webkit-scrollbar-thumb:hover{background:linear-gradient(90deg,#c9973f,#8a6a3a)}::-webkit-scrollbar-thumb:active{background:#d9a441}::-webkit-scrollbar-corner{background:#15110c}.stage .monster-sprite.hd.hd-native{--s: 1.5;width:calc(var(--w) * var(--s) * 1px);height:calc(var(--h) * var(--s) * 1px);max-height:none;max-width:none}@media(min-width:801px)and (min-height:700px){.stage .monster-sprite.hd.hd-native{--s: 2}}@media(max-width:480px){.stage .monster-sprite.hd.hd-native{--s: 1;position:relative;left:calc(75px - var(--w) * 1px / 2 - 8px)}}.stage.mini .monster-sprite.hd.hd-native{--s: 1;margin-top:-10px}@media(max-width:480px){.stage .hero-sprite{--cell: 160px}.stage.mini .hero-sprite{--cell: 144px}}.stage .monster-anim{--s: 1.5;--nudge: 0px;width:calc(var(--cw) * var(--s) * 1px);height:calc(var(--ch) * var(--s) * 1px);background-repeat:no-repeat;image-rendering:pixelated;flex-shrink:0;background-size:calc(var(--frames) * var(--cw) * var(--s) * 1px) calc(var(--ch) * var(--s) * 1px);background-position:calc(var(--f) * var(--cw) * var(--s) * -1px) 0;position:relative;left:calc((var(--cw) / 2 - var(--ax) - var(--aw) / 2) * var(--s) * 1px + var(--nudge));margin:calc((var(--ay) * -1) * var(--s) * 1px) 0 calc((var(--ay) + var(--ah) - var(--ch)) * var(--s) * 1px);filter:drop-shadow(0 6px 4px rgba(0,0,0,.6))}@media(min-width:801px)and (min-height:700px){.stage .monster-anim{--s: 2}.stage .monster-anim.tall{--s: 1.5}}@media(max-width:480px){.stage .monster-anim{--s: 1;--nudge: calc(75px - var(--aw) * 1px / 2 - 8px)}}.stage.mini .monster-anim{--s: 1;--nudge: 0px}.stage .monster-anim.small-foe{--s: 1}@media(min-width:801px)and (min-height:700px){.stage .monster-anim.small-foe{--s: 1.25}}@media(min-width:801px)and (max-height:699px){.stage .monster-anim{--s: 1}.stage .monster-anim.tall{--s: calc(136 / var(--ah));image-rendering:auto}.stage .monster-sprite.hd.hd-native{--s: clamp(1, calc(150 / var(--h)), 1.5)}.stage:not(.mini) .actor.foe{left:28px}}.icon.px{width:16px;height:16px;vertical-align:-3px}.icon.px.hd{image-rendering:auto}.bank-slot .icon.px,.doll-slot .icon.px,.gear-row .icon.px,.shop-grid .item-name .icon.px,.action strong .icon.px,.bank-detail-head .icon.px,.away-item .icon.px{width:32px;height:32px;image-rendering:pixelated}.gear-row .icon.px{float:left;margin:0 8px 0 0}.shop-grid .item-name:has(>.icon.px){display:flex;align-items:center}.actor.dying-clip{animation:gone-fade .5s ease-in 1.3s forwards}.reduce-motion .actor.dying-clip{animation:none}.char-sheet{container-type:inline-size}.hero-card{display:grid;grid-template-columns:112px minmax(0,1fr);grid-template-areas:"portrait info" "bars bars" "abil abil";gap:6px 10px;border:1px solid #5a4d36;border-radius:8px;padding:8px;margin-bottom:8px;background:linear-gradient(135deg,#f0c94a14,#0000002e)}.hero-portrait{grid-area:portrait;position:relative;height:136px;border-radius:6px;overflow:hidden;border:1px solid #3a3328;isolation:isolate}.hero-portrait .hero-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.hero-portrait .hero-scene:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 70%,transparent 45%,rgba(0,0,0,.45))}.hero-stand{position:absolute;left:50%;bottom:8px;transform:translate(-50%);display:flex;justify-content:center}.hero-stand .hero-sprite{position:relative;--cell: 160px;margin:calc(var(--cell) * -.3) calc(var(--cell) * -.15) calc(var(--cell) * -.2)}.hero-info{grid-area:info;min-width:0;display:flex;flex-direction:column;gap:5px;align-items:flex-start}.hero-info h2{margin:0;font-size:18px;overflow-wrap:anywhere}.hero-info p{margin:0}.hero-path{color:#e8c36a}.hero-chips{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center}.paragon-chip{color:#8fc8ff;border-color:#6fb7ff80;background:#6fb7ff1a;font-weight:600}.prestige-chip{color:#f0c94a;letter-spacing:1px}.hero-chips .title-chip{color:#ffcf6e;font-weight:600}.news-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;font-size:12px;border-radius:999px;border-color:#b8923a;background:linear-gradient(90deg,#f0c94a29,#f0c94a0a)}.news-count{background:#b8923a;color:#1a1610;border-radius:999px;padding:0 6px;font-weight:700;font-size:11px}.hero-bars{grid-area:bars;min-width:0;align-self:end}.hero-bars .bar{margin:4px 0}.hero-bars .rested-line{margin:4px 0 0}.hero-abilities{grid-area:abil;min-width:0}.hero-abilities .abilities{margin:0;gap:5px}.hero-abilities .ability{background:#0003;padding:3px 0}.hero-abilities .ability b{font-size:17px}.hero-abilities .ability span{color:var(--muted);font-size:12px}.hero-abilities .ability.raised span{color:var(--good)}.hero-abilities .stats{font-size:13px;margin:6px 0 0;gap:2px 14px}.news-dialog{max-width:560px}.news-dialog .news-row:first-of-type{border-top:none}.stat-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:8px}.stat-tile{border:1px solid var(--border);border-radius:6px;padding:6px 4px 7px;text-align:center;background:#0000002e;display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0}.stat-label{color:var(--muted);text-transform:uppercase;font-size:10.5px;letter-spacing:.04em;line-height:1.2}.stat-tile>b{font-size:21px;color:var(--accent);line-height:1.2}.stat-sub{font-size:11.5px;color:#c9bc9f;line-height:1.25;overflow-wrap:anywhere}.char-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));margin:2px 0 10px;gap:4px}.char-tabs button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:5px 2px;min-width:0}.char-tabs .tab-icon{margin:0;width:20px;height:20px;color:#c8b089}.char-tabs button.active .tab-icon{color:var(--accent)}.char-tabs .tab-label{font-size:11.5px;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-dot{position:absolute;top:2px;right:4px;color:var(--good);font-size:9px;line-height:1}.char-card{border:1px solid #3a3328;border-radius:8px;padding:8px 10px 10px;margin-bottom:10px;background:#00000024}.char-card>h3{margin:2px 0 6px;font-size:15px;color:var(--accent)}.char-card>h2{margin-top:2px}.char-card .gear-link{margin-top:4px}.char-card .spell-slots{margin-bottom:0}.char-card .class-grid{margin-top:6px}.char-card details.section{margin-top:8px}.char-card>p.muted.small:first-child{margin-top:0}.class-card.current{border-color:var(--accent);background:#f0c94a0f}.char-tab-looks .titles{margin:0 0 10px}@container (min-width: 520px){.hero-card{grid-template-columns:150px minmax(0,1fr);grid-template-areas:"portrait info" "portrait bars" "abil abil";gap:6px 14px;padding:10px}.hero-portrait{height:172px}.hero-stand .hero-sprite{--cell: 200px}.hero-info h2{font-size:20px}.stat-tiles{grid-template-columns:repeat(6,minmax(0,1fr))}.char-tabs button{flex-direction:row;gap:6px;padding:6px 10px}.char-tabs .tab-icon{width:18px;height:18px}.char-tabs .tab-label{font-size:14px}.tab-dot{position:static}.char-card{padding:8px 12px 10px}}@container (min-width: 760px){.hero-card{grid-template-columns:150px minmax(0,1fr) 270px;grid-template-areas:"portrait info abil" "portrait bars abil"}.hero-abilities{align-self:center}.hero-abilities .abilities{grid-template-columns:repeat(3,1fr)}}.abyss-card{container-type:inline-size}.abyss-map{--k: 1.5;margin:10px 0 4px;display:flex;flex-direction:column;align-items:center;gap:8px}.abyss-map-grid{position:relative;display:grid;grid-auto-flow:column;grid-template-rows:repeat(var(--rows),calc(24px * var(--k)));grid-auto-columns:calc(32px * var(--k));gap:calc(16px * var(--k)) calc(20px * var(--k));justify-content:start;max-width:100%;box-sizing:border-box;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding:calc(30px * var(--k)) calc(14px * var(--k)) calc(10px * var(--k));border:16px solid transparent;border-image:url(/sprites/abyss/map-frame.png) 16 fill / 16px repeat;image-rendering:pixelated}.abyss-room{position:relative;width:100%;height:100%;padding:0;border:0;border-radius:0;cursor:default;color:#f2e6c8;font-size:11px;line-height:1;background:url(/sprites/abyss/room-unexplored.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.abyss-room:disabled{opacity:1}.abyss-room.cleared{background-image:url(/sprites/abyss/room-cleared.png)}.abyss-room.next{background-image:url(/sprites/abyss/room-next.png);animation:abyss-next 1.6s ease-in-out infinite}.abyss-room.start{background-image:url(/sprites/abyss/room-checkpoint.png);cursor:pointer}.abyss-room.champion{background-image:url(/sprites/abyss/room-champion.png)}.abyss-room:not(.cleared):not(.next):not(.here){filter:brightness(.75)}.abyss-room.start:not(:disabled):hover{filter:brightness(1.25)}.abyss-room.here{outline:2px solid #ffd86b;outline-offset:2px}.abyss-room.link-right:after,.abyss-room.link-down:after,.abyss-room.link-up:after{content:"";position:absolute;image-rendering:pixelated}.abyss-room.link-right:after{left:100%;top:calc(10px * var(--k));width:calc(20px * var(--k));height:calc(4px * var(--k));background:url(/sprites/abyss/corridor-h.png) 0 0 / calc(16px * var(--k)) 100% repeat-x}.abyss-room.link-down:after,.abyss-room.link-up:after{left:calc(14px * var(--k));width:calc(4px * var(--k));height:calc(16px * var(--k));background:url(/sprites/abyss/corridor-v.png) 0 0 / 100% calc(16px * var(--k)) repeat-y}.abyss-room.link-down:after{top:100%}.abyss-room.link-up:after{bottom:100%}.abyss-room-n{position:absolute;right:2px;bottom:1px;pointer-events:none;text-shadow:0 0 2px #000,0 0 2px #000}.abyss-map-you{position:absolute;width:0;height:0;pointer-events:none;transition:left .9s ease-in-out,top .9s ease-in-out;z-index:1}.abyss-map-you .hero-sprite{--cell: 88px;position:absolute;left:calc(var(--cell) / -2);top:calc(var(--cell) * -.78)}.abyss-stairs{display:inline-flex;align-items:center;gap:8px;font-size:13px;padding:4px 12px 4px 6px}.abyss-stairs:before{content:"";width:48px;height:32px;background:url(/sprites/abyss/stairs-down.png) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.abyss-stairs:disabled:before{filter:grayscale(1) brightness(.6)}@keyframes abyss-next{50%{filter:brightness(1.3)}}.reduce-motion .abyss-room.next{animation:none}@container (min-width: 1040px){.abyss-map{--k: 2}.abyss-map-you .hero-sprite{--cell: 112px}}@media(max-width:480px){.abyss-map{--k: 1}.abyss-room{font-size:9px}.abyss-map-you .hero-sprite{--cell: 56px}}.icon.pxui,.icon.pxui:empty{display:inline-block;background:center / contain no-repeat;image-rendering:auto}.icon-xl.pxui,.icon.portrait.pxui{image-rendering:pixelated}.icon.pxui.emblem{filter:grayscale(1) brightness(.55)}.icon.pxui.slot-ghost{filter:grayscale(1)}.foe-icons .foe-icon{width:32px;height:32px;image-rendering:pixelated;margin-right:2px}h2,.news-card summary strong,.login .tagline{font-family:Emberford Heading,Georgia,serif;font-weight:400;letter-spacing:.02em;-webkit-font-smoothing:none;font-smooth:never}h2{font-size:32px;line-height:1.1}.login .tagline{font-size:32px;letter-spacing:.04em}.banner,.away-levelup{font-family:Emberford Heading,Georgia,serif;font-weight:400;letter-spacing:.02em;-webkit-font-smoothing:none;font-size:32px}.banner.level{font-size:48px}.banner.skill{font-size:32px}.banner.level small{font-family:system-ui,sans-serif}.float{font-family:Emberford Numbers,system-ui,sans-serif;font-weight:400;font-size:32px;-webkit-font-smoothing:none;text-shadow:2px 2px 0 #000,-2px 2px 0 #000,2px -2px 0 #000,-2px -2px 0 #000}.float.crit,.stage .float{font-size:48px}.stage .float.crit{font-size:64px}.login .logo-wrap{position:relative}.logo-embers{position:absolute;left:50%;top:4%;width:50%;height:60%;transform:translate(-50%);pointer-events:none}.logo-embers i{position:absolute;bottom:0;width:3px;height:3px;background:#ffb347;box-shadow:0 0 4px #ff7a1a;opacity:0;animation:ember-rise 3.2s linear infinite}.logo-embers i:nth-child(1){left:44%;animation-delay:0s}.logo-embers i:nth-child(2){left:52%;animation-delay:.4s}.logo-embers i:nth-child(3){left:38%;animation-delay:.9s}.logo-embers i:nth-child(4){left:58%;animation-delay:1.3s}.logo-embers i:nth-child(5){left:47%;animation-delay:1.8s}.logo-embers i:nth-child(6){left:55%;animation-delay:2.2s}.logo-embers i:nth-child(7){left:41%;animation-delay:2.6s}.logo-embers i:nth-child(8){left:50%;animation-delay:2.9s;width:2px;height:2px}.logo-embers i:nth-child(9){left:60%;animation-delay:.7s;width:2px;height:2px}@keyframes ember-rise{0%{transform:translate(0);opacity:0}15%{opacity:1}to{transform:translate(var(--dx, 8px),-110px);opacity:0}}.logo-embers i:nth-child(odd){--dx: -10px}@keyframes logo-breathe{50%{filter:drop-shadow(0 0 26px rgba(255,122,26,.7))}}.reduce-motion .logo-embers i,.reduce-motion .logo-emblem{animation:none}@media(prefers-reduced-motion:reduce){.logo-embers i,.logo-emblem{animation:none}}@media(max-width:480px){h2,.login .tagline,.banner,.banner.skill{font-size:24px}.banner.level,.stage .float{font-size:32px}.stage .float.crit{font-size:48px}}.confirm-dialog p{margin:0 0 8px;line-height:1.45}.confirm-buttons{gap:8px;margin-top:14px}.confirm-buttons button{margin:0;min-width:96px}.confirm-dialog .confirm-input{width:100%;box-sizing:border-box;margin:4px 0 2px}.hero-status{display:flex;align-items:center;gap:8px;margin:-4px 0 10px;padding:6px 10px;font-size:13px;color:#d8cdb5;background:#14110db3;border:1px solid var(--border);border-radius:6px}.hero-status.hidden{display:none}.hero-status-mark{color:var(--accent);flex-shrink:0}.hero-status-text{flex:1}.hero-status.warn{color:#ffd9a8;border-color:#b8742e;background:#50280a8c}.hero-status.warn .hero-status-mark{color:#ffb347}.hero-status button{margin:0;flex-shrink:0}.defeat-card{margin:0 0 12px;padding:10px 14px;border:1px solid #8a3a30;border-radius:8px;background:linear-gradient(#5a140f73,#1e0f0c99)}.defeat-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.defeat-head strong{color:#ff9a8a;font-size:15px}.defeat-head button{margin:0 0 0 auto}.defeat-body{display:grid;grid-template-columns:1fr 1.4fr;gap:6px 18px;margin-top:6px}.defeat-body h4{margin:4px 0;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.defeat-body ul{margin:0 0 4px;padding-left:18px;font-size:13px}.defeat-body li{margin:2px 0}.defeat-advice li{color:#f3e6c4}@media(max-width:640px){.defeat-body{grid-template-columns:1fr}.hero-status{font-size:12px;flex-wrap:wrap}.hero-status-text{flex-basis:calc(100% - 24px)}.hero-status button{margin-left:auto}}.stage .stage-warn{position:absolute;left:50%;bottom:22px;transform:translate(-50%);z-index:6;display:flex;align-items:center;gap:10px;width:min(92%,760px);box-sizing:border-box;padding:6px 10px;font-size:13px;color:#ffe2b8;pointer-events:auto;background:#3c1c06e0;border:1px solid #c8822e;border-radius:6px;box-shadow:0 2px 10px #00000080}.stage .stage-warn .hero-status-mark{color:#ffb347}.stage .stage-warn .hero-status-text{flex:1}.stage .stage-warn button{margin:0;flex-shrink:0}.stage.mini .stage-warn{bottom:14px;padding:4px 8px;font-size:12px}.stage .stage-warn .short,.stage.mini .stage-warn .full{display:none}.stage.mini .stage-warn .short{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:480px){.stage .stage-warn{font-size:11px;padding:4px 6px;gap:6px}.stage .stage-warn .full{display:none}.stage .stage-warn .short{display:block}}html:has(dialog[open]),html:has(dialog[open]) body{overflow:hidden;overscroll-behavior:none}.salvage-panel{margin:10px 0 14px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel)}.salvage-panel h3{margin:0 0 4px}.salvage-materials{display:flex;flex-wrap:wrap;gap:8px 14px;margin:8px 0}.salvage-material{display:flex;align-items:center;gap:4px}.salvage-material .icon{margin-right:0}.salvage-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.salvage-row label{font-size:13px}.salvage-row select{max-width:100%}.unique-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin-bottom:12px}.unique-card .achievement-head strong{display:flex;align-items:center;gap:6px}.unique-card.unfound .icon{filter:brightness(0) opacity(.45)}.unique-card.mythic{border-color:#ff9a3d}.unique-card.mythic.done{box-shadow:0 0 0 1px #ff9a3d inset}.unique-card{padding:8px 10px}.unique-card small{display:block;margin-top:3px}
