/* ============================================================
   YS VENTURE PARTNERS — production responsive system
   One source of truth: base → compact desktop → mobile.
   ============================================================ */

:root{
  --navy-950:#04091a;
  --navy-900:#081226;
  --navy-850:#0b1a33;
  --navy-800:#001f3f;
  --blue-700:#1b418c;
  --blue-600:#2457b8;
  --blue-500:#3079d9;
  --blue-400:#0099ff;
  --ice:#cfe0ff;
  --sand:#f2e0d5;
  --ink:#eaf1ff;
  --ink-dim:#95a8cc;
  --ink-faint:#6a7da8;
  --line:rgba(140,170,225,.14);
  --line-strong:rgba(140,170,225,.28);
  --stats-shell:#1d2437;
  --stats-card:#0a0d1c;
  --stats-divider:#1f2438;
  --bg:var(--navy-950);
  --serif:'Source Serif 4',Georgia,serif;
  --sans:'IBM Plex Sans',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Consolas,monospace;
  --ease:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.62,.05,.01,.99);
  --pad:clamp(20px,5vw,90px);
  --nav-h:84px;
  --section-y:clamp(86px,9vw,132px);
  --section-kicker-gap:clamp(28px,2.8vw,40px);
  --section-content-gap:clamp(52px,5vw,72px);
}

*,*::before,*::after{box-sizing:border-box}
html{
  width:100%;
  min-width:0;
  margin:0;
  padding:0;
  overflow-x:clip;
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
  background:var(--bg);
}
body{
  width:100%;
  min-width:0;
  margin:0;
  padding:0;
  overflow-x:clip;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:clamp(15px,1.05vw,17px);
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-optical-sizing:auto;
}
body.locked{overflow:hidden}
main,section,footer,header,nav{min-width:0}
section{scroll-margin-top:24px}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
button{color:inherit}
img{display:block;max-width:100%}
em{font-style:italic}
::selection{background:var(--blue-400);color:var(--navy-950)}

.eyebrow,.tag,.card__cat,.card__id,.member__role,.stat__label,.idx,
.footer__nav a,.footer__col--right a,.nav__links a,.hero__scroll span{
  font-family:var(--mono);
  font-size:.7rem;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.visually-hidden{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

/* ---------- ambient layers ---------- */
.grain{
  position:fixed;
  inset:0;
  z-index:8990;
  pointer-events:none;
  opacity:.045;
  contain:strict;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain-shift 7s steps(6) infinite;
}
@keyframes grain-shift{
  0%,100%{background-position:0 0}
  25%{background-position:-28px 16px}
  50%{background-position:22px -19px}
  75%{background-position:-14px -31px}
}

.cursor{
  position:fixed;
  top:0;
  left:0;
  z-index:9999;
  display:none;
  width:9px;
  height:9px;
  border-radius:50%;
  pointer-events:none;
  background:var(--blue-400);
  mix-blend-mode:screen;
  transform:translate3d(-50%,-50%,0);
  transition:width .35s var(--ease),height .35s var(--ease),background .3s;
  will-change:transform,width,height;
}
.cursor.on{display:grid;place-items:center}
.cursor.hover{width:74px;height:74px;background:rgba(0,153,255,.16);backdrop-filter:blur(1px)}

/* ---------- preloader ---------- */
.preloader{
  position:fixed;
  inset:0;
  z-index:10000;
  display:none;
  place-items:center;
  width:100%;
  min-height:100vh;
  min-height:100dvh;
  padding:max(24px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));
  overflow:hidden;
  background:var(--navy-950);
}
.js .preloader{display:grid}
.preloader__inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  width:100%;
  max-width:520px;
  text-align:center;
}
.preloader__mark{display:grid;place-items:center}
.preloader__mark img{width:clamp(74px,11vw,104px);height:auto;filter:drop-shadow(0 20px 50px rgba(0,153,255,.45))}
.preloader__count{
  width:100%;
  color:var(--ink-dim);
  font-family:var(--mono);
  font-size:.85rem;
  line-height:1.2;
  letter-spacing:.15em;
  text-align:center;
}
.preloader__count i{font-style:normal;opacity:.5}
.preloader__word{
  position:relative;
  width:100%;
  height:1.5em;
  overflow:hidden;
  color:var(--blue-400);
  font-family:var(--mono);
  font-size:.7rem;
  line-height:1.35;
  letter-spacing:.25em;
  text-align:center;
  text-transform:uppercase;
}
.preloader__word span{
  position:absolute;
  top:0;
  left:50%;
  width:100%;
  padding-left:.25em;
  white-space:nowrap;
  opacity:0;
  transform:translate(-50%,110%);
}
.preloader__word span.is-active{opacity:1;transform:translate(-50%,0);transition:transform .45s var(--ease),opacity .4s}
.preloader__bar{position:absolute;left:0;bottom:0;width:100%;height:2px;background:rgba(255,255,255,.06)}
.preloader__bar i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--blue-700),var(--blue-400));transition:width .12s linear}
.preloader.done{pointer-events:none;transform:translateY(-100%);transition:transform .75s var(--ease-io)}

