@font-face{font-family:localserif;src:local("Noto Serif CJK SC"),local("Songti SC"),local("SimSun");font-display:swap}
:root{color-scheme:dark;--bg:#11191a;--surface:#1b2525;--border:#35413e;--text:#eae8de;--muted:#a4b0a9;--gold:#d8b978;--orange:#e59b67;--teal:#88bfb1;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;font-size:calc(16px * var(--font-scale,var(--ui-scale,1)))}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--border);background:transparent}button:hover{border-color:var(--gold);color:#fff}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button:disabled{cursor:default;opacity:.45}button:disabled:hover{border-color:var(--border)}.hidden{display:none!important}.screen{min-height:100svh}#menu{max-width:1440px;margin:auto;padding:0 5.2%;background:radial-gradient(ellipse at 70% 10%,#2c363029,transparent 55%)}.topline{height:86px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{color:var(--text);text-decoration:none;font-size:calc(18px * var(--font-scale,var(--ui-scale,1)));letter-spacing:2px;font-weight:800;white-space:nowrap}.brand>span:first-child{color:var(--gold)}.brand-divider{margin:0 19px;color:#66736c;font-weight:400}.brand-sub{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));font-weight:400;letter-spacing:3px}.top-actions{display:flex;align-items:center;gap:20px}.quiet{border:0;color:var(--muted);font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));padding:8px 0}.version{border:1px solid var(--border);padding:5px 9px;font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));letter-spacing:1px;color:var(--muted)}.intro{display:flex;justify-content:space-between;align-items:center;padding:40px 0 32px}.eyebrow{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));font-weight:600;color:var(--gold);letter-spacing:5px;margin:0 0 9px}h1{font-family:localserif,serif;letter-spacing:6px;font-weight:700;font-size:calc(48px * var(--font-scale,var(--ui-scale,1)));margin:0 0 12px}.title-dot{color:var(--gold);margin-left:3px}.intro-copy{color:var(--muted);font-size:calc(15px * var(--font-scale,var(--ui-scale,1)));margin:0;letter-spacing:1px}.chapter{display:flex;align-items:center;gap:20px}.chapter-line{width:50px;height:1px;background:#697365}.chapter p{color:var(--muted);font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));letter-spacing:2px;line-height:1.9}.chapter p span{display:block;color:var(--text);font-size:calc(17px * var(--font-scale,var(--ui-scale,1)))}.chapter-number{font:italic 64px Georgia,serif;color:#667365}.character-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.character{position:relative;border:1px solid var(--border);background:#1a2523;text-align:left;padding:0;isolation:isolate;transition:transform .22s,border-color .22s;min-width:0}.character:hover{transform:translateY(-4px)}.character.selected{border-color:var(--gold);box-shadow:0 0 0 1px #d8b97840}.character-art{height:270px;position:relative;overflow:hidden;background:#202b29}.portrait{position:absolute;inset:0;background-image:url('./assets/characters-v1052.webp');background-size:300% auto;background-repeat:no-repeat;background-position-y:35%;image-rendering:pixelated;transition:transform .5s}.character:hover .portrait{transform:scale(1.035)}.character-art:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#1a2523 1%,#1a252320 35%,transparent 65%)}.character.selected .character-art:after{background:linear-gradient(0deg,#1a2523 1%,#1a252300 48%)}.card-number{position:absolute;z-index:1;left:20px;top:18px;font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));letter-spacing:2px;color:#eae8deb0}.selection-mark{position:absolute;top:14px;right:16px;z-index:2;padding:5px 9px;font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));background:var(--gold);color:#1a2421;display:none}.selected .selection-mark{display:block}.character-copy{position:relative;padding:0 24px 22px;margin-top:-4px;z-index:2}.character-copy .role{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));letter-spacing:3px;color:var(--accent);margin:0 0 8px}.character-copy h2{font:700 28px localserif,serif;letter-spacing:3px;margin:0 0 10px}.character-copy .lore{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));color:var(--muted);line-height:1.8;margin:0 0 17px;min-height:50px}.tags{display:flex;gap:7px;flex-wrap:wrap}.tags span{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));padding:5px 8px;border:1px solid #54605a66;color:#bdc7bd;background:#26312a55}.character-foot{margin-top:18px;border-top:1px solid #3a464044;padding-top:14px;display:flex;align-items:center;justify-content:space-between;font-size:calc(13px * var(--font-scale,var(--ui-scale,1)));color:var(--muted)}.character-foot b{font-weight:400;color:var(--accent)}.departure{display:flex;justify-content:space-between;align-items:center;padding:27px 0 24px;gap:24px}.tiny-label{color:var(--muted);font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));letter-spacing:2px;margin-right:17px}.journey{display:flex;align-items:center;flex-wrap:wrap;max-width:60%;gap:10px 0}.duration-options{display:flex;gap:8px}.duration{padding:9px 12px;font-size:calc(13px * var(--font-scale,var(--ui-scale,1)));background:#17211f}.duration.selected{border-color:#849684;background:#2c3930;color:#f0e9d5}.journey p{flex:0 0 100%;color:#8d9b93;font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));margin:0;line-height:1.8}.depart-right{display:flex;align-items:center;gap:22px}.depart-right>p{font-size:calc(13px * var(--font-scale,var(--ui-scale,1)));color:var(--muted);white-space:nowrap}.primary{background:var(--gold);border:1px solid var(--gold);color:#19241e;font-weight:600;padding:16px 25px;display:inline-flex;gap:32px;align-items:center;justify-content:space-between;min-height:54px}.primary:hover{background:#eccb8b;color:#15201c}.primary span{font-size:calc(23px * var(--font-scale,var(--ui-scale,1)));line-height:1}.menu-footer{border-top:1px solid var(--border);padding:20px 0 25px;display:flex;justify-content:space-between;gap:20px;color:#8e9b94;font-size:calc(12px * var(--font-scale,var(--ui-scale,1)))}kbd{font-family:inherit;font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));padding:3px 6px;border:1px solid #435249;border-radius:2px;color:#c6cfc6}i{font-style:normal}.menu-footer i{margin:0 9px;color:#57675c}#game{position:fixed;inset:0;background:#172722;overflow:hidden;touch-action:none;min-height:0}#world{display:block;width:100%;height:100%;outline:0;image-rendering:pixelated}.game-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 150px 20px #070f1366}.hud{position:absolute;top:23px;left:28px;right:28px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none}.hero-hud{display:flex;gap:12px;width:255px}.hero-badge{width:48px;height:50px;display:grid;place-items:center;background:#182521dc;border:1px solid #8d8062;font:24px localserif,serif;color:var(--gold)}.hero-hud>div:last-child{flex:1}.hp-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.hp-heading b{font-size:calc(15px * var(--font-scale,var(--ui-scale,1)))}.hp-heading span{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));color:#d2d2c4}.bar{background:#0b1518c9;border:1px solid #65746666;height:9px}.bar i{height:100%;display:block;transition:width .15s;width:100%}.hp i{background:linear-gradient(90deg,#ab6557,#dc9c76)}.trait-text{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));color:#b3c0ae;display:block;margin-top:6px}.clock-hud{position:absolute;left:50%;transform:translateX(-50%);text-align:center}.clock-hud>span:first-child{font-size:calc(13px * var(--font-scale,var(--ui-scale,1)));letter-spacing:4px;color:#cad1bd;display:block}.clock-hud b{font:32px Georgia,serif;letter-spacing:3px;display:block;margin:5px 0}.clock-hud>span:last-child{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));color:#a4b6a2}.stats-hud{display:flex;gap:22px;align-items:center;font-size:calc(13px * var(--font-scale,var(--ui-scale,1)));color:#b2c1b4}.stats-hud b{color:#eee4cf;margin-left:7px;font-size:calc(19px * var(--font-scale,var(--ui-scale,1)));font-weight:400}.square{pointer-events:auto;width:40px;height:40px;background:#14211ed9;font-size:calc(20px * var(--font-scale,var(--ui-scale,1)))}.xp-hud{position:absolute;top:105px;left:28px;display:flex;align-items:center;gap:10px;width:255px}.xp-hud>span{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));color:var(--gold);white-space:nowrap}.xp-hud>.bar{height:5px;flex:1}.xp i{width:0;background:#adbf8d}.boss-hud{position:absolute;top:128px;left:50%;transform:translateX(-50%);width:min(390px,70%)}.boss-hud>div:first-child{display:flex;justify-content:space-between;font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));color:#e5cbb4;margin-bottom:7px}.boss{height:7px}.boss i{background:#bb635f}.announcement{position:absolute;top:29%;left:50%;width:80%;transform:translateX(-50%);text-align:center;pointer-events:none;font:26px localserif,serif;color:#eee2bf;text-shadow:0 2px 12px #000;opacity:0;transition:opacity .4s;letter-spacing:3px}.announcement.show{opacity:1}.announcement small{display:block;font:13px "Microsoft YaHei",sans-serif;margin-top:12px;letter-spacing:1px;color:#c4cfbd}.bottom-hud{position:absolute;bottom:25px;left:28px;right:28px;display:flex;align-items:flex-end;justify-content:space-between;gap:14px;pointer-events:none}.weapon-slots{display:flex;gap:8px}.weapon-slot{width:58px;height:62px;position:relative;border:1px solid #71806d77;background:#13221edb;display:flex;align-items:center;justify-content:center}.weapon-slot.empty{border-style:dashed;opacity:.5}.weapon-slot canvas{width:36px;height:36px;image-rendering:pixelated}.weapon-slot small{position:absolute;bottom:3px;right:5px;font-size:calc(11px * var(--font-scale,var(--ui-scale,1)));color:var(--gold)}.weapon-slot>span{font-size:calc(21px * var(--font-scale,var(--ui-scale,1)));color:#738771}.bottom-help{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));color:#9caf9b;margin-top:10px;text-shadow:0 1px 4px #000}.bottom-help>span:first-child{margin:0 7px}.skill-button{pointer-events:auto;position:relative;display:flex;align-items:center;gap:13px;padding:14px 19px;overflow:hidden;background:#17261fe8;border-color:#bda773;min-width:175px;text-align:left}.skill-button>span{font-size:calc(30px * var(--font-scale,var(--ui-scale,1)));color:var(--gold)}.skill-button strong{font-size:calc(15px * var(--font-scale,var(--ui-scale,1)));display:block;font-weight:500}.skill-button small{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));color:#bbbea6;display:block;margin-top:5px}.skill-button i{position:absolute;bottom:0;left:0;height:3px;background:var(--gold);width:100%}.skill-button.cooling{border-color:#566553}.touch-help{display:none}.event-hint{position:absolute;left:50%;bottom:135px;transform:translateX(-50%);padding:12px 18px;border:1px solid var(--gold);background:#1a2824ed;color:#e8dcbf;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));cursor:pointer;text-align:center}.joystick{position:absolute;width:100px;height:100px;border:1px solid #e0dac054;border-radius:50%;background:#e0dac015;pointer-events:none}.joystick i{position:absolute;width:38px;height:38px;left:30px;top:30px;border:1px solid #e0dac087;border-radius:50%;background:#e0dac02b}.modal{position:fixed;inset:0;z-index:10;background:#071210ce;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto}.modal-panel{background:#17231f;border:1px solid #596751;padding:36px;width:min(900px,100%);box-shadow:0 30px 120px #0008;max-height:90svh;overflow:auto}.modal-eyebrow{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));letter-spacing:4px;color:var(--gold);margin:0 0 12px}.modal-panel h2{font:32px localserif,serif;letter-spacing:3px;margin:0 0 12px}.modal-sub{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));color:var(--muted);margin:0 0 25px;line-height:1.9}.upgrade-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:24px}.upgrade{padding:23px 20px;background:#202e26;text-align:left;min-height:230px;display:flex;flex-direction:column;align-items:flex-start;position:relative}.upgrade:hover{background:#2a382b}.upgrade-icon{width:58px;height:58px;margin-bottom:15px;image-rendering:pixelated}.upgrade .type{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));color:var(--gold);margin-bottom:7px}.upgrade h3{font:20px localserif,serif;margin:0 0 12px}.upgrade p{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));color:#bec8ba;line-height:1.8;margin:0}.upgrade .key{position:absolute;right:13px;top:13px;font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));color:#94a18b}.upgrade .level-tag{margin-top:auto;padding-top:18px;font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));color:#e3cf99}.modal-footer{margin-top:25px;display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--muted);font-size:calc(13px * var(--font-scale,var(--ui-scale,1)))}.secondary{padding:12px 20px;background:#253129}.pause-actions{display:flex;gap:12px;flex-wrap:wrap}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 28px;margin:24px 0}.help-grid b{font-size:calc(15px * var(--font-scale,var(--ui-scale,1)));color:var(--gold)}.help-grid p{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));line-height:1.9;color:#bcc7b8;margin:7px 0}.weapon-guide{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));line-height:2;color:#bcc7b8}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:28px 0}.result-stats div{background:#263328;padding:20px}.result-stats b{font:30px Georgia,serif;display:block;color:#e7ce96;margin-bottom:9px}.result-stats span{font-size:calc(13px * var(--font-scale,var(--ui-scale,1)));color:#acbba4}.result-build{color:#bdc7b7;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));line-height:2;margin-bottom:25px}
@media(min-width:1500px){.character-art{height:330px}.intro{padding-top:55px;padding-bottom:38px}.departure{padding:32px 0}}
@media(max-width:1100px){#menu{padding:0 4%}.character-grid{gap:14px}.character-art{height:235px}.character-copy{padding:0 17px 18px}.character-copy h2{font-size:calc(25px * var(--font-scale,var(--ui-scale,1)))}.depart-right>p{display:none}.chapter-number{font-size:calc(50px * var(--font-scale,var(--ui-scale,1)))}.intro{padding-top:28px}.top-actions{gap:14px}}
@media(max-width:760px){#menu{padding:0 20px}.topline{height:66px}.brand{font-size:calc(15px * var(--font-scale,var(--ui-scale,1)))}.brand-divider,.brand-sub,.version,.chapter{display:none}.top-actions{gap:17px}.quiet{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)))}.intro{padding:26px 0 22px}h1{font-size:calc(36px * var(--font-scale,var(--ui-scale,1)))}.intro-copy{font-size:calc(13px * var(--font-scale,var(--ui-scale,1)));line-height:1.8}.eyebrow{font-size:calc(11px * var(--font-scale,var(--ui-scale,1)))}.character-grid{gap:10px}.character-art{height:190px}.character-copy{padding:0 11px 14px}.character-copy .role{letter-spacing:1px;font-size:calc(11px * var(--font-scale,var(--ui-scale,1)))}.character-copy h2{font-size:calc(21px * var(--font-scale,var(--ui-scale,1)));letter-spacing:0}.character-copy .lore{display:none}.tags{gap:4px}.tags span{font-size:calc(11px * var(--font-scale,var(--ui-scale,1)));padding:4px}.character-foot{display:block;line-height:1.8;font-size:calc(11px * var(--font-scale,var(--ui-scale,1)));margin-top:12px;padding-top:9px}.character-foot b{display:block}.card-number{left:10px;top:12px;font-size:calc(10px * var(--font-scale,var(--ui-scale,1)))}.selection-mark{right:6px;top:8px;font-size:calc(10px * var(--font-scale,var(--ui-scale,1)));padding:4px}.departure{align-items:stretch;flex-direction:column;gap:20px}.journey{max-width:100%}.depart-right{display:block}.primary{width:100%;justify-content:center}.primary span{margin-left:10px}.menu-footer{font-size:calc(11px * var(--font-scale,var(--ui-scale,1)));line-height:1.8;flex-direction:column;gap:8px;padding-top:14px}.menu-footer>span:last-child{display:none}.hud{top:16px;left:15px;right:15px}.hero-hud{width:185px;gap:8px}.hero-badge{width:36px;height:42px;font-size:calc(20px * var(--font-scale,var(--ui-scale,1)))}.hp-heading b{font-size:calc(13px * var(--font-scale,var(--ui-scale,1)))}.hp-heading span{font-size:calc(11px * var(--font-scale,var(--ui-scale,1)))}.trait-text{font-size:calc(10px * var(--font-scale,var(--ui-scale,1)))}.stats-hud{gap:9px;font-size:calc(11px * var(--font-scale,var(--ui-scale,1)))}.stats-hud b{font-size:calc(16px * var(--font-scale,var(--ui-scale,1)))}.clock-hud{top:72px}.clock-hud b{font-size:calc(27px * var(--font-scale,var(--ui-scale,1)))}.clock-hud>span:first-child{font-size:calc(11px * var(--font-scale,var(--ui-scale,1)))}.clock-hud>span:last-child{font-size:calc(10px * var(--font-scale,var(--ui-scale,1)))}.xp-hud{top:74px;left:15px;width:180px}.boss-hud{top:181px}.bottom-hud{bottom:18px;left:15px;right:15px}.weapon-slots{gap:4px}.weapon-slot{width:35px;height:43px}.weapon-slot canvas{width:27px;height:27px}.weapon-slot small{font-size:calc(9px * var(--font-scale,var(--ui-scale,1)))}.bottom-help{font-size:calc(10px * var(--font-scale,var(--ui-scale,1)));max-width:220px;line-height:1.6}.skill-button{padding:10px;min-width:0;gap:7px}.skill-button>span{font-size:calc(22px * var(--font-scale,var(--ui-scale,1)))}.skill-button strong{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)))}.skill-button small{font-size:calc(10px * var(--font-scale,var(--ui-scale,1)))}.announcement{font-size:calc(22px * var(--font-scale,var(--ui-scale,1)));top:34%}.modal{padding:15px}.modal-panel{padding:24px 18px}.modal-panel h2{font-size:calc(26px * var(--font-scale,var(--ui-scale,1)))}.upgrade-grid{gap:10px}.upgrade{padding:16px 10px;min-height:245px}.upgrade h3{font-size:calc(17px * var(--font-scale,var(--ui-scale,1)))}.upgrade p{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)))}.upgrade-icon{width:45px;height:45px}.upgrade .type,.upgrade .level-tag{font-size:calc(11px * var(--font-scale,var(--ui-scale,1)))}.help-grid{grid-template-columns:1fr;gap:8px}.result-stats{gap:8px}.result-stats div{padding:13px}.result-stats b{font-size:calc(24px * var(--font-scale,var(--ui-scale,1)))}}
@media(pointer:coarse){.touch-help{display:inline}.desktop-help{display:none}}
@media(max-width:430px){.character-art{height:165px}.character-copy h2{font-size:calc(19px * var(--font-scale,var(--ui-scale,1)))}.character-foot>span{display:none}.tags span:last-child{display:none}.tiny-label{font-size:calc(11px * var(--font-scale,var(--ui-scale,1)));margin-right:10px}.duration{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));padding:9px}.bottom-hud{gap:7px}.skill-button{padding:9px 7px}.skill-button>span{display:none}.upgrade-grid{grid-template-columns:1fr}.upgrade{min-height:0;padding:15px 17px 15px 78px}.upgrade-icon{position:absolute;left:17px;top:18px;width:43px;height:43px}.upgrade h3{margin-bottom:5px}.upgrade .level-tag{padding-top:8px}.upgrade .type{margin-bottom:4px}.modal-footer{font-size:calc(11px * var(--font-scale,var(--ui-scale,1)))}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* 0.2: compact live encounter status, independent music control. */
.event-ticker{position:absolute;left:28px;bottom:127px;padding:8px 12px;border-left:2px solid #cfb87e;background:#14241dd9;color:#d7d8bc;font-size:calc(13px * var(--font-scale,var(--ui-scale,1)));letter-spacing:.4px;pointer-events:none;max-width:calc(100% - 56px)}
@media(max-width:760px){.event-ticker{left:15px;bottom:111px;font-size:calc(11px * var(--font-scale,var(--ui-scale,1)));padding:7px 9px;max-width:calc(100% - 30px)}.top-actions{gap:11px}.quiet{font-size:calc(11px * var(--font-scale,var(--ui-scale,1)))}.brand{font-size:calc(13px * var(--font-scale,var(--ui-scale,1)));letter-spacing:1px}}
@media(max-width:430px){.topline{gap:6px}.top-actions{gap:8px}.quiet{font-size:calc(10px * var(--font-scale,var(--ui-scale,1)))}.brand{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)))}}

