@font-face{font-family:"Cormorant Garamond";font-weight:300;font-style:normal;font-display:swap;src:url(../fonts/cormorant-garamond-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/cormorant-garamond-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-weight:300;font-style:italic;font-display:swap;src:url(../fonts/cormorant-garamond-latin-300-italic.woff2) format("woff2")}
@font-face{font-family:"Hanken Grotesk";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/hanken-grotesk-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Hanken Grotesk";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/hanken-grotesk-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}

:root{
  --mid:#081D32;--deep:#0B2440;--har:#11294A;--sla:#667688;--sll:#93A0AF;--mis:#E4E8EC;--pap:#F4F5F6;--cha:#B49A6C;
  --serif:"Cormorant Garamond",Garamond,"Times New Roman",serif;--sans:"Hanken Grotesk","Helvetica Neue",Arial,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --ease:cubic-bezier(.2,.7,.1,1);--g:clamp(20px,4.45vw,64px)
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--mid);color:var(--pap);font:400 17px/1.59 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip}
body.is-loading{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,p,blockquote,ol{margin:0}ol{list-style:none;padding:0}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:1px solid var(--cha);outline-offset:4px}
.skip{position:fixed;left:16px;top:-60px;z-index:999;background:var(--pap);color:var(--mid);padding:10px 14px}.skip:focus{top:12px}
.mono{font:400 13px/1.45 var(--mono);color:var(--sll)}
.wrap{position:relative;margin:0 var(--g)}
.dim{color:var(--sll)}
.serif,.h1,.h2,.ct-h,.st-n,.card-big,.area-n,.area-t,.r-t,.mq-track,.rw b{font-family:var(--serif);font-variant-numeric:lining-nums}

/* textures */
.grain{position:absolute;inset:0;pointer-events:none;background:url(../img/grain.png) 0 0/240px;opacity:.55;mix-blend-mode:overlay;z-index:1}
.cols{position:absolute;inset:0 var(--g);display:flex;justify-content:space-between;pointer-events:none;z-index:0}
.cols i{width:1px;height:100%;background:rgba(147,160,175,.1);transform-origin:top}
.cols.lt i{background:rgba(8,29,50,.07)}
.glow{position:absolute;border-radius:50%;pointer-events:none;filter:blur(10px);will-change:transform}
.g1{width:1100px;height:800px;right:-260px;top:-260px;background:radial-gradient(closest-side,rgba(64,112,172,.55),rgba(8,29,50,0))}
.g2{width:900px;height:700px;left:-320px;bottom:-260px;background:radial-gradient(closest-side,rgba(180,154,108,.22),rgba(8,29,50,0))}
.g3{width:800px;height:600px;left:30%;top:30%;background:radial-gradient(closest-side,rgba(147,160,175,.12),rgba(8,29,50,0))}
.glass{background:rgba(244,245,246,.07);-webkit-backdrop-filter:blur(26px) saturate(1.4);backdrop-filter:blur(26px) saturate(1.4);box-shadow:inset 0 0 0 1px rgba(244,245,246,.16),0 30px 80px rgba(0,0,0,.28)}

/* loader */
.loader{position:fixed;inset:0;z-index:500;background:var(--mid);display:grid;place-items:center}
.ld-in{width:min(320px,70vw);display:flex;flex-direction:column;gap:22px}
.ld-mark{width:100%;clip-path:inset(0 100% 0 0)}
.ld-bar{height:1px;background:rgba(147,160,175,.25)}.ld-bar i{display:block;height:100%;background:var(--cha);transform:scaleX(0);transform-origin:left}
.ld-txt{display:flex;justify-content:space-between;font:400 13px var(--mono);color:var(--sll)}

/* cursor */
.cursor{position:fixed;left:0;top:0;z-index:400;pointer-events:none;mix-blend-mode:normal;display:none}
.c-dot{position:fixed;left:-3px;top:-3px;width:6px;height:6px;border-radius:50%;background:var(--cha)}
.c-ring{position:fixed;left:-22px;top:-22px;width:44px;height:44px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(180,154,108,.7);display:grid;place-items:center;transition:width .48s var(--ease),height .48s var(--ease),left .48s var(--ease),top .48s var(--ease),background .48s var(--ease)}
.c-lab{font:400 13px var(--mono);color:var(--mid);opacity:0;transition:opacity .24s var(--ease)}
.cursor.big .c-ring{width:96px;height:96px;left:-48px;top:-48px;background:var(--pap);box-shadow:none}
.cursor.big .c-lab{opacity:1}
@media (hover:hover) and (pointer:fine){.cursor{display:block}}
.progress{position:fixed;left:0;right:0;top:0;height:2px;z-index:300;pointer-events:none}.progress i{display:block;height:100%;background:var(--cha);transform:scaleX(0);transform-origin:left}

/* header */
.hd{position:fixed;left:var(--g);right:var(--g);top:24px;z-index:200;height:68px;border-radius:14px;display:flex;align-items:center;gap:32px;padding:0 12px 0 24px;background:rgba(8,29,50,.32);-webkit-backdrop-filter:blur(26px) saturate(1.4);backdrop-filter:blur(26px) saturate(1.4);box-shadow:inset 0 0 0 1px rgba(244,245,246,.16);transition:transform .48s var(--ease),background .48s var(--ease)}
.hd.hide{transform:translateY(-140%)}
.hd.lt{background:rgba(244,245,246,.72);box-shadow:inset 0 0 0 1px rgba(8,29,50,.1);color:var(--mid)}
.hd.lt .logo img{filter:invert(9%) sepia(36%) saturate(2400%) hue-rotate(190deg) brightness(70%)}
.logo img{height:28px;width:auto}
.nav{margin-left:auto;display:flex;gap:28px;font-size:15px;font-weight:500}
.nav a{position:relative;padding:4px 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .48s var(--ease)}
.nav a:hover::after{transform:scaleX(1);transform-origin:left}
.lang{font:400 13px var(--mono);color:var(--sll)}
.burger{display:none;width:44px;height:44px;border-radius:10px;background:var(--pap);position:relative;margin-left:auto}
.burger i{position:absolute;left:13px;right:13px;height:1.5px;background:var(--mid);transition:transform .48s var(--ease)}.burger i:first-child{top:18px}.burger i:last-child{top:25px}
.burger[aria-expanded=true] i:first-child{transform:translateY(3.5px) rotate(45deg)}.burger[aria-expanded=true] i:last-child{transform:translateY(-3.5px) rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:150;background:var(--mid);padding:120px var(--g) 40px;display:flex;flex-direction:column;justify-content:space-between}
.menu[hidden]{display:none}
.menu nav a{display:flex;align-items:baseline;gap:16px;font:300 44px/1.25 var(--serif);border-bottom:1px solid rgba(147,160,175,.2);padding:6px 0}
.menu nav b{font:400 13px var(--mono);color:var(--sll)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:12px;height:56px;padding:0 26px;border-radius:12px;font:500 15px var(--sans);white-space:nowrap;position:relative;overflow:hidden;isolation:isolate}
.hd .btn{height:46px;padding:0 20px;border-radius:10px;font-size:14px}
.btn-pap{background:var(--pap);color:var(--mid)}
.btn-glass{background:rgba(244,245,246,.07);-webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px);box-shadow:inset 0 0 0 1px rgba(244,245,246,.22);color:var(--pap)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--cha);transform:translateY(101%);transition:transform .48s var(--ease)}
.btn:hover::before{transform:none}
.btn-pap:hover{color:var(--mid)}
.btn i{font-style:normal;transition:transform .48s var(--ease)}.btn:hover i{transform:translateX(4px)}

