:root{
  --bg:        #030304;
  --bg-2:      #070708;
  --surface:   rgba(255,255,255,.028);
  --surface-2: rgba(255,255,255,.055);
  --line:      rgba(255,255,255,.085);
  --line-2:    rgba(255,255,255,.16);

  --tx:        #e9ebf2;
  --tx-dim:    #9aa2b6;
  --tx-faint:  #646b7e;

  --a1: #6d8bff;
  --a2: #b06cff;
  --a3: #38e0d0;

  --grad: linear-gradient(110deg, var(--a1), var(--a2) 48%, var(--a3));

  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --disp: 'Space Grotesk', var(--sans);

  --fs:    16px;
  --shell: 1200px;
  --pad:   24px;

  --gs: 68px;

  --r-sm: 0.625rem;
  --r:    1rem;
  --r-lg: 1.375rem;

  --ease: cubic-bezier(.22,.61,.24,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{
  font-size:var(--fs);
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:5.625rem;
}

html{
  background:
    radial-gradient(75rem   circle at 14% 6%,  rgba(109,139,255,.07),  transparent 60%),
    radial-gradient(62.5rem circle at 84% 28%, rgba(176,108,255,.055), transparent 62%),
    radial-gradient(56rem   circle at 46% 92%, rgba(56,224,208,.04),   transparent 64%),
    var(--bg);
  background-attachment:fixed;
}

body{
  margin:0;
  background:transparent;
  color:var(--tx);
  font-family:var(--sans);
  font-size:1rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  cursor:default;
  -webkit-user-select:none;
  -moz-user-select:none;
  -ms-user-select:none;
  user-select:none;
}

a,button,summary,[data-magnet]{ cursor:pointer; }

a,button,input,select,textarea,label,[data-magnet]{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}

input,textarea,select{
  -webkit-user-select:text;
  -moz-user-select:text;
  user-select:text;
  cursor:text;
}
select{ cursor:pointer; }

img,svg{
  -webkit-user-drag:none;
  -khtml-user-drag:none;
  user-select:none;
}
.member-bg{ pointer-events:none; }

img,svg,canvas{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3{ margin:0; font-family:var(--disp); font-weight:600; letter-spacing:-.025em; line-height:1.06; }
p{ margin:0; }
ul,ol,dl{ margin:0; padding:0; list-style:none; }

.shell{
  width:100%;
  max-width:var(--shell);
  margin-inline:auto;
  padding-inline:var(--pad);
}

.skip{
  position:fixed; top:-3.75rem; left:1rem; z-index:200;
  background:var(--a1); color:#fff; padding:0.625rem 1rem; border-radius:var(--r-sm);
  font-weight:600; font-size:0.875rem; transition:top .2s;
}
.skip:focus{ top:1rem; }

:focus-visible{ outline:2px solid var(--a3); outline-offset:3px; border-radius:0.25rem; }

#bg{
  position:fixed; inset:0; width:100%; height:100%;
  z-index:-5; pointer-events:none;
}

.blobs{ position:fixed; inset:0; z-index:-4; pointer-events:none; overflow:hidden; }
.blobs i{
  position:absolute; border-radius:50%;
  filter:blur(90px); mix-blend-mode:screen;
  will-change:transform;
}
.blobs i:nth-child(1){
  width:52vw; aspect-ratio:1; top:-14vh; left:-8vw;
  background:radial-gradient(circle, rgba(109,139,255,.085), transparent 66%);
  animation:drift1 15s var(--ease) infinite alternate;
}
.blobs i:nth-child(2){
  width:46vw; aspect-ratio:1; top:22vh; right:-10vw;
  background:radial-gradient(circle, rgba(176,108,255,.07), transparent 66%);
  animation:drift2 18s var(--ease) infinite alternate;
}
.blobs i:nth-child(3){
  width:40vw; aspect-ratio:1; bottom:-18vh; left:26vw;
  background:radial-gradient(circle, rgba(56,224,208,.05), transparent 66%);
  animation:drift3 21s var(--ease) infinite alternate;
}
@keyframes drift1{ to{ transform:translate3d(14vw, 10vh, 0) scale(1.25) } }
@keyframes drift2{ to{ transform:translate3d(-12vw, -14vh, 0) scale(1.18) } }
@keyframes drift3{ to{ transform:translate3d(10vw, -10vh, 0) scale(1.3) } }

.grid{
  position:fixed; inset:0; z-index:-3; pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.028) 1px, transparent 1px);
  background-size:var(--gs) var(--gs);
  mask-image:radial-gradient(ellipse 120% 75% at 50% 0%, #000 8%, transparent 72%);
  -webkit-mask-image:radial-gradient(ellipse 120% 75% at 50% 0%, #000 8%, transparent 72%);
  animation:gridDrift 14s linear infinite;
}
@keyframes gridDrift{ to{ background-position:0 var(--gs), var(--gs) 0 } }

#fx{
  position:fixed; inset:0; width:100%; height:100%;
  z-index:-2; pointer-events:none;
}

.grain{
  position:fixed; inset:-50%; z-index:-1; pointer-events:none;
  opacity:.04; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");
  animation:grain 7s steps(6) infinite;
}
@keyframes grain{
  0%{ transform:translate(0,0) }      20%{ transform:translate(-4%,2%) }
  40%{ transform:translate(3%,-3%) }  60%{ transform:translate(-2%,4%) }
  80%{ transform:translate(4%,1%) }   100%{ transform:translate(0,0) }
}

.cursor{
  position:fixed; top:0; left:0; z-index:150; pointer-events:none;
  width:2.125rem; height:2.125rem; margin:-1.0625rem 0 0 -1.0625rem;
  border:1px solid var(--line-2); border-radius:50%;
  transition:width .3s var(--ease), height .3s var(--ease),
             margin .3s var(--ease), background-color .3s, border-color .3s;
  opacity:0;
}
.cursor span{
  position:absolute; inset:0; margin:auto;
  width:0.25rem; height:0.25rem; border-radius:50%; background:var(--tx);
  transition:opacity .3s;
}
.cursor.on{ opacity:1; }
.cursor.hot{
  width:3.75rem; height:3.75rem; margin:-1.875rem 0 0 -1.875rem;
  background:rgba(109,139,255,.12); border-color:rgba(109,139,255,.5);
}
.cursor.hot span{ opacity:0; }
@media (hover:none),(max-width:860px){ .cursor{ display:none; } }

.scroll-progress{
  position:fixed; top:0; left:0; right:0; height:2px; z-index:120;
  background:transparent; pointer-events:none;
}
.scroll-progress i{
  display:block; height:100%; width:0%;
  background:var(--grad);
  box-shadow:0 0 14px rgba(109,139,255,.6);
}

.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  transition:background-color .35s, border-color .35s, backdrop-filter .35s;
  border-bottom:1px solid transparent;
}
.nav.stuck{
  background:rgba(7,8,12,.72);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  border-bottom-color:var(--line);
}
.nav-in{
  display:flex; align-items:center; gap:1.75rem;
  height:4.5rem;
}