/* All three portraits use the same scale, centered crop and side spacing. */
.portrait.framed{background:none;display:flex;justify-content:center;image-rendering:pixelated}.portrait-window{height:100%;aspect-ratio:512/650;background-image:url('./assets/characters-v1052.webp');background-size:300% 157.538462%;background-position:var(--portrait-x) var(--portrait-y);background-repeat:no-repeat}.character:hover .portrait.framed{transform:none}

/* 0.5 title screen and campaign selection */
.home-screen{max-width:1440px;margin:auto;padding:0 5.2%;background:radial-gradient(ellipse at 80% 30%,#31423655,transparent 65%)}.home-top,.home-bottom{display:flex;justify-content:space-between;align-items:center;padding:28px 0;border-bottom:1px solid var(--border);gap:18px}.home-layout{display:grid;grid-template-columns:1fr 1.15fr;align-items:center;gap:7%;min-height:72svh;padding:35px 0}.home-copy h1{font-size:clamp(42px,5vw,72px)}.home-intro{font-size:calc(17px * var(--font-scale,var(--ui-scale,1)));color:var(--muted);line-height:1.8;margin-bottom:28px}.home-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:420px}.home-actions .primary,.home-actions #continueJourney{grid-column:1/-1}.home-actions .secondary{padding:14px;font-size:calc(16px * var(--font-scale,var(--ui-scale,1)))}.home-save{min-height:24px;color:var(--muted);font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));line-height:1.6}.home-art{height:clamp(350px,60vh,600px);position:relative;overflow:hidden;border:1px solid #8d805459;background:#172523}.home-art>div{height:100%;background:url('./assets/characters-v1052.webp') center 30%/cover no-repeat;image-rendering:pixelated;opacity:.8}.home-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#11191a,transparent 35%)}.home-art>span{position:absolute;bottom:30px;left:25px;z-index:1;letter-spacing:4px;font-family:localserif,serif;color:#e9d6a5}.home-bottom{border-top:1px solid var(--border);border-bottom:0;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));color:var(--muted)}.chapter-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px}.chapter-choice{padding:16px;text-align:left;background:#1b2823;border-left:3px solid var(--chapter);min-width:0}.chapter-choice.selected{border-color:var(--chapter);background:#2d3931}.chapter-choice b{display:block;font:20px localserif,serif;margin-bottom:8px}.chapter-choice small{display:block;line-height:1.6;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));color:var(--muted)}.artifact-loadout{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding-top:20px;color:var(--muted);font-size:calc(14px * var(--font-scale,var(--ui-scale,1)))}.artifact-loadout select{max-width:100%;background:#1b2823;color:var(--text);border:1px solid var(--border);padding:9px;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)))}.settings-grid{display:grid;gap:18px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:calc(16px * var(--font-scale,var(--ui-scale,1)))}.setting-row input[type=range]{width:min(210px,45%);accent-color:var(--gold)}.setting-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--gold)}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.detail-card{border:1px solid var(--border);padding:18px;min-width:0}.detail-card h3{margin:0 0 10px;font-size:calc(18px * var(--font-scale,var(--ui-scale,1)));color:var(--gold)}.detail-card p{line-height:1.8;margin:6px 0;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));color:var(--muted)}.detail-card button{margin-top:12px}.stat-table{width:100%;border-collapse:collapse;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)))}.stat-table td,.stat-table th{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border)}.delta{display:block;margin:12px 0;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));color:#b6d4bc;line-height:1.8}.banish{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));padding:8px;margin-top:8px;width:100%;color:#c3aaa0}.upgrade-wrap{display:flex;flex-direction:column;min-width:0}.upgrade-wrap>.upgrade{flex:1;width:100%;height:auto}.mechanic-hud{position:absolute;left:28px;top:131px;color:#dbc68f;font-size:calc(13px * var(--font-scale,var(--ui-scale,1)));max-width:260px;pointer-events:none;line-height:1.6}.guard-button{width:65px;height:62px;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));border-color:#c8be91;pointer-events:auto}.codex-list{max-height:58vh;overflow:auto;padding-right:7px}.modal-panel{max-height:90svh;overflow:auto}.modal-sub{line-height:1.7}.upgrade-grid .upgrade p{min-height:0}.hp-heading{gap:8px}.hp-heading b{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)))}.hp-heading span{white-space:nowrap}.top-actions{flex-wrap:wrap;gap:12px}.chapter-choice:nth-child(2){background-image:linear-gradient(110deg,#506b7730,transparent)}.chapter-choice:nth-child(3){background-image:linear-gradient(110deg,#69497830,transparent)}
@media(max-width:900px){.home-layout{gap:25px}.topline{height:auto;min-height:86px;padding:16px 0}.brand-sub,.brand-divider{display:none}.chapter-choice{padding:12px}.chapter-choice small{font-size:calc(13px * var(--font-scale,var(--ui-scale,1)))}.detail-grid{grid-template-columns:1fr}}
@media(max-width:760px){.home-screen{padding:0 20px}.home-layout{grid-template-columns:1fr;min-height:0;padding:30px 0}.home-art{height:210px;grid-row:1}.home-copy h1{font-size:calc(42px * var(--font-scale,var(--ui-scale,1)))}.home-actions{max-width:none}.home-bottom{flex-direction:column;align-items:flex-start}.chapter-choices{gap:8px}.chapter-choice b{font-size:calc(16px * var(--font-scale,var(--ui-scale,1)))}.chapter-choice small{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)))}.mechanic-hud{left:15px;top:122px;font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));max-width:180px}.guard-button{height:52px;width:49px}.detail-card{padding:13px}.stat-table{font-size:calc(13px * var(--font-scale,var(--ui-scale,1)))}.home-top{padding:18px 0}}

