@charset "UTF-8";
:root{color-scheme:light;--ink:#193b35;--cream:#faf7ef;--saffron:#d78b3d;--muted:#69746a;--line:rgba(30,59,47,.15);font-family:Inter,"Segoe UI",Arial,sans-serif;font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#aebfb8;color:var(--ink)}button,select,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #da9346;outline-offset:4px}button{border:0}#world{display:block;width:100%;height:100%;touch-action:none;outline:0}.topbar{position:absolute;z-index:4;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:27px 34px;pointer-events:none;background:linear-gradient(#102e252b,transparent)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff8e8;pointer-events:auto;filter:drop-shadow(0 1px 4px #112a2760)}.brand svg{width:35px;height:40px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}.brand>span{font-weight:600;font-size:18px;letter-spacing:3.8px;line-height:1.3}.brand small{display:block;font-size:8px;letter-spacing:2.25px;font-weight:500;margin-top:4px}.topbar nav{display:flex;gap:8px;pointer-events:auto;align-items:center}.pill,.icon{background:#fbf8f0e8;color:var(--ink);height:39px;box-shadow:0 3px 18px #182f2520;backdrop-filter:blur(10px)}.pill{padding:0 17px;border-radius:24px;font-size:12px;font-weight:600;display:flex;align-items:center;gap:8px}.pill span{font-size:21px;font-weight:400}.icon{width:39px;border-radius:50%;font-size:19px;position:relative}.icon:hover,.pill:hover{background:#fff}.off-dot{position:absolute;width:7px;height:7px;background:#bd7641;border:1.5px solid var(--cream);border-radius:50%;bottom:8px;right:8px}.sound-on .off-dot{display:none}.veil{position:absolute;inset:0;z-index:3;background:linear-gradient(90deg,#f6f3e9fa 0%,#f6f3e9f2 29%,#f6f3e999 49%,#f6f3e900 73%);display:flex;align-items:center;transition:opacity .7s}.intro{margin-left:7.5vw;margin-top:65px;width:365px;max-width:84vw}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:650;margin:0 0 22px;color:#697366}h1{font-size:clamp(35px,4.1vw,64px);line-height:1.08;letter-spacing:-2px;font-weight:450;margin:0 0 24px}h1 em{font-family:Georgia,serif;font-style:italic;font-weight:400;color:#8c6c49;font-size:.78em;letter-spacing:-1.6px}.intro-copy{font-size:14px;line-height:1.8;color:#5a685e;max-width:335px;margin-bottom:26px}.loading{max-width:335px;margin-bottom:22px}.load-head{display:flex;justify-content:space-between;font-size:10px;color:#70796e;margin-bottom:8px}.load-track{height:2px;background:#dcded3;overflow:hidden}.load-track i{display:block;width:0;height:100%;background:var(--saffron);transition:width .25s}.primary{background:var(--ink);color:var(--cream);padding:16px 20px;border-radius:4px;display:flex;align-items:center;justify-content:space-between;width:100%;max-width:335px;font-size:13px;font-weight:550;letter-spacing:.2px;box-shadow:0 7px 20px #193b351a;transition:background .2s,transform .2s}.primary span{font-size:20px;font-weight:300}.primary:hover:enabled{background:#2c5144;transform:translateY(-1px)}.intro-note{font-size:10px;color:#8b9084;letter-spacing:.3px;margin-top:13px}.intro-location{position:absolute;right:32px;bottom:31px;text-align:right;color:#fff8e8;text-shadow:0 1px 5px #14312d;font-size:11px;letter-spacing:1px}.intro-location small{display:block;font-size:8px;letter-spacing:2px;margin-top:6px}.place-chip{position:absolute;left:31px;bottom:31px;border-radius:7px;background:#fbf8f0e8;backdrop-filter:blur(10px);padding:12px 17px;display:flex;gap:12px;align-items:center;box-shadow:0 3px 20px #193b3520;pointer-events:none}.location-dot{width:7px;height:7px;border:2px solid #62816b;border-radius:50%;box-shadow:0 0 0 4px #96b39c1c}.place-chip span{font-size:12px;font-weight:600}.place-chip small{display:block;font-size:9px;color:#7b8377;margin-top:4px}.controls-hint{position:absolute;bottom:33px;left:50%;transform:translateX(-50%);border-radius:30px;background:#173a31b8;color:#f3f0e6;backdrop-filter:blur(8px);padding:10px 18px;white-space:nowrap;font-size:10px;box-shadow:0 2px 12px #0001;pointer-events:none}.controls-hint i{font-style:normal;opacity:.4;margin:0 8px}kbd{font:inherit;letter-spacing:.5px;font-weight:650;background:#f5f3e624;padding:3px 5px;border-radius:3px;margin-right:3px}.compass{position:absolute;right:33px;bottom:29px;display:flex;align-items:center;gap:10px;color:#fffaf0;text-shadow:0 1px 6px #18372b;pointer-events:none}.compass span{font-size:10px;letter-spacing:2px}.compass i{font-style:normal;font-size:30px;color:#f1c885}.compass small{position:absolute;top:-20px;right:0;white-space:nowrap;font-size:9px;color:#edf4e7}.side-panel{position:absolute;z-index:6;top:0;bottom:0;left:0;width:390px;max-width:94vw;background:var(--cream);padding:45px 28px 24px;overflow:auto;box-shadow:12px 0 60px #0b221d30}.close{position:absolute;right:17px;top:13px;font-size:29px;font-weight:200;color:var(--muted);background:transparent;width:30px;height:32px}.side-panel .eyebrow,dialog .eyebrow{margin-top:9px;margin-bottom:15px}h2{font-family:Georgia,serif;font-weight:400;font-size:31px;letter-spacing:-.6px;margin:0 0 14px}.panel-copy,dialog p{font-size:12px;line-height:1.8;color:var(--muted)}#map{width:100%;height:auto;margin:12px 0 18px;border:1px solid var(--line);border-radius:5px;background:#edf0e5}.destination{display:flex;justify-content:space-between;align-items:center;width:100%;padding:13px 0;background:transparent;text-align:left;border-top:1px solid var(--line);color:var(--ink)}.destination strong{font-size:12px;font-weight:600}.destination small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.destination>span:last-child{font-size:20px;color:#ac7e4c}.destination:hover strong{color:#b57835}.map-note{font-size:9px!important;line-height:1.7!important;color:#92958a!important;margin-top:20px}dialog{border:0;border-radius:9px;background:var(--cream);color:var(--ink);width:430px;max-width:92vw;padding:34px;box-shadow:0 30px 100px #09231d55}dialog::backdrop{background:#0c2c2566;backdrop-filter:blur(5px)}.key-list{margin:20px 0}.key-list>div{display:flex;align-items:center;gap:15px;margin:13px 0;font-size:11px;color:#677265}.key-list kbd{background:#e8eadf;color:var(--ink);min-width:70px;text-align:center;padding:7px}.setting{font-size:12px;display:flex;align-items:center;justify-content:space-between;margin:25px 0;gap:12px}select{border:1px solid var(--line);border-radius:4px;padding:9px 12px;background:#f1f2e9;color:var(--ink);font-size:12px}input{accent-color:#254e40}#toast{position:absolute;z-index:12;left:50%;top:100px;transform:translate(-50%,-15px);border-radius:30px;background:#faf7efed;color:var(--ink);box-shadow:0 4px 25px #102c3030;padding:11px 20px;font-size:12px;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;text-align:center;max-width:85vw}#toast.show{opacity:1;transform:translate(-50%,0)}#error{background:#f2e4d9;border-radius:4px;padding:12px;font-size:12px;line-height:1.6;color:#874a31}#resume{position:absolute;z-index:2;left:50%;bottom:90px;transform:translateX(-50%);background:#fbf8f0e8;border-radius:30px;color:var(--ink);font-size:11px;padding:10px 16px}#resume span{margin-left:8px}#touch-controls{position:absolute;inset:0;pointer-events:none;z-index:3}#joystick{position:absolute;left:24px;bottom:25px;width:106px;height:106px;border:1px solid #fff8e854;background:#193c351a;border-radius:50%;pointer-events:auto;touch-action:none;backdrop-filter:blur(2px)}#stick{position:absolute;left:31px;top:31px;width:44px;height:44px;background:#faf5e9bb;border:1px solid #fff8e8;border-radius:50%;box-shadow:0 3px 18px #1635292b}.touch-actions{position:absolute;right:23px;bottom:27px;display:flex;align-items:flex-end;gap:12px}.touch-actions button{pointer-events:auto;touch-action:none;background:#faf6e5c4;color:var(--ink);border:1px solid #fff8e899;border-radius:50%;width:62px;height:62px;font-size:11px;font-weight:600}.touch-actions #run-touch{width:47px;height:47px}.touch-actions .held{background:#d7a365;color:white}.touch-look{position:absolute;right:23px;bottom:109px;color:#fff8e8;text-shadow:0 1px 5px #223c30;font-size:9px;letter-spacing:.5px}[hidden]{display:none!important}
@media(max-width:850px){.topbar{padding:20px}.brand>span{font-size:15px;letter-spacing:2.5px}.brand small{font-size:7px;letter-spacing:1.5px}.brand svg{width:29px}.topbar nav{gap:6px}.icon{width:34px;height:34px;font-size:17px}.pill{height:34px;font-size:11px;padding:0 12px}.controls-hint{bottom:20px;font-size:9px;padding:9px 12px}.controls-hint i{margin:0 3px}.place-chip{bottom:70px;left:20px}.compass{right:22px;bottom:22px}.intro{margin-left:6vw;width:335px}.intro-location{right:20px;bottom:22px}.veil{background:linear-gradient(90deg,#f6f3e9fa,#f6f3e9df 40%,#f6f3e930 85%)}h1{font-size:45px}}
@media(pointer:coarse){.controls-hint,#resume{display:none!important}.place-chip{bottom:155px;left:24px;padding:9px 13px}.compass{bottom:157px;right:28px}.topbar #fullscreen{display:none}.intro-location{display:none}}
@media(max-width:500px){.topbar{padding:13px 15px}.brand{gap:7px}.brand>span{font-size:12px;letter-spacing:2px}.brand small{font-size:6px;letter-spacing:1px}.brand svg{width:25px}.topbar nav{gap:5px}.pill{font-size:0;width:34px;padding:0;justify-content:center}.pill span{font-size:21px}.icon{width:31px;height:31px;font-size:15px}.intro{margin:60px 25px 0;width:calc(100% - 50px)}h1{font-size:43px}.intro-copy{font-size:13px;max-width:290px}.veil{background:linear-gradient(90deg,#f6f3e9f7,#f6f3e9da 78%,#f6f3e98a)}.eyebrow{font-size:9px}.side-panel{padding-top:40px}dialog{padding:28px}.brand small{margin-top:2px}.intro-note{font-size:9px}.loading{margin-top:20px}#hud .place-chip small{font-size:8px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

body:not(.playing) .brand{color:#294c3e;filter:none}

@media(max-height:600px){.intro{margin-top:50px}.intro .eyebrow{font-size:9px;margin-bottom:10px}h1{font-size:30px;line-height:1.05;margin-bottom:10px}.intro-copy{font-size:12px;line-height:1.5;margin-bottom:12px}.loading{margin-top:10px;margin-bottom:12px}.intro-note{font-size:9px;margin-top:6px}.intro .primary{padding:11px 16px}}
