@font-face{font-family:Friz;src:url('/data/Fonts/FRIZQT__.TTF') format('truetype');font-display:swap}
@font-face{font-family:Morpheus;src:url('/data/Fonts/MORPHEUS.TTF') format('truetype');font-display:swap}
:root{color-scheme:dark;--gold:#e5c170;--gold-bright:#ffe49c;--muted:#a59a83;--ink:#100d09;--line:#61533a;--class-color:#69ccf0}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:#090705;color:#e2dccb;font:15px/1.45 Friz,Georgia,serif;text-shadow:0 1px 2px #000}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}[hidden]{display:none!important}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--gold-bright);outline-offset:3px}button:disabled{filter:grayscale(.85);opacity:.5;cursor:default}input,select{width:100%;height:37px;margin-top:5px;border:1px solid #76613d;border-bottom-color:#a18345;border-radius:2px;background:#0b0905;color:#f0e9d6;padding:7px 10px;box-shadow:inset 0 2px 5px #000}input::placeholder{color:#817b6e;font-size:13px}input:invalid:not(:placeholder-shown){box-shadow:inset 0 0 0 1px #773128}label{display:block;color:var(--gold);font-size:13px}select{cursor:pointer}button,.wow-button{min-height:35px;display:inline-flex;justify-content:center;align-items:center;gap:8px;border:1px solid #b28b3e;border-top-color:#d8b65a;border-bottom-color:#79571f;border-radius:3px;padding:7px 22px;background:linear-gradient(180deg,#581711 0%,#3a0d09 48%,#260705 51%,#3d100b 100%);color:#f8d979;box-shadow:0 0 0 1px #090806,inset 0 0 0 1px #250300,inset 0 1px 1px #9b3729;cursor:pointer;text-decoration:none;text-shadow:1px 1px #000;white-space:nowrap}button:hover:enabled,.wow-button:hover{color:#fff1b1;background:linear-gradient(#8b291c,#56160f 49%,#3d0d07 51%,#58180e);border-color:#e7c776;box-shadow:0 0 0 1px #080704,inset 0 0 8px #bf79304a}button:active:enabled{padding-top:9px;padding-bottom:5px;filter:brightness(.9)}button.secondary,.wow-button.secondary{background:linear-gradient(#30271b,#17110b);box-shadow:0 0 0 1px #090806,inset 0 0 0 1px #0d0b09,inset 0 1px #6b5941;color:#c8b998}button.small-button{min-height:29px;padding:3px 14px;font-size:12px}h1,h2,h3,p{margin-top:0}h2,h3{font-weight:normal;color:var(--gold)}h2{font:27px Morpheus,Friz,Georgia,serif}h3{font:19px Morpheus,Friz,Georgia,serif}a{color:var(--gold)}.muted{color:var(--muted);font-size:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.world-backdrop{position:fixed;inset:0;z-index:-2;background:radial-gradient(ellipse at 50% -15%,#8c5a2238,transparent 58%),linear-gradient(#080603de,#050403f5),url('/ui-assets/background') center top/cover, #080604;box-shadow:inset 0 0 160px 40px #000}.world-backdrop:after{content:'';position:absolute;inset:20px;border:1px solid #62503930;box-shadow:0 0 0 6px #08060499,inset 0 0 0 6px #08060455;pointer-events:none}.masthead{text-align:center;padding:31px 12px 24px}.overline{font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:#a09577;margin:0 0 10px}.masthead h1{font:62px/1.03 Morpheus,Friz,Georgia,serif;margin:0;color:#ecca68;letter-spacing:-1px;text-shadow:0 2px #251405,1px 0 #4e2d09,0 4px 12px #000}.masthead h1 span{display:inline}.subtitle{font-size:12px;margin:9px 0 0;color:#aaa28c;letter-spacing:.07em}
.realm-window{position:relative;z-index:3;width:min(1080px,calc(100% - 50px));margin:0 auto;border:1px solid #907035;border-top-color:#b2924e;border-bottom-color:#58411e;border-radius:5px;background:linear-gradient(#191309f2,#0a0805f7),url('/ui-assets/panel');box-shadow:0 0 0 1px #100b06,0 12px 50px #000,inset 0 0 30px #000}.realm-window:before,.realm-window:after{content:'◆';position:absolute;top:12px;font-size:13px;color:#9c7c3d;text-shadow:0 2px #33291d;z-index:1}.realm-window:before{left:16px}.realm-window:after{right:16px}.window-title{min-height:42px;display:flex;align-items:center;justify-content:center;position:relative;padding:6px 35px;color:#f5d67e;font:24px Morpheus,Friz,Georgia,serif;border-bottom:1px solid #76604166;background:linear-gradient(#3d2b1333,#17100766);box-shadow:inset 0 1px #d6bb6d15;text-shadow:0 1px 3px #000}.ornament{display:none}.character-strip{display:grid;grid-template-columns:54px minmax(140px,1.1fr) minmax(120px,.9fr) 145px;gap:16px;align-items:center;padding:20px 23px}.class-portrait{width:52px;height:52px;position:relative;background:radial-gradient(circle,#554326,#130d05);border:2px solid #bc9d5a;outline:1px solid #13100a;box-shadow:inset 0 0 10px #000,0 0 0 2px #3b3021;overflow:hidden;color:#f1d87b}.class-portrait:before{content:'';position:absolute;inset:2px;background-image:url('/ui-assets/class-icons');background-size:400% 400%;background-position:var(--portrait-position,0% 0%)}.class-portrait span{font-size:30px;display:block;text-align:center;opacity:.25}.character-note{font-size:13px;color:#d0c4a8;text-align:center}.character-note span{color:#a18d66;font-size:11px}.realm-tabs{display:flex;padding-left:23px;gap:4px;border-bottom:1px solid #76603d}.realm-tabs .realm-tab{border-radius:4px 4px 0 0;min-height:31px;background:linear-gradient(#3c2d19,#191107);border-bottom:0;color:#a89e87;padding:5px 25px;font-size:13px;box-shadow:inset 0 1px #d6c29721}.realm-tabs .realm-tab.selected{background:linear-gradient(#604827,#302212);color:#ffe199;position:relative;top:1px;border-color:#aa8c56}.realm-toolbar{display:flex;align-items:center;justify-content:space-between;margin:12px 21px 9px;font-size:12px;color:#b4a17b}.realm-list{margin:0 20px;border:1px solid #66522e;box-shadow:0 0 0 1px #000,inset 0 0 18px #000;background:#080603aa;min-height:226px;max-height:345px;overflow:auto;scrollbar-color:#80603a #171108;scrollbar-width:thin}table{border-collapse:collapse;width:100%;text-align:left}th{position:sticky;top:0;z-index:1;font-weight:normal;font-size:12px;color:#c9b17a;background:linear-gradient(#332719,#1d1409);border-bottom:1px solid #5e4525;white-space:nowrap}th,td{padding:10px 13px}th:first-child,td:first-child{width:35%}th:last-child,td:last-child{padding-right:12px;text-align:right}td{font-size:13px;border-bottom:1px solid #312619}tbody tr:nth-child(even){background:#3d2b171c}tbody tr:hover{background:#d8b57812}td.realm-name{color:#e8d4a4}td.realm-name small{display:block;font-size:10px;color:#988466;margin-top:3px}.locked-symbol{font-size:10px;color:#d6b45c}.population-low{color:#86c76a}.population-full{color:#b99c78}.realm-status{font-size:11px;color:#b8aa8c}.realm-status.running{color:#cd9e62}.empty-realms{text-align:center;padding:30px 20px 35px;color:#8c7a58}.empty-realms strong{font-size:16px;font-weight:normal;color:#b6ab85}.empty-realms p{margin:7px 0 0;font-size:12px}.empty-rune{display:block;font-size:30px;color:#88744f;margin-bottom:10px;text-shadow:0 0 17px #b4b17322}.realm-caption{font-size:11px;color:#9b896a;margin:9px 22px 0}.invite-entry{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin:18px 21px 22px}.invite-entry input{margin:0}.invite-entry label{color:#b0a48a;font-size:12px}.window-footer{min-height:63px;padding:13px 20px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #4d3b2366;background:linear-gradient(#2c201266,#09060388)}.footer-flavor{font-size:11px;color:#8a795b;font-style:italic}.page-footer{padding:22px 12px;text-align:center;font-size:10px;letter-spacing:.03em;color:#817255}.page-footer span{padding:0 12px;color:#b59a58}.guide-page{padding:25px 30px;min-height:342px;background:linear-gradient(90deg,#36291c14,transparent)}.guide-page h2{font-size:27px}.guide-page p{max-width:790px;color:#b8b29d;font-size:13px}.guide-page dl{display:grid;grid-template-columns:130px 1fr;gap:14px;font-size:13px;max-width:850px}.guide-page dt{color:#d8bc74}.guide-page dd{margin:0;color:#b8b29d}kbd{border:1px solid #62513a;border-radius:2px;padding:2px 5px;background:#2b2113;color:#e4c67c;font:11px Friz,Georgia,serif;box-shadow:0 2px #090603}
.error{margin:12px 20px;padding:10px 12px;border:1px solid #9b3e2d;background:#380f0d;color:#ffb69a;font-size:13px}.connection-status{border-bottom:1px solid #7d6836;background:#493a168c;padding:9px 15px;text-align:center;color:#f2d782;font-size:12px}.eyebrow{font-size:10px;letter-spacing:.06em;color:#9b8560;margin:0}.party-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:30px;padding:0 23px}.section-heading{display:flex;justify-content:space-between;border-bottom:1px solid #60451f66;padding:0 0 8px;margin:0 0 12px;color:#c4a769;font-size:20px}.section-heading span{color:#9b8560;font:12px Friz,Georgia,serif;align-self:center}.party-roster{display:grid;gap:10px}.unit-frame{display:grid;grid-template-columns:39px 1fr;gap:10px;border:1px solid #665133;padding:8px;background:linear-gradient(#251b0e,#100b05);box-shadow:inset 0 0 0 1px #080603}.unit-icon{width:37px;height:37px;border:1px solid #b6a56b;background-color:#1a1209;background-image:url('/ui-assets/class-icons');background-size:400% 400%;background-position:var(--portrait-position,0 0);box-shadow:inset 0 0 5px #000}.unit-name{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--class-color);margin-bottom:4px}.unit-name .leader{color:#ead378;font-size:11px}.unit-name small{color:#a5ae92;font-size:10px}.health-track{position:relative;height:14px;background:#020603;border:1px solid #080b05;outline:1px solid #45452d;overflow:hidden}.health-track i{display:block;height:100%;width:100%;background:linear-gradient(#6aa644,#264e1e);transition:width .12s linear}.health-track span{position:absolute;inset:0;text-align:center;color:#f1edcf;font-size:10px;line-height:12px;text-shadow:1px 1px #000,-1px -1px #000}.unit-frame.downed{border-color:#825033;filter:saturate(.5)}.unit-frame.downed .health-track i{background:linear-gradient(#b49c5c,#6f5729)}.unit-status{font-size:10px;color:#a1a587;margin-top:3px}.unit-frame.empty{opacity:.4;min-height:64px;align-items:center;border-style:dashed}.unit-frame.empty .unit-icon{background-image:none;display:grid;place-items:center;color:#756e4c;font-size:23px}.loading-line{font-size:12px;color:#d6b86d;margin-top:13px}.loading-line.loaded{color:#99c77e}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.result{text-align:center;border:1px solid #94804b;background:radial-gradient(ellipse at center,#55432555,#100a05ee);padding:20px;margin:15px 22px}.result h2{font:38px Morpheus,Georgia,serif;margin-bottom:8px}.result p{font-size:13px}.result ul{list-style:none;padding:0;color:#c6b785;font-size:12px}.result button{margin-top:8px}
iframe#world{position:fixed;inset:0;width:100%;height:100%;border:0;z-index:0}body.in-room:not(.playing) iframe#world{filter:brightness(.3)}body.in-room .world-backdrop{z-index:1;background:#10090555;pointer-events:none}body.in-room .masthead,body.in-room .page-footer{position:relative;z-index:2}body.playing .masthead,body.playing .page-footer,body.playing .lobby-only{display:none!important}body.playing .world-backdrop{display:none}body.playing .realm-window{position:fixed;right:15px;top:16px;width:278px;margin:0;background:#100b06e8;box-shadow:0 0 0 1px #2e2112,0 5px 15px #0008;border-width:1px}body.playing .realm-window:before,body.playing .realm-window:after{display:none}body.playing .window-title{min-height:28px;font:17px Morpheus,Friz,Georgia,serif;padding:4px 12px}body.playing .party-layout{display:block;padding:11px}body.playing .section-heading{font:12px Friz,Georgia,serif;margin-bottom:7px;padding-bottom:5px}body.playing .party-roster{gap:6px}body.playing .unit-frame{padding:5px;gap:7px;grid-template-columns:28px 1fr}body.playing .unit-icon{width:28px;height:28px}body.playing .unit-name{font-size:11px;margin-bottom:3px}body.playing .unit-frame.empty{display:none}body.playing .unit-status{font-size:9px}body.playing .window-footer{padding:8px 10px;min-height:auto;justify-content:flex-end}body.playing #leave{min-height:25px;padding:3px 13px;font-size:10px}body.playing .error{font-size:11px;margin:8px;padding:7px}body.playing .result{margin:8px;padding:12px}body.playing .result h2{font-size:28px}body.playing .result button{font-size:11px;padding:5px 9px}.run-bar{position:fixed;top:15px;left:50%;transform:translateX(-50%);z-index:3;display:flex;gap:22px;align-items:center;padding:8px 23px;background:linear-gradient(#2b1d0deb,#100904e8);border:1px solid #9c8860;outline:1px solid #171006;box-shadow:0 3px 13px #0007;color:#c0b486;font-size:12px}.run-bar b{font-weight:normal;color:#f1d27e}.run-bar #runTime{color:#ede1b0;font-size:18px}.boss-frame{position:fixed;top:77px;left:50%;transform:translateX(-50%);z-index:3;width:310px;padding:9px 13px;border:1px solid #a48543;background:#100b05ed;box-shadow:0 0 0 2px #221709,0 5px 14px #0008;text-align:center;color:#f4cf6b;font-size:14px}.boss-frame .health-track{height:17px;margin-top:5px}.boss-frame .health-track i{background:linear-gradient(#a4352c,#60170f)}.boss-frame .health-track span{line-height:15px}
.survival-bar{position:fixed;bottom:15px;left:50%;transform:translateX(-50%);z-index:4;display:flex;gap:7px;padding:6px;background:#100a04e8;border:1px solid #806332;box-shadow:0 0 0 2px #1e1408}.survival-bar .action-slot{display:flex;flex-direction:column;gap:2px;position:relative;min-width:118px;min-height:62px;background:radial-gradient(ellipse at top,#274552,#10191c 70%);border:1px solid #a89261;padding:8px 12px 6px;color:#e4d1a0;font-size:11px}.survival-bar .action-slot.potion{background:radial-gradient(ellipse at top,#66261b,#1a0e0a 70%)}.survival-bar .action-slot.racial{background:radial-gradient(ellipse at top,#555b2b,#15190d 70%)}.action-slot kbd{position:absolute;top:3px;left:3px;font-size:9px;padding:0 3px}.action-slot small{font-size:9px;color:#b5a47d}.survival-bar .action-slot:disabled{opacity:.65}.survival-bar .action-slot.active{border-color:#9fc56c;box-shadow:inset 0 0 14px #acdb7722}
.reward-panel{position:fixed;left:50%;bottom:110px;transform:translateX(-50%);z-index:5;width:min(930px,calc(100vw - 50px));background:#110b06f2;border:1px solid #aa8540;outline:1px solid #080603;box-shadow:0 0 0 2px #352410,0 8px 25px #000;padding:15px}.reward-heading{display:flex;align-items:center;gap:16px;margin-bottom:12px}.reward-heading h2{font-size:25px;margin:0}.reward-heading span{color:#b9ac8d;font-size:11px;margin-left:auto}.reward-choices{display:flex;gap:12px}.reward-choices button{flex:1;position:relative;display:block;white-space:normal;text-align:left;min-height:133px;padding:14px 14px 12px;border:1px solid #7c6440;background:linear-gradient(#2e2112eb,#160d05ed);box-shadow:inset 0 0 0 1px #1a1006,0 0 0 1px #000;line-height:1.4;color:#e2d7b4;transition:border-color .15s,background .15s}.reward-choices button:hover:enabled{border-color:#d5b872;background:linear-gradient(#463117,#201308);box-shadow:inset 0 0 15px #c9b45b11}.reward-choices strong{display:block;color:#93ceff;font-size:16px;font-weight:normal;margin:0 0 8px;padding-right:13px}.reward-choices .reward-description{font:12px/1.5 Friz,Georgia,serif;color:#c5c3a7;display:block}.reward-choices .reward-number{position:absolute;right:9px;top:9px;color:#817b62;font-size:11px}.reward-choices .reward-kind{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#a78a55;margin-bottom:7px}
.wow-dialog{color:#d4ceb7;max-width:calc(100vw - 40px);width:450px;max-height:calc(100vh - 40px);padding:0;border:1px solid #b99650;border-bottom-color:#675439;border-radius:4px;background:linear-gradient(#261a0c,#100a05);box-shadow:0 0 0 3px #2d2111,0 0 0 4px #0b0703,0 15px 80px #000;overflow:auto}.wow-dialog::backdrop{background:#000b;backdrop-filter:blur(2px)}.wow-dialog .dialog-body{padding:19px 24px}.wow-dialog .dialog-body>p{font-size:13px}.wow-dialog label{margin-top:16px}.wow-dialog label .muted{font-size:11px}.wow-dialog .error{margin:14px 0 0}.wow-dialog .muted{font-size:12px;line-height:1.55}.wow-dialog .dialog-body h2{font-size:26px}.wow-dialog .window-footer{padding:13px 22px}.wow-dialog .close-button{position:absolute;right:8px;top:7px;min-height:24px;width:24px;padding:0;font:18px Friz,Georgia,serif;line-height:1}.login-window{width:min(440px,calc(100% - 40px));margin-top:2vh}.login-body{padding:25px}.login-body p{font-size:13px;color:#b8a783}.login-body label{margin-top:20px}.login-body .error{margin:18px 0 0}.login-window .window-footer{justify-content:center}.login-window .window-footer button{min-width:170px}
@media(min-width:1500px){.masthead{padding-top:6vh}.realm-list{min-height:270px}.page-footer{padding-top:26px}}
@media(max-width:760px){.masthead{padding-top:22px}.masthead h1{font-size:45px}.realm-window{width:calc(100% - 30px)}.character-strip{grid-template-columns:42px 1fr 1fr;gap:10px;padding:18px 14px}.class-portrait{width:40px;height:40px}.character-note{display:none}.realm-list{margin:0 10px}th,td{padding:8px}th:nth-child(2),td:nth-child(2){display:none}.realm-caption{margin-left:12px;margin-right:12px}.invite-entry{grid-template-columns:1fr auto;margin:17px 12px}.invite-entry label{grid-column:1/-1}.footer-flavor{display:none}.window-footer{padding:12px}.realm-toolbar{margin-left:12px;margin-right:12px}.realm-tabs{padding-left:12px}.party-layout{gap:18px;padding:0 15px}.field-pair{grid-template-columns:1fr;gap:0}.guide-page{padding:20px}.guide-page dl{grid-template-columns:85px 1fr;gap:12px}.reward-panel{bottom:100px;width:calc(100vw - 30px);padding:10px}.reward-heading h2{font-size:20px}.reward-heading span{display:none}.reward-heading button{margin-left:auto}.reward-choices{gap:7px}.reward-choices button{padding:10px;min-height:140px}.reward-choices strong{font-size:13px}.reward-choices .reward-description{font-size:10px}body.playing .realm-window{width:220px;right:9px;top:9px}.run-bar{left:12px;transform:none;top:11px;gap:12px;padding:7px 10px}.boss-frame{left:12px;transform:none;width:230px}.login-window{width:min(440px,calc(100% - 40px))}}
@media(max-width:500px){.party-layout{grid-template-columns:1fr}.party-roster{grid-template-columns:1fr 1fr;gap:7px}.unit-frame{grid-template-columns:1fr;padding:7px}.unit-frame .unit-icon{display:none}.field-pair{grid-template-columns:1fr 1fr;gap:10px}.realm-list td{font-size:11px}.realm-list .small-button{padding:3px 7px}.realm-tabs .realm-tab{padding-left:16px;padding-right:16px}.window-footer button,.window-footer a{padding-left:12px;padding-right:12px}body.playing .party-roster{display:grid;grid-template-columns:1fr}body.playing .unit-frame{grid-template-columns:1fr}body.playing .realm-window{width:180px}.run-bar{font-size:10px;gap:8px;padding:5px 7px}.run-bar #runTime{font-size:14px}.boss-frame{width:190px;top:61px}.reward-choices{flex-direction:column}.reward-choices button{min-height:0}.reward-heading h2{font-size:18px}.reward-choices .reward-kind{display:none}.reward-choices strong{margin-bottom:3px}.reward-panel{max-height:43vh;overflow:auto}.survival-bar .action-slot{min-width:95px;padding-left:8px;padding-right:8px;font-size:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Character selection and persistent Armory share the same bronze game frames. */
.focus-status{font-size:10px;color:#9d916d;border-top:1px solid #66502855;padding-top:8px;margin-top:9px}.focus-status strong{font-weight:normal;color:#e8c86e}.focus-status small{display:block;font-size:9px;color:#8f7d58;margin-top:3px}.boss-frame[role=button]{cursor:pointer}.boss-frame[role=button]:hover,.boss-frame.focused{border-color:#ffdb73;box-shadow:0 0 0 2px #6c4c13,0 0 15px #9b772533}.boss-frame:focus-visible{outline:2px solid #ffe49c;outline-offset:4px}
.page-footer a{color:#b69a59;text-decoration:none}.page-footer a:hover{color:#e6c67a;text-decoration:underline}.run-bar{flex-wrap:wrap;row-gap:3px}.run-objective{flex-basis:100%;font-size:10px;text-align:center;color:#bbaa7b;white-space:nowrap}@media(max-width:760px){.run-objective{font-size:9px}.run-bar{max-width:300px}}@media(max-width:500px){.run-bar{max-width:230px}.run-objective{font-size:8px;white-space:normal}}
.survival-bar .action-slot.class-escape:before{background-image:url('/ui-assets/class-icons');background-size:400% 400%;background-position:var(--portrait-position)}
.boss-mechanic{position:fixed;z-index:12;top:143px;left:50%;transform:translateX(-50%);width:min(370px,calc(100vw - 500px));padding:8px 13px;border:1px solid #9d632b;background:linear-gradient(#2c170be8,#160b06ed);box-shadow:inset 0 0 0 1px #000,0 2px 10px #0009;pointer-events:none;text-align:center}.boss-mechanic>div{display:flex;align-items:center;justify-content:center;gap:14px}.boss-mechanic strong{font-weight:normal;font-size:13px;color:#ffb95b}.boss-mechanic #mechanicTime{color:#ffdc9a;font-size:11px}.boss-mechanic p{font-size:11px;color:#e3c8a0;line-height:1.4;margin:4px 0 0}.boss-mechanic.active{border-color:#b54833;background:linear-gradient(#3c110ce8,#170706ed)}.boss-mechanic.active strong{color:#ff8e70}@media(max-width:760px){.boss-mechanic{left:12px;top:118px;transform:none;width:230px;padding:6px 8px}.boss-mechanic strong{font-size:11px}.boss-mechanic p{font-size:10px}}@media(max-width:500px){.boss-mechanic{width:190px;top:113px}}
.class-spellbook{margin:12px 23px 0;border:1px solid #655332;background:linear-gradient(#21170cdd,#110d08ee)}.class-spellbook>summary{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:9px 13px;cursor:pointer;color:var(--class-color);font-size:13px}.class-spellbook>summary:before{content:'+';color:#c7a153}.class-spellbook[open]>summary:before{content:'−'}.class-spellbook #spellbookTitle{margin-right:auto}.spellbook-hint{font-size:10px;color:#9b895f}.spellbook-body{padding:2px 13px 12px}.spellbook-body>p{font-size:11px;color:#b3a382;margin:6px 0 14px;line-height:1.6}.class-spells{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.spell-entry{border:1px solid #59482c;background:#0d0a05;align-self:start}.spell-entry summary{padding:8px 10px;cursor:pointer;color:#d7bd7d;font-size:11px}.spell-entry summary small{display:block;color:#81b46f;font-size:9px;margin:3px 0 0 13px}.spell-entry p{padding:0 10px 10px;margin:0;color:#b1a585;font-size:10px;line-height:1.6}.spellbook-body p.spellbook-note{font-size:10px;color:#8e805f;margin:12px 0 0}@media(max-width:760px){.class-spellbook{margin:12px 12px 0}.class-spells{grid-template-columns:repeat(2,1fr)}}@media(max-width:500px){.class-spells{grid-template-columns:1fr}.spellbook-hint{display:none}}
.class-grid-ready .class-select-fallback{display:none}.class-grid-ready .character-strip{grid-template-columns:54px 1fr 160px;padding-bottom:12px}.class-choices{display:grid;grid-template-columns:repeat(10,1fr);gap:8px;padding:0 23px}.class-choices .class-choice{display:flex;flex-direction:column;gap:6px;padding:8px 4px 5px;min-width:0;background:transparent;border:1px solid transparent;box-shadow:none;color:#b8a379;font-size:11px}.class-choice-icon{display:block;width:40px;height:40px;background:url('/ui-assets/class-icons');background-size:400% 400%;background-position:var(--portrait-position,0 0);border:1px solid #746449;box-shadow:0 0 0 1px #0b0703,inset 0 0 4px #000}.class-choices .class-choice[aria-pressed=true]{border-color:#9d7b3e;background:radial-gradient(ellipse at 50% 30%,#8a6c3333,transparent 75%);color:var(--class-color)}.class-choice[aria-pressed=true] .class-choice-icon{border-color:#e1c786;box-shadow:0 0 10px #c0a57222}.class-choices .class-choice:hover:enabled{background:#b68b3414;border-color:#786034}.class-description{margin:7px 23px 0;text-align:center;font-size:11px;color:#b0a080}.character-account{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 23px 18px}.account-status{display:flex;flex-direction:column;gap:3px}.account-status strong{font-size:12px;color:#d2b86d;font-weight:normal}.account-status span{font-size:10px;color:#a18d69}.account-actions{display:flex;gap:7px;flex-wrap:wrap}.account-actions .small-button{font-size:11px;padding:4px 12px}.identity-tabs{display:flex;gap:8px;margin:15px 0}.identity-tabs button{flex:1}#newHeroForm>button,#restoreHeroForm>button{width:100%;margin-top:18px}#identityDialog .window-footer{align-items:center}#identityDialog .window-footer .muted{font-size:9px;max-width:130px}.recovery-code{width:100%;margin:7px 0 12px;background:#070603;border:1px solid #92723a;color:#e5cb84;font:14px/1.5 monospace;padding:11px;resize:none;overflow-wrap:anywhere;word-break:break-all}.recovery-actions{display:flex;gap:10px;margin-bottom:15px}.recovery-actions button{flex:1}.check-label{display:flex;align-items:center;gap:9px;color:#d2bb80;font-size:12px}.check-label input{width:16px;height:16px;margin:0;accent-color:#b9984b}.armory-dialog{width:950px}.armory-banner{display:flex;justify-content:space-between;align-items:center;padding:20px 25px 16px}.armory-banner h2{font:31px Morpheus,Friz,Georgia,serif;margin:0 0 3px}.armory-banner p{margin:0}.currencies{display:flex;gap:25px;text-align:center}.currency strong{display:block;font-weight:normal;color:#f0d275;font-size:18px}.currency span{color:#a2916b;font-size:10px}.armory-page{padding:20px 24px;min-height:340px}.talent-intro{text-align:center}.talent-intro h2{margin-bottom:7px}.doctrines{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:24px 0}.doctrines .doctrine-choice{white-space:normal;display:flex;flex-direction:column;gap:10px;min-height:180px;padding:16px;border:1px solid #756039;background:linear-gradient(#30200d,#110b04);box-shadow:inset 0 0 20px #0006;text-align:center}.doctrine-choice.selected{border-color:#e6bc61!important;background:radial-gradient(ellipse at top,#76591e55,transparent 70%),#1c1206!important;box-shadow:inset 0 0 0 1px #d9bd5a22,0 0 14px #a27b2622!important}.doctrine-rune{color:#d7b66b;font-size:29px}.doctrine-choice strong{font:23px Morpheus,Friz,Georgia,serif;font-weight:normal}.doctrine-choice>span:not(.doctrine-rune){font-size:11px;color:#c6b383;line-height:1.5}.doctrine-choice small{font-size:9px;color:#8d7b53;margin-top:auto}.talent-ranks{display:flex;justify-content:center;gap:17px;position:relative;margin:18px auto}.talent-ranks:before{content:'';position:absolute;top:17px;left:calc(50% - 110px);right:calc(50% - 110px);border-top:2px solid #4d3b1e;z-index:0}.talent-ranks span{position:relative;z-index:1;display:grid;place-items:center;width:35px;height:35px;border:1px solid #705a33;background:#100b04;color:#786342}.talent-ranks span.trained{background:linear-gradient(#735021,#352007);color:#f1d27e;border-color:#d1aa55;box-shadow:inset 0 0 7px #d5b65b33}.talent-cost{text-align:center;color:#b9a571;font-size:12px}.talent-actions{display:flex;justify-content:center;gap:12px;margin:20px 0 6px}#contractRequirements p{font-size:13px;color:#c4b38e}.drop-table{border:1px solid #5e4829;margin:18px 0}.drop-table th:first-child,.drop-table td:first-child{width:35%}.drop-table th:last-child,.drop-table td:last-child{text-align:left}.progression-rules-list{padding-left:18px;color:#a99a76;font-size:11px;line-height:1.7}#combatLogButton{margin-right:auto}body.playing #combatLogButton{font-size:9px;min-height:25px;padding:3px 7px}#combatLogDialog{width:640px}#combatLogDialog th,#combatLogDialog td{font-size:12px;padding:8px}#combatSummary{margin-top:15px}.survival-bar .action-slot:before{content:'';height:28px;width:28px;background:url('/ui-assets/blink') center/cover;border:1px solid #9c8659;margin-bottom:2px}.survival-bar .action-slot.potion:before{background-image:url('/ui-assets/potion')}.survival-bar .action-slot.racial:before{background-image:var(--action-icon,url('/ui-assets/blink'));background-position:center;background-size:cover}.survival-bar .action-slot{min-height:87px}.reward-panel{bottom:135px}
@media(max-width:760px){.class-grid-ready .character-strip{grid-template-columns:42px 1fr 120px}.class-choices{grid-template-columns:repeat(10,1fr);padding:0 12px;gap:2px}.class-choices .class-choice{font-size:9px;padding:5px 1px}.class-choice-icon{width:32px;height:32px}.character-account{padding:12px;align-items:flex-start}.account-actions{justify-content:flex-end;max-width:230px}.account-status span{max-width:230px}.armory-banner{padding:16px}.armory-page{padding:16px}.currencies{gap:17px}.doctrines{gap:9px}.doctrines .doctrine-choice{padding:12px 9px}.doctrine-choice strong{font-size:21px}.doctrine-choice>span:not(.doctrine-rune){font-size:10px}.reward-panel{bottom:130px}}
@media(max-width:500px){.class-grid-ready .character-strip{grid-template-columns:42px 1fr}.class-choices{grid-template-columns:repeat(5,1fr)}.class-choice-icon{width:34px;height:34px}.class-description{font-size:9px}.character-account{flex-direction:column;gap:9px}.account-actions{justify-content:flex-start;max-width:none}.armory-banner{gap:15px}.currencies{gap:12px}.currency strong{font-size:15px}.currency span{font-size:9px}.armory-banner h2{font-size:27px}.doctrines{grid-template-columns:1fr}.doctrines .doctrine-choice{min-height:0;display:grid;grid-template-columns:30px 1fr;gap:6px;text-align:left}.doctrine-rune{grid-row:1/4;font-size:26px}.doctrine-choice strong{font-size:22px}.doctrine-choice small{margin:0}.talent-actions button{font-size:12px;padding:7px 13px}.armory-dialog .realm-tabs .realm-tab{padding:5px 11px;font-size:12px}.survival-bar .action-slot{min-height:80px}.reward-panel{bottom:125px;max-height:38vh}}
.world-loading{margin:16px 0 12px;padding:12px;border:1px solid #6e542d;background:linear-gradient(#21170c,#0c0804);box-shadow:inset 0 0 0 1px #080603}.world-loading-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.world-loading .loading-line{margin:0;font-size:12px;line-height:1.4}.world-loading-heading strong{color:#edd28a;font-size:12px;font-weight:normal;white-space:nowrap}.world-loading-track{height:13px;position:relative;overflow:hidden;border:1px solid #907441;outline:1px solid #080603;background:#090704;box-shadow:inset 0 2px 4px #000}.world-loading-track i{display:block;height:100%;width:0;background:linear-gradient(#e2b04d,#8e5b17 55%,#bf852c);box-shadow:inset 0 1px #f4d58088,0 0 8px #d49f37;transition:width .2s linear}.world-loading-track.indeterminate i{width:24%;animation:world-loading-scan 1.8s ease-in-out infinite}.world-loading-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 10px;margin-top:8px;color:#b7a584;font-size:10px;line-height:1.4}.world-loading-meta span:last-child{color:#d1bc87}.world-loading-assets{font-size:10px;color:#978963;margin:7px 0 0}.world-loading.complete{border-color:#5d723f}.world-loading.complete .world-loading-track i{background:linear-gradient(#86ad58,#45662a 55%,#67953f)}.world-loading.failed{border-color:#9b3e2d}.world-loading.failed .loading-line{color:#efa78a}@keyframes world-loading-scan{0%,100%{transform:translateX(0)}50%{transform:translateX(315%)}}@media(prefers-reduced-motion:reduce){.world-loading-track.indeterminate i{animation:none;opacity:.7}.world-loading-track i{transition:none}}
/* Adventure selection follows the original character / class / zone composition. */
body:not(.in-room) .realm-window{width:min(1780px,calc(100% - 90px));border:0;background:none;box-shadow:none;border-radius:0}
body:not(.in-room) .realm-window:before,body:not(.in-room) .realm-window:after,body:not(.in-room) .realm-window>.window-title{display:none}
.masthead{padding:42px 16px 24px}.masthead h1{font-size:clamp(48px,4.2vw,80px)}.subtitle{font-size:16px;letter-spacing:0;margin-top:3px}

.world-backdrop{background:linear-gradient(#080603b8,#050403eb),url('/ui-assets/background') center top/cover,#080604}.world-backdrop:after{display:none}
.adventure-menu{display:grid;grid-template-columns:1fr 1.16fr 1fr;gap:24px;align-items:stretch}
.menu-card{min-width:0;padding:22px;border:1px solid #8d6b2c;border-radius:9px;background:linear-gradient(#181207ef,#0b0905f5),url('/ui-assets/panel');box-shadow:inset 0 0 25px #0004,0 2px 10px #0005;min-height:660px}
.menu-heading{display:flex;align-items:center;gap:15px;justify-content:center;font:29px Morpheus,Friz,Georgia,serif;margin:0 0 18px;color:#e6c16b}.menu-heading:before,.menu-heading:after{content:'';height:1px;flex:1;background:linear-gradient(90deg,transparent,#705320)}.menu-heading:after{transform:rotate(180deg)}
.class-card .class-choices{grid-template-columns:repeat(5,minmax(0,1fr));gap:18px 10px;padding:0 12px;max-width:420px;margin:0 auto 18px}.class-card .class-choices .class-choice{font-size:13px;padding:3px 3px 5px;gap:7px;border:0}.class-card .class-choice-icon{width:65px;height:65px;border-radius:4px;border:2px solid #7b7769;box-shadow:0 0 0 1px #000,inset 0 0 5px #000}.class-card .class-choice[aria-pressed=true] .class-choice-icon{border-color:#ead187;box-shadow:0 0 15px #ceae6133}.class-card .class-choice[aria-pressed=true]{background:radial-gradient(ellipse,#705d272f,transparent 80%);color:#edd58b}.class-card .class-choice:hover:enabled{background:#b68b3414}
.class-summary{padding-top:18px;border-top:1px solid #62472066}.class-summary h2{font:26px Friz,Georgia,serif;color:#bf9564;margin:0 0 12px}.class-summary .class-description{text-align:left;margin:0 0 17px;font-size:15px;line-height:1.4;color:#b6a77f}.class-stats{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:8px}.class-stats>div{padding:9px 10px;border:1px solid #58441e;border-radius:5px;background:#060503}.class-stats small{display:block;text-transform:uppercase;font-size:10px;color:#a99669}.class-stats strong{font-size:16px;font-weight:normal;color:#e1d3ad}
.class-card .class-spellbook{margin:16px 0 0;background:none;border-width:1px 0 0;border-color:#67502d55}.class-card .class-spellbook>summary{font-size:12px;padding:8px 0}.class-card .class-spells{grid-template-columns:1fr}.class-card .spellbook-body{padding:0}.class-card .spellbook-body>p{display:none}
.hero-card .character-strip{padding:0;grid-template-columns:105px 1fr;gap:18px;margin:4px 0 28px}.hero-portrait-wrap{position:relative;width:105px;height:116px;display:flex;align-items:center;justify-content:center;border:2px solid #a48b50;border-radius:55% 55% 45% 45%;background:radial-gradient(#6a5030,#171008);box-shadow:0 0 0 2px #272015;overflow:visible}.hero-portrait-wrap>img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.hero-portrait-wrap>.class-portrait{position:absolute;width:43px;height:43px;bottom:-7px;right:-9px;border-radius:50%;overflow:hidden}.hero-identity input{margin:0;height:46px;font-size:23px;border:1px solid #bb9342;background:linear-gradient(#2b2511,#100c04);color:#eddca6}.hero-identity p{font-size:18px;margin:8px 0 2px;color:#d0b88a}.hero-identity small{font-size:13px;color:#a49370}.hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hero-actions button{flex-direction:column;gap:0;min-height:63px;font:26px Morpheus,Friz,Georgia,serif}.hero-actions button small{font:11px Friz,Georgia,serif;color:#ad966d}.hero-card .character-account{padding:15px 0 19px;display:block;border-bottom:1px solid #66512455}.hero-card .account-status strong{font-size:12px}.hero-card .account-status span{font-size:11px}.hero-card .account-actions{margin-top:9px;gap:6px}.hero-card .account-actions .small-button{font-size:10px;padding:3px 9px}.hero-card #openArmory,.hero-card #openTalents{display:none}.race-traits{padding-top:18px;color:#b4a278;font-size:13px}.race-traits h2{font:28px Morpheus,Friz,Georgia,serif;margin-bottom:5px}.race-traits p{margin:0 0 6px}.race-traits ul{padding-left:18px;line-height:1.7;margin:0}
.zone-choices{max-height:590px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#80603a #171108}.zone-choices .zone-option{display:block;width:100%;padding:10px 13px;min-height:58px;text-align:left;border:1px solid #665123;border-radius:3px;margin:0 0 5px;background:linear-gradient(90deg,#1c160cdd,#100c05ee),url('/ui-assets/background') center/cover;box-shadow:inset 0 0 0 1px #080603;white-space:normal}.zone-option strong{font:24px Morpheus,Friz,Georgia,serif;display:block;color:#b8aa85;font-weight:normal}.zone-option small{display:block;font-size:11px;color:#99875e}.zone-option .zone-contract{font-size:12px;line-height:1.5;margin-top:7px;color:#c1b18c}.zone-choices .zone-option[aria-pressed=true]{border:2px solid #e5c564;padding:13px 12px;background:linear-gradient(90deg,#362711cc,#181005dd),url('/ui-assets/background') center/cover}.zone-option[aria-pressed=true] strong{font-size:30px;color:#efd480}.zone-option[aria-pressed=true] small{color:#dcab60}.zone-choices .zone-expansion{display:flex;width:100%;min-height:0;align-items:center;justify-content:space-between;gap:10px;margin:0 0 5px;padding:9px 13px;text-align:left;border:1px solid #6a5424;border-radius:3px;background:linear-gradient(90deg,#241a0dcc,#120d05dd),url('/ui-assets/background') center/cover;box-shadow:inset 0 0 0 1px #080603;cursor:pointer}.zone-expansion strong{font:19px Morpheus,Friz,Georgia,serif;font-weight:normal;color:#c9b27a}.zone-expansion small{font:11px Friz,Georgia,serif;color:#99875e;text-transform:uppercase;letter-spacing:.07em;margin-left:auto}.zone-expansion::after{content:'\25B8';color:#a78e58;font-size:13px;flex-shrink:0}.zone-expansion[aria-expanded=true]{border-color:#b8955a;background:linear-gradient(90deg,#362711cc,#181005dd),url('/ui-assets/background') center/cover}.zone-expansion[aria-expanded=true] strong{color:#efd480}.zone-expansion[aria-expanded=true]::after{content:'\25BE'}.zone-group{margin:0 0 9px;padding:0 0 0 8px;border-left:1px solid #4a3a1e}.zone-bosses{display:flex;flex-wrap:wrap;gap:4px;margin-top:9px}.zone-bosses span{font-size:10px;color:#d0a06b;border:1px solid #7f4b20;padding:1px 7px;border-radius:12px;background:#090602}
.menu-enter-row{display:flex;justify-content:center;align-items:stretch;gap:18px;margin:22px 0 10px}.menu-enter-row>button{flex-direction:column;gap:0;font:22px Morpheus,Friz,Georgia,serif;padding:8px 22px;min-width:170px}.menu-enter-row small{font:11px Friz,Georgia,serif;color:#b7a07a}.menu-enter-row .enter-world{min-width:440px;min-height:82px;font-size:38px;border:2px solid #e2b858;border-radius:8px;background:linear-gradient(#65180e,#310705)}.menu-enter-row .enter-world small{font-size:13px}.menu-controls{text-align:center;font-size:12px;color:#aa9b77;margin:0}.practice-link{display:block;text-align:center;font-size:10px;color:#86734f;margin:8px 0 0}.page-footer{padding-top:14px}
.realm-browser-dialog{width:1000px}.realm-browser-dialog .realm-tabs{padding-top:16px}.realm-browser-dialog .realm-list{max-height:38vh}.realm-browser-dialog .guide-page{min-height:0}.menu-card .class-select-fallback{display:none}
.reward-panel{width:min(990px,calc(100vw - 50px))}.reward-choices button{text-align:center;min-height:252px;padding:17px 14px 14px}.reward-choices .reward-icon{display:block;margin:0 auto 13px;width:70px;height:70px;border:2px solid #a18e64;border-radius:4px;box-shadow:0 0 0 1px #000,0 0 12px #0007;object-fit:cover}.reward-choices strong{font-size:21px;padding:0;margin-bottom:6px}.reward-choices .reward-kind{font-size:10px;margin-bottom:7px}.reward-rank{display:block;color:#d4b960;font-size:11px;margin:0 0 7px}.reward-comparison{display:grid;grid-template-columns:1fr 18px 1fr;gap:4px;margin:12px 0 0;text-align:left;font-size:11px;border-top:1px solid #73542666;padding-top:9px}.reward-comparison .before{color:#a59a80}.reward-comparison .after{color:#98d57c}.reward-comparison .upgrade-arrow{align-self:center;color:#d7bd78}.reward-new{position:absolute;top:11px;left:11px;border:1px solid #6c9250;background:#18250e;color:#b5e095;font-size:9px;padding:2px 5px}.reward-choices button.mastery{border-color:#9871bf}.reward-choices button.mastery strong{color:#bd92ee}.reward-choices button.upgrade strong{color:#7dc467}
@media(min-width:1800px){.menu-card{min-height:700px}.zone-choices{max-height:628px}.class-card .class-choice-icon{width:73px;height:73px}.class-card .class-choices{gap:21px 12px}.class-summary{padding-top:20px}}
@media(max-width:1100px){body:not(.in-room) .realm-window{width:calc(100% - 36px)}.adventure-menu{gap:13px;grid-template-columns:1fr 1.1fr 1fr}.menu-card{padding:15px;min-height:610px}.class-card .class-choice-icon{width:47px;height:47px}.class-card .class-choices{padding:0;gap:13px 4px}.class-card .class-choices .class-choice{font-size:11px}.hero-card .character-strip{grid-template-columns:72px 1fr;gap:12px}.hero-portrait-wrap{width:72px;height:84px}.hero-identity input{font-size:19px}.hero-identity p{font-size:14px}.hero-actions button{font-size:23px}.hero-actions button small{font-size:9px}.class-stats{gap:4px;grid-template-columns:1fr 1.3fr}.class-stats>div:last-child{display:none}.class-stats>div{padding:6px}.class-stats strong{font-size:13px}.zone-option strong{font-size:20px}.zone-option[aria-pressed=true] strong{font-size:24px}.menu-enter-row{gap:10px}.menu-enter-row>button{min-width:145px;font-size:18px;padding:8px 12px}.menu-enter-row .enter-world{min-width:330px;font-size:31px}.zone-choices{max-height:570px}}
@media(max-width:800px){.masthead{padding-top:62px}.masthead h1{font-size:49px}.subtitle{font-size:13px}.adventure-menu{grid-template-columns:1fr 1fr}.zone-card{grid-column:1/-1;min-height:0}.zone-choices{max-height:350px}.menu-card{min-height:0}.class-card .class-choice-icon{width:55px;height:55px}.menu-enter-row{flex-wrap:wrap}.menu-enter-row .enter-world{order:-1;width:100%;min-width:0;min-height:70px}.menu-enter-row>button{flex:1}.menu-controls{font-size:10px}.realm-browser-dialog .invite-entry{grid-template-columns:1fr auto}.realm-browser-dialog .invite-entry label{grid-column:1/-1}.reward-choices .reward-icon{width:48px;height:48px}.reward-choices strong{font-size:17px}.reward-choices button{min-height:250px;padding:12px 9px}.reward-comparison{font-size:10px;grid-template-columns:1fr;gap:3px}.reward-comparison .upgrade-arrow{display:none}}
@media(max-width:520px){.adventure-menu{grid-template-columns:1fr}.zone-card{grid-column:auto}.class-card .class-choices{grid-template-columns:repeat(5,minmax(0,1fr))}.hero-card .character-strip{grid-template-columns:90px 1fr}.hero-portrait-wrap{width:90px;height:100px}.reward-choices button{min-height:0;text-align:left;padding:12px 12px 12px 64px}.reward-choices .reward-icon{position:absolute;left:9px;top:15px;width:43px;height:43px;margin:0}.reward-choices strong{font-size:15px}.reward-rank{font-size:9px}.reward-comparison{display:block;font-size:9px;margin-top:5px;padding-top:5px}.reward-comparison .after{display:block}.reward-new{top:0;left:8px;font-size:7px}.hero-card .account-actions .small-button{font-size:11px}}
@media(min-width:801px) and (max-height:1050px){
 .masthead{padding:25px 16px 18px}.masthead h1{font-size:70px}
 .menu-card{padding:19px;min-height:0}.menu-heading{font-size:27px;margin-bottom:15px}
 .class-card .class-choices{gap:10px 8px;margin-bottom:12px;max-width:310px}.class-card .class-choice-icon{width:58px;height:58px}.class-card .class-choices .class-choice{font-size:12px;gap:5px;padding:2px 3px}
 .class-summary{padding-top:15px}.class-summary h2{font-size:23px;margin-bottom:10px}.class-summary .class-description{font-size:13px;margin-bottom:12px}
 .class-stats>div{padding:7px 8px}.class-stats strong{font-size:14px}.class-card .class-spellbook{margin-top:12px}
 .hero-card .character-strip{margin-bottom:23px;grid-template-columns:92px 1fr}.hero-portrait-wrap{width:92px;height:102px}.hero-card .character-account{padding:12px 0 15px}.race-traits{padding-top:15px}.race-traits ul{font-size:12px}
 .zone-choices{max-height:calc(100vh - 327px)}.zone-choices .zone-option{padding:8px 11px;min-height:51px}.zone-option strong{font-size:22px}.zone-option[aria-pressed=true] strong{font-size:28px}.zone-expansion{padding-top:8px}
 .menu-enter-row{margin-top:17px}.menu-enter-row .enter-world{min-height:72px;font-size:34px}.menu-enter-row>button{font-size:20px}.menu-controls{font-size:11px}.page-footer{padding:10px}
}
@media(min-width:801px) and (max-height:1050px){.zone-choices{max-height:calc(100vh - 395px)}.hero-card .character-strip{margin-bottom:16px}.hero-card .character-account{padding:10px 0 12px}.race-traits{padding-top:11px}.race-traits h2{font-size:25px}.menu-enter-row{margin-top:14px}.menu-enter-row .enter-world{min-height:68px}.menu-enter-row>button{padding:5px 16px}}
.world-loading-track i{background:linear-gradient(#6da7d0,#28679d 45%,#164a76 55%,#3076a8);box-shadow:inset 0 1px #d4eaff88,0 0 6px #397ebc55}
/* Reward cards stay aligned and leave the middle of the arena visible. */
.reward-choices button{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:0;padding:12px 14px}
.reward-choices .reward-kind{min-height:14px;flex-shrink:0}.reward-choices .reward-icon{flex-shrink:0;margin:0 0 8px}.reward-choices strong{font-size:20px;margin-bottom:5px}.reward-choices .reward-description{font-size:12px;line-height:1.4}.reward-rank{margin-bottom:6px;line-height:1.3}.reward-comparison{width:100%;margin-top:8px;padding-top:7px;white-space:pre-line;line-height:1.35}
.reward-build-footer{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:10px}.reward-build-footer>span{color:#a89467;font-size:10px}.reward-build{display:flex;gap:6px}.reward-build-slot{position:relative;display:block;width:35px;height:35px;border:1px solid #746343;background:linear-gradient(#20190d,#090602);box-shadow:inset 0 0 5px #000,0 0 0 1px #080603;border-radius:2px}.reward-build-slot img{display:block;width:100%;height:100%;object-fit:cover}.reward-build-slot small{position:absolute;right:2px;bottom:0;font-size:10px;line-height:1.1;color:#f4e3b0;text-shadow:1px 1px #000,-1px -1px #000}
@media(max-width:800px){.reward-choices .reward-icon{width:48px;height:48px}.reward-choices strong{font-size:17px}.reward-comparison{font-size:10px}.reward-build-footer{margin-top:8px}.reward-build-slot{width:30px;height:30px}}
@media(max-width:520px){.reward-choices button{display:block;text-align:left;padding:10px 12px 10px 64px}.reward-choices .reward-icon{margin:0}.reward-choices strong{font-size:15px}.reward-choices .reward-description{font-size:10px}.reward-comparison{font-size:9px}.reward-build-footer{gap:9px}.reward-build-slot{width:28px;height:28px}.reward-build-footer>span{font-size:9px}}
/* Classic talent panes use the client's own four-part class artwork and spell icons. */
#talentsPage{padding:16px 20px 12px}.talent-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:6px}.talent-header h2{margin:0;font:28px Morpheus,Friz,Georgia,serif}.talent-header>span{color:#d8be73;font-size:12px}.talent-explanation{font-size:11px;line-height:1.5;color:#b3a480;margin:0 0 13px}.talent-trees{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.talent-tree{border:2px solid #66523c;border-top-color:#a18a5e;border-radius:3px;background:#090705;box-shadow:0 0 0 1px #000,inset 0 0 0 1px #30251a;min-width:0}.talent-tree-heading{display:flex;align-items:center;justify-content:space-between;gap:7px;margin:0;padding:8px 10px;font:20px Morpheus,Friz,Georgia,serif;color:#edcf7b;border-bottom:1px solid #a48a5c;background:linear-gradient(#302617,#171007)}.talent-tree-heading>span{font:10px Friz,Georgia,serif;color:#b8a77e;white-space:nowrap}.talent-tree-canvas{position:relative;height:360px;isolation:isolate;background:#050403;overflow:hidden}.talent-tree-art{position:absolute;inset:0;display:grid;grid-template-columns:80% 20%;grid-template-rows:66.666% 33.334%;opacity:.75;z-index:-2}.talent-tree-art img{width:100%;height:100%;display:block;object-fit:fill}.talent-tree-art:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 12px #0008;pointer-events:none}.talent-connectors{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}.talent-connectors path{fill:none;stroke:#725d39;stroke-width:3;filter:drop-shadow(1px 1px 1px #000)}.talent-connectors path.active{stroke:#d7b651}.talent-tree .talent-node{position:absolute;transform:translate(-50%,-50%);display:block;width:39px;height:39px;min-height:0;padding:0!important;border:2px solid #64645c;border-radius:3px;box-shadow:0 0 0 1px #000,inset 0 0 0 1px #131009;background:#0b0703;overflow:visible;transition:none}.talent-node img{display:block;width:100%;height:100%;object-fit:cover;opacity:.45;filter:grayscale(1)}.talent-tree .talent-node.unlocked{border-color:#759859}.talent-node.unlocked img{opacity:1;filter:none}.talent-tree .talent-node.maxed{border-color:#e6bd55}.talent-tree .talent-node.selected{outline:2px solid #ffe19a;outline-offset:3px}.talent-tree .talent-node:hover{border-color:#e4c886;box-shadow:0 0 0 1px #000,0 0 8px #e7bc6555}.talent-node-rank{position:absolute;bottom:-7px;right:-7px;display:block;padding:1px 4px;color:#777767;background:#070603;border:1px solid #3c3a2b;border-radius:2px;font:10px/1.2 Friz,Georgia,serif;box-shadow:0 1px 2px #000}.unlocked .talent-node-rank{color:#a6db69}.maxed .talent-node-rank{color:#f1d05e}.talent-details{display:grid;grid-template-columns:49px minmax(0,1fr);gap:13px;margin-top:15px;min-height:88px;padding:11px 13px;background:#0a0704;border:1px solid #786347;box-shadow:inset 0 0 0 1px #000}.talent-details>img{width:46px;height:46px;border:1px solid #9c8452;border-radius:3px}.talent-details h3{font:20px Friz,Georgia,serif;color:#e4cb8c;margin:0 0 3px}.talent-details p{margin:3px 0;font-size:11px;line-height:1.45;color:#c8ba9b}.talent-details #talentRank{color:#ada27f;font-size:10px}.talent-details #talentRequirements{font-size:10px;color:#a5c17f}.talent-details #talentRequirements.blocked{color:#dc7863}#talentsPage .talent-actions{align-items:center;justify-content:space-between;gap:13px;margin:14px 0 6px}#talentsPage .talent-cost{margin:0;font-size:11px;color:#cab578}#talentsPage .talent-actions button{font-size:12px;min-height:33px;padding:5px 15px}.talent-reset-note{font-size:10px;color:#938262;line-height:1.5;text-align:center;margin:7px 0 0}
@media(max-width:760px){#talentsPage{padding:13px}.talent-trees{gap:7px}.talent-tree-heading{font-size:17px;padding:7px 5px;display:block;text-align:center}.talent-tree-heading>span{display:block;font-size:9px;margin-top:2px}.talent-tree .talent-node{width:31px;height:31px}.talent-node-rank{font-size:8px;padding:1px 2px;right:-5px;bottom:-5px}.talent-tree-canvas{height:325px}.talent-details{gap:9px;padding:9px;grid-template-columns:39px 1fr}.talent-details>img{width:37px;height:37px}.talent-header h2{font-size:24px}.talent-header>span{font-size:10px}#talentsPage .talent-actions{flex-wrap:wrap;justify-content:center}#talentsPage .talent-cost{order:-1;flex-basis:100%}}
@media(max-width:520px){.talent-trees{grid-template-columns:1fr}.talent-tree-canvas{height:360px}.talent-tree .talent-node{width:40px;height:40px}.talent-tree-heading{display:flex;text-align:left;padding:7px 12px}.talent-node-rank{font-size:10px}.talent-details{position:sticky;bottom:0;z-index:2;box-shadow:0 -3px 12px #0008}.talent-details h3{font-size:16px}}

/* Original character-creation composition: the native animated scene stays unobstructed. */
body:not(.in-room){padding:0;overflow:hidden;background:#080b10}
body:not(.in-room) .masthead,body:not(.in-room) .page-footer,body:not(.in-room) #realmWindow>.window-title{display:none}
body:not(.in-room) #realmWindow{position:relative;z-index:2;margin:0;width:100%;max-width:none;padding:0;background:none;border:0;box-shadow:none;pointer-events:none}
body:not(.in-room) #realmWindow:before,body:not(.in-room) #realmWindow:after{display:none}
body:not(.in-room) #browserPanel{pointer-events:none}
body:not(.in-room) .world-backdrop{background:#080b10;z-index:-1;filter:none}
.preview-mount{position:fixed;inset:0;z-index:-1;pointer-events:auto}
#characterPreview{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.creation-rail,.creation-enter,.preview-status{pointer-events:auto}
.creation-rail{position:fixed;left:28px;top:55px;bottom:82px;width:242px;padding:17px 19px 13px;overflow:auto;scrollbar-width:thin;scrollbar-color:#77705c #15140e;background:url('/ui-assets/creation-background') center/100% 100%;isolation:isolate;color:#ffd100}
.rail-border{position:absolute;inset:0;z-index:-1;display:grid;grid-template-rows:34% 34% 32%;pointer-events:none}
.rail-border i{display:block;background:url('/ui-assets/creation-border') 0 0/114.2857% 106.6667% no-repeat}.rail-border i:last-child{background-position:0 100%}
.creation-logo{display:block;width:184px;height:77px;object-fit:contain;margin:-1px auto -9px;filter:drop-shadow(0 3px 2px #000)}
.creation-game-title{display:block;text-align:center;color:#e7c775;font:17px Morpheus,Friz,Georgia,serif;margin-bottom:11px;text-shadow:1px 2px #000}
.faction-labels{display:grid;grid-template-columns:1fr 1fr;gap:15px;text-align:center;font:15px Friz,Georgia,serif;margin-bottom:5px;color:#ffd100;text-shadow:1px 1px #000}
.race-choices{display:grid;grid-template-columns:1fr 1fr;gap:3px 19px;padding:3px 4px 9px;background:url('/ui-assets/creation-banners') center/100% 100% no-repeat}
.creation-rail .race-choice,.creation-rail .gender-choice,.creation-rail .class-choice{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;width:100%;padding:3px 0;min-height:0;border:0;border-radius:0;background:none;box-shadow:none;color:#ffd100;font:11px Friz,Georgia,serif;white-space:normal;text-shadow:1px 1px #000}
.race-icon,.gender-icon,.creation-rail .class-choice-icon{display:block;width:43px;height:43px;background-color:#090909;background-size:400% 400%;border:2px solid #69655a;border-radius:4px;box-shadow:0 0 0 1px #171513,inset 0 0 2px #000}
.race-icon{background-image:url('/ui-assets/race-icons')}.gender-icon{background-image:url('/ui-assets/gender-icons');background-size:200% 100%}
.creation-rail button[aria-pressed=true]>span:first-child{border-color:#ffe67f;box-shadow:0 0 0 1px #4b3212,0 0 10px #f9ce4288}
.creation-rail .race-choice:disabled{opacity:.35;cursor:not-allowed}.creation-rail .race-choice:disabled .race-icon{filter:grayscale(1)}
.creation-rail button:hover>span:first-child{border-color:#d9c37c}
.gender-choices{display:grid;grid-template-columns:1fr 1fr;gap:4px;width:127px;margin:7px auto 9px}
.gender-choices .gender-icon{width:36px;height:36px}
.creation-section-title{text-align:center;font:17px Friz,Georgia,serif;margin:7px 0 4px;color:#ffd100}
.creation-rail .class-choices{display:grid;grid-template-columns:1fr 1fr;gap:3px 13px;padding:0 3px;margin:0 auto 8px;max-width:none}
.creation-rail .class-choice-icon{width:36px;height:36px;background-image:url('/ui-assets/class-icons');background-position:var(--portrait-position)}
.creation-rail #randomizeAppearance{display:block;width:100%;min-height:27px;padding:3px 7px;font-size:11px;margin-top:8px}
.creation-utilities{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0}.creation-utilities button{min-height:27px;padding:3px 5px;font-size:11px}.creation-utilities small{font-size:9px;margin-left:4px}
.creation-rail .character-account{padding:8px 0 0;border-top:1px solid #8b785455;display:block;font-size:10px;color:#c4ba9b}.creation-rail .account-status strong,.creation-rail .account-status span{font-size:10px}.creation-rail .account-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.creation-rail .account-actions button{padding:3px 6px;min-height:24px;font-size:9px}.creation-rail #openArmory,.creation-rail #openTalents{display:none}

.creation-enter{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);width:320px;text-align:center}.creation-enter h2{font:25px Friz,Georgia,serif;color:#ffd100;margin:0 0 8px;text-shadow:1px 2px #000,0 0 5px #000}
.creation-enter #name{height:30px;margin:0 auto 8px;text-align:center;width:225px;padding:4px 8px;background:#0b0b12df;border:1px solid #8f8b81;font:15px Friz,Georgia,serif;color:#fff}
.creation-enter .enter-world{display:flex;flex-direction:column;justify-content:center;gap:0;width:100%;min-height:47px;font:21px Friz,Georgia,serif;border:2px solid #9f9275;border-top-color:#c0b9a5;border-radius:2px;background:linear-gradient(#70190f,#390b06);box-shadow:inset 0 0 0 1px #1e0c07,0 0 0 1px #18150d;text-shadow:1px 1px #000;padding:5px 9px;color:#ffd100}.creation-enter .enter-world small{font-size:10px;color:#dfcfad}.creation-rotate-hint{display:block;font-size:10px;color:#c4bda7;text-shadow:1px 1px #000;margin-top:6px}

.preview-status{position:fixed;top:25px;left:50%;transform:translateX(-50%);width:min(430px,calc(100vw - 610px));padding:10px 14px;background:#12100ee3;border:1px solid #827351;text-align:center;color:#e6d6a8;font-size:12px;box-shadow:0 3px 9px #0008}.preview-status.failed{border-color:#ad6852;color:#f1bca1}.preview-status #retryPreview{margin-top:9px;font-size:11px}.preview-track{height:8px;margin-top:8px;background:#090909;border:1px solid #736447;overflow:hidden}.preview-track i{display:block;height:100%;background:linear-gradient(#5994bd,#194368);width:0}.preview-track.indeterminate i{width:35%!important;animation:load-pulse 1.6s ease-in-out infinite alternate}
body:not(.in-room) #connectionStatus,body:not(.in-room) #error{pointer-events:auto;position:fixed;top:72px;left:50%;transform:translateX(-50%);max-width:500px;z-index:7;margin:0}
body.in-room .preview-mount,body.in-room .preview-status{display:none}
.name-joke{position:fixed;top:80px;left:50%;transform:translateX(-50%);z-index:90;display:flex;gap:15px;align-items:center;max-width:calc(100vw - 35px);padding:13px 17px;border:1px solid #b3a07b;background:#15120bf5;box-shadow:0 0 0 2px #282114,0 4px 18px #0009;color:#ffdf8a;font-size:12px}.name-joke .close-button{flex:none}
.downed-notice{position:fixed;left:50%;top:28%;transform:translateX(-50%);z-index:5;text-align:center;width:370px;max-width:90vw;padding:20px;background:#110907dd;border:1px solid #7b674c;box-shadow:0 5px 15px #0008}.downed-notice h2{font:29px Morpheus,Friz,Georgia,serif;color:#d9c293;margin:0 0 7px}.downed-notice p{font-size:12px;color:#bcb29b;margin:0 0 13px}.downed-notice .health-track{height:19px}.downed-notice .health-track span{font-size:11px;line-height:17px}
.defense-frame{position:fixed;left:20px;bottom:25px;width:190px;z-index:4;padding:9px 11px;background:#14110bdf;border:1px solid #7d6d4a;color:#d2bb76;font-size:12px}.defense-frame>.health-track{margin-top:5px;height:15px}.defense-frame .health-track i{background:linear-gradient(#d8c273,#8a6b22)}.defense-frame small{display:block;font-size:9px;color:#b4a788;margin-top:5px;line-height:1.3}
.active-buffs{position:fixed;right:310px;top:17px;display:flex;gap:7px;z-index:4}.active-buffs>span{display:block;position:relative;width:35px;height:45px}.active-buffs img{width:35px;height:35px;border:1px solid #ba9b58}.active-buffs small{display:block;text-align:center;font-size:10px;color:#ffe19b;text-shadow:1px 1px #000}.active-buffs .absorb-buff{width:auto;height:35px;padding:7px;background:#121b2ade;border:1px solid #6e859d;font-size:11px;color:#b9d9ed}
.action-slot:disabled{cursor:default;opacity:.65}.action-slot.active{border-color:#bfd385;box-shadow:0 0 7px #a2bb4755}
body.playing #result.result{position:fixed;inset:0;z-index:20;margin:0;padding:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:0;background:radial-gradient(ellipse,#221b12ea,#050403f5);box-shadow:none;color:#c3bda5}
.results-logo{width:230px;height:110px;object-fit:contain;margin-bottom:25px}body.playing #result h2{font:49px Morpheus,Friz,Georgia,serif;color:#e9d49a;margin:0 0 15px}#resultSummary{font-size:15px;color:#b8a783;margin-bottom:25px}.result-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:32px;margin:0 0 24px}.result-stats>div{text-align:center;min-width:105px}.result-stats dt{font-size:11px;color:#a99b7a}.result-stats dd{font:27px Friz,Georgia,serif;color:#f0d780;margin:6px 0 0}#resultPlayers{font-size:13px;line-height:1.8;margin:0 0 10px}.result-actions{display:flex;gap:15px;margin-top:20px}body.playing #result button{font-size:14px;padding:9px 20px;min-height:40px}body.run-finished .realm-window>.window-title,body.run-finished .room-actions,body.run-finished .party-layout,body.run-finished #error{display:none}
@media(min-height:1000px){.creation-rail{width:268px;padding:21px;left:29px;top:65px;bottom:95px}.creation-logo{width:205px;height:93px}.race-icon{width:51px;height:51px}.race-choices{gap:7px 22px}.creation-rail .class-choice-icon{width:43px;height:43px}.creation-rail .class-choices{gap:7px 13px}.creation-rail .race-choice,.creation-rail .class-choice{font-size:12px}}
@media(max-width:1050px){.creation-rail{left:10px;width:205px;padding:12px}.creation-enter{width:265px}.preview-status{width:300px;max-width:calc(100vw - 475px)}.creation-logo{width:165px}.race-choices{gap:3px 7px}}
@media(max-height:790px) and (min-width:801px){.creation-rail{top:35px;bottom:65px;padding-top:10px}.creation-logo{height:58px;width:170px}.race-icon{width:34px;height:34px}.gender-icon{width:29px!important;height:29px!important}.creation-rail .class-choice-icon{width:29px;height:29px}.creation-rail .class-choices{gap:0 7px}.race-choices{gap:0 7px}.creation-rail .race-choice,.creation-rail .class-choice{font-size:10px}.creation-game-title{margin-bottom:7px}.creation-enter{bottom:12px}.creation-enter h2{font-size:20px}}
@media(max-width:800px){body:not(.in-room){overflow:auto}body:not(.in-room) #browserPanel{display:grid;grid-template-columns:205px minmax(0,1fr);gap:10px;padding:65px 12px 160px}.creation-rail{position:relative;left:auto;right:auto;top:auto;bottom:auto;width:auto;max-height:none}.creation-rail{grid-column:1;grid-row:1}.creation-enter{bottom:10px;background:#090908bd;padding:7px;z-index:3}.creation-enter h2{font-size:20px;margin-bottom:5px}.creation-enter #name{height:26px}.preview-status{top:12px;width:calc(100vw - 30px);max-width:430px}.creation-logo{width:160px}.result-stats{gap:18px}.result-stats dd{font-size:22px}body.playing #result h2{font-size:36px}.active-buffs{right:auto;left:20px;top:160px}}
@media(max-width:520px){body:not(.in-room) #browserPanel{grid-template-columns:1fr;padding:65px 12px 165px}.creation-rail{grid-column:1;grid-row:1;width:240px;justify-self:center}.creation-enter{width:220px;left:auto;right:12px;transform:none}.creation-enter .enter-world{font-size:16px}.creation-enter #name{width:185px}.creation-rotate-hint{display:none}.defense-frame{width:130px;bottom:115px;left:10px}.result-actions{flex-direction:column;gap:5px}.results-logo{margin-bottom:10px;width:170px;height:80px}body.playing #result.result{padding:18px}.result-stats{gap:12px;margin-bottom:15px}.result-stats>div{min-width:80px}#resultSummary{font-size:12px;margin-bottom:16px}#resultPlayers{font-size:11px}}

.survival-bar #mobility:before{background-image:var(--action-icon,url('/ui-assets/blink'));background-position:center;background-size:cover}

/* Keep all Classic race/class choices in view; account management lives in its own dialog. */
.creation-rail{padding:13px 16px}.creation-logo{height:61px;width:174px}.creation-game-title{font-size:15px;margin-bottom:7px}.faction-labels{font-size:13px;margin-bottom:3px}
.creation-rail .race-choice,.creation-rail .gender-choice,.creation-rail .class-choice{padding:1px 0;font-size:10px;gap:1px}.race-icon{width:37px;height:37px}.race-choices{gap:2px 16px;padding:2px 4px 6px}.gender-choices{margin:5px auto 6px}.gender-choices .gender-icon{width:30px;height:30px}.creation-section-title{font-size:15px;margin:5px 0 3px}.creation-rail .class-choices{gap:2px 10px;margin-bottom:5px}.creation-rail .class-choice-icon{width:31px;height:31px}.creation-utilities{margin:7px 0 0}.creation-rail #randomizeAppearance{margin-top:6px}
@media(min-height:1000px){.creation-rail{width:268px;padding:17px 20px}.creation-logo{width:193px;height:77px}.creation-game-title{font-size:17px}.race-icon{width:44px;height:44px}.creation-rail .race-choice,.creation-rail .class-choice{font-size:11px}.race-choices{gap:4px 19px}.creation-rail .class-choice-icon{width:36px;height:36px}.creation-rail .class-choices{gap:4px 13px}}
@media(max-height:790px) and (min-width:801px){.creation-logo{height:48px}.race-icon{width:29px;height:29px}.creation-rail .class-choice-icon{width:25px;height:25px}.creation-rail .race-choice,.creation-rail .class-choice{font-size:9px}.gender-choices .gender-icon{width:24px!important;height:24px!important}.creation-rail .class-choices{gap:0 7px}.creation-game-title{font-size:13px;margin-bottom:5px}.race-choices{gap:0 7px}.creation-section-title{font-size:13px}.creation-rail #randomizeAppearance{font-size:9px;min-height:23px}.creation-utilities button{font-size:10px;min-height:24px}}

/* Native creation controls use Classic's legal race/class palette and overlapping icon labels. */
@media(min-width:801px){
 .creation-rail{top:55px;bottom:65px;width:246px;padding:13px 16px;overflow:hidden}
 .creation-logo{width:208px;height:104px;margin:-4px auto 1px}
 .creation-game-title,.creation-section-title{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0}
 .faction-labels{font-size:14px;line-height:20px;margin:0 0 6px}
 .creation-rail .race-choice,.creation-rail .gender-choice,.creation-rail .class-choice{position:relative;display:flex;align-items:center;justify-content:center;min-height:0;padding:0!important;font-size:12px;line-height:1.15;gap:0}
 .creation-rail .race-choice>span:last-child,.creation-rail .gender-choice>span:last-child,.creation-rail .class-choice>span:last-child{position:absolute;left:0;right:0;bottom:1px;text-align:center;color:#ffdb34;font-size:12px;line-height:13px;text-shadow:1px 1px #000,-1px -1px #000,1px -1px #000,-1px 1px #000}
 .race-icon{width:46px;height:46px}.race-choices{gap:9px 25px;padding:2px 6px 6px}
 .gender-choices{width:120px;gap:8px;margin:7px auto 10px}.gender-choices .gender-icon{width:40px!important;height:40px!important}
 .creation-rail .class-choices{gap:9px 23px;padding:0 6px;margin:0 auto 12px}.creation-rail .class-choice-icon{width:46px;height:46px}
 .creation-rail #randomizeAppearance{margin-top:0;font-size:12px;line-height:16px;min-height:27px;padding:3px 5px}
 .creation-utilities{margin:7px 0 0;gap:7px}.creation-utilities button{font-size:12px;line-height:16px;min-height:29px;padding:4px 6px}
}
@media(min-width:801px) and (max-height:790px){
 .creation-rail{top:35px;bottom:65px;padding:11px 16px;width:232px}.creation-logo{width:184px;height:92px;margin:-4px auto 0}
 .race-icon,.creation-rail .class-choice-icon{width:42px;height:42px}.race-choices{gap:6px 22px;padding:2px 6px 5px}.creation-rail .class-choices{gap:6px 20px;margin-bottom:9px}
 .gender-choices{margin:5px auto 7px}.gender-choices .gender-icon{width:36px!important;height:36px!important}
 .creation-rail .race-choice>span:last-child,.creation-rail .gender-choice>span:last-child,.creation-rail .class-choice>span:last-child{font-size:11px;line-height:12px}
 .creation-rail #randomizeAppearance{font-size:11px;min-height:25px}.creation-utilities{margin-top:6px}.creation-utilities button{font-size:11px;min-height:27px;padding:3px 5px}
}
@media(min-width:801px) and (min-height:980px){
 .creation-rail{left:29px;top:60px;bottom:90px;width:280px;padding:17px 20px}.creation-logo{width:240px;height:120px}
 .faction-labels{font-size:17px;line-height:23px;margin-bottom:9px}.race-icon{width:57px;height:57px}.race-choices{gap:11px 29px;padding-bottom:9px}
 .creation-rail .class-choice-icon{width:54px;height:54px}.creation-rail .class-choices{gap:11px 26px;margin-bottom:16px}.gender-choices{width:144px;gap:10px;margin:10px auto 14px}.gender-choices .gender-icon{width:48px!important;height:48px!important}
 .creation-rail .race-choice>span:last-child,.creation-rail .gender-choice>span:last-child,.creation-rail .class-choice>span:last-child{font-size:14px;line-height:16px;bottom:2px}
 .creation-rail #randomizeAppearance{min-height:30px;font-size:13px}.creation-utilities{margin-top:9px}.creation-utilities button{min-height:32px;font-size:13px}
}

@media(min-width:801px){.creation-rail{overflow:visible}.creation-logo{margin:-34px auto 1px}.creation-rail .class-choices{row-gap:7px}}
@media(min-width:801px) and (max-height:790px){.creation-logo{margin:-30px auto 0}.creation-rail .class-choices{row-gap:6px}}
@media(min-width:801px) and (min-height:980px){.creation-logo{margin:-38px auto 0}.race-choices{row-gap:8px}.creation-rail .class-choices{row-gap:8px;margin-bottom:12px}}

.native-zone-frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
@media(min-width:801px){.creation-rail .class-choices{width:134px;column-gap:10px;padding-left:0;padding-right:0}}
@media(min-width:801px) and (max-height:790px){.creation-rail .class-choices{width:124px;column-gap:8px}}
@media(min-width:801px) and (min-height:980px){.creation-rail .class-choices{width:146px;column-gap:10px}}

@media(min-width:801px){.creation-logo{width:224px;height:112px}.race-icon{width:52px;height:52px}.creation-rail .class-choice-icon{width:50px;height:50px}.gender-choices .gender-icon{width:44px!important;height:44px!important}}
@media(min-width:801px) and (max-height:790px){.creation-logo{width:200px;height:100px}.race-icon{width:48px;height:48px}.creation-rail .class-choice-icon{width:46px;height:46px}.gender-choices .gender-icon{width:40px!important;height:40px!important}.creation-rail .race-choice>span:last-child,.creation-rail .gender-choice>span:last-child,.creation-rail .class-choice>span:last-child{font-size:12px;line-height:13px}}
@media(min-width:801px) and (min-height:980px){.creation-logo{width:256px;height:128px}.race-icon{width:63px;height:63px}.creation-rail .class-choice-icon{width:60px;height:60px}.gender-choices .gender-icon{width:52px!important;height:52px!important}}

/* Account login, roster, creator and adventure setup are separate Classic screens. */
body:not(.in-room) #loginScreen,body:not(.in-room) #rosterScreen,body:not(.in-room) #adventureSetup,body:not(.in-room) #creatorRail,body:not(.in-room) .creation-enter{display:none;pointer-events:auto}
body[data-screen=login]:not(.in-room) #loginScreen,body[data-screen=roster]:not(.in-room) #rosterScreen,body[data-screen=create]:not(.in-room) #creatorRail,body[data-screen=create]:not(.in-room) .creation-enter,body[data-screen=setup]:not(.in-room) #adventureSetup{display:block}

body[data-screen=create] .preview-mount,body[data-screen=roster] .preview-mount{bottom:0}
body[data-screen=login] .preview-mount{bottom:0}
body[data-screen=setup]:not(.in-room){overflow:auto}
body[data-screen=setup] #browserPanel{display:flow-root;padding:0}
.login-screen,.roster-screen{position:fixed;inset:0;pointer-events:none!important}
.login-screen>*,.roster-screen>*{pointer-events:auto}
.login-logo,.roster-logo{position:absolute;top:20px;left:22px;width:300px;height:150px;object-fit:contain;filter:drop-shadow(1px 4px 2px #000)}
.classic-login{position:absolute;left:50%;top:46%;transform:translate(-50%,-10%);width:245px;text-align:center}
.classic-login label{font:19px Friz,Georgia,serif;color:#ffdc5c;line-height:1.2;text-shadow:1px 1px #000,-1px -1px #000,2px 2px #000;margin-bottom:32px}
.classic-login input{height:37px;border:3px solid #8a8b89;border-top-color:#c3c3bd;border-bottom-color:#4c4e4e;outline:1px solid #1c1c1c;border-radius:4px;background:#282b2bdc;box-shadow:0 0 0 1px #cdcdcb,inset 2px 2px 5px #050505;color:#fff;font-size:17px;padding:3px 8px;margin-top:7px}
.classic-login #accountMode{height:29px;display:block;margin:0 0 14px;font-size:12px;text-align:center;background:#101010c9;border-color:#7f7f75}
.classic-login #accountSubmit{width:205px;min-height:39px;font:20px Friz,Georgia,serif;padding:6px 12px}
.classic-login .error{margin:14px -60px 0;font-size:12px}
/* New Account: the server's rules under each field, inside the label's own gap (no layout shift). */
.classic-login .field-hint{display:block;height:16px;margin:3px -40px -19px;font:12px/16px Friz,Georgia,serif;color:#e6d9b2;text-shadow:1px 1px #000,-1px -1px #000}
.classic-login .field-hint[hidden]{display:none}
.remember-account{position:absolute;left:30px;bottom:85px;display:flex;align-items:center;gap:8px;color:#f5d674;font-size:14px}.remember-account input{width:16px;height:16px;margin:0}
.login-fan-credit{position:absolute;left:50%;bottom:15px;transform:translateX(-50%);font-size:12px;color:#d6cba8;margin:0;text-shadow:1px 1px #000;white-space:nowrap}
.roster-panel{position:absolute;top:27px;bottom:145px;right:20px;width:330px;padding:22px 19px 16px;border:1px solid #615f57;background:#101215bd;display:flex;flex-direction:column;isolation:isolate}
.roster-panel h2{font:24px Friz,Georgia,serif;color:#c1c1b8;text-align:center;margin:0 0 3px}.roster-panel #accountName{text-align:center;font-size:12px;color:#a39979;margin:0 0 17px}
#rosterCharacters{flex:1;overflow:auto;scrollbar-width:thin;scrollbar-color:#897958 #13100c;min-height:80px}
.roster-character{display:block;width:100%;padding:8px 11px!important;min-height:62px;background:none!important;border:1px solid transparent!important;box-shadow:none!important;text-align:left;white-space:normal;margin-bottom:7px}
.roster-character strong{display:block;color:#ffe33e;font:19px Friz,Georgia,serif;line-height:1.2}.roster-character span,.roster-character small{display:block;font:13px Friz,Georgia,serif;color:#e1dfce;line-height:1.35}.roster-character small{color:#9a9688;font-size:12px}
.roster-character[aria-pressed=true]{background:linear-gradient(90deg,#b1902388,#91771a50)!important;border-color:#ffec75!important;box-shadow:inset 0 0 8px #fcdd5655!important}
.roster-management{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:15px}#newCharacter,#importLegacy,#archivedCharacters{grid-column:1/-1}#newCharacter{font-size:14px;min-height:33px}#importLegacy{font-size:11px}#archivedCharacters{display:grid;gap:5px;max-height:110px;overflow:auto}.roster-panel .error{margin:8px 0;padding:8px;font-size:11px}
.roster-enter{position:absolute;left:50%;bottom:66px;transform:translateX(-50%);text-align:center}.roster-enter h2{font:29px Friz,Georgia,serif;color:#ffe33e;margin:0 0 22px}.roster-enter button{min-width:235px;min-height:42px;font-size:20px}.roster-logout{position:absolute;right:25px;bottom:32px;min-width:135px}
#creatorBack{display:block;width:100%;margin-top:10px}.creation-enter #saveNewCharacter{width:100%;font-size:20px;min-height:42px}.creation-enter #creatorError{position:absolute;bottom:100%;width:100%;margin:0 0 7px;font-size:11px}
.adventure-setup{max-width:1490px;margin:60px auto 24px;padding:0 22px;pointer-events:auto}.adventure-setup h1{font:36px Morpheus,Friz,Georgia,serif;color:#ecd082;margin:0}
/* Native GlueButtons atlas is cropped once in creation.js, with its original red inset bevel. */
body button:not(.race-choice):not(.gender-choice):not(.class-choice):not(.roster-character):not(.talent-node):not(.action-slot):not(.close-button),body a.wow-button{background-image:var(--classic-button);background-size:100% 100%;background-repeat:no-repeat;background-color:transparent;border:0;border-radius:0;box-shadow:none;color:#ffd341;text-shadow:1px 1px #000}
body button:hover:enabled:not(.race-choice):not(.gender-choice):not(.class-choice):not(.roster-character):not(.talent-node):not(.action-slot):not(.close-button){filter:brightness(1.2);box-shadow:none}
.realm-browser-dialog.native-frame{width:760px;border:1px solid #858277;border-radius:0;background:#151515f2;box-shadow:0 0 0 3px #090909;padding:8px}.realm-browser-dialog .window-title{font:18px Friz,Georgia,serif;min-height:28px;background:#202019;padding:4px 12px;border:0}.realm-browser-dialog .realm-tabs{padding:7px 9px}.realm-browser-dialog .realm-list{margin:0 8px;max-height:42vh;border-color:#6d6958;background:#090909}.realm-browser-dialog th,.realm-browser-dialog td{font-size:12px;padding:7px 9px}.realm-browser-dialog th{background:#302f25}.realm-browser-dialog .realm-name{color:#ecd13c}.realm-browser-dialog .window-footer{padding:8px;min-height:40px;background:#1c1b17}.realm-browser-dialog .realm-caption{font-size:10px;margin:9px}.realm-browser-dialog .invite-entry{margin:12px 9px;gap:8px;grid-template-columns:1fr auto}.realm-browser-dialog .invite-entry label{grid-column:1/-1}
body.playing .realm-window{left:15px;right:auto}body.playing .active-buffs{right:18px;left:auto}.objective-panel{position:fixed;right:18px;top:230px;width:265px;padding:12px 14px;background:#141008df;border:1px solid #786748;z-index:4}.objective-panel h3{font-size:19px;margin:0 0 8px}.objective-row{margin-bottom:12px;font-size:11px;line-height:1.4}.objective-row strong{display:block;color:#efd074;font-size:13px}.objective-row small{display:block;color:#ad9f80}.objective-row progress{width:100%;height:8px}.shared-loot-panel{position:fixed;left:20px;bottom:160px;width:340px;background:#151007ef;border:1px solid #9b8855;z-index:8;padding:15px;font-size:12px}.loot-actions{display:flex;gap:8px;margin-top:10px}.loot-actions button{min-width:80px;padding:5px 10px}.loot-votes{font-size:10px;color:#b4a680;line-height:1.5;margin-top:10px}
.quality-2{--item-color:#1eff00}.quality-3{--item-color:#0070dd}.quality-4{--item-color:#a335ee}.quality-5{--item-color:#ff8000}.reward-choices button[class*=quality-]{border:1px solid var(--item-color)!important;background:linear-gradient(#211c13,#0f0b07)!important}.reward-choices button[class*=quality-] strong{color:var(--item-color)}.reward-quality{display:block;color:var(--item-color);font-size:10px;margin-bottom:5px}.reward-build-slot[class*=quality-]{border-color:var(--item-color)}
@media(max-height:790px){.classic-login{top:40%}.classic-login label{font-size:17px;margin-bottom:22px}.login-logo,.roster-logo{width:240px;height:120px}.roster-panel{bottom:120px;top:46px}.roster-enter{bottom:62px}.roster-enter h2{font-size:24px;margin-bottom:13px}.adventure-setup{margin-top:52px}.adventure-setup h1{font-size:29px}}
@media(max-width:1100px){.adventure-setup{padding:0 16px}.roster-panel{width:285px}.login-logo,.roster-logo{width:240px;height:120px}}
@media(max-width:800px){body:not(.in-room) #browserPanel{display:block;padding:0}.login-screen,.roster-screen{position:relative;min-height:100vh}.classic-login{top:260px;transform:translateX(-50%)}.login-logo{width:230px;height:115px}.remember-account{bottom:55px}.roster-panel{position:relative;top:145px;right:auto;width:calc(100% - 30px);margin:0 15px;min-height:400px;bottom:auto}.roster-enter{position:relative;left:auto;bottom:auto;transform:none;margin:175px auto 40px}.roster-logout{bottom:10px}.adventure-setup h1{font-size:26px}.creation-rail{margin:65px auto 0}.shared-loot-panel{width:290px;bottom:140px;left:10px}.objective-panel{right:10px;top:245px;width:220px}}

.shared-loot-panel{z-index:30}.class-spellbook summary{cursor:pointer}
.adventure-setup{margin-bottom:0}
.class-spells .rare-spell summary{color:var(--item-color)}.class-spells .rare-spell summary small{display:block;color:var(--item-color);font-size:10px}
@media(min-width:801px){body[data-screen=setup]:not(.in-room){overflow:hidden}}

body.playing .active-buffs{left:310px;right:auto}

.reward-build-footer{flex-wrap:wrap}.reward-build:empty{display:none}

/* The real preview scene must be ready before the login screen is revealed. */
body[data-screen=login]:not(.in-room):not([data-preview-state=ready]) #loginScreen{visibility:hidden}
body[data-screen=login]:not(.in-room):not([data-preview-state=ready]) .preview-mount{visibility:hidden}

body[data-screen=login]:not(.in-room):not([data-preview-state=ready]) .preview-status{top:50%;width:min(430px,calc(100vw - 40px));max-width:none;transform:translate(-50%,-50%)}
.combat-table-scroll{overflow-x:auto}#combatLogDialog{width:min(960px,95vw)}#combatStats details{text-align:left}#resultPlayers{width:min(900px,95vw);text-align:left}#resultPlayers li{border-top:1px solid #574829;padding:8px}#resultPlayers p{margin:2px 0}#resultPlayers table{width:100%;font-size:12px}#resultPlayers th,#resultPlayers td{padding:4px 8px;text-align:right}#resultPlayers th:first-child,#resultPlayers td:first-child{text-align:left}#resultPlayers details{margin-top:6px}#result:after{content:'DPS: damage / advanced server run time; includes idle/downed time, excludes solo reward pauses.';font-size:11px;color:#b8a783;max-width:700px;margin-top:12px}
body.native-hud.playing:not(.run-finished) .realm-window{background:none;border:0;box-shadow:none;pointer-events:none}body.native-hud.playing:not(.run-finished) .realm-window>.window-title,body.native-hud.playing .party-layout,body.native-hud.playing .room-actions,body.native-hud.playing #survivalBar,body.native-hud.playing #defenseFrame,body.native-hud.playing #focusStatus,body.native-hud.playing #bossFrame{display:none!important}body.native-hud.playing .realm-window .error{pointer-events:auto}
#codexDialog{width:min(1000px,95vw)}.codex-search{display:grid;grid-template-columns:2fr 1fr;gap:16px}#codexEntries{max-height:55vh;overflow:auto}#codexEntries details{border-bottom:1px solid #675333;padding:10px}#codexEntries summary{cursor:pointer;color:#e8ce91}#codexEntries p{white-space:pre-line;line-height:1.5}#codexEntries .codex-icon{width:40px;height:40px;float:left;margin:8px 12px 8px 0}#codexEntries details:after{content:'';display:block;clear:both}

.run-item-build{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:#b9d296}.run-item-build span{padding:4px 6px;border:1px solid #665943}
#feedbackDialog{width:min(580px,94vw)}#feedbackDialog label{display:block;margin:12px 0}#feedbackMessage{display:block;width:100%;min-height:130px;resize:vertical;background:#0d0b07;color:#f1e5c8;border:1px solid #78633d;padding:12px;font:inherit;line-height:1.5}#feedbackStatus{min-height:1.5em;color:#f4d77e}.result-actions{flex-wrap:wrap;justify-content:center}

/* Native icon frames carry their own hover and selected artwork. */
body button.race-choice,body button.gender-choice,body button.class-choice,body button.race-choice:hover:enabled,body button.gender-choice:hover:enabled,body button.class-choice:hover:enabled,body button.race-choice:active,body button.gender-choice:active,body button.class-choice:active{background:none;box-shadow:none}
/* Leave the minimap's native gold/cache summary readable as objectives appear. */
/* The compiled native quest tracker and nearby interaction prompt own this surface. */
body.native-hud .objective-panel{display:none!important}

/* Keep the native edge atlas fixed while the setup card's contents scroll. */

/* Glue button art includes transparent vertical insets: center both lines in its red face. */

.starter-loot-notice{position:fixed;z-index:25;left:50%;bottom:190px;transform:translateX(-50%);max-width:min(620px,90vw);padding:12px 18px;border:1px solid #aa873a;background:#171207ed;box-shadow:0 4px 18px #0009;color:#f1d67a;text-align:center;font:15px Friz,Georgia,serif;pointer-events:none}
.starter-loot-item{color:var(--item-color,#f1d67a);white-space:nowrap}.starter-loot-item img{width:22px;height:22px;margin-right:6px;vertical-align:-6px;border:1px solid var(--item-color,#aa873a)}body.native-hud.playing .starter-loot-notice{bottom:calc(var(--native-hud-bottom,135px) + 60px)}

#runItemBuild img{width:22px;height:22px;object-fit:contain;margin-left:6px;vertical-align:middle}

.active-buffs .absorb-buff{height:auto;min-width:154px;padding:8px 11px;border:1px solid #a38a53;border-radius:4px;background:linear-gradient(#202c3aee,#0e1622ee);box-shadow:inset 0 0 0 1px #070b12,0 2px 7px #0008;color:#e4d3a1;font-size:13px;line-height:1.35}.active-buffs .absorb-buff small{margin-top:2px;color:#bdd8e9;font-size:10px;text-align:left}body.native-hud.playing .active-buffs{left:auto;right:190px;top:18px}@media(max-width:1000px){body.native-hud.playing .active-buffs{top:128px}}
.run-bar .mute-toggle{min-height:22px;padding:0 7px;font-size:13px;line-height:1}.run-bar .mute-toggle[aria-pressed=true]{color:#b9ae94;filter:grayscale(.6)}
.run-bar #runDifficulty{color:#f1d27e;white-space:nowrap}
.run-bar .volume-slider{width:84px;height:14px;margin:0;padding:0;border:0;background:none;box-shadow:none;accent-color:#d8b65a;cursor:pointer}
.damage-meter{position:fixed;right:12px;bottom:110px;z-index:4;width:320px;background:linear-gradient(#1d150cee,#0d0905ee);border:1px solid #9c8860;outline:1px solid #171006;box-shadow:0 3px 13px #0008;font-size:15px;user-select:none}
.damage-meter header{display:flex;align-items:center;gap:5px;padding:4px 5px;border-bottom:1px solid #4d3f28;background:linear-gradient(#3a2814,#1c130a)}
.damage-meter header button{min-height:27px;padding:0 9px;font-size:15px;border-radius:2px}.damage-meter .meter-mode{flex:1;justify-content:flex-start}.damage-meter .meter-collapse{padding:0 6px}
.damage-meter.collapsed .meter-rows{display:none}
.meter-rows{list-style:none;margin:0;padding:4px}.meter-rows li{position:relative;height:26px;margin:3px 0;cursor:pointer;background:#0006;overflow:hidden}
.meter-rows li i{position:absolute;inset:0 auto 0 0;background:var(--class-color);opacity:.55}
.meter-rows li span{position:relative;display:flex;justify-content:space-between;gap:8px;padding:0 7px;line-height:26px;color:#fff;text-shadow:1px 1px 1px #000}.meter-rows li b{font-weight:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meter-rows li small{color:#f1e2b8;white-space:nowrap}
.meter-rows li.me b{color:#ffe49c}.meter-rows .meter-empty{cursor:default;color:var(--muted);text-align:center;line-height:26px}
@media(max-width:900px){body.reward-open .damage-meter{display:none}}
body.native-bags-open .damage-meter{display:none}
/* Menu tooltips in the in-game GameTooltip style: UI-Tooltip-Background under the TIP_FILL tint,
   the grey UI-Tooltip-Border, a white name (quality colour for items and rewards), grey rank and detail. */
.spell-tip{position:fixed;z-index:60;max-width:300px;padding:10px;background:linear-gradient(#171730f2,#171730f2),url('/ui-assets/panel') repeat;border:1px solid #9c9cb0;box-shadow:inset 0 0 0 1px #2b2b3c,0 2px 8px #000c;border-radius:0;pointer-events:none;font:12px/1.35 Friz,Georgia,serif;color:#fff;text-align:left;text-shadow:1px 1px 0 #000}
.spell-tip .tip-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.spell-tip strong{display:block;color:#fff;font-weight:normal;font-size:14px;line-height:1.3}.spell-tip[class*=quality-] strong{color:var(--item-color)}
.spell-tip .tip-right{flex:none;color:#808080;font-size:12px}.spell-tip small{display:block;color:#808080;font-size:12px;margin:1px 0 0}.spell-tip .tip-body{display:block;margin-top:3px;color:#fff;white-space:pre-line}.spell-tip .tip-stat{display:block;margin-top:4px;color:#1eff00}
/* Item tooltips: the classic layout, one tight line each. Item Level yellow, slot left and type right in white,
   base stats white, Equip lines green, set bonuses green when active and grey when not, rank and salvage small. */
.spell-tip-item{min-width:190px;line-height:1.25}.spell-tip-item .tip-line{display:block;margin:0}
.spell-tip-item .tip-ilvl,.spell-tip-item .tip-set-name{color:#ffd100}.spell-tip-item .tip-source{color:#9d9d9d}.spell-tip-item .tip-slotrow{display:flex;justify-content:space-between;gap:16px;color:#fff}
.spell-tip-item .tip-item-stat{color:#fff}.spell-tip-item .tip-equip{color:#1eff00}.spell-tip-item .tip-set-name{margin-top:6px}
.spell-tip-item .tip-set-bonus.active{color:#1eff00}.spell-tip-item .tip-set-bonus.inactive{color:#808080}
.item-tip-inline{margin:6px 0;min-width:0;text-align:left;font:12px/1.25 Friz,Georgia,serif;text-shadow:1px 1px 0 #000}
.spell-tip-item .tip-rank{margin-top:6px;color:#808080;font-size:11px}.spell-tip-item .tip-salvage{color:#fff}
/* Page objective panel (fallback when the native tracker is unavailable). */
@media(min-width:801px){.objective-panel{width:300px}}.objective-row strong{font-size:15px}.objective-row small{font-size:11px;letter-spacing:.04em}
.objective-row .objective-instruction{display:block;margin:3px 0 4px;color:#fff;font-weight:normal;font-size:13px;line-height:1.35}
.objective-row{border-left:3px solid #c9a24a;padding-left:8px}.objective-row.status-available{border-left-color:#8a7a4f}
.objective-row.status-success{border-left-color:#4fd14f}.objective-row.status-success strong{color:#6ee66e}
.objective-row.status-failed{border-left-color:#e2473c}.objective-row.status-failed strong{color:#ff6a5c}
/* Reward panel: compact so it covers less of the screen, raised above the measured native
   action bar, and cut open (clip-path) just where a native tooltip (inside the game frame) would be under it. */
@media(min-width:801px){
  .reward-panel{padding:10px 14px 9px}.reward-heading{margin-bottom:8px}.reward-heading h2{font-size:21px}
  .reward-choices button{padding:9px 12px 10px}.reward-choices .reward-icon{width:52px;height:52px;margin:0 0 6px}
  .reward-choices .reward-kind{margin-bottom:4px}.reward-choices strong{font-size:18px;margin-bottom:3px}
  .reward-rank{margin-bottom:4px}.reward-comparison{margin-top:6px;padding-top:5px}
  .reward-build-footer{margin-top:7px}.reward-build-slot{width:30px;height:30px}
}
body.native-hud.playing .reward-panel{bottom:calc(var(--native-hud-bottom,135px) + 14px);max-height:calc(100vh - var(--native-hud-bottom,135px) - 40px);overflow:auto}
/* Run results (web/run-results.js): one framed component, victory gold and defeat crimson.
   Rewards first (large icons, count-up), then equipment cards, then a compact stats strip. */
#result.victory{--tone:#ffd76a;--tone-deep:#b8862b;--tone-glow:#b0802a50}
#result.defeat{--tone:#ff7a5c;--tone-deep:#8f1d12;--tone-glow:#a0201450}
body.playing #result.result{overflow:auto;justify-content:safe center;padding:24px 16px}
#result .result-frame{position:relative;width:min(980px,100%);margin:auto;padding:20px 34px 22px;display:flex;flex-direction:column;align-items:center;border:1px solid #8b6c33;border-top-color:#d0aa5c;border-bottom-color:#4f3a19;border-radius:6px;background:radial-gradient(ellipse at 50% 0%,var(--tone-glow,#a87a2440),transparent 60%),linear-gradient(#1a130bf4,#0a0704f8);box-shadow:0 0 0 1px #0b0805,0 0 0 4px #24190c,0 0 0 5px #6f5429,0 18px 60px #000c,inset 0 0 40px #000a;animation:result-rise .45s ease-out}
#result .result-frame:before,#result .result-frame:after{content:'';position:absolute;top:10px;width:18px;height:18px;border:2px solid var(--tone-deep,#b8862b);transform:rotate(45deg);background:#120c06;box-shadow:0 0 8px var(--tone-glow,#0000)}
#result .result-frame:before{left:10px}#result .result-frame:after{right:10px}
#result .results-logo{width:170px;height:72px;margin:0 0 4px}
.result-banner{width:100%;text-align:center;margin:0 0 12px}
.result-kicker{display:inline-block;padding:3px 26px;font:12px Friz,Georgia,serif;letter-spacing:.34em;text-transform:uppercase;color:var(--tone,#ffd76a);border-top:1px solid var(--tone-deep,#b8862b);border-bottom:1px solid var(--tone-deep,#b8862b);background:linear-gradient(90deg,transparent,var(--tone-glow,#0000),transparent)}
body.playing #result .result-banner h2{margin:6px 0 2px;font:58px/1.08 Morpheus,Friz,Georgia,serif;color:var(--tone,#e9d49a);background:linear-gradient(#fff7d6,var(--tone,#e9d49a) 48%,var(--tone-deep,#b8862b));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none;filter:drop-shadow(0 2px 0 #000) drop-shadow(0 0 16px var(--tone-glow,#0000))}
#result.defeat .result-banner h2{background-image:linear-gradient(#ffe0d6,var(--tone) 48%,var(--tone-deep))}
#result #resultSummary{margin:0;font-size:14px;color:#c4b28a;letter-spacing:.04em}
#result .run-rewards{width:100%;margin:2px 0 14px;padding:12px 18px 16px;border:1px solid #5e4826;border-radius:4px;background:linear-gradient(#0e0a06d0,#1b130ad0);box-shadow:inset 0 0 18px #000b}
.result-rewards-heading{display:flex;align-items:center;gap:14px;margin:0 0 12px;font:21px Morpheus,Friz,Georgia,serif;font-weight:normal;color:#f3d37c}
.result-rewards-heading:before,.result-rewards-heading:after{content:'';flex:1;height:1px;background:linear-gradient(90deg,transparent,#8d6c33,transparent)}
#result .result-currencies{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin:0;padding:0;list-style:none}
.result-currency{display:grid;grid-template-columns:auto auto;align-items:center;column-gap:11px;text-align:left;animation:result-pop .5s ease-out backwards}
.result-currency:nth-child(2){animation-delay:.12s}.result-currency:nth-child(3){animation-delay:.24s}.result-currency:nth-child(4){animation-delay:.36s}.result-currency:nth-child(5){animation-delay:.48s}
.result-currency-icon{grid-row:1/3;width:58px;height:58px;border:2px solid #d2a64a;border-radius:7px;background:#000;box-shadow:0 0 0 1px #000,0 0 16px #e8b44a55}
.result-amount{font:36px/1 Friz,Georgia,serif;color:#fff2bd;text-shadow:0 2px 0 #000,0 0 12px #ffcc5566;font-variant-numeric:tabular-nums}
.result-currency-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#bda97d}
.result-currency.run .result-currency-icon{width:42px;height:42px;border-color:#7e6638;box-shadow:0 0 0 1px #000}
.result-currency.run .result-amount{font-size:25px;color:#e8d7a4;text-shadow:0 2px 0 #000}
.result-currency.empty{opacity:.5;filter:grayscale(.7)}
#result .result-note{margin:12px 0 0;text-align:center;font-size:13px;color:#d8c595}
#result .result-note.none{color:#ff9f80;font-size:14px}#result .result-note.pending{color:#bba77c;font-style:italic}#result .result-note.guest{color:#c9b98e}
#result .result-missing{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:8px 0 0;padding:0;list-style:none}
.result-missing li{display:flex;align-items:baseline;gap:8px;padding:5px 12px;border:1px solid #7a2b1f;border-radius:3px;background:#2a0c08b8;font-size:12px}
.result-gate{color:#f0b9a5}.result-have{color:#ff7b62;font-size:15px}.result-need{color:#cdb68a}
.result-subheading{margin:14px 0 8px;text-align:center;font:11px Friz,Georgia,serif;letter-spacing:.2em;text-transform:uppercase;color:#bba77c}
#result .result-items{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:0;padding:0;list-style:none}
.result-item{--item-color:#1eff00;display:flex;align-items:center;gap:10px;min-width:230px;max-width:320px;padding:7px 12px 7px 7px;border:1px solid var(--item-color);border-radius:4px;text-align:left;background:linear-gradient(90deg,color-mix(in srgb,var(--item-color) 20%,#0c0905),#0c0905 72%);box-shadow:0 0 14px color-mix(in srgb,var(--item-color) 38%,transparent),inset 0 0 10px #000;animation:result-pop .5s ease-out .5s backwards}
.result-item.quality-0{--item-color:#9d9d9d}.result-item.quality-1{--item-color:#ffffff}.result-item.quality-2{--item-color:#1eff00}.result-item.quality-3{--item-color:#0070dd}.result-item.quality-4{--item-color:#a335ee}.result-item.quality-5{--item-color:#ff8000}
.result-item-icon{position:relative;flex:none;width:46px;height:46px;border:1px solid var(--item-color);background:#000}
.result-item-icon img{display:block;width:100%;height:100%}
.result-item-rank{position:absolute;right:2px;bottom:0;font-size:11px;color:#fff;text-shadow:1px 1px #000}
.result-item-text{display:flex;flex-direction:column;min-width:0}
.result-item-text strong{font-size:15px;font-weight:normal;color:var(--item-color)}
.result-item-tag{font-size:11px;color:#d7c79f}
.result-item-detail{font-size:10px;color:#a99a76;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#result .result-items.temporary .result-item{min-width:180px;padding:4px 10px 4px 4px;opacity:.85;box-shadow:inset 0 0 10px #000}
.result-items.temporary .result-item-icon{width:32px;height:32px}.result-items.temporary .result-item-text strong{font-size:13px}
#result .result-loot-note{margin:10px 0 0;text-align:center;color:#c4b28a}
#result .result-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:0;margin:0 0 12px;border:1px solid #4d3b1e;border-radius:3px;background:#0b0805b8}
#result .result-stats>div{min-width:0;padding:6px 18px;border-left:1px solid #3d2f18}
#result .result-stats>div:first-child{border-left:0}
#result .result-stats dt{font-size:10px;letter-spacing:.08em;text-transform:uppercase}
#result .result-stats dd{margin:2px 0 0;font-size:20px}
#result #resultPlayers{margin:0 0 6px}
#result .result-actions{margin-top:10px}
@keyframes result-rise{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
@keyframes result-pop{from{opacity:0;transform:scale(.6)}70%{transform:scale(1.06)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){#result .result-frame,.result-currency,.result-item{animation:none}}
@media(max-height:820px){#result .results-logo{display:none}body.playing #result .result-banner h2{font-size:46px}#result .result-frame{padding:14px 26px 16px}#result .run-rewards{padding:10px 14px 12px;margin-bottom:10px}.result-currency-icon{width:48px;height:48px}.result-amount{font-size:30px}.result-item-icon{width:38px;height:38px}body.playing #result button{min-height:34px;padding:6px 16px}}
@media(min-width:1900px) and (min-height:1100px){#result .result-frame{width:min(1240px,100%);padding:30px 50px 30px}#result .results-logo{width:230px;height:100px}body.playing #result .result-banner h2{font-size:78px}.result-kicker{font-size:15px}#result #resultSummary{font-size:17px}.result-rewards-heading{font-size:27px}.result-currency-icon{width:76px;height:76px}.result-amount{font-size:48px}.result-currency-label{font-size:13px}.result-currency.run .result-currency-icon{width:54px;height:54px}.result-currency.run .result-amount{font-size:32px}.result-item{min-width:280px;max-width:380px}.result-item-icon{width:58px;height:58px}.result-item-text strong{font-size:18px}.result-item-tag{font-size:13px}#result .result-note{font-size:16px}#result .result-stats dd{font-size:26px}#result .result-stats dt{font-size:12px}#result .result-stats>div{padding:9px 26px}}
@media(max-width:700px){#result .result-frame{padding:14px 12px}body.playing #result .result-banner h2{font-size:38px}.result-item{min-width:0;width:100%}#result .result-stats>div{padding:5px 10px}}
/* Replacement chooser (spells and character upgrades), read like a WoW item list: the incoming
   reward as a card, a gold "replaces one of" divider, then one parchment row per current slot
   (icon with its hotkey badge, quality-coloured name and grey rank, the full description, and a
   quiet "-Rank N" chip). Hover/focus marks the outgoing row red and the incoming card green.
   Every rule is scoped to #replaceSpellDialog so the global red button styles never reach it. */
#replaceSpellDialog{width:min(600px,calc(100vw - 32px))}
.display-options{margin-top:18px;padding-top:4px;border-top:1px solid #6e4e2855}.display-options h3{margin:12px 0 0;font-size:14px;color:#d2b86d;font-weight:normal}.display-options .muted{margin:6px 0 0}.display-options .url-param{display:block;margin-top:3px;font:10px/1.4 monospace;color:#a18d69}.display-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 0;font-size:12px;color:#e5cb84}.advanced-options{margin-top:14px;font-size:12px}.advanced-options summary{cursor:pointer;color:#b8a783}.advanced-options dl{margin:6px 0 0;font-size:11px;line-height:1.45}.advanced-options dt{color:#d2bb80;margin-top:6px}.advanced-options dd{margin:1px 0 0 12px;color:#a99a76}.advanced-options code{font:10px monospace;overflow-wrap:anywhere}
#replaceSpellDialog .dialog-body{padding:12px 16px 10px;max-height:calc(100vh - 170px);overflow:auto}
#replaceSpellDialog .replace-intro{margin:0 0 10px;color:#d8cba4;font-size:13px;line-height:1.35}
#replaceSpellDialog .replace-incoming{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--item-color,#826d4a);background:linear-gradient(#1f1910,#0d0a06);box-shadow:inset 0 0 0 1px #000,0 0 0 1px #0008;transition:box-shadow .12s,border-color .12s}
#replaceSpellDialog .replace-incoming .replace-icon{flex:none;width:56px;height:56px;border:2px solid var(--item-color,#826d4a);border-radius:3px;box-shadow:0 0 0 1px #000;object-fit:cover;background:#000}
#replaceSpellDialog .replace-text{display:flex;flex-direction:column;min-width:0;flex:1;text-align:left}
#replaceSpellDialog #replacementName{display:block;margin:0;color:var(--item-color,#ffd100);font:18px/1.2 Friz,Georgia,serif;font-weight:normal}
#replaceSpellDialog .replace-rank{display:flex;align-items:center;gap:7px;margin-top:3px;color:#808080;font-size:12px}
#replaceSpellDialog .replace-new{padding:1px 6px;border:1px solid #1eff0055;border-radius:8px;background:#0a1606;color:#1eff00;font-size:10px;letter-spacing:.06em;line-height:1.3}
#replaceSpellDialog .replace-effect{margin-top:4px;color:#fff;font-size:12px;line-height:1.4}
#replaceSpellDialog .replace-arrow{display:flex;align-items:center;gap:10px;margin:10px 0 8px;color:#a99671;font-size:11px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
#replaceSpellDialog .replace-arrow:before,#replaceSpellDialog .replace-arrow:after{content:'';flex:1;height:1px;background:#8a6a2b}
#replaceSpellDialog .replace-arrow>span{color:#d8b65a;margin-right:2px}
#replaceSpellDialog .replace-spell-slots{display:flex;flex-direction:column;gap:8px}
#replaceSpellDialog .replace-slot{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;width:100%;min-height:58px;margin:0;padding:7px 10px 7px 12px;border:1px solid #4d3b23;border-radius:2px;background:linear-gradient(#1a140c,#0e0b07);box-shadow:inset 0 0 0 1px #000;filter:none;color:#fff;text-shadow:1px 1px 0 #000;white-space:normal;text-align:left;cursor:pointer;transition:border-color .1s,background .1s}
#replaceSpellDialog .replace-icon-seat{position:relative;flex:none;width:44px;height:44px}
#replaceSpellDialog .replace-slot .replace-icon{display:block;width:44px;height:44px;border:2px solid var(--item-color,#826d4a);border-radius:3px;box-shadow:0 0 0 1px #000;object-fit:cover;background:#000}
#replaceSpellDialog .replace-icon-seat kbd{position:absolute;top:-5px;left:-5px;min-width:16px;height:16px;padding:0 3px;border:1px solid #6b5530;border-radius:2px;background:#0b0905;box-shadow:0 0 0 1px #000;color:#ffd100;font:10px/14px Friz,Georgia,serif;text-align:center}
#replaceSpellDialog .replace-line{display:flex;align-items:baseline;gap:8px;min-width:0}
#replaceSpellDialog .replace-slot strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--item-color,#ffd100);font:14px/1.3 Friz,Georgia,serif;font-weight:normal}
#replaceSpellDialog .replace-slot-rank{flex:none;color:#808080;font-size:12px}
#replaceSpellDialog .replace-desc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;margin-top:2px;color:#fff;font-size:12px;line-height:1.35}
#replaceSpellDialog .replace-stat{display:block;margin-top:2px;color:#1eff00;font-size:11px}
#replaceSpellDialog .replace-loss{flex:none;align-self:center;padding:2px 7px;border:1px solid #4d3b23;border-radius:2px;color:#7d6f55;font-size:11px;font-style:normal;white-space:nowrap}
#replaceSpellDialog .replace-slot:hover,#replaceSpellDialog .replace-slot:focus{outline:none;border-color:#c0392b;background:linear-gradient(#3a120d33,#3a120d33),linear-gradient(#1a140c,#0e0b07);box-shadow:inset 0 0 0 1px #000;filter:none}
#replaceSpellDialog .replace-slot:hover strong,#replaceSpellDialog .replace-slot:focus strong{text-decoration:line-through;text-decoration-color:#ff5a4acc}
#replaceSpellDialog .replace-slot:hover .replace-loss,#replaceSpellDialog .replace-slot:focus .replace-loss{border-color:#c0392b;color:#ff6a5a}
#replaceSpellDialog:has(.replace-slot:hover,.replace-slot:focus) .replace-incoming{border-color:#4fd14f;box-shadow:inset 0 0 0 1px #000,0 0 10px #3fd13f66}
#replaceSpellDialog .window-footer{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:12px;min-height:0;padding:8px 16px}
#replaceSpellDialog .replace-keys{min-width:0;color:#8f805f;font-size:11px;white-space:nowrap}#replaceSpellDialog .replace-keys kbd{color:#cdbb8c}
#replaceSpellDialog .window-footer button{flex:none;width:auto;margin:0;white-space:nowrap}
@media(max-width:520px){#replaceSpellDialog .replace-keys{display:none}#replaceSpellDialog .window-footer{justify-content:flex-end}#replaceSpellDialog .replace-slot{gap:9px}#replaceSpellDialog .replace-loss{padding:1px 5px;font-size:10px}}
/* What a reward or ability IS: a solid pill whose colours are deliberately not the rarity
   colours (green/blue/purple/orange item borders), so type and rarity never read alike. */
.category-badge{display:inline-block;flex:none;padding:1px 7px;border:1px solid #0009;border-radius:9px;font:11px/1.4 Friz,Georgia,serif;letter-spacing:.02em;text-transform:none;white-space:nowrap;text-shadow:none;box-shadow:inset 0 1px 0 #ffffff22}
.category-badge.cat-active_spell{background:#7a2a1a;color:#ffd9c2}
.category-badge.cat-passive_spell{background:#1f5c58;color:#c3f5ee}
.category-badge.cat-discovery{background:#7a1f5c;color:#ffd0ef}
.category-badge.cat-upgrade{background:#6b5418;color:#ffeab0}
.category-badge.cat-run_bonus{background:#3c4552;color:#e2e8f2}
.category-badge.cat-run_item{background:#5a3a1e;color:#f3d6ab}
.category-badge.cat-instant{background:#3a3a3a;color:#dddddd}
.reward-choices .reward-kind.category-badge{display:inline-block;align-self:center;margin:0 0 3px;min-height:0;font-size:11px;letter-spacing:.02em;text-transform:none}
.reward-choices .reward-kind-hint{display:block;margin:0 0 6px;color:#a99d80;font-size:10px;line-height:1.3}
.replace-dialog .category-badge{font-size:10px}
.codex-category-hint{margin:4px 0 0;color:#a99d80;font-size:11px}
#result td .category-badge{margin-left:6px;font-size:10px;vertical-align:1px}
@media(max-width:520px){.reward-choices .reward-kind-hint{display:none}}

/* Main-menu Gear panel (A1, lobby.js renderMenuGearPanel). The card is see-through only in the
   doll's gap, where the backdrop hero stands: the middle setup column sits over the viewport
   centre. The gap's spread shadow paints the card colour everywhere else in the card (header,
   doll, totals, actions, account rows), clipped by the card's scrolling content box. */

@media(min-width:801px){

 /* Summary first, so the gap sits mid-card: score, totals and status above, buttons and account below. */

}
/* Narrow screens scroll the menu over the iframe, so the gap collapses into a plain icon grid. */

/* Run results drop card (run-results.js card): item level and stars, effect, set, worn comparison, choice. */
.result-item.gear-drop{max-width:360px;align-items:flex-start}
.result-item-meta{font-size:11px;color:#f0d275;letter-spacing:.5px}
.result-item-effect{font-size:11px;color:#c9b88f}
.result-item-set{font-size:11px;color:#e0bc62}
.result-item .delta{font-size:11px;line-height:1.35}
.result-item .delta.better{color:#1eff00}.result-item .delta.worse{color:#ff2020}
.result-item-worn{margin-top:3px;padding-top:3px;border-top:1px solid #60502b55;font-size:10px;color:#a99a76}
.result-item-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.result-item-actions button{min-height:26px;padding:3px 12px;font:12px Friz,Georgia,serif}
.result-item.gear-drop .result-item-detail{white-space:normal}
.result-item.gear-drop.auto .result-item-detail,.result-item.gear-drop.equipped .result-item-detail{color:#1eff00}
/* The end-of-run party roll as the stock 1.12 GroupLootFrame (run-results.js rollFrame): layout only. Every texture is
   the original art from the host's /ui-assets allowlist (run-results.js GROUP_LOOT_ART), set inline by rollFrame.
   Sizes and offsets are LootFrame.xml's GroupLootFrameTemplate in its own 243 x 84 units, drawn at UI scale by zoom. */
.group-loot-list{display:flex;flex-direction:column;align-items:center;gap:6px;margin:0;padding:0;list-style:none}
.group-loot{--item-color:#1eff00;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:left}
.group-loot.quality-0{--item-color:#9d9d9d}.group-loot.quality-1{--item-color:#ffffff}.group-loot.quality-2{--item-color:#1eff00}
.group-loot.quality-3{--item-color:#0070dd}.group-loot.quality-4{--item-color:#a335ee}.group-loot.quality-5{--item-color:#ff8000}
.group-loot-frame{position:relative;flex:none;width:243px;height:84px;zoom:1.4}
.group-loot-frame img{position:absolute;display:block;pointer-events:none}
.group-loot-backdrop{position:absolute;left:11px;right:12px;top:12px;bottom:11px;background-size:32px 32px;background-repeat:repeat}
.group-loot-edge{position:absolute;inset:0;border:32px solid transparent;border-image-slice:32;border-image-width:32px;border-image-repeat:repeat}
.group-loot-slot{left:3px;top:3px;width:64px;height:64px}
.group-loot-name-frame{left:58px;top:13px;width:128px;height:64px}
.group-loot-name{position:absolute;left:62px;top:15px;width:90px;height:30px;display:flex;align-items:center;overflow:hidden;font:10px/1.15 Friz,Georgia,serif;color:var(--item-color);text-shadow:1px 1px #000}
.group-loot-corner{left:205px;top:7px;width:32px;height:32px}
.group-loot-icon{position:absolute;left:18px;top:18px;width:34px;height:34px}
.group-loot-frame .group-loot-icon img{position:static;width:100%;height:100%}
.group-loot-buttons{display:contents}
.group-loot-button{position:absolute;width:32px;height:32px;padding:0;border:0;background:none;cursor:pointer}
.group-loot-button.need{left:174px;top:14px}.group-loot-button.greed{left:172px;top:44px}.group-loot-button.pass{left:210px;top:2px}
.group-loot-frame .group-loot-button img{inset:0;width:100%;height:100%}
.group-loot-button .down,.group-loot-button .highlight{visibility:hidden}
.group-loot-button .highlight{mix-blend-mode:plus-lighter}
.group-loot-button:not(:disabled):active .up,.group-loot-button.chosen .up{visibility:hidden}
.group-loot-button:not(:disabled):active .down,.group-loot-button.chosen .down,.group-loot-button:not(:disabled):hover .highlight{visibility:visible}
.group-loot-button:disabled{cursor:default;filter:none;opacity:.35}.group-loot-button.chosen{opacity:1}
.group-loot-timer{position:absolute;left:16px;top:57px;width:152px;height:10px}
.group-loot-fill{position:absolute;inset:0;background-size:100% 100%;background-color:#ff0;background-blend-mode:multiply;animation:group-loot-run linear forwards}
.group-loot-frame .group-loot-bar-border{left:-2px;top:-5px;width:156px;height:20px}
@keyframes group-loot-run{from{clip-path:inset(0 0 0 0)}to{clip-path:inset(0 100% 0 0)}}
.group-loot.answered .group-loot-fill{filter:grayscale(1)}
.group-loot-compare{font-size:11px}.group-loot-compare.better{color:#1eff00}.group-loot-compare.worse{color:#9d9d9d}
.group-loot-status{font-size:11px;color:#ffd100}
@media(max-width:500px){.group-loot-frame{zoom:1.25}}
@media(max-width:340px){.group-loot-frame{zoom:1.1}}
/* Gear dialog footer (gear-sheet.js renderGearPage): the loot-roll switches fill the first line (flex-basis 100%); the realm
   note and Drop Tables wrap under them instead of squeezing the note into a sliver that widens the dialog past its width. */
.gear-page .gear-footer{flex-wrap:wrap}
.gear-page .gear-footer>.muted{flex:1 1 260px;min-width:0}
/* Difficulty dialog: the Keystone row past Mythic and its −/+ level stepper. */
.difficulty-dialog .keystone-row{grid-column:1/-1;display:flex;align-items:stretch;gap:8px}
.difficulty-dialog .keystone-row button.keystone-choice{flex:1;min-height:0}
.difficulty-choice .difficulty-note{font-size:11px;line-height:1.35;color:#9fb8d9}
.keystone-stepper{display:flex;align-items:center;gap:6px}
.difficulty-dialog .keystone-stepper button.keystone-step{min-width:36px;min-height:36px;padding:0;font-size:18px}
.keystone-stepper .keystone-level{min-width:2.5ch;text-align:center;font-size:18px;color:var(--ms-gold-bright,#ffd96a)}
/* Native hybrid client: the exe renders the world behind this transparent page. */
html:has(body.native-host.native-world),body.native-host.native-world{background:transparent!important}body.native-host.native-world .world-backdrop{background:none!important}
/* Kingslayer: the earned title under the hero name, in the card's subtitle style. */
.main-card-sub.hero-title{margin:2px 0 0}.hero-title[hidden]{display:none}
.difficulty-dialog .modifier-group{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:6px}
.difficulty-dialog .modifier-group button.difficulty-choice{min-height:0}
.difficulty-dialog .modifier-title{grid-column:1/-1;font-size:12px;color:var(--ms-label,#b5a47d)}
@media(max-width:800px){.difficulty-dialog .modifier-group{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Terminal report reuses the existing build slots, disclosures and measured-source table. */
#result .result-build{margin:18px 0 6px}
#result .reward-build{flex-wrap:wrap}
#result .result-combat{margin:12px 0;text-align:left}
#result .result-combat p{font-size:12px;line-height:1.5;margin:8px 0}
#result .result-combat table{width:100%;font-size:12px;border-collapse:collapse}
#result .result-combat th,#result .result-combat td{text-align:right;padding:5px 8px;white-space:nowrap}
#result .result-combat th:first-child,#result .result-combat td:first-child{text-align:left;white-space:normal;min-width:150px}
#result .result-combat .category-badge{margin-left:6px}
#result .result-combat tbody tr{border-top:1px solid #574829}
#result .result-equipment{margin-top:12px;text-align:left}
#result .result-equipment summary,#result .result-combat summary{cursor:pointer;color:#d8c595}
#result .result-currencies{gap:10px 22px}
#result .result-currency-icon{width:42px;height:42px}
#result .result-amount{font-size:28px}
#result .result-currency.run .result-currency-icon{width:32px;height:32px}
#result .result-currency.run .result-amount{font-size:23px}

/* An unpaused human party keeps the battlefield interactive beside compact reward choices. */
#rewardPanel.layout-vertical{left:auto;right:14px;top:90px;bottom:auto;transform:none;width:310px;max-width:calc(100vw - 28px);max-height:calc(100dvh - var(--native-hud-bottom,135px) - 110px);padding:10px;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line) var(--ink)}
#rewardPanel.layout-vertical .reward-heading{gap:6px;flex-wrap:wrap;margin-bottom:8px}#rewardPanel.layout-vertical .reward-heading h2{font-size:18px;margin:0}#rewardPanel.layout-vertical #choiceProtection{display:none}#rewardPanel.layout-vertical .reward-heading button{margin-left:auto}
#rewardPanel.layout-vertical #rewards{display:flex;flex-direction:column;gap:7px}#rewardPanel.layout-vertical #rewards button{position:relative;display:block;text-align:left;padding:8px 8px 8px 53px;min-height:76px;width:100%}
#rewardPanel.layout-vertical #rewards .reward-icon{position:absolute;left:8px;top:10px;width:36px;height:36px;margin:0}#rewardPanel.layout-vertical #rewards strong{display:block;font-size:14px;margin:3px 0}#rewardPanel.layout-vertical #rewards .reward-kind{font-size:10px;margin:0}#rewardPanel.layout-vertical #rewards .reward-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;line-clamp:1;overflow:hidden;font-size:11px;line-height:1.3}#rewardPanel.layout-vertical #rewards .reward-rank{display:block;font-size:10px;margin-bottom:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#rewardPanel.layout-vertical #rewards .reward-kind-hint,#rewardPanel.layout-vertical #rewards .reward-quality,#rewardPanel.layout-vertical #rewards .reward-comparison,#rewardPanel.layout-vertical #rewards .reward-new{display:none}
#rewardPanel.layout-vertical .reward-build-footer{margin-top:8px;gap:5px}#rewardPanel.layout-vertical .reward-build-slot{width:27px;height:27px}#rewardPanel.layout-vertical .reward-build-footer>span{font-size:10px}
body.coop-rewards:has(#replaceSpellDialog[open]) #rewardPanel{visibility:hidden;pointer-events:none}
#replaceSpellDialog.coop-replacement[open]{position:fixed;inset:auto 14px auto auto;top:90px;display:flex;flex-direction:column;width:340px;max-width:calc(100vw - 28px);max-height:calc(100dvh - var(--native-hud-bottom,135px) - 110px);margin:0;z-index:14}
#replaceSpellDialog.coop-replacement::backdrop{background:transparent;backdrop-filter:none}
#replaceSpellDialog.coop-replacement>.window-title{flex-shrink:0;min-height:32px;padding:5px 30px 5px 9px;font-size:17px}#replaceSpellDialog.coop-replacement .dialog-body{flex:1;min-height:0;max-height:none;padding:8px;overflow:auto}#replaceSpellDialog.coop-replacement .replace-intro{font-size:11px;margin-bottom:7px}#replaceSpellDialog.coop-replacement .replace-incoming{gap:7px;padding:7px}#replaceSpellDialog.coop-replacement .replace-incoming .replace-icon{width:36px;height:36px}#replaceSpellDialog.coop-replacement #replacementName{font-size:14px}#replaceSpellDialog.coop-replacement .replace-effect{font-size:11px}#replaceSpellDialog.coop-replacement .replace-arrow{margin:7px 0;font-size:9px}#replaceSpellDialog.coop-replacement .replace-spell-slots{gap:5px}#replaceSpellDialog.coop-replacement .replace-slot{gap:7px;min-height:48px;padding:6px}#replaceSpellDialog.coop-replacement .replace-icon-seat,#replaceSpellDialog.coop-replacement .replace-slot .replace-icon{width:30px;height:30px}#replaceSpellDialog.coop-replacement .replace-line{flex-wrap:wrap;gap:2px 5px}#replaceSpellDialog.coop-replacement .replace-slot strong{font-size:12px}#replaceSpellDialog.coop-replacement .replace-slot-rank{font-size:10px}#replaceSpellDialog.coop-replacement .replace-desc{font-size:11px}#replaceSpellDialog.coop-replacement .replace-loss{padding:1px 3px;font-size:10px}#replaceSpellDialog.coop-replacement .category-badge{display:none}#replaceSpellDialog.coop-replacement .window-footer{flex-shrink:0;flex-wrap:wrap;gap:5px;padding:7px 8px}#replaceSpellDialog.coop-replacement .replace-keys{font-size:10px;white-space:normal}#replaceSpellDialog.coop-replacement .window-footer button{margin-left:auto;font-size:11px;padding:3px 8px;min-height:27px}
.realm-browser-dialog[open]{display:flex;flex-direction:column;overflow:hidden}.realm-browser-dialog>.window-title,.realm-browser-dialog>.realm-tabs,.realm-browser-dialog>.window-footer{flex:none}.realm-browser-dialog>.realm-tabs{background:#151515}.realm-browser-dialog>section[role=tabpanel]{flex:1 1 auto;min-height:0;overflow:auto}
.guide-page .whats-new{margin:0 0 16px;padding:8px 12px;border:1px solid #76603d;background:#0000002e}.guide-page .whats-new summary{color:#f5d67e;font:18px Friz,Georgia,serif;cursor:pointer}.guide-page .whats-new ul{margin:8px 0 2px 18px;padding:0;font-size:13px;color:#b8b29d}.guide-page .whats-new li{margin:5px 0}.guide-page .whats-new li strong{color:#d8bc74}.guide-page .whats-new a{color:#ecd13c;white-space:nowrap}
.zone-family-rules{margin-top:6px;padding-top:5px;border-top:1px solid #594529;text-align:left;font-size:11px;color:#b8b29d;font-weight:normal}.zone-family-rules strong{display:block;color:#d8bc74;font-size:11px;font-weight:normal;margin-bottom:2px}.zone-family-rules ul{margin:0;padding-left:16px}.zone-family-rules li{margin:1px 0}.next-rules{margin:2px 0 0;font-size:11px;color:#a99a77;line-height:1.35}
@media(max-height:700px){.zone-family-rules li:nth-child(n+3){display:none}}
.hero-title-select{display:block;margin:4px 0 0;max-width:100%;min-height:0;padding:2px 6px;font-size:12px}
#rewardPanel .reward-heading{cursor:move;touch-action:none;user-select:none}#rewardPanel.locked .reward-heading{cursor:default}#rewardPanel .reward-heading button{cursor:pointer}#rewardPanel #rewardLock{margin-left:auto}#rewardPanel #reroll{margin-left:6px}
.damage-meter header{cursor:move;touch-action:none}.damage-meter.locked header{cursor:default}.damage-meter header button{cursor:pointer}.damage-meter .meter-mode{flex:none;width:118px;min-width:118px;justify-content:center;white-space:nowrap;overflow:hidden;text-overflow:clip;line-height:1}.damage-meter .meter-lock{margin-left:auto;flex:none;white-space:nowrap;min-height:27px;padding:0 9px;font-size:13px}
/* Character select: class icon rows, a calmer selection, a real primary button, one Logout (the nav bar's). */
.roster-character{position:relative}
.roster-character.has-icon{padding-left:60px!important}
.roster-character .roster-icon{position:absolute;left:10px;top:50%;width:40px;height:40px;margin-top:-20px;border:1px solid #6b5a33;background:url('/ui-assets/class-icons') var(--portrait-position) / 400% 400%;box-shadow:0 0 0 1px #000}
.roster-character strong{color:#f0d27a}
.roster-character:hover:enabled{background:#ffffff0d!important;border-color:#5a4a2e!important}
.roster-character[aria-pressed=true]{background:#b1902322!important;border-color:#c8a24a!important;box-shadow:none!important}
.roster-character[aria-pressed=true] .roster-icon{border-color:#c8a24a}
/* The corner bar carries Logout on wide screens; first-run (no corner bar) and narrow screens keep the roster's own. */
@media(min-width:801px){body:not(.first-run) .roster-screen .roster-logout{display:none}}
.roster-enter #rosterEnter{min-width:300px;min-height:56px;font:26px Friz,Georgia,serif;letter-spacing:.5px;color:#ffd341;text-shadow:2px 2px #000;filter:drop-shadow(0 0 8px #d8a22a66)}
.roster-enter #rosterEnter:disabled{filter:grayscale(.7);opacity:.6}
/* Creation: the class's one-line flavour under the race and class title. */
.creation-flavor{margin:-2px 0 8px;font:13px/1.3 Friz,Georgia,serif;color:#f1e2b8;text-align:center;text-shadow:0 1px 2px #000,0 0 6px #000,0 0 12px #000}
.creation-flavor:empty{display:none}
.creation-innates{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 12px;margin:-4px 0 8px;font:12px/1.3 Friz,Georgia,serif;color:#ffd100;text-shadow:0 1px 2px #000,0 0 6px #000}.creation-innates[hidden]{display:none}.creation-innate{display:inline-flex;align-items:center;gap:5px;cursor:help}.creation-innate img{width:18px;height:18px;border:1px solid #6b5a3a;box-shadow:0 0 3px #000}
/* Run bar: legible secondary text, prominent clock, quiet volume control. */
body .run-bar{font-size:13px;gap:16px}
body .run-bar #runTime{font-size:22px}
body .run-bar .run-objective{font-size:12px}
body .run-bar .mute-toggle{margin-left:auto;font-size:12px;min-height:20px;padding:0 6px;opacity:.8}
body .run-bar .volume-slider{width:64px;height:12px;opacity:.7}
@media(max-width:760px){body .run-bar{font-size:12px;gap:10px}body .run-bar #runTime{font-size:17px}body .run-bar .run-objective{font-size:12px}}
@media(max-width:500px){body .run-bar .run-objective{font-size:12px}}
/* The creation captions sit over the live scene, which can be bright snow or sand: give them a dark halo. */
.creation-rotate-hint{color:#e8dcc0;text-shadow:0 1px 2px #000,0 0 6px #000,0 0 12px #000}
/* Community links (community.js): Buy me a coffee and the Discord logo, top right of the login, roster and hero screens and the gate login page, as classic bordered buttons; never in a room or the run HUD. The roster screen keeps them left of its character panel. */
.community-links{position:fixed;top:12px;right:16px;z-index:6;display:none;gap:8px;align-items:center}
body:is([data-screen=login],[data-screen=roster],[data-screen=setup]):not(.in-room):not(.playing) .community-links,body.gate-page .community-links{display:flex}
body[data-screen=roster] .community-links{right:370px}
.community-links .community-button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:34px;min-width:34px;padding:0 14px;font:13px/1 Friz,Georgia,serif;color:#f1cf6e;text-decoration:none;text-shadow:1px 1px #000;white-space:nowrap;background:linear-gradient(#21180d,#0b0805);border:1px solid #8f6f33;border-top-color:#b8954e;border-bottom-color:#5e451e;border-radius:3px;box-shadow:0 0 0 1px #0b0805,inset 0 0 8px #000,0 2px 8px #0009}
.community-links .community-button:hover{color:#fff1b1;border-color:#e2c271;background:linear-gradient(#2e2112,#130d07)}
.community-links .community-discord{width:34px;padding:0}
.community-links .community-discord svg{display:block;width:21px;height:21px;fill:currentColor}
@media(max-width:800px){.community-links,body[data-screen=roster] .community-links{top:10px;right:12px}}