.brand{ display:flex; align-items:center; gap:0.6875rem; flex-shrink:0; }
.mark{ width:1.875rem; height:1.875rem; }
.brand-tx{
  font-family:var(--disp); font-weight:600; font-size:1.0625rem; letter-spacing:-.02em;
}
.brand-tx em{
  font-style:normal; font-weight:400; color:var(--tx-faint); margin-left:0.3125rem;
}

.links{ display:flex; gap:0.25rem; margin-left:auto; }
.links a{
  position:relative; padding:0.5rem 0.875rem; border-radius:6.1875rem;
  font-size:0.90625rem; font-weight:500; color:var(--tx-dim);
  transition:color .25s, background-color .25s;
}
.links a:hover{ color:var(--tx); background:var(--surface-2); }

.nav-act{ display:flex; align-items:center; gap:0.625rem; }

.lang{
  display:flex; align-items:center; gap:2px;
  background:var(--surface); border:1px solid var(--line);
  border-radius:6.1875rem; padding:0.25rem; cursor:pointer;
  font:inherit; font-size:0.71875rem; font-weight:600; letter-spacing:.04em;
  color:var(--tx-faint);
}
.lang span{ padding:3px 0.5rem; border-radius:6.1875rem; transition:color .25s, background-color .25s; }
.lang .on{ background:var(--surface-2); color:var(--tx); }

.burger{
  display:none; width:2.375rem; height:2.375rem; padding:0;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-sm);
  cursor:pointer; position:relative;
}
.burger i{
  position:absolute; left:0.6875rem; width:1rem; height:1.6px; background:var(--tx);
  border-radius:2px; transition:transform .3s var(--ease), opacity .2s;
}
.burger i:nth-child(1){ top:0.9375rem; }
.burger i:nth-child(2){ top:1.3125rem; }
.burger[aria-expanded="true"] i:nth-child(1){ transform:translateY(3px) rotate(45deg); }
.burger[aria-expanded="true"] i:nth-child(2){ transform:translateY(-3px) rotate(-45deg); }

.sheet{
  position:fixed; inset:4.5rem 0 auto; z-index:99;
  background:rgba(8,9,14,.96);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line);
  display:flex; flex-direction:column; padding:10px var(--pad) 22px;
  animation:sheetIn .3s var(--ease-out);
}

.sheet[hidden]{ display:none; }

