
:root{color-scheme:dark;--gold:#e7cf92;--green:#9be0be;--line:rgba(216,218,181,.25)}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#091816;color:#f7f5e8;font-family:Segoe UI,Arial,sans-serif}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,#view:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button:disabled{opacity:.35;cursor:default}
#stage{position:relative;isolation:isolate;width:100%;height:100%;overflow:hidden;background:#345771}#poster,#view{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}#view{touch-action:none;cursor:grab;opacity:0;transition:opacity .5s}#view.ready{opacity:1}#view.dragging{cursor:grabbing}#shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(4,15,14,.66),transparent 23%,transparent 69%,rgba(3,15,13,.86));z-index:1}.frame{position:absolute;inset:18px;border:1px solid rgba(232,216,165,.23);pointer-events:none;z-index:2}.frame:before,.frame:after{content:"";position:absolute;width:70px;height:1px;background:var(--gold);opacity:.7}.frame:before{top:-1px;left:0}.frame:after{bottom:-1px;right:0}
header{position:absolute;left:48px;right:48px;top:37px;display:flex;justify-content:space-between;align-items:flex-start;gap:24px;z-index:3;pointer-events:none}.brand img{width:177px;height:86px;object-fit:contain;filter:drop-shadow(0 4px 9px #0009)}.brand p{font-size:10px;letter-spacing:.3em;text-align:center;margin:3px 0 0;color:#e3e6d9}.label{display:flex;align-items:center;gap:10px;border:1px solid var(--line);padding:10px 15px;background:#091b19b3;backdrop-filter:blur(12px);border-radius:30px;font-size:11px;letter-spacing:.12em}.dot{width:6px;height:6px;background:#a7e5bb;border-radius:50%;box-shadow:0 0 12px #9eddc6}.label span:last-child{color:#bfccc4;border-left:1px solid var(--line);padding-left:10px;font-size:10px}
.intro{position:absolute;left:49px;bottom:75px;z-index:3;pointer-events:none}.intro .eyebrow{color:var(--gold);font-size:10px;font-weight:600;letter-spacing:.28em;margin:0 0 7px}.intro h1{font-family:Georgia,serif;font-size:39px;font-weight:400;margin:0;letter-spacing:.02em;text-shadow:0 2px 16px #0008}.intro .sub{color:#cad6cc;font-size:12px;letter-spacing:.04em;margin:10px 0 0}
.toolbar{position:absolute;bottom:66px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:5px;z-index:4;border:1px solid var(--line);background:#071b17db;backdrop-filter:blur(18px);padding:7px;border-radius:15px;box-shadow:0 9px 38px #0003}.toolbar button{display:grid;place-items:center;min-width:43px;height:43px;border:0;border-radius:9px;background:transparent;transition:background .18s,color .18s}.toolbar button:hover{background:#bdd6bd20;color:var(--gold)}.toolbar button[aria-pressed=true]{background:#b4dab125;color:var(--gold)}.toolbar .divider{width:1px;height:23px;background:var(--line);margin:0 3px}.toolbar svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.toolbar #auto{display:flex;gap:9px;padding:0 13px;font-size:12px;white-space:nowrap}.pause-icon{display:none}#auto[aria-pressed=true] .play-icon{display:none}#auto[aria-pressed=true] .pause-icon{display:block}
.guide{position:absolute;bottom:33px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:.05em;color:#c9d6cd;z-index:3;text-align:center;white-space:nowrap}.guide kbd{font:inherit;border:1px solid #879a8f80;border-radius:3px;padding:1px 4px}.orientation{position:absolute;right:49px;bottom:75px;z-index:3;text-align:center}.compass{width:57px;height:57px;border:1px solid var(--line);border-radius:50%;position:relative;margin:auto auto 10px;background:#0a201a80}.compass:before{content:"";position:absolute;inset:4px;border:1px dashed #ebdda64f;border-radius:50%}.needle{position:absolute;inset:12px;transform:rotate(0deg)}.needle:before{content:"";position:absolute;left:11px;top:0;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:17px solid var(--gold)}.needle:after{content:"";position:absolute;left:11px;bottom:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:14px solid #adc3ad63}.orientation small{font-size:9px;letter-spacing:.2em;color:#dbe7db}
#hint{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);z-index:3;pointer-events:none;border:1px solid #f7f1d960;border-radius:40px;padding:13px 22px;background:#061e19a3;backdrop-filter:blur(8px);font-size:13px;box-shadow:0 6px 25px #0002;transition:opacity .5s}.interacted #hint{opacity:0}.error-box{position:absolute;inset:0;z-index:8;display:grid;place-content:center;text-align:center;padding:24px;background:#061915b8;backdrop-filter:blur(8px)}.error-box[hidden]{display:none}.error-box p{max-width:420px;line-height:1.7;font-size:14px;color:#dce5dd}.error-box button{background:#163b30;border:1px solid var(--line);border-radius:8px;padding:12px 18px}.error-box h2{font-family:Georgia,serif;font-weight:400;font-size:28px}#status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:900px){.intro{bottom:154px;left:35px}.intro h1{font-size:32px}.orientation{right:36px;bottom:158px}.toolbar{bottom:62px}.frame{inset:12px}header{left:30px;right:30px;top:25px}.brand img{width:146px;height:73px}.brand p{font-size:8px}.label{font-size:9px;padding:9px 11px;gap:7px}.label span:last-child{font-size:9px}.guide{bottom:32px}}
@media(max-width:520px){header{left:24px;right:24px;top:25px}.brand img{width:129px;height:65px}.label{margin-top:11px}.label span:last-child{display:none}.intro{left:26px;bottom:155px}.intro .eyebrow{font-size:9px}.intro h1{font-size:31px}.intro .sub{font-size:11px}.orientation{right:27px;bottom:162px}.compass{width:48px;height:48px}.needle{inset:8px}.toolbar{width:max-content;max-width:calc(100% - 30px);gap:2px;padding:6px;bottom:65px}.toolbar button{min-width:38px;height:40px}.toolbar #auto{padding:0 9px;font-size:11px}.toolbar svg{width:18px;height:18px}.guide{font-size:9px}.desktop-help{display:none}#hint{font-size:12px;white-space:nowrap;padding:12px 19px}}
@media(max-height:530px){header{top:20px}.brand img{width:118px;height:56px}.brand p{display:none}.intro{bottom:75px}.intro h1{font-size:25px}.intro .sub{display:none}.orientation{bottom:72px}.toolbar{bottom:24px}.guide{display:none}.intro .eyebrow{font-size:8px}.frame{inset:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.tourmap{position:absolute;right:42px;bottom:72px;z-index:5;width:187px;padding:13px 13px 9px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(145deg,#0b2924e8,#071b18e8);box-shadow:0 10px 35px #0004;backdrop-filter:blur(15px)}
.map-title{display:flex;justify-content:space-between;gap:10px;font-size:8px;letter-spacing:.13em;color:var(--gold)}.map-title span:last-child{color:#bad0c4;white-space:nowrap}.map-drawing{height:143px;position:relative;margin-top:15px}.map-drawing>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.map-drawing ellipse{fill:#c7dab009;stroke:#c7dab021;stroke-width:1;stroke-dasharray:3 5}.map-drawing path{fill:none;stroke:#a7c6b85e;stroke-width:1.3}.map-point{position:absolute;transform:translate(-50%,-50%);width:32px;height:32px;border-radius:50%;border:0;background:transparent;display:grid;place-items:center;padding:0;z-index:2}.map-point span{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#183f32;border:1px solid #b4d3ae75;color:#d7e8db;font-size:9px;transition:background .2s,box-shadow .2s}.map-point:hover span{background:#51725a;box-shadow:0 0 0 4px #e7cf9215}.map-point[aria-current=location] span{background:var(--gold);border-color:var(--gold);color:#163228;box-shadow:0 0 0 4px #e7cf921a}.tourmap p{margin:10px 0 0;color:#b6ccbf;text-align:center;font-size:9px;letter-spacing:.02em}#map-heading{position:absolute;left:52.5%;top:31.7%;width:40px;height:40px;margin:-20px;pointer-events:none;transform:rotate(318deg)}#map-heading:before{content:"";position:absolute;left:11px;top:-12px;border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:17px solid #ead49760}
#hotspots{position:absolute;inset:0;z-index:2;pointer-events:none}.hotspot{position:absolute;transform:translate(-50%,-50%);border:0;background:none;pointer-events:auto;padding:9px;min-width:100px;text-align:center;touch-action:manipulation;filter:drop-shadow(0 4px 8px #0007)}.hotspot[hidden]{display:none}.hotspot .arrow{display:block;position:relative;margin:auto;width:49px;height:36px;border:1px solid #fff8;border-radius:50%;background:#0a352c80;transition:background .2s,transform .2s}.hotspot svg{width:32px;height:25px;margin-top:4px;fill:none;stroke:#fffbe9;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.hotspot .destination{display:inline-block;margin-top:6px;padding:5px 9px;border-radius:6px;background:#061f18cf;border:1px solid #e2d4a54d;font-size:10px;color:#f1e9d0;white-space:nowrap}.hotspot:hover .arrow,.hotspot:focus-visible .arrow{background:#427358dc;transform:translateY(-3px)}.hotspot:hover .destination{border-color:var(--gold)}
#veil{position:absolute;inset:0;background:#071e18;opacity:0;pointer-events:none;z-index:2;transition:opacity .22s}.travelling #veil{opacity:.82}#loading{position:absolute;top:110px;left:50%;transform:translateX(-50%);background:#071e18e8;border:1px solid var(--line);border-radius:30px;padding:10px 18px;z-index:6;font-size:12px;color:#e7dfc1;box-shadow:0 8px 28px #0004}#loading[hidden]{display:none}
@media(max-width:900px){.tourmap{right:27px;bottom:150px;width:147px;padding:11px}.map-drawing{height:111px;margin-top:14px}.map-title{font-size:7px}.tourmap p{font-size:8px}.intro{max-width:55%}.intro h1{font-size:29px}}
@media(max-width:520px){.tourmap{right:22px;bottom:149px;width:128px;padding:10px;border-radius:13px}.map-drawing{height:95px}.map-title{letter-spacing:.02em;gap:4px}.tourmap p{display:none}.map-point span{width:18px;height:18px;font-size:8px}.intro{bottom:159px;max-width:55%}.intro h1{font-size:26px}.intro .sub{font-size:10px;max-width:165px;line-height:1.5}#loading{top:108px;font-size:11px;max-width:90%;white-space:nowrap}.hotspot .destination{font-size:9px}#hint{font-size:11px;max-width:90%;white-space:normal;text-align:center}}
@media(max-height:530px){.tourmap{right:26px;bottom:25px;width:127px;padding:10px}.map-drawing{height:91px;margin-top:13px}.tourmap p{display:none}.intro{bottom:30px;left:28px;max-width:28%}.intro h1{font-size:24px}.intro .eyebrow{font-size:7px}.map-title{font-size:7px;letter-spacing:.02em}#loading{top:75px}.toolbar{bottom:24px}}

.walk-control{position:absolute;left:50%;bottom:139px;transform:translateX(-50%);display:flex;z-index:5;border:1px solid #d9c68d88;border-radius:13px;background:linear-gradient(125deg,#173f32ed,#0a241feb);box-shadow:0 8px 30px #0004;backdrop-filter:blur(14px);overflow:hidden}.walk-control button{border:0;background:transparent;padding:10px 16px}.walk-control button:hover:not(:disabled){background:#afcead24}.walk-control svg{width:20px;height:20px;fill:none;stroke:var(--gold);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}#walk-prev{border-right:1px solid var(--line);display:grid;place-items:center;padding:10px 14px}#walk-next{min-width:184px;text-align:left}.walk-main{display:flex;align-items:center;justify-content:space-between;color:var(--gold);font-size:15px;font-weight:600;gap:30px}#walk-target{display:block;font-size:10px;color:#ccddcf;margin-top:4px;letter-spacing:.04em}
.tourmap{width:181px;padding:0;bottom:72px;right:38px;border-radius:13px;overflow:hidden}#map-toggle{border:0;background:transparent;width:100%;display:flex;align-items:center;justify-content:space-between;padding:13px 12px;gap:8px;font-size:9px;color:var(--gold);letter-spacing:.06em}.map-toggle-icon{font-size:17px;line-height:10px;transition:transform .2s}.expanded .map-toggle-icon{transform:rotate(180deg)}.tourmap:not(.expanded) #map-content{display:none}#map-content{padding:0 11px 11px}.map-drawing{height:310px;margin-top:0;border:1px solid #b3d3ae33;border-radius:7px;background:#0b2119}.map-drawing>img{position:absolute;inset:0;width:100%;height:100%;opacity:.7;border-radius:7px}.map-drawing path{stroke:#e1d49ec9;stroke-width:1.5;vector-effect:non-scaling-stroke}.map-point{width:16px;height:16px;z-index:2}.map-point span{width:7px;height:7px;font-size:0;background:#a0e3c2;border:1px solid #102b1f;box-shadow:0 0 0 1px #0009}.map-point:hover span{width:11px;height:11px;background:#f5dea7}.map-point[aria-current=location] span{width:11px;height:11px;box-shadow:0 0 0 4px #e7cf924a}#map-heading{z-index:1}#map-heading:before{top:-3px}#station-select{width:100%;margin-top:11px;background:#102e25;border:1px solid var(--line);border-radius:6px;padding:8px 5px;color:#eef0df;font:11px Segoe UI,Arial,sans-serif}.tourmap p{font-size:8px;margin:9px 0 0;line-height:1.4}.sr-only{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
@media(max-width:1100px){.intro{bottom:203px;max-width:60%}.intro h1{font-size:30px}.intro .sub{max-width:260px;line-height:1.6}.tourmap{right:28px;width:153px;bottom:142px}.map-drawing{height:260px}}
@media(max-width:650px){.tourmap{top:122px;bottom:auto;right:23px;width:148px}.map-drawing{height:min(250px,34vh)}.intro{left:26px;bottom:219px;max-width:85%}.intro h1{font-size:28px}.intro .sub{max-width:270px;font-size:11px}.walk-control{bottom:132px}#walk-next{min-width:172px}.toolbar{bottom:64px}.tourmap p{display:none}#hint{top:47%}.guide{font-size:9px;bottom:33px}.map-point span{width:7px;height:7px}}
@media(max-height:580px){.intro{bottom:31px;left:27px;max-width:26%}.intro h1{font-size:24px}.intro .sub{display:none}.toolbar{bottom:22px}.walk-control{bottom:91px}.tourmap{top:100px;bottom:auto;right:24px;width:140px}.map-drawing{height:min(230px,50vh)}.tourmap p{display:none}.guide{display:none}}


#notice{position:absolute;top:110px;left:50%;transform:translateX(-50%);max-width:90%;padding:12px 18px;border:1px solid #e7cf9266;border-radius:10px;background:#15362def;color:#f5e5c2;font-size:12px;line-height:1.6;text-align:center;z-index:7}#notice[hidden]{display:none}
