:root {
  --black: #000; --surface: #080909; --surface-raised: #111313; --white: #f5f5f7;
  --muted: #a1a1a6; --quiet: #68686d; --teal: #0aa0b4; --teal-light: #6ed4d8;
  --line: rgba(245,245,247,.14); --font: Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --mono: ui-monospace,SFMono-Regular,Consolas,monospace;
}
* { box-sizing: border-box; }
html { background: var(--black); color-scheme: dark; scroll-behavior: smooth; }
body { min-width: 320px; margin: 0; overflow-x: hidden; background: var(--black); color: var(--white); font-family: var(--font); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; } a { color: inherit; } button { font: inherit; }
:focus-visible { outline: 2px solid var(--teal-light); outline-offset: 4px; }
.skip-link { position: fixed; z-index: 100; top: 10px; left: 10px; padding: 10px 14px; transform: translateY(-160%); border-radius: 10px; background: var(--white); color: var(--black); text-decoration: none; transition: transform .2s ease; }
.skip-link:focus { transform: none; }
.scroll-progress { position:fixed; z-index:60; top:71px; left:0; width:100%; height:1px; transform:scaleX(var(--scroll-progress,0)); transform-origin:left; background:var(--teal-light); box-shadow:0 0 12px rgba(110,212,216,.65); }
.cursor { position:fixed; z-index:100; top:0; left:0; width:34px; height:34px; margin:-17px 0 0 -17px; border:1px solid rgba(110,212,216,.82); border-radius:50%; pointer-events:none; opacity:0; transform:translate3d(var(--cursor-x,-100px),var(--cursor-y,-100px),0) scale(.65); transition:width .25s ease,height .25s ease,margin .25s ease,opacity .2s ease,background .25s ease,border-color .25s ease; }.cursor span { position:absolute; top:50%; left:50%; width:4px; height:4px; transform:translate(-50%,-50%); border-radius:50%; background:var(--teal-light); transition:transform .25s ease; }