@media (min-width:901px){ .sheet{ display:none; } }
@keyframes sheetIn{ from{ opacity:0; transform:translateY(-0.625rem) } }
.sheet a{
  padding:0.875rem 0.25rem; font-family:var(--disp); font-size:1.1875rem; font-weight:500;
  border-bottom:1px solid var(--line);
}
.sheet a:last-child{ border-bottom:0; color:var(--a1); }

.btn{
  --bw:1px;
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:0.5625rem;
  padding:0.8125rem 1.5rem; border-radius:6.1875rem;
  font-family:var(--disp); font-size:0.9375rem; font-weight:600; letter-spacing:-.005em;
  color:#06070a; background:var(--grad); background-size:180% 100%;
  border:0; cursor:pointer; white-space:nowrap;
  transition:transform .3s var(--ease), box-shadow .3s, background-position .6s var(--ease);
  box-shadow:0 2px 20px rgba(109,139,255,.22);
  min-height:2.75rem;
}
.btn svg{ width:1rem; height:1rem; flex-shrink:0; }
.btn:hover{
  background-position:100% 0;
  box-shadow:0 6px 34px rgba(109,139,255,.4);
}
.btn:active{ transform:scale(.975); }
.btn-sm{ padding:0.5625rem 1.125rem; font-size:0.875rem; }
.btn-lg{ padding:0.9375rem 1.875rem; font-size:1rem; }

.btn-ghost{
  color:var(--tx); background:var(--surface);
  border:1px solid var(--line-2); box-shadow:none;
}
.btn-ghost:hover{
  background:var(--surface-2); border-color:var(--tx-faint);
  box-shadow:0 4px 24px rgba(0,0,0,.4);
}

.hero{
  position:relative;
  min-height:100svh;
  display:flex; flex-direction:column; justify-content:center;
  padding:8.75rem 0 6.875rem;
}

.pill{
  display:inline-flex; align-items:center; gap:0.5625rem;
  padding:0.4375rem 0.9375rem 0.4375rem 0.75rem; margin-bottom:1.875rem;
  background:var(--surface); border:1px solid var(--line);
  border-radius:6.1875rem; font-size:0.84375rem; font-weight:500; color:var(--tx-dim);
  backdrop-filter:blur(8px);
}
.dot{
  width:0.4375rem; height:0.4375rem; border-radius:50%; background:var(--a3);
  box-shadow:0 0 0 0 rgba(56,224,208,.6);
  animation:ping 2.4s var(--ease-out) infinite;
}
@keyframes ping{
  0%{ box-shadow:0 0 0 0 rgba(56,224,208,.5) }
  70%{ box-shadow:0 0 0 11px rgba(56,224,208,0) }
  100%{ box-shadow:0 0 0 0 rgba(56,224,208,0) }
}

.h-xl{
  font-size:clamp(2.7rem, 8.4vw, 6.4rem);
  font-weight:700; letter-spacing:-.04em; line-height:.98;
  max-width:16em;
}
.h-xl span{ display:block; }
.grad{
  background:var(--grad); background-size:220% 100%;
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  animation:shift 9s linear infinite;
  display:block;
  padding-bottom:.3em;
  margin-bottom:-.3em;
}
@keyframes shift{ to{ background-position:220% 0 } }

.lede{
  max-width:46ch; margin-top:1.75rem;
  font-size:clamp(1rem, 1.9vw, 1.175rem); color:var(--tx-dim);
}

.hero-act{ display:flex; flex-wrap:wrap; gap:0.75rem; margin-top:2.375rem; }

.stats{
  display:flex; flex-wrap:wrap; gap:0.875rem 3.5rem; margin-top:4.5rem;
  padding-top:2.125rem; border-top:1px solid var(--line);
}
.stats dt{
  font-family:var(--disp); font-size:clamp(1.8rem,4vw,2.5rem);
  font-weight:700; letter-spacing:-.035em; line-height:1;
  background:var(--grad); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  padding-bottom:.22em;
  margin-bottom:-.22em;
}
.stats dd{ margin:0.4375rem 0 0; font-size:0.84375rem; color:var(--tx-faint); }

.scroll-hint{
  position:absolute; bottom:1.875rem; left:50%; translate:-50% 0;
  width:1px; height:46px; background:linear-gradient(var(--line-2), transparent);
  overflow:hidden;
}
.scroll-hint i{
  position:absolute; top:0; left:0; width:1px; height:0.875rem;
  background:var(--a3); animation:drip 2.2s var(--ease) infinite;
}
@keyframes drip{ 0%{ top:-0.875rem } 100%{ top:2.875rem } }

