*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#7897a1;color:#fff;font:14px 'Segoe UI',Arial,sans-serif}button{font:inherit;color:inherit;cursor:pointer;border:0}button:focus-visible{outline:2px solid #d9e8b6;outline-offset:5px}button:disabled{cursor:wait;opacity:.65}#world,#world canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#10271c55,transparent 24%,transparent 66%,#10251d77)}.topbar{position:absolute;top:0;left:0;right:0;padding:28px 34px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.brand{display:flex;align-items:center;gap:12px;text-shadow:0 1px 15px #22362e55}.brand-icon{font-size:42px;line-height:1}.brand strong{display:block;font-size:15px;font-weight:600;letter-spacing:3px}.brand span:not(.brand-icon){display:block;font-size:11px;letter-spacing:.8px;margin-top:5px;opacity:.8}.top-actions{display:flex;gap:7px;pointer-events:auto}.top-actions button,.pause{background:#1e332c40;border:1px solid #ffffff38;backdrop-filter:blur(16px);height:38px;padding:0 13px;border-radius:7px;transition:background .2s}.top-actions button:hover,.pause:hover{background:#24392a99}.top-actions span{font-size:12px;margin-left:5px}.compass{position:absolute;left:50%;transform:translateX(-50%);text-align:center;opacity:.85;font-size:9px;letter-spacing:3px;top:30px}.compass div{margin-top:7px;font-size:15px;font-weight:300}.compass b{color:#e6f0c1}.intro{position:absolute;left:5.5%;bottom:150px;text-shadow:0 2px 30px #20382755}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:500;display:flex;align-items:center;gap:9px}.eyebrow i,.local-badge i{display:inline-block;background:#d0dfae;width:6px;height:6px;border-radius:50%}.intro h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(48px,5vw,78px);line-height:1.03;letter-spacing:-2px;margin:22px 0}.intro p{line-height:1.8;font-size:14px;opacity:.9}.primary{margin-top:14px;background:#e8ecd8;color:#283e31;border:1px solid #ffffff88;padding:17px 22px;width:255px;border-radius:5px;font-size:13px;font-weight:600;box-shadow:0 6px 25px #1c302c22;text-align:left}.primary span{float:right;font-size:20px;font-weight:400;line-height:15px}.primary:hover{background:#fff9e8}.intro-hint{margin-top:17px;font-size:10px;letter-spacing:.8px;opacity:.75}.bottom-bar{position:absolute;bottom:23px;left:34px;right:270px;display:flex;gap:24px;align-items:center}.places-label{font-size:9px;letter-spacing:1.5px;white-space:nowrap}.places-label span{display:block;letter-spacing:0;font-size:10px;opacity:.65;margin-top:6px}#destinations{display:flex;gap:7px;flex-wrap:wrap}#destinations button{background:#20352d75;backdrop-filter:blur(18px);border:1px solid #ffffff30;border-radius:6px;padding:10px 13px;text-align:left;min-width:91px}#destinations button:hover,#destinations button.active{background:#e8ecd9;color:#283c2e;border-color:#e8ecd9}#destinations button small{display:block;opacity:.6;font-size:8px;letter-spacing:.3px;margin-top:3px}#destinations button b{font-size:11px;font-weight:500}.local-badge{font-size:10px;white-space:nowrap;display:none}.local-badge span{display:block;font-size:9px;opacity:.55;margin-top:5px}.local-badge i{width:4px;height:4px;margin-right:4px}.map-panel{position:absolute;right:30px;bottom:23px;background:#f0f0dfdf;border:1px solid #fff9;border-radius:9px;padding:13px 13px 9px;width:206px;color:#364638;backdrop-filter:blur(20px);box-shadow:0 8px 40px #193b2922}.map-panel>div{display:flex;align-items:center;justify-content:space-between}.map-panel>div>span{font-size:8px;letter-spacing:1.6px}.map-panel button{background:none;color:#45634c;font-size:20px;line-height:12px}#map{display:block;width:176px;height:176px;cursor:crosshair;margin:7px 0}.map-caption{display:block;font-size:8px;text-align:center;opacity:.65}.hidden{display:none!important}.pause{position:absolute;left:50%;bottom:111px;transform:translateX(-50%);height:32px;font-size:11px}#crosshair{position:absolute;left:50%;top:50%;height:4px;width:4px;background:#fff9;border-radius:50%;box-shadow:0 0 4px #0006;display:none;pointer-events:none}body.walking #crosshair{display:block}body.walking .intro{display:none}.toast{position:absolute;top:100px;left:50%;transform:translateX(-50%);border-radius:6px;padding:11px 18px;background:#243b2bdc;font-size:12px;opacity:0;transition:opacity .25s;pointer-events:none}.toast.visible{opacity:1}dialog{background:#f4f3e9;color:#293d30;border:1px solid #fff9;border-radius:12px;padding:27px;max-width:min(1000px,92vw);max-height:92vh;box-shadow:0 20px 100px #0e201a66}dialog::backdrop{background:#15291bb3;backdrop-filter:blur(9px)}dialog header{display:flex;justify-content:space-between;align-items:center;gap:35px;margin-bottom:20px}dialog h2{font-family:Georgia,serif;font-weight:400;font-size:29px;margin:10px 0}dialog .close{background:#e1e4d8;color:#334738;border-radius:50%;width:33px;height:33px;font-size:25px;flex-shrink:0}dialog p{font-size:12px;line-height:1.7;color:#5e6c60}#reference-image{display:block;max-height:65vh;max-width:100%;object-fit:contain;border-radius:5px}#reference-tabs{display:flex;gap:7px;margin-top:16px;flex-wrap:wrap}#reference-tabs button{padding:8px 15px;background:#e2e5d8;color:#3e5041;border-radius:4px;font-size:12px}#reference-tabs button.active{background:#344e3d;color:#fff}#help-dialog{width:600px}.help-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:14px;font-size:12px;margin:25px 0}.help-grid b{font-weight:500}.help-grid span{color:#6b746a}.note{background:#e9ecdf;padding:17px;border-radius:7px;margin:22px 0 15px}.note b{font-size:12px}.note p{margin-bottom:0}#stats{font-size:10px;color:#73816f}.mobile-controls{display:none}#error{position:absolute;inset:25%;background:#283a2a;padding:30px;line-height:1.7;border-radius:10px}
@media(min-width:1600px){.local-badge{display:block}.bottom-bar{gap:32px}#destinations button{min-width:115px;padding:12px 16px}.map-panel{width:220px}#map{width:190px;height:190px}}
@media(max-width:1100px){.places-label{display:none}.compass{display:none}.topbar{padding:23px}.bottom-bar{left:23px;gap:10px}.map-panel{right:23px;width:175px}#map{width:145px;height:145px}#destinations button{min-width:75px;padding:10px}.bottom-bar{right:210px}.brand span:not(.brand-icon){font-size:9px}.top-actions span{display:none}}
@media(max-width:700px){.topbar{padding:18px 15px;align-items:flex-start}.brand strong{font-size:12px;letter-spacing:2px}.brand-icon{font-size:32px}.brand span:not(.brand-icon){max-width:125px;font-size:8px}.top-actions{gap:4px}.top-actions button{height:32px;padding:0 9px}#quality,#fullscreen{display:none}.intro{left:25px;bottom:170px}.intro h1{font-size:55px}.intro p{font-size:12px}.intro .eyebrow{font-size:8px;letter-spacing:1.4px}.intro-hint{display:none}.primary{width:230px}.map-panel{right:14px;bottom:90px;width:125px;padding:9px}#map{width:105px;height:105px;margin:4px 0}.map-caption{display:none}.map-panel>div>span{font-size:6px}.bottom-bar{left:14px;right:14px;bottom:17px}#destinations{flex-wrap:nowrap;overflow-x:auto;width:100%}#destinations button{flex:1;min-width:72px;padding:10px 7px}#destinations button small{display:none}#destinations button b{font-size:10px}.mobile-controls{position:absolute;left:25px;bottom:105px;display:none}.mobile-controls span{display:block;font-size:8px;opacity:.75;margin-top:10px}body.walking .mobile-controls{display:block}#joystick{width:90px;height:90px;border:1px solid #ffffff66;border-radius:50%;background:#26392c40;touch-action:none;position:relative}#joystick i{position:absolute;width:35px;height:35px;left:27px;top:27px;border-radius:50%;background:#edf0dba8;border:1px solid #fff8;pointer-events:none}.pause{bottom:80px;font-size:10px}.pause span{display:none}.toast{top:83px;width:max-content;max-width:90vw;text-align:center}dialog{padding:17px}dialog h2{font-size:23px}#reference-tabs button{padding:8px 10px}#error{inset:15% 5%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
body.has-started .intro{left:34px;bottom:115px}body.has-started .intro h1,body.has-started .intro p,body.has-started .intro .eyebrow,body.has-started .intro .intro-hint{display:none}body.has-started .intro .primary{padding:12px 17px;width:225px;background:#e8ecd9ed;font-size:12px}
@media(max-width:700px){body.has-started .intro{left:15px;bottom:250px}body.has-started .intro .primary{width:215px}}
.overview-tools{display:none;position:absolute;left:50%;bottom:110px;transform:translateX(-50%);align-items:center;gap:8px;background:#243b2be8;border:1px solid #ffffff38;border-radius:8px;padding:10px 13px;backdrop-filter:blur(12px)}.overview-tools>span{font-size:10px;letter-spacing:1px;margin-right:10px}.overview-tools small{display:block;font-size:10px;letter-spacing:0;opacity:.75;margin-top:5px}.overview-tools button{background:#f0f1df;color:#304a36;border-radius:4px;height:32px;padding:0 12px;white-space:nowrap}.overview-tools #overview-in,.overview-tools #overview-out{font-size:20px;width:34px;padding:0}body.overview .overview-tools{display:flex}body.overview .intro,body.overview #pause,body.overview #crosshair,body.overview .mobile-controls,body.overview .compass{display:none!important}body.overview #world canvas{cursor:grab}body.overview #world canvas:active{cursor:grabbing}#overview[aria-pressed=true]{background:#e8ecd9;color:#283c2e}
@media(max-width:700px){.top-actions #overview{padding:0 7px}.top-actions #overview span{display:inline;font-size:9px;margin-left:3px}.overview-tools{bottom:88px;left:14px;right:14px;transform:none;justify-content:center;padding:9px;flex-wrap:wrap}.overview-tools>span{flex-basis:100%;text-align:center;margin:0 0 3px}.overview-tools small{font-size:8px}body.overview .map-panel{display:none}.overview-tools button{height:29px}}