/* ---------- navigation ---------- */
.nav{
  position:fixed;
  top:0;
  left:0;
  z-index:900;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  column-gap:clamp(18px,3vw,48px);
  width:100%;
  padding:22px var(--pad);
  transition:padding .45s var(--ease),background .45s,backdrop-filter .45s,transform .45s var(--ease);
}
.nav.shrink{
  padding-top:14px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
  background:rgba(6,11,26,.76);
  backdrop-filter:blur(14px) saturate(140%);
}
.nav.hide{transform:translateY(-105%)}
.nav__brand{display:flex;align-items:center;justify-self:start;gap:11px;min-width:0;white-space:nowrap}
.nav__logo{flex:0 0 auto;width:40px;height:40px;object-fit:contain;transition:transform .4s var(--ease),filter .4s}
.nav__brand:hover .nav__logo{transform:translateY(-1px) rotate(-4deg);filter:drop-shadow(0 6px 16px rgba(0,153,255,.5))}
.nav__brandtext{overflow:hidden;font-size:.9rem;font-weight:500;letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap}
.nav__links{display:flex;justify-self:center;gap:30px;white-space:nowrap}
.nav__links a{position:relative;color:var(--ink-dim);transition:color .3s}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--blue-400);transition:width .4s var(--ease)}
.nav__links a:hover,.nav__links a.active{color:var(--ink)}
.nav__links a:hover::after,.nav__links a.active::after{width:100%}
.nav .btn--nav{display:inline-flex;justify-self:end;min-width:max-content;white-space:nowrap}
.nav__burger{display:none;flex-direction:column;gap:6px;padding:8px;background:none;border:0;cursor:pointer}
.nav__burger i{display:block;width:26px;height:2px;background:var(--ink);transition:transform .4s var(--ease),opacity .3s}
.nav__burger.open i:first-child{transform:translateY(4px) rotate(45deg)}
.nav__burger.open i:last-child{transform:translateY(-4px) rotate(-45deg)}

.menu{
  position:fixed;
  inset:0;
  z-index:850;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  visibility:hidden;
  background:var(--navy-900);
  clip-path:circle(0 at 100% 0);
  pointer-events:none;
  transition:clip-path .7s var(--ease-io),visibility 0s .7s;
}
.menu.open{visibility:visible;clip-path:circle(150% at 100% 0);pointer-events:auto;transition:clip-path .7s var(--ease-io)}
.menu a{color:var(--ink);font-family:var(--serif);font-size:clamp(2rem,9vw,3.4rem);font-weight:700;opacity:.9}
.menu a:hover{color:var(--blue-400);font-style:italic}

/* ---------- buttons ---------- */
.btn{
  position:relative;
  isolation:isolate;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-width:0;
  padding:15px 26px;
  overflow:hidden;
  border:0;
  border-radius:100px;
  cursor:pointer;
  font-size:.9rem;
  font-weight:500;
  letter-spacing:.01em;
  transition:color .4s,transform .3s var(--ease),opacity .3s;
}
.btn span,.btn svg{position:relative;z-index:2}
.btn svg{flex:0 0 auto;transition:transform .4s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit;transition:transform .5s var(--ease)}
.btn--primary{color:var(--navy-950);background:var(--ice)}
.btn--primary::before{background:var(--blue-400);transform:translateY(101%)}
.btn--primary:hover::before{transform:translateY(0)}
.btn--primary:hover svg{transform:translateX(4px)}
.btn--ghost{color:var(--ink);border:1px solid var(--line-strong);background:transparent}
.btn--ghost::before{background:rgba(255,255,255,.06);transform:scaleX(0);transform-origin:left}
.btn--ghost:hover::before{transform:scaleX(1)}
.btn--nav{padding:11px 20px;color:var(--ink);border:1px solid var(--line);background:rgba(255,255,255,.05);font-size:.82rem}
.btn--nav::before{background:var(--blue-400);transform:translateY(101%)}
.btn--nav:hover{color:var(--navy-950)}
.btn--nav:hover::before{transform:translateY(0)}
.btn--nav:hover svg{transform:translateX(3px)}
.btn--submit:disabled{opacity:.58;cursor:wait;pointer-events:none}

