[hidden]{display:none!important}
html:has(dialog[open]),body:has(dialog[open]){overflow:hidden}
.ui-icon{display:block;width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.icon-slot{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;flex:none;line-height:1}
.tour-header .brand>span{display:flex;align-items:center;gap:6px}
.tour-header .brand .icon-slot{margin:0;letter-spacing:0}
.tour-header .brand .ui-icon{width:14px;height:14px}
.info-button,.close-dialog,.close,.drag-hint>button,.step{display:grid;place-items:center}
.header-button .ui-icon,.contact-button .ui-icon,.ai-label .ui-icon{width:17px;height:17px}
.contact-button .icon-slot{margin-left:12px}
.ai-label>.icon-slot{margin:0}
.plan-button,.position-switcher button,.solid-button,.contact-instagram,.original-footer>button{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.plan-button .ui-icon{width:16px;height:16px}
.viewer-controls .ui-icon{width:22px;height:22px}
.rooms-toggle .ui-icon{width:21px;height:21px}
#tray-arrow .ui-icon{width:17px;height:17px}
#direction-needle{display:flex;align-items:center;justify-content:center}
#direction-needle .ui-icon{width:22px;height:22px}
.drag-hint>span .ui-icon{width:28px;height:28px}
.next-room>.icon-slot{grid-column:2;grid-row:1/3}
.about-links .icon-slot,.line .icon-slot{margin-left:6px}
.nav #menu-open{gap:9px}.nav #menu-open::before{display:none}
.nav #menu-open .ui-icon{width:17px;height:17px}
.lightbox figure{align-items:center}
body.immersive-mode .tour-header,body.immersive-mode .scene-info,body.immersive-mode .position-switcher,body.immersive-mode .plan-button,body.immersive-mode .direction-dial,body.immersive-mode .drag-hint,body.immersive-mode .bottom-start,body.immersive-mode .next-room{display:none}
body.immersive-mode .vignette{display:none}
body.immersive-mode .tour-bottom{position:static;display:block;inset:auto}
body.immersive-mode .viewer-controls{position:static;display:block;background:none;padding:0}
body.immersive-mode .viewer-controls>:not(#fullscreen){display:none}
body.immersive-mode #fullscreen{position:fixed;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));width:48px;height:48px;z-index:15;background:var(--deep);color:var(--paper);border:1px solid var(--gold);border-radius:50%;pointer-events:auto}
body.immersive-mode .render-stage{inset:12px}
@media(max-width:680px){
  .tour-header .brand img{width:clamp(96px,30vw,140px)}
  .header-actions{display:grid;grid-template-columns:38px auto;gap:7px;max-width:180px}
  .header-actions #original-button{grid-column:1/-1;justify-self:end}
  .contact-button{padding:0 8px}.contact-button .icon-slot{margin-left:6px}
  .viewer-controls button{width:44px;height:44px}
  .expanded-tour .rooms-toggle .grid-icon{display:inline-flex}
  .rooms-toggle .grid-icon .ui-icon{width:16px;height:16px}
  #direction-needle .ui-icon{width:18px;height:18px}
}
@media(max-height:500px) and (min-width:681px){
  .lightbox[open]{display:block}
  .lightbox figure{position:absolute;inset:12px 64px 52px;height:auto;padding:0;display:flex;align-items:center;justify-content:center}
  .lightbox img{width:100%;height:100%;max-width:100%;max-height:100%;min-height:0;object-fit:contain}
  .lightbox figcaption{position:fixed;bottom:14px;left:80px;right:80px;margin:0;text-align:center;line-height:1.5}
  .lightbox .close{top:8px;right:8px;width:44px;height:44px}
  .lightbox .step{position:absolute;bottom:8px;width:44px;height:44px}
  .lightbox [data-step="-1"]{left:12px}.lightbox [data-step="1"]{right:12px}
}
@media(max-width:820px){
  .lightbox{margin:0;inset:0;width:100vw;height:100dvh;overflow:hidden}
  .lightbox[open]{display:block}
  .lightbox figure{position:absolute;inset:calc(64px + env(safe-area-inset-top)) 8px calc(104px + env(safe-area-inset-bottom));height:auto;padding:0;display:flex;align-items:center;justify-content:center}
  .lightbox img{width:100%;height:100%;max-width:100%;max-height:100%;min-height:0;object-fit:contain}
  .lightbox figcaption{position:fixed;left:16px;right:16px;bottom:calc(75px + env(safe-area-inset-bottom));margin:0;text-align:center;font-size:11px;line-height:1.5}
  .lightbox .close{top:calc(12px + env(safe-area-inset-top));right:12px;width:44px;height:44px}
  .lightbox .step{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom));width:56px;height:44px;border:1px solid oklch(1 0 0/.3);border-radius:4px}
  .lightbox [data-step="-1"]{left:20px}.lightbox [data-step="1"]{right:20px}
}
