﻿/* Shared structural layouts. Color tokens supplied by skin. */
.overlay{position:fixed;inset:0;z-index:60;background:var(--bg);overflow:auto;overscroll-behavior:contain;padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}.overlay.opening{animation:sheet .45s cubic-bezier(.2,.8,.2,1)}@keyframes sheet{from{transform:translateY(20%)}to{transform:none}}.overlay-head{position:sticky;top:0;z-index:5;background:var(--bg);border-bottom:1px solid var(--line);padding-block:12px;display:flex;justify-content:space-between;align-items:center;gap:16px}.gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:4px}.gallery button{flex:0 0 92%;padding:0;scroll-snap-align:center;height:40svh;min-height:260px;overflow:hidden}.gallery img{width:100%;height:100%;object-fit:cover}.gallery-count{padding-block:12px;color:var(--muted)}.dep-content{padding-block:28px}.dep-content h1{font-size:clamp(28px,3.3vw,48px)}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-block:24px}.chip{padding:7px 12px;border:1px solid var(--line);font-size:12px}.dep-description{color:var(--muted);margin-bottom:28px}.dep-bottom{padding-block:24px}.dep-bottom section{padding-block:36px;border-top:1px solid var(--line)}.dep-bottom h2{font-size:28px;margin-bottom:24px}.showroom-card{display:block;position:relative;height:300px;overflow:hidden;color:var(--sr-fg);text-decoration:none}.showroom-card img{width:100%;height:100%;object-fit:cover;transition:transform 5s}.showroom-card:hover img{transform:scale(1.08)}.showroom-card:after{content:'';position:absolute;inset:0;background:linear-gradient(var(--clear),var(--veil))}.showroom-card-content{position:absolute;inset:auto 24px 24px;z-index:1;display:flex;justify-content:space-between;align-items:end;gap:16px}.showroom-card h3{font:32px var(--display);margin-block:8px}.play-ring{display:grid;place-items:center;border:1px solid var(--night-line);border-radius:50%;width:60px;height:60px;flex-shrink:0}.reserve-bar{position:fixed;bottom:0;left:0;right:0;z-index:6;background:var(--surface);border-top:1px solid var(--line);padding-block:12px calc(12px + env(safe-area-inset-bottom,0px));display:flex;gap:10px;justify-content:center}.reserve-bar .btn{flex:1;max-width:360px;padding-inline:12px}.dep-location{display:grid;gap:16px}.dep-location li{padding-block:10px;border-bottom:1px solid var(--line);list-style:none;font-size:14px}.dep-location ul{padding:0;margin:0}.lightbox{padding:0;background:var(--sr-surface);color:var(--sr-fg);z-index:85;max-width:none;max-height:none;width:100%;height:100%;border:0}.lightbox img{width:100%;height:calc(100% - 90px);object-fit:contain}.lightbox .row{padding:16px;justify-content:center}.lightbox::backdrop{background:var(--veil)}.reader{padding-block:36px;background:var(--sepia);min-height:100%}.reading{max-width:760px;margin:auto}.reading h1{margin-block:28px}.reading-text{white-space:pre-wrap;font-size:18px;line-height:1.95;max-width:65ch;margin-top:32px}.reading img{width:100%;max-height:420px;object-fit:cover;margin-top:32px}.toast{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);z-index:150;max-width:calc(100% - 32px);padding:14px 22px;background:var(--fg);color:var(--bg);box-shadow:0 8px 30px var(--shadow);font-size:14px}.loader{position:fixed;inset:0;background:var(--loader-bg);color:var(--loader-fg);z-index:200;display:flex;align-items:center;justify-content:center;transition:opacity .35s}.loader canvas{position:absolute;inset:0;width:100%;height:100%}.loader-copy{position:relative;text-align:center;margin-top:-16svh}.loader-copy .brand{font-size:48px}.loader-copy p{font-size:12px;letter-spacing:.12em;margin-top:12px}.loader-copy .mono{color:var(--loader-light);margin-top:28px}.skip-load{position:absolute;right:max(20px,env(safe-area-inset-right,0px));bottom:calc(28px + env(safe-area-inset-bottom,0px));color:var(--sr-fg);border-bottom:1px solid var(--night-line)}.showroom{position:fixed;inset:0;z-index:80;background:var(--sr-surface);color:var(--sr-fg);overflow:hidden;--line:var(--night-line);--surface:var(--sr-surface);--fg:var(--sr-fg)}.viewer-stage{position:absolute;inset:0;touch-action:none;overflow:hidden}.viewer-stage canvas,.viewer-photo{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}.viewer-photo{will-change:transform}.viewer-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(var(--veil),var(--clear) 28%,var(--clear) 55%,var(--veil))}.viewer-top{position:absolute;top:calc(16px + env(safe-area-inset-top,0px));left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));display:flex;justify-content:space-between;align-items:center;gap:12px;z-index:4}.viewer-top .btn{background:var(--veil);border-color:var(--night-line);color:var(--sr-fg)}.viewer-label{font-size:12px;letter-spacing:.06em}.viewer-bottom{position:absolute;bottom:calc(18px + env(safe-area-inset-bottom,0px));left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));z-index:4;transition:opacity .2s}.viewer-bottom h2{font-size:28px;margin-bottom:6px}.viewer-caption{font-size:14px;color:var(--night-muted);margin-bottom:16px}.scene-chips{display:flex;gap:8px;overflow-x:auto;margin-bottom:16px;padding-block:4px}.scene-chips button{white-space:nowrap;font-size:12px;border:1px solid var(--night-line);border-radius:24px;background:var(--veil);padding:8px 16px;color:var(--sr-fg)}.scene-chips button[aria-current]{background:var(--sr-accent);color:var(--sr-surface);border-color:var(--sr-accent)}.player{padding:12px;background:var(--veil);border:1px solid var(--night-line)}.player-row{display:flex;align-items:center;justify-content:space-between;gap:6px}.player button{min-width:44px;color:var(--sr-fg)}.player .mode{font-size:12px;padding-inline:10px;border:1px solid var(--night-line)}.progress{position:relative;display:flex;height:26px;align-items:center;gap:3px;margin-top:6px}.progress button{padding:0;min-height:26px;flex:1;position:relative}.progress button:before{content:'';display:block;height:3px;background:var(--night-line)}.progress button.done:before{background:var(--sr-accent)}.play-fill{height:3px;background:var(--sr-accent);position:absolute;left:0;top:calc(50% - 1.5px);width:0;pointer-events:none}.viewer-hint{font-size:10px;color:var(--night-muted);text-align:center;margin-top:10px;max-width:none}.hotspot-layer{position:absolute;inset:0;pointer-events:none;z-index:2}.hotspot{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--sr-fg);padding:0}.hotspot .ring{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--sr-accent);border-radius:50%;background:var(--veil)}.hotspot .ring:after{content:'';width:8px;height:8px;border:1px solid var(--sr-accent);border-radius:50%}.hotspot span:last-child{order:-1;background:color-mix(in srgb,var(--surface) 78%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--night-line);padding:5px 10px;font-size:11px;line-height:1.35;max-width:160px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-align:center}.hotspot.label-below span:last-child{order:1}.day-toggle{display:flex;gap:4px}.day-toggle button{border:1px solid var(--night-line);padding:8px 12px;color:var(--sr-fg);font-size:12px;background:var(--veil)}.day-toggle button[aria-pressed=true]{color:var(--sr-accent);border-color:var(--sr-accent)}.showroom.ui-hidden .viewer-bottom{opacity:0;pointer-events:none}.showroom.ui-hidden .hotspot-layer{opacity:0;pointer-events:none}.showroom.ui-hidden .hotspot{pointer-events:none}.viewer-error{position:absolute;top:35%;left:10%;right:10%;text-align:center;background:var(--veil);padding:20px;z-index:1}@media(max-height:550px){.viewer-bottom h2{font-size:22px}.viewer-caption,.viewer-hint{display:none}.scene-chips{margin-bottom:4px}.viewer-top{top:calc(8px + env(safe-area-inset-top,0px))}.viewer-bottom{bottom:calc(8px + env(safe-area-inset-bottom,0px))}.player{padding:4px 10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition-duration:.12s!important}.entrance:hover img,.showroom-card:hover img{transform:none}}.player-row{display:grid;grid-template-columns:44px 44px 44px minmax(0,1fr) 44px;gap:4px}.player-row #tour-time{grid-column:4/6;grid-row:1;text-align:right;font-size:11px;white-space:nowrap}.player-row #tour-mode{grid-column:1/4;grid-row:2}.player-row #tour-gyro{grid-column:4;grid-row:2}.player-row #tour-full{grid-column:5;grid-row:2}.viewer-label{display:none}.viewer-top .btn{padding-inline:12px;font-size:12px}.overlay-head{padding-top:calc(12px + env(safe-area-inset-top,0px))}.showroom-card img{animation:preview-pan 12s ease-in-out infinite alternate}@keyframes preview-pan{to{transform:scale(1.06) translateX(-.7%)}}@media(min-width:768px){.player-row{display:flex;gap:12px}.player-row #tour-time{margin-inline:auto;font-size:12px}.viewer-label{display:block}.viewer-top .btn{font-size:14px}}@media(prefers-reduced-motion:reduce){.showroom-card img{animation:none}}
[hidden]{display:none!important}.overlay{overscroll-behavior:contain}.lightbox{max-width:100vw;max-height:100dvh}.reading-text{white-space:pre-wrap;overflow-wrap:anywhere}.reading-dim .reader{filter:brightness(.8)}.menu-panel{max-height:calc(100dvh - 76px);overflow:auto}.gallery{touch-action:pan-x}.showroom .viewer-stage{touch-action:none}
@media(min-width:1024px){.dep-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:48px}.dep-summary{position:sticky;top:112px;align-self:start}.gallery{display:grid;grid-template-columns:1fr 1fr;overflow:visible}.gallery button:first-child{grid-column:1/-1}.gallery-count{display:none}.reserve-bar{position:static;padding:0;margin-top:28px}.dep-bottom{margin-top:72px}.dep-bottom>.services{grid-template-columns:repeat(4,1fr)}}

