:root{color-scheme:dark;--bg:#101119;--panel:#191a25;--panel2:#20212e;--line:#ffffff12;--text:#e6e4ed;--muted:#9693a7;--gold:#ceb17b;--purple:#b3a2e3;--hp:#c26975;--mp:#749bda;--sp:#8bb9aa;--font:'Noto Sans TC',system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.7 var(--font)}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}button{border:0}button:disabled{cursor:not-allowed;opacity:.4}button,a,input,select{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold)}a{color:var(--gold);text-underline-offset:3px}button{transition:background .15s,border-color .15s,color .15s,transform .15s}button:hover:not(:disabled){filter:brightness(1.14)}h1,h2,h3,p{margin:0}h1{font-size:24px;letter-spacing:2px;font-weight:500}h2{font-size:18px;letter-spacing:1px;font-weight:500}h3{font-size:14px;font-weight:500}small{font-size:12px}.icon{width:20px;height:20px;flex-shrink:0}.eyebrow{font:12px/1.5 var(--font);letter-spacing:2.5px;text-transform:uppercase;color:var(--gold)}.muted{color:var(--muted)}.gold{color:var(--gold)}.shell{display:grid;grid-template-columns:84px minmax(0,1fr);min-height:100vh}.rail{position:fixed;width:84px;inset:0 auto 0 0;background:#13141e;border-right:1px solid var(--line);z-index:10;display:flex;align-items:center;flex-direction:column;padding:24px 8px 18px}.brand-mark{width:42px;height:48px;color:var(--gold);margin-bottom:37px}.brand-mark svg{width:42px;height:48px}.rail-nav{display:flex;flex-direction:column;gap:12px;width:100%}.nav-button{background:none;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;color:#8c899e;font-size:12px;padding:12px 0;border-radius:6px;position:relative}.nav-button .icon{width:23px;height:23px}.nav-button.active{background:#d8b7720c;color:var(--gold)}.nav-button.active:before{content:'';position:absolute;width:2px;height:26px;background:var(--gold);left:-8px;top:20px}.rail-bottom{margin-top:auto}.rail-version{writing-mode:vertical-rl;color:#5e5b70;font-size:12px;letter-spacing:2px;margin-bottom:24px}.main-shell{grid-column:2;min-width:0}.topbar{height:79px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:24px;padding:0 30px;background:#14151eea;position:relative;z-index:5}.wordmark{font-family:'Cormorant Garamond',Georgia,serif;font-size:27px;letter-spacing:6px;color:#e5d9c1;line-height:1.1}.wordmark small{display:block;font:12px var(--font);letter-spacing:4px;color:#8e899a;margin-top:6px}.realm-tag{border-left:1px solid #ffffff16;padding-left:24px;line-height:1.5}.realm-tag span{display:block;font-size:12px;color:var(--muted);letter-spacing:1.5px}.top-right{margin-left:auto;display:flex;align-items:center;gap:20px}.wallet{display:flex;align-items:center;gap:8px;font-size:13px;color:#ddd4be}.wallet .icon{width:16px;color:var(--gold)}.version-tag{font-size:12px;border:1px solid #b6976b40;border-radius:3px;padding:4px 8px;color:#bca276;background:#bda37208}.avatar-mini{width:34px;height:34px;border:1px solid #b99d6755;border-radius:50%;background:#29283b;display:grid;place-items:center;color:var(--gold)}.player-strip{display:flex;align-items:center;gap:24px;padding:17px 30px;border-bottom:1px solid var(--line);background:#191922;min-height:91px}.player-identity{min-width:137px;display:flex;align-items:center;gap:12px}.level-medallion{width:38px;height:42px;display:grid;place-items:center;font:22px Georgia,serif;color:var(--gold);background:#c7a5660b;clip-path:polygon(50% 0,95% 24%,95% 76%,50% 100%,5% 76%,5% 24%);border-top:1px solid #b39765;border-bottom:1px solid #b39765}.player-identity h3{font-size:13px}.player-identity small{font-size:12px;letter-spacing:1px;color:var(--muted)}.resources{display:grid;grid-template-columns:1.25fr 1fr 1fr .8fr;gap:24px;max-width:900px;flex:1}.resource-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:7px;color:#bab6c9;font-size:12px;gap:8px}.resource-header strong{font-variant-numeric:tabular-nums;color:#e1dde9;font-size:12px;font-weight:500}.resource-header em{font-style:normal;color:#706c81;font-size:12px}.bar{height:4px;background:#ffffff0b;border-radius:6px;overflow:hidden}.bar-fill{height:100%;background:var(--c,var(--gold));transition:width .3s}.resource.overcharge .bar{height:4px}.save-indicator{font-size:12px;color:#868292;display:flex;align-items:center;gap:6px;white-space:nowrap}.save-dot{width:5px;height:5px;border-radius:50%;background:#87a895}.save-error .save-dot{background:#d16d7e}.save-error{color:#e896a3}.content{padding:25px 30px 0;max-width:1900px;margin:0 auto}.view-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:19px;gap:20px}.view-heading h1{margin-top:3px}.view-heading .subtitle{margin-top:5px;color:var(--muted);font-size:12px}.heading-actions{display:flex;align-items:center;gap:8px}.subtle-button{border:1px solid #ffffff18;background:#ffffff03;border-radius:4px;padding:7px 11px;display:inline-flex;align-items:center;justify-content:center;gap:7px;color:#bcb7cb;font-size:12px}.subtle-button .icon{width:15px;height:15px}.primary-button{border:1px solid #d9bd8390;background:linear-gradient(125deg,#cfb580,#a78a56);color:#201a15;font-weight:600;border-radius:4px;padding:11px 19px;display:inline-flex;align-items:center;justify-content:center;gap:10px}.primary-button .icon{width:17px}.combat-layout{display:grid;grid-template-columns:minmax(0,1fr) 268px;gap:18px}.battle-main{min-width:0}.arena{height:385px;position:relative;border:1px solid #bdb1cc25;border-radius:7px;isolation:isolate;overflow:hidden;background:#19172b url('./public/assets/twilight-arena.png') center 55%/cover}.arena:before{position:absolute;inset:0;content:'';background:linear-gradient(180deg,#1010199c,transparent 43%,#0f1018d9 100%);z-index:-1}.arena:after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 80px #10101888;z-index:4}.arena-top{position:absolute;left:20px;right:20px;top:17px;display:flex;justify-content:space-between;gap:15px;z-index:3}.arena-title{display:flex;gap:9px;align-items:center;font-size:12px;letter-spacing:1px;color:#dbd4e7}.arena-title .icon{width:15px;color:var(--gold)}.round-chip{font-size:12px;letter-spacing:.5px;color:#dfd6e8;background:#14111f9e;border:1px solid #d1c2dc30;border-radius:3px;padding:4px 8px}.turn-strip{position:absolute;left:20px;bottom:14px;right:20px;display:flex;justify-content:space-between;z-index:5;align-items:center}.time-stats{display:flex;gap:15px;color:#b0a7c2;font-size:12px}.time-stats strong{color:#e2dbea;font-weight:500;font-size:12px}.stage-note{font-size:12px;color:#bbb0c4;text-align:right}.enemies{display:flex;align-items:flex-end;justify-content:center;height:100%;gap:12px;padding:55px 20px 58px}.enemy-card{position:relative;background:transparent;border:0;width:31%;height:100%;max-width:240px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;isolation:isolate;padding:0}.enemy-card:before{content:'';position:absolute;bottom:49px;width:85%;height:22px;border-radius:50%;background:#141321b3;filter:blur(7px);z-index:-1}.enemy-card.selected:before{box-shadow:0 0 14px 1px #e1c69345;border:1px solid #d4bb80a6;background:#ad8b5833;filter:blur(1px)}.enemy-card.selected .enemy-sprite{filter:drop-shadow(0 0 8px #d7c4a555)}.enemy-sprite{height:220px;width:150px;flex-shrink:0;position:relative;overflow:hidden;filter:drop-shadow(0 10px 8px #0008);transition:filter .2s,transform .2s;pointer-events:none}.enemy-card:hover .enemy-sprite{transform:translateY(-4px)}.enemy-sprite img{position:absolute;height:220px;width:auto;max-width:none;top:0;pointer-events:none}.enemy-sprite.wolf img{left:0}.enemy-sprite.wraith{width:144px}.enemy-sprite.wraith img{left:-149.6px}.enemy-sprite.golem{width:147px}.enemy-sprite.golem img{left:-293.2px}.enemy-name{font-size:12px;color:#eee7f5;font-weight:500;letter-spacing:1px;text-shadow:0 2px 6px #000;margin-top:-7px;z-index:1}.enemy-level{font-size:12px;color:#c5bace;letter-spacing:1px}.enemy-health{width:115px;margin-top:5px}.enemy-health .bar{height:3px;background:#ffffff15}.enemy-health .bar-fill{background:#cb8794}.enemy-health small{font-size:12px;color:#c0b3c9}.target-caret{position:absolute;color:#dec189;font-size:13px;top:4px;display:none}.enemy-card.selected .target-caret{display:block}.enemy-card.dead{opacity:.22;filter:grayscale(1)}.enemy-card.dead .enemy-sprite{transform:translateY(10px)}.scan-badge{position:absolute;right:18px;top:24px;color:#bfd4c8;background:#173b30a0;font-size:12px;padding:2px 5px;border:1px solid #a4d9c84d;border-radius:2px}.enemy-tooltip{position:absolute;left:50%;bottom:60%;transform:translateX(-50%);width:180px;background:#151420f2;border:1px solid #bea47b55;padding:9px;text-align:left;font-size:12px;color:#d0c8db;z-index:20;border-radius:4px;display:none;pointer-events:none}.enemy-card:hover .enemy-tooltip,.enemy-card:focus-visible .enemy-tooltip{display:block}.target-strip{border:1px solid var(--line);border-top:0;padding:10px 15px;background:#1b1a26;border-radius:0 0 5px 5px;display:flex;align-items:center;gap:10px;font-size:12px;color:#a9a2ba}.target-strip .icon{width:14px;height:14px;color:var(--gold)}.target-strip strong{font-weight:500;color:#e0d8e9}.target-strip span:last-child{margin-left:auto;color:#80798f}.action-panel{margin-top:17px;padding:17px 17px 15px;background:linear-gradient(125deg,#22212d,#191b25);border:1px solid var(--line);border-radius:6px}.action-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.action-heading h3{font-size:12px;letter-spacing:1px;color:#cfc8dc}.action-heading small{color:#777286;font-size:12px}.action-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.action-button{min-width:0;background:#12131d70;border:1px solid #9e95b323;border-radius:4px;min-height:77px;padding:9px 5px 7px;display:flex;flex-direction:column;align-items:center;gap:3px;position:relative;color:#c8bfd8}.action-button:hover:not(:disabled){background:#c1a7730b;border-color:#bca06a75}.action-button .icon{width:24px;height:24px;margin-bottom:3px}.action-button.attack{border-color:#b59a646b;background:#b4976010;color:#dcc18a}.action-button.fire{color:#d69882}.action-button.cure{color:#9dbbad}.action-button.scan{color:#b5abdb}.action-button.spirit{color:#c3a0d6}.action-button strong{font-size:12px;font-weight:500;white-space:nowrap}.action-button small{font-size:12px;color:#827b94;white-space:nowrap}.keycap{position:absolute;right:5px;top:3px;color:#6d657c;font:12px var(--font)}.item-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.item-button{background:transparent;border:1px solid var(--line);border-radius:3px;display:flex;align-items:center;gap:6px;padding:5px 8px;color:#afa7bd;font-size:12px}.item-button .icon{width:13px;height:13px}.item-button b{font-weight:400;color:#736a81}.flee-button{margin-left:auto;background:none;color:#898091;font-size:12px;padding:5px 4px}.battle-aside{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);background:#191923;border-radius:6px;overflow:hidden}.aside-heading{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;border-bottom:1px solid var(--line)}.aside-heading h3{font-size:12px;letter-spacing:1px;display:flex;align-items:center;gap:8px}.aside-heading .icon{width:15px;color:var(--gold)}.aside-heading button{background:none;color:#8d839e;padding:0}.aside-heading button .icon{width:14px}.log-list{padding:13px 16px;flex:1;max-height:310px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#4b4259 transparent}.log-empty{color:#8d839e;font-size:12px;line-height:1.9}.log-entry{position:relative;border-left:1px solid #b29a7528;margin-left:3px;padding:0 0 14px 14px;color:#aaa0ba;font-size:12px;line-height:1.8}.log-entry:before{content:'';position:absolute;left:-3px;top:7px;width:5px;height:5px;background:#746583;border-radius:50%}.log-entry:first-child{color:#e0d4e9}.log-entry.damage:before,.log-entry.enemy:before{background:#b87483}.log-entry.heal:before,.log-entry.player:before{background:#9eac88}.log-entry.system:before{background:#c5a86d}.aside-target{padding:15px 16px;border-top:1px solid var(--line);background:#1e1b2a}.aside-target .eyebrow{font-size:12px;letter-spacing:1.5px;margin-bottom:8px}.aside-target h3{font-size:13px;margin-bottom:8px}.scan-info{font-size:12px;color:#9b92aa;line-height:1.9}.scan-info .icon{height:12px;width:12px;vertical-align:middle}.resistance-row{display:flex;justify-content:space-between;gap:10px;color:#beb5cb;font-size:12px}.rules-mini{padding:13px 16px;font-size:12px;color:#787184;border-top:1px solid var(--line);line-height:1.8}.rules-mini button{background:none;color:#b8a17a;font-size:12px;padding:0}.footer{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:16px 0 15px;color:#686273;font-size:12px;letter-spacing:.4px}.footer button{background:none;color:#9b8a71;font-size:12px;padding:0}.camp-overlay{position:absolute;z-index:6;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(0deg,#11101ce8,#11101c11);padding:25px}.camp-seal{width:62px;height:62px;border:1px solid #d4b88060;transform:rotate(45deg);display:grid;place-items:center;background:#1a192c7a;margin-bottom:28px}.camp-seal .icon{width:32px;height:32px;transform:rotate(-45deg);color:#d7bc85}.camp-overlay h2{font:32px 'Cormorant Garamond',Georgia,serif;letter-spacing:4px;color:#efe2c7;margin-bottom:10px}.camp-overlay p{font-size:14px;color:#c0b2d0;max-width:330px;margin-bottom:23px}.camp-overlay .eyebrow{font-size:12px;margin-bottom:8px}.camp-buttons{display:flex;gap:10px}.camp-overlay .subtle-button{background:#1e1b2c;min-width:90px}.result-badge{font-size:12px;letter-spacing:2px;color:#d4b982;margin-top:16px}.panel{background:linear-gradient(135deg,#20202b,#191a24);border:1px solid var(--line);border-radius:6px}.armory-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:18px}.inventory-panel{padding:17px}.inventory-tools{display:flex;gap:8px;margin:14px 0}.search-field{width:100%;background:#10111a;border:1px solid var(--line);padding:8px 10px;color:#d8d1e2;border-radius:4px;font-size:12px}.filter-row{display:flex;gap:4px;margin-bottom:13px}.filter-button{padding:4px 9px;border:1px solid transparent;background:none;color:#8f869e;font-size:12px;border-radius:3px}.filter-button.active{border-color:#ba9b6c38;color:var(--gold);background:#bda5700b}.inventory-list{display:flex;flex-direction:column;gap:7px;max-height:528px;overflow:auto;scrollbar-width:thin}.inventory-item{display:flex;align-items:center;gap:11px;text-align:left;padding:8px;border-radius:4px;border:1px solid #ffffff08;background:#12131c55;width:100%;position:relative}.inventory-item.active{border-color:#ceb17b66;background:#d6b97609}.item-thumb{width:48px;height:51px;border:1px solid #9990c023;background:radial-gradient(ellipse,#75608a22,transparent);border-radius:4px;flex-shrink:0;display:grid;place-items:center}.item-art{width:43px;height:45px}.item-art.large{width:150px;height:170px;filter:drop-shadow(0 9px 12px #0008)}.inventory-item strong{font-size:12px;line-height:1.6;display:block;font-weight:500}.inventory-item small{font-size:12px;color:#8b819d}.equipped-dot{position:absolute;right:8px;top:6px;color:#bca06c;font-size:12px}.item-quality{color:#b7a0d2}.workbench{overflow:hidden}.workbench-top{padding:25px 28px;display:flex;gap:29px;align-items:center;position:relative;background:radial-gradient(ellipse at 20% 30%,#78609620,transparent 70%);border-bottom:1px solid var(--line)}.equipment-showcase{width:180px;height:192px;flex-shrink:0;display:grid;place-items:center;position:relative;background:radial-gradient(ellipse,#bba3d719,transparent 65%)}.equipment-showcase:before{content:'';position:absolute;width:120px;height:120px;border:1px solid #a899bd28;transform:rotate(45deg)}.equipment-intro{flex:1}.equipment-intro h2{font-size:20px;margin:8px 0}.equipment-intro p{font-size:14px;color:#a197b0;margin-bottom:14px;max-width:440px;line-height:1.9}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.tag{padding:2px 7px;border:1px solid #ffffff18;border-radius:3px;font-size:12px;color:#aaa0b9}.tag.gold{border-color:#c3a57040;color:#c3a570}.bench-actions{display:flex;gap:8px;margin-top:17px}.bench-tabs{display:flex;gap:22px;padding:0 26px;border-bottom:1px solid var(--line)}.bench-tab{background:none;padding:12px 0;font-size:12px;color:#9a91ac;border-bottom:2px solid transparent}.bench-tab.active{color:var(--gold);border-color:var(--gold)}.bench-body{padding:21px 27px}.compare-heading{display:flex;justify-content:space-between;font-size:12px;color:#92899f;margin-bottom:11px}.stat-table{width:100%;display:flex;flex-direction:column}.stat-line{display:grid;grid-template-columns:1fr 100px 100px;padding:10px 0;border-bottom:1px solid #ffffff06;font-size:12px;color:#a8a0b5}.stat-line strong{text-align:right;font-size:12px;color:#ddd4e7;font-weight:500}.stat-line em{text-align:right;font-size:12px;font-style:normal;color:#8a8298}.stat-line em.up{color:#91b5a2}.stat-line em.down{color:#c1878e}.workbench-note{margin-top:17px;color:#7f758f;font-size:12px;line-height:1.9}.upgrade-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.upgrade-card{padding:14px;border:1px solid var(--line);border-radius:4px;background:#10111930}.upgrade-card h3{font-size:12px;color:#c4b8d2;margin-bottom:6px}.upgrade-card p{font-size:14px;color:#8c819c;min-height:40px}.upgrade-card .tag{display:inline-block;margin-top:10px}.character-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:18px}.character-card{padding:22px;text-align:center;overflow:hidden;position:relative;background:radial-gradient(ellipse at 50% 30%,#6c59782b,transparent 70%),#191a25}.portrait-frame{height:212px;display:grid;place-items:center;border-bottom:1px solid var(--line);margin-bottom:17px}.portrait-art{height:206px;filter:drop-shadow(0 8px 12px #0008)}.character-card h2{margin-bottom:3px}.character-card .eyebrow{margin-bottom:15px;font-size:12px}.character-card p{font-size:14px;color:#9e93ae}.character-card .tags{justify-content:center;margin:17px 0}.sheet-panel{padding:24px}.sheet-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.sheet-heading h2{font-size:15px}.attribute-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.attribute{display:flex;gap:11px;align-items:center;padding:12px 13px;border:1px solid var(--line);border-radius:4px;background:#14131e55}.attribute .icon{color:#a998bd;width:20px}.attribute span{flex:1;font-size:12px}.attribute small{display:block;font-size:12px;color:#7f738e;letter-spacing:1.5px}.attribute strong{font-size:19px;font-weight:400;color:#d1bfdc}.attribute button{width:23px;height:23px;border:1px solid #b79c6760;border-radius:3px;background:#b1976210;color:#d4b97d;font-size:15px}.derived-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:25px}.derived-stat{border-top:1px solid var(--line);padding:12px 0}.derived-stat small{display:block;color:#8c809d;font-size:12px}.derived-stat strong{font-size:21px;font-weight:400;color:#c7b9d5}.attribute-note{margin-top:18px;color:#8f839f;font-size:12px}.activities-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.activity-card{padding:22px;min-height:205px;position:relative;overflow:hidden}.activity-card.available{background:linear-gradient(90deg,#171725ea,#171725aa),url('./public/assets/twilight-arena.png') center/cover;border-color:#b99c6955}.activity-card .icon{width:27px;height:27px;color:#c7ac74;margin-bottom:15px}.activity-card h2{font-size:17px;margin-bottom:6px}.activity-card p{color:#91879f;font-size:14px;margin:9px 0 17px;max-width:280px}.activity-card .tag{display:inline-block}.rules-intro{padding:22px 25px;margin-bottom:17px;border-color:#b99c6930;display:flex;gap:17px;align-items:flex-start}.rules-intro .icon{color:var(--gold);width:24px;height:24px;flex-shrink:0}.rules-intro p{color:#a79bb5;font-size:14px;line-height:2;margin-top:7px}.ledger-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ledger-card{padding:17px 20px}.ledger-card h3{font-size:13px;color:#d3c7df;display:flex;align-items:center;justify-content:space-between;gap:10px}.ledger-card p{font-size:14px;color:#94889f;margin-top:7px;line-height:1.9}.ledger-card a{display:inline-block;margin-top:10px;font-size:12px}.modal-backdrop{position:fixed;inset:0;background:#090811bd;backdrop-filter:blur(8px);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:linear-gradient(135deg,#252332,#151621);border:1px solid #b49b6b55;box-shadow:0 20px 90px #0009;border-radius:8px;max-width:490px;width:100%;padding:30px;position:relative;max-height:90vh;overflow:auto}.modal.wide{max-width:700px}.modal-close{position:absolute;right:15px;top:15px;padding:4px;background:none;color:#96889f}.modal-close .icon{width:18px;height:18px}.modal-symbol{width:48px;height:48px;background:#bba4740b;border:1px solid #bca4723b;display:grid;place-items:center;color:var(--gold);border-radius:50%;margin-bottom:20px}.modal h2{font-size:21px;letter-spacing:1px;margin:7px 0 12px}.modal p,.modal li{color:#aaa0b8;font-size:14px;line-height:1.9}.modal ul{padding-left:19px}.modal-footer{margin-top:23px;display:flex;gap:9px;justify-content:flex-end}.notice-box{border:1px solid #bda36d30;background:#b9a26909;padding:13px 15px;border-radius:4px;font-size:12px;color:#c4b28e;line-height:1.9;margin-top:17px}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px;gap:12px}.settings-row small{display:block;color:#887c97;font-size:12px}.settings-row button{flex-shrink:0}.settings-row select{color:#d9cee4;background:#15131e;border:1px solid var(--line);padding:7px;border-radius:3px}.danger-button{background:#bb6b730b;color:#c8818a;border:1px solid #bd74832e;border-radius:4px;padding:8px 11px;font-size:12px}.empty-list{font-size:12px;color:#8e829b;padding:30px 5px}.full-log{max-height:55vh;overflow:auto;padding:12px 0}.full-log .log-entry{font-size:12px;padding-bottom:13px;margin-left:6px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:200;background:#272432;border:1px solid #bda47966;color:#e3d6ec;box-shadow:0 7px 30px #0006;border-radius:5px;padding:12px 22px;font-size:12px;max-width:90%;animation:toastIn .2s ease-out}.action-flash .arena{animation:arenaFlash .3s ease-out}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes arenaFlash{0%{box-shadow:inset 0 0 40px #cfadd22a}100%{box-shadow:none}}@keyframes toastIn{from{opacity:0;transform:translate(-50%,7px)}to{opacity:1;transform:translate(-50%,0)}}@media(min-width:1550px){.arena{height:445px}.enemy-sprite{height:260px;width:177px}.enemy-sprite img{height:260px}.enemy-sprite.wraith{width:170px}.enemy-sprite.wraith img{left:-176.8px}.enemy-sprite.golem{width:174px}.enemy-sprite.golem img{left:-346.5px}.combat-layout{grid-template-columns:minmax(0,1fr) 295px}.log-list{max-height:365px}.enemy-name{font-size:14px}.enemies{gap:35px}.content{padding-top:30px}}@media(max-width:1150px){.combat-layout{grid-template-columns:minmax(0,1fr) 225px}.topbar{padding:0 23px}.content{padding:23px 23px 0}.player-strip{padding:16px 23px;gap:16px}.resources{gap:15px}.save-indicator{display:none}.realm-tag{display:none}.arena{height:370px}.enemies{gap:0;padding-left:6px;padding-right:6px}.enemy-sprite{height:200px;width:136px}.enemy-sprite img{height:200px}.enemy-sprite.wraith{width:131px}.enemy-sprite.wraith img{left:-136px}.enemy-sprite.golem{width:134px}.enemy-sprite.golem img{left:-266.5px}.action-grid{gap:5px}.action-button strong{font-size:12px}.action-button small{font-size:12px}.action-panel{padding:13px 11px}.armory-layout,.character-layout{grid-template-columns:250px minmax(0,1fr)}.workbench-top{gap:13px;padding:20px}.equipment-showcase{width:125px}.item-art.large{width:120px;height:145px}.equipment-intro h2{font-size:16px}}@media(max-width:940px){.shell{grid-template-columns:65px minmax(0,1fr)}.rail{width:65px;padding-top:20px}.brand-mark{margin-bottom:23px;width:35px}.nav-button{font-size:12px}.combat-layout{grid-template-columns:minmax(0,1fr)}.battle-aside{display:none}.topbar{height:70px}.player-strip{gap:17px;padding:14px 20px}.resources{gap:14px}.player-identity{min-width:120px}.content{padding:20px 20px 0}.arena{height:390px}.enemies{gap:28px}.enemy-sprite{height:240px;width:163px}.enemy-sprite img{height:240px}.enemy-sprite.wraith{width:157px}.enemy-sprite.wraith img{left:-163.2px}.enemy-sprite.golem{width:160px}.enemy-sprite.golem img{left:-319.8px}.action-grid{gap:9px}.action-button strong{font-size:12px}.action-button small{font-size:12px}.view-heading{margin-bottom:15px}.armory-layout{grid-template-columns:225px minmax(0,1fr);gap:12px}.workbench-top{flex-direction:column;gap:0;align-items:flex-start}.equipment-showcase{align-self:center;width:130px;height:145px}.equipment-intro{padding-top:5px}.bench-body{padding:18px}.stat-line{grid-template-columns:1fr 70px 70px}.character-layout{grid-template-columns:210px minmax(0,1fr)}.sheet-panel{padding:18px}.attribute{padding:10px}.attribute .icon{display:none}.activities-grid{grid-template-columns:repeat(2,1fr)}.ledger-grid{grid-template-columns:1fr}.wallet{display:none}}@media(max-width:650px){.shell{display:block}.rail{inset:auto 0 0;width:100%;height:62px;flex-direction:row;padding:0 4px;background:#15131ff5;backdrop-filter:blur(18px);border-top:1px solid #c4ad7924;border-right:0;z-index:50}.brand-mark,.rail-bottom,.rail-version{display:none}.rail-nav{flex-direction:row;justify-content:space-around;gap:0}.nav-button{width:20%;padding:6px 0;gap:2px;font-size:12px;border-radius:0}.nav-button .icon{width:20px;height:20px}.nav-button.active:before{top:-5px;left:calc(50% - 12px);width:24px;height:2px}.main-shell{padding-bottom:64px}.topbar{height:63px;padding:0 17px;gap:10px}.wordmark{font-size:22px;letter-spacing:5px}.wordmark small{font-size:12px;letter-spacing:3px}.top-right{gap:10px}.version-tag{font-size:12px;padding:3px 6px}.avatar-mini{width:29px;height:29px}.player-strip{padding:11px 16px;gap:15px;align-items:flex-start}.player-identity{min-width:48px;max-width:55px;justify-content:center}.player-identity>div:last-child{display:none}.level-medallion{width:32px;height:36px;font-size:18px}.resources{grid-template-columns:repeat(2,1fr);gap:9px 15px}.resource-header{font-size:12px;margin-bottom:4px;line-height:1.2}.resource-header strong{font-size:12px}.resource-header em{font-size:12px}.bar{height:3px}.content{padding:18px 12px 0}.view-heading{gap:8px;margin-bottom:13px}.view-heading h1{font-size:19px;letter-spacing:1px}.view-heading .eyebrow{font-size:12px;letter-spacing:1.8px}.view-heading .subtitle{font-size:12px;max-width:235px}.heading-actions .subtle-button{font-size:12px;padding:6px 8px;gap:4px}.heading-actions .subtle-button .icon{height:13px;width:13px}.hide-mobile{display:none!important}.arena{height:350px;border-radius:5px}.arena-top{left:12px;right:12px;top:12px}.arena-title{font-size:12px;gap:5px}.round-chip{font-size:12px;padding:3px 6px}.enemies{gap:0;padding:52px 4px 58px}.enemy-card{width:33.333%}.enemy-sprite{height:175px;width:119px}.enemy-sprite img{height:175px}.enemy-sprite.wraith{width:114px}.enemy-sprite.wraith img{left:-119px}.enemy-sprite.golem{width:117px}.enemy-sprite.golem img{left:-233.2px}.enemy-name{font-size:12px;letter-spacing:0}.enemy-level{font-size:12px}.enemy-health{width:80px}.enemy-health small{font-size:12px}.target-caret{top:22px;font-size:12px}.scan-badge{font-size:12px;right:0;top:44px}.enemy-tooltip{display:none!important}.turn-strip{left:12px;right:12px;bottom:14px;align-items:flex-start}.time-stats{gap:9px;font-size:12px}.time-stats strong{font-size:12px}.stage-note{font-size:12px;max-width:90px;line-height:1.5}.target-strip{font-size:12px;padding:9px 10px;gap:6px}.target-strip span:last-child{font-size:12px}.action-panel{margin-top:12px;padding:12px 10px}.action-heading{margin-bottom:10px}.action-heading h3{font-size:12px}.action-heading small{font-size:12px}.action-grid{grid-template-columns:repeat(4,1fr);gap:6px}.action-button{min-height:66px;padding:7px 2px 5px}.action-button .icon{width:20px;height:20px;margin-bottom:1px}.action-button strong{font-size:12px}.action-button small{font-size:12px}.item-actions{flex-wrap:wrap;gap:6px;margin-top:9px;padding-top:10px}.item-button{font-size:12px;padding:5px 6px}.flee-button{font-size:12px}.footer{padding:13px 3px;align-items:flex-start;font-size:12px}.footer span{max-width:65%}.camp-overlay h2{font-size:26px;letter-spacing:2px}.camp-overlay p{font-size:14px;max-width:250px}.camp-seal{width:47px;height:47px;margin-bottom:23px}.camp-seal .icon{width:24px}.camp-overlay .primary-button{font-size:12px}.camp-overlay .eyebrow{font-size:12px}.camp-buttons{gap:7px}.camp-buttons .subtle-button{font-size:12px}.armory-layout,.character-layout{grid-template-columns:1fr}.inventory-panel{padding:13px}.inventory-tools{margin:10px 0}.inventory-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:206px;gap:5px}.inventory-item{gap:6px;padding:6px}.inventory-item strong{font-size:12px}.inventory-item small{font-size:12px}.item-thumb{width:36px;height:40px}.item-art{width:34px;height:37px}.equipped-dot{font-size:12px;right:4px;top:2px}.filter-row{margin-bottom:10px}.workbench-top{flex-direction:row;padding:18px 13px;gap:12px}.equipment-showcase{width:97px;height:140px}.equipment-showcase:before{width:82px;height:82px}.item-art.large{width:97px;height:120px}.equipment-intro h2{font-size:15px;line-height:1.7;margin:5px 0}.equipment-intro p{font-size:14px;margin-bottom:9px}.equipment-intro .eyebrow{font-size:12px}.bench-actions{margin-top:12px;gap:5px}.bench-actions .primary-button{font-size:12px;padding:8px 11px}.bench-actions .subtle-button{padding:5px 8px;font-size:12px}.bench-tabs{padding:0 17px;gap:21px}.bench-tab{font-size:12px}.bench-body{padding:17px}.character-card{padding:17px;display:grid;grid-template-columns:115px 1fr;text-align:left;column-gap:16px}.portrait-frame{grid-row:1/6;height:155px;margin:0;border:0}.portrait-art{height:155px}.character-card h2{font-size:18px;align-self:end}.character-card .eyebrow{font-size:12px;margin-bottom:5px}.character-card p{font-size:14px}.character-card .tags{justify-content:flex-start;margin:8px 0}.character-card .subtle-button{font-size:12px;justify-self:start}.attribute-grid{gap:8px}.attribute span{font-size:12px}.attribute .icon{display:block;width:17px}.attribute strong{font-size:17px}.attribute small{font-size:12px}.derived-stat strong{font-size:18px}.sheet-heading h2{font-size:14px}.activities-grid{grid-template-columns:1fr}.activity-card{min-height:155px;padding:19px}.activity-card .icon{margin-bottom:7px}.activity-card h2{font-size:15px}.activity-card p{font-size:14px}.rules-intro{padding:17px;gap:12px}.rules-intro h2{font-size:15px}.rules-intro p{font-size:14px}.ledger-card{padding:16px}.ledger-card h3{font-size:12px}.ledger-card p{font-size:14px}.modal{padding:25px 22px}.modal h2{font-size:18px}.modal p,.modal li{font-size:14px}.modal-footer .primary-button{font-size:12px;padding:10px 13px}.modal-symbol{width:42px;height:42px}.notice-box{font-size:12px}.settings-row{font-size:12px}.settings-row small{font-size:12px}.settings-row button{font-size:12px}.upgrade-grid{grid-template-columns:1fr 1fr}.upgrade-card{padding:12px}.upgrade-card h3{font-size:12px}.upgrade-card p{font-size:14px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}body.no-motion *,body.no-motion *:before,body.no-motion *:after{animation:none!important;transition:none!important}
.action-guide{background:none;color:#9d8aaf;font-size:12px;display:flex;align-items:center;gap:5px;padding:0}.action-guide .icon{width:12px;height:12px}.action-reference{display:flex;flex-direction:column;gap:15px;max-height:58vh;overflow:auto;padding-right:6px;margin-top:18px}.action-reference section{border-bottom:1px solid var(--line);padding-bottom:13px}.action-reference h3{display:flex;align-items:center;gap:8px;font-size:12px;color:#d4bfdc;margin-bottom:6px}.action-reference h3 .icon{height:17px;width:17px;color:var(--gold)}.action-reference h3 span{font-size:12px;color:var(--gold);margin-left:auto}.action-reference p{font-size:14px}.action-reference small{color:#b08592;font-size:12px;display:block;margin-top:5px}
.effect-strip{display:flex;gap:6px;flex-wrap:wrap;padding:10px 1px 0}.effect-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#b7c8b9;border:1px solid #9eb79d30;background:#8caa9309;padding:3px 7px;border-radius:3px}.effect-chip .icon{height:12px;width:12px}.effect-chip b{font-size:12px;font-weight:400;color:#91a291}.effect-chip.focus{color:#c1b2db;border-color:#b0a1c333;background:#b198cb09}.effect-chip.focus b{color:#ad98c2}.effect-chip.spirit{color:#d2b693;border-color:#c2a37933;background:#cba97809}.effect-chip.spirit b{color:#b09a7f}.resolution-strip{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:#a397b2;padding:10px 3px 0}.resolution-strip span:last-child{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.resolution-strip b{font-weight:400;color:#82798f}.resolution-strip b.loss{color:#cd8795}.resolution-strip b.gain{color:#9ac6b1}.resolution-strip b.mana{color:#98b5dc}.resolution-strip b.charge{color:#d6bd89}.damage-float{position:absolute;top:29%;left:50%;transform:translateX(-50%);font:30px Georgia,serif;color:#ffdec0;z-index:15;text-shadow:0 2px 3px #321626,0 0 10px #150914;pointer-events:none;animation:damageFloat .95s ease-out forwards;white-space:nowrap}.damage-float.critical{font-size:24px;color:#ffd77f}@keyframes damageFloat{0%{opacity:0;transform:translate(-50%,14px) scale(.7)}20%{opacity:1;transform:translate(-50%,0) scale(1.15)}75%{opacity:1}100%{opacity:0;transform:translate(-50%,-25px)}}@media(max-width:650px){.damage-float{font-size:24px}.damage-float.critical{font-size:16px}.resolution-strip{font-size:12px}.resolution-strip span:last-child{gap:7px}.effect-chip{font-size:12px}.effect-chip b{font-size:12px}.effect-strip{padding-top:8px}}
.equipment-warning{font-size:12px!important;color:#c3ac86!important;margin:12px 0 0!important;line-height:1.8!important}.equipment-warning .icon{height:13px;width:13px;vertical-align:middle;margin-right:5px}
.player-strip{position:sticky;top:0;z-index:9}.experience-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px;border:1px solid #baa27029;background:#baa27005;border-radius:5px;padding:13px 15px}.experience-summary small{display:block;font-size:12px;color:#978ba5}.experience-summary strong{font-size:21px;color:#d6c9e0;font-weight:400;font-variant-numeric:tabular-nums}.experience-summary strong.gold{color:var(--gold)}.attribute-step-label{font-size:12px;color:#9c8ba9;display:flex;gap:8px;align-items:center}.attribute-step-label select{border:1px solid #baa27035;border-radius:3px;color:#cab989;background:#19151e;padding:4px 7px;font-size:12px}.attribute-wrap{min-width:0}.attribute-cost{display:flex;justify-content:space-between;gap:6px;padding:4px 4px 0;color:#9e8cae;font-size:12px;line-height:1.5}.attribute-cost .unaffordable{color:#ae7882}.attribute button.subtract{background:#a798b008;border-color:#a798b033;color:#afa0ba}.attribute-wrap .attribute{gap:8px}@media(max-width:650px){.experience-summary{gap:8px;padding:10px 12px}.experience-summary strong{font-size:19px}.attribute-wrap .attribute{gap:6px;padding:10px 8px}.attribute-wrap .attribute .icon{display:none}.attribute-wrap .attribute span{font-size:12px}.attribute-wrap .attribute strong{font-size:16px}.attribute-wrap .attribute button{width:22px;height:24px}.attribute-cost{font-size:12px}.attribute-step-label{font-size:12px}.attribute-step-label select{font-size:12px;padding:3px 5px}}
.arena-notice{display:flex;gap:9px;align-items:center;border:1px solid #baa27028;background:#baa27006;border-radius:5px;padding:12px 15px;color:#b3a284;font-size:12px;margin-bottom:17px}.arena-notice .icon{width:16px;height:16px}.arena-cards{margin-top:16px}.arena-card-bottom{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.arena-card-bottom small{color:#a191b1;font-size:12px}.activity-fidelity{font-size:12px;color:#94859f;margin:14px 2px 25px;line-height:1.9}.activity-section-heading{display:flex;justify-content:space-between;align-items:center;margin:0 0 15px;gap:10px}.activity-section-heading h2{font-size:16px}.activity-section-heading span{font-size:12px}.log-entry.reward:before,.log-entry.level:before{background:#d2b173}.log-entry.reward,.log-entry.level{color:#c6b086}@media(max-width:650px){.arena-notice{align-items:flex-start;font-size:12px;padding:11px}.activity-fidelity{font-size:12px}.arena-cards .activity-card{min-height:210px}.activity-section-heading h2{font-size:14px}}
.experience-track{margin:-4px 0 20px}.experience-track>div:first-child{display:flex;justify-content:space-between;font-size:12px;color:#9b8fa8;margin-bottom:5px}.experience-track .bar{height:3px}
.container-tabs{display:flex;border:1px solid var(--line);border-radius:4px;margin:13px 0 3px;overflow:hidden}.container-tabs button{flex:1;background:#11121a;color:#91859e;padding:7px 3px;font-size:12px}.container-tabs button.active{background:#bba37015;color:#d4b885}.filter-row{flex-wrap:wrap}.bench-actions{flex-wrap:wrap}.protection-control{display:flex;align-items:center;gap:7px;color:#a396b1;font-size:12px}.protection-control select{padding:5px 7px;background:#17151f;border:1px solid #b59a6735;border-radius:3px;color:#cdb790;font-size:12px}
.regen-reference{border-top:1px solid var(--line);margin-top:20px;padding-top:13px;font-size:12px;color:#aca0b8}.regen-reference small{font-size:12px;color:#7e728e}.log-entry.regen{color:#9fb5a9}.log-entry.regen:before{background:#8da895}

.roll-provenance{display:grid;gap:6px;padding:16px 24px;border-top:1px solid var(--line);background:rgba(195,160,105,.04);color:var(--text);font-size:12px}.roll-provenance strong{color:var(--gold);letter-spacing:.04em}.roll-provenance span{font-variant-numeric:tabular-nums}.roll-provenance small{color:var(--muted);font-size:12px;line-height:1.7}

.supply-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.8fr);gap:18px;max-width:1120px}.supply-main{overflow:hidden}.supply-item{display:flex;gap:26px;padding:34px 30px;background:radial-gradient(ellipse at 20% 40%,#a5657620,transparent 75%);border-bottom:1px solid var(--line);align-items:center}.supply-item h2{font-size:24px;margin:6px 0 10px}.supply-item p,.supply-boundary p{color:var(--muted);font-size:14px;margin-bottom:14px;line-height:1.9}.potion-vial{width:92px;height:120px;flex-shrink:0;position:relative;border:1px solid #dba29c77;border-radius:24px 24px 34px 34px;box-shadow:inset 9px 0 18px #d28a981f,0 10px 40px #0004;background:linear-gradient(0deg,#602a48 0%,#9f5264aa 61%,#30233555 62%);display:grid;place-items:center;margin:22px 7px 0}.potion-vial:before{content:'';position:absolute;top:-23px;left:29px;width:32px;height:26px;background:linear-gradient(90deg,#836245,#cab08b,#836245);border:1px solid #dfc2a377;border-radius:3px}.potion-vial:after{content:'';position:absolute;inset:9px auto 14px 11px;width:8px;border-radius:50%;background:#ffe2d71a}.potion-vial .icon{width:34px;height:34px;color:#efb9bc}.supply-order{padding:25px 30px}.supply-order label{display:block;color:var(--text);font-size:12px;margin-bottom:10px}.supply-order label small{color:var(--muted);margin-left:10px}.supply-quantity{display:flex;gap:8px}.supply-quantity input{width:100px;min-width:0;border:1px solid var(--line);background:var(--bg);color:var(--text);padding:8px 10px;border-radius:4px}.supply-total{display:flex;justify-content:space-between;align-items:center;padding:22px 0;margin-bottom:8px;color:var(--muted);font-size:12px}.supply-total strong{font:27px Georgia,serif;color:var(--gold)}.supply-total small{font:12px var(--font);color:var(--muted)}.supply-status{margin-top:12px;font-size:12px;color:var(--muted)}.supply-side{display:grid;align-content:start;gap:18px}.supply-pouch,.supply-boundary{padding:24px}.supply-pouch h2{margin:5px 0 20px}.supply-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.supply-row strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:500}.supply-receipt{padding:15px 0;color:var(--muted);font-size:12px}.supply-receipt small{color:var(--gold)}.supply-pouch button{margin-top:15px}.supply-boundary h3{margin-bottom:12px}.supply-boundary a{font-size:12px}@media(max-width:650px){.rail-nav .nav-button{width:16.6667%}.supply-layout{grid-template-columns:1fr}.supply-item{padding:26px 20px;gap:15px}.supply-item h2{font-size:21px}.supply-item p{font-size:14px}.potion-vial{width:66px;height:95px}.potion-vial:before{left:18px;width:28px}.supply-order{padding:20px}.supply-quantity{flex-wrap:wrap}}

.character-tabs{display:flex;gap:8px;margin:0 0 20px;border-bottom:1px solid var(--line)}.character-tabs button{display:flex;align-items:center;gap:7px;background:none;padding:11px 18px;color:var(--muted);border-bottom:2px solid transparent;font-size:12px}.character-tabs .icon{width:16px;height:16px}.character-tabs button.active{color:var(--gold);border-color:var(--gold)}.ability-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px;padding:18px 24px;border:1px solid var(--line);background:linear-gradient(100deg,#242131,#191923);border-radius:6px}.ability-summary small{display:block;color:var(--muted);font-size:12px}.ability-summary strong{font:27px Georgia,serif;color:var(--gold)}.ability-summary em{font:13px var(--font);font-style:normal;color:var(--muted)}.ability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.ability-card{padding:25px;position:relative;overflow:hidden}.ability-card.slotted{border-color:#bfa37366;background:linear-gradient(145deg,#292334,#191a25)}.ability-symbol{width:46px;height:46px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;margin-bottom:19px;opacity:.8}.ability-symbol.hp{color:var(--hp)}.ability-symbol.mp{color:var(--mp)}.ability-symbol.sp{color:var(--sp)}.ability-card h2{margin:5px 0 11px}.ability-card>p{color:var(--muted);font-size:14px;line-height:1.9}.ability-rank{display:flex;justify-content:space-between;gap:8px;margin:20px 0 10px;font-size:12px}.ability-rank strong{font-weight:500;color:var(--text)}.ability-rank span{color:var(--gold);font-size:12px}.ability-preview{display:flex;justify-content:space-between;margin-bottom:20px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.ability-preview strong{color:var(--text);font-weight:500}.ability-card>.primary-button{width:100%;font-size:12px}.ability-gate{display:block;color:var(--muted);text-align:center;margin:8px 0 16px;font-size:12px}.ability-actions{display:flex;justify-content:center;gap:8px}.ability-slots{padding:24px;margin-top:20px}.major-slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:17px}.major-slot{border:1px dashed #ffffff19;padding:15px 10px;display:grid;justify-items:center;align-content:center;min-height:120px;gap:7px;font-size:12px}.major-slot small{color:var(--muted);letter-spacing:1px;font-size:12px}.major-slot strong{font-size:12px;font-weight:500}.major-slot.occupied{border-style:solid;border-color:#b79b6355;background:#c5a76b06}.major-slot.occupied strong{color:var(--gold)}.major-slot .subtle-button{font-size:12px;padding:4px 10px}.ability-fidelity{margin:17px 0;color:var(--muted);font-size:12px;line-height:1.9;max-width:980px}@media(max-width:850px){.ability-grid{grid-template-columns:1fr}.ability-card{padding:22px}.major-slots{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.ability-summary{gap:10px;padding:15px;grid-template-columns:repeat(2,1fr)}.major-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.ability-slots{padding:18px}.character-tabs button{flex:1;justify-content:center}}

.vital-model-note{display:flex;justify-content:space-between;gap:24px;padding:20px 22px;margin-bottom:20px;border:1px solid #ae9bc128;border-radius:6px;background:linear-gradient(100deg,#24213080,#171922)}.vital-model-note h3{margin:5px 0 7px;font-size:13px}.vital-model-note p{font-size:14px;line-height:1.9;color:var(--muted);max-width:790px}.vital-model-note>div:last-child{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:10px;flex-shrink:0}.vital-model-note a{font-size:12px}.vital-model-values{display:flex;flex-wrap:wrap;gap:15px;margin-top:10px;font-size:12px;color:var(--muted)}.vital-model-values strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:500}@media(max-width:650px){.vital-model-note{flex-direction:column;gap:13px;padding:16px}.vital-model-note>div:last-child{flex-direction:row;justify-content:space-between;align-items:center}.vital-model-values{gap:7px 13px;font-size:12px}}

.retention-banner{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px;padding:14px 18px;border:1px solid #cba97755;background:#b18c3d12;color:var(--gold);font-size:12px}@media(max-width:650px){.retention-banner{align-items:flex-start;flex-direction:column}}

/* Supportive ability slots retain their distinct green category. */
.ability-symbol.supportive{color:#9ccbb4;border-color:#91bda44d;background:#91bda410}.ability-slots.supportive{margin-top:16px}.ability-slots.supportive .major-slot.occupied{border-color:#83ad944d}.ability-slots.supportive .major-slot small{color:#93b6a3}

/* Grindfest keeps the existing artwork and small encounter layout intact. */
.grindfest-activity{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;padding:26px;margin:0 0 28px;border-color:#bfa37155;background:radial-gradient(ellipse at top left,#9a745923,transparent 65%),linear-gradient(135deg,#25202e,#191b25)}
.grindfest-intro h2{font-size:25px;letter-spacing:2px;margin:9px 0 13px}.grindfest-intro p,.grindfest-entry p{font-size:14px;color:#b6aabe;line-height:1.9;margin-bottom:16px}.grindfest-entry{border-left:1px solid var(--line);padding-left:24px}.grindfest-cost{display:flex;flex-wrap:wrap;gap:10px 24px;font-size:12px;color:#b6aabe;margin-bottom:13px}.grindfest-cost strong{color:var(--gold);font-size:22px;font-weight:400;margin-left:5px}.grindfest-entry>small{display:block;margin-top:9px;font-size:12px;color:#b5a4bc}.grindfest-boundary{grid-column:1/-1;border-top:1px solid var(--line);padding-top:15px;color:#a89aae;font-size:12px;line-height:1.9}.grindfest-boundary a{white-space:nowrap}.grindfest-modal-note{margin-top:13px}.grindfest-entry-error{color:var(--gold)!important;margin-top:13px}
.grindfest-survival{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;padding:14px 16px;margin-bottom:12px;border:1px solid #b99d6830;border-radius:5px;background:#b59b6710}.grindfest-survival small{display:block;font-size:12px;color:#aa9eb4;margin-bottom:3px}.grindfest-survival strong{font-weight:400;font-variant-numeric:tabular-nums;font-size:19px;color:#dec68e}.grindfest-survival em{font-style:normal;font-size:12px;color:#b0a2bc}.grindfest-survival p{grid-column:1/-1;font-size:14px;line-height:1.8;color:#b2a6bd}.arena-grindfest .camp-buttons{flex-wrap:wrap;justify-content:center}.arena-grindfest .camp-overlay{padding:24px}.arena-grindfest .camp-overlay p{max-width:430px;font-size:14px;margin-bottom:14px}.arena-grindfest .camp-seal{width:42px;height:42px;margin-bottom:18px}.arena-grindfest .camp-overlay h2{font-size:28px;letter-spacing:2px}.arena-grindfest .result-badge{letter-spacing:1px}
/* Four to ten enemies use two readable rows; narrow screens scroll horizontally. */
.arena-many{height:548px}.enemies.enemies-many{position:absolute;inset:54px 12px 57px;height:auto;display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,208px);grid-auto-columns:minmax(144px,1fr);justify-content:normal;align-items:stretch;gap:10px 8px;padding:0 4px 8px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#bda07166 #14111f80;overscroll-behavior-x:contain;scroll-snap-type:x proximity;touch-action:pan-x pan-y}
.enemies-many .enemy-card{width:100%;min-width:0;max-width:none;height:208px;padding:7px 4px 8px;justify-content:flex-end;border:1px solid #c5b3d21c;border-radius:5px;background:linear-gradient(180deg,#1815210a,#15121fc9);scroll-snap-align:start}.enemies-many .enemy-card.selected{border-color:#d3b57680;background:linear-gradient(180deg,#ac885a0d,#362b29c4)}.enemies-many .enemy-card:focus-visible{outline:2px solid #dfc08d;outline-offset:-3px}.enemies-many .enemy-card:before{bottom:54px}.enemies-many .enemy-sprite{height:140px;width:95.46px}.enemies-many .enemy-sprite img{height:140px}.enemies-many .enemy-sprite.wraith{width:91.64px}.enemies-many .enemy-sprite.wraith img{left:-95.2px}.enemies-many .enemy-sprite.golem{width:93.55px}.enemies-many .enemy-sprite.golem img{left:-186.58px}.enemies-many .enemy-name{font-size:12px;line-height:1.5;letter-spacing:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;margin-top:-5px}.enemies-many .enemy-level{font-size:12px;line-height:1.4;letter-spacing:0}.enemies-many .enemy-health{width:110px;margin-top:5px}.enemies-many .enemy-health small{font-size:12px}.enemies-many .target-caret{top:5px;font-size:12px;left:9px}.enemies-many .scan-badge{top:6px;right:6px;font-size:12px;padding:2px 4px}.enemies-many .damage-float{font-size:23px;top:32%}.enemies-many .damage-float.critical{font-size:17px}.enemies-many .enemy-tooltip{bottom:25%;width:136px;font-size:12px;padding:7px}.arena-many .arena-top{left:16px;right:16px;gap:8px}.arena-many .round-chip{white-space:nowrap}.arena-many .turn-strip{left:16px;right:16px}.arena-many .stage-note{font-size:12px;line-height:1.6;color:#d0c1dc}
@media(max-width:850px){.grindfest-activity{gap:20px;padding:21px}.grindfest-intro h2{font-size:23px}.grindfest-entry{padding-left:20px}}
@media(max-width:650px){.grindfest-activity{grid-template-columns:1fr;gap:18px;padding:20px 17px}.grindfest-entry{padding:17px 0 0;border-left:0;border-top:1px solid var(--line)}.grindfest-intro h2{font-size:23px}.grindfest-intro p,.grindfest-entry p{font-size:14px}.grindfest-boundary{font-size:12px}.grindfest-survival{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;gap:10px}.grindfest-survival strong{font-size:18px}.grindfest-survival p{font-size:14px}.arena-grindfest{min-height:380px}.arena-grindfest .camp-overlay{padding:17px}.arena-grindfest .camp-overlay p{font-size:14px;max-width:310px}.arena-grindfest .camp-overlay h2{font-size:25px}.arena-grindfest .camp-overlay .primary-button{font-size:12px}.arena-grindfest .result-badge{font-size:12px;letter-spacing:0}.arena-many{height:548px}.enemies.enemies-many{inset:51px 8px 60px;grid-auto-columns:144px}.arena-many .arena-top{left:12px;right:12px;flex-wrap:wrap}.arena-many .round-chip{font-size:12px}.arena-many .turn-strip{left:12px;right:12px;align-items:center}.arena-many .time-stats{flex-wrap:wrap;gap:4px 8px;max-width:175px;font-size:12px}.arena-many .time-stats strong{font-size:12px}.arena-many .stage-note{max-width:125px;flex-shrink:0;font-size:12px}.enemies-many .enemy-name{font-size:12px}.enemies-many .enemy-level,.enemies-many .enemy-health small{font-size:12px}.enemies-many .scan-badge{font-size:12px}}
.supply-product-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px;max-width:1120px}
.supply-product-tabs button{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#17151f;color:#afa1bc;padding:10px 15px;border-radius:5px;font-size:12px}
.supply-product-tabs button.active{background:#b59a6818;border-color:#b59a6866;color:#e1c78e}
.supply-product-tabs .icon{width:17px;height:17px}.supply-product-tabs small{color:#a9c9b4;font-size:12px}
.fragment-item{background:radial-gradient(ellipse at 20% 40%,#5cac8720,transparent 75%)}
.soul-fragment-art{width:92px;height:112px;flex-shrink:0;display:grid;place-items:center;margin:10px 7px;position:relative;isolation:isolate}
.soul-fragment-art:before{content:'';position:absolute;inset:4px 10px;background:linear-gradient(130deg,#b4edb3dd 0%,#438d73 44%,#234e47 64%,#83c89caa 100%);clip-path:polygon(47% 0,88% 26%,100% 65%,45% 100%,0 76%,10% 31%);z-index:-1;box-shadow:inset 0 0 25px #ddffd577}
.soul-fragment-art:after{content:'';position:absolute;inset:4px 10px;clip-path:polygon(47% 0,48% 54%,100% 65%,45% 100%,48% 54%,10% 31%,47% 0);background:#d7ffbc45;z-index:-1}
.soul-fragment-art .icon{color:#e4ffd7;width:32px;height:32px;filter:drop-shadow(0 0 12px #c4ffc1aa)}
.fragment-tag{color:#b0d6b3;border-color:#7fb48b55}.fragment-balance strong{color:#b0d6b3}
.soulbind-workbench{padding:17px;border:1px solid #b29c6844;background:linear-gradient(140deg,#9e8b5410,#15151f20);border-radius:5px;margin-bottom:14px;min-width:0}
.soulbind-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:11px}.soulbind-heading h3{font-size:17px;font-weight:500;color:#dfd1e7}.soulbind-heading .eyebrow{font-size:12px;letter-spacing:1.3px;margin-bottom:4px}.soulbind-heading .tag{flex-shrink:0}
.soulbind-requirements{font-size:12px;color:#aaa0b7;line-height:1.9}.soulbind-preview{margin-top:17px;border:1px solid var(--line);border-radius:4px;overflow:hidden;font-variant-numeric:tabular-nums}
.soulbind-preview-row{display:grid;grid-template-columns:1.1fr repeat(3,minmax(0,1fr));align-items:center;gap:6px;padding:9px 11px;font-size:12px;color:#aca2b7;border-top:1px solid #ffffff07}.soulbind-preview-row>:not(:first-child){text-align:right;overflow-wrap:anywhere}.soulbind-preview-row strong{color:#b4d4bc;font-weight:500}.soulbind-preview-head{background:#b49c6510;color:#c8b593;font-size:12px;border-top:0}
.soulbind-anchor{font-size:12px;line-height:1.9;color:#a59aac;margin-top:10px}.soulbind-wallet{display:flex;gap:24px;flex-wrap:wrap;margin:15px 0 10px;font-size:12px;color:#a79cae}.soulbind-wallet strong{font-size:16px;font-weight:500;color:#c9d9bd;margin:0 3px}
.soulbind-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.soulbind-error{font-size:12px!important;color:#e3b888!important;line-height:1.8;margin-top:12px}
.soulbind-candidate{border-top:1px solid #b7a16b2b;margin-top:15px;padding-top:13px}.soulbind-candidate>strong{color:#ccb787;font-size:12px;font-weight:500}.soulbind-candidate p{color:#a69aad;font-size:14px;line-height:1.85;margin-top:6px}.soulbind-candidate small{display:block;color:#978a9e;font-size:12px;line-height:1.8;margin-top:7px}.soulbind-candidate a{white-space:nowrap}
.soulbind-bound-stats{display:flex;flex-wrap:wrap;gap:12px 23px;margin:17px 0 6px;font-size:12px;color:#a399b0}.soulbind-bound-stats strong{font-size:17px;color:#c4d6bb;font-weight:400;margin-left:4px}
.soulbind-protection{display:flex;align-items:flex-start;gap:11px;padding:13px;margin-top:17px;border:1px solid #db9a7460;background:#ba7b4910;border-radius:4px;color:#e1bb9e;font-size:12px;line-height:1.8;cursor:pointer}.soulbind-protection input{margin-top:4px;width:16px;height:16px;flex-shrink:0;accent-color:#c9ad73}.soulbind-modal-footer{flex-wrap:wrap}
@media(max-width:650px){.supply-product-tabs{gap:6px;margin-bottom:13px}.supply-product-tabs button{padding:9px 10px;font-size:12px}.supply-product-tabs small{font-size:12px}.soul-fragment-art{width:66px;height:95px;margin:5px}.soulbind-workbench{padding:13px}.soulbind-heading{align-items:flex-start;flex-wrap:wrap;gap:8px}.soulbind-heading h3{font-size:15px}.soulbind-preview-row{grid-template-columns:1.05fr repeat(3,minmax(0,1fr));font-size:12px;padding:8px 7px;gap:4px}.soulbind-preview-head{font-size:12px}.soulbind-protection{font-size:12px}.soulbind-actions .primary-button,.soulbind-actions .subtle-button{font-size:12px}}

/* The study is a single paid lesson, with one wall-clock deadline. */
.training-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(250px,.8fr);gap:22px;max-width:1060px;align-items:start}
.training-study{overflow:hidden;background:radial-gradient(ellipse at 10% 0,#bf975c16,transparent 65%),linear-gradient(145deg,#25202d,#191a24)}
.training-intro{display:flex;align-items:center;gap:21px;padding:27px 26px 23px;position:relative;border-bottom:1px solid var(--line)}
.training-intro h2{font-size:25px;font-weight:500;letter-spacing:2px;margin:5px 0 9px}.training-intro p{font-size:14px;line-height:1.9;color:#aca1b8}.training-intro>.tag{position:absolute;right:20px;top:20px;font-size:12px}.training-intro .eyebrow{font-size:12px;letter-spacing:2px;padding-right:75px}
.training-seal{width:79px;height:97px;display:grid;place-items:center;flex-shrink:0;border:1px solid #cfaf7155;border-radius:40px 40px 4px 4px;color:#c9b585;background:radial-gradient(ellipse,#ba94621c,transparent 80%);position:relative;box-shadow:inset 0 0 0 5px #15141c,0 0 24px #c6a66d0b}.training-seal>.icon{width:35px;height:35px}.training-seal>span{position:absolute;top:8px;font-size:14px;color:#dcbd87}
.training-benefit{display:grid;grid-template-columns:1fr 1fr;padding:21px 26px;gap:22px;border-bottom:1px solid var(--line);background:#110f160c}.training-benefit>div+div{border-left:1px solid var(--line);padding-left:25px}.training-benefit small{display:block;color:#aea1ba;font-size:12px;margin-bottom:3px}.training-benefit strong{font:34px Georgia,serif;color:#dec391;font-variant-numeric:tabular-nums}.training-benefit em{font:13px var(--font);color:#a196ac;font-style:normal}.training-benefit span{display:block;color:#a89bb1;font-size:12px;margin-top:3px}
.training-order{padding:23px 26px 24px}.training-order-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:19px}.training-order-heading .eyebrow{font-size:12px;letter-spacing:1.8px}.training-order-heading h3{font-size:17px;font-weight:500;margin-top:5px;color:#ddcfe7}.training-order-heading>.icon{width:24px;height:24px;color:#ab9570}.training-price{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 15px;color:#b9adbf;font-size:12px}.training-price>span small{display:block;color:#9b8ca5;font-size:12px;margin-top:3px}.training-price strong{font:29px Georgia,serif;color:#d7be89;white-space:nowrap}.training-price strong small{font:12px var(--font);color:#a599ad}.training-next{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:#a69aad;font-size:12px;border-top:1px solid var(--line);padding:13px 0 21px}.training-status{font-size:12px;color:#beb0c8;line-height:1.9;margin:15px 0 0}.training-gate{font-size:12px;line-height:1.9;color:#a89aae;margin:9px 0 0}.training-cap{font-size:12px;line-height:1.9;color:#c4b296}
.training-clock{text-align:center;padding:7px 0 21px}.training-clock>small{display:block;font-size:12px;color:#b1a2bc}.training-clock>strong{display:block;font:39px Georgia,serif;letter-spacing:3px;color:#dec894;font-variant-numeric:tabular-nums;line-height:1.5}.training-clock>span{display:block;font-size:12px;letter-spacing:1px;color:#a698ad}.training-clock.ready>strong{color:#b9d6b9}.training-clock.ready>span{color:#b5c9ae}.training-progress{height:3px;background:#bca57518;border-radius:3px;overflow:hidden}.training-progress>span{display:block;height:100%;background:#b9a175}.training-dates{margin:15px 0}.training-dates>div{display:flex;justify-content:space-between;align-items:baseline;gap:15px;padding:5px 0;font-size:12px;line-height:1.7}.training-dates dt{color:#a498af;white-space:nowrap}.training-dates dd{margin:0;text-align:right;color:#c2b6ca;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.training-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}.training-actions .subtle-button{font-size:12px}.training-receipt{padding:12px 26px;border-top:1px solid var(--line);font-size:12px;line-height:1.8;color:#b3a5be}
.training-notebook{display:grid;gap:19px}.training-contract{padding:25px 23px;background:#b4976420}.training-contract>.eyebrow{font-size:12px;letter-spacing:1.7px}.training-contract h3{font-size:19px;font-weight:400;letter-spacing:1px;margin:7px 0 19px;color:#d5c4d9}.training-contract ol{list-style:none;padding:0;margin:0;counter-reset:training-step}.training-contract li{position:relative;padding:0 0 20px 30px;counter-increment:training-step}.training-contract li:before{content:counter(training-step,upper-roman);position:absolute;left:0;top:0;color:#c5ab78;font:14px Georgia,serif}.training-contract li+li{border-top:1px solid #c3a5781f;padding-top:16px}.training-contract li+li:before{top:16px}.training-contract li strong{display:block;font-size:14px;font-weight:500;margin-bottom:5px;color:#d0becf}.training-contract li span,.training-contract>p{display:block;font-size:14px;color:#b3a4b9;line-height:1.9}.training-contract>p{border-top:1px solid #c3a57835;padding-top:16px;color:#c9b78f}.training-deferred{display:flex;gap:12px;padding:0 5px}.training-deferred .icon{width:17px;height:17px;color:#918299;margin-top:3px}.training-deferred h3{font-size:12px;font-weight:500;color:#b6a5c2;margin-bottom:5px}.training-deferred p{font-size:14px;line-height:1.9;color:#a093ab}
.training-boundary{max-width:1060px;margin:22px 0 0;padding:18px 2px 0;border-top:1px solid #b79b7130}.training-boundary h3{font-size:12px;font-weight:500;color:#c1a879;margin-bottom:9px}.training-boundary p{font-size:14px;line-height:1.9;color:#a899b1;margin-bottom:8px}.training-source-links{display:flex;gap:13px;flex-wrap:wrap;font-size:12px;margin-top:12px}.training-unavailable{max-width:760px;padding:27px}.training-unavailable h2{font-size:22px;margin:7px 0 14px}.training-unavailable p{font-size:14px;color:#b6a5bf;line-height:1.9;margin-bottom:15px}.training-notice,.training-error{max-width:1060px;padding:12px 15px;border:1px solid #aac29345;background:#9aac7d0c;font-size:12px;line-height:1.9;color:#c7d3ad;margin-bottom:17px;border-radius:4px}.training-error{border-color:#d69b7355;background:#b579460c;color:#dfb89e}.training-modal-note{font-size:14px!important;line-height:1.9!important;margin-top:13px!important}.training-modal-footer{flex-wrap:wrap}.modal .training-error{margin:16px 0 0}
@media(min-width:651px) and (max-height:830px){.rail{padding-top:14px;padding-bottom:12px}.brand-mark{margin-bottom:14px}.rail-nav{gap:3px}.rail-nav .nav-button{padding:9px 0}.rail-version{margin-bottom:9px;font-size:12px;letter-spacing:1px}}
@media(max-width:850px){.training-layout{grid-template-columns:minmax(0,1.3fr) minmax(220px,.8fr);gap:17px}.training-intro{gap:14px;padding:24px 20px}.training-seal{width:62px;height:84px}.training-intro h2{font-size:23px}.training-intro>.tag{right:15px;top:15px;font-size:12px}.training-benefit,.training-order{padding:20px}.training-contract{padding:22px 18px}}
@media(max-width:650px){.rail-nav{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));width:100%;gap:0}.rail-nav .nav-button{width:100%;min-width:0;min-height:48px;padding:6px 0;font-size:12px;gap:3px}.rail-nav .nav-button .icon{width:19px;height:19px}.rail{padding:0 2px}.training-layout{grid-template-columns:1fr;gap:19px}.training-intro{padding:24px 18px 21px;gap:17px}.training-intro>.tag{top:15px;right:13px}.training-intro p{font-size:14px}.training-intro .eyebrow{font-size:12px;letter-spacing:1.6px}.training-seal{width:65px;height:86px}.training-benefit{padding:19px 21px;gap:17px}.training-benefit>div+div{padding-left:21px}.training-benefit strong{font-size:31px}.training-order{padding:22px 20px}.training-price strong{font-size:27px}.training-clock>strong{font-size:37px}.training-clock>span{font-size:12px}.training-dates>div{font-size:12px;gap:9px}.training-contract{padding:22px}.training-contract li{padding-bottom:17px}.training-notebook{gap:17px}.training-boundary p{font-size:14px}.training-notice,.training-error{font-size:12px}.training-modal-footer .danger-button{font-size:12px;padding:10px 12px}}

/* Public enemy effects use a warm accent, separate from Scan-only intelligence. */
.enemy-effects-card{position:absolute;bottom:62px;left:50%;transform:translateX(-50%);z-index:2;max-width:calc(100% - 8px);pointer-events:none}
.enemy-effect{display:grid;grid-template-columns:15px minmax(0,1fr) auto;align-items:center;gap:4px 7px;padding:9px 10px;border:1px solid #d49a6359;border-radius:4px;background:linear-gradient(115deg,#4c2d29ec,#251d2ef5);color:#edbd94;font-size:12px;line-height:1.5;text-align:left;font-variant-numeric:tabular-nums}
.enemy-effect>.icon{width:15px;height:15px;color:#e8a36e}.enemy-effect-name{font-weight:500}.enemy-effect b{font-size:12px;font-weight:400;white-space:nowrap;color:#dec3b0}.enemy-effect small{grid-column:2/-1;font-size:12px;color:#d2a48c}
.enemy-effect-compact{display:flex;justify-content:center;gap:4px;padding:3px 6px;white-space:nowrap;font-size:12px;box-shadow:0 2px 10px #09071066}.enemy-effect-compact>.icon{width:11px;height:11px}.enemy-effect-compact b{font-size:12px}
.enemy-effects-target{margin:10px 0 12px}.enemy-effects-target .enemy-effect+ .enemy-effect{margin-top:6px}.enemies-many .enemy-effects-card{bottom:65px}.enemies-many .enemy-effect-compact{padding:3px 5px;font-size:12px;gap:3px}
.searing-rule-note{margin-top:18px;padding:15px;border:1px solid #d49a633b;border-radius:5px;background:linear-gradient(115deg,#a76a4210,#251d2e30)}.searing-rule-note h3{display:flex;align-items:center;gap:8px;font-size:12px;color:#e4b88f;margin-bottom:9px}.searing-rule-note h3 .icon{width:16px;height:16px}.modal .searing-rule-note p{font-size:14px;line-height:1.9;margin:6px 0;color:#bba9ba}.searing-rule-note small{display:block;border-top:1px solid #d49a6326;padding-top:10px;margin-top:10px;font-size:12px;line-height:1.9;color:#d0b299}
@media(max-width:650px){.enemy-effect-compact{font-size:12px;padding:3px 4px;gap:3px}.enemy-effect-compact>.icon{display:none}.enemy-effect-compact b{font-size:12px}.enemies-many .enemy-effect-compact>.icon{display:block}.searing-rule-note{padding:13px}}

/* Two paid courses share one active job; ownership remains visible per course. */
.training-courses{display:grid;gap:22px;min-width:0}
.training-boost{background:radial-gradient(ellipse at 10% 0,#879fbc19,transparent 65%),linear-gradient(145deg,#202531,#191a24)}
.training-boost .training-seal{color:#acbfd7;border-color:#8da8c955;background:radial-gradient(ellipse,#849dbe1a,transparent 80%)}
.training-boost .training-benefit strong{color:#b8cce3}
.training-contract>.subtle-button{margin-top:15px;font-size:12px}
.ability-ap-sources{display:flex;align-items:center;flex-wrap:wrap;gap:12px 22px;margin:-6px 0 22px;padding:12px 16px;border:1px solid #bba3712e;border-radius:5px;background:#bea57906;font-size:12px;line-height:1.8;color:var(--muted)}
.ability-ap-sources strong{color:var(--gold);font-variant-numeric:tabular-nums;font-weight:500}
.ability-ap-sources .subtle-button{margin-left:auto;font-size:12px}
@media(max-width:650px){.training-courses{gap:19px}.ability-ap-sources{gap:8px 16px;padding:12px}.ability-ap-sources .subtle-button{margin-left:0}.training-boost .training-intro .eyebrow{padding-right:92px}}

/* Runtime release identity is visible without adding a modal or gameplay control. */
.release-marker{display:inline-block;margin-left:6px;color:var(--muted);font-family:monospace;font-size:12px;letter-spacing:.03em;white-space:nowrap}

/* A read-only shared-training clock; collection still belongs to the Training page. */
.training-global-link{display:inline-flex;align-items:center;gap:6px;max-width:210px;border:1px solid var(--line);border-radius:8px;padding:7px 9px;background:rgba(20,22,34,.72);color:var(--muted);font-size:12px;white-space:nowrap}
.training-global-link .icon{width:13px;height:13px}.training-global-link strong{font-variant-numeric:tabular-nums;color:var(--text);font-size:12px}.training-global-link.ready{border-color:var(--gold);color:var(--gold)}.training-global-link.ready strong{color:var(--gold)}
@media(max-width:700px){.training-global-name{display:none}.training-global-link{gap:4px;padding:6px}.top-right{gap:7px}}
#global-training-status[data-clock-state="idle"]{display:none}

.save-ownership-banner{display:grid;gap:10px;padding:16px;margin-bottom:18px;border:1px solid var(--gold);border-radius:10px;background:rgba(91,61,21,.25);font-size:12px;line-height:1.6}.save-ownership-banner strong{color:var(--gold)}.save-ownership-banner>div{display:flex;gap:8px;flex-wrap:wrap}

/* Readability checkpoint: compact labels never shrink below 12px. Explanatory
   copy remains 14px; narrow layouts reflow instead of reducing text. */
:root{--muted:#aaa7bb;--secondary-text:#aaa7bb}
body{font-size:14px}
.resource-header em,.rail-version,.footer,.rules-mini,.log-empty{color:var(--secondary-text)}
.resource-header{line-height:1.5;flex-wrap:wrap;row-gap:1px}
.resource-header strong{font-size:14px}
.rules-intro p,.ledger-card p,.modal p,.modal li,.modal .searing-rule-note p,
.workbench-note,.attribute-note,.ability-fidelity,.notice-box,.arena-notice,
.training-notice,.training-error,.supply-status,.supply-item p,.activity-card p,
.log-entry,.full-log .log-entry,.log-empty,.rules-mini{font-size:14px;line-height:1.8}
.ledger-card p,.action-button small,.stage-note{color:#b4afc3}
.footer{flex-wrap:wrap;line-height:1.7}
.footer span{max-width:none;overflow-wrap:anywhere}
.footer button,.rules-mini button{min-height:36px;padding:6px 8px;text-align:left}
.action-grid{grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:10px}
.action-button{min-height:96px;padding:10px 8px;gap:5px}
.action-button strong,.action-button small{white-space:normal;overflow-wrap:anywhere;text-align:center;line-height:1.5}
.action-button strong{font-size:14px}
.action-button small{font-size:12px}
button,input:not([type="file"]):not(.sr-only),select{min-height:36px}
.attribute button,.attribute-wrap .attribute button{width:36px;height:36px;min-width:36px;flex-shrink:0}
.attribute-wrap .attribute{flex-wrap:wrap}
.modal-close{min-width:36px;min-height:36px;display:grid;place-items:center}
.modal h2{padding-right:32px}
.modal-footer,.supply-quantity,.item-actions{flex-wrap:wrap;gap:10px}
.modal-footer button{white-space:normal}
.rail{overflow-y:auto;scrollbar-width:thin}
@media(max-width:940px){
  .character-layout{grid-template-columns:1fr}
  .resource-header{font-size:12px}
  .resources{min-width:0}
  .player-strip{flex-wrap:wrap}
}
@media(max-width:650px){
  button,input:not([type="file"]):not(.sr-only),select{min-height:44px}
  .attribute button,.attribute-wrap .attribute button,.modal-close{min-width:44px;width:44px;height:44px;min-height:44px}
  .attribute-grid{grid-template-columns:1fr}
  .attribute-wrap .attribute{gap:10px;padding:12px}
  .action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .action-button{min-height:100px}
  .rail-nav .nav-button{min-height:56px;min-width:44px;font-size:12px}
  .rail{height:68px;overflow-y:visible}
  .main-shell{padding-bottom:84px}
  .modal-backdrop{padding:12px}
  .modal{padding:24px 18px;max-height:calc(100dvh - 24px)}
  .modal-footer{display:grid;grid-template-columns:1fr}
  .modal-footer button{width:100%}
  .footer button,.rules-mini button,.ledger-card a,.notice-box a,.workbench-note a,.attribute-note a{display:inline-flex;align-items:center;min-height:44px;padding:6px 4px}
  .supply-quantity input{flex:1 1 100%;min-width:0;width:100%}
  .supply-quantity button{flex:1 1 60px}
}

.subtitle,.vital-model-note p{font-size:14px;line-height:1.8}

.training-modal-note{font-size:14px!important}.training-contract li span{font-size:14px;line-height:1.8}
.topbar{height:auto;min-height:79px;padding-top:14px;padding-bottom:14px;flex-wrap:wrap}
.top-right{flex-wrap:wrap;justify-content:flex-end;min-width:0}
.view-heading,.heading-actions{flex-wrap:wrap}
@media(max-width:650px){.topbar{min-height:70px;padding-top:12px;padding-bottom:12px}.top-right{max-width:100%}.heading-actions{gap:8px}}
@media(max-width:650px){button{min-width:44px}}
/* Many-enemy cards reserve distinct rows for status and identity. In-flow,
   auto-height rows prevent enlarged labels from colliding with a fixed overlay. */
.arena-many{height:auto;min-height:0;padding:54px 12px 68px}
.enemies.enemies-many{position:relative;inset:auto;height:auto;grid-template-rows:repeat(2,minmax(300px,auto));align-items:stretch}
.enemies-many .enemy-card{display:grid;grid-template-columns:minmax(0,1fr);justify-content:stretch;grid-template-rows:24px 140px minmax(28px,auto) minmax(18px,auto) auto auto;row-gap:4px;align-content:start;justify-items:center;height:auto;min-height:300px}
.enemies-many .enemy-sprite{grid-row:2;align-self:center}
.enemies-many .enemy-effects-card{position:static;grid-row:3;transform:none;left:auto;bottom:auto;max-width:100%;width:100%;align-self:center;min-width:0}
.enemies-many .enemy-effect-compact{flex-wrap:wrap;white-space:normal;line-height:1.5}
.enemies-many .enemy-name{grid-row:4;margin-top:0;min-width:0}
.enemies-many .enemy-level{grid-row:5;max-width:100%;overflow-wrap:anywhere;text-align:center}
.enemies-many .enemy-health{grid-row:6;align-self:end;max-width:100%;margin-top:3px}
@media(max-width:650px){.arena-many{height:auto;padding:58px 8px 76px}.enemies.enemies-many{inset:auto;grid-template-rows:repeat(2,minmax(300px,auto))}}
/* The same separation applies to ordinary one-to-three enemy rosters. Their
   existing responsive sprite dimensions remain intact. */
.arena:not(.arena-many){height:auto;min-height:385px}
.enemies:not(.enemies-many){height:auto;align-items:stretch}
.enemy-card{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:24px auto minmax(28px,auto) minmax(18px,auto) auto auto;justify-content:stretch;justify-items:center;align-content:start;row-gap:4px;height:auto}
.enemy-sprite{grid-row:2;align-self:center}
.enemy-effects-card{position:static;grid-row:3;transform:none;left:auto;bottom:auto;max-width:100%;width:100%;align-self:center;min-width:0}
.enemy-effect-compact{flex-wrap:wrap;white-space:normal}
.enemy-name{grid-row:4;margin-top:0;max-width:100%;min-width:0;overflow-wrap:anywhere;text-align:center}
.enemy-level{grid-row:5;max-width:100%;overflow-wrap:anywhere;text-align:center}
.enemy-health{grid-row:6;align-self:end;max-width:100%}
/* Override the unchanged inline compact cooldown hint without editing app.js. */
.item-actions>.hide-mobile{font-size:12px!important}

/* Mastery uses its own balance and capacity controls, separate from AP ranks. */
.mastery-overview{border:1px solid var(--line);border-radius:6px;padding:20px 24px;margin:0 0 20px;background:#c5a76b06}
.mastery-balances{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.mastery-balances small{display:block;color:var(--muted);font-size:12px;line-height:1.6}
.mastery-balances strong{font:27px Georgia,serif;color:var(--gold)}
.mastery-overview p,.mastery-slot-purchase p{font-size:14px;line-height:1.8;color:var(--muted);margin:10px 0 0;overflow-wrap:anywhere}
.mastery-slot-purchase{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:16px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.mastery-slot-purchase>div{min-width:0}
.mastery-slot-purchase strong{font-size:14px;font-weight:500}
.mastery-slot-purchase button{flex-shrink:0;white-space:normal;font-size:14px}
.ability-slots .sheet-heading{flex-wrap:wrap;gap:10px}
@media(max-width:650px){.mastery-overview{padding:18px}.mastery-balances{grid-template-columns:1fr;gap:12px}.mastery-slot-purchase{align-items:stretch;flex-direction:column;gap:12px}.mastery-slot-purchase button{width:100%;min-height:44px}.mastery-source-note a{display:inline-flex;align-items:center;min-height:44px;padding:6px 4px}}

/* Fire targeting is a deliberate, read-only preview. All copy stays in flow;
   the card edge and seventh row leave existing status and identity rows intact. */
.fire-preview-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin-bottom:12px;padding:12px 14px;border:1px solid var(--line);border-radius:6px;background:#211b22}
.fire-preview-toggle{min-height:44px;flex:0 0 auto;font-size:14px;white-space:normal}
.fire-preview-toggle[aria-pressed="true"]{border-color:#edb087;color:#f0c5a6;background:#ba743b1a}
.fire-preview-controls p{flex:1 1 220px;min-width:0;color:var(--muted);font-size:14px;line-height:1.7;overflow-wrap:anywhere}
.enemy-card.fire-preview-target{outline:2px dashed #edb087;outline-offset:-3px;background-color:#b7773e20}
.enemy-card.fire-preview-target:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.fire-preview-target-label{grid-row:7;max-width:100%;padding:3px 6px;margin-top:4px;border-radius:3px;background:#2d211a;color:#f0c5a6;font-size:12px;line-height:1.6;overflow-wrap:anywhere;text-align:center;pointer-events:none}
.fire-preview-target-label[hidden]{display:none}
@media(max-width:650px){.fire-preview-controls{align-items:stretch;padding:12px;gap:8px}.fire-preview-toggle{width:100%}.fire-preview-controls p{flex-basis:100%}}

/* Manifest Destiny uses the shared Training layout; combat rows are unchanged. */
.training-manifest{background:radial-gradient(ellipse at 10% 0,#b894db19,transparent 65%),linear-gradient(145deg,#292237,#191a24)}
.training-manifest .training-seal{color:#ccb5e3;border-color:#b396cf55;background:radial-gradient(ellipse,#ad87ce1a,transparent 80%)}
.training-manifest .training-benefit strong{color:#d3bee9}
.ability-mastery-sources{display:flex;flex-wrap:wrap;gap:8px 20px;margin:14px 0;font-size:12px;color:var(--muted);line-height:1.8}
.ability-mastery-sources strong{color:var(--text);font-variant-numeric:tabular-nums}
@media(max-width:650px){.training-manifest .training-intro .eyebrow{padding-right:92px}}

/* Exact empty-slot intent stays inside each ability card. */
.ability-assignment{display:grid;grid-template-columns:minmax(0,1fr);gap:9px;min-width:0}
.ability-assignment>label{font-size:14px;line-height:1.7;overflow-wrap:anywhere}
.ability-assignment>select{display:block;width:100%;max-width:100%;min-width:0;min-height:36px;padding:8px 10px;border:1px solid #ffffff30;border-radius:4px;background:var(--panel2);color:var(--text);font-size:14px}
.ability-assignment>select:disabled{opacity:.5;cursor:not-allowed}
.ability-assignment .ability-actions{display:flex;flex-wrap:wrap;justify-content:stretch;min-width:0;gap:8px}
.ability-assignment .ability-actions>button{flex:1 1 130px;min-width:0;min-height:36px;font-size:14px;white-space:normal;overflow-wrap:anywhere}
.ability-assignment .ability-slot-status,.ability-assignment .ability-slot-note{margin:0;font-size:12px;line-height:1.8;overflow-wrap:anywhere;color:var(--muted)}
.ability-assignment .ability-slot-status{color:var(--gold)}
.ability-assignment .ability-slot-note{font-size:14px}
@media(max-width:650px){.ability-assignment>select,.ability-assignment .ability-actions>button{min-height:44px}.ability-assignment .ability-actions>button{flex-basis:100%}}
/* Give the new labelled native selector room before the inherited single-column range. */
@media(min-width:851px) and (max-width:1100px){.ability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Reserve the fixed narrow navigation area for focus scrolling, not just layout. */
@media(max-width:650px){
  html{scroll-padding-bottom:84px}
  .ability-fidelity a{display:inline-flex;align-items:center;min-height:44px;padding:6px 4px;scroll-margin-block:8px}
}

/* Optional full-log browsing controls; sidebar and retained content stay unchanged. */
.battle-log-controls{display:flex;flex-wrap:wrap;align-items:end;gap:12px;min-width:0;margin:16px 0 8px}
.battle-log-field{flex:1 1 190px;min-width:0;max-width:100%}
.battle-log-field label{display:block;font-size:14px;margin-bottom:6px;color:#d9ccdc}
#battle-log-filter{display:block;width:100%;max-width:100%;min-width:0;min-height:44px;padding:8px 12px;font:inherit;font-size:14px;color:#eee4f0;background:#231f2b;border:1px solid #93809e;border-radius:6px}
#battle-log-count{flex:1 1 190px;min-width:0;margin:0;font-size:14px;overflow-wrap:anywhere}
.modal .battle-log-notice{font-size:14px;line-height:1.8}
#battle-log-results{min-width:0;max-width:100%}
#battle-log-results .log-entry,#battle-log-results .log-empty{overflow-wrap:anywhere;word-break:normal}
