/* Cinematic rhythm, built around LiftLab's existing console and real studio. */
.hero { min-height:100svh; background:#080808; }
.hero-backdrop { inset:0; opacity:.58; filter:grayscale(1); mask-image:none; background-position:72% center; }
.hero-backdrop::after { background:linear-gradient(90deg,#080808 4%,#080808ec 29%,#08080866 65%,#08080815),linear-gradient(0deg,#080808,transparent 32%,#08080844); }
.hero-signal { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; opacity:.85; mask-image:linear-gradient(90deg,transparent 18%,#000 55%); }
.hero .hero-grid { gap:60px; }
.hero .visual-wrap { width:100%; max-width:480px; justify-self:end; }
.hero h1 { font-size:clamp(80px,9.2vw,132px); }
.hero h1 span:last-child { font-family:Georgia,'Times New Roman',serif; font-weight:400; font-style:italic; letter-spacing:-.075em; }
.hero p.hero-intro { color:#c1bfba; }
.hero .console-caption { color:#dedcd6; }
.hero-console-object { box-shadow:inset 0 1px 0 #ffffff40,0 35px 90px #000c; }
.hero .stats { color:#aaa8a2; }
/* Fixed 16:9 media box: no intrinsic minimum can intrude into the copy column. */
.reaction-grid { grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:48px; align-items:center; }
.reaction-grid>* { min-width:0; }
.reaction-frame { width:100%; max-width:100%; min-width:0; min-height:0 !important; aspect-ratio:16 / 9 !important; }
.reaction-frame .youtube-preview-card { position:absolute; inset:0; width:100%; height:100%; min-height:0 !important; border-radius:0 !important; }
.reaction-frame .youtube-embed-player { border-radius:0; }
.reaction-watch-label { position:absolute; left:20px; right:20px; bottom:16px; z-index:2; display:flex; justify-content:space-between; color:white; text-transform:uppercase; font:10px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.1em; text-align:left; }
.reaction-card { width:100%; max-width:100%; }
.reaction-card h3 { font-size:clamp(24px,2.3vw,32px); line-height:1.15; }
.reaction-card p { font-size:15px; }
.reaction-link { min-height:44px; margin-top:12px; }
.reaction-card .reaction-note { font-size:12px; color:#999; }
.contact-email-note { max-width:380px; margin-top:18px; font-size:14px; line-height:1.6; color:#aaa; }
@media(min-width:981px) and (prefers-reduced-motion:no-preference) {
  @keyframes roomArrival { from { transform:scale(1.15); } to { transform:scale(1); } }
  .hero-backdrop { animation:roomArrival 4.4s cubic-bezier(.16,.65,.2,1) both; }
}
@media(max-width:1100px) {
  .reaction-grid { gap:30px; }
}
@media(max-width:980px) {
  .hero { min-height:0; }
  .hero .hero-grid { gap:38px; }
  .hero .visual-wrap { justify-self:center; }
  .hero-backdrop { inset:0; opacity:.4; background-position:70% top; }
  .hero-backdrop::after { background:linear-gradient(90deg,#080808ef,#08080844),linear-gradient(0deg,#080808,transparent 60%); }
  .hero-signal { mask-image:linear-gradient(90deg,transparent 25%,#0003 55%,#000 100%); opacity:.6; }
  .reaction-grid { grid-template-columns:minmax(0,1fr); gap:26px; }
  .reaction-card { max-width:640px; }
}
@media(max-width:600px) {
  .hero .hero-grid { gap:28px !important; }
  .hero h1 span:last-child { font-size:1.14em; }
  .hero .hero-kicker { color:#c3c0b9; }
  .reaction-frame .youtube-play-button { width:60px; height:60px; font-size:24px; }
  .reaction-watch-label { left:14px; right:14px; bottom:12px; font-size:8px; }
}
.nav::after { content:""; position:absolute; left:14px; right:14px; bottom:0; height:1px; background:#fff9; transform:scaleX(var(--page-progress,0)); transform-origin:left; pointer-events:none; }
.hero .visual-wrap { perspective:1400px; }
.hero-console-object { transform:rotateX(var(--console-x,3deg)) rotateY(var(--console-y,0deg)); transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s; }
.hero-console-object::after { content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; background:linear-gradient(115deg,transparent 25%,#ffffff08 46%,transparent 70%); }
.hero .console-caption { padding-bottom:12px; border-bottom:1px solid #ffffff25; }
.hero h1 { text-shadow:0 4px 40px #0003; }
.studio-film-journey { margin-top:48px; }
.studio-film-frame { position:relative; height:650px; max-height:78svh; min-height:460px; overflow:hidden; isolation:isolate; background:#1c1b19; border:1px solid #ffffff20; }
.studio-film-poster,.studio-film { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 48%; filter:saturate(.25) brightness(.8); }
.studio-film { opacity:0; transition:opacity .4s; }
.studio-film.is-ready { opacity:1; }
.studio-film-shade { position:absolute; inset:0; background:linear-gradient(180deg,#0007,transparent 40%,#000c),linear-gradient(90deg,#0005,transparent 70%); }
.studio-film-eyebrow { position:absolute; top:30px; left:36px; right:36px; display:flex; justify-content:space-between; gap:20px; text-transform:uppercase; font:10px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.12em; color:#ddd; }
.studio-film-copy { position:absolute; left:36px; bottom:108px; right:36px; }
.studio-film-copy p { margin:0; color:#f6f4ef; font-size:clamp(48px,6.8vw,98px); font-weight:550; line-height:1; letter-spacing:-.065em; }
.studio-film-copy em,.footer-signoff em { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.065em; }
.studio-film-copy>span { display:block; margin-top:22px; color:#ddd; font-size:14px; }
.studio-film-rail { position:absolute; left:36px; right:36px; bottom:28px; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; font:10px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace; text-transform:uppercase; letter-spacing:.07em; }
.studio-film-rail span { color:#ccc; padding-top:14px; border-top:1px solid #ffffff40; position:relative; }
.studio-film-rail span::before { content:""; position:absolute; left:0; right:0; top:-1px; height:2px; background:#f5f4f0; transform:scaleX(0); transform-origin:left; transition:transform .3s; }
.studio-film-rail .is-current { color:white; }
.studio-film-rail .is-current::before { transform:scaleX(1); }
.inside-studio .studio-gallery { margin-top:24px; }
.footer { overflow:hidden; background:#080808; padding-top:76px; }
.footer-signoff { max-width:1280px; margin:0 auto 70px; padding:0 6vw; }
.footer-signoff>span { display:block; color:#999; font:10px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace; text-transform:uppercase; letter-spacing:.12em; margin-bottom:24px; }
.footer-signoff>a { display:block; position:relative; color:#eeece7; font-size:clamp(42px,7vw,100px); line-height:1.03; letter-spacing:-.055em; padding-right:70px; }
.signoff-arrow { position:absolute; right:0; top:0; font-size:64px; font-weight:300; transition:transform .3s; }
.footer-signoff>a:hover .signoff-arrow { transform:translate(5px,-5px); }
.footer-wordmark { font-size:clamp(80px,21.5vw,340px); line-height:.8; letter-spacing:-.085em; font-weight:750; color:#eceae4; text-align:center; padding:0 3vw 3vw 0; user-select:none; }
.footer .footer-inner { margin-top:32px; border-top:1px solid #ffffff25; padding-top:28px; }
@media(min-width:981px) and (prefers-reduced-motion:no-preference) {
  .experience-motion .studio-film-journey { height:165svh; }
  .experience-motion .studio-film-frame { position:sticky; top:110px; height:calc(100svh - 150px); max-height:800px; min-height:420px; margin-inline:var(--film-inset,4%); }
  .experience-motion .studio-film-copy { transform:translateY(var(--film-copy-y,0px)); }
  .experience-motion .footer-wordmark { transform:translateY(var(--wordmark-y,0px)); }
  #services .services-intro { position:sticky; top:140px; }
}
@media(max-width:980px) {
  .studio-film-frame { height:560px; min-height:400px; max-height:75svh; }
  .studio-film-eyebrow { top:22px; left:22px; right:22px; }
  .studio-film-copy { left:22px; right:22px; bottom:96px; }
  .studio-film-rail { left:22px; right:22px; gap:14px; }
  .footer-signoff { padding:0; }
}
@media(max-width:600px) {
  .studio-film-journey { margin-top:30px; }
  .studio-film-frame { height:460px; min-height:410px; max-height:none; }
  .studio-film-eyebrow { font-size:8px; letter-spacing:.04em; }
  .studio-film-copy p { font-size:clamp(38px,10.5vw,60px); }
  .studio-film-copy>span { max-width:220px; font-size:12px; line-height:1.5; }
  .studio-film-rail { gap:10px; font-size:8px; letter-spacing:0; }
  .footer { padding-top:50px; }
  .footer-signoff { margin-bottom:48px; }
  .footer-signoff>a { font-size:clamp(36px,8.5vw,52px); padding-right:30px; }
  .signoff-arrow { font-size:32px; }
  .footer-wordmark { font-size:20vw; }
}
@media(prefers-reduced-motion:reduce) {
  .hero-console-object { transform:none; }
  .studio-film,.hero-console-object,.signoff-arrow,.studio-film-rail span::before { transition:none; }
}