.loader .skip-load{color:var(--loader-fg)}.menu-panel{inset:0;z-index:70;max-height:100dvh;padding-block:max(72px,env(safe-area-inset-top,0px)) 32px}.gallery button{cursor:zoom-in}.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

.menu-close{position:absolute;top:max(16px,env(safe-area-inset-top,0px));right:max(16px,env(safe-area-inset-right,0px))}

/* Official raster brand: layout only, with each skin choosing its asset variant. */
.site-header .brand{display:flex;align-items:center;gap:10px;flex-shrink:0;line-height:1;letter-spacing:normal}
.brand-symbol,.brand-name,.brand-full{display:block}.brand-symbol img,.brand-name img,.brand-full img{display:block;object-fit:contain;max-width:100%;height:auto}
.site-header .brand-symbol img{height:38px;width:auto}.site-header .brand-name img{height:38px;width:auto}
.footer .brand{display:block;flex:0 0 190px;letter-spacing:normal}.footer .brand-full img{width:160px;height:auto}.brand-tagline{display:block;font:400 11px/1.6 var(--body);letter-spacing:0;margin-top:12px;color:var(--text);text-transform:none}
.loader .loader-brand{display:block;margin-inline:auto;width:min(300px,72vw)}.loader-brand .brand-full img{width:100%;height:auto}.loader:not([hidden]) .loader-brand{animation:brand-arrive .7s ease-out both}
@keyframes brand-arrive{from{opacity:0}to{opacity:1}}
@media(min-width:1100px){.site-header .brand-symbol img,.site-header .brand-name img{height:52px}.loader .loader-brand{width:350px}}
@media(prefers-reduced-motion:reduce){.loader:not([hidden]) .loader-brand{animation:none}}