/* ---------- reveals ---------- */
.reveal{opacity:1;transform:none}
.js .reveal{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
.reveal-line{display:block}
br.mobile-br{display:none}


/* ---------- editorial section openings ---------- */
/*
  Section openings use the original YS typographic DNA:
  mono kicker + blue index + Source Serif 4 display title.
  The layout may be asymmetric, but spacing is content-led — never a fixed-height canvas.
*/
.eyebrow{display:flex;align-items:center;gap:14px;margin:0;color:var(--ink-dim)}
.idx{color:var(--blue-400)}
.editorial-head{position:relative;width:100%;margin:0;padding:0 var(--pad)}
.editorial-head>.eyebrow{margin-bottom:var(--section-kicker-gap)}
.editorial-head__body{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;column-gap:clamp(18px,2vw,34px);min-height:0}
.editorial-title{grid-column:1/9;margin:0;font-family:var(--serif);font-size:clamp(3rem,5.8vw,5rem);font-weight:800;line-height:1;letter-spacing:-.02em;text-wrap:balance}
.editorial-title>span,.editorial-title>em{display:block}
.editorial-title em{color:var(--blue-400);font-style:italic}
.editorial-deck{max-width:38ch;margin:0;padding-left:22px;color:var(--ink-dim);border-left:1px solid var(--line-strong);font-size:clamp(.98rem,1.15vw,1.08rem);line-height:1.58}
.editorial-head--strategy .editorial-title{grid-column:1/9}
.editorial-head--portfolio .editorial-title{grid-column:1/9;white-space:nowrap}
.editorial-head--portfolio .editorial-title>span,.editorial-head--portfolio .editorial-title>em{display:inline}
.editorial-head--portfolio .editorial-title>span::after{content:" "}
.editorial-head--portfolio .editorial-deck{grid-column:9/13;align-self:end;margin-bottom:.35rem}
.editorial-head--team .editorial-title{grid-column:5/13}
.editorial-head--team .editorial-deck{grid-column:1/4;grid-row:1;align-self:end;margin-bottom:.35rem;padding-right:22px;padding-left:0;border-right:1px solid var(--line-strong);border-left:0}
.editorial-head--contact .editorial-title{grid-column:1/9;font-size:clamp(3.3rem,6.2vw,5.6rem)}
.editorial-head--contact .editorial-deck{grid-column:9/13;align-self:end;margin-bottom:.35rem}

/* ---------- hero ---------- */
.hero{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  width:100%;
  min-height:100vh;
  min-height:100svh;
  padding:120px var(--pad) 96px;
  overflow:hidden;
}
.hero__aurora{position:absolute;inset:0;z-index:0;width:100%;height:100%}
.hero__glow{
  position:absolute;
  z-index:1;
  top:-10%;
  left:50%;
  width:min(1100px,120vw);
  height:700px;
  pointer-events:none;
  background:radial-gradient(closest-side,rgba(48,121,217,.28),transparent 70%);
  filter:blur(20px);
  transform:translateX(-50%);
  will-change:transform;
}
.hero__top,.hero__title,.hero__meta{position:relative;z-index:2}
.hero__top{margin-bottom:22px;padding-top:8px}
.tag{display:inline-flex;align-items:center;gap:10px;max-width:100%;padding:9px 16px;color:var(--ink-dim);border:1px solid var(--line);border-radius:100px;background:rgba(255,255,255,.02)}
.tag i{flex:0 0 7px;width:7px;height:7px;border-radius:50%;background:var(--blue-400);box-shadow:0 0 12px var(--blue-400);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.hero__title{
  margin:26px 0 0;
  font-family:var(--serif);
  font-size:clamp(2.6rem,8.2vw,8.8rem);
  font-weight:800;
  line-height:1;
  letter-spacing:-.02em;
  will-change:transform;
}
.hero__title .line{display:block}
.hero__title .word{display:inline-block;opacity:1;transform:none}
.js .hero__title .word{opacity:0;transform:translateY(110%)}
.hero__title .ital{color:var(--blue-400);font-style:italic}
.hero__meta{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:20px;
  width:100%;
  margin-top:clamp(26px,4.2vh,48px);
}
.hero__lede{max-width:64ch;margin:0;color:var(--ink-dim);font-size:clamp(1rem,1.4vw,1.22rem);line-height:1.55}
.hero__lede em{color:var(--ink);font-style:normal;font-weight:500}
.hero__cta{display:flex;align-items:center;gap:14px;flex-wrap:nowrap}
.hero__cta .btn{flex:0 0 auto;white-space:nowrap}
.hero__scroll{
  position:absolute;
  left:50%;
  bottom:64px;
  z-index:4;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  padding:7px 12px 0;
  color:var(--ink-faint);
  border-radius:12px;
  cursor:pointer;
  transform:translateX(-50%);
  transition:color .25s,background .25s;
}
.js .hero__scroll.reveal{transform:translate(-50%,34px)}
.js .hero__scroll.reveal.in{transform:translate(-50%,0)}
.hero__scroll:hover,.hero__scroll:focus-visible{color:var(--ink);background:rgba(255,255,255,.035)}
.hero__scroll:focus-visible{outline:1px solid var(--blue-400);outline-offset:5px}
.hero__scroll i{position:relative;width:1px;height:34px;overflow:hidden;background:linear-gradient(var(--blue-400),transparent)}
.hero__scroll i::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--blue-400);animation:scrolldot 2.2s var(--ease) infinite}
@keyframes scrolldot{0%{transform:translateY(-100%)}100%{transform:translateY(300%)}}
.hero__ticker{
  position:absolute;
  bottom:0;
  left:0;
  z-index:3;
  display:block;
  width:100%;
  padding:0;
  overflow-x:auto;
  overflow-y:hidden;
  color:var(--ink-faint);
  border-top:1px solid var(--line);
  cursor:grab;
  scrollbar-width:none;
  -ms-overflow-style:none;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
  touch-action:pan-x pan-y;
}
.hero__ticker::-webkit-scrollbar{display:none}
.hero__ticker.is-dragging{cursor:grabbing;user-select:none}
.hero__ticker:focus-visible{outline:1px solid var(--blue-400);outline-offset:-1px}
.hero__ticker-track{
  display:flex;
  align-items:center;
  gap:26px;
  width:max-content;
  min-width:max-content;
  margin:0;
  padding:16px var(--pad);
  list-style:none;
  white-space:nowrap;
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.hero__ticker-track li{flex:none}

/* ---------- who we are ---------- */
.intro{width:100%;margin:0;padding:clamp(90px,14vh,190px) var(--pad)}
.intro__eyebrow{display:flex;align-items:center;gap:14px;margin:0 0 38px;color:var(--ink-dim)}
.intro__statement{
  width:100%;
  max-width:31ch;
  margin:0;
  font-family:var(--serif);
  font-size:clamp(1.7rem,4.4vw,3.7rem);
  font-weight:700;
  line-height:1.18;
  letter-spacing:-.012em;
}
.intro__statement em{color:var(--blue-400)}
.js .intro__statement .reveal-line{opacity:0;transform:translateY(100%);transition:transform .9s var(--ease),opacity .9s var(--ease)}
.js .intro__statement.in .reveal-line{opacity:1;transform:none}
.js .intro__statement.in .reveal-line:nth-child(2){transition-delay:.08s}
.js .intro__statement.in .reveal-line:nth-child(3){transition-delay:.16s}
.js .intro__statement.in .reveal-line:nth-child(4){transition-delay:.24s}
.intro__foot{display:flex;justify-content:flex-start;margin-top:52px}
.intro__foot p{width:min(68ch,100%);max-width:68ch;margin:0;color:var(--ink-dim);font-size:clamp(.94rem,1.18vw,1.08rem);line-height:1.52;text-align:left}

/* ---------- metrics ---------- */
.stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:stretch;
  gap:1px;
  width:100%;
  margin:0;
  padding:clamp(68px,8vh,104px) var(--pad);
  border:0;
  background:var(--stats-shell);
  background-clip:border-box;
}
.stat{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  min-height:clamp(180px,18vw,230px);
  padding:clamp(28px,4vw,52px) clamp(18px,2.5vw,34px);
  background:var(--stats-card);
}
.stat__num{display:flex;align-items:baseline;font-family:var(--serif);font-size:clamp(2.4rem,6vw,5rem);font-weight:700;line-height:1;letter-spacing:-.02em}
.stat__num i{margin-left:.08em;color:var(--blue-400);font-size:.42em;font-style:normal}
.stat__label{margin-top:16px;color:var(--ink-dim)}

