
:root{color-scheme:dark;--paper:#f2ebd5;--muted:#b5c5bf;--ink:#132e35;--night:#10272d;--line:#365057;--gold:#f5c982;--mint:#a8c9a3;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--paper)}a{color:inherit;text-underline-offset:5px}button,a,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;background:transparent;border:1px solid var(--line);padding:11px 16px;min-height:44px;border-radius:5px;font-size:13px;font-weight:600}button:hover{background:#29464b;border-color:var(--gold)}button:disabled{cursor:default;opacity:.6}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}[hidden]{display:none!important}.skip{position:absolute;z-index:9;top:-80px;padding:12px;background:var(--paper);color:var(--ink)}.skip:focus{top:8px}.masthead,main,footer{max-width:1160px;margin:auto;padding-left:32px;padding-right:32px}.masthead{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:104px;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:750;letter-spacing:.12em;text-decoration:none}.brand-spark{color:var(--gold);font-size:38px;line-height:1}.llc{font-size:9px;align-self:end;margin:0 0 7px -6px;color:var(--muted)}.masthead nav{display:flex;align-items:center;gap:30px;font-size:13px}.masthead nav a{text-decoration:none}.plain-link{border-bottom:1px solid #81948b;padding:10px 0}.introduction{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:45px 0 34px}.eyebrow{font:600 10px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase;letter-spacing:.16em;color:var(--gold);margin:0 0 12px}h1{font:400 clamp(32px,4vw,49px)/1.13 Georgia,"Times New Roman",serif;letter-spacing:-.035em;margin:0}h1 em{font-weight:400;color:var(--gold)}.intro-copy{font-size:13px;line-height:1.8;color:var(--paper);margin:0 0 3px}.intro-copy span{color:var(--muted)}.game-shell{border:1px solid #48605d;border-radius:9px;overflow:hidden;background:var(--night);box-shadow:0 18px 60px #061d2233}.world-topline{padding:13px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);font:10px/1.5 ui-monospace,monospace;letter-spacing:.11em;color:#b5cbc1}.world-topline span:first-child{color:var(--paper)}.live-dot{display:inline-block;width:6px;height:6px;background:var(--gold);margin:0 9px 1px 0;box-shadow:0 0 9px #f5c98255}.stage{position:relative;isolation:isolate;background:#244b55;aspect-ratio:8/5;max-height:670px;outline-offset:-5px!important;overflow:hidden}canvas{display:block;width:100%;height:100%;image-rendering:pixelated}.destination{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);color:var(--paper);background:#112d32eb;border:1px solid #799083aa;border-radius:3px;padding:6px 10px;min-height:36px;font-size:11px;box-shadow:0 3px 0 #0b252c44;white-space:nowrap}.destination:hover,.destination[aria-current=true]{background:#f2d69d;color:#20373b;border-color:#fff0cd}.destination[aria-current=true]:after{content:"";position:absolute;bottom:-6px;left:calc(50% - 4px);width:8px;height:8px;transform:rotate(45deg);background:#f2d69d}.pin-number{font:9px ui-monospace,monospace;opacity:.75;margin-right:5px}.scene-caption{position:absolute;bottom:13px;left:18px;font:10px ui-monospace,monospace;letter-spacing:.03em;color:#e2e6c9;text-shadow:0 1px 3px #10282e}.travel-panel{padding:22px 24px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #405451}.travel-panel .eyebrow{font-size:9px;margin-bottom:6px}h2{font:400 25px/1.25 Georgia,serif;letter-spacing:-.02em;margin:0}.travel-panel p:not(.eyebrow){color:var(--muted);font-size:13px;line-height:1.6;margin:7px 0 0;max-width:640px}.primary{background:var(--gold);border:1px solid var(--gold);color:#173035;white-space:nowrap;box-shadow:0 3px 0 #bd8b58;font-size:12px;padding:12px 19px}.primary:hover{background:#ffe2a3;color:#173035}.primary span{margin-left:16px}.game-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid var(--line)}.game-toolbar p{font-size:11px;color:var(--muted);margin:0;line-height:1.65}.settings{display:flex;gap:6px;flex-shrink:0}.settings button{font-size:11px;padding:6px 10px;min-height:36px}.announcement{font:11px/1.5 ui-monospace,monospace;margin:0;padding:10px 20px 13px;color:#d4dabd;background:#192f32;min-height:40px}.scene-actions{display:flex;flex-wrap:wrap;gap:8px;padding:0 24px 18px}.scene-actions button{color:var(--paper);font-size:12px}.scene-actions button[aria-pressed=true]{color:var(--gold)}.workshop-controls{display:flex;align-items:center;justify-content:space-between;padding:0 24px 18px;gap:12px}.touch-controls{display:flex;gap:10px}.touch-controls button{touch-action:none;user-select:none;-webkit-user-select:none;min-width:64px;min-height:52px;background:#27454b;font-size:20px}.touch-controls .jump{font-size:14px;background:#b7d1b0;color:#193637;min-width:100px}.touch-controls button.held{background:var(--gold);color:var(--ink)}.level-actions{display:flex;gap:8px}.game-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;background:#0c252ad6;backdrop-filter:blur(2px)}.game-overlay h2{font-size:38px;max-width:450px}.game-overlay p:not(.eyebrow){max-width:360px;color:var(--muted);line-height:1.65;font-size:14px;margin:15px 0 23px}.below-world{display:flex;justify-content:space-between;align-items:start;gap:20px;padding:18px 2px 42px;font-size:11px;line-height:1.7;color:var(--muted)}.below-world>p{margin:0}.below-world>p span{color:var(--gold);margin-right:6px}.below-world details{max-width:390px;text-align:right}.below-world summary{cursor:pointer;min-height:32px}.below-world details p{max-width:370px}.below-world button{font-size:11px}#save-note{display:block;font-size:10px;margin-top:8px}footer{padding-top:28px;padding-bottom:32px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.footer-brand{display:flex;justify-content:space-between;gap:20px;margin-bottom:24px}.footer-brand span:first-child{letter-spacing:.13em;color:var(--paper);font-weight:650}footer nav{display:flex;flex-wrap:wrap;gap:4px 24px}footer nav a{padding:9px 0;min-height:36px}footer>p{font-size:10px;margin-top:22px}dialog{background:var(--ink);color:var(--paper);border:1px solid var(--gold);border-radius:8px;padding:30px;max-width:min(440px,90vw)}dialog::backdrop{background:#07191be6}dialog p{color:var(--muted);font-size:14px;line-height:1.7}dialog form{display:flex;gap:12px;flex-wrap:wrap}.noscript{padding:16px;color:var(--gold)}
@media(min-width:1400px){.masthead,main,footer{max-width:1240px}.introduction{padding-top:50px;padding-bottom:40px}}
@media(max-width:700px){.masthead,main,footer{padding-left:18px;padding-right:18px}.masthead{min-height:80px}.wordmark{font-size:14px;letter-spacing:.08em;gap:6px}.brand-spark{font-size:29px}.llc{display:none}.masthead nav{gap:15px;font-size:11px}.introduction{align-items:start;gap:16px;padding:28px 0 24px;flex-direction:column}h1{font-size:37px}.eyebrow{font-size:9px}.intro-copy{font-size:12px;line-height:1.7}.desktop-break{display:none}.stage{aspect-ratio:1}.destination{font-size:10px;padding:5px 8px;min-height:44px}.pin-number{display:none}.world-topline{font-size:8px;padding:12px;letter-spacing:.04em}.travel-panel{align-items:start;padding:18px;gap:14px;flex-direction:column}.travel-panel h2{font-size:23px}.travel-panel p:not(.eyebrow){font-size:12px}.travel-panel .primary{width:100%;text-align:center}.game-toolbar{padding:12px;align-items:start;flex-direction:column}.settings{flex-wrap:wrap;width:100%}.settings button{min-height:44px;flex:1}.announcement{font-size:10px;padding:10px 12px}.scene-caption{font-size:8px;left:12px}.below-world{flex-direction:column;gap:10px;padding-bottom:26px}.below-world details{text-align:left}.footer-brand{flex-direction:column;gap:7px;margin-bottom:12px}footer nav{gap:3px 18px}footer nav a{min-height:44px}.scene-actions{padding:0 18px 16px;display:grid;grid-template-columns:1fr 1fr}.scene-actions button{padding:10px;min-height:48px}.workshop-controls{padding:0 12px 16px;align-items:stretch;flex-direction:column}.level-actions{justify-content:end}.touch-controls{justify-content:space-between}.touch-controls button{min-width:72px;min-height:56px}.touch-controls .jump{min-width:120px}.game-overlay h2{font-size:30px}.game-overlay p:not(.eyebrow){font-size:12px}.game-overlay{padding:20px}}
.stage{max-height:none;width:100%}
.workshop-controls{padding-top:16px}
/* Fit the entire workshop plus its controls in the small viewport. Constrain
   width, not just height, so the 640x400 / 400x400 canvas stays undistorted.
   Reserve 112px for the 86px control row, or 168px for its 144px mobile stack. */
.stage[data-scene=workshop]{width:min(100%,calc((100svh - 112px)*1.6));margin-inline:auto}
@media(max-width:700px){.stage[data-scene=workshop]{width:min(100%,calc(100svh - 168px))}}
.intro-copy,.travel-panel p:not(.eyebrow){font-size:14px}
.game-toolbar p,.announcement{font-size:12px}
.settings button,.scene-actions button{font-size:13px}
.game-overlay{overflow:auto;justify-content:safe center}
@media(max-width:700px){.touch-controls button{min-width:56px;flex:1}.touch-controls .jump{min-width:92px;flex:1.4}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