.nav { position: fixed; z-index: 50; inset: 0 0 auto; display: flex; align-items: center; justify-content: space-between; height: 72px; padding: 0 clamp(20px,4vw,56px); border-bottom: 1px solid rgba(255,255,255,.07); background: rgba(0,0,0,.68); backdrop-filter: blur(18px) saturate(130%); }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--white); text-decoration: none; }
.brand img { width: 30px; height: 17px; object-fit: cover; }.brand span { font-size: 11px; font-weight: 750; letter-spacing: .17em; }
.nav-links { display: flex; align-items: center; gap: clamp(22px,3vw,42px); margin-left: 82px; }.nav-links a { color: var(--muted); font-size: 13px; text-decoration: none; transition: color .2s ease; }.nav-links a:hover { color: var(--white); }
.nav-actions { display: flex; align-items: center; gap: 12px; }
.button { --magnetic-x:0px; --magnetic-y:0px; display: inline-flex; align-items: center; justify-content: center; gap: .65em; min-height: 48px; padding: 0 22px; border-radius: 999px; background: var(--white); color: var(--black); font-size: 15px; font-weight: 650; text-decoration: none; transform:translate3d(var(--magnetic-x),var(--magnetic-y),0); transition: transform .32s cubic-bezier(.16,1,.3,1),background .2s ease; }.button:hover { transform:translate3d(var(--magnetic-x),var(--magnetic-y),0) scale(1.025); background: #fff; }.button-small { min-height: 36px; padding: 0 16px; }
.menu-button { display: none; width: 42px; height: 42px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: transparent; cursor: pointer; }.menu-button span { display: block; width: 16px; height: 1px; margin: 4px auto; background: var(--white); transition: transform .2s ease; }.menu-button[aria-expanded="true"] span:first-child { transform: translateY(2.5px) rotate(45deg); }.menu-button[aria-expanded="true"] span:last-child { transform: translateY(-2.5px) rotate(-45deg); }
.mobile-menu { position: fixed; z-index: 45; inset: 72px 0 0; display: grid; place-items: center; background: rgba(0,0,0,.97); }.mobile-menu[hidden] { display: none; }.mobile-menu nav { display: flex; flex-direction: column; align-items: center; gap: 26px; }.mobile-menu nav>a { font-size: clamp(32px,8vw,54px); font-weight: 650; letter-spacing: -.055em; text-decoration: none; }.mobile-menu .mobile-menu-cta { margin-top: 16px; color: var(--teal-light); font-size: 16px; font-weight: 550; letter-spacing: 0; }

.section { width: min(1180px,calc(100% - 48px)); margin-inline: auto; }.section-label,.eyebrow { margin: 0; color: var(--quiet); font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: .1em; }
.hero { --hero-glow-x:50%; --hero-glow-y:40%; --hero-pan-x:0px; --hero-pan-y:0px; position: relative; display: grid; min-height: min(960px,100vh); overflow: hidden; background: radial-gradient(ellipse 72% 58% at 50% 43%,#0b1819 0%,#030606 42%,var(--black) 73%); }.hero::before { position:absolute; z-index:0; inset:0; pointer-events:none; content:""; background:radial-gradient(circle 280px at var(--hero-glow-x) var(--hero-glow-y),rgba(110,212,216,.15),transparent 72%); mix-blend-mode:screen; transition:background .12s linear; }.hero-image { position:absolute; z-index:0; inset:-16px; background: url("assets/img/v2/hero.jpg") center/cover no-repeat; opacity:.34; filter: saturate(.72) contrast(1.12) brightness(.54); transform:scale(1.03) translate3d(var(--hero-pan-x),var(--hero-pan-y),0); transition:transform .8s cubic-bezier(.16,1,.3,1); }.hero-particles { position:absolute; z-index:0; inset:0; width:100%; height:100%; pointer-events:none; opacity:.72; }.hero::after { position: absolute; z-index:0; inset: 0; pointer-events: none; content: ""; background: linear-gradient(180deg,rgba(0,0,0,.64),rgba(0,0,0,.32) 32%,rgba(0,0,0,.55) 75%,#000); }
.hero-aura { position: absolute; top: 7%; left: 50%; width: min(960px,94vw); aspect-ratio: 1; transform: translateX(-50%); border: 1px solid rgba(110,212,216,.11); border-radius: 50%; box-shadow: 0 0 100px rgba(10,160,180,.08),inset 0 0 100px rgba(10,160,180,.045); }.hero-aura::before,.hero-aura::after { position: absolute; border: 1px solid rgba(110,212,216,.08); border-radius: 50%; content: ""; }.hero-aura::before { inset: 11%; }.hero-aura::after { inset: 24%; }
.hero-content { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; width: min(820px,calc(100% - 48px)); min-width: 0; margin: auto; padding: 116px 0 72px; text-align: center; }.eyebrow { color: var(--muted); }.hero-mark { width: min(770px,105vw); margin: clamp(28px,5vw,55px) 0 clamp(26px,4vw,44px); }.hero-mark img { width: 100%; }
h1,h2,h3,p { margin-top: 0; }h1 { max-width: 850px; margin-bottom: 22px; font-size: clamp(44px,6.2vw,80px); font-weight: 650; letter-spacing: -.065em; line-height: .98; }h1 em { color: var(--teal-light); font-style: normal; }.hero-copy { max-width: 555px; margin-bottom: 27px; color: var(--muted); font-size: clamp(16px,1.5vw,19px); line-height: 1.48; }.text-link { --magnetic-x:0px; --magnetic-y:0px; display:inline-flex; color: var(--white); font-size: 15px; text-underline-offset: 5px; transform:translate3d(var(--magnetic-x),var(--magnetic-y),0); transition:transform .32s cubic-bezier(.16,1,.3,1); }.text-link span { margin-left: 5px; color: var(--teal-light); }.hero-index { position: absolute; z-index: 2; right: clamp(20px,4vw,56px); bottom: 28px; color: var(--quiet); font-family: var(--mono); font-size: 11px; letter-spacing: .08em; }

.statement { padding: clamp(128px,16vw,220px) 0; }.statement-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(280px,.75fr); gap: clamp(44px,9vw,150px); margin-top: clamp(30px,4vw,56px); }h2 { margin-bottom: 0; font-size: clamp(40px,5vw,70px); font-weight: 620; letter-spacing: -.065em; line-height: 1.01; }.statement-copy { align-self: end; color: var(--muted); font-size: clamp(17px,1.5vw,20px); line-height: 1.48; }.statement-copy p+p { margin-top: 20px; }.principles { margin-top: clamp(80px,12vw,160px); border-top: 1px solid var(--line); }.principles p { display: grid; grid-template-columns: 54px 1fr; gap: 14px; margin: 0; padding: 21px 0; border-bottom: 1px solid var(--line); font-size: clamp(17px,2vw,23px); letter-spacing: -.025em; }.principles span,.service-number { color: var(--teal-light); font-family: var(--mono); font-size: 11px; letter-spacing: .05em; }

.services { padding: clamp(100px,14vw,185px) 0; border-top: 1px solid var(--line); }.services-intro { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(260px,.75fr); gap: 40px; margin-top: clamp(30px,4vw,56px); }.services-intro p { align-self: end; margin-bottom: 0; color: var(--muted); font-size: 17px; line-height: 1.5; }.service-list { margin-top: clamp(64px,9vw,112px); border-top: 1px solid var(--line); }.service { position: relative; display: grid; grid-template-columns: 90px 1fr; gap: 12px; padding: 28px 0 32px; border-bottom: 1px solid var(--line); isolation:isolate; transition: padding-left .25s ease,background .25s ease; }.service::before { position:absolute; z-index:-1; inset:0 auto 0 0; width:0; content:""; background:linear-gradient(90deg,rgba(10,160,180,.13),transparent); transition:width .55s cubic-bezier(.16,1,.3,1); }.service:hover { padding-left: 16px; background: linear-gradient(90deg,rgba(10,160,180,.05),transparent 65%); }.service:hover::before { width:100%; }.service h3 { margin-bottom: 8px; font-size: clamp(25px,3.3vw,43px); font-weight: 590; letter-spacing: -.055em; line-height: 1.04; transition:color .25s ease,letter-spacing .35s ease; }.service:hover h3 { color:var(--teal-light); letter-spacing:-.045em; }.service p { max-width: 580px; margin-bottom: 0; color: var(--muted); font-size: 16px; line-height: 1.45; }.reach-note { position:relative; min-height:clamp(420px,39vw,550px); margin:clamp(70px,11vw,150px) 0 0; overflow:hidden; isolation:isolate; border:1px solid rgba(245,245,247,.13); border-radius:2px; background:#06272d; }.reach-image,.reach-shade,.reach-marks { position:absolute; inset:0; }.reach-image { z-index:-3; width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.7) contrast(1.08) brightness(.56); transform:scale(1.04); }.reach-shade { z-index:-2; background:linear-gradient(90deg,rgba(1,10,12,.92) 0%,rgba(1,10,12,.67) 47%,rgba(1,12,15,.15) 100%),linear-gradient(0deg,rgba(1,10,12,.35),transparent 58%); }.reach-marks { z-index:-1; overflow:hidden; pointer-events:none; }.reach-marks img { position:absolute; width:clamp(580px,56vw,900px); max-width:none; height:auto; opacity:.075; filter:drop-shadow(0 0 36px rgba(198,255,252,.28)); }.reach-marks img:first-child { right:-8%; bottom:-65%; transform:rotate(-8deg); }.reach-marks img:last-child { width:clamp(440px,38vw,650px); right:31%; top:-70%; opacity:.045; transform:rotate(172deg); }.reach-copy { display:flex; position:relative; z-index:1; flex-direction:column; justify-content:center; min-height:inherit; max-width:780px; padding:clamp(38px,6vw,88px); }.reach-kicker { margin:0 0 25px; color:var(--teal-light); font-family:var(--mono); font-size:11px; letter-spacing:.13em; }.reach-copy h3 { max-width:650px; margin:0; font-size:clamp(34px,4.6vw,67px); font-weight:610; letter-spacing:-.064em; line-height:.99; }.reach-copy > p:last-child { max-width:530px; margin:27px 0 0; color:rgba(245,245,247,.72); font-size:clamp(16px,1.4vw,19px); line-height:1.5; }

.fit-section { position: relative; display: grid; grid-template-columns: minmax(0,.86fr) minmax(0,1.14fr); align-items: center; gap: clamp(44px,7vw,108px); min-height: 760px; overflow: hidden; padding: clamp(100px,12vw,160px) clamp(24px,6vw,88px); background: radial-gradient(circle at 16% 34%,rgba(10,160,180,.12),transparent 26%),var(--surface); }.process-frame { position:relative; width:min(440px,100%); margin:0; aspect-ratio:4/5; overflow:hidden; border:1px solid rgba(245,245,247,.15); background:#020303; }.process-frame::after { position:absolute; inset:0; content:""; background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.12) 48%,rgba(0,0,0,.82)); }.process-frame img { width:100%; height:100%; object-fit:cover; object-position:68% center; filter:saturate(.8) contrast(1.1) brightness(.76); }.process-frame figcaption { position:absolute; z-index:1; right:18px; bottom:16px; left:18px; margin:0; color:rgba(245,245,247,.7); font-family:var(--mono); font-size:10px; letter-spacing:.1em; }.fit-content { position: relative; z-index: 1; grid-column: 2; }.fit-content h2 { margin-top: clamp(30px,4vw,52px); }.fit-lead { max-width: 475px; margin: 25px 0 58px; color: var(--muted); font-size: 18px; line-height: 1.5; }.fit-list { margin: 0; border-top: 1px solid var(--line); }.fit-list div { display: grid; grid-template-columns: 160px 1fr; gap: 24px; padding: 23px 0; border-bottom: 1px solid var(--line); }.fit-list dt { color: var(--teal-light); font-size: 14px; font-weight: 600; }.fit-list dd { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.45; }

.contact { padding: clamp(115px,16vw,210px) 0; }.contact-card { position:relative; isolation:isolate; padding:clamp(48px,8vw,100px); margin-top:clamp(30px,4vw,56px); overflow:hidden; border:1px solid var(--line); border-radius:28px; background:radial-gradient(circle at 78% 20%,rgba(10,160,180,.19),transparent 29%),var(--surface-raised); text-align:center; }.contact-card > :not(.contact-monogram) { position:relative; z-index:1; }.contact-monogram { position:absolute; z-index:0; width:clamp(520px,56vw,800px); max-width:none; right:-17%; top:-82%; opacity:.055; transform:rotate(-8deg); filter:drop-shadow(0 0 48px rgba(136,255,249,.15)); pointer-events:none; }.contact-card h2 { max-width:750px; margin-inline:auto; }.contact-card p { max-width:540px; margin:25px auto 34px; color:var(--muted); font-size:18px; line-height:1.5; }.email-link { display:block; width:fit-content; margin:26px auto 0; color:var(--muted); font-size:14px; text-underline-offset:4px; }
.footer { padding:34px clamp(24px,4vw,56px) 25px; overflow:hidden; border-top:1px solid var(--line); }.footer-top { display:flex; align-items:center; justify-content:space-between; gap:20px; max-width:1440px; margin-inline:auto; }.footer-top p { margin-bottom:0; color:var(--quiet); font-family:var(--mono); font-size:11px; }.footer-logo { display:block; width:min(440px,48%); margin:34px auto -5%; opacity:.62; filter:saturate(.78); }

@media (prefers-reduced-motion:no-preference) {
  .js .hero-image { animation: hero-image-in 1.8s cubic-bezier(.16,1,.3,1) both; }
  .js .hero-aura { animation: aura-in 1.4s cubic-bezier(.16,1,.3,1) .05s both; }
  .js .hero-content > * { opacity:0; animation: hero-content-in .85s cubic-bezier(.16,1,.3,1) both; }
  .js .hero-content > :nth-child(1) { animation-delay:.1s; }
  .js .hero-content > :nth-child(2) { animation-delay:.18s; }
  .js .hero-content > :nth-child(3) { animation-delay:.36s; }
  .js .hero-content > :nth-child(4) { animation-delay:.48s; }
  .js .hero-content > :nth-child(5) { animation-delay:.58s; }
  .js [data-reveal] { opacity:0; transform:translateY(26px); transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1); transition-delay:var(--reveal-delay,0ms); }
  .js [data-reveal].is-visible { opacity:1; transform:none; }
  .process-frame img { transition:transform 1s cubic-bezier(.16,1,.3,1),filter .6s ease; }
  .fit-section:hover .process-frame img { transform:scale(1.035); filter:saturate(.95) contrast(1.12) brightness(.82); }
  .service { transition:padding-left .25s ease,background .25s ease,transform .25s ease; }
  .service:hover { transform:translateX(4px); }
}
@media (pointer:fine) and (prefers-reduced-motion:no-preference) { .has-custom-cursor,.has-custom-cursor a,.has-custom-cursor button,.has-custom-cursor .service,.has-custom-cursor .process-frame { cursor:none; }.cursor.is-visible { opacity:1; }.cursor.is-interactive { width:54px; height:54px; margin:-27px 0 0 -27px; border-color:var(--teal-light); background:rgba(10,160,180,.12); }.cursor.is-interactive span { transform:translate(-50%,-50%) scale(.6); } }
@keyframes hero-image-in { from { opacity:0; } to { opacity:.34; } }
@keyframes aura-in { from { opacity:0; transform:translateX(-50%) scale(.88); } to { opacity:1; transform:translateX(-50%) scale(1); } }
@keyframes hero-content-in { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }

@media (max-width:720px) {.nav { height:64px; }.scroll-progress { top:63px; }.nav-links,.button-small { display:none; }.menu-button { display:block; }.mobile-menu { inset:64px 0 0; }.section { width:min(100% - 40px,1180px); }.hero { min-height:760px; }.hero-content { width:min(100% - 40px,820px); padding-top:100px; }.hero-mark { width:138vw; margin-top:46px; }h1 { font-size:clamp(42px,11vw,60px); }.hero-index { right:20px; bottom:20px; }.statement-grid,.services-intro { grid-template-columns:1fr; gap:28px; }.principles { margin-top:72px; }.principles p { grid-template-columns:42px 1fr; font-size:17px; }.service { grid-template-columns:48px 1fr; padding:24px 0 28px; }.service:hover { padding-left:0; transform:none; }.service:hover::before { width:0; }.reach-note { min-height:500px; margin-top:76px; }.reach-image { object-position:60% center; }.reach-shade { background:linear-gradient(180deg,rgba(1,10,12,.45),rgba(1,10,12,.88) 70%),linear-gradient(90deg,rgba(1,10,12,.68),rgba(1,10,12,.2)); }.reach-copy { justify-content:end; padding:32px 25px; }.reach-copy h3 { font-size:clamp(36px,10vw,50px); }.reach-copy > p:last-child { margin-top:20px; font-size:16px; }.reach-marks img:first-child { width:500px; right:-63%; bottom:-20%; opacity:.07; }.reach-marks img:last-child { width:380px; right:30%; top:-39%; }.fit-section { width:100%; grid-template-columns:1fr; gap:38px; min-height:0; padding:96px 20px; }.process-frame { width:min(100%,420px); aspect-ratio:16/10; }.fit-content { grid-column:1; }.fit-list div { grid-template-columns:1fr; gap:8px; }.contact-card { padding:52px 24px; border-radius:22px; }.footer { padding-inline:20px; }.footer-logo { display:none; }}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }*,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }}
