/* Motion. Hidden only after lab.js opts in, so a script failure never blanks the page. */
html.lab-motion [data-lab]:not(.lab-self):not(.lab-in) > *{
  opacity:0;
  translate:0 34px;
  pointer-events:none;
}
html.lab-motion [data-lab].lab-self:not(.lab-in){
  opacity:0;
  translate:0 34px;
}
html.lab-motion [data-lab]:not(.lab-self).lab-in > *{
  animation:lab-rise .9s cubic-bezier(.16,1,.3,1) both;
}
html.lab-motion [data-lab].lab-self.lab-in{
  animation:lab-rise .95s cubic-bezier(.16,1,.3,1) both;
}
html.lab-motion [data-lab].lab-done,
html.lab-motion [data-lab].lab-done > *{
  animation:none;
  opacity:1;
  translate:none;
  pointer-events:auto;
}
html.lab-motion [data-lab].lab-in > *:nth-child(2){animation-delay:.1s}
html.lab-motion [data-lab].lab-in > *:nth-child(3){animation-delay:.18s}
html.lab-motion [data-lab].lab-in > *:nth-child(4){animation-delay:.26s}
html.lab-motion [data-lab].lab-in > *:nth-child(5){animation-delay:.34s}
html.lab-motion [data-lab].lab-in > *:nth-child(6){animation-delay:.42s}
html.lab-motion [data-lab].lab-in > *:nth-child(7){animation-delay:.48s}
html.lab-motion [data-lab].lab-in > *:nth-child(8){animation-delay:.54s}
html.lab-motion [data-lab].lab-in > *:nth-child(n+9){animation-delay:.6s}
@keyframes lab-rise{
  from{opacity:0;translate:0 34px}
  to{opacity:1;translate:0 0}
}

/* Venue video */
#lab-video{
  position:fixed;inset:0;z-index:80;
  display:flex;align-items:center;justify-content:center;
  padding:72px 24px 24px;box-sizing:border-box;
  background:rgba(0,0,0,.82);
}
#lab-video[hidden]{display:none}
#lab-video iframe{
  width:min(960px,100%);aspect-ratio:16/9;height:auto;
  border:0;background:#000;display:block;
}
#lab-video.lab-tour iframe{
  width:min(1100px,100%);height:min(78vh,720px);aspect-ratio:auto;
}
#lab-video-close{
  position:absolute;top:18px;right:18px;
  width:40px;height:40px;border-radius:50%;border:0;
  background:#fff;display:flex;align-items:center;justify-content:center;
  padding:0;cursor:pointer;
}

/* Offers attention mark */
a.lab-offers{display:inline-flex;align-items:center;gap:7px}
.lab-dot{
  width:7px;height:7px;border-radius:50%;background:#ff2a2a;flex:0 0 auto;
  box-shadow:0 0 0 0 rgba(255,42,42,.7);
  opacity:0;scale:.6;
}
html.lab-nudge .lab-dot{
  opacity:1;scale:1;
  animation:lab-blink 1.35s ease-out infinite;
}
@keyframes lab-blink{
  0%{box-shadow:0 0 0 0 rgba(255,42,42,.75)}
  70%{box-shadow:0 0 0 8px rgba(255,42,42,0)}
  100%{box-shadow:0 0 0 0 rgba(255,42,42,0)}
}
@media (prefers-reduced-motion:reduce){
  html.lab-nudge .lab-dot{animation:none;opacity:1}
}

/* Phone call + tour bar, phones only */
.lab-dock{display:none}

/* Fit the desktop composition down before the phone layout takes over */
@media (max-width:1180px){
  .lab{min-width:0 !important}
  .lab-nav{padding-left:24px !important;padding-right:24px !important}
  .lab-phone{display:none !important}
  .lab-logo{width:168px !important;height:22px !important}
  #top h1,.lab-xl{font-size:clamp(48px,7vw,84px) !important}
}
@media (max-width:980px){
  .lab-nav-links a:not(.lab-offers){display:none !important}
  .lab-phone{display:inline !important}
  .lab-venue{display:flex !important;flex-direction:column !important;gap:20px !important}
  .lab-shot{height:min(68vw,460px) !important;width:100% !important}
  .lab-venue-copy{align-items:stretch !important;margin:0 !important;width:100% !important}
  .lab-venue-copy,.lab-venue-copy *{text-align:left !important}
  .lab-panel{width:100% !important}
  .lab-mosaic{grid-template-columns:1fr 1fr !important;grid-template-rows:280px 120px 120px !important}
  .lab-mosaic > div:first-child{grid-column:1 / -1 !important;grid-row:1 !important;height:280px !important}
  .lab-reviews{
    width:100% !important;height:auto !important;transform:none !important;margin:0 !important;
    display:flex !important;flex-direction:column !important;gap:16px !important;
  }
  .lab-reviews > span{
    position:relative !important;left:auto !important;top:auto !important;width:100% !important;
    font-size:clamp(48px,16vw,72px) !important;line-height:.9 !important;
    white-space:normal !important;transform:none !important;text-align:center !important;
  }
  .lab-reviews > div[style*="url("]{
    height:200px !important;min-height:200px !important;border-radius:0 !important;
  }
  .lab-reviews > div{
    position:relative !important;left:auto !important;top:auto !important;width:100% !important;height:auto !important;
  }
  .lab-reviews > div[style*="background:url"]{height:220px !important;border-radius:0 !important}
  .lab-reviews > div:not([style*="background:url"]){border-radius:0 !important;padding:32px 24px !important}
}

