/* Legran: full-height scene and stable content, visible before JavaScript. */
.lidar-site .header:not(.is-scrolled):not(.menu-is-open){background:transparent;box-shadow:none;backdrop-filter:none}
.lidar-site .header.is-scrolled,.lidar-site .header.menu-is-open{background:var(--ink)}
.lidar-site .header-inner,.lidar-site .hero-layout{width:calc(100% - var(--review-gutter)*2);max-width:1480px}
.lidar-site .hero-panorama{position:relative;isolation:isolate;box-sizing:border-box;min-height:100svh;padding:120px 0 64px;display:flex;align-items:center;overflow:hidden;background:#050607;color:var(--white)}
.lidar-site .hero-layout{position:relative;z-index:2;display:block;padding:0;margin-block:0}
.lidar-site .hero-panorama .hero-copy{padding:0;max-width:none;animation:none}
.lidar-site .hero-panorama h1{width:max-content;max-width:100%;font-size:clamp(44px,calc(32px + 6.4vw),168px);line-height:1;letter-spacing:0!important;margin:0 0 24px;color:var(--white);text-wrap:initial;overflow-wrap:normal;word-break:normal}
.lidar-site .hero-panorama h1>span{display:block;white-space:nowrap}
.lidar-site .hero-location{color:var(--white);font-size:clamp(14px,1vw,22px);margin:0 0 12px}
.lidar-site .hero-location::before{content:'';display:inline-block;width:16px;height:16px;margin:0 8px 0 0;vertical-align:-2px;border-radius:0;background:url('assets/geo.svg') center/contain no-repeat}
.lidar-site .hero-action-row{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:clamp(24px,3svh,40px);animation:none}
.lidar-site .hero-panorama .hero-description{font-size:clamp(18px,calc(16px + .5vw),26px);line-height:1.45;max-width:34em;margin:0;color:var(--white);animation:none}
.lidar-site .hero-panorama .button{flex:none;width:auto;box-shadow:none;background:var(--accent);color:var(--ink)}
.lidar-site .hero-panorama .button:hover{background:#ff744d}
.lidar-poster,.lidar-embed{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none;object-fit:cover;object-position:center;z-index:0}
 .lidar-poster{filter:none}
 .lidar-embed{z-index:1;opacity:0;transition:opacity .8s ease-out}
.lidar-embed.is-ready{opacity:1}
/* Keep the message readable before and between LiDAR passes, including on dim displays. */
.lidar-site .hero-panorama::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(3,5,6,.82) 0%,rgba(3,5,6,.57) 42%,rgba(3,5,6,.18) 78%,rgba(3,5,6,.34) 100%),linear-gradient(0deg,rgba(3,5,6,.52),transparent 42%,rgba(3,5,6,.22));}
.lidar-site .hero-panorama .hero-copy{position:relative;z-index:3;text-shadow:0 2px 18px rgba(0,0,0,.72)}
@media(max-width:767px){.lidar-site .hero-panorama{padding:104px 0 40px}.lidar-site .hero-panorama h1{font-size:clamp(38px,12vw,80px)}.lidar-site .hero-action-row{gap:24px}.lidar-site .hero-panorama .hero-description{max-width:30em}}
@media(max-height:560px) and (min-width:768px){.lidar-site .hero-panorama{padding:104px 0 32px}.lidar-site .hero-panorama h1{font-size:48px;margin-bottom:16px}.lidar-site .hero-action-row{gap:20px}}
@media(prefers-reduced-motion:reduce){.lidar-embed{transition:none}}
/* Match the poster crop to the WebGL viewport on compact screens. */
.lidar-site.skip-entrance .hero-panorama .hero-location,
.lidar-site.skip-entrance .hero-panorama h1,
.lidar-site.skip-entrance .hero-panorama h1>span,
.lidar-site.skip-entrance .hero-panorama .hero-description,
.lidar-site.skip-entrance .hero-panorama .hero-action-row>.button{animation:none}
/* One entrance sequence; the scroll observer deliberately excludes the hero. */
@keyframes lidar-text-enter{
 from{opacity:0}
 to{opacity:1}
}
@media(prefers-reduced-motion:no-preference){
 .lidar-site .hero-panorama .hero-location{animation:none}
 .lidar-site .hero-panorama h1{animation:none}
 .lidar-site .hero-panorama h1>span,
 .lidar-site .hero-panorama .hero-description,
 .lidar-site .hero-panorama .hero-action-row>.button{animation:lidar-text-enter 520ms cubic-bezier(.4,0,.2,1) backwards}
 .lidar-site .hero-panorama h1>span:nth-child(2){animation-delay:180ms}
 .lidar-site .hero-panorama h1>span:nth-child(3){animation-delay:360ms}
 .lidar-site .hero-panorama .hero-description{animation-delay:540ms}
 .lidar-site .hero-panorama .hero-action-row>.button{animation-delay:720ms}
 .lidar-site .hero-panorama .hero-action-row>.button:focus-visible{animation:none}
}
.lidar-site .footer-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
.lidar-site .footer-directory>div.menu-column{display:contents}
.lidar-site .footer-directory>.menu-column:last-child{grid-column:auto}
.lidar-site .footer-directory>div.menu-column>section{margin:0;min-width:0}
@media(min-width:960px){
 .lidar-site .site-footer .footer-directory{display:flex;width:100%;justify-content:space-between;align-items:flex-start;gap:32px}
 .lidar-site .site-footer .footer-directory>.menu-column{display:block;flex:0 1 auto;width:max-content;max-width:32%;margin:0}
 .lidar-site .site-footer .footer-directory>.menu-column:last-child{margin-left:0}
}
@media(max-width:599px){.lidar-site .footer-directory{grid-template-columns:minmax(0,1fr);gap:32px}}
@media(max-width:1199px){.lidar-poster{object-position:58% center}}
@media(max-width:767px){
 .lidar-poster{object-position:64% center;filter:none}
 .lidar-site .hero-panorama::after{background:linear-gradient(90deg,rgba(3,5,6,.88),rgba(3,5,6,.48) 72%,rgba(3,5,6,.28)),linear-gradient(0deg,rgba(3,5,6,.64),transparent 48%,rgba(3,5,6,.3))}
 .lidar-site .hero-panorama{display:block;padding:112px 0 max(24px,env(safe-area-inset-bottom));min-height:100svh;align-items:initial}
 .lidar-site .hero-layout{width:calc(100% - var(--review-gutter)*2)}
 .lidar-site .hero-panorama .hero-copy{display:flex;flex-direction:column;align-items:stretch;min-height:calc(100svh - 112px - max(24px,env(safe-area-inset-bottom)))}
 .lidar-site .hero-action-row{display:contents}
 .lidar-site .hero-panorama .hero-description{margin:0 0 32px;max-width:30em}
 .lidar-site .hero-panorama .button{width:100%;min-width:0;box-sizing:border-box;justify-content:space-between;margin-top:auto;min-height:60px}
}
