:root{
  --cinema-bg:#f3f6f6;
  --cinema-ink:#122533;
  --cinema-muted:#60757c;
  --cinema-teal:#2278B5;
  --cinema-teal-dark:#195E91;
  --cinema-line:rgba(18,37,51,.15);
  --cinema-max:1380px;
}

html{scroll-behavior:auto}
body.cinematic-home{
  overflow-x:hidden;
  background:var(--cinema-bg);
  color:var(--cinema-ink);
}
body.cinematic-home main{overflow:clip}
body.cinematic-home .container{width:min(var(--cinema-max),calc(100% - 64px))}
body.cinematic-home h1,
body.cinematic-home h2,
body.cinematic-home h3{font-family:"Manrope","Segoe UI Variable Display","Aptos Display","Avenir Next","Helvetica Neue",ui-sans-serif,system-ui,sans-serif}

/* Navigation: always visible, clean and predictable. */
body.cinematic-home .topbar{
  position:relative;
  z-index:102;
  height:30px;
  background:#082031;
}
body.cinematic-home .topbar-inner{min-height:30px}
body.cinematic-home .site-header{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(255,255,255,.93);
  border-bottom:1px solid rgba(18,37,51,.1);
  box-shadow:0 8px 30px rgba(8,32,49,.04);
  backdrop-filter:blur(20px) saturate(150%);
}
body.cinematic-home .navbar{height:72px;gap:22px}
body.cinematic-home .brand img{width:196px}
body.cinematic-home .nav-links{gap:15px;font-size:.79rem;white-space:nowrap}
body.cinematic-home .nav-links a{padding:26px 0 23px}
body.cinematic-home .nav-links a:after{bottom:15px}
body.cinematic-home .btn-quote{border-radius:999px;padding-inline:18px}
.page-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;overflow:hidden;pointer-events:none}
.page-progress i{display:block;width:100%;height:100%;background:var(--cinema-teal);transform:scaleX(var(--page-progress,0));transform-origin:left center;will-change:transform}

