.runner-shell{border:2px solid #26372f;border-radius:16px;overflow:hidden;background:#192a29;box-shadow:0 12px 30px #172d2420;margin:22px 0}.runner-dashboard{display:grid;grid-template-columns:repeat(4,1fr);color:#fff1d2;padding:16px 24px;background:#1c302e;gap:16px}.runner-dashboard div{display:flex;flex-direction:column;gap:3px}.runner-dashboard small{color:#b1c5b9;font-size:12px}.runner-dashboard b{font-size:25px;font-variant-numeric:tabular-nums}.runner-dashboard div:first-child b{color:#f9c355}.runner-viewport{position:relative;background:#c4cfb7}.runner-viewport canvas{display:block;width:100%;height:auto;aspect-ratio:16/7;outline-offset:-4px;touch-action:manipulation}.runner-overlay{position:absolute;inset:0;display:grid;place-items:center;background:#14262340;padding:18px}.runner-overlay>div{max-width:460px;background:#fff6e7f2;border:1px solid #274238;border-radius:12px;padding:23px 28px;box-shadow:0 8px 20px #14262325;text-align:center}.runner-overlay h2{font-size:28px;margin:7px 0 10px}.runner-overlay p{font-size:14px;margin-bottom:18px;color:#536356}.runner-controls{display:flex;align-items:center;gap:12px;padding:14px 20px;background:#fff5df}.runner-controls .runner-jump{min-width:190px;justify-content:space-between}.runner-controls kbd{font:11px inherit;opacity:.65;margin-left:20px}.runner-controls>span{font-size:12px;line-height:1.6;color:#607066;margin-left:auto}.runner-notice{padding:12px 20px;font-size:13px;color:#e5eada;min-height:43px}.runner-route-line{height:5px;background:#0d1c19}.runner-route-line i{display:block;height:100%;background:#f7bf4a;transition:width .15s linear}.career-strip{display:flex;align-items:center;gap:22px;padding:17px 20px;margin:18px 0 24px;border:1px solid #bbc3ae;border-radius:10px;background:#e8ebd9}.career-strip>div{display:flex;align-items:center;gap:12px;min-width:220px}.career-strip .game-icon{width:40px;height:44px}.career-strip span{display:flex;flex-direction:column}.career-strip small{font-size:11px;color:#657667}.career-strip p{font-size:13px;line-height:1.6;flex:1;margin:0}.career-warning{color:#a13429;font-size:12px;max-width:170px}.runner-stop-panel{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:20px 0}.runner-stop-panel>section{padding:24px;background:#fff9e9;border:1px solid #b4bca9;border-radius:10px}.runner-stop-panel h2{font-size:24px;margin:10px 0}.runner-stop-panel p{font-size:14px;line-height:1.6}.runner-stop-actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.runner-stop-panel .trip-optional{background:#fff7e4;border-radius:10px;overflow:hidden;border:1px solid #b4bca9}.runner-passenger{position:absolute;right:20px;bottom:20px;width:260px;background:#fff2e9;border:2px solid #a75151;border-radius:12px;padding:15px;box-shadow:0 5px 20px #381f282d;display:flex;flex-direction:column;gap:7px}.runner-passenger>span{color:#995248;text-transform:uppercase;font-size:10px;letter-spacing:.1em}.runner-passenger small{font-size:12px}.runner-passenger .text-button{padding:3px}.drain-overlay{position:absolute;inset:0;display:grid;grid-template-columns:1.1fr 1fr;background:#e7dbc1}.drain-overlay>img{width:100%;height:100%;min-height:0;object-fit:cover;object-position:center}.drain-game{padding:25px;display:flex;flex-direction:column;justify-content:center;gap:9px;background:#fff6e5}.drain-game h2{font-size:28px;margin:0}.drain-game p,.drain-game small{font-size:12px;line-height:1.5;margin:0;color:#617060}.drain-meter{height:18px;background:#e5dbc2;border-radius:5px;overflow:hidden;border:1px solid #aea88e;margin-top:7px}.drain-meter i{display:block;height:100%;background:linear-gradient(90deg,#7d9c52,#f9bc48,#d96443);width:0}.drain-readings{display:flex;justify-content:space-between;font-size:13px}.drain-hold{touch-action:none;user-select:none;-webkit-user-select:none}.drain-hold.is-holding{background:#cf8a28;transform:translateY(2px)}.arcade-report{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0;padding:18px;background:#dfe7cf;border-radius:8px}.arcade-report div{display:flex;flex-direction:column}.arcade-report b{font-size:22px}.arcade-report small{font-size:11px}.ending-prison .over-art{filter:grayscale(1)}.ending-prison .over-art:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 55px,#142320de 56px 65px,transparent 66px 90px)}
@media(max-width:760px){.runner-dashboard{padding:12px;gap:8px}.runner-dashboard b{font-size:20px}.runner-dashboard small{font-size:10px}.runner-viewport canvas{aspect-ratio:10/7}.runner-controls{flex-wrap:wrap;padding:12px;gap:8px}.runner-controls .runner-jump{flex:1;min-width:150px}.runner-controls>span{width:100%;margin:0;font-size:11px}.runner-controls kbd{display:none}.runner-overlay>div{padding:17px;max-width:330px}.runner-overlay h2{font-size:24px}.runner-overlay p{font-size:12px;margin-bottom:12px}.runner-overlay .large{min-height:42px;padding:10px 18px}.career-strip{flex-wrap:wrap;gap:10px}.career-strip p{flex-basis:100%}.runner-stop-panel{grid-template-columns:1fr}.runner-passenger{right:10px;bottom:10px;width:230px;padding:10px}.drain-overlay{grid-template-columns:.65fr 1fr}.drain-game{padding:12px;gap:6px}.drain-game h2{font-size:21px}.drain-game p{display:none}.drain-game .large{padding:12px 8px;font-size:12px}.drain-game .text-button{padding:2px}.drain-game>small{font-size:10px}.runner-notice{font-size:12px;padding:10px 12px}.arcade-report{padding:12px;gap:10px}.arcade-report b{font-size:18px}}
@media(prefers-reduced-motion:reduce){.runner-route-line i{transition:none}}
.runner-shell{scroll-margin-top:16px}.journey-heading{flex-wrap:wrap}.journey-pay{max-width:100%}.journey-pay b{white-space:normal}.runner-viewport:has(.drain-overlay){min-height:330px}
@media(max-width:760px){.journey-heading{display:block}.journey-pay{text-align:left;margin-top:12px}.journey-pay b{font-size:20px}.runner-viewport:has(.runner-overlay){min-height:270px}.runner-viewport:has(.drain-overlay){min-height:315px}.runner-overlay{padding:12px}.runner-passenger{max-width:calc(100% - 20px)}}

[data-runner-jumps]{font:600 11px system-ui;min-width:27px;padding:3px 5px;border:1px solid currentColor;border-radius:3px;opacity:.85}.runner-controls .runner-jump{gap:10px}.runner-controls .runner-jump kbd{margin-left:0}

/* A planned layby replaces the road with its decision panel, in the same game window. */
.runner-viewport:has(.runner-layby){display:grid;min-height:360px}
.runner-viewport:has(.runner-layby)>canvas{position:absolute;inset:0;height:100%}
.runner-layby{position:relative;z-index:1;display:grid;grid-template-columns:minmax(160px,.85fr) minmax(0,1.15fr);background:#fff6e5;color:#24382f;min-height:360px}
.layby-picture{position:relative;min-width:0;min-height:0;margin:0;overflow:hidden;background:#26392d}
.layby-picture>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center}
.layby-picture figcaption{position:absolute;inset:auto 0 0;padding:45px 22px 22px;background:linear-gradient(transparent,#15291bef);color:#fff1ce;display:flex;flex-direction:column;gap:5px}
.layby-picture figcaption>span{font-size:11px;color:#e8c888}.layby-picture figcaption>b{font:700 23px Georgia,serif;overflow-wrap:anywhere}
.layby-decision{padding:22px 26px;align-self:center;min-width:0}.layby-decision>header{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:11px;color:#69715b}.layby-decision .eyebrow{font-size:10px}
.layby-decision h2{font:700 27px/1.15 Georgia,serif;margin:12px 0 9px;overflow-wrap:anywhere}.layby-instruction{font-size:12px;line-height:1.5;margin:0 0 12px;color:#65705c}.layby-decision label{display:block;font-size:11px;font-weight:650;margin-bottom:5px}.layby-decision select{width:100%;min-width:0;min-height:42px;padding:8px 10px;margin:0;background:#fffaf0;font-size:13px}
.layby-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:12px 0 16px}.layby-facts>span{display:flex;flex-direction:column;gap:4px;min-width:0}.layby-facts small{font-size:10px;color:#6c745e}.layby-facts b{font-size:16px}.layby-reason{font-size:12px;color:#9a3c2b;margin:8px 0}.layby-reason[hidden]{display:none}
.layby-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.layby-actions button{min-width:0;white-space:normal;min-height:44px;justify-content:center;padding:10px;font-size:13px;line-height:1.3}
.runner-layby-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 20px;background:#f1e6ce;border-top:1px solid #c9bfa6}.runner-layby-tools button{font-size:11px;padding:9px 12px;min-height:38px}.runner-layby-tools>span{font-size:11px;color:#68715d;margin-left:auto}.runner-drain-tip{padding:12px 20px;font-size:12px;line-height:1.5;background:#f1e6ce;color:#52604c}.runner-controls [data-runner-next-stop]{color:#3c5945;font-weight:650}
@media(max-width:760px){.runner-layby{grid-template-columns:1fr;min-height:0}.layby-picture{height:76px}.layby-picture>img{object-position:center 45%}.layby-picture figcaption{padding:12px 15px;background:linear-gradient(90deg,#15291beb,#15291b35)}.layby-picture figcaption>b{font-size:19px}.layby-picture figcaption>span{font-size:10px}.layby-decision{padding:14px}.layby-decision h2{font-size:23px;margin-top:9px}.layby-decision>header{font-size:10px}.layby-decision .eyebrow{font-size:9px}.layby-instruction{font-size:11px;line-height:1.45;margin-bottom:9px}.layby-facts{margin:10px 0 12px}.layby-facts b{font-size:15px}.layby-actions button{font-size:12px}.runner-layby-tools{padding:10px;gap:7px}.runner-layby-tools button{flex:1;padding:9px 5px;font-size:10px}.runner-layby-tools>span{width:100%;margin:0}.runner-drain-tip{font-size:11px;padding:10px 12px}}

.runner-controls{flex-wrap:wrap}.runner-boost{min-height:44px;white-space:nowrap}.runner-boost.selected{background:#9a3828;color:#fff2d1;border-color:#75251a}.runner-boost kbd{margin-left:0}.axenta-link{color:#853c24;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;white-space:nowrap}.axenta-link>span{font:600 .6em system-ui;display:inline-block;vertical-align:super;margin-left:4px}.axenta-link:hover{color:#b24e28}.axenta-link:focus-visible{outline:3px solid #337e8f;outline-offset:4px}
@media(max-width:760px){.runner-controls .runner-jump{min-width:110px}.runner-controls .runner-boost{padding:10px;font-size:12px}.runner-viewport:has(.runner-overlay){min-height:350px}}

/* Encounters live inside the game; the road stays frozen until the choice ends. */
.runner-viewport:has(.passenger-stop,.passenger-encounter){display:grid;min-height:360px}
.runner-viewport:has(.passenger-stop,.passenger-encounter)>canvas{position:absolute;inset:0;height:100%}
.passenger-stop,.passenger-encounter{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,1fr);background:#fff5e1;color:#23392f}
.passenger-stop-art{min-height:340px;background:linear-gradient(#203c3860,#172927b0),url('../assets/arcade/roadside-v1.png') center/cover;display:flex;justify-content:center;overflow:hidden}
.passenger-stop-art img{display:block;width:100%;height:350px;object-fit:contain;object-position:center top;align-self:end}
.passenger-copy{min-width:0;padding:24px;align-self:center}
.passenger-copy h2{font:700 27px/1.15 Georgia,serif;margin:8px 0 14px;overflow-wrap:anywhere}
.passenger-copy p{font-size:13px;line-height:1.55;margin:0 0 14px}
.passenger-copy blockquote{font:italic 20px/1.45 Georgia,serif;margin:18px 0;color:#885337}
.passenger-price{border-block:1px solid #d7c6a7;padding:12px 0}
.passenger-actions{display:flex;flex-wrap:wrap;gap:10px}.passenger-actions button{flex:1;min-width:120px}
.encounter-art{margin:0;min-width:0;display:grid;align-content:center;background:#24372e}
.encounter-illustration{display:block;width:100%;height:auto}
.encounter-reward{padding:12px;background:#e2e9ce;border-left:3px solid #70865e;font-weight:650}
.ambush-art{min-height:360px;padding:30px;display:flex;flex-direction:column;justify-content:center;gap:12px;background:linear-gradient(#192c24a0,#172923ed),url('../assets/arcade/forest-v1.png') center/cover;color:#f2dbad}
.ambush-art>span{font:700 clamp(24px,3vw,38px)/1.2 Georgia,serif}.ambush-art small{color:#c7c7ac}
.ambush-choices{display:grid;gap:10px}.ambush-choices button{display:flex;flex-direction:column;align-items:flex-start;text-align:left}.ambush-choices small{font-weight:400}
.chess-board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));width:min(100%,304px);aspect-ratio:1;border:3px solid #423d2a;margin:14px auto 8px;box-shadow:0 3px 0 #baae8e}
.chess-board .chess-cell{position:relative;display:grid;place-items:center;min-width:0;min-height:0;aspect-ratio:1;padding:0;border:0;border-radius:0;box-shadow:none;line-height:1}
.chess-cell.light{background:#eedfb8}.chess-cell.dark{background:#8a9c7a}.chess-cell i{position:absolute;left:2px;top:2px;font:8px/1 Arial;color:#26372d;opacity:.7}
.chess-cell b{font:clamp(21px,2.4vw,32px)/1 Georgia,'Segoe UI Symbol',serif;color:#142922;text-shadow:0 1px #fff8e3}
.chess-cell em{font:18px/1 Arial;color:#713a1c}.chess-board button.chess-target{outline:2px solid #b37330;outline-offset:-3px;cursor:pointer}
.chess-board button.chess-target:hover{background:#f3c668;box-shadow:none}.chess-board button.chess-target:focus-visible{outline:3px solid #1c6fa3;outline-offset:-3px;background:#ffe293}
.passenger-copy .chess-caption{font-size:11px;text-align:center;margin-bottom:8px}.chess-hint{font-size:12px;border-top:1px solid #d2c3a6;padding-top:10px}.chess-hint summary{cursor:pointer;line-height:1.5}.chess-hint p{margin:9px 0 0;font-size:12px}
@media(max-width:760px){.passenger-stop,.passenger-encounter{grid-template-columns:1fr}.passenger-stop-art{min-height:145px;max-height:145px}.passenger-stop-art img{height:245px;align-self:start;object-position:center top}.passenger-copy{padding:16px}.passenger-copy h2{font-size:24px}.passenger-copy p{font-size:12px}.passenger-copy blockquote{font-size:18px;margin:12px 0}.passenger-actions button{min-width:0;padding:10px;font-size:12px}.encounter-illustration{max-height:200px;object-fit:contain}.ambush-art{min-height:120px;padding:18px}.ambush-art>span{font-size:23px}.chess-board{max-width:280px}.chess-cell b{font-size:25px}}

.boss-furious img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}
.combo-toast{position:absolute;z-index:3;top:65px;left:50%;transform:translateX(-50%) rotate(-3deg);padding:12px 20px;background:#f4c951;color:#2c3326;border:3px solid #283e2c;box-shadow:4px 4px #26372f;font:900 clamp(16px,2vw,27px)/1.2 system-ui;white-space:nowrap;pointer-events:none}.combo-toast[hidden]{display:none}
.runner-dashboard [data-runner-combo-bank]{font-size:10px;line-height:1.4;color:#e9c773;max-width:160px}
.tabletop-art{position:relative;min-height:430px;overflow:hidden;background:radial-gradient(ellipse at center,#8b825c,#253c31);display:flex;flex-direction:column;justify-content:flex-end;padding:26px;color:#fff2cf;isolation:isolate}.tabletop-art img{position:absolute;z-index:-1;height:100%;width:100%;object-fit:contain;object-position:center top;opacity:.75}.tabletop-art:after{content:'';position:absolute;z-index:-1;inset:50% 0 0;background:linear-gradient(transparent,#172f25)}.tabletop-art span{font:700 38px Georgia,serif}.tabletop-art small{margin-top:8px}
.tabletop-choices{display:grid;gap:8px;margin:15px 0}.tabletop-choices button{justify-content:flex-start;text-align:left}.domino-table{display:flex;align-items:center;justify-content:center;gap:7px;padding:25px 10px;background:#476450;border-radius:4px;color:#ffeaca}.domino-tile{display:flex;background:#f9eacb;color:#263b30;border:2px solid #222f25;border-radius:5px;box-shadow:2px 3px #243f2a}.domino-tile b{padding:10px;font:700 26px Georgia,serif}.domino-tile b+b{border-left:1px solid #a79d84}.poker-table{padding:14px 10px;background:#476450;color:#fff3d2;border-radius:4px}.poker-table>div{display:flex;justify-content:center;gap:5px;margin:8px 0 14px}.poker-table>small{display:block;text-align:center}.playing-card{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff4df;color:#222f2a;width:44px;min-width:0;height:64px;border-radius:4px;box-shadow:1px 3px #263d2b;line-height:1.1}.playing-card b{font:700 21px Georgia}.playing-card i{font:24px Georgia}.playing-card.red-suit{color:#a2382b}.dnd-table{display:flex;align-items:center;gap:15px;background:#3a5043;color:#fff0c9;padding:20px}.dnd-table>div{display:flex;flex-direction:column;gap:6px}.d20{display:grid;place-content:center;width:70px;height:75px;flex-shrink:0;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:#ab4834;color:#fff4da;font:700 22px Georgia}.chess-cell .checker{width:65%;height:65%;border-radius:50%;box-shadow:0 3px #283323;outline:1px solid #394731}.checker.white{background:#fff3d0;border:4px double #ae9a6a}.checker.black{background:#273c32;border:4px double #92a28b}
@media(max-width:760px){.tabletop-art{min-height:145px;padding:16px}.tabletop-art img{object-position:right top;object-fit:cover;opacity:.45}.tabletop-art span{font-size:27px}.combo-toast{top:55px;font-size:15px;padding:8px 10px;max-width:94%;white-space:normal;text-align:center}.runner-dashboard [data-runner-combo-bank]{font-size:8px}.domino-tile b{font-size:22px;padding:8px}.playing-card{height:53px}.playing-card b{font-size:18px}}

.runner-viewport:has(.passenger-stop,.passenger-encounter,.runner-layby,.runner-overlay,.drain-overlay) .combo-toast{display:none}

/* Cropped generated atlases keep the roadside woman consistent throughout her story. */
.passenger-portrait{display:block;align-self:end;height:350px;aspect-ratio:var(--portrait-ratio);max-width:100%}.passenger-portrait svg{display:block;width:100%;height:100%;overflow:hidden}
.encounter-atlas{width:100%;aspect-ratio:3/2;background-size:200% 300%;background-repeat:no-repeat}
@media(max-width:760px){.passenger-portrait{height:245px;align-self:start}.encounter-atlas{max-width:300px;justify-self:center}}
/* Road dashboard: instrument-sized icons, readable figures and a separate radio strip. */
.runner-dashboard{padding:17px 22px;gap:20px;background:linear-gradient(115deg,#1c302e,#142522);border-bottom:1px solid #ffffff18;grid-template-columns:1fr 1.45fr 1fr 1fr}
.runner-dashboard>div{display:grid;grid-template-columns:38px minmax(0,1fr);column-gap:12px;row-gap:3px;align-content:center;min-width:0;border-right:1px solid #ffffff18;padding-right:12px}
.runner-dashboard>div:last-child{border:0;padding:0}.runner-dashboard .game-icon{grid-row:1/4;width:36px;height:45px;align-self:center}.runner-dashboard small{font-size:11px;line-height:1.4}.runner-dashboard b{font:700 26px/1.15 system-ui;letter-spacing:-.7px}.runner-dashboard [data-runner-combo-bank]{font-size:10px;color:#e3b970;line-height:1.4;min-width:0}.runner-combo-stat b{color:#f5c86c}
.runner-radio{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 22px;background:#263c35;color:#d2dccc;font-size:11px;line-height:1.4}.runner-radio>span:first-child{display:flex;align-items:center;gap:8px}.runner-radio i{width:6px;height:6px;background:#b0cd83;border-radius:50%;flex-shrink:0}.runner-radio>span:last-child{color:#dcc598;text-align:right}.runner-shell{border-radius:8px}.runner-notice{color:#d6e2d8;min-height:40px}.runner-controls{gap:10px}.runner-controls>span{font-size:11px}.runner-controls button{border-radius:3px}
/* Puzzles occupy the game window in normal flow: nothing is clipped by canvas height. */
.runner-viewport:has(.puzzle-overlay){display:grid;min-height:0}.runner-viewport:has(.puzzle-overlay)>canvas{position:absolute;inset:0;height:100%;visibility:hidden}
.puzzle-overlay{position:relative;inset:auto;grid-template-columns:minmax(160px,.7fr) minmax(0,1.3fr);min-height:470px;color:#24382f}
.puzzle-overlay>figure{position:relative;margin:0;min-width:0;overflow:hidden;background:#20352b}.puzzle-overlay>figure img{position:absolute;width:100%;height:100%;object-fit:cover}.puzzle-overlay figcaption{position:absolute;inset:auto 0 0;padding:65px 20px 20px;background:linear-gradient(transparent,#11221ced);color:#f8e4b7;font-size:13px;line-height:1.5}
.puzzle-overlay .drain-game{padding:26px clamp(18px,3vw,38px);gap:12px;min-width:0;background:#fcf4e1;justify-content:flex-start}.drain-game>header{display:flex;justify-content:space-between;gap:10px;align-items:center}.drain-game>header small{white-space:nowrap;font-variant-numeric:tabular-nums}.puzzle-overlay .drain-game h2{font:700 29px/1.2 Georgia,serif}.puzzle-overlay .drain-game p{display:block;font:13px/1.6 system-ui;color:#566252}.puzzle-board{display:flex;flex-direction:column;align-items:center;gap:16px;padding:12px 0;min-width:0}.puzzle-board:empty{display:none}.puzzle-buttons{display:flex;gap:8px;justify-content:center;width:100%}.puzzle-buttons button{padding:10px 13px;min-height:44px;font-size:12px;white-space:nowrap}.puzzle-dial{position:relative;border:9px solid #64746a;border-radius:50%;width:142px;height:142px;display:flex;flex-direction:column;justify-content:center;align-items:center;background:radial-gradient(#30483c,#1b3028);box-shadow:0 0 0 3px #af9b71,inset 0 0 0 2px #718775;color:#ffecba}.puzzle-dial i{position:absolute;inset:7px;transform:rotate(var(--angle));transition:transform .12s}.puzzle-dial i:before{content:'';position:absolute;top:0;left:calc(50% - 3px);width:6px;height:20px;background:#f5c466;border-radius:2px}.puzzle-dial strong{font:700 30px system-ui}.puzzle-dial small{font-size:10px;color:#dedac1}.puzzle-total{display:flex;justify-content:center;gap:45px;width:100%;font-size:12px}.puzzle-total span{display:flex;flex-direction:column;text-align:center;gap:3px}.puzzle-total b{font:700 33px system-ui;color:#99462c}.puzzle-valves{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;width:100%}.puzzle-valves button{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 3px;min-height:65px;background:#f2e5c9;border:1px solid #c2b393;border-radius:6px;font-size:16px}.puzzle-valves button>span{font-size:25px;line-height:1}.puzzle-valves button.selected{background:#36533d;color:#fff1ca;border-color:#36533d}.puzzle-circuit{display:grid;grid-template-columns:repeat(3,66px);gap:8px;padding:14px;background:#20352b;border-radius:9px;border:3px solid #6b7c68}.puzzle-circuit button{background:#33493c;border:1px solid #7d896e;border-radius:4px;height:55px;display:flex;align-items:center;justify-content:center;gap:7px;color:#b5c5ae;padding:8px}.puzzle-circuit i{width:17px;height:17px;border-radius:50%;background:#0d2118;border:1px solid #7b9477}.puzzle-circuit .lit i{background:#efca69;box-shadow:0 0 12px #eac36175}.puzzle-sequence{display:flex;gap:8px;align-items:center;width:100%;justify-content:center}.puzzle-sequence b{padding:9px 7px;min-width:34px;background:#eadabd;border-bottom:2px solid #b9a782;font:700 22px system-ui;text-align:center}.puzzle-sequence span{color:#8c987f;font-size:13px}.puzzle-answers{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;width:100%;max-width:340px}.puzzle-answers button{font:700 20px system-ui;min-height:48px;justify-content:center}.puzzle-feedback{padding:11px 13px;background:#e9e8d7;border-left:3px solid #8b9877;min-height:44px}.puzzle-feedback.solved{background:#e0ead7;border-color:#688653}.puzzle-feedback.failed{background:#f2ddcb;border-color:#a14a30}.drain-game>footer{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:auto}.drain-game>footer button{min-height:44px}.drain-game>footer small{flex:1;min-width:145px;font-size:10px;line-height:1.5}
/* Conversation: compact scene, clear speaker, enough room for real sentences. */
.novel{min-height:0;border:1px solid #ad9c7a;border-radius:5px;box-shadow:0 8px 24px #2b2c2020;overflow:hidden}.novel-background,.novel:after{height:340px}.novel-background{filter:brightness(.78);background-position:center 45%}.novel-header{padding:14px 26px;background:#142720df;gap:16px}.novel-header b{font:700 20px/1.3 Georgia,serif;text-align:center}.novel-header .comic-label{background:none;color:#d5c4a1;border:0;box-shadow:none;padding:0;font:11px system-ui}.novel-cast{padding:22px 7% 0;min-height:252px;gap:24px}.novel .cast{width:126px;opacity:.85;transform:none}.novel .cast.speaking{opacity:1;transform:translateY(-4px)}.novel .cast .portrait{height:210px;width:126px;border:1px solid #af9c73;box-shadow:0 5px 16px #0005;border-radius:2px;mask-image:none}.novel .cast.speaking .portrait{outline:2px solid #d6b574;outline-offset:3px}.novel .cast>span{margin:0;padding:7px 5px;background:#efe1bf;border:0;border-radius:0;box-shadow:none;font:13px Georgia,serif}.novel .dialogue-box{margin:22px 0 0;padding:25px clamp(20px,4vw,54px) 30px;background:#fcf4e1;border:0;border-top:3px solid #b45b3a}.novel .speaker-name{display:inline-block;background:none;padding:0;font:700 11px system-ui;letter-spacing:1px;color:#97492e}.novel .dialogue-box h2{font:400 clamp(20px,1.65vw,26px)/1.5 Georgia,serif;letter-spacing:0;max-width:100%;margin:12px 0 23px;overflow-wrap:anywhere}.novel .choices{gap:9px}.novel .choice{border:1px solid #c8b997;border-radius:3px;box-shadow:none;background:#f4e8cf;min-height:55px}.novel .choice:hover:not(:disabled){background:#ead8b4;border-color:#a28658}.novel .result-effects{margin:0 0 18px}.novel .result-effects span{border:0;padding:6px 10px;background:#e4e7d3}.novel .dialogue-next>span{color:#73775f;font-size:11px}.novel button:focus-visible,.puzzle-overlay button:focus-visible{outline:3px solid #337e8f;outline-offset:3px}
@media(max-width:760px){.runner-dashboard{grid-template-columns:1fr 1fr;padding:14px;gap:15px 12px}.runner-dashboard>div{grid-template-columns:27px 1fr;column-gap:9px;padding-right:0;border:0}.runner-dashboard .game-icon{width:27px;height:35px}.runner-dashboard b{font-size:23px}.runner-dashboard small{font-size:10px}.runner-dashboard [data-runner-combo-bank]{font-size:9px}.runner-radio{padding:9px 13px;font-size:10px;gap:8px}.runner-radio>span:last-child{max-width:95px}.puzzle-overlay{grid-template-columns:1fr;min-height:0}.puzzle-overlay>figure{height:82px}.puzzle-overlay figcaption{padding:15px;background:linear-gradient(90deg,#142a20ed,transparent)}.puzzle-overlay .drain-game{padding:20px 16px;gap:10px}.puzzle-overlay .drain-game h2{font-size:26px}.puzzle-overlay .drain-game p{font-size:12px;line-height:1.55}.puzzle-valves{gap:5px}.puzzle-buttons{gap:5px}.puzzle-buttons button{padding:10px 8px;font-size:11px}.puzzle-sequence{gap:5px}.puzzle-sequence b{font-size:18px;min-width:29px;padding:8px 4px}.novel-header{padding:13px 17px}.novel-header b{font-size:17px;max-width:none;flex:1}.novel-header .comic-label{display:none}.novel-cast{padding:20px 22px 0;min-height:206px}.novel .cast{width:100px}.novel .cast .portrait{width:100px;height:168px}.novel .cast>span{font-size:12px}.novel .dialogue-box{padding:21px 18px;margin-top:20px}.novel .dialogue-box h2{font-size:20px;line-height:1.45}.novel-background,.novel:after{height:300px}.novel .choice{font-size:12px}.novel .choice em{margin-left:auto}.puzzle-overlay button{touch-action:manipulation}}
@media(prefers-reduced-motion:reduce){.puzzle-dial i,.novel .cast{transition:none}}
