.boss-bubble{position:absolute;left:0;top:0;z-index:4;pointer-events:none;padding:var(--space-2) var(--space-3);border:1px solid var(--frame-gold);border-radius:var(--radius-small);background:var(--surface-panel);box-shadow:var(--frame-bevel);color:var(--frame-light);font:600 15px / 1.35 var(--font-control);text-align:center;text-wrap:balance;animation:boss-bubble-appear .2s ease-out}.boss-bubble:after{content:"";position:absolute;right:calc(-1 * var(--space-2));bottom:var(--space-2);width:var(--space-2);height:var(--space-2);background:var(--frame-gold);clip-path:polygon(0 0,100% 100%,0 100%)}.boss-bubble[hidden]{display:none}.boss-bubble-docked{font-size:13px}.boss-bubble-docked:after{display:none}.boss-bubble-tail{display:none;position:absolute;overflow:visible;pointer-events:none;transform-origin:0 50%}.boss-bubble-comic{animation:none;--boss-comic-ivory: color-mix(in srgb, var(--frame-light) 72%, white);--boss-comic-ink: var(--frame-iron);padding:12px 18px;border:2px solid var(--boss-comic-ink);border-radius:50%;background:var(--boss-comic-ivory);box-shadow:0 3px color-mix(in srgb,var(--boss-comic-ink) 45%,transparent);color:var(--boss-comic-ink);font:700 16px / 1.3 var(--font-display)}.boss-bubble-comic:after,.boss-bubble-comic.boss-bubble-docked:after{display:none}.boss-bubble-comic .boss-bubble-tail{display:block;fill:var(--boss-comic-ivory);stroke:var(--boss-comic-ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.boss-bubble-comic.boss-bubble-docked{font-size:14px}@keyframes boss-bubble-appear{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.boss-bubble{animation:none}}body.on-title-screen{overflow:hidden;background:#12222c}.title-screen{--landscape-focus: .5;position:fixed;inset:0;z-index:100;isolation:isolate;overflow:hidden;min-height:280px;background:#12222c;color:#f9e6b2}.title-screen__scene{position:absolute;inset:0 auto auto 0;width:100%;height:100%;pointer-events:none}.title-screen__landscape,.title-screen__water,.title-screen__atmosphere,.title-screen__shade{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.title-screen__water,.title-screen__atmosphere{opacity:0}.has-atmosphere .title-screen__water,.has-atmosphere .title-screen__atmosphere{opacity:1}.title-screen__sunlight,.title-screen__dragon-glow{mix-blend-mode:screen}.title-screen__rays{opacity:.15}.title-screen__dragon-glow{transform-origin:1228px 314px;animation:title-dragon-breath 5.8s ease-in-out infinite;animation-play-state:paused}[data-motion=playing] .title-screen__dragon-glow{animation-play-state:running}@keyframes title-dragon-breath{0%,to{opacity:.38;transform:scale(.84)}43%{opacity:.86;transform:scale(1.08)}67%{opacity:.56;transform:scale(.94)}}.title-screen__landscape{object-fit:cover;object-position:center}.title-screen__shade{background:linear-gradient(180deg,#06111c12,transparent 55%,#050c1838)}.title-screen__content{position:absolute;top:max(7vh,env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);width:min(420px,37vw);display:flex;align-items:center;flex-direction:column;gap:clamp(28px,4vh,46px)}.title-screen .title-screen__music{position:absolute;z-index:2;right:max(20px,env(safe-area-inset-right,0px));bottom:max(18px,env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:8px;min-height:40px;padding:9px 12px;border:1px solid #d2b37580;border-radius:6px;background:#0a1929bd;box-shadow:0 2px 8px #0003;color:#eed7a0;font:12px Georgia,serif}.title-screen__music:focus-visible{outline:2px solid #fff0b9;outline-offset:3px}.title-screen__logo{width:100%;margin:0;line-height:0;filter:drop-shadow(0 3px 2px #081018b3) drop-shadow(0 10px 20px #07132255)}.title-screen__logo img{display:block;width:100%;height:auto}.title-screen__actions{display:flex;flex-direction:column;align-items:center;gap:12px}.title-screen .title-screen__button{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;width:264px;height:58px;padding:7px 28px;border:0;border-radius:0;background:url(/assets/ui/title-button.svg) center / 100% 100% no-repeat;color:#ffe5a9;font-family:Georgia,Times New Roman,serif;font-size:25px;font-weight:400;font-variant:small-caps;line-height:1;letter-spacing:.045em;white-space:nowrap;text-shadow:0 2px 2px #000;filter:drop-shadow(0 4px 5px #08101699);transition:filter .16s,transform .16s;-webkit-tap-highlight-color:transparent}.title-screen__button svg{flex-shrink:0;width:30px;height:30px;filter:drop-shadow(0 1px 1px #0008)}.title-screen .title-screen__creators{position:relative;display:grid;place-items:center;width:166px;height:52px;min-height:var(--touch-target);padding:4px 12px 16px;border:0;background:none;box-shadow:none;color:var(--frame-light);font-family:var(--font-display);font-size:21px;font-weight:400;letter-spacing:.045em;line-height:1.2;text-shadow:0 2px 2px var(--frame-iron),0 0 6px var(--frame-iron);transition:color .16s,text-shadow .16s}.title-screen__creators:before,.title-screen__creators:after{content:"";position:absolute;pointer-events:none;box-shadow:0 1px 2px var(--frame-iron);transition:filter .16s}.title-screen__creators:before{right:18px;bottom:10px;left:18px;height:1px;background:linear-gradient(to right,transparent,var(--frame-gold) 24%,var(--frame-light) 45%,transparent 47%,transparent 53%,var(--frame-light) 55%,var(--frame-gold) 76%,transparent)}.title-screen__creators:after{bottom:8px;left:calc(50% - 2.5px);width:5px;height:5px;background:var(--frame-light);transform:rotate(45deg)}.title-screen .title-screen__creators:is(:hover,:focus-visible){color:var(--frame-light);text-shadow:0 2px 2px var(--frame-iron),0 0 6px var(--frame-iron),0 0 12px var(--frame-gold)}.title-screen__creators:is(:hover,:focus-visible):before,.title-screen__creators:is(:hover,:focus-visible):after{filter:drop-shadow(0 0 4px var(--frame-gold))}.title-screen .title-screen__button:hover{filter:brightness(1.15) drop-shadow(0 0 9px #efb85466) drop-shadow(0 4px 5px #08101699);transform:translateY(-1px)}.title-screen .title-screen__button:active{transform:translateY(1px)}.title-screen .title-screen__button:focus-visible{outline:2px solid #fff0b9;outline-offset:5px}@media(max-width:640px)and (orientation:portrait){.title-screen{--landscape-focus: .08}.title-screen__landscape{object-position:8% center}.title-screen__content{top:auto;bottom:max(9vh,env(safe-area-inset-bottom,0px));width:min(340px,84vw);gap:38px}}@media(max-height:500px)and (orientation:landscape){.title-screen__content{top:6vh;width:min(310px,34vw);gap:16px}.title-screen__actions{gap:8px}.title-screen .title-screen__start{width:240px;height:50px;font-size:23px}.title-screen .title-screen__creators{height:46px;font-size:20px}.title-screen__button svg{width:25px;height:25px}}@media(min-aspect-ratio:19/10){.title-screen{--landscape-focus-y: .12}.title-screen__landscape{object-position:center 12%}}@media(prefers-reduced-motion:reduce){.title-screen__water,.title-screen__atmosphere{display:none}.title-screen .title-screen__button{transition:none}}dialog.character-picker{width:960px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:12px 18px 16px;color:#eae1c8}dialog.character-picker[data-profile-view]{background:linear-gradient(105deg,#071924ef,#0c2630eb 50%,#06151fee),url(/assets/branding/title-landscape.webp) center / cover}dialog.character-picker>.modal-scroll{max-height:calc(100dvh - 112px)}dialog.character-picker .modal-heading{position:relative;padding:23px 48px 16px;margin:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;border:0;display:block;text-align:center}dialog.character-picker .modal-heading h2{font-size:clamp(28px,4.4vw,46px);line-height:1.13;margin:15px 0 0;color:var(--frame-light);text-wrap:balance}dialog.character-picker .modal-heading .eyebrow{justify-content:center;color:var(--frame-gold);font:600 9px Georgia,serif;letter-spacing:.28em}dialog.character-picker .close-modal{position:absolute;right:0;top:0;width:36px;height:36px;margin:0}.character-heading-rule{display:flex;align-items:center;gap:10px;width:72%;margin:0 auto;color:var(--frame-gold)}.character-heading-rule:before,.character-heading-rule:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--frame-gold))}.character-heading-rule:after{transform:rotate(180deg)}.character-heading-rule svg{width:19px;height:25px}.character-body{padding:10px 10px 4px}.character-identity{display:flex;gap:10px;align-items:center;padding:0 0 17px}.character-identity>div{min-width:0;flex:1}.character-identity strong{display:block;color:#f4dfb0;font-size:13px;overflow-wrap:anywhere}.character-identity small{display:block;margin-top:3px;color:#a2bab8;font-size:10px}.character-session-icon{color:var(--frame-gold)}.character-identity .text-button{font-size:11px;white-space:nowrap}.character-intro{color:#c2d1d3;font:16px/1.5 Georgia,serif;text-align:center;margin:0 0 14px}.character-list{--portrait-size: clamp(150px, min(27vh, calc((100vw - 224px) / 3)), 226px);display:flex;justify-content:safe center;align-items:stretch;gap:clamp(24px,3.4vw,42px);overflow-x:auto;padding:23px 12px 12px;scrollbar-width:thin;scrollbar-color:#9e8148 #132630;scroll-snap-type:x proximity}.character-list-layout{display:contents}.character-selected-preview{display:none}.character-picker .character-card,.character-picker .character-card:is(:hover,.selected){flex:0 0 var(--portrait-size);display:flex;flex-direction:column;align-items:stretch;position:relative;gap:0;margin:0;padding:0;min-width:0;text-align:center;border:0;border-radius:0;background:none;color:#d5dbcf;box-shadow:none;overflow:visible;scroll-snap-align:center}.character-picker .character-card:focus-visible{outline:2px solid var(--frame-blue);outline-offset:7px;border-radius:10px}.character-portrait,.character-new-art,.portrait-choice-art{width:100%;aspect-ratio:1;position:relative;display:block;flex:none;border:1px solid #9a8051;border-radius:50%;background:#0a1d29;box-shadow:0 3px 10px #0005;transition:border-color .18s ease,box-shadow .18s ease}.character-portrait>img,.portrait-choice-art>img{display:block;width:100%;height:100%;aspect-ratio:1;object-fit:cover;object-position:center 10%;border-radius:50%}.portrait-crest{display:none;position:absolute;top:-15px;left:calc(50% - 10px);width:20px;height:27px;color:var(--frame-gold);filter:drop-shadow(0 2px 1px #07121d)}.portrait-crest svg{display:block;width:100%;height:100%}.character-card:hover :is(.character-portrait,.character-new-art){border-color:var(--frame-gold)}.character-card.selected .character-portrait{border:3px double #ffe7a1;box-shadow:0 0 0 2px #a87932,0 0 0 4px #ffda8599,0 0 24px #e9a94055,inset 0 0 12px #f3c26144}.character-card.selected .portrait-crest{display:block;color:#ffe4a0}.character-card-copy{display:flex;flex:1;flex-direction:column;align-items:center;gap:7px;min-width:0;padding:18px 2px 0}.character-card-copy .character-archetype{display:flex;align-items:center;gap:8px;width:100%;justify-content:center;color:#e1bb72;font:600 10px/1.5 Georgia,serif;letter-spacing:.19em;text-transform:uppercase;white-space:nowrap}.character-archetype:before,.character-archetype:after{content:"";height:1px;width:23px;background:linear-gradient(90deg,transparent,#b7914d)}.character-archetype:after{transform:rotate(180deg)}.character-card-copy strong{display:block;font:600 23px/1.12 Georgia,serif;color:var(--frame-light);overflow-wrap:anywhere;text-wrap:balance}.character-card-copy>span{display:block;font-size:11px;line-height:1.45;color:#c8d6d1}.character-card-copy small{display:flex;align-items:center;justify-content:center;gap:5px;font-size:11px;line-height:1.5;color:#d4b877}.character-card-copy i{font-style:normal;margin:0 3px;color:#917f55}.character-card-check{display:none;position:absolute;bottom:-9px;left:calc(50% - 12px);width:24px;height:24px;align-items:center;justify-content:center;border:1px solid #eed08b;border-radius:50%;background:#122731;color:#ffe2a4}.character-card.selected .character-card-check{display:flex}.character-new-art{display:grid;place-items:center;background:linear-gradient(#071924b0,#071924bf),url(/assets/creators/paladin-moonlight.webp) 25% 32% / 170%}.character-new-plus{display:grid;place-items:center;width:41%;aspect-ratio:1;border:2px solid var(--frame-gold);border-radius:50%;color:var(--frame-light);background:#0b2332e6;box-shadow:inset 0 0 0 2px #040e18,0 3px 10px #0008}.character-new-plus svg{width:48%;height:48%}.character-card-copy .character-new-caption{font:15px/1.55 Georgia,serif;margin-top:4px;color:#b9cbcf}.character-continue{display:flex;justify-content:center;padding:15px 2px 6px}.character-continue>button{width:min(340px,90%);min-height:50px;display:flex;justify-content:center;align-items:center;text-align:center;font:600 25px Georgia,serif}.character-save-tools{margin:0 auto;max-width:580px}.character-save-tools>summary{cursor:pointer;color:#b8ae8e;font-size:11px;padding:9px 0;text-align:center;list-style-position:inside}.character-save-tools>summary:focus-visible{outline:2px solid var(--frame-blue);outline-offset:2px}.character-save-content{padding:18px 12px 4px;border-top:1px solid #a88b4c44}.character-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.character-menu-actions{display:flex;justify-content:center;padding-inline:2px;margin:6px 0}.character-menu-actions>button{width:min(340px,90%);min-height:44px;display:flex;align-items:center;justify-content:center;padding:9px 18px;color:var(--frame-light);font:600 18px/1.3 Georgia,serif;text-align:center}dialog.character-picker.character-exit-confirm{width:540px}.character-exit-message p{margin:0;color:#bdccc7;font-size:14px;line-height:1.65}.character-picker .character-actions button{min-height:47px;font-size:17px;padding:10px;display:flex;justify-content:center;align-items:center;gap:9px}.character-backups{display:flex;justify-content:center;gap:22px;margin-top:13px}.character-backups .text-button{font-size:11px}.character-footnote{margin:13px auto 0;max-width:390px;color:#8fa5a6;font-size:10px;line-height:1.55;text-align:center}.character-empty{text-align:center;padding:17px 12px}.character-empty img{width:78px;height:84px;object-fit:contain}.character-empty h3{color:#f3dca8;font:25px Georgia,serif;margin:9px 0}.character-empty p,.character-form p,.character-account p{color:#b6c8c5;font-size:13px;line-height:1.6}.character-form{display:grid;min-width:0;gap:11px;max-width:660px;margin-inline:auto}.character-form>label,.character-form legend{font-size:12px;color:#e5ce9b}.character-form[data-profile-form=create] legend{color:var(--frame-light);font:17px/1.4 Georgia,serif}.character-picker input:not([type=radio]),.character-picker select{box-sizing:border-box;width:100%;min-height:44px;padding:10px 12px;border:1px solid #8e7951;border-radius:5px;background:#0b1c26;color:#e7ece0;font:15px/1.35 inherit}.character-picker input:focus-visible,.character-picker select:focus-visible{outline:2px solid #64c7e7;outline-offset:2px}.character-name-block{display:grid;gap:10px;min-width:0;margin-top:3px}.character-name-block>label{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--frame-light);font:18px/1.4 Georgia,serif;letter-spacing:.045em;text-shadow:0 2px 3px #0009}.character-name-block>label:before,.character-name-block>label:after{content:"";width:54px;height:1px;background:linear-gradient(90deg,transparent,#caa15ca6)}.character-name-block>label:after{transform:rotate(180deg)}.character-name-frame{position:relative;padding:5px;border:1px solid #d7b56f;border-radius:9px 2px;background:linear-gradient(150deg,#af8644,#263c43 25%,#081923 65%,#917043);box-shadow:0 4px 14px #0005,inset 0 0 0 2px #071722,0 0 0 1px #5d4221;transition:border-color .16s ease,box-shadow .16s ease}.character-name-frame:before,.character-name-frame:after{content:"";position:absolute;z-index:1;top:calc(50% - 4px);width:8px;height:8px;border:1px solid #ffe0a0;background:linear-gradient(135deg,#f4d38b,#8c622b);box-shadow:0 0 0 2px #102430;transform:rotate(45deg);pointer-events:none}.character-name-frame:before{left:1px}.character-name-frame:after{right:1px}.character-picker .character-name-frame input{min-height:47px;border:1px solid #927749;border-radius:4px 1px;padding:10px 19px;background:linear-gradient(180deg,#081821,#122a35);box-shadow:inset 0 2px 6px #0006;color:#fff0cc;caret-color:#ffe1a0;font:18px/1.4 Georgia,serif}.character-name-frame input::placeholder{color:#a4b7b6;font-style:italic}.character-name-frame:focus-within{border-color:#ffe7aa;box-shadow:0 0 0 2px #d5ac62,0 0 19px #e7bc6530,inset 0 0 0 2px #071722}.character-picker .character-name-frame input:focus-visible{outline:none;border-color:#e4c688}.character-form fieldset{border:0;min-inline-size:0;padding:0;margin:0}.character-form[data-profile-form=create] .character-actions{margin-top:8px}.character-crests{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,4vw,42px);max-width:660px;margin:22px auto 0}.character-crests label{position:relative;cursor:pointer;min-width:0}.character-crests input{position:absolute;width:1px;height:1px;opacity:0}.character-portrait-choice{display:block;height:100%;position:relative;text-align:center}.portrait-choice-copy{display:grid;gap:5px;padding:12px 0 0}.portrait-choice-copy strong{font:600 20px/1.2 Georgia,serif;color:var(--frame-light)}.portrait-choice-copy small{font-size:11px;color:#a3bcb7;line-height:1.5}.portrait-choice-copy .portrait-specialty{max-width:25ch;margin:3px auto 0;color:#d0dcda;text-wrap:balance}.portrait-choice-check{display:none;position:absolute;top:6px;right:10px;color:#ffe2a4;background:#142c36;border:1px solid var(--frame-gold);border-radius:50%;padding:5px}.character-crests input:checked+.character-portrait-choice .portrait-choice-art{border:3px double #ffe7a1;box-shadow:0 0 0 2px #a87932,0 0 0 4px #ffda8577,0 0 22px #e9a94044}.character-crests input:checked+.character-portrait-choice .portrait-crest{display:block;color:#ffe4a0}.character-crests input:checked+.character-portrait-choice .portrait-choice-check{display:grid}.character-crests input:focus-visible+span{outline:2px solid var(--frame-blue);outline-offset:6px;border-radius:8px}.character-notice>button{min-height:var(--touch-target)}.character-error,.character-notice{border:1px solid #aa874c88;background:#9a6a2116;color:#f0d2a0;border-radius:5px;padding:11px 13px;font-size:12px;line-height:1.5;margin:0 0 14px}.character-error[hidden]{display:none}.character-error{border-color:#d4876580;color:#f4bb9a}.character-account{display:grid;gap:14px}.character-account p{margin:0}.character-account .character-account-intro{font:25px Georgia,serif;color:#f2d9a5}.character-account .character-notice p{margin-top:6px}.character-account .character-form{padding:15px;border:1px solid #b1935e40;border-radius:8px}.character-account button[type=submit]{min-height:44px;font-size:15px}.character-account small{color:#a3b9b6;font-size:11px;line-height:1.5}.character-signed-in{display:grid;gap:8px;padding:14px;background:#112935;border-radius:8px;overflow-wrap:anywhere}.character-signed-in strong{color:#eadab3}.character-loading{padding:35px;color:#dfce9c;text-align:center}.command-bar .player-account{flex:none;position:relative;display:grid;grid-template-columns:1fr 58px;gap:var(--space-2);justify-items:center;align-items:center;width:160px;height:var(--header-control-height);min-height:var(--header-control-height);padding:4px 10px 4px 18px;margin-left:0;background:var(--surface-control);border:1px solid var(--frame-gold);border-radius:var(--radius-control);box-shadow:var(--frame-bevel);color:var(--frame-light);text-align:center;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.command-bar .player-account:before{content:"";position:absolute;top:-8px;left:-10px;width:36px;height:36px;background:var(--frame-art) top left / 400% 400% no-repeat;pointer-events:none}.command-bar .player-account:hover{border-color:var(--frame-light);background:var(--surface-control-hover);box-shadow:var(--control-hover-shadow)}.command-bar .player-account:focus-visible{outline:2px solid var(--frame-blue);outline-offset:3px;box-shadow:var(--control-hover-shadow)}.command-bar .player-account:active{background:var(--surface-selected)}.player-account .player-menu-label{font:600 20px/1.15 var(--font-display);text-shadow:0 2px 2px var(--frame-iron);white-space:nowrap;text-align:center}.player-account-identity{display:grid;justify-items:center;gap:calc(var(--space-1) / 2);min-width:0;width:100%}.player-account-portrait{display:block;width:32px;height:32px;overflow:hidden;border:1px solid var(--frame-gold);border-radius:var(--radius-round);padding:2px;background:var(--frame-iron);box-shadow:0 0 0 1px var(--frame-shadow)}.player-account-portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 10%;border-radius:inherit}.player-account #player-name{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font:500 10px/1.2 var(--font-control)}@media(max-height:760px){dialog.character-picker .modal-heading{padding-top:9px;padding-bottom:10px}dialog.character-picker .modal-heading h2{font-size:34px;margin-top:10px}.character-intro{font-size:14px;margin-bottom:7px}.character-list{--portrait-size: clamp(148px, min(26vh, calc((100vw - 224px) / 3)), 192px);padding-top:21px}.character-card-copy{padding-top:15px;gap:5px}.character-continue{padding-top:10px}.character-crests{max-width:560px;margin-top:16px}}@media(max-width:640px){dialog.character-picker{max-width:calc(100vw - 16px);padding:10px 5px}dialog.character-picker>.modal-scroll{max-height:calc(100dvh - 80px)}dialog.character-picker .modal-heading{padding:36px 8px 13px}dialog.character-picker .modal-heading h2{font-size:clamp(27px,6.5vw,34px);margin-top:12px}dialog.character-picker .modal-heading .eyebrow{font-size:8px;letter-spacing:.16em}.character-body{padding:10px 4px 4px}.character-intro{max-width:260px;margin:0 auto 10px;font-size:14px}.character-list{--portrait-size: 156px;gap:28px;padding-inline:10px}.character-card-copy strong{font-size:22px}.character-identity{flex-wrap:wrap}.character-identity .text-button{margin-left:28px}.character-picker .character-actions button{font-size:14px}.character-backups{gap:14px;flex-wrap:wrap}.character-crests{display:flex;gap:24px;margin-top:0;padding:22px 8px 10px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#9e8148 #132630;scroll-snap-type:x proximity}.character-crests label{flex:0 0 148px;scroll-snap-align:center}.portrait-choice-copy strong{font-size:17px}.portrait-choice-check{top:0;right:-3px;padding:3px}}@media(max-width:480px){.command-bar .player-account{width:128px;grid-template-columns:1fr 44px;padding:6px 6px 6px 12px}.player-account .player-menu-label{font-size:18px}.player-account-portrait{width:28px;height:28px}.command-bar .player-account:before{width:30px;height:30px}}@media(prefers-reduced-motion:reduce){.character-portrait,.character-new-art,.portrait-choice-art,.character-name-frame,.command-bar .player-account{transition:none}}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/dm-sans-400.ttf) format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/dm-sans-500.ttf) format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/dm-sans-600.ttf) format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/dm-sans-700.ttf) format("truetype")}:root{font-family:DM Sans,sans-serif;color:#2e4236;background:#f5f3ec;font-synthesis:none;font-weight:400;--paper: #f5f3ec;--ink: #2d4437;--muted: #7e8579;--line: #e2e1d6;--forest: #355c46;--brass: #b89454;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;color:inherit}button{border:0;background:none}button:is(:disabled,[aria-disabled=true]){cursor:default}button,button svg{flex-shrink:0}button:focus-visible,canvas:focus-visible{outline:3px solid #c6a96d;outline-offset:4px}button{transition:background .18s,transform .18s,box-shadow .18s,opacity .18s}button:not(:disabled,[aria-disabled=true]):active{transform:translateY(1px)}svg{vertical-align:middle;flex-shrink:0}button svg{pointer-events:none}h1,h2,h3,p{margin:0}button img{pointer-events:none}button:is(:disabled,[aria-disabled=true]){opacity:.46}a{color:inherit}[hidden]{display:none!important}.site-header{height:87px;border-bottom:1px solid var(--line);background:#f8f6f0}.header-inner{max-width:1392px;margin:0 auto;padding:0 36px;height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:11px;padding:0;text-align:left;font-family:Georgia,serif;font-weight:700;font-size:24px;letter-spacing:2px}.brand-mark{display:grid;place-items:center;width:42px;height:46px;background:#34513f;color:#f5edd4;border-radius:13px 13px 18px 18px;box-shadow:inset 0 0 0 1px #49614c,inset 0 0 0 4px #34513f,inset 0 0 0 5px #789075}.brand small{display:block;font-family:DM Sans,sans-serif;font-size:8px;font-weight:650;letter-spacing:3px;margin-top:5px;color:#8b8976}nav{display:flex;align-items:center;height:100%;gap:10px}.nav-item{position:relative;display:flex;align-items:center;gap:8px;padding:14px 17px;color:#7b8377;font-size:13px;font-weight:550;white-space:nowrap}.nav-item:hover{color:#34513f;background:#edece3;border-radius:8px}.nav-item.active{color:#3c5844}.nav-item.active:after{content:"";height:3px;background:#3f614a;position:absolute;bottom:-15px;left:18px;right:18px;border-radius:5px}.header-end{display:flex;align-items:center;gap:23px}.wallet{display:flex;align-items:center;gap:7px;font-size:14px;font-variant-numeric:tabular-nums}.wallet.gold svg{color:#bd9545;fill:#e5c67c33}.wallet.crystals svg{color:#a28eba;fill:#b5a0ce22}.wallet strong{font-weight:650}.header-divider{height:24px;width:1px;background:var(--line);margin-left:1px}.icon-button{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;color:#81877b}.icon-button:hover{background:#e9eade;color:#365a44}.main{max-width:1392px;padding:0 36px;margin:0 auto}.chapter-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:31px 0 26px}.eyebrow{display:flex;align-items:center;gap:7px;color:#8a907e;font-size:9px;font-weight:700;letter-spacing:1.35px;line-height:1.5;text-transform:uppercase}.chapter-heading .eyebrow{font-size:9px;letter-spacing:1.5px}.chapter-diamond{font-size:12px;color:#b5965a;margin-right:2px}.eyebrow-dot{color:#b5b7a6;margin:0 5px}h1{font-family:Georgia,serif;font-weight:400;font-size:31px;letter-spacing:-.7px;margin-top:8px;line-height:1.25}.chapter-select{display:flex;align-items:center;gap:12px;text-align:left;padding:11px 14px;border:1px solid var(--line);border-radius:9px;background:#f8f7f1;min-width:268px}.chapter-select:hover{border-color:#bfcaad;background:#f0f1e7}.chapter-select-icon{color:#98a18a;width:31px}.chapter-select>span:nth-child(2){flex:1}.chapter-select small{display:block;font-size:8px;font-weight:650;letter-spacing:1.4px;color:#929985;margin-bottom:5px}.chapter-select strong{font-weight:500;font-size:12px}.chapter-select>svg{color:#979f8c}.game-shell{background:#fbfaf5;border:1px solid #d7ddca;border-radius:14px;box-shadow:0 5px 8px #4a583805,0 13px 34px #5167400a;overflow:hidden}.battlefield{position:relative;height:clamp(380px,52.5svh,650px);isolation:isolate;background:#8fa460;overflow:hidden}#game{display:block;width:100%;height:100%;touch-action:none;outline-offset:-4px}.is-playing #game{cursor:crosshair}.battle-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#12291638 0,transparent 23%,transparent 75%,#172e204a 100%);z-index:1}.battle-hud{position:absolute;top:23px;left:24px;right:22px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;z-index:2;pointer-events:none}.fortress-status{display:flex;align-items:center;gap:12px;width:251px;background:#f4f4e8ed;padding:12px 16px 11px 12px;border-radius:9px;box-shadow:0 2px 8px #20351822}.hud-shield{display:grid;place-items:center;color:#527459;background:#e2e6d6;border-radius:50%;width:38px;height:38px}.fortress-status>div{flex:1}.bar-label{display:flex;justify-content:space-between;gap:14px;font-size:8px;letter-spacing:.8px;color:#5d6e55;margin-bottom:6px}.bar-label strong{font-size:9px;letter-spacing:0;font-weight:600}.meter{overflow:hidden;background:#d6dbc9;border-radius:4px}.meter i{display:block;height:100%;border-radius:inherit;transition:width .18s}.health{height:7px}.health i{background:linear-gradient(180deg,#81aa65,#669257);box-shadow:inset 0 1px #aec890}.mana-row{display:flex;gap:5px;align-items:center;margin-top:6px;color:#71929b}.mana{height:4px;flex:1;background:#d7e0d5}.mana i{background:#86b4bb}.mana-row>span{font-size:8px;color:#6b817a;font-variant-numeric:tabular-nums}.wave-status{position:absolute;left:50%;transform:translate(-50%);text-align:center;color:#f8f5de;padding-top:4px;text-shadow:0 2px 4px #31482c90}.wave-label{font-size:10px;font-weight:700;letter-spacing:1.8px}.wave-pips{display:flex;justify-content:center;gap:5px;margin:9px 0 8px}.wave-pips i{width:25px;height:4px;border:1px solid #f1ecc37d;background:#42624355;border-radius:4px}.wave-pips i.filled{background:#ecd99b;border-color:#e9d89f}.wave-status small{font-size:10px;letter-spacing:.1px;color:#f5f1d9ce}.battle-controls{display:flex;gap:7px;pointer-events:auto}.hud-button{width:34px;height:34px;display:grid;place-items:center;border:1px solid #e4e6c159;background:#eef0dede;color:#526747;border-radius:7px;font-weight:650;font-size:12px;box-shadow:0 2px 8px #1e2c1b16}.hud-button:hover{background:#fffce9}.hud-button:is(:disabled,[aria-disabled=true]){opacity:.6}.ready-panel{position:absolute;top:50%;left:49%;transform:translate(-50%,-45%);width:350px;text-align:center;padding:24px 22px 21px;border:1px solid #ffffff5e;border-radius:18px;background:linear-gradient(160deg,#f5f3e8f2,#f6f2e6e8);box-shadow:0 10px 40px #35452126;z-index:2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ready-emblem{display:grid;place-items:center;width:48px;height:48px;border:1px solid #d8d9c2;border-radius:50%;color:#647b51;margin:0 auto 16px;position:relative}.ready-emblem:after{content:"";position:absolute;inset:-5px;border:1px solid #e0dfca;border-radius:50%}.ready-panel>.eyebrow{display:block;font-size:7px;letter-spacing:1.5px;color:#8f947d}.ready-panel h2{font-family:Georgia,serif;font-weight:400;font-size:34px;line-height:1.13;letter-spacing:-.6px;margin:12px 0;color:#3c5039}.ready-panel p{font-size:11px;line-height:1.75;color:#858a74;margin-bottom:20px}.primary,.secondary{display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:42px;border-radius:7px;padding:11px 19px;font-size:12px;font-weight:550;line-height:1.35}.primary{color:#f6f1da;background:linear-gradient(180deg,#4d6c46,#365538);border:1px solid #38563d;box-shadow:inset 0 1px #82947588,0 3px #29433133}.primary:hover:not(:disabled,[aria-disabled=true]){background:var(--surface-primary-hover);box-shadow:var(--control-hover-shadow)}.secondary{border:1px solid #d7dccb;color:#57704e;background:#f5f5ec}.secondary:hover:not(:disabled,[aria-disabled=true]){background:var(--surface-control-hover)}.begin-button{width:100%;padding:13px 18px;gap:11px;font-size:12px}.begin-button>svg:last-child{margin-left:auto;opacity:.65}.begin-button>span{flex:1;text-align:left}.ready-note{display:flex;align-items:center;justify-content:center;font-size:8px;letter-spacing:1px;gap:5px;margin-top:14px;color:#8c907e}.ready-note b{font-weight:550}.ready-note i{width:3px;height:3px;border-radius:50%;background:#b7b8a2;margin:0 7px}.ready-note>span{letter-spacing:.2px}.battle-bottom{position:absolute;bottom:20px;left:24px;right:24px;z-index:2;display:flex;align-items:center;justify-content:space-between;color:#f2f2db;pointer-events:none;font-size:9px;letter-spacing:.3px;text-shadow:0 2px 4px #1f311b99}.weapon-tag{display:flex;align-items:center;gap:7px;font-size:8px;font-weight:650;letter-spacing:1px}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#8caa70;box-shadow:0 0 0 3px #80996416;flex-shrink:0}.weapon-tag .status-dot{background:#d3e2ac}.weapon-tag small{background:#e2e5cc33;padding:3px 5px;border-radius:3px;font-size:7px;letter-spacing:.5px}.aim-hint{position:absolute;left:50%;transform:translate(-50%);display:flex;gap:7px;align-items:center;white-space:nowrap;color:#f1efdae3}.aim-hint span{margin:0 3px;opacity:.5}.kill-counter{display:flex;align-items:center;gap:6px}.loadout{display:flex;align-items:center;padding:20px 25px;gap:26px;min-height:114px}.weapon-loadout{display:flex;align-items:center;flex:1;gap:16px;min-width:0}.weapon-picture{width:79px;height:70px;border-radius:9px;background:#efeee0;border:1px solid #e4e2d1;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.weapon-picture img{width:112px;max-width:none}.weapon-info{flex:1;min-width:0}.weapon-info .eyebrow{font-size:7px;letter-spacing:1.2px;white-space:nowrap}.weapon-info .eyebrow span{display:inline-block;margin-left:5px;background:#e7ebdd;color:#799263;padding:2px 5px;border-radius:3px;letter-spacing:.3px;font-size:7px}.weapon-info h3{font-family:Georgia,serif;font-size:19px;font-weight:400;margin:5px 0 8px;letter-spacing:-.2px;white-space:nowrap}.weapon-stats{display:flex;gap:12px;color:#8c917f;font-size:9px;white-space:nowrap}.weapon-stats>span{display:flex;gap:4px;align-items:center}.weapon-stats>span+span{border-left:1px solid #e0e3d5;padding-left:12px}.upgrade-quick{display:flex;flex-direction:column;gap:5px;align-items:center;border:1px solid #cfd9bf;background:#eef1e4;border-radius:7px;padding:10px 16px;color:#577046;min-width:94px}.upgrade-quick:hover:not(:disabled,[aria-disabled=true]){background:var(--surface-control-hover)}.upgrade-quick>span{font-size:10px;font-weight:600;display:flex;gap:5px;align-items:center}.upgrade-quick small{font-size:9px;color:#919c78;display:flex;gap:5px;align-items:center}.loadout-divider{width:1px;height:61px;background:var(--line)}.spell-loadout{display:flex;gap:20px;align-items:center;flex:1.2;justify-content:space-between}.spell-caption{white-space:nowrap;align-self:center}.spell-caption .eyebrow{font-size:7px;letter-spacing:1px}.spell-caption>span:last-child{display:block;font-family:Georgia,serif;font-size:14px;margin-top:5px;color:#969e85}.spell-slots{display:flex;gap:17px;align-items:center}.spell-button{position:relative;display:flex;align-items:center;gap:8px;padding:3px;border-radius:8px;text-align:left}.spell-button:hover{background:#edeee3}.spell-art{position:relative;display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:57px;height:59px;border-radius:12px;isolation:isolate;background:radial-gradient(circle at 43% 28%,var(--spell-light),var(--spell-color));box-shadow:inset 0 0 0 2px #faf3d6,inset 0 0 0 3px var(--spell-color),0 2px 5px #45524018;border:1px solid #c9c7ae;color:#fff9e3;overflow:hidden}.spell-art>svg{position:relative;z-index:1;filter:drop-shadow(0 2px 1px var(--spell-dark));stroke-width:1.6;fill:#fff9e033;transform:rotate(-9deg)}.spell-frost>svg{transform:rotate(6deg);fill:none}.spell-lightning>svg{fill:#f9f3dccc;stroke:#fff4d9;transform:rotate(8deg)}.rune-ring{width:44px;height:44px;border:1px solid #fff4d675;border-radius:50%;position:absolute;transform:rotate(-22deg)}.rune-ring:before,.rune-ring:after{content:"";position:absolute;border:1px solid #fff7dc33;inset:5px;transform:rotate(45deg)}.spell-glint{width:75px;height:19px;background:#fffae41a;position:absolute;transform:rotate(-42deg);top:6px;left:-9px}.spell-key{position:absolute;bottom:0;left:-1px;display:grid;place-items:center;background:#fcfaf1;border:1px solid #d7d7c3;border-radius:4px;width:16px;height:16px;font-size:8px;color:#8e937b;z-index:2}.spell-info{display:none}.spell-button.selected .spell-art{outline:3px solid #e1bf70;outline-offset:2px}.spell-cooldown{position:absolute;inset:4px 3px;border-radius:10px;background:#223626a8;display:none;align-items:center;justify-content:center;text-align:center;color:#fff5d8;font-size:15px;font-weight:600;z-index:3}.spell-button.unavailable .spell-cooldown{display:flex}.spell-cooldown:empty{display:none!important}.edit-loadout{width:25px}.journey-strip{display:flex;align-items:center;gap:24px;margin:28px 0;padding:3px 0 6px}.journey-label{display:flex;align-items:center;gap:12px;width:198px;flex-shrink:0}.journey-label>svg{color:#a4ad95}.journey-label .eyebrow{font-size:8px;letter-spacing:1.3px}.journey-label strong{display:block;font-size:10px;font-weight:400;color:#a0a58e;margin-top:5px}.journey-nodes{position:relative;display:flex;flex:1;justify-content:space-between;max-width:695px;margin-right:auto;padding:0 10px}.journey-nodes:before{content:"";height:1px;position:absolute;top:16px;left:22px;right:22px;background:repeating-linear-gradient(90deg,#d9ddcc 0,#d9ddcc 4px,transparent 4px,transparent 8px)}.journey-node{z-index:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:0;width:55px;color:#9aa58b;position:relative;font-size:10px}.journey-node>span{display:grid;place-items:center;width:31px;height:31px;background:var(--paper);border:1px solid #dce1cf;border-radius:50%;box-shadow:0 0 0 5px var(--paper)}.journey-node small{font-size:7px;letter-spacing:.6px;color:#aab19b;white-space:nowrap}.journey-node.current>span{background:#526e43;border-color:#527446;color:#f6f0da;box-shadow:0 0 0 4px var(--paper),0 0 0 5px #c5cfae}.journey-node.current small{color:#809268;font-weight:700;font-size:6px}.journey-node.complete>span{background:#e6edda;color:#7a9462;border-color:#c2d1ae}.journey-node.locked{opacity:.68}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:10px;color:#7e8f6e;padding:9px 0;white-space:nowrap}.text-button:hover{color:#3d6747}.journey-strip>.text-button{margin-left:20px}.page-footer{border-top:1px solid var(--line);padding:16px 0 22px;color:#a3a995;font-size:9px;display:flex;justify-content:space-between;gap:15px}.page-footer>span{display:flex;align-items:center;gap:6px}.page-footer>div{display:flex;align-items:center;gap:24px}.page-footer>div>span,.page-footer button{display:flex;align-items:center;gap:6px;font-size:9px;color:#9ba48c;padding:0}.page-footer .status-dot{width:4px;height:4px;box-shadow:none}.announcement{position:absolute;top:105px;left:50%;transform:translate(-50%,-6px);padding:9px 19px;border-radius:7px;background:#f6f1dce8;color:#596948;font-size:12px;font-weight:550;box-shadow:0 3px 15px #21351e22;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;text-align:center;z-index:4;max-width:80%;white-space:nowrap}.announcement.visible{opacity:1;transform:translate(-50%)}.boss-hud{position:absolute;top:25px;left:50%;transform:translate(-50%);width:340px;z-index:5;background:#eff0e3f5;border-radius:8px;padding:10px 13px;color:#6a654c}.boss-hud>span{display:flex;align-items:center;gap:7px;font-family:Georgia,serif;font-size:13px}.boss-hud small{margin-left:auto;font:7px DM Sans,sans-serif;letter-spacing:1px;color:#a19579}.boss-hud>div{height:6px;border-radius:4px;background:#d8d5c7;margin-top:7px;overflow:hidden}.boss-hud i{display:block;height:100%;background:#c39858;transition:width .12s}.mobile-spells{display:none}.battlefield:fullscreen{height:100svh;width:100vw;max-height:none}.battlefield:fullscreen .mobile-spells{display:flex;position:absolute;bottom:24px;right:25px;gap:14px;z-index:4}.battlefield:fullscreen .kill-counter{display:none}dialog{padding:0;max-width:min(96vw,570px);width:570px;max-height:90svh;border:1px solid #dfe2d2;border-radius:16px;color:var(--ink);background:#f7f6ef;box-shadow:0 25px 100px #16342540;overflow:auto;overscroll-behavior:contain}dialog::backdrop{background:#20372b73;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.wide-modal{width:1010px;max-width:min(95vw,1010px)}.modal-heading{display:flex;align-items:center;justify-content:space-between;padding:27px 30px 23px;position:sticky;top:0;background:#f7f6eff5;z-index:10;border-bottom:1px solid #e4e6d8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal-heading h2{font-family:Georgia,serif;font-weight:400;font-size:27px;letter-spacing:-.4px;margin-top:7px}.modal-heading .eyebrow{font-size:8px;color:#929d80}.close-modal{align-self:flex-start}.section-tabs,.region-tabs{display:flex;gap:5px;border-bottom:1px solid #e3e6d7;padding:12px 29px;overflow-x:auto;flex-wrap:nowrap}.section-tabs button,.region-tabs button{font-size:11px;white-space:nowrap;display:flex;align-items:center;gap:6px;padding:8px 13px;border-radius:6px;color:#8c967e}.section-tabs button.active,.region-tabs button.active{background:#e5ebdc;color:#516b42}.section-tabs .talent-available-count{background:var(--notification-red);color:var(--frame-light);padding:2px 6px;border-radius:var(--radius-small);font-size:14px;line-height:1.25;font-variant-numeric:tabular-nums}.section-description{padding:23px 30px;color:#8b947f;line-height:1.7;font-size:12px}.weapon-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;padding:0 29px 27px}.weapon-card{background:#fbfaf5;border:1px solid #e0e4d5;border-radius:11px;padding:16px;position:relative;overflow:hidden}.weapon-card.equipped,.item-card.equipped{border-color:#a5ba8d;box-shadow:inset 0 0 0 1px #bccdab66}.card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.card-top .eyebrow{font-size:7px;letter-spacing:1px}.equipped-pill{font-size:6px;padding:3px 5px;background:#e4edda;border-radius:4px;color:#709057;font-weight:700;letter-spacing:.4px}.weapon-card>img{display:block;width:172px;height:127px;object-fit:contain;margin:1px auto}.weapon-card h3,.creature-card h3{font-family:Georgia,serif;font-size:19px;font-weight:400;margin:0 0 7px}.weapon-card>p{font-size:10px;line-height:1.6;color:#8d9581;min-height:32px}.card-stats{display:flex;gap:12px;font-size:9px;color:#7c8b70;margin:15px 0 11px}.card-stats>span{display:flex;align-items:center;gap:4px}.card-effect{font-size:9px;padding:9px 0 12px;border-top:1px solid #e6e9dd;color:#8a957c;min-height:34px}.card-button{width:100%;min-height:35px;padding:8px;font-size:10px}.locked-card{background:#f0f0e7}.locked-card>img{filter:saturate(.45);opacity:.75}.modal-note{padding:15px 30px;border-top:1px solid #e2e7d6;display:flex;align-items:center;gap:8px;color:#8d987d;font-size:11px}.modal-note>span{margin-left:auto;display:flex;align-items:center;gap:7px}.item-grid{padding:0 29px 28px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.item-card{display:flex;align-items:center;gap:13px;padding:17px;border:1px solid #e0e5d6;border-radius:10px;background:#fbfaf5;min-width:0}.item-icon{width:49px;height:54px;flex-shrink:0;display:grid;place-items:center;background:#edf0e2;border:1px solid #e1e6d5;border-radius:11px;color:#8da477}.item-content{min-width:0;flex:1}.item-content h3{font-size:13px;font-weight:550;margin:4px 0}.item-content p{font-size:10px;line-height:1.5;color:#909880}.item-content .eyebrow{font-size:7px;letter-spacing:.8px}.small-button{display:flex;align-items:center;gap:4px;justify-content:center;min-width:58px;min-height:30px;border:1px solid #d6dec8;background:#edf2e3;border-radius:6px;color:#7b8d66;font-size:9px;padding:7px 9px}.small-button:hover:not(:disabled,[aria-disabled=true]){background:var(--surface-control-hover)}.rarity-label{font-size:7px;text-transform:uppercase;letter-spacing:.7px}.rarity-common{color:#8a9c7a}.rarity-rare{color:#769da4}.rarity-epic{color:#a18cb2}.rarity-legendary{color:#b8985d}.item-icon.rarity-rare{background:#e6eff0}.item-icon.rarity-epic{background:#ede8f1}.item-icon.rarity-legendary{background:#f2edda}.equipment-slots{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:0 29px 24px}.equipment-slots>div{border:1px dashed #c8d4b9;background:#edf1e3;padding:13px 10px;border-radius:8px;position:relative}.equipment-slots strong{display:block;font-size:10px;font-weight:500;margin-top:7px;color:#7c8d6a}.equipment-slots .eyebrow{font-size:7px}.equipment-slots button{position:absolute;right:4px;top:4px;color:#92a57e;padding:2px}.equipped-spells{display:flex;gap:20px;margin:0 30px 26px;padding:18px;background:#eef1e6;border-radius:12px}.equipped-spells>div{display:flex;align-items:center;gap:12px;flex:1}.equipped-spells .spell-art{width:43px;height:45px;border-radius:9px}.equipped-spells .spell-art svg{width:27px;height:27px}.equipped-spells small{display:block;font-size:7px;letter-spacing:1px;color:#9ca98b;margin-bottom:5px}.equipped-spells strong{font-size:11px;font-weight:500}.spell-card .spell-art{width:57px;height:62px}.spell-card-actions{display:flex;gap:7px;margin-top:12px}.spell-card-actions button{min-height:27px;padding:5px 9px;font-size:8px}.talent-intro{display:flex;gap:15px;align-items:center;padding:30px}.talent-intro>span{color:#a5b385}.talent-intro h3{font-family:Georgia,serif;font-size:22px;font-weight:400;margin-bottom:7px}.talent-intro p{font-size:11px;color:#8b967a}.world-map{background:linear-gradient(#e5ebda99,#edf0e466),url(/assets/greenvale.png) center/cover;position:relative;padding:25px 28px 38px;overflow:hidden}.map-intro{background:#f4f5e8db;border:1px solid #f9f9eb;padding:14px 20px;width:max-content;border-radius:10px;position:relative;z-index:2}.map-intro h3{font-family:Georgia,serif;font-size:25px;font-weight:400;margin:5px 0}.map-intro p{font-size:11px;color:#8d9c7a}.map-intro .eyebrow{font-size:7px}.map-path{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:35px 18px;padding:42px 8px 10px}.map-node{display:flex;flex-direction:column;align-items:center;gap:7px;position:relative;padding:0;min-width:0}.map-node:nth-child(2n){transform:translateY(15px)}.map-circle{position:relative;z-index:1;display:grid;place-items:center;width:45px;height:45px;border:3px solid #f4f4e4;border-radius:50%;box-shadow:0 0 0 1px #b8c5a8,0 4px 10px #415a3222;background:#cedabc;color:#7d956a;font-size:15px;font-weight:650}.map-node:after{content:"";position:absolute;width:110%;height:2px;top:23px;left:60%;background:repeating-linear-gradient(90deg,#a8b896 0,#a8b896 6px,transparent 6px,transparent 11px);transform:rotate(5deg)}.map-node:nth-child(5n):after,.map-node:last-child:after{display:none}.map-node:nth-child(2n):after{transform:rotate(-5deg)}.map-node.selected .map-circle{background:#536e44;color:#f5efd5;border-color:#e8e7c6;box-shadow:0 0 0 3px #8da677,0 6px 10px #415a3233}.map-node.completed .map-circle{background:#8fab70;color:#f7f3dc}.map-node.locked{opacity:.65}.map-node.locked .map-circle{background:#dde2d2}.map-node.boss-node .map-circle{background:#be9f66;color:#f9f0d9}.map-node-label{font-size:9px;line-height:1.3;max-width:120px;color:#536a44;background:#f2f5e5a8;padding:3px 5px;border-radius:5px}.node-stars{display:flex;gap:3px;font-size:9px;color:#b4bca6;margin-top:-6px}.node-stars i{font-style:normal}.node-stars .earned{color:#bfa35f}.bestiary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:25px 29px}.creature-card{padding:17px;background:#fbfaf4;border:1px solid #e0e6d5;border-radius:10px}.creature-portrait{height:95px;background:radial-gradient(ellipse at 50% 60%,#e7edda,transparent 65%);display:flex;justify-content:center;align-items:center}.creature-portrait img{width:115px;height:115px;object-fit:contain}.creature-card>.eyebrow{font-size:6px;letter-spacing:.8px;margin:9px 0}.creature-card h3{font-size:16px;line-height:1.2;min-height:20px}.trait-tags{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}.trait-tags span{font-size:7px;padding:3px 5px;background:#e9efdf;color:#8b9a78;border-radius:4px}.creature-card p{font-size:10px;color:#8c9780;line-height:1.6}.boss-roster-title{font-family:Georgia,serif;font-size:25px;font-weight:400;margin:30px}.boss-roster{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 30px 30px}.boss-roster>div{display:flex;gap:14px;align-items:center;background:#edede0;border-radius:10px;padding:15px}.boss-roster-icon{color:#b69a63}.boss-roster .eyebrow{font-size:7px}.boss-roster h3{font:17px Georgia,serif;margin:6px 0}.boss-roster p{font-size:10px;line-height:1.6;color:#919b81}.settings-list{padding:5px 30px}.setting-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding:18px 0;border-bottom:1px solid #e3e6d7;text-align:left;gap:20px}.setting-row strong{display:block;font-size:13px;font-weight:550;margin-bottom:5px}.setting-row small{display:block;font-size:11px;color:#929a83}.toggle{width:37px;height:21px;border-radius:20px;background:#dce1d3;position:relative;flex-shrink:0}.toggle:before{content:"";width:15px;height:15px;position:absolute;top:3px;left:3px;border-radius:50%;background:#f6f7ee;box-shadow:0 1px 3px #324e301a;transition:transform .2s}.toggle.on{background:#839f6c}.toggle.on:before{transform:translate(16px)}.save-tools{padding:25px 30px 30px}.save-tools h3{font:21px Georgia,serif}.save-tools p{font-size:11px;color:#909b80;line-height:1.8;margin:10px 0 18px}.save-tools>div{display:flex;gap:10px}.save-tools .secondary{font-size:10px;min-height:36px}.danger-text{font-size:10px;color:#ac8974;padding:0;margin-top:20px}.help-intro{padding:23px 30px 5px;font:20px/1.5 Georgia,serif}.help-list{padding:7px 30px 20px}.help-list>div{display:flex;gap:17px;padding:16px 0;border-bottom:1px solid #e6e9dc}.help-list>div>svg{color:#9aaa85}.help-list strong{font-size:13px;font-weight:550}.help-list p{font-size:11px;line-height:1.75;margin-top:7px;color:#89967b}.full-width{width:calc(100% - 60px);margin:0 30px 30px}.pause-buttons{padding:0 30px 30px;display:flex;flex-direction:column;gap:12px}.result-hero{padding:25px 30px 20px;text-align:center;color:#ac985f}.result-hero>svg{filter:drop-shadow(0 3px 0 #e9e4ce);fill:#e5dbb744}.result-stars{display:flex;justify-content:center;gap:12px;color:#dce1d0;font-size:30px;margin:14px 0}.result-stars .earned{color:#c6a65e;text-shadow:0 2px #e1d0a2}.result-hero p{font-size:12px;line-height:1.75;max-width:340px;margin:auto;color:#8c977c}.result-hero.lost>svg{color:#a49b85}.reward-row{display:grid;grid-template-columns:repeat(3,1fr);margin:0 30px;border:1px solid #dfe5d2;background:#edf1e4;border-radius:10px;padding:18px 0}.reward-row>div{display:flex;flex-direction:column;align-items:center;gap:8px;color:#a7a778}.reward-row>div:nth-child(2){color:#a89abe;border-left:1px solid #d9e1cc;border-right:1px solid #d9e1cc}.reward-row strong{font-size:22px;font-weight:550;color:#597248}.reward-row small{font-size:7px;letter-spacing:1.5px;color:#97a186}.loot-drop{display:flex;align-items:center;justify-content:center;gap:7px;margin:16px 30px 0;padding:12px;font-size:11px;background:#e8eddf;border-radius:8px;color:#89a273}.result-details{display:flex;justify-content:center;gap:9px;font-size:10px;color:#96a083;margin:23px 0}.result-buttons{display:flex;justify-content:space-between;gap:12px;padding:0 30px 30px}.result-buttons button{flex:1;font-size:11px}.campaign-complete{text-align:center;padding:0 30px 25px;color:#8e9e7b;font-size:12px}.spell-picker{padding:0 30px 30px;display:flex;flex-direction:column;gap:12px}.spell-picker .secondary{justify-content:flex-start;gap:20px}.spell-picker .spell-art{width:42px;height:44px}.spell-picker .spell-art>svg{width:26px;height:26px}.spell-picker small{display:block;font-size:9px;color:#91a17e;margin-top:5px}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,12px);opacity:0;pointer-events:none;z-index:100;background:#344f3cee;color:#f4f1dd;max-width:min(90vw,550px);text-align:center;border:1px solid #80927055;padding:13px 22px;border-radius:9px;box-shadow:0 7px 28px #1d332c26;font-size:12px;line-height:1.5;transition:opacity .25s,transform .25s}.toast.visible{opacity:1;transform:translate(-50%)}@keyframes upgrade{0%{box-shadow:0 0 #d5bf78aa}45%{box-shadow:0 0 24px 8px #d5bf7866}to{box-shadow:0 0 #d5bf7800}}.upgrade-flash{animation:upgrade 1s ease-out}html:has(dialog[open]){overflow:hidden}@media(min-width:1600px){.spell-info{display:block}.spell-info strong{display:block;font-size:10px;font-weight:500}.spell-info small{display:flex;align-items:center;gap:3px;font-size:8px;margin-top:5px;color:#a0a68f}.spell-slots{gap:12px}.spell-caption{display:none}}@media(max-width:1150px){.header-inner,.main{padding-left:24px;padding-right:24px}.header-inner{gap:15px}.header-end{gap:14px}nav{gap:0}.nav-item{padding-left:12px;padding-right:12px;font-size:12px}.brand{font-size:22px}.brand small{font-size:7px}.loadout{gap:20px;padding:18px 20px}.spell-caption{display:none}.spell-loadout{flex:0 1 auto;gap:12px}.spell-slots{gap:15px}.weapon-loadout{gap:12px}.journey-label{width:172px}.journey-strip>.text-button{margin-left:0}.ready-panel{width:310px;padding:20px}.ready-panel h2{font-size:30px}.ready-emblem{margin-bottom:12px;width:42px;height:42px}.ready-panel p{margin-bottom:16px}.chapter-heading{padding:24px 0 22px}h1{font-size:28px}.journey-strip{gap:14px}}@media(max-width:900px){.brand small{display:none}.brand{font-size:20px;gap:8px}.brand-mark{width:34px;height:38px}.brand-mark svg{width:25px}.header-inner{gap:12px}.site-header{height:72px}.nav-item{font-size:11px;padding:12px 9px;gap:5px}.nav-item svg{width:17px}.nav-item.active:after{bottom:-15px;left:9px;right:9px}.header-end{gap:13px}.wallet{font-size:12px;gap:4px}.wallet svg{width:17px}.header-divider{display:none}.header-end>.icon-button{width:25px}.chapter-select{min-width:210px;padding:10px;gap:7px}.chapter-select strong{font-size:10px}.chapter-select small{font-size:7px}.chapter-select-icon{width:21px}.chapter-select-icon svg{width:18px}.chapter-heading .eyebrow{font-size:7px;letter-spacing:1px}h1{font-size:24px}.battle-hud{left:15px;right:15px;top:16px}.fortress-status{width:205px;gap:8px;padding:10px}.bar-label{font-size:6px;gap:10px}.bar-label strong{font-size:8px}.hud-shield{width:31px;height:31px}.hud-shield svg{width:22px}.wave-label{font-size:9px}.wave-pips{margin:7px 0}.wave-status small{font-size:8px}.hud-button{width:30px;height:30px}.wave-status{padding-top:1px}.ready-panel{width:275px;left:49%;padding:19px 18px}.ready-panel h2{font-size:27px;margin:10px 0}.ready-emblem{width:34px;height:34px;margin-bottom:12px}.ready-emblem svg{width:23px}.ready-panel>.eyebrow{font-size:6px;letter-spacing:1px}.ready-panel p{font-size:10px;line-height:1.6;margin-bottom:15px}.begin-button{font-size:11px;padding:10px 13px;min-height:38px}.ready-note{font-size:7px;margin-top:12px}.battle-bottom{left:16px;right:16px;bottom:16px}.weapon-tag{font-size:6px;letter-spacing:.6px}.aim-hint{font-size:8px;gap:5px}.kill-counter{font-size:8px}.loadout{padding:15px 17px;gap:17px;min-height:99px}.weapon-picture{width:64px;height:60px}.weapon-picture img{width:95px}.weapon-info h3{font-size:17px}.weapon-stats{font-size:8px;gap:7px}.weapon-stats>span+span{padding-left:7px}.upgrade-quick{min-width:77px;padding:9px 11px}.upgrade-quick>span{font-size:9px}.spell-art{width:47px;height:50px;border-radius:10px}.spell-art>svg{width:30px;height:30px}.spell-slots{gap:12px}.rune-ring{width:36px;height:36px}.journey-label{width:158px;gap:9px}.journey-label>.eyebrow{font-size:7px}.journey-strip>.text-button{display:none}.journey-strip{margin:24px 0 20px}.journey-node{width:45px}.weapon-grid{grid-template-columns:repeat(2,1fr)}.bestiary-grid{grid-template-columns:repeat(3,1fr)}.item-grid{grid-template-columns:1fr}.equipment-slots{grid-template-columns:repeat(3,1fr)}.boss-roster{grid-template-columns:1fr}.modal-heading h2{font-size:25px}}@media(max-width:680px){.header-inner,.main{padding-left:16px;padding-right:16px}.site-header{height:68px}.brand{font-size:19px}.brand-mark{width:31px;height:35px}.brand-mark svg{width:24px}.header-inner{gap:7px}.nav-item{padding:9px 6px}.nav-item span{display:none}.nav-item svg{width:20px;height:20px}.nav-item.active:after{bottom:-14px;left:6px;right:6px}.header-end{gap:10px}.wallet{font-size:11px}.wallet svg{width:16px}.header-end>.icon-button{display:none}.chapter-heading{padding:21px 0 18px;gap:12px}.chapter-heading .eyebrow{font-size:6px;letter-spacing:1px}.chapter-heading .eyebrow-dot{margin:0 1px}.chapter-heading h1{font-size:22px;letter-spacing:-.6px;line-height:1.18;max-width:270px}.chapter-select{min-width:0;border:0;background:none;padding:6px}.chapter-select>span:nth-child(2){display:none}.chapter-select>svg{display:none}.chapter-select-icon{width:32px;height:32px;border:1px solid #dce2cf;border-radius:8px;display:grid;place-items:center;color:#789061}.battlefield{height:370px;min-height:0}.battle-hud{top:12px;left:10px;right:10px;gap:8px}.fortress-status{width:159px;padding:8px;gap:6px}.hud-shield{display:none}.bar-label{font-size:6px;gap:3px;margin-bottom:5px}.bar-label strong{font-size:7px}.mana-row{margin-top:5px}.mana-row>span{font-size:7px}.wave-status{left:55%;padding-top:2px}.wave-label{font-size:7px;letter-spacing:1px}.wave-pips{gap:3px;margin-top:7px}.wave-pips i{width:13px;height:3px}.wave-status small{display:none}.battle-controls{gap:4px}.hud-button{width:27px;height:27px;font-size:10px}.hud-button svg{width:14px;height:14px}.fullscreen-button{display:none}.ready-panel{width:239px;left:52%;transform:translate(-50%,-44%);padding:18px}.ready-panel h2{font-size:26px}.ready-panel p{font-size:10px}.ready-emblem{width:32px;height:32px;margin-bottom:13px}.ready-panel>.eyebrow{font-size:5px;letter-spacing:1.1px}.ready-note{font-size:6px}.ready-note>span{font-size:7px}.ready-note i{margin:0 3px}.ready-panel .begin-button{padding:10px;font-size:10px;gap:7px}.battle-bottom{bottom:13px;left:11px;right:11px;gap:10px}.weapon-tag{font-size:5px;gap:4px}.weapon-tag small{font-size:5px;padding:2px 4px}.weapon-tag .status-dot{width:3px;height:3px}.aim-hint{left:auto;right:0;transform:none;font-size:7px;gap:3px}.aim-hint>svg{width:12px}.kill-counter{display:none}.loadout{padding:13px;gap:0;flex-direction:column;align-items:stretch}.weapon-loadout{gap:12px}.weapon-picture{height:55px;width:62px}.weapon-info h3{font-size:18px}.weapon-info .eyebrow{font-size:6px}.weapon-stats{font-size:8px}.upgrade-quick{margin-left:auto;padding:9px 12px}.loadout-divider{width:100%;height:1px;margin:14px 0}.spell-loadout{justify-content:space-between;gap:10px}.spell-caption{display:block}.spell-caption .eyebrow{font-size:6px;letter-spacing:.8px}.spell-caption>span:last-child{font-size:12px;margin-top:4px}.spell-slots{gap:13px}.spell-art{width:46px;height:48px}.spell-art svg{width:28px;height:28px}.edit-loadout{width:19px}.journey-strip{gap:10px;flex-direction:column;align-items:stretch;margin:23px 0}.journey-label{width:auto;gap:8px}.journey-label>svg{width:16px}.journey-label>div{display:flex;gap:13px;align-items:center}.journey-label .eyebrow{font-size:7px}.journey-label strong{font-size:8px;margin:0}.journey-nodes{width:100%;max-width:none;padding:8px 0 0}.journey-nodes:before{top:23px}.journey-node{width:40px;gap:8px}.journey-node>span{width:28px;height:28px}.journey-node.current small{font-size:5px}.journey-node small{font-size:6px}.page-footer{padding-top:14px;flex-direction:column;gap:14px;align-items:center;font-size:8px}.page-footer>div{width:100%;justify-content:space-between}.page-footer>div>span,.page-footer button{font-size:8px}.boss-hud{top:66px;width:250px;padding:8px 10px}.boss-hud>span{font-size:11px}.boss-hud small{font-size:6px}.announcement{top:70px;white-space:normal;font-size:10px;padding:8px 13px;min-width:180px;max-width:75%;line-height:1.5}.boss-hud:not([hidden])+.announcement{top:125px}dialog,.wide-modal{width:96vw;max-width:96vw;border-radius:12px;max-height:94svh}.modal-heading{padding:22px 20px 18px}.modal-heading h2{font-size:23px}.modal-heading .eyebrow{font-size:7px}.section-tabs,.region-tabs{padding:10px 15px;gap:1px}.section-tabs button,.region-tabs button{font-size:10px;padding:8px 10px}.section-description{padding:20px;font-size:11px}.weapon-grid{padding:0 17px 20px;gap:10px}.weapon-card{padding:12px}.weapon-card>img{width:140px;height:111px;max-width:100%}.weapon-card h3{font-size:16px}.weapon-card>p{font-size:9px;min-height:43px}.card-top .eyebrow{font-size:6px}.equipped-pill{font-size:5px}.card-stats{flex-direction:column;gap:6px;font-size:8px;margin:12px 0}.card-effect{font-size:8px;min-height:39px;line-height:1.5}.card-button{font-size:9px}.item-grid{padding:0 17px 20px}.item-card{padding:13px;gap:10px}.item-content h3{font-size:12px}.item-content p{font-size:10px}.item-content .eyebrow{font-size:6px}.equipment-slots{margin:0 17px 20px;gap:8px;grid-template-columns:repeat(2,1fr)}.equipped-spells{margin:0 17px 20px;gap:10px;padding:13px}.equipped-spells>div{flex-direction:column;gap:7px;text-align:center}.equipped-spells strong{font-size:9px}.equipped-spells small{font-size:6px}.bestiary-grid{grid-template-columns:1fr 1fr;margin:18px 17px;gap:10px}.creature-card{padding:13px}.creature-card h3{font-size:15px}.creature-card p{font-size:9px}.creature-card>.eyebrow{font-size:5px}.trait-tags span{font-size:6px}.boss-roster{margin:0 17px 20px}.boss-roster-title{font-size:23px;margin:25px 20px}.world-map{padding:20px 17px 26px}.map-path{grid-template-columns:repeat(3,1fr);gap:25px 8px;padding-top:32px}.map-node:nth-child(5n):after{display:block}.map-node:nth-child(3n):after,.map-node:last-child:after{display:none}.map-node-label{font-size:8px}.map-circle{width:40px;height:40px}.map-node:after{top:21px}.map-intro{padding:12px 16px}.map-intro h3{font-size:23px}.modal-note{padding:15px 20px;font-size:10px}.settings-list{padding:4px 20px}.save-tools{padding:20px}.help-intro{padding:20px 20px 0;font-size:19px}.help-list{padding:10px 20px 20px}.help-list>div{gap:12px}.help-list strong{font-size:12px}.help-list p{font-size:11px}.full-width{margin:0 20px 20px;width:calc(100% - 40px)}.reward-row{margin:0 20px}.result-details{font-size:8px;gap:6px}.result-buttons{padding:0 20px 20px;gap:10px}.result-buttons button{font-size:10px;padding:10px}.result-hero p{font-size:11px}.loot-drop{margin:16px 20px 0;font-size:10px;flex-wrap:wrap}.toast{font-size:11px;padding:12px 16px;bottom:17px}.is-playing .aim-hint{max-width:220px;white-space:normal;text-align:right;justify-content:flex-end}}@media(max-width:960px)and (orientation:landscape)and (max-height:550px){.site-header{height:48px}.brand{font-size:18px}.brand-mark{height:30px;width:29px}.brand-mark svg{width:21px}.nav-item.active:after{bottom:-4px;height:2px}.main{padding:0}.header-inner{padding:0 17px}.chapter-heading,.loadout,.journey-strip,.page-footer{display:none}.game-shell{border:0;border-radius:0;box-shadow:none}.battlefield{height:calc(100svh - 48px);min-height:0;max-height:none}.battle-hud{top:11px;left:17px;right:17px}.fortress-status{width:195px}.hud-shield{display:grid}.wave-status{left:50%}.wave-status small{display:block}.ready-panel{width:270px;top:52%;padding:13px 18px;transform:translate(-50%,-44%)}.ready-emblem{display:none}.ready-panel h2{font-size:24px;line-height:1.05;margin:7px 0}.ready-panel p{font-size:9px;margin-bottom:10px;line-height:1.4}.ready-panel>.eyebrow{font-size:6px}.begin-button{min-height:32px;padding:8px 14px;font-size:10px}.ready-note{font-size:7px;margin-top:9px}.battle-bottom{left:16px;right:16px;bottom:17px}.weapon-tag{font-size:6px}.aim-hint,.kill-counter{display:none}.mobile-spells{position:absolute;right:18px;bottom:13px;display:flex;gap:11px;z-index:4}.mobile-spells .spell-art{width:43px;height:45px}.mobile-spells .spell-art svg{width:28px}.mobile-spells .spell-key{font-size:7px;width:14px;height:14px}.mobile-spells .spell-info{display:none}.fullscreen-button{display:grid}.announcement{top:81px;font-size:10px}.boss-hud{top:15px;width:280px}.boss-hud+.announcement{top:81px}.wallet{font-size:11px}.header-end>.icon-button{display:grid}.header-end{gap:14px}dialog{max-height:94svh}.modal-heading{padding:17px 23px 15px}.modal-heading h2{font-size:22px}.result-hero{padding:14px 25px}.result-hero>svg{width:35px;height:35px}.result-stars{font-size:22px;margin:7px}.result-hero p{font-size:10px}.reward-row{padding:12px 0}.reward-row>div{gap:4px}.reward-row svg{width:21px;height:21px}.reward-row strong{font-size:18px}.result-details{margin:14px 0}.result-buttons{padding-bottom:20px}.battlefield:fullscreen{height:100svh}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}@media(max-width:680px){.brand{font-size:17px;letter-spacing:1.2px;gap:6px}.brand-mark{width:28px;height:33px}.nav-item{padding:9px 4px}.nav-item svg{width:18px;height:18px}.header-end{gap:8px}.header-end>.icon-button{display:grid;width:24px;height:30px}.header-end>.icon-button svg{width:18px}.wallet{font-size:10px;gap:3px}.wallet svg{width:14px}.main .battlefield{height:330px}.ready-panel{padding:14px 17px}.ready-emblem{width:29px;height:29px;margin-bottom:10px}.ready-emblem svg{width:21px}.ready-panel h2{font-size:25px;margin:9px 0}.ready-panel p{font-size:9px;margin-bottom:13px}.ready-note{margin-top:11px}}@media(max-width:395px){.header-inner{padding-left:11px;padding-right:11px}.brand{font-size:16px;letter-spacing:1px}.header-end{gap:6px}.nav-item{padding:9px 3px}.fortress-status{width:143px}.wave-status{left:55%}.wave-label{font-size:6px;letter-spacing:.6px}.wave-pips i{width:11px}.spell-slots{gap:8px}.spell-caption>span:last-child{font-size:11px}.spell-caption .eyebrow{font-size:5px}}@media(max-width:960px)and (orientation:landscape)and (max-height:550px){.main .battlefield{height:calc(100svh - 48px)}.battlefield:fullscreen{height:100svh}}.world-map{background-image:linear-gradient(#e5ebda99,#edf0e488),var(--map-image, url(/assets/greenvale.png));background-size:cover,var(--map-size, cover);background-position:center,var(--map-pos, center)}.map-node:after{height:22px;background:none;border-top:2px dashed #a8b896;border-radius:50%;transform:rotate(8deg);top:22px}.map-node:nth-child(2n):after{transform:rotate(-8deg)}.map-node-label small{display:block;font-size:6px;letter-spacing:.65px;margin-bottom:3px;opacity:.7}.battle-loadout-note{font-size:11px;line-height:1.6;padding:13px 30px;background:#ede8d5;color:#978457;border-bottom:1px solid #e4dec7}.map-chest{position:absolute;top:29px;left:calc(50% + 12px);z-index:2;width:21px;height:21px;display:grid;place-items:center;border:1px solid #c9b887;background:#eee1bc;color:#aa8b46;border-radius:5px;box-shadow:0 2px 4px #5f5b2816}.map-chest.claimed{background:#dbe6ca;border-color:#a8bd8f;color:#789460}:root{--paper: #111b24;--ink: #eee0bf;--muted: #b8ad92;--line: #514a3c;--forest: #8ebdc4;--brass: #d4b26a;color:#eee0bf;background:#0b1118}body{background:radial-gradient(ellipse at 50% 0,#293b45 0,transparent 62%),#0b1118;color:var(--ink)}h1,h2,h3,.brand{font-family:Georgia,Times New Roman,serif;color:#f2dfac;text-shadow:0 2px 2px #000;letter-spacing:.025em}.site-header{background:linear-gradient(#283a45,#101b25);border-bottom:3px ridge #9f8050;box-shadow:0 4px 20px #0009}.brand{color:#e8c67c}.brand small{color:#a6997a}.brand-mark{background:radial-gradient(#356071,#172b39 68%);border:2px ridge #d0ad64;border-radius:5px 5px 18px 18px;color:#f1d48b;box-shadow:inset 0 0 0 3px #111d27,0 3px 7px #000}.nav-item{color:#b6b4a6;border-radius:10px}.nav-item.active,.nav-item:hover{color:#ffe1a1;background:linear-gradient(#35424a,#192934);box-shadow:inset 0 0 0 1px #90764c,inset 0 3px 4px #ffffff14}.nav-item.active:after{background:#e3bd70;box-shadow:0 0 8px #e9b255}.wallet{color:#e6c36c}.wallet.crystals{color:#82dce5}.icon-button{color:#d2c198}.header-divider{background:#716046}.main{max-width:1440px}.chapter-heading{padding-top:25px;padding-bottom:20px}.eyebrow{color:#c2ab75}.chapter-heading h1{font-size:clamp(25px,3vw,36px)}.chapter-select,.secondary,.small-button,.hud-button,.upgrade-quick,.card-button,.close-modal,.region-tabs button,.section-tabs button{background:linear-gradient(#354752,#182630 52%,#111d26);color:#e8d4a6;border:1px solid #88714e;border-radius:10px;box-shadow:inset 0 1px #c2b08366,inset 0 -3px #080f16,0 2px 4px #0005;text-shadow:0 1px #000}.chapter-select:hover,.secondary:hover:not(:disabled,[aria-disabled=true]),.small-button:hover:not(:disabled,[aria-disabled=true]),.hud-button:hover,.upgrade-quick:hover:not(:disabled,[aria-disabled=true]){background:var(--surface-control-hover);border-color:var(--frame-light);color:var(--frame-light)}.chapter-select-icon{color:#e5c780}.chapter-select small{color:#ada184}.chapter-select strong{color:#ead9b5}.game-shell{position:relative;border:8px solid transparent;border-image:url(/assets/forged-panel.png) 65 stretch;border-radius:10px;background:#15232c;box-shadow:0 15px 50px #000a,0 0 0 1px #060c10}.battlefield{border:1px solid #b39864;border-bottom:3px ridge #ad8f54}.battle-vignette{background:linear-gradient(#07132199,transparent 24%,transparent 78%,#09151d99);box-shadow:inset 0 0 35px #05101a66}.fortress-status{background:linear-gradient(110deg,#111d2af0,#20323ee8);border:2px ridge #b49b67;border-radius:10px;box-shadow:0 3px 8px #0007;color:#e7d6ac}.hud-shield{color:#f2cc78;background:linear-gradient(140deg,#41647a,#152d40);border:2px ridge #b89655;border-radius:3px 3px 15px 15px;box-shadow:inset 0 0 12px #071623}.bar-label,.bar-label strong,.mana-row>span{color:#f5e8bd}.meter{background:#060d16;box-shadow:0 1px #d1b47c44,inset 0 1px 3px #000;border:1px solid #080b13;border-radius:10px}.health i{background:linear-gradient(#e77556,#aa3029 48%,#631e27);box-shadow:inset 0 1px #ffc787aa}.mana i{background:linear-gradient(#82cfff,#2584c9 50%,#1e407c);box-shadow:inset 0 1px #d0f8ff99}.wave-status{color:#ffedbb;text-shadow:0 2px 3px #000}.wave-label{color:#fff0c1}.wave-status small{color:#eee0bc}.wave-pips i{background:#182631;border:1px solid #a38c60}.wave-pips i.filled{background:#edc979;box-shadow:0 0 7px #ffc767}.hud-button{color:#f0d69b}.ready-panel{background:#111d28 url(/assets/forged-panel.png) center/100% 100%;border:0;border-radius:10px;padding:35px 26px 28px;box-shadow:0 15px 40px #001018b3;-webkit-backdrop-filter:none;backdrop-filter:none;width:365px}.ready-panel h2{color:#f3ddb0;font-size:35px}.ready-panel p{color:#bdc7c7}.ready-panel>.eyebrow{color:#c4a66c}.ready-emblem{background:radial-gradient(#33546a,#152734);border:2px ridge #d8b573;color:#f3d48c;box-shadow:0 0 20px #52c4eb22}.ready-emblem:after{border-color:#bb995d66}.ready-note,.ready-note b,.ready-note>span{color:#bcad8d}.ready-note i{background:#967b4a}.primary{color:#fff0c5;background:linear-gradient(#42687b,#1c4058 48%,#172f42);border:2px ridge #d2ae68;border-radius:10px;box-shadow:inset 0 0 0 2px #0d1d2c,inset 0 0 15px #48b9d322,0 3px 8px #0009;text-shadow:0 2px #000}.primary:hover:not(:disabled,[aria-disabled=true]){background:var(--surface-primary-hover);box-shadow:var(--control-hover-shadow);color:var(--frame-light)}.begin-button{min-height:49px;letter-spacing:.025em}.battle-bottom{color:#eee0b8;text-shadow:0 1px 3px #000}.weapon-tag{color:#fff0c2}.weapon-tag small,.aim-hint,.kill-counter{color:#ece0c5}.status-dot{background:#87ead5;box-shadow:0 0 7px #56d9dd}.weapon-tag .status-dot{background:#73e8ee}.loadout{background:linear-gradient(#283b46ed,#13232dea),url(/assets/forged-panel.png) center/cover;padding-top:15px;padding-bottom:15px;border-top:1px solid #d6b57955}.weapon-picture{border:2px ridge #9c8153;background:radial-gradient(#2c5663,#101b28 70%);border-radius:10px;box-shadow:inset 0 0 18px #0008}.weapon-picture img{filter:drop-shadow(0 4px 3px #0008);width:115px}.weapon-info .eyebrow,.weapon-info .eyebrow span{color:#bba776}.weapon-info h3{color:#efd8a4}.weapon-stats{color:#bec9c8}.weapon-stats>span+span{border-color:#77684d}.loadout-divider{background:#ad8d494d}.upgrade-quick{color:#efd99f}.upgrade-quick small{color:#e7cb80}.spell-caption>span:last-child,.spell-info{color:#c4bb9e}.spell-art{border:3px ridge #cead65;box-shadow:inset 0 0 0 3px #0c1823,inset 0 0 14px #000a,0 3px 8px #0008}.spell-button.selected .spell-art{box-shadow:0 0 0 2px #fff0be,0 0 22px #75deec}.spell-key{background:#162331;border:1px solid #af945a;color:#f3deb0;border-radius:10px}.rune-ring{border-color:#e6be7099}.edit-loadout,.text-button{color:#d3b876}.journey-strip{border:1px solid #746344;background:linear-gradient(#20313b,#111e28);box-shadow:inset 0 1px #c6ad6c22;border-radius:10px;margin-top:18px}.journey-label strong{color:#e0d0aa}.journey-node>span{background:radial-gradient(#314a59,#101d2a);border:2px ridge #806f4a;color:#e7d6af;border-radius:10px}.journey-node.current>span{background:radial-gradient(#426d7d,#17394b);border-color:#ebc879;color:#ffdfa0;box-shadow:0 0 12px #5fbbe333}.journey-node.current small{color:#e7c17a}.journey-nodes:before{background:#8b77474d}.page-footer{color:#a29578}.page-footer button{color:#c7b589}dialog{background:#121e28 url(/assets/forged-panel.png) center/100% 100%;border:5px ridge #8d744d;border-radius:10px;color:var(--ink);box-shadow:0 30px 100px #000d}dialog::backdrop{background:#040b13b5;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-heading{background:linear-gradient(#2b3d47,#14232e);border-bottom:3px ridge #9c8355}.modal-heading h2{color:#f2dba7}.section-tabs,.region-tabs{border-color:#61533d;background:#101c25}.section-tabs button.active,.region-tabs button.active{background:linear-gradient(#6d5939,#3f3426);color:#ffe3a0;border-color:#c9a867}.section-description,.modal-note,.talent-intro p{color:#bdbba9}.weapon-card,.item-card,.creature-card,.boss-roster>div,.equipped-spells>div,.equipment-slots>div{border:1px solid #796443;border-radius:10px;background:linear-gradient(135deg,#283a44,#14232e);box-shadow:inset 0 0 0 3px #0c182433,inset 0 1px #cdb97b22}.weapon-card.equipped,.item-card.equipped{border-color:#e0b765;box-shadow:inset 0 0 18px #dbb75d12,0 0 0 1px #e0b76555}.weapon-card>img{width:100%;height:clamp(170px,17vw,230px);object-fit:contain;filter:drop-shadow(0 6px 4px #0007)}.weapon-card>p,.item-content p,.creature-card p,.boss-roster p,.card-stats,.card-effect,.setting-row small,.save-tools p,.help-list p,.result-hero p,.result-details{color:#bec3b7}.card-stats{border-color:#726344}.equipped-pill{color:#b2f4da;background:#244c46;border:1px solid #6cae8e}.item-icon{background:#1c303e;border:1px ridge #9f8658}.creature-portrait{background:radial-gradient(ellipse at center,#476577,#152531 70%);border-bottom:1px solid #9a7e4b}.creature-portrait img{width:150px;height:150px;filter:drop-shadow(0 5px 5px #0008)}.trait-tags span{background:#101c28;color:#d3c59f;border:1px solid #786748}.equipment-slots small,.equipment-slots button,.equipped-spells small,.spell-picker small{color:#bcad8e}.setting-row,.save-tools,.help-list>div{border-color:#5e523e}.toggle{background:#35434b}.toggle.on{background:#477c80}.reward-row>div,.loot-drop,.campaign-complete{background:#213743;color:#f0d69c;border-color:#a28754}.toast{background:#172c3b;color:#f0dba7;border:1px solid #b79a60}.announcement{background:linear-gradient(90deg,transparent,#122637ed 20%,#122637ed 80%,transparent);color:#ffdda0;text-shadow:0 2px #000;border-color:#c8a462}.boss-hud{background:#171720ed;border-color:#a7794d;color:#f4d1a2}.boss-hud i{background:linear-gradient(#ef7351,#a02d2a)}@media(max-width:700px){.chapter-heading{padding-top:16px;padding-bottom:14px}.chapter-heading h1{font-size:24px}.game-shell{border-width:5px}.ready-panel{width:290px;padding:26px 20px 22px}.ready-panel h2{font-size:29px}.weapon-picture img{width:90px}.loadout{padding-top:10px;padding-bottom:10px}.creature-portrait img{width:125px;height:125px}}@media(max-height:520px)and (orientation:landscape){.game-shell{border-width:3px}.ready-panel{padding:20px;width:300px}.ready-panel h2{font-size:26px}.ready-emblem{display:none}.site-header{border-bottom-width:2px}.mobile-spells .spell-art{border-width:2px}}.creature-portrait{height:168px;display:grid;place-items:center}.creature-portrait img{width:190px;height:190px;max-width:100%;object-fit:contain}.weapon-info .eyebrow span{background:#1a2d37;border:1px solid #877346}.spell-meteor{background:radial-gradient(#ffec87,#d75726 48%,#4f211d 74%)}.spell-frost{background:radial-gradient(#e8ffff,#329dcc 48%,#122e56 74%)}.spell-lightning{background:radial-gradient(#fbebff,#9453c7 48%,#352158 74%)}.health{position:relative;height:12px;border:2px ridge #9d7d48;border-radius:10px;box-shadow:0 1px 1px #000,0 0 0 1px #1a1510,inset 0 2px 5px #000}.health i{position:relative;z-index:1;background:linear-gradient(#ffbf96,#e14c40 17%,#981b29 52%,#cf3c37 75%,#50101c);box-shadow:inset 0 1px 2px #ffedbd88}.health b{position:absolute;inset:0 auto 0 0;background:#e7b25c;transition:width .5s ease-out}.health:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(20% - 1px),#210e1566 calc(20% - 1px),#210e1566 20%)}.health.struck{animation:wall-hp-hit .35s ease-out}.health.critical i{animation:wall-hp-danger 1.5s ease-in-out infinite}@keyframes wall-hp-hit{0%{filter:brightness(2);transform:translate(-2px)}to{filter:brightness(1);transform:translate(0)}}@keyframes wall-hp-danger{50%{filter:brightness(1.45)}}@media(prefers-reduced-motion:reduce){.health.struck,.health.critical i{animation:none}}button,.primary,.secondary,.small-button,.hud-button,.icon-button,.nav-item,.chapter-select,.setting-row,.spell-button{border-radius:12px}.game-shell{border-image:none;border:4px ridge #a58a56;border-radius:22px;overflow:hidden}.battlefield{border-radius:18px 18px 0 0;overflow:hidden}dialog{border-radius:22px;overflow-x:hidden}.modal-heading{border-radius:16px 16px 0 0}.ready-panel,.creature-card,.weapon-card,.item-card,.spell-picker,.talent-card,.upgrade-card,.fortress-status,.world-map,.loadout-bar,.equipment-slots>div,.help-list>div,.reward-row>div,.toast,.boss-roster>div,.result-details,.modal-note,.section-tabs,.region-tabs{border-radius:16px}.creature-portrait,.item-icon,.weapon-card>img,.equipment-slot{border-radius:12px;overflow:hidden}.trait-tags span,.rarity-label,.equipped-pill,.meter,.meter i,.toggle{border-radius:999px}.defeat-modal{width:min(580px,calc(100vw - 28px));background:radial-gradient(ellipse at 50% 28%,#294958,#142733 48%,#0c1923);border:3px ridge #a58b58}.defeat-modal .modal-heading{background:transparent;border:0;padding-bottom:0}.defeat-modal .modal-heading h2{display:none}.defeat-scene{text-align:center;padding:0 28px 25px}.defeat-emblem{width:230px;margin:0 auto;filter:drop-shadow(0 8px 16px #0008);animation:fallen-arrive .65s ease-out both}.defeat-emblem svg{width:100%;display:block}.defeat-scene h3{font:700 clamp(32px,6vw,44px) Georgia,serif;color:#f2dfb6;margin:0 0 12px;text-shadow:0 3px 3px #000}.defeat-subtitle{color:#aebfc2;line-height:1.6;margin:0 0 18px}.defeat-summary{font-size:13px;color:#94aab4}.defeat-summary span{margin:0 8px}.defeat-kept{color:#c5b78d;font-size:13px;margin:12px 0 25px}.defeat-actions{display:flex;gap:12px;justify-content:center;margin-bottom:15px}.defeat-actions button{flex:1;min-height:48px}.defeat-scene .text-button{color:#aeae96}@keyframes fallen-arrive{0%{opacity:0;transform:translateY(-12px) scale(.95)}to{opacity:1;transform:none}}@media(max-width:480px){.defeat-emblem{width:175px}.defeat-scene{padding:0 16px 20px}.defeat-actions{flex-direction:column}}@media(prefers-reduced-motion:reduce){.defeat-emblem{animation:none}}.fortress-status{width:260px;position:relative;left:-10px;top:-10px;padding:0;gap:0;border:0;background:none;box-shadow:none;align-items:flex-start;flex-shrink:0}.fortress-status .hud-shield{display:block;position:relative;z-index:3;width:68px;height:72px;flex:0 0 68px;margin-right:-6px;overflow:hidden;border:4px ridge #d4b65d;border-radius:48px 48px 15px;background:#071720;box-shadow:0 3px 5px #000b,inset 0 0 7px #000}.hud-shield img{display:block;width:100%;height:100%;object-fit:cover}.fortress-status .fortress-vitals{min-width:0;padding-top:4px}.fortress-status .bar-label{color:#f6d267;background:linear-gradient(90deg,#18252fe8,#16212acc);margin:0;padding:3px 10px 4px 12px;min-height:20px;border-bottom:1px solid #9c814b;border-radius:7px 10px 0 0;font:700 10px Georgia,serif;letter-spacing:.7px;text-shadow:0 2px 2px #000}.fortress-status .meter{position:relative;border:2px ridge #a78f59;border-left:0;border-radius:0 7px 7px 0;background:#07100b;overflow:hidden;box-shadow:inset 0 2px 5px #000,0 1px 2px #000}.fortress-status .health{height:24px;margin:0}.fortress-status .mana{height:19px;margin:2px 0 0;background:#07101d}.fortress-status .meter i{border-radius:0 4px 4px 0}.fortress-status .health i{background:linear-gradient(#b3e789,#57b64a 16%,#237633 52%,#3a9b42 78%,#154924);box-shadow:inset 0 1px #deffc799,inset 0 -2px #113c2077}.fortress-status .health b{background:#c4d18b}.fortress-status .health:after{background:linear-gradient(180deg,#fff1 0%,transparent 50%,#0002)}.fortress-status .mana i{background:linear-gradient(#95dcff,#258dda 25%,#1252ab 65%,#2b83d1);box-shadow:inset 0 1px #d3f3ff88}.vital-percent,.vital-value{position:absolute;z-index:4;top:50%;transform:translateY(-50%);color:#fffbe6;font:700 10px Georgia,serif;letter-spacing:0;text-shadow:1px 1px 2px #000,-1px -1px 1px #000;white-space:nowrap}.vital-percent{left:12px}.vital-value{right:8px}.mana .vital-percent,.mana .vital-value{font-size:10px}.fortress-filigree{position:relative;width:67%;height:12px;margin:2px auto 0;border-bottom:3px ridge #ac9663;border-radius:0 0 55% 55%;box-shadow:0 2px 2px #0007;color:#d5b96c;text-align:center;font-size:12px;line-height:17px}.fortress-filigree span{padding:0 9px;background:#15232b;border-radius:50%}@media(max-width:1100px){.fortress-status{width:224px;left:-7px;top:-7px}.fortress-status .hud-shield{width:60px;height:68px;flex-basis:60px}.fortress-status .bar-label{font-size:10px;min-height:20px}.fortress-status .health{height:23px}.fortress-status .mana{height:20px}.vital-value,.vital-percent{font-size:10px}.mana .vital-value,.mana .vital-percent{font-size:9px}}@media(max-width:700px){.fortress-status{width:184px;left:-4px;top:-4px}.fortress-status .hud-shield{width:48px;height:60px;flex-basis:48px;border-width:3px}.fortress-status .bar-label{font-size:8px;letter-spacing:.4px;min-height:17px;padding:2px 5px 3px 8px}.fortress-status .health{height:23px}.fortress-status .mana{height:18px}.vital-percent{left:8px}.vital-value{right:5px}.vital-value,.vital-percent,.mana .vital-value,.mana .vital-percent{font-size:9px}.fortress-filigree{height:8px;line-height:11px;font-size:9px}}.attachment-card{gap:16px;padding:14px;flex-wrap:wrap}.attachment-art{--item-metal: #b78b51;width:112px;height:112px;overflow:hidden;border:2px solid var(--item-metal);border-radius:16px;background:#101923;box-shadow:0 4px 12px #0007}.attachment-art img{width:100%;height:100%;object-fit:contain;display:block}.attachment-art.rarity-rare{--item-metal: #a8d7ed}.attachment-art.rarity-epic{--item-metal: #b58be6;box-shadow:0 0 12px #8e43ca30,0 4px 12px #0007}.attachment-art.rarity-legendary{--item-metal: #f5c765;box-shadow:0 0 16px #f8b82f38,0 4px 12px #0007}.attachment-card .item-content{min-width:120px}.attachment-card .small-button{margin-left:auto}@media(max-width:600px){.attachment-card{gap:12px}.attachment-art{width:88px;height:88px}}.journey-strip[hidden]{display:none}.sponsor-placement{margin-top:22px}.sponsor-caption{display:flex;justify-content:space-between;margin:0 5px 7px;color:#9f967a;font-size:9px;letter-spacing:1.6px}.yope-banner{display:block;aspect-ratio:2048 / 440;overflow:hidden;border-radius:16px;border:1px solid #8b784d;background:#153365;box-shadow:0 5px 18px #0005;transition:filter .16s ease}.yope-banner img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 55%}.yope-banner:hover{filter:brightness(1.08)}.yope-banner:focus-visible{outline:3px solid #f6d267;outline-offset:4px}@media(max-width:600px){.sponsor-placement{margin-top:14px}.yope-banner{border-radius:10px}}.spell-art{border-radius:50%;border:3px ridge #e4bd61;background:#090e1d;box-shadow:0 0 0 2px #15252e,0 0 10px color-mix(in srgb,var(--spell-color) 50%,transparent),0 4px 8px #000a}.spell-art img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}.spell-button .spell-art{width:64px;height:64px}.spell-card>.spell-art{width:86px;height:86px}.spell-button .spell-cooldown{border-radius:50%;background:#060b18b8;text-shadow:0 2px 3px #000}.spell-button.unavailable .spell-art img{filter:saturate(.5) brightness(.7)}@media(max-width:700px){.spell-button .spell-art{width:48px;height:48px}.spell-card>.spell-art{width:64px;height:64px}}.spell-card>.spell-art{width:112px;height:112px;border-radius:16px;border-width:2px}.equipped-spells{background:#101b24;border:1px solid #8b744b;border-radius:16px}.equipped-spells .spell-art{border-radius:12px}.talent-emblem{flex:0 0 56px;width:56px;height:56px;overflow:hidden;border:2px solid #b58be6;border-radius:14px}.talent-emblem img{display:block;width:100%;height:100%;object-fit:cover}@media(max-width:600px){.spell-card>.spell-art{width:88px;height:88px}}.brand{padding:0;gap:0;flex:0 0 auto;overflow:visible}.brand-art{position:relative;display:block;width:270px;height:72px;overflow:hidden;border-radius:12px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 94%,transparent)}.brand-art img{position:absolute;width:120%;max-width:none;height:120%;left:-10%;top:-10%;object-fit:contain;-webkit-mask-image:linear-gradient(transparent,#000 12%,#000 86%,transparent);mask-image:linear-gradient(transparent,#000 12%,#000 86%,transparent);transition:filter .18s ease}.brand:hover .brand-art img{filter:brightness(1.13) drop-shadow(0 0 4px #d9923b44)}.brand:focus-visible{outline:2px solid #edc976;outline-offset:3px}@media(max-width:1100px){.brand-art{width:220px;height:62px}}@media(max-width:700px){.brand-art{width:180px;height:56px}}@media(max-width:400px){.brand-art{width:154px;height:49px}}@media(prefers-reduced-motion:reduce){.brand-art img{transition:none}}.command-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:90px;margin-bottom:18px;padding:8px 0;border-bottom:1px solid #ac8e505c}.command-bar nav{display:flex;align-items:center;height:auto;gap:8px}.command-bar .chapter-select{min-width:0;padding:10px 12px}.battle-wallet{display:flex;align-items:center;gap:10px;height:34px;padding:0 8px;border:1px solid #9c8356;border-radius:11px;background:linear-gradient(#30424bea,#12212bef);box-shadow:inset 0 1px #ead8a32b,0 2px 6px #0006}.battle-wallet .wallet{display:flex;align-items:center;gap:4px;font-size:11px;white-space:nowrap}.battle-wallet .wallet svg{width:15px;height:15px}.battle-wallet .header-divider{height:16px;margin:0}.battle-wallet .icon-button{width:23px;height:25px;padding:3px}.battle-wallet .icon-button svg{width:15px;height:15px}.battle-controls{align-items:center;flex-shrink:0}@media(max-width:1100px){.command-bar{gap:10px;flex-wrap:wrap}.command-bar .brand-art{width:205px;height:62px}.command-bar .chapter-select{margin-left:auto}.command-bar nav{gap:3px}}@media(max-width:700px){.command-bar{margin-bottom:12px;padding:5px 0;gap:5px}.command-bar .brand-art{width:160px;height:54px}.command-bar .chapter-select{display:flex;max-width:175px;padding:7px}.command-bar .chapter-select small{display:none}.command-bar .chapter-select strong{font-size:10px}.command-bar nav{order:3;width:100%;justify-content:space-between}.command-bar .nav-item:first-child{display:flex}.command-bar .nav-item{padding:8px}.command-bar .nav-item span{display:inline;font-size:10px}.battle-hud{flex-wrap:wrap;gap:4px}.battle-controls{margin-left:auto;gap:4px}.battle-wallet{height:27px;gap:6px;padding:0 5px;border-radius:9px}.battle-wallet .wallet{font-size:10px}.battle-wallet .wallet svg{width:12px;height:12px}.battle-wallet .header-divider{display:none}.battle-wallet .icon-button{width:21px;height:23px}.wave-status{left:auto;right:0;top:0;transform:none;max-width:115px}}.main{padding-bottom:10px}.sponsor-placement{width:min(100%,46svh,560px);margin:8px auto 0}.sponsor-caption{font-size:7px;letter-spacing:1px;margin:0 4px 3px}.yope-banner{border-radius:9px}@media(max-width:600px){.sponsor-placement{margin-top:8px}}@media(min-width:701px)and (min-height:551px){.main{height:100svh;display:flex;flex-direction:column;padding-bottom:8px}.command-bar{flex:0 0 auto;margin-bottom:10px}.main>.game-shell{display:flex;flex-direction:column;flex:1 1 0;min-height:0}.main .battlefield{flex:1 1 0;height:auto;min-height:0;max-height:none}.game-shell>.loadout{flex:0 0 auto}.sponsor-placement{flex:0 0 auto;width:min(100%,70svh,760px);margin-top:8px}}@media(max-width:700px){.sponsor-placement{width:min(100%,560px)}}.battlefield:has(.ready-panel:not([hidden])) .aim-hint{visibility:hidden}.brand-art{overflow:visible;-webkit-mask-image:none;mask-image:none;background:none}.brand-art img{width:100%;height:100%;left:0;top:0;-webkit-mask-image:none;mask-image:none;filter:drop-shadow(0 2px 3px #0008)}.brand-embers{position:absolute;inset:3px 0;pointer-events:none;overflow:visible}.brand-embers i{position:absolute;left:var(--x);bottom:8%;width:2px;height:3px;border-radius:50%;background:#ffe4a5;box-shadow:0 0 4px #ffc26a,0 0 8px #f37325;opacity:0;animation:brand-ember-rise var(--duration) var(--delay) ease-out infinite}.brand-embers i:nth-child(3n){width:3px;height:4px;background:#ffb347}@keyframes brand-ember-rise{0%{opacity:0;transform:translate(0) scale(.5)}18%{opacity:.85}70%{opacity:.45}to{opacity:0;transform:translate(var(--drift),-55px) scale(.25)}}@media(prefers-reduced-motion:reduce){.brand-embers{display:none}}.modal-heading{padding-right:78px;min-height:72px}.modal-heading>.close-modal{position:absolute;top:18px;right:18px;display:grid;place-items:center;width:36px;height:36px;min-width:36px;flex:0 0 36px;padding:0;margin:0;line-height:1;box-sizing:border-box}.close-modal svg{display:block;width:20px;height:20px;margin:0;transform:none;flex-shrink:0}.defeat-modal{background:linear-gradient(#14232de8,#0d1923f5),url(/assets/forged-panel.png) center/cover;border:4px ridge #a58a56;box-shadow:inset 0 0 0 2px #192934,0 24px 80px #000b}.defeat-modal .modal-heading{padding:0;min-height:64px;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.defeat-modal .modal-heading .eyebrow{display:none}.defeat-scene{padding:0 28px 28px}.defeat-emblem{width:180px}.defeat-scene h3{margin:8px 0 18px}.defeat-summary{padding:12px;border-top:1px solid #a58a564d;border-bottom:1px solid #a58a564d;color:#c4c9c5}.defeat-actions{padding:0;margin:0 0 12px}.defeat-armory{width:100%;min-height:40px}@media(max-width:600px){.modal-heading{padding-right:64px}.modal-heading>.close-modal{top:14px;right:14px;width:34px;height:34px;min-width:34px}.defeat-emblem{width:145px}}.battlefield .ready-panel{width:min(340px,calc(100% - 32px));padding:22px 26px;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:22px}.battlefield .ready-panel h2{font-size:28px;line-height:1.1;margin:0 0 12px}.battlefield .ready-panel .begin-button{width:100%;min-height:42px;margin:16px 0 0;font-size:15px;justify-content:center;padding:9px 18px}dialog.pause-modal{width:min(380px,calc(100vw - 32px));padding:0 26px 24px;border-radius:24px}.pause-modal .modal-heading{margin:0 -26px 16px;padding:22px 58px 14px 26px;min-height:0;background:none}.pause-modal .modal-heading h2{font-size:28px;line-height:1.15}.pause-modal .unpause-button{width:100%;min-height:44px;justify-content:center;margin-top:18px}.resolve-quote{margin:0;text-align:center}.resolve-quote blockquote{margin:0;font-family:Georgia,Times New Roman,serif;font-size:18px;font-style:italic;font-weight:400;line-height:1.4;color:#e9dfc8;text-shadow:0 2px 3px #0009}.resolve-quote figcaption{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:14px;text-align:left}.resolve-quote img{width:48px;height:48px;flex:0 0 48px;object-fit:cover;border-radius:50%;border:1px solid #b49355;box-shadow:0 2px 7px #0009}.resolve-quote cite{display:block;color:#eed49a;font:600 14px Georgia,serif}.resolve-quote a{display:block;margin-top:5px;font-size:10px;line-height:1.3;color:#aaa996;text-decoration:none}.resolve-quote a:hover{color:#f3dc9f;text-decoration:underline}@media(max-height:520px){.battlefield .ready-panel{padding:14px 22px}.battlefield .ready-panel h2{font-size:24px;margin-bottom:8px}.resolve-quote blockquote{font-size:16px}.resolve-quote figcaption{margin-top:10px}.battlefield .ready-panel .begin-button{margin-top:10px}}dialog.section-panel{position:fixed;inset:auto;top:var(--section-top);left:var(--section-left);width:var(--section-width);height:var(--section-height);max-width:none;max-height:none;margin:0;box-sizing:border-box;z-index:30;overflow-y:auto;overscroll-behavior:contain;border-radius:26px;box-shadow:0 12px 35px #0008}.section-panel .modal-heading{padding-top:22px;padding-bottom:20px}.section-panel .modal-heading h2{font-size:clamp(24px,2.5vw,34px)}.command-bar{position:relative;z-index:31}dialog.defeat-modal{width:min(440px,calc(100vw - 28px));max-height:calc(100svh - 28px);padding:0;border-radius:24px}.defeat-modal .modal-heading{min-height:42px;margin:0;border:0}.defeat-modal .close-modal{top:12px;right:12px}.defeat-modal .defeat-scene{padding:0 24px 22px}.defeat-modal .defeat-scene h3{font-size:34px;line-height:1.1;margin:0 0 4px}.defeat-level{margin:0 0 18px;color:#b6b7aa;font-size:13px}.defeat-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0;text-align:left}.defeat-stats>div{border:1px solid #9d82594d;border-radius:12px;padding:12px 14px;background:#09182090}.defeat-stats dt{color:#aebdbb;font-size:12px}.defeat-stats dd{margin:5px 0 0;font:600 25px Georgia,serif;color:#f3d79e;font-variant-numeric:tabular-nums}.defeat-modal .defeat-kept{margin:14px 0;font-size:14px}.defeat-modal .defeat-actions{gap:10px;margin-bottom:10px}.defeat-modal .defeat-actions button,.defeat-modal .defeat-armory{min-height:40px;padding:10px 12px;font-size:13px}@media(max-width:600px){dialog.section-panel{border-radius:18px}.section-panel .modal-heading{padding:18px 56px 16px 18px}}dialog.victory-modal{width:min(480px,calc(100vw - 28px));max-height:calc(100svh - 28px);border-radius:24px}.victory-modal .modal-heading{padding:18px 60px 14px 22px}.victory-modal .modal-heading h2{font-size:30px}.victory-modal .result-hero{padding:12px 22px 0}.victory-modal .result-stars{margin:0;font-size:24px}.victory-modal .reward-row{padding:12px 22px}.victory-modal .reward-row strong{font-size:20px}.victory-modal .result-details{margin:8px 12px;font-size:12px}.victory-modal .result-buttons{padding:12px 22px 20px;gap:10px}.victory-modal .result-buttons button{padding:10px;min-height:42px;font-size:13px}@media(max-height:700px){.defeat-modal .defeat-stats>div{padding:8px 12px}}.defeat-modal .defeat-stats>div{padding:9px 12px}.defeat-modal .defeat-stats dd{font-size:22px}.painted-icon{display:inline-block;object-fit:contain;flex-shrink:0;vertical-align:middle;filter:drop-shadow(0 1px 2px #0009)}.battle-wallet .wallet .painted-icon{width:25px;height:25px}.battle-wallet .icon-button{width:30px;height:29px;padding:1px;display:grid;place-items:center}.battle-wallet .icon-button .painted-icon{width:27px;height:27px;transition:transform .16s ease}.battle-wallet .icon-button:hover .painted-icon{transform:rotate(-10deg)}@media(max-width:680px){.battle-wallet .wallet .painted-icon{width:21px;height:21px}.battle-wallet .icon-button{width:25px;height:24px}.battle-wallet .icon-button .painted-icon{width:23px;height:23px}}@media(prefers-reduced-motion:reduce){.battle-wallet .icon-button .painted-icon{transition:none}}.command-bar{isolation:isolate;display:flex;flex-wrap:nowrap;min-height:106px;gap:clamp(12px,2vw,36px);padding:14px 24px 18px;margin-top:8px;border:0;border-top:3px double #b59a60;border-bottom:3px double #b59a60;background:linear-gradient(90deg,#061117f5,#10232cdd 45%,#08151df5),url(/assets/forged-panel.png) center/cover;box-shadow:inset 0 3px #030b10,inset 0 -3px #030b10,0 5px 20px #0005}.command-bar:before,.command-bar:after{content:"";position:absolute;z-index:2;width:12px;height:12px;left:calc(50% - 6px);background:linear-gradient(135deg,#37525a,#0a1820);border:2px solid #d0b273;box-shadow:0 0 0 3px #13222a,0 0 0 4px #806742;transform:rotate(45deg);pointer-events:none}.command-bar:before{top:-8px}.command-bar:after{bottom:-8px}.command-bar .brand{display:none}.command-bar nav{flex:1 1 auto;justify-content:space-between;gap:8px;min-width:0;order:0;width:auto}.command-bar .nav-item{flex:1 1 0;justify-content:center;gap:10px;height:68px;padding:10px 16px;border:0;border-radius:0;background:transparent;box-shadow:none;color:#d2c6a7;font:600 clamp(16px,1.6vw,24px)/1 Georgia,serif;text-shadow:0 2px 3px #000;overflow:visible}.command-bar .nav-item span{display:inline}.command-bar .nav-item+.nav-item:before{content:"◇";position:absolute;left:-7px;top:19px;height:30px;color:#887747;font:14px/30px Georgia,serif;background:linear-gradient(transparent,#ac925b,transparent) center/1px 100% no-repeat}.command-bar .nav-item.active{background:url(/assets/ui/nav-bevel.svg) center/100% 100% no-repeat;color:#ffe2a1;filter:drop-shadow(0 3px 4px #0008)}.command-bar .nav-item:hover{color:#fff0c7}.command-bar .nav-item:hover .nav-art{filter:brightness(1.2) drop-shadow(0 0 7px #ffc76e70)}.command-bar .nav-item.active:after{content:"";bottom:-9px;left:18%;right:18%;height:3px;background:#ffe290;border-radius:50%;box-shadow:0 0 6px #ffc947,0 0 15px #d99c37}.command-bar .nav-art{width:38px;height:42px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 2px 2px #000b)}.command-bar .chapter-select{flex:0 1 36%;max-width:480px;min-width:260px;height:78px;display:flex;gap:13px;margin:0;padding:13px 25px;background:url(/assets/ui/nav-bevel.svg) center/100% 100% no-repeat;border:0;border-radius:0;box-shadow:none;color:#efddb5;text-shadow:0 2px 2px #000}.command-bar .chapter-select-icon{background:none;padding:0;border:0}.command-bar .chapter-select small{display:block;font:600 12px/1.2 Georgia,serif;letter-spacing:2px;color:#d9b264;margin-bottom:7px}.command-bar .chapter-select strong{font:600 clamp(14px,1.45vw,21px)/1.2 Georgia,serif;white-space:normal}.command-bar .chapter-select>svg{color:#f2cb77;width:21px;height:25px;flex-shrink:0}.command-bar .nav-item:focus-visible,.command-bar .chapter-select:focus-visible{outline:2px solid #ffdf90;outline-offset:4px}@media(max-width:1000px){.command-bar{padding:12px 12px 17px;gap:10px}.command-bar .nav-item{padding:8px 10px;font-size:16px;gap:6px}.command-bar .nav-art{width:29px;height:34px}.command-bar .chapter-select{min-width:220px;padding:12px 18px;flex-basis:32%;gap:7px}.command-bar .chapter-select small{font-size:10px;letter-spacing:1px}}@media(max-width:700px){.command-bar{flex-wrap:wrap;padding:10px 8px 14px;gap:16px}.command-bar nav{width:100%;flex-basis:100%;gap:5px}.command-bar .nav-item{height:58px;flex-direction:column;gap:3px;padding:7px 5px;font-size:12px}.command-bar .nav-art{width:26px;height:27px}.command-bar .chapter-select{max-width:none;min-width:0;flex:1 1 100%;height:56px;padding:9px 24px}.command-bar .chapter-select small{margin-bottom:2px}.command-bar .chapter-select strong{font-size:14px}}.command-bar .nav-item.active>span:before{content:"";position:absolute;top:-2px;left:calc(50% - 4px);width:8px;height:8px;transform:rotate(45deg);background:#142935;border:2px solid #f0ce80;box-shadow:0 0 0 2px #493c23}.command-bar .chapter-select:hover{filter:brightness(1.12)}:root{--font-display: Georgia, "Times New Roman", serif;--font-control: "DM Sans", sans-serif;--radius-control: 12px;--radius-small: 8px;--radius-round: 50%;--touch-target: 44px;--card-action-height: 56px;--card-action-font: 18px;--card-action-icon: 24px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--text-muted: #afc2c1;--notification-red: #b92530;--frame-disabled: #75664b;--surface-control: linear-gradient(#2a424e, #101f2a 80%);--surface-primary: linear-gradient(#23557a, #0c3655 65%, #09263e);--surface-control-hover: linear-gradient(#465c65, #233d49);--surface-primary-hover: linear-gradient(#598a99, #285772);--control-hover-shadow: var(--frame-bevel), 0 0 9px color-mix(in srgb, var(--frame-gold) 33%, transparent);--portrait-hover-shadow: 0 0 0 2px var(--frame-gold), 0 0 18px color-mix(in srgb, var(--frame-light) 44%, transparent);--surface-panel: linear-gradient(135deg, #223945, #0e202b);--surface-selected: linear-gradient(#785e32, #30281d);--selection-fire: #ff9d32;--selection-ember: #d84b17;--selection-core: #fff0b3}html[data-display-mode=compact]{--card-action-height: 48px;--card-action-font: 16px}:root{--frame-gold: #caa15c;--frame-light: #f7dda0;--frame-shadow: #5d4221;--frame-iron: #0d1c27;--frame-blue: #43b9ee;--frame-art: url(/assets/ui/sovereign-frame.png);--frame-radius: 14px;--frame-bevel: inset 0 0 0 1px #ffe5a078, inset 0 0 0 3px #07121de6, inset 0 0 0 4px #96713d70, 0 3px 6px #0006}.main .game-shell,dialog:is(dialog,.section-panel,.defeat-modal,.pause-modal),.battlefield .ready-panel{border:12px solid transparent;border-image-source:var(--frame-art);border-image-slice:26%;border-image-width:48px;border-image-repeat:stretch;border-image-outset:0;border-radius:var(--frame-radius);box-shadow:inset 0 0 0 1px #aa8a50,0 12px 28px #0008}.main .game-shell{border-image-width:58px;overflow:hidden}dialog:is(dialog,.section-panel,.defeat-modal,.pause-modal),.battlefield .ready-panel{background:radial-gradient(ellipse at 50% 0,#213844,#0d1c27 80%)}.battlefield .ready-panel{border-image-width:40px;padding:24px 22px 22px}dialog .modal-heading{background:linear-gradient(#1b303aef,#10232def);border-bottom:3px double var(--frame-gold)}dialog .modal-heading>.close-modal{right:16px;top:16px}.main .battlefield{border:0;border-bottom:3px double var(--frame-gold)}.main .loadout{background:linear-gradient(#162a36,#0a1822);border-top:1px solid #f6d38b}.battlefield .ready-panel:after{content:"";position:absolute;left:calc(50% - 7px);top:-7px;width:14px;height:14px;transform:rotate(45deg);pointer-events:none;background:linear-gradient(135deg,#e5f9ff,#2db7fa 43%,#075593 50%,#091d3e);border:2px solid var(--frame-light);box-shadow:0 0 0 3px #6e512b,0 0 8px #142c3e}:is(.frame-panel,.weapon-card,.item-card,.creature-card,.boss-roster>div,.equipment-slot,.world-map,.journey-strip,.spell-picker,.talent-intro,.save-tools,.result-details,.loot-drop,.defeat-stats>div,.result-cinematic,.toast){border:1px solid var(--frame-gold);border-radius:var(--frame-radius);box-shadow:var(--frame-bevel);background-color:var(--frame-iron)}:is(.weapon-card,.item-card,.creature-card,.boss-roster>div){background-image:linear-gradient(135deg,#223945,#0e202b)}:is(.weapon-card,.item-card).equipped{border-color:var(--frame-light);box-shadow:var(--frame-bevel),0 0 10px #e6bc4936}:is(.primary,.secondary,.small-button,.icon-button,.hud-button,.upgrade-quick,.section-tabs button,.region-tabs button,.setting-row,.spell-card-actions button,.battle-wallet,.journey-node>span,.map-circle,.map-chest,.spell-key){border:1px solid var(--frame-gold);border-radius:var(--radius-control);box-shadow:var(--frame-bevel);background:var(--surface-control);color:#f3dfae}button.primary{background:var(--surface-primary);border-color:var(--frame-light)}:is(.primary,.secondary,.small-button,.icon-button,.hud-button,.upgrade-quick,.section-tabs button,.region-tabs button):hover:not(:disabled,[aria-disabled=true]){border-color:var(--frame-light);box-shadow:var(--control-hover-shadow)}:is(.section-tabs,.region-tabs) button.active{border-color:var(--frame-light);background:var(--surface-selected)}button:focus-visible{outline:2px solid var(--frame-blue);outline-offset:3px}button:is(:disabled,[aria-disabled=true]){border-color:var(--frame-disabled)}:is(.weapon-picture,.equipment-slot,.item-icon,.creature-portrait,.resolve-quote img,.boss-roster-icon,.talent-emblem,.hud-shield,.rune-ring,.fortress-portrait){border-color:var(--frame-gold);box-shadow:var(--frame-bevel)}.attachment-art.rarity-rare{border-color:#97d9f4}.attachment-art.rarity-epic{border-color:#b88be8}.attachment-art.rarity-legendary{border-color:#ffcf62}.spell-art{border:3px ridge var(--frame-light);border-radius:50%;box-shadow:0 0 0 1px #61431d,inset 0 0 0 2px #0a1720,0 3px 7px #0009}.spell-button.selected .spell-art{border-color:#ffe5a5;box-shadow:0 0 0 2px #7a5526,0 0 14px #e7b84b80}:is(.meter,.fortress-vital-track,.vital-track,.toggle,.trait-tags span,.weapon-tag,.kill-counter){border-color:var(--frame-gold)}.wave-pips i{border:1px solid var(--frame-gold);box-shadow:inset 0 1px #f7dda04a}.modal-note,.section-tabs,.region-tabs{border-color:var(--frame-gold)}.yope-banner{border:2px solid var(--frame-gold);box-shadow:var(--frame-bevel)}@media(max-width:700px){.main .game-shell{border-width:7px;border-image-width:35px}dialog:is(dialog,.section-panel,.defeat-modal,.pause-modal),.battlefield .ready-panel{border-width:8px;border-image-width:30px}.battlefield .ready-panel{padding:18px 16px}}.main .game-shell{border-width:28px;border-image-width:58px}dialog:is(dialog,.section-panel,.defeat-modal,.pause-modal){border-width:24px;border-image-width:48px}@media(max-width:700px){.main .game-shell{border-width:17px;border-image-width:35px}dialog:is(dialog,.section-panel,.defeat-modal,.pause-modal){border-width:15px;border-image-width:30px}}.world-map .map-intro,.world-map .map-node-label{color:#edd8a7;background:#112632ed;border:1px solid var(--frame-gold);border-radius:10px;box-shadow:var(--frame-bevel)}.world-map .map-node .map-circle{background:linear-gradient(#2b4655,#0d2331);color:#f3dfae;border:2px solid var(--frame-gold);box-shadow:var(--frame-bevel)}.world-map .map-node.completed .map-circle{border-color:#dfc481}.world-map .map-node.selected .map-circle{border-color:#ffe5a5;box-shadow:var(--frame-bevel),0 0 12px #43b9ee80}.world-map .map-node.locked .map-circle{border-color:#736448;opacity:.65}.main .game-shell{position:relative}.main .game-shell:after{content:"";position:absolute;top:-19px;left:calc(50% - 7px);z-index:5;width:14px;height:14px;transform:rotate(45deg);pointer-events:none;background:linear-gradient(135deg,#e5f9ff,#2db7fa 43%,#075593 50%,#091d3e);border:2px solid var(--frame-light);box-shadow:0 0 0 3px #6e512b}@media(max-width:700px){.main .game-shell:after{top:-11px;width:9px;height:9px}}.settings-list .setting-row{padding:16px 14px;margin-bottom:5px}.wave-status .wave-pips{position:relative;isolation:isolate;width:clamp(190px,21vw,290px);height:46px;margin:5px auto 3px;display:flex;align-items:center;justify-content:space-between;gap:0}.wave-status .wave-pips:before,.wave-status .wave-pips:after{content:"";position:absolute;top:18px;left:13px;right:20px;height:11px;z-index:-1;border-radius:5px}.wave-status .wave-pips:before{background:linear-gradient(#06141c,#29404c 45%,#0b1a25);border:2px solid #c59039;box-shadow:0 1px #ffe3a0,inset 0 2px 2px #000a,0 2px 4px #0009}.wave-status .wave-pips:after{right:auto;width:var(--wave-progress,0%);max-width:calc(100% - 33px);height:9px;top:21px;background:linear-gradient(#fffab7,#ffe348 45%,#e3a827);box-shadow:0 0 9px #ffcb4a9a}.wave-node{display:grid;place-items:center;position:relative;width:27px;height:27px;flex:0 0 27px;border-radius:50%;border:3px solid #e6b85c;background:radial-gradient(circle at 35% 25%,#475c65,#142430 55%,#08131e);box-shadow:inset 0 0 0 1px #fff0ae80,inset 0 0 0 3px #09141c,0 0 0 1px #68431d,0 3px 5px #0009}.wave-node.complete{background:radial-gradient(circle at 33% 27%,#ffffc3,#d6df44 32%,#929b0c 62%,#3e4b04);box-shadow:inset 0 0 0 2px #6d5b23,0 0 0 1px #f5cc72,0 0 9px #efcb5666}.wave-node.current{width:39px;height:39px;flex-basis:39px;border-color:#ffe697;box-shadow:0 0 0 1px #a57122,0 0 13px #ffe46b9c}.wave-node.final{width:43px;height:43px;flex-basis:43px;border-width:4px;box-shadow:inset 0 0 0 2px #09131a,0 0 0 2px #a4aaa5,0 3px 7px #000b}.wave-node.final.current{box-shadow:inset 0 0 0 2px #09131a,0 0 0 2px #ffe7a1,0 0 15px #f8d667}.wave-node img{display:block;width:32px;height:32px;object-fit:contain}.wave-node img.wave-orc{width:47px;height:47px;max-width:none;position:absolute;bottom:-2px;filter:drop-shadow(0 2px 1px #0009)}@media(max-width:1000px){.wave-status .wave-pips{width:185px}}@media(max-width:700px){.wave-status .wave-pips{width:120px;height:30px}.wave-node{width:15px;height:15px;flex-basis:15px;border-width:2px}.wave-node.current{width:23px;height:23px;flex-basis:23px}.wave-node.final{width:27px;height:27px;flex-basis:27px;border-width:3px}.wave-node img{width:22px;height:22px}.wave-node img.wave-orc{width:31px;height:31px}.wave-status .wave-pips:before{top:12px;height:7px;left:8px;right:12px}.wave-status .wave-pips:after{top:14px;height:7px;left:8px;max-width:calc(100% - 20px)}}.main .command-bar{display:flex;align-items:center;flex-wrap:nowrap;min-height:72px;height:auto;padding:6px 16px;margin-top:0;gap:clamp(16px,4vw,56px);border:0;border-bottom:1px solid #ab8b4e70;background:linear-gradient(90deg,#0a171f80,#18303a60,#0a171f80);box-shadow:none}.main .command-bar:before,.main .command-bar:after,.main .command-bar .nav-item:before,.main .command-bar .nav-item.active>span:before{content:none}.main .command-bar .brand{display:flex;flex:0 0 auto;align-items:center;margin:0;padding:0;min-height:0;background:none;border:0;box-shadow:none}.main .command-bar .brand-art{width:186px;height:60px;margin:0}.main .command-bar nav{display:flex;align-items:center;justify-content:flex-start;flex:1 1 auto;width:auto;gap:clamp(12px,2.5vw,36px);margin:0;order:0}.main .command-bar .nav-item{flex:0 1 auto;flex-direction:row;align-items:center;justify-content:center;height:48px;min-height:44px;padding:8px 10px;gap:7px;border:0;border-image:none;border-radius:0;background:none;box-shadow:none;filter:none;font:600 15px/1.2 Georgia,serif;white-space:nowrap}.main .command-bar .nav-art{width:25px;height:27px}.main .command-bar .nav-item.active:after{bottom:0;left:14%;right:14%;height:2px;border-radius:2px;background:#f8d580;box-shadow:0 0 6px #edb649b0,0 2px 12px #edb64950}@media(max-width:700px){.main .command-bar{gap:8px;padding:5px 6px;min-height:62px}.main .command-bar .brand-art{width:128px;height:46px}.main .command-bar nav{gap:3px}.main .command-bar .nav-item{padding:6px;gap:4px;font-size:12px}.main .command-bar .nav-art{width:20px;height:22px}}@media(max-width:480px){.main .command-bar{gap:4px}.main .command-bar .brand-art{width:94px;height:36px}.main .command-bar nav{justify-content:space-between;gap:0}.main .command-bar .nav-item{flex-direction:column;padding:3px 4px 6px;gap:2px;font-size:10px}.main .command-bar .nav-art{width:19px;height:20px}}.main .loadout .weapon-picture{padding:5px;aspect-ratio:1;height:auto;background:radial-gradient(ellipse at 50% 45%,#254552,#091723 78%)}.main .loadout .weapon-picture img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;min-width:0;object-fit:contain;object-position:center;transform:none;filter:drop-shadow(0 2px 2px #0009)}.main .battle-hud{column-gap:14px;flex-wrap:wrap}.main .battle-hud .wave-status{position:relative;left:auto;right:auto;top:auto;transform:none;flex:0 0 160px;width:160px;max-width:160px;margin:0 auto;padding-top:3px}.wave-status .wave-pips{width:160px;height:34px;margin:6px auto 3px}.wave-status .wave-node{width:22px;height:22px;flex-basis:22px;border-width:2px}.wave-status .wave-node.current{width:29px;height:29px;flex-basis:29px}.wave-status .wave-node.final{width:32px;height:32px;flex-basis:32px;border-width:3px}.wave-status .wave-node img{width:23px;height:23px}.wave-status .wave-node img.wave-orc{width:35px;height:35px}.wave-status .wave-pips:before{top:13px;height:8px;left:11px;right:16px}.wave-status .wave-pips:after{top:15px;height:6px;left:11px;max-width:calc(100% - 27px)}.main .wave-status small{font-size:9px}@media(max-width:900px){.main .battle-hud .wave-status{flex-basis:130px;width:130px;max-width:130px}.wave-status .wave-pips{width:130px}.wave-status .wave-node{width:18px;height:18px;flex-basis:18px}.wave-status .wave-node.current{width:25px;height:25px;flex-basis:25px}.wave-status .wave-node.final{width:28px;height:28px;flex-basis:28px}.wave-status .wave-node img{width:20px;height:20px}.wave-status .wave-node img.wave-orc{width:30px;height:30px}}@media(max-width:700px){.main .battle-hud .wave-status{order:3;margin:5px auto 0}}dialog:has(>.modal-scroll){--rail: 24px;--ornament: 48px;overflow:visible;clip-path:inset(0 round 14px)}.modal-scroll{overflow:auto;overscroll-behavior:contain;max-height:calc(90svh - 48px);border-radius:var(--radius-control);scrollbar-width:thin}dialog.section-panel>.modal-scroll{height:100%;max-height:100%}dialog:is(.victory-modal,.defeat-modal)>.modal-scroll{max-height:calc(100svh - 106px)}.modal-frame{position:absolute;inset:calc(-1 * var(--rail));z-index:100;pointer-events:none;border:var(--rail) solid transparent;border-image:var(--frame-art) 26% / var(--ornament) stretch}.main .game-shell{overflow:visible;clip-path:inset(0 round 18px)}.main .game-shell:before{content:"";position:absolute;inset:-28px;z-index:25;pointer-events:none;border:28px solid transparent;border-image:var(--frame-art) 26% / 58px stretch}@media(max-width:700px){dialog:has(>.modal-scroll){--rail: 15px;--ornament: 30px}dialog:is(.victory-modal,.defeat-modal):has(>.modal-scroll){--rail: 17px;--ornament: 36px}.modal-scroll{max-height:calc(90svh - 30px)}.main .game-shell:before{inset:-17px;border-width:17px;border-image-width:35px}}.wave-status .wave-pips{display:block;--rail-inset: 16px}.wave-status .wave-pips>.wave-node{position:absolute;left:calc(var(--rail-inset) + (100% - 2 * var(--rail-inset)) * var(--node-fraction, 0));top:50%;transform:translate(-50%,-50%)}.wave-status .wave-pips>.wave-runner{left:calc(var(--rail-inset) + (100% - 2 * var(--rail-inset)) * var(--wave-fraction, 0));z-index:2}.wave-status .wave-pips:before{left:var(--rail-inset);right:var(--rail-inset)}.wave-status .wave-pips:after{left:var(--rail-inset);width:calc((100% - 2 * var(--rail-inset)) * var(--wave-fraction, 0))}@media(max-width:900px){.wave-status .wave-pips{--rail-inset: 14px}}.weapon-stats .weapon-stat-icon,.card-stats .weapon-stat-icon{display:inline-block;object-fit:contain;flex:0 0 auto;width:25px;height:25px;margin-right:3px;filter:drop-shadow(0 2px 2px #0009)}.card-stats .weapon-stat-icon{width:22px;height:22px}.weapon-stat-copy{display:flex;flex-direction:column;gap:3px}.weapon-stat-copy small{font-size:9px;line-height:1.2;color:#adbbb9}.weapon-stat-copy strong{font-size:12px;line-height:1.2;color:#f1dba7;font-variant-numeric:tabular-nums}.weapon-stat-copy em{font-size:10px;font-style:normal;font-weight:400;color:#bec9c8}.card-stats{flex-wrap:wrap}@media(max-width:600px){.weapon-stat-copy small{font-size:8px}.weapon-stat-copy strong{font-size:11px}.weapon-stat-copy em{font-size:9px}.weapon-stats .weapon-stat-icon{width:21px;height:21px;margin-right:0}}dialog.pause-modal::backdrop{background:#040b132e;-webkit-backdrop-filter:none;backdrop-filter:none}dialog.pause-modal{width:min(430px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:14px 18px 20px}dialog.pause-modal>.modal-scroll{max-height:calc(100dvh - 106px);min-width:0;overflow-x:hidden}dialog.pause-modal .modal-heading{position:relative;margin:0 0 18px;padding:8px 48px 16px 0;min-height:56px}dialog.pause-modal .modal-heading>div{min-width:0}dialog.pause-modal .close-modal{position:absolute;right:0;top:2px;width:var(--touch-target);height:var(--touch-target);min-height:var(--touch-target);padding:6px}dialog.pause-modal .resolve-quote blockquote{font-size:clamp(18px,2.2vw,22px);overflow-wrap:break-word}@media(max-width:700px){dialog.pause-modal{padding:10px 14px 16px}dialog.pause-modal>.modal-scroll{max-height:calc(100dvh - 82px)}}@media(min-width:901px){.main .battlefield:fullscreen .battle-hud{display:grid;grid-template-columns:minmax(0,1fr) 260px 160px minmax(0,1fr);column-gap:20px;align-items:start;left:24px;right:24px}.main .battlefield:fullscreen .fortress-status{grid-column:2;left:0;top:0}.main .battlefield:fullscreen .wave-status{grid-column:3;margin:0}.main .battlefield:fullscreen .battle-controls{grid-column:4;justify-self:end;flex-wrap:wrap;justify-content:flex-end;max-width:250px;gap:6px}.main .battlefield:fullscreen .battle-wallet{flex-basis:100%;justify-content:center}}.main .game-shell.is-preparing{visibility:hidden}.battle-menu-scrim{position:absolute;inset:0;z-index:15;background:color-mix(in srgb,var(--frame-iron) 35%,transparent);pointer-events:none}dialog.pause-modal.battle-overlay{position:fixed;inset:auto;top:calc(var(--section-top) + var(--section-height) / 2);left:calc(var(--section-left) + var(--section-width) / 2);transform:translate(-50%,-50%);margin:0;z-index:31;width:min(430px,calc(var(--section-width) - 24px));max-height:calc(var(--section-height) - 16px)}dialog.pause-modal.battle-overlay>.modal-scroll{display:flex;flex-direction:column;max-height:calc(var(--section-height) - 96px);overflow:hidden}dialog.pause-modal.battle-overlay .modal-heading,dialog.pause-modal.battle-overlay .unpause-button{flex-shrink:0}dialog.pause-modal.battle-overlay .resolve-quote{min-height:0;overflow-y:auto;overscroll-behavior:contain}.castle-panel .section-tabs{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin:0;padding:var(--space-4) 64px;overflow-x:auto;flex-wrap:nowrap;border-bottom:3px double var(--frame-gold);background:var(--surface-panel)}.castle-panel .section-tabs button{display:flex;align-items:center;justify-content:center;gap:var(--space-2);flex:0 0 auto;min-width:136px;min-height:48px;padding:var(--space-2) var(--space-4);border:2px solid var(--frame-gold);border-radius:var(--radius-control);background:var(--surface-control);color:var(--frame-light);box-shadow:var(--frame-bevel);font:600 18px/1.2 var(--font-display);white-space:nowrap}.castle-panel .section-tabs button:hover{border-color:var(--frame-light);box-shadow:var(--control-hover-shadow)}.castle-panel .section-tabs button.active{border-color:var(--frame-light);background:var(--surface-selected);box-shadow:var(--frame-bevel)}.castle-panel .section-tabs button:focus-visible{outline:2px solid var(--frame-blue);outline-offset:3px}.castle-close{position:absolute;top:var(--space-4);right:var(--space-3);z-index:11;width:var(--touch-target);height:var(--touch-target);min-height:var(--touch-target);padding:0}.castle-panel:has(.castle-close) .castle-field-notes{padding-right:64px}.castle-field-notes{padding:var(--space-3) var(--space-6) 0;margin:0 0 var(--space-2);font-size:14px;color:var(--text-muted)}html[data-display-mode=desktop] .castle-panel>.modal-scroll{scroll-padding-top:88px}.creature-portrait.bestiary-meadow{position:relative;isolation:isolate;width:100%;height:auto;aspect-ratio:4 / 3;overflow:hidden;background:url(/assets/bestiary/meadow.webp) center / cover no-repeat}.bestiary-meadow:before{content:"";position:absolute;width:48%;height:10%;left:26%;bottom:6%;background:radial-gradient(ellipse,color-mix(in srgb,var(--frame-iron) 45%,transparent),transparent 70%);pointer-events:none}.creature-portrait.bestiary-meadow>canvas{position:relative;display:block;z-index:1;width:100%;height:100%}.creature-portrait.bestiary-meadow>img{position:absolute;z-index:1;width:85%;height:85%;left:7.5%;bottom:7%;object-fit:contain}.bestiary-meadow.preview-ready>img{visibility:hidden}.creature-portrait.bestiary-meadow>img.boss-poster{width:100%;height:100%;left:0;bottom:0}@media(min-width:901px)and (max-width:1400px){.bestiary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:481px)and (max-width:900px){.bestiary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.bestiary-grid{grid-template-columns:minmax(0,1fr)}}@media(max-height:500px)and (min-width:701px){.castle-panel:has(.bestiary-grid) .castle-navigation{position:static}.creature-portrait.bestiary-meadow{width:min(100%,calc((100dvh - 184px) * 4 / 3));margin-inline:auto}}.level-intro{position:absolute;z-index:12;top:50%;left:50%;transform:translate(-50%,calc(-50% + var(--intro-lift, 0px)));width:min(440px,76%);padding:22px 30px;border:3px double var(--frame-gold);border-radius:var(--radius-control);background:radial-gradient(ellipse at 50% 0,#294551f5,#091b28f5 85%);box-shadow:var(--frame-bevel),0 10px 36px #0009,0 0 30px #e8c37112;text-align:center;pointer-events:none}.level-intro[hidden]{display:none}.level-intro:before,.level-intro:after{content:"";position:absolute;top:calc(50% - 5px);width:10px;height:10px;border:1px solid #ffe6a6;background:linear-gradient(135deg,#f4d185,#94632c);transform:rotate(45deg);box-shadow:0 0 0 3px #112733}.level-intro:before{left:-6px}.level-intro:after{right:-6px}.level-intro .eyebrow{display:block;color:#d4b370;text-transform:uppercase;letter-spacing:.25em;font-size:10px}.level-intro strong{display:block;margin-top:5px;color:#ffe4a6;font:600 clamp(30px,4vw,48px)/1.1 Georgia,serif;text-shadow:0 3px 4px #000b}.level-intro-rule{display:flex;align-items:center;gap:10px;width:70%;margin:9px auto;color:#d0ac60;font-size:7px}.level-intro-rule:before,.level-intro-rule:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,#d0ac60)}.level-intro-rule:after{transform:rotate(180deg)}.level-intro p{margin:0;color:#efe1bd;font:19px/1.3 Georgia,serif;text-wrap:balance}.commander-portrait{display:block;position:relative;width:88px;aspect-ratio:1;border:2px solid var(--frame-gold);border-radius:var(--radius-round);padding:3px;background:#0b1a24;box-shadow:0 0 0 1px #10232c,0 5px 12px #0005;overflow:hidden}.commander-portrait img{display:block;width:100%;height:100%;object-fit:cover;border-radius:var(--radius-round)}.commander-node .commander-medallion{position:relative;z-index:1}.commander-node .commander-portrait{width:clamp(70px,7vw,100px);transition:border-color .16s ease,box-shadow .16s ease}.commander-node.selected .commander-portrait{border-color:#ffe2a1;box-shadow:0 0 0 2px #a17835,0 0 0 4px #ffe2a1,0 0 22px #edc46f85}.commander-node.completed:not(.selected) .commander-portrait{border-color:#d0b36e}.world-map .commander-node.locked{opacity:1}.commander-node.locked .commander-portrait{border-color:#81704d}.commander-node.locked .commander-portrait img{filter:grayscale(.55) contrast(.95) brightness(1.02);opacity:.94}.commander-node:not(:disabled,[aria-disabled=true]):hover .commander-portrait{border-color:var(--frame-light);box-shadow:var(--portrait-hover-shadow)}.commander-node:focus-visible{outline:2px solid #ffe4a6;outline-offset:8px;border-radius:var(--radius-control)}.commander-lock,.commander-crown{position:absolute;z-index:2;display:grid;place-items:center;border:1px solid var(--frame-gold);color:var(--frame-light);background:var(--frame-iron);box-shadow:var(--frame-bevel)}.commander-lock{width:clamp(18px,calc(var(--portrait-size, 100px) * .18),28px);aspect-ratio:1;border-radius:var(--radius-round);right:8%;top:8%}.commander-crown{width:28px;height:23px;top:-9px;left:calc(50% - 14px);border-radius:var(--radius-small);background:var(--surface-selected)}.world-map .commander-node .map-node-label{position:relative;z-index:3;display:flex;align-items:center;gap:6px;width:max-content;max-width:100%;min-height:0;margin-top:-10px;padding:2px 7px;border:1px solid var(--frame-gold);border-radius:var(--radius-small);background:var(--surface-panel);box-shadow:var(--frame-bevel);line-height:1.1}.commander-level{display:grid;place-items:center;align-self:stretch;flex:none;min-width:20px;padding-right:6px;border-right:1px solid var(--frame-disabled);color:var(--frame-light);font:600 clamp(13px,1.25vw,18px)/1 var(--font-display);font-variant-numeric:tabular-nums}.commander-caption{min-width:0;text-align:left}.commander-node .map-node-label strong{display:block;font:600 clamp(11px,1vw,14px)/1.1 var(--font-display);color:var(--frame-light);overflow-wrap:normal}.commander-class{display:block;margin-top:1px;font:10px/1.1 var(--font-control);color:var(--text-muted)}.commander-node .node-stars{margin-top:-3px;min-height:14px;color:#6e7569}.commander-node .node-stars .earned{color:#ba7c1b;text-shadow:0 1px #ffefbd}.commander-chest{display:inline-flex;margin-left:4px;color:#795626}.campaign-content .commander-node:after{top:46px}#level-intro-portrait .commander-portrait{width:88px;margin:14px auto 0;border-color:#e8ca87}#level-intro-title{font-weight:600;font-size:25px}#level-intro-class{display:block;margin-top:4px;color:#cdbd97;font-size:12px}@media(max-width:640px){.level-intro{padding:12px 18px}.level-intro p{font-size:16px}#level-intro-portrait .commander-portrait{width:56px;margin-top:8px}#level-intro-title{font-size:20px}#level-intro-class{font-size:10px}}@media(prefers-reduced-motion:reduce){.level-intro{transform:translate(-50%,-50%)}}dialog.campaign-panel>.modal-scroll{display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.campaign-toolbar{display:flex;align-items:center;gap:12px;padding:6px 8px 10px;min-width:0}.campaign-toolbar .region-tabs{flex:1;min-width:0;border:0;padding:3px;gap:6px;scrollbar-width:thin}.campaign-toolbar .region-tabs button{min-height:var(--touch-target);padding:8px 11px;flex:none}.campaign-toolbar .campaign-close{position:static;flex:0 0 var(--touch-target);width:var(--touch-target);height:var(--touch-target);padding:0}.campaign-content{--campaign-rows: var(--chapter-rows);--campaign-columns: 5;min-height:0;min-width:0;container-type:size;position:relative}.campaign-lock{position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding:var(--space-4);pointer-events:none;border-radius:var(--radius-control);background:color-mix(in srgb,var(--frame-iron) 12%,transparent)}.campaign-lock-card{width:min(100%,340px);padding:var(--space-4) var(--space-6);pointer-events:auto;border:2px solid var(--frame-gold);border-radius:var(--radius-control);background:var(--surface-panel);box-shadow:var(--frame-bevel),0 8px 24px color-mix(in srgb,var(--frame-iron) 35%,transparent);text-align:center;color:var(--frame-light)}.campaign-lock-copy{min-width:0}.campaign-lock-card h3{margin:0;color:var(--frame-light);font:600 clamp(20px,2.5cqw,24px)/1.15 var(--font-display);text-wrap:balance}.campaign-lock-requirement{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin:var(--space-2) 0 0;color:var(--text-muted);font:400 13px/1.5 var(--font-control);text-wrap:pretty}.campaign-lock-requirement>span:first-child{display:flex;flex-shrink:0;color:var(--frame-gold)}.campaign-lock-requirement strong{color:var(--frame-light);font-weight:600}@container (max-width: 400px){.campaign-lock-card{width:min(100%,270px);padding:var(--space-3) var(--space-4)}}@container (max-height: 310px){.campaign-lock{padding:var(--space-2)}.campaign-lock-card{width:min(100%,310px);padding:var(--space-2) var(--space-4)}.campaign-lock-card h3{font-size:20px}.campaign-lock-requirement{margin-top:var(--space-1);font-size:12px}}.campaign-content .world-map{height:100%;min-height:0;padding:0;border-radius:var(--radius-control)}.campaign-content .map-path{--map-inset-x: 22px;--map-inset-y: 18px;--fire-clearance: min(64px, 7cqh);--map-row-gap: 12px;--map-column-gap: 22px;--tag-reserve: 32px;--portrait-size: max( 36px, min( calc( ( 100cqh - var(--fire-clearance) - 2 * var(--map-inset-y) - (var(--campaign-rows) - 1) * var(--map-row-gap) ) / var(--campaign-rows) - var(--tag-reserve) ), calc( ( 100cqw - 2 * var(--map-inset-x) - (var(--campaign-columns) - 1) * var(--map-column-gap) ) / var(--campaign-columns) - 18px ) ) );height:100%;padding:calc(var(--map-inset-y) + var(--fire-clearance)) var(--map-inset-x) var(--map-inset-y);grid-template-columns:repeat(var(--campaign-columns),minmax(0,1fr));grid-template-rows:repeat(var(--campaign-rows),minmax(0,1fr));gap:var(--map-row-gap) var(--map-column-gap)}.campaign-content .commander-node{justify-content:center;align-self:center;width:100%;gap:2px;min-height:var(--touch-target);transform:none}.campaign-content .commander-portrait{width:var(--portrait-size)}.campaign-content .commander-node:after{top:calc(var(--portrait-size) / 2);left:calc(50% + var(--portrait-size) / 2 + 8px);width:calc(100% - var(--portrait-size) + 6px);height:1px;border-radius:0;transform:none;pointer-events:none}.campaign-content .node-stars{margin:0;min-height:10px;font-size:9px;line-height:1}.campaign-launch{display:flex;align-items:center;justify-content:center;min-width:0;padding:var(--space-3) var(--space-4) var(--space-4)}.campaign-launch .campaign-continue{display:flex;align-items:center;justify-content:center;width:min(100%,340px);min-width:0;min-height:52px;margin:0;padding:var(--space-2) var(--space-4);font:600 clamp(20px,2.2vw,25px)/1.2 var(--font-display);text-align:center;white-space:normal;text-wrap:balance}.campaign-content .commander-node.selected .commander-medallion{isolation:isolate}.campaign-content .commander-node.selected .commander-portrait{z-index:1;border-color:var(--frame-gold);box-shadow:0 0 0 1px var(--selection-core)}.mission-fire{position:absolute;z-index:0;left:-35%;top:-35%;width:170%;height:170%;pointer-events:none;filter:drop-shadow(0 0 clamp(.75px,calc(var(--portrait-size, 100px) * .012),3px) var(--frame-iron)) drop-shadow(0 0 clamp(1.5px,calc(var(--portrait-size, 100px) * .024),6px) color-mix(in srgb,var(--frame-iron) 90%,transparent))}.campaign-content .commander-node.selected .commander-level,.campaign-content .commander-node.selected .commander-crown{z-index:2}.campaign-content .commander-node.selected .map-node-label{border-color:var(--selection-fire);background:var(--surface-selected);box-shadow:var(--frame-bevel),0 0 10px color-mix(in srgb,var(--selection-fire) 40%,transparent)}@media(max-width:640px)and (min-height:501px){.campaign-content{--campaign-columns: var(--portrait-columns);--campaign-rows: var(--portrait-rows)}.campaign-content .map-path{--map-inset-x: 8px;--map-inset-y: 12px;--map-column-gap: 8px;--map-row-gap: 8px;--tag-reserve: 28px;--portrait-size: max( 36px, min( calc( ( 100cqh - var(--fire-clearance) - 2 * var(--map-inset-y) - (var(--campaign-rows) - 1) * var(--map-row-gap) ) / var(--campaign-rows) - var(--tag-reserve) ), calc( ( 100cqw - 2 * var(--map-inset-x) - (var(--campaign-columns) - 1) * var(--map-column-gap) ) / var(--campaign-columns) - 8px ) ) )}.campaign-content .commander-node:after{display:none}.campaign-toolbar{padding:2px 0 6px;gap:6px}.campaign-content .commander-node .map-node-label{display:block;padding:3px 4px;margin-top:-10px}.campaign-content .commander-level{position:absolute;left:-4px;top:-13px;min-width:20px;height:17px;padding:0 3px;border:1px solid var(--frame-gold);border-radius:var(--radius-small);background:var(--frame-iron);font-size:10px}.campaign-content .commander-caption{text-align:center}.campaign-content .commander-class{font-size:9px}.campaign-content .commander-node .map-node-label strong{font-size:10px}.campaign-launch{padding:var(--space-3) var(--space-2)}.campaign-launch .campaign-continue{min-height:var(--touch-target);font-size:22px;width:100%;max-width:340px}}@container (min-width: 900px) and (max-height: 560px){.map-path:has(.commander-node:nth-child(20)){--campaign-columns: 7;--campaign-rows: 3}.map-path:has(.commander-node:nth-child(20)) .commander-node:after{display:none}}@media(max-height:500px){dialog.campaign-panel:has(>.modal-scroll){--rail: 15px;--ornament: 30px;border-width:15px}dialog.campaign-panel>.modal-scroll{grid-template-columns:minmax(0,1fr) minmax(150px,190px);grid-template-rows:auto minmax(0,1fr);column-gap:var(--space-3);row-gap:var(--space-2)}.campaign-toolbar{grid-column:1;grid-row:1;padding:0;gap:6px}.campaign-launch{grid-column:2;grid-row:1;padding:0;align-items:center}.campaign-launch .campaign-continue{width:100%;min-height:var(--touch-target);padding:var(--space-2);font-size:18px}.campaign-content{--campaign-columns: 5;--campaign-rows: 2;grid-column:1 / -1;grid-row:2}.campaign-content .map-path{--portrait-size: max( 28px, min( calc( ( 100cqh - var(--fire-clearance) - 20px - (var(--campaign-rows) - 1) * 8px ) / var(--campaign-rows) - 22px ), calc( (100cqw - 24px - (var(--campaign-columns) - 1) * 8px) / var(--campaign-columns) - 8px ) ) );padding:calc(10px + var(--fire-clearance)) 12px 10px;gap:8px}.campaign-content .commander-node{flex-direction:column;gap:2px}.campaign-content .commander-node .map-node-label{display:block;margin-top:-10px;padding:2px 3px;min-width:0}.campaign-content .commander-caption{text-align:center}.campaign-content .commander-node .map-node-label strong{font-size:9px}.campaign-content .commander-class{font-size:8px}.campaign-content .commander-medallion{flex:none}.campaign-content .commander-level{position:absolute;left:-3px;top:-11px;min-width:18px;height:15px;padding:0 2px;border:1px solid var(--frame-gold);border-radius:var(--radius-small);background:var(--frame-iron);font-size:9px}.campaign-content .commander-lock{width:16px}.campaign-content .commander-crown,.campaign-content .node-stars{display:none}.campaign-content .commander-node:after{display:none}}@media(min-width:641px)and (max-height:500px){.campaign-content:has(.commander-node:nth-child(15)){--campaign-columns: 8}.campaign-content:has(.commander-node:nth-child(20)){--campaign-columns: 10}.map-path:has(.commander-node:nth-child(20)){--campaign-columns: 10;--campaign-rows: 2}}dialog:is(.victory-modal,.defeat-modal){--result-dialog-width: min(1540px, calc(100vw - 16px) );--result-panel-inset: calc(var(--result-dialog-width) * .15 + var(--space-2));width:var(--result-dialog-width);max-width:none;max-height:calc(100dvh - 16px);padding:10px var(--result-panel-inset) 20px;border:18px solid transparent;border-image:var(--frame-art) 26% / 44px stretch;border-radius:var(--frame-radius);color:var(--frame-light);background:var(--frame-iron) url(/assets/ui/results/chronicle-backdrop.webp) center / cover no-repeat;overflow:visible}dialog:is(.victory-modal,.defeat-modal)[open]{display:flex;flex-direction:column}dialog:is(.victory-modal,.defeat-modal)>.modal-scroll{max-height:calc(100dvh - 100px);padding:2px 4px 4px;overflow-x:hidden;border-radius:var(--radius-control);scroll-padding-block:8px;scrollbar-color:var(--frame-gold) var(--frame-iron)}.result-close{position:absolute;z-index:5;top:8px;right:8px;width:var(--touch-target);height:var(--touch-target);min-height:var(--touch-target);padding:10px}.battle-result,.result-overview,.result-story,.result-performance{min-width:0}.battle-result{max-width:1120px;margin:auto}.result-stage{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,2.8fr) minmax(150px,1fr);grid-template-areas:"encounter banner ." "hero banner enemy" "hero film enemy" "hero report enemy";grid-template-rows:auto auto auto 1fr;gap:10px 24px;padding-inline:24px;align-items:start}.result-banner{grid-area:banner;position:relative;display:grid;place-items:center;min-height:194px;padding:36px 13% 72px;text-align:center;background:url(/assets/ui/results/victory-banner.webp) center / 100% 100% no-repeat}.defeat-modal .result-banner{background-image:url(/assets/ui/results/defeat-banner.webp)}.result-banner-copy{min-width:0;width:100%}.result-encounter{grid-area:encounter;min-width:0;width:100%;max-width:184px;justify-self:center;align-self:end;margin:6px 0 0;color:var(--frame-light);font:600 12px/1.2 var(--font-control);letter-spacing:.14em;text-transform:uppercase;text-align:left;overflow-wrap:anywhere}.result-banner h3{margin:0;color:var(--frame-light);font:700 clamp(42px,4vw,56px)/1.2 var(--font-display);text-shadow:0 3px 3px var(--frame-iron)}.result-message{margin:4px 0 0;color:var(--frame-light);font:400 clamp(14px,1.2vw,17px)/1.3 var(--font-display);text-wrap:balance;text-shadow:0 2px 3px var(--frame-iron)}.result-standard{position:relative;width:100%;min-width:0;max-width:184px;justify-self:center;text-align:center}.result-standard-hero{grid-area:hero}.result-standard-enemy{grid-area:enemy}.result-portrait{position:relative;width:100%;aspect-ratio:4 / 5;overflow:hidden}.result-portrait-window{position:absolute;inset:8%;border-radius:var(--radius-small);overflow:hidden}.result-portrait-person{display:block;width:100%;height:100%;object-fit:cover;object-position:center 30%}.result-portrait-frame{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:fill;pointer-events:none}.result-identity{position:relative;z-index:1;margin-top:6px;overflow:hidden}.result-identity strong{display:block;padding:5px 4px 3px;color:var(--frame-light);font:700 clamp(16px,1.55vw,23px)/1.15 var(--font-display);overflow-wrap:anywhere}.result-identity span{display:block;padding:3px 4px 5px;border-top:1px solid var(--frame-shadow);color:var(--frame-light);font:400 clamp(12px,1.15vw,17px)/1.2 var(--font-display)}.result-pennant{width:80%;margin:-3px auto 0;pointer-events:none}.result-pennant img{display:block;width:100%;height:auto;object-fit:contain}.result-story{grid-area:film;width:100%;max-width:560px;justify-self:center}dialog:is(.victory-modal,.defeat-modal) .result-cinematic{position:relative;width:100%;aspect-ratio:16 / 9;margin:0;overflow:hidden;border:2px solid var(--frame-gold);border-radius:var(--frame-radius);background:var(--frame-iron);box-shadow:var(--frame-bevel)}.result-cinematic>img,.result-cinematic>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.result-cinematic>video{opacity:0;transition:opacity .15s}.result-cinematic>video.is-playing{opacity:1}.result-performance{container:result-report / inline-size;grid-area:report;width:100%;max-width:780px;margin:0 auto}.result-report-heading{position:relative;display:flex;align-items:center;justify-content:center;min-height:25px;margin-bottom:0;flex-wrap:wrap;column-gap:var(--space-2)}.result-section-label{margin:0;color:var(--frame-light);font:700 14px/1.2 var(--font-display);letter-spacing:.19em;text-align:center;text-transform:uppercase;text-shadow:0 2px 2px var(--frame-iron)}.result-rating{display:flex;gap:2px;flex-shrink:0;color:var(--frame-disabled)}.result-rating svg{width:18px;height:18px}.result-rating .earned{color:var(--frame-gold)}.result-rating .earned svg{fill:currentColor}.result-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;overflow:hidden}.result-metrics>div{display:flex;flex-direction:column;min-width:0;padding:10px 5px;text-align:center}.result-metrics>div+div{border-left:1px solid var(--frame-shadow)}.result-metrics dt{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;color:var(--frame-light);font:400 16px/1.2 var(--font-display)}.result-metric-icon{display:grid;place-items:center;color:var(--frame-gold)}.result-metric-icon>:is(img,svg){width:38px;height:38px;object-fit:contain}.result-metrics dd{margin:4px 0 0;color:var(--frame-light);font:700 34px/1 var(--font-display);font-variant-numeric:tabular-nums;white-space:nowrap}.result-metrics .result-metric-large{font-size:23px}.result-spoils{position:relative;max-width:1040px;margin:18px auto 0;padding:16px 12px 10px;background:color-mix(in srgb,var(--frame-iron) 66%,transparent)}.result-spoils>.result-section-label{position:absolute;top:-11px;left:50%;padding:0 16px;transform:translate(-50%);background:var(--frame-iron)}.result-rewards{display:grid;grid-auto-columns:1fr;grid-auto-flow:column;gap:8px;margin:0}.result-rewards>div{display:grid;grid-template-columns:60px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;align-items:center;gap:1px 10px;min-width:0;min-height:72px;padding:7px 12px;overflow:hidden}.result-rewards dt{display:contents;color:var(--frame-light);font:400 14px/1.2 var(--font-display)}.result-rewards dt :is(img,svg){grid-row:1 / 3;width:56px;height:56px;object-fit:contain}.result-rewards dd{grid-column:2;margin:0;color:var(--frame-light);font:700 26px/1 var(--font-display);font-variant-numeric:tabular-nums}.result-identity,.result-metrics,.result-rewards>div{background-color:var(--frame-iron);background-image:linear-gradient(color-mix(in srgb,var(--frame-iron) 45%,transparent),color-mix(in srgb,var(--frame-iron) 58%,transparent)),url(/assets/ui/results/chronicle-backdrop.webp);background-position:center;background-size:auto,1540px auto;background-repeat:no-repeat}.result-survival{display:flex;flex-wrap:wrap;gap:8px 26px;max-width:1040px;margin:11px auto 0;color:var(--frame-light);font:400 13px/1.3 var(--font-display)}.result-survival>span{display:inline-flex;align-items:center;gap:6px}.result-survival svg{color:var(--frame-gold)}.result-loot{display:flex;align-items:center;gap:8px;max-width:1040px;margin:6px auto 0;color:var(--frame-light);font:400 13px/1.4 var(--font-control)}.result-loot svg,.result-loot strong{color:var(--frame-light)}.result-actions{position:relative;display:grid;grid-template-columns:1.15fr 1fr;gap:20px;max-width:1040px;margin:16px auto 0}.result-actions:before{content:"";position:absolute;top:-8px;left:22%;width:56%;border-top:1px solid var(--frame-gold);pointer-events:none}.result-actions:after{content:"";position:absolute;top:-13px;left:calc(50% - 5px);width:10px;height:10px;transform:rotate(45deg);border:1px solid var(--frame-gold);background:var(--frame-blue);box-shadow:0 0 0 2px var(--frame-iron);pointer-events:none}.result-destinations{display:grid;grid-template-columns:1fr 1fr;gap:12px}.result-actions button{min-height:60px;padding:8px 12px;gap:8px;white-space:normal}dialog:is(.victory-modal,.defeat-modal) .result-actions button.result-primary{border-color:var(--frame-light);background:var(--surface-primary)}dialog:is(.victory-modal,.defeat-modal) .result-actions button.result-primary:hover:not(:disabled,[aria-disabled=true]){background:var(--surface-primary-hover)}.result-actions .result-primary{font:700 29px/1.15 var(--font-display)}.result-actions .result-secondary{font:500 18px/1.15 var(--font-display)}.result-destinations button[data-action=result-armory]{display:grid;grid-template-columns:auto auto;justify-content:center;gap:0 7px}.result-destinations button small{grid-column:1 / -1;color:var(--text-muted);font:400 10px/1.3 var(--font-control)}.result-complete{margin:8px 0 0;text-align:center;color:var(--text-muted);font-size:12px}@media(min-width:701px)and (max-height:850px){dialog:is(.victory-modal,.defeat-modal){padding:13px var(--result-panel-inset) 12px}dialog:is(.victory-modal,.defeat-modal)>.modal-scroll{max-height:calc(100dvh - 70px)}.battle-result{max-width:870px}.result-stage{grid-template-columns:minmax(130px,1fr) minmax(0,2.8fr) minmax(130px,1fr);gap:6px 14px}.result-banner{min-height:122px;padding:22px 12% 44px}.result-encounter{max-width:135px;font-size:10px}.result-banner h3{font-size:36px}.result-message{font-size:13px;margin-top:1px}.result-standard{max-width:135px}.result-story{max-width:400px}.result-identity strong{font-size:17px}.result-identity span{font-size:12px}.result-pennant{width:68%}.result-performance{max-width:790px}.result-section-label{font-size:12px}.result-report-heading{min-height:20px}.result-metrics>div{padding:4px}.result-metrics dt{font-size:13px}.result-metric-icon>:is(img,svg){width:28px;height:28px}.result-metrics dd{font-size:26px;margin-top:2px}.result-metrics .result-metric-large{font-size:20px}.result-spoils{margin-top:18px;padding:13px 7px 6px}.result-rewards>div{min-height:54px;padding:3px 7px;grid-template-columns:40px minmax(0,1fr)}.result-rewards dt{font-size:12px}.result-rewards dt :is(img,svg){width:37px;height:37px}.result-rewards dd{font-size:21px}.result-survival{margin-top:6px;font-size:11px}.result-actions{margin-top:9px;gap:12px}.result-actions button{min-height:48px}.result-actions .result-primary{font-size:24px}.result-actions .result-secondary{font-size:15px}}@media(max-width:700px){dialog:is(.victory-modal,.defeat-modal){width:calc(100vw - 12px);max-height:calc(100dvh - 12px);padding:10px 8px 12px;border-width:14px;border-image-width:34px;background-position:center}dialog:is(.victory-modal,.defeat-modal)>.modal-scroll{max-height:calc(100dvh - 62px)}.result-close{top:3px;right:3px}.result-stage{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"encounter encounter" "banner banner" "hero enemy" "film film" "report report";grid-template-rows:auto;gap:8px 14px;padding-inline:8px}.result-banner{min-height:166px;padding:30px 12% 60px}.result-encounter{width:calc(100% - 44px);max-width:none;justify-self:start;min-height:30px;font-size:10px;letter-spacing:.07em;text-align:left;margin-left:max(0px,calc((100% - 14px)/4 - 56px))}.result-banner h3{font-size:38px}.result-message{font-size:12px}.result-standard{max-width:150px}.result-portrait{width:112px;margin:auto}.result-identity{margin-top:6px}.result-identity strong{font-size:16px}.result-identity span{font-size:12px}.result-pennant{width:90px}dialog:is(.victory-modal,.defeat-modal) .result-cinematic{aspect-ratio:16 / 9}.result-cinematic>img,.result-cinematic>video{object-fit:contain}.result-report-heading{min-height:22px}.result-section-label{font-size:12px}.result-rating{right:2px}.result-rating svg{width:12px;height:12px}.result-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.result-metrics>div{padding:7px 2px}.result-metrics>div:nth-child(3){border-left:0}.result-metrics>div:nth-child(n+3){border-top:1px solid var(--frame-shadow)}.result-metrics dt{font-size:11px}.result-metric-icon>:is(img,svg){width:23px;height:23px}.result-metrics dd{font-size:23px}.result-metrics .result-metric-large{font-size:18px}.result-spoils{margin-top:20px;padding:14px 6px 6px}.result-rewards{gap:4px}.result-rewards>div{display:flex;flex-direction:column;min-height:80px;padding:5px 2px;text-align:center}.result-rewards dt{display:flex;flex-direction:column;align-items:center;font-size:10px}.result-rewards dt :is(img,svg){width:27px;height:27px}.result-rewards dd{font-size:19px}.result-survival{font-size:11px}.result-actions{grid-template-columns:1fr;gap:8px;margin-top:13px}.result-actions button{min-height:46px}.result-actions .result-primary{font-size:23px}.result-actions .result-secondary{font-size:16px}}@media(min-width:701px)and (max-height:600px){dialog:is(.victory-modal,.defeat-modal){--result-dialog-width: min(1000px, calc(100vw - 12px) );width:var(--result-dialog-width);max-height:calc(100dvh - 12px);padding:8px var(--result-panel-inset);border-width:14px;border-image-width:34px}dialog:is(.victory-modal,.defeat-modal)>.modal-scroll{max-height:calc(100dvh - 55px)}.battle-result{max-width:810px}.result-stage{grid-template-columns:100px minmax(0,1fr) 100px;gap:4px 10px;padding-inline:12px}.result-banner{min-height:146px;padding:26px 12% 54px}.result-banner h3{font-size:32px}.result-encounter{font-size:10px;max-width:100px}.result-message{font-size:11px}.result-standard{max-width:100px}.result-identity strong{font-size:13px}.result-identity span{font-size:10px}.result-actions{position:sticky;z-index:2;bottom:0;padding:6px 0;background:var(--frame-iron)}.result-actions button{min-height:var(--touch-target)}}html:has(dialog:is(.victory-modal,.defeat-modal)[open]),body:has(dialog:is(.victory-modal,.defeat-modal)[open]){overflow:hidden;overscroll-behavior:none}dialog:is(.victory-modal,.defeat-modal)>.modal-scroll{min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;max-height:none}html[data-display-mode=desktop] dialog:is(.victory-modal,.defeat-modal)>.modal-scroll{display:flex;flex-direction:column;overflow:hidden}html[data-display-mode=desktop] .battle-result:has(>.result-compact-content){display:flex;flex-direction:column;min-height:0;width:100%;margin-block:0}html[data-display-mode=desktop] .battle-result>.result-compact-content{display:block;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}html[data-display-mode=desktop] .battle-result:has(>.result-compact-content)>.result-actions{position:relative;flex-shrink:0;width:100%}dialog:is(.victory-modal,.defeat-modal) .battle-result .section-description{margin:5px auto 0;padding:0 8px;max-width:1040px;color:var(--text-muted);font:400 12px/1.25 var(--font-control);text-align:center}@media(min-width:701px)and (max-height:850px){dialog:is(.victory-modal,.defeat-modal){padding-block:8px}.result-stage{gap:3px 12px}.result-banner{min-height:100px;padding-block:16px 32px}.result-story{max-width:min(320px,100%)}.result-pennant{width:50%}.result-report-heading{min-height:17px}.result-metrics>div{padding-block:2px}.result-metric-icon>:is(img,svg){width:23px;height:23px}.result-metrics dd{font-size:23px}.result-spoils{margin-top:13px;padding-block:10px 4px}.result-rewards>div{min-height:48px}.result-rewards dt :is(img,svg){width:32px;height:32px}.result-survival{margin-top:3px}.result-actions{margin-top:9px}.result-complete,.result-loot{margin-top:3px}}@media(max-width:700px){dialog:is(.victory-modal,.defeat-modal){padding:5px 6px 7px}.result-stage{gap:4px 10px}.result-encounter{min-height:0;margin-block:0}.result-banner{min-height:103px;padding:16px 12% 34px}.result-banner h3{font-size:33px}.result-portrait{width:min(100%,94px)}.result-identity{margin-top:2px}.result-identity strong{padding-block:2px;font-size:13px}.result-identity span{padding-block:2px;font-size:10px}.result-pennant{width:54px}.result-story{max-width:210px}.result-report-heading{min-height:19px}.result-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.result-metrics>div{padding:2px 1px}.result-metrics>div:nth-child(3){border-left:1px solid var(--frame-shadow)}.result-metrics>div:nth-child(n+3){border-top:0}.result-metrics dt{font-size:10px}.result-metric-icon>:is(img,svg){width:18px;height:18px}.result-metrics dd{margin-top:2px;font-size:17px}.result-metrics .result-metric-large{font-size:13px}.result-spoils{margin-top:13px;padding-block:10px 3px}.result-rewards>div{min-height:56px;padding-block:2px}.result-rewards dt :is(img,svg){width:20px;height:20px}.result-rewards dd{font-size:17px}.result-survival,.result-loot{margin-top:3px}.result-actions{gap:4px;margin-top:10px}.result-actions button{min-height:var(--touch-target);padding-block:3px}.result-actions .result-primary{font-size:19px}.result-actions .result-secondary{font-size:13px}.result-complete{margin-top:2px;font-size:11px}}@media(max-width:700px)and (max-height:900px){.result-pennant{display:none}}@media(min-width:701px)and (max-height:500px){dialog:is(.victory-modal,.defeat-modal){padding-block:3px}.result-stage{grid-template-columns:82px minmax(0,1fr) 82px;grid-template-areas:"encounter banner ." "hero banner enemy" "hero report enemy";grid-template-rows:auto auto auto;gap:2px 8px}.result-banner{min-height:64px;padding:7px 10% 20px}.result-banner h3{font-size:26px}.result-message{font-size:10px}.result-portrait{width:68px;margin-inline:auto}.result-identity{margin-top:1px}.result-identity strong{padding-block:2px;font-size:11px}.result-identity span{padding-block:2px;font-size:9px}.result-story,.result-pennant{display:none}.result-report-heading{min-height:16px}.result-section-label,.result-metrics dt{font-size:10px}.result-metric-icon>:is(img,svg){width:16px;height:16px}.result-metrics dd{font-size:18px}.result-metrics .result-metric-large{font-size:14px}.result-spoils{margin-top:11px;padding-block:8px 2px}.result-rewards>div{min-height:39px;padding-block:1px}.result-rewards dt :is(img,svg){width:23px;height:23px}.result-rewards dd{font-size:17px}.result-survival{font-size:10px}.result-actions{position:relative;bottom:auto;padding:0;margin-top:9px;background:none}.result-actions button{min-height:var(--touch-target)}.result-actions .result-primary{font-size:18px}dialog:is(.victory-modal,.defeat-modal) .battle-result .section-description{font-size:10px;line-height:1.15}}@media(min-width:701px)and (min-height:851px)and (max-height:1050px){dialog:is(.victory-modal,.defeat-modal){padding-block:8px 14px}.result-stage{gap:6px 18px}.result-banner{min-height:clamp(130px,calc(40dvh - 210px),194px);padding-block:clamp(20px,calc(10dvh - 65px),36px) clamp(45px,calc(17dvh - 100px),72px)}.result-standard{max-width:clamp(135px,calc(30dvh - 120px),184px)}.result-identity strong{font-size:clamp(15px,calc(1dvh + 8px),18px)}.result-story{max-width:clamp(290px,calc(145dvh - 944px),520px)}.result-pennant{width:55%}.result-spoils{margin-top:14px}.result-actions{margin-top:12px}}@media(max-width:700px)and (max-height:760px){dialog:is(.victory-modal,.defeat-modal){padding-block:3px 5px}.result-story{display:none}.result-stage{grid-template-areas:"encounter encounter" "banner banner" "hero enemy" "report report"}.result-banner{min-height:76px;padding-block:7px 18px}.result-banner h3{font-size:26px}.result-message{font-size:11px}.result-portrait{width:min(100%,72px)}.result-identity strong{padding-block:1px;font-size:12px}.result-identity span{padding-block:1px}.result-metrics dt{font-size:9px}.result-metric-icon>:is(img,svg){width:15px;height:15px}.result-metrics dd{font-size:15px}.result-metrics .result-metric-large{font-size:12px}.result-rewards>div{min-height:48px}}@media(min-width:701px)and (min-height:601px)and (max-height:760px){dialog:is(.victory-modal,.defeat-modal){padding-block:5px}.result-stage{grid-template-columns:minmax(100px,1fr) minmax(0,2.8fr) minmax(100px,1fr);gap:3px 10px}.result-banner{min-height:90px;padding:10px 12% 25px}.result-banner h3{font-size:30px}.result-message{font-size:12px}.result-standard{max-width:clamp(100px,calc(20dvh - 20px),135px)}.result-identity strong{font-size:15px}.result-pennant{width:clamp(24px,calc(20dvh - 96px),48px)}.result-story{max-width:clamp(180px,calc(100dvh - 420px),320px)}.result-spoils{margin-top:10px}.result-actions{margin-top:6px}}@media(prefers-reduced-motion:reduce){.result-cinematic>video{display:none}}@container result-report (max-width: 360px){html[data-display-mode=desktop] .result-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}html[data-display-mode=desktop] .result-metrics>div:nth-child(3){border-left:0}html[data-display-mode=desktop] .result-metrics>div:nth-child(n+3){border-top:1px solid var(--frame-shadow)}}.battle-wallet{height:auto;min-height:46px}.battle-wallet button.wallet{border:0;border-radius:var(--radius-small);background:transparent;padding:4px;min-height:var(--touch-target);color:var(--frame-light);font:inherit;cursor:pointer}.battle-wallet button.wallet:hover{background:var(--surface-control-hover)}.wallet-plus{font-size:14px;color:var(--frame-gold)}dialog.treasury-modal{width:min(1240px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0}.treasury-modal .modal-scroll{max-height:calc(100dvh - 56px);padding:14px}.treasury-modal .modal-heading{margin:0;padding:20px 70px 14px;text-align:center;justify-content:center;background:var(--surface-panel);border-bottom:0}.treasury-modal .modal-heading h2{font-size:clamp(30px,3.2vw,48px);margin:4px 0 0}.treasury-modal .modal-heading .eyebrow{color:var(--frame-gold);letter-spacing:.2em}.treasury-modal .modal-heading>.close-modal{top:14px;right:12px}.treasury-content{padding:0 18px 12px}.treasury-intro{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 0 18px}.treasury-intro p{margin:0;color:var(--text-muted);font:italic 18px var(--font-display)}.treasury-balance{display:flex;gap:18px;color:var(--frame-light);font-variant-numeric:tabular-nums}.treasury-balance>span{display:flex;align-items:center;gap:6px}.treasury-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:640px;margin:0 auto}.treasury-tabs button{min-height:52px;gap:9px;font:bold 19px var(--font-display);padding:10px}.treasury-tabs button.active{background:var(--surface-selected);border-color:var(--frame-light);box-shadow:var(--control-hover-shadow)}.treasury-purpose{text-align:center;margin:18px 0 22px;color:var(--text-muted);font-size:14px}.treasury-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.treasury-card{min-width:0;position:relative;display:flex;flex-direction:column;align-items:center;padding:13px 12px 14px;border:1px solid var(--frame-gold);border-radius:var(--frame-radius);box-shadow:var(--frame-bevel);background:radial-gradient(ellipse at 50% 40%,color-mix(in srgb,var(--frame-gold) 12%,transparent),transparent 65%),var(--surface-panel)}.treasury-card-royal{border-color:var(--frame-light);background:radial-gradient(ellipse at 50% 45%,color-mix(in srgb,var(--frame-gold) 25%,transparent),transparent 70%),var(--surface-panel);box-shadow:var(--control-hover-shadow)}.treasury-rank{display:flex;align-items:center;justify-content:center;gap:6px;height:20px;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--frame-gold)}.treasury-card-royal .treasury-rank{color:var(--frame-light)}.treasury-art{display:flex;align-items:center;justify-content:center;width:100%;height:clamp(130px,15vw,195px);margin:4px 0}.treasury-art img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 8px var(--frame-iron));transition:transform .25s ease}.treasury-art-1 img{width:75%;height:75%}.treasury-art-2 img{width:85%;height:85%}.treasury-art-3 img{width:92%;height:92%}.treasury-card:hover .treasury-art img{transform:translateY(-4px)}.treasury-card h3{color:var(--frame-light);font:bold clamp(16px,1.55vw,22px) var(--font-display);text-align:center;margin:4px 0 12px;min-height:2.3em;display:grid;place-items:center}.treasury-rewards{display:flex;align-items:center;justify-content:center;gap:24px;margin:0 0 18px}.treasury-rewards>span{display:flex;align-items:center;gap:8px}.treasury-rewards strong{display:block;font:bold clamp(25px,2.5vw,34px) var(--font-display);color:var(--frame-light);font-variant-numeric:tabular-nums;line-height:1.15}.treasury-rewards small{display:block;font-size:12px;color:var(--text-muted);margin-top:3px}.treasury-price{width:100%;min-height:48px;margin-top:auto;font:bold 23px var(--font-display);padding:9px 12px}.treasury-footer{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 26px;padding-top:20px;font-size:12px;color:var(--text-muted);text-align:center}.treasury-footer>span{display:inline-flex;align-items:center;gap:6px}.treasury-footer p{width:100%;margin:0;font-size:12px}.treasury-vault,.treasury-review{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:30px}.treasury-vault{max-width:920px;margin:0 auto;padding:18px 30px;border:1px solid var(--frame-gold);border-radius:var(--frame-radius);box-shadow:var(--frame-bevel);background:radial-gradient(ellipse at 30% 50%,color-mix(in srgb,var(--frame-gold) 18%,transparent),transparent 65%),var(--surface-panel)}.treasury-vault-art img,.treasury-review-art img{width:100%;height:310px;object-fit:contain;display:block;filter:drop-shadow(0 10px 10px var(--frame-iron))}.treasury-vault-copy h3,.treasury-review h3{font:bold clamp(26px,3vw,40px) var(--font-display);color:var(--frame-light);margin:10px 0}.treasury-vault-copy p,.treasury-review-copy>p{color:var(--text-muted);font-size:15px;line-height:1.5}.treasury-vault .treasury-rewards,.treasury-review .treasury-rewards{justify-content:flex-start;margin:24px 0}.treasury-vault-copy>small{display:block;margin-top:12px;color:var(--text-muted);font-size:12px;text-align:center}.treasury-review{max-width:850px;margin:0 auto;padding-top:12px;padding-bottom:22px}.treasury-review-art img{height:360px}.treasury-review-copy>p{overflow-wrap:anywhere}.treasury-total{border-block:1px solid var(--frame-gold);padding:16px 0;display:flex;justify-content:space-between;align-items:center;gap:16px;color:var(--text-muted)}.treasury-total>strong{font:bold 28px var(--font-display);color:var(--frame-light);white-space:nowrap}.treasury-total small{font:11px var(--font-control)}.treasury-unavailable{padding:20px 0;color:var(--frame-light)}.treasury-unavailable p{font-size:14px;line-height:1.5;margin:8px 0 0;color:var(--text-muted)}.treasury-review-copy>button{width:100%;min-height:var(--touch-target)}@media(max-width:900px){.treasury-grid{gap:10px}.treasury-content,.treasury-card{padding-inline:8px}.treasury-card h3{font-size:16px}.treasury-rewards>span{gap:5px}.treasury-rewards strong{font-size:26px}}@media(max-width:680px){dialog.treasury-modal{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-width:8px;border-image-width:32px}.treasury-modal .modal-scroll{max-height:calc(100dvh - 32px);padding:8px}.treasury-modal .modal-heading{padding:52px 8px 16px}.treasury-modal .modal-heading>.close-modal{top:4px;right:4px}.treasury-modal .modal-heading h2{font-size:32px}.treasury-modal .modal-heading .eyebrow{font-size:10px}.treasury-intro{flex-direction:column;padding-bottom:18px}.treasury-intro p{font-size:17px}.treasury-tabs{gap:7px}.treasury-tabs button{flex-direction:column;font-size:15px;padding:8px 4px;gap:4px}.treasury-purpose{font-size:13px;margin-block:16px}.treasury-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.treasury-art{height:140px}.treasury-card h3{font-size:17px}.treasury-card:last-child{grid-column:1 / -1;width:calc(50% - 6px);justify-self:center}.treasury-price{font-size:21px}.treasury-footer{line-height:1.6}.treasury-vault,.treasury-review{grid-template-columns:1fr;gap:8px;padding:14px}.treasury-vault-art img,.treasury-review-art img{height:245px}.treasury-vault-copy,.treasury-review-copy{text-align:center}.treasury-vault .treasury-rewards,.treasury-review .treasury-rewards{justify-content:center;gap:18px}.treasury-total{text-align:left}}@media(max-height:500px)and (min-width:681px){.treasury-modal .modal-heading{padding-top:10px}.treasury-art{height:130px}}@media(prefers-reduced-motion:reduce){.treasury-art img{transition:none}.treasury-card:hover .treasury-art img{transform:none}}@media(min-width:681px){.treasury-modal .modal-heading{justify-content:center;padding-block:8px 4px}.treasury-modal .modal-heading .eyebrow{font-size:10px}.treasury-intro{padding-bottom:4px}.treasury-purpose{margin-block:8px 12px}.treasury-art{height:clamp(110px,calc(100dvh - 580px),195px)}.treasury-card h3{min-height:2.2em;margin-bottom:8px}.treasury-card .treasury-rewards{margin-bottom:12px}.treasury-card .treasury-rewards strong{font-size:clamp(21px,2.5vw,30px)}.treasury-footer{padding-top:14px;gap:7px 26px}}.main .command-bar{--header-control-height: 56px;padding-top:14px;gap:var(--space-6)}.command-actions{display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto;gap:var(--space-4);margin-left:auto;min-width:0}.command-bar .header-wallet{flex:0 1 auto;height:var(--header-control-height);min-height:var(--header-control-height);min-width:0;padding:5px 6px;gap:var(--space-2)}.command-bar .header-wallet button.wallet{gap:var(--space-1);min-width:var(--touch-target);min-height:var(--touch-target);font:600 15px/1 var(--font-control);font-variant-numeric:tabular-nums}.command-bar .header-wallet .painted-icon{width:28px;height:28px}.command-bar .header-wallet .header-divider{display:block;flex:0 0 1px;height:26px;margin:0;background:var(--frame-disabled)}.command-bar .header-wallet .icon-button{flex:0 0 var(--touch-target);width:var(--touch-target);height:var(--touch-target);min-height:var(--touch-target);padding:var(--space-1)}.command-bar .header-wallet .icon-button .painted-icon{width:34px;height:34px}@media(max-width:1100px){.main .command-bar{gap:var(--space-3);padding-inline:var(--space-2)}.main .command-bar .brand-art{width:128px;height:46px}.main .command-bar nav{gap:var(--space-2)}.main .command-bar .nav-item{font-size:13px;padding-inline:6px}.command-bar .header-wallet{gap:var(--space-1)}.command-bar .header-wallet button.wallet{font-size:13px}}@media(max-width:800px){.main .command-bar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-2) var(--space-4);padding:6px 8px 10px}.main .command-bar nav{grid-column:2;justify-content:flex-end}.main .command-bar .command-actions{grid-column:1 / -1;justify-content:flex-end;width:100%}}@media(max-width:480px){.main .command-bar .nav-item{flex-direction:row;font-size:12px;gap:var(--space-1);padding-inline:4px}.main .command-bar .nav-art{width:18px;height:20px}.main .command-bar .brand-art{width:112px;height:40px}.main .command-bar nav{gap:var(--space-1)}.command-actions{gap:var(--space-3)}.command-bar .header-wallet{flex:1 1 auto;justify-content:space-between;gap:0;padding-inline:4px}.command-bar .header-wallet button.wallet{padding-inline:2px;gap:2px;font-size:12px}.command-bar .header-wallet .wallet .painted-icon{width:22px;height:22px}.command-bar .header-wallet .header-divider{display:none}.command-bar .header-wallet .wallet-plus{font-size:12px}}.section-accessible{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}:is(button,a,input,select,textarea,summary):focus-visible,.character-form :is(input,select):focus-visible{outline:2px solid var(--frame-blue);outline-offset:3px}:where(button,input,select,textarea,summary){-webkit-tap-highlight-color:transparent}dialog .modal-heading>.close-modal,dialog:is(.character-picker,.section-panel,.pause-modal) .modal-heading>.close-modal{width:var(--touch-target);height:var(--touch-target);min-height:var(--touch-target)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(forced-colors:active){:where(button,input,select,textarea){border:1px solid ButtonText}:where([aria-pressed=true],[aria-selected=true]){outline:2px solid Highlight}}dialog.sound-welcome{width:min(360px,calc(100vw - 24px));max-width:none;max-height:calc(100dvh - 24px);padding:16px;border-width:18px;border-image-width:36px;background:var(--surface-panel);color:var(--frame-light);overflow:hidden;text-align:center}dialog.sound-welcome::backdrop{background:color-mix(in srgb,var(--frame-iron) 62%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sound-welcome__content{max-height:calc(100dvh - 96px);overflow:auto;padding:4px}.sound-welcome__emblem{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 16px;border:1px solid var(--frame-gold);border-radius:var(--radius-round);background:var(--surface-selected);box-shadow:var(--frame-bevel)}.sound-welcome h2{margin:0 0 20px;font:700 26px/1.3 var(--font-display)}.sound-welcome .primary{width:100%;min-height:48px;padding:10px 12px;font:700 20px/1.2 var(--font-display)}@media(max-height:500px){dialog.sound-welcome{padding:8px 16px}.sound-welcome__content{max-height:calc(100dvh - 80px)}.sound-welcome__emblem{width:44px;height:44px;margin-bottom:8px}.sound-welcome__emblem svg{width:24px;height:24px}.sound-welcome h2{font-size:24px;margin-bottom:12px}}html[data-display-mode=compact]{--mobile-header-height: 56px}html[data-display-mode=compact] .main .command-bar{--header-control-height: var(--touch-target);display:flex;align-items:center;flex-wrap:nowrap;height:var(--mobile-header-height);min-height:var(--mobile-header-height);padding:var(--space-1) var(--space-2);gap:var(--space-1);overflow:hidden}html[data-display-mode=compact] .main .command-bar .brand,html[data-display-mode=compact] .command-bar .header-music,html[data-display-mode=compact] .command-bar .header-fullscreen,html[data-display-mode=compact] .command-bar [data-action=settings],html[data-display-mode=compact] .command-bar .compact-castle-return{display:none}html[data-display-mode=compact] .main .command-bar nav{display:flex;flex:1 1 auto;min-width:0;gap:var(--space-1);justify-content:flex-start}html[data-display-mode=compact] .main .command-bar .nav-item{flex:0 1 auto;min-width:var(--touch-target);min-height:var(--touch-target);padding:var(--space-1);gap:var(--space-1);font-size:14px}html[data-display-mode=compact] .main .command-bar .command-actions{display:flex;grid-column:auto;flex:0 0 auto;width:auto;min-width:0;gap:var(--space-1);margin-left:auto}html[data-display-mode=compact] .command-bar .header-wallet{flex:0 0 auto;height:var(--touch-target);min-height:var(--touch-target);padding:0;gap:var(--space-1)}html[data-display-mode=compact] .command-bar .header-wallet button.wallet{min-width:var(--touch-target);min-height:var(--touch-target);padding:var(--space-1);font-size:14px}html[data-display-mode=compact] .command-bar .header-wallet .wallet-plus,html[data-display-mode=compact] .command-bar .header-wallet .header-divider{display:none}html[data-display-mode=compact] .command-bar .header-wallet .painted-icon{width:20px;height:20px}html[data-display-mode=compact] .command-bar .player-account{width:72px;min-width:72px;min-height:var(--touch-target);grid-template-columns:minmax(0,1fr);padding:var(--space-1) var(--space-2)}html[data-display-mode=compact] .command-bar .player-account:before,html[data-display-mode=compact] .command-bar .player-account-identity,html[data-display-mode=compact] .player-account #player-name{display:none}html[data-display-mode=compact] .player-account .player-menu-label{font-size:14px}html[data-display-mode=compact] .command-bar #mobile-resume{min-width:72px;min-height:var(--touch-target);padding:var(--space-1) var(--space-2);font-size:14px}html[data-display-mode=compact] .command-bar #mobile-resume[hidden]{display:none}@media(max-width:740px){html[data-display-mode=compact] .main .command-bar .nav-item{flex:0 0 var(--touch-target)}html[data-display-mode=compact] .command-bar .nav-item>span{display:none}}html[data-display-mode=compact] dialog.compact-section{position:fixed;inset:auto;top:calc(var(--game-viewport-offset-top, 0px) + env(safe-area-inset-top,0px) + var(--mobile-header-height));left:calc(var(--game-viewport-offset-left, 0px) + env(safe-area-inset-left,0px));transform:none;box-sizing:border-box;width:var(--game-viewport-width, 100vw);max-width:none;height:calc(var(--game-viewport-height, 100dvh) - var(--mobile-header-height));max-height:none;margin:0;overflow:clip;z-index:30}html[data-display-mode=compact] dialog.compact-section>.modal-scroll{height:100%;max-height:100%;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}html[data-display-mode=compact] dialog.compact-section .modal-heading{position:relative;top:auto;z-index:auto;box-sizing:border-box;min-height:var(--touch-target);margin:0;padding:0 4px 0 8px;gap:8px;justify-content:space-between;text-align:left;-webkit-backdrop-filter:none;backdrop-filter:none}html[data-display-mode=compact] dialog.compact-section .modal-heading>div{min-width:0}html[data-display-mode=compact] dialog.compact-section .modal-heading .eyebrow{display:none}html[data-display-mode=compact] dialog.compact-section .modal-heading h2{margin:0;font-size:20px;line-height:1.15;overflow-wrap:anywhere}html[data-display-mode=compact] dialog.compact-section .modal-heading>.close-modal{position:static;flex:0 0 var(--touch-target);align-self:center;width:var(--touch-target);height:var(--touch-target);min-height:var(--touch-target);margin-left:auto}html[data-display-mode=compact] dialog.compact-section.treasury-modal>.modal-scroll{padding:4px 8px 8px}html[data-display-mode=compact] .treasury-modal .treasury-content{padding:4px 4px 12px}html[data-display-mode=compact] .treasury-modal .treasury-intro{display:none}html[data-display-mode=compact] .treasury-modal .treasury-tabs{gap:4px}html[data-display-mode=compact] .treasury-modal .treasury-tabs button{flex-direction:row;justify-content:center;min-height:var(--touch-target);padding:4px;gap:4px;font-size:14px}html[data-display-mode=compact] .treasury-modal .treasury-tabs button svg{width:20px;height:20px;flex:0 0 20px}html[data-display-mode=compact] .treasury-modal .treasury-purpose{margin:8px 0}html[data-display-mode=compact] .treasury-modal :is(.treasury-purpose,.treasury-rank,.treasury-footer,.treasury-vault-copy>small,.treasury-total small){font-size:14px;line-height:1.3}html[data-display-mode=compact] dialog.treasury-modal:not(.compact-section)>.modal-scroll{overflow-y:auto;scroll-padding-top:var(--touch-target)}html[data-display-mode=compact] dialog.treasury-modal:not(.compact-section) .modal-heading{position:sticky;top:0;box-sizing:border-box;min-height:var(--touch-target);margin:0;padding:0 4px 0 8px;gap:8px;justify-content:space-between;text-align:left}html[data-display-mode=compact] dialog.treasury-modal:not(.compact-section) .modal-heading .eyebrow{display:none}html[data-display-mode=compact] dialog.treasury-modal:not(.compact-section) .modal-heading h2{margin:0;font-size:20px;line-height:1.15}html[data-display-mode=compact] dialog.treasury-modal:not(.compact-section) .modal-heading>.close-modal{position:static;flex:0 0 var(--touch-target);align-self:center;width:var(--touch-target);height:var(--touch-target);min-height:var(--touch-target);margin-left:auto}html[data-display-mode=compact] .treasury-modal .treasury-review-art img{height:clamp(84px,30dvh,140px)}html[data-display-mode=compact] dialog.pause-modal.battle-overlay{border:0;border-image:none;box-shadow:none;background:none;padding:0;pointer-events:none}html[data-display-mode=compact] .pause-modal .modal-scroll{padding:0;background:none}html[data-display-mode=compact] .pause-modal .modal-heading{justify-content:center;padding:var(--space-3);background:none;border:0;-webkit-backdrop-filter:none;backdrop-filter:none}html[data-display-mode=compact] .pause-modal .modal-heading h2{margin:0;font-size:32px;text-shadow:0 2px 4px var(--frame-iron)}html[data-display-mode=compact] .pause-modal :is(.modal-frame,.pause-utilities,.pause-weapon,.quote-card,.unpause-button,.close-modal){display:none}html[data-display-mode=compact] .game-menu-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-4)}html[data-display-mode=compact] .game-menu-actions button{min-width:0;min-height:var(--touch-target);font-size:14px}html[data-display-mode=compact] dialog.castle-panel>.modal-scroll{height:100%;max-height:100%;overflow-y:auto;overflow-x:hidden;scroll-padding-top:96px}html[data-display-mode=compact] .castle-panel .castle-close{display:none}html[data-display-mode=compact] .castle-panel .section-tabs{position:sticky;top:0;z-index:9;display:flex;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;padding:var(--space-2);background:var(--surface-panel)}html[data-display-mode=compact] .castle-panel .section-tabs button{flex:0 0 auto;min-width:96px;min-height:var(--touch-target);padding:var(--space-1) var(--space-3);font-size:16px}html[data-display-mode=compact] .castle-panel .section-description{padding:8px 12px;font-size:14px;line-height:1.35}html[data-display-mode=compact] .castle-panel .battle-loadout-note{margin:4px 10px;padding:4px 8px;font-size:14px;line-height:1.3}html[data-display-mode=compact] .castle-panel .weapon-grid,html[data-display-mode=compact] .castle-panel .item-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:4px 12px 18px;gap:8px}html[data-display-mode=compact] .castle-panel .item-card,html[data-display-mode=compact] .castle-panel .weapon-card{min-width:0}html[data-display-mode=compact] .castle-panel .spell-card-actions{flex-wrap:wrap}html[data-display-mode=compact] .castle-panel .weapon-card{display:grid;grid-template-columns:96px minmax(0,1fr);align-content:start;gap:3px 8px;padding:8px}html[data-display-mode=compact] .castle-panel .weapon-card .card-top,html[data-display-mode=compact] .castle-panel .weapon-card>button{grid-column:1 / -1}html[data-display-mode=compact] .castle-panel .weapon-card>img{grid-column:1;grid-row:2 / span 4;width:96px;max-width:100%;height:104px;margin:0;align-self:start}html[data-display-mode=compact] .castle-panel .weapon-card>:is(h3,p,.card-stats,.card-effect){grid-column:2;min-height:0;margin:0}html[data-display-mode=compact] .castle-panel .weapon-card h3{font-size:17px;line-height:1.15}html[data-display-mode=compact] .castle-panel .weapon-card .card-stats{flex-wrap:wrap;gap:2px 8px}html[data-display-mode=compact] .castle-panel .weapon-card .card-effect{padding:3px 0 0}html[data-display-mode=compact] .castle-panel .item-content p,html[data-display-mode=compact] .castle-panel .card-effect,html[data-display-mode=compact] .castle-panel .weapon-card>p,html[data-display-mode=compact] .castle-panel .card-stats{font-size:14px;line-height:1.35}html[data-display-mode=compact] .castle-panel .equipment-slots strong,html[data-display-mode=compact] .castle-panel .equipped-spells strong{font-size:14px;line-height:1.25;overflow-wrap:anywhere}html[data-display-mode=compact] .castle-panel .equipment-slots .eyebrow,html[data-display-mode=compact] .castle-panel .equipment-slots small,html[data-display-mode=compact] .castle-panel .equipped-spells small,html[data-display-mode=compact] .castle-panel .castle-field-notes{font-size:14px;line-height:1.3;overflow-wrap:anywhere}html[data-display-mode=compact] .castle-panel :is(.card-button,.small-button,.spell-card-actions button){min-height:var(--touch-target);font-size:14px}@media(max-width:720px){html[data-display-mode=compact] .castle-panel .weapon-grid,html[data-display-mode=compact] .castle-panel .item-grid{grid-template-columns:minmax(0,1fr)}}html[data-display-mode=compact] .bestiary-browser{display:grid;grid-template-columns:minmax(150px,38%) minmax(0,1fr);min-height:0;gap:8px;padding:8px}html[data-display-mode=compact] .bestiary-list{min-height:0;max-height:calc(var(--game-viewport-height, 100dvh) - 120px);overflow-y:auto;overscroll-behavior:contain}html[data-display-mode=compact] .bestiary-list button{min-height:var(--touch-target);width:100%;font-size:14px}html[data-display-mode=compact] .bestiary-list button[aria-pressed=true]{color:var(--frame-light);background:var(--surface-selected)}html[data-display-mode=compact] .bestiary-detail{display:grid;grid-template-columns:minmax(120px,40%) minmax(0,1fr);grid-template-rows:auto auto auto 1fr;align-content:start;gap:3px 10px;min-width:0;min-height:0;padding:8px;font-size:14px;line-height:1.35}html[data-display-mode=compact] .bestiary-detail .creature-portrait{grid-column:1;grid-row:1 / 5;width:min(100%,200px);margin:0;align-self:start}html[data-display-mode=compact] .bestiary-detail h3{grid-column:2;margin:0;font-size:18px;line-height:1.15}html[data-display-mode=compact] .bestiary-detail>.eyebrow{grid-column:2;font-size:14px;line-height:1.25}html[data-display-mode=compact] .bestiary-detail .trait-tags,html[data-display-mode=compact] .bestiary-detail>p{grid-column:2;margin:0}html[data-display-mode=compact] .bestiary-detail>p{font-size:14px;line-height:1.3}html[data-display-mode=compact] dialog.character-picker{position:fixed;top:calc(var(--picker-viewport-top, 0px) + env(safe-area-inset-top,0px) + var(--space-1));left:calc(var(--game-viewport-offset-left, 0px) + env(safe-area-inset-left,0px) + var(--space-1));right:auto;bottom:auto;margin:0;width:min(960px,calc(var(--game-viewport-width, 100vw) - var(--space-2)));max-width:calc(var(--game-viewport-width, 100vw) - var(--space-2));max-height:calc(var(--picker-viewport-height, var(--game-viewport-height, 100dvh)) - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - var(--space-2));padding:4px 10px 8px}html[data-display-mode=compact] dialog.character-picker>.modal-scroll{max-height:calc(var(--picker-viewport-height, var(--game-viewport-height, 100dvh)) - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 52px);overflow-y:auto;overflow-x:hidden;scroll-padding-bottom:48px}html[data-display-mode=compact] dialog.character-picker .modal-heading{padding:2px 48px 3px}html[data-display-mode=compact] dialog.character-picker .modal-heading h2{margin:0;font-size:23px}html[data-display-mode=compact] dialog.character-picker .modal-heading .eyebrow,html[data-display-mode=compact] .character-heading-rule{display:none}html[data-display-mode=compact] .character-body{padding:2px 6px 4px}html[data-display-mode=compact] .character-intro{max-width:none;margin:0 0 5px;font-size:14px;line-height:1.25}html[data-display-mode=compact] .character-list-layout{display:grid;grid-template-columns:minmax(160px,1fr) minmax(200px,1.2fr);grid-template-rows:minmax(0,1fr) auto;gap:6px 10px;height:clamp(150px,calc(var(--picker-viewport-height, var(--game-viewport-height, 100dvh)) - 154px),300px);min-height:0}html[data-display-mode=compact] .character-list{grid-column:1;grid-row:1 / 3;display:flex;flex-direction:column;justify-content:flex-start;gap:3px;min-height:0;overflow-y:auto;overflow-x:hidden;padding:2px 5px 2px 2px;scroll-snap-type:none}html[data-display-mode=compact] .character-picker .character-card,html[data-display-mode=compact] .character-picker .character-card:is(:hover,.selected){flex:0 0 auto;width:100%;min-height:var(--touch-target);flex-direction:row;align-items:center;gap:8px;padding:3px 6px;text-align:left;border:1px solid var(--frame-gold);border-radius:var(--radius-control);background:var(--surface-control)}html[data-display-mode=compact] .character-picker .character-card.selected{background:var(--surface-selected)}html[data-display-mode=compact] .character-picker .character-card :is(.character-portrait,.character-new-art){flex:0 0 40px;width:40px;height:40px}html[data-display-mode=compact] .character-picker .character-card-copy{min-width:0;padding:0;gap:0}html[data-display-mode=compact] .character-picker .character-card-copy strong,html[data-display-mode=compact] .character-picker .character-card-copy .character-archetype{font-size:14px}html[data-display-mode=compact] .character-picker .character-card-copy :is(span:not(.character-archetype),small),html[data-display-mode=compact] .character-picker .character-new-caption{display:none}html[data-display-mode=compact] .character-selected-preview{grid-column:2;grid-row:1;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;gap:10px;padding:6px;overflow:hidden;color:var(--frame-light);background:var(--surface-panel)}html[data-display-mode=compact] .character-selected-preview img{width:min(25dvh,105px);height:min(25dvh,105px);object-fit:contain}html[data-display-mode=compact] .character-selected-preview h3{margin:2px 0;font:600 20px/1.1 var(--font-display);overflow-wrap:anywhere}html[data-display-mode=compact] .character-selected-preview p{margin:0;font-size:14px}html[data-display-mode=compact] .character-continue{grid-column:2;grid-row:2;padding:0}html[data-display-mode=compact] .character-continue>button{width:100%;min-height:var(--touch-target);font-size:19px}html[data-display-mode=compact] .character-menu-actions{margin:3px 0}html[data-display-mode=compact] .character-menu-actions>button,html[data-display-mode=compact] .character-save-tools>summary{min-height:var(--touch-target);font-size:14px}html[data-display-mode=compact] .character-form[data-profile-form=create]{box-sizing:border-box;width:100%;max-width:none;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:8px 12px}html[data-display-mode=compact] .character-form[data-profile-form=create] fieldset{grid-column:1;grid-row:1 / 3;min-width:0}html[data-display-mode=compact] .character-crests{display:flex;box-sizing:border-box;width:100%;min-width:0;max-width:none;gap:8px;margin:3px 0;overflow-x:auto;padding:5px}html[data-display-mode=compact] .character-crests label{flex:0 0 min(28%,115px);min-width:92px}html[data-display-mode=compact] .character-crests .portrait-choice-art{width:min(18dvh,72px);height:min(18dvh,72px);margin-inline:auto}html[data-display-mode=compact] .character-crests .portrait-choice-copy{padding:3px 0}html[data-display-mode=compact] .character-crests .portrait-choice-copy strong{font-size:14px}html[data-display-mode=compact] .character-crests .portrait-choice-copy small{display:none}html[data-display-mode=compact] .character-form[data-profile-form=create] .character-name-block{grid-column:2;grid-row:1;min-width:0}html[data-display-mode=compact] .character-form[data-profile-form=create] .character-name-block>label:before,html[data-display-mode=compact] .character-form[data-profile-form=create] .character-name-block>label:after{display:none}html[data-display-mode=compact] .character-form[data-profile-form=create] .character-name-frame,html[data-display-mode=compact] .character-form[data-profile-form=create] .character-name-frame input{box-sizing:border-box;width:100%;min-width:0}html[data-display-mode=compact] .character-form[data-profile-form=create] .character-actions{grid-column:2;grid-row:2;grid-template-columns:1fr;min-width:0;gap:5px;margin:0}html[data-display-mode=compact] .character-form[data-profile-form=create] .character-actions button{min-width:0;width:100%;min-height:var(--touch-target);font-size:14px}.result-performance>summary{list-style:none}.result-performance>summary::-webkit-details-marker{display:none}html:not([data-display-mode=compact]) .result-performance>summary{pointer-events:none}.result-compact-content{display:contents}html[data-display-mode=compact] dialog:is(.victory-modal,.defeat-modal){padding:2px 10px 6px}html[data-display-mode=compact] dialog:is(.victory-modal,.defeat-modal) .result-close{display:none}html[data-display-mode=compact] dialog:is(.victory-modal,.defeat-modal)>.modal-scroll{display:flex;flex-direction:column;height:100%;max-height:100%;min-height:0;overflow-y:hidden;overflow-x:hidden}html[data-display-mode=compact] .battle-result{display:grid;grid-template-rows:minmax(0,1fr) auto;flex:1 1 auto;min-height:0;width:100%;margin:0;max-width:none}html[data-display-mode=compact] .result-compact-content{display:block;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scroll-padding-bottom:8px}html[data-display-mode=compact] .result-overview{display:grid;grid-template-columns:minmax(0,1fr) clamp(154px,22vw,190px);grid-template-areas:"stage spoils" "stage detail";grid-template-rows:auto 1fr;align-items:start;gap:4px 8px;min-width:0}html[data-display-mode=compact] .result-stage{grid-area:stage;grid-template-columns:70px minmax(0,1fr) 70px;grid-template-areas:"encounter encounter encounter" "banner banner banner" "report report report" "hero film enemy";grid-template-rows:auto auto auto auto;gap:2px 6px;padding-inline:4px}html[data-display-mode=compact] .result-banner{min-height:50px;padding:5px 11% 13px}html[data-display-mode=compact] .result-banner h3{font-size:26px}html[data-display-mode=compact] .result-message{font-size:14px;line-height:1.15}html[data-display-mode=compact] .result-story{display:block;max-width:min(100%,330px)}html[data-display-mode=compact] .result-standard{width:70px;max-width:100%}html[data-display-mode=compact] .result-portrait{width:68px;max-width:100%;margin-inline:auto}html[data-display-mode=compact] .result-identity strong,html[data-display-mode=compact] .result-identity span{font-size:14px;line-height:1.2}html[data-display-mode=compact] .result-pennant{display:none}html[data-display-mode=compact] .result-performance{position:relative;display:block;grid-area:report;box-sizing:border-box;width:min(100%,720px);margin:5px auto 0;padding:0 8px}html[data-display-mode=compact] .result-performance summary{position:relative;min-height:var(--touch-target);display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title rating" "cue rating";align-content:center;align-items:center;justify-items:center;gap:1px 6px;padding:4px 8px;cursor:pointer;color:var(--frame-light);font:600 14px/1.2 var(--font-display)}html[data-display-mode=compact] .result-performance summary>.result-section-label{grid-area:title;font-size:14px;letter-spacing:.08em}html[data-display-mode=compact] .result-performance summary:after{content:"Show stats";grid-area:cue;color:var(--frame-gold);font:600 14px/1.2 var(--font-control)}html[data-display-mode=compact] .result-performance[open] summary:after{content:"Hide stats"}html[data-display-mode=compact] .result-performance summary:focus-visible{outline:2px solid var(--frame-blue);outline-offset:2px}html[data-display-mode=compact] .result-performance .result-rating{position:static;grid-area:rating;align-self:center;justify-self:end;min-width:max-content;margin:0;transform:none}html[data-display-mode=compact] .result-performance .result-rating>span{flex:0 0 auto}html[data-display-mode=compact] .result-performance .result-rating svg{display:block;width:16px;height:16px}html[data-display-mode=compact] .result-performance .result-metrics{margin:0 0 8px}html[data-display-mode=compact] .result-metrics>div{padding:6px 5px}html[data-display-mode=compact] .result-metrics dt{font-size:14px;line-height:1.2;white-space:normal;overflow-wrap:anywhere}html[data-display-mode=compact] .result-metrics dd,html[data-display-mode=compact] .result-metrics .result-metric-large{font-size:22px}html[data-display-mode=compact] .result-metric-icon>:is(img,svg){width:24px;height:24px}html[data-display-mode=compact] .result-spoils{grid-area:spoils;min-width:0;width:100%;margin:17px 0 0;padding:9px 5px 5px}html[data-display-mode=compact] .result-spoils>.result-section-label{font-size:14px;white-space:nowrap}html[data-display-mode=compact] .result-rewards{grid-auto-flow:row;grid-template-columns:minmax(0,1fr);gap:4px}html[data-display-mode=compact] .result-rewards>div{min-height:var(--touch-target);grid-template-columns:24px minmax(0,1fr);padding:3px 5px;gap:1px 4px}html[data-display-mode=compact] .result-rewards dt,html[data-display-mode=compact] .result-rewards dd{font-size:14px}html[data-display-mode=compact] .result-rewards dt :is(img,svg){width:22px;height:22px}html[data-display-mode=compact] .result-survival{grid-area:detail;display:grid;gap:3px;margin:0;font-size:14px;line-height:1.25}html[data-display-mode=compact] .result-survival>span{gap:4px}@media(max-width:740px){html[data-display-mode=compact] .result-overview{grid-template-columns:minmax(0,1fr);grid-template-areas:"stage" "spoils" "detail";grid-template-rows:auto}html[data-display-mode=compact] .result-spoils{margin-top:12px}}html[data-display-mode=compact] .result-actions{position:relative;bottom:auto;z-index:6;width:100%;max-width:none;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:5px;margin:0 auto;padding:5px 2px;background:var(--frame-iron)}html[data-display-mode=compact] .result-actions:before,html[data-display-mode=compact] .result-actions:after{display:none}html[data-display-mode=compact] .result-actions button{min-height:var(--touch-target);padding:5px 7px;font-size:14px}html[data-display-mode=compact] .result-destinations{gap:5px}html[data-display-mode=compact] .result-destinations button small{display:none}html[data-display-mode=compact] .prologue-heading{top:10px;left:max(12px,env(safe-area-inset-left));max-width:calc(100% - 265px)}html[data-display-mode=compact] .prologue-heading h1{font-size:20px}html[data-display-mode=compact] .prologue-controls{top:8px;right:max(12px,env(safe-area-inset-right));gap:5px}html[data-display-mode=compact] .prologue-controls .prologue-skip,html[data-display-mode=compact] .prologue-controls .icon-button{min-height:var(--touch-target);min-width:var(--touch-target)}html[data-display-mode=compact] .prologue-controls .prologue-skip{padding:4px 10px;font-size:15px}html[data-display-mode=compact] .prologue-subtitles{width:min(680px,calc(100% - 32px));bottom:max(48px,calc(env(safe-area-inset-bottom) + 40px))}html[data-display-mode=compact] .prologue-subtitles p{margin-top:4px;font-size:clamp(14px,2.6dvh,19px);line-height:1.25}html[data-display-mode=compact] .prologue-footer{bottom:max(8px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right))}html[data-display-mode=compact] .castle-panel>.modal-scroll{scroll-padding-top:64px}html[data-display-mode=compact] .command-bar .nav-art{width:24px;height:24px;object-fit:contain}.command-bar .compact-castle-return{display:none}html[data-display-mode=compact] :is(dialog,.main),html[data-display-mode=compact] :is(dialog,.main) *{scrollbar-width:thin;scrollbar-color:var(--frame-gold) var(--frame-iron)}@supports selector(::-webkit-scrollbar){html[data-display-mode=compact] :is(dialog,.main),html[data-display-mode=compact] :is(dialog,.main) *{scrollbar-width:auto;scrollbar-color:auto}}html[data-display-mode=compact] :is(dialog,.main)::-webkit-scrollbar,html[data-display-mode=compact] :is(dialog,.main) *::-webkit-scrollbar{width:10px;height:10px}html[data-display-mode=compact] :is(dialog,.main)::-webkit-scrollbar-track,html[data-display-mode=compact] :is(dialog,.main) *::-webkit-scrollbar-track{background:var(--frame-iron);border-radius:var(--radius-small)}html[data-display-mode=compact] :is(dialog,.main)::-webkit-scrollbar-thumb,html[data-display-mode=compact] :is(dialog,.main) *::-webkit-scrollbar-thumb{min-height:32px;background:linear-gradient(var(--frame-light),var(--frame-gold),var(--frame-shadow));border:2px solid var(--frame-iron);border-radius:var(--radius-small)}html[data-display-mode=compact] :is(dialog,.main)::-webkit-scrollbar-thumb:hover,html[data-display-mode=compact] :is(dialog,.main) *::-webkit-scrollbar-thumb:hover{background:var(--frame-light)}html[data-display-mode=compact] :is(dialog,.main)::-webkit-scrollbar-corner,html[data-display-mode=compact] :is(dialog,.main) *::-webkit-scrollbar-corner{background:var(--frame-iron)}html,body{height:100%;overflow:hidden}#app{height:var(--game-viewport-height, 100dvh);width:var(--game-viewport-width, 100%);margin:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}html[data-display-mode=compact] #app{position:fixed;top:calc(var(--game-viewport-offset-top, 0px) + env(safe-area-inset-top,0px));left:calc(var(--game-viewport-offset-left, 0px) + env(safe-area-inset-left,0px));margin:0}#game-main.main{display:flex;flex-direction:column;height:100%;max-width:none;width:100%;padding:0;margin:0}#game-main[hidden]{display:none}#game-main .command-bar{flex:0 0 auto}#game-main .game-shell{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;border-radius:var(--radius-control);background:var(--surface-panel)}#game-main .battlefield{height:auto;min-height:0;max-height:none;flex:1 1 auto;background:var(--surface-panel)}#game{width:100%;height:100%}#game-main .loadout{flex:0 0 88px}html[data-display-mode=desktop] .spell-info strong{font-size:14px}html[data-display-mode=desktop] .spell-info small{font-size:12px}.title-screen__fullscreen{position:absolute;top:var(--space-4);right:var(--space-4);z-index:10;width:var(--touch-target);height:var(--touch-target)}.display-gate{position:fixed;inset:0;margin:auto;width:min(90vw,480px);max-height:90dvh;padding:var(--space-6);border:3px double var(--frame-gold);border-radius:var(--radius-control);background:var(--surface-panel);color:var(--frame-light);text-align:center;z-index:1000}.display-gate::backdrop{background:var(--surface-panel)}.display-gate h2{font:600 28px/1.2 var(--font-display);margin:0 0 var(--space-4)}.display-gate p{font:16px/1.5 var(--font-control);margin:0}.spell-cancel{min-height:var(--touch-target);font-size:14px}.spell-cancel[hidden]{display:none}.campaign-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-3);flex-shrink:0}.campaign-pagination button{min-height:var(--touch-target);min-width:90px;font-size:14px}.campaign-pagination span{font-size:14px}html[data-display-mode=compact] #game-main .command-bar{height:var(--mobile-header-height, 56px);min-height:var(--mobile-header-height, 56px)}html[data-display-mode=compact][data-mobile-surface=playing] #game-main .command-bar,html[data-display-mode=compact][data-mobile-surface=cinematic] #game-main .command-bar,html[data-display-mode=compact] #game-main .loadout{display:none}html[data-display-mode=compact] #game-main .battlefield{display:block;position:relative}html[data-display-mode=compact] #game{position:absolute;inset:0;width:100%;height:100%}html[data-display-mode=compact] #game-main .battle-hud{position:absolute;top:var(--space-2);left:var(--space-2);right:var(--space-2);display:grid;grid-template-columns:minmax(148px,38%) minmax(0,1fr) var(--touch-target);align-items:center;gap:var(--space-2);height:48px;padding:0;background:none;flex-wrap:nowrap;pointer-events:none}html[data-display-mode=compact] #game-main .battle-hud .fortress-status{position:static;display:flex;grid-column:1;grid-row:1;order:0;flex:initial;width:100%;min-width:0;height:44px;padding:2px var(--space-2);background:color-mix(in srgb,var(--frame-iron) 85%,transparent);border:0;box-shadow:none}html[data-display-mode=compact] .hud-shield,html[data-display-mode=compact] .bar-label,html[data-display-mode=compact] .fortress-filigree,html[data-display-mode=compact] .vital-percent{display:none}html[data-display-mode=compact] .fortress-vitals{width:100%}html[data-display-mode=compact] .meter{height:19px;margin:2px 0}html[data-display-mode=compact] .vital-value{font-size:14px;line-height:19px}html[data-display-mode=compact] #game-main .battle-hud .wave-status{position:static;transform:none;grid-column:2;grid-row:1;order:0;flex:initial;flex-basis:auto;width:100%;min-width:0;max-width:none;margin:0;text-align:center;padding:2px var(--space-1);background:color-mix(in srgb,var(--frame-iron) 85%,transparent)}html[data-display-mode=compact] .wave-label{font-size:14px;letter-spacing:normal}html[data-display-mode=compact] .wave-status small{display:block;font-size:12px;line-height:1.2}html[data-display-mode=compact] .wave-pips{display:none}html[data-display-mode=compact] #game-main .battle-controls{position:static;display:flex;grid-column:3;grid-row:1;order:0;flex:initial;width:var(--touch-target);max-width:none;justify-content:flex-end;justify-self:end;margin:0;pointer-events:auto}html[data-display-mode=compact]:not([data-mobile-surface=playing]) #game-main .battle-controls{display:none}html[data-display-mode=compact] .battle-controls button{display:none}html[data-display-mode=compact] .battle-controls #pause-button{display:grid;width:var(--touch-target);height:var(--touch-target)}html[data-display-mode=compact] #game-main .mobile-spells{position:absolute;top:auto;right:var(--space-2);bottom:var(--space-2);left:auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:var(--space-1);width:56px;padding:0;background:none;overflow:visible;z-index:4}html[data-display-mode=compact] .mobile-spells .spell-button{position:relative;width:56px;min-width:56px;height:56px;min-height:56px;flex:0 0 56px;padding:0}html[data-display-mode=compact] .mobile-spells .spell-art{width:48px;height:48px}html[data-display-mode=compact] .mobile-spells .spell-info{display:none}html[data-display-mode=compact] .mobile-spells .spell-key{font-size:12px;min-width:18px;min-height:18px}html[data-display-mode=compact] .mobile-spells .spell-cancel{position:absolute;right:calc(100% + var(--space-2));bottom:0;min-width:56px;width:56px;min-height:var(--touch-target);padding:var(--space-1);font-size:14px;flex-shrink:0}html[data-display-mode=compact] .battle-bottom{display:none}html[data-display-mode=compact] .boss-hud{top:54px;width:min(260px,45%);left:50%;font-size:12px}html[data-display-mode=compact] .announcement{top:88px;font-size:14px}html[data-display-mode=compact] .level-intro{max-height:calc(100% - 64px);width:min(400px,70%);padding:var(--space-2) var(--space-4)}html[data-display-mode=compact] .level-intro strong{font:600 24px/1.1 var(--font-display)}html[data-display-mode=compact] .level-intro p{font:14px/1.3 var(--font-control)}html[data-display-mode=compact] #level-intro-portrait .commander-portrait{width:64px;height:64px}html[data-display-mode=compact] .campaign-panel .modal-scroll{display:flex;flex-direction:column;overflow:hidden;padding:var(--space-2) var(--space-3)}html[data-display-mode=compact] .campaign-content{flex:1;min-height:0;overflow:auto}html[data-display-mode=compact] .world-map{height:100%;min-height:130px}html[data-display-mode=compact] .map-path{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:1fr;gap:var(--space-2);padding:var(--space-3);height:100%;align-items:center}html[data-display-mode=compact] .commander-node{min-width:0;width:100%;margin:0}html[data-display-mode=compact] .commander-medallion{width:clamp(52px,8vw,90px);height:auto;aspect-ratio:1}html[data-display-mode=compact] .commander-identity{width:100%;min-height:44px;padding:var(--space-1)}html[data-display-mode=compact] .commander-name{font-size:14px;line-height:1.15}html[data-display-mode=compact] .commander-class{font-size:12px}html[data-display-mode=compact] .campaign-toolbar{flex-shrink:0}html[data-display-mode=compact] .region-tabs{overflow-x:auto;flex-wrap:nowrap;padding:0}html[data-display-mode=compact] .region-tabs button{min-height:44px;flex-shrink:0;font-size:14px}html[data-display-mode=compact] .campaign-launch{flex-shrink:0;padding:var(--space-1);margin:0}html[data-display-mode=compact] .campaign-launch button{min-height:44px;font-size:16px}@media(prefers-reduced-motion:reduce){.title-screen__fullscreen{transition:none}}html[data-display-mode=compact] .map-node-label{width:100%;position:relative;inset:auto;display:flex;flex-direction:column;gap:2px}html[data-display-mode=compact] .commander-caption{width:100%;min-height:44px;padding:var(--space-1)}html[data-display-mode=compact] .commander-caption strong{font:600 14px/1.15 var(--font-display)}html[data-display-mode=compact] .commander-level{font-size:14px;min-width:24px}html[data-display-mode=compact] .campaign-content .map-path{--portrait-size: clamp(52px, 8vw, 84px);--campaign-rows: 1;--campaign-columns: 5;padding:16px 12px 8px}html[data-display-mode=compact] .campaign-content .commander-portrait,html[data-display-mode=compact] .campaign-content .commander-medallion{width:var(--portrait-size);height:var(--portrait-size)}html[data-display-mode=compact] .campaign-content .commander-node .map-node-label{display:block;width:100%;margin-top:0;padding:var(--space-1)}html[data-display-mode=compact] .campaign-content .commander-node .map-node-label strong{font:600 14px/1.15 var(--font-display)}html[data-display-mode=compact] .campaign-content .commander-class{font-size:14px}html[data-display-mode=compact] .campaign-content .commander-level{position:static;display:inline-block;height:20px;font-size:14px}html[data-display-mode=compact] .campaign-content .node-stars{display:flex;font-size:12px}.spell-mana{display:none}html[data-display-mode=compact] .mobile-spells .spell-mana{display:block;position:absolute;right:3px;bottom:2px;font-size:12px;color:var(--frame-light);background:var(--frame-iron);padding:1px 3px;border-radius:var(--radius-small)}.campaign-footer{display:contents}html[data-display-mode=compact] #game-main .command-bar{margin-bottom:0}html[data-display-mode=compact] .campaign-footer{display:flex;gap:var(--space-2);align-items:center;flex-shrink:0}html[data-display-mode=compact] .campaign-footer .campaign-pagination{gap:var(--space-1)}html[data-display-mode=compact] .campaign-footer .campaign-pagination button{min-width:44px;width:44px;padding:var(--space-1);font-size:20px}html[data-display-mode=compact] .campaign-footer .campaign-pagination span{white-space:nowrap}html[data-display-mode=compact] .campaign-footer .campaign-launch{flex:1;min-width:0}html[data-display-mode=compact][data-combat=paused] .campaign-panel .campaign-launch{display:none}html[data-display-mode=compact][data-combat=paused] .campaign-panel .campaign-footer{justify-content:center}html[data-display-mode=compact] .campaign-content .world-map{min-height:166px}html[data-display-mode=compact] .campaign-content .map-path{min-height:164px}html[data-display-mode=compact] .campaign-content .commander-caption{display:block;padding:3px;min-height:38px}@media(max-height:350px){html[data-display-mode=compact] .campaign-panel .modal-scroll{padding:0 var(--space-2);gap:var(--space-1)}html[data-display-mode=compact] .campaign-toolbar .region-tabs{scrollbar-width:none}html[data-display-mode=compact] .campaign-launch{padding:0}html[data-display-mode=compact] .campaign-content .map-path{--portrait-size: var(--touch-target);padding:2px var(--space-1) 0;gap:var(--space-1)}}html[data-display-mode=desktop] #game-main .loadout{display:flex;flex:0 0 88px}html[data-display-mode=desktop] #game-main .command-bar{display:flex;align-items:center;flex-wrap:nowrap;min-height:72px;gap:var(--space-2);margin-bottom:0}html[data-display-mode=desktop] #game-main .command-actions{margin-left:auto;width:auto}html[data-display-mode=desktop] #game-main .command-bar nav{display:flex;flex-wrap:nowrap}html[data-display-mode=compact] .command-bar .nav-item,html[data-display-mode=compact] .command-bar .header-wallet button.wallet{font-size:14px}html[data-display-mode=compact] dialog:not(.character-picker) .modal-scroll :is(p,.setting-row small,.settings-grid small){font-size:14px}@media(max-width:1280px){html[data-display-mode=desktop] #game-main .command-bar .brand-art{width:150px;height:56px}html[data-display-mode=desktop] #game-main .command-bar .nav-item{font-size:16px;padding:var(--space-2);min-height:44px}html[data-display-mode=desktop] #game-main .command-bar .command-actions{gap:var(--space-2)}html[data-display-mode=desktop] .battle-hud{top:12px;left:16px;right:16px}html[data-display-mode=desktop] .fortress-status{width:230px}html[data-display-mode=desktop] .wave-status{left:50%}}html[data-display-mode=compact] .result-overview .result-encounter{max-width:none;text-align:center;font-size:14px;line-height:1.2;letter-spacing:normal;margin:0}html[data-display-mode=compact] .result-overview .result-banner{min-height:48px;padding-top:3px;padding-bottom:12px}#title-screen.title-screen,dialog.chapter-prologue[open]{inset:env(safe-area-inset-top,0px) auto auto env(safe-area-inset-left,0px);width:var(--game-viewport-width, 100vw);height:var(--game-viewport-height, 100dvh)}html[data-display-mode=desktop] .campaign-content .map-path{--tag-reserve: 60px;--map-row-gap: 8px;--map-inset-y: 8px}html[data-display-mode=desktop] .campaign-content .commander-node .map-node-label strong{font:600 14px/1.15 var(--font-display)}html[data-display-mode=desktop] .campaign-content .commander-class{font-size:12px}html[data-display-mode=desktop] .campaign-content .commander-level{font-size:14px}.home-screen-guide{width:min(560px,calc(var(--game-viewport-width, 100vw) - 24px));max-height:calc(var(--game-viewport-height, 100dvh) - 24px);color:var(--frame-light)}.home-screen-guide>.modal-scroll{max-height:calc(var(--game-viewport-height, 100dvh) - 64px);overflow-y:auto;overscroll-behavior:contain;font:14px/1.5 var(--font-control)}.home-screen-guide li+li{margin-top:var(--space-2)}.home-screen-guide [data-guide-close]{min-height:var(--touch-target)}.game-menu-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3)}.game-menu-actions>button{min-height:var(--touch-target);font-size:14px}#mobile-resume[hidden],html[data-display-mode=desktop] #mobile-resume{display:none}:where(#app,dialog){-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}:where(#app,dialog) :is(input,textarea,select,a[href],[contenteditable]:not([contenteditable=false]),[role=textbox],[data-allow-native-gesture]){-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}:where(#app,dialog) img{-webkit-user-drag:none}:where(#app,dialog) :is(button,[role=button]){touch-action:manipulation}html,body{overscroll-behavior:none}html[data-display-mode] .castle-panel :is(.small-button,.card-button,.workshop-change-weapon,.workshop-main-action,.workshop-part-action,.workshop-remove,.workshop-arsenal-actions button){display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-2);min-width:var(--touch-target);min-height:var(--card-action-height);max-width:100%;padding:var(--space-3) var(--space-4);font:600 var(--card-action-font)/1.3 var(--font-control);white-space:normal;text-align:center;overflow-wrap:anywhere}html[data-display-mode] .castle-panel button:is(:disabled,[aria-disabled=true]){opacity:1;color:var(--text-muted);border-color:var(--frame-disabled);background:var(--surface-panel)}.purchase-label__action{min-width:0}.purchase-label__price{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);white-space:nowrap;font-variant-numeric:tabular-nums}.purchase-label__price .painted-icon{width:var(--card-action-icon);height:var(--card-action-icon);flex:0 0 var(--card-action-icon);object-fit:contain}html[data-display-mode] .castle-panel .item-grid{container:armory-cards / inline-size;gap:var(--space-4)}html[data-display-mode] .castle-panel .item-grid>.item-card{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:start;align-content:start;gap:var(--space-4);padding:var(--space-4)}html[data-display-mode] .castle-panel .item-grid .item-content{min-width:0}html[data-display-mode] .castle-panel .item-grid .item-content h3{margin:var(--space-1) 0 var(--space-2);font:600 24px/1.2 var(--font-display)}html[data-display-mode] .castle-panel .item-grid .item-content :is(p,.card-effect){font:400 16px/1.45 var(--font-control);color:var(--text-muted);margin:0}html[data-display-mode] .castle-panel .item-grid .item-content .eyebrow{font-size:14px;line-height:1.3}html[data-display-mode] .castle-panel .item-grid .card-effect{min-height:0;margin-top:var(--space-2);padding:var(--space-2) 0 0;border-color:var(--frame-gold)}html[data-display-mode] .castle-panel .item-grid :is(.attachment-art,.spell-card>.spell-art){width:112px;height:112px;border-radius:var(--frame-radius)}html[data-display-mode] .castle-panel .item-grid>.item-card>:is(.card-actions,.small-button){grid-column:1 / -1;width:100%;margin:0;align-self:end}.card-actions{display:grid;gap:var(--space-2);min-width:0}.card-actions>button{width:100%}html[data-display-mode] .castle-panel .workshop-shortfall{margin:0;color:var(--text-muted);font:400 14px/1.4 var(--font-control)}html[data-display-mode] .castle-panel .spell-card-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}html[data-display-mode] .castle-panel .spell-card-actions button{flex:1 1 180px}html[data-display-mode] .castle-panel :is(.section-description,.talent-intro p){font-size:16px;line-height:1.45}@container armory-cards (min-width: 1440px){html[data-display-mode] .castle-panel .item-grid>.attachment-card{grid-template-columns:112px minmax(0,1fr) 240px;align-items:center}html[data-display-mode] .castle-panel .item-grid>.attachment-card>:is(.card-actions,.small-button){grid-column:3;align-self:center}}html[data-display-mode=compact] .castle-panel .item-grid>.item-card{grid-template-columns:88px minmax(0,1fr);gap:var(--space-3);padding:var(--space-3)}html[data-display-mode=compact] .castle-panel .item-grid :is(.attachment-art,.spell-card>.spell-art){width:88px;height:88px}html[data-display-mode=compact] .castle-panel .item-grid .item-content h3{font-size:20px}html[data-display-mode] .castle-panel .spell-card>:is(.spell-card-actions,.workshop-shortfall){grid-column:1 / -1;margin-top:0}html[data-display-mode] .castle-panel .item-grid>.item-card{grid-template-rows:1fr auto}html[data-display-mode] .castle-panel .spell-card-actions{align-self:end}html[data-display-mode] .castle-panel .equipped-spells :is(small,strong){font-size:14px;line-height:1.3}dialog.cinematic-transition-loading[open],.cinematic-story-cover,dialog.cinematic-destination-cover[open]{position:fixed;inset:0;z-index:10000;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-image:none;border-radius:0;background:var(--frame-iron);box-shadow:none;overflow:hidden;transition:opacity var(--cinematic-cover-duration, .35s) ease}dialog.cinematic-transition-loading[open]{display:grid;place-items:center;color:var(--frame-light);font:600 16px/1.4 var(--font-control);background:transparent;text-shadow:0 2px 6px var(--frame-iron);pointer-events:auto}dialog.cinematic-transition-loading:before{content:"";position:absolute;inset:0;z-index:0;background:var(--frame-iron);opacity:.48;transition:opacity var(--cinematic-cover-duration, .35s) ease}.cinematic-transition-loading span{position:relative;z-index:1}.cinematic-transition-loading.is-covering:before{opacity:1}.cinematic-transition-loading.is-covering span{opacity:0}dialog.cinematic-transition-loading::backdrop{background:transparent}dialog.cinematic-transition-loading:after,dialog.cinematic-destination-cover:before,dialog.cinematic-destination-cover:after{display:none}.cinematic-story-cover,dialog.cinematic-destination-cover[open]{opacity:1}.cinematic-story-cover.is-revealing,dialog.cinematic-destination-cover.is-revealing{opacity:0}dialog.cinematic-destination-cover::backdrop{background:transparent}.weapon-workshop{display:grid;gap:calc(var(--space-6) * 2);padding:var(--space-6);min-width:0;width:100%;max-width:1280px;margin-inline:auto;box-sizing:border-box;font-family:var(--font-control);color:var(--frame-light)}html[data-display-mode] .castle-panel:has(.weapon-workshop) .section-tabs{position:static}html[data-display-mode] .castle-panel:has(.weapon-workshop)>.modal-scroll{scroll-padding-top:var(--space-4)}.weapon-workshop :is(p,small,dt,dd,button){font-size:14px;line-height:1.4}.weapon-workshop p{margin:0;color:var(--text-muted)}.weapon-workshop h2,.weapon-workshop h3,.weapon-workshop h4{margin:0;color:var(--frame-light)}.weapon-workshop .workshop-kicker{font-size:14px;font-weight:700;letter-spacing:.06em;color:var(--frame-gold)}.weapon-workshop :is(.workshop-current,.workshop-part,.workshop-arsenal-card){min-width:0;border-color:var(--frame-gold);border-radius:var(--frame-radius);background:var(--surface-panel);box-shadow:var(--frame-bevel)}.weapon-workshop .workshop-current{display:grid;grid-template-columns:208px minmax(0,1fr);align-items:start;gap:var(--space-4);padding:var(--space-4)}.workshop-current-art{display:grid;gap:var(--space-4);min-width:0}.workshop-current-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.workshop-current-actions .workshop-status{flex-basis:100%;color:var(--text-muted)}.workshop-change-weapon{width:auto}.workshop-portrait{display:block;position:relative;width:100%;aspect-ratio:1;overflow:hidden;border:2px solid var(--frame-gold);border-radius:var(--frame-radius);box-sizing:border-box;background:radial-gradient(ellipse at 50% 35%,color-mix(in srgb,var(--frame-gold) 24%,var(--frame-iron)),var(--frame-iron) 75%);box-shadow:var(--frame-bevel)}.workshop-portrait img{display:block;width:100%;height:100%;padding:var(--space-2);box-sizing:border-box;object-fit:contain}.workshop-portrait-ballista:after{content:"";position:absolute;inset:var(--space-1);border-radius:var(--radius-small);background:url(/assets/armory/weapon-portrait-ballista-v1.webp) center / cover no-repeat;pointer-events:none}.workshop-current-copy{min-width:0}.workshop-current-copy h2{font-family:var(--font-display);font-size:clamp(22px,2.4vw,30px);line-height:1.1;margin:var(--space-1) 0}.workshop-current-stats,.workshop-arsenal-card .card-stats{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3);color:var(--frame-light)}.workshop-current-stats>span,.workshop-arsenal-card .card-stats>span{display:flex;align-items:center;gap:var(--space-2);flex:0 1 auto;min-width:0;max-width:100%;box-sizing:border-box;padding:var(--space-2) var(--space-3);border:1px solid var(--frame-gold);border-radius:var(--frame-radius);background:var(--frame-iron);box-shadow:var(--frame-bevel)}.workshop-current-stats .weapon-stat-copy,.workshop-arsenal-card .weapon-stat-copy{display:grid;gap:var(--space-1);line-height:1.25;min-width:0}.weapon-workshop .weapon-stat-copy small{font-size:14px;font-weight:600;color:var(--frame-light)}.weapon-workshop .weapon-stat-copy strong{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--space-1);font-size:30px;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--frame-light)}.weapon-workshop .weapon-stat-copy em{font-size:14px;font-weight:400;font-style:normal;color:var(--text-muted)}.weapon-workshop .weapon-stat-symbol{display:grid;place-items:center;position:relative;flex:0 0 56px;width:56px;height:56px;overflow:hidden;border:1px solid var(--frame-gold);border-radius:var(--radius-small);background:var(--surface-selected)}.weapon-workshop .weapon-stat-symbol:after{content:"";position:absolute;inset:0;background-position:center;background-size:cover;pointer-events:none}.weapon-workshop .weapon-stat-damage .weapon-stat-symbol:after{background-image:url(/assets/armory/stat-damage-v2.webp)}.weapon-workshop .weapon-stat-rate .weapon-stat-symbol:after{background-image:url(/assets/armory/stat-rate-v2.webp)}.workshop-weapon-story{display:grid;gap:var(--space-1);margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid color-mix(in srgb,var(--frame-gold) 35%,transparent);max-width:64ch;min-width:0}.weapon-workshop .workshop-role{font-size:14px;line-height:1.4;color:var(--text-muted)}.workshop-role>strong{display:inline;margin-right:var(--space-1);font-weight:500;color:var(--text-muted)}.weapon-workshop .workshop-flavor{font-size:14px;line-height:1.45;font-style:italic}.weapon-workshop :is(.workshop-change-weapon,.workshop-main-action,.workshop-part-action,.workshop-remove,.workshop-arsenal-actions button){min-height:var(--touch-target);padding:var(--space-2) var(--space-3);font-size:14px;white-space:normal}#workshop-arsenal{scroll-margin-block-start:var(--space-4)}#workshop-arsenal-title{font:600 24px/1.2 var(--font-display)}.workshop-arsenal-intro{padding:var(--space-3) 0}.workshop-arsenal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.weapon-workshop .workshop-arsenal-card{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:start;gap:var(--space-3);padding:var(--space-3)}.workshop-arsenal-card :is(.card-stats,.workshop-weapon-story){grid-column:1 / -1;margin-top:0}.workshop-arsenal-copy{min-width:0}.workshop-arsenal-copy h3{margin:var(--space-1) 0;font-family:var(--font-display);font-size:26px}.workshop-arsenal-copy .card-top{gap:var(--space-2);flex-wrap:wrap}.workshop-arsenal-copy :is(.eyebrow,.equipped-pill){font-size:14px;line-height:1.3}.workshop-arsenal-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:var(--space-2)}.workshop-arsenal-actions button{flex:1 1 145px;width:auto}.weapon-workshop .workshop-forge{grid-column:1 / -1;display:grid;gap:var(--space-3);margin-top:var(--space-2);padding-top:var(--space-6);border-top:1px solid var(--frame-gold);min-width:0;scroll-margin-block-start:var(--space-4)}.workshop-forge-heading{display:flex;align-items:center;gap:var(--space-3)}.workshop-symbol,.workshop-slot-art{display:grid;place-items:center;flex:0 0 auto;color:var(--frame-gold)}.workshop-section-heading h3{font-family:var(--font-display);font-size:24px}.workshop-forge h3{font:600 20px/1.2 var(--font-display)}.workshop-forge-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-2);margin:0}.workshop-forge-preview>div{display:grid;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:1px solid var(--frame-gold);border-radius:var(--frame-radius);background:var(--surface-panel)}.workshop-forge-preview dd,.workshop-changes dd{margin:0;font-weight:700;color:var(--frame-light);font-variant-numeric:tabular-nums}.workshop-forge .workshop-status{color:var(--frame-light)}.workshop-main-action{justify-self:start;min-width:min(100%,290px)}.workshop-parts-section{display:grid;gap:var(--space-6);min-width:0}.workshop-section-heading{display:flex;justify-content:space-between;align-items:end;gap:var(--space-4)}.workshop-section-heading>p{max-width:470px}.workshop-slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-2)}.weapon-workshop .workshop-slot{display:flex;align-items:center;text-align:left;gap:var(--space-2);min-height:82px;min-width:0;padding:var(--space-2);border-color:var(--frame-gold);border-radius:var(--frame-radius)}.weapon-workshop .workshop-slot.selected{color:var(--frame-light);background:var(--surface-selected);border-color:var(--frame-light);box-shadow:var(--frame-bevel)}.workshop-slot-art{width:48px;height:48px;border:1px solid var(--frame-gold);border-radius:var(--radius-small);overflow:hidden}.workshop-slot-art img{width:100%;height:100%;object-fit:contain}.workshop-slot-copy{display:grid;min-width:0;overflow-wrap:anywhere}.workshop-slot-copy strong{font-size:16px}.workshop-slot-copy :is(small,span){color:var(--text-muted);font-size:14px}.workshop-parts-list{display:grid;gap:var(--space-6);margin-top:var(--space-4)}.workshop-parts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));align-items:stretch;gap:var(--space-6)}.workshop-filter-heading{display:flex;align-items:baseline;gap:var(--space-3);flex-wrap:wrap}.workshop-filter-heading h4{font-family:var(--font-display);font-size:21px}.workshop-remove{margin-left:auto}.weapon-workshop .workshop-part{display:grid;grid-template-columns:72px minmax(0,1fr);grid-template-rows:auto 1fr auto;align-items:start;gap:var(--space-3);padding:var(--space-4);height:auto}.workshop-part-art{width:72px;height:72px;border:1px solid var(--frame-gold);border-radius:var(--frame-radius);background:var(--frame-iron);overflow:hidden}.workshop-part-art img{width:100%;height:100%;display:block;object-fit:contain}.workshop-part-content{display:grid;gap:var(--space-1);min-width:0}.workshop-part-content h4{font-family:var(--font-display);font-size:20px;line-height:1.2}.workshop-part-action{width:100%;min-width:0}.workshop-part-actions{align-self:end;grid-column:1 / -1;display:grid;gap:var(--space-1);min-width:0}.weapon-workshop .workshop-shortfall{color:var(--frame-light);font-weight:700}.workshop-comparison{grid-column:1 / -1;display:grid;gap:var(--space-2);min-width:0;align-content:start;padding-top:var(--space-3);border-top:1px solid var(--frame-gold)}.weapon-workshop .workshop-comparison-label{color:var(--frame-light);font-weight:700}.workshop-changes{display:grid;gap:var(--space-1);margin:0}.workshop-change{display:flex;justify-content:space-between;flex-wrap:wrap;gap:2px var(--space-2);padding-block:var(--space-1);overflow-wrap:anywhere}.workshop-change.tradeoff dt{color:var(--frame-light)}.weapon-workshop .workshop-stats-changed{animation:workshop-stats-changed .22s ease-out 1}@keyframes workshop-stats-changed{0%{opacity:.55}to{opacity:1}}@media(max-width:900px){.workshop-arsenal-grid{grid-template-columns:1fr}.workshop-slots{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}}@media(max-width:650px){.weapon-workshop{padding:var(--space-2)}.weapon-workshop .workshop-current{grid-template-columns:84px minmax(0,1fr);gap:var(--space-2);padding:var(--space-3)}.workshop-section-heading{display:grid}.workshop-forge-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.weapon-workshop .workshop-part{grid-template-columns:64px minmax(0,1fr)}.workshop-part-art{width:64px;height:64px}.workshop-part-actions{grid-column:1 / -1;width:100%}.workshop-part-action{width:100%}}html[data-display-mode=compact] .weapon-workshop .workshop-current{grid-template-columns:160px minmax(0,1fr)}html[data-display-mode=compact] .weapon-workshop{gap:calc(var(--space-4) * 2)}html[data-display-mode=compact] .workshop-current-art{gap:var(--space-3)}html[data-display-mode=compact] .weapon-workshop .weapon-stat-symbol{flex-basis:44px;width:44px;height:44px}html[data-display-mode=compact] .weapon-workshop .weapon-stat-copy strong{font-size:26px}@media(max-width:650px){html[data-display-mode=compact] .weapon-workshop .workshop-current{grid-template-columns:144px minmax(0,1fr)}html[data-display-mode=compact] .workshop-current-copy{display:contents}html[data-display-mode=compact] .workshop-current-art{grid-row:span 2}html[data-display-mode=compact] .workshop-current-copy>:is(.workshop-kicker,h2){grid-column:2}html[data-display-mode=compact] .workshop-current-copy>.workshop-kicker{align-self:end}html[data-display-mode=compact] .workshop-current-copy>:is(.workshop-current-stats,.workshop-weapon-story),html[data-display-mode=compact] .workshop-current-actions{grid-column:1 / -1}html[data-display-mode=compact] .workshop-current-stats{margin-top:0}}html[data-display-mode=compact] .weapon-workshop .workshop-arsenal-card,html[data-display-mode=compact] .weapon-workshop .workshop-part{min-width:0}html[data-display-mode=compact] .weapon-workshop .workshop-arsenal-grid{grid-template-columns:1fr}html[data-display-mode=compact] .workshop-forge-preview{grid-template-columns:repeat(2,minmax(0,1fr))}html[data-display-mode=compact] :is(#workshop-arsenal,#workshop-forge){scroll-margin-block-start:var(--space-4)}html[data-display-mode=compact] .workshop-slots{grid-template-columns:repeat(5,minmax(0,1fr))}html[data-display-mode=compact] .weapon-workshop .workshop-slot{flex-direction:column;justify-content:center;gap:var(--space-1);min-height:68px;padding:var(--space-1);text-align:center}html[data-display-mode=compact] .workshop-slot-art{width:32px;height:32px}html[data-display-mode=compact] .workshop-slot-copy strong{font-size:14px}html[data-display-mode=compact] .workshop-slot-copy :is(small,span){display:none}html[data-display-mode=compact] .weapon-workshop .workshop-part{gap:var(--space-2)}html[data-display-mode=compact] .workshop-comparison{gap:var(--space-1)}@media(min-width:640px){html[data-display-mode=compact] .workshop-parts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){.weapon-workshop :is(button,.workshop-part,.workshop-arsenal-card){transition:none;animation:none}.weapon-workshop .workshop-stats-changed{animation:none}}.weapon-workshop[data-reduced-motion=true] .workshop-stats-changed{animation:none;opacity:1}.training-continuation:is(dialog){width:min(480px,calc(100vw - 32px));animation:tutorial-card-arrive .22s ease-out both}.training-continuation::backdrop{background:color-mix(in srgb,var(--frame-iron) 52%,transparent);-webkit-backdrop-filter:none;backdrop-filter:none}.training-continuation .modal-heading{padding:var(--space-4)}.training-continuation-body{padding:var(--space-4);font-family:var(--font-control)}.training-continuation-body p{margin:0 0 var(--space-4);color:var(--text-muted);font-size:14px;line-height:1.5}.training-continuation-action{width:100%;min-height:var(--touch-target)}.training-continuation[data-reduced-motion=true]{animation:none}.tutorial-overlay:popover-open,.tutorial-success-overlay:popover-open{position:fixed;inset:0;box-sizing:border-box;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;overflow:visible;pointer-events:none}.tutorial-scrim,.tutorial-target-ring,.tutorial-card,.tutorial-success-badge,.tutorial-success-mote{position:fixed;box-sizing:border-box}.tutorial-scrim{background:color-mix(in srgb,var(--frame-iron) 76%,transparent);pointer-events:none}.tutorial-success-mote.is-icon{width:42px;height:42px;border:0;background:transparent;box-shadow:0 0 16px var(--frame-light)}.tutorial-success-mote.is-icon>*{display:block;width:100%;height:100%;object-fit:contain}.tutorial-target-ring{border:2px solid var(--frame-light);border-radius:var(--radius-control);box-shadow:0 0 0 2px var(--frame-shadow),0 0 16px color-mix(in srgb,var(--frame-light) 52%,transparent);pointer-events:none;animation:tutorial-target-pulse .43s ease-in-out 3 alternate}.tutorial-card.frame-panel{width:min(360px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:var(--space-4);background:var(--surface-panel);color:var(--frame-light);font-family:var(--font-control);pointer-events:auto;visibility:hidden;opacity:0}.tutorial-positioned .tutorial-card{visibility:visible;animation:tutorial-card-arrive .22s ease-out both}.tutorial-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.tutorial-heading h3{margin:0;color:var(--frame-light);font-family:var(--font-display);font-size:clamp(19px,3.2vw,24px);font-weight:400;line-height:1.16}.tutorial-progress{display:block;margin-bottom:var(--space-1);color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.tutorial-card>p{margin:var(--space-3) 0 0;color:var(--text-muted);font-size:14px;line-height:1.5}.tutorial-dismiss.icon-button{flex:none;width:var(--touch-target);height:var(--touch-target);min-height:var(--touch-target);padding:0;font-size:24px;line-height:1}.tutorial-action.primary{width:100%;min-height:var(--touch-target);margin-top:var(--space-4)}.tutorial-out-of-view .tutorial-scrim,.tutorial-out-of-view .tutorial-target-ring{visibility:hidden}.tutorial-success-badge.frame-panel{width:max-content;max-width:min(320px,calc(100vw - 32px));padding:var(--space-3) var(--space-4);transform:translate(-50%,-50%);background:var(--surface-selected);color:var(--frame-light);font-family:var(--font-control);font-size:14px;font-weight:700;line-height:1.3;text-align:center;pointer-events:none;animation:tutorial-success-arrive .56s ease-out both}.tutorial-success-mote{width:18px;height:18px;border:2px solid var(--frame-light);border-radius:var(--radius-round);background:var(--frame-gold);box-shadow:0 0 16px var(--frame-light);pointer-events:none}@keyframes tutorial-card-arrive{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes tutorial-target-pulse{0%{box-shadow:0 0 0 2px var(--frame-shadow),0 0 8px color-mix(in srgb,var(--frame-light) 24%,transparent)}to{box-shadow:0 0 0 2px var(--frame-shadow),0 0 20px color-mix(in srgb,var(--frame-light) 64%,transparent)}}@keyframes tutorial-success-arrive{0%{opacity:0;transform:translate(-50%,-45%) scale(.94)}22%{opacity:1;transform:translate(-50%,-50%) scale(1)}78%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-54%) scale(1)}}@media(prefers-reduced-motion:reduce){.training-continuation{animation:none}.tutorial-target-ring,.tutorial-positioned .tutorial-card,.tutorial-success-badge.frame-panel{animation:none;opacity:1;transform:none}.tutorial-success-badge.frame-panel{transform:translate(-50%,-50%)}}.tutorial-overlay[data-reduced-motion=true] .tutorial-target-ring,.tutorial-overlay[data-reduced-motion=true].tutorial-positioned .tutorial-card,.tutorial-success-overlay[data-reduced-motion=true] .tutorial-success-badge.frame-panel{animation:none;opacity:1;transform:none}.tutorial-success-overlay[data-reduced-motion=true] .tutorial-success-badge.frame-panel{transform:translate(-50%,-50%)}.progression-card .card-effect{min-height:0;border-top-color:var(--frame-gold);color:var(--text-muted);font-size:12px;line-height:1.4}.progression-card :is(.card-button,.spell-card-actions button,.item-content>.small-button){min-height:var(--touch-target)}
