/* Original CSS study of the FF XV reference: midnight surfaces, silver rules,
   restrained cyan selection, wide-spaced headings. No game assets or fonts copied. */
:root{color-scheme:dark;--bg:#080c15;--panel:#0a101d;--ink:#e3e8f2;--muted:#8591a5;--faint:#56647b;--line:rgba(180,200,230,.18);--line-bright:rgba(213,231,255,.4);--accent:#80d1ee;--accent-dim:#247290;--gold:#d5c4a0;--font:"Helvetica Neue","Arial","Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;font-family:var(--font);font-size:14px;font-weight:400;line-height:1.6;background:var(--bg);color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100dvh;background:radial-gradient(ellipse at 65% 20%,#14283d66,transparent 55%),linear-gradient(120deg,#090c15,#0b1220 58%,#080c13);background-attachment:fixed}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:radial-gradient(circle,#c3ddff55 .55px,transparent .9px);background-size:173px 149px;opacity:.25}button,input,select,textarea{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent }button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.34}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}input::-webkit-inner-spin-button{appearance:none}input[type=number]{appearance:textfield}svg{width:22px;height:22px;flex-shrink:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}small{font-size:12px}strong,b{font-weight:500}input{color:var(--ink)}button{touch-action:manipulation}.game-shell{max-width:1520px;margin:0 auto;padding:26px 46px 16px}.game-header{display:flex;align-items:center;justify-content:space-between;padding:0 0 25px}.brand{display:flex;align-items:center;gap:12px}.brand>svg{width:36px;height:36px;color:#b8d0e5}.brand>div{display:flex;flex-direction:column}.brand span{font-size:18px;letter-spacing:.25em;font-weight:300}.brand small{font-size:12px;letter-spacing:.38em;color:#a7b6ca}.header-meta{display:flex;align-items:center;gap:23px;font-variant-numeric:tabular-nums;color:#a6b2c4;font-size:12px}.prototype-label{font-size:12px;letter-spacing:.17em;color:#718197}.save-indicator{width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px #80d1ee66}.main-nav{display:flex;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:8px}.nav-item{position:relative;display:flex;gap:11px;align-items:center;justify-content:center;min-width:150px;padding:16px 27px;border:0;background:transparent;color:#718198;transition:color .2s,background .2s}.nav-item:after{content:"";position:absolute;height:2px;bottom:-1px;left:18px;right:18px;background:transparent}.nav-item>span{display:flex;gap:8px;align-items:baseline;font-size:16px;letter-spacing:.12em}.nav-item small{font-size:12px;letter-spacing:.1em}.nav-item.active{color:#dcf6ff;background:linear-gradient(0deg,#2d7ba020,transparent)}.nav-item.active:after{background:var(--accent);box-shadow:0 0 10px #71c7ec77}.nav-item:hover{color:#cbdbe9;background:#aac9e506}.nav-item>svg{width:19px;height:19px}.world-status{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#718098;padding:13px 0 8px;gap:10px}.world-status b{font-weight:400;color:#9faec3;font-variant-numeric:tabular-nums}.world-status small{font-size:12px}.status-market{display:flex;align-items:center;gap:8px}.status-market:before{content:"";width:4px;height:4px;background:#82a5b9;transform:rotate(45deg)}.status-market.is-open{color:#d1b992}.status-market.is-test{color:var(--gold)}main:focus{outline:0}.eyebrow{font-size:12px;letter-spacing:.17em;color:#8293ac;line-height:1.4;display:block;font-weight:400}.resource-bar{display:grid;grid-template-columns:1.35fr 1.15fr 1fr 1fr;gap:20px;margin:15px 0 32px;padding:12px 0 25px;border-bottom:1px solid var(--line)}.resource-bar>div{position:relative;padding-left:23px;border-left:1px solid var(--line)}.resource-bar>div:first-child{padding-left:0;border-left:0}.resource-value{display:block;font-size:32px;letter-spacing:.02em;line-height:1.4;font-weight:300;font-variant-numeric:tabular-nums;margin:5px 0 1px}.resource-bar>div:first-child .resource-value{font-size:37px;color:#f3f5fa}.resource-bar small{color:#8f9bae;letter-spacing:.08em}.resource-bar small>span{font-size:12px;margin-left:6px;color:#64728b}.return-stat .resource-value{color:#b8d7e5}.character-layout{display:grid;grid-template-columns:215px minmax(300px,1fr) 320px;min-height:480px;gap:25px}.roster{display:flex;flex-direction:column;gap:9px}.roster-item{position:relative;display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:linear-gradient(90deg,#15233755,#111b2b11);border:1px solid transparent;border-left:2px solid #48607855;color:#8292a8;padding:20px 13px;min-height:112px;transition:border-color .2s,background .2s,color .2s}.roster-item:hover{background:#80b6d009;color:#d8e5f3}.roster-item.selected{border-color:#9bc1d940;border-left:2px solid var(--accent);background:linear-gradient(90deg,#24648235,#16293e20);color:#e4f1fb}.roster-item.selected:before{content:"";position:absolute;width:4px;height:4px;background:var(--accent);left:-3px;top:12px;box-shadow:0 0 10px var(--accent)}.roster-symbol{font-family:Georgia,serif;font-size:38px;line-height:1;min-width:34px;text-align:center;font-style:italic;color:#8facc6;opacity:.7}.roster-item.selected .roster-symbol{color:#c3edff}.roster-copy{flex:1;min-width:0}.roster-copy .eyebrow{font-size:12px;letter-spacing:.05em;display:flex;gap:12px;justify-content:space-between}.roster-copy strong{font-size:18px;letter-spacing:.1em;display:block;margin:4px 0}.roster-copy small{font-size:12px;letter-spacing:.02em;color:#788aa0}.roster-chevron{font-size:24px;opacity:.45;font-weight:200}.roster-foot{margin-top:auto;padding:26px 4px 14px;color:#748399;font-size:12px;line-height:1.9}.roster-foot span{font-size:12px;letter-spacing:.16em;color:#4d627e}.character-stage{position:relative;isolation:isolate;overflow:hidden;min-height:465px;background:radial-gradient(ellipse at 50% 50%,#244c6833,transparent 60%);border-bottom:1px solid var(--line)}.stage-caption{position:absolute;top:2px;left:18px;font-size:12px;letter-spacing:.2em;color:#536b86}.stage-watermark{position:absolute;top:100px;left:50%;transform:translateX(-50%);font-size:clamp(45px,5vw,86px);font-weight:200;letter-spacing:.16em;color:#8aaedb07;white-space:nowrap}.sigil{position:absolute;width:160px;height:160px;border:1px solid #93c0da55;top:100px;left:50%;transform:translateX(-50%) rotate(45deg);box-shadow:0 0 80px #729aca0a,inset 0 0 60px #5685a311;display:grid;place-items:center}.sigil:before,.sigil:after{content:"";position:absolute;width:187px;height:187px;border:1px solid #82aec31c}.sigil:after{width:215px;height:215px;border-color:#82aec30c}.sigil-inner{position:absolute;inset:12px;border:1px solid #73a4bf30}.sigil-monogram{font-family:Georgia,serif;font-style:italic;font-size:89px;font-weight:400;line-height:1;transform:rotate(-45deg);color:#a3c9e75c;text-shadow:0 0 40px #80bfe133}.stage-base{position:absolute;width:80%;height:80px;border-radius:50%;border-bottom:1px solid #537b9a55;top:300px;left:10%;background:radial-gradient(ellipse,#42719311,transparent 70%);transform:perspective(200px) rotateX(30deg)}.stage-label{position:absolute;bottom:32px;left:28px;right:20px}.stage-label .eyebrow{font-size:12px;color:#7086a0}.stage-label h1{font-size:34px;letter-spacing:.16em;color:#e6edf8;margin-top:7px;font-weight:300}.stage-label h1>span{font-size:14px;color:#7890aa;letter-spacing:.14em;margin-left:17px}.stage-label p{font-size:12px;letter-spacing:.15em;color:#60758e;margin-top:5px}.stage-number{position:absolute;right:15px;bottom:15px;color:#a6c3e20b;font-size:110px;font-weight:200;line-height:1}.character-details{padding:0 0 0 8px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:18px}.section-heading h2{font-size:20px;letter-spacing:.15em;margin-top:4px}.section-heading .eyebrow{font-size:12px}.level-badge{font-size:12px;color:#7e94ac;letter-spacing:.05em;white-space:nowrap}.level-badge b{font-size:31px;color:#e2eaf4;margin-left:5px;font-weight:300}.detail-rows{display:grid;gap:10px;margin-bottom:20px}.detail-rows>div{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:#8191a8;gap:15px}.detail-rows strong{color:#d1dae8;font-variant-numeric:tabular-nums;font-size:14px;font-weight:400}.detail-rows small{font-size:12px;color:#8292a7}.skill-block{border-top:1px solid var(--line);padding-top:20px}.skill-block h3{font-size:17px;letter-spacing:.13em;margin-top:6px}.skill-number{font-size:38px;color:#b6e4f5;line-height:1.35;font-weight:300;font-variant-numeric:tabular-nums;margin-top:11px;letter-spacing:.03em}.skill-number.muted{color:#6f8198}.skill-unit{font-size:12px;color:#a5b5ca}.skill-block p{font-size:12px;color:#7e90a7;line-height:1.9;margin:13px 0}.requirement{display:flex;align-items:center;gap:7px;font-size:12px;color:#6d8098;line-height:1.7}.requirement svg{width:12px;height:12px}.requirement.active{color:#9acbdc}.next-level{display:flex;justify-content:space-between;font-size:12px;color:#6e8199;margin:18px 0 13px}.next-level strong{color:#9eb8cd;font-weight:400}.button{display:inline-flex;gap:16px;align-items:center;justify-content:center;border:1px solid #b3c9e044;background:linear-gradient(180deg,#9ebdd00a,#0b142230);color:#c7d3e4;min-height:42px;padding:10px 21px;font-size:12px;letter-spacing:.1em;transition:color .18s,border-color .18s,background .18s;position:relative;border-radius:0}.button:hover:not(:disabled){border-color:#b2e1f7b3;background:#5c98b922;color:#edfaff}.button:active:not(:disabled){background:#85b8d438}.button svg{width:17px;height:17px}.button.primary{border-color:#85cae780;border-left:2px solid var(--accent);background:linear-gradient(90deg,#2b6f8e55,#1b405442);color:#d3f1ff}.button.primary:hover:not(:disabled){background:linear-gradient(90deg,#397d9b66,#1e4d6555);border-color:#a8e4ff}.button.full{width:100%}.button.tall{min-height:52px}.income-panel{margin-top:30px;border-top:1px solid var(--line-bright);border-bottom:1px solid var(--line);background:linear-gradient(90deg,#0c172688,#142b3c33);display:grid;grid-template-columns:1fr 1.7fr auto;gap:38px;align-items:center;padding:23px 24px}.income-overview h2{font-size:20px;letter-spacing:.15em;margin:4px 0}.income-overview p{font-size:12px;color:#7b8da3}.income-rate{font-size:12px;color:#8494ac;margin-top:13px}.income-rate strong{font-size:18px;color:#becedf;margin:0 5px;font-weight:300}.income-rate small{font-size:12px}.label-row{display:flex;justify-content:space-between;gap:15px;font-size:12px;color:#93a5bb;margin-bottom:11px;font-variant-numeric:tabular-nums}.meter{height:3px;background:#a5c1dc15;position:relative}.meter>span{height:100%;display:block;background:linear-gradient(90deg,#3c7d9f,#aad9eb);position:relative;transition:width .3s;max-width:100%}.meter>span:after{content:"";position:absolute;right:0;top:-1px;bottom:-1px;width:2px;background:#e1f9ff;box-shadow:0 0 7px #b4e7ff77}.income-progress>small{display:block;font-size:12px;color:#5d7690;margin-top:9px}.income-rewards{display:flex;gap:40px;font-size:12px;color:#8095ad;margin-top:17px}.income-rewards strong{color:#d6e4f5;font-size:20px;font-weight:300;margin-left:10px;font-variant-numeric:tabular-nums}.claim-button{padding:16px 23px;min-height:54px;min-width:155px}.bottom-strip{display:flex;gap:36px;align-items:center;padding:21px 5px 8px}.bottom-strip>div{display:flex;flex-direction:column;gap:5px}.bottom-strip strong{font-weight:400;font-size:13px;letter-spacing:.05em}.bottom-strip small{color:#677d96;font-size:12px}.bottom-strip .eyebrow{font-size:12px}.bottom-strip .button{margin-left:auto}.bottom-note{font-size:12px;color:#506780;max-width:105px;line-height:1.8}.game-footer{border-top:1px solid #a3c8ee0e;padding:17px 0 0;margin-top:28px;display:flex;justify-content:space-between;color:#4e647e;font-size:12px;letter-spacing:.1em}.game-footer span:first-child{font-size:12px}.workspace-layout{display:grid;grid-template-columns:215px minmax(340px,1fr) 300px;gap:40px;margin-top:7px;min-height:570px}.workspace-main{background:#06101a22;padding:0 6px}.workspace-main .section-heading{padding-bottom:21px;margin-bottom:14px}.price-heading{font-size:30px;font-weight:300;font-variant-numeric:tabular-nums;text-align:right}.price-heading small{font-size:12px;display:block;color:#697e96;letter-spacing:.1em}.quote-meta{display:flex;justify-content:space-between;font-size:12px;color:#6e849e;gap:15px}.trade-box{max-width:620px;margin:26px auto 0}.segmented{display:flex;border-bottom:1px solid var(--line);margin-bottom:30px}.segmented>button{width:50%;padding:12px;border:0;border-bottom:2px solid transparent;background:transparent;color:#6e829c;font-size:16px;letter-spacing:.2em}.segmented>button.active{color:#bdeafd;border-color:var(--accent);background:linear-gradient(0deg,#4d9dc21b,transparent)}.input-label{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:#a1b1c7;margin-bottom:10px;letter-spacing:.08em}.input-label small{font-size:12px;letter-spacing:0;color:#6e839d}.quantity-input{border:1px solid #9fc1dc3d;display:flex;align-items:center;background:#040a1280;min-height:64px}.quantity-input input{min-width:0;flex:1;width:100%;background:transparent;border:0;font-size:30px;font-weight:300;text-align:right;padding:11px 15px;font-variant-numeric:tabular-nums;outline-offset:0}.quantity-input>span{padding-right:20px;font-size:12px;color:#839ab4}.step-button{width:48px;min-height:62px;background:transparent;border:0;color:#a6c2d9;font-size:24px;font-weight:200}.step-button:hover{background:#7aafcc11}.quick-amounts{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 24px}.quick-amounts button{background:transparent;border:1px solid #8faec624;color:#91a9c1;min-height:33px;padding:5px 12px;font-size:12px}.quick-amounts button:hover{border-color:#92c7df99;color:#c7e3f3}.trade-summary{padding:20px 0;border-top:1px solid var(--line);display:grid;gap:13px}.trade-summary>div{display:flex;justify-content:space-between;align-items:baseline;gap:15px;font-size:12px;color:#8a9eb6}.trade-summary strong{color:#d6e3f2;font-weight:400;font-size:16px;font-variant-numeric:tabular-nums}.trade-summary small{font-size:12px;color:#7696ad;margin-left:6px}.trade-summary .trade-total{border-top:1px solid var(--line);margin-top:8px;padding-top:17px}.trade-total strong{font-size:27px;font-weight:300;color:#cce9f6}.market-warning{font-size:12px;text-align:center;color:#829cb4;padding:10px 0 14px}.market-warning.locked{color:#c8ab7f}.fine-print{font-size:12px;color:#677e98;line-height:1.9;margin-top:14px}.context-panel{border-left:1px solid var(--line);padding-left:27px}.context-panel .section-heading h2{font-size:18px}.context-note{margin-top:35px;border-top:1px solid var(--line);padding-top:23px}.context-note p,.context-description{font-size:12px;color:#8298b1;line-height:2;margin:14px 0}.context-panel>.button{margin-top:25px}.level-display{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:24px 0 30px}.level-display>.eyebrow{width:100%;font-size:12px}.level-display>strong{font-size:104px;font-weight:200;line-height:1;color:#e1f0ff;font-variant-numeric:tabular-nums}.level-line{width:65px;height:1px;background:var(--line-bright);margin-left:auto}.level-display>div{display:flex;flex-direction:column;gap:7px}.level-display>div>span{font-size:12px;color:#7287a2}.level-display>div>strong{font-size:25px;font-weight:300;color:#94adc7}.xp-detail p{font-size:12px;color:#6f86a0;margin-top:14px}.xp-detail b{font-weight:400;color:#adc9de}.growth-input{margin-top:35px}.xp-meter{height:5px}.growth-foot{margin-top:30px;padding-top:18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;font-size:12px;color:#6c829d}.growth-foot strong{font-weight:400;color:#a1b8ce;margin-left:6px}.milestone-list{display:grid;gap:0;margin-top:30px}.milestone-list>div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:12px 0;font-size:12px;color:#8299b2}.milestone-list strong{color:#a7d1e8;font-weight:300}.context-panel>.requirement{margin-top:24px}.ledger-heading{display:flex;justify-content:space-between;gap:30px;margin:28px 0 15px;align-items:center}.ledger-heading .section-heading{border:0;margin:0;padding:0}.performance-pair{display:flex;gap:48px}.performance-pair>div{display:flex;flex-direction:column;font-size:12px;color:#7890ab;gap:6px}.performance-pair strong{font-size:27px;color:#b3d6eb;font-weight:300;white-space:nowrap}.ledger-panel{margin-top:30px;border-top:1px solid var(--line-bright)}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{font-weight:400;color:#7188a4;font-size:12px;letter-spacing:.1em;text-align:left;padding:17px 18px;border-bottom:1px solid var(--line)}td{padding:18px;color:#aebed1;border-bottom:1px solid #a1c4e413}td:first-child{font-size:12px;color:#6c86a3;font-variant-numeric:tabular-nums}tr:hover td{background:#a0c3df04}.numeric{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.positive{color:#a3d3d9}.nowrap{white-space:nowrap}.empty-state{text-align:center;padding:70px 20px;color:#7790ab}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px 50px;margin:25px 0}.settings-section{padding:22px 24px;background:#080f1b55;border-top:1px solid var(--line-bright);border-bottom:1px solid var(--line)}.settings-section .section-heading{border-bottom-color:#a8c5df16}.settings-section p{font-size:12px;color:#879bb4;line-height:1.9}.settings-section .fine-print{font-size:12px;color:#5f7a97}.test-actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.test-actions .button{min-height:38px;font-size:12px;letter-spacing:.03em;padding:8px 15px}.clock-display{font-size:23px;letter-spacing:.05em;color:#c4dff1;margin:17px 0;font-weight:300}.toggle-row{display:flex;align-items:center;gap:14px;border-top:1px solid var(--line);padding-top:19px;font-size:12px;color:#a0b5cd;cursor:pointer}.toggle-row small{display:block;color:#617b97;font-size:12px;margin-top:3px}.toggle-row input{accent-color:var(--accent);width:17px;height:17px;flex-shrink:0}.save-status{font-size:12px;color:#93b6c9;margin-top:24px}.danger-zone{margin-top:25px;border-top:1px solid var(--line);padding-top:12px;display:flex;gap:24px;flex-wrap:wrap}.text-button{background:transparent;border:0;color:#9d8c82;padding:8px 0;font-size:12px}.text-button:hover{color:#cfb8a9}.data-state{font-size:18px;font-weight:300;color:#bfd9eb;margin-bottom:9px;display:flex;justify-content:space-between}.data-state span{color:#829bb4;font-size:13px}.snapshot-list{margin-top:15px;font-size:12px}.snapshot-list>div{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #a7bed916;color:#6f8ba7;gap:15px}.inline-link{display:inline-block;font-size:12px;color:#85b1cb;border-bottom:1px solid #527a9733;margin-top:15px}.rules-section ul{padding-left:16px;font-size:12px;line-height:2;color:#7089a4}.rules-section li{padding:3px 0}.boot-screen{max-width:640px;margin:18vh auto;padding:30px}.boot-screen h1{font-size:32px;letter-spacing:.18em;margin:15px 0}.boot-screen p{color:#8da2ba;margin:22px 0}.boot-screen .button{margin:10px 10px 0 0}#toast{position:fixed;z-index:50;bottom:max(26px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%,15px);max-width:min(90vw,700px);padding:15px 25px;background:#0a1624f5;border:1px solid #82bed55e;border-left:2px solid var(--accent);color:#d6edf9;font-size:12px;letter-spacing:.03em;box-shadow:0 15px 60px #0008;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;line-height:1.8}#toast.visible{opacity:1;transform:translate(-50%,0)}.modal-backdrop{position:fixed;z-index:60;inset:0;background:#02060dd9;backdrop-filter:blur(9px);display:grid;place-items:center;padding:22px}.modal{width:min(520px,100%);background:linear-gradient(140deg,#101f30,#080e19);border-top:1px solid #b1cfe577;border-bottom:1px solid #b1cfe533;padding:36px 32px;box-shadow:0 20px 100px #0008}.modal h2{font-size:25px;letter-spacing:.1em;margin:10px 0 22px}.modal p{font-size:13px;line-height:2;color:#8da4bf}.modal-actions{display:flex;justify-content:flex-end;gap:13px;margin-top:32px}
.main-nav{position:sticky;top:0;z-index:15;background:#090f1bf2;backdrop-filter:blur(12px)}
@media(min-width:1500px){.character-stage{min-height:510px}.sigil{top:125px;width:175px;height:175px}.stage-base{top:340px}.stage-label{bottom:34px}.character-layout{gap:35px;grid-template-columns:230px 1fr 350px}}
@media(max-width:1150px){.game-shell{padding:24px 28px 16px}.nav-item{min-width:0;flex:1;padding:15px}.nav-item small{display:none}.character-layout{grid-template-columns:185px minmax(240px,1fr) 265px;gap:20px}.roster-item{padding:17px 10px;gap:9px}.roster-symbol{font-size:32px;min-width:28px}.roster-copy strong{font-size:16px}.roster-copy .eyebrow{gap:6px}.character-details{padding-left:0}.resource-value{font-size:28px}.resource-bar>div:first-child .resource-value{font-size:32px}.income-panel{gap:25px;grid-template-columns:1fr 1.5fr auto;padding:20px}.income-rewards{gap:22px}.claim-button{min-width:125px;padding:13px}.workspace-layout{grid-template-columns:175px minmax(300px,1fr) 230px;gap:25px}.context-panel{padding-left:20px}.context-panel .section-heading h2{font-size:16px}.bottom-note{display:none}.settings-grid{gap:25px}.settings-section{padding:20px}}
@media(max-width:900px){.game-shell{padding:20px 22px 14px}.character-layout{grid-template-columns:175px minmax(230px,1fr) 250px;gap:15px}.resource-bar{gap:15px}.resource-bar>div{padding-left:15px}.resource-value{font-size:23px}.resource-bar>div:first-child .resource-value{font-size:28px}.resource-bar .eyebrow{font-size:12px}.workspace-layout{grid-template-columns:165px 1fr;gap:25px}.context-panel{grid-column:2;border:0;border-top:1px solid var(--line);padding:25px 0 0}.context-panel .detail-rows{grid-template-columns:1fr 1fr;gap:15px 30px}.context-note{margin-top:20px}.income-panel{grid-template-columns:1fr 1.5fr;gap:25px}.income-panel>.button{grid-column:1/-1;min-height:42px}.income-rewards strong{font-size:19px}.settings-grid{grid-template-columns:1fr}.header-meta{gap:15px}.prototype-label{font-size:12px}.character-stage .stage-label{left:14px}.sigil{width:130px;height:130px;top:120px}.sigil:before{width:155px;height:155px}.sigil:after{width:180px;height:180px}.stage-label h1{font-size:29px}.stage-watermark{display:none}}
@media(max-width:760px){.game-shell{padding:20px 18px 12px}.game-header{padding-bottom:20px}.brand>svg{width:27px;height:27px}.brand{gap:9px}.brand span{font-size:14px;letter-spacing:.2em}.brand small{font-size:12px;letter-spacing:.23em}.header-meta{font-size:12px;gap:11px}.prototype-label{display:none}.nav-item{padding:13px 4px;gap:6px}.nav-item>span{font-size:13px;letter-spacing:.1em}.nav-item>svg{width:16px;height:16px}.nav-item:after{left:8px;right:8px}.world-status{font-size:12px;padding-top:12px}.world-status small{display:none}.world-status b{font-size:12px}.resource-bar{grid-template-columns:1fr 1fr;gap:20px 22px;padding-bottom:20px;margin:12px 0 24px}.resource-bar>div{padding-left:18px}.resource-bar>div:nth-child(3){border-left:0;padding-left:0}.resource-value{font-size:28px;margin:4px 0 0}.resource-bar>div:first-child .resource-value{font-size:31px}.resource-bar small{font-size:12px}.resource-bar .eyebrow{font-size:12px}.resource-bar .return-stat .resource-value{font-size:25px}.character-layout{grid-template-columns:1fr 1fr;gap:0 22px}.roster{grid-column:1/-1;flex-direction:row;gap:8px;margin-bottom:18px}.roster-item{flex:1;min-height:83px;padding:12px 9px;gap:8px;min-width:0}.roster-symbol{display:none}.roster-copy strong{font-size:15px;margin:3px 0}.roster-copy .eyebrow{font-size:12px;gap:5px}.roster-copy small{font-size:12px;white-space:nowrap;letter-spacing:0}.roster-chevron{display:none}.roster-foot{display:none}.character-stage{min-height:435px}.stage-caption{font-size:12px;left:0;letter-spacing:.1em}.sigil{width:100px;height:100px;top:114px}.sigil:before{width:124px;height:124px}.sigil:after{width:147px;height:147px}.sigil-monogram{font-size:65px}.stage-base{top:255px;width:100%;left:0}.stage-label{left:0!important;bottom:35px!important}.stage-label .eyebrow{font-size:12px;letter-spacing:.1em}.stage-label h1{font-size:28px;letter-spacing:.1em}.stage-label h1>span{display:block;font-size:12px;letter-spacing:.2em;margin:3px 0 0}.stage-label p{font-size:12px;letter-spacing:.05em;line-height:1.8;margin-top:10px}.stage-number{font-size:80px;right:2px;bottom:15px}.character-details .section-heading{padding-bottom:10px;margin-bottom:13px}.character-details .section-heading h2{font-size:15px;letter-spacing:.08em}.character-details .eyebrow{font-size:12px;letter-spacing:.08em}.level-badge{font-size:12px}.level-badge b{font-size:23px}.detail-rows{gap:9px;margin-bottom:15px}.detail-rows>div{font-size:12px;gap:6px}.detail-rows strong{font-size:12px}.detail-rows small{font-size:12px}.skill-block{padding-top:15px}.skill-block h3{font-size:16px;letter-spacing:.08em}.skill-number{font-size:29px}.skill-unit{font-size:12px}.skill-block p{font-size:12px;line-height:1.9;margin:10px 0}.requirement{font-size:12px;gap:4px}.next-level{font-size:12px;gap:8px;margin:13px 0 10px}.character-details .button{font-size:12px;letter-spacing:0;padding:9px 8px;gap:4px}.character-details .button svg{width:13px;height:13px}.income-panel{margin-top:24px;padding:20px 16px;gap:20px 15px;grid-template-columns:.9fr 1.3fr}.income-overview .eyebrow{font-size:12px;letter-spacing:.07em}.income-overview h2{font-size:17px}.income-overview p{font-size:12px;max-width:130px}.income-rate{font-size:12px}.income-rate strong{font-size:16px;display:block;margin:5px 0 0}.income-rate small{display:none}.label-row{font-size:12px;gap:8px;line-height:1.8;flex-wrap:wrap}.income-progress>small{font-size:12px;line-height:1.8}.income-rewards{flex-direction:column;gap:6px;margin-top:14px;font-size:12px}.income-rewards strong{font-size:18px;margin-left:8px}.income-panel>.button{margin-top:0}.bottom-strip{gap:20px;padding-top:20px;flex-wrap:wrap}.bottom-strip .eyebrow{font-size:12px}.bottom-strip strong{font-size:12px}.bottom-strip small{font-size:12px}.bottom-strip>.button{font-size:12px;min-height:38px;padding:8px 14px;margin-left:auto}.game-footer{margin-top:25px;gap:15px;font-size:12px}.game-footer span:first-child{font-size:12px}.workspace-layout{grid-template-columns:1fr;gap:20px}.workspace-layout>.roster{margin-bottom:0}.workspace-main{padding:0}.workspace-main .section-heading{margin-top:5px}.context-panel{grid-column:auto;padding:25px 0 0;margin-top:10px}.context-panel .detail-rows{font-size:12px}.context-panel .detail-rows>div{font-size:12px}.context-panel .detail-rows strong{font-size:12px}.context-note{display:flex;flex-direction:column;gap:10px;margin-top:20px}.context-note p{margin:0;font-size:12px}.context-panel .button{margin-top:20px}.quote-meta{font-size:12px}.trade-box{margin-top:20px}.segmented{margin-bottom:22px}.price-heading{font-size:27px}.trade-summary .trade-total strong{font-size:25px}.quantity-input{min-height:60px}.quantity-input input{font-size:28px}.section-heading h2{font-size:19px}.level-display{padding-top:10px}.level-display>strong{font-size:89px}.milestone-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 25px}.growth-foot{font-size:12px}.performance-pair{gap:25px}.performance-pair strong{font-size:21px}.performance-pair>div{font-size:12px}.ledger-heading{align-items:flex-start;flex-direction:column;gap:25px;margin-top:20px}.ledger-panel{margin-top:22px}th{padding:12px 9px;font-size:12px}td{padding:14px 9px;font-size:12px}td:first-child{font-size:12px}.settings-grid{margin-top:17px;gap:20px}.settings-section{padding:20px 16px}.settings-section .section-heading h2{font-size:18px}.settings-section p{font-size:12px}.clock-display{font-size:19px}.test-actions{gap:8px}.test-actions .button{font-size:12px;padding:9px 12px}.data-state{font-size:16px}.rules-section ul{font-size:12px}.fine-print{font-size:12px}.modal{padding:30px 23px}.modal h2{font-size:22px}.modal p{font-size:12px}#toast{bottom:max(18px,env(safe-area-inset-bottom));font-size:12px;padding:13px 17px;width:max-content;max-width:90vw}.boot-screen{margin:12vh auto;padding:28px}.boot-screen h1{font-size:26px}}
@media(max-width:370px){.game-shell{padding-left:13px;padding-right:13px}.brand span{font-size:12px}.header-meta{font-size:12px}.nav-item>span{font-size:12px}.nav-item>svg{width:14px}.character-layout{column-gap:16px}.roster-copy strong{font-size:14px}.roster-copy .eyebrow>span{display:none}.character-details .section-heading{gap:5px}.stage-label h1{font-size:24px}.detail-rows strong{font-size:12px}.bottom-strip>.button{margin-left:0;width:100%}.resource-value{font-size:25px}.resource-bar>div:first-child .resource-value{font-size:28px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* 滿版手遊框架：HUD、場景／內頁、底部導航各自佔固定區域。 */
html, body { width:100%; height:100%; overflow:hidden; overscroll-behavior:none; }
body { min-height:0; }
#app { height:100dvh; overflow:hidden; }
.game-shell { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto minmax(0,1fr) auto; width:100%; max-width:none; height:100dvh; padding:0; overflow:hidden; }
.game-hud { position:relative; z-index:20; padding:calc(10px + env(safe-area-inset-top)) max(18px,env(safe-area-inset-left)) 8px; background:linear-gradient(180deg,#090e18fa,#0c1823f5); border-bottom:1px solid #9cc9e824; box-shadow:0 6px 25px #02071044; }
.hud-topline,.hud-topline>a,.hud-clock { display:flex; align-items:center; }
.hud-topline { gap:14px; max-width:1200px; margin:auto; font-size:12px; color:#7e9aaf; line-height:14px; }
.hud-topline>a { gap:6px; color:#c3d6e4; letter-spacing:.16em; white-space:nowrap; }
.hud-topline>a>svg { width:14px; height:14px; }
.hud-market { margin-left:auto; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#89a6b7; font-size:12px; }
.hud-market.is-open { color:var(--gold); }
.hud-market.is-test { color:#e6c87f; }
.hud-clock { gap:8px; font-variant-numeric:tabular-nums; white-space:nowrap; font-size:12px; }
.hud-resources { display:grid; grid-template-columns:1.3fr 1fr; gap:24px; max-width:1200px; margin:7px auto 5px; }
.hud-resources>div { display:flex; align-items:center; gap:10px; min-width:0; }
.hud-resources>div>div { display:flex; align-items:baseline; gap:15px; min-width:0; }
.hud-resources svg { width:24px; height:24px; color:#9dcde2; }
.hud-resources small { font-size:12px; color:#8eabbc; white-space:nowrap; }
.hud-resources small>span { font-size:12px; color:#5d8097; }
.hud-resources strong { color:#e6f5ff; font-size:27px; line-height:1.4; font-weight:300; font-variant-numeric:tabular-nums; white-space:nowrap; }
.hud-profit { padding-left:22px; border-left:1px solid #90b8d12e; }
.hud-profit>svg { color:#b7bfdc; }
.hud-summary { display:flex; gap:20px; max-width:1200px; margin:auto; font-size:12px; color:#7d95aa; line-height:16px; }
.hud-summary b { font-weight:400; color:#afc5d5; margin-left:4px; }
.hud-summary [data-live=return] { color:#afc5d5; }
.hud-quote { margin-left:auto; font-size:12px; }
.game-main { min-width:0; min-height:0; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#496378 #0a111b; padding:24px max(24px,calc((100vw - 1320px)/2)); }
.game-main.is-home { overflow:hidden; padding:0; }
.game-main.is-panel .workspace-layout { min-height:0; margin:0; }
.game-main.is-panel .ledger-heading { margin-top:0; }
.game-main.is-panel .settings-grid { margin-bottom:0; }
.main-nav { position:relative; top:auto; z-index:25; display:flex; justify-content:center; gap:0; flex-shrink:0; padding:0 max(8px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(8px,env(safe-area-inset-left)); border-top:1px solid #96c6e436; border-bottom:0; background:linear-gradient(180deg,#0f1b29,#080e18); box-shadow:0 -8px 30px #02071266; backdrop-filter:none; }
.main-nav .nav-item { flex:1; min-width:0; max-width:200px; min-height:70px; display:flex; flex-direction:column; gap:4px; padding:10px 4px 8px; color:#728ba1; background:none; }
.main-nav .nav-item>svg { width:26px; height:26px; stroke-width:1.25; }
.main-nav .nav-item>span { display:block; font-size:12px; letter-spacing:.12em; line-height:1.4; }
.main-nav .nav-item:after { top:0; bottom:auto; left:25%; right:25%; height:2px; }
.main-nav .nav-item.active { color:#bfeeff; background:radial-gradient(ellipse at 50% 0,#5599b52e,transparent 75%); }
.main-nav .nav-item.active>svg { filter:drop-shadow(0 0 7px #67c6ea65); }
.main-nav .nav-item:hover { color:#d6f3ff; background-color:#7cbddd08; }
#toast { bottom:calc(85px + env(safe-area-inset-bottom)); }
.home-scene { display:grid; grid-template-rows:minmax(0,1fr) auto; height:100%; min-height:0; background:radial-gradient(ellipse at 50% 40%,#244f6d50,transparent 70%),linear-gradient(#0c1726,#102332 65%,#090f1b); }
.ensemble-stage { position:relative; min-height:0; isolation:isolate; overflow:hidden; }
.scene-sky { position:absolute; inset:0; z-index:-1; background-image:radial-gradient(circle at 13% 24%,#d2eeff99 0 1px,transparent 1.5px),radial-gradient(circle at 72% 14%,#a6dfff77 0 1px,transparent 1.5px),radial-gradient(circle at 83% 38%,#b6e2ff66 0 1px,transparent 1.5px),radial-gradient(circle at 40% 48%,#e2f7ff77 0 1px,transparent 1.5px); }
.scene-sky:after { content:""; position:absolute; left:-10%; right:-10%; bottom:5%; height:24%; border-top:1px solid #a2d8e325; background:repeating-linear-gradient(90deg,transparent 0 90px,#7bafcb0c 91px 92px),repeating-linear-gradient(0deg,transparent 0 30px,#7bafcb12 31px 32px); transform:perspective(240px) rotateX(58deg); transform-origin:50% 100%; mask-image:linear-gradient(transparent,#000 60%,transparent); }
.scene-orbit { position:absolute; width:min(82vw,710px); aspect-ratio:1; top:-12%; left:50%; transform:translateX(-50%) rotate(-25deg); border:1px solid #9dcced13; border-radius:50%; box-shadow:0 0 90px #8fbde30a,inset 0 0 90px #8fbde308; }
.scene-orbit:before { content:""; position:absolute; inset:9%; border:1px solid #a4d5ea0c; border-radius:50%; }
.scene-orbit.second { width:min(94vw,940px); top:-37%; border-color:#9dcced0a; }
.scene-horizon { position:absolute; top:70%; left:4%; right:4%; height:1px; background:linear-gradient(90deg,transparent,#86c5e338,transparent); box-shadow:0 0 50px 16px #8cc7d90a; }
.scene-caption { position:absolute; top:20px; left:24px; right:24px; display:flex; justify-content:space-between; color:#8099af; font-size:12px; letter-spacing:.2em; }
.scene-caption>span:last-child { font-size:12px; letter-spacing:.1em; color:#56768d; }
.scene-party { position:absolute; inset:24px 0 12px; width:min(100%,1050px); margin:auto; }
.scene-character { position:absolute; left:var(--screen); bottom:0; transform:translateX(-50%); width:28%; height:90%; padding:0; border:0; background:none; color:var(--character-color); outline-offset:-4px; }
.scene-character[data-rank="1"] { height:100%; }
.character-model { position:absolute; top:0; bottom:64px; left:0; right:0; display:flex; justify-content:center; align-items:flex-end; opacity:.44; transition:opacity .25s; }
.scene-character.selected .character-model { opacity:.9; }
.scene-character.owned .character-model { filter:drop-shadow(0 0 12px #91d6ed12); }
.model-placeholder { display:block; width:100%; height:100%; max-width:230px; overflow:visible; }
.model-fill { fill:#89bddb08; stroke:currentColor; }
.model-axis { opacity:.2; }
.character-light { position:absolute; top:16%; bottom:16%; left:12%; right:12%; background:linear-gradient(transparent,#8bcce20a 60%,#8bcce200); clip-path:polygon(30% 0,70% 0,100% 100%,0 100%); opacity:.5; }
.scene-character.selected .character-light { background:linear-gradient(transparent,#9cd8ef1b 75%,transparent); opacity:1; }
.character-plinth { position:absolute; bottom:60px; left:12%; right:12%; height:22px; border-radius:50%; border:1px solid #abddec22; background:radial-gradient(ellipse,#9ad8ed13,transparent 65%); box-shadow:0 10px 30px #0004; }
.scene-character.selected .character-plinth { border-color:#abddec66; box-shadow:0 0 24px #83c8e31a,0 10px 30px #0004; }
.scene-name { position:absolute; bottom:0; left:0; right:0; display:flex; flex-direction:column; gap:2px; text-align:center; color:#e0edf7; text-shadow:0 1px 4px #020914; }
.scene-name>small { display:flex; align-items:center; justify-content:center; gap:10px; font-size:12px; color:#c6d9e8; }
.scene-name>small>span { font-size:12px; color:#99b9cf; }
.scene-name>strong { font-size:19px; font-weight:500; letter-spacing:.15em; line-height:1.5; }
.scene-name>em { font-size:12px; font-style:normal; color:#627e93; }
.scene-quote { display:flex; flex-direction:column; align-items:center; gap:1px; padding:2px 0; color:#99b4c6; background:linear-gradient(90deg,transparent,#0a1523dd 20%,#0a1523dd 80%,transparent); font-variant-numeric:tabular-nums; line-height:1.35; }
.scene-quote[data-direction="up"] { color:#ff7c88; }
.scene-quote[data-direction="down"] { color:#71e0aa; }
.scene-quote[data-direction="flat"] { color:#f4d779; }
.scene-close { display:flex; align-items:baseline; justify-content:center; gap:4px; white-space:nowrap; }
.scene-close>b { font-size:16px; font-weight:500; }
.scene-change { font-size:13px; white-space:nowrap; }
.scene-character.selected .scene-name>strong { color:#f1fbff; text-shadow:0 1px 4px #020914,0 0 18px #6ec3ef44; }
.character-select-mark { position:absolute; bottom:-12px; left:50%; transform:translateX(-50%); opacity:0; }
.character-select-mark>svg { display:block; width:13px; height:13px; }
.scene-character.selected .character-select-mark { opacity:1; }
.home-command { width:100%; max-width:1160px; margin:0 auto; padding:0 24px 14px; }
.character-peek { display:flex; align-items:center; width:100%; min-height:46px; gap:12px; padding:6px 4px; color:#cadce8; border:0; border-top:1px solid #99c8e026; background:none; text-align:left; }
.peek-mark { display:grid; place-items:center; width:30px; height:30px; border:1px solid #8db4cd40; transform:rotate(45deg); font:italic 19px Georgia,serif; color:#a4cede; }
.peek-mark>i { font-style:italic; transform:rotate(-45deg); }
.peek-copy { flex:1; display:flex; align-items:center; justify-content:space-between; gap:10px; min-width:0; }
.peek-copy>strong { font-size:13px; letter-spacing:.1em; }
.peek-copy>strong>small { margin-left:10px; font-size:12px; color:#8098ad; letter-spacing:0; }
.peek-copy>span { font-size:12px; color:#7f9eb5; white-space:nowrap; }
.peek-copy b { color:#c4e9f5; font-size:13px; font-weight:400; margin-left:6px; }
.peek-copy em { font-size:12px; font-style:normal; color:#678498; margin-left:8px; }
.character-peek>svg { width:17px; height:17px; color:#7796a9; }
.idle-collect { display:flex; align-items:center; gap:14px; padding:10px 14px; border:1px solid #94c9e336; background:linear-gradient(110deg,#29476055,#15253499); box-shadow:0 10px 25px #0002; }
.idle-chest { position:relative; display:grid; place-items:center; width:34px; height:34px; color:#c6e8f4; }
.idle-chest>svg { width:29px; height:29px; }
.idle-ready { position:absolute; width:4px; height:4px; right:1px; top:0; background:#b6eaff; transform:rotate(45deg); box-shadow:0 0 9px #90d6f2; }
.idle-collect-copy { flex:1; min-width:0; }
.idle-collect-title { display:flex; gap:10px; align-items:center; font-size:12px; color:#adc4d3; }
.idle-collect-title small { font-size:12px; color:#6c8aa0; }
.idle-collect-values { display:flex; align-items:baseline; gap:5px; font-variant-numeric:tabular-nums; }
.idle-collect-values>b { font-size:19px; font-weight:300; line-height:1.4; color:#e0f3ff; }
.idle-collect-values>small { font-size:12px; color:#87a3b8; }
.idle-collect-values>span { font-size:12px; color:#9db6c8; margin-left:6px; }
.idle-meter { display:block; width:100%; height:2px; background:#060f194d; margin-top:4px; overflow:hidden; }
.idle-meter>i { display:block; height:100%; background:#8acfe3; box-shadow:0 0 8px #8acfe3; }
.collect-button { display:flex; align-items:center; justify-content:center; gap:10px; min-height:42px; min-width:90px; padding:8px 14px; border:1px solid #8bd6ed80; background:linear-gradient(120deg,#5597b53d,#204d6859); color:#dbf5ff; font-size:13px; letter-spacing:.12em; }
.collect-button>svg { width:16px; height:16px; }
.character-modal { max-height:calc(100dvh - 44px); overflow-y:auto; }
.character-modal-heading { display:flex; align-items:center; justify-content:space-between; }
.character-profile { display:flex; align-items:center; gap:20px; margin:20px 0 24px; }
.character-avatar { display:grid; place-items:center; flex:0 0 auto; width:104px; height:104px; overflow:hidden; border:1px solid var(--character-color); border-radius:20px; background:radial-gradient(ellipse at 50% 25%,#45627766,transparent 75%),#101d2c; box-shadow:inset 0 0 22px #0005,0 8px 24px #0003; }
.character-avatar img { display:block; width:100%; height:100%; object-fit:contain; }
.character-avatar>span { font-size:38px; color:var(--character-color); }
.character-profile-copy { min-width:0; }
.character-profile-copy h2 { margin:8px 0 0; }
.character-profile-copy .eyebrow { color:var(--character-color); }
@media(max-width:380px) {
  .character-profile { gap:14px; }
  .character-avatar { width:88px; height:88px; border-radius:16px; }
}
.icon-button { padding:0; width:34px; height:34px; border:1px solid #91b6cf33; color:#b9d5e4; background:none; font-size:24px; line-height:1; }
.character-modal h2>small { margin-left:14px; font-size:13px; color:#859fb3; }
.modal-skill { display:flex; flex-direction:column; padding:20px 0; }
.modal-skill>strong { font-size:34px; font-weight:300; line-height:1.4; color:#b9e5f1; }
.modal-skill>span { font-size:12px; color:#8aa9be; }
.modal-skill p { margin:12px 0; }
.modal-skill>small { margin-top:7px; color:#7997aa; font-size:12px; }
@media(max-width:700px) {
  .game-hud { padding-left:max(15px,env(safe-area-inset-left)); padding-right:max(15px,env(safe-area-inset-right)); }
  .hud-topline { gap:8px; }
  .hud-topline>a { font-size:12px; letter-spacing:.1em; }
  .hud-market { font-size:12px; }
  .hud-clock { font-size:12px; gap:5px; }
  .hud-resources { gap:12px; margin-top:6px; }
  .hud-resources>div { gap:7px; }
  .hud-resources>div>div { display:block; }
  .hud-resources small { display:block; font-size:12px; line-height:1.2; }
  .hud-resources strong { font-size:23px; line-height:1.3; }
  .hud-profit { padding-left:12px; }
  .hud-profit strong { font-size:21px; }
  .hud-resources svg { width:20px; height:20px; }
  .hud-summary { font-size:12px; gap:12px; }
  .hud-quote { font-size:12px; }
  .game-main.is-panel { padding:20px 16px; }
  .scene-caption { top:14px; left:18px; right:18px; font-size:12px; }
  .scene-caption>span:last-child { font-size:12px; }
  .scene-character { left:var(--screen); width:33%; height:88%; }
  .scene-character[data-rank="1"] { height:100%; }
  .scene-name>strong { font-size:17px; }
  .scene-name>small { gap:6px; font-size:12px; }
  .scene-name>small>span { font-size:12px; }
  .character-plinth { left:5%; right:5%; height:17px; }
  .home-command { padding:0 15px 10px; }
  .character-peek { gap:10px; }
  .peek-mark { width:24px; height:24px; font-size:15px; }
  .peek-copy>strong { font-size:12px; letter-spacing:.05em; }
  .peek-copy>strong>small { margin-left:5px; }
  .peek-copy>span { font-size:12px; }
  .peek-copy b { margin-left:4px; font-size:12px; }
  .peek-copy em { display:none; }
  .idle-collect { gap:8px; padding:8px 10px; }
  .idle-chest { width:27px; }
  .idle-chest>svg { width:25px; height:25px; }
  .idle-collect-title { font-size:12px; gap:8px; }
  .idle-collect-title small { font-size:12px; }
  .idle-collect-values>b { font-size:18px; }
  .idle-collect-values>span { font-size:12px; margin-left:3px; }
  .collect-button { min-width:63px; padding:7px 9px; gap:4px; font-size:12px; }
  .collect-button>svg { width:13px; height:13px; }
  .main-nav .nav-item { min-height:66px; }
  .main-nav .nav-item>svg { width:25px; height:25px; }
  .main-nav .nav-item>span { font-size:12px; }
}
@media(max-width:390px) {
  .hud-topline>a>span { display:none; }
  .hud-market { margin-left:0; }
  .hud-clock { margin-left:auto; }
  .hud-quote { display:none; }
  .hud-resources { grid-template-columns:1.3fr 1fr; }
  .hud-resources strong { font-size:21px; }
  .hud-profit strong { font-size:19px; }
  .peek-copy>span { font-size:12px; }
  .idle-chest { display:none; }
  .scene-caption { letter-spacing:.1em; }
}
@media(max-height:700px) {
  .game-hud { padding-top:calc(6px + env(safe-area-inset-top)); padding-bottom:5px; }
  .hud-resources { margin-top:4px; margin-bottom:2px; }
  .hud-resources strong { font-size:20px; }
  .hud-resources small { font-size:12px; }
  .hud-topline { line-height:12px; }
  .hud-summary { line-height:14px; }
  .main-nav .nav-item { min-height:59px; padding-top:7px; padding-bottom:5px; gap:2px; }
  .main-nav .nav-item>svg { width:23px; height:23px; }
  .home-command { padding-bottom:7px; }
  .character-peek { min-height:39px; padding-top:4px; padding-bottom:4px; }
  .idle-collect { padding-top:6px; padding-bottom:6px; }
  .scene-caption { top:10px; }
  .scene-party { top:14px; }
}
@media(max-height:480px) and (min-width:600px) {
  .game-hud { padding-top:calc(5px + env(safe-area-inset-top)); }
  .hud-topline { display:none; }
  .hud-resources { margin-top:0; }
  .hud-resources>div>div { display:flex; }
  .home-scene { display:block; position:relative; }
  .ensemble-stage { height:100%; }
  .home-command { position:absolute; left:18px; right:18px; bottom:6px; width:auto; padding:0; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:18px; background:#0c1828dd; }
  .character-peek { padding:6px 12px; border-top:0; }
  .idle-collect { min-height:50px; }
  .scene-party { top:4px; bottom:82px; max-width:700px; }
  .scene-character { height:100%; }
  .character-model { bottom:40px; }
  .character-plinth { bottom:36px; }
  .scene-name>em,.scene-caption { display:none; }
  .scene-name>strong { font-size:13px; }
  .scene-name>small { font-size:12px; }
  .scene-name { gap:0; }
  .character-select-mark { bottom:-12px; }
}


/* 中央交易鈕僅向上溢出，不改變 Tab 列高度或領取面板的位置。 */
.main-nav .trade-tab { z-index:1; color:#afdce9; }
.main-nav .trade-tab>.trade-tab-emblem {
  position:absolute;
  top:-18px;
  left:50%;
  transform:translateX(-50%);
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  border:1px solid #92d5ec99;
  border-radius:14px;
  background:radial-gradient(ellipse at 50% 0,#36758b85,transparent 80%),linear-gradient(155deg,#1e3b50,#101e2e);
  box-shadow:0 -3px 18px #70bed72b,inset 0 1px 0 #d0f3ff2b,0 4px 12px #020a1466;
  color:#d2f3ff;
}
.main-nav .trade-tab>.trade-tab-emblem>svg { width:28px; height:28px; stroke-width:1.6; filter:drop-shadow(0 0 5px #82d6ef44); }
.main-nav .trade-tab>.nav-tab-label { position:absolute; left:0; right:0; bottom:8px; text-align:center; }
.main-nav .trade-tab:after { display:none; }
.main-nav .trade-tab.active>.trade-tab-emblem { border-color:#b4edff; background:radial-gradient(ellipse at 50% 0,#4893ae99,transparent 85%),linear-gradient(155deg,#28546b,#152a40); box-shadow:0 -3px 22px #70bed743,inset 0 1px 0 #d0f3ff44,0 4px 12px #020a1466; }
.main-nav .trade-tab:hover>.trade-tab-emblem { border-color:#d2f6ff; }
@media(max-height:700px) {
  .main-nav .trade-tab>.nav-tab-label { bottom:5px; }
}


/* 持股市值與未實現庫存損益為主，現金與 EXP 移至次要列。 */
.hud-profit [data-live="holdings-percent"] { color:#b8d7e5; }
.hud-profit [data-live="holdings-percent"].is-gain { color:#efa7ac; }
.hud-profit [data-live="holdings-percent"].is-loss { color:#91cdb4; }
.hud-summary>span { white-space:nowrap; }
.hud-summary .hud-quote { min-width:0; overflow:hidden; text-overflow:ellipsis; }

/* Canvas is retained across navigation; controls and labels stay accessible. */
.home-model-host { position:absolute; inset:24px 0 100px; width:min(100%,1050px); margin:auto; pointer-events:none; z-index:1; }
.home-model-layer { width:100%; height:100%; }
.home-model-layer canvas { display:block; width:100%; height:100%; }
.scene-party { z-index:2; }
.scene-caption { z-index:3; pointer-events:none; }
.scene-status { display:flex; align-items:center; gap:6px; }
.scene-retry { pointer-events:auto; padding:0 4px; background:none; border:0; color:#bddcec; text-decoration:underline; }
.scene-character[data-model-ready="true"] .character-model { visibility:hidden; }
.scene-character[data-model-ready="true"] .character-light { opacity:.15; }
@media(max-height:480px) and (min-width:600px) {
  .home-model-host { top:4px; bottom:124px; max-width:700px; }
}