.marquee{
  position:relative; overflow:hidden;
  padding:1.25rem 0; border-block:1px solid var(--line);
  background:rgba(255,255,255,.012);
  mask-image:linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.mq-track{
  display:flex; align-items:center; gap:1.375rem; width:max-content;
  animation:mq 26s linear infinite;
}
.marquee:hover .mq-track{ animation-play-state:paused; }
.mq-track span{
  font-family:var(--disp); font-size:0.9375rem; font-weight:500;
  color:var(--tx-faint); white-space:nowrap;
  transition:color .25s;
}
.mq-track span:hover{ color:var(--tx); }
.mq-track b{ color:rgba(255,255,255,.16); }
@keyframes mq{ to{ transform:translateX(-50%) } }

.sec{ padding:clamp(5rem,11vw,8.75rem) 0; position:relative; }

.sec-head{ max-width:40rem; margin-bottom:clamp(2.75rem,6vw,4.25rem); }

.eyebrow{
  display:inline-block; margin-bottom:1.125rem;
  font-family:var(--disp); font-size:0.78125rem; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; color:var(--a1);
}

.h-lg{
  font-size:clamp(2rem, 4.8vw, 3.3rem);
  font-weight:700; letter-spacing:-.035em;
}

.sec-sub{ margin-top:1.25rem; font-size:clamp(1rem,1.7vw,1.1rem); color:var(--tx-dim); max-width:50ch; }

.cards{
  display:grid; gap:1.125rem;
  grid-template-columns:repeat(auto-fit, minmax(min(18.125rem, 100%), 1fr));
}

.card, .member, .cta-box{
  position:relative; overflow:hidden;
  background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r-lg);
  transition:border-color .35s, transform .35s var(--ease), background-color .35s;
}
.card{ padding:1.875rem 1.75rem 1.75rem; }
.card:hover, .member:hover{
  border-color:var(--line-2); transform:translateY(-0.25rem);
  background:rgba(255,255,255,.042);
}

[data-spot]::before{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(22.5rem circle at var(--mx,50%) var(--my,0%),
             rgba(109,139,255,.13), transparent 62%);
  opacity:0; transition:opacity .4s;
}
[data-spot]:hover::before{ opacity:1; }

.ic{
  width:2.875rem; height:2.875rem; margin-bottom:1.25rem;
  display:grid; place-items:center;
  border:1px solid var(--line); border-radius:0.8125rem;
  background:linear-gradient(145deg, rgba(109,139,255,.14), rgba(176,108,255,.06));
  color:var(--a1);
  transition:color .35s, border-color .35s, transform .45s var(--ease);
}
.ic svg{ width:1.375rem; height:1.375rem; }
.card:hover .ic{ color:var(--a3); border-color:rgba(56,224,208,.34); transform:rotate(-6deg) scale(1.06); }

.card h3{ font-size:1.21875rem; margin-bottom:0.6875rem; }
.card p{ font-size:0.925rem; color:var(--tx-dim); }

.tags{ display:flex; flex-wrap:wrap; gap:0.4375rem; margin-top:1.25rem; }
.tags li{
  padding:0.25rem 0.6875rem; border-radius:6.1875rem;
  background:rgba(255,255,255,.04); border:1px solid var(--line);
  font-size:0.71875rem; font-weight:500; color:var(--tx-faint);
  letter-spacing:.015em;
}

.works{ display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fit, minmax(min(20.625rem, 100%),1fr)); }

.work{
  position:relative; overflow:hidden;
  border:1px solid var(--line); border-radius:var(--r-lg);
  background:var(--surface);

  transition:border-color .4s, transform .2s var(--ease);
  transform-style:preserve-3d;
}
.work:hover{ border-color:var(--line-2); }

.work-vis{
  position:relative; aspect-ratio:16/10; overflow:hidden;
  border-bottom:1px solid var(--line);
  background:var(--bg-2);
}
.work-vis i{
  position:absolute; border-radius:50%; filter:blur(34px); opacity:.65;
  animation:float 13s var(--ease) infinite alternate;
}
.work-vis i:nth-child(1){ width:58%; aspect-ratio:1; left:-8%;  top:-18%; background:var(--a1); }
.work-vis i:nth-child(2){ width:52%; aspect-ratio:1; right:-6%; top:22%;  background:var(--a2); animation-delay:-4s; }
.work-vis i:nth-child(3){ width:42%; aspect-ratio:1; left:28%;  bottom:-22%; background:var(--a3); animation-delay:-8s; }
@keyframes float{
  from{ transform:translate3d(0,0,0) scale(1) }
  to  { transform:translate3d(10%,-12%,0) scale(1.22) }
}
.work-vis[data-vis="2"] i:nth-child(1){ background:var(--a3); }
.work-vis[data-vis="2"] i:nth-child(3){ background:var(--a1); }
.work-vis[data-vis="3"] i:nth-child(1){ background:var(--a2); }
.work-vis[data-vis="3"] i:nth-child(2){ background:var(--a3); }
.work-vis[data-vis="4"] i:nth-child(2){ background:var(--a1); }
.work-vis[data-vis="4"] i:nth-child(3){ background:var(--a2); }