.banish{background:#1d2925;border:1px solid #59614d;cursor:pointer}.banish:disabled{opacity:.4;cursor:default}.upgrade-wrap>.upgrade{height:calc(100% - 45px);min-height:260px}.upgrade-wrap{display:flex;flex-direction:column;gap:8px}.settings-grid output{min-width:45px;text-align:right}.home-art>div{background-size:contain}.home-art{background-color:#192621}

/* 0.5.1: a journey landscape and compact, readable five-plus-three equipment dock. */
.brand-home{padding:0;border:0;text-align:left}.brand-home:hover{color:var(--gold)}.home-art>div{background-image:url('./assets/journey-home-v103.webp');background-size:cover;background-position:center;opacity:1}.home-art{height:auto;aspect-ratio:3/2}.home-art:after{background:linear-gradient(0deg,#11191aa6,transparent 35%)}.home-art>span{bottom:20px;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));text-shadow:0 2px 5px #000}
.equipment-label{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));letter-spacing:2px;color:#c2ceb8;margin-bottom:5px;text-shadow:0 1px 3px #000}.equipment-label span{margin-left:8px;color:#d9c28c;letter-spacing:0}.passive-label{margin-top:8px}.passive-slots{display:flex;gap:8px}.passive-slot{width:46px;height:43px}.passive-slot canvas{width:28px;height:28px}.weapon-slot{pointer-events:auto;padding:0;cursor:pointer}.weapon-slot.empty{cursor:default}.weapon-slot small{pointer-events:none}.bottom-hud>div:first-child{flex:1}.item-icon{width:52px;height:52px;image-rendering:pixelated;display:block;margin:0 0 12px}.detail-card h3{line-height:1.5}.detail-card .item-icon{float:left;margin:0 12px 8px 0}.detail-card:after{content:'';display:block;clear:both}.equipment-grid{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.equipment-select{padding:10px;border:1px solid #627260;background:#202e26;flex:1 1 130px;text-align:center}.equipment-select.selected{border-color:#e1c78e;background:#3b4733}.equipment-select .item-icon{margin:0 auto 8px}.story-hint{position:absolute;left:50%;bottom:140px;transform:translateX(-50%);max-width:65%;padding:11px 17px;background:#192b28ed;border:1px solid #a9b88c;color:#e8ddba;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));z-index:2}.story-copy{font-size:calc(16px * var(--font-scale,var(--ui-scale,1)));line-height:2;color:#d1d8cb;margin:20px 0}.story-choice{white-space:normal;line-height:1.7;text-align:left}.story-outcome{color:#c6d9ad;font-size:calc(16px * var(--font-scale,var(--ui-scale,1)));line-height:1.9}.story-record{border-left:2px solid #7c8b68;padding-left:13px;margin:18px 0}.story-record p{line-height:1.9;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));color:var(--muted)}
@media(max-width:760px){.home-art{height:auto;aspect-ratio:3/2}.bottom-hud{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.bottom-hud>div:first-child{grid-row:1/3;grid-column:1}.skill-button{grid-column:2;grid-row:2;max-width:135px}.guard-button{grid-column:2;grid-row:1;justify-self:end}.equipment-label{font-size:calc(11px * var(--font-scale,var(--ui-scale,1)));margin-bottom:4px}.weapon-slots,.passive-slots{gap:4px}.passive-label{margin-top:5px}.passive-slot{width:31px;height:32px}.passive-slot canvas{width:24px;height:24px}.weapon-slot small{font-size:calc(10px * var(--font-scale,var(--ui-scale,1)))}.bottom-help{max-width:185px;font-size:calc(10px * var(--font-scale,var(--ui-scale,1)))}.story-hint{bottom:210px;max-width:90%;font-size:calc(13px * var(--font-scale,var(--ui-scale,1)))}.event-hint{bottom:170px}.story-copy{font-size:calc(15px * var(--font-scale,var(--ui-scale,1)))}.upgrade-wrap>.upgrade{min-height:0}.home-art>span{bottom:15px;left:15px}}

.story-hint{bottom:228px}@media(max-width:760px){.story-hint{bottom:230px}}
/* 1.0 — camp, expedition and readable journey controls */
.journey-options{margin:24px 0;padding:20px;border:1px solid var(--border);background:#17231f;line-height:1.8}.mode-options{display:flex;gap:12px;flex-wrap:wrap}.mode-options .selected{border-color:var(--gold);background:#3a382a}.journey-options p{margin:12px 0;color:var(--muted)}.journey-options summary{cursor:pointer;padding:10px 0;color:var(--gold);font-size:1rem}.contract-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.contract-grid input{margin:0 10px 0 0;width:18px;height:18px;accent-color:var(--gold)}.contract-grid label{cursor:pointer;line-height:1.8}.contract-grid small{font-size:.875rem}.camp-scene{padding:100px 24px 24px;margin:20px 0;background:linear-gradient(0deg,#11201ff5,#11201f22),url('./assets/journey-home-v103.webp') center 58% / cover;border:1px solid var(--border);line-height:1.8}.camp-scene p{font-family:localserif,serif;font-size:1.25rem;text-shadow:0 2px 4px #000}.camp-scene span{font-size:.875rem;color:#d1d7bf}.history-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px;text-align:left;font-size:.875rem;line-height:1.8}.support-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0}.support-stats span{padding:12px;background:#263329;font-size:.875rem;line-height:1.6}.support-stats b{color:#e3cb96}.journey-hud{position:absolute;top:146px;left:28px;max-width:290px;font-size:.875rem;line-height:1.7;color:#dfd5b7;pointer-events:none;text-shadow:0 2px 3px #081711}.mechanic-hud.ready{border-color:#e9d596;color:#fff0bc;background:#374032}.backup-box{margin-top:24px;padding-top:16px;border-top:1px solid var(--border);line-height:1.8}.backup-box p{font-size:.875rem;color:var(--muted)}.file-label{display:inline-block;border:1px solid var(--border);margin:8px 0;cursor:pointer}.file-label input{display:block;max-width:100%;font-size:.875rem;margin-top:8px}.setting-row select{max-width:100%;min-width:0;font:inherit;padding:8px;background:#13231f;color:var(--text);border:1px solid var(--border)}.expedition-ending{padding:16px;border-left:2px solid var(--gold);background:#293429;line-height:1.9}.modal-panel .detail-card p,.story-record p,.modal-sub,.story-choice small,.backup-box p{font-size:1rem;line-height:1.85}.modal-panel h3{line-height:1.5}.modal-panel button,.modal-panel input,.modal-panel select{min-height:44px}.modal-panel input[type=checkbox]{min-height:22px;width:22px;height:22px;accent-color:var(--gold)}.home-actions{gap:10px}.home-actions .secondary{min-height:48px}.story-hint{line-height:1.7;max-width:min(650px,88%)}.setting-row input:focus-visible,.setting-row select:focus-visible,.journey-options input:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.detail-card{overflow-wrap:anywhere}.stat-table{width:100%;table-layout:fixed}.stat-table td,.stat-table th{overflow-wrap:anywhere}.modal-panel{scrollbar-gutter:stable}.history-row span{min-width:0;overflow-wrap:anywhere}
@media(max-width:760px){.journey-options{padding:14px}.contract-grid{grid-template-columns:1fr}.history-row{align-items:flex-start;flex-direction:column;gap:4px}.journey-hud{top:149px;left:12px;max-width:44%;font-size:.75rem}.camp-scene{padding:70px 16px 16px}.modal{padding:12px}.modal-panel{padding:22px 16px;max-height:94svh}.support-stats{gap:6px}.support-stats span{padding:8px;font-size:.8125rem}.setting-row{flex-wrap:wrap;gap:8px}.setting-row select{width:100%}.home-actions{grid-template-columns:1fr 1fr}.mode-options button{flex:1;min-width:120px}.file-label{max-width:100%}}
@media(max-height:550px) and (orientation:landscape){.story-hint{bottom:172px;max-width:50%;padding:6px 10px}.journey-hud{top:130px;font-size:.75rem;max-width:220px}.modal-panel{max-height:94svh}.home-layout{padding:24px 0}.home-art{max-height:380px}.announcement{top:25%}.announcement small{margin-top:6px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.character,.portrait,.announcement,.bar i{transition:none}}
/* Keep the contract/shield summary below the wrapping role meter. */
.journey-hud{top:182px}.mechanic-hud{max-width:280px}.modal-panel .delta{font-size:1rem}.home-art{min-width:0}.home-layout>div{min-width:0}
@media(max-width:760px){.journey-hud{top:170px;max-width:170px}.mechanic-hud{max-width:180px}}
@media(max-height:550px) and (orientation:landscape){.journey-hud{top:166px;max-width:210px}}
/* 1.0.1 — selection is a single working screen, with a permanent departure row. */
.selection-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;min-height:0}.selection-roster{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0}.selection-roster .chapter-choices{margin:0;gap:10px}.selection-roster .chapter-choice{padding:10px 12px}.selection-roster .chapter-choice b{font-size:calc(18px * var(--font-scale,var(--ui-scale,1)));margin:0 0 4px}.selection-roster .chapter-choice small{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));line-height:1.4}.selection-roster .character-grid{flex:1;min-height:0;gap:12px}.selection-roster .character{display:flex;flex-direction:column;min-height:0}.selection-roster .character-art{flex:1;min-height:100px;height:auto}.selection-roster .character-copy{flex-shrink:0;padding:0 14px 12px;margin-top:0}.selection-roster .character-copy .role{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));letter-spacing:1px;margin:0 0 5px}.selection-roster .character-copy h2{font-size:clamp(18px,1.5vw,24px);letter-spacing:0;margin-bottom:7px;line-height:1.25}.selection-roster .character-copy .lore{display:block;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));line-height:1.6;min-height:0;margin-bottom:10px}.selection-roster .tags{gap:4px}.selection-roster .tags span{display:inline;font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));padding:3px 5px}.selection-roster .character-foot{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px;padding-top:9px;font-size:calc(13px * var(--font-scale,var(--ui-scale,1)));line-height:1.5}.selection-roster .character-foot>span{display:inline}.selection-roster .character-foot b{display:inline}.selection-roster .card-number{left:12px;top:12px;font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));letter-spacing:0}.selection-roster .selection-mark{top:9px;right:8px;font-size:calc(12px * var(--font-scale,var(--ui-scale,1)))}.selection-roster .character:hover{transform:none}.selection-setup{display:flex;flex-direction:column;min-width:0;gap:12px;background:#18241f;border:1px solid var(--border);padding:14px}.selection-setup .journey-options{margin:0;padding:0;border:0;background:none;line-height:1.5}.selection-setup .mode-options{gap:6px;flex-wrap:nowrap}.selection-setup .mode-options button{flex:1;min-width:0;padding:9px 8px;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));min-height:38px;white-space:nowrap}.selection-setup .mode-description{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));line-height:1.5;margin:10px 0 14px}.contract-heading{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:7px;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)))}.contract-heading span{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));color:var(--muted)}.selection-setup .contract-grid{grid-template-columns:1fr;gap:6px}.contract-option{display:block;border:1px solid #3c493b;background:#202c25;padding:8px;cursor:pointer}.contract-option>span{display:flex;align-items:center;gap:7px;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)))}.contract-option input{flex-shrink:0;margin:0;width:18px;height:18px}.contract-option small{margin-left:auto;color:var(--gold);font-size:calc(12px * var(--font-scale,var(--ui-scale,1)))}.contract-option p{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));line-height:1.45;margin:5px 0 0!important;color:var(--muted)}.contract-option:has(input:checked){border-color:var(--gold);background:#323b2c}.selection-setup .artifact-loadout{margin-top:auto;padding:12px 0 0;border-top:1px solid var(--border);gap:8px;line-height:1.5;align-content:start}.selection-setup .artifact-loadout label{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)))}.selection-setup .artifact-loadout select{margin-left:auto;padding:6px;max-width:160px}.selection-setup #artifactDesc{display:block;flex-basis:100%;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));line-height:1.5}
@media(min-width:1000px) and (min-height:640px){
 #menu{height:100svh;min-height:0;max-width:1600px;padding:12px clamp(20px,3vw,48px);display:grid;grid-template-rows:44px 46px minmax(0,1fr) 66px 25px;gap:10px}
 #menu .topline{height:44px;min-height:0;padding:0;gap:10px}#menu .top-actions{gap:12px;flex-wrap:nowrap}#menu .quiet{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));padding:6px 0}#menu .intro{padding:0;gap:14px}#menu .intro>div:first-child{display:flex;align-items:center;gap:20px;flex-wrap:wrap}#menu .intro .eyebrow{display:none}#menu .intro h1{font-size:calc(28px * var(--font-scale,var(--ui-scale,1)));letter-spacing:4px;margin:0}#menu .intro-copy{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));letter-spacing:0}#menu .chapter{gap:12px}#menu .chapter-line{width:24px}#menu .chapter p{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));margin:0;line-height:1.3}#menu .chapter p span{font-size:calc(15px * var(--font-scale,var(--ui-scale,1)))}#menu .chapter-number{font-size:calc(32px * var(--font-scale,var(--ui-scale,1)))}
 #menu .departure{padding:0;gap:14px;flex-direction:row;align-items:center;border-top:1px solid var(--border)}#menu .journey{max-width:60%;gap:5px 0}#menu .journey p{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));line-height:1.4}#menu .duration{padding:8px 10px;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)))}#menu .depart-right{display:flex;gap:16px}#menu .depart-right>p{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));display:block}#menu .primary{min-height:46px;padding:11px 20px}#menu .menu-footer{padding:0;border:0;flex-direction:row;align-items:center;font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));gap:10px}#menu .menu-footer>span:last-child{display:block}
}
@media(min-width:1000px) and (min-height:640px) and (max-height:760px){
 #menu{padding-top:8px;padding-bottom:8px;grid-template-rows:38px 35px minmax(0,1fr) 62px 20px;gap:7px}#menu .topline{height:38px}#menu .intro>div:first-child{gap:12px}#menu .intro h1{font-size:calc(24px * var(--font-scale,var(--ui-scale,1)))}#menu .intro-copy{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)))}.selection-layout{gap:12px;grid-template-columns:minmax(0,1fr) 320px}.selection-roster{gap:8px}.selection-roster .chapter-choice{padding:7px 9px}.selection-roster .chapter-choice b{font-size:calc(16px * var(--font-scale,var(--ui-scale,1)))}.selection-roster .chapter-choice small{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)))}.selection-roster .character-copy{padding:0 10px 9px}.selection-roster .character-copy .role{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));margin-bottom:3px}.selection-roster .character-copy .lore{margin-bottom:6px;line-height:1.45}.selection-roster .character-foot{margin-top:6px;padding-top:6px}.selection-setup{padding:10px;gap:8px}.selection-setup .mode-description{margin:6px 0 8px;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));line-height:1.4}.contract-option{padding:6px 8px}.contract-option p{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));line-height:1.3;margin-top:3px!important}.selection-setup .artifact-loadout{padding-top:8px}.selection-setup #artifactDesc{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));line-height:1.4}#menu .depart-right>p{display:none}
}
@media(max-width:999px),(max-height:639px){
 #menu{padding:12px 20px}.selection-layout{grid-template-columns:1fr}.selection-roster .character-art{flex:none;height:clamp(110px,23vh,210px)}.selection-setup{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.65fr);gap:14px}.selection-setup .artifact-loadout{margin-top:0;padding:0 0 0 14px;border-top:0;border-left:1px solid var(--border)}#menu .intro{padding:14px 0}#menu .intro h1{font-size:calc(28px * var(--font-scale,var(--ui-scale,1)))}#menu .topline{min-height:48px;height:auto;padding:6px 0}#menu .departure{padding:14px 0;gap:12px}#menu .menu-footer{padding:10px 0}#menu .primary{min-height:44px;padding:10px 16px}.selection-roster .character-copy .lore{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)))}
}
@media(max-width:540px){.selection-layout{gap:12px}.selection-setup{display:block}.selection-setup .artifact-loadout{border-left:0;border-top:1px solid var(--border);padding:10px 0 0;margin-top:10px}.selection-roster .character-grid{gap:6px}.selection-roster .character-copy{padding:0 7px 10px}.selection-roster .character-copy h2{font-size:calc(16px * var(--font-scale,var(--ui-scale,1)))}.selection-roster .character-copy .role{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)))}.selection-roster .character-copy .lore{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)))}.selection-roster .card-number{display:none}.selection-roster .tags{gap:4px}.selection-roster .character-foot{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)))}.selection-roster .chapter-choices{gap:6px}.selection-roster .chapter-choice{padding:7px}.selection-roster .chapter-choice b{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)))}.selection-roster .chapter-choice small{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)))}.selection-roster .character-art{height:125px}}
/* Compact settings: all controls and file actions together, footer last. */
.modal-panel[data-mode=settings]{width:min(880px,100%);padding:24px;scrollbar-gutter:auto}.settings-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.settings-heading h2{margin:0}.settings-heading .modal-eyebrow{margin-bottom:6px}.settings-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px}.settings-columns .settings-grid{gap:10px;align-content:start}.settings-columns h3{font-size:calc(16px * var(--font-scale,var(--ui-scale,1)));margin:0 0 3px}.settings-columns .setting-row{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));min-height:36px;margin:0;gap:10px;flex-wrap:nowrap}.settings-columns .setting-slider{display:grid;grid-template-columns:1fr auto;gap:3px}.settings-columns .setting-slider input{grid-column:1/-1;width:100%;min-height:24px;margin:0}.settings-columns output{min-width:45px}.settings-note{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));line-height:1.5;color:var(--muted);margin:5px 0 0}.modal-panel[data-mode=settings] .backup-box{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding-top:14px}.modal-panel[data-mode=settings] .backup-box h3{font-size:calc(16px * var(--font-scale,var(--ui-scale,1)));margin:0 0 4px}.modal-panel[data-mode=settings] .backup-box p{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));line-height:1.5;margin:0;max-width:470px}.backup-actions{display:flex;gap:8px;flex-shrink:0}.backup-actions button{min-width:76px}.backup-actions input[hidden]{display:none!important}.modal-panel[data-mode=settings] .modal-footer{margin-top:18px;padding-top:12px;border-top:1px solid var(--border)}.modal-panel[data-mode=settings] .primary{min-height:42px;padding:10px 25px;width:auto}.modal-panel[data-mode=settings] .secondary{padding:9px 16px;min-height:40px}
/* Short utility panels use the available width; long archives retain readable scrolling. */
.modal-panel[data-mode=training] .settings-grid,.modal-panel[data-mode=intermission] .settings-grid{grid-template-columns:1fr 1fr;gap:12px}.modal-panel[data-mode=training] .setting-row,.modal-panel[data-mode=intermission] .setting-row{display:grid;gap:6px;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)))}.modal-panel[data-mode=training] .setting-row select,.modal-panel[data-mode=intermission] .setting-row select{width:100%}.modal-panel[data-mode=training] .modal-sub,.modal-panel[data-mode=intermission] .modal-sub,.modal-panel[data-mode=help] .modal-sub{margin-bottom:16px;font-size:calc(14px * var(--font-scale,var(--ui-scale,1)));line-height:1.6}.modal-panel[data-mode=training] h2,.modal-panel[data-mode=intermission] h2{font-size:calc(26px * var(--font-scale,var(--ui-scale,1)))}.modal-panel[data-mode=help] .help-grid{margin:16px 0;gap:12px 20px}.modal-panel[data-mode=help] .help-grid p{margin:4px 0;line-height:1.65}.modal-panel[data-mode=help] .weapon-guide{line-height:1.6;margin:10px 0}.modal-panel[data-mode=help] .modal-footer{margin-top:14px}.modal-panel .modal-footer{position:sticky;bottom:-24px;background:#17231f;z-index:2;padding-bottom:8px}.modal-panel[data-mode=settings] .modal-footer{position:static;padding-bottom:0}
@media(min-width:1000px) and (min-height:640px){.home-screen{height:100svh;min-height:0;display:grid;grid-template-rows:58px minmax(0,1fr) 54px}.home-top,.home-bottom{padding:14px 0}.home-layout{min-height:0;padding:20px 0}.home-art{max-height:100%;width:100%}.home-copy h1{font-size:clamp(40px,4vw,62px)}.home-intro{margin:12px 0 20px}.home-save{margin:12px 0 4px}.home-actions{gap:8px}.home-actions .secondary{padding:10px;min-height:42px}.home-actions .primary{padding:12px 20px;min-height:46px}}
@media(max-width:600px){.modal-panel[data-mode=settings]{padding:18px}.settings-columns{gap:16px;grid-template-columns:1fr}.settings-columns .settings-grid{gap:6px}.settings-heading{margin-bottom:12px}.settings-columns .setting-row{min-height:32px}.modal-panel[data-mode=settings] .backup-box{gap:12px;flex-wrap:wrap}.modal-panel[data-mode=settings] .backup-box p{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)))}.backup-actions{width:100%}.backup-actions button{flex:1}.modal-panel[data-mode=training] .settings-grid,.modal-panel[data-mode=intermission] .settings-grid{grid-template-columns:1fr}.modal-panel .modal-footer{bottom:-18px}}

