:root{color-scheme:dark;--ink:#112630;--deep:#0d202a;--panel:#172f39;--paper:#e8e5d5;--muted:#93aaae;--gold:#d6bd87;--line:#a6c0bd26;--teal:#9ccbc3;--danger:#e4a087;font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--deep);color:var(--paper)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.42}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #e9d19a;outline-offset:3px}button{color:inherit}a{color:var(--gold)}h1,h2,h3,h4,p{margin:0}p{line-height:1.8}button,input,select{border-radius:7px}input,select{background:#0e232c;border:1px solid #738e9055;color:var(--paper);padding:10px 12px;min-width:0}input::placeholder{color:#799094}label{font-size:13px;color:var(--muted)}small{font-size:12px;line-height:1.6}strong{font-weight:600}button{border:1px solid var(--line);background:#223b438c;padding:10px 16px;transition:background .15s,border .15s,transform .15s}button:hover:not(:disabled){background:#34525a;border-color:#a4c0b970}button:active:not(:disabled){transform:translateY(1px)}.primary{background:linear-gradient(135deg,#e1c893,#bfa574);color:#152b32;border-color:#e8d2a0;font-weight:700;box-shadow:0 6px 22px #0002}.primary:hover:not(:disabled){background:#efd8a6;border-color:#fff0ca}.quiet{background:#16303a55}.danger{color:#e5ae97;border-color:#bc7c6155}.success{color:#b1d4b5}.muted{color:var(--muted)}.gold{color:var(--gold)}.small{font-size:12px}.caps{font-family:Georgia,serif;font-size:12px;letter-spacing:.2em;color:#b8c9c1}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;font-size:11px;letter-spacing:.02em;border:1px solid #94b5ad40;border-radius:4px;color:#aec5bd;background:#18343b80}.badge.gold{color:#e5c98f;border-color:#c8ac674d}.badge.danger{color:#e2ab94}.row{display:flex;align-items:center;gap:12px}.spacer{flex:1}.stack{display:flex;flex-direction:column;gap:12px}.sep{height:1px;background:var(--line);margin:16px 0}.empty{display:flex;min-height:200px;align-items:center;justify-content:center;text-align:center;flex-direction:column;gap:12px;color:var(--muted)}.empty .symbol{font-size:42px;color:#8bb1ad69}.emblem{font-size:30px;color:var(--gold)}.boot{position:absolute;inset:0;display:flex;flex-direction:column;gap:20px;align-items:center;justify-content:center}.boot h1{font-family:Georgia,"SimSun",serif;font-size:52px;letter-spacing:.12em}.boot p{color:var(--muted)}#scene{position:fixed;inset:0;pointer-events:none}#screen,#hud{position:fixed;inset:0}#hud{pointer-events:none}#hud button{pointer-events:auto}#screen.playing{pointer-events:none}#screen.playing>*{pointer-events:auto}#modal{position:fixed;inset:0;z-index:30;background:#071821bd;backdrop-filter:blur(6px);display:grid;place-items:center;padding:28px}#modal[hidden]{display:none}#toasts{position:fixed;top:90px;left:50%;transform:translateX(-50%);z-index:80;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{min-width:230px;max-width:85vw;padding:13px 24px;background:#152e38f2;border:1px solid #c1ac7666;box-shadow:0 10px 40px #0004;border-radius:8px;text-align:center;font-size:14px;animation:toast-in .15s ease-out}@keyframes toast-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
/* Cover */
.cover{position:absolute;inset:0;padding:32px 5vw}.brand{display:flex;align-items:center;gap:12px}.brand .wordmark{letter-spacing:.24em;font:15px Georgia,serif;color:#d9d6bb}.cover-top{display:flex;align-items:center;gap:14px}.cover-top button{font-size:12px;padding:8px 13px;border-color:#9dbbb42b;background:#0c27305c}.cover-main{position:absolute;left:7vw;top:23vh;width:43vw;max-width:570px}.eyebrow{display:flex;align-items:center;gap:13px;color:#bfcbb9;font-size:12px;letter-spacing:.18em}.eyebrow:before{content:"";display:inline-block;width:32px;height:1px;background:#c8b37f}.cover h1{font-family:"SimSun","Songti SC",Georgia,serif;font-weight:700;font-size:clamp(54px,6.2vw,92px);letter-spacing:.055em;line-height:1.3;margin:20px 0 11px;color:#efe9d5;text-shadow:0 5px 30px #071821a0}.cover .en-title{font-family:Georgia,serif;letter-spacing:.55em;font-size:14px;color:#b3c7c3;margin:0 0 18px 5px}.cover .intro{font-size:14px;color:#a1b8b8;line-height:1.9;max-width:430px;margin-bottom:28px}.cover-actions{width:302px;display:flex;flex-direction:column;gap:10px}.cover-actions button{height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 21px;text-align:left;border-radius:5px;font-size:16px;letter-spacing:.13em}.cover-actions button:not(.primary){background:#142f3ab8;border-color:#a2b9b339;color:#d3ded2}.cover-actions button small{font-size:11px;letter-spacing:.08em;opacity:.7;font-family:Georgia,serif}.cover-actions .arrow{font-size:19px}.cover-foot{position:absolute;bottom:28px;left:5vw;right:5vw;display:flex;align-items:center;gap:16px;color:#8da6a8;font-size:12px}.cover-foot .cast-line{margin-left:auto;color:#bdc6b3;letter-spacing:.07em}.resume-solo{font-size:12px;display:inline-flex;margin-top:12px;padding:6px 0;background:none;border:none;color:#c8b88d}.cover-hint{position:absolute;right:6vw;top:17vh;text-align:right;border-right:1px solid #9ab8b149;padding-right:15px}.cover-hint strong{font-family:Georgia,serif;font-size:24px;color:#cbd4bc;font-weight:400}.cover-hint p{font-size:11px;color:#8aa8a9;letter-spacing:.14em;margin-top:4px}
/* Menus */
.menu-shade{position:absolute;inset:0;background:#0c2028a1;backdrop-filter:blur(4px)}.page{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(1260px,94vw);max-height:calc(100vh - 54px);overflow:auto;background:linear-gradient(135deg,#1a333df8,#102731f5);border:1px solid #97b8b74a;border-radius:14px;box-shadow:0 24px 90px #0006;padding:26px 30px}.page.narrow{width:min(1050px,94vw)}.page-head{display:flex;align-items:center;gap:16px;margin-bottom:20px}.page-head h2{font-family:"SimSun","Songti SC",serif;font-size:30px;letter-spacing:.07em}.page-head p{color:var(--muted);font-size:13px;margin-top:5px}.back-btn{padding:9px 13px;background:#0a263066;border-color:#93b5b238;font-size:13px}.page-foot{display:flex;align-items:center;gap:14px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.page-foot .primary{min-width:175px;padding:13px 22px}.page-foot p{font-size:12px;color:#93acae}.class-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.class-card{position:relative;text-align:left;overflow:hidden;padding:0;background:linear-gradient(180deg,#172f3988,#142b35dd);border:1px solid #9ab4b42b;min-height:257px;border-radius:9px;transition:transform .2s,border .2s,background .2s}.class-card:hover:not(:disabled){transform:translateY(-3px);background:#24424ac9}.class-card.selected{border-color:var(--class);box-shadow:inset 0 -3px 0 var(--class),0 0 26px #799e9d14}.class-card .class-no{position:absolute;left:15px;top:14px;font-family:Georgia,serif;font-size:12px;color:#749298;letter-spacing:.12em}.class-card .selected-mark{position:absolute;right:12px;top:11px;color:var(--class);font-size:17px}.class-card canvas{width:100%;height:194px;object-fit:contain;display:block;pointer-events:none}.class-info{padding:6px 18px 19px;border-top:1px solid #92b6b213}.class-info h3{font-family:"SimSun","Songti SC",serif;font-size:22px;letter-spacing:.07em;color:#e8e4cd}.class-info p{font-size:11px;color:var(--class);margin-top:6px;letter-spacing:.07em}.class-brief{display:flex;gap:16px;align-items:center;margin:16px 0;padding:11px 14px;background:#10273083;border-left:2px solid var(--class);font-size:13px;color:#b7c7c4}.class-brief .badge{white-space:nowrap}.section-label{font-size:12px;letter-spacing:.1em;color:#a6b9b6;margin:13px 0 10px}.map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.map-chip{position:relative;text-align:left;min-height:78px;padding:13px 16px;background:linear-gradient(120deg,#23424a99,#142e3580);border-color:#77999430;overflow:hidden}.map-chip:after{content:"◇";position:absolute;right:14px;top:3px;color:var(--map-accent,#b3ba94);font-size:54px;opacity:.11;font-family:Georgia,serif}.map-chip.selected{border-color:#d3bc83;background:#4a4e3c49}.map-chip strong{display:block;font-size:15px;font-weight:600;color:#dcdcc5}.map-chip small{display:block;margin-top:7px;font-size:11px;color:#96afa9}.setup-options{display:flex;align-items:end;gap:16px;margin-top:18px}.setup-options label{display:flex;flex-direction:column;gap:6px}.setup-options label:first-child{width:185px}.setup-options select{min-width:140px}.setup-options .option-note{font-size:12px;color:#8fa8aa;padding-bottom:9px}.map-grid.compact .map-chip{min-height:60px}.map-grid.compact small{display:none}.hint-box{border:1px solid #9bbdb331;background:#122d366e;border-radius:7px;padding:13px 16px;font-size:13px;line-height:1.8;color:#b2c6c2}.hint-box.warn{border-color:#d1ac6840;color:#cebd93}.split{display:grid;grid-template-columns:1fr 1fr;gap:16px}
/* Online lobby */
.online-profile{display:flex;gap:12px;align-items:end;margin-bottom:18px}.online-profile label{display:flex;flex-direction:column;gap:7px}.online-profile .primary{margin-left:auto;height:42px}.join-box{display:flex;align-items:center;gap:10px;margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:8px;background:#122a3380}.join-box input:first-of-type{width:140px;text-transform:uppercase;letter-spacing:.13em}.join-box input[type=password]{width:150px}.room-table{border:1px solid var(--line);border-radius:8px;overflow:hidden;max-height:305px;overflow-y:auto}.room-row{display:grid;grid-template-columns:2.2fr 1fr .7fr 100px;gap:15px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line);font-size:14px}.room-row:last-child{border-bottom:0}.room-row.header{background:#0e2730b3;color:#88a7a7;font-size:11px;letter-spacing:.05em}.room-row small{display:block;color:#879e9f}.room-row button{padding:7px 14px}.room-share{display:flex;align-items:center;gap:16px;border:1px solid #c9ae693d;border-radius:8px;background:#bda7750a;padding:13px 18px;margin:12px 0 20px}.room-code{font-family:Georgia,serif;font-size:30px;letter-spacing:.16em;color:#e1ca90}.room-share p{font-size:12px;color:var(--muted)}.room-members{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.member-card{border:1px solid #90aaa432;border-radius:8px;background:#10293369;text-align:center;overflow:hidden;padding:10px 12px 16px;position:relative}.member-card canvas{height:166px;width:100%;object-fit:contain}.member-card h3{font-size:16px;font-weight:600;margin-bottom:5px}.member-card .badge{margin-top:8px}.member-card .host{position:absolute;right:10px;top:10px;color:#d5ba80;font-size:10px}.member-card.empty-slot{min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#65868a}.member-card.empty-slot .symbol{font-size:30px;color:#799e9466}.lobby-options{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:end;margin-top:16px}.lobby-options label{display:flex;flex-direction:column;gap:7px;font-size:12px}.room-bottom{display:flex;align-items:center;gap:12px;margin-top:20px;border-top:1px solid var(--line);padding-top:18px}.room-bottom .primary{min-width:160px}.room-bottom p{font-size:12px;color:var(--muted);max-width:590px}
/* In-battle HUD */
.hud-top{position:absolute;left:25px;right:25px;top:19px;display:flex;align-items:flex-start;justify-content:space-between}.team-list{width:217px;display:flex;flex-direction:column;gap:7px}.team-hp{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:center;background:#102833d9;padding:7px 10px;border:1px solid #90b3b429;border-radius:6px}.team-hp .class-symbol{font-family:Georgia,serif;font-size:20px;color:var(--class)}.team-title{display:flex;gap:5px;justify-content:space-between;font-size:11px;color:#bbcfc7;margin-bottom:5px}.bar{height:5px;border-radius:3px;background:#0a2029;overflow:hidden}.bar span{display:block;height:100%;background:#99bda5;transition:width .1s linear}.team-title small{font-size:10px;color:#94adaa}.wave-hud{position:absolute;left:50%;top:0;transform:translateX(-50%);min-width:285px;text-align:center;background:linear-gradient(180deg,#102933e8,#10293395);padding:12px 25px 14px;border:1px solid #b7c9bd36;border-radius:0 0 13px 13px}.wave-hud .wave-no{font-family:Georgia,"Microsoft YaHei",serif;font-size:26px;letter-spacing:.06em;color:#ede4c8}.wave-hud .wave-no small{font-size:14px;color:#8aaba8}.wave-hud .wave-sub{font-size:11px;color:#a7bdb5;margin-top:7px;letter-spacing:.05em}.wave-time{font-family:Georgia,serif;font-size:18px;color:#d9c592;margin-left:10px}.hud-right{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:9px}.hud-right .row{gap:7px}.hud-right button{font-size:11px;background:#102932dc;border-color:#99b7b734;padding:7px 11px}.net-text{font-size:11px;color:#96b4b3;padding-right:4px}.boss-hud{position:absolute;left:50%;top:107px;transform:translateX(-50%);width:min(500px,43vw);text-align:center}.boss-hud .boss-title{font-size:13px;color:#e5c596;margin-bottom:7px;text-shadow:0 2px 5px #000}.boss-hud .bar{height:9px;background:#192d32;border:1px solid #d0af7640}.boss-hud .bar span{background:linear-gradient(90deg,#9e6e57,#d2ac77)}.boss-hud .poise{margin:5px auto 0;width:82%;height:3px;background:#19323b}.boss-hud .poise span{background:#8ec3c5}.battle-message{position:absolute;top:166px;left:50%;transform:translateX(-50%);max-width:75vw;padding:10px 22px;font-size:18px;letter-spacing:.03em;color:#e3d7b6;background:linear-gradient(90deg,#142a3300,#112a32d9 20%,#112a32d9 80%,#142a3300);text-align:center;white-space:nowrap;transition:opacity .3s;text-shadow:0 2px 6px #000}.hud-bottom{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:flex;align-items:center;gap:16px;width:min(1260px,calc(100vw - 44px));background:linear-gradient(180deg,#172f39e8,#0c2430f5);border:1px solid #9bb9b349;border-radius:12px;padding:12px 17px;box-shadow:0 10px 40px #04151d80}.my-panel{width:247px;min-width:205px;display:flex;align-items:center;gap:10px}.my-panel canvas{width:65px;height:70px}.my-vitals{flex:1;min-width:0}.my-name{font-size:12px;display:flex;justify-content:space-between;margin-bottom:7px}.my-name b{font-weight:500;color:#e3d7b3}.my-health{height:13px;background:#102630;border:1px solid #86aaa339;position:relative;border-radius:4px;overflow:hidden}.my-health .fill{height:100%;background:linear-gradient(90deg,#598e82,#a0c1a3);transition:width .1s linear}.my-health .shield{height:3px;position:absolute;top:0;left:0;background:#eadbab}.health-text{font-size:10px;letter-spacing:.03em;display:flex;justify-content:space-between;margin-top:4px;color:#b5c8ba}.xp-bar{height:3px;background:#09212b;margin-top:6px}.xp-bar span{display:block;height:3px;background:#c7b780;transition:width .1s}.key-small{color:#c9bb94;font-family:Georgia,serif;font-size:11px;border:1px solid #9da48855;padding:1px 4px;border-radius:3px;min-width:18px;display:inline-block;text-align:center}.skill-bar{display:flex;gap:7px;flex:1;justify-content:center}.skill-button{position:relative;overflow:hidden;width:66px;height:72px;padding:5px 2px 3px;border-radius:7px;background:linear-gradient(145deg,#36505a,#192f3a);border-color:#96b5b649;color:#d9decc;flex-shrink:0}.skill-button canvas{width:34px;height:34px;display:block;margin:0 auto 3px}.skill-button .skill-name{font-size:9px;letter-spacing:-.01em;white-space:nowrap}.skill-button .key{position:absolute;right:4px;top:2px;font-family:Georgia,serif;font-size:12px;color:#e1ca92;text-shadow:0 1px 4px #091c26}.skill-button .cooldown-mask{position:absolute;left:0;right:0;bottom:0;background:#0b1e2bd6;pointer-events:none}.skill-button .cd-label{position:absolute;inset:0;display:grid;place-items:center;font-size:18px;color:#e3dbc2;text-shadow:0 2px 4px #000}.skill-button.locked{opacity:.46}.skill-button.basic-key{width:44px;height:63px;background:#1b333c}.skill-button.basic-key .skill-name{font-size:9px}.skill-button.basic-key canvas{width:26px;height:26px}.hud-tools{display:flex;flex-direction:column;gap:5px;min-width:93px}.hud-tools button{font-size:10px;padding:8px 9px;white-space:nowrap}.combat-help{position:absolute;left:50%;bottom:119px;transform:translateX(-50%);font-size:11px;color:#b0c0b3;background:#112a3373;padding:5px 13px;border-radius:4px;letter-spacing:.02em}.reconnect-banner{position:absolute;left:50%;top:210px;transform:translateX(-50%);background:#302b28ef;color:#ecc9a0;border:1px solid #bc99774d;padding:11px 24px;border-radius:7px;font-size:13px}
/* Between-wave construction */
.prep-shade{position:absolute;inset:0;background:#0b202aaf;backdrop-filter:blur(3px)}.prep-shell{position:absolute;inset:26px max(24px,calc((100vw - 1360px)/2));display:flex;flex-direction:column;background:linear-gradient(130deg,#1b343ef7,#102832fa);border:1px solid #9fbbb447;border-radius:13px;box-shadow:0 24px 100px #0007;overflow:hidden}.prep-head{display:flex;align-items:center;gap:18px;padding:20px 25px 15px;border-bottom:1px solid var(--line)}.prep-head h2{font-size:26px;font-family:"SimSun","Songti SC",serif;letter-spacing:.08em}.prep-head p{font-size:12px;color:var(--muted);margin-top:6px}.prep-head .round-number{font-family:Georgia,serif;font-size:40px;color:#d6c190;line-height:1;border-right:1px solid #8eaba345;padding-right:18px}.prep-tabs{display:flex;gap:4px;padding:9px 24px 0;border-bottom:1px solid var(--line);background:#10293354}.prep-tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;padding:12px 21px;background:none;font-size:13px;color:#9fbbb8;min-width:114px}.prep-tabs button.active{color:#e1ca95;border-bottom-color:#d9c089;background:linear-gradient(0deg,#bca36613,transparent)}.count-pill{display:inline-block;border-radius:8px;background:#cfb77924;color:#e0c791;font-size:10px;min-width:18px;padding:1px 5px;margin-left:7px}.prep-body{min-height:0;flex:1;display:grid;grid-template-columns:1fr 270px}.prep-content{padding:19px 23px;overflow:auto;min-width:0}.build-sidebar{border-left:1px solid var(--line);padding:19px 19px;overflow:auto;background:#0f28315d}.build-sidebar h3{font-size:13px;color:#d6dbc4;font-weight:500;letter-spacing:.1em;margin-bottom:13px}.build-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:17px}.stat-box{padding:10px;border:1px solid #91b0a729;border-radius:5px;background:#142f3699}.stat-box small{display:block;color:#81a1a3;font-size:10px}.stat-box b{font-family:Georgia,serif;font-weight:400;font-size:20px;color:#e2d5b1}.equipped-list{display:flex;flex-direction:column;gap:7px}.equipped-row{display:flex;align-items:center;gap:9px;background:#152d3599;border:1px solid #91adab26;border-radius:5px;padding:10px 9px}.equipped-row .slot-label{width:28px;color:#839e9d;font-size:10px}.equipped-row .gear-title{font-size:12px;line-height:1.5;color:#c9cfba;flex:1}.equipped-row button{padding:2px 4px;font-size:10px;background:none;border:0;color:#87a6a4}.set-summary{margin-top:13px;padding:10px 11px;background:#183439;border:1px solid #95ae9f29;border-radius:5px}.set-summary b{font-size:12px;color:#c9c295;font-weight:500}.set-summary p{font-size:11px;color:#8ea7a6;line-height:1.7;margin-top:5px}.prep-foot{display:flex;align-items:center;gap:15px;padding:16px 24px;border-top:1px solid var(--line);background:#102933b3}.prep-foot .primary{min-width:204px;font-size:14px;padding:13px 20px}.prep-foot p{font-size:11px;color:#90aaab}.prep-foot .small-btn{padding:9px 11px;font-size:11px}.skill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.skill-tile{border:1px solid #8daeb029;background:#19333c7a;border-radius:7px;padding:13px 14px;display:flex;gap:13px;min-height:135px}.skill-tile .icon-wrap{width:44px;height:44px;background:#25454b;border:1px solid #a6bca12b;border-radius:8px;display:grid;place-items:center;flex-shrink:0}.icon-wrap canvas{width:30px;height:30px}.skill-tile .skill-detail{flex:1;min-width:0}.skill-heading{display:flex;align-items:center;gap:8px}.skill-heading h3{font-size:14px;font-weight:500;color:#dfdcc5}.skill-heading .rank{margin-left:auto;font-family:Georgia,serif;font-size:12px;color:#c5b481}.skill-desc{color:#96adac;font-size:11px;line-height:1.7;margin-top:6px;min-height:34px}.skill-actions{display:flex;align-items:center;gap:7px;margin-top:9px}.skill-actions button{font-size:11px;padding:6px 12px;white-space:nowrap}.skill-actions select{font-size:10px;padding:5px;min-width:79px;max-width:111px}.skill-actions .unlock{font-size:10px;color:#8b9f9c}.tile-locked{opacity:.54}.content-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.content-toolbar h3{font-size:15px;font-weight:500}.content-toolbar p{font-size:11px;color:var(--muted)}.content-toolbar button{font-size:11px;padding:7px 11px}.filter-bar{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:15px}.filter-bar button{padding:7px 12px;font-size:11px;border-color:#91afa42a}.filter-bar button.active{border-color:#c4b17b;background:#75673a27;color:#e2cc97}.filter-bar label{display:flex;align-items:center;gap:5px;margin-left:auto;font-size:11px}.filter-bar input{accent-color:#bbad7d}.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.choice-card{position:relative;display:flex;flex-direction:column;padding:23px 20px 19px;border:1px solid #afbc9843;background:linear-gradient(145deg,#2c4242c7,#162f38e6);border-radius:9px;min-height:296px;overflow:hidden}.choice-card.epic{border-color:#baa7d258;background:linear-gradient(145deg,#4542536e,#1b303de6)}.choice-card:before{content:"";position:absolute;inset:7px;border:1px solid #b9c19c12;border-radius:5px;pointer-events:none}.choice-symbol{font-family:Georgia,serif;font-size:29px;color:#c7bb89;margin-bottom:20px;line-height:1}.choice-card.epic .choice-symbol{color:#c3afd4}.choice-card .card-type{font-size:10px;letter-spacing:.08em;color:#a6b7a7;margin-bottom:10px}.choice-card h3{font-size:20px;font-family:"SimSun","Songti SC",serif;font-weight:600;color:#e6e0c8;letter-spacing:.035em;margin-bottom:13px}.choice-card p{font-size:12px;color:#aebdb5;line-height:1.9;flex:1;margin-bottom:16px}.choice-card .tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:16px}.tag{font-size:10px;padding:3px 7px;border-radius:4px;background:#aac2b011;color:#b6c8b6;border:1px solid #98b9a723}.choice-card button{width:100%;font-size:12px;padding:10px}.owned-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:15px}.owned-card{border:1px solid #9eb0a829;border-radius:6px;padding:11px 12px;background:#18313a6b}.owned-card strong{font-size:12px;color:#d0d3bb}.owned-card p{font-size:10px;line-height:1.7;color:#8ea7a1;margin-top:6px}.gear-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.gear-card{border:1px solid #adac8652;border-radius:7px;padding:13px;background:#2a3b3d85;display:flex;flex-direction:column;min-height:186px;position:relative}.gear-card.basic{border-color:#83979838;background:#1d343b7a}.gear-card.equipped{box-shadow:inset 0 2px 0 #a8c6ac}.gear-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.gear-head .gear-mark{font-size:22px;color:var(--gear,#cabb8f)}.gear-head h4{font-size:12px;font-weight:500;color:#ded9bc;flex:1;line-height:1.6}.gear-slot{font-size:10px;color:#91a8a2;white-space:nowrap}.gear-card p{font-size:10px;color:#a2b4ac;line-height:1.8;flex:1;margin-bottom:10px}.gear-card .gear-meta{font-size:10px;color:#83a49d;margin-bottom:8px}.gear-card .gear-actions{display:flex;gap:6px}.gear-card button{font-size:10px;padding:7px 8px;flex:1}.gear-card .gear-owner{font-size:10px;color:#c8bb93;line-height:1.5;margin:2px 0 7px}.trade-request{display:flex;align-items:center;gap:9px;padding:10px 14px;background:#b19a5221;border:1px solid #cab67b45;border-radius:6px;font-size:12px;margin-bottom:12px}.trade-request button{font-size:10px;padding:6px 9px}.supply-note{font-size:12px;color:#9eb5ae;line-height:1.8;margin-bottom:14px}.supply-slots{display:flex;gap:9px;margin-bottom:18px}.supply-slots button{font-size:12px;padding:9px 16px}.supply-slots button.active{color:#e5ce93;border-color:#c7b37a;background:#80734527}
/* Modal, help and result */
.modal-box{width:min(790px,94vw);max-height:90vh;overflow:auto;border:1px solid #acc3b748;border-radius:12px;padding:26px 29px;background:linear-gradient(140deg,#1d3842,#102b36);box-shadow:0 20px 80px #0007}.modal-box h2{font-size:25px;font-family:"SimSun","Songti SC",serif;letter-spacing:.06em}.modal-head{display:flex;align-items:center;gap:10px;margin-bottom:19px}.modal-head button{padding:5px 10px;font-size:18px;background:none;border:0}.modal-box p{font-size:13px;color:#adc3bd}.key-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin:17px 0}.key-row{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:7px 11px;background:#122e3680;border:1px solid #93aea623;border-radius:5px;font-size:12px;color:#adc1b8}.key-row button{padding:5px 9px;min-width:47px;font-family:Georgia,serif;color:#ddc78f;font-size:12px}.key-row button.listening{background:#a897512e;border-color:#c7b880}.settings-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:13px 0}.settings-row label{display:flex;align-items:center;gap:9px;color:#a9beb8;font-size:12px}.settings-row input[type=range]{padding:0;width:140px;accent-color:#c6b57d}.settings-row input[type=checkbox]{accent-color:#c6b57d}.modal-foot{display:flex;align-items:center;gap:10px;padding-top:17px;margin-top:8px;border-top:1px solid var(--line)}.modal-foot button{font-size:12px}.pause-box{width:435px;text-align:center}.pause-box .emblem{font-size:42px;margin-bottom:14px}.pause-box .stack{margin-top:24px}.pause-box .stack button{padding:13px}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.help-block{background:#122b3470;border:1px solid #9cb5b02a;border-radius:8px;padding:20px}.help-block .help-no{font:24px Georgia,serif;color:#afae7e;display:block;margin-bottom:11px}.help-block h3{font-size:16px;font-weight:500;letter-spacing:.04em;margin-bottom:12px;color:#d9d8bf}.help-block p{font-size:12px;color:#9eb5b0;line-height:1.9}.help-key-row{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.help-key-row span{font-size:12px;color:#9fb4aa}.help-key-row kbd{margin-right:5px}.result{width:min(1120px,94vw);text-align:center}.result-head .caps{margin-bottom:13px}.result-head h2{font-size:43px;letter-spacing:.15em;font-family:"SimSun","Songti SC",serif;color:#e9dcb4;margin-bottom:12px}.result-head p{font-size:13px;color:#a2b8b2}.result-stats{display:flex;justify-content:center;gap:50px;margin:24px 0}.result-stats div small{display:block;font-size:11px;color:#91aca8;letter-spacing:.05em}.result-stats b{font:30px Georgia,serif;color:#dbc594}.result-player{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:14px;align-items:center;border-bottom:1px solid var(--line);padding:14px 17px;text-align:left;font-size:13px}.result-player.header{font-size:11px;color:#80a1a0;background:#0e29327d}.result-player .role{color:var(--muted);font-size:11px;display:block;margin-top:5px}.result-player .num{font:18px Georgia,serif;color:#c4c5aa}.result-build{margin-top:19px;text-align:left}.result-build h3{font-size:13px;font-weight:500;margin-bottom:10px;color:#b5c8bf}.result-build .tags{display:flex;gap:7px;flex-wrap:wrap}.result .page-foot{justify-content:center}.history-item{display:flex;align-items:center;gap:15px;border-bottom:1px solid var(--line);padding:14px 0;font-size:13px}.history-item .result-mini{font:20px Georgia,serif;color:#d9c28f}.history-item small{color:#8ba6a3}.scroll-area{max-height:55vh;overflow:auto;padding-right:5px}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:#10263077}::-webkit-scrollbar-thumb{background:#637e7e69;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#789994}



.toast{padding:13px 19px;background:#172e33f0;border:1px solid #aa945b77;border-radius:8px;box-shadow:0 6px 24px #0006;max-width:550px;font-size:14px;color:#e7e8dc;animation:toastin .2s ease-out}.inspect-box{max-width:1150px!important}.inspect-box .scroll-area{max-height:65vh;overflow:auto}.on-cd{filter:saturate(.5)}.gear-card h4{margin:10px 0;font-size:18px}.choice-card .primary{margin-top:auto}.choice-symbol canvas{width:95px;height:95px}.skill-button .skill-name{position:absolute;left:0;right:0;bottom:-23px;font-size:11px;white-space:nowrap}.choice-grid .gear-card{display:flex;flex-direction:column;min-height:320px}.choice-grid .gear-card .gear-actions{margin-top:auto}.map-chip small{white-space:normal}.room-row small{display:block}.result-player .role canvas{width:65px;height:65px}.result-player .role p{margin:3px 0}.result-player .num{text-align:right}.gear-actions button{max-width:100%}#toasts{z-index:100}#hud[hidden]{display:none}.modal-box input[type=checkbox]{width:18px;height:18px}kbd{border:1px solid #78887c6b;background:#17282c;padding:2px 5px;border-radius:4px;font-family:inherit}@keyframes toastin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
/* Readability fixes from 1440×900 and 1280×720 captures. */
.cover-actions button{height:66px}.cover-actions button small{display:block;margin-top:5px;font-family:inherit;font-size:11px;letter-spacing:.04em}.wordmark span{display:block;font-size:9px;letter-spacing:.35em;margin-top:3px}.cover-foot{justify-content:space-between}.stat-box>span{display:block;font-size:11px;color:#95aba9;margin-bottom:4px}.my-health{height:22px}.my-health .fill{display:block}.my-health .health-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;text-shadow:0 1px 2px #000}.my-panel{min-width:265px}.skill-button{height:76px;width:69px}.skill-button canvas{width:42px;height:42px;margin:0 auto 7px}.skill-button .skill-name{bottom:4px;left:0;right:0;font-size:10px;z-index:2}.skill-button .key-small{position:absolute;top:3px;right:4px;z-index:3;background:#172c35e8;line-height:13px}.skill-button .cd-label{z-index:4;pointer-events:none}.icon-wrap canvas{width:43px;height:43px}.owned-card p{font-size:13px;line-height:1.65}.skill-desc{font-size:12px!important}.class-card canvas{max-width:100%;height:190px}.choice-symbol canvas{width:86px;height:86px}.my-vitals .small{margin-top:4px}.hud-tools .basic-key{font-size:11px}.room-members .member-card canvas{max-width:100%}.hud-bottom{padding-bottom:15px}.cover-main{padding-top:0}

.boss-hud{top:132px}.boss-title{display:flex;justify-content:space-between;gap:20px}.with-boss .battle-message{top:207px}.hud-top .team-list{max-width:230px}.team-hp .bar span{background:var(--class,#9bbfb1)}


.training-tools{position:absolute;top:130px;left:24px;display:flex;flex-direction:column;gap:8px;align-items:flex-start;pointer-events:auto;font-size:12px;background:#122b35e8;border:1px solid #71929a55;border-radius:10px;padding:13px;max-width:220px}.training-tools button{font-size:12px;min-height:32px;padding:6px 12px}.training-tools span{color:#d9c38d}

.skill-button.executing{outline:2px solid #f6dfaa;outline-offset:1px;box-shadow:0 0 16px #d7bb6855}.skill-button.executing .skill-name{color:#fff3cf}

/* Teammate names and vitals each occupy a full row, not the legacy icon column. */
.team-hp{grid-template-columns:minmax(0,1fr);gap:3px}.team-title{min-width:0;white-space:nowrap}.team-title b{min-width:0;overflow:hidden;text-overflow:ellipsis}.team-title>span{flex-shrink:0;font-size:10px}.team-hp .bar{width:100%}

/* Five-class release: readable practice catalogue and resource feedback. */
.mana-bar{height:12px;position:relative;background:#112f42;margin-top:4px;border-radius:2px;overflow:hidden}
.mana-bar>span{display:block;height:100%;background:linear-gradient(90deg,#3e79ac,#89bad1)}
.mana-bar small{position:absolute;inset:0;text-align:center;color:#ecf3f4;font:9px/12px sans-serif}
.practice-search{display:block;width:calc(100% - 48px);margin:0 24px 12px}
.practice-catalog{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:start}
.practice-item{display:flex;align-items:center;gap:12px;background:#17333c;border:1px solid #34525a;padding:13px;border-radius:8px}
.practice-item[hidden]{display:none}
.practice-item>div{flex:1}
.practice-item span{font-size:11px;color:#a6bbc0;margin-left:8px}
.practice-item p,.skill-controls{font-size:12px;line-height:1.55;color:#cbbc98;margin:6px 0 0}
.practice-item button{flex-shrink:0}
.training-tools{max-width:210px;max-height:58vh;overflow:auto}
.class-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.class-info h3{font-size:18px}
.class-info p{font-size:11px}


.source-skill-icon{image-rendering:pixelated;object-fit:contain;max-width:100%;filter:drop-shadow(0 2px 3px #0006)}

.battle-loading{position:fixed;inset:0;background:#0e202df0;display:grid;place-items:center;z-index:2000;color:#efddba;backdrop-filter:blur(5px)}.battle-loading>div{width:min(600px,90vw);border:1px solid #a792674f;border-radius:16px;padding:35px;background:#18303e;text-align:center}.battle-loading h2{font-size:27px;margin:0 0 22px}.battle-loading p{line-height:1.8;font-size:16px}

.bestiary-intro{display:flex;align-items:center;gap:20px;margin:12px 0 24px}.bestiary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.bestiary-card{padding:12px;text-align:center;background:#18313e;border:1px solid #7d827244;border-radius:12px}.bestiary-card canvas{max-width:100%;height:200px;object-fit:contain}.bestiary-card h3{margin:5px 0 8px;color:#ecdcaf}.bestiary-card p{font-size:14px;line-height:1.7;min-height:45px;margin:4px 0 10px}.bestiary-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:15px}.bestiary-head h2{margin:7px 0}.bestiary-head p{line-height:1.6}.bestiary-modal{overflow-y:auto;max-height:90vh}.bestiary-modal .bestiary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