/* hero */
.hero{--hs:max(64px,min(12vw,14vh));position:relative;height:100vh;height:100svh;min-height:780px;overflow:hidden;background:var(--mid)}
.hero-in{position:absolute;inset:0;z-index:2}
.meta{position:absolute;left:var(--g);top:calc(24px + 68px + 7vh);display:flex;gap:22px;align-items:center}
.meta .hi{color:var(--pap)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--cha);animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(180,154,108,.6)}50%{opacity:.6;box-shadow:0 0 0 8px rgba(180,154,108,0)}}
.h1{position:absolute;left:calc(var(--g) - 6px);top:calc(24px + 68px + 7vh + 36px);font-weight:300;font-size:var(--hs);line-height:.9;letter-spacing:-.015em}
.h1 .ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.h1 .dim{font-style:italic;color:var(--sll)}
.roller{position:absolute;left:46%;top:calc(24px + 68px + 7vh + 36px + var(--hs)*.98);height:96px;border-radius:14px;padding:0 30px;display:flex;align-items:center;gap:18px;z-index:3}
.rw{display:block;height:72px;overflow:hidden}
.rw-in{display:flex;flex-direction:column}
.rw b{display:block;height:72px;font-weight:300;font-size:58px;line-height:72px}
.card{position:absolute;right:var(--g);bottom:164px;width:340px;border-radius:16px;padding:22px;z-index:3;transform-style:preserve-3d}
.card-top{display:flex;justify-content:space-between}
.live{color:var(--cha);display:inline-flex;align-items:center;gap:8px}.live i{width:6px;height:6px;border-radius:50%;background:var(--cha);animation:pulse 2.4s ease-in-out infinite}
.card-big{margin:16px 0 2px;font-weight:300;font-size:72px;line-height:1;transform:translateZ(30px)}
.card-sub{font-size:14px;line-height:20px;color:rgba(244,245,246,.75);margin-bottom:16px}
.card-img{height:120px;border-radius:10px;overflow:hidden}.card-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.15)}
.card-src{margin-top:12px;font-size:12px}
.intro{position:absolute;left:var(--g);bottom:164px;width:min(520px,calc(100% - 2*var(--g)))}
.lead{font-size:21px;line-height:32px;color:rgba(244,245,246,.86);margin-bottom:30px}
.btns{display:flex;gap:12px;flex-wrap:wrap}
.marquee{position:absolute;left:0;right:0;bottom:0;height:124px;border-top:1px solid rgba(147,160,175,.18);overflow:hidden;z-index:2}
.mq-track{display:flex;width:max-content;white-space:nowrap;font-weight:300;font-size:104px;line-height:124px;color:rgba(147,160,175,.3);will-change:transform}
.mq-track span{padding-right:.4em}

