:root{--wood:#5b3a1e;--wood-dark:#3a2412;--wood-light:#7a5230;--stone:#8b8172;--stone-dark:#4e473e;--gold:#f4c542;--gold-dark:#a8781a;--parchment:#f3e3bf;--muted:#c9b48c;--red:#c0392b;--green:#5ad04a;--blue:#4aa0ff;--purple:#9a6ae0;--bg:#1b1410;--radius:10px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--parchment);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;margin:0;font-family:Trebuchet MS,ui-sans-serif,system-ui,sans-serif;overflow:hidden}h1,h2,h3{color:var(--gold);text-shadow:0 2px #00000080;margin:0 0 8px}h3{text-transform:uppercase;letter-spacing:.06em;margin-top:14px;font-size:16px}p{margin:4px 0}.muted{color:var(--muted);opacity:.85}.error{color:#ff8a7a}#game{inset:calc(56px + var(--safe-top)) 0 0 0;background:#120d0a;position:absolute}#game[hidden]{display:none}#ui{pointer-events:none;position:absolute;inset:0}#ui>*{pointer-events:auto}#ui>.hud{pointer-events:none}.btn{border:2px solid var(--stone);min-width:44px;min-height:44px;color:var(--parchment);font:inherit;cursor:pointer;background:linear-gradient(#6d4a2b,#45301b);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:15px;font-weight:700;transition:filter .1s,transform 50ms;display:inline-flex;box-shadow:0 3px #0006,inset 0 1px #ffffff1f}.btn:hover:not(:disabled){filter:brightness(1.15)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{border-color:var(--gold);color:#fff8e0;text-shadow:0 1px #00000080;background:linear-gradient(#d39a30,#8a5a14)}.btn.heroic{background:linear-gradient(#a3302a,#5e1612);border-color:#ff8a6a}.btn.danger{background:linear-gradient(#9a2a22,#5a1410);border-color:#d06050}.btn.big{min-height:54px;padding:0 22px;font-size:18px}.btn.small{min-height:34px;padding:0 10px;font-size:13px}.btn.icon{width:44px;padding:0;font-size:22px}.btn small{opacity:.8;font-weight:400}.panel{border:3px solid var(--stone-dark);border-radius:var(--radius);background:linear-gradient(#4a3019f5,#2c1c0ef7);padding:14px 16px;box-shadow:0 8px 24px #0000008c,inset 0 0 0 1px #ffdc9614}.pill{background:var(--red);color:#fff;vertical-align:middle;border-radius:999px;margin-left:6px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.pill.gold{background:var(--gold);color:#3a2412}.pill.heroic{background:#8a1a1a}.badge{background:radial-gradient(circle at 35% 35%, #ffe9a0, var(--gold) 60%, var(--gold-dark));color:#3a2412;border:2px solid #3a2412;border-radius:50%;place-items:center;min-width:30px;height:30px;padding:0 6px;font-weight:700;display:inline-grid}.badge.big{min-width:56px;height:56px;font-size:24px}.bar{background:#00000080;border:1px solid #0009;border-radius:6px;flex:1;min-width:80px;height:10px;overflow:hidden}.bar>div{background:linear-gradient(#ffe08a, var(--gold));height:100%;transition:width .15s}.bar.hp>div{background:linear-gradient(#8af07a,#3aa02a)}.bar.xp>div{background:linear-gradient(#c6a8ff, var(--purple))}.bar.small{min-width:50px;height:6px}.coin{border-radius:50%;flex:none;width:18px;height:18px;display:inline-block}.coin.gold{background:radial-gradient(circle at 35% 35%, #fff3a8, var(--gold) 55%, var(--gold-dark));box-shadow:0 0 0 1px #6a4a10}.coin.crystal{background:linear-gradient(135deg,#e0f4ff,#5ab0ff 50%,#2a5ad0);border-radius:3px;transform:rotate(45deg)scale(.85);box-shadow:0 0 0 1px #1a3a8a}.heart{background:radial-gradient(circle at 35% 35%, #ff9a8a, var(--red) 60%, #6e1a12);border-radius:50%;width:18px;height:18px;display:inline-block}.currency{align-items:center;gap:6px;font-weight:700;display:inline-flex}.topbar .currency{background:#00000059;border-radius:999px;padding:4px 12px;font-size:16px}.stars .star{color:#00000073;text-shadow:0 0 1px #fff3}.portrait{border:3px solid var(--gold);border-radius:50%;flex:none;place-items:center;width:48px;height:48px;font-size:24px;display:inline-grid;box-shadow:inset 0 -6px 12px #00000059}.portrait.big{width:84px;height:84px;font-size:42px}.chip{border:2px solid var(--stone-dark);color:var(--parchment);font:inherit;background:#0000004d;border-radius:999px;align-items:center;gap:4px;padding:6px 10px;font-size:14px;display:inline-flex}.chip.toggle{cursor:pointer}.chip.toggle.on{border-color:var(--gold);background:#f4c54233}.chip:disabled{opacity:.4}.spacer,.grow{flex:1}.center-row{flex-wrap:wrap;justify-content:center;gap:10px;margin:12px;display:flex}.unlock-hint{border-left:3px solid var(--gold);background:#f4c54224;border-radius:6px;padding:6px 10px}.screen{padding-bottom:var(--safe-bottom);background:radial-gradient(at 50% 0,#78502859,#0000 60%),linear-gradient(#2a1d14,#120d0a);flex-direction:column;display:flex;position:absolute;inset:0;overflow-y:auto}.topbar{z-index:5;min-height:60px;padding:calc(8px + var(--safe-top)) 14px 8px;background:linear-gradient(var(--wood), var(--wood-dark));border-bottom:3px solid var(--stone);align-items:center;gap:12px;display:flex;position:sticky;top:0;box-shadow:0 3px 8px #00000080}.commander{align-items:center;gap:8px;display:flex}.screen-title{margin:0;font-size:20px}.screen-hint{text-align:center;color:var(--muted);margin:10px 16px 0}.menu-layout{flex:1;grid-template-columns:1fr minmax(280px,360px);align-items:start;gap:24px;padding:24px;display:grid}.title-block{flex-direction:column;align-items:center;padding-top:4vh;display:flex}.logo{letter-spacing:.04em;background:linear-gradient(#fff3c0, var(--gold) 45%, #b06a10);color:#0000;text-shadow:none;filter:drop-shadow(0 4px #3a2412)drop-shadow(0 8px 14px #0009);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(48px,9vw,96px)}.tagline{color:var(--muted);text-align:center;margin-bottom:28px}.menu-buttons{flex-direction:column;gap:12px;width:min(360px,90vw);display:flex}.menu-buttons .btn{justify-content:space-between}.side h3:first-child{margin-top:0}.mission{border-bottom:1px solid #ffffff14;padding:8px 0}.mission.claimed{opacity:.5}.mission-text{margin-bottom:4px}.mission-foot{align-items:center;gap:10px;margin-top:6px;font-size:13px;display:flex}.mission-foot>:first-child{flex:1}.pass-mini{cursor:pointer;align-items:center;gap:10px;display:flex}.campaign-layout{flex:1;grid-template-columns:1fr minmax(300px,400px);gap:16px;min-height:0;padding:16px;display:grid}.campaign-map{border-radius:var(--radius);border:4px solid var(--stone-dark);background:radial-gradient(circle at 20% 70%,#5a8c3c99,#0000 30%),radial-gradient(circle at 60% 30%,#466e3299,#0000 35%),radial-gradient(circle at 88% 25%,#6e4632b3,#0000 25%),linear-gradient(135deg,#6a8a4a,#4a6a3a 50%,#6a5a3a);min-height:420px;position:relative;overflow:hidden;box-shadow:inset 0 0 60px #00000080}.campaign-path{width:100%;height:100%;position:absolute;inset:0}.campaign-path polyline{fill:none;stroke:#f0d296b3;stroke-width:.8px;stroke-dasharray:2 1.5;vector-effect:non-scaling-stroke;stroke-width:4px}.level-node{border:4px solid var(--stone);color:#fff;width:64px;height:64px;font:inherit;cursor:pointer;background:radial-gradient(circle at 35% 30%,#a08a6a,#5a4a3a);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-weight:700;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 6px 12px #00000080}.level-node.cleared{border-color:var(--gold)}.level-node.selected{transform:translate(-50%,-50%)scale(1.15);box-shadow:0 0 0 4px #f4c54280,0 6px 16px #0009}.level-node.locked{filter:grayscale()brightness(.6);cursor:default}.node-num{text-shadow:0 2px #000;font-size:20px}.level-stats,.level-stars{flex-wrap:wrap;gap:16px;margin:8px 0;display:flex}.loadout-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.hero-chip{border:2px solid var(--gold);color:var(--parchment);font:inherit;cursor:pointer;background:#0000004d;border-radius:999px;align-items:center;gap:8px;padding:6px 12px 6px 6px;display:flex}.hero-icon{font-size:22px}.towers-row{gap:6px;display:flex}.spell-pick{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.play-row{gap:10px;margin-top:18px;display:flex}.play-row .btn{flex:1}.heroes-layout{grid-template-columns:minmax(200px,260px) minmax(0,1fr);gap:16px;padding:16px;display:grid}.hero-list{flex-direction:column;gap:10px;display:flex}.hero-card{text-align:left;border-radius:var(--radius);border:3px solid var(--stone-dark);color:var(--parchment);font:inherit;cursor:pointer;background:#0000004d;grid-template-rows:auto auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;padding:10px;display:grid;position:relative}.hero-card .portrait{grid-row:span 3}.hero-card.selected{border-color:var(--gold)}.hero-card.unowned .portrait{filter:grayscale(.8)}.hero-card .pill{position:absolute;top:8px;right:8px}.hero-head{align-items:center;gap:16px;display:flex}.hero-level{align-items:center;gap:10px;max-width:420px;display:flex}.hero-stats{flex-wrap:wrap;gap:8px 18px;margin:14px 0;display:flex}.ability-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;display:grid}.ability-row{background:#00000040;border-radius:8px;gap:10px;padding:10px;display:flex}.ability-icon{border:2px solid var(--stone);background:#00000059;border-radius:8px;flex:none;place-items:center;width:60px;height:60px;font-size:28px;display:grid}.research-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;padding:16px;display:grid}.research-col h3{margin-top:0}.research-node{background:#00000047;border:2px solid #0000;border-radius:8px;margin-bottom:10px;padding:10px}.research-node p{color:var(--muted);font-size:13px}.research-node.maxed{border-color:var(--gold)}.research-node.locked{opacity:.55}.pips{gap:4px;margin:6px 0;display:flex}.pip{border:2px solid var(--stone);background:#0006;border-radius:50%;width:14px;height:14px}.pip.on{background:var(--gold);border-color:#fff3c0}.pass-header{flex-wrap:wrap;align-items:center;gap:16px;margin:16px;display:flex}.premium-offer ul{color:var(--muted);margin:8px 0 0;padding-left:18px;font-size:13px}.pass-track{gap:8px;padding:8px 16px 24px;display:flex;overflow-x:auto}.pass-tier{flex-direction:column;flex:none;gap:6px;width:130px;display:flex}.tier-num{text-align:center;background:#0006;border-radius:6px;padding:4px;font-weight:700}.pass-tier.reached .tier-num{background:var(--gold);color:#3a2412}.reward-cell{border:2px dashed #ffffff14;border-radius:8px;height:120px}.reward{text-align:center;border:2px solid var(--stone-dark);background:#00000059;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:4px;height:100%;padding:6px;display:flex}.reward-cell.premium .reward{border-color:var(--gold-dark)}.reward.claimed{opacity:.45}.reward.locked{filter:grayscale(.6)}.reward-icon{font-size:26px}.reward-label{font-size:12px;line-height:1.2}.shop-layout{grid-template-columns:1fr 1fr;gap:16px;padding:16px;display:grid}.shop-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.shop-item{border:2px solid var(--stone-dark);text-align:center;background:#0000004d;border-radius:8px;flex-direction:column;align-items:center;gap:8px;padding:14px 10px;display:flex;position:relative}.shop-item .pill{position:absolute;top:-8px}.shop-item.wide{text-align:left;flex-direction:row;justify-content:space-between;margin-bottom:8px}.shop-item.wide strong{flex:1}.shop-icon{font-size:36px}.hud{pointer-events:none;position:absolute;inset:0}.hud>*{pointer-events:auto}.hud-top{height:calc(56px + var(--safe-top));padding:var(--safe-top) 12px 0;background:linear-gradient(var(--wood), var(--wood-dark));border-bottom:3px solid var(--stone);align-items:center;gap:8px;display:flex;position:absolute;top:0;left:0;right:0;box-shadow:0 3px 8px #00000080}.hud-top .btn{min-height:40px}.stat{background:#00000059;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:18px;font-weight:700;display:flex}.stat .label{text-transform:uppercase;opacity:.75;font-size:11px}.level-name{color:var(--muted);margin-left:8px;font-weight:700}.wave-btn{min-width:170px}.hero-panel{left:10px;bottom:calc(10px + var(--safe-bottom));border:2px solid var(--stone-dark);background:#1e140ce0;border-radius:999px 14px 14px 999px;align-items:center;gap:10px;padding:8px 12px 8px 8px;display:flex;position:absolute;box-shadow:0 6px 18px #00000080}.hud-portrait{cursor:pointer;width:64px;height:64px;padding:0;font-size:32px;position:relative}.hud-portrait.active{box-shadow:0 0 0 4px #f4c54299}.hud-portrait.dead{filter:grayscale()brightness(.6)}.hud-portrait .lvl{background:var(--gold);color:#3a2412;border:2px solid #3a2412;border-radius:50%;place-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:grid;position:absolute;bottom:-6px;right:-6px}.hud-portrait .respawn{color:#fff;text-shadow:0 2px 2px #000;place-items:center;font-size:24px;font-weight:700;display:grid;position:absolute;inset:0}.hero-bars{flex-direction:column;gap:4px;width:130px;display:flex}.hero-bars .bar{min-width:0}.abilities,.spell-bar{gap:8px;display:flex}.spell-bar{right:10px;bottom:calc(10px + var(--safe-bottom));border:2px solid var(--stone-dark);background:#1e140ce0;border-radius:14px;padding:8px;position:absolute}.cd-btn{border:3px solid var(--c);background:radial-gradient(circle at 35% 30%, #ffffff40, transparent 60%), var(--c);color:#fff;cursor:pointer;border-radius:12px;width:54px;height:54px;padding:0;font-size:24px;position:relative;overflow:hidden;box-shadow:0 3px #00000080}.cd-btn.active{box-shadow:0 0 0 3px var(--gold), 0 0 14px var(--gold);border-color:#fff}.cd-btn.locked{filter:grayscale()brightness(.6);cursor:default}.cd-label{z-index:1;text-shadow:0 2px 2px #0009;position:relative}.cd-sweep{z-index:2;background:conic-gradient(#000000a6 var(--cd), transparent 0);position:absolute;inset:0}.hotkey{z-index:3;opacity:.8;font-size:10px;font-weight:700;position:absolute;bottom:0;right:2px}.tower-panel{right:92px;bottom:calc(10px + var(--safe-bottom));width:min(500px,100vw - 520px);min-width:300px;padding:10px 14px;position:absolute}.tower-head{align-items:center;gap:10px;display:flex}.tower-head>div{flex:1}.tower-icon{font-size:30px}.tower-stats{flex-wrap:wrap;gap:14px;margin:6px 0;font-size:14px;display:flex}.tower-actions{flex-wrap:wrap;gap:8px;display:flex}.spec-desc{margin-top:6px;font-size:12px}.toast{bottom:calc(84px + var(--safe-bottom));border:2px solid var(--gold-dark);text-align:center;pointer-events:none;background:#140c06e6;border-radius:8px;max-width:min(600px,90vw);padding:8px 16px;font-weight:700;position:absolute;left:50%;transform:translate(-50%)}.hint{top:calc(116px + var(--safe-top));color:#3a2412;pointer-events:none;background:#f4c542e6;border-radius:999px;padding:6px 14px;font-weight:700;position:absolute;left:50%;transform:translate(-50%)}.modal-backdrop{z-index:50;pointer-events:auto;background:#0009;place-items:center;display:grid;position:fixed;inset:0}.modal{text-align:center;border-color:var(--gold-dark);min-width:min(380px,92vw);max-width:92vw;max-height:calc(100vh - 24px);overflow-y:auto}.modal-buttons{flex-direction:column;gap:10px;margin-top:16px;display:flex}.victory{font-size:48px}.defeat{color:#ff7a6a;font-size:48px}.rewards{flex-wrap:wrap;justify-content:center;gap:16px;margin:12px 0;font-weight:700;display:flex}.keys{margin-top:12px;font-size:12px}@media (max-width:900px){.menu-layout,.campaign-layout,.heroes-layout,.shop-layout{grid-template-columns:1fr}.campaign-map{min-height:300px}.level-name{display:none}.wave-btn{min-width:0;font-size:13px}.hero-bars{display:none}}@media (max-height:520px){.cd-btn{width:46px;height:46px;font-size:20px}.hud-portrait{width:52px;height:52px}.tower-panel{bottom:auto;top:calc(64px + var(--safe-top))}}.online-badge{color:var(--muted);background:#00000059;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:700}.online-badge.online{color:#8af07a}.online-badge.connecting{color:var(--gold)}.pvp-layout{grid-template-columns:1.2fr 1fr;gap:16px;padding:16px;display:grid}.pvp-buttons{flex-direction:column;gap:10px;max-width:420px;margin-top:14px;display:flex}.join-row{gap:8px;display:flex}.code-input{border:2px solid var(--stone);min-height:44px;color:var(--parchment);font:inherit;-webkit-user-select:text;user-select:text;background:#0006;border-radius:8px;flex:1;padding:0 12px}.rating-box{align-items:center;gap:14px;display:flex}.leaderboard{margin:0;padding-left:22px}.leaderboard li{border-bottom:1px solid #ffffff0f;padding:4px 0}.leaderboard li span{min-width:70%;display:inline-block}.center-screen{place-items:center;display:grid}.waiting{text-align:center;min-width:320px}.room-code{color:var(--gold);-webkit-user-select:all;user-select:all;font-size:20px}.spinner{border:5px solid #f4c54240;border-top-color:var(--gold);border-radius:50%;width:46px;height:46px;margin:0 auto 12px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.duel-top{justify-content:space-between}.duel-side{align-items:center;gap:8px;display:flex}.round{color:var(--gold);font-size:18px;font-weight:700}.send-panel{right:10px;bottom:calc(10px + var(--safe-bottom));padding:8px 10px;position:absolute}.send-panel h4{text-transform:uppercase;color:var(--gold);margin:0 0 6px;font-size:12px}.send-grid{grid-template-columns:repeat(5,54px);gap:6px;display:grid}.send-btn{border:2px solid var(--stone);color:#fff;cursor:pointer;height:58px;font:inherit;background:linear-gradient(#6a3a2a,#3a1e14);border-radius:8px;grid-template-rows:1fr auto;padding:2px;display:grid;position:relative}.send-btn:disabled{opacity:.45;cursor:default}.send-icon{font-size:22px}.send-count{font-size:10px;font-weight:700;position:absolute;top:1px;left:3px}.send-cost{color:var(--gold);font-size:12px;font-weight:700}.send-eco{color:#8af07a;font-size:10px;font-weight:700;position:absolute;top:1px;right:3px}.send-eco.neg{color:#ff7a6a}@media (max-width:900px){.pvp-layout{grid-template-columns:1fr}.duel-side strong{display:none}.send-grid{grid-template-columns:repeat(5,46px)}}.volume{align-items:center;gap:10px;display:flex}.volume input{accent-color:var(--gold);flex:1}.tutorial-tip{top:calc(68px + var(--safe-top));border-color:var(--gold);align-items:center;gap:12px;max-width:min(640px,92vw);padding:10px 14px;animation:.3s ease-out tip-in;display:flex;position:absolute;left:50%;transform:translate(-50%)}.tip-icon{font-size:24px}@keyframes tip-in{0%{opacity:0;transform:translate(-50%,-10px)}}@media (max-height:520px){html{font-size:14px}.topbar{min-height:46px;padding-top:calc(4px + var(--safe-top));padding-bottom:4px}.btn{min-height:38px;font-size:14px}.btn.big{min-height:42px;font-size:15px}.menu-layout,.campaign-layout,.pvp-layout{grid-template-columns:minmax(0,1fr) minmax(260px,38%);gap:10px;padding:10px}.heroes-layout{grid-template-columns:minmax(150px,180px) minmax(0,1fr);gap:10px;padding:10px}.shop-layout{grid-template-columns:minmax(0,1fr);gap:10px;padding:10px}.title-block{padding-top:0}.logo{font-size:52px}.tagline{margin-bottom:10px}.menu-buttons{grid-template-columns:1fr 1fr;gap:8px;width:min(520px,100%);display:grid}.panel{padding:10px 12px}.side,.level-panel{max-height:calc(100vh - 70px);overflow-y:auto}.campaign-map{height:calc(100vh - 70px);min-height:0}.level-node{width:52px;height:52px}.level-panel h2{font-size:18px}.play-row{background:linear-gradient(#0000,#2c1c0e 30%);margin-top:8px;padding:8px 0;position:sticky;bottom:-10px}h3{margin-top:8px;font-size:13px}.hud-top{height:calc(46px + var(--safe-top))}#game{inset:calc(46px + var(--safe-top)) 0 0 0}.stat{padding:2px 8px;font-size:15px}.hero-panel{padding:4px 8px 4px 4px}.hero-bars{display:none}.send-grid{grid-template-columns:repeat(5,42px)}.send-btn{height:48px}.send-icon{font-size:18px}}.act-tabs{z-index:2;gap:6px;display:flex;position:absolute;top:10px;left:10px}.campaign-map.act-2{background:radial-gradient(circle at 20% 70%,#505a4699,#0000 30%),radial-gradient(circle at 60% 30%,#3c465099,#0000 35%),radial-gradient(circle at 88% 25%,#465a8cb3,#0000 25%),linear-gradient(135deg,#4a5240,#3a4048 50%,#2e3444)}.level-node.boss{border-color:#c0392b;width:76px;height:76px}.settings-layout{grid-template-columns:1fr 1fr;gap:16px;padding:16px;display:grid}@media (max-width:900px){.settings-layout{grid-template-columns:1fr}}.daily-grid{grid-template-columns:repeat(7,1fr);gap:6px;margin:10px 0;display:grid}.daily-day{border:2px solid var(--stone-dark);background:#0000004d;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex}.daily-day.done{opacity:.45}.daily-day.today{border-color:var(--gold);box-shadow:0 0 12px #f4c54280}.daily-icon{font-size:24px}.collection-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;padding:16px;display:grid}.cosmetic{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.cosmetic.locked{opacity:.6}.cosmetic.equipped{border-color:var(--gold)}.cosmetic-swatch{border:3px solid var(--gold-dark);border-radius:50%;width:44px;height:44px;box-shadow:inset 0 -6px 10px #00000059}.talent-list{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin-bottom:8px;display:grid}.talent{background:#00000040;border-radius:8px;flex-direction:column;gap:4px;padding:8px;display:flex}.talent.locked{opacity:.55}.ui-icon{object-fit:contain;pointer-events:none;display:block}.portrait .portrait-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.emote-bar{top:calc(64px + var(--safe-top));gap:4px;display:flex;position:absolute;left:10px}.emote-bubble{color:#2a1a10;pointer-events:none;background:#fff8e0f2;border-radius:16px;padding:10px 16px;font-size:20px;font-weight:700;animation:.25s ease-out tip-in;position:absolute;top:30%}.emote-bubble.side-0{left:18%}.emote-bubble.side-1{left:66%}.autoplay-title{color:var(--gold)}.autoplay-log{right:10px;top:calc(66px + var(--safe-top));width:340px;max-height:calc(100vh - 90px);font-size:13px;position:absolute;overflow-y:auto}.autoplay-log table{border-collapse:collapse;width:100%}.autoplay-log td{border-bottom:1px solid #ffffff0f;padding:3px 4px}.autoplay-log tr.lost td:nth-child(3){color:#ff8a7a}.hero-stance{color:var(--gold);font-weight:700}.tower-buffs{color:#ffe08a;margin:2px 0 6px;font-size:13px}.currency.essence,.essence{color:#e8c8ff}.arsenal-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;padding:16px;display:grid}.evo-card.locked{opacity:.55}.evo-card.rank-5{border-color:var(--gold);box-shadow:0 0 18px #f4c54259,0 8px 24px #0000008c}.evo-head{align-items:center;gap:10px;display:flex}.evo-rank{text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:700}.evo-rank.r3{color:var(--gold)}.evo-rank.r4{color:#c890ff}.evo-rank.r5{color:#ffb347}.evo-perks{margin:6px 0 10px;padding-left:0;font-size:13px;list-style:none}.evo-perks li{opacity:.6;padding:3px 0}.evo-perks li.got{opacity:1}.story-backdrop{z-index:80;pointer-events:auto;cursor:pointer;background:linear-gradient(#00000026 40%,#000000bf);justify-content:center;align-items:flex-end;padding:0 12px 24px;display:flex;position:absolute;inset:0}.story-box{border-width:3px;align-items:flex-start;gap:16px;width:min(760px,100%);animation:.25s ease-out story-in;display:flex}.story-portrait{border-radius:12px;flex:none;place-items:center;width:88px;height:88px;font-size:48px;display:grid;overflow:hidden;box-shadow:inset 0 0 0 3px #00000059}.story-portrait .portrait-img{object-fit:cover;width:100%;height:100%}.story-text{text-align:left;flex:1}.story-name{margin-bottom:4px;font-size:18px;font-weight:700}.story-text p{margin:0 0 10px;font-size:17px;line-height:1.4}.story-foot{justify-content:space-between;align-items:center;font-size:13px;display:flex}.act-card{background:radial-gradient(#140c06,#000);align-items:center}.act-card-inner{text-align:center;max-width:640px;animation:.6s ease-out story-in}.act-card-inner .act-title{letter-spacing:.4em;text-transform:uppercase;color:var(--gold)}.act-card-inner h1{margin:6px 0 16px;font-size:40px}.act-card-inner p{margin-bottom:24px;font-size:18px;line-height:1.6}@keyframes story-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.challenge-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;padding:0 16px 16px;display:grid}.challenge-card{border-width:3px;flex-direction:column;gap:10px;display:flex}.challenge-card.tier-0{border-color:#b0703a}.challenge-card.tier-1{border-color:#c0c8d0}.challenge-card.tier-2{border-color:var(--gold)}.challenge-card.tier-3{border-color:#7ae0ff;box-shadow:0 0 18px #7ae0ff40}.challenge-card.locked{opacity:.6}.challenge-card.done{filter:saturate(.6)}.challenge-tier{text-transform:uppercase;letter-spacing:.2em;color:var(--gold);font-size:12px}.challenge-card h2{margin:0}.challenge-rules{flex-direction:column;flex:1;gap:8px;margin:0;padding:0;list-style:none;display:flex}.challenge-rules li{align-items:flex-start;gap:10px;display:flex}.rule-icon{font-size:24px}.challenge-reward{font-weight:700}.bestiary-layout{flex:1;gap:16px;min-height:0;padding:0 16px 16px;display:flex}.bestiary-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));align-content:start;gap:8px;display:grid;overflow-y:auto}.bestiary-cell{aspect-ratio:1;cursor:pointer;background:#0000004d;border:2px solid #ffffff1f;border-radius:10px;place-items:center;display:grid}.bestiary-cell.selected{border-color:var(--gold)}.bestiary-cell.boss{box-shadow:inset 0 0 0 2px #8a1a1a}.bestiary-cell.unknown{opacity:.5}.enemy-thumb{place-items:center;font-size:28px;font-weight:700;display:grid}.enemy-thumb>span{image-rendering:auto;background-repeat:no-repeat;display:block}.enemy-thumb.shape{color:#fff;border-radius:50%;min-width:48px;min-height:48px}.bestiary-card{text-align:center;flex-direction:column;align-items:center;width:min(360px,40vw);display:flex;overflow-y:auto}.bestiary-traits{text-align:left;flex-direction:column;gap:6px;padding-left:0;list-style:none;display:flex}.path-list{flex-direction:column;gap:8px;margin-bottom:8px;display:flex}.path-tier{grid-template-columns:64px 1fr 1fr;align-items:stretch;gap:8px;display:grid}.path-tier.locked{opacity:.55}.path-level{color:var(--gold);background:#00000040;border-radius:8px;place-items:center;font-weight:700;display:grid}.path-option{text-align:left;color:inherit;font:inherit;cursor:pointer;background:#00000040;border:2px solid #ffffff1f;border-radius:8px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.path-option small{opacity:.8}.path-option.on{border-color:var(--gold);background:#f4c54226}.path-option:disabled{cursor:default}.relic-slots{justify-content:center;gap:12px;padding:0 16px;display:flex}.relic-slot{border:3px solid var(--gold);background:#00000059;border-radius:14px;place-items:center;width:64px;height:64px;font-size:34px;display:grid}.relic-slot.locked{opacity:.6;border-color:#555;font-size:22px}.relic-slot .muted{font-size:12px}.relic-card{flex-direction:column;gap:8px;display:flex}.relic-card.locked{opacity:.6}.relic-card.equipped{border-color:var(--gold);box-shadow:0 0 14px #f4c5424d}.relic-icon{flex:none;place-items:center;width:68px;height:68px;font-size:40px;display:grid}.relic-actions{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.relic-actions>.btn{flex-wrap:wrap;flex-shrink:0;max-width:100%;padding-block:6px}.boss-bars{top:calc(64px + var(--safe-top));pointer-events:none;flex-direction:column;gap:6px;width:min(560px,70vw);animation:.4s ease-out tip-in;display:flex;position:absolute;left:50%;transform:translate(-50%)}.boss-name{text-align:center;color:#ffb0a0;text-shadow:0 2px 2px #000;font-weight:700}.boss-name small{color:var(--muted,#c8b89a);margin-left:6px;font-weight:400}.boss-track{background:#140806d9;border:2px solid #2a1a10;border-radius:7px;height:14px;position:relative;overflow:hidden;box-shadow:0 0 10px #c8281480}.boss-hp{background:linear-gradient(#e8402a,#8a1a10);transition:width .15s linear;position:absolute;inset:0 auto 0 0}.boss-shield{opacity:.9;background:linear-gradient(#d0f0ff,#5aa8e8);transition:width .15s linear;position:absolute;inset:0 auto 50% 0}.mechanic-tip{bottom:calc(132px + var(--safe-bottom,0px));border-color:var(--gold);align-items:center;gap:12px;max-width:min(560px,92vw);padding:10px 14px;animation:.3s ease-out tip-in;display:flex;position:absolute;left:50%;transform:translate(-50%)}.mechanic-tip p{margin:4px 0 0;font-size:.92em}.mechanic-tip .tip-icon{font-size:2em}.pill.attention{color:#fff;background:#e8402a;animation:1.6s ease-in-out infinite attention-pulse}@keyframes attention-pulse{50%{transform:scale(1.18)}}.badge.frame_bronze{box-shadow:0 0 0 3px #b07a40}.badge.frame_gold{box-shadow:0 0 0 3px #f4c542,0 0 8px #f4c542}.badge.frame_crystal{box-shadow:0 0 0 3px #8ad8ff,0 0 10px #8ad8ff}.badge.frame_obsidian{box-shadow:0 0 0 3px #2a1a20,0 0 0 5px #e8502a}.badge.frame_centenario,.cosmetic-art.frame_centenario{border-color:#ffe3a0;border-radius:50%;position:relative;box-shadow:0 0 0 3px #b88937,0 0 0 5px #5b3818,0 0 12px #e8b84ca6}.badge.frame_centenario:after,.cosmetic-art.frame_centenario:after{content:"100";z-index:1;color:#211307;font:bold 9px/11px var(--font-display);text-shadow:0 1px #ffebac80;pointer-events:none;background:linear-gradient(#dcb65e,#8d5a20);border:1px solid #ffe3a0;border-radius:3px;padding:0 3px;position:absolute;bottom:-3px;left:50%;transform:translate(-50%)}.cosmetic-art.frame_centenario:after{padding:0 5px;font-size:12px;line-height:15px;bottom:1px}.challenge-card.tier-4{border-color:#b08aff;box-shadow:0 0 22px #9664ff59}.rankings-panel{width:calc(100% - 32px);max-width:560px;margin:12px auto}.leaderboard li.me{color:var(--gold);font-weight:700}.privacy-text{text-align:left;max-height:60vh;padding-right:8px;overflow-y:auto}.privacy-text h3{margin:14px 0 4px}.tabs{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px;display:flex}.achievement-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px;padding:16px;display:grid;overflow-y:auto}.achievement{align-items:center;gap:12px;display:flex}.achievement.ready{border-color:var(--gold);box-shadow:0 0 12px #f4c54259}.achievement.claimed{opacity:.55}.achievement-icon{text-align:center;width:44px;font-size:2em}.achievement-body{flex-direction:column;flex:1;gap:4px;display:flex}.achievement-reward{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.league-list{flex-direction:column;gap:4px;margin:8px 0;padding:0;list-style:none;display:flex}.league-list li{border-radius:6px;justify-content:space-between;padding:4px 8px;display:flex}.league-list li.me{color:var(--gold);background:#f4c54226}.badge.frame_void{box-shadow:0 0 0 3px #8a6aff,0 0 12px #c0a0ff}.event-banner{border:1px solid var(--gold-dark);text-align:center;background:#140c0699;border-radius:8px;max-width:560px;margin:0 auto 12px;padding:6px 12px;font-size:.9em}.event-banner.active{border-color:var(--gold);animation:3s ease-in-out infinite attention-pulse;box-shadow:0 0 14px #f4c54259}.campaign-map.act-3{background:radial-gradient(circle at 25% 65%,#3c6e3c99,#0000 30%),radial-gradient(circle at 65% 30%,#5a3c6e80,#0000 35%),radial-gradient(circle at 90% 20%,#78327899,#0000 25%),linear-gradient(135deg,#2e4a2e,#2a3a2a 50%,#3a2a44)}.campaign-map.act-4{background:radial-gradient(circle at 20% 70%,#6e5a4680,#0000 30%),radial-gradient(circle at 60% 30%,#a0461e73,#0000 35%),radial-gradient(circle at 90% 25%,#dc50148c,#0000 25%),linear-gradient(135deg,#4a4038,#3a2c26 50%,#2a1814)}.campaign-map.act-5{background:radial-gradient(circle at 20% 70%,#5046a073,#0000 30%),radial-gradient(circle at 60% 25%,#8c64dc59,#0000 35%),radial-gradient(circle at 92% 15%,#c8b4ff59,#0000 20%),linear-gradient(135deg,#1e1a34,#141024 50%,#0a0814)}.map-deco{opacity:.55;pointer-events:none;filter:drop-shadow(0 3px 2px #00000080);-webkit-user-select:none;user-select:none;position:absolute;transform:translate(-50%,-50%)}.unlock-hint .ui-icon{vertical-align:-4px;display:inline-block}img.glyph{vertical-align:-.2em;object-fit:contain;display:inline-block}:root{--font-display:"Cinzel", "Trajan Pro", Georgia, serif;--font-body:"Alegreya Sans", "Trebuchet MS", system-ui, sans-serif;--ink:#120c08;--leather:#2b1d13;--leather-2:#3a2718;--gilt:#e9c46a;--gilt-bright:#ffe7a3;--gilt-dark:#8c6420;--steel:#6f6a63;--glow:0 0 18px #ffc45a59;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}html,body{font-family:var(--font-body);letter-spacing:.01em;-webkit-font-smoothing:antialiased;background:var(--ink);font-size:16px}h1,h2,h3,.screen-title,.logo,.level-name,.act-title,.story-name,.boss-name{font-family:var(--font-display);letter-spacing:.04em;font-weight:700}h1,h2{background:linear-gradient(180deg, var(--gilt-bright) 10%, var(--gilt) 55%, var(--gilt-dark) 100%);color:#0000;text-shadow:none;filter:drop-shadow(0 2px #000000b3)drop-shadow(0 0 10px #ffbe5026);-webkit-background-clip:text;background-clip:text}h3{letter-spacing:.16em;color:var(--gilt);align-items:center;gap:10px;font-size:13px;display:flex}h3:after{content:"";background:linear-gradient(90deg,#e9c46a99,#0000);flex:1;height:1px}.muted{color:#c8b28a}.screen{background:radial-gradient(ellipse 80% 60% at 50% -10%, #aa6e3247, transparent 70%), radial-gradient(ellipse at 50% 120%, #000000d9, transparent 60%), var(--grain), linear-gradient(180deg, #24180f 0%, #170f0a 60%, #0d0907 100%);background-blend-mode:normal, normal, overlay, normal}.screen:before{content:"";pointer-events:none;z-index:0;position:fixed;inset:0;box-shadow:inset 0 0 160px #000000bf}.screen>*{z-index:1;position:relative}.screen{overflow-x:hidden}.screen>.topbar{z-index:6}.screen>.modal-backdrop{z-index:50;position:fixed}.topbar{background:linear-gradient(180deg, #ffe6aa0f, transparent 40%), var(--grain), linear-gradient(180deg, #3a2716, #1c120b);background-blend-mode:normal, overlay, normal;box-shadow:0 1px 0 var(--gilt-dark), 0 2px 0 #0a0604, 0 3px 0 #e9c46a59, 0 10px 24px #0009;border-bottom:none}.topbar .screen-title{color:var(--gilt-bright);text-shadow:0 2px #000,0 0 12px #ffbe5040;font-size:19px}.topbar .currency{font-family:var(--font-display);color:#fff3d6;background:linear-gradient(#0f0a07,#23170e);border:1px solid #0009;border-radius:999px;padding:3px 12px 3px 6px;font-size:15px;box-shadow:inset 0 1px 3px #000c,0 1px #e9c46a40}.coin.gold,.coin.crystal,.heart{width:24px;height:24px;box-shadow:none;filter:drop-shadow(0 1px 1px #0009);background:50%/contain no-repeat;border-radius:0;transform:none}.coin.gold{background-image:url(/assets/icons/icon_gold.webp)}.coin.crystal{background-image:url(/assets/icons/icon_crystal.webp)}.heart{background-image:url(/assets/icons/icon_heart.webp)}.panel{background:linear-gradient(180deg, #ffe6aa0d, transparent 30%), var(--grain), linear-gradient(180deg, #33231a, #1f150e);background-blend-mode:normal, overlay, normal;border:1px solid #0b0705;border-radius:8px;position:relative;box-shadow:inset 0 0 0 1px #e9c46a52,inset 0 0 0 3px #00000059,inset 0 1px 0 4px #ffe6aa0a,0 10px 30px #0000008c}.panel:before,.panel:after{content:"";pointer-events:none;border-color:var(--gilt);opacity:.8;border-style:solid;width:14px;height:14px;position:absolute}.panel:before{border-width:2px 0 0 2px;border-top-left-radius:4px;top:4px;left:4px}.panel:after{border-width:0 2px 2px 0;border-bottom-right-radius:4px;bottom:4px;right:4px}.btn{font-family:var(--font-display);letter-spacing:.04em;color:#f6e6c4;text-shadow:0 1px #000;background:linear-gradient(#fff0c824,#0000 45%,#00000040),linear-gradient(#5a3f27,#3a2717);border:1px solid #0b0705;border-radius:7px;font-weight:700;transition:filter .12s,transform 60ms,box-shadow .12s;position:relative;box-shadow:inset 0 0 0 1px #e9c46a47,inset 0 1px 0 1px #fff0c814,0 3px #0a0604,0 5px 10px #00000073}.btn:hover:not(:disabled){filter:brightness(1.12);box-shadow:inset 0 0 0 1px #ffdc8c8c,inset 0 1px 0 1px #fff0c81a,0 3px #0a0604,0 5px 14px #00000080,0 0 14px #ffbe502e}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 0 0 1px #e9c46a4d,0 1px #0a0604}.btn:disabled{opacity:.5;filter:grayscale(.6)}.btn.primary{color:#2a1606;text-shadow:0 1px #fff0c899;background:linear-gradient(#ffffff59,#0000 45%,#783c0040),linear-gradient(#ffd978,#e0a234 55%,#a86a16);box-shadow:inset 0 0 0 1px #fff5c8b3,inset 0 -2px #783c0066,0 3px #4a2a06,0 6px 14px #00000080,0 0 18px #ffbe5040}.btn.primary:hover:not(:disabled){box-shadow:inset 0 0 0 1px #fffadce6,inset 0 -2px #783c0066,0 3px #4a2a06,0 6px 16px #00000080,0 0 26px #ffc85a73}.btn.heroic,.btn.danger{color:#ffe6dc;background:linear-gradient(#ffdcc82e,#0000 45%,#0000004d),linear-gradient(#b23a2c,#6a1610);box-shadow:inset 0 0 0 1px #ffa08280,0 3px #2a0604,0 5px 12px #00000080}.btn small{font-family:var(--font-body);letter-spacing:0}.btn:disabled,.btn.cant{color:#9a8c76;text-shadow:0 1px #000;filter:none;opacity:.85;background:linear-gradient(#3a3029,#241d18);border-color:#0b0705;box-shadow:inset 0 0 0 1px #fff0c814,0 2px #0a0604}.btn:disabled{cursor:not-allowed}.btn:disabled img,.btn:disabled .coin,.btn.cant img,.btn.cant .coin{filter:grayscale(.7)brightness(.8)}.chip{font-family:var(--font-body);background:linear-gradient(#2a1c12,#170f0a);border:1px solid #0b0705;font-weight:600;box-shadow:inset 0 0 0 1px #e9c46a2e}.chip.toggle.on{box-shadow:inset 0 0 0 1px var(--gilt), 0 0 10px #ffbe5040;background:linear-gradient(#e9c46a4d,#8c642040)}.pill{font-family:var(--font-body);background:linear-gradient(#ff6a4a,#b3261a);font-weight:800;box-shadow:0 0 0 2px #1a0a06,0 0 10px #ff502873}.badge{font-family:var(--font-display);background:radial-gradient(circle at 35% 30%, #fff4c4, var(--gilt) 50%, var(--gilt-dark) 100%);border:2px solid #1a0f06;box-shadow:0 0 0 1px #e9c46a99,0 2px 6px #0009}.bar{background:linear-gradient(#070403,#1d130c);border:1px solid #000;border-radius:7px;height:12px;box-shadow:0 1px #e9c46a33,inset 0 1px 3px #000000e6}.bar>div{background:linear-gradient(#fff1b8,#f0be45 45%,#b47a16);border-radius:6px;position:relative;box-shadow:inset 0 1px #fff9,0 0 8px #ffbe5066}.bar.hp>div{background:linear-gradient(#c8ffb0,#54c83c 45%,#237a16);box-shadow:inset 0 1px #ffffff8c,0 0 8px #5adc4659}.bar.xp>div{background:linear-gradient(#ecdcff,#a47aff 45%,#5e34c0);box-shadow:inset 0 1px #ffffff8c,0 0 8px #a06eff66}.bar.small{height:8px}.modal-backdrop{background:radial-gradient(#0a06048c,#000000d9);animation:.2s ease-out fade-in}.modal{padding:24px 28px;animation:.28s cubic-bezier(.2,1.4,.4,1) modal-in}.modal h1{font-size:44px}.modal h1.victory{background:linear-gradient(#fff7d0,#ffd35a 50%,#c07a10);filter:drop-shadow(0 3px #3a1e04)drop-shadow(0 0 24px #ffc8508c);-webkit-background-clip:text;background-clip:text;animation:.6s cubic-bezier(.2,1.6,.4,1) title-pop}.modal h1.defeat{background:linear-gradient(#ffd0c4,#e0503a 50%,#7a160c);filter:drop-shadow(0 3px #2a0604)drop-shadow(0 0 18px #ff3c2866);-webkit-background-clip:text;background-clip:text}@keyframes fade-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(16px)scale(.92)}}@keyframes title-pop{0%{opacity:0;transform:scale(1.8)}60%{opacity:1;transform:scale(.95)}}.stars .star.on{color:#ffd35a;text-shadow:0 0 8px #ffc83cbf,0 2px #5a3a08}.sprite-anim{image-rendering:auto;filter:drop-shadow(0 6px 6px #0000008c)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#0d0806}::-webkit-scrollbar-thumb{background:linear-gradient(90deg,#5a3f27,#3a2717);border:2px solid #0d0806;border-radius:6px}.screen{animation:.25s ease-out screen-in}@keyframes screen-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.hero-stage,.bestiary-stage,.tower-stage{background:radial-gradient(circle at 50% 78%, #0000008c 0 18%, transparent 30%), radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--hero-color,#c08a3a) 45%, transparent), transparent 68%);border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.hero-stage{width:170px;height:170px;margin:-6px 8px -6px -4px}.bestiary-stage{--hero-color:#7a3020;width:190px;height:180px;margin:0 auto}.tower-stage{--hero-color:#8a6a3a;width:92px;height:92px;margin:-4px 0 -8px -8px}.modal-backdrop.with-art{background-position:50%;background-size:cover}.modal-backdrop.with-art:before{content:"";background:radial-gradient(#00000059,#000000bf);position:absolute;inset:0}.modal-backdrop.with-art .modal{position:relative}.confirm-box{flex-direction:column;gap:10px;max-width:440px;display:flex}.confirm-box h2{margin:0;font-size:22px}.confirm-box p{color:#e6d2a8;margin:0;line-height:1.4}.confirm-input{text-align:center;letter-spacing:.2em;text-transform:uppercase;flex:none}.confirm-buttons{justify-content:center;gap:10px;margin-top:4px;display:flex}.confirm-buttons .btn{flex:1;max-width:200px}.ui-toast{z-index:60;top:calc(70px + var(--safe-top));max-width:min(520px,90vw);font-family:var(--font-body);text-align:center;color:#fff6dc;text-shadow:0 1px 2px #000;box-shadow:inset 0 0 0 1px var(--gilt), 0 0 18px #ffbe5059, 0 10px 24px #000000b3;cursor:pointer;background:linear-gradient(#3e2a16,#1d130b);border:1px solid #0b0705;border-radius:10px;padding:10px 20px;font-size:16px;font-weight:800;animation:2.6s ease-out forwards ui-toast-life;position:fixed;left:50%;transform:translate(-50%)}.ui-toast:before{content:"✔ ";color:#8af07a}.ui-toast.error{color:#ffe6dc;background:linear-gradient(#5a1a12,#2a0a06);box-shadow:inset 0 0 0 1px #ff8a6a,0 0 18px #ff502859,0 10px 24px #000000b3}.ui-toast.error:before{content:"⚠ ";color:#ffb08a}@keyframes ui-toast-life{0%{opacity:0;transform:translate(-50%,-12px)}8%,85%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-6px)}}@media (max-height:520px){.ui-toast{top:calc(52px + var(--safe-top));padding:8px 16px;font-size:14px}}.flag{border-radius:2px;flex:none;width:24px;height:17px;box-shadow:0 0 0 1px #0009,0 1px 3px #00000080}.rotate-hint{display:none}@media (orientation:portrait) and (max-width:760px){.rotate-hint{z-index:100;text-align:center;pointer-events:auto;background:radial-gradient(at 50% 40%,#aa6e324d,#0000 70%),linear-gradient(#24180f,#0d0907);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:32px;display:flex;position:fixed;inset:0}.rotate-hint strong{font-family:var(--font-display);color:var(--gilt-bright);text-shadow:0 2px #000;font-size:24px}.rotate-hint small{color:#c8b28a;font-size:15px}.rotate-phone{border:3px solid var(--gilt);border-radius:10px;width:56px;height:96px;margin-bottom:18px;animation:2.4s ease-in-out infinite rotate-phone;position:relative;box-shadow:0 0 22px #ffbe5059}.rotate-phone:after{content:"";background:var(--gilt);border-radius:2px;width:14px;height:3px;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}@keyframes rotate-phone{0%,20%{transform:rotate(0)}55%,to{transform:rotate(-90deg)}}}.panel.scroll-host{flex-direction:column;padding:0;display:flex;overflow:hidden}.scroll-host>.panel-scroll{flex:auto;min-height:0;padding:14px 16px;overflow:hidden auto}.scroll-host>:not(.panel-scroll){flex:none;margin:0 16px 14px}@media (max-height:520px){.panel.scroll-host{padding:0;overflow:hidden}.scroll-host>.panel-scroll{padding:10px 12px}.scroll-host>:not(.panel-scroll){margin:0 12px 10px}.scroll-host>.play-row{background:0 0;padding:0;position:static}}.topbar>*{flex:none}.topbar>.spacer{flex:1 1 0}.topbar .screen-title{white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.topbar .currency,.online-badge{white-space:nowrap}.commander-info{flex-direction:column;gap:4px;min-width:92px;display:flex}.commander-label{white-space:nowrap;align-items:baseline;gap:6px;line-height:1;display:flex}.commander-label strong{font-family:var(--font-display);color:var(--gilt-bright);text-shadow:0 1px #000;font-size:13px}.commander-label small{color:#c8b28a;font-size:11px}.commander .bar{flex:none;width:100%;height:8px}@media (max-width:900px),(max-height:520px){.topbar{gap:8px}.topbar .screen-title{font-size:16px}.commander-info{min-width:54px}.commander-label small,.online-label{display:none}.online-badge{padding:3px 7px}.topbar .currency{padding:3px 10px 3px 5px;font-size:14px}}@media (min-width:901px) and (min-height:521px){.commander-label strong{font-size:16px}.commander-label small{font-size:12px}.commander-info{min-width:120px}.commander .bar{height:8px}}.screen-error{text-align:center;font-family:var(--font-display);background:radial-gradient(#2a1c12,#0e0906);place-content:center;gap:16px;display:grid;position:fixed;inset:0}.menu-screen{overflow:hidden}.menu-screen:before{box-shadow:inset 0 0 120px #00000073}.menu-screen{background-blend-mode:normal;background:radial-gradient(60% 70% at 62% 55%,#ffaa5029,#0000 70%),linear-gradient(90deg,#080503c7 0%,#08050359 34%,#08050300 55%,#08050373 100%),url(/assets/backdrops/backdrop_menu.jpg) 100% 40%/auto 128% no-repeat,linear-gradient(#2a1c12,#0d0907)}.menu-screen .menu-layout{flex:1;grid-template-columns:minmax(300px,420px) 1fr minmax(260px,330px);align-items:start;gap:16px;min-height:0;padding:18px 24px 8px;display:grid}.menu-screen .title-block{align-items:stretch;gap:10px;padding-top:0;container-type:inline-size}.menu-screen .logo{font-family:var(--font-display);text-align:center;letter-spacing:.03em;background:linear-gradient(#fff8dc 0%,#ffd56a 40%,#c98418 75%,#7a4a0a 100%);filter:drop-shadow(0 3px #2a1606)drop-shadow(0 0 2px #000)drop-shadow(0 10px 18px #000000b3);-webkit-background-clip:text;background-clip:text;font-size:clamp(40px,16.5cqi,84px);font-weight:900;line-height:1}.menu-screen .tagline{color:#e6d2a8;text-shadow:0 1px 2px #000;margin:-2px 0 6px;font-style:italic}.menu-screen .event-banner{max-width:none;margin:0}.menu-cta{cursor:pointer;color:#2a1606;width:100%;font:inherit;background:linear-gradient(#fff6,#0000 40%,#783c004d),linear-gradient(#ffe08a,#e3a536 55%,#a8661a);border:1px solid #0b0705;border-radius:10px;align-items:center;gap:14px;padding:10px 18px 10px 12px;transition:transform 80ms,filter .12s;animation:2.8s ease-in-out infinite cta-glow;display:flex;box-shadow:inset 0 0 0 1px #fff8d2cc,inset 0 -3px #6e320073,0 4px #4a2a06,0 10px 24px #0000008c,0 0 30px #ffbe504d}.menu-cta:hover{filter:brightness(1.08)}.menu-cta:active{transform:translateY(3px)}.menu-cta>.menu-icon,.menu-cta>img{flex:none;width:64px;height:64px;font-size:38px}.menu-cta-text{text-align:left;flex-direction:column;flex:1;align-items:flex-start;display:flex}.menu-cta-text strong{font-family:var(--font-display);letter-spacing:.05em;text-shadow:0 1px #fff0c8b3;font-size:30px;font-weight:900}.menu-cta-text small{opacity:.85;font-weight:700}.menu-cta-arrow{opacity:.75;font-size:22px}@keyframes cta-glow{50%{box-shadow:inset 0 0 0 1px #fff8d2e6,inset 0 -3px #6e320073,0 4px #4a2a06,0 10px 24px #0000008c,0 0 46px #ffc85a8c}}.menu-modes{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mode-tile{cursor:pointer;text-align:left;min-height:64px;font:inherit;color:#f2e2c0;background:linear-gradient(#ffebbe1a,#0000 50%),linear-gradient(#3a2818eb,#1c130cf2);border:1px solid #0b0705;border-radius:9px;align-items:center;gap:10px;padding:8px 10px;transition:transform 80ms,filter .12s,box-shadow .12s;display:flex;box-shadow:inset 0 0 0 1px #e9c46a47,0 3px #0a0604,0 6px 14px #00000073}.mode-tile:hover:not(:disabled){filter:brightness(1.15);box-shadow:inset 0 0 0 1px #ffdc8c99,0 3px #0a0604,0 6px 14px #00000073,0 0 16px #ffbe5033}.mode-tile:active:not(:disabled){transform:translateY(2px)}.mode-tile.locked{opacity:.55;filter:grayscale(.7);cursor:default}.mode-tile>span:last-child{flex-direction:column;min-width:0;display:flex}.mode-tile strong{font-family:var(--font-display);letter-spacing:.03em;color:var(--gilt-bright);font-size:14px}.mode-tile small{color:#c8b28a;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.menu-icon{place-items:center;font-size:26px;line-height:1;display:inline-grid}.mode-tile>.menu-icon,.mode-tile>img{flex:none;width:44px;height:44px}.menu-hero{pointer-events:none;place-self:end center;position:relative}.menu-hero:after{content:"";z-index:-1;background:radial-gradient(#000000a6,#0000 70%);border-radius:50%;height:26px;position:absolute;bottom:14px;left:22%;right:22%}.menu-screen .side{background:linear-gradient(#ffe6aa0d,#0000 30%),linear-gradient(#281b12e0,#160f0aeb);max-height:100%;overflow-y:auto}.menu-screen .side .volume{display:none}.menu-screen .side h3:has(+.volume){display:none}.menu-dock{z-index:2;padding:8px 12px calc(8px + var(--safe-bottom));background:linear-gradient(#0a060400 0%,#0e0906eb 40%);border-top:1px solid #e9c46a38;justify-content:center;gap:4px;display:flex;position:relative}.dock-btn{cursor:pointer;color:#e9d6ae;width:78px;font:inherit;background:0 0;border:none;flex-direction:column;align-items:center;gap:3px;padding:2px 0;display:flex}.dock-medal{background:radial-gradient(circle at 50% 35%,#4a3322,#1a110b 70%);border-radius:50%;place-items:center;width:52px;height:52px;transition:transform .1s,box-shadow .15s;display:grid;position:relative;box-shadow:0 0 0 2px #0b0705,0 0 0 3px #e9c46a80,0 4px 10px #0009}.dock-medal .menu-icon{font-size:24px}.dock-medal img{width:46px;height:46px}.dock-medal .pill{margin:0;position:absolute;top:-4px;right:-6px}.dock-btn:hover .dock-medal{box-shadow:0 0 0 2px #0b0705, 0 0 0 3px var(--gilt), 0 6px 14px #0009, 0 0 18px #ffbe5066;transform:translateY(-3px)}.dock-label{font-family:var(--font-display);letter-spacing:.03em;text-shadow:0 1px 2px #000;white-space:nowrap;font-size:11px}@media (max-height:560px){.menu-screen .menu-layout{grid-template-columns:minmax(260px,360px) 1fr minmax(220px,290px);gap:10px;padding:8px 14px 4px}.menu-screen .logo{font-size:40px}.menu-screen .tagline,.menu-screen .event-banner{display:none}.menu-cta{padding:6px 12px 6px 8px}.menu-cta-text strong{font-size:22px}.menu-cta>.menu-icon,.menu-cta>img{width:44px;height:44px;font-size:28px}.mode-tile{min-height:48px;padding:4px 8px}.mode-tile>.menu-icon,.mode-tile>img{width:32px;height:32px;font-size:20px}.menu-hero canvas{width:200px!important;height:200px!important}.dock-btn{width:62px}.dock-medal{width:40px;height:40px}.dock-medal img{width:36px;height:36px}.dock-label{letter-spacing:0;font-size:9px}.menu-dock{gap:4px}.dock-btn{flex:none}}@media (max-width:900px){.menu-screen .menu-layout{grid-template-columns:minmax(240px,1fr) minmax(200px,280px)}.menu-hero{display:none}.menu-dock{justify-content:flex-start;overflow-x:auto}}.menu-hero.with-art:after{display:none}.menu-hero-art{object-fit:cover;filter:drop-shadow(0 10px 24px #0009);width:min(34vw,430px);max-height:calc(100vh - 190px);animation:5s ease-in-out infinite hero-float;display:block;-webkit-mask-image:radial-gradient(50% 52% at 50% 46%,#000 42%,#0000 92%);mask-image:radial-gradient(50% 52% at 50% 46%,#000 42%,#0000 92%)}@keyframes hero-float{50%{transform:translateY(-6px)}}.menu-screen.with-key-art{background:radial-gradient(60% 70% at 62% 55%,#ffaa501f,#0000 70%),linear-gradient(90deg,#080503b3 0%,#08050340 34%,#08050300 55%,#08050366 100%),url(/assets/art/menu_key.jpg) 50%/cover no-repeat,#0d0907}.menu-screen .menu-layout{grid-template-rows:minmax(0,1fr)}.menu-screen .side.scroll-host{max-height:100%;overflow:hidden}.pass-mini{width:auto;font:inherit;color:inherit;text-align:left;cursor:pointer;background:linear-gradient(#ffe6aa14,#00000040);border:1px solid #0b0705;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:4px 10px;padding:8px 12px 10px;transition:filter .12s;display:grid;box-shadow:inset 0 0 0 1px #e9c46a4d}.pass-mini:hover{filter:brightness(1.15)}.pass-mini-title{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--gilt);grid-column:1/-1;font-size:12px;font-weight:700}.pass-mini .badge{width:28px;height:28px;font-size:14px}.menu-modes{grid-template-columns:repeat(2,minmax(0,1fr))}.dock-btn{width:auto;min-width:78px;padding:2px 4px}@media (max-height:560px){.dock-btn{width:auto;min-width:62px;padding:2px 3px}}@media (min-width:1800px) and (min-height:1000px){.menu-screen .menu-layout{grid-template-columns:500px 1fr 390px;padding:22px 32px 10px}.menu-screen .logo{font-size:84px}.menu-screen .title-block,.menu-screen .menu-layout>.side,.menu-dock{zoom:1.18}}.hud-top{background:linear-gradient(180deg, #ffe6aa12, transparent 45%), var(--grain), linear-gradient(180deg, #3a2716, #1a110a);background-blend-mode:normal, overlay, normal;box-shadow:0 1px 0 var(--gilt-dark), 0 2px 0 #0a0604, 0 3px 0 #e9c46a59, 0 10px 22px #0000008c;border-bottom:none}.hud-top .stat{font-family:var(--font-display);color:#fff3d6;text-shadow:0 1px #000;background:linear-gradient(#0f0a07,#23170e);border:1px solid #0009;border-radius:999px;padding:3px 12px 3px 6px;font-size:18px;box-shadow:inset 0 1px 3px #000c,0 1px #e9c46a40}.hud-top .stat .label{font-family:var(--font-display);letter-spacing:.12em;color:var(--gilt);padding-left:6px;font-size:10px}.hud-top .level-name{font-family:var(--font-display);color:#e6d2a8;text-shadow:0 1px 2px #000;font-size:15px}.hud-top .wave-btn{min-width:190px}.hero-panel{background:linear-gradient(#ffe6aa0f,#0000 40%),linear-gradient(#302014f0,#160f0af2);border:1px solid #0b0705;box-shadow:inset 0 0 0 1px #e9c46a59,0 8px 22px #0000008c}.hud-portrait{box-shadow:0 0 0 2px #0b0705, 0 0 0 4px var(--gilt), 0 0 0 5px #0b0705, inset 0 -8px 14px #00000073, 0 4px 10px #0009;border:none}.hud-portrait.active{box-shadow:0 0 0 2px #0b0705, 0 0 0 4px var(--gilt-bright), 0 0 0 5px #0b0705, 0 0 20px #ffc85acc;animation:1.2s ease-in-out infinite portrait-pulse}@keyframes portrait-pulse{50%{box-shadow:0 0 0 2px #0b0705, 0 0 0 4px var(--gilt-bright), 0 0 0 5px #0b0705, 0 0 30px #ffd26e}}.hero-bars strong{font-family:var(--font-display);color:var(--gilt-bright);font-size:14px}.spell-bar{background:linear-gradient(#ffe6aa0f,#0000 40%),linear-gradient(#302014f0,#160f0af2);border:1px solid #0b0705;box-shadow:inset 0 0 0 1px #e9c46a59,0 8px 22px #0000008c}.cd-btn{background:radial-gradient(circle at 35% 25%, #ffffff59, transparent 55%), linear-gradient(180deg, color-mix(in srgb, var(--c) 85%, #fff 15%), color-mix(in srgb, var(--c) 70%, #000 30%));border:1px solid #0b0705;border-radius:12px;transition:transform 80ms,filter .12s;box-shadow:inset 0 0 0 1px #fff0c880,inset 0 -3px #0000004d,0 0 0 2px #0b0705,0 0 0 3px #e9c46a8c,0 4px 8px #0009}.cd-btn:hover:not(:disabled){filter:brightness(1.15);transform:translateY(-1px)}.cd-btn:active:not(:disabled){transform:translateY(2px)}.cd-btn.active{box-shadow:inset 0 0 0 1px #fff, 0 0 0 2px #0b0705, 0 0 0 4px var(--gilt-bright), 0 0 22px #ffd26ee6}.cd-btn:disabled{filter:grayscale(.8)brightness(.7)}.cd-label{font-family:var(--font-display);text-shadow:0 1px 2px #000,0 0 6px #000}.tower-head strong{font-family:var(--font-display);color:var(--gilt-bright)}.boss-track{border:1px solid #000;height:16px;box-shadow:0 0 0 2px #2a0a06,0 0 0 3px #e978508c,0 0 18px #dc321473}.boss-hp{background:linear-gradient(#ff9a7a,#e0301a 45%,#7a0e06);box-shadow:inset 0 1px #ffffff80}.boss-name{color:#ffcfb8;text-shadow:0 2px #000,0 0 12px #ff3c1e99;font-size:16px}.tutorial-tip,.mechanic-tip{box-shadow:inset 0 0 0 1px var(--gilt), 0 10px 26px #0009, 0 0 24px #ffbe5033;background:linear-gradient(#ffe6aa14,#0000 40%),linear-gradient(#302014f5,#160f0af7)}.mechanic-tip strong{font-family:var(--font-display);color:var(--gilt-bright)}.toast{font-family:var(--font-display);box-shadow:inset 0 0 0 1px var(--gilt), 0 8px 20px #0009;background:linear-gradient(#302014f5,#160f0af5);border:1px solid #0b0705;animation:.25s cubic-bezier(.2,1.5,.4,1) toast-in}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)scale(.9)}}.hint{font-family:var(--font-display);background:linear-gradient(#ffe08a,#d89a2a);font-size:13px;box-shadow:0 0 0 1px #4a2a06,0 4px 12px #00000080}.modal .rewards{gap:10px}.modal .stars{font-size:46px}.modal .stars .star.on{animation:.5s cubic-bezier(.2,1.8,.4,1) both star-in;display:inline-block}.modal .stars .star.on:nth-child(2){animation-delay:.25s}.modal .stars .star.on:nth-child(3){animation-delay:.5s}@keyframes star-in{0%{opacity:0;transform:scale(2.6)rotate(-40deg)}}.story-backdrop{background:linear-gradient(#000 0 9%,#0000 9% 91%,#000 91%),radial-gradient(at 50% 60%,#00000040,#000000bf);animation:.3s ease-out fade-in}.story-box{box-shadow:inset 0 0 0 1px var(--gilt), 0 14px 40px #000000b3;background:linear-gradient(#ffe6aa12,#0000 40%),linear-gradient(#2c1e13f7,#140d09fa);animation:.3s cubic-bezier(.2,1.3,.4,1) modal-in;border:1px solid #0b0705!important}.story-portrait{box-shadow:0 0 0 2px #0b0705, 0 0 0 4px var(--gilt), 0 6px 16px #0009}.story-name{font-size:18px}.story-text p{font-size:17px;line-height:1.45}.act-card-inner h1{font-size:clamp(36px,6vw,64px)}.act-title{color:var(--gilt);letter-spacing:.3em;text-transform:uppercase}.act-card-inner p{max-width:640px;margin:12px auto 20px;font-size:18px;font-style:italic;line-height:1.55}.act-card-inner{animation:1.2s ease-out both act-in}@keyframes act-in{0%{opacity:0;letter-spacing:.02em;transform:scale(1.04)}}.cd-btn{place-items:center;padding:0;line-height:1;display:grid}.cd-label{place-items:center;display:grid;position:absolute;inset:0}.cd-label img,.cd-label .ui-icon{object-fit:contain;border-radius:8px;width:86%;height:86%;display:block}.hotkey{min-width:14px;font-family:var(--font-display);text-align:center;background:#000000a6;border-radius:4px;padding:0 3px;line-height:14px;bottom:2px;right:3px}.act-card.with-art{background-position:50%!important;background-size:cover!important}.act-card.with-art:before{content:"";background:linear-gradient(#00000026 0%,#00000059 45%,#000000e0 100%);position:absolute;inset:0}.act-card.with-art .act-card-inner{align-self:flex-end;margin-bottom:6vh;position:relative}.tower-panel,.tutorial-tip,.mechanic-tip,.send-panel{position:absolute}.enemy-face{object-fit:cover;border-radius:8px;flex:none;place-items:center;display:inline-grid;box-shadow:0 0 0 1px #0b0705,0 2px 6px #00000080}.enemy-face.shape{color:#111;border-radius:50%;font-weight:800}.enemy-portrait{position:relative;overflow:hidden}.enemy-portrait>img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.wave-preview{align-items:center;gap:4px;margin-right:6px;animation:.3s ease-out fade-in;display:flex}.wave-foe{display:inline-flex;position:relative}.wave-foe small{font-family:var(--font-display);color:#fff3d6;background:#000000bf;border-radius:6px;padding:0 4px;font-size:11px;position:absolute;bottom:-6px;right:-4px}.wave-foe.boss .enemy-face{box-shadow:0 0 0 2px #ff5a3a,0 0 12px #ff5028b3}.mechanic-tip .enemy-face{border-radius:12px}.level-foes{flex-wrap:wrap;gap:5px;margin:8px 0;display:flex}@media (max-height:560px){.wave-preview{gap:3px;margin-right:4px}.wave-foe .enemy-face{width:24px!important;height:24px!important;font-size:12px!important}.wave-foe small{padding:0 2px;font-size:9px;bottom:-5px;right:-3px}.wave-foe:nth-child(n+5){display:none}}.boss-intro{pointer-events:none;background:linear-gradient(90deg,#3c0804f2,#140604e6);border-radius:14px;align-items:center;gap:18px;padding:14px 26px 14px 14px;animation:3.2s ease-in-out both boss-intro;display:flex;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 1px #ff7a5a,0 0 40px #ff3c1e73,0 16px 40px #000000b3}.boss-intro .enemy-face{border-radius:12px;box-shadow:0 0 0 2px #2a0604,0 0 0 3px #ff7a5a}.boss-intro small{font-family:var(--font-display);letter-spacing:.3em;text-transform:uppercase;color:#ffb09a;display:block}.boss-intro strong{font-family:var(--font-display);color:#fff0e6;text-shadow:0 2px #000,0 0 18px #ff502899;font-size:30px}@keyframes boss-intro{0%{opacity:0;transform:translate(-30%,-50%)scale(.9)}12%,82%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-70%,-50%)scale(.95)}}.story-backdrop.act-card{position:fixed}@media (max-height:520px){.level-panel .level-art{height:56px}.research-col .research-banner{height:48px}}.btn.spec-btn{align-items:center;gap:6px;padding-left:6px;display:inline-flex}.btn.spec-btn .spec-preview{filter:drop-shadow(0 2px 3px #00000080);width:56px;height:56px;margin:-10px 0 -10px -2px}.cd-time{font:700 18px/1 var(--font-title,serif);color:#fff4d6;text-shadow:0 0 4px #000,0 2px 2px #000;pointer-events:none;z-index:3;place-items:center;display:grid;position:absolute;inset:0}.tutorial-tip,.mechanic-tip{pointer-events:none}.tutorial-tip .btn,.mechanic-tip .btn{pointer-events:auto}.tutorial-tip .btn.small,.mechanic-tip .btn.small,.story-foot .btn.small{min-width:56px;min-height:40px}.tutorial-tip.busy{opacity:0;visibility:hidden;transition:opacity .15s,visibility 0s .15s}:root{--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}.hud-top{padding-left:calc(12px + var(--safe-left));padding-right:calc(12px + var(--safe-right))}.hero-panel{left:calc(10px + var(--safe-left))}.spell-bar{right:calc(10px + var(--safe-right))}.tower-panel{right:calc(92px + var(--safe-right));width:min(500px, calc(100vw - 600px - var(--safe-left) - var(--safe-right)))}.toast{bottom:calc(100px + var(--safe-bottom))}@media (pointer:coarse){.modal .keys,.hotkey{display:none}}@media (max-height:520px){.tutorial-tip{top:calc(52px + var(--safe-top));max-width:min(560px, calc(100vw - 2 * var(--safe-left) - 24px));gap:10px;padding:6px 8px 6px 12px;font-size:13px;line-height:1.3}.tutorial-tip .tip-icon img,.tutorial-tip .tip-icon .ui-icon{width:20px;height:20px}.toast{bottom:calc(80px + var(--safe-bottom));max-width:min(520px,62vw);font-family:var(--font-body);padding:5px 12px;font-size:14px;font-weight:800;line-height:1.25}.hint{top:calc(54px + var(--safe-top));font-size:12px}.tower-panel{width:min(360px,100vw - 420px);max-height:calc(100vh - 64px - var(--safe-top) - var(--safe-bottom));overflow-y:auto}.tower-actions .btn{min-height:42px}.tower-panel.flip{right:auto;left:calc(10px + var(--safe-left))}.mechanic-tip{bottom:auto;top:calc(52px + var(--safe-top));max-width:min(560px,100vw - 24px);padding:6px 8px 6px 10px;font-size:13px;line-height:1.3}.mechanic-tip .enemy-face{width:44px!important;height:44px!important}.hud:has(.boss-bars) .mechanic-tip{top:calc(112px + var(--safe-top))}.boss-bars{top:calc(52px + var(--safe-top))}.hud.menu-open .toast{bottom:auto;top:calc(54px + var(--safe-top))}.hud .modal{max-height:calc(100vh - 16px - var(--safe-top) - var(--safe-bottom));padding:10px 16px 12px}.hud .modal h1.victory,.hud .modal h1.defeat{margin:0 0 4px;font-size:34px}.hud .modal h2{margin:2px 0 6px}.hud .modal .stars{line-height:1;font-size:32px!important}.hud .modal .rewards{margin:8px 0}.hud .modal p{margin:6px 0}.hud .modal .modal-buttons{flex-direction:row;margin-top:10px}.hud .modal .modal-buttons .btn{flex:1;min-height:44px}}.story-backdrop{padding-left:calc(12px + var(--safe-left));padding-right:calc(12px + var(--safe-right));padding-bottom:calc(24px + var(--safe-bottom))}.hud,#game{-webkit-touch-callout:none}#game canvas{touch-action:none;display:block}:is(.hud:has(~.story-backdrop) .tutorial-tip,.hud:has(~.story-backdrop) .mechanic-tip){visibility:hidden}.tower-actions .btn.danger.confirm{box-shadow:0 0 0 2px #ffd36a,0 0 10px #ffc85a99}.coin.essence{filter:drop-shadow(0 1px 1px #0009);background:url(/assets/icons/icon_essence.webp) 50%/contain no-repeat;flex:none;width:24px;height:24px;display:inline-block}.hero-card,.shop-item,.challenge-card,.research-node,.relic-card,.cosmetic,.evo-card,.achievement,.bestiary-cell,.talent,.path-option,.daily-day,.reward{transition:transform .12s ease-out,box-shadow .15s,filter .15s}.hero-card:hover,.shop-item:hover,.challenge-card:not(.locked):hover,.relic-card:not(.locked):hover,.cosmetic:not(.locked):hover,.evo-card:not(.locked):hover,.bestiary-cell:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px #ffdc8c8c,0 12px 26px #0009,0 0 18px #ffbe5026}.hero-card.selected,.relic-card.equipped,.cosmetic.equipped,.path-option.on,.achievement.ready{box-shadow:inset 0 0 0 1px var(--gilt-bright), 0 0 0 1px #0b0705, 0 0 22px #ffc85a59, 0 10px 24px #0000008c}.hero-card{background:linear-gradient(#ffe6aa0d,#0000 40%),linear-gradient(#33231a,#1f150e);border:1px solid #0b0705;box-shadow:inset 0 0 0 1px #e9c46a40}.hero-card strong,.relic-card strong,.cosmetic strong,.evo-card strong,.challenge-card h2,.shop-item strong,.research-node strong,.talent strong,.achievement-body strong{font-family:var(--font-display);letter-spacing:.02em}.pass-track{scroll-snap-type:x proximity;gap:6px;padding:8px 16px 20px}.pass-tier{scroll-snap-align:start;width:132px}.pass-labels{z-index:3;width:92px;position:sticky;left:0}.pass-labels .tier-num{color:var(--gilt);box-shadow:none!important;background:0 0!important}.pass-labels .reward-cell{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;color:#e6d2a8;background:linear-gradient(#2c1e14,#150e09);border:1px solid #0b0705;border-radius:8px;place-items:center;font-size:11px;display:grid;box-shadow:inset 0 0 0 1px #e9c46a4d,6px 0 14px #0009}.pass-labels .reward-cell.premium{color:#2a1606;background:linear-gradient(#ffe08a,#c98a24);box-shadow:inset 0 0 0 1px #fff3c4,6px 0 14px #0009}.tier-num{font-family:var(--font-display);background:linear-gradient(#2a1c12,#140d08);border:1px solid #0b0705;box-shadow:inset 0 0 0 1px #e9c46a2e}.pass-tier.reached .tier-num{color:#2a1606;background:linear-gradient(#ffe08a,#d39a2c);box-shadow:inset 0 0 0 1px #fff3c4,0 0 12px #ffbe5066}.reward-cell{background:#0000002e;border:1px dashed #e9c46a1f}.reward-cell.premium{background:radial-gradient(at 50% 0,#ffc85a24,#0000 70%),#0000002e}.reward{background:radial-gradient(circle at 50% 30%,#ffdc961f,#0000 60%),linear-gradient(#33231a,#1a110b);border-radius:8px;box-shadow:inset 0 0 0 1px #e9c46a4d;border:1px solid #0b0705!important}.reward-cell.premium .reward{box-shadow:inset 0 0 0 1px var(--gilt), 0 0 12px #ffbe5026;background:radial-gradient(circle at 50% 30%,#ffd26e47,#0000 60%),linear-gradient(#3e2a12,#1d1309)}.reward-label{text-align:center;padding:0 4px;font-size:12px;line-height:1.15}.reward-icon img,.daily-icon img{filter:drop-shadow(0 3px 4px #0009)}.pass-header .badge.big{width:64px;height:64px;font-size:26px}.daily-day{background:linear-gradient(#2f2017,#160f0a);border:1px solid #0b0705;box-shadow:inset 0 0 0 1px #e9c46a38}.daily-day.today{box-shadow:inset 0 0 0 1px var(--gilt-bright), 0 0 18px #ffc85a80;background:radial-gradient(circle at 50% 40%,#ffd26e59,#0000 70%),linear-gradient(#4a3214,#1d1309);animation:1.4s ease-in-out infinite daily-pulse}@keyframes daily-pulse{50%{transform:translateY(-2px)}}.daily-icon{place-items:center;height:40px;display:grid}.shop-item{background:radial-gradient(circle at 50% 30%,#6eaaff2e,#0000 65%),linear-gradient(#2e2219,#160f0a);border:1px solid #0b0705;box-shadow:inset 0 0 0 1px #e9c46a4d}.shop-item .pill{background:linear-gradient(#7ad0ff,#2a7ad0);box-shadow:0 0 0 2px #06101a,0 0 10px #50a0ff80}.challenge-card{border:1px solid #0b0705;overflow:hidden}.challenge-card h2{font-size:20px}.challenge-card.tier-0{box-shadow:inset 0 0 0 1px #b07a40,0 10px 24px #00000080}.challenge-card.tier-1{box-shadow:inset 0 0 0 1px #c8d0d8,0 10px 24px #00000080}.challenge-card.tier-2{box-shadow:inset 0 0 0 1px var(--gilt), 0 0 18px #ffbe5033, 0 10px 24px #00000080}.challenge-card.tier-3{box-shadow:inset 0 0 0 1px #8ae0ff,0 0 20px #78dcff40,0 10px 24px #00000080}.challenge-card.tier-4{box-shadow:inset 0 0 0 1px #c0a0ff,0 0 24px #9664ff59,0 10px 24px #00000080}.research-node{background:linear-gradient(#2f2017,#170f0a);border:1px solid #0b0705;border-radius:8px;box-shadow:inset 0 0 0 1px #e9c46a40}.research-node.maxed{box-shadow:inset 0 0 0 1px var(--gilt), 0 0 14px #ffbe5040;background:radial-gradient(circle at 50% 0,#ffd26e40,#0000 70%),linear-gradient(#3a2812,#1a1109)}.relic-icon img,.relic-slot img{filter:drop-shadow(0 4px 6px #0009)drop-shadow(0 0 8px #ffc85a40)}.relic-slot{background:radial-gradient(circle at 50% 40%,#3a2818,#120c08 70%);box-shadow:0 0 0 2px #0b0705,0 0 0 3px #e9c46a8c,inset 0 4px 12px #000000b3}.cosmetic-swatch{box-shadow:0 0 0 2px #0b0705,0 0 0 3px #e9c46a80,inset 0 -6px 10px #00000059,inset 0 6px 10px #ffffff40}.campaign-map{background-position:50%;background-size:cover;border:1px solid #0b0705;box-shadow:inset 0 0 0 1px #e9c46a59,inset 0 0 80px #000000a6,0 12px 30px #0000008c}.level-node{font-family:var(--font-display);box-shadow:0 0 0 2px #0b0705,0 0 0 4px #8a7a62,0 0 0 5px #0b0705,0 6px 14px #000000b3;background:radial-gradient(circle at 50% 35%,#5a3f27,#23170e 70%)!important;border:none!important}.level-node.cleared{box-shadow:0 0 0 2px #0b0705, 0 0 0 4px var(--gilt), 0 0 0 5px #0b0705, 0 0 16px #ffbe5059, 0 6px 14px #000000b3}.level-node.selected{box-shadow:0 0 0 2px #0b0705, 0 0 0 4px var(--gilt-bright), 0 0 0 5px #0b0705, 0 0 28px #ffd26ecc, 0 6px 14px #000000b3;animation:1.6s ease-in-out infinite node-bob}@keyframes node-bob{50%{transform:translate(-50%,-54%)scale(1.15)}}.level-node.boss{background:radial-gradient(circle at 50% 35%,#7a2a1a,#2a0c06 70%)!important}.campaign-path polyline{stroke:#ffe1a0d9;filter:drop-shadow(0 2px 2px #000c)}.act-tabs .chip{font-family:var(--font-display);font-size:12px}.level-panel h2{font-size:22px}input[type=range]{accent-color:var(--gilt)}.code-input{font-family:var(--font-display);color:#fff3d6;background:linear-gradient(#0f0a07,#1d130c);border:1px solid #000;border-radius:6px;box-shadow:inset 0 1px 4px #000000e6,0 1px #e9c46a40}.campaign-map.act-1,.campaign-map.act-2,.campaign-map.act-3,.campaign-map.act-4,.campaign-map.act-5{background-position:50%;background-size:cover}.campaign-map.act-1{background-image:url(/assets/backdrops/backdrop_map_1.jpg)}.campaign-map.act-2{background-image:url(/assets/backdrops/backdrop_map_2.jpg)}.campaign-map.act-3{background-image:url(/assets/backdrops/backdrop_map_3.jpg)}.campaign-map.act-4{background-image:url(/assets/backdrops/backdrop_map_4.jpg)}.campaign-map.act-5{background-image:url(/assets/backdrops/backdrop_map_5.jpg)}.campaign-map .map-deco,.campaign-map .campaign-path{display:none}.campaign-tabs{z-index:2;flex-direction:column;align-items:flex-start;gap:6px;display:flex;position:absolute;top:10px;left:10px}.campaign-tabs .act-tabs{flex-wrap:wrap;position:static}.book-tabs{gap:6px;display:flex}.book-tabs .chip{font-family:var(--font-display);font-size:12px}.campaign-map.map-drawn{background:radial-gradient(70% 50% at 30% 80%,#466e788c,#0000 70%),radial-gradient(60% 45% at 80% 25%,#78644680,#0000 70%),linear-gradient(160deg,#3c4a44,#2a3432 55%,#3a3428)}.campaign-map.map-drawn .campaign-path{display:block}.campaign-map.nodes-11 .level-node{width:54px;height:54px}.campaign-map.nodes-11 .level-node.boss{width:66px;height:66px}.level-node .node-mini{filter:drop-shadow(0 1px 1px #000);font-size:13px;line-height:1;position:absolute;top:-4px;right:-4px}.screen:not(.menu-screen){background-blend-mode:normal;background:radial-gradient(80% 60% at 50% -10%,#aa6e3240,#0000 70%),linear-gradient(#140d08d1,#0a0604ed),url(/assets/backdrops/backdrop_panel.jpg) 0 0/256px 256px}.campaign-layout .campaign-map{aspect-ratio:16/9;align-self:center;width:100%;height:auto;min-height:0}.level-node.locked{opacity:.8;filter:grayscale(.4)brightness(.8);transform:translate(-50%,-50%)scale(.72)}.btn .coin,p .coin,small .coin,li .coin,.challenge-reward .coin{vertical-align:-3px;width:18px;height:18px}.shop-icon{justify-content:center;align-items:flex-end;height:76px;font-size:0;display:flex;position:relative}.shop-icon img,.shop-icon>span{filter:drop-shadow(0 4px 6px #0009);margin:0 -14px}.shop-icon img:nth-child(2){z-index:1;transform:translateY(-14px)scale(1.1)}.shop-icon img:nth-child(3){transform:translateY(-4px)rotate(10deg)}.shop-icon img:nth-child(4){z-index:2;transform:translateY(-26px)scale(1.2)}.shop-item.pack-2{background:radial-gradient(circle at 50% 30%,#78beff4d,#0000 65%),linear-gradient(#2e2219,#160f0a)}.shop-item.pack-3{box-shadow:inset 0 0 0 1px var(--gilt), 0 0 22px #6eb4ff4d;background:radial-gradient(circle at 50% 30%,#96d2ff6b,#0000 65%),linear-gradient(#33261a,#160f0a)}.shop-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);align-items:start;width:100%;max-width:1440px;margin:0 auto}.shop-crystals .shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.shop-crystals .shop-item{justify-content:space-between;padding:20px 12px 14px}.shop-crystals .shop-item>strong{white-space:nowrap}.shop-crystals .shop-item>.btn{white-space:nowrap;width:100%}.shop-crystals>small{margin-top:10px;display:block}.dev-tag{letter-spacing:.08em;text-transform:uppercase;background:#00000038;border-radius:4px;padding:0 5px;font-size:10px}.shop-item.wide{align-items:center;gap:12px;min-width:0}.shop-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.shop-text strong,.shop-text small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pass-offer .shop-text small{white-space:normal}.shop-prices{flex:none;gap:8px;display:flex}.shop-prices .btn{min-width:96px}.owned-tag{color:#b8f0a8;background:#00000073;border-radius:999px;flex:none;padding:4px 12px;font-weight:800;box-shadow:inset 0 0 0 1px #8ce67866}.research-node{position:relative}.research-node+.research-node{margin-top:16px}.research-node+.research-node:before{content:"";background:linear-gradient(#8c6420,#3a2810);border-radius:2px;width:4px;height:16px;position:absolute;top:-17px;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #0b0705}.research-node.maxed+.research-node:before{background:linear-gradient(#ffe08a,#c08a24);box-shadow:0 0 0 1px #0b0705,0 0 8px #ffc85a99}.pip{background:linear-gradient(135deg,#3a2a1c,#120c08);border:1px solid #0b0705;border-radius:3px;width:13px;height:13px;transform:rotate(45deg);box-shadow:inset 0 0 0 1px #e9c46a4d}.pip.on{background:linear-gradient(135deg,#fff3c4,#f0be45 50%,#a86a16);border-color:#3a2008;box-shadow:inset 0 0 0 1px #ffffff80,0 0 8px #ffc85a99}.pips{gap:7px;padding-left:3px}.challenge-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important}.challenge-card .btn:disabled{padding:6px 10px;font-size:12px;line-height:1.15}.bestiary-art{aspect-ratio:1;border-radius:16px;width:min(100%,240px);margin:0 auto 8px;animation:.3s ease-out modal-in;display:block;box-shadow:0 0 0 1px #0b0705,0 12px 28px #0009,0 0 24px #ffbe501f}.tower-art{border-radius:14px;flex:none;width:92px;height:92px;margin:-6px 2px -6px -6px;box-shadow:0 0 0 1px #0b0705,0 6px 14px #0000008c}.hero-splash{object-fit:cover;border-radius:14px;flex:none;width:190px;height:190px;margin:-6px 10px -6px -6px;animation:.3s ease-out modal-in;box-shadow:0 0 0 1px #0b0705,0 0 0 3px #e9c46a80,0 12px 26px #0009}.ability-row .ability-icon img{filter:drop-shadow(0 4px 6px #00000080);width:52px;height:52px}.screen.art-bg:not(.menu-screen){background:linear-gradient(180deg, #0e090666 0%, #0c0805b8 40%, #090604e6 80%), var(--screen-art) center 28% / cover no-repeat, #0c0806}.shop-item.hero-art-row{background:linear-gradient(90deg, #140d08f7 0%, #140d08e6 45%, #140d0840 100%), var(--hero-art) right 0 top 22% / 62% auto no-repeat, #140d08;position:relative;overflow:hidden}.cosmetic-art{border-radius:12px;width:64px;height:64px;display:block;position:relative;overflow:hidden;box-shadow:0 0 0 2px #e9c46a99,0 4px 10px #00000080}.cosmetic-art img{object-fit:cover;width:100%;height:100%}.cosmetic-tint{mix-blend-mode:color;opacity:.6;position:absolute;inset:0}.cosmetic-art.frame_bronze{border-radius:50%;box-shadow:0 0 0 4px #b8743a,0 4px 10px #00000080}.cosmetic-art.frame_gold{border-radius:50%;box-shadow:0 0 0 4px #f5c23a,0 0 14px #f5c23a99}.panel.cosmetic.locked .cosmetic-art{filter:grayscale(.6)brightness(.75)}.level-panel .level-art{background-position:50% 40%;background-size:cover;border-radius:10px 10px 0 0;height:120px;margin:-16px -16px 10px;-webkit-mask-image:linear-gradient(#000 55%,#0000);mask-image:linear-gradient(#000 55%,#0000)}.research-col .research-banner{background-position:50% 22%;background-size:cover;border-radius:5px 5px 0 0;height:78px;margin:-6px -8px 8px;-webkit-mask-image:linear-gradient(#000 50%,#0000);mask-image:linear-gradient(#000 50%,#0000)}.research-col:before{z-index:1}@media (max-height:520px){.research-col .research-banner{background-position:50% 15%;height:52px}}img.achievement-icon.art{object-fit:cover;border-radius:10px;width:46px;height:46px;box-shadow:0 0 0 2px #e9c46a8c,0 3px 8px #00000080}.achievement:not(.ready):not(.claimed) img.achievement-icon.art{filter:saturate(.55)brightness(.8)}.evo-perk-icon{float:left;border-radius:8px;width:34px;height:34px;margin:0 8px 2px 0;box-shadow:0 0 0 1px #e9c46a99,0 2px 6px #00000080}.evo-perks li:not(.got) .evo-perk-icon{filter:grayscale(.5)brightness(.8)}.bestiary-art-wrap{display:inline-block;position:relative}.bestiary-model{background:radial-gradient(circle,#3c2e1ef2,#140d08f2);border-radius:50%;width:76px;height:76px;position:absolute;bottom:14px;right:-12px;overflow:hidden;box-shadow:0 0 0 2px #e9c46ab3,0 4px 10px #0009}.screen.art-bg.hero-bg:not(.menu-screen){background:linear-gradient(90deg, #0a0604f5 0%, #0c0805d1 45%, #0c080599 100%), var(--screen-art) right 0 top 20% / 60% auto no-repeat, #0c0806}.hero-bg .panel.hero-detail{background:linear-gradient(90deg,#18100af0 0%,#18100ad6 55%,#18100a8c 100%)}.hero-detail,.hero-head-text{min-width:0}.hero-head-text h2{overflow-wrap:anywhere;margin:0}.hero-subtitle{font-family:var(--font-display);letter-spacing:.06em;color:#c8b28a;margin:2px 0 10px;font-size:15px}.talent .pips{margin-top:auto}.talent>.btn{align-self:stretch}.buy-btn{flex-direction:column;gap:0;line-height:1.1}.buy-btn>span{align-items:center;gap:8px;display:inline-flex}.shortfall{font-family:var(--font-body);letter-spacing:0;color:#ff9a80;font-size:12px;font-weight:700}.hero-card small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.hero-card strong{white-space:normal;overflow-wrap:anywhere;min-width:0;font-size:15px;line-height:1.2}@media (max-height:520px){.hero-list{gap:6px}.hero-card{column-gap:8px;padding:6px 8px}.hero-card .portrait{width:38px;height:38px}.hero-card .portrait img{width:34px;height:34px}.hero-card>small:not(.muted){display:none}.hero-card .pill{padding:1px 6px;font-size:10px;top:auto;bottom:5px;right:5px}.hero-head{gap:12px}.hero-splash{width:112px;height:112px;margin:0}.hero-head-text h2{font-size:22px}.hero-subtitle{margin-bottom:6px;font-size:13px}.hero-level{flex-wrap:wrap;gap:6px 10px}.hero-level .bar{flex:1;min-width:80px}.path-tier{grid-template-columns:48px minmax(0,1fr) minmax(0,1fr)}.ability-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}@media (max-width:900px),(max-height:520px){.shop-layout{grid-template-columns:minmax(0,1fr)}.shop-crystals .shop-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}.shop-crystals .shop-item{padding:14px 8px 10px}.shop-icon{height:56px}.shop-icon img{width:36px;height:36px}.shop-prices .btn{min-width:0}}.screen.pass-screen{overflow:hidden}.pass-screen .pass-header{flex:none;grid-template-columns:auto minmax(240px,1fr) minmax(0,2fr);align-items:center;gap:8px 22px;margin:14px 16px 0;padding:14px 20px;display:grid}.pass-screen .pass-header .grow>div:first-child{margin-bottom:4px}.pass-screen .pass-header .grow>small{margin-top:4px;display:block}.premium-offer{flex-wrap:wrap;align-items:center;gap:22px;min-width:0;display:flex}.premium-offer ul{columns:2;flex:300px;column-gap:28px;min-width:0;margin:0}.premium-offer li{break-inside:avoid;white-space:normal}.perks-toggle{display:none!important}.perks-list{text-align:left;margin:12px 0 16px;padding-left:20px;line-height:1.6}.pass-screen .pass-track{flex:auto;align-items:stretch;gap:8px;min-height:0;max-height:400px;margin:auto 0;padding:12px 16px 14px;overflow:auto hidden}.pass-screen .pass-tier{grid-template-rows:30px minmax(0,1fr) minmax(0,1fr);gap:8px;width:128px;display:grid}.pass-screen .pass-tier.pass-labels{box-sizing:content-box;background:linear-gradient(90deg,#0c0805f5 85%,#0000);width:96px;margin:-12px 0 -14px -16px;padding:12px 0 14px 16px}.pass-screen .tier-num{place-items:center;padding:0;display:grid}.pass-screen .reward-cell{height:auto;min-height:0}.reward-cell:empty{background:#00000047;border:1px dashed #e9c46a1a;place-items:center;display:grid}.reward-cell:empty:after{content:"◆";color:#e9c46a29;font-size:12px}.pass-screen .reward{position:relative;overflow:hidden}.pass-screen .reward.locked{filter:none}.pass-screen .reward.locked .reward-icon{opacity:.8}.reward-state{opacity:.85;font-size:12px;position:absolute;top:6px;right:7px}.reward-state.done{color:#8af07a;font-weight:800}@media (max-height:520px),(max-width:900px){.pass-screen .pass-header{grid-template-columns:auto minmax(0,1fr) auto;gap:6px 14px;margin:8px 10px 0;padding:8px 14px}.pass-header .badge.big{width:44px;height:44px;font-size:20px}.pass-screen .pass-header .grow>small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.premium-offer{flex-direction:column;align-items:stretch;gap:6px}.premium-offer ul{display:none}.perks-toggle{font-size:12px;min-height:28px!important;display:inline-flex!important}.pass-screen .pass-track{gap:6px;padding:8px 10px}.pass-screen .pass-tier.pass-labels{width:76px;margin:-8px 0 -8px -10px;padding:8px 0 8px 10px}.pass-screen .pass-tier{grid-template-rows:24px minmax(0,1fr) minmax(0,1fr);gap:6px;width:112px}.pass-labels .reward-cell{font-size:10px}.pass-screen .reward{gap:2px;padding:4px}.pass-screen .reward-icon img{width:34px;height:34px}.pass-screen .reward-label{font-size:11px}.pass-screen .reward .btn.small{min-height:26px;padding:2px 10px;font-size:11px}}.campaign-layout{grid-template-columns:minmax(0,1fr) minmax(300px,400px);align-items:start}.campaign-layout .campaign-map{place-self:start center;width:min(100%,177.778vh - 177.778px)}.campaign-layout .level-panel{align-self:stretch;min-width:0}.campaign-main{flex-direction:column;align-self:stretch;gap:12px;min-width:0;min-height:0;display:flex}.campaign-main .campaign-map{flex:none;align-self:center;width:min(100%,177.778vh - 408.889px)}.act-strip{flex-direction:column;flex:auto;gap:8px;min-height:0;padding:10px 16px 12px 20px;display:flex}.act-strip-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.act-strip-title{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--gilt);font-size:13px}.act-strip-count{font-family:var(--font-display);color:var(--gilt-bright);font-size:14px}.act-strip-list{flex:auto;grid-auto-columns:minmax(160px,1fr);grid-auto-flow:column;gap:8px;min-height:0;display:grid;overflow:auto hidden}.act-stage{min-width:0;max-height:96px;color:var(--parchment);font:inherit;text-align:left;cursor:pointer;background:linear-gradient(#ffe6aa0f,#00000040);border:1px solid #0b0705;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;transition:box-shadow .15s,background .15s,transform .15s;display:flex;box-shadow:inset 0 0 0 1px #e9c46a2e}.act-stage:hover:not(:disabled){background:linear-gradient(#ffe6aa1f,#0003);box-shadow:inset 0 0 0 1px #e9c46a73}.act-stage:active:not(:disabled){transform:translateY(1px)}.act-stage.on{box-shadow:inset 0 0 0 2px var(--gilt), 0 0 14px #ffc85a40;background:linear-gradient(#e9c46a33,#0003)}.act-stage:disabled{cursor:default;opacity:.5;filter:grayscale(.5)}.act-stage-num{width:36px;height:36px;font-family:var(--font-display);color:#fff;text-shadow:0 2px #000;background:radial-gradient(circle at 50% 35%,#5a3f27,#23170e 70%);border-radius:50%;flex:none;place-items:center;font-size:16px;display:grid;box-shadow:0 0 0 2px #0b0705,0 0 0 3px #8a7a62}.act-stage.cleared .act-stage-num{box-shadow:0 0 0 2px #0b0705, 0 0 0 3px var(--gilt)}.act-stage.boss .act-stage-num{background:radial-gradient(circle at 50% 35%,#7a2a1a,#2a0c06 70%)}.act-stage-body{flex-direction:column;gap:2px;min-width:0;display:flex}.act-stage-name{overflow-wrap:anywhere;font-size:15px;font-weight:600;line-height:1.2}.towers-row{flex-wrap:wrap;gap:4px;min-width:0}.towers-row .chip{padding:3px}@media (max-height:520px){.campaign-layout{grid-template-columns:minmax(0,1fr) minmax(260px,38%)}.act-strip{display:none}.campaign-main .campaign-map,.campaign-layout .campaign-map{width:min(100%,177.778vh - 124.444px)}.level-panel .level-art{height:64px;margin:-10px -12px 6px}}.bestiary-layout{align-items:flex-start;width:100%;max-width:1480px;margin:0 auto;padding:16px}.bestiary-grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;max-height:100%;padding:2px}.bestiary-card{width:min(400px,40vw);min-width:0;max-height:100%}.bestiary-card .panel-scroll{text-align:center;flex-direction:column;align-items:center;display:flex}.bestiary-card .level-stats{justify-content:center;gap:8px 14px}.bestiary-card .unlock-hint{align-self:stretch}@media (max-height:520px){.bestiary-layout{gap:10px;padding:10px}.bestiary-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px}.bestiary-art{width:150px}.bestiary-model{width:60px;height:60px;bottom:10px;right:-8px}.bestiary-card h2{font-size:20px}}.pvp-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;width:100%;max-width:1320px;margin:0 auto}.pvp-buttons{max-width:none}.pvp-pair{grid-template-columns:1fr 1fr;gap:10px;display:grid}.league-list li{grid-template-columns:minmax(0,1fr) 52px auto 82px;align-items:center;gap:10px;padding:5px 10px;display:grid}.league-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.league-min{text-align:right}.league-reward{white-space:nowrap;gap:12px;display:flex}.league-reward>span{align-items:center;gap:3px;min-width:46px;display:inline-flex}.league-reward .coin{width:18px;height:18px}.league-frame{white-space:nowrap;color:#2a1606;background:linear-gradient(#ffe08a,#c98a24);border-radius:999px;justify-self:end;padding:1px 8px;font-size:12px;font-weight:700}.empty-board{text-align:center;color:#c8b28a;background:#00000038;border:1px dashed #e9c46a33;border-radius:8px;flex-direction:column;align-items:center;gap:6px;padding:18px 12px;display:flex}.empty-board-icon{opacity:.7;filter:grayscale(.4);font-size:32px}.empty-board p{margin:0}.rankings-panel{max-width:640px;padding:18px 22px}@media (max-height:520px),(max-width:900px){.league-list li{grid-template-columns:minmax(0,1fr) auto auto;gap:2px 8px;padding:4px 6px}.league-min{text-align:left;grid-area:2/1;font-size:11px}.league-reward{gap:6px}.league-reward>span{min-width:40px}.league-frame{padding:1px 6px;font-size:10px}.pvp-pair{grid-template-columns:1fr}}.rankings-panel{margin-top:16px}.rankings-head{border-bottom:1px solid #e9c46a33;align-items:center;gap:14px;margin-bottom:14px;padding-bottom:12px;display:flex}.rankings-head h2{margin:0 0 2px;font-size:22px}.rankings-icon{background:radial-gradient(circle at 50% 35%,#4a3322,#1a110b 70%);border-radius:50%;flex:none;place-items:center;width:54px;height:54px;font-size:28px;display:grid;box-shadow:0 0 0 2px #0b0705,0 0 0 3px #e9c46a80}.record-box{background:#0000004d;border-radius:8px;flex-direction:column;flex:none;align-items:center;min-width:96px;padding:6px 12px;line-height:1.1;display:flex;box-shadow:inset 0 0 0 1px #e9c46a4d}.record-box strong{font-family:var(--font-display);color:var(--gilt-bright);font-size:24px}.record-box small{color:#c8b28a;font-size:11px}@media (max-height:520px){.rankings-panel{margin-top:10px;padding:12px 16px}.rankings-icon{width:42px;height:42px;font-size:22px}.rankings-head h2{font-size:18px}}@media (min-height:521px){.rankings-panel .empty-board{justify-content:center;min-height:220px}}.achievement-icon.medal{width:46px;height:46px;color:var(--gilt-bright);background:radial-gradient(circle at 50% 35%,#5a3f27,#1a110b 75%);border-radius:10px;flex:none;place-items:center;font-size:24px;display:grid;box-shadow:0 0 0 2px #e9c46a8c,0 3px 8px #00000080}.progress-pill{white-space:nowrap;color:#e6d2a8;background:#0006;border-radius:999px;justify-content:center;align-items:center;gap:4px;min-width:52px;padding:2px 10px;font-size:13px;font-weight:700;display:inline-flex;box-shadow:inset 0 0 0 1px #e9c46a38}.progress-pill.done{color:#b8f0a8;box-shadow:inset 0 0 0 1px #8ce67859}.achievement-reward small{white-space:nowrap}.achievement-reward .coin{vertical-align:-5px;width:20px;height:20px}.cosmetic>:last-child{margin-top:auto}.cosmetic-art.swatch{border-radius:50%}.cosmetic-art.emote-preview{background:radial-gradient(circle at 50% 35%,#f6ead0,#c9b48c 80%);border-radius:16px 16px 16px 4px;place-items:center;font-size:34px;display:grid;overflow:visible}.panel.cosmetic.locked .cosmetic-art.emote-preview{filter:grayscale(.4)brightness(.8)}.relic-slots{margin:12px 0 4px}.settings-layout{align-items:start;width:100%;max-width:1200px;margin:8px auto 0}@media (max-width:900px) and (min-width:600px){.settings-layout{grid-template-columns:1fr 1fr}}@media (max-height:520px){.settings-layout{gap:10px;margin-top:0;padding:10px}}.join-row{flex-wrap:wrap}.join-row .btn{white-space:nowrap}.join-row .code-input{min-width:140px}.challenge-grid{align-items:stretch;padding-top:14px}.challenge-card{flex-direction:column;display:flex}.challenge-card>.btn{margin-top:auto}.level-panel>.play-row{z-index:1;background:linear-gradient(#2a1c12,#1f150e);border-top:1px solid #e9c46a47;border-radius:0 0 8px 8px;margin:0;padding:10px 16px 14px;position:relative;box-shadow:0 -8px 14px #00000073}.level-panel>.panel-scroll{padding-bottom:22px;-webkit-mask-image:linear-gradient(#000 calc(100% - 18px),#0000);mask-image:linear-gradient(#000 calc(100% - 18px),#0000)}@media (max-height:520px){.level-panel>.play-row{background:linear-gradient(#2a1c12,#1f150e);padding:8px 12px 10px}.level-panel>.panel-scroll{padding-bottom:20px}}@media (min-width:1200px) and (min-height:700px){.bestiary-layout{align-items:stretch;gap:20px;max-width:1680px}.bestiary-grid{grid-template-columns:repeat(auto-fill,minmax(clamp(120px,14vh,164px),1fr));gap:12px}.bestiary-cell .enemy-thumb{zoom:1.35}.bestiary-cell .enemy-thumb.shape{font-size:30px}.bestiary-card{align-self:stretch;width:min(480px,30vw)}.bestiary-card .panel-scroll{gap:6px;padding:22px 26px}.bestiary-art-wrap{max-width:100%}.bestiary-art{width:min(340px,22vw)}.bestiary-model{width:92px;height:92px}.bestiary-card h2{margin-top:6px;font-size:28px}.bestiary-traits{align-self:stretch;font-size:16px}.bestiary-card .unlock-hint{padding:10px 14px;font-size:16px}}@media (min-width:1200px) and (min-height:960px){.bestiary-cell .enemy-thumb{zoom:1.7}}.beast-stats{grid-template-columns:repeat(5,minmax(0,1fr));align-self:stretch;gap:6px;margin:8px 0;display:grid}.beast-stat{background:#00000040;border-radius:8px;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:6px 4px;display:flex;box-shadow:inset 0 0 0 1px #e9c46a24}.beast-stat dd{white-space:nowrap;margin:0;font-weight:700}.beast-stat dt{letter-spacing:.01em;text-transform:uppercase;color:#b9a27c;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10px;overflow:hidden}.beast-stages{text-align:left;align-self:stretch;margin-top:6px}.beast-stage-list{flex-wrap:wrap;gap:6px;display:flex}.beast-stage-list .chip{font-size:13px}@media (max-height:520px){.beast-stats{gap:4px;margin:4px 0}.beast-stat{padding:4px 2px}.beast-stat dd{font-size:13px}.beast-stat dt{display:none}}@media (min-width:1200px) and (min-height:700px){.beast-stat{padding:10px 4px 8px}.beast-stat dd{font-size:17px}.beast-stage-list .chip{font-size:14px}}.bestiary-traits:empty{display:none}.settings-layout .volume{grid-template-columns:minmax(84px,auto) minmax(0,1fr) 44px;align-items:center;gap:12px;margin:6px 0;display:grid}.volume-label{white-space:nowrap}.volume-value{text-align:right;font-variant-numeric:tabular-nums;color:var(--gilt-bright);font-weight:700}@media (max-height:520px){.settings-layout .volume{grid-template-columns:minmax(70px,auto) minmax(0,1fr) 38px;gap:8px;margin:2px 0;font-size:13px}}@media (min-width:1200px) and (min-height:700px){.settings-layout{flex:1;align-content:center;align-items:stretch;gap:24px;max-width:1240px;margin:0 auto;padding:24px;font-size:17px}.settings-layout>.panel{padding:28px 32px}.settings-layout h3{margin-top:18px;margin-bottom:10px}.settings-layout h3:first-child{margin-top:0}.settings-layout .join-row{gap:12px}.settings-layout .code-input,.settings-layout .join-row .btn{min-height:50px;font-size:17px}.settings-layout .join-row .code-input{flex:1}.settings-layout p{margin:10px 0;line-height:1.5}.settings-layout .volume{margin:12px 0}}.rankings-layout{display:contents}.rankings-tab-about{display:none}@media (min-width:1200px) and (min-height:700px){.rankings-layout{flex:1;grid-template-columns:340px minmax(0,1fr);gap:20px;width:100%;max-width:1240px;min-height:0;margin:0 auto;padding:20px 24px 24px;display:grid}.rankings-tabs{flex-flow:column;justify-content:flex-start;gap:12px;margin:0}.rankings-tabs .btn{text-align:left;white-space:normal;flex-direction:column;align-items:flex-start;gap:6px;min-height:92px;padding:16px 20px;display:flex}.rankings-tab-label{font-size:19px}.rankings-tab-about{font-family:var(--font-body);letter-spacing:0;text-transform:none;opacity:.85;font-size:13px;font-weight:600;line-height:1.35;display:block}.rankings-tabs .btn.primary .rankings-tab-about{color:#3b2408;text-shadow:none;opacity:1}.rankings-panel{flex-direction:column;width:auto;max-width:none;min-height:0;margin:0;padding:26px 30px;display:flex;overflow-y:auto}.rankings-head{gap:18px;margin-bottom:18px;padding-bottom:16px}.rankings-head h2{font-size:28px}.rankings-head small.muted{font-size:15px}.rankings-icon{width:68px;height:68px;font-size:34px}.record-box{min-width:120px;padding:8px 16px}.record-box strong{font-size:30px}.rankings-panel .empty-board{flex:1;font-size:17px}.rankings-panel .empty-board-icon{font-size:48px}.rankings-panel .leaderboard li{padding:10px 4px;font-size:17px}}.pvp-mode-about{display:none}.pvp-training{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pvp-training-buttons{gap:8px;display:flex}@media (min-width:1200px) and (min-height:700px){.pvp-layout{flex:1;align-items:stretch;gap:24px;max-width:1680px;min-height:0;padding:20px 24px 24px}.pvp-layout>.panel{flex-direction:column;min-height:0;padding:24px 28px;display:flex;overflow-y:auto}.pvp-layout p{font-size:16px;line-height:1.5}.pvp-buttons{gap:14px;margin-top:18px}.pvp-buttons>.btn.big,.pvp-pair .btn.big{flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:96px;font-size:20px;display:flex}.pvp-buttons>.btn.big{min-height:116px;font-size:24px}.pvp-mode-about{font-family:var(--font-body);letter-spacing:0;text-transform:none;opacity:.85;font-size:14px;font-weight:600;display:block}.btn.primary:not(:disabled) .pvp-mode-about{color:#3b2408;text-shadow:none}.pvp-play .pvp-buttons{flex:1}.pvp-buttons>.btn.big.primary{flex:auto;max-height:200px;font-size:28px}.pvp-buttons>.btn.big.primary .pvp-mode-about{font-size:16px}.pvp-play .pvp-training{margin-top:auto}.pvp-training{border-top:1px solid #e9c46a2e;flex-direction:column;align-items:stretch;gap:10px;margin-top:6px;padding-top:16px}.pvp-training .ai-label{font-size:16px}.pvp-training-buttons{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.pvp-training-buttons .btn{min-height:64px;font-size:18px}.pvp-buttons .join-row .code-input,.pvp-buttons .join-row .btn{min-height:50px}.pvp-rank .league-list li{padding:9px 12px;font-size:16px}.pvp-rank .empty-board{flex:1;justify-content:center;min-height:140px}}@media (max-height:520px){.play-row:not(.scroll-host>.play-row){background:linear-gradient(#2a1c12,#1f150e);border-top:1px solid #e9c46a47;margin-left:-12px;margin-right:-12px;padding:8px 12px 10px;box-shadow:0 -8px 14px #00000073}}.toggle-row{cursor:pointer;align-items:center;gap:10px;min-height:40px;display:flex}.toggle-row input{width:22px;height:22px;accent-color:var(--gold)}.ux6-portrait{vertical-align:middle;background:radial-gradient(at 50% 30%,#404553,#171923);border-radius:10px;flex:none;display:inline-grid;position:relative;overflow:hidden}.ux6-portrait>svg{grid-area:1/1;display:block}.ux6-portrait svg:has(image)>.ux6-portrait-placeholder{display:none}.ux6-silhouette>svg{filter:brightness(0)drop-shadow(0 0 1px #c2d5e2);opacity:.8}.ux4-landscape{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.ux4-paint{width:100%;height:100%;display:block}.ux4-machine{aspect-ratio:1;will-change:transform;margin-top:-4%;margin-left:-4%;animation:42s linear infinite ux4-turn;position:absolute}.ux4-machine svg{width:100%;height:100%;display:block}.ux4-ray{will-change:transform;width:12%;animation:14s ease-in-out infinite alternate ux4-drift;position:absolute;top:13%;left:36%}.ux4-ray svg{width:100%;display:block}@keyframes ux4-drift{to{transform:translate(40px,-10px)rotate(8deg)}}@keyframes ux4-turn{to{transform:rotate(360deg)}}.ux4-furnace-glow{will-change:opacity;background:radial-gradient(at 60%,#ffab4c38,#0000 70%);animation:5s ease-in-out infinite alternate ux4-glow;position:absolute;inset:66% 5% 0}@keyframes ux4-glow{to{opacity:.3}}.ux4-calm *,.ux-calm .ux4-landscape *,.ux4-mini *{animation:none!important}.act-11 .ux-act-banner{background:linear-gradient(90deg,#0000,#213e55e8 22% 78%,#0000)}.act-12 .ux-act-banner{background:linear-gradient(90deg,#0000,#3c2220ed 22% 78%,#0000)}.act-13 .ux-act-banner{background:linear-gradient(90deg,#0000,#374c5aeb 22%,#674638eb 78%,#0000)}:is(.act-11,.act-12,.act-13) .ux-act-banner{border-block:1px solid color-mix(in srgb,var(--accent) 45%,transparent)}:is(.act-11,.act-12,.act-13) .ux-act-banner strong{color:var(--accent)}:is(.act-11,.act-12,.act-13) .ux-act-banner{box-sizing:border-box;max-width:calc(100% - 20px)}:is(.act-11,.act-12,.act-13) .ux-act-banner strong{white-space:normal}.book-3 .ux-region.locked .ux-region-art{filter:saturate(.6)brightness(.8)}.book-3 .ux-region-fog{opacity:.82}.book-3 .ux-region.soon .ux-region-art{filter:saturate(.5)brightness(.7)}.book-3 .ux-region-art{-webkit-mask:radial-gradient(closest-side,#000 65%,#0000 100%);mask:radial-gradient(closest-side,#000 65%,#0000 100%)}.book-3{background:radial-gradient(at 30%,#5b718533,#0000 60%),radial-gradient(at 80% 40%,#a1745833,#0000 60%)}@media (prefers-reduced-motion:reduce){.ux4-landscape *{animation:none!important}}@media (max-height:520px),(pointer:coarse){.ux4-smoke{animation:none}.ux4-cloud-near{display:none}}.campaign-map.ux-map{--accent:#ffe1a0;--cloud-a:url(/assets/art/ux2/cloud_a.webp);--cloud-b:url(/assets/art/ux2/cloud_b.webp);animation:.5s ease-out both ux-map-in;container-type:inline-size}.campaign-map.ux-map.ux-calm{animation:none}.campaign-map.ux-map-world{background:radial-gradient(75% 70% at 50% 52%,#0000 45%,#0009 100%),repeating-linear-gradient(0deg,#ffe6b40b 0 1px,#0000 1px 7cqw),repeating-linear-gradient(90deg,#ffe6b40b 0 1px,#0000 1px 7cqw),radial-gradient(50% 40% at 30% 70%,#466e7873,#0000 70%),radial-gradient(60% 50% at 75% 30%,#785a3c59,#0000 70%),linear-gradient(160deg,#22384a,#132130 60%,#1f1a14);animation-name:ux-world-in}.ux-map-world .act-tabs{display:none}.ux-tabs-row{flex-wrap:wrap;gap:6px;display:flex}@keyframes ux-map-in{0%{opacity:0;transform:scale(1.05)}to{opacity:1;transform:none}}@keyframes ux-world-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:none}}.ux-amb{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden;container-type:size}.ux-amb .p{left:var(--x,0);top:var(--y,0);will-change:transform, opacity;display:block;position:absolute}.ux-amb .p b{display:block}.ux-amb .p.snow,.ux-amb .p.ash{width:var(--s);height:var(--s);animation:ux-fall var(--d) linear var(--delay) infinite;top:0}.ux-amb .p.snow b{background:radial-gradient(circle, var(--c) 0 38%, transparent 72%);width:100%;height:100%;opacity:var(--o);border-radius:50%;animation:2.8s ease-in-out infinite alternate ux-sway}.ux-amb .p.ash b{background:var(--c);width:100%;height:100%;opacity:calc(var(--o) * .6);border-radius:1px;animation:3.4s ease-in-out infinite alternate ux-tumble}@keyframes ux-fall{0%{transform:translateY(-4cqh)}to{transform:translate3d(var(--drift), 104cqh, 0)}}@keyframes ux-sway{0%{transform:translate(-6px)}to{transform:translate(6px)}}@keyframes ux-tumble{0%{transform:translate(-8px)rotate(0)}to{transform:translate(8px)rotate(160deg)}}.ux-amb .p.sand{width:var(--s);background:linear-gradient(90deg, transparent, var(--c), transparent);opacity:0;height:2px;animation:ux-blow var(--d) linear var(--delay) infinite;border-radius:2px;left:0}@keyframes ux-blow{0%{opacity:0;transform:translate(-10cqw)}15%,85%{opacity:var(--o)}to{transform:translate3d(110cqw, var(--rise), 0);opacity:0}}.ux-amb .p.ember,.ux-amb .p.spore,.ux-amb .p.mote{width:var(--s);height:var(--s);background:radial-gradient(circle, #fff 0 14%, var(--c) 42%, transparent 72%);opacity:0;animation:ux-rise var(--d) ease-out var(--delay) infinite;border-radius:50%}.ux-amb .p.spore{background:radial-gradient(circle, var(--c) 0 30%, transparent 72%)}@keyframes ux-rise{0%{opacity:0;transform:translate(0,0)scale(.6)}20%{opacity:1}to{transform:translate3d(var(--drift), var(--rise), 0) scale(1);opacity:0}}.ux-amb .p.wisp{width:var(--s);height:calc(var(--s) * 2.2);background:radial-gradient(ellipse at 50% 65%, var(--c), transparent 70%);opacity:0;animation:ux-wisp var(--d) ease-in-out var(--delay) infinite;border-radius:50% 50% 45% 45%}@keyframes ux-wisp{0%{opacity:0;transform:translate(0,0)scaleX(.8)}30%{opacity:.45}60%{transform:translate3d(calc(var(--drift) * -1), calc(var(--rise) * .6), 0) scaleX(1.1)}to{transform:translate3d(var(--drift), var(--rise), 0) scaleX(.7);opacity:0}}.ux-amb .p.firefly{width:var(--s);height:var(--s);background:radial-gradient(circle, #fff 0 18%, var(--c) 40%, transparent 72%);box-shadow:0 0 8px 2px color-mix(in srgb, var(--c) 45%, transparent);animation:ux-wander var(--d) ease-in-out var(--delay) infinite alternate, ux-blink 2.6s ease-in-out var(--delay) infinite;border-radius:50%}@keyframes ux-wander{0%{transform:translate(0,0)}50%{transform:translate3d(var(--dx), calc(var(--dy) * -1), 0)}to{transform:translate3d(calc(var(--dx) * -.6), var(--dy), 0)}}@keyframes ux-blink{0%,to{opacity:.12}50%{opacity:1}}.ux-amb .p.star{width:var(--s);height:var(--s);background:radial-gradient(circle, var(--c) 0 30%, transparent 70%);animation:ux-twinkle var(--d) ease-in-out var(--delay) infinite alternate;border-radius:50%}@keyframes ux-twinkle{0%{opacity:.2;transform:scale(.7)}to{opacity:1;transform:scale(1.2)}}.ux-amb .p.glint{width:var(--s);height:var(--s);background:radial-gradient(circle, #fff 0 12%, transparent 32%), linear-gradient(transparent 46%, var(--c) 50%, transparent 54%), linear-gradient(90deg, transparent 46%, var(--c) 50%, transparent 54%);opacity:0;animation:ux-glint var(--d) ease-in-out var(--delay) infinite}@keyframes ux-glint{0%,30%,to{opacity:0;transform:scale(.2)rotate(0)}15%{opacity:1;transform:scale(1)rotate(45deg)}}.ux-amb .p.bubble{width:var(--s);height:var(--s);border:1.5px solid var(--c);opacity:0;animation:ux-bubble var(--d) ease-out var(--delay) infinite;border-radius:50%}@keyframes ux-bubble{0%,to{opacity:0;transform:scale(.2)}55%{opacity:.8;transform:scale(1)}65%{opacity:0;transform:scale(1.5)}}.ux-amb .p.fog{width:var(--w);height:calc(var(--w) * .35);background:radial-gradient(ellipse closest-side, var(--c), transparent);animation:ux-drift var(--d) ease-in-out var(--delay) infinite alternate;left:-20%}@keyframes ux-drift{0%{transform:translate(-10cqw)}to{transform:translate(70cqw)}}.ux-amb .p.shadow{width:var(--w);height:calc(var(--w) * .42);animation:ux-pass var(--d) linear var(--delay) infinite;background:radial-gradient(closest-side,#0003,#0000);left:0}@keyframes ux-pass{0%{transform:translate(-70cqw,-12cqh)}to{transform:translate(120cqw,12cqh)}}.ux-amb .p.clouds{width:200%;height:var(--h);background:var(--img) repeat-x 0 0 / 50% 100%;opacity:var(--o);animation:ux-scroll var(--d) linear var(--delay) infinite;left:0}@keyframes ux-scroll{0%{transform:translate(0,0)}to{transform:translate(-50%)}}.ux-amb .p.birds,.ux-amb .p.bats{animation:ux-fly var(--d) linear var(--delay) infinite;left:0}.ux-amb .p.bats{animation-name:ux-flit}.ux-amb .p.birds b,.ux-amb .p.bats b,.ux-amb .p.circling b{width:var(--s);height:calc(var(--s) * .5);background:var(--c,#1a1410);-webkit-mask:var(--wing) center / 100% 100% no-repeat;-webkit-mask:var(--wing) center / 100% 100% no-repeat;mask:var(--wing) center / 100% 100% no-repeat;animation:ux-flap var(--flap) ease-in-out infinite alternate;--wing:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 10'%3E%3Cpath d='M0 3 Q5 0 10 6 Q15 0 20 3 Q15 2 10 9 Q5 2 0 3Z'/%3E%3C/svg%3E")}.ux-amb .p.bats b{--wing:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 10'%3E%3Cpath d='M0 2 L4 4 L6 2 L8 5 L10 3 L12 5 L14 2 L16 4 L20 2 L17 8 L14 6 L12 9 L10 7 L8 9 L6 6 L3 8Z'/%3E%3C/svg%3E")}@keyframes ux-flap{0%{transform:scaleY(1)}to{transform:scaleY(-.35)}}@keyframes ux-fly{0%{transform:translate(-6cqw)}50%{transform:translate3d(50cqw, var(--rise), 0)}to{transform:translate(106cqw)}}@keyframes ux-flit{0%{transform:translate(-6cqw)}25%{transform:translate3d(24cqw, var(--rise), 0)}50%{transform:translate3d(50cqw, calc(var(--rise) * -1), 0)}75%{transform:translate3d(78cqw, var(--rise), 0)}to{transform:translate(106cqw)}}.ux-amb .p.circling{animation:ux-orbit var(--d) linear var(--delay) infinite}.ux-amb .p.circling b{left:var(--r);opacity:.75;position:absolute}@keyframes ux-orbit{to{transform:rotate(360deg)}}.ux-amb .p.glow{width:var(--size);height:var(--size);background:radial-gradient(circle closest-side, var(--c), transparent);mix-blend-mode:screen;animation:ux-pulse var(--d) ease-in-out infinite alternate;border-radius:50%}@keyframes ux-pulse{0%{opacity:.55;transform:translate(-50%,-50%)scale(.85)}to{opacity:1;transform:translate(-50%,-50%)scale(1.1)}}.ux-amb .p.beam{background:conic-gradient(from 0deg, transparent 0 78deg, var(--c) 88deg, transparent 98deg 258deg, var(--c) 268deg, transparent 278deg);mix-blend-mode:screen;border-radius:50%;width:80cqw;height:80cqw;margin:-40cqw 0 0 -40cqw;animation:10s linear infinite ux-spin;-webkit-mask:radial-gradient(circle closest-side,#000 4%,#0000 100%);mask:radial-gradient(circle closest-side,#000 4%,#0000 100%)}@keyframes ux-spin{to{transform:rotate(360deg)}}.ux-amb.calm .p{animation:none!important}.ux-amb.calm .p:is(.snow,.ash,.sand,.ember,.spore,.mote,.wisp,.birds,.bats,.circling,.bubble,.glint,.shadow){display:none}.ux-amb.calm .p.glow{opacity:.8;transform:translate(-50%,-50%)}.ux-amb.calm .p.firefly{opacity:.6}@media (max-height:520px),(pointer:coarse){.ux-amb .p.lite-hide{display:none}}.ux-trail{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0}.campaign-map.ux-map .ux-trail{display:block}.ux-trail .seg{fill:none;stroke-linecap:round;stroke-linejoin:round}.ux-trail .seg.dark{display:none}.ux-trail.drawn .seg.dark,.ux-trail.world .seg.dark{stroke:#f0dcb466;stroke-width:.7px;stroke-dasharray:.01 1.8;display:inline}.ux-trail.world .seg{stroke-width:1.3px}.ux-trail.world .seg.dark{stroke:#f0dcb480}.ux-trail .seg.lit,.ux-trail .seg.next{stroke:var(--accent);stroke-width:1px;stroke-dasharray:.01 1.7;opacity:.9}.ux-trail .seg.next{stroke-width:1.3px;stroke-dasharray:.01 1.5}.ux-trail-next{animation:1.1s ease-in-out infinite alternate ux-trail-pulse}@keyframes ux-trail-pulse{0%{opacity:.3}to{opacity:1}}.ux-calm .ux-trail-next{animation:none}.level-node.current:after{content:"";border:2px solid var(--accent);pointer-events:none;border-radius:50%;animation:1.8s ease-out infinite ux-ring;position:absolute;inset:-6px}@keyframes ux-ring{0%{opacity:.9;transform:scale(.9)}to{opacity:0;transform:scale(1.6)}}.ux-calm .level-node.current:after{opacity:.8;animation:none}.level-node .map-hero{width:34px;height:34px;box-shadow:0 0 0 2px var(--gilt,#e9c46a), 0 4px 10px #000000b3;pointer-events:none;background:#1a120c;border-radius:50%;place-items:center;margin-left:-17px;animation:1.4s ease-in-out infinite ux-hop;display:grid;position:absolute;bottom:calc(100% + 6px);left:50%;overflow:hidden}.level-node .map-hero:after{content:"";border:5px solid #0000;border-top-color:var(--gilt,#e9c46a);margin-left:-5px;position:absolute;bottom:-7px;left:50%}@keyframes ux-hop{50%{transform:translateY(-5px)}}.ux-calm .level-node .map-hero{animation:none}.campaign-map.ux-map .level-node{z-index:1}.ux-foes{z-index:2;background:#0a0604b8;border-radius:999px;align-items:center;gap:4px;padding:4px 10px 4px 12px;display:flex;position:absolute;bottom:10px;left:10px;box-shadow:inset 0 0 0 1px #e9c46a59}.ux-foes small{color:#e9d7b0;font-family:var(--font-display);letter-spacing:.04em;margin-right:4px;font-size:11px}.ux-foes .boss,.ux-region-foes .boss{border-radius:50%;display:inline-flex;box-shadow:0 0 0 2px #b8321e,0 0 10px #dc3c1e99}.ux-act-banner{z-index:3;pointer-events:none;text-align:center;background:linear-gradient(90deg,#0000,#0c0805db 22% 78%,#0000);flex-direction:column;align-items:center;padding:10px 70px 12px;animation:2.6s forwards ux-banner;display:flex;position:absolute;top:12%;left:50%}.ux-act-banner span{color:#d9c6a0;font-family:var(--font-display);letter-spacing:.3em;text-transform:uppercase;font-size:13px}.ux-act-banner strong{color:var(--gilt-bright,#ffe08a);font-family:var(--font-display);text-shadow:0 2px #000,0 0 18px #ffc85a66;white-space:nowrap;font-size:clamp(20px,3.2cqw,40px)}.ux-act-banner small{color:var(--accent);font-family:var(--font-display);letter-spacing:.2em;text-transform:uppercase;font-size:12px}@keyframes ux-banner{0%{opacity:0;transform:translate(-50%,-14px)}12%,78%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%)}}.ux-world-btn{font-family:var(--font-display);font-size:12px}.ux-world{transition:transform .42s ease-in,opacity .42s ease-in;position:absolute;inset:0}.ux-world.zooming{opacity:0;transform:scale(2.6)}.ux-region{aspect-ratio:16/10;cursor:pointer;z-index:1;--accent:#ffe1a0;background:0 0;border:none;width:30cqw;padding:0;position:absolute;transform:translate(-50%,-50%)}.ux-region:disabled{cursor:default}.ux-region:before{content:"";background:radial-gradient(ellipse closest-side, color-mix(in srgb, var(--accent) 40%, transparent), transparent);opacity:0;border-radius:50%;transition:opacity .25s;position:absolute;inset:-8%}.ux-region.open:before{opacity:.35}.ux-region.open:hover:before,.ux-region.here:before{opacity:1}.ux-region.here:before{animation:2.4s ease-in-out infinite alternate ux-breathe}@keyframes ux-breathe{0%{opacity:.45}to{opacity:1}}.ux-region-art{transition:transform .3s;position:absolute;inset:0;overflow:hidden;-webkit-mask:radial-gradient(closest-side,#000 58%,#0000 100%);mask:radial-gradient(closest-side,#000 58%,#0000 100%)}.ux-region.open:hover .ux-region-art{transform:scale(1.06)}.ux-region.locked .ux-region-art{filter:grayscale(.9)brightness(.45)}.ux-region.soon .ux-region-art{filter:brightness(.35)saturate(.3)}.ux-region-fog{pointer-events:none;position:absolute;inset:-4% -6%;overflow:hidden;-webkit-mask:radial-gradient(closest-side,#000 50%,#0000 100%);mask:radial-gradient(closest-side,#000 50%,#0000 100%)}.ux-region-fog:before,.ux-region-fog:after{content:"";background:var(--cloud-a) repeat-x 0 0 / 50% 100%;opacity:.85;width:200%;height:70%;animation:60s linear infinite ux-scroll;position:absolute;left:0}.ux-region-fog:before{top:5%}.ux-region-fog:after{background-image:var(--cloud-b);opacity:.7;animation-duration:85s;animation-direction:reverse;top:35%}.ux-calm .ux-region-fog:before,.ux-calm .ux-region-fog:after{animation:none}.ux-region-label{color:#f3e6c8;white-space:nowrap;pointer-events:none;background:linear-gradient(#1e140ceb,#0e0906eb);border-radius:6px;flex-direction:column;align-items:center;min-width:70%;padding:3px 12px 4px;display:flex;position:absolute;bottom:2%;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #0b0705,0 0 0 2px #e9c46a8c,0 6px 14px #0009}.ux-region-num{color:#c9b48a;font-family:var(--font-display);letter-spacing:.18em;text-transform:uppercase;font-size:max(9px,.85cqw)}.ux-region-label strong{font-family:var(--font-display);font-size:max(11px,1.25cqw)}.ux-region-label small{color:var(--gilt-bright,#ffe08a);font-size:max(10px,.95cqw)}.ux-region.done .ux-region-num{color:var(--gilt-bright,#ffe08a)}.ux-region.locked .ux-region-label{opacity:.8}.ux-region-foes{opacity:0;pointer-events:none;background:#0a0604b3;border-radius:999px;align-items:center;gap:3px;padding:2px 6px;transition:opacity .2s;display:flex;position:absolute;top:calc(100% + 2px);left:50%;transform:translate(-50%)}.ux-region.open:hover .ux-region-foes,.ux-region.here .ux-region-foes,.ux-region:focus-visible .ux-region-foes{opacity:1}.ux-region-hero{width:36px;height:36px;box-shadow:0 0 0 2px var(--gilt,#e9c46a), 0 4px 12px #000000bf;pointer-events:none;background:#1a120c;border-radius:50%;place-items:center;margin:-18px 0 0 -18px;animation:1.4s ease-in-out infinite ux-hop;display:grid;position:absolute;top:30%;left:50%;overflow:hidden}.ux-world-title{z-index:2;color:#f3e6c8;text-shadow:0 2px #000;pointer-events:none;flex-direction:column;align-items:flex-end;display:flex;position:absolute;top:10px;right:14px}.ux-world-title span{color:#c9b48a;font-family:var(--font-display);letter-spacing:.3em;text-transform:uppercase;font-size:12px}.ux-world-title strong{font-family:var(--font-display);font-size:clamp(16px,2.2cqw,28px)}.ux-world-title small{color:var(--gilt-bright,#ffe08a)}.ux-amb.mini{z-index:0}@media (max-height:520px){.campaign-map.ux-map .campaign-tabs{gap:4px;top:6px;left:6px}.campaign-map.ux-map .campaign-tabs .chip{min-height:0;padding:2px 7px;font-size:10px;line-height:1.5}.ux-tabs-row,.campaign-map.ux-map .act-tabs,.campaign-map.ux-map .book-tabs{gap:3px}.campaign-map.ux-map.nodes-11 .level-node{width:40px;height:40px}.campaign-map.ux-map.nodes-11 .level-node.boss{width:48px;height:48px}.campaign-map.ux-map .level-node .node-num{font-size:15px}.campaign-map.ux-map .level-node .stars{font-size:10px!important}.ux-foes small,.ux-region-foes{display:none}.ux-foes{padding:3px 6px}.ux-foes .enemy-face{width:20px!important;height:20px!important}.level-node .map-hero{width:26px;height:26px;margin-left:-13px}.ux-region-hero{width:26px;height:26px;margin:-13px 0 0 -13px}.ux-act-banner{padding:6px 40px 8px}.ux-world-title span{display:none}}.ux6-screen>.ux6-header{flex:none;min-height:78px;margin:0 16px 8px}.ux6-header{isolation:isolate;border:1px solid var(--ux6-accent);color:#fff5dc;border-radius:12px 3px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 3px #15131d99,0 4px 14px #0004}.ux6-header:after{content:"";z-index:-1;background:linear-gradient(90deg,#10131de8,#10131d66);position:absolute;inset:0}.ux6-header-map{z-index:-2;background-position:50% 45%;background-size:cover;position:absolute;inset:0}.ux6-header .ux-amb{z-index:-1;pointer-events:none}.ux6-header-text{text-shadow:0 2px 4px #000;padding:12px 18px;position:relative}.ux6-header h2{color:#fff5dc;margin:3px 0 0;font-size:23px}.ux6-header small{color:#f2e8d3;font-size:14px}.ux6-screen .panel,.ux6-screen .hero-card{border-color:#9c815b;border-radius:12px 3px;box-shadow:inset 0 0 0 2px #17131a88,0 6px 18px #0004}.ux6-screen .hero-card.selected{border-color:var(--gold)}.ux6-screen .hero-detail,.ux6-screen .cosmetic,.ux6-beast-portrait{animation:.25s ease-out both ux6-arrive}@keyframes ux6-arrive{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.ux6-bestiary .bestiary-layout{align-items:stretch;min-height:0;padding-top:4px}.ux6-regions{scrollbar-gutter:stable;flex:1;min-width:0;min-height:0;padding:3px 8px 16px 3px;overflow:auto}.ux6-region+.ux6-region{margin-top:20px}.ux6-region .ux6-header{margin-bottom:10px}.ux6-bestiary .bestiary-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;display:grid;overflow:visible}.ux6-bestiary .bestiary-cell{aspect-ratio:auto;color:#f2e7d4;background:linear-gradient(155deg,#302d36,#17151d);grid-template-rows:64px auto;gap:6px;min-height:119px;padding:9px 5px;font-size:14px;line-height:1.15}.ux6-bestiary .bestiary-cell .ux6-portrait{zoom:1}.ux6-bestiary .bestiary-cell.unknown{opacity:1;color:#b5b3bd}.ux6-bestiary .bestiary-cell.boss{background:linear-gradient(150deg,#4b3035,#1c1722);border-color:#bd9467;box-shadow:inset 0 0 0 2px #9b704744}.ux6-bestiary .bestiary-cell.selected{border-color:#fff0b1;box-shadow:0 0 0 2px #fff0b177}.ux6-boss-label{text-transform:uppercase;letter-spacing:.08em;color:#ffe1a2;grid-column:1/-1;font-size:11px}.ux6-bestiary .bestiary-card{flex:none;width:36%;max-width:440px;max-height:100%}.ux6-bestiary .bestiary-card .panel-scroll{box-sizing:border-box;overflow-wrap:anywhere;width:100%;padding:16px}.ux6-beast-portrait{background:#171923;border:1px solid #9c815b;border-radius:12px 3px;margin:auto;padding:8px}.ux6-bestiary .beast-stage-list{max-height:none}.ux6-screen :is(button,a):focus-visible{outline-offset:2px;outline:3px solid #fff0b1}.ux6-collection .collection-grid{padding-top:4px}.ux6-collection .cosmetic{min-width:0}.ux6-collection .cosmetic strong{line-height:1.25}.ux6-collection .cosmetic.locked{opacity:1}.ux6-screen .hero-detail{min-width:0}.ux6-heroes .heroes-layout{flex:1;min-height:0;overflow:hidden}.ux6-heroes .hero-list,.ux6-heroes .hero-detail{scrollbar-gutter:stable;min-height:0;overflow:auto}.ux6-heroes .hero-detail{max-height:100%}@media (max-height:520px){.ux6-screen>.ux6-header{min-height:50px;margin:0 10px 5px}.ux6-header-text{padding:7px 12px}.ux6-header h2{margin:1px 0 0;font-size:18px}.ux6-header small{font-size:12px}.ux6-bestiary .bestiary-layout{gap:8px;padding:4px 10px 10px}.ux6-bestiary .bestiary-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.ux6-bestiary .bestiary-card{width:42%}.ux6-bestiary .bestiary-card .panel-scroll{padding:10px}.ux6-beast-portrait .ux6-portrait{width:114px!important;height:114px!important}.ux6-screen .heroes-howto{margin-bottom:4px;padding:6px 10px;font-size:13px}.ux6-screen .heroes-howto span+span{display:none}.ux6-screen .heroes-layout{padding-top:4px}.ux6-collection .screen-hint{margin:4px 12px 8px;font-size:14px}.ux6-collection .collection-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}@media (max-width:600px) and (min-height:521px){.ux6-bestiary .bestiary-layout{flex-direction:column;overflow:auto}.ux6-regions{flex:none;max-height:45vh}.ux6-bestiary .bestiary-card{width:100%;max-width:none;max-height:none;overflow:visible}}.ux6-still *,.ux6-still :before,.ux6-still :after{transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){.ux6-screen *,.ux6-screen :before,.ux6-screen :after{transition:none!important;animation:none!important}}.menu-screen.ux5-screen .menu-layout{overscroll-behavior:contain;scrollbar-gutter:stable;grid-template-rows:auto;grid-template-columns:minmax(0,1fr) 230px;align-items:start;gap:18px;padding:14px 22px 24px;display:grid;overflow:auto}.menu-screen.ux5-screen .title-block{zoom:1;flex-direction:column;gap:12px;min-width:0;padding:0;display:flex;container-type:normal}.menu-screen.ux5-screen .logo{text-align:left;margin:0;font-size:34px;line-height:1.1}.menu-screen.ux5-screen .tagline{margin:0;font-size:15px}.ux5-heading{justify-content:space-between;align-items:center;gap:14px;display:flex}.ux5-heading .tagline{text-align:right}.menu-screen.ux5-screen .event-banner{align-self:stretch;width:auto;min-width:0;padding:6px 10px;font-size:12px;animation:none}.menu-screen.ux5-screen .side.scroll-host{zoom:1;align-self:start;max-height:none;margin:0}.menu-screen.ux5-screen .panel-scroll{overflow:visible}.ux5-featured{grid-template-columns:minmax(0,1.25fr) minmax(235px,1fr);gap:14px;display:grid}.ux5-frame{background:linear-gradient(135deg,#30291ff5,#161b20f5);border:1px solid #ad8550;border-radius:12px;min-width:0;overflow:hidden;box-shadow:inset 0 0 0 3px #131619,inset 0 0 0 4px #d9af6633,0 6px 20px #0005}.ux5-continue{flex-direction:column;display:flex}.ux5-scenery{isolation:isolate;--cloud-a:url(/assets/art/ux2/cloud_a.webp);--cloud-b:url(/assets/art/ux2/cloud_b.webp);flex:1;height:140px;min-height:130px;position:relative;overflow:hidden;container-type:inline-size}.ux5-scenery>img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.ux5-scenery:after{content:"";pointer-events:none;background:linear-gradient(#0000 20%,#101720e8);position:absolute;inset:0}.ux5-scenery .ux5-atmosphere{pointer-events:none;position:absolute;inset:0}.ux5-region{z-index:2;text-shadow:0 2px 3px #000;flex-direction:column;display:flex;position:absolute;inset:auto 16px 12px}.ux5-region small{color:#f2cf89;text-transform:uppercase;letter-spacing:.12em;font-size:12px}.ux5-region strong{color:#fff0d0;font-family:var(--font-display);font-size:17px;line-height:1.25}.ux5-journey{padding:14px 16px 16px}.ux5-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:#dec292;font-size:11px}.ux5-journey h2{color:#fff2d5;margin:5px 0 8px;font-size:22px;line-height:1.15}.ux5-progress{color:#e8dbc4;flex-wrap:wrap;align-items:center;gap:5px 12px;font-size:13px;display:flex}.ux5-progress small{color:#d5c8b4;font-size:12px}.ux5-stars{color:#ffe1a0}.ux5-empty-stars{color:#c6bda9}.ux5-screen .ux5-play{justify-content:space-between;align-items:center;width:100%;min-height:44px;margin-top:12px;font-size:17px;animation:none;display:flex}.ux5-companion{padding:14px}.ux5-hero-link{color:#fff0d0;text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:0;align-items:center;gap:12px;padding:0;display:flex}.ux5-hero-link>span{flex-direction:column;gap:3px;min-width:0;display:flex}.ux5-hero-link>img{width:90px!important;height:90px!important}.ux5-hero-link strong{font-family:var(--font-display);font-size:21px;line-height:1.2}.ux5-hero-link em{color:#f4cb7c;margin-top:5px;font-size:13px;font-style:normal}.ux5-screen .menu-loadout{box-shadow:none;background:0 0;border:0;margin:12px 0;padding:0;display:flex}.ux5-screen .menu-loadout-part:first-child{display:none}.ux5-screen .menu-loadout-part:last-child{background:#11161c99;border:1px solid #b28a4e55;border-radius:6px;width:100%;padding:8px}.ux5-upcoming{border-top:1px solid #d9b67840;padding-top:10px}.ux5-upcoming h3{color:#ebca8e;margin:0 0 3px;font-size:14px}.ux5-upcoming p{color:#e1d5c1;margin:0 0 6px;font-size:12px;line-height:1.35}.ux5-upcoming ul{flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none;display:flex}.ux5-upcoming li{flex:110px}.ux5-upcoming button{color:#fff0d0;width:100%;font:inherit;text-align:left;cursor:pointer;background:#ffe0a00a;border:1px solid #b28a4e40;border-radius:5px;align-items:center;gap:6px;padding:4px;font-size:12px;display:flex}.ux5-upcoming button>span:last-child{margin-left:auto}.ux5-modes h2{color:#ebcf99;letter-spacing:.04em;margin:0 0 8px;font-size:15px}.ux5-mode-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.ux5-mode{color:#fff0d0;text-align:left;width:100%;min-height:92px;font:inherit;cursor:pointer;background:linear-gradient(130deg,#30312cf2,#182026f2);border:1px solid #a184545e;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:9px;transition:transform .16s,border-color .16s;display:flex;position:relative;box-shadow:inset 0 0 0 2px #1118}.ux5-mode-copy{flex:1;min-width:80px}.ux5-mode strong{font-size:14px;line-height:1.2;display:block}.ux5-mode small{color:#d3cbbd;margin-top:4px;font-size:12px;line-height:1.25;display:block}.ux5-mode.locked{cursor:default;background:linear-gradient(130deg,#242a2df2,#171b20f2)}.ux5-mode.locked img{filter:grayscale(.65);opacity:.7}.ux5-state{color:#b9d9bf;letter-spacing:.04em;flex-basis:100%;padding-left:44px;font-size:10px;display:block}.ux5-mode.locked .ux5-state{color:#c9b9a3}.ux5-state.fresh{color:#ffdf8b}.ux5-mode:not(.locked):hover{border-color:#ecc782;transform:translateY(-2px)}.ux5-screen :is(button,input):focus-visible{outline-offset:3px;outline:3px solid #ffe3a1;scroll-margin:12px}.ux5-featured>*,.ux5-modes{animation:.45s ease-out both ux5-arrive}.ux5-companion{animation-delay:70ms}.ux5-modes{animation-delay:.12s}@keyframes ux5-arrive{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.ux5-calm *,.ux5-calm :before,.ux5-calm :after{transition:none!important;animation:none!important}@media (max-width:1100px){.menu-screen.ux5-screen .menu-layout{grid-template-columns:minmax(0,1fr)}.menu-screen.ux5-screen .side.scroll-host{width:auto;display:block}.ux5-mode-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-height:520px) and (min-width:650px){.menu-screen.ux5-screen .menu-layout{padding:10px 16px 20px}.menu-screen.ux5-screen .logo{font-size:25px}.menu-screen.ux5-screen .tagline{display:none}.ux5-featured{grid-template-columns:minmax(0,1.1fr) minmax(235px,1fr)}.ux5-scenery{height:110px;min-height:110px}.ux5-journey{padding:9px 12px 12px}.ux5-journey h2{font-size:18px}.ux5-companion{padding:10px}.ux5-hero-link .hero-portrait{width:70px!important;height:70px!important}.ux5-hero-link strong{font-size:18px}.ux5-screen .menu-loadout{margin:7px 0}.ux5-screen .event-banner{font-size:11px}}@media (max-width:649px){.menu-screen.ux5-screen .menu-layout{padding:12px}.ux5-heading{display:block}.ux5-heading .tagline{display:none}.ux5-featured{grid-template-columns:minmax(0,1fr)}.ux5-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.menu-screen.ux5-screen .logo{font-size:30px}.ux5-scenery{flex:none;height:170px}.ux5-hero-link{justify-content:flex-start}}@media (prefers-reduced-motion:reduce){.ux5-screen *,.ux5-screen :before,.ux5-screen :after{transition:none!important;animation:none!important}}.screen.menu-screen.with-live-bg{isolation:isolate;background:#0d0907}.menu-backdrop{z-index:-1;pointer-events:none;--fx:.5;--fy:.5;position:absolute;inset:0;overflow:hidden;container-type:size}.mb-stage{width:max(100cqw,177.78cqh);height:max(56.25cqw,100cqh);left:calc((100cqw - max(100cqw, 177.78cqh)) * var(--fx));top:calc((100cqh - max(56.25cqw, 100cqh)) * var(--fy));transform-origin:78% 40%;animation:48s ease-in-out infinite alternate mb-breathe;position:absolute}@keyframes mb-breathe{0%{transform:scale(1)}to{transform:scale(1.035)}}.mb-art{background:var(--menu-art) center / 100% 100% no-repeat;position:absolute;inset:0}.mb-stage>*{position:absolute}.mb-stage i{will-change:transform, opacity;display:block}.mb-clouds{background:var(--cloud) repeat-x 0 0 / 50% 100%;mix-blend-mode:screen;width:200%;animation:180s linear infinite mb-scroll;left:0;-webkit-mask:linear-gradient(#000 55%,#0000);mask:linear-gradient(#000 55%,#0000)}.mb-clouds.a{opacity:.22;--cloud:url(/assets/art/ux2/cloud_a.webp);height:26%;top:2%}.mb-clouds.b{opacity:.16;--cloud:url(/assets/art/ux2/cloud_b.webp);height:22%;animation-duration:260s;animation-direction:reverse;top:18%}@keyframes mb-scroll{to{transform:translate(-50%)}}.mb-sun{aspect-ratio:1;mix-blend-mode:screen;background:radial-gradient(circle closest-side,#ffe2968c,#ffa05038 45%,#0000);border-radius:50%;width:38%;animation:7s ease-in-out infinite alternate mb-sun;top:40.5%;left:66.75%}@keyframes mb-sun{0%{opacity:.75;transform:translate(-50%,-50%)scale(.92)}to{opacity:1;transform:translate(-50%,-50%)scale(1.06)}}.mb-rays{aspect-ratio:1;background:repeating-conic-gradient(from 0deg, #ffd28c29 0 3deg, transparent 3deg 14deg);mix-blend-mode:screen;border-radius:50%;width:90%;margin:-45% 0 0 -45%;animation:140s linear infinite mb-spin;top:40.5%;left:66.75%;-webkit-mask:radial-gradient(circle closest-side,#000 6%,#00000080 30%,#0000 75%);mask:radial-gradient(circle closest-side,#000 6%,#00000080 30%,#0000 75%)}@keyframes mb-spin{to{transform:rotate(360deg)}}.mb-flag{background-image:var(--menu-art);transform-origin:100%;background-repeat:no-repeat;animation:1.7s ease-in-out infinite alternate mb-wave;-webkit-mask:radial-gradient(closest-side,#000 70%,#0000);mask:radial-gradient(closest-side,#000 70%,#0000)}@keyframes mb-wave{0%{transform:skewY(-5deg)scaleX(.96)}50%{transform:skewY(3deg)scaleX(1.02)}to{transform:skewY(-2deg)scaleX(.98)}}.mb-torch{left:var(--x);top:var(--y);aspect-ratio:1;mix-blend-mode:screen;width:1.6%;animation:mb-flicker 2.3s steps(6, jump-none) var(--delay) infinite;background:radial-gradient(circle closest-side,#ffd278e6,#ff8c2859 50%,#0000);border-radius:50%;margin:-.8% 0 0 -.8%}@keyframes mb-flicker{0%,to{opacity:.55}20%{opacity:.95}40%{opacity:.7}70%{opacity:1}}.mb-falls{mix-blend-mode:screen;overflow:hidden;-webkit-mask:linear-gradient(#0000,#000 12% 80%,#0000);mask:linear-gradient(#0000,#000 12% 80%,#0000)}.mb-falls.main{width:4.2%;height:15%;top:60%;left:83.4%}.mb-falls.side{opacity:.8;width:1.9%;height:11%;top:61.6%;left:89.7%}.mb-falls:before{content:"";background:repeating-linear-gradient(#0000 0 7px,#ffffff52 10px,#0000 16px),repeating-linear-gradient(90deg,#ffffff2e 0 2px,#0000 3px 7px);height:200%;animation:.9s linear infinite mb-fall;position:absolute;top:-100%;left:0;right:0}.mb-falls.side:before{animation-duration:1.1s}@keyframes mb-fall{to{transform:translateY(50%)}}.mb-spray{mix-blend-mode:screen;background:radial-gradient(closest-side,#fff5f073,#0000);border-radius:50%;width:16%;height:12%;animation:3.2s ease-in-out infinite alternate mb-spray;top:69%;left:79%}@keyframes mb-spray{0%{opacity:.6;transform:scale(.9,.85)}to{opacity:1;transform:scale(1.12,1.05)}}.mb-mist{background:radial-gradient(closest-side,#ebcde652,#0000);border-radius:50%;width:90%;animation:40s ease-in-out infinite alternate mb-mist;left:-10%}.mb-mist.far{height:18%;top:46%}.mb-mist.near{opacity:.6;width:70%;height:20%;animation-duration:55s;animation-direction:alternate-reverse;top:66%}@keyframes mb-mist{0%{transform:translate(-4%)}to{transform:translate(12%)}}.mb-glint{left:var(--x);top:var(--y);aspect-ratio:1;opacity:0;width:1.1%;animation:mb-glint var(--d) ease-in-out var(--delay) infinite;background:radial-gradient(circle,#fff 0 12%,#0000 34%),linear-gradient(#0000 46%,#ffecbe 50%,#0000 54%),linear-gradient(90deg,#0000 46%,#ffecbe 50%,#0000 54%)}@keyframes mb-glint{0%,35%,to{opacity:0;transform:scale(.2)}17%{opacity:.95;transform:scale(1)}}.mb-bird{left:0;top:var(--y);animation:mb-fly var(--d) linear var(--delay) infinite}.mb-bird b{width:var(--s);height:calc(var(--s) * .5);animation:mb-flap var(--flap) ease-in-out infinite alternate;background:#2a1a24;display:block;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 10'%3E%3Cpath d='M0 3 Q5 0 10 6 Q15 0 20 3 Q15 2 10 9 Q5 2 0 3Z'/%3E%3C/svg%3E") 50%/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 10'%3E%3Cpath d='M0 3 Q5 0 10 6 Q15 0 20 3 Q15 2 10 9 Q5 2 0 3Z'/%3E%3C/svg%3E") 50%/100% 100% no-repeat}@keyframes mb-fly{0%{transform:translate(-3cqw)}50%{transform:translate(50cqw,-3cqh)}to{transform:translate(103cqw,1cqh)}}@keyframes mb-flap{to{transform:scaleY(-.35)}}.mb-fly{left:var(--x);top:var(--y);width:5px;height:5px;animation:mb-wander var(--d) ease-in-out var(--delay) infinite alternate, mb-blink 2.8s ease-in-out var(--delay) infinite;background:radial-gradient(circle,#fff 0 20%,#ffe680 45%,#0000 72%);border-radius:50%;box-shadow:0 0 8px 2px #ffdc6e73}@keyframes mb-wander{50%{transform:translate3d(var(--dx), calc(var(--dy) * -1), 0)}to{transform:translate3d(calc(var(--dx) * -.5), var(--dy), 0)}}@keyframes mb-blink{0%,to{opacity:.1}50%{opacity:1}}.menu-backdrop.dim .mb-shade{background:radial-gradient(60% 70% at 62% 55%,#ffaa501a,#0000 70%),linear-gradient(90deg,#080503b3 0%,#08050340 34%,#08050300 55%,#08050366 100%);position:absolute;inset:0;box-shadow:inset 0 0 120px #00000073}.menu-backdrop.calm *,.menu-backdrop.calm :before{animation:none!important}.menu-backdrop.calm :is(.mb-bird,.mb-glint,.mb-fly,.mb-falls){display:none}.menu-backdrop.calm .mb-sun{transform:translate(-50%,-50%)}@media (max-height:520px),(pointer:coarse){.menu-backdrop .lite-hide,.menu-backdrop .mb-rays,.menu-backdrop .mb-clouds.b{display:none}}.mb-lays{animation:.9s ease-out both mb-lays-in;inset:0}@keyframes mb-lays-in{0%{opacity:0}}.mb-lay,.mb-lay-in{position:absolute;inset:0}.mb-lay{will-change:transform;transform:scale(1.07)}.mb-lay-img{-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block;position:absolute;inset:0}.mb-cl{background:var(--cloud) repeat-x 0 0 / 50% 100%;width:200%;height:100%;animation:320s linear infinite mb-scroll;top:0;left:0}.mb-cl.back{opacity:.42;background-position:31% 0;animation-duration:520s;animation-direction:reverse;top:-3%}.mb-pen{transform-origin:100%;animation:1.7s ease-in-out infinite alternate mb-wave;position:absolute}.menu-backdrop.layered .mb-torch{width:1.1%;margin:-.55% 0 0 -.55%}.menu-backdrop.sway .mb-lay-in{animation:16s ease-in-out infinite alternate mb-sway}@keyframes mb-sway{0%{transform:translate3d(calc(var(--k) * -1.6%), calc(var(--k) * -0.5%), 0)}to{transform:translate3d(calc(var(--k) * 1.6%), calc(var(--k) * 0.5%), 0)}}.menu-backdrop.calm .mb-pen,.menu-backdrop.calm .mb-cl{animation:none!important}@media (max-height:520px),(pointer:coarse){.menu-backdrop .mb-cl.back{display:none}}:root{--nav-w:84px;--nav-h:0px}.nav-rail{z-index:40;box-sizing:border-box;width:calc(var(--nav-w) + var(--safe-left,0px));padding:calc(6px + var(--safe-top,0px)) 0 calc(6px + var(--safe-bottom,0px)) var(--safe-left,0px);background:linear-gradient(90deg,#ffe6aa0d,#0000 40%),linear-gradient(#2c1e13,#150e09);border-right:2px solid #0b0705;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;box-shadow:inset -1px 0 #e9c46a47,4px 0 12px #0000008c}.nav-rail~.screen{left:calc(var(--nav-w) + var(--safe-left,0px))}.nav-scroll{scrollbar-width:none;flex-direction:column;flex:1;align-items:stretch;gap:2px;min-height:0;padding-bottom:14px;display:flex;overflow:hidden auto;-webkit-mask-image:linear-gradient(#000 calc(100% - 18px),#0000);mask-image:linear-gradient(#000 calc(100% - 18px),#0000)}.nav-scroll::-webkit-scrollbar{display:none}.nav-pinned{border-top:1px solid #e9c46a33;flex:none;padding-top:4px}.nav-item{color:#d9c49c;width:100%;font:inherit;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:2px;padding:3px 2px;display:flex;position:relative}.nav-item.on{color:var(--gilt-bright,#ffe6a0);cursor:default;background:linear-gradient(90deg,#ffc85a2e,#ffc85a0a)}.nav-item.on:before{content:"";background:var(--gilt,#e9c46a);border-radius:0 3px 3px 0;width:3px;position:absolute;top:6px;bottom:6px;left:0;box-shadow:0 0 8px #ffbe50b3}.nav-medal{background:radial-gradient(circle at 50% 35%,#4a3322,#1a110b 70%);border-radius:50%;place-items:center;width:38px;height:38px;transition:transform .1s,box-shadow .15s;display:grid;position:relative;box-shadow:0 0 0 2px #0b0705,0 0 0 3px #e9c46a66,0 3px 8px #0009}.nav-medal img{object-fit:cover;border-radius:50%;width:34px;height:34px}.nav-fallback{font-size:20px;line-height:1}.nav-item:hover:not(.on) .nav-medal{box-shadow:0 0 0 2px #0b0705, 0 0 0 3px var(--gilt,#e9c46a), 0 5px 12px #0009, 0 0 14px #ffbe5066;transform:translateY(-2px)}.nav-item.on .nav-medal{box-shadow:0 0 0 2px #0b0705, 0 0 0 3px var(--gilt-bright,#ffe6a0), 0 0 16px #ffbe5099}.nav-item:focus-visible{outline:2px solid var(--gilt,#e9c46a);outline-offset:-2px}.nav-medal .pill{margin:0;position:absolute;top:-5px;right:-12px}.pill.nav-new{color:#08200c;letter-spacing:.04em;text-transform:uppercase;background:linear-gradient(#6fd27a,#2f8f3d);padding:1px 4px;font-size:9px;font-weight:800;animation:1.6s ease-in-out infinite nav-new-pulse;box-shadow:0 0 8px #6ee67899}@keyframes nav-new-pulse{50%{box-shadow:0 0 2px #6ee67833}}.nav-label{text-align:center;width:100%;font-family:var(--font-display);letter-spacing:.02em;text-shadow:0 1px 2px #000;white-space:nowrap;font-size:10.5px;line-height:1.15;display:block}.nav-label-text{transform-origin:50%;display:inline-block}@media (max-height:800px) and (min-height:561px){.nav-item{gap:1px;padding:2px}.nav-medal{width:32px;height:32px}.nav-medal img{width:29px;height:29px}.nav-label{font-size:9.5px}}@media (max-height:560px){:root{--nav-w:66px}.nav-rail{padding-top:calc(3px + var(--safe-top,0px));padding-bottom:calc(3px + var(--safe-bottom,0px))}.nav-scroll{gap:0}.nav-item{gap:1px;padding:2px 1px}.nav-medal{width:28px;height:28px}.nav-medal img{width:26px;height:26px}.nav-fallback{font-size:15px}.nav-label{letter-spacing:0;font-size:9px}.nav-medal .pill{font-size:8px;top:-4px;right:-14px}}@media (orientation:portrait){:root{--nav-w:0px;--nav-h:62px}.nav-rail{width:auto;height:calc(var(--nav-h) + var(--safe-bottom,0px));padding:0 var(--safe-right,0px) var(--safe-bottom,0px) var(--safe-left,0px);border-top:2px solid #0b0705;border-right:none;flex-direction:row;top:auto;right:0;box-shadow:inset 0 1px #e9c46a47,0 -4px 12px #0000008c}.nav-rail~.screen{left:0;bottom:calc(var(--nav-h) + var(--safe-bottom,0px))}.nav-scroll{flex-direction:row;padding:0 14px 0 0;overflow:auto hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 18px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 18px),#0000)}.nav-pinned{border-top:none;border-left:1px solid #e9c46a33;padding:0 0 0 4px}.nav-item{flex:none;justify-content:center;width:66px}.nav-item.on:before{border-radius:3px 3px 0 0;width:auto;height:3px;inset:auto 8px 0}.nav-medal{width:32px;height:32px}.nav-medal img{width:30px;height:30px}}.menu-loadout{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:8px;display:grid}.menu-loadout-part{min-width:0;font:inherit;color:inherit;text-align:left;cursor:pointer;background:linear-gradient(#281b12e0,#160f0aeb);border:1px solid #0b0705;border-radius:8px;align-items:center;gap:8px;padding:5px 10px 5px 6px;transition:filter .12s;display:flex;box-shadow:inset 0 0 0 1px #e9c46a4d}.menu-loadout-part:hover{filter:brightness(1.18)}.menu-loadout-portrait{width:40px;height:40px;box-shadow:0 0 0 2px var(--gilt,#e9c46a);border-radius:50%;flex:none;place-items:center;display:grid;overflow:hidden}.menu-loadout-portrait img{object-fit:cover;width:40px;height:40px}.menu-loadout-text{flex-direction:column;min-width:0;line-height:1.15;display:flex}.menu-loadout-text small{letter-spacing:.1em;text-transform:uppercase;color:var(--gilt,#e9c46a);font-size:10px}.menu-loadout-text strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-loadout-spells{gap:4px;display:flex}.menu-loadout-spell{background:#00000059;border-radius:6px;place-items:center;width:32px;height:32px;display:grid;box-shadow:inset 0 0 0 1px #e9c46a59}.menu-loadout-spell img{border-radius:6px}.menu-loadout-spell.empty{color:#e9c46a99;box-shadow:none;border:1px dashed #e9c46a73;font-weight:800}@media (max-height:560px){.menu-loadout-part{padding:3px 8px 3px 4px}.menu-loadout-portrait,.menu-loadout-portrait img{width:30px;height:30px}.menu-loadout-spell{width:26px;height:26px}.menu-loadout-spell img{width:24px;height:24px}.menu-loadout-text small{font-size:9px}}.heroes-howto{color:#e9d6ae;background:#0a060499;border-radius:8px;flex-wrap:wrap;gap:6px 18px;margin:10px 16px 0;padding:8px 14px;font-size:14px;display:flex;box-shadow:inset 0 0 0 1px #e9c46a40}.heroes-howto>span{flex:260px}.hero-role{color:#f1dfb6;margin:6px 0 4px;font-size:15px;font-style:italic}.hero-actions{flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0 4px;display:flex}.hero-in-field{font-family:var(--font-display);color:#8fe39a;text-shadow:0 1px 2px #000}.hero-unlock{background:#0000004d;border-radius:8px;flex:1;padding:8px 12px 10px;box-shadow:inset 0 0 0 1px #e9c46a59}.hero-unlock h3{margin-top:0}.hero-card .pill.nav-new{position:absolute;top:4px;left:4px}@media (max-height:560px){.heroes-howto{margin:6px 10px 0;padding:4px 10px;font-size:12px}.heroes-howto>span:last-child{display:none}}.grimoire{grid-template-columns:minmax(250px,320px) minmax(0,1fr);align-items:start;gap:16px;padding:16px;display:grid}.grimoire-slots{flex-direction:column;gap:8px;display:flex;position:sticky;top:76px}.grimoire-slots h3{margin:0}.grimoire-slots p{margin:0;font-size:14px}.spell-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.spell-slot{min-height:84px;font:inherit;color:inherit;text-align:center;background:#00000059;border:1px solid #0b0705;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:6px 4px;display:flex;box-shadow:inset 0 0 0 1px #e9c46a66}.spell-slot small{font-size:11px;line-height:1.15}.spell-slot.filled{cursor:pointer;box-shadow:inset 0 0 0 2px var(--gilt,#e9c46a), 0 0 10px #ffbe5040}.spell-slot.empty{box-shadow:none;color:var(--muted,#c8b28a);border-style:dashed;border-color:#e9c46a80}.spell-slot-n{font-family:var(--font-display);opacity:.6;font-size:24px}.spell-slot.locked{cursor:pointer;opacity:.75}.grimoire-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;display:grid}.spell-card{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;display:grid}.spell-card.on{box-shadow:inset 0 0 0 2px var(--gilt,#e9c46a), 0 0 14px #ffbe5040}.spell-card.fresh{box-shadow:inset 0 0 0 2px #6fd27a,0 0 16px #6ee67859}.spell-art{background:#00000059;border-radius:10px;place-items:center;width:68px;height:68px;display:grid;position:relative;overflow:hidden}.spell-card.locked .spell-art img{filter:grayscale()brightness(.55)}.spell-lock{place-items:center;display:grid;position:absolute;inset:0}.spell-body p{margin:4px 0;font-size:14px}.spell-name{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.spell-name .pill{margin:0}.spell-status{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}.spell-when{color:#8fe39a;font-size:13px}.spell-when.locked{color:var(--gilt,#e9c46a)}@media (max-width:900px),(max-height:560px){.grimoire{grid-template-columns:minmax(0,1fr);gap:10px;padding:10px}.grimoire-slots{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px 12px;display:grid;position:static}.grimoire-slots h3{grid-column:1/-1}.grimoire-slots .spell-slots{grid-template-columns:repeat(3,76px)}.spell-slot{min-height:64px}.grimoire-slots p:last-of-type,.grimoire-slots .btn{display:none}.grimoire-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}.unlock-block{text-align:left;box-shadow:inset 0 0 0 2px var(--gilt,#e9c46a), 0 0 18px #ffbe5040;background:radial-gradient(at 50% 0,#ffd2782e,#0000 70%),#00000059;border-radius:10px;margin:10px 0 4px;padding:8px 12px 10px;animation:.5s ease-out both unlock-in}.unlock-block h3{text-align:center;font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--gilt-bright,#ffe6a0);margin:0 0 6px}.unlock-block ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.unlock-block li{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.unlock-icon{background:#00000059;border-radius:8px;place-items:center;width:44px;height:44px;font-size:26px;display:grid}.unlock-text{flex-direction:column;line-height:1.2;display:flex}.unlock-text small{letter-spacing:.1em;text-transform:uppercase;color:var(--gilt,#e9c46a);font-size:11px}.unlock-text em{color:#8fe39a;font-size:13px;font-style:normal}@keyframes unlock-in{0%{opacity:0;transform:scale(.94)}}.login-gate{justify-content:flex-start;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{text-align:center;flex-direction:column;flex-shrink:0;gap:14px;width:min(420px,100%);margin-block:auto;display:flex}.login-card h1{margin:0}.login-tabs{grid-template-columns:1fr 1fr;gap:8px;display:grid}.login-form{flex-direction:column;gap:10px;display:flex}.login-form .code-input{text-transform:none;letter-spacing:normal;width:100%}
