:root{color-scheme:dark;--modal-backdrop-color:rgba(0,0,0,.5)}*{box-sizing:border-box}body{margin:0;background:#0d110f;color:var(--text);font-feature-settings:'tnum';line-height:1.55;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.38}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold-bright);outline-offset:3px}button{touch-action:manipulation}button:hover:not(:disabled){filter:brightness(1.12)}svg{display:block;flex-shrink:0}a{color:var(--gold)}h1,h2,h3,p{margin:0}b,strong{font-weight:650}small{font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)))}img{display:block;object-fit:cover}input,select,textarea{background:#111612;border:1px solid #3f483c;color:var(--text);border-radius:6px;padding:10px 12px;min-width:0}input{max-width:100%}textarea{resize:vertical;width:100%;font-family:ui-monospace,monospace;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));line-height:1.6}input[type=checkbox]{accent-color:var(--gold);width:17px;height:17px}label{display:block;color:var(--muted);font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)))}label input,label select{display:block;margin-top:6px;width:100%}.page-atmosphere{position:fixed;inset:0;z-index:-1;background-image:linear-gradient(90deg,#0b100def,#111810c9 45%,#0b100de8),var(--page-art);background-size:cover;background-position:center;filter:saturate(.45)}.page-atmosphere:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at center,#0000 10%,#0009),repeating-linear-gradient(0deg,transparent 0,transparent 3px,#0000000a 4px);pointer-events:none}.layout{display:grid;grid-template-columns:230px 480px 240px;gap:38px;align-items:start;justify-content:center;max-width:1300px;margin:auto;padding:36px 25px}.game-frame{position:relative;width:100%;min-height:calc(100dvh - 72px);background:#141915;border:1px solid #4a4d3780;border-radius:14px;box-shadow:var(--shadow);overflow:clip}.topbar{height:76px;padding:15px 22px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #373e3180;background:linear-gradient(130deg,#20241a,#171c17)}.wordmark{font-family:Georgia,'Times New Roman',serif;letter-spacing:2.5px;font-size:max(var(--ui-min-font),calc(19px * var(--ui-text-scale)));text-align:left;background:none;padding:0;color:#e5d6ac}.wordmark small{display:block;font-family:inherit;letter-spacing:4px;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#a7aa91;margin-top:2px}.head-actions{display:flex;gap:5px}.icon-btn{height:36px;width:34px;border-radius:5px;display:grid;place-items:center;background:none;position:relative;color:#b2b89f}.icon-btn i{position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--gold)}.resources{display:flex;gap:5px;justify-content:space-between;padding:12px 21px;border-bottom:1px solid #ffffff0b;font-variant-numeric:tabular-nums}.resource{display:flex;align-items:center;gap:7px;font-size:max(var(--ui-min-font),calc(13px * var(--ui-text-scale)));min-width:0}.resource svg{color:var(--gold)}.resource:nth-child(2) svg{color:#bfc9d4}.resource:nth-child(3) svg{color:#87aca7}.resource small{font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:var(--muted);margin-left:0}.left-rail,.right-rail{position:sticky;top:38px;padding-top:23px}.rail-brand{display:flex;align-items:center;gap:13px;font-family:Georgia,serif;letter-spacing:2px;font-size:max(var(--ui-min-font),calc(19px * var(--ui-text-scale)));color:#e0cc9e;white-space:nowrap}.rail-brand small{display:block;font:max(var(--ui-min-font),calc(8px * var(--ui-text-scale))) system-ui;letter-spacing:2px;color:#979b82;margin-top:7px}.brand-mark{font-size:max(var(--ui-min-font),calc(37px * var(--ui-text-scale)))}.edition{font-size:max(var(--ui-min-font),calc(8px * var(--ui-text-scale)));letter-spacing:1.4px;color:#a7b398;margin-top:32px;display:flex;align-items:center;gap:7px}.edition b{border:1px solid #62674a;padding:1px 4px;font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));margin-left:9px}.status-dot{background:#95b184;width:5px;height:5px;border-radius:100%;box-shadow:0 0 9px #9aac8560}.rail-quote{margin:50px 0 38px;padding-left:20px;border-left:1px solid #8186697a}.rail-quote small{letter-spacing:1px;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#b5b69a}.rail-quote h2{font-family:Georgia,'Batang',serif;font-size:max(var(--ui-min-font),calc(25px * var(--ui-text-scale)));line-height:1.7;font-weight:400;margin:13px 0 22px;letter-spacing:-.6px}.rail-quote p{font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)));color:#9aa38e;line-height:2.1}.rail-foot{margin-top:50px;line-height:1.9;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#7b8874}.rail-foot span{font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));color:#727c69}.rail-step{display:flex;align-items:center;gap:15px;padding:12px 0;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));color:#7d8977}.rail-step b{font-family:Georgia,serif;font-size:max(var(--ui-min-font),calc(14px * var(--ui-text-scale)));color:#a09f80;font-weight:400}.rail-step.active{color:#e3d7b6}.rail-step i{margin-left:auto;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));font-style:normal;color:#9fb398}.rail-label{font:max(var(--ui-min-font),calc(9px * var(--ui-text-scale))) system-ui;letter-spacing:2px;border-bottom:1px solid #5762486b;padding-bottom:19px;color:#c2c3a1;display:flex;justify-content:space-between}.rail-label span{color:#7b8a71;font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));letter-spacing:0}.journal-image{height:142px;border-radius:3px;overflow:hidden;margin:23px 0 17px;position:relative;border:1px solid #455039}.journal-image img{width:100%;height:100%;filter:saturate(.75)}.journal-image:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent,#0f160d99)}.journal-image span{position:absolute;bottom:12px;left:13px;z-index:1;font-family:Georgia,'Batang',serif;color:#e5d4b0;font-size:max(var(--ui-min-font),calc(18px * var(--ui-text-scale)))}.journal-text{font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));line-height:2;color:#9eaa91}.journal-meta{display:flex;justify-content:space-between;border-bottom:1px solid #67705a3d;padding:17px 0;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#a5ac97}.journal-meta b{color:#cec6a5}.lab-entry{display:flex;align-items:center;gap:13px;width:100%;margin:27px 0;background:#27302290;border:1px solid #5761496b;padding:14px 12px;border-radius:4px;text-align:left;color:var(--gold)}.lab-entry strong{font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)));color:#cecbb6}.lab-entry small{display:block;font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));margin-top:4px;color:#8d9d82}.lab-entry b{margin-left:auto}.rail-note{font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));margin-top:35px;color:#a7b096}.rail-note p{color:#7e8c75;margin-top:10px;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));line-height:1.9}#main{padding:20px 20px 18px;min-height:545px;outline:none}.topline{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.eyebrow{font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));letter-spacing:1.6px;color:#9aa48c;text-transform:uppercase}.section-title{font-family:Georgia,'Batang',serif;font-size:max(var(--ui-min-font),calc(24px * var(--ui-text-scale)));font-weight:400;letter-spacing:-.7px}.title-help{font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));color:var(--muted);margin-top:6px}.tiny-btn{background:#ffffff07;border:1px solid #4c563d;color:#b7bea3;border-radius:4px;padding:6px 9px;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:31px}.link-btn{background:none;padding:0;color:var(--gold);font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));display:inline-flex;align-items:center;gap:4px}.subtabs{display:flex;gap:5px;padding:4px;background:#0e130e;border:1px solid #333b2c;border-radius:6px;margin:16px 0}.subtabs button{flex:1;padding:9px 2px;background:none;color:#919d87;font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)));border-radius:3px}.subtabs button.active{background:#2d3426;color:#e0d3b0;box-shadow:0 2px 6px #0002}.region-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:15px 0 12px}.region-tab{background:#20271d;border:1px solid #3c452f;text-align:center;padding:8px 2px;border-radius:4px;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#858f7b;line-height:1.5}.region-tab.active{color:#dcc792;border-color:#bda46d;background:#302e20}.region-tab b{display:block;font:max(var(--ui-min-font),calc(15px * var(--ui-text-scale))) Georgia,serif;margin-bottom:4px}.region-tab:disabled{opacity:.40}.expedition-card{height:277px;position:relative;overflow:hidden;border:1px solid #6b745346;border-radius:7px;background:#25301f}.expedition-card>img{width:100%;height:100%;filter:saturate(.88);object-position:center}.expedition-card:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#070d0aaa,transparent 36%,#0b130bbb 68%,#0b110be8)}.expedition-card .card-head{position:absolute;top:19px;left:20px;right:17px;z-index:1;display:flex;justify-content:space-between;align-items:start}.chapter{font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));letter-spacing:1px;color:#e0d2aa;display:flex;align-items:center;gap:7px}.chapter:before{content:'';width:18px;height:1px;background:#c4b17a}.card-mark{font-family:Georgia,serif;font-size:max(var(--ui-min-font),calc(46px * var(--ui-text-scale)));opacity:.3;line-height:1;color:#eee6cc}.expedition-copy{position:absolute;left:20px;right:20px;bottom:21px;z-index:1}.expedition-copy .en{font-size:max(var(--ui-min-font),calc(8px * var(--ui-text-scale)));letter-spacing:2px;color:#c7cbb4;margin-bottom:7px}.expedition-copy h2{font-family:Georgia,'Batang',serif;font-size:max(var(--ui-min-font),calc(29px * var(--ui-text-scale)));letter-spacing:1px;font-weight:400;color:#f4ebd3}.expedition-copy p{font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#bac4ad;margin-top:8px;line-height:1.8}.stage-path{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin:13px 0 16px;position:relative}.stage-node{position:relative;background:#1c241a;border:1px solid #424d38;border-radius:4px;min-height:35px;color:#8e9e82;font:max(var(--ui-min-font),calc(13px * var(--ui-text-scale))) Georgia,serif}.stage-node.done{color:#a7b79b;background:#263421}.stage-node.active{background:#514933;color:#eddfb7;border-color:#bea671;box-shadow:0 0 14px #b6993f10}.stage-node.boss{border-color:#846d5b}.stage-node svg{margin:auto}.stage-details{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:9px}.stage-details strong{font-size:max(var(--ui-min-font),calc(13px * var(--ui-text-scale)));font-weight:550}.level-tag{font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#afbc9e;white-space:nowrap}.stage-sub{font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#88967d;margin-bottom:15px;display:flex;align-items:center;gap:7px}.stage-sub svg{color:#b59962}.primary{background:linear-gradient(115deg,#dcc48b,#b89d68);color:#242719;min-height:46px;padding:11px 16px;border:1px solid #f1dbac36;border-radius:5px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:max(var(--ui-min-font),calc(13px * var(--ui-text-scale)));font-weight:700;box-shadow:0 4px 15px #0003}.primary.full{width:100%}.secondary{background:#232d21;color:#c7d0b7;border:1px solid #4b5940;border-radius:5px;padding:10px 12px;min-height:41px;display:flex;gap:7px;align-items:center;justify-content:center;font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)))}.danger{background:#382822;color:#dfb09f;border:1px solid #6d4f42}.button-row{display:flex;gap:9px;margin:13px 0}.button-row>*{flex:1}.button-row.compact{gap:6px}.button-row.compact>*{min-width:0}.party-caption{font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#88977f;letter-spacing:.8px;margin:23px 0 11px;display:flex;justify-content:space-between;align-items:center}.party-caption b{font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#b9bc9f;letter-spacing:0;font-weight:500}.mini-party{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mini-unit{display:flex;gap:8px;align-items:center;background:#1b2419;border:1px solid #37432e;padding:7px;border-radius:5px;text-align:left;min-width:0}.mini-unit img{width:34px;height:42px;object-fit:cover;border-radius:2px;border:1px solid #7c806748}.mini-unit b{font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:68px;font-weight:500}.mini-unit small{font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));color:#85977b;display:block;margin-top:3px}.quest-strip{display:flex;align-items:center;gap:10px;margin:18px 0 0;padding:12px;border:1px solid #62604360;border-radius:4px;background:linear-gradient(90deg,#33321b85,#20271d);width:100%;text-align:left}.quest-strip svg{color:#c9ae72}.quest-strip strong{display:block;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));color:#cfc8a5;font-weight:500}.quest-strip small{display:block;font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));color:#909c80;margin-top:3px}.quest-strip b{font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));margin-left:auto;white-space:nowrap;color:var(--gold)}.bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);height:65px;border-top:1px solid #62644b4a;background:#191f18f5;padding:5px 13px 2px;position:sticky;bottom:0;z-index:9;backdrop-filter:blur(14px)}.nav-btn{background:none;color:#7e8b73;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));letter-spacing:.4px;border-radius:4px;position:relative}.nav-btn svg{width:21px;height:21px}.nav-btn.active{color:#dac48a}.nav-btn.active:before{content:'';position:absolute;top:-6px;left:30%;right:30%;height:2px;background:#c9b47b}.version-line{font-size:max(var(--ui-min-font),calc(7px * var(--ui-text-scale)));letter-spacing:1.1px;color:#627057;text-align:center;padding:6px 0;background:#131911}.xp-row{display:flex;align-items:center;gap:12px;margin:1px 0 18px}.xp-row img{width:43px;height:50px;border:1px solid #655d43;border-radius:4px}.xp-info{flex:1}.xp-info .row{display:flex;justify-content:space-between;align-items:center;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)))}.xp-info .row b{font-weight:500}.xp-info .row small{color:var(--gold);font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)))}.bar{height:4px;background:#3a4330;border-radius:2px;overflow:hidden}.bar>span{display:block;height:100%;background:#a89b6b;transition:width .25s}.xp-info .bar{margin-top:8px}.xp-info .below{font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));color:#849477;margin-top:3px;display:flex;justify-content:space-between}.panel{background:#1d251b;border:1px solid #3a4632;padding:15px;border-radius:6px;margin:14px 0}.panel h3{font-size:max(var(--ui-min-font),calc(13px * var(--ui-text-scale)));font-weight:550;color:#d0d3bb;margin-bottom:10px}.panel p{font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));line-height:1.85;color:#9bab8b}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:15px 0}.stat-block{background:#20281d;border:1px solid #37442d;padding:12px 8px;border-radius:4px;text-align:center}.stat-block b{font:max(var(--ui-min-font),calc(21px * var(--ui-text-scale))) Georgia,serif;color:#dfdcc3}.stat-block span{display:block;font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));color:#8e9e81;margin-bottom:4px}.hero-summary{display:flex;gap:17px;padding:16px;background:#21291d;border:1px solid #4c513a;border-radius:6px;align-items:center}.hero-summary img{width:76px;height:91px;border:1px solid #bfa771;border-radius:4px}.hero-summary .class-role{font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#a9b09b}.hero-summary h2{font-family:Georgia,'Batang',serif;font-size:max(var(--ui-min-font),calc(21px * var(--ui-text-scale)));font-weight:400;margin:5px 0 8px}.hero-summary p{font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));color:#a4b093}.train-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #4552376b}.train-row:last-child{border-bottom:0}.attr-symbol{width:32px;height:34px;border:1px solid #556342;border-radius:3px;display:grid;place-items:center;color:#cec093;background:#303520;font:max(var(--ui-min-font),calc(16px * var(--ui-text-scale))) Georgia,serif}.train-row .train-info{flex:1}.train-info b{font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)));font-weight:550}.train-info small{display:block;color:#8f9d80;font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));margin-top:3px}.train-row .number{font:max(var(--ui-min-font),calc(20px * var(--ui-text-scale))) Georgia,serif;color:#c5cbae;min-width:22px;text-align:center}.square-btn{width:35px;height:36px;background:#41452a;border:1px solid #79794a;color:#e3d4a2;font-size:max(var(--ui-min-font),calc(18px * var(--ui-text-scale)));border-radius:4px}.train-row .cost{min-width:55px;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#c5b884;text-align:right}.hint-box{border-left:2px solid #8a885a;background:#333a2040;padding:10px 12px;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));line-height:1.9;color:#aeb393;margin:13px 0}.hint-box.warn{border-color:#bb8667;background:#57392335;color:#cca893}.note{color:#819474;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));line-height:1.8}.note strong{color:#b6bf9f}.roster-card{display:flex;gap:12px;padding:14px 11px;border:1px solid #425135;margin:9px 0;background:#202a1d;border-radius:6px}.roster-card img{width:58px;height:70px;border:1px solid #7c7f57;border-radius:3px}.roster-body{flex:1;min-width:0}.roster-body .row{display:flex;justify-content:space-between;align-items:center;gap:7px}.roster-body strong{font-size:max(var(--ui-min-font),calc(13px * var(--ui-text-scale)))}.roster-body small{font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));color:#95a183}.roster-body p{font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#a6b195;margin-top:4px}.badge{display:inline-flex;align-items:center;gap:3px;border:1px solid #79824e67;background:#48523335;color:#bfc795;font-size:max(var(--ui-min-font),calc(8px * var(--ui-text-scale)));border-radius:3px;padding:1px 5px;vertical-align:middle}.badge.npc{color:#a8b7c2;background:#334a592e;border-color:#66809265}.roster-actions{display:flex;gap:6px;margin-top:9px}.roster-actions button{flex:1;min-height:31px}.roster-card.active{border-color:#9a9c66;background:#30391e}.talent-row{border:1px solid #50563c;background:#242c1f;padding:15px;margin-bottom:11px;border-radius:6px;display:flex;gap:12px;align-items:center}.talent-row svg{color:#bfb17d}.talent-row .info{flex:1}.talent-row h3{font-size:max(var(--ui-min-font),calc(13px * var(--ui-text-scale)));margin-bottom:5px}.talent-row p{font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#98a386}.talent-row b{font:max(var(--ui-min-font),calc(19px * var(--ui-text-scale))) Georgia,serif;color:#d3cba1;margin-right:3px}.gear-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:16px 0}.slot-box{display:flex;flex-direction:column;align-items:center;background:#20281c;border:1px solid #555e3e;border-radius:5px;padding:9px 4px;position:relative}.slot-box img{width:48px;height:48px;object-fit:contain}.slot-box small{font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));color:#94a381;margin-top:5px}.slot-box span{position:absolute;right:5px;top:2px;font:max(var(--ui-min-font),calc(11px * var(--ui-text-scale))) Georgia,serif;color:#dbbe7d}.inventory-tools{display:flex;gap:7px;align-items:center;justify-content:space-between;margin:16px 0 11px}.inventory-tools select{font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));padding:7px 6px;max-width:100px}.bag-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.item-card{position:relative;background:linear-gradient(145deg,#283022,#1b2319);border:1px solid #566244;padding:10px 6px 7px;border-radius:5px;min-width:0;text-align:center}.item-card img{width:60px;height:60px;object-fit:contain;margin:3px auto 8px}.item-card .item-top{display:flex;justify-content:space-between;font-size:max(var(--ui-min-font),calc(8px * var(--ui-text-scale)));color:#98a989}.item-card b{display:block;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));line-height:1.5;min-height:30px;font-weight:500;overflow-wrap:anywhere}.item-card small{display:block;font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));color:#8c9a7e;margin-top:4px}.item-card b,.item-card .rarity-label{color:var(--rarity)}.empty-state{text-align:center;padding:30px 15px;color:#99a887;font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)));line-height:2}.item-head{display:flex;gap:19px;align-items:center;margin:0 0 16px}.item-head .item-image{width:90px;height:90px;border:1px solid var(--rarity);border-radius:5px;background:linear-gradient(130deg,#3a3c26,#182015);display:grid;place-items:center;flex-shrink:0}.item-head img{width:78px;height:78px;object-fit:contain}.item-head h3{font-family:Georgia,'Batang',serif;font-size:max(var(--ui-min-font),calc(20px * var(--ui-text-scale)));color:var(--rarity);font-weight:400;margin:3px 0 8px}.item-head small{color:#a3ac90}.item-stat-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #4a553a66;font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)))}.item-stat-row span{color:#9aa989}.up{color:#a4c38c}.down{color:#d49c87}.item-stat-row b{font-family:Georgia,serif;font-size:max(var(--ui-min-font),calc(17px * var(--ui-text-scale)));font-weight:400}.item-stat-row em{font:max(var(--ui-min-font),calc(11px * var(--ui-text-scale))) system-ui;font-style:normal;margin-left:8px}.proc-box{margin:15px 0;background:linear-gradient(120deg,#3f36543d,#222a1d);border:1px solid #8a7a9157;border-radius:4px;padding:12px}.proc-box strong{font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)));color:#d0bbdf;display:flex;gap:7px;align-items:center}.proc-box p{font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#b3aabd;line-height:1.9;margin-top:6px}.enhance-box{margin:14px 0;padding:13px;background:#302e1d;border:1px solid #7e704144;border-radius:4px}.enhance-box .row{display:flex;justify-content:space-between;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));margin-bottom:7px;color:#cfc39b}.shop-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.shop-offer{border:1px solid #53613e;background:#222c1e;padding:12px;border-radius:6px;text-align:center}.shop-offer img{width:70px;height:70px;object-fit:contain;margin:0 auto 7px}.shop-offer strong{color:var(--rarity);font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));display:block}.shop-offer small{font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));color:#99a987;display:block;margin:5px 0 12px}.shop-offer button{width:100%;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));min-height:35px;padding:7px}.reward-offer{padding:17px;border:1px solid #5a62413f;background:#273020;border-radius:6px;margin:12px 0}.reward-offer h3{font-size:max(var(--ui-min-font),calc(13px * var(--ui-text-scale)));color:#d3cfb1;margin-bottom:8px}.reward-offer p{font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));color:#9eaf8c;line-height:1.9;margin-bottom:12px}.battle-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.battle-top h2{font-family:Georgia,'Batang',serif;font-size:max(var(--ui-min-font),calc(20px * var(--ui-text-scale)));font-weight:400}.battle-top small{display:block;font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));color:#adb59a;margin-top:4px}.wave-markers{display:flex;gap:5px;margin:8px 0 13px}.wave-markers span{flex:1;height:3px;background:#434c34}.wave-markers span.active{background:#cdbf89;box-shadow:0 0 12px #b3a96540}.battle-field{position:relative;min-height:405px;border:1px solid #6975535c;border-radius:6px;overflow:hidden;padding:21px 14px 19px;background-color:#1e2c1a;background-image:linear-gradient(180deg,#0b140b73,#13210d40 36%,#0b140bc2 65%,#111c11eb),var(--battle-art);background-size:cover;background-position:center}.battle-field:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 65px #0e1a0ca0;pointer-events:none}.unit-row{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;position:relative;z-index:2}.combat-unit{min-width:0;position:relative;text-align:center;transition:filter .2s,opacity .2s}.combat-unit .portrait{position:relative;width:80px;max-width:100%;height:96px;margin:0 auto 6px;border:1px solid #bab59676;background:#2b3a21;border-radius:3px;box-shadow:0 5px 12px #0006}.combat-unit .portrait img{width:100%;height:100%;border-radius:2px;object-fit:cover}.combat-unit.boss .portrait{border:1px solid #d7aa63;box-shadow:0 0 14px #c9a14655}.combat-unit .unit-name{font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#edf1df;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 5px #000;margin:0 -2px 4px}.combat-unit .unit-name .npc-mini{font-size:max(var(--ui-min-font),calc(7px * var(--ui-text-scale)));color:#b4c3a7;margin-left:2px}.hp-track{height:6px;border:1px solid #102409;background:#291b1580;border-radius:2px;overflow:hidden;margin:0 1px;position:relative}.hp-track .hp-fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#5f8647,#94b96f);transition:width .22s ease}.enemy .hp-track .hp-fill{background:linear-gradient(90deg,#8a5342,#c99c6c)}.shield-fill{position:absolute;top:0;bottom:0;right:0;background:#bdddeba6;transition:width .2s}.mp-track{height:2px;background:#203522;margin:3px 2px 0}.mp-track>span{display:block;height:100%;background:#83abc2;transition:width .2s}.hp-value{font-size:max(var(--ui-min-font),calc(8px * var(--ui-text-scale)));color:#c0cbb3;letter-spacing:.3px;margin-top:3px;text-shadow:0 1px 5px #000}.combat-unit.dead{filter:grayscale(1);opacity:.3}.combat-unit.dead .portrait:after{content:'전투불능';position:absolute;inset:0;display:grid;place-items:center;background:#111c1377;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#f3efe2}.battle-divider{height:91px;position:relative;display:flex;justify-content:center;align-items:center;z-index:3;flex-direction:column}.battle-divider:before{content:'';position:absolute;left:14%;right:14%;top:48%;height:1px;background:linear-gradient(90deg,transparent,#f4e1a040,transparent)}.battle-divider .sigil{font-family:Georgia,serif;color:#c8c99e;font-size:max(var(--ui-min-font),calc(22px * var(--ui-text-scale)));opacity:.55;letter-spacing:6px}.battle-divider .action-label{position:absolute;top:10px;left:-14px;right:-14px;text-align:center;padding:9px 5px;font-size:max(var(--ui-min-font),calc(13px * var(--ui-text-scale)));font-family:Georgia,'Batang',serif;color:#fbefc2;text-shadow:0 0 10px #000;background:linear-gradient(90deg,transparent,#2c3326bb 25%,#2c3326bb 75%,transparent);transform:translateY(0);opacity:0;transition:opacity .15s}.battle-divider .action-label.show{opacity:1}.battle-divider .action-sub{position:absolute;bottom:4px;font-size:max(var(--ui-min-font),calc(8px * var(--ui-text-scale)));letter-spacing:1.6px;color:#beccb0}.unit-role{position:absolute;bottom:2px;left:2px;background:#132316bb;font-size:max(var(--ui-min-font),calc(7px * var(--ui-text-scale)));color:#dbe8ca;padding:0 4px;border-radius:2px}.float-number{position:absolute;left:50%;top:36%;z-index:8;pointer-events:none;white-space:nowrap;font:700 max(var(--ui-min-font),calc(25px * var(--ui-text-scale))) Georgia,serif;color:#ffdfb5;text-shadow:0 2px 4px #2c0f06,1px 0 #461d08,-1px 0 #461d08;animation:floatUp .8s ease-out forwards}.float-number.heal{color:#c4efaa}.float-number.shield{color:#b9e4ff;font-size:max(var(--ui-min-font),calc(20px * var(--ui-text-scale)))}.float-number.crit{color:#ffdb79;font-size:max(var(--ui-min-font),calc(31px * var(--ui-text-scale)))}.float-number.slow{color:#c4e3ec;font:max(var(--ui-min-font),calc(12px * var(--ui-text-scale))) system-ui}.combat-unit.attack .portrait{animation:allyAttack .36s ease}.combat-unit.enemy.attack .portrait{animation:enemyAttack .36s ease}.combat-unit.hit .portrait img{animation:hitFlash .35s}.combat-unit.casting .portrait{box-shadow:0 0 25px #e7d783aa;border-color:#ffe8a9;animation:pulse .5s}.combat-unit.healing .portrait{box-shadow:0 0 20px #a4d790aa}.battle-controls{display:flex;gap:7px;align-items:center;margin:13px 0}.battle-controls button{flex:1;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));padding:9px}.battle-controls label{display:flex;align-items:center;justify-content:center;gap:5px;color:#aebc9b;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));flex:1}.battle-controls input{margin:0;width:15px;height:15px}.battle-log{background:#10190e;border:1px solid #35452b;border-radius:5px;min-height:74px;padding:10px 12px;font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));color:#819775;line-height:1.8}.battle-log .skill{color:#d0c796}.battle-log .enemy{color:#ae9981}.battle-log .ally{color:#a9c098}.log-header{display:flex;justify-content:space-between;margin:12px 0 6px;font-size:max(var(--ui-min-font),calc(8px * var(--ui-text-scale)));letter-spacing:1px;color:#92a580}.result-hero{position:relative;padding:34px 20px 27px;text-align:center;overflow:hidden;border-radius:6px;border:1px solid #8b865351;background-image:linear-gradient(#0d160cbf,#132211e3),var(--battle-art);background-size:cover;background-position:center}.result-hero .result-rune{font:max(var(--ui-min-font),calc(39px * var(--ui-text-scale))) Georgia,serif;color:#decd9a;margin-bottom:8px}.result-hero h2{font:max(var(--ui-min-font),calc(31px * var(--ui-text-scale))) Georgia,'Batang',serif;letter-spacing:2px;color:#e8dcae}.result-hero .result-en{font:max(var(--ui-min-font),calc(8px * var(--ui-text-scale))) system-ui;letter-spacing:3px;color:#b8c6a3;margin:9px 0 17px}.result-hero p{font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));color:#a5b596}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:20px 5px;border-bottom:1px solid #525b3d50}.result-stats.reward-icons{grid-template-columns:repeat(var(--reward-count,3),minmax(0,1fr));align-items:start}.result-reward{display:flex;min-width:0;flex-direction:column;align-items:center;text-align:center}.result-reward>.result-reward-icon,.result-reward>svg{width:42px;height:42px;object-fit:contain;margin:0 auto 7px;filter:drop-shadow(0 3px 5px #0008)}.result-reward.reward-xp>svg{color:#79b8d2;stroke:#d4efff;fill:#375e78;stroke-width:1.35}.result-reward.reward-ticket>.result-reward-icon{width:52px}.result-stats b{display:block;font:max(var(--ui-min-font),calc(24px * var(--ui-text-scale))) Georgia,serif;color:#d3c791}.result-stats small{display:block;color:#8fa57c;font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));margin-top:4px}.levelup{padding:9px;background:linear-gradient(90deg,transparent,#645b292e,transparent);text-align:center;color:#e3cb8e;font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)));margin:13px 0}.result-loot{margin:18px auto 12px;display:flex;justify-content:center;gap:12px}.result-loot .item-card{width:120px}.battle-report table,.data-table{width:100%;border-collapse:collapse;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));margin:12px 0;color:#b4c4a1}.battle-report th,.data-table th{font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));color:#859b74;font-weight:400;text-align:left;padding:7px}.battle-report td,.data-table td{padding:7px;border-bottom:1px solid #40532e50;text-align:left}.history-row{display:flex;align-items:center;gap:10px;padding:11px 0;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));border-bottom:1px solid #424f3155}.history-row span:last-child{margin-left:auto;font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));color:#91a179}.history-row .win{color:#b6cb8d}.history-row .loss{color:#cfa28b}.modal-backdrop{position:fixed;inset:0;z-index:50;background:var(--modal-backdrop-color);backdrop-filter:none;display:flex;justify-content:center;align-items:center;padding:20px;animation:none}.modal{background:#1a2416;border:2px solid #75805370;border-radius:9px;padding:23px;max-width:475px;width:100%;max-height:calc(100dvh - 40px);overflow:auto;box-shadow:0 30px 90px #0009;overscroll-behavior:contain}.modal.wide{max-width:670px}.modal-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.modal-top h2{font:max(var(--ui-min-font),calc(23px * var(--ui-text-scale))) Georgia,'Batang',serif;font-weight:400;color:#e0d7b5}.modal-top small{display:block;font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));letter-spacing:1.6px;color:#8c9d7b;margin-top:5px}.modal-top .icon-btn{flex-shrink:0}.modal .panel{background:#232e1d}.modal .form-row{display:flex;gap:10px;align-items:flex-end;margin:12px 0}.form-row>*{flex:1;min-width:0}.modal .form-row button{font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));height:41px}.modal label{font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));line-height:1.5}.modal input{font-size:max(var(--ui-min-font),calc(13px * var(--ui-text-scale)))}.modal h3{font-size:max(var(--ui-min-font),calc(13px * var(--ui-text-scale)));color:#cbd1b3;margin:17px 0 10px}.modal .divider{height:1px;background:#4e5c3650;margin:20px 0}.onboard-art{height:127px;border:1px solid #71825055;border-radius:5px;object-fit:cover;width:100%;margin-bottom:16px}.class-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:13px 0}.class-choice{background:#1d2a19;border:1px solid #4e6139;border-radius:4px;padding:5px 4px;color:#9cb087}.class-choice.selected{border-color:#d1b776;background:#3c4022;box-shadow:0 0 14px #c4ac4a15;color:#e1d5ae}.class-choice img{width:100%;aspect-ratio:100/120;object-fit:cover;border-radius:2px}.class-choice b{display:block;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));margin-top:5px;font-weight:500}.class-preview{min-height:66px;background:#0e1c0d60;padding:11px;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));color:#aabc96;line-height:1.8;border-radius:4px;margin-bottom:13px}.quest-card{padding:14px;border:1px solid #57623e;border-radius:5px;margin:11px 0;background:#24321d}.quest-card.claimed{opacity:.5}.quest-card .row{display:flex;justify-content:space-between;gap:10px;font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)))}.quest-card p{font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#91a27e;margin:7px 0}.quest-card .bar{margin:10px 0}.quest-card .rewards{display:flex;justify-content:space-between;align-items:center;gap:6px;color:#c9bd87;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)))}.quest-card .rewards button{padding:6px 9px;min-height:30px;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)))}.dev-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.dev-badge{font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));color:#d0bc84;border:1px solid #877647;padding:2px 5px;border-radius:3px}.code-note{font-family:ui-monospace,monospace;font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));color:#90a980;overflow-wrap:anywhere}.save-notice{background:#60432277;color:#e8c59c;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));padding:8px 15px}.test-marker{color:#cdb471;font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)))}.offline-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.offline-summary>div{padding:15px 5px;background:#263a1e;border:1px solid #5c704040;text-align:center;border-radius:4px}.offline-summary b{font:max(var(--ui-min-font),calc(22px * var(--ui-text-scale))) Georgia,serif;color:#d7c790}.offline-summary small{display:block;font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)));margin-top:5px;color:#95af80}#toast{position:fixed;bottom:35px;left:50%;transform:translate(-50%,10px);max-width:min(90vw,440px);min-width:190px;border:2px solid #8e9157;background:#303a24f5;box-shadow:0 4px 30px #0009;border-radius:5px;z-index:90;padding:12px 18px;text-align:center;font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)));color:#e3dec3;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s}#toast.visible{opacity:1;transform:translate(-50%,0)}.nojs{position:fixed;inset:0;background:#171d14;z-index:100;display:grid;place-items:center;padding:25px}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #53613b4a;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));color:#b7c29f}.settings-row b{font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));color:#dbd0a2}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.settings-grid button{font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)))}.small-detail{font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));line-height:1.9;color:#9bae88}.small-detail li{margin-bottom:7px}.game-frame.finish-flash{animation:panelFlash .5s}.modal .error-text{color:#dfb399;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));line-height:1.9;margin:8px 0}.progress-spinner{width:18px;height:18px;border:2px solid #899a6740;border-top-color:#d5c38b;border-radius:100%;display:inline-block;animation:rotate 1s linear infinite}.confirm-input{width:100%;margin:10px 0}.auto-note{text-align:center;color:#b5c38a;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));padding:10px}.muted{color:var(--muted)}.flex-center{display:flex;align-items:center;justify-content:center;gap:7px}
@keyframes floatUp{0%{opacity:0;transform:translate(-50%,6px) scale(.75)}15%{opacity:1;transform:translate(-50%,-2px) scale(1.12)}70%{opacity:1}100%{opacity:0;transform:translate(-50%,-40px) scale(.93)}}@keyframes allyAttack{0%,100%{transform:translateY(0)}45%{transform:translateY(-10px) scale(1.06)}}@keyframes enemyAttack{0%,100%{transform:translateY(0)}45%{transform:translateY(10px) scale(1.06)}}@keyframes hitFlash{0%,100%{filter:none}30%{filter:brightness(2) sepia(.6)}60%{filter:brightness(.6)}}@keyframes pulse{50%{filter:brightness(1.45)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes panelFlash{50%{box-shadow:0 0 40px #c5b57365}}@keyframes rotate{to{transform:rotate(360deg)}}
@media(max-width:1160px){.layout{grid-template-columns:205px 460px;gap:30px;max-width:780px}.right-rail{display:none}.game-frame{min-height:calc(100dvh - 42px)}.layout{padding:21px 15px}.rail-brand{font-size:max(var(--ui-min-font),calc(16px * var(--ui-text-scale)));gap:9px}.left-rail{top:24px}}@media(max-width:760px){body{background:#141915}.layout{display:block;padding:0;max-width:480px}.left-rail,.right-rail{display:none}.game-frame{border:0;border-radius:0;box-shadow:none;min-height:100dvh;padding-bottom:calc(77px + env(safe-area-inset-bottom))}.topbar{height:67px;padding:12px 19px;padding-top:calc(12px + env(safe-area-inset-top))}.resources{padding:11px 19px}#main{padding:17px 18px 22px;min-height:0}.bottom-nav{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:480px;height:calc(67px + env(safe-area-inset-bottom));padding:5px 12px calc(3px + env(safe-area-inset-bottom));box-shadow:0 -8px 25px #0e190d55}.version-line{padding:10px 0 2px;position:relative}.expedition-card{height:245px}.party-caption{margin-top:20px}.modal-backdrop{padding:14px}.modal{max-height:calc(100dvh - 28px);padding:21px 19px;max-width:460px}.modal.wide{max-width:620px}.battle-field{min-height:395px;padding:20px 12px 17px}.unit-row{gap:13px}.battle-divider{height:90px}#toast{bottom:calc(84px + env(safe-area-inset-bottom))}.page-atmosphere{display:none}.battle-top h2{font-size:max(var(--ui-min-font),calc(19px * var(--ui-text-scale)))}}@media(max-width:370px){#main{padding:15px 12px}.topbar{padding-left:14px;padding-right:12px}.wordmark{font-size:max(var(--ui-min-font),calc(17px * var(--ui-text-scale)))}.resources{padding:10px 13px}.resource{font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)));gap:4px}.resource small{font-size:max(var(--ui-min-font),calc(8px * var(--ui-text-scale)))}.mini-unit{padding:6px 4px;gap:5px}.mini-unit img{width:28px;height:35px}.mini-unit b{max-width:54px;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)))}.combat-unit .portrait{width:73px;height:87px}.unit-row{gap:10px}.combat-unit .unit-name{font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)))}.battle-field{min-height:377px}.bag-grid{gap:5px}.item-card{padding-left:4px;padding-right:4px}.item-card b{font-size:max(var(--ui-min-font),calc(9px * var(--ui-text-scale)))}.modal{padding:18px 14px}.class-picker{gap:4px}.dev-grid{gap:8px}}@media(prefers-reduced-motion:reduce){*{animation-duration:.001s!important;transition-duration:.001s!important;scroll-behavior:auto!important}.float-number{animation:none;opacity:1;transform:translate(-50%,-10px)}}

/* Original content archive and independent progress. */
.content-nav{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 20px}.content-nav button{border:1px solid var(--line);background:transparent;color:var(--muted);padding:9px 11px;border-radius:7px;font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)));cursor:pointer}.content-nav .active{border-color:var(--gold);color:var(--gold)}
.atlas-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:18px 0}.atlas-card{min-width:0;text-align:left;border:1px solid var(--line);background:rgba(255,255,255,.025);color:var(--text);padding:13px 11px;border-radius:8px;cursor:pointer}.atlas-card.active{border-color:var(--gold);background:rgba(198,170,112,.1)}.atlas-card strong,.atlas-card small{display:block;overflow-wrap:anywhere}.atlas-card strong{font-size:max(var(--ui-min-font),calc(13px * var(--ui-text-scale)))}.atlas-card small{margin-top:6px;color:var(--muted);font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)))}
.content-detail{padding:20px 16px;background:rgba(255,255,255,.025);border:1px solid var(--line);border-radius:10px;margin:16px 0}.content-detail h2{font-size:max(var(--ui-min-font),calc(23px * var(--ui-text-scale)));margin:8px 0}.content-facts{display:flex;flex-wrap:wrap;gap:8px 14px;border-top:1px solid var(--line);padding-top:14px;margin:16px 0;font-size:max(var(--ui-min-font),calc(13px * var(--ui-text-scale)))}.content-facts span{color:var(--gold)}.content-facts small{flex-basis:100%;color:var(--muted)}
.resource-result-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.resource-result-actions.three{grid-template-columns:repeat(3,minmax(0,1fr))}.resource-result-actions button{width:100%;min-width:0;min-height:66px;display:flex;align-items:center;justify-content:center;text-align:center;white-space:normal;line-height:1.35;padding:9px 6px}
.tutorial-sil-message{padding:14px 16px;margin-bottom:16px;border:1px solid var(--gold);background:#142326}.tutorial-sil-message .guide-character img{width:68px;height:84px;object-position:center 18%}.tutorial-sil-message p{margin:12px 0 0;line-height:1.7}
.modal-backdrop[data-kind=item] .modal-top .icon-btn{width:54px;height:54px;min-width:54px;padding:0;border:2px solid #cf5a51;border-radius:50%;background:#3a2022;color:#ff7169;box-shadow:0 0 10px #b83e3a55}.modal-backdrop[data-kind=item] .modal-top .icon-btn .game-pictogram{width:30px;height:30px;color:#ff7169;stroke:#ff7169}
.content-zones{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin:18px 0}.tower-zones{grid-template-columns:repeat(7,minmax(0,1fr))}.content-zone{aspect-ratio:1;border:1px solid var(--gold);border-radius:7px;color:var(--gold);background:rgba(198,170,112,.06);cursor:pointer}.content-zone.done{background:rgba(98,152,110,.15);border-color:#659778}.content-zone:disabled{opacity:.4;cursor:default}.content-source{font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)));margin-top:14px}.content-source a{color:var(--gold)}
.content-disclosure{margin:16px 0;font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)));color:var(--muted);line-height:1.8}.content-disclosure summary,.mode-card summary{cursor:pointer;color:var(--gold)}.content-disclosure p{margin-top:10px}.mode-card{border:1px solid var(--line);padding:17px;border-radius:10px;margin:12px 0}.mode-card .row{flex-wrap:wrap;gap:8px}.mode-card h3{font-size:max(var(--ui-min-font),calc(16px * var(--ui-text-scale)));margin:0}.mode-card p{color:var(--muted);font-size:max(var(--ui-min-font),calc(13px * var(--ui-text-scale)));line-height:1.7;margin:12px 0}.mode-card details{margin-top:12px;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)))}
@media(max-width:360px){.tower-zones{gap:4px}.content-detail{padding:16px 10px}.content-zone{font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)))}.content-nav button{padding:8px;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)))}}