/* stats */
.stats{position:relative;background:var(--deep);border-top:1px solid rgba(147,160,175,.14)}
.st-grid{position:relative;z-index:1;margin:0 var(--g);display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.st{padding:44px 28px 48px;border-right:1px solid rgba(147,160,175,.18)}
.st:first-child{padding-left:0}.st:last-child{border-right:0}
.st-n{font-weight:300;font-size:clamp(80px,8vw,128px);line-height:1;margin:12px 0 10px}
.st-d{font-size:14px;color:var(--sll)}

/* areas */
.areas{position:relative;background:var(--pap);color:var(--mid);padding:160px 0}
.sec-head{display:grid;grid-template-columns:3fr 9fr;align-items:end;margin-bottom:96px}
.sec-head .mono{color:var(--sla)}
.h2{font-weight:300;font-size:clamp(56px,7.2vw,104px);line-height:.98;letter-spacing:-.01em}
.areas .dim{color:var(--sll)}
.area-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--mid)}
.area{display:flex;flex-direction:column;padding:28px 24px 0;border-right:1px solid rgba(8,29,50,.12)}
.area:first-child{padding-left:0}.area:last-child{border-right:0;padding-right:0}
.area.off{margin-top:140px}
.area-n{font-weight:300;font-size:clamp(110px,12vw,180px);line-height:.85;color:var(--mis);display:block;overflow:hidden}
.area-t{font-weight:500;font-size:clamp(28px,2.4vw,36px);line-height:1.1;margin:24px 0 12px}
.area-d{font-size:16px;line-height:25px;color:#3A4B5E;margin-bottom:28px}
.area-img{display:block;aspect-ratio:4/5;border-radius:12px;overflow:hidden}
.area-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.25);transition:transform .96s var(--ease)}
.area:hover .area-img img{transform:scale(1.08)!important}
.area-l{display:flex;justify-content:space-between;padding:16px 0;font-size:15px;font-weight:500}
.area-l i{font-style:normal;transition:transform .48s var(--ease)}.area:hover .area-l i{transform:translateX(6px)}