/* ---------- strategy ---------- */
.strategy{position:relative;width:100%;padding:var(--section-y) 0;overflow:hidden}
.strat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;width:100%;margin:var(--section-content-gap) 0 0;padding:0 var(--pad)}
.strat{
  position:relative;
  min-width:0;
  padding:clamp(30px,4vw,54px);
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:22px;
  background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.005));
  transition:border-color .5s,transform .6s var(--ease);
}
.strat::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(600px circle at var(--mx,50%) var(--my,0%),rgba(0,153,255,.10),transparent 40%);transition:opacity .5s}
.strat:hover{border-color:var(--line-strong);transform:translateY(-4px)}
.strat:hover::after{opacity:1}
.strat__no{margin-bottom:22px;color:var(--blue-400);font-family:var(--serif);font-size:2.4rem;font-weight:700;font-style:italic}
.strat h3{margin:0 0 16px;font-family:var(--serif);font-size:clamp(1.5rem,2.6vw,2.15rem);font-weight:700;line-height:1.2;letter-spacing:-.01em}
.strat p{max-width:42ch;margin:0 0 30px;color:var(--ink-dim)}
.strat__list{margin:0;padding:0;border-top:1px solid var(--line);list-style:none}
.strat__list li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid var(--line)}
.strat__list span{color:var(--ink-faint);font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}
.strat__list b{font-weight:500;text-align:right}

/* ---------- portfolio ---------- */
.folio{position:relative;width:100%;padding:var(--section-y) 0;overflow:hidden}
.folio__note{width:auto;max-width:38ch;margin:0;padding-left:22px;color:var(--ink-dim)}
.marquee{
  width:100%;
  margin:var(--section-content-gap) 0 0;
  padding:34px 0;
  overflow-x:auto;
  overflow-y:hidden;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  cursor:grab;
  scrollbar-width:none;
  -ms-overflow-style:none;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
  touch-action:pan-x pan-y;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
}
.marquee::-webkit-scrollbar{display:none}
.marquee.is-dragging{cursor:grabbing;user-select:none}
.marquee:focus-visible{outline:1px solid var(--blue-400);outline-offset:-1px}
.marquee__track{display:flex;align-items:center;gap:18px;width:max-content;min-width:max-content;padding-inline:var(--pad)}
.marquee__track>img,.marquee__track>.marquee__combo,.marquee--text .marquee__track>span{
  display:flex;
  flex:0 0 270px;
  align-items:center;
  justify-content:center;
  width:270px;
  min-width:270px;
  max-width:270px;
  height:104px;
  overflow:hidden;
  color:var(--navy-800);
  border-radius:14px;
  background:#fff;
  opacity:.9;
  user-select:none;
  -webkit-user-drag:none;
  transition:opacity .4s,transform .4s var(--ease),box-shadow .4s;
}
.marquee__track>img{object-fit:contain;padding:18px 26px}
.marquee__combo{gap:15px;padding:0 24px}
.marquee__combo .combo__logo{width:auto;max-width:112px;height:48px;object-fit:contain}
.marquee__combo .combo__name,.marquee--text .marquee__track>span{font-family:var(--serif);font-size:1.25rem;font-weight:600;line-height:1.2;letter-spacing:-.01em;text-align:center;white-space:nowrap}
.marquee__track>[data-slug].clickable{position:relative;z-index:2;cursor:pointer;pointer-events:auto}
.marquee__track>[data-slug].clickable:hover{opacity:1;transform:translateY(-6px);box-shadow:0 18px 48px rgba(0,153,255,.32)}
.marquee__track>[data-slug].clickable:focus-visible{outline:2px solid var(--blue-400);outline-offset:3px}
.marquee__hint{margin:26px 0 0;padding:0 var(--pad);color:var(--ink-faint);font-family:var(--mono);font-size:.72rem;line-height:1.6;letter-spacing:.16em;text-align:center;text-transform:uppercase}
.folio__grid{display:none}

