:root{--ink:#233849;--paper:#f7f3e9;--orange:#e8823e;--soft:#d8ddd7}*{box-sizing:border-box}html{background:#e6e7e0}body{margin:0;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Noto Sans JP",system-ui,sans-serif;background:radial-gradient(ellipse at 20% 0%,#faf2da,transparent 55%),#e7e9e3}button,a,input{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{border:0;cursor:pointer;font:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #c77830;outline-offset:3px}.shell{max-width:520px;margin:auto;padding:17px 18px max(14px,env(safe-area-inset-bottom));min-height:100svh}.masthead{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.masthead a{font-size:10px;font-weight:850;letter-spacing:2px;text-decoration:none;color:var(--ink)}.masthead a span{display:block;font-size:10px;letter-spacing:1px;margin-top:3px;font-weight:500}.masthead button{background:#ffffff80;border:1px solid #ccd4cd;padding:7px 10px;border-radius:20px;font-size:10px;color:#506469}.journey{display:flex;gap:5px;margin-bottom:16px}.journey i{height:3px;flex:1;border-radius:5px;background:#d0d7ce;transition:background .5s}.journey i.done{background:#c6844c}.heading{display:flex;justify-content:space-between;align-items:flex-end;padding:0 4px 12px}.chapter{font-size:10px;font-weight:800;color:#b7682d;letter-spacing:1.2px}h1{font-size:clamp(24px,6.3vw,31px);line-height:1.25;letter-spacing:-.5px;margin:6px 0 0;font-weight:850}.time{font-size:10px;border:1px solid #d1d9d0;border-radius:30px;padding:5px 8px;white-space:nowrap;margin:0 0 3px 8px}.viewport{position:relative;isolation:isolate;overflow:hidden;border-radius:23px;background:#e0e6dc;box-shadow:0 14px 35px #233a4020;border:1px solid #ffffffb0}canvas{display:block;width:100%;aspect-ratio:480/470;touch-action:none;user-select:none}.hud{position:absolute;top:13px;left:13px;right:13px;display:flex;justify-content:space-between;pointer-events:none;gap:8px}.hud span{font-size:10px;font-weight:750;letter-spacing:.2px;background:#f9f8edee;color:#304549;padding:7px 10px;border-radius:22px;box-shadow:0 2px 7px #263b4520}.hud .danger{background:#713f30;color:#fff0dd}.scene-prompt{position:absolute;bottom:12px;left:16px;right:16px;text-align:center;pointer-events:none;color:#263e46;font-size:11px;font-weight:800;line-height:1.5}.scene-prompt:not(:empty){background:#fff9e8e8;border:1px solid #ffffffa0;border-radius:12px;padding:9px 11px;box-shadow:0 5px 15px #0001}.curtain{position:absolute;inset:0;background:#20363d;opacity:0;pointer-events:none;transition:opacity .45s}.curtain.active{opacity:.98}.dialog{display:flex;gap:12px;align-items:center;margin:15px 0 13px;min-height:83px}.portrait{width:65px;height:76px;flex-shrink:0;position:relative;overflow:hidden;border-radius:14px;background:#f7f3e9;box-shadow:0 3px 8px #263b4510}.portrait img{position:absolute;width:500px;max-width:none;left:-346px;top:-6px}.portrait.young img{left:-94px}.portrait.middle img{left:-216px}.portrait.blank{display:none}.speech{flex:1}#speaker{font-size:10px;color:#837c69;font-weight:750;margin-bottom:5px}#line{font-size:13px;font-weight:620;line-height:1.65;margin:0;letter-spacing:.1px}.controls{display:flex;gap:9px;flex-wrap:wrap}.primary,.secondary,.control,.pick{border-radius:13px;text-decoration:none;text-align:center;display:flex;align-items:center;justify-content:center;gap:5px;min-height:52px;padding:13px 12px;font-size:13px;font-weight:800;flex:1}.primary{background:var(--ink);color:#fff9e8;box-shadow:0 6px 12px #23384916}.primary.orange{background:#d7803f;color:white}.secondary{background:#f9f8f0;color:#3b5357;border:1px solid #cad4ca}.control{background:#f1f2e5;border:1px solid #b6c9bf;color:#244e44;user-select:none}.control.brake{background:#f0d6c0;border-color:#d7af8b;color:#713b26}.control.pressed{transform:translateY(2px);filter:brightness(.92);box-shadow:inset 0 3px 6px #0002}.primary:disabled,.secondary:disabled{opacity:.55;cursor:default}.picks{display:flex;gap:10px;width:100%}.pick{padding:10px 5px;min-height:50px;border:1.5px solid #c8d2c6;background:#f7f8ee;color:#516267;font-size:12px}.pick.selected{background:#fbebd9;border-color:#c8874e;color:#624521}.pick small{font-weight:500;font-size:10px}.hint{font-size:10px;color:#7a8883;text-align:center;line-height:1.6;min-height:17px;margin:9px 2px 0}footer{font-size:9px;color:#81918b;display:flex;justify-content:space-between;margin-top:17px}.fineprint{font-size:9px;text-align:center;color:#929a90;line-height:1.5;margin:9px 0 0}.belt-input{width:100%;height:46px;accent-color:#cf793e;cursor:ew-resize}.check.done{background:#d9e6d4;border-color:#a4b79f}dialog{border:0;border-radius:23px;padding:22px;background:#f8f5eb;color:#263e46;width:min(90vw,440px);max-height:90svh;overflow:auto;box-shadow:0 20px 80px #0005}dialog::backdrop{background:#132b35c9}dialog h2{font-size:20px}dialog img{display:block;width:100%;border-radius:8px}dialog p{font-size:12px}dialog .primary,dialog .secondary{width:100%;margin-top:10px}.close{position:absolute;top:14px;right:15px;background:#e2e6db;border-radius:50%;width:29px;height:29px;font-size:20px}body.twist{background:radial-gradient(ellipse at top,#5c716c,#263d40)}body.twist .shell{color:#f0efdc}body.twist .masthead a{color:#e7eadf}body.twist #speaker,body.twist .hint{color:#c0cfc3}body.twist .chapter{color:#ffc899}body.twist .time{border-color:#788d7d}body.twist .journey i{background:#637b70}body.twist .journey i.done{background:#eeb479}body.twist .primary{background:#ecb57c;color:#263d40}body.twist footer,body.twist .fineprint{color:#9aafa5}@media(max-height:750px){.shell{padding-top:10px}.masthead{margin-bottom:10px}.journey{margin-bottom:11px}canvas{aspect-ratio:480/420}.dialog{margin:10px 0;min-height:68px}.portrait{height:66px}.primary,.secondary,.control{min-height:46px;padding:11px}h1{font-size:26px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.curtain{transition:none}}

.portrait.receiver img{width:190px;left:-63px;top:-3px}.curtain{transition:opacity .46s ease-in-out}body{transition:background-color .8s}.scene-prompt{transition:opacity .4s}@media(prefers-reduced-motion:reduce){.curtain{transition:none}}

.milestone{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:radial-gradient(ellipse at 50% 38%,#36515a,#20363d 80%);color:#fff4dc;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease,visibility .45s}.milestone.show{opacity:1;visibility:visible}.milestone h2{margin:0;font-size:clamp(29px,8vw,42px);font-weight:850;letter-spacing:.05em;line-height:1.5;text-align:center;white-space:nowrap}.milestone p{margin:0;font-size:12px;color:#d4d8c9;letter-spacing:.1em}.milestone-rule{display:block;width:46px;height:2px;background:#d7b17d}.milestone.show h2{animation:milestone-title .9s ease both}.milestone.show p{animation:milestone-title 1s .15s ease both}@keyframes milestone-title{from{opacity:0;transform:translateY(10px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@media(prefers-reduced-motion:reduce){.milestone{transition:none}.milestone.show h2,.milestone.show p{animation:none}}

.ending{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(160deg,#203d3cf2,#152c31f5);color:#fff0d3;opacity:0;visibility:hidden;transition:opacity .7s;pointer-events:none;padding:20px 10px}.ending.show{opacity:1;visibility:visible}.ending-copy{width:100%}.ending-copy p{font-size:clamp(21px,5.8vw,30px);font-weight:800;letter-spacing:.01em;line-height:1.7;margin:0;white-space:nowrap}.ending-copy p,.score-panel{opacity:0;transform:translateY(12px);transition:opacity .8s,transform .8s}.ending .visible{opacity:1;transform:translateY(0)}.score-panel{margin-top:22px;min-height:140px}.score-label{font-size:10px;letter-spacing:.22em;color:#d6b77f}.score-panel strong{font-size:64px;line-height:1.05;font-variant-numeric:tabular-nums;color:#f5d593}.score-max{font-size:18px;color:#b7c7ba}.score-panel p{font-size:13px;letter-spacing:.1em;margin:8px 0}.score-panel small{font-size:10px;color:#b8c8b9}.score-panel.settled strong{animation:score-pop .45s ease-out}@keyframes score-pop{50%{text-shadow:0 0 24px #f5d593a0}}@media(prefers-reduced-motion:reduce){.ending,.ending-copy p,.score-panel{transition:none;transform:none}.score-panel.settled strong{animation:none}}

.score-best{font-size:11px;font-weight:700;color:#e9bc77;margin-top:9px}

#scoreDetail{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px;text-align:left;margin:9px auto 0;max-width:310px}#scoreDetail b{color:#f3dfb3}.score-panel strong{font-size:clamp(40px,12vw,60px)}.score-panel{margin-top:15px}.ending.perfect{background:radial-gradient(ellipse at 50% 65%,#52694af2,#152c31fa 72%)}.ending.perfect .score-panel{filter:drop-shadow(0 0 12px #e9ca7060)}.ending.perfect:after{content:'✦　✧　✦';position:absolute;bottom:14px;color:#e9ca70;font-size:21px;letter-spacing:20px;animation:perfect-glow 1.5s ease-out}@keyframes perfect-glow{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.ending.perfect:after{animation:none}}

.viewport:has(.ending.show){min-height:360px}.ending.perfect:after{bottom:8px;font-size:13px}

.ending .fireworks{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;pointer-events:none;z-index:0}.ending-copy,.score-panel{position:relative;z-index:1;text-shadow:0 2px 8px #142d31}.ending .fireworks~.score-panel{filter:none}.ending.perfect .score-panel strong{text-shadow:0 0 16px #e9ca7070}

/* Version 10: clearer touch targets and a focused finale. */
[hidden]{display:none!important}.heading>div{min-width:0}.heading h1{font-size:clamp(23px,6vw,30px);text-wrap:balance}.heading .time{flex-shrink:0}button,a{transition:transform .15s,background-color .2s,box-shadow .2s}button:not(:disabled):active,.controls a:active{transform:translateY(2px)}.controls{gap:10px}.primary,.secondary,.control,.pick{min-width:0;line-height:1.4}.speech{min-width:0}.dialog{background:#fff8eb70;border:1px solid #ffffff70;border-radius:17px;padding:10px;gap:11px;min-height:94px}body.twist .dialog{background:#ffffff08;border-color:#ffffff14}.portrait{width:55px;height:65px}.hint{font-size:11px}.masthead button{min-height:36px;min-width:66px}.scene-prompt{bottom:57px;max-width:390px;margin:auto}.drive-panel{position:absolute;left:16px;right:16px;bottom:12px;background:#f8f3e6ed;border:1px solid #ffffffc0;border-radius:12px;padding:8px 12px;pointer-events:none;color:#3c5b58}.drive-panel>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:9px}.drive-panel strong{font-size:10px}.route-track{height:4px;border-radius:4px;background:#bccfc4;margin-top:7px;overflow:hidden}.route-track i{display:block;width:0;height:100%;background:#56876c;transition:width .15s linear}.drive-panel.hazard .route-track i{background:#cc834b}.driving-controls [data-action=gas],.driving-controls [data-action=brake]{flex:1 1 calc(50% - 10px);min-height:66px;gap:12px;font-size:15px}.driving-controls [data-action=radio]{flex-basis:100%;min-height:42px}.control small{display:block;font-size:10px;font-weight:500;margin-top:3px}.pedal-symbol{font-size:22px}.controls.result-controls{display:grid;grid-template-columns:1fr 1fr}.result-controls [data-action=replay],.result-controls>a{grid-column:1/-1}.result-controls [data-action=replay]{min-height:42px}.result-report{padding:17px 16px;margin:2px 0 14px;border-radius:18px;background:#f8f4e8;border:1px solid #e5dfcd;color:#304b4b}.result-report h2{font-size:14px;margin:0 0 14px;letter-spacing:.02em}.result-metrics{display:grid;grid-template-columns:1fr 1fr;gap:13px 18px}.metric>div:first-child{display:flex;justify-content:space-between;gap:6px;font-size:11px;line-height:1.5}.metric strong{font-size:11px;font-variant-numeric:tabular-nums}.metric small{font-size:8px;font-weight:500;color:#778980}.metric-track{height:4px;border-radius:3px;background:#dce4d6;overflow:hidden;margin-top:5px}.metric-track i{display:block;height:100%;background:linear-gradient(90deg,#8baa87,#537e6a);transform-origin:left;animation:metric-grow .7s ease-out}.result-report p{border-top:1px solid #dedfcf;padding-top:12px;margin:14px 0 0;font-size:12px;line-height:1.7;color:#536b61}.ending{gap:5px;padding:25px 14px}.ending-copy p{line-height:1.75}.ending .score-panel{margin-top:22px}.ending #scoreDetail{display:block;text-align:center;margin-top:12px;font-size:11px;color:#b5cdbb}.ending .score-panel strong{font-size:clamp(48px,14vw,68px);letter-spacing:-.035em}.ending .score-max{font-size:15px}.ending .score-best{padding:6px 12px;border:1px solid #d7b57950;border-radius:30px;display:inline-block;margin-top:12px}.ending .score-best:empty{visibility:hidden}.viewport:has(.ending.show){min-height:370px}.ending.perfect:after{bottom:12px}@keyframes metric-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}@media(max-width:360px){.shell{padding-left:12px;padding-right:12px}.heading h1{font-size:23px}.time{font-size:9px}.result-metrics{gap:12px 10px}.metric>div:first-child{display:block}.metric strong{display:block}.dialog{padding:9px}.ending-copy p{font-size:22px}.result-report{padding:14px}}@media(prefers-reduced-motion:reduce){button,a,.route-track i{transition:none}.metric-track i{animation:none}}

.diag-yellow{border-bottom:4px solid #d9aa42;color:#66551f}.diag-red{border-bottom:4px solid #c56d5c;color:#764a40}.diag-blue{border-bottom:4px solid #679bac;color:#395f6e}

.streak{position:absolute;right:16px;top:48px;z-index:3;pointer-events:none;opacity:0;transform:scale(.9);padding:7px 12px;border-radius:10px;color:#234b45;background:linear-gradient(135deg,#ffe1a0,#eab360);box-shadow:0 4px 14px #31433c25;font-size:13px;font-weight:900;font-style:italic;transition:opacity .2s,transform .2s}.streak.show{opacity:1;transform:scale(1)}.curtain{transition-duration:.22s}.milestone h2{animation-duration:.55s!important}.milestone p{animation-duration:.55s!important}.driving-controls{display:grid;grid-template-columns:1fr 1fr}.driving-controls .control{min-height:72px}.ending .score-panel.settled strong{animation:score-hit .55s cubic-bezier(.16,.9,.3,1)}@keyframes score-hit{0%{transform:scale(.75);filter:brightness(1.6)}45%{transform:scale(1.14)}100%{transform:scale(1);filter:brightness(1)}}.score-panel strong{display:inline-block}@media(prefers-reduced-motion:reduce){.streak,.curtain{transition:none}.ending .score-panel.settled strong{animation:none}}

.sound-score{display:flex;align-items:center;gap:10px}#liveScore{font-size:14px;font-weight:850;color:#527263;font-variant-numeric:tabular-nums;display:inline-block}body.twist #liveScore{color:#f3d395}.viewport.driving .streak{left:16px;right:auto}

/* v13: stronger beats, without extending the play time. */
.audio-level{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:-7px 2px 12px;font-size:10px;color:#607970}.audio-level input{width:100px;height:22px;accent-color:#b98042;margin:0}.audio-level output{width:30px;font-variant-numeric:tabular-nums}body.twist .audio-level{color:#cedecf}.streak.hot{background:#ffe6a4;color:#604522;box-shadow:0 0 18px #f5d28060;border:1px solid #fff3c9}.milestone{overflow:hidden}.milestone:before{content:'';position:absolute;width:70%;height:150%;background:linear-gradient(90deg,transparent,#f5d79b17,transparent);transform:translateX(-160%) rotate(25deg);pointer-events:none}.milestone.show:before{animation:chapter-sweep 1.2s ease-out}.milestone.show .milestone-rule{animation:rule-open .65s ease-out both}.score-panel.settled strong{display:inline-block;animation:score-impact .55s cubic-bezier(.2,.7,.2,1)}.ending.perfect:before{content:'';position:absolute;inset:-50%;background:repeating-conic-gradient(from 0deg,transparent 0deg 18deg,#f9d67a08 18deg 30deg);animation:gold-rays 30s linear infinite;pointer-events:none}.primary.orange{box-shadow:0 5px 17px #b77c3027}
@keyframes chapter-sweep{to{transform:translateX(160%) rotate(25deg)}}@keyframes rule-open{from{width:0;opacity:0}to{width:76px;opacity:1}}@keyframes score-impact{0%{transform:scale(.94)}40%{transform:scale(1.12);text-shadow:0 0 28px #f5d593}100%{transform:scale(1)}}@keyframes gold-rays{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.milestone.show:before,.milestone.show .milestone-rule,.score-panel.settled strong,.ending.perfect:before{animation:none}.milestone:before{display:none}}

/* v18: readable cinematic beats and tactile controls. */
.milestone.diagnosis{background:#080b0b}.milestone.diagnosis:before,.milestone.diagnosis .milestone-rule{display:none}.milestone.diagnosis h2{font-size:clamp(24px,6.7vw,34px);letter-spacing:.03em}.milestone.diagnosis p:empty{display:none}.key-line{position:absolute;z-index:4;top:44%;left:5%;width:90%;pointer-events:none;text-align:center;color:#fff4d4;font-weight:900;font-size:clamp(22px,6.3vw,32px);line-height:1.5;text-wrap:balance;text-shadow:0 3px 5px #162d31,0 0 25px #162d31,2px 0 #162d31,-2px 0 #162d31;visibility:hidden}.key-line.show{visibility:visible}.belt-input{height:50px;background:transparent}.control.pressed{box-shadow:inset 0 3px 8px #0003}.dialog .speech{overflow-wrap:anywhere}.milestone-rule{transition:width .3s}.diag-yellow:active,.diag-blue:active,.diag-red:active{box-shadow:inset 0 2px 7px #0002}@media(prefers-reduced-motion:reduce){.key-line.show{font-size:22px}.milestone-rule{transition:none}}

/* Clear completed and optional states. */
.controls .next-btn{flex-basis:100%;border:1px solid #a9b7ae;background:#eef1e8;color:#435b51;box-shadow:none}.controls .help-btn{min-height:36px;font-size:12px;flex-basis:100%;background:transparent;border:0;box-shadow:none}.controls button:disabled,.controls button.done:disabled{background:#e0e3df!important;color:#65726b!important;border:1px solid #c7cec8!important;box-shadow:none!important;opacity:1;animation:none;cursor:default}.controls [data-action^=inspect]:not([data-action=inspectNext]){flex:1 1 calc(50% - 10px)}

.belt-control{width:100%;padding:12px 13px;border-radius:14px;background:#fff0cf;border:2px solid #e5a254}.belt-control label{display:block;font-size:13px;font-weight:850;color:#574a32}.belt-control small{display:block;margin:5px 0 3px;font-size:11px;color:#786347}.belt-control .belt-input{width:100%;padding:0;border:0;box-shadow:none;background:transparent}.belt-control:has(input:disabled){background:#e9e9e0;border-color:#c4c9bf}.belt-control:has(input:focus-visible){outline:3px solid #d28c3a;outline-offset:2px}

.version-badge{position:absolute;right:0;top:-12px;font-size:9px;letter-spacing:.04em;color:#7a8f83}.masthead .sound-score{position:relative}.masthead{padding-top:6px}body.twist .version-badge{color:#c2d3c7}

/* v22: one reading area and one next action, with no extra steps. */
.dialog{background:#fffaf0;border-color:#dce1d5;align-items:flex-start;margin:12px 0 10px;min-height:92px;padding:12px}.speech{align-self:center}#speaker{font-size:11px;color:#627568;margin-bottom:5px}#line{font-size:15px;font-weight:650;line-height:1.65;letter-spacing:.02em;line-break:strict}body.twist .dialog{background:#233d40;border-color:#648076}body.twist #line{color:#fff6e5}body.twist #speaker{color:#d8e5d7}
.scene-prompt{position:static;max-width:none;margin:0 0 9px;text-align:left;color:#294c43;font-size:14px;font-weight:850;line-height:1.5;transition:none;min-height:54px}.scene-prompt:empty{display:none}.scene-prompt:not(:empty){padding:8px 12px;border:1px solid #c9d6c6;border-left:4px solid #cb873b;background:#fcf5e4;box-shadow:none;border-radius:10px}.scene-prompt:before{content:attr(data-label);display:block;font-size:10px;line-height:1.3;font-weight:650;letter-spacing:.06em;color:#6b7964;margin-bottom:2px}.scene-prompt[data-mode=wait]{border-left-color:#8ca295;background:#eef2e9}.scene-prompt[data-mode=done]{border-left-color:#508464;background:#e9f2df}.scene-prompt[data-mode=urgent]{border-left-color:#bb572c;background:#fff0d8;color:#8b3b22}.scene-prompt[data-mode=urgent]:before{color:#8b3b22}
.primary,.secondary,.control{font-size:14px;line-height:1.5;min-height:50px;padding:12px}.hint{font-size:11px;line-height:1.6;color:#5f7367;margin-top:7px}.hint:empty{display:none}.belt-control{background:#f5f3e9;border:1px solid #cbd5c8;padding:10px 12px}.belt-control label{font-size:14px}.belt-control small{font-size:12px;color:#5f6c57}.belt-input{height:44px}.controls[data-focus=belt] .belt-control{background:#fff0c9;border:2px solid #bc7930;box-shadow:0 0 0 3px #efb76b30}.controls[data-focus=diagnosis] [data-action^=diag]{border:2px solid #ab8449;background:#fff6df;color:#344c43}
@keyframes next-action{from{box-shadow:0 0 0 6px #edb06065}to{box-shadow:0 0 0 3px #edb06028}}
@media(max-width:380px){.dialog{gap:9px;padding:10px}.portrait{width:48px}.scene-prompt{font-size:13px}.primary,.secondary{padding:10px;font-size:13px}}
@media(max-height:750px){.shell{padding-top:8px}.audio-level{margin-bottom:6px}.journey{margin-bottom:9px}.heading{padding-bottom:9px}.dialog{min-height:84px;margin:9px 0;padding:10px}.scene-prompt:not(:empty){padding-top:6px;padding-bottom:6px}.scene-prompt{min-height:50px}}
@media(prefers-reduced-motion:reduce){.controls button{animation:none!important}}
.controls[data-focus="start"] [data-action="start"]:not(:disabled),.controls[data-focus="interview"] [data-action="interview"]:not(:disabled),.controls[data-focus="loadNext"] [data-action="loadNext"]:not(:disabled),.controls[data-focus="diagStart"] [data-action="diagStart"]:not(:disabled),.controls[data-focus="diagFinish"] [data-action="diagFinish"]:not(:disabled),.controls[data-focus="inspect0"] [data-action="inspect0"]:not(:disabled),.controls[data-focus="inspect1"] [data-action="inspect1"]:not(:disabled),.controls[data-focus="inspect2"] [data-action="inspect2"]:not(:disabled),.controls[data-focus="inspectNext"] [data-action="inspectNext"]:not(:disabled),.controls[data-focus="beltTighten"] [data-action="beltTighten"]:not(:disabled),.controls[data-focus="beltCheck"] [data-action="beltCheck"]:not(:disabled),.controls[data-focus="depart"] [data-action="depart"]:not(:disabled),.controls[data-focus="gas"] [data-action="gas"]:not(:disabled),.controls[data-focus="brake"] [data-action="brake"]:not(:disabled),.controls[data-focus="arrivalCargoCheck"] [data-action="arrivalCargoCheck"]:not(:disabled),.controls[data-focus="handover"] [data-action="handover"]:not(:disabled),.controls[data-focus="receipt"] [data-action="receipt"]:not(:disabled){background:#f4c878;color:#2c443d;border:2px solid #b77932;box-shadow:0 0 0 3px #edb06028;animation:next-action .3s ease-out}

.controls [data-action=depart],.controls [data-action=loadNext]{flex-basis:100%}.controls[data-focus=diagnosis] .diag-yellow{border-bottom:4px solid #c89623}.controls[data-focus=diagnosis] .diag-red{border-bottom:4px solid #b65d50}.controls[data-focus=diagnosis] .diag-blue{border-bottom:4px solid #528697}.version-badge{font-size:10px}

/* v25: explicit story progression, with one clear continuation button. */
.controls .dialogue-next{flex-basis:100%;background:#f4c878;color:#2c443d;border:2px solid #b77932;box-shadow:0 0 0 3px #edb06028}.milestone.show h2,.milestone.show p{animation-duration:.25s!important}

/* Display only the official symbol, excluding the adjacent wordmark. */
.version-badge{top:-15px;display:flex;align-items:center;gap:5px;line-height:18px;white-space:nowrap}.brand-mark{display:block;flex:0 0 26px;width:26px;height:18px;background:url("assets/official-logo-2.png") 1px 2px/98.518519px 14px no-repeat;clip-path:polygon(0 0,25.12px 0,25.12px 9px,24.7px 9px,24.7px 18px,0 18px)}

.controls.result-controls .recruit-cta{background:#a9411d;color:#fff;border:2px solid #edb580;min-height:56px;box-shadow:0 5px 17px #642d2940}.controls.result-controls .recruit-cta:hover{background:#8d3214}.controls.result-controls .recruit-cta:active{background:#76280f}

/* Full-size scene, compact controls, and safe-area-aware actions on phones. */
@media(max-width:600px){
 .shell{padding:6px 12px calc(16px + env(safe-area-inset-bottom))}
 .masthead{padding-top:2px;margin-bottom:2px}
 .audio-level{margin-bottom:0}
 .journey{margin-bottom:3px}
 .heading{padding-bottom:4px}
 .heading h1{font-size:clamp(21px,5.5vw,27px);margin-top:0}
 .heading .time{font-size:9px;padding:3px 6px}
 .viewport{width:100%;margin-inline:auto}
 .viewport canvas#scene{aspect-ratio:480/470}
 .dialog{min-height:48px;margin:3px 0 2px;padding:4px 7px;gap:6px}
 .portrait{height:42px;width:36px}
 .portrait img{width:360px;left:-250px;top:-2px}
 .portrait.young img{left:-71px}
 .portrait.middle img{left:-161px}
 .portrait.receiver img{width:105px;left:-36px;top:-1px}
 #speaker{font-size:10px;margin-bottom:1px}
 #line{font-size:13px;line-height:1.35}
 .game{padding-bottom:calc(125px + env(safe-area-inset-bottom))}
 .game:has(.result-controls){padding-bottom:calc(220px + env(safe-area-inset-bottom))}
 .hint{margin-top:2px;font-size:10px;line-height:1.35}
 .action-dock{position:fixed;inset-inline:0;bottom:0;z-index:10;max-width:520px;margin-inline:auto;padding:3px 12px calc(3px + env(safe-area-inset-bottom));background:#e7e9e3;border-top:1px solid #cbd5c8;box-shadow:0 -6px 18px #263b4520}
 .action-dock .scene-prompt{min-height:0;margin-bottom:2px;font-size:12px;line-height:1.25}
 .action-dock .scene-prompt:before{display:none}
 .action-dock .scene-prompt:not(:empty){padding:3px 7px}
 .action-dock .controls{gap:4px}
 .action-dock .controls .primary,.action-dock .controls .secondary,.action-dock .controls .control{min-height:44px;padding:7px 8px;font-size:13px}
 .action-dock .controls:has([data-action=loadHelp]) [data-action=loadNext]{flex:2 1 0}
 .action-dock .controls:has([data-action=loadHelp]) [data-action=loadHelp]{flex:1 1 0;min-height:44px;padding:5px;font-size:11px}
 .action-dock .controls:has([data-action=inspectNext])>button{flex:1 1 calc(50% - 6px);font-size:12px;line-height:1.25;padding:5px 6px}
 .action-dock .controls:has(.belt-control) .belt-control{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4px 8px;padding:4px 8px}
 .action-dock .controls:has(.belt-control) .belt-control small{display:none}
 .action-dock .controls:has(.belt-control) .belt-control label{font-size:12px;line-height:1.3}
 .action-dock .controls:has(.belt-control) .belt-input{height:40px}
 .action-dock .controls:has(.belt-control)>button{flex:1 1 0;min-height:44px;padding:6px 3px;font-size:11px}
 .action-dock .driving-controls .control{min-height:54px}
 .action-dock .controls.result-controls .recruit-cta{min-height:56px}
 .milestone.diagnosis h2{font-size:clamp(18px,5.3vw,26px);white-space:normal;padding-inline:10px}
 .ending-copy p{font-size:clamp(17px,5.4vw,22px);white-space:normal}
 body.twist .action-dock{background:#263d40;border-top-color:#607b70}
}
@media(max-width:600px) and (max-height:540px){
 .viewport{width:min(100%,max(270px,calc(100svh - 180px)))}
}

/* 1.05: a scrollable result page, not a larger fixed action overlay. */
body.result-view .action-dock{position:static;inset:auto;max-width:none;padding:0;margin:14px 0;background:transparent;border:0;box-shadow:none}
body.result-view .game:has(.result-controls){padding-bottom:0}
body.result-view .controls.result-controls{display:flex;flex-direction:column;gap:18px}
.result-controls .result-group{display:flex;flex-direction:column;gap:9px;width:100%}
.result-controls .result-group a,.result-controls .result-group button{width:100%;flex:auto;min-height:48px}
.result-controls .recruit-card{width:100%;padding:20px 16px;border-radius:18px;border:1px solid #bd9b67;background:#fff1d5;color:#304b43;box-shadow:0 6px 24px #102b281a}
.recruit-card .result-eyebrow{font-size:10px;letter-spacing:.04em;font-weight:700;color:#736343;margin:0 0 7px}
.recruit-card h2{font-size:20px;line-height:1.5;margin:0 0 8px;letter-spacing:.01em}
.recruit-card p{font-size:12px;line-height:1.8;margin:0 0 16px}
body.result-view .controls.result-controls .recruit-cta{display:flex;width:100%;min-height:56px;padding:12px 10px;font-size:13px;background:#a9411d;color:#fff;border:2px solid #c66a39;box-shadow:0 4px 10px #642d2920;line-height:1.6}
body.result-view .controls.result-controls .recruit-cta:hover{background:#8d3214}
body.result-view .result-more{padding-top:16px;border-top:1px solid #6b8676;gap:8px}
body.result-view .result-more a{background:transparent;color:#f6eddb;border:1px solid #779184;box-shadow:none;font-size:12px}
body.result-view .result-replay .secondary{background:#e9eee3;color:#304b43}
body.result-view .result-share .secondary{background:#f8f4e8;color:#304b43}
body.result-view .result-report{margin-top:20px}
.score-praise{font-size:clamp(13px,3.7vw,17px);font-weight:800;color:#f8d58b;line-height:1.7;margin:10px 0 0}
body.result-view .ending .score-panel{margin-top:14px}
body.result-view .ending #scoreDetail{margin-top:8px}
body.result-view #scorePanel:focus-visible{outline:2px solid #f4cf8a;outline-offset:5px;border-radius:8px}
@media(max-width:600px){
 body.result-view .action-dock .controls{gap:16px}
 body.result-view .action-dock .result-group .secondary{min-height:48px;padding:10px 12px}
 body.result-view .recruit-card{padding:18px 14px}
 body.result-view .recruit-card h2{font-size:19px}
}

body.result-view .scene-prompt{display:none}

#saveDialog .close{width:44px;height:44px;min-width:44px;min-height:44px;line-height:1}
#saveDialog h2{padding-right:40px}