.work-vis::after{
  content:''; position:absolute; inset:0;
  background:
    linear-gradient(transparent 0 0),
    repeating-linear-gradient(0deg, rgba(0,0,0,.26) 0 1px, transparent 1px 3px);
  opacity:.5;
}

.work-tx{ padding:1.625rem 1.625rem 1.75rem; }
.yr{
  font-family:var(--disp); font-size:0.75rem; font-weight:500;
  letter-spacing:.1em; color:var(--tx-faint);
}
.work-tx h3{ font-size:1.375rem; margin:0.5rem 0 0.6875rem; }
.work-tx p{ font-size:0.925rem; color:var(--tx-dim); }

.steps{
  display:grid; gap:1px;
  grid-template-columns:repeat(auto-fit, minmax(min(15rem, 100%),1fr));
  background:var(--line);
  border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden;
}
.steps li{
  position:relative; padding:2.125rem 1.75rem 2.25rem;
  background:var(--bg);
  transition:background-color .4s;
}
.steps li::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:var(--grad); transform:scaleX(0); transform-origin:left;
  transition:transform .5s var(--ease-out);
}
.steps li:hover{ background:var(--bg-2); }
.steps li:hover::after{ transform:scaleX(1); }

.num{
  display:block; margin-bottom:1.125rem;
  font-family:var(--disp); font-size:2.125rem; font-weight:700; letter-spacing:-.04em;
  color:transparent; -webkit-text-stroke:1px var(--line-2);
  transition:-webkit-text-stroke-color .4s;
}
.steps li:hover .num{ -webkit-text-stroke-color:var(--a1); }
.steps h3{ font-size:1.125rem; margin-bottom:0.625rem; }
.steps p{ font-size:0.90625rem; color:var(--tx-dim); }

.team{
  display:grid; gap:1.25rem;
  grid-template-columns:repeat(auto-fit, minmax(min(19rem, 100%),1fr));
  max-width:62rem; margin-inline:auto;
}
.team--3{ max-width:none; }

.member{
  position:relative; overflow:hidden; isolation:isolate;
  min-height:clamp(30rem, 70vw, 36rem);
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:2.25rem 2rem 2rem;
}

.member-bg{
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%;
  object-fit:cover; object-position:50% 14%;
  opacity:.62;
  filter:saturate(.95) contrast(1.02);
  transform:scale(1.04);
  transition:opacity .7s var(--ease), transform 1.4s var(--ease),
             filter .7s var(--ease);

  animation:portrait 22s var(--ease) infinite alternate;
}
@keyframes portrait{
  from{ transform:scale(1.04) translate3d(0,0,0) }
  to  { transform:scale(1.11) translate3d(-1.2%,-1.8%,0) }
}
.member:hover .member-bg{
  opacity:.82; filter:saturate(1.05) contrast(1.02);
}@keyframes monoDrift{
  from{ transform:translate3d(-2%, 1.5%, 0) scale(1) }
  to  { transform:translate3d(2%, -1.5%, 0) scale(1.07) }
}

.member::after{
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(to top,
    rgba(6,7,11,.95) 12%,
    rgba(6,7,11,.84) 30%,
    rgba(6,7,11,.40) 58%,
    rgba(6,7,11,.06) 100%);
}

.member[data-spot]::before{ z-index:2; }

.member-body{ position:relative; z-index:3; }

.member-no{
  position:absolute; top:1.75rem; right:1.875rem; z-index:3;
  font-family:var(--disp); font-size:0.8125rem; font-weight:600;
  letter-spacing:.14em; color:rgba(255,255,255,.34);
}

.member h3{ font-size:1.625rem; margin-bottom:0.7rem; }.member p{ font-size:0.925rem; color:var(--tx-dim); }
.member .tags li{ background:rgba(255,255,255,.07); }.card-wide-tx{ flex:1 1 auto; min-width:0; }.card--wide p{ max-width:64ch; }

@media (max-width:760px){
  .card--wide{ flex-direction:column; gap:0; }
  .card--wide .ic{ margin-bottom:1.25rem; }
}.work--feature .work-vis{
  aspect-ratio:auto; min-height:19rem;
  border-bottom:0; border-right:1px solid var(--line);
}.work--feature h3{ font-size:1.55rem; }

@media (max-width:760px){
  .work--feature{ grid-template-columns:minmax(0,1fr); }
  .work--feature .work-vis{
    aspect-ratio:16/10; min-height:0;
    border-right:0; border-bottom:1px solid var(--line);
  }
  .work--feature .work-tx{ padding:1.5rem 1.375rem 1.75rem; }
}.cards-feat{
  grid-template-columns:repeat(auto-fit, minmax(min(24rem, 100%),1fr));
  margin-top:1.125rem;
}