/* Cinematic scroll scenes */
.cinema-scene{
  --scene-image-scale:1.06;
  --scene-image-y:0px;
  --scene-clip:7%;
  --scene-radius:34px;
  --scene-copy-opacity:0;
  --scene-copy-y:70px;
  --scene-copy-x:0px;
  --scene-copy-blur:8px;
  position:relative;
  min-height:175vh;
  background:#071a27;
}
.cinema-scene.cinema-hero{min-height:190vh}
.cinema-sticky{
  position:sticky;
  top:72px;
  height:calc(100vh - 72px);
  min-height:620px;
  overflow:hidden;
  background:#092335;
  isolation:isolate;
}
.cinema-media{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  clip-path:inset(var(--scene-clip) round var(--scene-radius));
  transform:translateZ(0);
  will-change:clip-path;
}
.cinema-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transform:translate3d(0,var(--scene-image-y),0) scale(var(--scene-image-scale));
  will-change:transform;
  filter:saturate(.9) contrast(1.02);
}
.cinema-media-wide img{object-position:center center}
.cinema-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(4,17,27,.76) 0%,rgba(4,17,27,.42) 45%,rgba(4,17,27,.08) 72%),
    linear-gradient(0deg,rgba(4,17,27,.55) 0%,transparent 40%);
  opacity:var(--scene-overlay-opacity,.98);
}
.cinema-overlay-right{background:linear-gradient(270deg,rgba(4,17,27,.82) 0%,rgba(4,17,27,.45) 44%,rgba(4,17,27,.06) 75%),linear-gradient(0deg,rgba(4,17,27,.42),transparent 45%)}
.cinema-overlay-center{background:linear-gradient(90deg,rgba(4,17,27,.36),rgba(4,17,27,.5),rgba(4,17,27,.36)),linear-gradient(0deg,rgba(4,17,27,.55),rgba(4,17,27,.08) 60%)}
.cinema-overlay-strong{background:rgba(4,17,27,.62)}
.cinema-grain{
  position:absolute;
  inset:0;
  z-index:2;
  opacity:.08;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");
}
.cinema-content{
  position:relative;
  z-index:3;
  width:min(var(--cinema-max),calc(100% - 112px));
  height:100%;
  margin-inline:auto;
  display:flex;
  align-items:flex-end;
  padding:0 0 clamp(92px,10vh,124px);
  pointer-events:none;
}
.cinema-content-left{justify-content:flex-start}
.cinema-content-right{justify-content:flex-end}
.cinema-content-center{justify-content:center;text-align:center}
.cinema-content-center-y{align-items:center;padding-bottom:0}
.cinema-copy{
  width:min(850px,75vw);
  color:#fff;
  opacity:var(--scene-copy-opacity);
  transform:translate3d(var(--scene-copy-x),var(--scene-copy-y),0);
  filter:blur(var(--scene-copy-blur));
  will-change:transform,opacity,filter;
  pointer-events:auto;
}
.cinema-copy-narrow{width:min(690px,70vw)}
.cinema-copy-centered{width:min(980px,84vw);text-align:center}
.cinema-copy-contact{width:min(900px,84vw)}
.cinema-kicker{
  display:block;
  margin-bottom:18px;
  color:#bcdaf0;
  font-size:clamp(.72rem,.8vw,.86rem);
  font-weight:760;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.cinema-copy h1,
.cinema-copy h2{
  margin:0;
  color:#fff;
  font-weight:720;
  letter-spacing:-.055em;
  text-wrap:balance;
  text-shadow:0 4px 30px rgba(0,0,0,.2);
}
.cinema-copy h1{font-size:clamp(3.25rem,6.35vw,6.5rem);line-height:.96}
.cinema-copy h2{font-size:clamp(2.75rem,5.1vw,5.45rem);line-height:.99}
.cinema-copy h1 span,
.cinema-copy h2 span{display:block}
.cinema-copy p{
  max-width:650px;
  margin-top:24px;
  color:rgba(255,255,255,.84);
  font-size:clamp(1rem,1.3vw,1.22rem);
  line-height:1.6;
}
.cinema-copy-centered p{margin-inline:auto;max-width:720px}
[data-cinema-line]{
  --line-opacity:1;
  --line-y:0px;
  opacity:var(--line-opacity);
  transform:translate3d(0,var(--line-y),0);
  will-change:transform,opacity;
}
.cinema-copy h1 [data-cinema-line],
.cinema-copy h2 [data-cinema-line]{overflow:hidden}
.cinema-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:32px}
.cinema-actions-center{justify-content:center}
.cinema-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:50px;
  padding:12px 22px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.35);
  color:#fff;
  font-size:.91rem;
  font-weight:760;
  backdrop-filter:blur(10px);
  transition:transform .25s ease,background .25s ease,border-color .25s ease;
}
.cinema-btn:hover{transform:translateY(-2px)}
.cinema-btn-primary{background:#fff;border-color:#fff;color:#122b3c}
.cinema-btn-primary:hover{background:#dfecf6}
.cinema-btn-ghost{background:rgba(7,26,39,.18)}
.cinema-btn-ghost:hover{background:rgba(7,26,39,.42);border-color:rgba(255,255,255,.6)}
.cinema-text-link{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-top:28px;
  padding-bottom:5px;
  border-bottom:1px solid rgba(255,255,255,.55);
  color:#fff;
  font-size:.94rem;
  font-weight:740;
}
.cinema-text-link span{transition:transform .25s ease}
.cinema-text-link:hover span{transform:translate(3px,-3px)}
.scene-meta{
  position:absolute;
  z-index:4;
  top:46px;
  right:48px;
  display:flex;
  align-items:center;
  gap:12px;
  color:#fff;
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:var(--scene-copy-opacity);
}
.scene-meta span{font-weight:800}
.scene-meta i{display:block;width:42px;height:1px;background:currentColor;opacity:.55}
.scene-meta small{font-size:.65rem;font-weight:700}
.hero-facts{
  position:absolute;
  z-index:4;
  left:56px;
  right:56px;
  bottom:18px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(255,255,255,.3);
  color:#fff;
  opacity:var(--facts-opacity,0);
  transform:translate3d(0,var(--facts-y,30px),0);
  will-change:transform,opacity;
}
.hero-facts div{display:flex;align-items:baseline;gap:12px;padding:18px 18px 0 0}
.hero-facts b{font-size:clamp(1.4rem,2.1vw,2.2rem);line-height:1;color:#fff}
.hero-facts span{color:rgba(255,255,255,.72);font-size:.78rem}

/* Editorial breathing space between image scenes. */
.cinema-intro,
.cinema-process,
.cinema-pricing,
.cinema-strip{position:relative;background:#f5f7f7}
.cinema-intro{padding:145px 0 155px}
.cinema-intro-grid,
.cinema-process-head,
.cinema-pricing-head{
  display:grid;
  grid-template-columns:76px minmax(0,1.15fr) minmax(280px,.65fr);
  gap:42px;
  align-items:start;
}
.cinema-section-number{display:block;padding-top:8px;color:var(--cinema-teal-dark);font-size:.78rem;font-weight:800;letter-spacing:.14em}
.cinema-eyebrow{display:block;margin-bottom:16px;color:var(--cinema-teal-dark);font-size:.75rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.cinema-intro h2,
.cinema-process h2,
.cinema-pricing h2,
.cinema-strip h2{
  max-width:890px;
  color:var(--cinema-ink);
  font-size:clamp(2.35rem,4.2vw,4.75rem);
  line-height:1.03;
  letter-spacing:-.052em;
  font-weight:710;
  text-wrap:balance;
}
.cinema-intro-grid>p,
.cinema-process-head>p{
  padding-top:34px;
  color:var(--cinema-muted);
  font-size:1.03rem;
  line-height:1.72;
}

/* Client strip with scroll-linked horizontal movement. */
.cinema-strip{padding:115px 0 130px;overflow:hidden;border-top:1px solid var(--cinema-line);border-bottom:1px solid var(--cinema-line)}
.cinema-strip-head{display:grid;grid-template-columns:76px 1fr;gap:42px;align-items:start;margin-bottom:62px}
.cinema-strip h2{font-size:clamp(2.2rem,3.6vw,4rem)}
.client-marquee{width:100%;overflow:hidden}
.client-marquee-track{
  display:flex;
  gap:18px;
  width:max-content;
  padding:0 32px;
  transform:translate3d(var(--marquee-x,0px),0,0);
  will-change:transform;
}
.client-marquee figure{
  width:230px;
  flex:0 0 230px;
  margin:0;
  padding:22px;
  background:#fff;
  border:1px solid rgba(18,37,51,.1);
  border-radius:20px;
}
.client-marquee img{width:100%;aspect-ratio:1;object-fit:contain;border-radius:12px}
.client-marquee figcaption{margin-top:13px;color:#7b8b90;font-size:.72rem;font-weight:720;text-transform:uppercase;letter-spacing:.1em}

/* Horizontal process ribbon. */
.cinema-process{padding:145px 0 155px;overflow:hidden}
.cinema-process-head{margin-bottom:66px}
.process-horizontal{overflow:hidden;padding-left:max(32px,calc((100vw - var(--cinema-max))/2 + 32px))}
.process-horizontal ol{
  display:flex;
  gap:16px;
  width:max-content;
  margin:0;
  padding:0 48px 0 0;
  list-style:none;
  transform:translate3d(var(--process-x,0px),0,0);
  will-change:transform;
}
.process-horizontal li{
  width:330px;
  min-height:210px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:26px;
  background:#fff;
  border:1px solid rgba(18,37,51,.11);
  border-radius:22px;
  box-shadow:0 18px 50px rgba(18,37,51,.05);
}
.process-horizontal li>b{color:var(--cinema-teal);font-size:.82rem;letter-spacing:.14em}
.process-horizontal li div{display:grid;gap:8px}
.process-horizontal strong{font-size:1.22rem;letter-spacing:-.025em}
.process-horizontal span{color:var(--cinema-muted);font-size:.9rem;line-height:1.55}

/* Pricing rows, animated without deforming their content. */
.cinema-pricing{padding:145px 0 155px;background:#102738;color:#fff}
.cinema-pricing .cinema-section-number,
.cinema-pricing .cinema-eyebrow{color:#8abfe4}
.cinema-pricing h2{color:#fff}
.cinema-dark-link{align-self:end;justify-self:end;display:inline-flex;gap:9px;color:#d9e8f3;font-weight:730;border-bottom:1px solid rgba(217,232,243,.4);padding-bottom:5px}
.cinema-pricing-list{margin-top:70px;border-top:1px solid rgba(255,255,255,.2)}
.cinema-price-row{
  --price-row-y:0px;
  --price-row-opacity:1;
  display:grid;
  grid-template-columns:minmax(210px,.8fr) minmax(320px,1.25fr) minmax(180px,.55fr) 44px;
  gap:28px;
  align-items:center;
  min-height:132px;
  padding:28px 18px;
  border-bottom:1px solid rgba(255,255,255,.18);
  color:#fff;
  opacity:var(--price-row-opacity);
  transform:translate3d(0,var(--price-row-y),0);
  transition:background .25s ease,padding .25s ease;
  will-change:transform,opacity;
}
.cinema-price-row:hover{background:rgba(255,255,255,.06);padding-inline:26px}
.cinema-price-row div>span{display:block;margin-bottom:6px;color:#90b6d1;font-size:.73rem;font-weight:760;letter-spacing:.12em;text-transform:uppercase}
.cinema-price-row h3{color:#fff;font-size:1.35rem}
.cinema-price-row p{color:rgba(255,255,255,.68);font-size:.93rem}
.cinema-price-row>strong{justify-self:end;color:#fff;font-size:1.55rem;white-space:nowrap}
.cinema-price-row>strong small{font-size:.72rem;font-weight:600;color:rgba(255,255,255,.58)}
.cinema-price-row>b{justify-self:end;font-size:1.3rem;font-weight:500}
.cinema-price-featured{background:rgba(21,104,163,.13)}

.cinematic-footer{background:#071a27}
body.cinematic-home .back-to-top{z-index:110}

@media (max-width:1180px){
  body.cinematic-home .nav-links{gap:11px;font-size:.73rem}
  body.cinematic-home .brand img{width:176px}
  body.cinematic-home .btn-quote{display:none}
  .cinema-content{width:calc(100% - 72px)}
  .cinema-intro-grid,.cinema-process-head,.cinema-pricing-head{grid-template-columns:58px minmax(0,1fr) minmax(250px,.55fr);gap:28px}
}

@media (max-width:900px){
  body.cinematic-home .container{width:min(100% - 36px,var(--cinema-max))}
  body.cinematic-home .topbar{display:none}
  body.cinematic-home .site-header{top:0}
  body.cinematic-home .navbar{height:68px}
  body.cinematic-home .mobile-toggle{display:block}
  body.cinematic-home .nav-links{
    position:absolute;
    top:68px;
    left:18px;
    right:18px;
    display:none;
    align-items:stretch;
    gap:0;
    padding:10px;
    background:rgba(255,255,255,.98);
    border:1px solid rgba(18,37,51,.12);
    border-radius:16px;
    box-shadow:0 20px 60px rgba(8,32,49,.14);
    white-space:normal;
  }
  body.cinematic-home .nav-links.open{display:grid}
  body.cinematic-home .nav-links a{padding:11px 13px;border-radius:9px}
  body.cinematic-home .nav-links a:after{display:none}
  .cinema-sticky{top:68px;height:calc(100vh - 68px);min-height:560px}
  .cinema-scene{min-height:155vh}
  .cinema-scene.cinema-hero{min-height:170vh}
  .cinema-content{width:calc(100% - 40px);padding-bottom:88px}
  .cinema-content-center-y{padding-bottom:0}
  .cinema-copy,.cinema-copy-narrow,.cinema-copy-centered,.cinema-copy-contact{width:min(100%,760px)}
  .cinema-copy h1{font-size:clamp(2.9rem,10.5vw,5rem)}
  .cinema-copy h2{font-size:clamp(2.55rem,8.8vw,4.5rem)}
  .scene-meta{top:28px;right:24px}
  .hero-facts{left:20px;right:20px;grid-template-columns:repeat(2,1fr);bottom:14px}
  .hero-facts div{padding-top:10px}
  .hero-facts div:nth-child(n+3){display:none}
  .cinema-intro,.cinema-process,.cinema-pricing{padding:100px 0 110px}
  .cinema-intro-grid,.cinema-process-head,.cinema-pricing-head{grid-template-columns:42px 1fr;gap:20px}
  .cinema-intro-grid>p,.cinema-process-head>p,.cinema-dark-link{grid-column:2;padding-top:0;justify-self:start}
  .cinema-strip{padding:90px 0 100px}
  .cinema-strip-head{grid-template-columns:42px 1fr;gap:20px}
  .cinema-price-row{grid-template-columns:1fr auto;gap:12px;padding:24px 8px}
  .cinema-price-row p{grid-column:1/2}
  .cinema-price-row>strong{grid-column:2;grid-row:1/3}
  .cinema-price-row>b{display:none}
}

@media (max-width:600px){
  body.cinematic-home .brand img{width:164px}
  .cinema-scene{min-height:145vh}
  .cinema-sticky{min-height:520px}
  .cinema-media{clip-path:inset(var(--scene-clip) round 22px)}
  .cinema-media img{object-position:center}
  .cinema-overlay,.cinema-overlay-right{background:linear-gradient(0deg,rgba(4,17,27,.82),rgba(4,17,27,.18) 70%)}
  .cinema-content{align-items:flex-end;padding-bottom:78px}
  .cinema-content-center-y{align-items:flex-end;padding-bottom:78px}
  .cinema-content-right{justify-content:flex-start}
  .cinema-copy h1{font-size:clamp(2.65rem,13vw,4.25rem);line-height:.98}
  .cinema-copy h2{font-size:clamp(2.35rem,11.2vw,3.8rem)}
  .cinema-copy p{font-size:.97rem;line-height:1.55;margin-top:18px}
  .cinema-kicker{font-size:.66rem;margin-bottom:13px}
  .cinema-actions{margin-top:24px;gap:9px}
  .cinema-btn{min-height:46px;padding:10px 16px;font-size:.82rem}
  .scene-meta{right:20px;top:22px}
  .scene-meta small,.scene-meta i{display:none}
  .hero-facts{display:none}
  .cinema-intro-grid,.cinema-process-head,.cinema-pricing-head,.cinema-strip-head{grid-template-columns:1fr}
  .cinema-section-number{padding-top:0}
  .cinema-intro-grid>p,.cinema-process-head>p,.cinema-dark-link{grid-column:auto}
  .cinema-intro h2,.cinema-process h2,.cinema-pricing h2,.cinema-strip h2{font-size:clamp(2.15rem,10vw,3.25rem)}
  .client-marquee figure{width:190px;flex-basis:190px;padding:16px}
  .process-horizontal{padding-left:18px}
  .process-horizontal li{width:270px;min-height:190px;padding:22px}
  .cinema-price-row{grid-template-columns:1fr;min-height:auto}
  .cinema-price-row>strong{grid-column:1;grid-row:auto;justify-self:start;margin-top:6px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:smooth}
  .cinema-media,.cinema-media img,.cinema-copy,[data-cinema-line],.hero-facts,.client-marquee-track,.process-horizontal ol,.cinema-price-row{transform:none!important;filter:none!important;clip-path:none!important;opacity:1!important}
}


/* =========================================================
   V7 · Native Fluid Motion
   Native scrolling, compositor-only scene motion and masked
   typography. Designed to feel responsive rather than heavy.
   ========================================================= */

html{scroll-behavior:smooth}
body.cinematic-home main{overflow-x:clip;overflow-y:visible}
body.cinematic-home .site-header{
  background:rgba(255,255,255,.985);
  backdrop-filter:none;
  box-shadow:0 1px 0 rgba(18,37,51,.08);
}
.cinema-grain{display:none}

.cinema-scene{
  --scene-image-scale:1.045;
  --scene-image-y:0px;
  --scene-copy-opacity:0;
  --scene-accent-scale:0;
  --scene-shade-shift:0%;
  min-height:123vh;
  contain:none;
  background:#071a27;
}
.cinema-scene.cinema-hero{min-height:130vh}
.cinema-sticky{
  min-height:560px;
  overflow:hidden;
}
.cinema-media{
  clip-path:none;
  border-radius:0;
  transform:none;
  will-change:auto;
}
.cinema-scene.is-motion-active .cinema-media img{will-change:transform}
.cinema-media img{
  transform:translate3d(0,var(--scene-image-y),0) scale(var(--scene-image-scale));
  filter:none;
  backface-visibility:hidden;
  transform-origin:center center;
}
.cinema-overlay{
  background:
    linear-gradient(90deg,rgba(4,17,27,.77) 0%,rgba(4,17,27,.42) 43%,rgba(4,17,27,.08) 76%),
    linear-gradient(0deg,rgba(4,17,27,.55) 0%,transparent 44%);
}
.cinema-overlay-right{
  background:
    linear-gradient(270deg,rgba(4,17,27,.8) 0%,rgba(4,17,27,.44) 43%,rgba(4,17,27,.08) 76%),
    linear-gradient(0deg,rgba(4,17,27,.48),transparent 46%);
}
.cinema-overlay-center{
  background:
    linear-gradient(90deg,rgba(4,17,27,.31),rgba(4,17,27,.52),rgba(4,17,27,.31)),
    linear-gradient(0deg,rgba(4,17,27,.55),rgba(4,17,27,.06) 64%);
}
.cinema-overlay-strong{background:rgba(4,17,27,.61)}

.cinema-content{
  width:min(var(--cinema-max),calc(100% - 112px));
  padding-bottom:clamp(72px,8vh,98px);
}
.cinema-content-center-y{padding-bottom:0}
.cinema-copy{
  position:relative;
  width:min(810px,74vw);
  opacity:var(--scene-copy-opacity);
  transform:none;
  filter:none;
  will-change:auto;
}
.cinema-scene.is-motion-active .cinema-copy{will-change:opacity}
.cinema-copy::before{
  content:"";
  display:block;
  width:72px;
  height:3px;
  margin-bottom:22px;
  border-radius:999px;
  background:#6baddc;
  transform:scaleX(var(--scene-accent-scale));
  transform-origin:left center;
  box-shadow:0 0 24px rgba(107,173,220,.28);
}
.cinema-copy-centered::before{margin-inline:auto;transform-origin:center}
.cinema-copy-narrow{width:min(680px,68vw)}
.cinema-copy-centered{width:min(900px,82vw)}
.cinema-copy-contact{width:min(850px,82vw)}

.cinema-copy h1,
.cinema-copy h2{
  font-weight:690;
  letter-spacing:-.05em;
  text-shadow:0 3px 24px rgba(0,0,0,.18);
}
.cinema-copy h1{font-size:clamp(2.9rem,5.15vw,5.35rem);line-height:.985}
.cinema-copy h2{font-size:clamp(2.45rem,4.15vw,4.35rem);line-height:1.015}
.cinema-copy p{
  max-width:610px;
  margin-top:23px;
  font-size:clamp(.98rem,1.08vw,1.1rem);
  line-height:1.64;
}
.cinema-kicker{margin-bottom:15px;font-size:clamp(.68rem,.74vw,.8rem);letter-spacing:.17em}

[data-cinema-line]{opacity:1;transform:none;will-change:auto}
.cinema-title-line{
  display:block;
  overflow:hidden;
  padding-bottom:.06em;
  margin-bottom:-.06em;
}
.cinema-line-inner{
  display:block;
  opacity:var(--title-opacity,0);
  transform:translate3d(0,var(--title-y,108%),0) skewY(var(--title-skew,3.2deg));
  transform-origin:left bottom;
  letter-spacing:var(--title-track,.018em);
  backface-visibility:hidden;
}
.cinema-copy-centered .cinema-line-inner{transform-origin:center bottom}
.cinema-scene.is-motion-active .cinema-line-inner{will-change:transform,opacity}
.cinema-detail-line{
  opacity:var(--detail-opacity,0);
  transform:translate3d(0,var(--detail-y,18px),0);
  backface-visibility:hidden;
}
.cinema-scene.is-motion-active .cinema-detail-line{will-change:transform,opacity}

.scene-meta{opacity:.8}
.hero-facts{
  opacity:var(--facts-opacity,0);
  transform:translate3d(0,var(--facts-y,14px),0);
  will-change:auto;
}
.cinema-scene.is-motion-active .hero-facts{will-change:transform,opacity}

/* Fast, clean supporting-section reveals. They do not recalculate on scroll. */
.cinema-observe{
  opacity:0;
  transform:translate3d(0,24px,0);
  transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1);
}
.cinema-observe.is-visible{opacity:1;transform:translate3d(0,0,0)}
.process-horizontal li:nth-child(2){transition-delay:.04s}
.process-horizontal li:nth-child(3){transition-delay:.08s}
.process-horizontal li:nth-child(4){transition-delay:.12s}
.process-horizontal li:nth-child(5){transition-delay:.16s}
.process-horizontal li:nth-child(6){transition-delay:.2s}
.process-horizontal li:nth-child(7){transition-delay:.24s}
.process-horizontal li:nth-child(8){transition-delay:.28s}
.cinema-price-row:nth-child(2){transition-delay:.05s}
.cinema-price-row:nth-child(3){transition-delay:.1s}
.cinema-price-row:nth-child(4){transition-delay:.15s}

.cinema-intro{padding:104px 0 112px}
.cinema-strip{padding:86px 0 96px}
.cinema-process{padding:104px 0 112px}
.cinema-pricing{padding:104px 0 112px}
.cinema-intro h2,
.cinema-process h2,
.cinema-pricing h2,
.cinema-strip h2{font-size:clamp(2.15rem,3.45vw,3.85rem);line-height:1.06}

/* Native grid instead of a forced horizontal journey. */
.process-horizontal{
  overflow:visible;
  padding-inline:max(32px,calc((100vw - var(--cinema-max))/2 + 32px));
  cursor:default;
  touch-action:auto;
}
.process-horizontal ol{
  width:min(var(--cinema-max),100%);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  transform:none!important;
}
.process-horizontal li{
  width:auto;
  min-height:190px;
  padding:24px;
  scroll-snap-align:none;
  transition-property:opacity,transform,background,border-color,box-shadow;
}
.process-horizontal li:hover{
  transform:translate3d(0,-4px,0);
  border-color:rgba(21,104,163,.26);
  box-shadow:0 20px 46px rgba(18,37,51,.08);
}

/* Client row remains native and lightweight. */
.client-marquee{overflow-x:auto;scrollbar-width:none;overscroll-behavior-inline:contain}
.client-marquee::-webkit-scrollbar{display:none}
.client-marquee-track{transform:none!important;will-change:auto;padding-bottom:6px}
.client-marquee figure{transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease}
.client-marquee figure:hover{transform:translateY(-5px);box-shadow:0 22px 50px rgba(18,37,51,.09)}

.cinema-price-row{
  transform:translate3d(0,24px,0);
  opacity:0;
  will-change:auto;
}
.cinema-price-row.is-visible{transform:translate3d(0,0,0);opacity:1}
.cinema-price-row:hover{transform:translate3d(0,-2px,0)}

@media (max-width:1000px){
  .process-horizontal ol{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:900px){
  .cinema-scene{min-height:118vh}
  .cinema-scene.cinema-hero{min-height:125vh}
  .cinema-sticky{min-height:520px}
  .cinema-content{width:calc(100% - 42px);padding-bottom:70px}
  .cinema-content-center-y{padding-bottom:70px;align-items:flex-end}
  .cinema-copy,.cinema-copy-narrow,.cinema-copy-centered,.cinema-copy-contact{width:min(100%,740px)}
  .cinema-copy h1{font-size:clamp(2.7rem,9vw,4.45rem)}
  .cinema-copy h2{font-size:clamp(2.35rem,7.7vw,3.85rem)}
  .cinema-intro,.cinema-process,.cinema-pricing{padding:82px 0 90px}
  .cinema-strip{padding:74px 0 82px}
  .process-horizontal{padding-inline:18px}
}

@media (max-width:600px){
  html{scroll-behavior:auto}
  .cinema-scene{min-height:112vh}
  .cinema-scene.cinema-hero{min-height:118vh}
  .cinema-sticky{min-height:500px}
  .cinema-content{padding-bottom:62px}
  .cinema-copy::before{width:54px;height:2px;margin-bottom:17px}
  .cinema-copy h1{font-size:clamp(2.35rem,10.9vw,3.55rem);line-height:1}
  .cinema-copy h2{font-size:clamp(2.08rem,9.8vw,3.05rem)}
  .cinema-copy p{font-size:.94rem;line-height:1.58;margin-top:17px}
  .cinema-kicker{font-size:.64rem;margin-bottom:11px}
  .cinema-actions{margin-top:22px}
  .process-horizontal ol{grid-template-columns:1fr;gap:10px}
  .process-horizontal li{min-height:0;padding:20px}
  .client-marquee figure{width:185px;flex-basis:185px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .cinema-media img,.cinema-line-inner,.cinema-detail-line,.hero-facts,.cinema-observe,.cinema-price-row{
    transform:none!important;
    opacity:1!important;
    transition:none!important;
  }
  .cinema-copy{opacity:1!important}
  .cinema-copy::before{transform:scaleX(1)!important}
}

/* =========================================================
   V8 · Free Flow Reveal
   No pinned scenes and no artificial scroll. Each photograph
   moves naturally with the document while image and typography
   reveal during entry.
   ========================================================= */

html{scroll-behavior:auto}
body.cinematic-home main{overflow-x:clip}

.cinema-scene,
.cinema-scene.cinema-hero{
  --curtain-main-y:0%;
  --curtain-accent-y:0%;
  --scene-image-scale:1.045;
  --scene-image-y:0px;
  --scene-copy-drift:0px;
  --scene-meta-opacity:0;
  min-height:0!important;
  height:auto;
  background:#f5f7f7;
  overflow:hidden;
}

.cinema-sticky{
  position:relative!important;
  top:auto!important;
  height:clamp(620px,86svh,880px)!important;
  min-height:0!important;
  overflow:hidden;
  background:#0b2639;
}

.cinema-hero .cinema-sticky{
  height:clamp(680px,92svh,960px)!important;
}

.cinema-media{
  position:absolute;
  inset:0;
  overflow:hidden;
  isolation:isolate;
}

.cinema-media img{
  position:relative;
  z-index:0;
  transform:translate3d(0,var(--scene-image-y),0) scale(var(--scene-image-scale));
  transform-origin:center center;
}

/* Two light compositor-only curtains create the photographic reveal. */
.cinema-media::before,
.cinema-media::after{
  content:"";
  position:absolute;
  inset:-2px;
  pointer-events:none;
  backface-visibility:hidden;
}

.cinema-media::before{
  z-index:2;
  background:#5fa2d2;
  transform:translate3d(0,var(--curtain-accent-y),0);
}

.cinema-media::after{
  z-index:3;
  background:#f5f7f7;
  transform:translate3d(0,var(--curtain-main-y),0);
}

.cinema-scene.is-motion-active .cinema-media::before,
.cinema-scene.is-motion-active .cinema-media::after,
.cinema-scene.is-motion-active .cinema-media img{
  will-change:transform;
}

.cinema-content{
  transform:translate3d(0,var(--scene-copy-drift),0);
  padding-bottom:clamp(64px,7.5vh,94px);
}

.cinema-content-center-y{
  padding-bottom:0;
}

.cinema-copy{
  opacity:1!important;
  transform:none!important;
}

.cinema-copy::before{
  transform:scaleX(var(--scene-accent-scale));
}

.cinema-title-line{
  overflow:hidden;
  padding-bottom:.075em;
  margin-bottom:-.075em;
}

.cinema-line-inner{
  opacity:var(--title-opacity,0);
  transform:translate3d(0,var(--title-y,112%),0) scale(var(--title-scale,.985));
  transform-origin:left bottom;
  letter-spacing:normal!important;
}

.cinema-copy-centered .cinema-line-inner{
  transform-origin:center bottom;
}

.cinema-detail-line{
  opacity:var(--detail-opacity,0);
  transform:translate3d(0,var(--detail-y,16px),0);
}

.scene-meta{
  opacity:var(--scene-meta-opacity)!important;
  transform:translate3d(0,0,0);
}

/* Keep motion elegant: no skew, blur, forced holding or disappearing text. */
.cinema-copy,
.cinema-line-inner,
.cinema-detail-line,
.hero-facts,
.scene-meta{
  filter:none!important;
}

/* Less empty travel between content blocks. */
.cinema-intro{padding:88px 0 96px}
.cinema-strip{padding:76px 0 84px}
.cinema-process{padding:88px 0 96px}
.cinema-pricing{padding:88px 0 96px}

.cinema-observe{
  transform:translate3d(0,18px,0);
  transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1);
}

@media (max-width:900px){
  .cinema-sticky,
  .cinema-hero .cinema-sticky{
    height:clamp(590px,82svh,760px)!important;
  }
  .cinema-content,
  .cinema-content-center-y{
    align-items:flex-end;
    padding-bottom:58px;
  }
  .cinema-intro,.cinema-process,.cinema-pricing{padding:72px 0 80px}
  .cinema-strip{padding:64px 0 72px}
}

@media (max-width:600px){
  .cinema-sticky,
  .cinema-hero .cinema-sticky{
    height:clamp(570px,78svh,700px)!important;
  }
  .cinema-content,
  .cinema-content-center-y{
    padding-bottom:44px;
  }
  .cinema-media img{object-position:center center}
  .cinema-copy h1{font-size:clamp(2.25rem,10.2vw,3.35rem)}
  .cinema-copy h2{font-size:clamp(2rem,9.2vw,2.9rem)}
  .scene-meta{top:18px;right:18px}
}

@media (prefers-reduced-motion:reduce){
  .cinema-media::before,
  .cinema-media::after{display:none!important}
  .cinema-content{transform:none!important}
}

/* =========================================================
   V9 · Kinetic Type / Free Flow
   Stronger typography without pinning the page. Photographs
   and words reveal while the document keeps moving naturally.
   ========================================================= */

.cinema-scene,
.cinema-scene.cinema-hero{
  --curtain-main-x:0%;
  --curtain-accent-x:0%;
  --scene-image-x:0px;
  --scene-image-y:0px;
  --scene-image-scale:1.072;
  --scene-copy-drift:0px;
  --scene-overlay-opacity:.99;
}

.cinema-media img{
  transform:translate3d(var(--scene-image-x),var(--scene-image-y),0) scale(var(--scene-image-scale));
}

/* Sideways image reveal: more visual energy, no vertical hold. */
.cinema-media::before{
  background:linear-gradient(135deg,#61a8db 0%,#2a7eba 100%);
  transform:translate3d(var(--curtain-accent-x),0,0);
  clip-path:polygon(0 0,100% 0,94% 100%,0 100%);
}

.cinema-media::after{
  background:#f5f7f7;
  transform:translate3d(var(--curtain-main-x),0,0);
  clip-path:polygon(0 0,100% 0,97% 100%,0 100%);
}

.cinema-overlay{opacity:var(--scene-overlay-opacity,.94)}
.cinema-content{transform:translate3d(0,var(--scene-copy-drift),0)}

/* Headline lines move as a coherent block while every word has its own reveal. */
.cinema-title-line{
  position:relative;
  display:block;
  overflow:visible;
  padding:.045em .035em .095em;
  margin:-.045em -.035em -.095em;
}

.cinema-title-line::after{
  content:"";
  position:absolute;
  left:.04em;
  bottom:.01em;
  width:min(104px,18%);
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,#75b6e4,rgba(117,182,228,0));
  transform:scaleX(var(--line-glow-scale,0));
  transform-origin:left center;
  opacity:.84;
}

.cinema-line-inner{
  display:block;
  opacity:1!important;
  transform:translate3d(var(--line-shift-x,0px),0,0)!important;
  letter-spacing:normal!important;
  backface-visibility:hidden;
}

.cinema-copy-centered .cinema-title-line::after{
  left:50%;
  transform:translateX(-50%) scaleX(var(--line-glow-scale,0));
  transform-origin:center;
}

.cinema-word{
  display:inline-block;
  overflow:hidden;
  vertical-align:bottom;
  padding:.08em .025em .11em;
  margin:-.08em -.025em -.11em;
}

.cinema-word-inner{
  display:inline-block;
  opacity:var(--word-opacity,0);
  transform:translate3d(var(--word-x,0px),var(--word-y,96%),0)
            rotate(var(--word-rotate,0deg))
            scale(var(--word-scale,.91));
  transform-origin:left bottom;
  backface-visibility:hidden;
  text-shadow:0 4px 28px rgba(0,0,0,.2);
}

[data-motion-variant="2"] .cinema-word-inner{transform-origin:right bottom}
[data-motion-variant="3"] .cinema-word-inner{transform-origin:center bottom}
.cinema-copy-centered .cinema-word-inner{transform-origin:center bottom}

.cinema-scene.is-motion-active .cinema-line-inner,
.cinema-scene.is-motion-active .cinema-word-inner,
.cinema-scene.is-motion-active .cinema-detail-line,
.cinema-scene.is-motion-active .hero-facts{
  will-change:transform,opacity;
}

/* Supporting copy follows the headline but remains calm and easy to read. */
.cinema-detail-line{
  opacity:var(--detail-opacity,0)!important;
  transform:translate3d(var(--detail-x,0px),var(--detail-y,18px),0)
            scale(var(--detail-scale,.975))!important;
  transform-origin:left center;
}

.cinema-copy-centered .cinema-detail-line{transform-origin:center center}
.cinema-kicker.cinema-detail-line{
  letter-spacing:calc(.17em + var(--detail-track,0em));
}

.hero-facts{
  opacity:var(--facts-opacity,0);
  transform:translate3d(0,var(--facts-y,18px),0) scale(var(--facts-scale,.985));
  transform-origin:center bottom;
}

/* Editorial sections also receive scroll-linked word motion. */
.kinetic-heading{
  --heading-drift:0px;
  transform:translate3d(var(--heading-drift),0,0);
}

.kinetic-word{
  display:inline-block;
  overflow:hidden;
  vertical-align:bottom;
  padding:.08em .018em .1em;
  margin:-.08em -.018em -.1em;
}

.kinetic-word-inner{
  display:inline-block;
  opacity:var(--kword-opacity,0);
  transform:translate3d(var(--kword-x,0px),var(--kword-y,94%),0)
            rotate(var(--kword-rotate,0deg))
            scale(var(--kword-scale,.94));
  transform-origin:left bottom;
  backface-visibility:hidden;
}

.kinetic-heading.is-kinetic-active,
.kinetic-heading.is-kinetic-active .kinetic-word-inner{will-change:transform,opacity}

/* A little more graphic hierarchy without oversized AI-looking typography. */
.cinema-copy h1{font-size:clamp(3rem,5.45vw,5.7rem);line-height:.97}
.cinema-copy h2{font-size:clamp(2.5rem,4.45vw,4.65rem);line-height:1}
.cinema-copy h1,
.cinema-copy h2{letter-spacing:-.052em}

@media (max-width:900px){
  .cinema-copy h1{font-size:clamp(2.65rem,9.2vw,4.35rem)}
  .cinema-copy h2{font-size:clamp(2.3rem,7.9vw,3.75rem)}
  .cinema-title-line::after{width:74px}
}

@media (max-width:600px){
  .cinema-copy h1{font-size:clamp(2.2rem,10.4vw,3.3rem)}
  .cinema-copy h2{font-size:clamp(1.98rem,9.35vw,2.85rem)}
  .cinema-word-inner{
    transform:translate3d(calc(var(--word-x,0px) * .72),var(--word-y,96%),0)
              rotate(calc(var(--word-rotate,0deg) * .65))
              scale(var(--word-scale,.91));
  }
  .cinema-title-line::after{height:1.5px;width:58px}
}

@media (prefers-reduced-motion:reduce){
  .cinema-media::before,
  .cinema-media::after{display:none!important}
  .cinema-line-inner,
  .cinema-word-inner,
  .cinema-detail-line,
  .hero-facts,
  .kinetic-heading,
  .kinetic-word-inner{
    opacity:1!important;
    transform:none!important;
  }
  .cinema-title-line::after{transform:scaleX(1)!important}
}

/* V9.1 · Preserve the intended editorial lines on desktop. */
@media (min-width:901px){
  .cinema-copy{width:min(1040px,80vw)}
  .cinema-copy-narrow{width:min(1020px,78vw)}
  .cinema-copy-centered{width:min(1060px,84vw)}
  .cinema-copy-contact{width:min(1040px,84vw)}
  .cinema-title-line{white-space:nowrap}
  .cinema-copy h1{font-size:clamp(3rem,5.05vw,5.2rem)}
  .cinema-copy h2{font-size:clamp(2.45rem,3.95vw,4.05rem)}
}

/* Explicitly override the legacy rule that made every span inside a title a block. */
.cinema-copy h1 .cinema-word,
.cinema-copy h2 .cinema-word,
.cinema-copy h1 .cinema-word-inner,
.cinema-copy h2 .cinema-word-inner{
  display:inline-block;
}

/* =========================================================
   V10 · Spatial 3D Scroll
   Full-width photography and typography move through real
   perspective while the page keeps its completely native flow.
   ========================================================= */

body.cinematic-home{
  --spatial-perspective:1600px;
  background:#f4f7f7;
}

.cinema-scene,
.cinema-scene.cinema-hero{
  perspective:var(--spatial-perspective);
  perspective-origin:50% 48%;
  background:#061622;
  overflow:hidden;
}

.cinema-sticky{
  perspective:var(--spatial-perspective);
  perspective-origin:50% 48%;
  transform-style:preserve-3d;
  isolation:isolate;
}

.cinema-media{
  --media-shadow-alpha:.22;
  --media-shine-x:-145%;
  --media-shine-opacity:0;
  inset:0;
  overflow:hidden;
  transform-style:preserve-3d;
  backface-visibility:hidden;
  box-shadow:0 42px 95px rgba(0,0,0,var(--media-shadow-alpha));
  transition:none!important;
  clip-path:none!important;
}

.cinema-scene[data-motion-side="-1"] .cinema-media{transform-origin:18% 50%}
.cinema-scene[data-motion-side="1"] .cinema-media{transform-origin:82% 50%}

.cinema-media::before{
  display:block!important;
  content:"";
  position:absolute;
  z-index:2;
  inset:-30% -18%;
  width:38%;
  height:160%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);
  opacity:var(--media-shine-opacity);
  transform:translate3d(var(--media-shine-x),0,1px) rotate(13deg)!important;
  clip-path:none!important;
  pointer-events:none;
  mix-blend-mode:screen;
}

.cinema-media::after{
  display:block!important;
  content:"";
  position:absolute;
  z-index:4;
  inset:0;
  border:1px solid rgba(255,255,255,.2);
  border-radius:inherit;
  background:linear-gradient(110deg,rgba(255,255,255,.13),transparent 24%,transparent 76%,rgba(85,165,221,.12));
  transform:none!important;
  clip-path:none!important;
  pointer-events:none;
}

.cinema-media img{
  z-index:0;
  backface-visibility:hidden;
  transition:none!important;
}

.cinema-media .cinema-overlay{
  z-index:1;
  border-radius:inherit;
  transform:translateZ(1px);
}

.cinema-content{
  perspective:1200px;
  perspective-origin:50% 55%;
  transform:none!important;
}

.cinema-copy{
  opacity:0;
  transform-style:preserve-3d;
  backface-visibility:hidden;
  filter:none!important;
  transition:none!important;
}

.cinema-copy::before{display:none}

.cinema-title-line{
  perspective:980px;
  perspective-origin:50% 100%;
  transform-style:preserve-3d;
  overflow:visible!important;
  transition:none!important;
}

.cinema-title-line::after{display:none!important}

.cinema-line-inner{
  transform:none!important;
  opacity:1!important;
  transform-style:preserve-3d;
}

.cinema-word{
  overflow:visible!important;
  perspective:850px;
  transform-style:preserve-3d;
  padding:.11em .025em .13em;
  margin:-.11em -.025em -.13em;
}

.cinema-word-inner{
  display:inline-block;
  transform-style:preserve-3d;
  backface-visibility:hidden;
  opacity:0;
  transition:none!important;
  text-shadow:0 5px 30px rgba(0,0,0,.24);
}

.cinema-detail-line,
.hero-facts,
.scene-meta{
  transform-style:preserve-3d;
  backface-visibility:hidden;
  transition:none!important;
  filter:none!important;
}

.cinema-scene.is-motion-active .cinema-media,
.cinema-scene.is-motion-active .cinema-media img,
.cinema-scene.is-motion-active .cinema-copy,
.cinema-scene.is-motion-active .cinema-word-inner,
.cinema-scene.is-motion-active .cinema-detail-line,
.cinema-scene.is-motion-active .hero-facts,
.cinema-scene.is-motion-active .scene-meta{
  will-change:transform,opacity;
}

.heading-3d{
  perspective:900px;
  perspective-origin:50% 100%;
  transform-style:preserve-3d;
}

.kinetic-word{
  overflow:visible!important;
  perspective:780px;
  transform-style:preserve-3d;
}

.kinetic-word-inner{
  display:inline-block;
  opacity:0;
  transform-style:preserve-3d;
  backface-visibility:hidden;
  transition:none!important;
}

.scroll-3d-block{
  opacity:0;
  perspective:1000px;
  transform-style:preserve-3d;
  backface-visibility:hidden;
  transition:none!important;
}

.process-horizontal li.scroll-3d-block:hover,
.cinema-price-row.scroll-3d-block:hover{
  box-shadow:0 24px 64px rgba(18,37,51,.1);
}

@media (max-width:900px){
  body.cinematic-home{--spatial-perspective:1250px}
  .cinema-media::before{width:48%}
}

@media (max-width:600px){
  body.cinematic-home{--spatial-perspective:1000px}
  .cinema-media::after{border-color:rgba(255,255,255,.13)}
  .cinema-word-inner{text-shadow:0 3px 18px rgba(0,0,0,.2)}
}

@media (prefers-reduced-motion:reduce){
  .cinema-media::before{display:none!important}
  .cinema-media,
  .cinema-media img,
  .cinema-copy,
  .cinema-title-line,
  .cinema-word-inner,
  .cinema-detail-line,
  .hero-facts,
  .scene-meta,
  .kinetic-word-inner,
  .scroll-3d-block{
    transform:none!important;
    opacity:1!important;
    transition:none!important;
  }
}

/* V11 · Performance pass: same spatial depth, fewer repaints and faster reveals. */
body.cinematic-home{
  --spatial-perspective:1450px;
}
body.cinematic-home main{
  perspective:var(--spatial-perspective);
}
body.cinematic-home .cinema-scene{
  min-height:148vh;
  contain:layout style paint;
}
body.cinematic-home .cinema-scene.cinema-hero{min-height:160vh}
body.cinematic-home .cinema-sticky{
  contain:layout paint style;
}
body.cinematic-home .cinema-media{
  border-radius:24px!important;
  box-shadow:0 28px 72px rgba(0,0,0,.22)!important;
  clip-path:none!important;
  contain:paint;
}
body.cinematic-home .cinema-media img{
  filter:none!important;
}
body.cinematic-home .cinema-media::before{
  width:42%;
  inset:-25% -12%;
  opacity:.12!important;
  transform:translate3d(-90%,0,1px) rotate(12deg)!important;
  mix-blend-mode:normal!important;
}
body.cinematic-home .cinema-media::after{
  background:linear-gradient(112deg,rgba(255,255,255,.1),transparent 27%,transparent 78%,rgba(85,165,221,.08));
}
body.cinematic-home .cinema-grain{display:none!important}
body.cinematic-home .cinema-copy,
body.cinematic-home .cinema-word-inner,
body.cinematic-home .cinema-detail-line,
body.cinematic-home .hero-facts,
body.cinematic-home .scene-meta,
body.cinematic-home .kinetic-word-inner,
body.cinematic-home .scroll-3d-block{
  will-change:auto!important;
}
body.cinematic-home .cinema-scene.is-motion-active .cinema-media,
body.cinematic-home .cinema-scene.is-motion-active .cinema-media img,
body.cinematic-home .cinema-scene.is-motion-active .cinema-copy,
body.cinematic-home .cinema-scene.is-motion-active .cinema-word-inner,
body.cinematic-home .cinema-scene.is-motion-active [data-cinema-line],
body.cinematic-home .cinema-scene.is-motion-active .hero-facts,
body.cinematic-home .cinema-scene.is-motion-active .scene-meta,
body.cinematic-home .heading-3d.is-motion-active .kinetic-word-inner,
body.cinematic-home .scroll-3d-block.is-motion-active{
  will-change:transform,opacity!important;
}
body.cinematic-home .cinema-intro,
body.cinematic-home .cinema-strip,
body.cinematic-home .cinema-process,
body.cinematic-home .cinema-pricing,
body.cinematic-home .cinematic-footer{
  content-visibility:auto;
  contain-intrinsic-size:900px;
}
body.cinematic-home .site-header{
  backdrop-filter:blur(12px) saturate(125%);
}
body.cinematic-home.low-power-motion .site-header{
  backdrop-filter:none;
  background:rgba(255,255,255,.98);
}
body.cinematic-home.low-power-motion .cinema-media{
  box-shadow:0 20px 50px rgba(0,0,0,.18)!important;
}
body.cinematic-home.low-power-motion .cinema-media::before{display:none!important}
@media(max-width:900px){
  body.cinematic-home .cinema-scene{min-height:136vh}
  body.cinematic-home .cinema-scene.cinema-hero{min-height:145vh}
  body.cinematic-home .cinema-media{border-radius:18px!important}
}
@media(max-width:600px){
  body.cinematic-home .cinema-scene,
  body.cinematic-home .cinema-scene.cinema-hero{min-height:128vh}
  body.cinematic-home .cinema-media{border-radius:14px!important;box-shadow:0 18px 42px rgba(0,0,0,.18)!important}
  body.cinematic-home .cinema-media::before{display:none!important}
}

/* =========================================================
   V13 · Polished kinetic dissolve
   More expressive scroll motion without pinning or layout work.
   ========================================================= */
body.cinematic-home{
  --spatial-perspective:1550px;
  background:#f3f7f7;
}
body.cinematic-home .cinema-scene{
  min-height:145vh;
  background:
    radial-gradient(circle at 50% 20%,rgba(55,139,199,.12),transparent 38%),
    #061622;
}
body.cinematic-home .cinema-scene.cinema-hero{min-height:156vh}
body.cinematic-home .cinema-media{
  --media-glow-x:50%;
  --media-glow-y:50%;
  --media-glow-opacity:.08;
  --media-shine-opacity:0;
  border-radius:22px!important;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:
    0 32px 80px rgba(0,0,0,.24),
    0 0 0 1px rgba(72,159,221,.04) inset!important;
}
body.cinematic-home .cinema-media::before{
  width:36%;
  inset:-26% -16%;
  opacity:var(--media-shine-opacity)!important;
  transform:translate3d(var(--media-shine-x),0,2px) rotate(12deg)!important;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),rgba(120,193,245,.18),transparent);
  mix-blend-mode:screen!important;
}
body.cinematic-home .cinema-media::after{
  opacity:1;
  background:
    radial-gradient(circle at var(--media-glow-x) var(--media-glow-y),rgba(113,236,243,var(--media-glow-opacity)),transparent 29%),
    linear-gradient(112deg,rgba(255,255,255,.1),transparent 25%,transparent 74%,rgba(80,167,229,.12));
  box-shadow:inset 0 0 44px rgba(5,23,35,.15);
}
body.cinematic-home .cinema-overlay{
  background:
    linear-gradient(90deg,rgba(4,16,25,.74) 0%,rgba(4,16,25,.34) 48%,rgba(4,16,25,.08) 74%),
    linear-gradient(180deg,rgba(4,16,25,.1),rgba(4,16,25,.38));
}
body.cinematic-home .cinema-copy{
  text-rendering:geometricPrecision;
}
body.cinematic-home .cinema-word-inner{
  text-shadow:
    0 4px 22px rgba(0,0,0,.28),
    0 1px 0 rgba(255,255,255,.15);
  letter-spacing:-.035em;
}
body.cinematic-home .cinema-word-inner.word-accent{
  color:#a9d5f4;
  text-shadow:
    0 0 22px rgba(82,169,230,.22),
    0 5px 24px rgba(0,0,0,.28);
}
body.cinematic-home .cinema-title-line{
  transform-origin:50% 100%;
}
body.cinematic-home .cinema-detail-line{
  text-shadow:0 3px 18px rgba(0,0,0,.22);
}
body.cinematic-home .cinema-kicker{
  letter-spacing:.14em;
}
body.cinematic-home .kinetic-word-inner{
  text-shadow:0 8px 26px rgba(8,28,42,.11);
}
body.cinematic-home .kinetic-word-inner.word-accent{
  color:#1165a0;
}
body.cinematic-home .scroll-3d-block{
  transform-origin:50% 100%;
}
body.cinematic-home .page-progress i{
  box-shadow:0 0 16px rgba(69,161,226,.52);
}
body.cinematic-home.low-power-motion .cinema-word-inner.word-accent{
  text-shadow:0 4px 20px rgba(0,0,0,.24);
}
@media(max-width:900px){
  body.cinematic-home .cinema-scene{min-height:134vh}
  body.cinematic-home .cinema-scene.cinema-hero{min-height:142vh}
  body.cinematic-home .cinema-media{border-radius:17px!important}
}
@media(max-width:600px){
  body.cinematic-home .cinema-scene,
  body.cinematic-home .cinema-scene.cinema-hero{min-height:126vh}
  body.cinematic-home .cinema-media{border-radius:13px!important}
  body.cinematic-home .cinema-word-inner{letter-spacing:-.025em}
  body.cinematic-home .cinema-word-inner.word-accent{color:#b8ddf7}
}
@media(prefers-reduced-motion:reduce){
  body.cinematic-home .cinema-word-inner.word-accent{color:inherit;text-shadow:inherit}
}

/* =========================================================
   V14 · Fast reveal / zero blank states
   Keep the kinetic 3D language, but paint every editorial block
   immediately and begin scene reveals before they enter the viewport.
   ========================================================= */
body.cinematic-home .cinema-intro,
body.cinematic-home .cinema-strip,
body.cinematic-home .cinema-process,
body.cinematic-home .cinema-pricing,
body.cinematic-home .cinematic-footer{
  content-visibility:visible!important;
  contain-intrinsic-size:auto!important;
}

/* A visible photographic floor prevents dark or empty panels while
   particle sampling and scroll calculations initialize. Inline motion
   values take over as soon as the animation frame is available. */
body.cinematic-home .cinema-media{opacity:.62}
body.cinematic-home .cinema-media img{opacity:.55}
body.cinematic-home .cinema-hero .cinema-media,
body.cinematic-home .cinema-hero .cinema-media img{opacity:1}
body.cinematic-home .cinema-copy{opacity:.12}
body.cinematic-home .cinema-word-inner{opacity:.08}
body.cinematic-home .cinema-detail-line{opacity:.1}
body.cinematic-home .hero-facts,
body.cinematic-home .scene-meta{opacity:.08}
body.cinematic-home .kinetic-word-inner{opacity:.16}
body.cinematic-home .scroll-3d-block{opacity:.18}

/* Keep the company section fully painted. This specifically avoids the
   large reserved white rectangle produced by deferred content painting. */
body.cinematic-home .cinema-strip{
  min-height:0;
  contain:none!important;
}
body.cinematic-home .cinema-strip-head,
body.cinematic-home .client-marquee{
  visibility:visible;
}

/* Shorter transition zones: motion is still visible but content becomes
   useful almost immediately after crossing the viewport edge. */
body.cinematic-home .cinema-intro{padding-top:78px;padding-bottom:84px}
body.cinematic-home .cinema-strip{padding-top:72px;padding-bottom:78px}
body.cinematic-home .cinema-process{padding-top:82px;padding-bottom:90px}
body.cinematic-home .cinema-pricing{padding-top:82px;padding-bottom:90px}

@media(max-width:900px){
  body.cinematic-home .cinema-intro,
  body.cinematic-home .cinema-process,
  body.cinematic-home .cinema-pricing{padding-top:64px;padding-bottom:70px}
  body.cinematic-home .cinema-strip{padding-top:60px;padding-bottom:66px}
}

@media(max-width:600px){
  body.cinematic-home .cinema-media{opacity:.72}
  body.cinematic-home .cinema-media img{opacity:.66}
  body.cinematic-home .cinema-hero .cinema-media,
  body.cinematic-home .cinema-hero .cinema-media img{opacity:1}
  body.cinematic-home .kinetic-word-inner,
  body.cinematic-home .scroll-3d-block{opacity:.22}
}

/* =========================================================
   V16 · White scene canvas
   Remove the dark blue-green stage behind cinematic images.
   The photographs, overlays and particle effects remain intact,
   but any area revealed around them is now clean white.
   ========================================================= */
body.cinematic-home{
  background:#fff!important;
}
body.cinematic-home .cinema-scene,
body.cinematic-home .cinema-scene.cinema-hero,
body.cinematic-home .cinema-sticky{
  background:#fff!important;
}


/* =========================================================
   V17 · Fine editorial headings
   Preserve the 3D/particle motion while replacing the heavy,
   compressed typography with a lighter, more elegant rhythm.
   ========================================================= */
body.cinematic-home,
body.cinematic-home h1,
body.cinematic-home h2,
body.cinematic-home h3,
body.cinematic-home .cinema-copy,
body.cinematic-home .kinetic-word-inner,
body.cinematic-home .cinema-word-inner{
  font-family:var(--display-font,"Manrope","Segoe UI Variable Display","Aptos Display","Avenir Next","Helvetica Neue",ui-sans-serif,system-ui,sans-serif)!important;
}
body.cinematic-home .cinema-copy h1,
body.cinematic-home .cinema-copy h2{
  font-weight:590!important;
  letter-spacing:-.043em!important;
  line-height:1.01;
}
body.cinematic-home .cinema-intro h2,
body.cinematic-home .cinema-process h2,
body.cinematic-home .cinema-pricing h2,
body.cinematic-home .cinema-strip h2{
  font-weight:535!important;
  letter-spacing:-.044em!important;
  line-height:1.075!important;
}
body.cinematic-home .cinema-intro h2{
  max-width:930px;
}
body.cinematic-home .cinema-kicker,
body.cinematic-home .cinema-eyebrow,
body.cinematic-home .cinema-section-number{
  font-weight:650!important;
}
body.cinematic-home .cinema-copy p,
body.cinematic-home .cinema-intro-grid>p,
body.cinematic-home .cinema-process-head>p{
  letter-spacing:-.012em;
}
@media(max-width:600px){
  body.cinematic-home .cinema-copy h1,
  body.cinematic-home .cinema-copy h2,
  body.cinematic-home .cinema-intro h2,
  body.cinematic-home .cinema-process h2,
  body.cinematic-home .cinema-pricing h2,
  body.cinematic-home .cinema-strip h2{
    letter-spacing:-.036em!important;
  }
}

/* =========================================================
   V18 · White edge fade / clean image integration
   Remove the dark photographic wash. Images now dissolve softly
   into the white page on every side, while typography uses a
   restrained shadow for contrast without a dark overlay.
   ========================================================= */
body.cinematic-home .cinema-sticky{
  background:#fff!important;
}

/* Remove the framed-card appearance so photographs merge into the page. */
body.cinematic-home .cinema-media{
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  clip-path:none!important;
}
body.cinematic-home .cinema-media::before{
  border-radius:0!important;
}
body.cinematic-home .cinema-media::after{
  border-radius:0!important;
  box-shadow:none!important;
}

/* White feathering on all four edges. The wider veil is placed behind
   the copy, depending on its alignment, so no dark layer is required. */
body.cinematic-home .cinema-overlay{
  opacity:1!important;
  background:
    linear-gradient(90deg,
      rgba(255,255,255,1) 0%,
      rgba(255,255,255,.94) 5%,
      rgba(255,255,255,.78) 18%,
      rgba(255,255,255,.32) 36%,
      rgba(255,255,255,0) 58%),
    linear-gradient(180deg,
      rgba(255,255,255,1) 0%,
      rgba(255,255,255,.84) 5%,
      rgba(255,255,255,.18) 15%,
      rgba(255,255,255,0) 29%,
      rgba(255,255,255,0) 76%,
      rgba(255,255,255,.38) 89%,
      rgba(255,255,255,1) 100%),
    linear-gradient(90deg,
      rgba(255,255,255,.92) 0%,
      rgba(255,255,255,0) 9%,
      rgba(255,255,255,0) 91%,
      rgba(255,255,255,.92) 100%)!important;
}
body.cinematic-home .cinema-overlay-right{
  background:
    linear-gradient(270deg,
      rgba(255,255,255,1) 0%,
      rgba(255,255,255,.94) 5%,
      rgba(255,255,255,.78) 18%,
      rgba(255,255,255,.32) 36%,
      rgba(255,255,255,0) 58%),
    linear-gradient(180deg,
      rgba(255,255,255,1) 0%,
      rgba(255,255,255,.84) 5%,
      rgba(255,255,255,.18) 15%,
      rgba(255,255,255,0) 29%,
      rgba(255,255,255,0) 76%,
      rgba(255,255,255,.38) 89%,
      rgba(255,255,255,1) 100%),
    linear-gradient(90deg,
      rgba(255,255,255,.92) 0%,
      rgba(255,255,255,0) 9%,
      rgba(255,255,255,0) 91%,
      rgba(255,255,255,.92) 100%)!important;
}
body.cinematic-home .cinema-overlay-center{
  background:
    radial-gradient(ellipse 46% 44% at 50% 56%,rgba(255,255,255,.58),rgba(255,255,255,.14) 58%,transparent 78%),
    linear-gradient(180deg,
      rgba(255,255,255,1) 0%,
      rgba(255,255,255,.76) 6%,
      rgba(255,255,255,0) 20%,
      rgba(255,255,255,0) 78%,
      rgba(255,255,255,.5) 91%,
      rgba(255,255,255,1) 100%),
    linear-gradient(90deg,
      rgba(255,255,255,.96) 0%,
      rgba(255,255,255,0) 12%,
      rgba(255,255,255,0) 88%,
      rgba(255,255,255,.96) 100%)!important;
}
body.cinematic-home .cinema-overlay-strong{
  background:
    radial-gradient(ellipse 58% 52% at 50% 58%,rgba(255,255,255,.7),rgba(255,255,255,.2) 62%,transparent 82%),
    linear-gradient(180deg,rgba(255,255,255,.98),transparent 20%,transparent 76%,rgba(255,255,255,.98)),
    linear-gradient(90deg,rgba(255,255,255,.96),transparent 13%,transparent 87%,rgba(255,255,255,.96))!important;
}

/* Dark editorial type now sits naturally over the bright feathered area. */
body.cinematic-home .cinema-copy,
body.cinematic-home .cinema-copy h1,
body.cinematic-home .cinema-copy h2,
body.cinematic-home .cinema-copy p,
body.cinematic-home .cinema-text-link,
body.cinematic-home .cinema-detail-line,
body.cinematic-home .scene-meta,
body.cinematic-home .hero-facts{
  color:#102737!important;
}
body.cinematic-home .cinema-kicker{
  color:#0d5d95!important;
}
body.cinematic-home .cinema-word-inner,
body.cinematic-home .cinema-detail-line,
body.cinematic-home .cinema-copy h1,
body.cinematic-home .cinema-copy h2,
body.cinematic-home .cinema-copy p{
  text-shadow:
    0 1px 1px rgba(255,255,255,.95),
    0 2px 7px rgba(14,39,56,.16)!important;
}
body.cinematic-home .cinema-word-inner.word-accent{
  color:#156ba8!important;
  text-shadow:
    0 1px 1px rgba(255,255,255,.98),
    0 2px 8px rgba(12,66,105,.16)!important;
}
body.cinematic-home .cinema-detail-line,
body.cinematic-home .cinema-copy p{
  color:#364b5a!important;
}
body.cinematic-home .cinema-text-link{
  border-color:rgba(16,39,55,.3)!important;
}
body.cinematic-home .cinema-btn-primary{
  background:#12629a!important;
  color:#fff!important;
  border-color:#12629a!important;
  box-shadow:0 7px 20px rgba(18,98,154,.18)!important;
}
body.cinematic-home .cinema-btn-ghost{
  background:rgba(255,255,255,.74)!important;
  color:#172f40!important;
  border-color:rgba(23,47,64,.24)!important;
  box-shadow:0 6px 18px rgba(22,47,65,.08)!important;
  backdrop-filter:blur(7px);
}
body.cinematic-home .hero-facts{
  border-top-color:rgba(16,39,55,.18)!important;
  text-shadow:0 1px 4px rgba(255,255,255,.9)!important;
}
body.cinematic-home .hero-facts b,
body.cinematic-home .hero-facts span{
  color:#172f40!important;
}
body.cinematic-home .scene-meta{
  text-shadow:0 1px 4px rgba(255,255,255,.9)!important;
}
body.cinematic-home .cinema-grain{
  opacity:.025!important;
  mix-blend-mode:multiply;
}

/* On smaller screens keep the fade compact so the image remains present. */
@media(max-width:900px){
  body.cinematic-home .cinema-overlay,
  body.cinematic-home .cinema-overlay-right{
    background:
      linear-gradient(180deg,
        rgba(255,255,255,.98) 0%,
        rgba(255,255,255,.38) 14%,
        rgba(255,255,255,0) 32%,
        rgba(255,255,255,0) 70%,
        rgba(255,255,255,.78) 91%,
        rgba(255,255,255,1) 100%),
      linear-gradient(90deg,rgba(255,255,255,.9),transparent 10%,transparent 90%,rgba(255,255,255,.9))!important;
  }
  body.cinematic-home .cinema-content{
    align-items:flex-end;
  }
  body.cinematic-home .cinema-copy{
    width:min(760px,92vw);
  }
}

@media(max-width:600px){
  body.cinematic-home .cinema-overlay,
  body.cinematic-home .cinema-overlay-right,
  body.cinematic-home .cinema-overlay-center,
  body.cinematic-home .cinema-overlay-strong{
    background:
      linear-gradient(180deg,
        rgba(255,255,255,.94) 0%,
        rgba(255,255,255,.14) 18%,
        rgba(255,255,255,0) 34%,
        rgba(255,255,255,.18) 64%,
        rgba(255,255,255,.92) 87%,
        rgba(255,255,255,1) 100%),
      linear-gradient(90deg,rgba(255,255,255,.82),transparent 8%,transparent 92%,rgba(255,255,255,.82))!important;
  }
  body.cinematic-home .cinema-copy,
  body.cinematic-home .cinema-copy h1,
  body.cinematic-home .cinema-copy h2,
  body.cinematic-home .cinema-copy p{
    text-shadow:0 1px 1px rgba(255,255,255,.98),0 2px 6px rgba(14,39,56,.18)!important;
  }
}

/* =========================================================
   V21 · High-legibility white halo
   Keep the airy photographic treatment while ensuring every
   headline and supporting line remains readable over busy artwork.
   ========================================================= */
body.cinematic-home .cinema-copy{
  isolation:isolate;
}
body.cinematic-home .cinema-copy::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-15% -12% -18%;
  pointer-events:none;
  border-radius:48%;
  background:radial-gradient(ellipse at 34% 56%,
    rgba(255,255,255,.98) 0%,
    rgba(255,255,255,.94) 27%,
    rgba(255,255,255,.75) 49%,
    rgba(255,255,255,.30) 67%,
    rgba(255,255,255,0) 82%);
  filter:blur(18px);
}
body.cinematic-home .cinema-content-right .cinema-copy::after{
  background:radial-gradient(ellipse at 66% 56%,
    rgba(255,255,255,.98) 0%,
    rgba(255,255,255,.94) 27%,
    rgba(255,255,255,.75) 49%,
    rgba(255,255,255,.30) 67%,
    rgba(255,255,255,0) 82%);
}
body.cinematic-home .cinema-copy-centered::after,
body.cinematic-home .cinema-content-center .cinema-copy::after{
  inset:-18% -10% -20%;
  border-radius:50%;
  background:radial-gradient(ellipse at 50% 52%,
    rgba(255,255,255,.98) 0%,
    rgba(255,255,255,.93) 34%,
    rgba(255,255,255,.68) 56%,
    rgba(255,255,255,.24) 73%,
    rgba(255,255,255,0) 86%);
  filter:blur(22px);
}

/* Feather the photography more decisively beneath copy without
   creating a visible card or hard contour. */
body.cinematic-home .cinema-overlay{
  background:
    linear-gradient(90deg,
      #fff 0%,
      rgba(255,255,255,.99) 10%,
      rgba(255,255,255,.94) 25%,
      rgba(255,255,255,.76) 43%,
      rgba(255,255,255,.34) 61%,
      rgba(255,255,255,0) 78%),
    linear-gradient(180deg,
      #fff 0%,
      rgba(255,255,255,.70) 7%,
      rgba(255,255,255,0) 22%,
      rgba(255,255,255,0) 76%,
      rgba(255,255,255,.52) 91%,
      #fff 100%),
    linear-gradient(90deg,
      rgba(255,255,255,.96) 0%,
      transparent 8%,
      transparent 92%,
      rgba(255,255,255,.96) 100%)!important;
}
body.cinematic-home .cinema-overlay-right{
  background:
    linear-gradient(270deg,
      #fff 0%,
      rgba(255,255,255,.99) 10%,
      rgba(255,255,255,.94) 25%,
      rgba(255,255,255,.76) 43%,
      rgba(255,255,255,.34) 61%,
      rgba(255,255,255,0) 78%),
    linear-gradient(180deg,
      #fff 0%,
      rgba(255,255,255,.70) 7%,
      rgba(255,255,255,0) 22%,
      rgba(255,255,255,0) 76%,
      rgba(255,255,255,.52) 91%,
      #fff 100%),
    linear-gradient(90deg,
      rgba(255,255,255,.96) 0%,
      transparent 8%,
      transparent 92%,
      rgba(255,255,255,.96) 100%)!important;
}
body.cinematic-home .cinema-overlay-center,
body.cinematic-home .cinema-overlay-strong{
  background:
    radial-gradient(ellipse 62% 62% at 50% 54%,
      rgba(255,255,255,.92) 0%,
      rgba(255,255,255,.82) 35%,
      rgba(255,255,255,.44) 57%,
      rgba(255,255,255,.10) 72%,
      transparent 84%),
    linear-gradient(180deg,
      #fff 0%,
      rgba(255,255,255,.68) 7%,
      transparent 23%,
      transparent 76%,
      rgba(255,255,255,.58) 91%,
      #fff 100%),
    linear-gradient(90deg,
      rgba(255,255,255,.98) 0%,
      transparent 10%,
      transparent 90%,
      rgba(255,255,255,.98) 100%)!important;
}

/* Refined white halo: stronger contrast, but no heavy outline. */
body.cinematic-home .cinema-copy h1,
body.cinematic-home .cinema-copy h2,
body.cinematic-home .cinema-word-inner{
  color:#092234!important;
  text-shadow:
    -1px -1px 0 rgba(255,255,255,.92),
     1px -1px 0 rgba(255,255,255,.92),
    -1px  1px 0 rgba(255,255,255,.92),
     1px  1px 0 rgba(255,255,255,.92),
     0 0 8px rgba(255,255,255,.98),
     0 0 20px rgba(255,255,255,.94),
     0 3px 10px rgba(8,33,51,.14)!important;
}
body.cinematic-home .cinema-word-inner.word-accent{
  color:#1169a8!important;
  text-shadow:
    -1px -1px 0 rgba(255,255,255,.96),
     1px -1px 0 rgba(255,255,255,.96),
    -1px  1px 0 rgba(255,255,255,.96),
     1px  1px 0 rgba(255,255,255,.96),
     0 0 9px rgba(255,255,255,1),
     0 0 20px rgba(255,255,255,.95),
     0 3px 10px rgba(17,89,140,.14)!important;
}
body.cinematic-home .cinema-copy p,
body.cinematic-home .cinema-detail-line,
body.cinematic-home .cinema-text-link,
body.cinematic-home .cinema-kicker{
  text-shadow:
    0 0 2px rgba(255,255,255,1),
    0 0 8px rgba(255,255,255,1),
    0 0 16px rgba(255,255,255,.96),
    0 2px 6px rgba(8,33,51,.10)!important;
}
body.cinematic-home .cinema-copy p,
body.cinematic-home .cinema-detail-line{
  color:#294051!important;
  font-weight:480;
}
body.cinematic-home .cinema-text-link{
  color:#142e40!important;
  font-weight:700;
}

/* The footer follows the new white visual language and restores contrast. */
body.cinematic-home .cinematic-footer{
  background:linear-gradient(180deg,#f8fbfb 0%,#edf6f7 100%)!important;
  color:#4c5f6c!important;
  border-top:1px solid #d7e2ea;
}
body.cinematic-home .cinematic-footer h3{color:#172e3e!important}
body.cinematic-home .cinematic-footer p{color:#60777e!important}
body.cinematic-home .cinematic-footer .footer-links a{color:#4c5f6d!important}
body.cinematic-home .cinematic-footer .footer-links a:hover,
body.cinematic-home .cinematic-footer .footer-links a.active{color:#0c5c95!important}
body.cinematic-home .cinematic-footer .footer-contact a{color:#314e63!important}
body.cinematic-home .cinematic-footer .footer-brand img{
  opacity:1!important;
  filter:none!important;
  background:transparent!important;
}

@media(max-width:900px){
  body.cinematic-home .cinema-copy::after{
    inset:-12% -8% -14%;
    filter:blur(14px);
  }
  body.cinematic-home .cinema-overlay,
  body.cinematic-home .cinema-overlay-right,
  body.cinematic-home .cinema-overlay-center,
  body.cinematic-home .cinema-overlay-strong{
    background:
      linear-gradient(180deg,
        #fff 0%,
        rgba(255,255,255,.74) 12%,
        rgba(255,255,255,.16) 31%,
        rgba(255,255,255,.20) 65%,
        rgba(255,255,255,.86) 88%,
        #fff 100%),
      linear-gradient(90deg,
        rgba(255,255,255,.96) 0%,
        rgba(255,255,255,.42) 12%,
        transparent 34%,
        transparent 88%,
        rgba(255,255,255,.92) 100%)!important;
  }
}


/* =========================================================
   V22 · Hero facts divider spacing
   Keep the rule cleanly between the actions and metrics.
   ========================================================= */
body.cinematic-home .cinema-hero .cinema-content{
  padding-bottom:clamp(120px,13vh,156px)!important;
}
body.cinematic-home .cinema-hero .hero-facts{
  bottom:2px!important;
  border-top:0!important;
  padding-top:12px;
}
body.cinematic-home .cinema-hero .hero-facts:before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:1px;
  background:linear-gradient(90deg,rgba(18,53,77,.08),rgba(18,53,77,.28) 10%,rgba(18,53,77,.28) 90%,rgba(18,53,77,.08));
}
body.cinematic-home .cinema-hero .hero-facts>div{
  padding-top:10px!important;
  padding-bottom:8px;
}
@media(max-width:900px){
  body.cinematic-home .cinema-hero .cinema-content{padding-bottom:112px!important}
  body.cinematic-home .cinema-hero .hero-facts{bottom:0!important;padding-top:8px}
  body.cinematic-home .cinema-hero .hero-facts>div{padding-top:8px!important;padding-bottom:6px}
}