/* ---------- team ---------- */
.team{position:relative;width:100%;padding:var(--section-y) 0;overflow:hidden}
.team__lede{width:auto;max-width:38ch;margin:0;color:var(--ink-dim);font-size:clamp(.98rem,1.2vw,1.12rem);line-height:1.6;text-align:left}

/* Team is a typography-first directory. A member is one semantic unit: name + role.
   Dividers define the grid; a small optical inset gives display type room to breathe
   without preserving the old initial column as empty space. */
.team__list{
  --team-inset:clamp(18px,1.6vw,28px);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:clamp(38px,5vw,86px);
  width:100%;
  margin:var(--section-content-gap) 0 0;
  padding:0 var(--pad);
  list-style:none;
}
.member{
  min-width:0;
  padding:clamp(28px,3vw,40px) var(--team-inset) clamp(32px,3.2vw,44px);
  border-top:1px solid var(--line);
}
.member:nth-last-child(-n+2){border-bottom:1px solid var(--line)}
.member__identity{display:grid;gap:10px;min-width:0;max-width:42rem}
.member__name{margin:0;font-family:var(--serif);font-size:clamp(1.95rem,3vw,2.65rem);font-weight:700;line-height:1.04;letter-spacing:-.012em}
.member__role{max-width:38ch;margin:0;color:var(--ink-faint);font-size:.68rem;line-height:1.5;letter-spacing:.15em;text-align:left;text-transform:uppercase;overflow-wrap:anywhere}

/* ---------- contact ---------- */
.contact{position:relative;width:100%;padding:clamp(96px,10vw,148px) 0;overflow:hidden}
.contact::before{content:"";position:absolute;bottom:-40%;left:50%;width:min(900px,120vw);height:600px;background:radial-gradient(closest-side,rgba(27,65,140,.4),transparent 70%);filter:blur(30px);transform:translateX(-50%)}
.contact__inner{position:relative;width:100%;margin:0;padding:0}
.contact__title{max-width:none;margin:0;font-family:var(--serif);font-weight:800;line-height:1;letter-spacing:-.035em}
.contact__title em{color:var(--blue-400)}
.js .contact__title .reveal-line{opacity:0;transform:translateY(100%);transition:transform .9s var(--ease),opacity .9s var(--ease)}
.js .contact__title.in .reveal-line{opacity:1;transform:none}
.js .contact__title.in .reveal-line:nth-child(2){transition-delay:.1s}
.contact__lede{max-width:38ch;margin:0;color:var(--ink-dim);font-size:clamp(.98rem,1.2vw,1.12rem);line-height:1.6;text-align:left}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 34px;width:min(100% - (var(--pad) * 2),1040px);min-width:0;margin:var(--section-content-gap) var(--pad) 0;color-scheme:dark}
.form__seg{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:18px}
.seg{padding:12px 22px;color:var(--ink-dim);border:1px solid var(--line-strong);border-radius:100px;background:none;cursor:pointer;font-size:.92rem;transition:color .35s,background .35s,border-color .35s,transform .3s var(--ease)}
.seg:hover{color:var(--ink);border-color:var(--ink-faint);transform:translateY(-1px)}
.seg.is-active{color:var(--navy-950);border-color:var(--ice);background:var(--ice)}
.seg:focus-visible{outline:2px solid var(--blue-400);outline-offset:3px}
.field{position:relative;min-width:0}
.field::after{content:"";position:absolute;right:0;bottom:0;left:0;height:1px;background:var(--line-strong);pointer-events:none}
.field--full{grid-column:1/-1}
.field input,.field textarea{display:block;width:100%;padding:18px 0 14px;color:var(--ink);-webkit-text-fill-color:var(--ink);caret-color:var(--blue-400);border:0;border-radius:0;outline:0;background:transparent;-webkit-appearance:none;appearance:none;font-size:1.1rem;resize:none}
.field textarea{min-height:56px;overflow:hidden}
.field input:-webkit-autofill,.field input:-webkit-autofill:hover,.field input:-webkit-autofill:focus,.field input:-webkit-autofill:active{-webkit-text-fill-color:var(--ink)!important;caret-color:var(--blue-400);-webkit-box-shadow:0 0 0 1000px var(--bg) inset!important;box-shadow:0 0 0 1000px var(--bg) inset!important;transition:background-color 9999s ease-out 0s}
.field input::selection,.field textarea::selection{background:var(--blue-400);color:var(--navy-950);-webkit-text-fill-color:var(--navy-950)}
.field label{position:absolute;top:18px;left:0;color:var(--ink-faint);font-size:1.1rem;pointer-events:none;transition:all .35s var(--ease)}
.field input:focus~label,.field input:not(:placeholder-shown)~label,.field textarea:focus~label,.field textarea:not(:placeholder-shown)~label{top:-6px;color:var(--blue-400);font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}
.field__line{position:absolute;z-index:1;bottom:0;left:0;width:0;height:1px;background:var(--blue-400);pointer-events:none;transition:width .45s var(--ease)}
.field input:focus~.field__line,.field textarea:focus~.field__line{width:100%}
.btn--submit{grid-column:1/-1;justify-self:start;margin-top:14px;padding:17px 34px}