.empty{
  display:grid; justify-items:center; text-align:center;
  padding:clamp(2.75rem,6vw,4.25rem) clamp(1.5rem,4vw,3rem);
  border:1px dashed var(--line-2); border-radius:var(--r-lg);
  background:var(--surface);
}
.empty-ic{
  display:grid; place-items:center;
  width:3.5rem; height:3.5rem; margin-bottom:1.25rem;
  border:1px solid var(--line); border-radius:1rem;
  background:linear-gradient(145deg, rgba(109,139,255,.14), rgba(176,108,255,.06));
  color:var(--a1);
}
.empty-ic svg{ width:1.6rem; height:1.6rem; }
.empty h3{ font-size:1.3rem; }
.empty p{
  max-width:52ch; margin-top:.8rem;
  font-size:.95rem; color:var(--tx-dim);
}
.empty .btn{ margin-top:1.6rem; }

.sel{ position:relative; }
.sel-btn{
  display:flex; align-items:center; justify-content:space-between; gap:.75rem;
  width:100%; padding:.8rem 1rem; border-radius:var(--r-sm);
  background:rgba(255,255,255,.045); border:1px solid var(--line-2);
  color:var(--tx); font:inherit; font-size:.95rem; line-height:1.5; text-align:left;
  transition:border-color .25s, background-color .25s, box-shadow .25s;
}
.sel-btn:hover{ border-color:var(--tx-faint); }
.sel.open .sel-btn,
.sel-btn:focus-visible{
  outline:none; border-color:var(--a1);
  background:rgba(255,255,255,.07);
  box-shadow:0 0 0 3px rgba(109,139,255,.16);
}
.sel-chev{
  width:.85rem; height:.85rem; flex-shrink:0; color:var(--tx-dim);
  transition:transform .3s var(--ease), color .25s;
}
.sel.open .sel-chev{ transform:rotate(180deg); color:var(--a1); }

.sel-list{
  position:absolute; left:0; right:0; top:calc(100% + .45rem); z-index:30;
  padding:.375rem; border-radius:var(--r);
  background:rgba(8,9,13,.97);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border:1px solid var(--line-2);
  box-shadow:0 1.25rem 3rem rgba(0,0,0,.65);
  max-height:17rem; overflow:auto;
  animation:selIn .22s var(--ease-out);
}
.sel-list[hidden]{ display:none; }
@keyframes selIn{ from{ opacity:0; transform:translateY(-.4rem) } }

.sel-opt{
  display:flex; align-items:center; gap:.6rem;
  width:100%; padding:.62rem .75rem; border:0; border-radius:.6rem;
  background:transparent; color:var(--tx-dim);
  font:inherit; font-size:.9rem; text-align:left;
  transition:background-color .18s, color .18s;
}
.sel-opt::before{
  content:''; flex-shrink:0;
  width:.4rem; height:.4rem; border-radius:50%;
  background:var(--grad); opacity:0; transition:opacity .18s;
}
.sel-opt:hover,
.sel-opt.cur{ background:rgba(255,255,255,.06); color:var(--tx); }
.sel-opt.on{ color:var(--tx); }
.sel-opt.on::before{ opacity:1; }

.f-service select.sel-native{ display:none; }

.form-done{
  display:grid; justify-items:center; gap:.7rem;
  padding:2.5rem 1.5rem;
  animation:selIn .4s var(--ease-out);
}
.form-done .ic{ margin-bottom:.4rem; color:var(--a3); }
.form-done h3{ font-size:1.3rem; }
.form-done p{ max-width:44ch; font-size:.95rem; color:var(--tx-dim); }
.f-err{
  margin-top:.2rem !important; text-align:center;
  font-size:.8125rem !important; color:#ff8d8d !important;
}

}

.sec-cta{ padding-bottom:clamp(5.625rem,12vw,9.375rem); }
.cta-box{
  padding:clamp(2.5rem,6vw,4rem);
  text-align:center;
  background:
    radial-gradient(56rem circle at 50% -40%, rgba(109,139,255,.14), transparent 70%),
    var(--surface);
  border-radius:clamp(1.375rem,3vw,1.875rem);
}
.cta-box .eyebrow{ color:var(--a3); }
.cta-box p{
  max-width:52ch; margin:1.25rem auto 0;
  font-size:clamp(1rem,1.7vw,1.1rem); color:var(--tx-dim);
}
.cta-act{ display:flex; flex-wrap:wrap; gap:0.75rem; justify-content:center; margin-top:2.125rem; }
.fine{ margin-top:1.625rem !important; font-size:0.8125rem !important; color:var(--tx-faint) !important; }

.form{
  display:grid; gap:1rem;
  max-width:40rem; margin:2.25rem auto 0;
  text-align:left;
}
.f-row{ display:grid; gap:1rem; grid-template-columns:1fr 1fr; }

