/* =========================================================
   Designed.studio — "Built around you"
   Direction B: adaptive, modular, scroll-driven
   Typeface: Gilroy (Light + Extrabold) — the studio's own brand font
   ========================================================= */

/* ---- brand typeface: Gilroy (self-hosted by designed.studio) ---- */
@font-face{
  font-family:'Gilroy'; font-style:normal; font-weight:100 550; font-display:swap;
  src:url('fonts/gilroy-light-webfont.woff2') format('woff2'),
      url('fonts/gilroy-light-webfont.woff') format('woff');
}
@font-face{
  font-family:'Gilroy'; font-style:normal; font-weight:600 900; font-display:swap;
  src:url('fonts/gilroy-extrabold-webfont.woff2') format('woff2'),
      url('fonts/gilroy-extrabold-webfont.woff') format('woff');
}

:root{
  --ff-display:'Gilroy', system-ui, sans-serif;
  --ff-body:   'Gilroy', system-ui, sans-serif;
  --ff-label:  'Gilroy', system-ui, sans-serif;

  --bg:        #f4f0ea;   /* warm paper */
  --bg-2:      #ece6dc;   /* deeper paper */
  --paper:     #fbf9f5;   /* card white */
  --ink:       #14110f;   /* near-black, warm */
  --ink-2:     #4b463f;   /* secondary */
  --ink-mute:  #8c857a;   /* muted */
  --pink:      #e61762;
  --pink-hot:  #ff2e7a;
  --pink-soft: #ffe3ee;
  --yellow:    #ffe200;
  --night:     #161310;   /* dark sections */
  --line:      rgba(20,17,15,.10);
  --line-2:    rgba(20,17,15,.16);

  --e-out:    cubic-bezier(.16,1,.3,1);
  --e-io:     cubic-bezier(.76,0,.18,1);

  --maxw: 1280px;
  --pad:  clamp(20px, 5vw, 72px);
  --r:    20px;
}

*,*::before,*::after{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
html{ -webkit-text-size-adjust:100%; }
html.lenis,html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }

body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--ff-body);
  font-size:clamp(15px,1.05vw,17px);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  cursor:none;
  background-image:
    radial-gradient(70% 50% at 82% -8%, rgba(230,23,98,.10), transparent 62%),
    radial-gradient(55% 45% at -5% 22%, rgba(255,226,0,.07), transparent 60%);
}
@media (hover:none){ body{cursor:auto} .cursor{display:none} }