/* portfolio */
.pf{position:relative;background:#fff;color:var(--mid);padding:140px 0}
.pf-head{display:flex;justify-content:space-between;margin-bottom:40px}.pf-head{color:var(--sla)}
.rows{border-top:1px solid var(--mid)}
.row{border-bottom:1px solid rgba(8,29,50,.12)}
.row a{position:relative;display:grid;grid-template-columns:90px minmax(0,1fr) 300px 60px;align-items:center;height:120px;padding:0 24px;margin:0 -24px;border-radius:14px;overflow:hidden;isolation:isolate}
.row a::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--mid);transform:scaleY(0);transform-origin:bottom;transition:transform .48s var(--ease)}
.row .r-n,.row .r-s{color:var(--sla);transition:color .48s var(--ease)}
.r-t{font-weight:300;font-size:clamp(44px,5.4vw,80px);line-height:1;transition:transform .48s var(--ease),color .48s var(--ease)}
.r-o{position:relative;width:22px;height:22px;justify-self:end;transition:transform .48s var(--ease)}
.r-o i{position:absolute;left:0;right:0;top:50%;height:1px;background:currentColor}.r-o i+i{transform:rotate(90deg)}
@media (hover:hover){
  .row a:hover::before{transform:scaleY(1);transform-origin:top}
  .row a:hover{color:var(--pap)}.row a:hover .r-n,.row a:hover .r-s{color:var(--sll)}
  .row a:hover .r-t{transform:translateX(20px)}.row a:hover .r-o{transform:rotate(135deg)}
}
.float{position:fixed;left:0;top:0;z-index:120;pointer-events:none;width:280px;height:200px}
.float-in{width:100%;height:100%;border-radius:14px;overflow:hidden;box-shadow:0 30px 80px rgba(8,29,50,.4);transform:scale(0);background:var(--har);position:relative}
.float-in>img{width:100%;height:100%;object-fit:cover}
.float-ph{position:absolute;inset:0;display:none;place-items:center;background:var(--har)}.float-ph img{width:45%;opacity:.5}
.float.noimg .float-ph{display:grid}

/* founder */
.founder{position:relative;overflow:hidden;background:var(--mid);padding:160px 0}
.g4{width:1000px;height:760px;right:-200px;top:-180px;background:radial-gradient(closest-side,rgba(64,112,172,.45),rgba(8,29,50,0))}
.fd-grid{z-index:2;display:grid;grid-template-columns:7fr 4fr;gap:clamp(40px,8vw,140px);align-items:center}
.quote{font:italic 300 clamp(44px,5.3vw,80px)/1.05 var(--serif);margin:36px 0 48px}
.quote .w{display:inline-block;opacity:.12}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{padding:10px 16px;border-radius:999px;font-size:14px;color:var(--sll)}.chip:first-child{color:var(--pap)}
.portrait{aspect-ratio:3/4;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;transform-style:preserve-3d}
.portrait img{width:40%;opacity:.25}

