:root{color-scheme:dark;--ink:#09101b;--panel:#101b2b;--line:#34445b;--muted:#8c9db1;--text:#e4e9ed;--mint:#6ae4ce;--gold:#e7c17b;--violet:#b7a1ef;--red:#d67873}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 20%,#1b2a41,#060b13 75%);color:var(--text);font:14px/1.45 'Trebuchet MS',Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.46}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button svg{pointer-events:none}svg{width:100%;height:100%;display:block}.app{width:min(1280px,100%);margin:auto;padding:18px 30px 10px}.topbar{height:82px;display:flex;gap:10px;align-items:stretch;margin-bottom:12px}.brand{display:flex;align-items:center;gap:10px;color:#cbd2dc;text-decoration:none;letter-spacing:2px;font:20px/1 Georgia,serif;min-width:180px}.brand small{display:block;font:10px 'Trebuchet MS';letter-spacing:5px;margin-top:6px}.brand-rune{font:42px Georgia;color:var(--gold);border:1px solid #806d47;width:44px;height:52px;display:grid;place-content:center;box-shadow:inset 0 0 15px #a3813120}.wallet,.hero-summary,.icon-button{background:linear-gradient(155deg,#182337,#0b1420);border:1px solid #3b4c64;border-radius:5px;box-shadow:inset 0 0 0 3px #0a1221,inset 0 0 0 4px #28384c,0 3px 9px #0005}.wallet{flex:1;display:flex;align-items:center;gap:12px;padding:12px 18px;position:relative}.wallet small,.hero-summary small{display:block;color:#bac5d2;font-size:10px;letter-spacing:1.5px}.wallet strong{font-size:27px;font-weight:700;line-height:1.1}.wallet.gold{color:var(--gold)}.wallet.soul{color:var(--mint)}.resource-icon{width:36px;height:40px;filter:drop-shadow(0 0 8px currentColor)}.resource-detail{margin-left:auto;max-width:80px;color:var(--muted);font-size:10px;line-height:1.4}.hero-summary{min-width:148px;padding:10px 15px;display:flex;align-items:center;gap:10px;text-align:left}.hero-summary>span:first-child{width:28px;height:34px;color:var(--violet)}.hero-summary strong{font-size:22px}.microbar{display:block;width:76px;height:3px;background:#26334a;margin-top:3px}.microbar i{display:block;height:100%;background:var(--violet)}.icon-button{width:42px;min-height:44px;font-size:30px;display:grid;place-items:center}.settings-button{width:52px;padding:15px;color:#8e9eb8}.battleground{height:clamp(400px,57vh,650px);position:relative;border:1px solid #475265;border-radius:6px 6px 0 0;overflow:hidden;background:#162735;isolation:isolate}#battle-canvas{position:absolute;width:100%;height:100%;display:block}.scene-vignette{pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 70px #02071475;background:linear-gradient(#060c1860,transparent 35%,transparent 72%,#07101aa8)}.chapter-badge{position:absolute;top:0;left:23px;width:125px;text-align:center;padding:18px 10px 28px;color:#e0cda5;background:linear-gradient(100deg,#221d2ce8,#302538e8,#171829e8);border:1px solid #655246;border-top:0;clip-path:polygon(0 0,100% 0,100% 88%,50% 100%,0 88%);filter:drop-shadow(0 4px 5px #0008)}.chapter-badge>span{display:block;width:31px;height:36px;margin:0 auto 8px;color:#c8b28a}.chapter-badge small{display:block;font-size:9px;letter-spacing:2px}.chapter-badge strong{font:16px/1.2 Georgia;display:block;margin-top:8px}.wave-hud{position:absolute;top:20px;width:300px;left:50%;transform:translateX(-50%);text-align:center;text-shadow:0 2px 5px #000}.region-label{font-size:10px;letter-spacing:3px;color:#b8c6d2}.wave-title{font-size:17px;margin:4px 0 9px}.wave-title strong{font-size:23px;color:#fff}.wave-divider{margin:0 8px;color:#738295}.wave-track{display:flex;align-items:center;justify-content:center;gap:0}.wave-track i{position:relative;display:block;width:9px;height:9px;border:1px solid #7c8a9c;background:#203047;border-radius:50%;box-shadow:0 1px 4px #000;margin:0 9px}.wave-track i:not(:last-child):after{content:'';position:absolute;left:8px;top:3px;height:2px;width:19px;background:#445166}.wave-track i.done{background:#58d4b8;border-color:#9bffe6;box-shadow:0 0 7px #47dac5}.wave-track i.current{background:var(--gold);border-color:#ffebb8;box-shadow:0 0 8px var(--gold)}.wave-track i:last-child{width:13px;height:13px;border-radius:2px;transform:rotate(45deg);border-color:#b48278;background:#633c43}.wave-hint{font-size:10px;color:#bac8d3;margin-top:9px}.boss-tracker{position:absolute;right:18px;top:18px;display:flex;gap:12px;align-items:center;padding:12px 16px;background:#0b1421de;border:1px solid #654b61;box-shadow:inset 0 0 0 3px #171a29;border-radius:4px;text-align:left}.boss-tracker>span:first-child{width:34px;height:38px;color:#c7818b}.boss-tracker small{display:block;font-size:8px;letter-spacing:1.5px;color:#b993a3}.boss-tracker strong{font-size:15px;display:block}.boss-tracker span span{display:block;font-size:10px;color:#a3afc3}.scene-controls{position:absolute;right:15px;top:111px;display:flex;gap:6px}.glass-button{border:1px solid #59657888;background:#0c1724b0;border-radius:4px;padding:6px 10px;min-height:38px;display:flex;gap:7px;align-items:center;font-size:11px}.glass-button>span:first-child{width:15px;height:17px}.enemy-hud{position:absolute;right:10%;top:48%;width:110px;text-align:center;text-shadow:0 2px 3px #000}.enemy-hud small{font-size:11px;color:#edcfca}.enemy-bar{height:5px;background:#160e18;border:1px solid #09101c;margin:4px 0;box-shadow:0 0 0 1px #675459}.enemy-bar i{display:block;height:100%;background:linear-gradient(90deg,#a94652,#e38779)}.enemy-hud>span{font-size:9px;color:#d3b7b9}.enemy-hud.boss{width:190px;right:6%;top:38%}.hero-status{position:absolute;bottom:21%;left:20px;display:flex;flex-direction:column;gap:5px;font-size:9px;color:#c4e2d3;text-shadow:0 1px 3px #000}.live-dot{display:none}.health-track{display:block;width:75px;height:4px;border:1px solid #284c45;background:#0a1720}.health-track i{display:block;height:100%;background:#54b48b}.spell-action{position:absolute;right:20px;bottom:25px;display:flex;align-items:center;gap:10px;padding:10px 13px;border:1px solid #417066;background:linear-gradient(135deg,#153731ef,#0c1b26ef);box-shadow:inset 0 0 0 3px #0e2027,0 0 15px #48d1af18;border-radius:4px;text-align:left;min-height:55px}.spell-action>span:first-child{height:30px;width:30px;color:var(--mint)}.spell-action strong{display:block;font-size:12px;color:#cceee4}.spell-action small{display:block;font-size:9px;color:#85b1a7}.spell-action kbd{color:#79ab9d;border:1px solid #3b625b;padding:1px 4px;font-size:10px;margin-left:10px}.spell-action:disabled{opacity:.78;filter:saturate(.6)}.scene-caption{position:absolute;left:22px;bottom:29px;max-width:55%;font:italic 13px Georgia;color:#bbc9cf;text-shadow:0 2px 4px #000}.command-deck{background:linear-gradient(#101e2d,#0b1420);padding:13px 16px 0;border:1px solid #34465d;border-top:0}.deck-heading{display:flex;align-items:center;justify-content:space-between;color:#a9b6c8;font-size:9px;letter-spacing:1.7px;margin-bottom:10px}.diamond{display:inline-block;width:6px;height:6px;background:var(--mint);transform:rotate(45deg);margin-right:7px;box-shadow:0 0 9px #6ae4ce60}.text-button{border:0;background:none;font-size:11px;color:#9bafc6;letter-spacing:0;padding:4px 0;min-height:28px}.text-button strong{color:var(--mint);margin-left:8px}.text-button>span{margin-left:12px;font-size:19px}.upgrades{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.upgrade-card{min-height:92px;background:linear-gradient(135deg,#1b293a,#101b2a);border:1px solid #4a5c74;box-shadow:inset 0 0 0 3px #121c2b,inset 0 0 0 4px #2a3c54;position:relative;padding:12px;display:grid;grid-template-columns:47px 1fr auto;gap:7px;align-items:center;overflow:hidden;border-radius:4px}.portrait{display:block;width:48px;height:58px;position:relative;overflow:hidden}.portrait img{position:absolute;width:192px;height:128px;max-width:none;object-fit:fill;left:calc(var(--col)*-48px);top:calc(var(--row)*-64px)}.upgrade-card strong{display:block;font-size:12px;font-weight:normal}.upgrade-card small{display:block;color:#8cc9c5;font-size:10px}.upgrade-card .price{font-size:12px;color:var(--gold);margin-top:6px;display:block}.upgrade-button{background:linear-gradient(#245846,#15392f);border:1px solid #479574;color:#a6f4cd;box-shadow:inset 0 0 0 2px #1b493a;width:36px;height:42px;align-self:end;font-size:24px;border-radius:3px}.upgrade-button:hover:not(:disabled){background:#347c5e;box-shadow:0 0 12px #6ae4ce30}.empty-card{border:1px dashed #3e4d63;min-height:92px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;color:#7a8da4;background:#0d1724;cursor:pointer}.empty-card strong{color:#b6c4d2;font-size:12px;font-weight:normal}.empty-card small{font-size:10px}.empty-card span{font-size:19px;color:#8996b4}.journey-row{display:flex;align-items:center;gap:12px;padding:12px 0}.journey-icon{width:24px;height:29px;color:#baa27d}.journey-row strong{font-size:12px;font-weight:normal;color:#cfdbdf;display:block}.journey-row small{display:block;color:#8196a9;font-size:10px;margin-top:2px}.journey-row>button{margin-left:auto;background:transparent;border:1px solid #41546c;color:#93c8c0;font-size:26px;width:34px;height:38px;border-radius:4px}.bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-top:12px}.bottom-nav button{position:relative;display:flex;gap:12px;align-items:center;justify-content:center;border:1px solid #4b536c;min-height:69px;background:linear-gradient(125deg,#1e253b,#0d1828);box-shadow:inset 0 0 0 3px #0d1422,inset 0 0 0 4px #303c54;border-radius:5px}.bottom-nav button>span{width:27px;height:33px;color:#aeb9d5;filter:drop-shadow(0 0 6px #8194c530)}.bottom-nav button strong{font-size:11px;letter-spacing:1px}.bottom-nav button:first-child>span{color:#b19ddd}.bottom-nav button:nth-child(4)>span{color:#5ddbb5}.bottom-nav button:last-child>span{color:#b090ed}.bottom-nav button.active{border-color:#aa884e;background:linear-gradient(#433222,#241d1d);color:#f3d89f;box-shadow:inset 0 0 0 3px #241d19,inset 0 0 0 4px #725936,0 0 16px #db9f2e18}.bottom-nav button.active>span{color:#ffe4a8}.bottom-nav button:hover{filter:brightness(1.2)}.notification{display:none;position:absolute;width:6px;height:6px;background:#73e3bf;border-radius:50%;right:12px;top:11px;box-shadow:0 0 8px #73e3bf}.discovery-banner{display:flex;gap:19px;align-items:center;width:100%;margin-top:12px;text-align:left;border:1px solid #4a4d6b;background:radial-gradient(ellipse at 15% 110%,#49305088,transparent 65%),linear-gradient(120deg,#172035,#0b1421);padding:15px 23px;border-radius:5px;box-shadow:inset 0 0 0 3px #0d1422}.book-emblem{width:49px;height:48px;color:#b191cd;transform:rotate(-10deg);filter:drop-shadow(0 0 10px #a97cba40)}.discovery-banner small{display:block;color:#9c8eae;letter-spacing:1.7px;font-size:8px}.discovery-banner strong{display:block;font:18px/1.5 Georgia;color:#cfbeda}.discovery-banner span span{font-size:11px;color:#8e9daf}.banner-nodes{margin-left:auto;letter-spacing:10px;color:#9c8dd5;text-shadow:0 0 12px #a494f1}.banner-arrow{margin-left:20px;color:#aab4d3;font-size:30px}footer{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;color:#54667b;padding:13px 2px 2px}dialog{position:fixed;inset:0;margin:auto;width:min(760px,calc(100% - 26px));max-height:90dvh;color:var(--text);padding:0;border:1px solid #596179;background:radial-gradient(ellipse at 50% 0,#263045,#0d1624 75%);border-radius:8px;box-shadow:0 20px 90px #000a;overscroll-behavior:contain}dialog::backdrop{background:#030911b8;backdrop-filter:blur(5px)}.panel-heading{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:20px 24px 16px;background:#121d2bf5;border-bottom:1px solid #354156}.panel-heading small{font-size:9px;letter-spacing:2px;color:var(--gold)}.panel-heading h1{font:27px Georgia;margin:3px 0 0}.panel-heading .icon-button{font-size:27px;color:#a0afbf;box-shadow:none;width:37px;border-color:#36465a}.panel-heading .icon-button:focus{outline-offset:-5px}#panel-content{padding:22px 24px}.panel-intro{color:#a7b6c6;font-size:13px;line-height:1.7;margin:0 0 20px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:15px 0 24px}.stat-box{padding:15px 10px;background:#111f30;border:1px solid #34475d;text-align:center}.stat-box strong{display:block;color:var(--mint);font-size:23px}.stat-box small{font-size:10px;color:#95a6bc}.roster{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.roster-card{border:1px solid #374b61;background:#101e2d;padding:14px;border-radius:5px}.roster-head{display:flex;gap:12px;align-items:center}.roster-head .portrait{width:65px;height:77px;flex-shrink:0}.roster-head .portrait img{width:260px;height:173.333px;left:calc(var(--col)*-65px);top:calc(var(--row)*-86.667px)}.roster-card h2{font:18px Georgia;margin:0}.roster-card small{font-size:10px;color:#9d8cb6}.roster-card p{font-size:12px;line-height:1.6;color:#9fb1c4;min-height:55px}.roster-meta{display:flex;justify-content:space-between;font-size:11px;margin-bottom:12px;color:#b8c8d5}.primary,.secondary{min-height:44px;border:1px solid #4c8c7f;border-radius:4px;padding:10px 16px;background:linear-gradient(#214f46,#133c36);color:#b8f3df;font-size:12px}.primary:hover:not(:disabled){filter:brightness(1.2)}.secondary{background:#152337;border-color:#405571;color:#bacbe0}.roster-card .primary{width:100%}.roster-card.equipped{border-color:#558775;box-shadow:inset 0 0 20px #3b8b7120}.roster-card.locked{background:#0b1726}.seal-row{display:flex;gap:7px;margin:10px 0;color:#748096;align-items:center;font-size:11px}.seal-row i{height:14px;width:14px;display:block;border:1px solid #70617d;transform:rotate(45deg);background:#151c2d}.seal-row i.filled{background:#9a79c1;border-color:#d1b0f2;box-shadow:0 0 10px #8e63bf70}.seal-row span{margin-left:6px}.hunt-card{padding:18px;border:1px solid #51415d;background:#191b2d;margin:12px 0;border-radius:5px}.hunt-card h2{font:21px Georgia;margin:0}.hunt-card p{color:#a99db7;font-size:12px}.book-tabs{display:flex;gap:8px;margin-bottom:12px}.book-tabs span{border-bottom:1px solid #5a4e70;padding:7px 13px;color:#bca9d7;font-size:10px;letter-spacing:1px}.tree{position:relative;height:380px;background:radial-gradient(ellipse at 50% 40%,#40334877,#0b1725 70%);border:1px solid #45455d;border-radius:6px;overflow:hidden;margin-bottom:16px}.tree svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.tree-node{position:absolute;transform:translate(-50%,-50%);width:48px;height:48px;border:1px solid #655776;border-radius:50%;background:radial-gradient(#303044,#141d2c);box-shadow:0 0 0 4px #152032,0 0 0 5px #394255;color:#b6abc8;padding:12px}.tree-node.learned{border-color:#78ddbe;color:#9ef4d7;background:radial-gradient(#245744,#112b2a);box-shadow:0 0 0 4px #172834,0 0 0 5px #4b8474,0 0 18px #5bc9a830}.tree-node.available{border-color:#b49cd8;box-shadow:0 0 0 4px #1c2438,0 0 0 5px #645484,0 0 18px #9c7ada25}.tree-node.selected{outline:2px solid var(--gold);outline-offset:7px}.tree-node.locked{opacity:.5}.node-detail{border:1px solid #4b465e;padding:18px;background:#1c2033}.node-detail h2{font:22px Georgia;margin:0 0 7px}.node-detail p{font-size:12px;color:#b7b6c6}.node-detail .primary{min-width:170px}.node-progress{font-size:11px;color:#8e9fb5;margin-top:12px}.spell-card{display:flex;gap:18px;padding:20px;border:1px solid #3c665e;background:#102b29;margin-bottom:15px}.spell-card>span{width:55px;height:65px;color:var(--mint);flex-shrink:0}.spell-card h2{font:23px Georgia;margin:0}.spell-card p{font-size:12px;color:#a0b9b7}.reset-ledger{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.reset-ledger>div{border:1px solid #38495d;padding:14px;background:#111f2d}.reset-ledger h3{margin:0 0 8px;font-size:13px;color:var(--gold)}.reset-ledger p{font-size:12px;line-height:1.7;color:#acb9cb}.ascend-art{height:105px;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse,#60439460,transparent 70%)}.ascend-art span{width:68px;height:85px;color:#bb9af0;filter:drop-shadow(0 0 20px #9270d9)}.danger-note{color:#b99893;font-size:11px;margin:12px 0}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:15px 0;padding-bottom:15px;border-bottom:1px solid #2f4055}.setting-row p{font-size:12px;color:#97a9bc}.setting-row strong{font-size:13px}.notice-panel{color:#c5b7a0;border:1px solid #5f513a;background:#2a2318;padding:18px}.modal-actions{display:flex;gap:10px;flex-wrap:wrap}#toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%) translateY(15px);opacity:0;pointer-events:none;padding:13px 22px;max-width:min(550px,90vw);background:#172d2ff5;border:1px solid #5b9185;color:#d5eee6;box-shadow:0 8px 28px #0009;border-radius:5px;z-index:20;font-size:13px;transition:opacity .18s,transform .18s;text-align:center}#toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}
@media(min-width:1500px){.app{padding-top:24px}.battleground{height:600px}}@media(max-width:1050px){.brand{min-width:130px;font-size:16px}.brand-rune{width:32px;height:44px;font-size:31px}.brand small{letter-spacing:3px;font-size:8px}.resource-detail{display:none}.topbar{height:73px}.wallet{padding:10px 13px}.wallet strong{font-size:24px}.hero-summary{min-width:125px;padding:10px}.bottom-nav button{gap:7px}.upgrade-card{grid-template-columns:35px 1fr auto;padding:10px;gap:4px}.upgrade-card .portrait{width:35px}.upgrade-button{width:30px}}
@media(max-width:700px){.app{padding:8px 8px 0}.topbar{height:63px;gap:6px;margin-bottom:7px}.brand{display:none}.wallet{padding:9px 10px;gap:7px;border-radius:3px}.wallet strong{font-size:22px}.wallet small{font-size:8px;letter-spacing:1.2px}.resource-icon{width:27px;height:32px}.hero-summary{min-width:92px;padding:8px;gap:6px}.hero-summary>span:first-child{width:20px;height:26px}.hero-summary small{font-size:7px;letter-spacing:.4px}.hero-summary strong{font-size:18px}.microbar{width:48px}.settings-button{width:34px;padding:8px}.battleground{height:clamp(340px,51dvh,520px);border-radius:4px 4px 0 0}.chapter-badge{left:10px;width:78px;padding:11px 6px 22px}.chapter-badge>span{width:25px;height:28px;margin-bottom:5px}.chapter-badge small{font-size:7px;letter-spacing:1px}.chapter-badge strong{font-size:11px;line-height:1.3}.wave-hud{top:17px;width:200px;left:60%}.region-label{font-size:7px;letter-spacing:1.5px}.wave-title{font-size:12px;margin:3px 0 8px}.wave-title strong{font-size:18px}.wave-track i{width:6px;height:6px;margin:0 6px}.wave-track i:not(:last-child):after{left:5px;top:2px;width:13px;height:1px}.wave-track i:last-child{width:9px;height:9px}.wave-hint{font-size:8px;margin-top:7px}.boss-tracker{right:10px;top:103px;padding:6px 9px;gap:6px}.boss-tracker>span:first-child{width:22px;height:26px}.boss-tracker small{font-size:6px;letter-spacing:1px}.boss-tracker strong{font-size:11px}.boss-tracker span span{font-size:8px}.scene-controls{left:10px;right:auto;top:145px}.glass-button{padding:6px;min-height:31px;font-size:9px}.glass-button>span:first-child{width:12px;height:14px}.hero-status{left:11px;bottom:22%;font-size:8px}.hero-status>#battle-status{display:none}.health-track{width:39px}.spell-action{right:10px;bottom:20px;min-height:42px;gap:6px;padding:7px 8px}.spell-action>span:first-child{width:24px;height:25px}.spell-action strong{font-size:9px}.spell-action small{font-size:7px}.spell-action kbd{display:none}.scene-caption{left:12px;bottom:26px;font-size:10px;max-width:46%;line-height:1.4}.enemy-hud{right:7%;top:53%;width:70px}.enemy-hud small{font-size:8px}.enemy-hud>span{font-size:7px}.enemy-hud.boss{width:110px;right:5%;top:46%}.command-deck{padding:10px 10px 0}.deck-heading{font-size:7px;margin-bottom:7px;letter-spacing:1px}.text-button{font-size:9px;min-height:22px;padding:0}.text-button>span{font-size:15px;margin-left:7px}.upgrades{grid-template-columns:repeat(4,1fr);gap:5px}.upgrade-card{min-height:106px;padding:8px 6px;display:flex;flex-direction:column;align-items:stretch;gap:0}.upgrade-card .portrait{height:30px;width:36px;position:absolute;top:4px;right:3px;opacity:.55}.upgrade-card .portrait img{width:144px;height:96px;left:calc(var(--col)*-36px);top:calc(var(--row)*-48px)}.upgrade-card strong{font-size:9px;white-space:nowrap;position:relative;padding-top:3px}.upgrade-card small{font-size:8px;position:relative;padding-top:2px}.upgrade-card .price{font-size:10px;margin-top:10px;position:relative}.upgrade-button{width:100%;height:26px;min-height:26px;font-size:19px;margin-top:5px;align-self:stretch;line-height:19px}.empty-card{min-height:106px;gap:5px;padding:5px}.empty-card strong{font-size:9px}.empty-card small{font-size:7px}.journey-row{padding:9px 0;gap:8px}.journey-icon{width:21px;height:25px}.journey-row strong{font-size:10px}.journey-row small{font-size:8px}.journey-row>button{width:27px;height:31px;font-size:20px}.bottom-nav{gap:5px;margin-top:8px}.bottom-nav button{min-height:66px;flex-direction:column;gap:4px;border-radius:4px}.bottom-nav button>span{width:24px;height:28px}.bottom-nav button strong{font-size:8px;letter-spacing:.3px}.notification{width:5px;height:5px;right:8px;top:7px}.discovery-banner{padding:10px 12px;gap:12px;margin-top:8px}.book-emblem{width:32px;height:36px}.discovery-banner small{font-size:6px;letter-spacing:1px}.discovery-banner strong{font-size:13px}.discovery-banner span span{font-size:8px}.banner-nodes{display:none}.banner-arrow{margin-left:auto;font-size:24px}footer{font-size:6px;padding:8px 2px}.panel-heading{padding:16px}.panel-heading h1{font-size:25px}#panel-content{padding:16px}.roster{gap:8px}.roster-card{padding:10px}.roster-head{gap:5px}.roster-head .portrait{width:45px}.roster-card h2{font-size:15px}.roster-card p{font-size:10px;min-height:67px}.roster-card small{font-size:8px}.roster-meta{font-size:9px;gap:5px}.roster-card .primary{font-size:10px;padding:8px}.tree{height:365px}.tree-node{width:41px;height:41px;padding:10px}.reset-ledger{gap:8px}.reset-ledger>div{padding:10px}.reset-ledger p{font-size:11px}}
@media(max-width:365px){.settings-button{display:none}.wallet{padding:8px}.wallet strong{font-size:19px}.hero-summary{min-width:87px}.upgrades{gap:4px}.upgrade-card strong{font-size:8px}.wave-hud{left:61%;width:175px}.wave-track i{margin:0 5px}.wave-track i:not(:last-child):after{width:11px}.boss-tracker{top:106px}.roster{grid-template-columns:1fr}.roster-card p{min-height:0}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Controls retain their bounds when the pause icon changes. */
#pause{width:38px;max-width:38px;height:38px;max-height:38px;justify-content:center;flex-shrink:0}#pause svg{width:16px;height:17px}.scene-controls{align-items:center}.upgrade-button{min-height:44px}.coin-detail{fill:#9d6d2e}
@media(max-width:700px){#pause{width:32px;max-width:32px;height:32px;max-height:32px;min-height:32px}.upgrade-button{min-height:36px;height:36px}.upgrade-card,.empty-card{min-height:116px}}
.book-emblem{width:112px;height:61px;flex-shrink:0;transform:none;filter:drop-shadow(0 0 12px #a97cba30)}.book-emblem img{width:100%;height:100%;object-fit:contain}.discovery-banner{padding-top:9px;padding-bottom:9px}
@media(max-width:700px){.book-emblem{width:65px;height:48px}.discovery-banner{gap:8px;padding:8px}.discovery-banner strong{font-size:12px}}
@media(max-width:700px){.enemy-hud{top:46%}.enemy-hud.boss{top:35%}}
/* Mobile labels stay readable and upgrade actions keep a full touch target. */
@media(max-width:700px){.upgrade-card strong{font-size:10px}.upgrade-card small{font-size:9px}.upgrade-card .price{font-size:11px}.upgrade-button{height:44px;min-height:44px}.upgrade-card,.empty-card{min-height:126px}.bottom-nav button strong{font-size:9px}.deck-heading{font-size:8px}.text-button{font-size:10px}.roster-card p{font-size:11px}.roster-meta{font-size:10px}.journey-row small{font-size:9px}.hero-summary small{font-size:8px}.wallet small{font-size:9px}}
@media(max-width:365px){.upgrade-card strong{font-size:9px}.bottom-nav button strong{font-size:8px}}
/* Chapter expansion: keep the approved main-screen frame and add depth inside its menus. */
.chapter-badge em{display:block;font:9px 'Trebuchet MS';margin-top:9px;color:#b69e81}.chapter-badge:hover{filter:brightness(1.15)}
.hero-card{border-color:#947d5b}.command-icon{display:block;width:36px;height:43px;color:#a78bd9;filter:drop-shadow(0 0 9px #bca3ee40)}
.summon-card{border:1px solid #3e5067;background:linear-gradient(135deg,#182738,#0e1928);border-radius:4px;display:grid;grid-template-columns:48px 1fr;gap:0 9px;padding:10px 13px;text-align:left;align-content:center}.summon-card .portrait{grid-row:1/4}.summon-card strong{font-size:12px;font-weight:normal}.summon-card small{font-size:10px;color:#8ca7bc}.summon-card>span:last-child{font-size:11px;color:#92c9bb;margin-top:6px}.summon-card:hover{border-color:#719b8c}
.book-tabs button{background:transparent;border:0;border-bottom:1px solid #5a4e70;min-height:44px;padding:7px 13px;color:#9d90b2;font-size:11px;letter-spacing:1px}.book-tabs button.selected{color:#e0cbed;border-color:#c5a4df;background:#30283d}
.command-training{border:1px solid #675380;background:#221e35;padding:15px;display:flex;align-items:center;justify-content:space-between;gap:12px}.command-training p{font-size:12px;color:#afa4c1;margin-bottom:0}.command-training .primary{flex-shrink:0}
.world-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.world-card{border:1px solid #4b5068;background:#101c2b;border-radius:5px;overflow:hidden}.world-art{height:150px;background-size:cover;background-position:center 30%;display:flex;align-items:flex-end}.world-art span{font-size:10px;letter-spacing:1px;padding:8px 12px;background:#091320df;width:100%;color:#ded3b8}.world-info{padding:14px}.world-info h2{font:19px Georgia;margin:0 0 8px}.world-info p{font-size:12px;color:#a6b6c7;min-height:35px}.world-info small{color:#99cdbb;font-size:11px}.world-info button{display:block;width:100%;margin-top:12px;font-size:11px;padding:8px}.undiscovered{filter:saturate(.35);opacity:.7}.section-title{font:24px Georgia;margin:28px 0 14px}.bestiary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.bestiary-entry{display:flex;align-items:center;gap:12px;border:1px solid #36455d;padding:12px;background:#142131}.bestiary-entry .portrait{flex-shrink:0}.bestiary-entry strong{font-size:12px;display:block}.bestiary-entry small,.bestiary-entry div>span{display:block;font-size:10px;color:#9dabc0;margin-top:4px}.bestiary-entry div>span{color:#a9cebb}
#boss-mechanic{display:block;line-height:1.4;color:#d6b7ee;font-size:10px;margin-top:5px}.enemy-hud.boss{top:30%;width:210px;right:4%}#hero-life-label{color:#cab8e8}.hero-status{bottom:18%;gap:3px}.portrait svg{overflow:hidden}
@media(max-width:700px){.command-icon{position:absolute;top:6px;right:6px;width:24px;height:26px;opacity:.4}.summon-card{padding:7px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.summon-card .portrait{height:54px;width:40px}.summon-card strong{font-size:10px}.summon-card small{font-size:9px}.summon-card>span:last-child{font-size:10px}.chapter-badge em{font-size:8px}.world-grid{grid-template-columns:1fr}.world-art{height:145px}.world-info p{min-height:0}.bestiary{grid-template-columns:1fr}.command-training{flex-direction:column;align-items:stretch}.enemy-hud.boss{top:36%;right:4%;width:130px}#boss-mechanic{font-size:9px}.hero-status{bottom:17%;font-size:8px}.upgrade-card small{font-size:8px}.upgrade-card strong{white-space:normal}.panel-intro{font-size:12px}.roster-head .portrait{height:65px;width:40px}}
@media(max-width:365px){.upgrade-card strong,.summon-card strong{font-size:9px}.upgrade-card small{font-size:8px}.enemy-hud.boss{width:115px}}
.chapter-badge strong{hyphens:auto;overflow-wrap:anywhere}.scene-caption #boss-mechanic{font:12px/1.5 'Trebuchet MS';margin:0;color:#d7c3eb}.scene-caption #boss-mechanic:empty{display:none}
@media(max-width:700px){.scene-caption #boss-mechanic{font-size:10px}.enemy-hud.boss small{display:none}.enemy-hud.boss{top:37%}}
.roster{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-head>div{min-width:0}.roster-card h2{overflow-wrap:anywhere;hyphens:auto}.roster-card .primary{white-space:normal}.roster-card{min-width:0}.roster-meta{flex-wrap:wrap}
@media(max-width:700px){.roster-card h2{font-size:14px}.roster-card .roster-head{align-items:flex-start}.roster-card .roster-head .portrait{width:32px;height:49px}}
@media(max-width:365px){.roster{grid-template-columns:minmax(0,1fr)}}
/* Two permanent hero upgrades and exactly three visible summon slots. */
.upgrades{grid-template-columns:repeat(2,minmax(0,1fr))}.formation{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}.formation .summon-card,.formation .empty-card{min-height:78px}.formation .summon-card{grid-template-columns:44px minmax(0,1fr)}.formation .summon-card strong{overflow-wrap:anywhere}.formation .empty-card{gap:2px}.formation .portrait{width:42px;height:52px}
@media(max-width:700px){.upgrades .upgrade-card{display:grid;grid-template-columns:34px minmax(0,1fr) 36px;min-height:80px;padding:9px;gap:4px}.upgrades .upgrade-card .portrait,.upgrades .command-icon{position:static;width:32px;height:43px;opacity:1}.upgrades .upgrade-card strong{font-size:11px}.upgrades .upgrade-card small{font-size:9px}.upgrades .upgrade-card .price{margin-top:4px}.upgrades .upgrade-button{width:36px;height:44px;margin:0;align-self:center}.formation{gap:6px;margin-top:7px}.formation .summon-card,.formation .empty-card{min-height:94px;padding:6px}.formation .portrait{width:36px;height:39px}.formation .summon-card strong{font-size:10px}.formation .summon-card>span:last-child{margin-top:3px}.formation .empty-card small{font-size:9px}}
@media(max-width:365px){.upgrades .upgrade-card{grid-template-columns:minmax(0,1fr) 32px}.upgrades .upgrade-card .portrait,.upgrades .command-icon{display:none}.upgrades .upgrade-button{width:32px}.formation .summon-card strong{font-size:9px}}
.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-box{min-width:0}.stat-box small{overflow-wrap:anywhere}
/* Active combat remains available from the first enemy. */
.enemy-target{position:absolute;left:68%;top:36%;width:29%;height:44%;padding:0;border:0;background:none;z-index:1;touch-action:manipulation;cursor:crosshair}.enemy-target>span{position:absolute;top:100%;left:0;width:100%;font-size:10px;color:#dabce9;text-shadow:0 1px 4px #000;opacity:0}.enemy-target:hover:not(:disabled)>span,.enemy-target:focus-visible>span{opacity:1}.enemy-target:disabled{opacity:1}.enemy-target:focus-visible{outline:1px solid #bf98dd;outline-offset:-6px;border-radius:50%}.wave-hud,.chapter-badge,.boss-tracker,.scene-controls,.hero-status,.scene-caption{z-index:2}.enemy-hud{pointer-events:none;z-index:2;left:84%;right:auto;transform:translateX(-50%)}.enemy-hud.boss{left:84%;right:auto;width:210px;max-width:30%}
.active-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 16px;background:#101b2b;border:1px solid #34465d;border-top:0}.active-controls .spell-action{position:static;margin:0;min-height:69px;width:100%;justify-content:center}.manual-action{display:flex;align-items:center;justify-content:center;gap:12px;min-height:69px;padding:10px;border:1px solid #9575b6;border-radius:4px;background:linear-gradient(135deg,#453059,#241e3b);text-align:left;touch-action:manipulation}.manual-action>span:first-child{width:28px;height:32px;color:#d6b1fa}.manual-action strong{display:block;font-size:13px;color:#edddff}.manual-action small{display:block;font-size:10px;color:#c0add4;margin-top:3px}.manual-action kbd{font:9px 'Trebuchet MS';border:1px solid #79648c;padding:2px 4px;margin-left:8px;color:#bbabcb}.manual-action:active:not(:disabled){background:#66457a;transform:translateY(1px)}.manual-action:disabled{opacity:.78}.manual-action.charged{border-color:#ebc183;box-shadow:inset 0 0 18px #dbaf5640}.manual-action.charged strong{color:#ffe0a0}#tap-meter{display:flex;gap:5px;margin-top:6px}#tap-meter i{width:18px;height:3px;background:#5b466b}#tap-meter i.filled{background:#d0a0f4;box-shadow:0 0 5px #c998ee}.is-farming #farm{border-color:#d5a362;color:#ffe0a9;background:#4b3422}.is-farming .wave-hint{color:#f0c789}.scene-caption{max-width:80%}
@media(max-width:700px){.active-controls{gap:7px;padding:8px 10px}.manual-action{gap:6px;padding:9px 7px;justify-content:flex-start}.manual-action>span:first-child{width:21px;height:27px;flex-shrink:0}.manual-action strong{font-size:11px}.manual-action small{font-size:9px;line-height:1.4}.manual-action kbd{display:none}.active-controls .spell-action{gap:6px;padding:9px 7px;justify-content:flex-start}.active-controls .spell-action strong{font-size:11px}.active-controls .spell-action small{font-size:9px}.enemy-hud.boss{width:110px}.scene-caption{bottom:24px;max-width:84%}.is-farming .scene-controls{top:149px}.enemy-target{top:38%;height:42%}}
