:root{--ink:#163f3b;--paper:#fff7e5;--cream:#f1e6cb;--amber:#eebb68;--green:#267165;--coral:#bd5a45;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);font-family:'Trebuchet MS',system-ui,sans-serif;color:var(--ink);background:#163f3b}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button{min-height:46px;border:1.5px solid var(--ink);border-radius:13px;padding:11px 17px;background:var(--paper);color:var(--ink);font-weight:700;cursor:pointer;touch-action:manipulation;transition:background .15s,transform .15s}button:hover{background:#f2e3bc}button:active{transform:translateY(2px)}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #de774f;outline-offset:4px}[hidden]{display:none!important}#app{position:relative;width:100%;height:100vh;height:100dvh;overflow:hidden;isolation:isolate}#garden{width:100%;height:100%;display:block;touch-action:none;outline:none}.hud{position:absolute;inset:calc(var(--safe-top) + 12px) 16px auto;display:flex;gap:12px;align-items:center;pointer-events:none;z-index:4;color:var(--paper)}.hud>*{pointer-events:auto}.back,.icon{width:44px;height:44px;min-height:44px;border:1px solid #fff7e53b;border-radius:50%;background:#163f3bcf;color:var(--paper);display:grid;place-items:center;font:24px/1 system-ui;text-decoration:none;backdrop-filter:blur(10px)}.heading{flex:1;min-width:0;text-shadow:0 1px 3px #163f3b}#eyebrow{display:block;font-size:9px;letter-spacing:1.7px;margin-bottom:4px;font-weight:bold}.heading strong{font:italic 22px/1 Georgia,serif}.sheet{position:absolute;z-index:8;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,calc(100% - 32px));max-height:calc(100% - 94px - var(--safe-top) - var(--safe-bottom));overflow:auto;background:var(--paper);border:1px solid #e7dabe;border-radius:26px;padding:24px;box-shadow:0 18px 80px #062d3360;scrollbar-width:thin;overscroll-behavior:contain}.home{top:calc(50% + 22px);max-height:calc(100% - 88px - var(--safe-top) - var(--safe-bottom))}.home-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 15px}.label{font-size:9px;letter-spacing:1.8px;font-weight:bold;line-height:1.5}.new-tag{font-size:8px;letter-spacing:1px;white-space:nowrap;border:1px solid #b68a55;border-radius:4px;padding:4px 6px;color:#926338}.hero-art{width:100%;height:auto;display:block;border-radius:16px}.title-row{display:flex;justify-content:space-between;align-items:center;margin-top:17px}h1{font:700 clamp(44px,8vw,66px)/1 Georgia,serif;letter-spacing:-3px;margin:0}h1 em{font-weight:400;color:var(--coral)}.tagline{font-size:13px;margin:8px 0 0}.player-count{text-align:center;font-size:21px;line-height:1.1;border-left:1px solid #d2c9b5;padding-left:16px}.player-count small{font-size:8px;letter-spacing:1.4px}.intro{font-size:14px;line-height:1.6;max-width:390px;margin:17px 0}.course-picker{border-top:1px solid #dacfba;padding-top:15px;display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center}.course-picker label{font-size:11px;font-weight:bold}.course-picker select{border:0;background:transparent;font-size:12px;color:var(--ink);padding:6px 1px;max-width:220px}.course-picker span{grid-column:1/-1;font-size:11px;color:#547568}.home-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.home-actions button{display:flex;justify-content:space-between;align-items:center}.primary{background:var(--green);border-color:var(--green);color:var(--paper)}.primary:hover{background:#1c5b51}.quiet{font-size:10px;letter-spacing:2px;text-align:center;margin:14px 0 0;color:#7b8269}dialog{border:1px solid #d6c9ad;border-radius:23px;background:var(--paper);color:var(--ink);width:min(430px,calc(100% - 28px));padding:24px;max-height:calc(100dvh - 35px);overflow:auto;box-shadow:0 20px 90px #0b252480}dialog::backdrop{background:#0d302dcc;backdrop-filter:blur(5px)}.dialog-top{display:flex;align-items:center;justify-content:space-between}.dialog-top .icon{background:transparent;color:var(--ink);border-color:#bfc3a8;font-size:26px}h2{font:italic 34px/1.1 Georgia,serif;margin:18px 0 12px;letter-spacing:-1px}dialog p,.lobby p,.result p{font-size:14px;line-height:1.6;color:#48665a}dialog>button{display:block;width:100%;margin:10px 0}.or{text-align:center;font-size:11px;color:#738071;margin:22px 0}label{font-size:12px}input{min-width:0;border:1px solid #aebda7;border-radius:11px;padding:13px;background:#fffaf0;color:var(--ink)}.input-row{display:flex;gap:8px;margin-top:8px}.input-row input{flex:1;text-transform:uppercase;letter-spacing:2px}#network-status{font-size:12px;margin-bottom:0}#play-hud{position:absolute;inset:calc(var(--safe-top) + 70px) 16px auto;pointer-events:none;z-index:3}.trail-progress{display:flex;align-items:center;gap:12px;width:min(340px,calc(100% - 92px));color:var(--paper);font-size:9px;letter-spacing:1px}#run-time{font:11px/1 monospace;margin-left:auto}#crew{display:flex;gap:5px;flex-wrap:wrap;margin-top:12px;max-width:calc(100% - 100px)}.crew-chip{border:1px solid #ffffff23;background:#163f3bc9;border-radius:20px;color:var(--paper);font-size:10px;line-height:1;display:inline-flex;align-items:center;gap:5px;padding:6px 8px}.crew-chip i{width:7px;height:7px;border-radius:50%;background:var(--cat)}.crew-chip.down{border-color:#ffb090;color:#ffcfbb}.crew-chip.finished{border-color:#d6df8c;color:#e8eac2}#minimap{position:absolute;right:0;top:0;width:78px;height:92px;border:1px solid #e0d3ac54;border-radius:12px;background:#163f3bbb;backdrop-filter:blur(8px)}#dash{position:absolute;right:20px;bottom:calc(var(--safe-bottom) + 56px);width:84px;height:84px;border-radius:50%;background:#f1c979;border:2px solid #fff0c4;box-shadow:0 3px 0 #163f3b,0 5px 22px #163f3b50;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px;user-select:none;touch-action:none;opacity:1}#dash .dash-mark{font-size:28px;line-height:1}#dash strong{font-size:13px}#dash small{font-size:9px;margin-top:2px;font-weight:400}#dash.cooldown{background:#b4c4a2;color:#436356}#movement-hint{position:absolute;z-index:3;left:24px;bottom:calc(var(--safe-bottom) + 90px);max-width:125px;font-size:13px;line-height:1.5;color:#ffefcc;pointer-events:none;text-shadow:0 1px 4px #153b37}#movement-hint::before{content:'↔';display:block;font-size:29px;margin-bottom:3px}#context{position:absolute;bottom:calc(var(--safe-bottom) + 12px);left:16px;right:16px;z-index:3;text-align:center;color:var(--paper);font-size:12px;background:#163f3bd9;border:1px solid #fff7e52b;border-radius:13px;padding:9px 12px;pointer-events:none;backdrop-filter:blur(8px)}#stick{position:absolute;width:90px;height:90px;margin:-45px 0 0 -45px;border:1.5px solid #fff8d880;border-radius:50%;background:#fff8d81a;z-index:5;pointer-events:none}#stick i{display:block;position:absolute;left:27px;top:27px;width:34px;height:34px;border:1px solid #fff8d8;border-radius:50%;background:#ffedbb91}#toast{position:absolute;left:50%;top:calc(var(--safe-top) + 130px);transform:translateX(-50%);z-index:9;max-width:calc(100% - 40px);width:max-content;background:#fff2d9;color:var(--ink);border:1px solid #cdbf94;border-radius:14px;padding:10px 15px;font-size:13px;text-align:center;box-shadow:0 5px 20px #143b3b30;pointer-events:none}.lobby,.result{text-align:center;max-width:440px}.code-row{display:flex;align-items:center;justify-content:center;gap:12px;margin:8px 0 22px}.code-row strong{font:700 24px/1 monospace;letter-spacing:4px}.code-row button{min-height:40px;padding:8px 12px}.lobby>button,.result>button{width:100%;margin-top:10px}#lobby-crew{display:grid;grid-template-columns:1fr 1fr;gap:10px}.lobby-member{background:#e6ead4;border:1px solid #c7d2b5;border-radius:12px;padding:12px;font-size:13px}.lobby-member::before{content:'●';color:var(--cat);font-size:24px;display:block;text-shadow:0 1px var(--ink);margin-bottom:5px}.plain{background:transparent;border-color:transparent;font-size:12px;text-decoration:underline;font-weight:400}#result-symbol{font:80px/1 Georgia,serif;color:#b98236;margin-top:15px}#result-stats{display:flex;justify-content:center;gap:25px;margin:18px 0}#result-stats span{font-size:11px;color:#58705c}#result-stats b{font:28px/1.4 Georgia,serif;display:block;color:var(--ink)}details{border-top:1px solid #d6c9ad;margin-top:20px;padding-top:15px;font-size:12px;line-height:1.7}summary{cursor:pointer;font-weight:bold}details p{font-size:12px}#audio-controls{padding:12px 0}#audio-controls #mcw-audio-bar{position:static!important;display:flex!important;gap:10px!important}#audio-controls #mcw-audio-bar button{width:auto!important;height:44px!important;border-radius:10px!important;padding:8px 13px!important;box-shadow:none!important}#audio-controls #mcw-audio-bar button::after{font:12px 'Trebuchet MS',sans-serif;margin-left:6px}#mcw-music-btn::after{content:'Music'}#mcw-sfx-btn::after{content:'Sounds'}body.playing .heading strong{font-size:20px}@media(min-width:900px){.hud{inset:24px 30px auto}.heading strong{font-size:25px}#play-hud{inset:84px 30px auto}#minimap{width:104px;height:123px}#dash{right:36px;bottom:46px;width:92px;height:92px}#context{left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:65%;bottom:24px}#movement-hint{left:35px;bottom:45px}}@media(max-width:420px){.sheet{padding:18px;width:calc(100% - 24px);border-radius:22px}.home-top .label{font-size:8px;max-width:170px}.new-tag{font-size:7px}.home-top{gap:6px;margin-bottom:12px}.hero-art{max-height:190px}.title-row{margin-top:14px}h1{font-size:49px}.intro{font-size:13px;line-height:1.55;margin:13px 0}.course-picker{padding-top:10px}.home-actions button{font-size:13px;padding:12px}.quiet{margin-top:12px}.trail-progress{gap:7px;font-size:8px}}@media(max-height:500px) and (min-width:600px){.hud{inset:8px 14px auto}.heading strong,body.playing .heading strong{font-size:18px}#eyebrow{font-size:8px}.back,.icon{width:37px;height:37px;min-height:37px}#play-hud{inset:57px 14px auto}#minimap{width:65px;height:76px}#crew{margin-top:8px}.sheet.home{top:50%;width:min(720px,calc(100% - 130px));max-height:calc(100% - 30px);display:grid;grid-template-columns:42% 1fr;gap:0 24px;padding:19px}.home-top{grid-column:1/-1}.hero-art{grid-column:1;grid-row:2/6;height:100%;object-fit:cover;max-height:230px}.title-row,.intro,.course-picker,.home-actions{grid-column:2}h1{font-size:39px}.title-row{margin-top:0}.tagline{font-size:11px}.intro{font-size:11px;margin:9px 0;line-height:1.4}.course-picker{padding-top:6px}.home-actions{margin-top:7px}.home-actions button{font-size:12px;padding:8px 10px;min-height:39px}.quiet{grid-column:1/-1;margin:10px 0 0}#dash{width:68px;height:68px;right:22px;bottom:46px}#dash .dash-mark{font-size:22px}#dash strong{font-size:11px}#context{bottom:8px;left:50%;right:auto;transform:translateX(-50%);max-width:60%;width:max-content;font-size:11px;padding:7px 12px}#movement-hint{bottom:50px;font-size:11px}#toast{top:60px}.sheet:not(.home){max-height:calc(100% - 28px)}.result{padding:17px}#result-symbol{font-size:42px;margin-top:0}.result h2{margin:9px 0;font-size:27px}.result p{margin:5px 0}#result-stats{margin:10px 0}.result>button{padding:8px;min-height:36px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

#open-trails{display:grid;gap:6px;margin-top:10px}#open-trails button{display:flex;justify-content:space-between;gap:8px;text-align:left;min-height:40px;font-size:12px;background:#e8ead5;border-color:#c4cdb1}#open-trails small{font-size:10px;white-space:nowrap}#friends{display:block;margin:7px auto -8px;min-height:35px}#chat-toggle{position:absolute;bottom:calc(var(--safe-bottom) + 57px);right:116px;z-index:5;border:1px solid #eee2c582;background:#163f3bea;color:var(--paper);border-radius:50%;width:47px;height:47px;min-height:47px;padding:0;font-size:24px}#chat-unread{font:10px system-ui;position:absolute;top:0;right:-3px;background:#d58c58;border-radius:50%;min-width:14px;line-height:14px}#chat-unread:empty{display:none}#chat-panel{position:absolute;right:16px;bottom:calc(var(--safe-bottom) + 152px);width:min(340px,calc(100% - 32px));height:min(340px,55%);z-index:12;display:flex;flex-direction:column;padding:13px;border:1px solid #d9cfb6;border-radius:20px;background:#fff7e5f5;box-shadow:0 12px 40px #143b3b55;backdrop-filter:blur(12px)}.chat-heading{display:flex;justify-content:space-between;align-items:center;font-size:13px}.chat-heading .icon{width:30px;height:30px;min-height:30px;background:transparent;color:var(--ink);font-size:24px}.quick-chat{display:flex;gap:5px;margin:8px 0}.quick-chat button{min-height:32px;font-size:11px;padding:5px 8px;background:#e7ebd8;border-color:#c0c9ae;flex:1}#chat-log{flex:1;min-height:30px;overflow:auto;overscroll-behavior:contain;padding:7px 0}#chat-log p{font-size:12px;line-height:1.45;margin:6px 0;overflow-wrap:anywhere}#chat-log b{color:#367466}#chat-form{display:flex;gap:6px}#chat-input{width:100%;padding:10px;font-size:12px}#chat-form button{padding:7px 13px;min-height:37px}#chat-status{font-size:10px;color:#936448;margin:4px 0 0;min-height:12px}@media(max-height:500px) and (min-width:600px){#home-network,#open-trails,#friends{grid-column:2}#home-network{margin:7px 0}#open-trails{margin-top:0}#open-trails button{min-height:31px;font-size:10px;padding:6px}#friends{margin:2px 0 -8px;min-height:25px;font-size:10px}#chat-toggle{bottom:46px;right:102px;width:40px;height:40px;min-height:40px}#chat-panel{bottom:60px;right:156px;height:calc(100% - 76px);max-height:295px;width:300px}}

button.crew-chip{min-height:24px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 8px;font-size:10px;font-weight:400}#crew{max-height:58px;overflow-y:auto;pointer-events:auto}

@media(max-width:600px){#crew{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-height:none;overflow:visible;gap:4px}button.crew-chip{display:block;min-width:0;max-width:none;padding:6px 4px;text-align:left}.crew-chip i{display:inline-block;margin-right:4px;width:5px;height:5px}}

button.crew-chip:hover{background:#2a655a;color:var(--paper)}

#story-copy{display:block;margin-top:5px;color:#d4dbea;font-size:10px;line-height:1.45}#rescue-direction{position:absolute;z-index:4;left:16px;bottom:calc(var(--safe-bottom) + 158px);max-width:230px;display:flex;align-items:center;gap:8px;color:#ffe5d4;background:#493b42e8;border:1px solid #f5b69c;border-radius:12px;padding:8px 11px;pointer-events:none;font-size:11px}#rescue-arrow{display:inline-block;font-size:24px;line-height:1}#campaign-objective{background:#222d43e8}#context{background:#222d43ed}#stick{width:100px;height:100px;margin:-50px 0 0 -50px}#stick i{left:32px;top:32px}body.playing #garden{touch-action:none}@media(max-height:500px){#story-copy{font-size:9px}#rescue-direction{bottom:90px;max-width:200px;font-size:10px}}

#power{position:absolute;z-index:4;right:114px;bottom:calc(var(--safe-bottom) + 89px);width:82px;height:82px;border-radius:22px;background:#44405b;border:2px solid #bfb6e0;color:#fff1d0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px;touch-action:none;box-shadow:0 4px 0 #151f30}#power:disabled{opacity:.65}#power-icon{font-size:26px;line-height:1}#power-name{font-size:10px;margin-top:3px}#power-time{font-size:9px;margin-top:3px}#chat-toggle{right:121px;bottom:calc(var(--safe-bottom) + 37px);width:39px;height:39px;min-height:39px;font-size:20px}@media(min-width:900px){#power{right:140px;bottom:72px}}@media(max-height:500px){#power{right:103px;bottom:67px;width:68px;height:68px}#power-icon{font-size:22px}#power-name{font-size:9px}#chat-toggle{right:181px;bottom:48px}#context{max-width:55%}}

/* The interface borrows its materials from the garden: painted wood, warm stone and ink. */
:root{--ink:#263b4a;--paper:#fff4dc;--green:#315e56;--coral:#d36c59;background:#6f9274}
.hud{color:var(--paper)}.heading{text-shadow:0 2px 5px #203a4699}.heading strong{font-family:'Trebuchet MS',sans-serif;font-style:normal;font-weight:800;letter-spacing:-.7px}.back,.icon{background:#243b4be8;color:var(--paper);border:1px solid #f4e3be55;border-radius:15px;backdrop-filter:blur(8px)}
.sheet{border:1px solid #f5deb0;border-radius:24px;background:#fff2d9;box-shadow:0 14px 0 -8px #243b4b,0 28px 75px #162d3b70}.home{padding:22px;max-width:520px}.home-top{margin-bottom:12px}.home-top .label{font-size:11px;letter-spacing:0;text-transform:none;color:#576b61}.new-tag{background:#315e56;color:#fff4dc;border:0;border-radius:20px;letter-spacing:0;font-size:10px;padding:5px 9px}.hero-art{height:210px;object-fit:cover;border-radius:15px;background:#426e60}.title-row{margin-top:15px}h1{font-family:'Trebuchet MS',sans-serif;font-size:60px;font-weight:900;letter-spacing:-3px;color:#263b4a}h1 em{font-style:normal;color:inherit;font-weight:900}.tagline{color:#567063;font-size:13px}.intro{font-size:13px;line-height:1.55;margin:13px 0}.player-count{color:#315e56}.player-count small{letter-spacing:0;font-size:10px}.primary{background:#cd6655;border-color:#a44c46;box-shadow:0 3px 0 #853f3a}.primary:hover{background:#b7574a}.home-actions button{min-height:49px;border-radius:12px}.quiet{letter-spacing:0;font-size:11px}.course-picker{border-color:#d8c4a5}.home #friends{margin-bottom:-6px}
#play-hud{width:auto}.trail-progress{color:#fff4dc;text-shadow:0 1px 4px #243b4b;font-size:10px;letter-spacing:0}#story-copy{color:#d2dfcc;font-size:10px;max-width:300px}#play-hud #campaign-objective{background:#243b4be8;color:#fff4dc;border:1px solid #f5deb03d;border-radius:12px;padding:10px 12px;box-shadow:0 4px 12px #233a3a20;backdrop-filter:blur(10px)}#play-hud #chapter-label{color:#edc485;letter-spacing:.5px}#objective-copy{font-weight:700;font-size:12px}#play-hud #boss-cue{color:#ffdaa5}#play-hud #boss-hud{border-top-color:#f5deb040}
.crew-chip{background:#243b4be8;color:var(--paper);border:1px solid #c6d4b360;border-radius:9px}.crew-chip.down{color:#ffb99d;border-color:#db9d7f}.crew-chip.finished{color:#b8dfab;border-color:#95ba90}#minimap{background:#243b4be8;border:1px solid #d4dabb80;border-radius:12px}#movement-hint{color:#fff4dc;text-shadow:0 2px 5px #203a46;max-width:130px;background:#243b4bc9;border-radius:14px;padding:10px 13px;font-size:11px}#movement-hint::before{font-size:22px;margin-bottom:1px}#context{background:#243b4beb;border:1px solid #f3deb43d;color:#fff4dc;border-radius:12px;font-size:11px}#dash{border:2px solid #ffdfaa;background:#dc7963;color:#fff4dc;box-shadow:0 5px 0 #813f41,0 10px 28px #223c3c55}#dash.cooldown{background:#698077;color:#d3decd}#power{border:2px solid #d1c7ed;background:#615b7c;color:#fff1dc;border-radius:22px;box-shadow:0 4px 0 #34354e}#stick{border:2px solid #fff2cf99;background:#243b4b40}#stick i{background:#fff2cfaa;border-color:#fff2cf}#chat-toggle{background:#243b4be8;color:#fff4dc;border:1px solid #d4dabb80}#rescue-direction{background:#704946ed;color:#ffe3c5;border:1px solid #eaa47d}#toast{background:#fff0cf;border:1px solid #e8cc99;border-radius:12px;box-shadow:0 5px 20px #253c4b40}
@media(max-width:420px){.home{padding:17px}.hero-art{height:160px}h1{font-size:49px}.home-top .label{font-size:10px}.new-tag{font-size:9px}.intro{font-size:12px}.home .course-picker{padding-top:9px}.home .quiet{margin:10px 0 0}}
@media(max-height:500px) and (min-width:600px){.home .hero-art{height:100%;max-height:230px}.home h1{font-size:39px}.home .intro{font-size:11px}.home .home-top{margin-bottom:7px}#story-copy{display:none}#play-hud #campaign-objective{padding:6px 9px}#objective-copy{font-size:10px}#movement-hint{bottom:20px;padding:8px 10px}}

/* Readiness and chase cues stay close to the run. */
#play-hud #campaign-objective{padding:8px 10px;max-width:calc(100% - 96px)}#objective-copy{font-size:11px;line-height:1.35}#story-copy{display:block;margin-top:5px;font-size:10px}#context[data-tone="warning"]{border-color:#f5cc78;background:#51472dec}#context[data-tone="danger"],#context[data-tone="rescue"]{border-color:#f4aa8a;background:#653d3bec}#dash .ability-meter{display:block;width:36px;height:3px;border-radius:3px;overflow:hidden;background:#233a4b66;margin-top:5px}#dash .ability-meter i{display:block;width:100%;height:100%;background:#fff2ba;transform:scaleX(var(--charge,1));transform-origin:left;transition:transform .1s linear}#trail-beat{position:absolute;z-index:7;left:50%;top:42%;transform:translate(-50%,-50%);width:max-content;max-width:calc(100% - 40px);padding:16px 22px;border:1px solid #ffe0a0;border-radius:15px;background:#243b4bf2;color:#fff3d4;text-align:center;pointer-events:none;box-shadow:0 8px 30px #18343b50}#trail-beat strong{display:block;font-size:22px;letter-spacing:-.5px}#trail-beat span{display:block;margin-top:7px;font-size:11px;color:#e2d9be}#trail-beat[data-kind="lost"]{border-color:#eea78a}#trail-brief{font-size:12px;padding-left:12px;border-left:2px solid #ce8b60}#movement-hint{max-width:140px}@media(max-height:500px){#trail-beat{top:42%;padding:12px 18px}#trail-beat strong{font-size:18px}}@media(prefers-reduced-motion:reduce){#dash .ability-meter i{transition:none}}

/* Ballpoint paper: every surface is cream paper, every line blue pen, every label hand-lettered ink. */
:root{--ink:#283a8c;--paper:#fbf4e4;--pen:#283a8c;--pen-soft:rgba(40,58,140,.18);--wash-green:#c9dcb0;--wash-red:#f3c4bc;--wash-gold:#ffe3a0;--sketch:255px 15px 225px 15px/15px 225px 15px 255px;background:#f1e8d6;color:#283a8c}
body{background:#f1e8d6;color:#283a8c}
body .heading,body .hud{color:#283a8c;text-shadow:0 0 4px #fbf4e4,0 0 2px #fbf4e4}
body .heading strong,body h1,body h2,body #trail-beat strong{font-family:Caveat,"Chalkboard SE","Comic Sans MS",cursive;letter-spacing:0;font-weight:700}
body .heading strong{font-size:26px}
body #eyebrow,body .label{color:#3b53b8;letter-spacing:1px}
body button,body select,body input{color:#283a8c;background:#fbf4e4;border:1.6px solid #283a8c;border-radius:var(--sketch);box-shadow:2px 3px 0 var(--pen-soft)}
body button:hover{background:#fff8ea}
body button:active{box-shadow:1px 1px 0 var(--pen-soft)}
body .primary{background:#ffd36f;color:#283a8c;border-color:#283a8c;box-shadow:3px 4px 0 rgba(40,58,140,.28)}
body .primary:hover{background:#ffdb86}
body .plain{background:transparent;border-color:transparent;box-shadow:none;text-decoration:underline wavy rgba(40,58,140,.45);text-underline-offset:4px}
body .back,body .icon,body .hud .icon{background:#fbf4e4;color:#283a8c;border:1.6px solid #283a8c;border-radius:var(--sketch);backdrop-filter:none;box-shadow:2px 3px 0 var(--pen-soft)}
body .sheet{background:#fbf4e4;border:1.8px solid #283a8c;border-radius:22px 9px 24px 10px/10px 24px 9px 22px;box-shadow:5px 7px 0 rgba(40,58,140,.16)}
body h1{color:#283a8c}body h1 em{color:#c8423a}
body .tagline,body .intro,body .quiet,body .home-top .label,body dialog p,body .lobby p,body .result p{color:#3a4a8a}
body .new-tag,body .player-count{background:#c9dcb0;color:#1f3a2c;border:1.4px solid #2e7d5b;border-radius:var(--sketch)}
body .hero-art{background:#f1e8d6;border:1.6px solid #283a8c;border-radius:12px 6px 14px 7px/7px 14px 6px 12px}
body .course-picker{border-color:rgba(40,58,140,.35);color:#283a8c}
body .course-picker select{background:transparent;box-shadow:none;border-color:transparent;color:#283a8c}
body #open-trails button{background:#fff8ea;border-color:rgba(40,58,140,.5)}
body dialog{background:#fbf4e4;color:#283a8c;border:1.8px solid #283a8c;border-radius:22px 9px 24px 10px/10px 24px 9px 22px;box-shadow:6px 8px 0 rgba(40,58,140,.18)}
body dialog::backdrop{background:rgba(241,232,214,.72);backdrop-filter:blur(2px)}
body dialog[open]{animation:pen-pop .42s cubic-bezier(.34,1.56,.64,1)}
@keyframes pen-pop{from{opacity:0;transform:translateY(14px) scale(.94) rotate(-.8deg)}to{opacity:1;transform:none}}
body .trail-progress{color:#283a8c;text-shadow:0 0 3px #fbf4e4,0 0 2px #fbf4e4;font-weight:700}
body #play-hud #campaign-objective,body #campaign-objective{background:rgba(251,244,228,.93);color:#283a8c;border:1.5px solid #283a8c;border-radius:14px 6px 15px 7px/7px 15px 6px 14px;box-shadow:3px 4px 0 var(--pen-soft);backdrop-filter:none}
body #play-hud #chapter-label,body #chapter-label{color:#c8423a}
body #story-copy{color:#3a4a8a}
body #play-hud #boss-cue,body #boss-cue{color:#a23a2c}
body #play-hud #boss-hud,body #boss-hud{border-top:1.4px dashed rgba(40,58,140,.4)}
body #boss-health{accent-color:#c8423a}
body .crew-chip,body button.crew-chip{background:#fbf4e4;color:#283a8c;border:1.4px solid #283a8c;border-radius:var(--sketch)}
body .crew-chip i{background:var(--cat)}
body .crew-chip.down{color:#a23a2c;border-color:#c8423a;background:#fbe1dc}
body .crew-chip.finished{color:#1f5a3f;border-color:#2e7d5b;background:#e3efd3}
body #minimap{background:#fbf4e4;border:1.5px solid #283a8c;border-radius:10px 5px 11px 6px/6px 11px 5px 10px;box-shadow:2px 3px 0 var(--pen-soft)}
body #movement-hint{background:rgba(251,244,228,.93);color:#283a8c;border:1.4px dashed #283a8c;text-shadow:none}
body #context{background:rgba(251,244,228,.95);color:#283a8c;border:1.5px solid #283a8c;border-radius:var(--sketch)}
body #context[data-tone="warning"]{background:#fff0c4;border-color:#b5781f;color:#5c3d06}
body #context[data-tone="danger"],body #context[data-tone="rescue"]{background:#fbe1dc;border-color:#c8423a;color:#7a231b}
body #dash,body #power{background:#fbf4e4;color:#283a8c;border:2px solid #283a8c;border-radius:20px 9px 22px 10px/10px 22px 9px 20px;box-shadow:3px 4px 0 rgba(40,58,140,.22)}
body #dash{background:#ffe3a0}
body #dash.cooldown{background:#efe6d2;color:#5d6a9e}
body #dash .ability-meter{background:rgba(40,58,140,.18)}
body #dash .ability-meter i{background:#283a8c}
body #power:disabled{background:#efe6d2;color:#5d6a9e;opacity:1}
body #chat-toggle{background:#fbf4e4;color:#283a8c;border:1.6px solid #283a8c}
body #chat-panel{background:#fbf4e4;color:#283a8c;border:1.6px solid #283a8c;box-shadow:4px 5px 0 var(--pen-soft)}
body .quick-chat button{background:#fff8ea}
body #rescue-direction{background:#fbe1dc;color:#7a231b;border:1.5px solid #c8423a}
body #trail-beat{background:#fbf4e4;color:#283a8c;border:1.8px solid #283a8c;box-shadow:5px 7px 0 rgba(40,58,140,.18);animation:pen-pop-centred .5s cubic-bezier(.34,1.56,.64,1)}
@keyframes pen-pop-centred{from{opacity:0;transform:translate(-50%,-50%) translateY(14px) scale(.94) rotate(-.8deg)}to{opacity:1;transform:translate(-50%,-50%)}}
body #trail-beat span{color:#3a4a8a}
body #trail-beat[data-kind="lost"]{border-color:#c8423a}
body #toast{background:#fffaf0;color:#283a8c;border:1.5px solid #283a8c;border-radius:var(--sketch);box-shadow:3px 4px 0 var(--pen-soft);animation:pen-drop .38s cubic-bezier(.34,1.56,.64,1)}
@keyframes pen-drop{from{opacity:0;margin-top:-10px}to{opacity:1;margin-top:0}}
body #stick{border:1.6px dashed rgba(40,58,140,.6);background:rgba(251,244,228,.35)}
body #stick i{border:1.6px solid #283a8c;background:rgba(255,211,111,.75)}
body #result-symbol{color:#c8423a}
body #result-stats span{background:#fff8ea;border:1.4px solid rgba(40,58,140,.45);color:#3a4a8a}
body #result-stats b{color:#283a8c}
body .lobby-member{background:#fff8ea;color:#283a8c;border-color:rgba(40,58,140,.45)}
body .or{color:#3a4a8a}
@media (prefers-reduced-motion:reduce){body dialog[open],body #trail-beat,body #toast{animation:none}}
/* critic round: AA labels, 44px corners in landscape, timer anchored to the trail row, skill stacked over Dash */
body #play-hud #chapter-label,body #chapter-label{color:#a8322b;font-size:11px;letter-spacing:.4px}
body #power:disabled{color:#46528a}
@media(max-height:500px) and (min-width:600px){
 body .back,body .icon,body header .icon{width:44px;height:44px;min-height:44px}
 body .trail-progress{justify-content:flex-start;gap:10px}
 body #run-time{margin-left:0;background:rgba(251,244,228,.92);border:1.2px solid rgba(40,58,140,.45);border-radius:8px;padding:2px 6px}
 body #power{right:22px;bottom:calc(var(--safe-bottom) + 124px);width:68px;height:68px}
}
/* critic round 2: crew chips keep their size but get a 44px hit area; the objective settles to one line once you move */
body button.crew-chip{position:relative}
body button.crew-chip::after{content:'';position:absolute;left:-6px;right:-6px;top:50%;height:44px;transform:translateY(-50%)}
body #campaign-objective.settled #chapter-label{display:none}
body #campaign-objective.settled{padding-top:6px;padding-bottom:6px}
@media(max-height:500px) and (min-width:600px){
 body #toast{top:auto;bottom:calc(var(--safe-bottom) + 64px)}
 body:has(#home:not([hidden])) header .heading{visibility:hidden}
}
/* critic round 3: the chip itself must not clip its 44px ::after hit area; the name span carries the ellipsis */
body button.crew-chip{overflow:visible}
body button.crew-chip .chip-name{display:inline-block;max-width:78px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
body #home select{min-height:44px}
body #friends{min-height:44px}
@media(max-height:500px) and (min-width:600px){
 body .home .intro{display:none}
 body .home .course-picker{margin-top:4px}
}
/* critic round 4: in the short-landscape layout #crew is a scroll box, which clipped the chips' 44px hit area;
   padding puts the whole hit area inside the box and the negative margin keeps the chips where they were */
@media(min-width:601px){
 body #crew{padding:10px 8px;margin-left:-8px;margin-right:-8px;margin-bottom:-10px;max-height:78px}
 body #play-hud #crew{margin-top:2px}
}
@media(max-height:500px) and (min-width:600px){body #play-hud #crew{margin-top:-2px}}
/* round 5: Stroll/Chase picker, star counter, one-line goal card, bigger pen stick */
body .pace-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 2px}
body .pace-picker button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:58px;padding:9px 12px;text-align:left;background:#fbf4e4;color:#283a8c;border:1.5px solid rgba(40,58,140,.45);border-radius:14px 6px 15px 7px/7px 15px 6px 14px;box-shadow:none}
body .pace-picker button b{font-family:Caveat,"Chalkboard SE","Comic Sans MS",cursive;font-size:22px;line-height:1}
body .pace-picker button small{font-size:12px;line-height:1.3;color:#3a4a8a;font-weight:400}
body .pace-picker button.on{background:#fff0c4;border:2px solid #283a8c;box-shadow:3px 3px 0 rgba(40,58,140,.25)}
body .pace-picker button[data-pace="chase"].on{background:#fbe1dc}
body #star-count{font-weight:700;color:#7a5410;text-shadow:0 0 3px #fbf4e4,0 0 2px #fbf4e4;white-space:nowrap}
body #next-step{display:block;font-size:13px;line-height:1.35;font-weight:700}
body #next-step[hidden]{display:none}
body #campaign-objective{cursor:pointer;pointer-events:auto}
body #play-hud #campaign-objective.settled:not(.open){width:auto;max-width:min(330px,calc(100% - 150px))}
body #campaign-objective.open #objective-copy{display:block}
body #stick{width:104px;height:104px;margin:-52px 0 0 -52px;border:1.8px dashed rgba(40,58,140,.55);background:rgba(251,244,228,.42)}
body #stick i{left:33px;top:33px;width:38px;height:38px;border:2px solid #283a8c;background:rgba(255,211,111,.85);box-shadow:2px 2px 0 rgba(40,58,140,.25)}
body #context[hidden]{display:none}
@media(max-height:500px) and (min-width:600px){body .pace-picker{margin:6px 0 0}body .pace-picker button{min-height:46px;padding:6px 10px}body .pace-picker button small{font-size:11px}}
@media(max-height:500px) and (min-width:600px){body .home .tagline,body .home .home-top{display:none}body .home h1{font-size:34px}}
@media(max-height:500px) and (min-width:600px){body .home #home-network{display:none}}

/* Stroll: home with stars left waits for a choice */
body #trail-beat .beat-actions{display:flex;gap:8px;margin-top:10px;pointer-events:auto}body #trail-beat .beat-actions[hidden]{display:none}body #trail-beat .beat-actions button{min-height:44px;flex:1;padding:8px 12px;border:1.8px solid #283a8c;border-radius:12px;background:#fffaf0;color:#283a8c;font:700 15px/1.1 Caveat,"Chalkboard SE",cursive}body #trail-beat .beat-actions button.primary{background:#ffd36f}body #trail-beat:has(.beat-actions:not([hidden])){pointer-events:auto}
/* legibility floor: nothing a child needs to read is under 11px */
html body #eyebrow,html body #stage-label,html body #star-count,html body .chip-name,html body #story-copy,html body #power-name,html body #power-time,html body #dash-time,html body .home-top .label,html body .new-tag,html body .player-count small,html body #chapter-label,html body #boss-cue,html body #boss-heading{font-size:11px}
html body #eyebrow{letter-spacing:.6px}