/* Game controls should never start a text selection while dragging or fighting. */
html,body,body *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
img,canvas{-webkit-user-drag:none}

/* Tiny inline colour preview paints immediately; full art keeps the original dimensions. */
.home-art>div{background-image:url('./assets/journey-home-v103.webp'),url('data:image/webp;base64,UklGRiIBAABXRUJQVlA4IBYBAADQBgCdASowACAAPwForVCrJaQisBqoAWAgCUuwCw0l05fbGVPIX+ZpRRd8amw3wLI6Ow89ct8nX4ZRJjWs2AAA/u5XyHx4WOgpUTiMtpcsWH3Ndv51xUXNcy9zTxnOYXFnv3ZsNisT+VzXcioLFDb3VkiXBsCW7sYBxkFOUvcmGcH/0b5U0ZFy0yIix0Fq06HNDRlXaz7+hIL9S+xL10uVyAW99lTJpIPFXOrf1WC+/5aCWMXBD0TBI/0QLt0IIwgGxh/JdikQs/waa8cx4MgG/sRVksd1fI/vahEu1ICSNLSBsFHINhVfuBTyG4DuPQd3z2A6hhtPxcHJwVLbqFMjHMrSD3yPiy1hPdkWCW9wvaLlwhgAAA==')}

/* 1.0.5.1: a passive status block shares the active skill's height. */
.pressure-controls,#skillButton{height:72px;min-height:72px;box-sizing:border-box}
.pressure-controls{position:relative;width:190px;display:flex;align-items:center;padding:13px 18px;overflow:hidden;border:1px solid #566553;background:#17261fe8;color:#cbd2bb;pointer-events:none;cursor:default}
.pressure-controls strong{display:block;font-size:calc(15px * var(--font-scale,var(--ui-scale,1)));font-weight:500;white-space:nowrap}
.pressure-controls small{display:block;margin-top:5px;font-size:calc(12px * var(--font-scale,var(--ui-scale,1)));color:#aab6a2;white-space:nowrap}
.pressure-controls>i{position:absolute;bottom:0;left:0;height:3px;width:0;background:#b99c62}
.pressure-controls.ready{border-color:#bda773;color:#eedbae}.pressure-controls.ready small{color:#d8ccaa}
@media(max-width:760px){.pressure-controls,#skillButton{height:64px;min-height:64px}.pressure-controls{grid-column:2;grid-row:1;width:140px;padding:9px 10px}.pressure-controls strong{font-size:calc(14px * var(--font-scale,var(--ui-scale,1)))}.pressure-controls small{font-size:calc(11px * var(--font-scale,var(--ui-scale,1)))}.pressure-controls~.skill-button{width:140px;max-width:140px}.pressure-controls:not(.hidden)~.skill-button strong{font-size:calc(12px * var(--font-scale,var(--ui-scale,1)))}}
@media(max-width:430px){.bottom-hud>div:first-child{min-width:0}.weapon-slot{width:32px}.pressure-controls{width:134px}.pressure-controls~.skill-button{width:134px;max-width:134px}}
@media(pointer:coarse){.pressure-controls{pointer-events:auto;touch-action:none}}

.asset-loading{position:fixed;left:50%;top:18%;transform:translateX(-50%);z-index:150;display:flex;align-items:center;gap:14px;max-width:90vw;padding:16px 20px;background:#172b24f5;border:1px solid #c9ae72;color:#eee4c7;font-size:15px;box-shadow:0 6px 25px #0008}.asset-loading.hidden{display:none}.asset-loading button{white-space:nowrap;padding:8px 12px;border:1px solid #c9ae72;background:#263c30;color:#f6e7be;cursor:pointer}
