/* V23. Fully scoped decision screens: no legacy inter-main/service/map selectors. */
.journey-screen{
 --paper:#f0e4c4;--ink:#322d21;--body:#e2dfca;--muted:#bac4ad;--surface:#14271f;--tile:#20372b;
 display:grid;grid-template-rows:78px minmax(0,1fr);min-height:0;background:rgba(6,15,12,.5);color:var(--body);font:500 16px/1.5 var(--font-ui);
}
.journey-screen>.hud{position:relative;inset:auto;height:78px;grid-row:1;align-items:center;background:#0e1a16ee}
.journey-viewport{min-height:0;display:flex;align-items:center;justify-content:center;padding:20px 34px 28px;overflow:hidden}
.journey-shell{position:relative;width:min(1380px,100%);max-height:100%;min-height:0;display:flex;flex-direction:column;border:0;border-radius:24px;background:var(--surface);box-shadow:0 20px 60px #0005;overflow:hidden}
.journey-heading{text-align:center;flex:none;padding:28px 32px 24px}
.journey-kicker{font:800 12px/1.4 var(--font-ui);letter-spacing:.16em;color:#d5b877;text-transform:uppercase;margin:0 0 10px}
.journey-heading h1{font:700 clamp(30px,3vw,52px)/1.16 var(--font-display);letter-spacing:.015em;color:#f3e6bf;margin:0;text-wrap:balance}
.journey-subtitle{font:500 clamp(15px,1.05vw,18px)/1.5 var(--font-ui);color:#d0d4bd;max-width:70ch;margin:12px auto 0}
.journey-scroll{min-height:0;overflow:auto;padding:0 28px 26px;scrollbar-width:thin;scrollbar-color:#748365 #14271f;overscroll-behavior:contain}
.journey-footer{position:relative;flex:none;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:90px;padding:18px 28px;background:#0f2019}
.journey-footer:before,.journey-shell:before{display:none}
.footer-copy{display:flex;flex-direction:column;gap:4px;min-width:0;font:500 14px/1.35 var(--font-ui);color:#c7cfb8}
.footer-copy strong{font:800 18px/1.3 var(--font-ui);color:#f2e8cb}
.footer-note{font:500 15px/1.5 var(--font-ui);color:#c6cfb5}
.journey-button{display:inline-flex;justify-content:center;align-items:center;gap:12px;font:800 16px/1.25 var(--font-ui);text-align:center;min-height:50px;border:0;border-radius:12px;padding:13px 22px;background:#dec389;color:#302913;box-shadow:inset 0 1px #fff1c680,0 3px 0 #705d33;cursor:pointer;transition:transform .18s,background .18s}
.journey-button span{min-width:0;text-wrap:balance}.journey-button svg{height:20px;width:20px;flex:none}.journey-button:hover:not(:disabled){transform:translateY(-2px);background:#f0d5a2}.journey-button:active:not(:disabled){transform:translateY(1px)}
.journey-button.secondary{background:#2d4735;color:#f2e6c5;box-shadow:none}
.journey-button:disabled{opacity:1;filter:none;background:#283b2f;color:#a9b59c;box-shadow:none;cursor:not-allowed}
.journey-screen button:focus-visible{outline:3px solid #edcd86;outline-offset:4px}
.journey-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch}
.journey-option{display:grid;grid-template-rows:26px 145px minmax(58px,auto) 1fr 26px;align-items:start;justify-items:center;gap:14px;min-width:0;text-align:center;background:var(--tile);border:0;border-radius:18px;padding:21px 24px 22px;color:#efe7c9;cursor:pointer;transition:transform .2s ease,background .2s ease}
.journey-option:hover:not(:disabled){transform:translateY(-3px);background:#294532}
.journey-option.is-selected{background:#384c31}
.journey-option:disabled{opacity:1;filter:none;background:#1d3026;color:#a9b29b;cursor:not-allowed}
.option-topline{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:26px;gap:6px;font:800 11px/1.25 var(--font-ui);letter-spacing:.12em;color:#d4c69a}
.option-check{display:inline-flex;gap:4px;align-items:center;font-size:12px;letter-spacing:0;color:#f9e0a6}.option-check svg{width:18px;height:18px}
.option-art{width:100%;height:145px;object-fit:contain;filter:drop-shadow(0 8px 6px #0003);align-self:center}
.option-name{font:700 clamp(23px,1.65vw,29px)/1.15 var(--font-display);color:#f5e3b9;display:flex;align-items:center;justify-content:center;height:100%;max-width:100%;text-wrap:balance;letter-spacing:0}
.option-description{font:500 17px/1.5 var(--font-ui);color:#e0e2c9;max-width:27ch;text-wrap:balance;min-height:80px}.option-description strong{font-weight:900;color:#ffe4a5}
.option-hint{font:800 14px/1.4 var(--font-ui);color:#ead39a;display:flex;align-items:center;gap:8px;align-self:end}.option-hint svg{width:17px;height:17px}
.journey-bargain{display:flex;gap:20px;align-items:center;justify-content:space-between;background:#20332b;padding:20px;border-radius:15px;margin-top:20px}.journey-bargain p{margin:5px 0 0;font-size:15px;color:#cfd7bf}
/* A result has one centre line; no left:50% inherited from the old overlay. */
.result-shell{max-width:890px}
.result-centre{display:flex;flex-direction:column;align-items:center;gap:22px;padding:0 24px 10px}
.result-character{width:clamp(180px,20vw,250px);height:clamp(180px,20vw,250px);object-fit:contain}
.result-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:24px;text-align:center;padding:4px 0 14px}
.result-stats strong{display:block;font:800 clamp(30px,3vw,46px)/1.2 var(--font-ui);font-variant-numeric:tabular-nums;color:#eac783}.result-stats span{font:600 15px/1.4 var(--font-ui);color:#d5dac2;display:block;margin-top:8px}
.result-memory{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;font-size:15px;color:#cbd6bb}.result-memory img{height:28px;width:24px;object-fit:contain}
/* Stock: each item owns its real card width. No flex shrinking or negative margin. */
.market-floor{display:grid;grid-template-columns:190px minmax(0,1fr);gap:22px}
.market-keeper{border:0;border-radius:18px;background:#1a3025;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px;gap:22px;text-align:center;min-width:0}
.merchant-portrait{height:170px;width:160px;max-width:100%;object-fit:contain}
.market-keeper blockquote{font:italic 21px/1.5 var(--font-display);margin:0;color:#f0ddb7}
.market-wallet{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;color:#d7c18a}.market-wallet svg{width:23px;height:23px}.market-wallet strong{font:800 30px var(--font-ui);color:#efce82}.market-wallet span{width:100%;font:600 14px var(--font-ui);color:#ccd6b9}
.market-stock{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;min-width:0;align-items:stretch}
.market-item{--cardW:clamp(160px,12.5vw,216px);--cardH:calc(var(--cardW) * 1.45);min-width:0;background:#20372b;border-radius:18px;display:grid;grid-template-rows:auto 1fr auto;align-items:start;gap:14px;padding:18px 16px}
.market-card{display:flex;justify-content:center;align-items:center;min-width:0;padding:0 0 5px}
.market-item .card{margin:0;flex:0 0 auto;transform:none!important;filter:none;cursor:pointer}
.market-description{display:flex;flex-direction:column;gap:7px;min-width:0;text-align:left}
.market-description h2{font:800 19px/1.2 var(--font-ui);min-height:46px;letter-spacing:0;margin:0;color:#f3e3ba;text-wrap:balance}
.market-description p{margin:0;font:500 15px/1.45 var(--font-ui);color:#dce1c8}.market-description p strong{font-weight:900;color:#f9dea0}
.market-rarity{font:800 11px/1.3 var(--font-ui);letter-spacing:.12em;color:#d5c594;text-transform:uppercase}
.market-item .journey-button{width:100%;padding:12px 8px;font-size:16px;box-shadow:none;min-height:50px;align-self:end}
.market-item.is-sold .market-card{filter:saturate(.45);opacity:.72}
.market-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:22px}
.market-service{display:grid;grid-template-columns:60px minmax(0,1fr) auto;align-items:center;gap:16px;padding:20px;background:#1a3025;border-radius:16px}
.market-service>img{height:65px;width:60px;object-fit:contain}.market-service h2{font:800 19px/1.2 var(--font-ui);letter-spacing:0;margin:5px 0 7px;color:#f2e3bf}.market-service p{font:500 14px/1.5 var(--font-ui);color:#d5dcc5;margin:0}.market-service .journey-button{font-size:14px;padding-inline:14px;max-width:160px}
/* Map: real text on solid parchment; selected destination lives outside the plot. */
.map-shell{background:#ebdfbf;--body:#322d21;--muted:#5b533e;--tile:#e2d6b3;width:min(1460px,100%)}
.path-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:26px 32px 18px;flex:none}
.path-heading h1{font:700 clamp(28px,2.5vw,45px)/1.15 var(--font-display);letter-spacing:.01em;margin:0;color:#382f1e}.path-heading .journey-kicker{color:#735522;font-size:12px}.path-heading p:not(.journey-kicker){font:600 15px/1.4 var(--font-ui);margin:10px 0 0;color:#62583e}
.path-legend{display:flex;gap:20px;align-items:center;font:800 13px var(--font-ui);color:#443e2d}.path-legend span{display:flex;align-items:center;gap:7px}.path-legend span:before{content:'';display:block;width:10px;height:10px;background:#203e30;rotate:45deg}.path-legend .legend-next:before{background:#f6d88d;outline:1px solid #785d2d}
.journey-map .journey-scroll{padding:0 22px 14px;min-height:120px;background:#ebdfbf;scrollbar-color:#b4a375 #ebdfbf}
.path-plot{position:relative;width:100%;height:clamp(360px,43vh,540px);min-height:360px}
.path-lines{position:absolute;inset:0;height:100%;width:100%;overflow:visible;pointer-events:none}
.path-lines path{fill:none;vector-effect:non-scaling-stroke;stroke-width:3;stroke:#aea382;stroke-dasharray:6 10}
.path-lines .travelled{stroke:#876628;stroke-width:4;stroke-dasharray:none}.path-lines .possible{stroke:#617341;stroke-width:4;stroke-dasharray:8 6}
.path-node{position:absolute;left:var(--node-x);top:var(--node-y);transform:translate(-50%,-50%);border:0;width:clamp(144px,11.1vw,190px);min-height:148px;display:grid;grid-template-rows:19px 54px minmax(36px,auto) 18px;align-items:center;justify-items:center;gap:6px;padding:12px 10px;background:#dcd1af;border-radius:14px;color:#62563b;text-align:center;opacity:1!important;filter:none!important;cursor:pointer;transition:background .18s,box-shadow .18s}
.path-node:disabled{cursor:default;opacity:1;background:#e2d7b7;color:#6a6049;filter:none}
.path-node.is-completed{background:#e0d2ab;color:#55462c}.path-node.is-current{background:#203e30;color:#fae8ba;box-shadow:0 10px 18px #6f59352a}
.path-node.is-available{background:#fff5d7;color:#392f19;box-shadow:0 8px 16px #92763a24}.path-node.is-available:hover{background:#f5df9f;box-shadow:0 10px 18px #92763a3a}.path-node.is-selected{background:#efd18a;color:#302816;box-shadow:0 0 0 2px #8f6b2e,0 10px 18px #92763a22}
.path-art{width:66px;height:54px;object-fit:contain}.path-node strong{font:800 15px/1.2 var(--font-ui);color:inherit;letter-spacing:0;max-width:100%;text-wrap:balance}.path-node small{font:800 11px/1.3 var(--font-ui);color:inherit;letter-spacing:.06em}.path-state{font:900 10px/1.2 var(--font-ui);letter-spacing:.075em;color:inherit}.path-node.is-current .path-state{color:#f0cd80}
.journey-map .journey-footer{background:#13291f;color:#eef0d5;min-height:142px}
.path-details{min-width:0}.path-details .journey-kicker{margin-bottom:7px;font-size:11px}.path-details h2{font:800 23px/1.2 var(--font-ui);color:#f1e2b8;margin:0 0 7px;letter-spacing:0}.path-details p{font:500 15px/1.45 var(--font-ui);color:#d5dec4;margin:0;max-width:68ch}
.path-reward{display:flex;gap:22px;align-items:center;margin-top:10px;font:600 14px var(--font-ui);color:#d8ddb9}.path-reward span{display:flex;gap:8px;align-items:center}.path-reward svg{width:19px;height:19px;color:#f0c774}.path-reward strong{font-size:16px;color:#f7d898}
.journey-map .journey-footer>.journey-button{min-width:220px}
/* Existing card-reward screen retains its input semantics. */
.reward-stage .reward-body{background:#14271f;border:0;border-radius:22px;padding:26px;max-width:1300px;margin-inline:auto}.reward-stage .reward-title p,.reward-stage .reward-inspector p{color:#e2e4ce}.reward-stage .reward-title h1{color:#f3e3bd}.reward-stage .reward-inspector{background:#20372b;border:0;border-radius:12px}.reward-stage .risk-choice{background:#1b3025;border:0;border-radius:12px}.reward-stage .reward-inspector small{color:#d8cda2}
.journey-screen.appear .journey-shell{animation:journey-enter .28s ease-out both}
@keyframes journey-enter{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@media(min-width:2200px) and (min-height:1100px){
 .journey-shell{width:min(1600px,calc(100% - 40px))}.result-shell{max-width:1050px}.journey-heading{padding:40px 38px 30px}.journey-heading h1{font-size:60px}.journey-subtitle{font-size:20px}.journey-option{grid-template-rows:28px 180px minmax(64px,auto) 1fr 28px;padding:28px 32px;gap:20px}.option-art{height:180px}.option-name{font-size:34px}.option-description{font-size:20px;min-height:100px}.journey-scroll{padding:0 36px 36px}.journey-footer{padding:23px 36px}.journey-button{min-height:58px;font-size:18px}.market-item{--cardW:238px;padding:22px}.market-description h2{font-size:22px}.market-description p{font-size:17px}.market-floor{grid-template-columns:230px minmax(0,1fr)}
}
@media(max-width:1150px){
 .market-floor{grid-template-columns:150px minmax(0,1fr);gap:16px}.market-item{--cardW:164px;padding:14px 12px}.market-stock{gap:12px}.market-keeper{padding:12px}.market-keeper blockquote{font-size:19px}.market-service{grid-template-columns:50px minmax(0,1fr);padding:16px}.market-service .journey-button{grid-column:1/-1;max-width:none;width:100%}.journey-viewport{padding-inline:22px}.path-node{width:150px}.option-name{font-size:24px}.journey-option{padding-inline:16px}.option-description{font-size:16px}
}
@media(min-width:761px) and (max-height:820px){
 .journey-screen{grid-template-rows:64px minmax(0,1fr)}.journey-screen>.hud{height:64px;padding-block:8px}.journey-viewport{padding-block:10px 16px}.journey-heading{padding:20px 25px 18px}.journey-heading h1{font-size:34px}.journey-subtitle{font-size:15px;margin-top:10px}.journey-option{grid-template-rows:22px 88px minmax(54px,auto) 1fr 22px;gap:10px;padding:16px}.option-art{height:88px}.option-name{font-size:24px}.option-description{font-size:16px;min-height:72px}.journey-footer{min-height:76px;padding:14px 26px}.journey-scroll{padding-bottom:20px}.market-item{--cardW:164px}.market-description h2{font-size:17px;min-height:41px}.market-description p{font-size:14px}.market-services{margin-top:18px}.market-service h2{font-size:17px}.path-heading{padding:20px 26px 12px}.path-heading h1{font-size:33px}.path-plot{height:350px;min-height:350px}.path-node{min-height:140px;gap:5px}.journey-map .journey-footer{min-height:125px}.result-character{height:190px;width:190px}.result-centre{gap:12px}.result-stats{padding-bottom:5px}
}
@media(max-width:760px){
 .journey-screen{grid-template-rows:60px minmax(0,1fr);font-size:14px}
 .journey-screen>.hud{height:60px;padding:9px 12px;grid-template-columns:minmax(0,1fr) auto;gap:8px}.journey-screen>.hud .hud-title{display:none}.journey-screen>.hud .hud-right{grid-column:2}.journey-screen>.hud .hud-left{gap:12px}.journey-screen>.hud .brand{width:83px;min-width:83px;font-size:15px}.journey-screen>.hud .hud-stat b{font-size:18px}.journey-screen>.hud .hud-stat small{font-size:10px}.journey-screen>.hud .hud-divider,.journey-screen>.hud .relics,.journey-screen>.hud .optional{display:none}
 .journey-viewport{padding:8px 8px max(10px,env(safe-area-inset-bottom));align-items:stretch}.journey-shell{width:100%;border-radius:16px;max-height:100%}
 .journey-heading{padding:19px 18px 16px}.journey-heading h1{font-size:30px;line-height:1.16}.journey-kicker{font-size:10px;letter-spacing:.12em;margin-bottom:8px}.journey-subtitle{font-size:14px;line-height:1.4;margin-top:9px}
 .journey-scroll{padding:0 14px 16px}.journey-options{grid-template-columns:1fr;gap:12px}
 .journey-option{position:relative;grid-template-columns:82px minmax(0,1fr);grid-template-rows:auto auto auto auto;text-align:left;justify-items:start;gap:7px 14px;padding:16px;min-height:180px;border-radius:12px}.option-topline{grid-column:2;min-height:19px;font-size:9px;letter-spacing:.08em}.option-art{grid-column:1;grid-row:1/5;height:102px;width:82px;align-self:center}.option-name{grid-column:2;font-size:23px;line-height:1.18;justify-content:start;min-height:0;text-wrap:balance}.option-description{grid-column:2;font-size:14px;line-height:1.5;max-width:none;min-height:0;text-wrap:pretty}.option-hint{grid-column:2;font-size:12px;min-height:24px}.option-check{font-size:10px}.option-check svg{width:15px;height:15px}
 .journey-footer{flex-direction:column;align-items:stretch;gap:11px;padding:14px 16px;min-height:0}.footer-copy{font-size:12px}.footer-copy strong{font-size:16px}.footer-note{font-size:13px}.journey-button{width:100%;min-height:48px;padding:12px 14px;font-size:15px;border-radius:10px}.journey-footer .footer-copy>span{display:none}
 .result-centre{padding:0 8px;gap:15px}.result-character{height:178px;width:178px}.result-stats{gap:10px;padding-bottom:16px}.result-stats strong{font-size:30px}.result-stats span{font-size:12px;line-height:1.4;margin-top:5px}.result-memory{font-size:13px;text-align:center}.result-shell .journey-footer{flex-direction:column}.result-shell .footer-note{text-align:center}
 .journey-bargain{padding:15px;gap:12px;flex-direction:column;align-items:stretch}.journey-bargain p{font-size:14px}
 .market-floor{grid-template-columns:1fr;gap:13px}.market-keeper{display:grid;grid-template-columns:65px minmax(0,1fr) auto;gap:9px;padding:12px;border-radius:12px;text-align:left}.merchant-portrait{width:65px;height:75px}.market-keeper blockquote{font-size:16px;line-height:1.4}.market-wallet{gap:3px;max-width:90px}.market-wallet strong{font-size:24px}.market-wallet span{font-size:10px;text-align:center}
 .market-stock{grid-template-columns:1fr;gap:12px}.market-item{--cardW:122px;--cardH:177px;grid-template-columns:122px minmax(0,1fr);grid-template-rows:1fr auto;gap:10px 12px;padding:12px;border-radius:13px;min-height:204px}.market-card{grid-column:1;grid-row:1/3;align-self:center;min-width:0;padding:0}.market-description{grid-column:2;gap:6px;align-self:center}.market-description h2{font-size:17px;line-height:1.2;min-height:0}.market-description p{font-size:13px;line-height:1.4}.market-rarity{font-size:10px}.market-item .journey-button{grid-column:2;font-size:13px;min-height:44px;padding:10px 8px}
 .market-services{grid-template-columns:1fr;gap:12px;margin-top:14px}.market-service{grid-template-columns:46px minmax(0,1fr);padding:15px;gap:10px 13px}.market-service>img{width:46px;height:52px}.market-service h2{font-size:18px}.market-service p{font-size:14px}.market-service .journey-button{grid-column:1/-1;max-width:none}
 .path-heading{padding:18px 18px 15px;display:block}.path-heading h1{font-size:29px;line-height:1.16}.path-heading p:not(.journey-kicker){font-size:14px;margin:8px 0 0}.path-legend{gap:18px;margin-top:13px;font-size:12px}.path-heading .journey-kicker{font-size:11px}
 .journey-map .journey-scroll{padding:0 5px}.path-plot.is-vertical{height:860px;min-height:860px}.path-node{width:calc(46% - 10px);min-height:142px;padding:10px 8px;grid-template-rows:17px 50px minmax(34px,auto) 16px;gap:5px;border-radius:12px}.path-node strong{font-size:14px}.path-node small{font-size:10px}.path-state{font-size:9px}.path-art{height:50px;width:58px}
 .journey-map .journey-footer{min-height:0;gap:12px}.path-details h2{font-size:20px}.path-details p{font-size:13px;line-height:1.4}.path-details .journey-kicker{font-size:9px;margin-bottom:5px}.path-reward{gap:12px;flex-wrap:wrap;margin-top:8px;font-size:12px}.path-reward strong{font-size:14px}.journey-map .journey-footer>.journey-button{min-width:0}
 .reward-stage .reward-body{padding:15px 12px;border-radius:15px}.reward-stage .reward-title h1{font-size:29px}
}
@media(max-width:360px){.journey-heading h1{font-size:26px}.journey-scroll{padding-inline:10px}.journey-option{grid-template-columns:65px minmax(0,1fr);padding:13px;gap:6px 11px}.option-art{width:65px}.option-name{font-size:21px}.option-description{font-size:13px}.market-item{--cardW:100px;--cardH:145px;grid-template-columns:100px minmax(0,1fr)}.market-description p{font-size:13px}.market-keeper{grid-template-columns:50px minmax(0,1fr)}.merchant-portrait{width:50px}.market-wallet{grid-column:1/-1;max-width:none;justify-content:center}.market-wallet span{width:auto}.market-keeper blockquote{font-size:16px}.path-node{width:calc(46% - 6px)}.path-node strong{font-size:13px}.path-heading h1{font-size:25px}.result-stats span{font-size:11px}}
@media(max-height:500px) and (orientation:landscape){.journey-screen{grid-template-rows:50px minmax(0,1fr)}.journey-screen>.hud{height:50px}.journey-heading{padding:15px 20px 12px}.journey-heading h1{font-size:28px}.journey-subtitle{font-size:13px}.journey-footer{padding:10px 16px;min-height:60px}.journey-viewport{padding:8px}.journey-shell{border-radius:14px}.journey-button{min-height:42px;font-size:14px}.result-shell .result-character{height:130px;width:130px}.path-heading{padding:12px 20px}.path-heading h1{font-size:26px}.path-heading p:not(.journey-kicker){display:none}.journey-map .journey-footer{min-height:95px}.path-details h2{font-size:18px}.path-details p{font-size:13px}}
@media(prefers-reduced-motion:reduce){.journey-screen.appear .journey-shell,.journey-option,.journey-button{animation:none;transition:none}}body.reduce .journey-screen.appear .journey-shell{animation:none}
/* Decorative letters never enter costs, descriptions, buttons or map labels. */
.durendal-title,.launch-title{font-family:'Durendal & Oliphant',var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.035em}
.journey-heading .durendal-title,.path-heading .durendal-title{font-family:'Durendal & Oliphant',var(--font-display);font-weight:700;letter-spacing:.035em}
.durendal-ready .durendal-title,.durendal-ready .launch-title,.durendal-ready .journey-heading .durendal-title,.durendal-ready .path-heading .durendal-title{font-weight:400;letter-spacing:.03em}
.durendal-ready .launch-title{line-height:1.0}
.durendal-ready .appetite-heading h1,.durendal-ready .reward-title h1{font-family:'Durendal & Oliphant',var(--font-display);font-weight:400;letter-spacing:.025em;text-transform:uppercase}
.shop-card-modal{--cardW:210px;--cardH:304px;display:flex;flex-direction:column;align-items:center;gap:22px}.shop-card-modal p{font:600 16px/1.5 var(--font-ui);color:#eeebd4;text-align:center;max-width:38ch}.shop-card-modal .journey-button{width:100%}
/* On wider screens the merchant and services share a sidebar, leaving all stock visible. */
@media(min-width:1050px){
 .journey-shop .journey-heading{padding-block:23px 20px}
 .journey-shop .journey-scroll{display:grid;grid-template-columns:246px minmax(0,1fr);grid-template-rows:auto 1fr;align-content:start;gap:16px 20px}
 .journey-shop .market-floor{display:contents}
 .journey-shop .market-keeper{grid-column:1;grid-row:1;display:grid;grid-template-columns:64px 1fr;gap:10px;padding:16px;align-items:center;text-align:left}
 .journey-shop .merchant-portrait{width:64px;height:82px}.journey-shop .market-keeper blockquote{font-size:18px;line-height:1.4}
 .journey-shop .market-wallet{grid-column:1/-1;flex-wrap:nowrap;gap:7px}.journey-shop .market-wallet strong{font-size:24px}.journey-shop .market-wallet span{width:auto;font-size:12px}.journey-shop .market-wallet svg{width:18px;height:18px}
 .journey-shop .market-stock{grid-column:2;grid-row:1/3}
 .journey-shop .market-services{grid-column:1;grid-row:2;grid-template-columns:1fr;gap:12px;margin:0;align-content:start}
 .journey-shop .market-service{grid-template-columns:38px minmax(0,1fr);gap:9px 12px;padding:15px}
 .journey-shop .market-service>img{height:42px;width:38px}
 .journey-shop .market-service h2{font-size:17px;line-height:1.2;margin:5px 0 5px}
 .journey-shop .market-service p{font-size:13px;line-height:1.45}
 .journey-shop .market-service .journey-button{grid-column:1/-1;max-width:none;width:100%;min-height:44px;font-size:14px;padding:10px}
}
@media(min-width:761px) and (max-width:1049px){.market-floor{grid-template-columns:1fr}.market-keeper{display:none}.market-services{grid-template-columns:1fr 1fr}.market-item{--cardW:168px}}
/* Short portrait map: preserve useful map space rather than shrinking labels. */
@media(max-width:760px) and (max-height:700px){
 .journey-map .path-heading{padding:13px 16px 10px;gap:7px}
 .journey-map .path-heading h1{font-size:23px;line-height:1.08}
 .journey-map .path-heading>div>p:not(.journey-kicker){display:none}
 .journey-map .path-legend{margin-top:2px;font-size:12px}
 .journey-map .journey-footer{gap:8px;padding:12px 16px}
 .journey-map .path-details>span{display:none}
 .journey-map .path-details h2{font-size:19px;margin:0}
 .journey-map .path-details p{font-size:13px;line-height:1.3;margin:4px 0}
 .journey-map .journey-footer .journey-button{min-height:46px}
}

/* Registered frames include ground-pivot padding; decorative portraits crop only that padding. */
.portrait-crop{display:block;position:relative;overflow:hidden;aspect-ratio:var(--portrait-ratio);height:auto}
.portrait-crop>img{position:absolute;max-width:none;object-fit:fill;margin:0}
.result-character.portrait-crop{width:clamp(170px,17vw,215px);height:auto;margin:10px 0 8px}
.merchant-portrait.portrait-crop{width:96px;height:auto;max-height:none}
@media(min-width:1050px){.market-keeper .merchant-portrait.portrait-crop{width:68px;height:auto;max-height:none}}
@media(max-width:760px){.result-character.portrait-crop{width:155px}.merchant-portrait.portrait-crop{width:55px;height:auto}}

.typeface-setting{display:grid;gap:6px;margin:20px 0 10px;font:600 14px/1.4 var(--font-ui);color:#d8d5bc}.typeface-setting strong{color:#f1d6a0;font-size:16px}.typeface-setting small{font-size:12px;color:#c2cbb4}
