@import url('assets/fonts.css');
:root{color-scheme:dark;--ink:#183b32;--paper:#f3ead7;--sand:#e7b77b;--muted:#b4c5b7;--line:rgba(241,235,216,.17);font-family:Arial,Helvetica,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:#17392f;color:var(--paper);min-height:100svh;background-image:radial-gradient(ellipse at 50% 20%,#2e5141 0,transparent 70%)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid #f2bd77;outline-offset:4px}button{touch-action:manipulation}button,[role=button]{user-select:none}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.page{max-width:1480px;margin:auto;padding:0 42px 26px}.masthead{height:90px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;letter-spacing:3.5px;font-size:14px;font-weight:700}.brand small{display:block;font-size:8px;letter-spacing:3px;margin-top:5px;font-weight:400;color:var(--muted)}.preview-tools{display:flex;align-items:center;gap:14px}.text-button,.icon-button{border:0;background:transparent;color:var(--paper);font-size:12px}.text-button{padding:12px 0;display:flex;align-items:center;justify-content:center;gap:8px}.text-button.dark{color:var(--ink);margin:14px auto 0;font-weight:600}.icon-button{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;font-size:18px}.chapter-label{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:2px;color:#d2decf;padding:3px 4px 16px;max-width:1120px;margin:auto}.chapter-label i{margin:0 12px;font-style:normal;opacity:.4}.chapter-label>span:first-child{color:var(--sand);font-weight:700}.game-shell{position:relative;max-width:1120px;margin:auto;border:12px solid #10271f;border-radius:35px;background:#10271f;box-shadow:0 22px 70px #0a1d1a55,0 0 0 1px #7f91743a;overflow:hidden;transition:max-width .35s,border-radius .35s}.game-stage{position:relative;width:100%;aspect-ratio:var(--game-ratio,2/1);overflow:hidden;background:#a4b9a0;border-radius:23px 23px 0 0}body[data-mode=menu] .game-stage{min-height:580px;border-radius:23px}canvas{width:100%;height:100%;display:block;touch-action:none;object-fit:fill}.vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 80px #18352b20}.menu-screen{position:absolute;inset:0;display:flex;align-items:center;background:linear-gradient(90deg,#0d2926ed 0%,#173a30c9 42%,#193b2c22 76%,transparent 100%)}.menu-copy{width:720px;padding:36px 54px 32px}.eyebrow{font-size:10px;letter-spacing:2.7px;font-weight:700;color:var(--sand);margin:0 0 17px}h1,h2,p{margin-top:0}h1,h2,blockquote{font-family:Georgia,'Times New Roman',serif;font-weight:400}h1{font-size:clamp(56px,6.8vw,88px);letter-spacing:-4px;line-height:1.05;margin-bottom:16px}.title-dot{color:var(--sand)}.menu-copy h2{font-size:27px;letter-spacing:-.6px;margin-bottom:14px}.story{font-size:14px;line-height:1.75;color:#d3ddd0;margin-bottom:26px}.choose-label{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:#b8cbbb;margin-bottom:12px}.character-choices{display:flex;gap:12px}.character-choice{display:flex;align-items:center;position:relative;gap:9px;min-width:0;width:260px;padding:12px 16px 12px 8px;border-radius:10px;text-align:left;background:#13392c86;border:1px solid #d8e2c64d;color:var(--paper);transition:background .2s,border-color .2s,transform .2s}.character-choice:hover{background:#2d503cd9;transform:translateY(-2px)}.character-choice.selected{border-color:#dfb477;background:#f2e6c916;box-shadow:inset 0 0 0 1px #e4bb7b5c}.portrait{width:55px;height:64px;flex-shrink:0;overflow:hidden;display:block}.portrait svg{width:100%;height:100%}.character-copy{display:flex;flex-direction:column;gap:4px}.character-copy strong{font-family:Georgia,serif;font-size:21px;font-weight:400}.character-copy span{font-size:10px;color:#d3ddcc}.character-copy small{font-size:8px;color:#b3c7b5;white-space:nowrap}.choice-check{position:absolute;right:9px;top:9px;font-size:11px;color:var(--sand);opacity:0}.selected .choice-check{opacity:1}.start-actions{display:flex;gap:22px;align-items:center;margin-top:23px}.primary-button{display:inline-flex;justify-content:center;align-items:center;gap:30px;min-height:48px;border:1px solid #edc387;background:#e9b77a;color:#17382e;padding:13px 25px;border-radius:6px;font-size:12px;font-weight:700;letter-spacing:.2px;box-shadow:0 3px 0 #936c4438;transition:background .2s,transform .2s}.primary-button:hover{background:#f7c992;transform:translateY(-1px)}.primary-button:active{transform:translateY(1px)}.primary-button span{font-size:20px;font-weight:400}.light-button{background:transparent;border:0;border-bottom:1px solid #ffffff66;padding:9px 0;color:var(--paper);font-size:12px}.menu-footnote{font-size:9px;color:#b3c7b3;margin:20px 0 0;letter-spacing:.3px}.menu-footnote>span{color:var(--sand);margin-right:5px}.scene-caption{position:absolute;right:30px;bottom:28px;font-size:8px;letter-spacing:2px;color:#fff5d9;text-shadow:0 1px 4px #17382e}.scene-caption span{display:block;letter-spacing:.4px;margin-top:5px;font-size:10px;opacity:.8}.hud{position:absolute;inset:20px 22px auto;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;pointer-events:none}.character-hud{display:flex;align-items:center;gap:9px;min-width:130px;color:var(--paper);background:#15392ee6;border:1px solid #e8e5c52b;padding:5px 12px 5px 5px;border-radius:40px}.character-hud>span{width:35px;height:35px;overflow:hidden;background:#486b50;border-radius:50%}.character-hud svg{width:35px;height:44px}.character-hud strong{font-size:11px;display:block;margin-bottom:3px}.character-hud #health{font-size:10px;letter-spacing:3px;color:#efbb7a}.objective{text-align:center;background:#f4e9d8ed;border-radius:6px;padding:11px 20px;color:var(--ink);box-shadow:0 2px 10px #16352e0f;max-width:360px}.objective span{display:block;font-size:7px;letter-spacing:1.8px;margin-bottom:5px;color:#6a7059}.objective strong{display:block;font-size:11px;font-weight:600}.round-button{pointer-events:auto;border:1px solid #fff4d357;background:#15392ee6;color:var(--paper);width:42px;height:42px;border-radius:50%;font-size:16px}.control-deck{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 22px;background:#10271f;min-height:80px}.movement-controls,.action-controls{display:flex;gap:9px;align-items:center}.control-button{width:52px;height:49px;border:1px solid #9daf8c4d;background:#244236;color:#f3ead7;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:25px;touch-action:none;user-select:none;transition:background .1s,transform .1s}.control-button[data-held=true]{background:#4e7155;transform:translateY(2px);border-color:#ddbc80}.control-button small{font-size:7px;letter-spacing:1.3px;line-height:1.5}.control-button.action{background:#ddb17c;color:#1c3b30;border-color:#e3b879;width:65px}.control-button.action[data-held=true]{background:#efc997}.control-hint{margin:0;font-size:9px;color:#b9cab7;display:flex;align-items:center;gap:5px}kbd{font-family:Arial,Helvetica,sans-serif;font-size:9px;border:1px solid #a9b69c44;border-radius:4px;padding:3px 5px;color:inherit;min-width:20px;text-align:center}.control-hint>span{margin:0 4px;opacity:.5}.below-game{display:flex;justify-content:space-between;align-items:center;max-width:1120px;margin:18px auto 0;font-size:9px;color:#afc2ae;letter-spacing:.3px}.status-dot{display:inline-block;width:5px;height:5px;background:#a3c99b;border-radius:50%;margin:0 7px 1px 0}.orientation-note{font-size:10px;text-align:center;color:#b0c5b0;margin:15px 0 0}.interact-prompt{position:absolute;bottom:24%;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;background:#15372fe8;border:1px solid #e6be7c85;color:#fff1d4;border-radius:6px;padding:10px 16px;font-size:11px;white-space:nowrap;pointer-events:none}.interact-prompt kbd{color:#ebbf7f}.toast{position:absolute;bottom:17px;left:50%;transform:translateX(-50%);text-align:center;padding:11px 20px;font-size:12px;line-height:1.4;background:#173b30f0;color:#ffefd7;border:1px solid #f2e2bd40;border-radius:7px;max-width:85%;width:max-content;pointer-events:none;animation:toast-in .2s ease-out}.bridge-banner{position:absolute;top:30%;left:50%;transform:translateX(-50%);width:max-content;max-width:90%;text-align:center;background:#163c32e8;padding:24px 36px;border:1px solid #e9bc7e7a;border-radius:8px;pointer-events:none;animation:toast-in .4s ease-out}.bridge-banner span{font-size:9px;letter-spacing:3px;color:var(--sand);display:block;margin-bottom:10px}.bridge-banner strong{font-family:Georgia,serif;font-size:24px;font-weight:400}.center-overlay{position:absolute;inset:0;background:#0e2a249c;display:flex;justify-content:center;align-items:center;padding:24px;backdrop-filter:blur(7px)}.paper-dialog{background:var(--paper);color:var(--ink);padding:36px 42px;text-align:center;max-width:480px;width:100%;border-radius:9px;box-shadow:0 20px 50px #112b2b4f}.paper-dialog .eyebrow,.help-dialog .eyebrow{color:#85663f;font-size:8px}.paper-dialog h2{font-size:37px;letter-spacing:-1px;line-height:1.1;margin-bottom:15px}.paper-dialog p:not(.eyebrow){font-size:12px;line-height:1.65;color:#586754}.pause-dialog .primary-button{margin-top:10px}.journal-emblem{font-size:33px;display:block;line-height:1;margin-bottom:16px;color:#997549}.complete-dialog{max-width:510px;padding:25px 40px}.complete-dialog h2{margin-bottom:12px}.complete-dialog blockquote{font-size:18px;margin:16px 0 20px;line-height:1.5;color:#2d5944}.chapter-results{display:flex;justify-content:center;gap:13px;font-size:8px;border-block:1px solid #a9af963e;padding:12px 0;margin-bottom:20px}.chapter-results b{color:#39694c;margin-left:4px}.complete-dialog .end-note{font-size:9px!important;margin:16px 0 0}dialog{border:0;color:var(--ink);background:var(--paper);border-radius:12px;box-shadow:0 25px 90px #09251c80;padding:0;max-width:calc(100vw - 32px);max-height:calc(100svh - 32px)}dialog::backdrop{background:#09251cc9;backdrop-filter:blur(5px)}.dialog-close{position:absolute;top:12px;right:12px;z-index:2;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid #52665044;border-radius:50%;color:var(--ink);background:#f4ebd9;font-size:24px;line-height:1}.help-dialog{padding:38px;max-width:470px}.help-dialog h2{font-size:38px;letter-spacing:-1px;margin-bottom:18px}.help-dialog p:not(.eyebrow){font-size:12px;line-height:1.7;color:#5d6d58}.help-dialog dl{display:grid;grid-template-columns:115px 1fr;gap:12px;font-size:11px;border-block:1px solid #42604125;padding:19px 0;margin:20px 0}.help-dialog dt{font-weight:700}.help-dialog dd{margin:0;color:#54694f}.help-dialog .primary-button{width:100%;margin-top:12px}.puzzle-dialog{width:min(820px,calc(100vw - 32px));overflow:auto}.game-shell:fullscreen{max-width:none;width:100%;height:100%;border:0;border-radius:0;display:flex;flex-direction:column;justify-content:center;background:#10271f}.game-shell:fullscreen .game-stage{max-height:calc(100svh - 80px);aspect-ratio:var(--game-ratio,2/1);width:auto;height:calc(100svh - 80px);max-width:100vw;border-radius:0;align-self:center}.game-shell:fullscreen .control-deck{width:100%;max-width:1300px;align-self:center}body[data-preview=wide] .game-shell,body[data-preview=wide] .chapter-label,body[data-preview=wide] .below-game{max-width:1360px}body[data-preview=wide] .game-shell{border-width:1px;border-radius:14px}body[data-preview=wide] .game-stage{border-radius:13px 13px 0 0}@keyframes toast-in{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
.puzzle-dialog #puzzle-container{padding:36px 40px 28px}
@media(max-width:520px){.puzzle-dialog #puzzle-container{padding:31px 14px 20px}.puzzle-dialog{max-width:calc(100vw - 20px);width:calc(100vw - 20px)}}
@media(min-width:1600px){.page{padding-top:20px}.masthead{height:100px}body[data-mode=menu] .game-stage{min-height:620px}}
@media(max-width:1000px){.page{padding-inline:24px}.masthead{height:74px}.menu-copy{padding:30px 36px;width:650px}body[data-mode=menu] .game-stage{min-height:555px}.character-choice{width:240px}.scene-caption{display:none}.control-hint{font-size:8px}.control-hint>span{margin:0}}
@media(max-width:700px){.page{padding-inline:16px}.menu-copy{padding:26px;width:100%}.game-shell{border-width:8px;border-radius:26px}.game-stage{border-radius:18px 18px 0 0}.character-choice{padding-left:5px;padding-right:10px;gap:5px}.portrait{width:45px}.character-copy strong{font-size:19px}.character-copy small{display:none}.menu-copy h1{font-size:68px}.control-hint{display:none}.hud{inset:14px 13px auto;gap:8px}.character-hud{min-width:93px;padding-right:8px}.character-hud>span{width:29px;height:29px}.character-hud svg{width:29px;height:37px}.character-hud strong{font-size:9px}.objective{padding:9px 12px;max-width:230px}.objective strong{font-size:10px}.objective span{font-size:6px}.round-button{width:36px;height:36px}.control-deck{padding:9px 14px;min-height:76px}.below-game{font-size:8px}.below-game>span:last-child{display:none}.chapter-label{font-size:8px;letter-spacing:1.2px}.chapter-label i{margin:0 5px}.paper-dialog{padding:25px}.paper-dialog h2{font-size:31px}.complete-dialog blockquote{font-size:16px}.chapter-results{gap:8px}.complete-dialog .primary-button{font-size:10px;gap:10px}}
@media(max-width:599px) and (orientation:portrait){.masthead{height:68px}.brand{font-size:12px;gap:9px;letter-spacing:2.5px}.brand img{width:26px;height:26px}.brand small{font-size:7px;letter-spacing:2px}.preview-tools{gap:8px}#view-btn{font-size:0;gap:0;padding:4px}#view-btn span{font-size:22px}.icon-button{width:30px;height:30px;font-size:16px}.chapter-label{padding-bottom:13px}.game-shell{border-radius:25px}body[data-mode=menu] .game-stage{min-height:630px}.menu-screen{background:linear-gradient(180deg,#15392b69,#12352ee8 37%,#11332eed)}.menu-copy{align-self:flex-end;padding:36px 22px 27px}.menu-copy .eyebrow{font-size:8px;margin-bottom:12px}.menu-copy h1{font-size:55px;letter-spacing:-2.8px;margin-bottom:10px}.menu-copy h2{font-size:24px;margin-bottom:12px}.story{font-size:12px;line-height:1.6;margin-bottom:23px}.story br{display:none}.choose-label{font-size:8px}.character-choices{gap:8px}.character-choice{flex:1;flex-direction:column;align-items:flex-start;padding:10px 12px;gap:4px;min-height:137px}.portrait{width:42px;height:50px}.character-copy{gap:5px}.character-copy strong{font-size:20px}.character-copy span{font-size:8px}.choice-check{top:10px}.start-actions{margin-top:18px;gap:12px}.primary-button{min-height:47px;font-size:11px;padding:12px 20px;gap:18px}.menu-footnote{font-size:8px;line-height:1.5;margin-top:16px}.hud{inset:12px 10px auto;gap:5px}.objective{max-width:145px;padding:8px;min-height:41px}.objective strong{font-size:8px;line-height:1.4}.objective span{font-size:5px;margin-bottom:3px;letter-spacing:1px}.character-hud{min-width:86px}.round-button{width:33px;height:33px}.toast{font-size:10px;max-width:88%;padding:9px 12px;bottom:11px}.interact-prompt{font-size:10px;padding:9px 13px;bottom:25%}.bridge-banner{padding:18px 22px}.bridge-banner strong{font-size:20px}.center-overlay{padding:13px}.paper-dialog{padding:24px 20px}.paper-dialog .eyebrow{font-size:7px;letter-spacing:1.5px}.paper-dialog h2{font-size:29px}.paper-dialog p:not(.eyebrow){font-size:10px;line-height:1.55}.complete-dialog blockquote{font-size:15px;margin:10px 0 14px}.complete-dialog .journal-emblem{font-size:25px;margin-bottom:9px}.chapter-results{font-size:6px;gap:6px;margin-bottom:15px;padding:9px 0}.complete-dialog .end-note{font-size:8px!important;margin-top:11px}.complete-dialog .primary-button{padding:10px 12px;font-size:9px}.help-dialog{padding:32px 25px}.help-dialog dl{grid-template-columns:95px 1fr;font-size:10px}.below-game{margin-top:13px}}
@media(orientation:landscape) and (max-height:600px){.page{padding:0 12px 12px}.masthead{height:43px}.brand{font-size:10px;gap:7px}.brand img{width:22px;height:22px}.brand small{font-size:6px;margin-top:3px}.preview-tools{gap:9px}.icon-button{width:27px;height:27px;font-size:14px}.chapter-label{display:none}.game-shell{max-width:calc((100svh - 124px)*2 + 16px);border-width:6px;border-radius:22px}.game-stage{border-radius:16px 16px 0 0}body[data-mode=menu] .game-stage{min-height:0;height:calc(100svh - 65px);aspect-ratio:2.2/1}.menu-copy{padding:20px 27px;width:620px}.menu-copy .eyebrow{font-size:7px;margin-bottom:7px}.menu-copy h1{font-size:46px;letter-spacing:-2px;margin-bottom:5px}.menu-copy h2{font-size:18px;margin-bottom:6px}.story{font-size:10px;line-height:1.4;margin-bottom:10px}.story br{display:none}.choose-label{font-size:7px;margin-bottom:6px}.character-choice{width:190px;padding:6px 11px 6px 5px}.portrait{width:34px;height:42px}.character-copy strong{font-size:16px}.character-copy span{font-size:8px}.start-actions{margin-top:10px}.primary-button{min-height:36px;padding:8px 16px;font-size:10px}.menu-footnote{display:none}.control-deck{min-height:60px;padding:6px 14px}.control-button{height:43px;width:49px}.control-button.action{width:62px}.below-game{margin-top:7px;font-size:7px}.hud{inset:10px 13px auto}.objective{padding:7px 13px}.objective strong{font-size:9px}.objective span{font-size:6px}.round-button{width:33px;height:33px}.character-hud{min-width:110px}.center-overlay{padding:10px}.paper-dialog{padding:16px 26px}.paper-dialog .eyebrow{font-size:7px;margin-bottom:9px}.paper-dialog h2{font-size:27px;margin-bottom:9px}.paper-dialog p:not(.eyebrow){font-size:10px;line-height:1.4}.journal-emblem{display:none}.complete-dialog blockquote{font-size:15px;margin:9px 0}.chapter-results{padding:8px 0;margin-bottom:10px}.complete-dialog .end-note{margin:8px 0 0}.complete-dialog{max-width:520px}.toast{font-size:10px;padding:8px 14px;bottom:10px}.interact-prompt{bottom:17%;font-size:10px;padding:8px 13px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* Keep auxiliary controls as easy to tap as the adventure controls. */
.preview-tools .icon-button{width:44px;height:44px}.preview-tools #view-btn{min-width:44px;min-height:44px}.round-button{width:44px;height:44px;flex-shrink:0}
.dialog-close{width:44px;height:44px}.puzzle-dialog .bridge-puzzle-heading{padding-right:44px}.puzzle-dialog .bridge-puzzle-progress{font-size:18px}.puzzle-dialog .bridge-puzzle-progress>span{font-size:10px}
body[data-mode=menu] .game-stage>canvas{object-fit:cover;object-position:65% center}
.game-shell:fullscreen .game-stage{width:var(--fullscreen-width,100%);height:var(--fullscreen-height,auto);min-height:0;max-height:none;max-width:none;flex-shrink:0}

/* Expedition edition: five readable family profiles and three connected trails. */
body[data-mode=menu] .game-stage{min-height:710px}.menu-copy{width:840px;padding-top:30px;padding-bottom:30px}.menu-copy h1{font-size:78px;margin-bottom:16px}.menu-copy h2{font-size:28px;margin-bottom:11px}.menu-copy .story{max-width:470px;margin-bottom:20px}.menu-copy .eyebrow{margin-bottom:10px}.character-choices{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.character-choice{width:auto;min-width:0;flex-direction:column;align-items:flex-start;gap:5px;padding:9px 11px 12px;border-radius:9px}.character-choice .portrait{width:66px;height:82px;overflow:visible;align-self:center}.character-copy{gap:4px}.character-copy strong{font-size:20px}.character-copy span{font-size:8px;white-space:nowrap}.character-copy small{display:block;font-size:8px;white-space:nowrap}.explorer-detail{font-size:11px;line-height:1.5;color:#e6c391;min-height:17px;margin:13px 0 0}.start-actions{margin-top:18px}.menu-footnote{font-size:8px;margin-top:15px}.chapter-choices{display:flex;gap:8px;margin:0 0 23px;max-width:700px}.chapter-choice{display:flex;gap:7px;align-items:center;min-height:44px;padding:8px 10px;border:1px solid #d3dcb63a;border-radius:5px;background:#12372d72;color:#d2decd;text-align:left;font-size:9px;line-height:1.35;flex:1}.chapter-choice.active{background:#e7bc781a;border-color:#ddb77b;color:#fff0d3}.chapter-choice:disabled{opacity:.48}.chapter-mark{font-size:10px;letter-spacing:1px;color:var(--sand);flex-shrink:0}.chapter-choice.completed .chapter-mark{color:#a8d6a2}.character-hud>span{width:40px;height:40px}.character-hud svg{width:40px;height:50px}.character-hud{padding:4px 12px 4px 4px}.control-button>span svg{display:block;width:25px;height:25px}.round-button svg{display:block;width:17px;height:17px;margin:auto}.preview-tools .icon-button svg{display:block;width:18px;height:18px;margin:auto}.bridge-hint{border-top:1px solid #aeb59966;margin:0 40px 25px;padding-top:13px;display:flex;gap:16px;align-items:flex-start}.bridge-hint button{min-width:108px;min-height:44px;border:1px solid #a9aa91;border-radius:5px;background:transparent;color:#52694f;font-size:11px}.bridge-hint p{font-size:11px;line-height:1.5;color:#5c7057;margin:0}.complete-dialog .text-button{font-size:10px;margin-top:10px}.complete-dialog .end-note{margin-top:10px}.scene-caption{right:27px}.character-hud #health{font-size:10px}
@media(max-width:1000px){.menu-copy{width:730px;padding-inline:35px}.menu-copy h1{font-size:68px}.character-choice .portrait{width:58px;height:73px}.character-copy strong{font-size:19px}.character-copy small{font-size:7px}.character-copy span{font-size:7px}.chapter-choice{font-size:8px;padding-inline:8px}}
@media(max-width:700px){.menu-copy{width:100%;padding-inline:25px}.character-choice{padding-inline:7px}.character-choice .portrait{width:50px;height:64px}.character-copy strong{font-size:17px}.chapter-choices{gap:5px}.chapter-choice{font-size:7px;gap:5px;padding-inline:6px}.character-copy small{font-size:7px}.character-copy span{font-size:6px}}
@media(max-width:599px) and (orientation:portrait){body[data-mode=menu] .game-stage{min-height:815px}.menu-copy{padding:28px 20px;align-self:flex-end}.menu-copy h1{font-size:51px;letter-spacing:-2px;margin-bottom:17px}.menu-copy h2{font-size:24px}.menu-copy .story{font-size:11px;line-height:1.6;margin-bottom:18px}.chapter-choices{margin-bottom:19px}.chapter-choice{font-size:7px;min-height:46px;padding:7px 5px;gap:4px}.chapter-mark{font-size:8px}.character-choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.character-choice{min-height:128px;padding:7px 9px 10px}.character-choice .portrait{width:56px;height:70px;align-self:center}.character-copy strong{font-size:18px}.character-copy span{font-size:7px}.character-copy small{display:block;font-size:7px;color:#bfcfbb}.choose-label{font-size:8px;margin-bottom:11px}.explorer-detail{font-size:10px;min-height:30px;margin-top:12px}.start-actions{margin-top:10px}.menu-footnote{font-size:7px;margin-top:14px;line-height:1.5}.character-hud>span{width:31px;height:31px}.character-hud svg{width:31px;height:39px}.character-hud{padding-right:7px}.character-hud #health{font-size:8px;letter-spacing:2px}.bridge-hint{margin:0 14px 20px;gap:12px;flex-direction:column}.bridge-hint button{min-height:44px;font-size:10px}.bridge-hint p{font-size:10px}.complete-dialog .text-button{font-size:9px;margin-top:5px}.complete-dialog .end-note{font-size:7px!important;margin-top:7px}}
@media(orientation:landscape) and (max-height:600px){body[data-mode=menu] .game-stage{min-height:0;height:auto;aspect-ratio:2/1}.menu-screen{position:relative;min-height:440px;margin-top:-100%;background:linear-gradient(90deg,#12332feb,#183a30ce 66%,#173a2e44)}body[data-mode=menu] .game-stage{height:calc(100svh - 65px);overflow:auto;aspect-ratio:auto}body[data-mode=menu] .game-stage>canvas{position:absolute;inset:0;object-fit:cover}body[data-mode=menu] .menu-screen{margin-top:0;min-height:480px}.menu-copy{padding:20px 26px;width:100%}.menu-copy h1{font-size:43px;margin-bottom:10px}.menu-copy h2{font-size:21px;margin-bottom:7px}.menu-copy .eyebrow{font-size:7px;margin-bottom:8px}.menu-copy .story{font-size:10px;line-height:1.4;margin-bottom:13px;max-width:520px}.chapter-choices{margin-bottom:14px;max-width:600px}.chapter-choice{font-size:8px;padding:7px 9px;min-height:44px}.character-choice{min-height:108px;padding:7px 9px}.character-choice .portrait{width:45px;height:55px}.character-copy strong{font-size:17px}.character-copy span,.character-copy small{font-size:7px}.choose-label{margin-bottom:8px;font-size:7px}.explorer-detail{font-size:9px;min-height:12px;margin-top:9px}.start-actions{margin-top:10px}.start-actions .primary-button{min-height:44px}.menu-footnote{display:none}.game-shell:fullscreen .menu-screen{min-height:480px}.game-shell:fullscreen[data-mode=menu]{overflow:auto}.bridge-hint{margin-bottom:15px}.complete-dialog .text-button{font-size:9px;margin-top:5px;padding:4px}.complete-dialog .end-note{font-size:8px!important;margin-top:7px}}
@media(max-width:599px) and (orientation:portrait){.preview-tools{gap:3px}.preview-tools .icon-button{width:44px;height:44px}#view-btn{width:44px}.round-button{width:44px;height:44px}}
@media(orientation:landscape) and (max-height:600px){.masthead{height:48px}.preview-tools .icon-button{width:44px;height:44px}.game-shell{max-width:calc((100svh - 129px)*2 + 16px)}body[data-mode=menu] .game-stage{height:calc(100svh - 79px)}.below-game{margin-top:5px}.page{padding-bottom:4px}.round-button{width:44px;height:44px}}
@media(max-width:350px) and (orientation:portrait){.menu-copy h1{font-size:42px;letter-spacing:-1.8px}.character-copy strong{font-size:17px}.character-copy span{font-size:6px}.chapter-choice{font-size:6px}}
body[data-mode=menu] .game-shell:fullscreen .game-stage{overflow:auto}
body[data-mode=menu] .game-shell:fullscreen .game-stage>canvas{position:absolute;inset:0;object-fit:cover}
body[data-mode=menu] .game-shell:fullscreen .menu-screen{position:relative;inset:auto;min-height:max(100%,480px)}
.objective .combat-status{margin:6px 0 0;font-size:8px;letter-spacing:.3px;color:#766542;text-transform:none}.action-controls{gap:7px}.action-controls .control-button{width:48px;min-height:44px}.action-controls .control-button.action{width:60px}.dodge-button{background:#35564a;border-color:#8ca88a66}.dodge-button[data-ready=false]{opacity:.65;background:#263f36}.dodge-button[data-held=true]{background:#5c7d61}.control-hint{font-size:8px;gap:4px}.control-hint>span{margin-inline:2px}
@media(max-width:599px) and (orientation:portrait){.objective .combat-status{font-size:6px;line-height:1.25;margin-top:5px}.objective{min-height:50px}.control-deck{padding-inline:11px;gap:6px}.control-button small{font-size:6px;letter-spacing:.8px}}
@media(max-width:350px) and (orientation:portrait){.control-deck{padding:8px;gap:6px}.movement-controls{gap:6px}.movement-controls .control-button{width:44px}.action-controls{gap:5px}.action-controls .control-button{width:44px}.action-controls .control-button.action{width:52px}.character-hud{min-width:77px}.objective{max-width:113px}.objective strong{font-size:7px}.objective .combat-status{font-size:5px}}
@media(orientation:landscape) and (max-height:600px){.control-hint{display:none}.objective .combat-status{font-size:6px;margin-top:4px}.objective{padding-block:7px}}
.control-button{min-height:44px}
/* Quiet, reachable sound controls alongside the existing preview tools. */
.audio-dialog{width:min(420px,calc(100vw - 28px));max-height:calc(100svh - 28px);overflow:auto;padding:30px;color:var(--ink);background:var(--paper);border:0;border-radius:14px;box-shadow:0 20px 80px #061d1b66}.audio-dialog::backdrop{background:#071e1bb8;backdrop-filter:blur(5px)}.audio-dialog .eyebrow{color:#8d642f;margin-bottom:12px}.audio-dialog h2{font-size:29px;line-height:1.15;max-width:260px;margin-bottom:13px;padding-right:20px}.audio-dialog>p:not(.eyebrow){font-size:12px;line-height:1.6;color:#526a59}.audio-dialog .dialog-close{position:absolute;right:8px;top:8px}.audio-setting{display:block;margin:24px 0 16px}.audio-setting>span{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700}.audio-setting output{font-size:11px;font-weight:400;color:#6d735b}.audio-setting input{display:block;width:100%;min-height:44px;margin:3px 0;accent-color:#41654a;cursor:pointer}.audio-mute{display:flex;align-items:center;gap:10px;min-height:44px;font-size:12px;cursor:pointer}.audio-mute input{width:20px;height:20px;margin:0;accent-color:#41654a}.audio-dialog #audio-status{font-size:10px;min-height:32px;margin:16px 0}.audio-dialog .primary-button{width:100%;min-height:44px}#sound-btn[data-muted=true]{color:#c0c8b9}#sound-btn svg{width:18px;height:18px;display:block;margin:auto}
@media(max-width:350px) and (orientation:portrait){.preview-tools{gap:1px}.brand{gap:8px;font-size:11px;letter-spacing:2px}.brand small{font-size:6px;letter-spacing:2px}.brand img{width:26px;height:26px}.audio-dialog{padding:25px 22px}.audio-dialog h2{font-size:27px}}
@media(orientation:landscape) and (max-height:450px){.audio-dialog{padding:20px 26px}.audio-dialog h2{font-size:24px;margin-bottom:8px}.audio-setting{margin:10px 0 5px}.audio-dialog #audio-status{margin:7px 0;min-height:0}}
.pause-links{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:6px}.pause-links .text-button.dark{margin:0;min-height:44px;font-size:10px}
/* Solo remains a complete adventure; camp play has its own entrance. */
.play-modes{max-width:1120px;margin:0 auto 12px;display:flex;align-items:center;flex-wrap:wrap;gap:4px 22px}.play-modes a{font-size:11px;min-height:44px;display:flex;align-items:center;border-bottom:1px solid transparent}.play-modes a[aria-current]{color:var(--sand);border-color:#e7b77b66}body:not([data-mode=menu]) .play-modes{display:none}
