@font-face{font-family:Assistant;src:url('assets/Assistant-Assistant-Regular.ttf')}@font-face{font-family:Frank;src:url('assets/FrankRuhlLibre-FrankRuhlLibre-Regular.ttf')}
:root{--paper:#f5f2ea;--ink:#2e2927;--muted:#80776f;--wine:#602f40;--line:#dcd6cc;--gold:#af8c56;--bar:78px;--side:284px}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{font-family:Assistant,Arial,sans-serif;background:var(--paper);color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer;border:0;background:transparent;color:inherit}button:disabled{opacity:.4;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button{min-width:40px;min-height:42px}button:hover{background:#c9bca225}button:active{transform:translateY(1px)}[hidden]{display:none!important}.topbar{height:var(--bar);display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid var(--line);position:relative;z-index:20;background:var(--paper)}.brand{display:flex;gap:15px;align-items:center;text-decoration:none;color:var(--ink)}.brand img{width:61px;height:41px;object-fit:contain}.brand strong{font-family:Frank,serif;font-weight:400;font-size:25px}.brand small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.view-switch{display:flex;border:1px solid var(--line);border-radius:6px;padding:3px;gap:3px;position:absolute;left:50%;transform:translateX(-50%)}.view-switch button{padding:0 26px;min-height:36px;border-radius:3px;font-size:14px}.view-switch [aria-pressed=true]{background:var(--wine);color:#fff}.top-actions{display:flex;gap:8px}.icon-btn{border:1px solid var(--line);border-radius:50%;width:40px;height:40px;min-height:40px;font-size:21px}#app{display:grid;grid-template-columns:var(--side) 1fr;grid-template-areas:'side stage';height:calc(100dvh - var(--bar))}#stage{grid-area:stage;position:relative;overflow:hidden;background:#dcdedb;direction:rtl}#canvasWrap,#viewer,#photoView{position:absolute;inset:0;width:100%;height:100%}#viewer{display:block;touch-action:none;outline-offset:-5px}#photoView{background:#202326;overflow:hidden;touch-action:none}#photoBackdrop{position:absolute;inset:-50px;background-size:cover;background-position:center;filter:blur(30px) brightness(.35);opacity:.7}#photo{position:absolute;width:100%;height:100%;object-fit:contain;user-select:none;transform-origin:center;touch-action:none}.photo-label{position:absolute;top:74px;right:25px;font-size:12px;color:white;background:#24201c7a;padding:6px 12px;border-radius:3px;pointer-events:none}.stage-top{position:absolute;left:24px;right:24px;top:23px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.pill,.stage-actions button{padding:8px 15px;background:#f8f5efeb;color:var(--ink);border:1px solid #ffffff60;border-radius:5px;font-size:14px;box-shadow:0 3px 24px #18181a0b}.pill{font-size:12px;padding:9px 15px;letter-spacing:.5px}.stage-actions{display:flex;gap:6px;pointer-events:auto}.stage-actions button:last-child{width:42px;padding:0;font-size:20px}.station-info{position:absolute;right:30px;bottom:101px;pointer-events:none;max-width:450px;padding:14px 22px;background:#faf7f0ed;border-right:3px solid var(--gold);box-shadow:0 5px 25px #17120d15}.station-info>span{font-size:11px;color:var(--muted);letter-spacing:2px}.station-info h1{font-family:Frank,serif;font-weight:400;font-size:32px;margin:5px 0 3px}.station-info p{margin:0;font-size:15px;color:#6e6259;max-width:380px}.hint{position:absolute;bottom:81px;left:50%;transform:translateX(-50%);background:#fff9;color:#49423b;padding:4px 12px;border-radius:3px;font-size:11px;white-space:nowrap;pointer-events:none}.toolbar{position:absolute;bottom:23px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:2px;padding:5px 8px;background:#f9f6f0f2;border:1px solid #fff9;border-radius:8px;box-shadow:0 8px 35px #22180d23;white-space:nowrap}.toolbar button{padding:0 10px;font-size:17px;border-radius:4px}.toolbar button span{font-size:13px}.toolbar [aria-pressed=true]{background:#eee2de;color:var(--wine)}.divider{height:20px;width:1px;background:var(--line);margin:0 4px}#playIcon{font-size:20px;margin-left:7px}#sidebar{grid-area:side;background:var(--paper);display:flex;flex-direction:column;border-left:1px solid var(--line);z-index:12;min-height:0}.sidebar-head{padding:28px 24px 18px}.eyebrow{font-size:11px;letter-spacing:1.7px;color:var(--gold)}.sidebar-head h2{font:27px Frank,serif;margin:9px 0 6px}.sidebar-head p{font-size:14px;color:var(--muted);margin:0}.filters{display:flex;gap:4px;padding:0 22px 13px}.filters button{font-size:13px;border-radius:4px;flex:1;min-height:34px}.filters [aria-pressed=true]{background:var(--wine);color:white}.search{display:flex;align-items:center;gap:8px;padding:0 12px;margin:0 22px 13px;border:1px solid var(--line);border-radius:4px}.search span{font-size:24px;color:#998c7f}.search input{width:100%;border:0;background:none;outline:none;min-height:39px;font-size:13px}.search input::placeholder{color:#91857a}#stations{overflow:auto;flex:1;padding:0 12px 20px;scrollbar-width:thin;scrollbar-color:#cdc4b7 transparent}.station{display:flex;gap:11px;text-align:right;width:100%;padding:9px;border:1px solid transparent;border-radius:6px;margin:2px 0;align-items:center;position:relative}.station img{width:74px;height:54px;object-fit:cover;border-radius:3px}.station span{display:block}.station strong{font-size:14px;font-weight:600;display:block}.station small{font-size:11px;color:var(--muted);display:block;margin-top:5px}.station[aria-current=true]{background:#e9e1d6;border-color:#d9c9b5}.station[aria-current=true]:after{content:'';position:absolute;right:0;height:24px;width:3px;background:var(--wine);border-radius:2px}.section-label{font-size:10px;color:#9b8b79;margin:16px 10px 7px;letter-spacing:1px}.sidebar-footer{border-top:1px solid var(--line);padding:10px 18px;display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}.sidebar-footer button{margin-right:auto;min-height:30px;font-size:20px}.status-dot{width:5px;height:5px;background:var(--gold);border-radius:50%}.loading{position:absolute;top:86px;left:50%;transform:translateX(-50%);background:var(--paper);padding:18px 24px;width:min(350px,90%);border-radius:8px;box-shadow:0 5px 30px #0002;font-size:15px;text-align:center;z-index:10}.loading small{color:var(--muted);font-size:12px}.load-track{height:3px;background:#ddd4c7;margin:14px 0 8px;overflow:hidden}.load-track i{display:block;height:100%;background:var(--wine);width:1%;transition:width .4s}.error-card{position:absolute;z-index:30;top:30%;right:10%;left:10%;background:var(--paper);padding:26px;box-shadow:0 5px 35px #0004;border-radius:8px}.error-card p{font-size:14px}.error-card button{background:var(--wine);color:white;padding:0 20px;margin-left:8px}.welcome{position:fixed;inset:var(--bar) 0 0;z-index:15;color:white;background:#292c29}.welcome-image{width:100%;height:100%;object-fit:cover;object-position:center 48%}.welcome-shade{position:absolute;inset:0;background:linear-gradient(270deg,#141e23db 0%,#17232d99 25%,#17232d1c 65%),linear-gradient(0deg,#141b24b0,transparent 45%)}.welcome-content{position:absolute;right:6.5%;top:50%;transform:translateY(-45%)}.welcome-content .eyebrow{color:#e3caa7;letter-spacing:3px;font-size:12px}.welcome h2{font:clamp(44px,4.6vw,74px)/1.14 Frank,serif;margin:22px 0}.welcome p{font-size:18px;line-height:1.9;color:#e4e2da}.welcome-actions{display:flex;gap:12px;margin-top:32px}.primary{background:var(--wine);color:white;padding:13px 24px;border-radius:4px;font-size:16px}.primary:hover{background:#783d50}.primary span{margin-right:25px}.welcome .primary{background:#f4ede0;color:#3a2c2c}.welcome .primary:hover{background:#fff}.secondary{border:1px solid #e3d9c280;color:white;padding:13px 24px;border-radius:4px;font-size:16px;backdrop-filter:blur(5px)}.welcome-foot{display:flex;gap:18px;align-items:center;margin-top:33px;font-size:12px;color:#ddd9cb}.welcome-foot i{height:3px;width:3px;border-radius:50%;background:#bc9d68}.welcome-caption{position:absolute;bottom:25px;left:28px;font-size:11px;color:#ede7df}.map-panel{position:absolute;left:22px;top:80px;width:330px;background:#f9f6f0f7;border:1px solid #d7cbb7;border-radius:7px;box-shadow:0 8px 35px #0003;z-index:11;padding:14px}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:0 5px}.panel-heading strong{font:22px Frank}.panel-heading button{font-size:25px}.map-floors{display:flex;border-bottom:1px solid var(--line);justify-content:center}.map-floors button{font-size:12px;flex:1}.map-floors [aria-pressed=true]{color:var(--wine);border-bottom:2px solid var(--wine)}#map{width:100%;display:block;height:270px;overflow:visible}.map-panel p{font-size:11px;text-align:center;color:var(--muted);margin:0 0 7px}.map-point{cursor:pointer}.map-point circle{fill:#fff;stroke:var(--wine);stroke-width:2}.map-point.active circle{fill:var(--wine)}.map-point text{font-family:Assistant;fill:var(--wine);font-size:11px;font-weight:600;pointer-events:none}.map-point.active text{fill:#fff}.map-footprint{fill:#e8e0d4;stroke:#b9aa96;stroke-width:1.2}#hotspots{position:absolute;inset:0;pointer-events:none}.hotspot{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;display:flex;align-items:center;gap:7px;background:#f7f1e9ec;border:1px solid #ad9061;border-radius:30px;box-shadow:0 5px 20px #0003;font-size:12px;padding:5px 13px;white-space:nowrap}.hotspot:before{content:'↗';display:grid;place-items:center;width:25px;height:25px;background:var(--wine);border-radius:50%;color:white;font-size:16px}.hotspot:hover{background:white}#tourProgress{position:absolute;bottom:0;left:0;right:0;height:3px;direction:ltr}#tourProgress i{display:block;width:0;height:100%;background:var(--gold)}#toast{position:absolute;bottom:86px;left:50%;transform:translateX(-50%);padding:10px 18px;background:#302b26ee;color:white;border-radius:5px;opacity:0;transition:opacity .2s;pointer-events:none;z-index:40;font-size:14px;white-space:nowrap}#toast.visible{opacity:1}dialog{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:35px;width:min(640px,92vw);box-shadow:0 20px 70px #0004;max-height:88dvh;overflow:auto}dialog::backdrop{background:#181f28a0;backdrop-filter:blur(4px)}dialog h2{font:34px Frank;margin:10px 0 25px}.dialog-close{position:absolute;left:14px;top:12px;font-size:27px}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 28px}.help-grid article b{font-size:16px}.help-grid p,details p{font-size:14px;line-height:1.7;color:#74675b;margin-top:7px}details{margin:18px 0 25px;border-top:1px solid var(--line);padding-top:17px}summary{cursor:pointer;font-size:14px}.setting{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid var(--line)}.setting select{border:1px solid var(--line);background:#fff8;padding:9px;border-radius:4px;max-width:230px}.setting input{accent-color:var(--wine);width:20px;height:20px}.settings-note{font-size:13px;color:var(--muted);line-height:1.6}.mobile-only{display:none}#touchControls{position:absolute;bottom:115px;left:18px;direction:ltr;text-align:center}#touchControls button{width:45px;height:45px;border-radius:50%;background:#f5eee0dd;margin:2px;font-size:22px;touch-action:none;box-shadow:0 2px 10px #0002}#noResults{font-size:14px;text-align:center;color:var(--muted)}
@media(max-width:1100px){:root{--side:246px}.topbar{padding:0 20px}.station-info{right:20px;bottom:112px;max-width:330px}.station-info h1{font-size:28px}.station-info p{font-size:13px}.toolbar button{padding:0 8px}.toolbar #modeBtn span,.toolbar #topBtn span{display:none}.brand strong{font-size:21px}.brand small{font-size:11px}.sidebar-head{padding:24px 20px 15px}.sidebar-head h2{font-size:24px}.view-switch button{padding:0 20px}}
@media(max-width:900px){:root{--bar:65px;--side:0px}.topbar{padding:0 13px;gap:10px}.brand{gap:9px}.brand img{width:44px;height:30px}.brand strong{font-size:19px}.brand small{display:none}.top-actions{gap:4px}.icon-btn{width:34px;min-width:34px;height:34px;min-height:34px;font-size:18px}.mobile-only{display:block}.view-switch{position:fixed;top:79px;left:50%;z-index:22;background:#f8f5eef5;border-color:#fff6;box-shadow:0 3px 15px #0001}.view-switch button{font-size:12px;padding:0 18px;min-height:32px}body.welcoming .view-switch{display:none}#sidebar{position:fixed;right:0;top:65px;bottom:0;width:min(300px,87vw);transform:translateX(101%);transition:transform .25s;box-shadow:-10px 0 30px #0002;z-index:24}body.menu-open #sidebar{transform:translateX(0)}.stage-top{top:63px;right:14px;left:14px}.stage-actions button{font-size:12px;padding:6px 9px;min-height:36px}.stage-actions button:last-child{width:36px;font-size:18px}.pill{font-size:11px;padding:7px 10px}.toolbar{bottom:max(16px,env(safe-area-inset-bottom));gap:0;max-width:calc(100% - 20px);padding:3px 5px}.toolbar button{min-width:31px;min-height:41px;padding:0 7px;font-size:18px}.toolbar button span{font-size:11px}#playIcon{margin-left:4px}.divider{margin:0 2px}.toolbar #topBtn,.toolbar #resetBtn{display:none}.station-info{right:15px;bottom:97px;padding:11px 15px;max-width:calc(100% - 30px)}.station-info h1{font-size:27px}.station-info p{font-size:12px;max-width:260px}.station-info>span{font-size:10px}.hint{bottom:71px;font-size:10px;max-width:90%;overflow:hidden;text-overflow:ellipsis}.welcome-image{object-position:55% center}.welcome-shade{background:linear-gradient(0deg,#101c27ec, #14202b99 55%,#14202b22)}.welcome-content{right:26px;left:22px;top:auto;bottom:70px;transform:none}.welcome-content .eyebrow{font-size:10px;letter-spacing:2px}.welcome h2{font-size:44px;margin:18px 0}.welcome p{font-size:15px}.welcome-actions{margin-top:24px;gap:9px}.welcome-actions button{font-size:14px;padding:12px 17px}.welcome-foot{margin-top:25px;gap:14px;font-size:11px}.welcome-caption{left:22px;bottom:24px;font-size:10px}.map-panel{left:12px;right:12px;top:108px;width:auto;max-width:340px;margin:0 auto}.photo-label{top:109px;right:14px;font-size:10px}.help-grid{grid-template-columns:1fr;gap:8px}dialog{padding:28px 24px}.loading{top:112px}#touchControls{bottom:213px;left:12px}#touchControls button{width:39px;height:39px;min-width:39px;min-height:39px}.setting{font-size:14px}.setting select{max-width:190px;font-size:13px}.hotspot{font-size:11px;padding:4px 8px}#toast{font-size:12px;max-width:90%;white-space:normal;text-align:center}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
body.immersive #stage{position:fixed;inset:0;width:100vw;height:100dvh;z-index:25}body.immersive #sidebar,body.immersive .brand,body.immersive #helpBtn,body.immersive #menuBtn,body.immersive #sceneKind{display:none}body.immersive .topbar{position:fixed;top:15px;right:20px;padding:0;background:transparent;border:0;height:auto;z-index:40}body.immersive .view-switch{position:fixed;top:15px;left:50%;background:var(--paper)}body.immersive #fullBtn{background:var(--paper)}body.immersive .stage-top{justify-content:flex-end}body.immersive .welcome{inset:0;z-index:30}

/* Native 360 viewer */
#panoramaWrap,#panoramaCanvas{position:absolute;inset:0;width:100%;height:100%;background:#242526}
#panoramaCanvas{display:block;touch-action:none;cursor:grab;outline-offset:-5px}
#panoramaCanvas:active{cursor:grabbing}
#panoLinks{position:absolute;left:24px;top:135px;display:flex;flex-direction:column;gap:7px;max-width:210px}
#panoLinks button{background:#faf7f0e8;border:1px solid #c9b38b88;box-shadow:0 3px 15px #0002;border-radius:24px;font-size:13px;text-align:right;padding:4px 16px;min-height:38px;backdrop-filter:blur(6px)}
#panoLinks button:hover{background:#fff}
.view-switch{width:max-content;max-width:calc(100% - 24px)}.view-switch button{padding:0 18px;white-space:nowrap}
@media(max-width:900px){.view-switch button{padding:0 14px}#panoLinks{top:147px;left:14px;max-width:160px;gap:5px}#panoLinks button{font-size:11px;min-height:32px;padding:3px 12px}#panoLabel{max-width:calc(100% - 28px)}}
body[data-view="360"] #resetBtn{display:block} body[data-view="360"] .toolbar .divider:nth-of-type(1){display:none} #panoramaCanvas{transition:opacity .3s} @media(prefers-reduced-motion:reduce){#panoramaCanvas{transition:none}}
@media(max-height:500px){.station-info{bottom:85px;padding:8px 12px}.station-info h1{font-size:22px;margin:2px 0}.station-info p{display:none}#panoLinks{top:100px;gap:4px}#panoLinks button{min-height:29px;font-size:11px}.map-panel{max-height:calc(100dvh - 165px);overflow:auto}}
@media(max-height:500px){#panoLinks{max-height:calc(100% - 185px);overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-width:thin;scrollbar-color:#b8a78a transparent}.sidebar-head{padding:12px 20px 8px}.sidebar-head .eyebrow,.sidebar-head p{display:none}.sidebar-head h2{font-size:21px;margin:0}.filters{padding-bottom:8px}.search{margin-bottom:8px}.welcome-content{bottom:22px}.welcome h2{font-size:32px;margin:10px 0}.welcome p{font-size:13px}.welcome-actions{margin-top:14px}.welcome-actions button{padding:9px 16px}.welcome-foot{margin-top:12px}.welcome-caption{bottom:7px;font-size:9px}}
@media(min-width:600px) and (max-width:900px) and (max-height:500px){:root{--bar:56px}.view-switch{position:absolute;top:auto;box-shadow:none}#sidebar{top:56px}.stage-top{top:14px}.photo-label{top:57px}#panoLinks{top:88px;max-height:calc(100% - 165px)}.map-panel{top:60px;max-height:calc(100dvh - 140px)}.loading{top:90px}}
@media(min-width:600px) and (max-width:700px) and (max-height:500px){.brand span{display:none}}
#map{overflow:hidden}#map image{pointer-events:none}