/* Mobile structure: independent composition, shared touch and safe-area rules. */
html,body{overflow-x:clip}
@media(max-width:1023px){
 :root{--mobile-left:calc(20px + env(safe-area-inset-left,0px));--mobile-right:calc(20px + env(safe-area-inset-right,0px))}

body .wrap{width:auto;max-width:none;margin-left:var(--mobile-left);margin-right:var(--mobile-right)}

body .site-header{position:absolute;inset:0 0 auto}

body .header-inner{height:76px;padding-top:env(safe-area-inset-top,0px);border:0}

body .site-header .brand{min-width:0;max-width:calc(100% - 60px);gap:8px}

body .site-header .brand-symbol img{width:34px;height:34px}

body .site-header .brand-name{min-width:0;max-width:160px}

body .site-header .brand-name img{width:100%;height:auto;max-height:36px}

body .menu-toggle{flex:0 0 44px}

body .desktop-nav{display:none}

body .menu-toggle{display:inline-grid}

body .menu-panel{padding-top:90px;min-height:100svh}

body .menu-panel nav a{min-height:44px;display:flex;align-items:center}

body .home-hero{height:auto;min-height:100svh;max-width:none;margin:0;padding:76px 0 24px;overflow:clip}

body .hero-copy{position:relative;inset:auto;width:auto;min-height:0;padding:20px var(--mobile-right) 0 var(--mobile-left);z-index:1}

body .hero-copy h1{margin:0;max-width:100%;overflow-wrap:anywhere;letter-spacing:-.025em}

body .hero-copy h1>span{margin-left:0}

body .hero-copy .desktop-title,body .desktop-cta{display:none}

body .hero-copy .mobile-title{display:inline}

body .hero-copy .location{position:static;margin:0 0 14px;font-size:9px;line-height:1.5}

body .hero-description{max-width:100%;font-size:13px;line-height:1.6;margin:16px 0 0}

body .entrances{position:relative;inset:auto;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:20px var(--mobile-right) 0 var(--mobile-left)}

body .entrance{min-width:0;transform:none}

body .entrance:nth-child(2){margin-top:0}

body .entrance-content{min-width:0}

body .entrance-content>div{min-width:0}

body .entrance-content svg{flex-shrink:0}

body .hero-foot{display:none}

body .mobile-reserve{display:flex;margin:20px var(--mobile-right) 0 var(--mobile-left);padding:0;gap:12px;align-items:center}

body .mobile-reserve .btn{min-height:44px}

body .mobile-reserve>span{white-space:normal}

body .band{padding-block:64px}

body .section-head{grid-template-columns:minmax(0,1fr);gap:24px}

body .section-head>*,body .dep-layout>*,body .contact-grid>*,body .city-layout>*,body .cinema-grid>*,body .services>*,body .pillars>*,body .testimonials>*{min-width:0}

body h2{overflow-wrap:anywhere}

body h3,body p,body a{overflow-wrap:break-word}

body .hero-next{height:auto;padding:24px var(--mobile-right) 24px var(--mobile-left)}

body .hero-next>div{min-width:0}

body .hero-next>svg{flex-shrink:0}

body .showroom-card-content>div{min-width:0}

body .showroom-card-content{gap:12px;inset:auto 16px 20px}

body .showroom-card-content h3{font-size:clamp(24px,7vw,32px)}

body .empty-story{gap:16px}

body .empty-story>div{min-width:0}

body .empty-story>svg{flex-shrink:0}

body .contact-line>div{min-width:0}

body .contact-line .icon-btn{flex-shrink:0}

body .contact-line>a{min-height:44px}

body .contact .text-link,body .map-box .text-link{min-width:0;max-width:100%;min-height:44px}

body .text-link svg{flex-shrink:0}

body .footer .wrap{display:grid;gap:24px}

body .footer .brand{max-width:100%}

body .overlay-head .brand{font-size:20px;min-width:0}

body .overlay-head .brand small{letter-spacing:.1em}

body .overlay-head .icon-btn{flex-shrink:0}

body .dep-layout{display:grid;grid-template-columns:minmax(0,1fr)}

body .dep-content h1{font-size:clamp(32px,9vw,48px);overflow-wrap:anywhere}

body .reserve-bar{padding-left:var(--mobile-left);padding-right:var(--mobile-right);gap:8px}

body .reserve-bar .btn{font-size:11px;gap:8px;min-width:0;padding-inline:8px}

body .loader-copy{width:100%;padding-inline:20px;margin-top:-10svh}

body .loader .loader-brand{width:min(220px,55vw,42svh)}

body .scene-chips{flex-wrap:wrap;overflow:visible;gap:6px}

body .scene-chips button{padding:8px 12px;min-height:44px}

body .viewer-top{flex-wrap:wrap}

body .viewer-top .btn{min-height:44px}

body .day-toggle{margin-left:auto}

body .viewer-bottom h2{font-size:26px}

body .viewer-caption{font-size:12px;margin-bottom:10px}

body .player .progress button{min-height:44px}

body .viewer-hint{line-height:1.4}
}
@media(max-width:767px){

body .pillars,body .cinema-grid,body .story-grid,body .city-layout,body .contact-grid,body .testimonials{grid-template-columns:minmax(0,1fr)}

body .pillars{margin-left:0}

body .quote:nth-child(n),body .cinema-grid .showroom-card:nth-child(n){margin-top:0}

body .services{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}

body .service{min-width:0}

body .service svg{flex-shrink:0}

body .contact h2{font-size:clamp(32px,9vw,42px)}

body .city-band .section-head h2{font-size:clamp(42px,12vw,66px)}

body .map-box{min-width:0}

body .place{grid-template-columns:72px minmax(0,1fr);gap:14px}

body .place h3{font-size:24px}
}