/* contact */
.contact{position:relative;overflow:hidden;background:var(--pap);color:var(--mid);padding:160px 0 40px}
.orb{position:absolute;width:760px;height:760px;right:-160px;top:-200px;border-radius:50%;background:radial-gradient(closest-side,rgba(64,112,172,.3),rgba(244,245,246,0));will-change:transform}
.contact .mono{color:var(--sla)}
.ct-grid{z-index:1;display:grid;grid-template-columns:7fr 5fr;gap:40px;align-items:center}
.ct-h{font-weight:300;font-size:clamp(76px,11.6vw,176px);line-height:.92;letter-spacing:-.015em;margin-top:24px}
.ct-card{border-radius:18px;background:rgba(255,255,255,.7);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:inset 0 0 0 1px rgba(8,29,50,.08),0 30px 80px rgba(8,29,50,.1);padding:10px 28px}
.ct-row{display:flex;justify-content:space-between;align-items:center;padding:22px 0;border-bottom:1px solid rgba(8,29,50,.1)}
.ct-row:last-child{border:0}
.ct-row b{display:block;font:400 30px/1.2 var(--serif);margin-top:4px}
.ct-row i{font-style:normal;transition:transform .48s var(--ease)}a.ct-row:hover i{transform:translateX(6px)}
.ct-ad{display:block;margin-top:6px;font-size:16px;line-height:25px}
.ft{z-index:1;margin-top:140px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding-top:22px;border-top:1px solid rgba(8,29,50,.14);font-size:13px;color:var(--sla)}
.ft img{height:26px;width:auto}
.ft-l{display:flex;gap:22px;flex-wrap:wrap}.ft-l a:hover{color:var(--mid)}

/* split text helpers */
.wm{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
.wm>span{display:inline-block;will-change:transform}

/* responsive */
@media (max-width:1100px){.nav,.lang,.hd .btn{display:none}.burger{display:block}.roller{left:auto;right:var(--g)}}
@media (max-width:900px){
  .hd{top:14px;height:58px;padding:0 8px 0 16px}.logo img{height:22px}
  .hero{min-height:900px}
  .meta{top:100px;font-size:12px;gap:12px;flex-wrap:wrap;right:var(--g)}.meta span:nth-child(4){display:none}
  .h1{top:140px;font-size:clamp(60px,19vw,96px)}
  .roller{left:var(--g);right:auto;top:auto;bottom:400px;height:72px;padding:0 18px}.rw{height:48px}.rw b{height:48px;font-size:40px;line-height:48px}
  .card{display:none}
  .intro{bottom:120px}.lead{font-size:17px;line-height:26px}
  .marquee{height:84px}.mq-track{font-size:60px;line-height:84px}
  .st-grid{grid-template-columns:1fr 1fr}.st{padding:24px 16px 28px!important;border-bottom:1px solid rgba(147,160,175,.18)}.st:nth-child(2n){border-right:0}
  .areas,.pf,.founder,.contact{padding-top:96px;padding-bottom:96px}
  .sec-head{grid-template-columns:1fr;gap:16px;margin-bottom:48px}
  .area-grid{grid-template-columns:1fr}.area{padding:24px 0 0!important;border-right:0;border-bottom:1px solid rgba(8,29,50,.12)}.area.off{margin-top:0}
  .row a{grid-template-columns:40px minmax(0,1fr) 30px;height:auto;padding:22px 0;margin:0}.r-s{display:none}.r-t{font-size:40px}
  .fd-grid,.ct-grid{grid-template-columns:1fr}.portrait{max-width:320px}
  .ct-row b{font-size:24px}
  .ft{margin-top:72px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.quote .w{opacity:1}.ld-mark{clip-path:none}}
@media (min-width:901px){
  .hero{min-height:calc(24px + 68px + 7vh + 36px + var(--hs)*2.8 + 32px + 190px + 140px)}
  .intro{top:calc(24px + 68px + 7vh + 36px + var(--hs)*2.8 + 32px);bottom:auto}
}
