:root{color-scheme:light;--ink:#17394c;--paper:#fbf4e4;--gold:#efbc55;--muted:#466774;--line:#d9d2bc;--shadow:0 4px 0 #19374733;font-family:'Trebuchet MS',Verdana,system-ui,sans-serif;color:var(--ink);background:#203c57}
.topbar .brand{min-width:0}.topbar nav{flex:none}#admin[aria-pressed="true"]{background:#c1ded2;border-color:#5e9181}
#sound[data-music="playing"]{background:#c1ded2;border-color:#729c8d}
#panel[data-mode="audio"]{width:min(550px,calc(100% - 28px))}.music-card{padding:20px;border:1px solid #c9d1b9;border-radius:18px;background:#edf0df}.music-card h3{font-size:23px;margin:0 0 8px}#panelBody .music-card p{font-size:15px;line-height:1.6;margin:8px 0 16px}.music-card button{width:100%;background:#f5d48f;box-shadow:none}.music-card button[aria-pressed="true"]{background:#17394c;color:#fff8e8}#panelBody #musicStatus{font-size:13px;min-height:21px;margin:12px 0 20px}.music-card label{font-weight:700}.music-card output{float:right;font-variant-numeric:tabular-nums}.music-card input{cursor:pointer}#panelBody .audio-note{font-size:14px;line-height:1.6;color:var(--muted);margin-bottom:0}.effects-toggle{width:100%;margin-top:18px;box-shadow:none;font-size:14px}
.admin-banner{flex:none;display:flex;align-items:center;justify-content:center;gap:20px;padding:2px 14px;background:#c1ded2;border-bottom:1px solid #729c8d;font-size:13px;font-weight:700}.admin-banner button{min-height:34px;padding:4px 10px;border:0;background:transparent;box-shadow:none;font-size:12px;text-decoration:underline;text-underline-offset:3px}
#panel[data-mode="admin"]{width:min(630px,calc(100% - 28px))}#panelBody .admin-status{display:inline-block;margin:10px 0 0;padding:8px 13px;background:#d9e8dc;border-radius:10px;font-size:14px;font-weight:700}#panelBody .admin-features{margin:22px 0}#panelBody .admin-features li{padding-bottom:10px}#panelBody .admin-note{font-size:15px;line-height:1.65;color:var(--muted);padding-top:16px;border-top:1px solid var(--line)}.admin-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-links button{font-size:15px;text-align:left}
@media(max-width:440px){.topbar .brand span{display:none}.topbar .brand h1{font-size:15px;max-width:125px;margin:0}.topbar nav{gap:4px}#panelBody .admin-note{font-size:14px}.admin-links{grid-template-columns:1fr}}
*{box-sizing:border-box}body{margin:0}button,a,input{font:inherit}button{min-width:48px;min-height:48px;border:1px solid var(--line);border-radius:15px;background:var(--paper);color:var(--ink);font-weight:700;cursor:pointer;touch-action:manipulation;box-shadow:var(--shadow);padding:10px 15px}button:hover{background:#fff9ed}button:active,.pressed{transform:translateY(2px);box-shadow:0 1px 0 #19374733;background:#f4d48f}button:disabled{cursor:default;opacity:.65}a{color:var(--ink)}a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid #ab6611;outline-offset:4px}button:focus:not(:focus-visible){outline:none}[hidden]{display:none!important}
#worldApp{height:100dvh;min-height:570px;display:flex;flex-direction:column}.topbar{flex:none;min-height:78px;background:var(--paper);display:flex;align-items:center;justify-content:space-between;padding:12px 30px;border-bottom:1px solid var(--line);gap:16px}.brand span{font-size:10px;letter-spacing:1.65px;font-weight:700}.brand h1{font-size:23px;line-height:1.15;margin:5px 0 0}.topbar nav{display:flex;gap:9px}.topbar button{box-shadow:none;background:#efe6d1}
#view{position:relative;flex:1;min-height:490px;overflow:hidden;touch-action:none;outline-offset:-5px;background:#304d65}#view canvas{position:absolute;inset:0;width:100%;height:100%;display:block}#loading{position:absolute;z-index:3;inset:0;display:grid;place-content:center;text-align:center;padding:24px;background:#203c57;color:var(--paper);font-size:20px;line-height:1.6}#loading a{color:var(--paper);display:inline-block;min-height:48px;padding:10px}
.guide{position:absolute;top:22px;left:26px;display:flex;align-items:center;gap:12px;pointer-events:none;border:1px solid #f6efdaa8;background:#fbf4e4ed;border-radius:18px;padding:10px 15px;box-shadow:0 4px 18px #10283922;max-width:calc(100% - 52px)}#guideArrow{font-size:31px;color:#9a6013;display:inline-block;width:31px;text-align:center}.guide small{display:block;margin-top:4px;font-size:12px;line-height:1.3;color:var(--muted)}#guideName{font-weight:700;font-size:16px}#lights{font-size:13px;border-left:1px solid var(--line);padding-left:15px;margin-left:9px;white-space:nowrap}
.bottom-ui{position:absolute;bottom:20px;left:26px;right:26px;display:flex;align-items:flex-end;justify-content:space-between;gap:14px;pointer-events:none}.bottom-ui>*{pointer-events:auto}.dpad{display:grid;grid-template-columns:48px 48px 48px;grid-template-rows:48px 48px 48px;gap:4px}.dpad button{padding:0;font-size:25px;border-radius:15px;background:#fbf4e4e8;touch-action:none}.up{grid-column:2;grid-row:1}.left{grid-column:1;grid-row:2}.right{grid-column:3;grid-row:2}.down{grid-column:2;grid-row:3}#joystick{grid-column:2;grid-row:2;display:grid;place-items:center;background:#18394c99;border:1px solid #fff9e866;border-radius:50%;touch-action:none;cursor:grab}#knob{display:block;width:26px;height:26px;border-radius:50%;background:var(--gold);border:3px solid var(--paper);box-shadow:0 2px 5px #16384c55;pointer-events:none}.look{text-align:center;width:164px}.look button{background:#fbf4e4e8}.interaction{text-align:center;align-self:flex-end;padding-bottom:2px;pointer-events:none}.interaction button{pointer-events:auto;background:var(--gold);display:block;margin:0 auto 10px;padding-inline:26px;font-size:18px;min-height:54px}.interaction p{font-size:12px;background:#17394ce8;border:1px solid #ffffff26;color:var(--paper);padding:10px 15px;border-radius:20px;line-height:1.5;margin:0}#resume{background:var(--paper);font-size:15px}#toast{position:absolute;top:105px;left:50%;transform:translateX(-50%);max-width:min(92%,520px);width:max-content;background:#fff1bd;border:1px solid #e9cb84;border-radius:14px;padding:14px 20px;text-align:center;box-shadow:var(--shadow);line-height:1.5;pointer-events:none}.storage-note{position:absolute;bottom:0;margin:0;width:100%;font-size:12px;background:var(--paper);padding:5px 12px;text-align:center}
dialog{width:min(520px,calc(100% - 28px));max-height:calc(100dvh - 32px);overflow:auto;border:2px solid #e9dbb8;border-radius:25px;background:var(--paper);color:var(--ink);padding:34px;box-shadow:0 16px 60px #081c3766}dialog::backdrop{background:#102c48a6}.close{float:right;border:0;box-shadow:none;font-size:27px;padding:0;margin:-16px -16px 0 10px;background:transparent}.eyebrow{font-size:11px;letter-spacing:1.2px;font-weight:700;text-transform:uppercase;color:var(--muted);margin-top:4px}dialog h2{font-size:28px;line-height:1.18;margin:14px 0}dialog p{font-size:18px;line-height:1.6}#panelActions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}#panelActions button:first-child{background:var(--gold)}#panelBody a{display:block;min-height:48px;padding:14px 0;font-weight:700}#panelBody ul{padding-left:22px;line-height:1.65}#panelBody .places{display:grid;grid-template-columns:1fr 1fr;gap:10px}#panelBody label{display:block;margin:16px 0;font-size:16px}#panelBody input{display:block;width:100%;min-height:44px;accent-color:#9c641b}#panelBody small{display:block;font-size:13px;line-height:1.55;color:var(--muted)}
#exerciseLoading{padding:24px;text-align:center;font-size:18px}#frameSlot{min-height:0}
@media(max-width:600px){.topbar{padding:10px 12px;gap:8px;min-height:76px}.brand h1{font-size:17px}.brand span{font-size:8px;letter-spacing:.8px}.topbar nav{gap:6px}.topbar button{padding:8px;min-width:44px;min-height:46px;font-size:14px;border-radius:13px}.long-label{display:none}.guide{top:14px;left:12px;max-width:calc(100% - 24px);padding:8px 12px;gap:8px;border-radius:15px}#guideName{font-size:15px}#lights{padding-left:10px;margin-left:3px;font-size:12px}.bottom-ui{left:12px;right:12px;bottom:16px}.look{width:144px}.interaction{position:absolute;left:0;right:0;bottom:181px;display:flex;flex-direction:column;align-items:center;pointer-events:none}.interaction button{font-size:16px;margin-bottom:8px;min-height:50px}.interaction p{font-size:11px;padding:7px 12px;max-width:calc(100vw - 24px)}dialog{padding:26px}dialog h2{font-size:25px}dialog p{font-size:17px}#exercise>header{padding:8px;gap:10px}#exercise>header button{font-size:13px;padding:8px}#exercise h2{font-size:14px}#exercise iframe{height:calc(100dvh - 65px)}#toast{top:96px;font-size:15px}}
@media(max-height:650px) and (min-width:601px){.topbar{min-height:64px;padding-block:6px}#worldApp{min-height:440px}#view{min-height:370px}.bottom-ui{bottom:10px}.guide{top:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.pace-button{display:flex;justify-content:center;align-items:center;gap:10px;width:100%;margin-bottom:10px;min-height:48px;padding:8px 12px;font-size:14px;background:#fbf4e4ed}.pace-button kbd{font:inherit;font-size:11px;border:1px solid #c7b994;border-radius:5px;padding:3px 5px}.pace-button[aria-pressed="true"]{background:var(--gold);border-color:#95651d}.pace-button[aria-pressed="true"] #paceLabel::before{content:'✓ ';font-weight:700}
.look .jump-button{width:100%;margin-bottom:14px;background:#f5dba0;font-size:14px}.jump-button kbd{font:inherit;display:block;font-size:10px;margin-top:3px}.jump-button[aria-disabled="true"]{background:#ece1c6}
@media(max-width:600px){.interaction p{max-width:300px}.pace-button{font-size:13px}.jump-button kbd{display:none}}
.look .action-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:0}.look .action-buttons button{width:100%;min-width:0;min-height:56px;padding:8px 5px;margin:0;font-size:13px;touch-action:manipulation}.look .pace-button{flex-direction:column;gap:0}.look .action-buttons kbd{display:block;font:inherit;font-size:10px;margin-top:3px;border:0;padding:0}
@media(max-width:600px){.look .action-buttons button{min-height:48px;font-size:12px}.look .action-buttons kbd{display:none}}
.speech{position:absolute;display:flex;flex-direction:column;width:560px;max-width:calc(100% - 24px);transform:translateX(-50%);background:var(--paper);border:2px solid #d9cbaa;border-top:5px solid var(--resident,var(--gold));border-radius:22px;padding:14px 22px 10px;box-shadow:0 5px 0 #17394c26,0 12px 30px #132d4130;touch-action:pan-y}
.speech::after{content:'';position:absolute;left:var(--tail,50%);bottom:-10px;width:16px;height:16px;background:var(--paper);border-right:2px solid #d9cbaa;border-bottom:2px solid #d9cbaa;transform:translateX(-50%) rotate(45deg)}
.speech-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;min-height:44px}.speech-heading strong{font-size:22px}.speech-heading small{display:block;font-size:12px;line-height:1.4;color:var(--muted);margin-top:3px}.speech-heading>button{min-width:44px;min-height:44px;padding:0;margin:-5px -10px 0 0;align-self:flex-start;background:transparent;border:0;box-shadow:none;font-size:26px;font-weight:400}
.speech-copy{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;touch-action:pan-y}.speech p{font-size:19px;line-height:1.55;margin:13px 0 18px;overflow-wrap:break-word}.speech-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;flex:none}.speech-actions button{font-size:15px;min-width:0;min-height:48px;padding:10px 8px;border-radius:12px;box-shadow:0 2px 0 #19374722;white-space:normal}.speech-actions button:first-child{background:#efe7d5}.speech-actions button:last-child{background:#f5dba0}
.speech-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none;margin-top:5px;font-size:12px;color:var(--muted)}.speech-footer button{min-height:44px;min-width:72px;font-size:13px;padding:7px 0;background:transparent;border:0;box-shadow:none;text-decoration:underline;text-underline-offset:3px}.speech-footer button:active{transform:none}
#view.speaking{touch-action:pan-y}#view canvas{touch-action:none}
.speaking #controlsHint{visibility:hidden}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:600px){.speech{padding:12px 17px 6px;border-radius:18px}.speech-heading strong{font-size:20px}.speech p{font-size:18px;line-height:1.5;margin:10px 0 15px}.speech-actions{gap:8px}.speech-actions button{padding-inline:8px;font-size:14px}.speech-footer{font-size:11px}}
.reading-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:24px 0 20px}.reading-choices button{min-width:0;min-height:96px;padding:15px 6px;border:2px solid #d4ba83;border-radius:16px;background:#f9e6b4}.reading-choices strong{display:block;font-size:20px}.reading-choices small{margin-top:8px}#panelBody .reading-choice-hint,#panelBody .round-note{font-size:15px;line-height:1.6}.round-note{padding:12px 15px;border-left:3px solid var(--gold);background:#f3ead4}
#panelBody .quick-guide{padding-left:28px;margin:22px 0}.quick-guide li{padding-left:5px;margin:0 0 19px}.quick-guide li::marker{font-weight:700;color:#94621c;font-size:19px}.quick-guide strong{font-size:18px}.quick-guide p{font-size:16px;line-height:1.55;margin:6px 0 0}.world-settings{border-top:1px solid var(--line);margin-top:10px;padding-top:8px}.world-settings summary{min-height:48px;padding:13px 0;font-weight:700;cursor:pointer}.world-settings summary:focus-visible{outline:3px solid #ab6611;outline-offset:3px}.world-settings button{margin:6px 0}
@media(max-width:600px){.reading-choices{gap:8px}.reading-choices strong{font-size:17px}.reading-choices button{min-height:88px}.quick-guide p{font-size:15px}.quick-guide strong{font-size:17px}}
.star-wallet{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:68px;min-height:44px;border:1px solid #d7b66e;border-radius:13px;padding:8px 12px;background:#f9e6b4;color:var(--ink);font-weight:700;font-size:17px;font-variant-numeric:tabular-nums;white-space:nowrap}.guide .star-wallet{pointer-events:auto;margin-left:6px;box-shadow:0 2px 0 #19374722}.star-symbol{color:#945b13;font-size:23px;line-height:1}.star-total{font-size:52px;font-weight:700;color:#945b13;text-align:center;margin:22px 0 14px}.star-later{background:#f2e8cc;border:1px dashed #ceb878;border-radius:15px;padding:14px 18px}#panelBody .star-later~small{margin-top:12px}
.star-feedback{flex:none;margin:0;padding:8px 16px;border-bottom:1px solid #e2d6b8;background:#f8edcf;color:#5e4b23;font-size:14px;line-height:1.4;text-align:center}.earned{animation:star-earned .45s ease-out}@keyframes star-earned{0%,100%{transform:scale(1)}40%{transform:scale(1.12);background:#f8d47b}}
@media(max-width:600px){.star-wallet{min-width:58px;font-size:15px;padding:7px 9px;gap:5px}.guide .star-wallet{margin-left:0}#exercise>header{gap:8px}#exercise>header>button{font-size:12px;white-space:nowrap;padding:8px}#exercise h2{font-size:13px;line-height:1.35}.star-feedback{font-size:12px;padding:7px 10px}}

/* The lesson is a sheet in front of the paused scene, never a replacement page. */
body.reading-open{overflow:hidden}
.reading-open #worldApp .guide,.reading-open .bottom-ui,.reading-open .speech,.reading-open #toast{visibility:hidden}
#exercise{--reading-top:max(12px,env(safe-area-inset-top));--reading-bottom:max(12px,env(safe-area-inset-bottom));--reading-limit:calc(100dvh - var(--reading-top) - var(--reading-bottom));width:min(1056px,calc(100% - 112px));height:min(var(--reading-content-height,680px),var(--reading-limit));max-height:var(--reading-limit);min-height:0;position:fixed;inset:var(--reading-top) 0 var(--reading-bottom);margin:auto;padding:0;overflow:hidden;border:1px solid #d8c8a4;border-top:5px solid var(--reading-accent,var(--gold));border-radius:20px;background:var(--paper);box-shadow:0 5px 0 #d8c8a4,0 8px 0 #fff8e8,0 24px 72px #081c3759}
#exercise:not([open]){display:none}
#exercise[open]{display:flex;flex-direction:column}
#exercise::backdrop{background:#102c486b}
#exercise>.reading-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:none;padding:18px 26px 15px;border-bottom:1px solid var(--line);background:#f7eed9}
.reading-heading{min-width:0}
#exercise .reading-kicker{margin:0 0 4px;font-size:10px;line-height:1.3;letter-spacing:1.3px;font-weight:700;text-transform:uppercase;color:var(--muted)}
#exercise h2{margin:0;text-align:left;font-size:24px;line-height:1.2}
#exercise #blockLabel{margin:5px 0 0;font-size:13px;line-height:1.3;color:var(--muted);font-variant-numeric:tabular-nums}
.reading-tools{display:flex;align-items:center;gap:14px;flex:none}
#pauseReading{display:flex;align-items:center;gap:12px;min-height:48px;border:1px solid #d8c8a4;border-radius:12px;box-shadow:none;background:#fff8e8;padding:8px 14px;font-size:14px}
#pauseReading span:last-child{font-size:24px;line-height:1;font-weight:400}
#exercise .star-wallet{box-shadow:none;min-height:48px}
#exercise .star-feedback{padding:9px 18px;line-height:1.4;font-size:13px;background:#fbf4e4;min-height:37px}
#exercise #frameSlot{flex:1;min-height:0;overflow:hidden}
#exercise iframe{display:block;width:100%;height:100%;min-height:0;border:0;background:var(--paper)}
@media(max-width:600px){
  #exercise{width:calc(100% - 24px);border-radius:17px;box-shadow:0 4px 0 #d8c8a4,0 7px 0 #fff8e8,0 20px 50px #081c374d}
  #exercise>.reading-header{padding:10px 12px;gap:8px}
  #exercise h2{font-size:20px}
  #exercise .reading-kicker{display:none}
  #exercise #blockLabel{font-size:12px}
  .reading-tools{gap:7px}
  #pauseReading{min-width:44px;min-height:46px;padding:8px 10px}
  #pauseReading span:first-child{display:none}
  #exercise .star-wallet{min-height:44px;min-width:54px;padding:7px 8px}
  #exercise .star-feedback{font-size:12px;min-height:36px;padding:8px 13px}
}
@media(max-height:540px){#exercise>.reading-header{padding-block:8px}#exercise .reading-kicker{display:none}}
@media(min-width:700px){
  #exercise{width:min(1180px,calc(100% - 32px))}
  #exercise>.reading-header{padding:10px 18px;gap:12px}
  #exercise h2{font-size:21px}
  #exercise #blockLabel{font-size:12px;margin-top:3px}
  #exercise .reading-kicker{font-size:9px;margin-bottom:2px}
  #exercise .star-feedback{font-size:12px;min-height:30px;padding:6px 18px}
}
/* Short screens need longer lines; taller screens can keep a narrower page. */
@media(min-width:1100px){#exercise{width:min(calc(100% - 32px),clamp(800px,calc(1920px - 100dvh),1280px))}}

@media(max-width:600px){#worldApp,#view{min-height:0}}
@media(max-width:360px){.topbar nav{gap:3px}.topbar .brand h1{font-size:13px}}
@media(max-width:600px) and (max-height:650px){.speech-footer{display:none}.speech p{font-size:16px;line-height:1.5}}
@media(max-height:570px) and (orientation:landscape){
  #worldApp{min-height:0}#view{min-height:0}
  .topbar{min-height:58px;padding:6px 12px}.topbar .brand span{display:none}.topbar .brand h1{font-size:17px;margin:0}.topbar button{min-height:44px;padding:8px 10px}.long-label{display:none}
  .bottom-ui{left:12px;right:12px;bottom:12px}.interaction p{display:none}.interaction button{min-height:44px;font-size:14px;margin-bottom:0;padding-inline:12px}
  .speaking .guide{visibility:hidden}.speaking .interaction{visibility:hidden}
  .speech{width:min(560px,calc(100% - 190px));max-width:calc(100% - 190px);padding:9px 15px 12px;border-radius:17px}.speech::after,.speech-footer{display:none}
  .speech-heading{min-height:44px}.speech-heading strong{font-size:19px}.speech-heading small{font-size:11px}.speech p{font-size:16px;line-height:1.5;margin:9px 0 12px}.speech-actions{gap:8px}.speech-actions button{min-height:44px;font-size:13px;padding:8px}
}
@media(max-height:360px) and (orientation:landscape){.admin-banner{padding-block:0}.admin-banner button{min-height:28px;padding-block:3px}.speech-heading small{display:none}.speech p{font-size:15px;line-height:1.3;margin:0 0 8px}.look .action-buttons button{min-height:44px;height:44px;padding:6px 8px}.look .action-buttons kbd{display:none}}

#panel[data-mode="destinations"]{width:min(740px,calc(100% - 28px))}#panelBody .places{margin:22px 0;grid-template-columns:repeat(2,minmax(0,1fr))}.places button{min-width:0;text-align:left;padding:15px 16px;border-top:5px solid var(--station-accent);display:flex;flex-direction:column;gap:7px}.places strong{font-size:17px;line-height:1.35}.places span{font-size:13px;font-weight:400;line-height:1.4}.places small{margin-top:auto;padding-top:4px}@media(max-width:480px){#panelBody .places{grid-template-columns:1fr}.places button{gap:4px;padding:12px 14px}}
/* Rover actions stay on the right; the movement pad remains on the left. */
.rover-board{width:100%;margin-bottom:8px;background:#c1ded2;font-size:13px}.rover-board[aria-disabled="true"]{background:#ede2c8;color:#57676a}
.look{min-width:156px}.look [id="ascendRover"],.look [id="descendRover"]{touch-action:none;background:#d4e6da}.look #landRover{background:#f5dba0}
.expedition-hud{position:absolute;top:22px;right:26px;width:204px;text-align:center}.expedition-hud>button{width:100%;font-size:13px;background:#fbf4e4ed;box-shadow:0 2px 0 #19374722}.expedition-hud output{display:block;margin-top:8px;padding:8px;border-radius:10px;background:#18394ce8;color:#fff2d0;font-size:12px;font-weight:bold;font-variant-numeric:tabular-nums}
#starMap{margin-top:8px;padding:8px 10px 12px;border:1px solid #b4c7c2;border-radius:16px;background:#17394cf5;color:#fff2d0;box-shadow:0 6px 16px #10283933}#starMap svg{display:block;width:100%;height:170px}#starMap p{display:flex;justify-content:space-around;gap:4px;margin:0 0 8px;font-size:12px}#starMap p span:first-child{color:#f3c663}#starMap p span:nth-child(2){color:#91dfd2}#starMap small{font-size:10px;line-height:1.6;color:#c8d8d4}
@media(max-width:700px){.expedition-hud{top:97px;right:12px;width:165px}.expedition-hud>button{min-height:40px;font-size:12px;padding:7px}.expedition-hud output{font-size:10px}#starMap svg{height:143px}#starMap{padding:4px 7px 10px}.look{min-width:144px}.rover-board{min-height:44px;font-size:12px}.speaking .expedition-hud{visibility:hidden}#view[data-travel="flight"] .interaction{bottom:209px}#view[data-travel="drive"] .interaction{bottom:185px}#view[data-travel="flight"] #controlsHint,#view[data-travel="drive"] #controlsHint{display:none}}
@media(max-height:570px) and (orientation:landscape){.expedition-hud{top:12px;right:12px;width:160px}#starMap svg{height:105px}#starMap small{display:none}.rover-board{margin-bottom:6px;min-height:40px}.look .action-buttons{gap:5px}}
.jetpack-button{width:100%;min-height:48px;margin-bottom:8px;background:#dfd1ec;font-size:13px;border-color:#b4a2c5}.jetpack-button kbd{font:inherit;margin-left:5px;font-size:11px}.jetpack-button:hover{background:#ebe0f4}
#starMap .high-star{color:#d9b5fb}#starMap p{font-size:11px}
#view[data-travel="jetpack"] .guide{border-color:#d7c0e9}#view[data-travel="jetpack"] #roverTelemetry{border:1px solid #bda8d2}
@media(max-width:700px){#view[data-travel="jetpack"] #controlsHint{display:none}.jetpack-button{min-height:44px;font-size:12px}.jetpack-button kbd{display:none}#starMap p{font-size:10px}}

/* Navigation and central proximity actions. */
.topbar nav{flex-wrap:wrap;justify-content:flex-end}.topbar #help{white-space:nowrap}
#panel[data-mode="destinations"] #panelActions{display:none}#panel[data-mode="destinations"] .places{margin-bottom:0}
#panel[data-mode="help"] #panelActions{display:none}#panel[data-mode="help"] .quick-guide,#panel[data-mode="help"] .quick-guide li:last-child{margin-bottom:0}
#panelBody .tutorial-start{display:inline-flex;align-items:center;justify-content:center;padding:10px 15px;border:1px solid var(--line);border-radius:15px;text-decoration:none;touch-action:manipulation}#panelBody .tutorial-start:hover{background:#f4d48f}

/* Keep the scrollbar inside the paper windows' rounded outline. */
:is(dialog,.speech-copy,.scope-content,.scope-picker-options){scrollbar-width:thin;scrollbar-color:#98a493 transparent;overscroll-behavior:contain}
@supports selector(::-webkit-scrollbar){
  :is(dialog,.speech-copy,.scope-content,.scope-picker-options){scrollbar-width:auto;scrollbar-color:auto}
  :is(dialog,.speech-copy,.scope-content,.scope-picker-options)::-webkit-scrollbar{width:12px;height:12px;background:transparent}
  :is(dialog,.speech-copy,.scope-content,.scope-picker-options)::-webkit-scrollbar-track{background:transparent;margin:20px 0}
  :is(dialog,.speech-copy,.scope-content,.scope-picker-options)::-webkit-scrollbar-thumb{min-height:40px;border:3px solid transparent;border-radius:20px;background:#98a493;background-clip:padding-box}
  :is(dialog,.speech-copy,.scope-content,.scope-picker-options)::-webkit-scrollbar-thumb:hover{background-color:#70836d}
  :is(dialog,.speech-copy,.scope-content,.scope-picker-options)::-webkit-scrollbar-button{display:none;width:0;height:0}
  :is(dialog,.speech-copy,.scope-content,.scope-picker-options)::-webkit-scrollbar-corner{background:transparent}
}
.settings-content{display:grid;gap:12px}.settings-content ul{margin:0 0 12px}.settings-content button{text-align:left}.settings-content label{margin:6px 0!important}
#view .interaction .rover-board{width:auto;max-width:100%;background:#c1ded2}.interaction:has(#boardRover:not([hidden])) #resume{display:none}
@media(max-width:600px){.topbar{flex-wrap:wrap}.topbar .brand{width:100%}.topbar .brand h1{max-width:none}.topbar nav{width:100%;justify-content:space-between}.topbar #help{font-size:13px}}

/* Compact navigation keeps every destination available from a single popup. */
.menu-icon{display:none;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
#panel[data-mode="menu"]{width:min(500px,calc(100% - 28px))}
.world-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}
.world-menu button{min-width:0;min-height:64px;padding:10px;font-size:14px;box-shadow:none;background:#f2e8d1;overflow-wrap:anywhere;hyphens:auto}
.world-menu button:first-child{background:#f5dba0}
#panelBody .world-exit{margin-top:22px;padding:14px;border:1px solid var(--line);border-radius:14px;text-align:center;font-size:15px;text-decoration:none}
#panelBody .world-exit:hover{background:#efe6d1}
#panel[data-mode="menu"] #panelActions{display:none}
.panel-back{min-height:44px;margin:-10px 0 12px;padding:6px 10px;border:0;background:transparent;box-shadow:none;font-size:14px}
#panelTitle:focus{outline:none}
#panelBody .syllable-setting{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#f6ecd5;cursor:pointer}
#panelBody .syllable-setting input{width:24px;height:24px;min-height:24px;margin:0;flex:none}
#panelBody #syllableHint{margin:-4px 0 10px}
#panel[data-mode="reading-break"][open]{display:flex;flex-direction:column;width:min(540px,calc(100% - 28px));overflow:hidden}
#panel[data-mode="reading-break"] #panelText{display:none}
#panel[data-mode="reading-break"] #panelEyebrow,#panel[data-mode="reading-break"] #panelTitle,#panel[data-mode="reading-break"] #panelActions{flex:none}
#panel[data-mode="reading-break"] #panelBody{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#98a493 transparent;padding-right:4px}
#panelBody .reading-break-explanation{font-size:17px;line-height:1.6;margin-top:0}
#panelBody .reading-break-pause{padding:12px 14px;border-radius:12px;background:#e5ecdc;font-size:16px;font-weight:700;line-height:1.5}
#panelBody .reading-break-exit-note{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:0}
#panel[data-mode="reading-break"] #panelActions{display:grid;grid-template-columns:1fr;gap:12px}
#panel[data-mode="reading-break"] #panelActions button{min-height:50px;box-shadow:none}
@media(max-height:540px) and (orientation:landscape){
  #panel[data-mode="reading-break"]{padding:18px 22px}
  #panel[data-mode="reading-break"] #panelEyebrow{margin:0 0 6px;font-size:10px}
  #panel[data-mode="reading-break"] #panelTitle{margin:0 0 10px;font-size:24px}
  #panel[data-mode="reading-break"] #panelActions{grid-template-columns:1fr 1fr;margin-top:14px}
}

/* Phones: the landscape fills the viewport, with a floating menu and two HUD columns. */
@media(max-width:600px),(max-width:1000px) and (max-height:570px) and (orientation:landscape){
  #worldApp{position:relative}
  #worldApp>.topbar{position:absolute;z-index:5;top:max(10px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));min-height:0;padding:0;border:0;background:transparent;display:block}
  #worldApp>.topbar .brand,#worldApp>.topbar nav>button:not(#menu){display:none}
  #worldApp>.topbar nav{width:auto;display:block}
  #worldApp>.topbar #menu{display:flex;align-items:center;gap:8px;min-height:44px;padding:9px 12px;background:#fbf4e4ed;border:1px solid #f6efdaa8;border-radius:14px;font-size:13px;box-shadow:0 3px 12px #10283922}
  #menu .menu-icon{display:block}
  #worldApp>.admin-banner{position:absolute;z-index:4;bottom:0;left:0;right:0;font-size:10px;padding:0;gap:8px}
  #worldApp>.admin-banner button{min-height:24px;font-size:10px}
  #view .guide{top:calc(max(10px,env(safe-area-inset-top)) + 54px);left:max(12px,env(safe-area-inset-left));width:calc(50% - max(12px,env(safe-area-inset-left)) - 6px);max-width:50%;padding:8px;gap:6px;border-radius:14px}
  #guideArrow{width:19px;flex:none;font-size:25px}
  .guide>div{min-width:0;flex:1}
  #guideName{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .guide small{font-size:10px;line-height:1.4;overflow-wrap:break-word}
  .guide .star-wallet{flex:none;min-width:40px;min-height:44px;padding:5px;gap:3px;margin-left:0;font-size:13px;border-radius:10px}
  .guide .star-symbol{font-size:17px}
  #view .expedition-hud{top:max(10px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:calc(50% - max(12px,env(safe-area-inset-right)) - 6px);max-width:200px}
  .expedition-hud>button{min-height:44px}
  #view .session-clock{gap:5px;padding:7px 8px;max-width:none}
  .session-clock strong{font-size:16px;white-space:nowrap}
  .session-clock .clock-label{font-size:8px;letter-spacing:0}
  .session-clock small{font-size:9px}
  #toast{top:calc(max(10px,env(safe-area-inset-top)) + 155px);max-width:calc(100% - 32px);padding:10px 14px;font-size:13px}
  #starMap svg{height:125px}
}
@media(max-width:1000px) and (max-height:570px) and (orientation:landscape){
  #view .guide{width:min(240px,calc(100% - 384px - env(safe-area-inset-left) - env(safe-area-inset-right)))}
  #starMap{position:absolute;top:0;right:calc(100% + 10px);width:144px;margin:0;padding:6px}
  #starMap svg{height:105px}
  #starMap p{font-size:9px;gap:2px}
}