@media (max-width:760px){
  .lab > section:not(#top),
  .lab > footer{padding-left:20px !important;padding-right:20px !important}
  .lab > section:not(#top){padding-top:72px !important;padding-bottom:72px !important}
  .lab > #gallery{padding-left:0 !important;padding-right:0 !important}
  .lab-nav{padding:14px 16px !important}
  .lab-nav > div{display:grid !important;grid-template-columns:1fr auto 1fr !important;align-items:center !important}
  .lab-nav a[href="#top"] > span:first-child{display:none !important}
  .lab-nav-end > *{display:none !important}
  .lab-logo{width:140px !important;height:19px !important}
  .lab{padding-bottom:calc(68px + env(safe-area-inset-bottom)) !important}
  .lab-dock{
    display:grid;grid-template-columns:1fr 1fr;gap:8px;
    position:fixed;left:0;right:0;bottom:0;z-index:60;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    background:rgba(0,0,0,.88);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  }
  .lab-dock a{
    display:flex;align-items:center;justify-content:center;gap:8px;height:48px;box-sizing:border-box;
    font-family:'Caslon Doric',Georgia,serif;font-weight:450;font-size:11px;line-height:1;
    letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;
  }
  .lab-dock-call{border:1px solid rgba(255,255,255,.55);color:#fff;letter-spacing:.06em !important}
  .lab-dock-book{background:#fff;color:#000}
  #top{height:auto !important;min-height:calc(100svh - 68px - env(safe-area-inset-bottom)) !important}
  #top > [data-lab]{
    height:auto !important;min-height:calc(100svh - 68px - env(safe-area-inset-bottom)) !important;
    padding:96px 20px 28px !important;
    justify-content:flex-end !important;
    gap:22px !important;
  }
  #top h1{font-size:clamp(40px,11vw,58px) !important}
  #top .lab-hero-foot{
    position:static !important;left:auto !important;right:auto !important;bottom:auto !important;
    width:100% !important;flex-wrap:wrap !important;justify-content:center !important;gap:12px 20px !important;
  }
  #top .lab-hero-foot > div:first-child{flex-wrap:wrap !important;justify-content:center !important;gap:8px 16px !important}
  .lab-xl{font-size:clamp(40px,12vw,56px) !important}
  .lab-num{font-size:64px !important}
  .lab-inset{padding:36px 20px !important;width:100% !important}
  .lab-stats{flex-direction:column !important;height:auto !important;gap:12px !important}
  .lab-stats > div{
    width:100% !important;height:220px !important;padding-left:0 !important;justify-content:center !important;
  }
  .lab-stats > div > div{
    width:min(200px,70%) !important;height:auto !important;padding:24px 16px !important;
  }
  .lab-grid3,.lab-split,.lab-ig{grid-template-columns:1fr !important}
  .lab-ig{grid-template-columns:1fr 1fr !important}
  .lab-events{flex-wrap:wrap !important}
  .lab-events > a{
    flex:1 1 46% !important;
    border-right:0 !important;
    box-shadow:inset 0 -1px 0 rgba(178,146,97,.45);
  }
  .lab-film{height:280px !important}
  .lab-film img{width:auto !important;height:240px !important;max-width:74vw !important}
  .lab-cta{height:auto !important;display:flex !important;flex-direction:column !important}
  .lab-cta > div{
    position:relative !important;left:auto !important;right:auto !important;top:auto !important;
    width:100% !important;height:auto !important;transform:none !important;
  }
  .lab-cta > div:first-child{height:260px !important}
  .lab-cta > div:last-child{padding:28px 20px !important}
  .lab-cta > div:last-child > div:last-child{
    flex-direction:column !important;align-items:flex-start !important;gap:16px !important;
  }
  .lab-foot{grid-template-columns:1fr 1fr !important;gap:28px !important}
  .lab-footbar,.lab-legal{flex-direction:column !important;align-items:flex-start !important;gap:20px !important}
  .lab-subscribe{width:100% !important}
  #faq button > span:first-child{font-size:18px !important}
  #offers section{padding:72px 20px !important;gap:36px !important}
  .lab-offer-grid,
  #offers [style*="repeat(3,1fr)"]{grid-template-columns:1fr !important}
  #offers a{height:auto !important;min-height:320px !important}
  .lab-mosaic{grid-template-rows:220px 88px 88px !important}
  .lab-mosaic > div:first-child{height:220px !important}
  .lab-shot{height:240px !important}
  .lab-panel div[style*="grid-template-columns"]{gap:10px !important}
  #lab-video{padding:64px 12px 12px !important}
  #lab-video.lab-tour iframe{height:min(68vh,560px) !important}
}
@media (max-width:520px){
  .lab-foot{grid-template-columns:1fr !important}
  .lab-events > a{flex-basis:100% !important}
}