a{ color:inherit; text-decoration:none; }
img,svg,video{ display:block; max-width:100%; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:none; }
::selection{ background:var(--pink); color:#fff; }

/* ---------- atmosphere ---------- */
.grain{
  position:fixed; inset:0; pointer-events:none; z-index:120; mix-blend-mode:multiply; opacity:.05;
  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='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .6 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size:220px 220px;
}

/* ---------- custom cursor ---------- */
.cursor{
  position:fixed; left:0; top:0; z-index:130; pointer-events:none;
  display:flex; align-items:center; gap:8px; transform:translate(-50%,-50%);
  will-change:transform;
}
.cursor__dot{
  width:12px; height:12px; border-radius:50%; background:var(--pink);
  transition:width .25s var(--e-out), height .25s var(--e-out), background .25s;
}
.cursor__label{
  font:600 11px/1 var(--ff-label); letter-spacing:.04em;
  color:#fff; background:var(--ink); padding:5px 8px; border-radius:999px;
  opacity:0; transform:translateX(-4px) scale(.9); transition:.25s var(--e-out); white-space:nowrap;
}
.cursor.is-link .cursor__dot{ width:34px; height:34px; background:transparent; border:1.5px solid var(--pink); }
.cursor.is-label .cursor__label{ opacity:1; transform:none; }

/* ---------- scroll progress ---------- */
.scrollbar{ position:fixed; left:0; top:0; right:0; height:3px; z-index:115; pointer-events:none; }
.scrollbar__fill{ display:block; height:100%; width:100%; transform:scaleX(0); transform-origin:0 50%;
  background:linear-gradient(90deg,var(--pink),var(--pink-hot)); }

/* ---------- buttons ---------- */
.btn{ position:relative; display:inline-flex; align-items:center; gap:9px;
  font-weight:600; letter-spacing:-.01em; line-height:1; cursor:none;
  transition:transform .35s var(--e-out), background .3s, color .3s, box-shadow .3s; }
.btn svg{ transition:transform .35s var(--e-out); }
.btn:hover svg{ transform:translateX(3px); }
.btn--solid{ background:var(--ink); color:var(--paper); padding:15px 22px; border-radius:999px; font-size:15px; }
.btn--solid:hover{ background:var(--pink); box-shadow:0 12px 30px -10px rgba(230,23,98,.6); }
.btn--pill{ background:var(--ink); color:var(--paper); padding:11px 16px; border-radius:999px; font-size:13.5px; }
.btn--pill:hover{ background:var(--pink); }
.btn--text{ color:var(--ink); padding:14px 6px; font-size:15px; }
.btn--text::after{ content:""; position:absolute; left:6px; right:6px; bottom:9px; height:1.5px; background:currentColor; transform:scaleX(0); transform-origin:0; transition:transform .4s var(--e-out); }
.btn--text:hover::after{ transform:scaleX(1); }
.btn--send{ background:var(--pink); }
.btn--send:hover{ background:var(--pink-hot); box-shadow:0 14px 34px -10px rgba(230,23,98,.7); }

/* ---------- shared type ---------- */
.eyebrow{ display:inline-flex; align-items:center; gap:12px; font:600 12px/1 var(--ff-label);
  letter-spacing:.16em; text-transform:uppercase; color:var(--ink-2); margin:0 0 26px; }
.eyebrow__num{ color:var(--pink); }
.eyebrow--light{ color:rgba(255,255,255,.7); }
.eyebrow--light .eyebrow__num{ color:var(--pink-hot); }

.h-display{ font-family:var(--ff-display); font-weight:400; font-optical-sizing:auto;
  font-size:clamp(34px,5.4vw,68px); line-height:1.02; letter-spacing:-.025em; margin:0; }
.h-display em{ font-style:normal; font-weight:800; color:var(--pink); }
.h-mega{ font-family:var(--ff-display); font-weight:300; font-size:clamp(48px,9vw,128px);
  line-height:.95; letter-spacing:-.035em; margin:0; }
.h-mega em{ font-style:normal; font-weight:800; color:var(--pink-hot); }

.section-head{ max-width:var(--maxw); margin:0 auto; padding:0 var(--pad);
  text-align:center; display:flex; flex-direction:column; align-items:center; }
.section-sub{ max-width:46ch; margin:22px 0 0; color:var(--ink-2); font-size:clamp(16px,1.5vw,19px); }

/* reveal defaults (JS adds .is-in) */
[data-reveal]{ opacity:0; transform:translateY(28px); transition:opacity .9s var(--e-out), transform .9s var(--e-out); }
[data-reveal].is-in{ opacity:1; transform:none; }

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:110;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px var(--pad);
  transition:transform .5s var(--e-io), background .4s, backdrop-filter .4s, border-color .4s;
  border-bottom:1px solid transparent;
}
.nav.is-stuck{ background:rgba(244,240,234,.72); backdrop-filter:blur(14px) saturate(1.3);
  border-bottom-color:var(--line); padding-top:13px; padding-bottom:13px; }
