/* Cinematic home and shared navigation, drawn from Helix, Yaanendriya and 7Seventy. */
:root{scroll-padding-top:100px}
header,.landing header{position:fixed;inset:0 0 auto;z-index:30;background:transparent;color:#ffffff;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid rgba(255,255,255,.08);box-shadow:none;transition:background .3s cubic-bezier(.22,1,.36,1),color .3s ease,box-shadow .3s ease,border-color .3s ease}
.headerbar,.landing .headerbar{height:78px;transition:height .35s cubic-bezier(.22,1,.36,1);gap:36px}.headerbar:after{display:none}
.landing .brand img,.brand img{filter:none;width:152px;transition:width .35s cubic-bezier(.22,1,.36,1),filter .3s ease}
.headerbar nav{gap:32px}.headerbar nav a{position:relative;font-size:13.5px;padding:10px 0;font-weight:500;letter-spacing:-.01em;opacity:.86;transition:opacity .2s ease}
.headerbar nav a:after{content:"";position:absolute;inset:auto 0 4px;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .3s cubic-bezier(.22,1,.36,1)}
.headerbar nav a:hover,.headerbar nav a[aria-current="location"]{opacity:1}
.headerbar nav a:hover:after,.headerbar nav a[aria-current="location"]:after{transform:scaleX(1);transform-origin:left}.headerbar nav a:hover{text-decoration:none}
.headerbar .contact-btn{position:relative;isolation:isolate;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);border-radius:6px;padding:6px 7px 6px 16px;gap:12px;min-height:40px;font-size:13px;color:#ffffff;overflow:hidden;font-weight:600;transition:background .25s ease,border-color .25s ease,color .25s ease}
.headerbar .contact-btn:before{content:"";position:absolute;inset:0;background:var(--aqua);z-index:-1;transform:translateY(102%);transition:transform .32s cubic-bezier(.22,1,.36,1)}
.headerbar .contact-btn .arrow{display:grid;place-items:center;width:26px;height:26px;background:rgba(255,255,255,.14);border-radius:4px;font-size:13px;transition:background .25s ease,color .25s ease}
.headerbar .contact-btn:hover{color:#182c28;transform:none;background:transparent;border-color:var(--aqua)}.headerbar .contact-btn:hover:before{transform:none}.headerbar .contact-btn:hover .arrow{background:rgba(24,44,40,.1);color:#182c28;animation:km-arrow .65s}
header.scrolled,.inner header{background:#ffffff;color:#111e1c;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 4px 24px rgba(10,20,18,.06);border-bottom:1px solid rgba(17,30,28,.08)}
header.scrolled .headerbar{height:64px}header.scrolled .brand img,.inner header .brand img{filter:brightness(0);width:140px}
header.scrolled .contact-btn,.inner .contact-btn{background:#182c28;border-color:#182c28;color:#ffffff}
header.scrolled .contact-btn .arrow,.inner .contact-btn .arrow{background:rgba(255,255,255,.14);color:#ffffff}
.inner .headerbar{background:transparent}.inner #main{padding-top:130px}
@supports not ((backdrop-filter:blur(4px)) or (-webkit-backdrop-filter:blur(4px))){header,.landing header{background:transparent}header.scrolled,.inner header{background:#ffffff}}
.reading-progress{position:absolute;left:0;right:0;bottom:-1px;height:1.5px;background:rgba(255,255,255,.35);transform-origin:left;transform:scaleX(var(--reading,0));transition:background .3s ease}
header.scrolled .reading-progress,.inner header .reading-progress{background:#182c28}
.cinematic.hero{position:relative;isolation:isolate;min-height:760px;height:100svh;max-height:1200px;color:#f7f9f3;background:#080e0d;overflow:hidden;display:flex;justify-content:center;flex-direction:column}
.cinematic .hero-media{position:absolute;inset:0 0 0 26%;margin:0;height:100%;z-index:-3;-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.5) 18%,#000 38%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.5) 18%,#000 38%);background-size:cover;background-position:center}
.cinematic .hero-media:after{display:none}.cinematic .hero-loop{object-fit:cover;object-position:center 46%;height:100%;width:100%}
.cinema-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#080e0d 0%,rgba(8,14,13,.9) 34%,rgba(8,14,13,.3) 65%,rgba(8,14,13,.08) 100%),linear-gradient(0deg,rgba(8,14,13,.86) 0%,rgba(8,14,13,.2) 28%,transparent 52%,rgba(8,14,13,.48) 100%)}
.cinematic .hero-content{display:block;padding-block:150px 120px;width:100%;position:relative}
.cinematic .eyebrow{font-size:11px;animation:km-rise .8s .1s backwards}
.cinematic h1{font-size:clamp(76px,9.5vw,164px);letter-spacing:-.072em;line-height:.99;margin-block:30px 38px;max-width:1100px;animation:km-rise 1s .18s backwards}
.cinematic h1 span{color:var(--aqua)}.hero-bottom{display:flex;align-items:center;gap:60px;animation:km-rise .9s .35s backwards}.hero-bottom p{font-size:clamp(16px,1.35vw,22px);line-height:1.65;color:#e3ece6}
.cinematic .primary{background:#f5f7ef;color:#182c28;border-radius:3px;padding:18px 22px;gap:35px}.cinematic .primary:hover{background:var(--aqua)}
.cinema-foot{position:absolute;inset:auto 0 25px;display:flex;align-items:center;justify-content:space-between;gap:20px;font:10px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.08em}
.cinema-foot .motion-toggle{position:static;border:0;background:transparent;padding:10px 0;color:#e3ece6}
.engineering-cursor{position:fixed;inset:0;z-index:35;pointer-events:none;opacity:0;transition:opacity .15s;color:#d3f5a9}.engineering-cursor.visible{opacity:1}
.cursor-reticle,.cursor-ring{position:absolute;left:0;top:0;will-change:transform}
.cursor-reticle{width:17px;height:17px;transform:translate3d(var(--point-x,0px),var(--point-y,0px),0) translate(-50%,-50%)}
.cursor-reticle:before,.cursor-reticle:after{content:"";position:absolute;background:currentColor}
.cursor-reticle:before{width:17px;height:1px;top:8px;left:0}.cursor-reticle:after{width:1px;height:17px;left:8px;top:0}
.cursor-ring{width:56px;height:56px;border:1px solid #def5b670;border-radius:50%;transform:translate3d(var(--ring-x,0px),var(--ring-y,0px),0) translate(-50%,-50%)}
@media(hover:hover) and (pointer:fine){.cinematic.cursor-active,.cinematic.cursor-active *{cursor:none}}
@keyframes km-rise{from{opacity:0;translate:0 30px}to{opacity:1;translate:0 0}}
@keyframes km-arrow{0%,100%{transform:translate(0,0)}40%{transform:translate(20px,-20px)}41%{transform:translate(-20px,20px)}}
@media(max-width:1000px){.cinematic .film-orbit{top:auto;bottom:130px}.hero-bottom{gap:30px}.headerbar nav{gap:22px}.headerbar{gap:22px}}
@media(max-width:680px){.headerbar,.landing .headerbar{height:74px;gap:14px}.landing .brand img,.brand img{width:133px}.headerbar .contact-btn{font-size:11px;padding:6px 7px 6px 12px;min-height:38px;gap:10px}.headerbar .contact-btn .arrow{width:24px;height:24px}.landing .menu,.menu{border-color:rgba(255,255,255,.35)}.landing .menu i,.menu i{background:#f7f9f3}.headerbar nav.is-open,.landing .headerbar nav.is-open{background:#f2f3ed;color:#182c28;box-shadow:0 20px 25px #08252220;padding-bottom:22px}.headerbar nav a{font-size:16px;padding:16px 0}.headerbar nav a:after{display:none}header.scrolled .menu,.inner .menu{border-color:#182c2870}header.scrolled .menu i,.inner .menu i{background:#182c28}header.scrolled .brand img{width:123px}.cinematic.hero{height:100svh;min-height:700px;max-height:950px}.cinematic .hero-media{inset:0;-webkit-mask-image:none;mask-image:none}.cinematic .hero-content{padding-block:125px 170px}.cinematic .eyebrow{font-size:9px;letter-spacing:.04em}.cinematic h1{font-size:clamp(44px,11.5vw,77px);line-height:1.05;letter-spacing:-.06em;margin-block:28px}.hero-bottom{display:block}.hero-bottom p{font-size:16px;max-width:30ch}.hero-bottom .btn{margin-top:24px;font-size:12px;padding:15px 18px}.cinematic .film-orbit{right:var(--gutter);bottom:100px;width:154px;height:40px}.cinematic .film-orbit .play{height:40px;width:40px}.cinema-foot{bottom:20px;font-size:8px;gap:15px;flex-wrap:wrap}.cinema-foot>a{display:none}.cinematic .hero-loop{object-position:58%}.cinema-shade{background:linear-gradient(90deg,rgba(7,12,11,.85),rgba(7,12,11,.35)),linear-gradient(0deg,rgba(7,12,11,.78),transparent 45%,rgba(7,12,11,.45))}}
@media(max-width:365px){.headerbar,.landing .headerbar{gap:9px}.landing .brand img,.brand img{width:110px}.headerbar .contact-btn{gap:7px;font-size:10px}.menu{width:34px;height:34px}}
@media(prefers-reduced-motion:reduce){.cinematic .eyebrow,.cinematic h1,.hero-bottom,.contact-btn .arrow{animation:none}.engineering-cursor{display:none}}
@media(max-width:680px){
  .headerbar nav.is-open{transform-origin:top center;will-change:transform,opacity}
  .menu i{transition:transform 850ms cubic-bezier(.34,1.65,.4,1),opacity .3s;transform-origin:center}
  .menu[aria-expanded="true"] i:first-child{transform:translateY(3px) rotate(45deg)}
  .menu[aria-expanded="true"] i:last-child{transform:translateY(-3px) rotate(-45deg)}
}
@media(prefers-reduced-motion:reduce){.menu i{transition:none}}
/* Yaanendriya's original menu-label and elongated-line motion. */
@media(max-width:680px){
 .headerbar .menu{width:auto;height:auto;min-height:44px;border:0;border-radius:0;padding:10px 0;display:flex;flex-direction:row;gap:12px;font-size:12px}
 .menu-label{display:grid;line-height:1.2;min-width:34px}
 .menu-label>span{grid-area:1/1;transition:opacity .3s ease,transform .45s cubic-bezier(.22,1,.36,1)}
 .menu .close-word{opacity:0;transform:translateY(7px)}
 .menu[aria-expanded="true"] .menu-word{opacity:0;transform:translateY(-7px)}
 .menu[aria-expanded="true"] .close-word{opacity:1;transform:translateY(0)}
 .menu-icon{position:relative;display:block;width:28px;height:20px}
 .headerbar .menu .menu-icon i{position:absolute;left:0;height:1.5px;display:block;transform:none;transition:width .65s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1)}
 .headerbar .menu-icon i:first-child{top:5px;width:18px}
 .headerbar .menu-icon i:last-child{top:13px;width:12px;transition-delay:.06s}
 .headerbar .menu[aria-expanded="true"] .menu-icon i:first-child{width:24px;transform:translateY(4px) rotate(45deg)}
 .headerbar .menu[aria-expanded="true"] .menu-icon i:last-child{width:24px;transform:translateY(-4px) rotate(-45deg);transition-delay:0s}
 .headerbar nav.is-open,.landing .headerbar nav.is-open{background:rgba(247,248,243,.88);backdrop-filter:blur(26px) saturate(120%);-webkit-backdrop-filter:blur(26px) saturate(120%);max-height:calc(100svh - 74px);overflow-y:auto}
 .headerbar nav.is-open a{border-bottom:0;font-weight:400}
 .headerbar nav.is-open .mobile-contact{border-top:1px solid #182c2830;margin-top:8px;display:flex;justify-content:space-between}
 .headerbar .brand{min-width:0}
 .headerbar .contact-btn{display:none}
}
@media(max-width:680px) and (hover:hover){.headerbar .menu:hover .menu-icon i{width:28px}}
@media(prefers-reduced-motion:reduce){.menu-label>span,.headerbar .menu .menu-icon i{transition:none}}
@media(max-width:680px){
 header:has(nav.is-open){background:#ffffff;color:#111e1c}
 header:has(nav.is-open) .brand img{filter:brightness(0)}
 header:has(nav.is-open) .menu .menu-icon i{background:#111e1c}
 .headerbar nav.is-open,.landing .headerbar nav.is-open{background:#ffffff}
}

/* Comprehensive Scroll Reveal System */
html, body {
  overflow-x: clip;
}

.reveal-ready {
  opacity: 0;
  transition-property: opacity, transform, filter;
  transition-duration: 0.9s;
  transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform, filter;
}

/* Directional variants */
.reveal-ready.reveal-up {
  transform: translate3d(0, 48px, 0);
  filter: blur(6px);
}

.reveal-ready.reveal-down {
  transform: translate3d(0, -36px, 0);
  filter: blur(6px);
}

.reveal-ready.reveal-left {
  transform: translate3d(-52px, 18px, 0);
  filter: blur(6px);
}

.reveal-ready.reveal-right {
  transform: translate3d(52px, 18px, 0);
  filter: blur(6px);
}

.reveal-ready.reveal-scale {
  transform: translate3d(0, 36px, 0) scale(0.92);
  filter: blur(6px);
}

/* Active in-view state: fully visible and at normal rest position */
.reveal-ready.in-view {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) scale(1) !important;
  filter: blur(0) !important;
}

@media (max-width: 680px) {
  .reveal-ready.reveal-left {
    transform: translate3d(-24px, 32px, 0);
  }
  .reveal-ready.reveal-right {
    transform: translate3d(24px, 32px, 0);
  }
  .reveal-ready {
    transition-duration: 0.75s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .reveal-ready {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}