/* ---------- footer ---------- */
.footer{position:relative;width:100%;padding:clamp(48px,6vw,76px) 0 36px;overflow:hidden;border-top:1px solid var(--line)}
.footer__row{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:40px;width:100%;margin:0;padding:0 var(--pad)}
.footer__col{display:flex;flex-direction:column;gap:14px}
.footer__col p{max-width:26ch;margin:0;color:var(--ink-dim);font-size:.95rem}
.footer__logo{width:46px;height:46px;object-fit:contain}
.footer__nav{display:flex;flex-direction:column;gap:12px}
.footer__nav a,.footer__col--right a{color:var(--ink-dim);font-family:var(--mono);font-size:.8rem;letter-spacing:.08em;transition:color .3s}
.footer__nav a:hover,.footer__col--right a:hover{color:var(--blue-400)}
.footer__col--right{align-items:flex-end;text-align:right}
.footer__base{display:flex;justify-content:space-between;width:calc(100% - (var(--pad) * 2));margin:56px var(--pad) 0;padding-top:24px;color:var(--ink-faint);border-top:1px solid var(--line);font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}

/* ---------- lightbox ---------- */
.lb{
  position:fixed;
  inset:0;
  z-index:10000;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  transition:opacity .4s var(--ease),visibility 0s .4s;
}
.lb.open{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .4s var(--ease)}
.lb__backdrop{position:absolute;inset:0;background:rgba(2,5,14,.78);backdrop-filter:blur(10px) saturate(130%)}
.lb__panel{position:relative;z-index:2;width:min(1080px,92vw);max-height:92vh;margin:4vh auto;padding:clamp(30px,5vw,64px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none;border:1px solid var(--line-strong);border-radius:24px;background:linear-gradient(180deg,var(--navy-900),var(--navy-950));opacity:0;transform:translateY(30px) scale(.98);transition:transform .55s var(--ease),opacity .5s}
.lb__panel::-webkit-scrollbar{display:none}
.lb.open .lb__panel{opacity:1;transform:none}
.lb__x{position:sticky;top:0;z-index:5;float:right;width:48px;height:48px;margin:-10px -10px 0 0;padding:0;color:var(--ink);border:0;border-radius:0;background:transparent;cursor:pointer;font-size:1.65rem;line-height:1;-webkit-tap-highlight-color:transparent;transition:color .3s,transform .3s}
.lb__x:hover{color:var(--blue-400);background:transparent;transform:rotate(90deg)}
.lb__x:focus-visible{outline:2px solid var(--blue-400);outline-offset:2px}
.lb__cat{color:var(--blue-400);font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase}
.lb__name{margin:14px 0 0;font-family:var(--serif);font-size:clamp(2rem,5vw,3.4rem);font-weight:700;line-height:1.1;letter-spacing:-.01em}
.lb__zh{margin:8px 0 0;color:var(--ink-faint);font-size:.9rem}
.lb__desc{max-width:60ch;margin:20px 0 0;color:var(--ink-dim);font-size:1.05rem;line-height:1.6}
.lb__gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:40px}
.lb__fig{margin:0;overflow:hidden;border-radius:14px;background:var(--navy-850);aspect-ratio:4/3}
.lb__fig:first-child:nth-last-child(odd){grid-column:1/-1;aspect-ratio:16/8}
.lb__fig img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;transition:transform .6s var(--ease)}
.lb__fig:hover img{transform:scale(1.05)}
.lb__empty{display:none;margin-top:36px;color:var(--ink-faint);font-family:var(--mono);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase}
.zoom{position:fixed;inset:0;z-index:11000;display:flex;align-items:center;justify-content:center;visibility:hidden;padding:4vw;background:rgba(2,5,14,.92);opacity:0;pointer-events:none;transition:opacity .35s,visibility 0s .35s}
.zoom.open{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .35s}
.zoom img{max-width:100%;max-height:92vh;border-radius:8px;object-fit:contain;box-shadow:0 30px 90px rgba(0,0,0,.6)}
.zoom__x{position:absolute;top:24px;right:24px;width:52px;height:52px;color:#fff;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.08);cursor:pointer;font-size:1.6rem;transition:background .3s,transform .3s}
.zoom__x:hover{color:var(--navy-950);background:var(--blue-400);transform:rotate(90deg)}

/* ---------- compact desktop ---------- */
@media (min-width:769px) and (max-width:1100px){
  .nav{grid-template-columns:auto minmax(0,1fr) auto;column-gap:14px;padding-inline:clamp(24px,4vw,44px)}
  .nav__links{gap:clamp(14px,2vw,22px)}
  .nav__brandtext{font-size:.84rem}
  .btn--nav{padding:10px 15px;font-size:.78rem}
  .hero__scroll{display:none}
  .hero__lede{max-width:58ch}
  .team__list{--team-inset:clamp(16px,1.8vw,22px);column-gap:clamp(28px,4vw,48px)}
  .member{padding-top:26px;padding-bottom:30px}
  .member__name{font-size:clamp(1.8rem,3.5vw,2.3rem)}
  .member__role{font-size:.64rem;letter-spacing:.13em}
  .editorial-head--portfolio .editorial-title{grid-column:1/13;font-size:clamp(3rem,6vw,4.4rem)}
  .editorial-head--portfolio .editorial-deck{grid-column:8/13;grid-row:2;margin-top:26px;margin-bottom:0}
  .editorial-head--team .editorial-title{grid-column:4/13}
  .editorial-head--team .editorial-deck{grid-column:1/4}
  .editorial-head--contact .editorial-title{font-size:clamp(3.2rem,6.6vw,4.8rem)}
}

@media (min-width:769px) and (max-width:900px){
  .team__list{grid-template-columns:1fr;column-gap:0}
  .member:nth-last-child(-n+2){border-bottom:0}
  .member:last-child{border-bottom:1px solid var(--line)}
}
@media (min-width:769px) and (max-width:980px){.nav__brandtext{display:none}}
@media (min-width:769px) and (max-height:820px){
  .hero{justify-content:flex-start;padding-top:88px;padding-bottom:86px}
  .hero__top{margin-bottom:8px;padding-top:0}
  .hero__title{margin-top:12px;font-size:clamp(3rem,min(7.2vw,13.5vh),7rem);line-height:1}
  .hero__meta{gap:15px;margin-top:22px}
  .hero__lede{max-width:68ch;font-size:clamp(.94rem,1.18vw,1.08rem);line-height:1.46}
  .hero__cta .btn{padding:13px 23px}
  .hero__scroll{bottom:58px}
}
@media (min-width:1024px){
  .intro__statement{max-width:none;font-size:clamp(3rem,4.65vw,4.65rem);line-height:1.13}
  .intro__statement .reveal-line{white-space:nowrap}
}

/* ---------- mobile ---------- */
@media (max-width:768px){
  :root{--pad:clamp(18px,5.2vw,24px);--nav-h:68px}
  body{font-size:15px}
  section{scroll-margin-top:12px}
  .grain{opacity:.035;animation:none}
  .cursor{display:none!important}
  .nav,.nav.shrink{display:flex;align-items:center;justify-content:space-between;padding:16px var(--pad)}
  .nav__logo{width:36px;height:36px}
  .nav__brandtext,.nav__links,.nav .btn--nav{display:none!important}
  .nav__burger{display:flex;padding:7px 2px 7px 10px}
  .nav__burger i{width:25px}

  .hero{justify-content:flex-start;min-height:100vh;min-height:100svh;height:auto;padding:104px var(--pad) 0}
  .hero__top{margin-bottom:0;padding-top:0}
  .tag{gap:9px;padding:8px 12px;font-size:.62rem;line-height:1.45;letter-spacing:.14em;white-space:normal}
  .hero__title{margin-top:24px;font-size:clamp(2.35rem,11vw,3rem);line-height:.98;letter-spacing:-.025em}
  .hero__meta{gap:24px;margin-top:28px}
  .hero__lede{max-width:none;font-size:1rem;line-height:1.52}
  .hero__cta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%}
  .hero__cta .btn{width:100%;padding:14px 10px;white-space:nowrap}
  .hero__scroll,.js .hero__scroll.reveal,.js .hero__scroll.reveal.in{position:relative;inset:auto;display:flex;align-self:center;margin:24px auto 76px;padding-top:7px;transform:none}
  .hero__scroll i{height:32px}
  .hero__ticker{position:relative;inset:auto;width:calc(100% + (var(--pad) * 2));margin:auto calc(var(--pad) * -1) 0}
  .hero__ticker-track{gap:22px;padding:14px var(--pad);font-size:.59rem;line-height:1.35}
  .hero__glow{top:0;width:155vw;height:540px}

  .intro{padding-top:84px;padding-bottom:84px}
  .intro__eyebrow{margin-bottom:26px}
  .intro__statement{max-width:none;font-size:clamp(1.8rem,8.5vw,2.45rem);line-height:1.13;letter-spacing:-.015em}
  .intro__statement .reveal-line{display:inline;white-space:normal}
  br.mobile-br{display:initial}
  .js .intro__statement .reveal-line{opacity:1;transform:none;transition:none}
  .js .intro__statement{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
  .js .intro__statement.in{opacity:1;transform:none}
  .intro__foot{margin-top:34px}
  .intro__foot p{width:100%;font-size:1rem}

  .stats{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:repeat(2,clamp(172px,52vw,210px));
    gap:0;
    width:100%;
    max-width:none;
    min-height:0;
    margin:clamp(62px,9vh,88px) 0;
    padding:clamp(56px,8vh,76px) var(--pad);
    border:0;
    background:var(--stats-shell);
    background-clip:border-box;
  }
  .stat{
    min-height:0;
    height:100%;
    padding:clamp(22px,6vw,28px) clamp(16px,5vw,24px);
    border:0;
    background:var(--stats-card);
  }
  .stat:nth-child(1),.stat:nth-child(3){border-right:1px solid var(--stats-divider)}
  .stat:nth-child(1),.stat:nth-child(2){border-bottom:1px solid var(--stats-divider)}
  .stat__num{font-size:clamp(2.55rem,12.5vw,3.7rem);line-height:.94}
  .stat__num i{font-size:.38em}
  .stat__label{max-width:19ch;margin-top:clamp(16px,4.5vw,22px);font-size:.64rem;line-height:1.48;letter-spacing:.12em}

  .editorial-head{padding:0 var(--pad)}
  .editorial-head>.eyebrow{margin-bottom:28px}
  .editorial-head__body{display:block;min-height:0}
  .editorial-title,.editorial-head--strategy .editorial-title,.editorial-head--portfolio .editorial-title,.editorial-head--team .editorial-title,.editorial-head--contact .editorial-title{font-size:clamp(2.75rem,12.8vw,4rem);line-height:1;letter-spacing:-.025em}
  .editorial-head--portfolio .editorial-title{white-space:normal}
  .editorial-head--portfolio .editorial-title>span,.editorial-head--portfolio .editorial-title>em{display:block}
  .editorial-head--portfolio .editorial-title>span::after{content:none}
  .editorial-deck,.editorial-head--portfolio .editorial-deck,.editorial-head--team .editorial-deck,.editorial-head--contact .editorial-deck{max-width:42ch;margin:28px 0 0;padding:0;border:0;font-size:1rem;line-height:1.55}
  .strat-grid{grid-template-columns:1fr;gap:14px;margin-top:38px}
  .strat{padding:28px 22px;border-radius:18px}
  .strat__list li{align-items:flex-start}

  .marquee{margin-top:40px;padding:22px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
  .marquee__track{gap:14px}
  .marquee__track>img,.marquee__track>.marquee__combo,.marquee--text .marquee__track>span{flex-basis:250px;width:250px;min-width:250px;max-width:250px;height:96px;border-radius:13px}
  .marquee__track>img{padding:15px 22px}
  .marquee__hint{margin-top:24px}

  .team__lede{width:auto;max-width:42ch;margin:28px 0 0;padding:0}
  .team__list{--team-inset:0px;grid-template-columns:1fr;column-gap:0;margin-top:42px}
  .member{padding:23px var(--team-inset)}
  .member:nth-last-child(-n+2){border-bottom:0}
  .member:last-child{border-bottom:1px solid var(--line)}
  .member__identity{gap:8px}
  .member__name{font-size:clamp(1.9rem,9vw,2.35rem);line-height:1.08}
  .member__role{max-width:100%;font-size:.68rem;line-height:1.45;letter-spacing:.15em}

  .contact{padding:82px 0}
  .contact__title{max-width:none;font-size:clamp(2.65rem,13vw,4.2rem)}
  .js .contact__title .reveal-line{opacity:1;transform:none;transition:none}
  .js .contact__title{opacity:0;transform:translateY(24px);transition:opacity .85s var(--ease),transform .85s var(--ease)}
  .js .contact__title.in{opacity:1;transform:none}
  .contact__lede{max-width:38ch;margin:0;color:var(--ink-dim);font-size:clamp(.98rem,1.2vw,1.12rem);line-height:1.6;text-align:left}
  .form{grid-template-columns:1fr;gap:18px;margin-top:40px}
  .form__seg{gap:9px;margin-bottom:12px}
  .seg{padding:11px 17px}

  .footer{padding-bottom:28px}
    .footer__row{grid-template-columns:1fr;gap:34px}
  .footer__col--right{align-items:flex-start;text-align:left}
  .footer__base{flex-direction:column;gap:10px;margin-top:38px;line-height:1.5}

  .lb__panel{width:calc(100% - 24px);max-height:calc(100svh - 24px);margin:12px auto;padding:28px 18px;border-radius:18px}
  .lb__x{width:42px;height:42px}
  .lb__gallery{grid-template-columns:1fr}
  .lb__fig:first-child:nth-last-child(odd){aspect-ratio:4/3}
}

@media (max-width:430px) and (max-height:760px){
  .hero__scroll,.js .hero__scroll.reveal,.js .hero__scroll.reveal.in{margin-top:18px;margin-bottom:68px}
  .stats{grid-template-rows:repeat(2,164px);margin-top:58px;margin-bottom:58px}
}
@media (max-width:480px){
  .preloader__inner{max-width:calc(100vw - 40px);gap:11px}
  .preloader__word{font-size:.62rem;letter-spacing:.18em}
  .preloader__word span{padding-left:.18em}
}
@media (max-width:360px){
  .stats{grid-template-rows:repeat(2,156px)}
  .stat{padding-inline:14px}
  .stat__num{font-size:clamp(2.35rem,12vw,2.7rem)}
  .stat__label{font-size:.58rem;letter-spacing:.1em}
  .hero__title{font-size:2.28rem}
  .hero__cta{grid-template-columns:1fr}
  .member__name{font-size:1.85rem}
  .member__role{font-size:.62rem;letter-spacing:.12em}
}

/* ---------- motion / input capability ---------- */
@media (hover:none),(pointer:coarse){
  .strat:hover,.marquee__track>[data-slug].clickable:hover{transform:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.1ms!important;scroll-behavior:auto!important}
  .preloader{display:none!important}
  .reveal,.hero__title .word,.reveal-line{opacity:1!important;transform:none!important}
  .hero__aurora{display:none}
}

.form__status{grid-column:1/-1;display:flex;align-items:center;gap:9px;margin:0;color:var(--ink-dim);font-size:.9rem;line-height:1.5}
.form__status[hidden]{display:none}
.form__status::before{content:"";flex:0 0 6px;width:6px;height:6px;border-radius:50%;background:var(--blue-400)}
.form__error a{color:var(--blue-400);text-decoration:underline;text-underline-offset:3px}