.nav.is-hidden{ transform:translateY(-104%); }
.brand{ display:inline-flex; align-items:center; }
.brand__logo{ height:30px; width:auto; display:block; transition:transform .4s var(--e-out); }
.brand:hover .brand__logo{ transform:scale(1.04); }
.nav__links{ display:flex; gap:6px; }
.nav__links a{ position:relative; padding:9px 14px; font-size:14px; font-weight:500; color:var(--ink-2); border-radius:999px; transition:color .3s; overflow:hidden; }
.nav__links a span{ position:relative; z-index:1; }
.nav__links a::before{ content:""; position:absolute; inset:0; background:var(--ink); border-radius:999px; transform:translateY(102%); transition:transform .4s var(--e-out); }
.nav__links a:hover{ color:var(--paper); }
.nav__links a:hover::before{ transform:none; }
@media (max-width:860px){ .nav__links{ display:none; } }

/* =========================================================
   HERO
   ========================================================= */
.hero{ position:relative; }
.hero__pin{ position:relative; min-height:100svh; display:grid; place-items:center;
  padding:104px var(--pad) 132px; overflow:hidden; }
.hero__grid{ position:absolute; inset:0; z-index:0; opacity:.5;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:clamp(40px,6vw,72px) clamp(40px,6vw,72px);
  mask-image:radial-gradient(120% 90% at 50% 42%, #000 35%, transparent 78%);
  -webkit-mask-image:radial-gradient(120% 90% at 50% 42%, #000 35%, transparent 78%); }

.hero__copy{ position:relative; z-index:3; max-width:880px; text-align:center; }
.hero__kicker{ display:inline-flex; align-items:center; gap:10px; margin:0 0 26px;
  font:600 12.5px/1 var(--ff-label); letter-spacing:.14em; text-transform:uppercase; color:var(--ink-2); }
.dot-live{ width:8px; height:8px; border-radius:50%; background:var(--pink); box-shadow:0 0 0 0 rgba(230,23,98,.5); animation:live 2s infinite; }
@keyframes live{ 0%{box-shadow:0 0 0 0 rgba(230,23,98,.5)} 70%{box-shadow:0 0 0 9px rgba(230,23,98,0)} 100%{box-shadow:0 0 0 0 rgba(230,23,98,0)} }

.hero__title{ font-family:var(--ff-display); font-weight:300; font-optical-sizing:auto;
  font-size:clamp(38px,7.2vw,98px); line-height:.96; letter-spacing:-.035em; margin:0; }
.hero__title .line{ display:block; overflow:hidden; }
.hero__title .line > *{ display:inline-block; }
.swap{ position:relative; font-style:normal; font-weight:800; color:var(--pink); white-space:nowrap; }
.swap__rule{ position:absolute; left:0; right:0; bottom:.04em; height:.06em; background:var(--pink);
  transform:scaleX(0); transform-origin:0; transition:transform .5s var(--e-out); font-style:normal; }
.swap.is-swapping{ animation:swapflip .5s var(--e-out); }
@keyframes swapflip{ 0%{opacity:0;transform:translateY(.25em) rotateX(40deg)} 100%{opacity:1;transform:none} }

.hero__lede{ max-width:54ch; margin:26px auto 0; color:var(--ink-2); font-size:clamp(16px,1.5vw,19px); }
.hero__lede em{ font-style:normal; color:var(--ink); font-weight:800; }

.hero__services{ margin:18px auto 0; font:600 clamp(11px,1vw,12.5px)/1.6 var(--ff-label);
  letter-spacing:.12em; text-transform:uppercase; color:var(--ink-mute); }
.hero__services b{ color:var(--ink-2); font-weight:800; }
.hero__services i{ color:var(--pink); font-style:normal; margin:0 8px; }

.hero__pick{ margin:28px auto 0; display:inline-flex; flex-direction:column; align-items:center; gap:14px; }
.hero__pick-q{ font:600 12px/1 var(--ff-label); letter-spacing:.14em; text-transform:uppercase; color:var(--ink-mute); }
.chips{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.chip{ padding:11px 20px; border:1.5px solid var(--line-2); border-radius:999px; font-size:15px; font-weight:600;
  background:var(--paper); transition:.3s var(--e-out); }
.chip:hover{ border-color:var(--ink); transform:translateY(-2px); }
.chip.is-on{ background:var(--pink); border-color:var(--pink); color:#fff; box-shadow:0 10px 24px -10px rgba(230,23,98,.7); }

.hero__ctas{ display:flex; gap:8px; justify-content:center; align-items:center; margin-top:30px; flex-wrap:wrap; }

/* assembling blocks */
.blocks{ position:absolute; inset:0; z-index:2; pointer-events:none; }
.blk{ position:absolute; background:var(--paper); border:1px solid var(--line-2); border-radius:16px;
  padding:16px 18px; box-shadow:0 24px 50px -28px rgba(20,17,15,.4);
  display:flex; flex-direction:column; gap:10px; min-width:132px; will-change:transform; }
.blk__k{ font:600 11px/1 var(--ff-label); letter-spacing:.1em; color:var(--pink); }
.blk__label{ font-family:var(--ff-display); font-weight:800; font-size:21px; letter-spacing:-.02em; }
.blk__bar{ height:6px; border-radius:6px; background:linear-gradient(90deg,var(--pink),var(--pink-soft)); }
.blk__spark{ height:26px; border-radius:6px; background:
  linear-gradient(120deg,transparent 40%,rgba(230,23,98,.18) 50%,transparent 60%) var(--bg-2); background-size:200% 100%; animation:spark 2.4s linear infinite; }
@keyframes spark{ to{ background-position:-200% 0; } }
.blk__dots{ display:flex; gap:6px; }
.blk__dots i{ width:8px; height:8px; border-radius:50%; background:var(--ink); opacity:.25; animation:dotp 1.4s infinite; }
.blk__dots i:nth-child(2){ animation-delay:.2s } .blk__dots i:nth-child(3){ animation-delay:.4s }
@keyframes dotp{ 0%,100%{opacity:.25} 50%{opacity:1; background:var(--pink)} }
.blk__pulse{ height:22px; border-radius:6px; background:var(--pink-soft); position:relative; overflow:hidden; }
.blk__pulse::after{ content:""; position:absolute; inset:0; background:radial-gradient(circle at 30% 50%, var(--pink), transparent 60%); opacity:.5; animation:slide 2.6s ease-in-out infinite; }
@keyframes slide{ 0%,100%{transform:translateX(-30%)} 50%{transform:translateX(120%)} }

.blk--metric,.blk--trust{ flex-direction:row; align-items:baseline; gap:9px; background:var(--ink); color:var(--paper); border-color:transparent; }
.blk--metric strong{ font-family:var(--ff-display); font-weight:800; font-size:28px; color:var(--yellow); }
.blk--metric span,.blk--trust span{ font-size:12.5px; color:rgba(255,255,255,.65); }
.blk--trust em{ font-family:var(--ff-display); font-style:normal; font-weight:800; font-size:21px; color:var(--pink-hot); }

/* resting positions around the headline (assembled state) */
.blk--1{ top:18%;  left:5%; }
.blk--2{ top:13%;  right:6%; }
.blk--3{ bottom:22%; left:7%; }
.blk--4{ bottom:17%; right:6%; }
.blk--metric{ top:40%; left:2%; }
.blk--trust{ bottom:38%; right:2.5%; }
@media (max-width:1080px){ .blk--metric,.blk--trust{ display:none; } }
@media (max-width:760px){ .blocks{ display:none; } }

.hero__scrollhint{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  font:600 10.5px/1 var(--ff-label); letter-spacing:.18em; text-transform:uppercase; color:var(--ink-mute); }
.hero__scrollhint-line{ width:1px; height:42px; background:linear-gradient(var(--ink-mute),transparent); position:relative; overflow:hidden; }
.hero__scrollhint-line::after{ content:""; position:absolute; top:-50%; left:0; width:100%; height:50%; background:var(--pink); animation:drip 1.8s var(--e-io) infinite; }
@keyframes drip{ to{ top:120%; } }

/* =========================================================
   APPROACH
   ========================================================= */
.approach{ padding:clamp(110px,16vh,200px) var(--pad); }
.approach__inner{ max-width:var(--maxw); margin:0 auto; }
.big-quote{ font-family:var(--ff-display); font-weight:300; font-size:clamp(34px,6.4vw,86px);
  line-height:1.04; letter-spacing:-.03em; margin:0 0 56px; max-width:18ch; }
.big-quote em{ font-style:normal; font-weight:800; color:var(--pink); }
.big-quote .w{ display:inline-block; opacity:.12; transition:opacity .5s var(--e-out); }
.big-quote .w.is-lit{ opacity:1; }
.approach__cols{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,80px);
  border-top:1px solid var(--line); padding-top:40px; }
.approach__lead{ font-size:clamp(19px,2.1vw,27px); line-height:1.4; letter-spacing:-.01em; margin:0; }
.approach__sub{ color:var(--ink-2); margin:0; font-size:clamp(15px,1.4vw,18px); }
@media (max-width:760px){ .approach__cols{ grid-template-columns:1fr; gap:24px; } }

/* =========================================================
   CAPABILITIES
   ========================================================= */
.caps{ padding:clamp(40px,7vh,90px) var(--pad) clamp(90px,12vh,150px); }
.caps__grid{ max-width:var(--maxw); margin:64px auto 0; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
@media (max-width:980px){ .caps__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .caps__grid{ grid-template-columns:1fr; } }
.cap{ position:relative; overflow:hidden; background:var(--paper); border:1px solid var(--line);
  border-radius:var(--r); padding:28px 24px 30px; transform-style:preserve-3d; transition:box-shadow .4s, border-color .4s;
  will-change:transform; }
.cap:hover{ border-color:var(--line-2); box-shadow:0 30px 60px -34px rgba(20,17,15,.4); }
.cap__glow{ position:absolute; width:260px; height:260px; border-radius:50%; pointer-events:none;
  left:var(--mx,50%); top:var(--my,50%); transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(230,23,98,.18), transparent 65%); opacity:0; transition:opacity .4s; }
.cap:hover .cap__glow{ opacity:1; }
.cap__num{ font:600 12px/1 var(--ff-label); color:var(--pink); letter-spacing:.1em; }
.cap h3{ font-family:var(--ff-display); font-weight:800; font-size:25px; letter-spacing:-.02em; margin:16px 0 4px; }
.cap__service{ display:block; font:800 11.5px/1.3 var(--ff-label); letter-spacing:.07em; text-transform:uppercase; color:var(--pink); margin:0 0 14px; }
.cap p{ color:var(--ink-2); margin:0 0 18px; font-size:15px; }
.cap ul{ list-style:none; margin:0; padding:18px 0 0; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:9px; }
.cap li{ position:relative; padding-left:18px; font-size:14px; color:var(--ink-2); }
.cap li::before{ content:""; position:absolute; left:0; top:8px; width:7px; height:7px; border-radius:2px; background:var(--pink); }

/* =========================================================
   PROCESS — pinned horizontal rail
   ========================================================= */
.process{ position:relative; background:var(--night); color:var(--paper); }
.process__pin{ min-height:100svh; display:flex; flex-direction:column; justify-content:center;
  padding:clamp(60px,9vh,110px) 0; overflow:hidden; }
.process__head{ max-width:var(--maxw); margin:0 auto; padding:0 var(--pad); width:100%; position:relative; }
.process__head .eyebrow{ color:rgba(255,255,255,.6); }
.process__head .h-display{ color:var(--paper); }
.process__head .h-display em{ color:var(--pink-hot); }
.process__progress{ position:absolute; right:var(--pad); top:0; font:600 14px/1 var(--ff-label); color:rgba(255,255,255,.5); }
.process__progress span{ color:var(--yellow); }
.process__track{ display:flex; gap:24px; padding:48px var(--pad) 0; will-change:transform; }
.step{ flex:0 0 min(80vw,420px); background:linear-gradient(165deg, rgba(255,255,255,.09), rgba(255,255,255,.035));
  border:1px solid rgba(255,255,255,.16); box-shadow:0 30px 60px -40px rgba(0,0,0,.6);
  border-radius:var(--r); padding:36px 32px; min-height:300px; display:flex; flex-direction:column; }
.step__no{ font-family:var(--ff-display); font-weight:300; font-size:64px; line-height:1; color:rgba(255,255,255,.18); }
.step h3{ font-family:var(--ff-display); font-weight:800; font-size:29px; letter-spacing:-.02em; margin:auto 0 14px; }
.step p{ color:rgba(255,255,255,.66); margin:0; font-size:16px; }
.step--final{ background:linear-gradient(160deg, rgba(230,23,98,.22), rgba(255,255,255,.04)); border-color:rgba(230,23,98,.4); }
.step--final .step__no{ color:var(--pink-hot); }

/* =========================================================
   PROOF
   ========================================================= */
.proof{ padding:clamp(90px,13vh,160px) var(--pad); }
.platforms{ max-width:var(--maxw); margin:64px auto 0; display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media (max-width:820px){ .platforms{ grid-template-columns:1fr; } }
.platform{ display:block; background:var(--paper); border:1px solid var(--line); border-radius:var(--r); overflow:hidden;
  transition:box-shadow .4s, border-color .4s, transform .5s var(--e-out); will-change:transform; }
.platform:hover{ box-shadow:0 36px 70px -38px rgba(20,17,15,.5); border-color:var(--line-2); }
.platform__media{ aspect-ratio:16/10; overflow:hidden; background:var(--bg-2); }
.platform__media img{ width:100%; height:100%; object-fit:cover; transition:transform 1s var(--e-out); }
.platform:hover .platform__media img{ transform:scale(1.05); }
.platform__body{ padding:26px 28px 30px; }
.platform__chip{ display:inline-block; font:600 11px/1 var(--ff-label); letter-spacing:.1em; text-transform:uppercase;
  color:var(--pink); background:var(--pink-soft); padding:7px 11px; border-radius:999px; margin-bottom:16px; }
.platform__body h3{ font-family:var(--ff-display); font-weight:800; font-size:28px; letter-spacing:-.02em; margin:0 0 10px; }
.platform__body p{ color:var(--ink-2); margin:0; font-size:15.5px; }

.reel{ max-width:var(--maxw); margin:24px auto 0; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:880px){ .reel{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:540px){ .reel{ grid-template-columns:1fr; } }
.shot{ display:block; position:relative; }
.shot__media{ aspect-ratio:4/3; overflow:hidden; background:var(--bg-2); border-radius:var(--r); }
.shot__media img,.shot__media video{ width:100%; height:118%; object-fit:cover; will-change:transform; }
.shot__meta{ display:flex; align-items:baseline; gap:12px; padding:16px 4px 0; }
.shot__meta span{ font:600 12px/1 var(--ff-label); color:var(--pink); }
.shot__meta h3{ font-family:var(--ff-display); font-weight:800; font-size:20px; letter-spacing:-.02em; margin:0; }
.shot__meta em{ margin-left:auto; font-style:normal; font-size:12px; color:var(--ink-mute); }
.shot::after{ content:"View ↗"; position:absolute; top:14px; right:14px; font:600 12px/1 var(--ff-label);
  background:var(--ink); color:var(--paper); padding:8px 11px; border-radius:999px; opacity:0; transform:translateY(-6px); transition:.35s var(--e-out); }
.shot:hover::after{ opacity:1; transform:none; }

.more{ max-width:var(--maxw); margin:60px auto 0; display:inline-flex; align-items:center; gap:12px;
  font-family:var(--ff-display); font-size:clamp(20px,2.6vw,30px); font-weight:800; font-style:normal; letter-spacing:-.02em; color:var(--ink);
  position:relative; left:50%; transform:translateX(-50%); }
.more svg{ transition:transform .4s var(--e-out); }
.more:hover svg{ transform:translateX(8px); }

/* marquee */
.marquee{ margin-top:clamp(80px,12vh,140px); overflow:hidden; border-block:1px solid var(--line); padding:26px 0; }
.marquee__track{ display:flex; gap:34px; align-items:center; width:max-content; white-space:nowrap; will-change:transform; }
.marquee__track span{ font-family:var(--ff-display); font-weight:800; font-size:clamp(24px,3.2vw,42px); letter-spacing:-.02em; color:var(--ink); }
.marquee__track .sep{ color:var(--pink); font-size:.7em; }

/* =========================================================
   BRIEF
   ========================================================= */
.brief{ background:var(--night); color:var(--paper); padding:clamp(90px,14vh,170px) var(--pad); }
.brief__inner{ max-width:1080px; margin:0 auto; }
.brief__head{ text-align:center; display:flex; flex-direction:column; align-items:center; margin-bottom:56px; }
.brief__head .h-mega{ color:var(--paper); }
.brief__lede{ max-width:52ch; margin:26px 0 0; color:rgba(255,255,255,.66); font-size:clamp(16px,1.5vw,19px); }

.wizard{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.12); border-radius:24px;
  padding:clamp(26px,4vw,48px); position:relative; overflow:hidden; }
.wizard__bar{ position:absolute; top:0; left:0; right:0; height:4px; background:rgba(255,255,255,.1); }
.wizard__fill{ display:block; height:100%; width:25%; background:linear-gradient(90deg,var(--pink),var(--pink-hot)); transition:width .5s var(--e-out); }

.wstep{ border:0; margin:0; padding:0; min-height:230px; display:none; animation:stepin .5s var(--e-out); }
.wstep.is-active{ display:block; }
@keyframes stepin{ from{opacity:0; transform:translateY(16px)} to{opacity:1; transform:none} }
.wstep legend{ font-family:var(--ff-display); font-weight:400; font-size:clamp(24px,3.4vw,38px); letter-spacing:-.02em; margin-bottom:28px; display:flex; align-items:baseline; gap:14px; }
.wstep__k{ font:600 13px/1 var(--ff-label); color:var(--pink-hot); letter-spacing:.1em; }
.wstep__hint{ margin:16px 0 0; font-size:13px; color:rgba(255,255,255,.5); }

.optgrid{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.optgrid--row{ grid-template-columns:repeat(4,1fr); margin-top:18px; }
@media (max-width:620px){ .optgrid{ grid-template-columns:1fr; } .optgrid--row{ grid-template-columns:repeat(2,1fr); } }
.opt{ position:relative; display:flex; align-items:center; gap:12px; padding:17px 20px;
  border:1.5px solid rgba(255,255,255,.16); border-radius:14px; cursor:none; transition:.3s var(--e-out); font-weight:500; }
.opt:hover{ border-color:rgba(255,255,255,.4); transform:translateY(-2px); }
.opt input{ position:absolute; opacity:0; pointer-events:none; }
.opt span{ position:relative; padding-left:30px; }
.opt span::before{ content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:18px; height:18px; border:1.5px solid rgba(255,255,255,.4); border-radius:6px; transition:.25s; }
.opt:has(input[type=radio]) span::before{ border-radius:50%; }
.opt:has(input:checked){ border-color:var(--pink); background:rgba(230,23,98,.12); }
.opt:has(input:checked) span::before{ background:var(--pink); border-color:var(--pink); box-shadow:inset 0 0 0 3px var(--night); }
.opt--sm{ padding:13px 14px; justify-content:center; }
.opt--sm span{ padding-left:0; }
.opt--sm span::before{ display:none; }
.opt--sm:has(input:checked){ background:var(--pink); border-color:var(--pink); }

.wizard textarea, .field input{ width:100%; background:rgba(255,255,255,.05); border:1.5px solid rgba(255,255,255,.16);
  border-radius:14px; padding:16px 18px; color:var(--paper); font:inherit; transition:.3s; resize:vertical; cursor:none; }
.wizard textarea::placeholder, .field input::placeholder{ color:rgba(255,255,255,.4); }
.wizard textarea:focus, .field input:focus{ outline:none; border-color:var(--pink); background:rgba(230,23,98,.08); }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
@media (max-width:620px){ .field-row{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:8px; }
.field span{ font:600 12px/1 var(--ff-label); letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.55); }

.wizard__nav{ display:flex; align-items:center; gap:14px; margin-top:36px; padding-top:26px; border-top:1px solid rgba(255,255,255,.12); }
.wizard__nav .btn--text{ color:var(--paper); }
.wizard__nav .btn--text:hover svg{ transform:translateX(-3px); }
.wizard__count{ font:600 13px/1 var(--ff-label); color:rgba(255,255,255,.5); margin-left:auto; }
.wizard__nav .btn--solid{ background:var(--pink); }
.wizard__nav .btn--solid:hover{ background:var(--pink-hot); }
.wstep.invalid .optgrid, .wstep.invalid textarea{ animation:shake .4s; }
@keyframes shake{ 0%,100%{transform:translateX(0)} 20%{transform:translateX(-8px)} 60%{transform:translateX(8px)} }

.brief__direct{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; justify-content:center; margin-top:38px;
  font-size:15px; color:rgba(255,255,255,.6); }
.brief__direct p{ margin:0; font:600 12px/1 var(--ff-label); letter-spacing:.1em; text-transform:uppercase; }
.brief__direct a{ color:var(--paper); border-bottom:1px solid rgba(255,255,255,.3); padding-bottom:2px; transition:.3s; }
.brief__direct a:hover{ color:var(--pink-hot); border-color:var(--pink-hot); }

/* =========================================================
   FOOTER
   ========================================================= */
.foot{ padding:clamp(70px,10vh,120px) var(--pad) 50px; }
.foot__top{ max-width:var(--maxw); margin:0 auto; display:flex; align-items:flex-start; justify-content:space-between; gap:30px; flex-wrap:wrap; padding-bottom:50px; border-bottom:1px solid var(--line); }
.brand--lg .brand__logo{ height:44px; }
.foot__line{ max-width:24ch; font-family:var(--ff-display); font-size:clamp(22px,3vw,32px); font-weight:300; line-height:1.15; margin:0; }
.foot__line em{ font-style:normal; font-weight:800; color:var(--pink); }
.foot__grid{ max-width:var(--maxw); margin:50px auto 0; display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
@media (max-width:760px){ .foot__grid{ grid-template-columns:1fr 1fr; } }
.foot__label{ font:600 11px/1 var(--ff-label); letter-spacing:.12em; text-transform:uppercase; color:var(--ink-mute); margin:0 0 12px; }
.foot__grid p{ margin:0; font-size:14.5px; color:var(--ink-2); line-height:1.7; }
.foot__grid a{ transition:color .3s; } .foot__grid a:hover{ color:var(--pink); }
.foot__bottom{ max-width:var(--maxw); margin:60px auto 0; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
  font:600 12px/1 var(--ff-label); letter-spacing:.04em; color:var(--ink-mute); }

/* =========================================================
   reduced motion
   ========================================================= */
@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
  [data-reveal]{ opacity:1 !important; transform:none !important; }
  body{ cursor:auto; } .cursor{ display:none; }
  .blocks{ position:static; }
}