.unit-row>.combat-unit:only-child{grid-column:2}.battle-controls>span.note{font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));max-width:105px}.battle-controls button{white-space:nowrap}

.town-tools{margin:18px 0;padding:12px;border:1px solid var(--line);border-radius:10px}.town-tools h3{font-size:max(var(--ui-min-font),calc(15px * var(--ui-text-scale)))}.town-tools .settings-grid{gap:5px}.town-tools button{font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));margin-top:6px;padding:9px 6px}.town-tools summary{cursor:pointer;margin-top:12px}.town-scroll{max-height:55vh;overflow:auto}.town-scroll .history-row{gap:8px}.town-scroll small{display:block}.mobile-town{display:none;position:fixed;right:8px;bottom:94px;z-index:20;background:#292e28;border:1px solid var(--gold);color:var(--gold);padding:9px;border-radius:8px;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)))}@media(max-width:1199px){.mobile-town{display:block}}
.honor-summary{display:flex;justify-content:space-between;align-items:center;gap:12px}.honor-summary>strong{color:var(--gold-bright);white-space:nowrap}.honor-rank-row{padding:9px 7px}.honor-rank-row.self{background:#7d663b2e;border:1px solid #c4a35f80;border-radius:5px}.honor-rank-number{width:32px;color:#cbb374;text-align:center;font:700 max(var(--ui-min-font),calc(13px * var(--ui-text-scale))) Georgia,serif}.honor-rank-row.self .honor-rank-number,.honor-rank-row.self>span{color:#f3dda2}.honor-rank-row>span{flex:1;min-width:0}.honor-rank-row>em{color:#e4ca83;font-style:normal;font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));white-space:nowrap}.honor-near-list{max-height:430px}

.atlas-list{max-height:285px;overflow:auto;padding-right:4px}.town-tools>.settings-grid button{min-height:40px}

/* User-approved comparison, hold input and diagonal impact presentation. */
.item-card,.item-head{position:relative}.power-arrow{position:absolute;right:8px;top:43%;width:18px;height:21.333px;font-size:0;line-height:1;pointer-events:none;filter:drop-shadow(0 2px 2px #000)}.item-head{padding-right:26px}.item-head .power-arrow{right:0;top:35%}
button[data-action="train"]{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.combat-unit .portrait{position:relative}.impact-slash{position:absolute;z-index:4;pointer-events:none;left:-20%;top:49%;width:140%;height:4px;border-radius:80%;background:#fff6d5;box-shadow:0 0 3px 2px #ff4a39,0 0 13px 4px #f52924;transform:rotate(var(--impact-angle,-49deg));animation:diagonal-impact .38s ease-out both}.impact-slash.critical{height:6px;box-shadow:0 0 4px 3px #ff4a39,0 0 18px 6px #ff8524}.combat-unit.dead.hit{opacity:1}
.combat-unit .portrait{width:100%;max-width:108px;height:auto;aspect-ratio:1}.combat-unit .portrait img{position:absolute;inset:0;object-fit:cover}.combat-unit .unit-name{margin-top:7px}.battle-field{padding-left:12px;padding-right:12px}
@keyframes diagonal-impact{0%{opacity:1;transform:rotate(var(--impact-angle,-49deg)) scaleX(.08)}28%{opacity:1;transform:rotate(var(--impact-angle,-49deg)) scaleX(1)}65%{opacity:1}100%{opacity:0;transform:rotate(var(--impact-angle,-49deg)) scaleX(1.06)}}

/* Keep descriptive temporary monster names readable on narrow portraits. */
.combat-unit .unit-name{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35;min-height:30px;word-break:keep-all;overflow-wrap:anywhere}

.auto-next-control{display:flex;justify-content:flex-end;margin:10px 2px 0}.auto-next-control label{display:flex;align-items:center;gap:8px;color:var(--text);font-size:max(var(--ui-min-font),calc(13px * var(--ui-text-scale)));min-height:32px;cursor:pointer}.auto-next-control input{margin:0;width:18px;height:18px}

/* Auto and repeat controls use the same compact in-game toggle treatment. */
#autoNext,#autoRepeat,#compactExploreToggle,#dungeonChallenge{appearance:none;-webkit-appearance:none;display:inline-block!important;position:relative;flex:0 0 38px!important;width:38px!important;height:21px!important;margin:0!important;padding:0!important;border:1px solid #756b45;border-radius:999px;background:#101713;cursor:pointer;transition:background .16s,border-color .16s,box-shadow .16s}
#autoNext:after,#autoRepeat:after,#compactExploreToggle:after,#dungeonChallenge:after{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#8b947e;box-shadow:0 1px 3px #000b;transition:transform .16s,background .16s}
#autoNext:checked,#autoRepeat:checked,#compactExploreToggle:checked,#dungeonChallenge:checked{border-color:var(--gold-bright);background:#78642c;box-shadow:0 0 9px #cfb45b3d}
#autoNext:checked:after,#autoRepeat:checked:after,#compactExploreToggle:checked:after,#dungeonChallenge:checked:after{transform:translateX(17px);background:#f1daa0}
#autoNext[aria-disabled="true"],#autoRepeat[aria-disabled="true"],#dungeonChallenge:disabled{opacity:.38}#dungeonChallenge:disabled{cursor:not-allowed}.locked-control{cursor:pointer;opacity:.58}

/* Local healing feedback stays above the revival control, including on mobile. */
.healing-notice-slot{height:56px;min-height:56px;display:flex;align-items:center;justify-content:center;padding:4px 0 8px}#healingToast{max-width:100%;padding:8px 20px;border:2px solid var(--gold);border-radius:5px;background:var(--surface2);color:var(--text);text-align:center;font-size:max(var(--ui-min-font),calc(13px * var(--ui-text-scale)));opacity:0;pointer-events:none;transition:opacity .15s}#healingToast.visible{opacity:1}


/* User-approved first-death navigator; art/icons remain in the resource tables. */
.recovery-guide{border:1px solid var(--gold);background:var(--surface2);border-radius:8px;padding:14px;margin:0 0 18px;color:var(--text);font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)));line-height:1.7}.guide-character{display:flex;gap:12px;align-items:center}.guide-character img{width:46px;height:58px;object-fit:cover;border-radius:4px}.guide-character small{display:block;color:var(--muted)}.guide-character strong{display:block;font-size:max(var(--ui-min-font),calc(16px * var(--ui-text-scale)));color:var(--gold-bright)}.recovery-guide p{margin:9px 0}.recovery-guide .guide-class{font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));color:var(--muted)}.guide-target{position:relative;overflow:visible}.guide-ring{position:absolute;left:50%;top:50%;width:var(--guide-ring-size);height:var(--guide-ring-size);border:var(--guide-ring-width) solid var(--guide-ring-color);border-radius:50%;box-shadow:var(--guide-ring-outer-glow);background:transparent;pointer-events:none;z-index:2;transform:translate(-50%,-50%);animation:guide-circle var(--guide-ring-duration) ease-in-out infinite}.guide-compact .guide-ring{width:var(--guide-ring-small);height:var(--guide-ring-small)}.guide-dimmed{opacity:var(--guide-dim-opacity);filter:saturate(.25)}.healing-warning{font-size:max(var(--ui-min-font),calc(18px * var(--ui-text-scale)));line-height:1.6;color:var(--gold-bright);font-weight:700}@keyframes guide-circle{0%,100%{transform:translate(-50%,-50%) scale(var(--guide-ring-min-scale))}50%{transform:translate(-50%,-50%) scale(var(--guide-ring-max-scale))}}
.first-welcome-backdrop{padding:0;background:var(--modal-backdrop-color);backdrop-filter:none;overflow:hidden}.first-welcome-dialog{position:relative;width:min(1180px,calc(100vw - 50px));height:min(650px,calc(100vh - 40px));border:2px solid #bda25d;border-radius:8px;background:linear-gradient(135deg,#12201ee8,#07110ff2);box-shadow:0 28px 90px #000;overflow:hidden;isolation:isolate}.first-welcome-dialog::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 29% 34%,#be9d4a22,transparent 43%),linear-gradient(180deg,transparent 56%,#050b0af2 100%);pointer-events:none;z-index:1}.first-welcome-character{position:absolute;z-index:2;top:42px;bottom:34px;left:1%;width:60%;overflow:visible;pointer-events:none}.first-welcome-character img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:left bottom;transform:scale(.78);transform-origin:left bottom;filter:saturate(.92) contrast(1.04) drop-shadow(0 14px 18px #0009)}.first-welcome-copy{position:absolute;z-index:7;left:36px;right:36px;bottom:22px;min-height:118px;padding:13px 120px 12px 20px;text-align:left;border:2px solid #a68e55;background:#101913f2;box-shadow:0 12px 34px #000b;color:var(--text);cursor:pointer;transition:border-color .16s,background-color .16s}.first-welcome-copy:hover,.first-welcome-copy:focus-visible{border-color:#e0c273;background:#142019f5;box-shadow:0 12px 34px #000b}.first-welcome-copy .eyebrow{display:block;color:#bca66e;letter-spacing:2px;font-size:11px}.first-welcome-copy strong{display:block;margin:3px 0 2px;color:#e7c978;font:800 max(var(--ui-min-font),calc(24px * var(--ui-text-scale))) var(--heading);letter-spacing:.5px}.first-welcome-copy p{margin:0;min-height:0;color:#f0ead8;font-size:max(var(--ui-min-font),calc(24px * var(--ui-text-scale)));line-height:1.38;word-break:keep-all;text-shadow:0 1px 5px #000}.first-welcome-copy small{position:absolute;right:18px;bottom:14px;color:var(--muted)}.first-welcome-copy small b{color:var(--gold-bright);font-size:20px}.first-welcome-guide{position:relative;z-index:12;max-width:460px;border-color:#d6b85e;box-shadow:0 12px 34px #000c,0 0 22px #b6913533}.first-welcome-guide .guide-character img{object-position:center 18%}
@media(max-width:760px){.first-welcome-dialog{width:100vw;height:100dvh;border-width:0;border-radius:0}.first-welcome-character{top:auto;bottom:18%;left:7%;width:68%;height:53%;overflow:hidden}.first-welcome-character img{object-position:center bottom;transform:scale(1);transform-origin:center bottom}.first-welcome-copy{left:14px;right:14px;bottom:14px;min-height:108px;padding:11px 88px 10px 14px}.first-welcome-copy .eyebrow{font-size:11px}.first-welcome-copy p,.first-welcome-copy strong{font-size:max(var(--ui-min-font),calc(21px * var(--ui-text-scale)))}.first-welcome-copy small{right:10px;bottom:11px;max-width:74px;text-align:right}.first-welcome-guide{margin:8px 10px 16px}}
@media(prefers-reduced-motion:reduce){.guide-ring{animation:none!important}}

/* All tutorial rings share the frontmost, non-interactive canvas layer. */
#guideOverlay{position:fixed;inset:0;pointer-events:none;z-index:2147483647;overflow:visible}
.pc-mode #pcStage>#guideOverlay{position:absolute}
#guideOverlay .guide-ring-compact{width:var(--guide-ring-small);height:var(--guide-ring-small)}
#guideOverlay .guide-ring-explore{width:152px;height:152px}
.dungeon-challenge-control{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:10px 14px;margin:8px 0;border:1px solid var(--line);background:var(--surface2);border-radius:4px}
.dungeon-challenge-control label{display:flex;align-items:center;gap:10px;color:var(--gold-bright);font-weight:700;cursor:pointer}
.dungeon-challenge-control input{width:20px;height:20px;accent-color:var(--gold);cursor:pointer}
.dungeon-challenge-control small{color:var(--muted);line-height:1.5}
.battle-controls .dungeon-challenge-control{padding:0;margin:0;border:0;border-image:none;background:transparent}
.inline-currency-icon{display:inline-block;width:22px;height:22px;object-fit:contain;vertical-align:middle;flex-shrink:0;margin-right:4px}
.enhance-cost{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 10px}.enhance-currency{display:inline-flex;align-items:center;gap:3px;padding:5px 8px;border:1px solid #82724766;border-radius:6px;background:#161e1a}.enhance-currency b{font-size:max(var(--ui-min-font),calc(15px * var(--ui-text-scale)))}.enhance-currency small{color:var(--muted);margin-left:5px}.enhance-currency .inline-currency-icon{margin:0}
.rune-wallet>span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.rune-wallet .inline-currency-icon{width:26px;height:26px}

/* Equipment economy: bounded scroll areas within the landscape canvas. */
.equipment-menu{overflow:auto;max-height:100%;min-height:0}.gear-odds{display:flex;gap:12px;flex-wrap:wrap;padding:12px 0}.gear-materials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:260px;overflow:auto;margin:12px 0}.gear-material{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid currentColor;border-radius:5px}.gear-material input{width:22px;height:22px;flex:none}.gear-material span{min-width:0;overflow-wrap:anywhere}.gear-material small,.gear-dungeons small{display:block;font-size:12px;margin-top:5px}.gear-dungeons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.gear-results{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.gear-results .item-card{width:130px;flex:0 0 130px}.gear-results .item-card img{max-height:100px}

/* EQUIPMENT_COLORS_START */
.rarity-0{--rarity:#c4c7b3}
.rarity-1{--rarity:#83bc87}
.rarity-2{--rarity:#72bde8}
.rarity-3{--rarity:#c699e6}
.rarity-4{--rarity:#f1c969}
.rarity-5{--rarity:#ed8399}
.item-card[class*=rarity-],.slot-box[class*=rarity-]{border-color:color-mix(in srgb,var(--rarity) 55%,transparent);background:linear-gradient(140deg,color-mix(in srgb,var(--rarity) 18%,#162322),#192320)}
/* EQUIPMENT_COLORS_END */

/* Four fixed equipment columns shrink with the existing landscape canvas. */
.gear-synthesis-columns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px;align-items:start}.gear-synthesis-column{min-width:0;padding:12px;background:#14201e;border:1px solid #43534a;border-radius:6px}.gear-synthesis-column>h3{text-align:center;margin-bottom:10px}.gear-synthesis-column>button{padding:10px 4px;white-space:normal;font-size:14px}.gear-grade-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.gear-grade-row{padding:10px;border:1px solid #3e4f45;border-radius:5px}.gear-grade-row strong{color:var(--rarity)}.gear-grade-row small{display:block;overflow-wrap:anywhere;color:var(--muted);font-size:12px}.gear-grade-row.selected{border-color:var(--rarity);background:color-mix(in srgb,var(--rarity) 12%,#14201e)}.gear-auto-preview{border-top:1px solid #43534a;margin-top:12px;padding-top:10px;overflow-wrap:anywhere;font-size:13px}.gear-auto-preview p{margin-top:8px}.gear-auto-preview small{display:block;color:var(--muted)}

.gear-grade-row>.row{display:flex;justify-content:space-between;align-items:center;gap:8px}

.gear-dungeon-tracks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}.gear-dungeon-track{min-width:0;background:#14201e;border:1px solid #43534a;border-radius:6px;padding:12px;overflow-wrap:anywhere}.gear-dungeon-track p{margin:8px 0}.gear-dungeon-track button{white-space:normal;padding:10px 4px;font-size:14px;margin-top:8px}

/* Rune presentation; replace glyphs/colors in data/rune_rules.json. */
.rune-menu {padding:22px}.rune-menu>p{margin:12px 0}.rune-results,.rune-collection{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.rune-results{grid-template-columns:repeat(auto-fill,minmax(135px,1fr))}.rune-card{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;padding:14px 8px;background:linear-gradient(135deg,#36382f,#151c1c);border:1px solid var(--rune-color);border-radius:8px;color:var(--rune-color)}.rune-card svg{width:62px;height:72px;background:#222925;border-radius:8px}.rune-card path{fill:none;stroke:var(--rune-color);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 3px var(--rune-color))}.rune-card b,.rune-card small,.rune-collection-cell>small{font-size:14px;overflow-wrap:anywhere}.rune-collection-cell>small{display:block;margin-top:7px}.rune-collection-cell.unowned{opacity:.42}.rune-synthesis-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.rune-synthesis-list .panel{padding:16px}.rune-dungeon-card{max-width:640px;margin:18px auto;padding:22px;border:1px solid var(--line);border-radius:8px;background:#1c2927}.rune-dungeon-card p{margin:14px 0}.rune-dungeon-card button{margin:8px 0}.rune-socket-summary{margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:8px}.rune-socket-summary .rune-card{max-width:150px}.rune-results article>small{display:block;min-height:50px}.rune-menu button,.rune-results button{white-space:normal;height:auto;min-height:44px}

.rune-dungeon-view{display:grid;grid-template-columns:1fr 1.1fr;gap:22px;align-items:start}.rune-dungeon-view>div>p{margin:12px 0}.rune-dungeon-view .rune-dungeon-card{margin:0;max-width:none;width:100%;padding:16px}.rune-socket-summary{display:grid;grid-template-columns:90px 1fr;gap:8px 14px;align-items:center}.rune-socket-summary h3{grid-column:1/-1;margin:0}.rune-socket-summary .rune-card{grid-column:1;grid-row:2/5;padding:8px;gap:4px}.rune-socket-summary .rune-card svg{width:42px;height:48px}.rune-socket-summary p,.rune-socket-summary button{grid-column:2;margin:0}.rune-socket-summary button{min-height:36px;padding:6px 12px}

.talent-row.oath-locked{opacity:.45}.talent-row .info small{display:block;color:var(--gold);margin-top:5px}

/* Approved seven-slot equipment and region plaque treatment. */
.gear-slots{grid-template-columns:repeat(4,minmax(0,1fr))}
.atlas-card{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:9px;padding:8px 11px 8px 6px;border-color:#8b7043;border-radius:4px;background:linear-gradient(180deg,#26302d,#111817 48%,#202724);box-shadow:inset 0 0 0 2px #090d0c,inset 0 0 0 3px #57462d,0 4px 10px #0005}
.atlas-card:after{content:'';position:absolute;inset:4px;border:1px solid #c7a66d33;pointer-events:none}
.atlas-card.active{border-color:#e3c379;background:linear-gradient(180deg,#3b4740,#16211f 48%,#2d3732);box-shadow:inset 0 0 0 2px #090d0c,inset 0 0 0 3px #9a7a42,0 0 16px #d9b65e22}
.atlas-medallion{position:relative;z-index:1;width:46px;height:46px;display:grid;place-items:center;filter:drop-shadow(0 2px 4px #000)}
.atlas-medallion img{width:100%;height:100%;object-fit:contain}
.atlas-copy{position:relative;z-index:1;min-width:0;text-align:left}
.atlas-copy strong,.atlas-copy small{display:block}

/* Approved rune dungeon portraits: face crop, Y +20%, mirrored caster. */
.portrait img.rune_dungeon_runecaster{object-fit:cover;transform:translateY(20%) scale(-1.62,1.62);transform-origin:50% 28%}
.portrait img.rune_dungeon_warden{object-fit:cover;transform:translateY(20%) scale(1.58);transform-origin:49% 29%}
.combat-unit .portrait:has(.rune_dungeon_runecaster),.combat-unit .portrait:has(.rune_dungeon_warden){overflow:hidden;background:#101518}

.explore-guide-anchor{position:relative;display:inline-block}

.content-detail-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.content-detail-actions>button{width:100%;min-width:0}.healing-auto-action{display:flex;align-items:stretch;min-width:0}.button-row>.healing-auto-action{flex:1}.healing-auto-action>button{flex:1;min-width:0;border-radius:4px 0 0 4px}.auto-recovery-control{display:flex;align-items:center;justify-content:center;gap:7px;min-width:96px;padding:0 12px;border:1px solid #4c563d;border-left:0;border-radius:0 4px 4px 0;background:#ffffff07;color:var(--text);cursor:pointer}.auto-recovery-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 16px;padding:13px 15px;border:1px solid #756b45;border-radius:5px;background:#1a251e}.auto-recovery-panel span{display:block}.auto-recovery-panel b{display:block;color:var(--text)}.auto-recovery-panel small{display:block;margin-top:3px;color:var(--muted);line-height:1.5}.auto-recovery-toggle{appearance:none;-webkit-appearance:none;display:inline-block!important;position:relative;flex:0 0 38px!important;width:38px!important;height:21px!important;margin:0!important;padding:0!important;border:1px solid #756b45;border-radius:999px;background:#101713;cursor:pointer;transition:background .16s,border-color .16s,box-shadow .16s}.auto-recovery-toggle:after{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#8b947e;box-shadow:0 1px 3px #000b;transition:transform .16s,background .16s}.auto-recovery-toggle:checked{border-color:var(--gold-bright);background:#78642c;box-shadow:0 0 9px #cfb45b3d}.auto-recovery-toggle:checked:after{transform:translateX(17px);background:#f1daa0}

/* First welcome uses the shared scene background; Sil is a transparent foreground cutout. */
.first-welcome-dialog{background-color:#09110d;background-position:center;background-size:cover;background-repeat:no-repeat;transition:filter .4s ease}
.first-welcome-dialog.story-scene-dark{filter:brightness(0);pointer-events:none}
@media(prefers-reduced-motion:reduce){.first-welcome-dialog{transition:none}}
.first-welcome-dialog::before{background:linear-gradient(90deg,#07100be8 0%,#07100b4d 48%,#07100bcf 100%),linear-gradient(0deg,#020504e8 0%,transparent 58%)}
.first-goal{margin-top:16px}.first-goal-speaker{display:flex;align-items:center;gap:12px;color:#baa878}.first-goal-speaker img{width:54px;height:64px;object-fit:cover;border:1px solid #a68d53}.first-goal>p{margin:15px 0;color:#e4e1d1;line-height:1.6}.first-goal-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:18px}.first-goal-steps>div{border:1px solid #81704b;background:#182521;padding:12px}.first-goal-steps strong{color:#f0d28c}.first-goal-steps p{margin:5px 0;color:#c2cfc0}.first-goal-steps small{color:#9db4a1}.first-goal-actions{display:flex;gap:9px;justify-content:flex-end}.first-goal-actions button{min-height:44px}@media(max-width:760px){.first-goal-steps{grid-template-columns:1fr;gap:6px;margin-bottom:12px}.first-goal-steps>div{padding:8px 10px}.first-goal-steps p{margin:2px 0}.first-goal-actions{flex-direction:column}.first-goal-actions button{width:100%}}
.q2-party-status{margin:12px 0 18px}.q2-party-members{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:9px}.q2-party-member{display:flex;gap:9px;min-width:0;min-height:112px;padding:8px;border:1px solid #7e714d;background:#1c2d29}.q2-party-member.lead{border-color:#c5a865}.q2-party-member>img{width:75px;height:94px;flex:none;object-fit:cover;border:1px solid #a48b54}.q2-party-member>div{min-width:0}.q2-party-member small{display:block;color:#bda972;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)))}.q2-party-member strong{display:block;color:#efd89f;font-size:max(var(--ui-min-font),calc(16px * var(--ui-text-scale)))}.q2-party-member span{display:block;color:#d1dacd;font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)))}.q2-party-member .q2-member-hp{color:#afc9ad}.q2-party-member .q2-member-hp.dead{color:#f0a39b;font-weight:700}.q2-party-summary{display:flex;gap:11px;align-items:center;flex-wrap:wrap;margin:11px 0;padding:10px 12px;border:1px solid #84744e;background:#20332d}.q2-party-summary strong{color:#efd38b}.q2-party-summary span{border-left:1px solid #665a3e;padding-left:10px}.q2-party-summary small{display:block;color:#b2bfae;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)))}.q2-party-heading{display:flex;align-items:end;justify-content:space-between;gap:8px;margin:14px 0 8px}.q2-party-heading h2{font:max(var(--ui-min-font),calc(21px * var(--ui-text-scale))) Georgia,'Batang',serif;color:#f1d595;margin:0}.q2-party-heading small{color:#aebbab}.q2-rune-slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.q2-rune-slot{position:relative;min-width:0;min-height:112px;padding:8px;border:1px solid #695f45;background:#101d1b;color:#e5d9b7;text-align:left}.q2-rune-slot.active{border:2px solid #d9bb72;background:#253c35}.q2-slot-name,.q2-rune-slot b,.q2-rune-slot small{display:block}.q2-slot-name{color:#dac58e;font-weight:700}.q2-rune-slot b{font-size:max(var(--ui-min-font),calc(15px * var(--ui-text-scale)));margin-top:5px}.q2-rune-slot small{color:#c9d8c5;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)))}.q2-rune-slot .q2-rune-art{float:right;width:46px;height:49px;object-fit:contain}.q2-rune-empty{float:right;color:#a9966a;font-size:30px}.q2-rune-detail{display:flex;align-items:center;gap:12px;min-height:85px;margin-top:10px;padding:10px;border:1px solid #a58d54;background:#1c2d28}.q2-rune-detail>.q2-rune-art,.q2-rune-detail>.q2-rune-empty{width:62px;height:65px;flex:none;object-fit:contain;border:1px solid #726441;background:#111b18;text-align:center}.q2-rune-detail>div{min-width:0}.q2-rune-detail strong{color:#ecd18b}.q2-rune-detail p{margin:2px 0;color:#c9d4c6}.q2-rune-detail small{color:#aebcae}.q2-rune-detail button{margin-left:auto;flex:none}@media(max-width:760px){.q2-party-members{grid-template-columns:1fr}.q2-party-member{min-height:0}.q2-party-member>img{width:55px;height:70px}.q2-party-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.q2-party-summary strong{grid-column:1/-1}.q2-party-summary span{border:0;padding:0}.q2-party-heading{display:block}.q2-rune-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.q2-rune-slot{min-height:99px}.q2-rune-detail{flex-wrap:wrap}.q2-rune-detail button{width:100%;margin:0}}
.battle-goal{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;padding:10px 13px;border:1px solid #ad9258;background:#22342d}.battle-goal small{display:block;color:#d2b777}.battle-goal strong{display:block;color:#f0d69f;font-size:max(var(--ui-min-font),calc(17px * var(--ui-text-scale)))}.battle-goal p{color:#c4d2c2;margin-top:2px}.battle-goal>b{flex:none;color:#e7ca87}.battle-moment{margin:0 0 9px;padding:7px 11px;border:1px solid #645c3e;background:#17261f;color:#bdcbb6}.battle-moment.important{border-color:#c29d58;color:#f1d08a;box-shadow:inset 0 0 12px #c29d581f}@media(max-width:760px){.battle-goal{display:block}.battle-goal>b{display:block;margin-top:5px}.battle-goal strong{font-size:max(var(--ui-min-font),calc(15px * var(--ui-text-scale)))}}

/* Approved critical callout: enlarged diagonal lettering beside the damage amount. */
.float-number.crit{display:inline-flex;align-items:center;gap:40px;overflow:visible}
.float-number.crit .crit-label{order:-1;display:inline-block;padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:#ffe6a0;font:500 max(14px,calc(15px * var(--ui-text-scale))) 'CV Forged Blade','Malgun Gothic',sans-serif;line-height:1;letter-spacing:-.025em;-webkit-text-stroke:.8px #672509;paint-order:stroke fill;text-shadow:1px 1px 0 #c05a0d,2px 2px 0 #72220b,0 0 7px #ffb930,0 0 15px #e7500f;transform:translateY(1px) rotate(-13deg) skewX(-12deg) scale(1.5);transform-origin:left center}
.pc-mode .combat-unit .float-number.crit{top:12px}
@media(max-width:370px){.float-number.crit{gap:34px}.float-number.crit .crit-label{font-size:15px}}

.bag-grid .item-card.quality-card{display:flex;flex-direction:column;gap:2px;min-height:178px}
.bag-grid .item-card.quality-card>small{margin:0 0 2px;color:#a8aa91}
.bag-grid .item-card .equipment-quality{display:grid;grid-template-columns:1fr 1fr;gap:3px;width:100%;margin-top:auto}
.bag-grid .item-card .equipment-quality span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;padding:3px 1px;border:1px solid #826e4b80;background:#162221;color:#bdb79f;font-size:calc(max(var(--ui-min-font),calc(8px * var(--ui-text-scale)))*.8);line-height:1.25;white-space:nowrap}
.bag-grid .item-card .equipment-quality span:first-child{background:#40351f;border-color:#d5aa56;color:#f1d293}
.bag-grid .item-card .equipment-quality strong{font-size:calc(max(var(--ui-min-font),calc(13px * var(--ui-text-scale)))*.7);line-height:1.2;color:#f4e3b7;font-variant-numeric:tabular-nums}
.bag-grid .item-card .equipment-quality span:nth-child(2) strong{color:#d8d6bf}
.item-card{isolation:isolate}
.item-card::before{content:"";position:absolute;inset:7px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 73% 54% at 50% 43%,rgba(205,178,132,.38) 0%,rgba(147,121,88,.25) 40%,rgba(97,82,65,.08) 63%,transparent 80%)}
.equipment-quality-note{font-size:max(var(--ui-min-font),calc(10px * var(--ui-text-scale)));color:#d3c097;border:1px solid #a68c594d;background:#2d2a203d;padding:7px 9px;margin:7px 0 9px}

.item-card .item-top{align-items:center;gap:3px;white-space:nowrap}
.item-card .item-top .item-level,.item-card .item-top .item-enhance{color:#d9d1b7;font-variant-numeric:tabular-nums}
.item-card .equip-red-dot{width:8px;height:8px;min-width:8px;border:1px solid #ff9a7b;border-radius:50%;background:#ea4536;box-shadow:0 0 6px #df3d2d;flex:none}
.pc-mode .item-card .item-wear-chip{display:block;width:max-content;max-width:calc(100% - 12px);margin:3px auto 4px;padding:2px 7px;border:1px solid;border-radius:3px;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)));font-weight:700;line-height:1.35;white-space:nowrap}
.pc-mode .item-card .item-wear-chip.yes{color:#b8e1ba;border-color:#79aa82;background:#203b2c}
.pc-mode .item-card .item-wear-chip.no{color:#f4aea5;border-color:#c96e64;background:#3c2525}
.pc-mode .item-card .item-wear-chip.locked{color:#e7cf96;border-color:#aa8951;background:#393022}

.equipment-sort-row{display:flex;align-items:center;gap:10px;margin:8px 0 6px;padding:7px 9px;border:1px solid #b79558;background:#302b20;color:#e9d19a;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)))}
.equipment-sort-row label{flex:none;font-weight:700}
.equipment-sort-row select{min-width:0;width:min(100%,220px);min-height:33px;padding:5px 8px;border:1px solid #b79558;border-radius:3px;background:#182320;color:#f1ddb4;font-size:inherit}
.resonance-rate-change{display:flex;align-items:center;justify-content:center;gap:22px;margin:20px 0 6px;font-family:var(--font-display);font-size:clamp(24px,4vw,42px);color:var(--muted)}
.resonance-rate-change span{color:var(--gold)}
.resonance-rate-change strong{color:var(--cream);font-size:1.18em}

/* Page changes fade the previous screen out, then the new screen in over 0.5 s. */
#main.page-transition-exit{animation:pageTransitionExit .25s ease-in both;will-change:opacity}
#main.page-transition-enter{animation:pageTransitionEnter .5s ease-in-out both;will-change:opacity}
.nav-btn.nav-transition-pulse{animation:navTransitionPulse .5s ease-out both;isolation:isolate}
@keyframes pageTransitionExit{from{opacity:1}to{opacity:0}}
@keyframes pageTransitionEnter{0%,48%{opacity:0}100%{opacity:1}}
@keyframes navTransitionPulse{0%{box-shadow:inset 0 0 0 1px #efd486,0 0 0 #d8b85d00;filter:brightness(1.45)}55%{box-shadow:inset 0 0 0 1px #efd486,0 0 18px #d8b85d73;filter:brightness(1.18)}100%{box-shadow:inset 0 0 0 0 #efd48600,0 0 0 #d8b85d00;filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){#main.page-transition-exit,#main.page-transition-enter,.nav-btn.nav-transition-pulse{animation:none}}
.recovery-reminder{display:flex;align-items:center;gap:12px;margin:0 0 12px;padding:10px 14px;border:1px solid #8e794c;background:#202b29;color:var(--text)}
.recovery-reminder-symbol{font-size:max(var(--ui-min-font),calc(21px * var(--ui-text-scale)));line-height:1;color:#e5a791}
.recovery-reminder-copy{flex:1;min-width:0}
.recovery-reminder-copy strong{display:block;color:var(--gold-bright);font-size:max(var(--ui-min-font),calc(14px * var(--ui-text-scale)))}
.recovery-reminder-copy small{display:block;color:var(--muted);font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)))}
.recovery-reminder button{width:auto;min-width:130px;margin:0;padding:7px 11px;white-space:nowrap}
.pc-mode #main[data-screen=result]>.recovery-reminder{grid-column:1/-1}
@media(max-width:600px){.recovery-reminder{flex-wrap:wrap}.recovery-reminder button{width:100%}}
#modalRoot .guide-enhance-button{border:1px solid #e8ca7d;box-shadow:inset 0 0 0 1px #f5d98b,0 0 12px #deb65288;animation:guideEnhanceButtonPulse 1s ease-in-out 2}
@keyframes guideEnhanceButtonPulse{0%,100%{box-shadow:inset 0 0 0 1px #f5d98b,0 0 10px #deb65266}50%{box-shadow:inset 0 0 0 3px #ffe9a4,0 0 21px #deb652aa}}
.enhance-tutorial-feedback{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 10px;margin:8px 0;padding:7px 9px;border:1px solid #789464;background:#213328;color:#def0ca;font-size:max(var(--ui-min-font),calc(12px * var(--ui-text-scale)))}
.enhance-tutorial-feedback strong{color:#e3d59c}.enhance-tutorial-feedback small{color:#b9d2b2}
.enhance-projection{margin:8px 0;padding:9px 10px;border:1px solid #8b7950;background:#182722;color:#e5ddbd;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)))}
.enhance-projection>strong{display:block;color:#ead39d;margin-bottom:5px}.enhance-projection-head,.enhance-projection-row{display:grid;grid-template-columns:minmax(74px,1fr) 62px 66px 55px;gap:3px;align-items:center}
.enhance-projection-head{color:#a9b9a7}.enhance-projection-head span:not(:first-child),.enhance-projection-row span:not(:first-child),.enhance-projection-row b,.enhance-projection-row em{text-align:right}
.enhance-projection-row{padding:4px 0;border-top:1px solid #445746}.enhance-projection-row b{color:#f2db9e}.enhance-projection-row em{font-style:normal;color:#91a393}.enhance-projection-row em.up{color:#a9df8d;font-weight:700}
.enhance-projection>small{display:block;margin-top:5px;color:#aebfac;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)))}
.enhance-result-feedback{display:grid;gap:3px;margin:8px 0;padding:7px 9px;border:1px solid #789464;background:#213328;color:#def0ca;font-size:max(var(--ui-min-font),calc(11px * var(--ui-text-scale)))}
.enhance-result-feedback strong{color:#e3d59c}.enhance-result-feedback small{color:#b9d2b2}
.training-quote{color:#c6d3c3;font-size:max(var(--ui-min-font),calc(13px * var(--ui-text-scale)))}
.training-quote>p:first-child{margin:0 0 12px}.training-quote-route{padding:10px 12px;border:1px solid #69795f;background:#23362c;color:#eed8a3}
.training-quote-route strong,.training-quote-route small{display:block}.training-quote-route small{margin-top:3px;color:#b2c4b1}
.training-quote-row,.training-quote-total{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:9px 3px;border-bottom:1px solid #485b49}
.training-quote-row b,.training-quote-total strong{color:#f0d79b}.training-quote-limits{margin:10px 0;color:#dfb39c}
.training-quote-total{margin-top:9px;padding:10px;border-left:3px solid #d1b16c;background:#293b2e}.training-quote-total strong{font-size:max(var(--ui-min-font),calc(20px * var(--ui-text-scale)))}
.training-quote-balance{margin:9px 0;color:#b8cbb8}.training-quote-balance b{color:#ecdaa9}.training-quote .button-row{margin-top:16px}
.rune-impact-guide{margin:12px 0 18px;padding:17px;border:1px solid #b79c65;background:linear-gradient(125deg,#23352d,#182823);color:#e6dab8}
.rune-impact-guide-head h3{margin:3px 0 5px;color:#f0d598;font:700 23px Georgia,serif}.rune-impact-guide-head p{margin:0;color:#c1cfbd}
.rune-impact-guide-body{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(320px,1.2fr);gap:14px;margin-top:14px}
.rune-impact-pair{display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid #6e7355;background:#15241f;padding:13px}.rune-impact-pair>div:first-child{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:100px;max-width:130px}.rune-impact-pair>div:first-child img{width:80px;height:90px;object-fit:contain}.rune-impact-pair small{color:#ddc995;text-align:center}.rune-impact-pair>b{font-size:27px;color:#d5b77d}.rune-impact-pair .rune-card{width:122px;max-width:122px;padding:7px}.rune-impact-pair .rune-art{height:90px}
.rune-impact-values{padding:13px;border:1px solid #667856;background:#1d3028}.rune-impact-values>p{margin:10px 0;color:#b7c9b9}.rune-impact-values>button{width:100%}
.rune-impact-comparison{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px}.rune-impact-comparison>div{padding:10px;border:1px solid #5b705b;background:#15251f}.rune-impact-comparison>span{font-size:24px;color:#d7bd7d}.rune-impact-comparison small,.rune-impact-comparison b{display:block}.rune-impact-comparison small{color:#b4c9b6}.rune-impact-comparison b{font-size:20px;color:#e8d8a8}.rune-impact-comparison .rune-impact-after{border-color:#c7ad70;background:#304230}.rune-impact-comparison .rune-impact-after b,.rune-impact-gain strong{color:#f1d58c}.rune-impact-gain{margin:8px 0 0;color:#d6e0ce}.rune-impact-result-callout{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 16px;padding:12px;border-left:3px solid #d2b578;background:#263a2d;color:#edddb4}
.rune-results article .rune-impact-comparison{grid-template-columns:1fr auto 1fr;gap:4px;margin:8px 0}.rune-results article .rune-impact-comparison>div{padding:5px}.rune-results article .rune-impact-comparison small{font-size:11px}.rune-results article .rune-impact-comparison b{font-size:14px}.rune-results article .rune-impact-gain{font-size:12px}
@media(max-width:760px){.rune-impact-guide-body{grid-template-columns:1fr}.rune-impact-result-callout{flex-direction:column;align-items:stretch}}
.recovery-guide-result{padding:7px 10px!important;margin-bottom:9px!important}
.recovery-guide-result .guide-character img{width:31px;height:37px}
.recovery-guide-result .guide-character strong{font-size:max(var(--ui-min-font),calc(14px * var(--ui-text-scale)))}