@media (max-width:560px){
  .f-row{ grid-template-columns:1fr; }
}

.f{ display:block; }
.f > span{
  display:block; margin-bottom:.45rem;
  font-size:.8125rem; font-weight:500; letter-spacing:.01em; color:var(--tx-dim);
}
.f input,.f select,.f textarea{
  display:block; width:100%;
  padding:.8rem 1rem; border-radius:var(--r-sm);
  background:rgba(255,255,255,.045); border:1px solid var(--line-2);
  color:var(--tx); font:inherit; font-size:.95rem; line-height:1.5;
  transition:border-color .25s, background-color .25s, box-shadow .25s;
}
.f textarea{ resize:vertical; min-height:7rem; }
.f input::placeholder,.f textarea::placeholder{ color:var(--tx-faint); }
.f input:focus,.f select:focus,.f textarea:focus{
  outline:none; border-color:var(--a1);
  background:rgba(255,255,255,.07);
  box-shadow:0 0 0 3px rgba(109,139,255,.16);
}
.f select{
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  padding-right:2.4rem;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'><path d='M3 5.5 7 9.5l4-4' fill='none' stroke='%239aa2b6' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat;
  background-position:right 1rem center;
}
.f select option{ background:#0b0c11; color:var(--tx); }
.f.err input,.f.err textarea{ border-color:#ff6b6b; }
.f-msg{
  display:block; margin-top:.42rem;
  font-size:.78rem; line-height:1.45; color:#ff9a9a;
}
.f.err input:focus,.f.err textarea:focus{ box-shadow:0 0 0 3px rgba(255,107,107,.18); }

.form .btn{ justify-self:center; margin-top:.4rem; }
.f-note{
  margin-top:.1rem !important; text-align:center;
  font-size:.8125rem !important; color:var(--tx-faint) !important;
}

.foot-social{ display:flex; gap:.7rem; align-items:center; }
.foot-social a{
  display:grid; place-items:center;
  width:2.5rem; height:2.5rem;
  border:1px solid var(--line); border-radius:50%;
  background:var(--surface); color:var(--tx-dim);
  transition:color .25s, border-color .25s, background-color .25s,
             transform .3s var(--ease);
}
.foot-social a:hover{
  color:var(--tx); border-color:var(--line-2);
  background:var(--surface-2); transform:translateY(-2px);
}
.foot-social svg{ width:1.15rem; height:1.15rem; }

.foot{ border-top:1px solid var(--line); padding:3.125rem 0 2.75rem; background:rgba(0,0,0,.26); }
.foot-in{ display:flex; flex-wrap:wrap; gap:1.75rem 2.5rem; align-items:flex-start; }
.foot-brand{ flex:1 1 13.75rem; }
.foot-brand p{ margin-top:0.625rem; font-size:0.875rem; color:var(--tx-faint); }
.foot-links{ display:flex; flex-wrap:wrap; gap:0.5rem 1.375rem; }
.foot-links a{ font-size:0.875rem; color:var(--tx-dim); transition:color .25s; }
.foot-links a:hover{ color:var(--tx); }
.copy{ flex:1 1 100%; font-size:0.8125rem; color:var(--tx-faint); }

.js [data-rise]{
  opacity:0; transform:translateY(1.625rem);
  transition:opacity .75s var(--ease-out), transform .75s var(--ease-out);
  transition-delay:var(--d, 0ms);
}
.js [data-rise].in{ opacity:1; transform:none; }

.js .ln{
  display:block; overflow:hidden;
  padding-bottom:.3em; margin-bottom:-.3em;
}
.js .ln-in{
  display:block;
  transform:translateY(112%);
  transition:transform 1.05s var(--ease-out);
  transition-delay:var(--d, 0ms);
}
.js [data-split].in .ln-in,
.js [data-mask].in  .ln-in{ transform:none; }

@media (max-width:900px){
  .links{ display:none; }
  .burger{ display:block; }
  .stats{ gap:1.25rem 2.25rem; }
}

@media (max-width:620px){
  :root{ --pad:18px; }
  .nav-in{ height:4rem; }
  .sheet{ top:4rem; }
  html{ scroll-padding-top:4.75rem; }
  .hero{ padding:7.25rem 0 5.625rem; }

  .nav-act > .btn{ display:none; }
  .card,.member{ padding:1.625rem 1.375rem; }
  .work-tx{ padding:1.375rem; }
  .steps li{ padding:1.75rem 1.375rem 1.875rem; }
  .stats{ margin-top:3.25rem; }
  .stats > div{ flex:1 1 42%; }
}

@media (min-width:1600px){
  :root{ --fs:17px;   --shell:1400px; --pad:40px; --gs:80px; }

  .cards{ grid-template-columns:repeat(3,1fr); }
}

@media (min-width:1900px){
  :root{ --fs:18.5px; --shell:1620px; --pad:56px; --gs:92px; }
  .works{ grid-template-columns:repeat(4,1fr); }
  .steps{ grid-template-columns:repeat(4,1fr); }
  .team { grid-template-columns:repeat(2,1fr); }
  .team--3{ grid-template-columns:repeat(3,1fr); }
}

@media (min-width:2400px){
  :root{ --fs:20.5px; --shell:1900px; --pad:72px; --gs:110px; }
}

@media (min-width:3200px){
  :root{ --fs:23px;   --shell:2500px; --pad:96px; --gs:132px; }
}

.loader{
  position:fixed; inset:0; z-index:300;
  display:grid; place-items:center;
  background:var(--bg);

  animation:loaderOut .7s var(--ease) 2.2s forwards;
}
html:not(.js) .loader{ display:none; }
.loader.gone{ animation:loaderOut .55s var(--ease) forwards; }
@keyframes loaderOut{ to{ opacity:0; visibility:hidden; } }

.loader-in{ display:grid; place-items:center; }
.loader-mark{ width:3.25rem; height:3.25rem; animation:markPulse 1.5s var(--ease) infinite; }
@keyframes markPulse{ 50%{ transform:scale(1.09); opacity:.7 } }

.loader-bar{
  width:9.375rem; height:2px; margin-top:1.5rem; border-radius:2px;
  background:rgba(255,255,255,.1); overflow:hidden;
}
.loader-bar i{
  display:block; height:100%; width:0; background:var(--grad);
  animation:barFill 2s var(--ease-out) forwards;
}
@keyframes barFill{ to{ width:100% } }

.cursor-trail{
  position:fixed; top:0; left:0; z-index:149; pointer-events:none;
  width:15rem; height:15rem; margin:-7.5rem 0 0 -7.5rem;
  border-radius:50%; opacity:0;
  background:radial-gradient(circle, rgba(109,139,255,.17), transparent 62%);
  filter:blur(10px);
  transition:opacity .45s;
}
.cursor-trail.on{ opacity:1; }
@media (hover:none),(max-width:860px){ .cursor-trail{ display:none; } }

.glare{
  position:absolute; inset:0; pointer-events:none; border-radius:inherit;
  background:radial-gradient(28.75rem circle at var(--gx,50%) var(--gy,50%),
             rgba(255,255,255,.11), transparent 58%);
  opacity:0; transition:opacity .35s; z-index:2;
}
[data-tilt]:hover .glare{ opacity:1; }

.roll{
  position:relative; display:inline-block; overflow:hidden;
  vertical-align:bottom;
}
.roll span{ display:block; transition:transform .45s var(--ease-out); }
.roll .r2{ position:absolute; inset:0; transform:translateY(100%); }
a:hover > .roll .r1,
a:focus-visible > .roll .r1{ transform:translateY(-100%); }
a:hover > .roll .r2,
a:focus-visible > .roll .r2{ transform:translateY(0); }

[data-magnet]{ will-change:transform; }

.steps li::after{ transform:scaleX(var(--fill, 0)); }
.steps li:hover::after{ transform:scaleX(1); }

@media (max-width:620px){
  .blobs i{ filter:blur(60px); }
  .blobs i:nth-child(3){ display:none; }
}

@media (max-width:620px){
  .f input,
  .f select,
  .f textarea,
  .sel-btn{ font-size:1rem; }

  .burger{ width:2.75rem; height:2.75rem; }
  .burger i{ left:0.8125rem; width:1.125rem; }
  .burger i:nth-child(1){ top:1.1875rem; }
  .burger i:nth-child(2){ top:1.5625rem; }

  .lang{ padding:0.45rem 0.35rem; min-height:2.75rem; }
  .sheet a{ padding:1rem 0.25rem; }

  .foot-social a{ width:2.75rem; height:2.75rem; }
  .foot-social{ gap:0.6rem; }

  .member{ min-height:clamp(25rem, 80vw, 32rem); }
  .member-no{ top:1.5rem; right:1.5rem; }

  .card p,
  .member p,
  .steps p{ font-size:0.95rem; }

  .empty{ padding:2.5rem 1.25rem; }
  .empty p{ font-size:0.95rem; }

  .form{ margin-top:1.9rem; }
  .sel-list{ max-height:14rem; }
}

@media (max-width:400px){
  .hero{ padding:6.5rem 0 4.5rem; }
  .h-xl{ font-size:clamp(2.45rem, 11.6vw, 6.4rem); }
  .stats{ gap:1rem 2rem; margin-top:2.6rem; padding-top:1.75rem; }
  .stats > div{ flex:1 1 44%; }
  .hero-act .btn{ flex:1 1 100%; }
