:root{color-scheme:dark;--text:#f4f0e7;--muted:#d4ddcd;--surface:#14251ef0;--line:#e6ddbc52;--accent:#f0e9d8;--action-ink:#17291e;font-family:Arial,Helvetica,sans-serif;background:#17271f;color:var(--text)}
*{box-sizing:border-box}body{margin:0;position:fixed;inset:0}html,body,main{width:100%;height:100%;overflow:hidden}main{min-height:100dvh}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{cursor:wait;opacity:.5}[hidden]{display:none!important}:focus-visible{outline:3px solid #ffdda5;outline-offset:4px}
button,.primary{min-height:44px;padding:11px 15px;border:1px solid var(--line);border-radius:4px;color:var(--text);background:var(--surface);font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:10px}button:hover{filter:brightness(1.18)}.primary{background:var(--accent);color:var(--action-ink);border-color:var(--accent);font-weight:600}.primary:hover{background:#fff8e9}.skip{position:fixed;top:-100px;left:20px;z-index:20;padding:16px;background:white;color:#14271e}.skip:focus{top:15px}
#scene{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#09181055,transparent 17%,transparent 80%,#09181080)}
header{position:absolute;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:24px 32px;gap:12px;z-index:4}.identity{display:flex;min-height:44px;gap:10px;align-items:center;font-size:14px;font-weight:700;letter-spacing:.03em;color:#fff8e9;text-shadow:0 1px 8px #12251c}.identity img{filter:brightness(2.8) saturate(.35)}.identity small{font-size:10px;letter-spacing:.14em;font-weight:400;display:block;margin-top:6px}nav{display:flex;gap:7px}nav button{font-size:14px}
.eyebrow{font-size:12px;letter-spacing:.055em;margin:0 0 12px;color:var(--muted)}.welcome{position:absolute;left:32px;bottom:112px;max-width:400px;padding:24px 26px;background:var(--surface);border:1px solid var(--line);border-radius:5px;z-index:3}h1{font-weight:400;font-size:clamp(38px,4vw,55px);line-height:1.04;letter-spacing:-.045em;margin:0 0 18px}.welcome>p:not(.eyebrow){font-size:15px;line-height:1.5;color:var(--muted);margin:0 0 20px}.actions{display:flex;flex-wrap:wrap;gap:9px}.welcome #loading{font-size:14px;margin:14px 0 0;color:var(--muted)}
.path-card{position:absolute;left:32px;bottom:112px;background:var(--surface);border:1px solid var(--line);padding:15px 18px;border-radius:5px;max-width:560px;z-index:3;display:flex;align-items:center;gap:22px;flex-wrap:wrap}.path-copy{flex:1;min-width:160px}.path-card .eyebrow{font-size:12px;margin-bottom:6px}.path-card h2{font-size:23px;font-weight:400;letter-spacing:-.025em;margin:0 0 7px}.path-card p:not(.eyebrow){font-size:14px;color:var(--muted);line-height:1.4;margin:0}.path-actions{display:flex;gap:6px;flex-direction:column}.path-card .primary{white-space:nowrap}.path-card #image-status{width:100%;font-size:14px;border-top:1px solid var(--line);padding-top:10px}
.location{position:absolute;left:32px;bottom:22px;display:flex;align-items:center;gap:12px;z-index:3;pointer-events:none}.location svg{width:66px;height:66px;background:#15281ee8;border:1px solid #e8d6b64a;border-radius:50%;padding:3px}.location p{font-size:14px;line-height:1.4;margin:0;max-width:210px;background:var(--surface);padding:9px 12px;border-radius:3px}.location small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.help{position:absolute;bottom:40px;left:42%;font-size:12px;color:var(--text);padding:9px 12px;background:var(--surface);border-radius:3px}.help kbd{font:inherit;padding:4px;border:1px solid var(--line);margin-right:6px}.help span{margin-left:12px}
.controls{position:absolute;bottom:25px;right:32px;display:flex;gap:12px;align-items:flex-end;z-index:4}.controls>button{font-size:12px}.movement{display:grid;grid-template-columns:repeat(4,44px);gap:5px}.movement button{padding:8px;font-size:19px;min-width:44px;min-height:44px;touch-action:none}.travel-status{position:absolute;left:32px;bottom:112px;z-index:4;display:flex;align-items:center;gap:22px;max-width:calc(100% - 64px);padding:12px 15px;background:var(--surface);border:1px solid var(--line);border-radius:4px;font-size:14px}.travel-status button{min-height:44px;white-space:nowrap}
.fallback{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--surface);padding:30px;width:min(90%,550px)}.fallback p{font-size:16px;line-height:1.6}
#tour-preflight{width:min(480px,94vw)}#tour-preflight h2{font-size:28px;font-weight:400;letter-spacing:-.025em;margin:0 0 18px}#tour-preflight p{font-size:15px;line-height:1.5;color:var(--muted)}#tour-preflight progress{width:100%;height:10px;accent-color:#a7bd8f}#tour-preflight .actions{margin-top:20px}#tour-preflight-error{border-top:1px solid var(--line);padding-top:14px}
dialog{width:min(900px,94vw);max-height:90svh;padding:30px;border:1px solid #b6a17c;border-radius:5px;background:var(--surface);color:var(--text);box-shadow:0 30px 90px #0007}dialog::backdrop{background:#07140cc7;backdrop-filter:blur(5px)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.dialog-head h2{font-size:34px;letter-spacing:-.04em;font-weight:400;margin:0}.dialog-head button{font-size:23px;width:44px;flex:none}.map-intro{display:flex;align-items:center;gap:25px;margin:22px 0;border-bottom:1px solid var(--line);padding-bottom:22px}.map-intro svg{width:125px;height:125px;flex:none}.map-intro p{font-size:15px;line-height:1.6;margin:0 0 12px}label{display:flex;gap:10px;flex-direction:column;font-size:14px}input{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:3px;min-height:46px;padding:12px;font-size:16px}input::placeholder{color:var(--muted)}.world-list{list-style:none;padding:0;margin:22px 0;display:grid;grid-template-columns:1fr 1fr;gap:9px}.world-list li{display:flex;gap:5px}.world-list button{flex:1;min-width:0;justify-content:flex-start;min-height:80px;text-align:left;padding:9px;gap:12px}.world-list img{width:86px;height:57px;object-fit:cover;border-radius:2px}.world-list strong{display:block;font-size:15px;font-weight:400}.world-list small{display:block;font-size:12px;color:var(--muted);margin-top:7px}.website-shortcut{display:flex;align-items:center;justify-content:center;min-width:44px;border:1px solid var(--line);border-radius:3px}.website-shortcut:hover{background:#36513d}.artist-link{display:block;padding:18px 0;font-size:14px;border-top:1px solid var(--line)}.disclosure{font-size:14px;color:var(--muted);line-height:1.6}.sr-only{position:fixed;top:0;left:0;width:1px;height:1px;margin:0;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:1150px){.help{display:none}.location p{max-width:180px}}
@media(max-width:650px){
 header{padding:16px;gap:8px;flex-wrap:wrap}.identity{font-size:12px;gap:7px}.identity small{font-size:9px;letter-spacing:.05em}.identity img{width:22px}.identity span{max-width:130px}nav{gap:5px;margin-left:auto}nav button{font-size:12px;padding:10px;min-height:44px}
 .welcome{left:16px;right:16px;bottom:148px;padding:20px;max-width:none}h1{font-size:39px;margin-bottom:12px}.welcome>p:not(.eyebrow){font-size:14px;margin-bottom:16px}.welcome .eyebrow{margin-bottom:10px}.actions{gap:6px}.actions button{font-size:13px;padding:11px;flex:1}.welcome #loading{font-size:14px;margin-top:12px}
 .location{left:16px;bottom:18px;gap:8px;max-width:54%}.location svg{width:52px;height:52px;flex:none}.location p{font-size:12px;background:var(--surface);padding:6px;max-width:117px}.location small{font-size:12px}
 .controls{right:16px;bottom:18px;flex-direction:column;gap:8px}.controls>button{padding:9px 11px;min-height:44px}.movement{position:absolute;right:0;bottom:68px;grid-template-columns:repeat(4,44px);gap:4px}.movement button{font-size:17px;padding:6px}
 .path-card{left:16px;right:16px;bottom:142px;max-width:none;padding:12px;gap:12px;flex-wrap:nowrap}.path-copy{min-width:0}.path-card .eyebrow{display:none}.path-card h2{font-size:18px;margin-bottom:5px}.path-card p:not(.eyebrow){font-size:14px}.path-card .primary{font-size:13px;padding:10px}.path-card:has(#image-status:not([hidden])){flex-wrap:wrap}
 .travel-status{left:16px;right:16px;bottom:142px;max-width:none;gap:12px;font-size:14px;justify-content:space-between;padding:10px 12px}
 dialog{padding:20px;max-height:92svh}.dialog-head h2{font-size:28px}.map-intro{gap:15px;align-items:flex-start}.map-intro svg{width:85px;height:85px}.map-intro p{font-size:14px}.world-list{grid-template-columns:1fr}.world-list img{width:76px;height:54px}
}
@media(max-height:650px){.welcome{bottom:112px;padding:16px}.welcome h1{font-size:30px}.welcome>p:not(.eyebrow){margin-bottom:10px}.welcome #loading{display:none}.welcome .eyebrow{display:none}}
@media(prefers-color-scheme:light){:root{color-scheme:light;--text:#1a3023;--muted:#405841;--surface:#f4f0e7f5;--line:#52684460;--accent:#263c2c;--action-ink:#faf5e8}.primary:hover{background:#3b573f}.identity{color:#fff8e9}.world-list img{background:#d7ddcd}.website-shortcut:hover{background:#d9e1cf}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
