:root{
  --navy:#0B2C5C; --orange:#FF991E; --gray:#A9A9A9;
  --acc-brand:#FF2D8A; --acc-tech:#0A89FF; --acc-ai:#FF991E;
  --bg:#080A0E; --surface:#101318; --surface-2:#0B0E13;
  --content:#F1F0EE; --muted:#B7B7B7; --subtle:#8A8A8A;
  --soft:#8A8A8A; --body:#B7B7B7; --tert:#8A8A8A;
  --line:rgba(255,255,255,.10);
  --light:#FFFFFF; --light-line:#E5E5E3; --ink:#001633; --ink-2:#6B6B6B; --ink-soft:#8A8A8A; --orange-text:#B35F00;
  --grad:linear-gradient(135deg,#ffb347 0%,#ff991e 45%,#ef6a1a 100%);
  --anton:Archivo,'Helvetica Neue',Arial,sans-serif;
  --archivo:Archivo,'Helvetica Neue',Arial,sans-serif;
  --mono:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --display-2xl:clamp(2.75rem,1rem + 9vw,8.5rem);
  --display-xl:clamp(2.25rem,1rem + 5.5vw,5.5rem);
  --display-lg:clamp(1.875rem,1rem + 3vw,3.75rem);
  --display-md:clamp(1.5rem,1rem + 1.6vw,2.5rem);
  --heading:clamp(1.25rem,1rem + .6vw,1.625rem);
  --body-lg:clamp(1.0625rem,1rem + .45vw,1.25rem);
  --gutter:clamp(20px,5vw,96px);
  --max:1440px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--body);font-family:var(--archivo);font-size:16px;line-height:1.65;font-stretch:100%;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,p,ul,ol,li,figure{margin:0;padding:0}
ul,ol{list-style:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
img,svg{display:block;max-width:100%}
main{position:relative}
:focus-visible{outline:2px solid var(--orange);outline-offset:4px;border-radius:4px}

/* ---------- type ---------- */
.display-2xl{font-family:var(--archivo);font-weight:600;font-size:var(--display-2xl);line-height:.92;letter-spacing:-.03em;text-wrap:balance;max-width:20ch}
.display-xl{font-family:var(--archivo);font-weight:600;font-size:var(--display-xl);line-height:.95;letter-spacing:-.028em;text-wrap:balance;max-width:22ch}
.display-lg{font-family:var(--archivo);font-weight:600;font-size:var(--display-lg);line-height:1;letter-spacing:-.024em}
.display-md{font-family:var(--archivo);font-weight:600;font-size:var(--display-md);line-height:1.05;letter-spacing:-.02em}
.heading{font-family:var(--archivo);font-weight:500;font-size:var(--heading);line-height:1.15;letter-spacing:-.015em;color:var(--content)}
.body-lg{font-size:var(--body-lg);line-height:1.6;letter-spacing:0;text-wrap:pretty;max-width:44rem}
.body-sm{font-size:14px;line-height:1.6}
.label{display:inline-flex;align-items:center;gap:20px;font-family:var(--archivo);font-stretch:88%;font-weight:500;font-size:12px;line-height:1.2;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.label__rule{display:block;width:32px;height:1px;background:rgba(255,255,255,.28);transform-origin:left;transform:scaleX(var(--rule,1))}
.light .label{color:var(--ink-2)}
.light .label__rule{background:rgba(0,22,51,.25)}
.data{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:0}
.t-strong{color:var(--content)}
.t-soft{color:var(--muted)}
.light .t-strong{color:var(--ink)}
.light .t-soft{color:var(--ink-soft)}
.sec__head{padding:0 var(--gutter);max-width:var(--max);margin:0 auto 48px}
.sec__head .label{margin-bottom:40px}
.sec__lede{margin-top:40px;color:var(--muted)}
.light .sec__lede{color:var(--ink-2)}
section{position:relative;z-index:1}

/* reveal on enter (one time, per element) */
.rv{opacity:0;transform:translateY(22px);clip-path:inset(0 0 100% 0);transition:opacity .9s var(--ease),transform .9s var(--ease),clip-path .9s var(--ease);transition-delay:calc(var(--i,0)*.12s)}
.rv.is-in{opacity:1;transform:none;clip-path:inset(0 0 -20% 0)}
.rv.label{clip-path:none;transform:none}
.rv.label .label__rule{--rule:0;transition:transform .8s var(--ease)}
.rv.label.is-in .label__rule{--rule:1}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;clip-path:none}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 20px;border-radius:999px;font-weight:600;font-size:15px;letter-spacing:.01em;white-space:nowrap;transition:transform .35s var(--ease),background .3s,color .3s,border-color .3s}
.btn--solid{background:#fff;color:var(--navy)}
.btn--solid:hover{background:var(--orange);color:#fff;transform:translateY(-1px)}
.btn--action{background:var(--orange);color:#0b0b0b}
.btn--action:hover{background:#ffad4d}
.btn{position:relative;overflow:hidden}
.btn--action::after{content:"";position:absolute;inset:0;background:radial-gradient(120px 60px at var(--bx,50%) var(--by,50%),rgba(255,255,255,.35),transparent 60%);opacity:0;transition:opacity .3s}
.btn--action:hover::after{opacity:1}
.btn--ghost{border:1px solid rgba(255,255,255,.28);color:#fff}
.btn--ghost:hover{border-color:var(--orange);color:var(--orange)}
.btn--lg{height:56px;padding:0 28px;font-size:16px}

/* ---------- nav ---------- */
.nav{transform:translateY(var(--navy-hide,0));transition:transform .5s var(--ease),background .4s,backdrop-filter .4s,border-color .4s;position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;height:72px;padding:0 var(--gutter);transition:background .4s,backdrop-filter .4s,border-color .4s;border-bottom:1px solid transparent}
.nav.is-scrolled{background:rgba(5,11,20,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--line)}
.nav.nav--light{background:rgba(255,255,255,.82);border-color:var(--light-line)}
.nav--light .nav__word,.nav--light .nav__links a{color:var(--ink)}
.nav--light .nav__links a:hover{color:var(--orange-text)}
.nav--light .nav__iso .navy{fill:var(--navy)}
.nav--light .nav__burger span{background:var(--navy)}
.nav--light .btn--action{background:var(--navy);color:#fff}
.nav--light .nav__lang{border-color:var(--light-line)}
.nav--light .nav__lang button{color:var(--ink-soft)}
.nav--light .nav__lang button.is-on{background:var(--navy);color:#fff}
.nav__brand{display:flex;align-items:center;gap:12px}
.nav__iso svg{width:34px;height:auto}
.nav__iso .navy{fill:#fff}
.nav__word{font-family:var(--archivo);font-weight:600;font-size:17px;letter-spacing:-.02em;color:var(--content)}
.nav__links{display:none;gap:32px;font-size:15px;font-weight:500;color:var(--body)}
.nav__links a{position:relative;padding:6px 0;transition:color .3s}
.nav__links a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1.5px;background:var(--orange);transition:right .4s var(--ease)}
.nav__links a:hover{color:#fff}
.nav__links a:hover::after{right:0}
.nav__right{display:flex;align-items:center;gap:14px}
.nav__lang{display:none;gap:2px;padding:3px;border:1px solid var(--line);border-radius:999px;font-size:12px;font-weight:600}
.nav__lang button{padding:5px 10px;border-radius:999px;color:var(--tert)}
.nav__lang button.is-on{background:rgba(255,255,255,.1);color:#fff}
.nav .btn--action{display:none}
.nav__burger{width:44px;height:44px;display:grid;place-items:center;gap:0;position:relative}
.nav__burger span{position:absolute;left:12px;right:12px;height:2px;background:#fff;transition:transform .35s var(--ease),top .35s var(--ease)}
.nav__burger span:first-child{top:18px}.nav__burger span:last-child{top:25px}
.nav__burger[aria-expanded="true"] span:first-child{top:21px;transform:rotate(45deg)}
.nav__burger[aria-expanded="true"] span:last-child{top:21px;transform:rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:40;background:var(--bg);display:flex;flex-direction:column;justify-content:center;gap:8px;padding:0 var(--gutter)}
.menu[hidden]{display:none}
.menu a{font-family:var(--archivo);font-weight:600;letter-spacing:-.028em;font-size:clamp(40px,11vw,72px);line-height:1;color:var(--content)}
.menu a:nth-child(even){color:var(--soft)}
.menu__cta{margin-top:24px;font-size:18px!important;letter-spacing:0!important;color:var(--orange)!important;font-weight:600}
@media (min-width:900px){
  .nav__links{display:flex}
  .nav__lang{display:flex}
  .nav .btn--action{display:inline-flex}
  .nav__burger{display:none}
}

/* ---------- cursor ---------- */
.cursor{display:none}
@media (pointer:fine){
  body.has-cursor{cursor:none}
  body.has-cursor a,body.has-cursor button,body.has-cursor [data-cursor]{cursor:none}
  .cursor{display:block;position:fixed;left:0;top:0;z-index:100;pointer-events:none}
  .cursor__dot{position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;background:var(--orange);transition:transform .25s var(--ease),opacity .25s}
  .cursor__ring{position:absolute;left:-22px;top:-22px;width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(255,153,30,.75);display:grid;place-items:center;transition:transform .35s var(--ease),width .35s var(--ease),height .35s var(--ease),left .35s var(--ease),top .35s var(--ease),background .3s,border-color .3s}
  .cursor__label{font-size:12px;font-weight:600;color:var(--navy);opacity:0;transition:opacity .2s;white-space:nowrap}
  .cursor.is-hover .cursor__ring{left:-34px;top:-34px;width:68px;height:68px;background:var(--orange);border-color:var(--orange)}
  .cursor.is-hover .cursor__label{opacity:1}
  .cursor.is-hover .cursor__dot{transform:scale(0)}
  .cursor.is-down .cursor__ring{transform:scale(.85)}
}

/* ---------- el trazo continuo ---------- */
.trazo{position:absolute;left:0;top:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:visible}
.trazo path{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.trazo .seg-o{stroke:var(--orange)}
.trazo .seg-g{stroke:var(--gray);opacity:.55}
.trazo .seg-n{stroke:#3C64A6}
.trazo circle{fill:var(--bg);stroke:var(--orange);stroke-width:2;transition:transform .5s var(--ease),fill .4s;transform-box:fill-box;transform-origin:center;transform:scale(0)}
.trazo circle.is-on{transform:scale(1)}
.trazo circle.on-light{fill:#fff}

/* ---------- hero ---------- */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:calc(72px + clamp(72px,9vw,128px)) var(--gutter) clamp(72px,9vw,128px);max-width:var(--max);margin:0 auto;position:relative}
.hero__in{max-width:100%}
.hero__eyebrow .label__rule{--rule:0;transition:transform .9s var(--ease) .1s}
.hero.is-in .hero__eyebrow .label__rule{--rule:1}
.hero__eyebrow span:last-child{opacity:0;transform:translateX(-6px);transition:opacity .8s .5s,transform .8s var(--ease) .5s}
.hero.is-in .hero__eyebrow span:last-child{opacity:1;transform:none}
.hero__title{margin-top:40px;color:var(--content)}
.hero__title .wd{display:inline-block;opacity:0;transform:translateY(.55em) rotate(2deg);transform-origin:left bottom;clip-path:inset(0 0 100% 0);transition:opacity .8s var(--ease),transform .9s var(--ease),clip-path .9s var(--ease)}
.hero.is-in .hero__title .wd{opacity:1;transform:none;clip-path:inset(-10% 0 -20% 0)}
.hero.is-in .hero__title .wd:nth-child(1){transition-delay:.45s}.hero.is-in .hero__title .wd:nth-child(2){transition-delay:.52s}.hero.is-in .hero__title .wd:nth-child(3){transition-delay:.59s}.hero.is-in .hero__title .wd:nth-child(4){transition-delay:.66s}.hero.is-in .hero__title .wd:nth-child(5){transition-delay:.73s}.hero.is-in .hero__title .wd:nth-child(6){transition-delay:.80s}.hero.is-in .hero__title .wd:nth-child(7){transition-delay:.87s}.hero.is-in .hero__title .wd:nth-child(8){transition-delay:.94s}
.hero__lead{margin-top:40px;color:var(--muted);opacity:0;transform:translateY(12px);transition:opacity 1s 1.25s,transform 1s var(--ease) 1.25s}
.hero.is-in .hero__lead{opacity:1;transform:none}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:48px;opacity:0;transition:opacity 1s 1.5s}
.hero.is-in .hero__cta{opacity:1}
.hero__scroll{position:absolute;left:var(--gutter);bottom:clamp(28px,4vw,48px);display:flex;align-items:center;gap:14px;opacity:0;transition:opacity 1s 1.9s}
.hero.is-in .hero__scroll{opacity:1}
.hero__scroll .label{color:var(--subtle)}
.hero__scroll-node{width:10px;height:10px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 0 rgba(255,153,30,.55);animation:ping 2.4s var(--ease) infinite}
.hero__scroll-line{width:1px;height:28px;background:linear-gradient(var(--orange),transparent);display:none}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(255,153,30,.55)}70%{box-shadow:0 0 0 14px rgba(255,153,30,0)}100%{box-shadow:0 0 0 0 rgba(255,153,30,0)}}
@media (prefers-reduced-motion:reduce){.hero__title .wd,.hero__lead,.hero__cta,.hero__scroll,.hero__eyebrow span:last-child{opacity:1;transform:none;clip-path:none;transition:none}.hero__eyebrow .label__rule{--rule:1}}

/* ---------- split ---------- */
.split{height:420svh;position:relative}
.split__stage{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding:0 var(--gutter)}
.split__word{position:relative;display:flex;align-items:baseline;justify-content:center;font-family:var(--archivo);font-weight:600;font-size:clamp(56px,13vw,220px);line-height:1;letter-spacing:-.03em;white-space:nowrap;color:var(--content);will-change:transform}
.w{display:inline-block;will-change:transform}
.split__line{display:inline-flex;align-items:baseline;will-change:transform}
#lineA{padding-left:var(--sp,0)}
.w--art{color:var(--content)}
.w--ins{color:var(--muted);clip-path:inset(0 100% 0 0);will-change:clip-path}
.split__bridge{position:absolute;top:52%;left:0;height:2px;width:0;background:var(--orange);border-radius:2px;transform-origin:center;transform:scaleX(0)}
.split__bridge::before,.split__bridge::after{content:"";position:absolute;top:50%;width:10px;height:10px;border-radius:50%;background:var(--bg);border:2px solid var(--orange);transform:translateY(-50%)}
.split__bridge::before{left:-6px}.split__bridge::after{right:-6px}
.split__caps{position:absolute;left:var(--gutter);right:var(--gutter);top:50%;pointer-events:none}
.cap{position:absolute;max-width:38ch;opacity:0;transform:translateY(12px)}
.cap__k{font-weight:500;color:var(--content);font-size:15px;letter-spacing:-.01em}
.cap__k em{font-style:normal;color:var(--orange)}
.cap__v{margin-top:8px;color:var(--muted);font-size:var(--body-lg);line-height:1.5}
.cap--tech{left:0;top:clamp(60px,10vw,140px)}
.cap--art{right:0;top:clamp(60px,10vw,140px);text-align:right}
.cap--ai{left:50%;transform:translate(-50%,12px);top:clamp(70px,11vw,150px);text-align:center;max-width:48ch}
@media (max-width:720px){
  .split{height:380svh}
  .split__stage{padding:0 var(--gutter) max(20px,env(safe-area-inset-bottom))}
  .split__word{font-size:clamp(52px,17vw,104px);flex-direction:column;align-items:flex-start;justify-content:center;align-self:center;line-height:.9;letter-spacing:-.045em}
  .split__line{position:relative;display:block}
  .w--ins{position:absolute;left:100%;top:0;margin-left:.04em}
  .split__bridge{display:block;left:50%;top:50%;width:2px;height:56px;transform:translate(-50%,-50%) scaleY(0);transform-origin:center}
  .split__bridge::before,.split__bridge::after{left:50%;right:auto;transform:translate(-50%,-50%)}
  .split__bridge::before{top:0}
  .split__bridge::after{top:100%}
  .split__caps{top:0;bottom:0}
  .cap{max-width:100%}
  .cap__k{font-size:18px;letter-spacing:-.015em}
  .cap__v{margin-top:8px;font-size:17px;line-height:1.4}
  .cap--tech{top:auto;left:0;right:0;bottom:calc(50% + var(--split-rise,96px));text-align:left}
  .cap--art{top:calc(50% + var(--split-rise,96px));bottom:auto;right:0;left:0;text-align:right;max-width:100%}
  .cap--ai{top:calc(50% + var(--split-end-below,72px));bottom:auto;left:0;right:0;transform:translateY(12px);text-align:left;max-width:100%}
}
@media (max-width:720px) and (max-height:640px){
  .cap__k{font-size:16px}
  .cap__v{font-size:15px;line-height:1.35;margin-top:6px}
}

/* ---------- practices ---------- */
.practices{padding:clamp(96px,14vw,200px) 0 0}
.prac{--acc:var(--orange);display:grid;grid-template-columns:1fr;gap:16px;max-width:var(--max);margin:0 auto;padding:36px var(--gutter);border-top:1px solid var(--line);position:relative;overflow:hidden;isolation:isolate}
.prac[data-accent=brand]{--acc:var(--acc-brand)}.prac[data-accent=tech]{--acc:var(--acc-tech)}.prac[data-accent=ai]{--acc:var(--acc-ai)}
.prac::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:var(--acc);transition:width .7s var(--ease)}
.prac::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(520px 260px at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--acc) 16%,transparent),transparent 70%);opacity:0;transition:opacity .5s}
.prac:hover::before,.prac:focus-within::before{width:100%}
.prac:hover::after{opacity:1}
.prac:last-of-type{border-bottom:1px solid var(--line)}
.prac__num{font-size:13px;color:var(--subtle);padding-top:10px}
.prac__title{color:var(--content);transition:transform .5s var(--ease)}
.prac:hover .prac__title{transform:translateX(10px)}
.prac__desc{margin-top:16px;max-width:44ch;color:var(--muted)}
.prac__list{display:flex;flex-wrap:wrap;gap:8px 10px;align-content:flex-start}
.prac__list li{padding:8px 14px;border:1px solid var(--line);border-radius:999px;font-family:var(--archivo);font-stretch:88%;font-weight:500;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);transition:border-color .3s,color .3s}
.prac:hover .prac__list li{border-color:color-mix(in srgb,var(--acc) 55%,transparent);color:var(--content)}
.prac:hover .prac__num{color:var(--acc)}
.practices__foot{max-width:var(--max);margin:0 auto;padding:32px var(--gutter) 0;color:var(--subtle);font-size:14px}
@media (min-width:900px){
  .prac{grid-template-columns:80px 1.2fr 1fr;gap:32px;padding:56px var(--gutter)}
  .prac__list{padding-top:12px;justify-content:flex-end}
}

/* ---------- receipt (light) ---------- */
.light{background:#F6F5F2;color:var(--ink-2)}
:root{--paper:#F6F5F2;--action-paper:#9E5400;--tech-paper:#0B5BD3}
.receipt{margin-top:clamp(96px,14vw,200px);padding:clamp(96px,12vw,180px) 0}
.receipt__grid{display:grid;grid-template-columns:1fr;gap:56px;max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.receipt__p{margin-top:22px;font-size:var(--body-lg);line-height:1.6;max-width:44rem;color:var(--ink-2);text-wrap:pretty}
.receipt__copy .display-xl{margin-bottom:18px}
.receipt__p strong{color:var(--ink)}
.timeline{border-left:2px solid var(--light-line);padding-left:28px;display:flex;flex-direction:column;gap:36px;align-self:end}
.timeline li{position:relative}
.timeline li::before{content:"";position:absolute;left:-36px;top:8px;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--ink-soft)}
.timeline li.is-now::before{background:var(--orange);border-color:var(--orange)}
.timeline__y{display:block;font-family:var(--archivo);font-weight:600;letter-spacing:-.02em;font-size:var(--display-md);color:var(--ink);line-height:1.05}
.timeline li.is-now .timeline__y{color:var(--orange-text)}
.timeline__t{display:block;margin-top:8px;max-width:38ch;color:var(--ink-2)}
@media (min-width:900px){.receipt__grid{grid-template-columns:1.1fr .9fr;gap:96px}}

/* ---------- lab / work ---------- */
.lab{padding:clamp(96px,14vw,200px) 0 0}
.filters{display:flex;gap:8px;max-width:var(--max);margin:0 auto 28px;padding:0 var(--gutter)}
.filters button{padding:10px 16px;border-radius:999px;border:1px solid var(--line);font-family:var(--archivo);font-stretch:88%;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:500;color:var(--muted);transition:background .3s,color .3s,border-color .3s}
.filters button.is-on{background:#fff;color:var(--navy);border-color:#fff}
.filters button:hover:not(.is-on){border-color:rgba(255,255,255,.35);color:#fff}
.work{display:grid;grid-template-columns:1fr;gap:16px;max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.card{position:relative;display:flex;flex-direction:column;border-radius:22px;background:var(--surface);border:1px solid var(--line);overflow:hidden;transition:transform .6s var(--ease),border-color .4s,opacity .4s;transform:perspective(1200px) rotateX(var(--rx,0)) rotateY(var(--ry,0));transform-style:preserve-3d}
.card:hover,.card:focus-visible{border-color:rgba(255,153,30,.55)}
.card.is-tilting{transition:border-color .4s}
.card.is-hidden{display:none}
.card__vis{background:var(--surface-2);aspect-ratio:2/1;position:relative}
.card__vis svg{width:100%;height:100%}
.card__body{padding:24px 24px 28px;display:flex;flex-direction:column;gap:12px}
.card__meta{display:flex;justify-content:space-between;gap:12px;font-family:var(--archivo);font-stretch:88%;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:500;color:var(--subtle)}
.card__idx{color:var(--orange)}
.card__title{color:var(--content)}
.card__p{color:var(--muted);max-width:56ch}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.tags li{font-size:12px;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.06);color:var(--muted);font-stretch:88%;letter-spacing:.04em}
@media (min-width:760px){
  .work{grid-template-columns:repeat(2,1fr);gap:20px}
  .card--wide{grid-column:span 2}
  .card--wide .card__vis{aspect-ratio:auto;min-height:280px}
  .card--wide{flex-direction:row}
  .card--wide .card__vis{flex:1.2}
  .card--wide .card__body{flex:1;justify-content:center;padding:36px}
}
@media (min-width:1100px){.work{grid-template-columns:repeat(3,1fr)}.card--wide{grid-column:span 3}}

/* visual micro-animations (hover-driven) */
.vis .draw{stroke-dasharray:600;stroke-dashoffset:600;transition:stroke-dashoffset 1.6s var(--ease)}
.card:hover .vis .draw,.card:focus-visible .vis .draw{stroke-dashoffset:0}
.vis .pulse{transform-box:fill-box;transform-origin:center;animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
.vis .spin{animation:spin 18s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.vis--forge .agent circle{transition:fill .4s,stroke .4s}
.card:hover .vis--forge .agent circle{fill:#16284A;stroke:rgba(255,153,30,.6)}
.vis--nodus .room{transition:fill .4s}
.vehicle{opacity:.0;transition:opacity .4s}
.card:hover .vehicle,.card:focus-visible .vehicle{opacity:1}
@media (prefers-reduced-motion:reduce){.vis .pulse,.vis .spin,.hero__scroll span,.stack__track{animation:none}.vis .draw{stroke-dashoffset:0}}

/* stack marquee */
.stack{margin-top:64px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:20px 0;-webkit-mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.stack__track{display:flex;gap:56px;width:max-content;animation:marquee 40s linear infinite;font-family:var(--archivo);font-weight:600;letter-spacing:-.02em;font-size:clamp(20px,2.4vw,30px);color:var(--subtle)}
.stack__track span:nth-child(4n){color:var(--content)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- research (light) ---------- */
.research{padding:clamp(96px,12vw,180px) 0;margin-top:0}
.research__grid{display:grid;grid-template-columns:1fr;gap:48px;max-width:var(--max);margin:0 auto;padding:0 var(--gutter);align-items:start}
.qs{display:grid;grid-template-columns:1fr;border-top:1px solid var(--light-line)}
@media (min-width:1000px){.research__grid{grid-template-columns:7fr 5fr;gap:64px}}

/* ask inteligart — an editorial field inside a card */
.ask{background:#fff;border:1px solid var(--light-line);border-radius:3px;padding:24px;display:flex;flex-direction:column;position:sticky;top:96px}
.ask__label{color:var(--subtle)}
.ask__input{display:block;width:100%;min-height:48px;margin-top:16px;padding:0 0 12px;border:0;border-bottom:1px solid var(--light-line);border-radius:0;background:transparent;color:var(--ink);font-family:var(--archivo);font-stretch:100%;outline:none;-webkit-appearance:none;appearance:none;transition:border-color .3s}
.ask__input::placeholder{color:var(--subtle);opacity:1}
.ask__input::-webkit-search-cancel-button,.ask__input::-webkit-search-decoration{-webkit-appearance:none;appearance:none}
.ask__input:focus{border-bottom-color:var(--action-paper)}
.ask__input:focus-visible{outline:none}
.ask__hint{margin-top:16px;color:var(--subtle)}
.ask__results:empty{display:none}
.ask__results{margin-top:24px;border-top:1px solid var(--light-line)}
.ask__hit{display:block;padding:20px 0;border-bottom:1px solid var(--light-line)}
.ask__hit:last-child{border-bottom:0;padding-bottom:4px}
.ask__q{display:block;color:var(--ink);transition:color .25s}
.ask__hit:hover .ask__q,.ask__hit:focus-visible .ask__q{color:var(--tech-paper)}
.ask__a{display:block;margin-top:8px;color:var(--ink-2);font-size:14px;line-height:1.6}
.ask__empty{padding:20px 0 4px;color:var(--ink-2);font-size:14px;line-height:1.6}
.ask__empty a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--light-line);transition:color .25s}
.ask__empty a:hover{color:var(--tech-paper)}
@media (min-width:900px){.ask{padding:40px}}
.q{display:grid;grid-template-columns:1fr;gap:6px;padding:24px 0;border-bottom:1px solid var(--light-line);position:relative;transition:padding-left .45s var(--ease)}
.q::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:var(--orange);transition:width .6s var(--ease)}
.q:hover::before{width:100%}
.q:hover{padding-left:16px}
.q__t{font-family:var(--archivo);font-weight:600;font-size:var(--display-md);line-height:1.05;letter-spacing:-.02em;color:var(--ink);max-width:28ch;transition:color .3s}
.q:hover .q__t{color:var(--orange-text)}


/* ---------- clients ---------- */
.clients{padding:clamp(96px,14vw,200px) 0 0}
.logowall{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.logo-slot{display:flex;align-items:center;justify-content:center;min-height:104px;padding:22px 18px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.02)}
.logo-slot img{max-width:100%;max-height:48px;width:auto;height:auto;object-fit:contain}
.logo-slot--badge img{max-height:56px}
.logo-word{font-family:var(--archivo);font-weight:600;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--content);text-align:center;line-height:1.2}
.badge{display:grid;place-items:center;height:96px;border-radius:14px;border:1px dashed rgba(255,255,255,.18);color:var(--tert);font-size:13px;transition:border-color .3s,color .3s}
.badge:hover{border-color:rgba(255,153,30,.6);color:var(--body)}
.trust{display:grid;grid-template-columns:1fr;gap:40px;max-width:var(--max);margin:64px auto 0;padding:48px var(--gutter) 0;border-top:1px solid var(--line)}
.trust[hidden]{display:none}
.badges{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:20px}
.badge{height:80px}
@media (min-width:760px){.logowall{grid-template-columns:repeat(4,1fr)}.badges{grid-template-columns:repeat(4,1fr)}.logo-slot{min-height:112px;padding:24px 16px}}
@media (min-width:1100px){.trust{grid-template-columns:1fr 1fr;gap:64px}}

/* ---------- presence ---------- */
.presence{padding:clamp(96px,14vw,200px) 0 0}
.zones{display:grid;grid-template-columns:1fr;gap:0;max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.zone{padding:32px 0 8px;border-top:1px solid var(--line);position:relative}
.zone::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:var(--orange);transition:width .6s var(--ease)}
.zone:hover::before{width:100%}
.zone__city{font-family:var(--archivo);font-weight:600;font-size:var(--display-md);letter-spacing:-.02em;line-height:1.05;color:var(--content)}
.zone__country{margin-top:8px;color:var(--muted);font-size:16px}
.zone__time{margin-top:28px;font-size:14px;color:var(--subtle)}
.zone__time span{color:var(--muted)}
@media (min-width:760px){.zones{grid-template-columns:repeat(2,1fr);gap:0 40px}}
@media (min-width:1100px){.zones{grid-template-columns:repeat(4,1fr);gap:0 48px}.zone{padding:40px 0 16px}}

/* ---------- contact ---------- */
.contact{padding:clamp(120px,16vw,220px) 0 clamp(96px,10vw,140px)}
.contact__grid{display:grid;grid-template-columns:1fr;gap:56px;max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.contact__direct{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.contact__direct a{padding:12px 18px;border:1px solid var(--line);border-radius:999px;font-weight:600;font-size:15px;color:#fff;transition:border-color .3s,color .3s}
.contact__direct a:hover{border-color:var(--orange);color:var(--orange)}
.form{display:flex;flex-direction:column;gap:18px;padding:32px;border-radius:22px;background:var(--surface);border:1px solid var(--line);position:relative}
.form>label{display:flex;flex-direction:column;gap:8px;font-stretch:88%;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:500;color:var(--muted)}
.form input[type=text],.form input[type=email],.form textarea{font:inherit;font-stretch:100%;letter-spacing:0;text-transform:none;font-size:16px;color:var(--content);background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.22);padding:10px 0;outline:none;transition:border-color .3s;resize:vertical}
.form input:focus,.form textarea:focus{border-color:var(--orange)}
.form__chips{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.form__chips legend{font-stretch:88%;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:500;color:var(--muted);margin-bottom:10px;padding:0}
.form__chips label{position:relative}
.form__chips input{position:absolute;opacity:0;inset:0}
.form__chips span{display:inline-block;padding:9px 14px;border-radius:999px;border:1px solid var(--line);font-size:14px;transition:background .3s,color .3s,border-color .3s}
.form__chips input:checked+span{background:#fff;color:var(--navy);border-color:#fff}
.form__chips input:focus-visible+span{outline:2px solid var(--orange);outline-offset:2px}
.form .btn{align-self:flex-start;margin-top:8px}
.form__ok{display:none;color:var(--orange);font-weight:600}
.form.is-sent .form__ok{display:block}
@media (min-width:900px){.contact__grid{grid-template-columns:1.1fr .9fr;gap:96px;align-items:start}.form{padding:40px}}

/* ---------- footer ---------- */
.foot{position:relative;padding-top:96px;z-index:1;border-top:1px solid var(--line);padding:48px var(--gutter);max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1fr;gap:32px;color:var(--tert);font-size:14px}
.foot__brand{display:flex;align-items:center;gap:14px}
.foot__iso svg{width:40px;height:auto}
.foot__iso .navy{fill:#fff}
.foot__word{font-family:var(--archivo);font-weight:600;font-size:17px;letter-spacing:-.02em;color:var(--content)}
.foot__tag{margin-top:2px}
.foot__links{display:flex;flex-wrap:wrap;gap:20px}
.foot__links a:hover{color:#fff}
.foot__legal{display:flex;flex-wrap:wrap;gap:20px}
@media (min-width:900px){.foot{grid-template-columns:1fr auto 1fr;align-items:center}.foot__legal{justify-content:flex-end}}

/* nodus rooms */
.vis--nodus .room{stroke:rgba(255,255,255,.06)}
.vis--nodus .r-ready{fill:rgba(255,255,255,.16)}
.vis--nodus .r-clean{fill:rgba(255,255,255,.38)}
.vis--nodus .r-pending{fill:rgba(255,255,255,.07)}
.vis--nodus .r-crit{fill:var(--orange)}

/* lenis */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}

/* =========================================================
   Content pages: Work, project cases, Research, articles
   ========================================================= */
.sec__head--row{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:24px}
.more{display:inline-flex;align-items:center;gap:10px;font-family:var(--archivo);font-stretch:88%;font-weight:500;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);padding-bottom:6px;transition:color .25s,gap .3s var(--ease)}
.more:hover{color:var(--tech-paper);gap:16px}
.more--row{display:flex;padding:28px 0 4px;justify-content:flex-end}
.label i{font-style:normal;color:var(--ink-soft);opacity:.7}
.label a{color:inherit}
.label a:hover{color:var(--tech-paper)}

/* work sections on paper */
.work-home{padding:clamp(96px,12vw,180px) 0;margin-top:clamp(96px,14vw,200px)}
.pgrid{display:grid;grid-template-columns:1fr;gap:32px 24px;max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.pcard{display:flex;flex-direction:column;gap:16px;min-width:0}
.pcard.is-hidden{display:none}
.pcard__cover{display:block;aspect-ratio:1/1;overflow:hidden;background:#EDECE8;border:1px solid var(--light-line);border-radius:3px}
.pcard__cover img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.pcard:hover .pcard__cover img{transform:scale(1.035)}
.pcard__body{display:flex;flex-direction:column;gap:6px}
.pcard__title{display:block;color:var(--ink);transition:color .25s}
.pcard[data-practice=tech]:hover .pcard__title{color:var(--tech-paper)}
.pcard[data-practice=brand]:hover .pcard__title{color:#B8146F}
.pcard__meta{color:var(--ink-2)}
@media (min-width:700px){.pgrid{grid-template-columns:repeat(2,1fr);gap:40px 32px}}
@media (min-width:1100px){.pgrid{grid-template-columns:repeat(3,1fr)}}

/* page header */
.page{padding-top:72px;background:var(--paper)}
.phead{padding:clamp(72px,9vw,128px) 0 clamp(40px,5vw,64px)}
.phead__in{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.phead__in--read{max-width:calc(44rem + 2*var(--gutter))}
.phead .label{margin-bottom:40px;display:inline-flex}
.phead h1{margin:0}
.plist{padding-bottom:clamp(96px,12vw,180px)}
.plist__in{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.plist__empty{padding:32px 0;color:var(--ink-2)}
.filters--paper{padding:0;margin:0 0 16px;max-width:none}
.filters--types{margin-bottom:40px;flex-wrap:wrap}
.filters--paper button{border-color:var(--light-line);color:var(--ink-2)}
.filters--paper button.is-on{background:var(--ink);color:#fff;border-color:var(--ink)}
.filters--paper button:hover:not(.is-on){border-color:var(--ink-soft);color:var(--ink)}
.filters{flex-wrap:wrap}

/* project case */
.case__meta{display:grid;grid-template-columns:repeat(2,1fr);gap:24px 32px;margin:40px 0 0;max-width:56rem}
.case__meta div{display:flex;flex-direction:column;gap:8px}
.case__meta dd{margin:0;color:var(--ink);font-size:16px}
.case__meta dt{color:var(--ink-soft)}
.case__also{display:flex;flex-wrap:wrap;gap:6px}
.case__also li{font-size:13px;padding:4px 10px;border:1px solid var(--light-line);border-radius:999px;color:var(--ink-2)}
.case__cover{max-width:calc(960px + 2*var(--gutter));margin:clamp(32px,4vw,56px) auto 0;padding:0 var(--gutter)}
.case__cover img{width:100%;height:auto;border:1px solid var(--light-line);border-radius:3px;background:#EDECE8}
@media (min-width:900px){.case__meta{grid-template-columns:repeat(4,auto);gap:24px 56px}}

/* prose (Spanish bodies) */
.prose{max-width:calc(44rem + 2*var(--gutter));margin:clamp(48px,6vw,80px) auto 0;padding:0 var(--gutter);color:var(--ink-2);font-size:var(--body-lg);line-height:1.6;text-wrap:pretty}
.prose p{margin:0 0 1.35em}
.prose p:has(> img:only-child),.prose figure{margin:2.4em 0}
.prose img{width:100%;border:1px solid var(--light-line);border-radius:3px;background:#EDECE8;margin:2.4em 0}
.prose h2,.prose h3,.prose h4{color:var(--ink);font-family:var(--archivo);letter-spacing:-.02em;text-wrap:balance}
.prose h2{font-size:var(--display-md);font-weight:600;line-height:1.05;margin:2.2em 0 .7em}
.prose h3{font-size:var(--heading);font-weight:500;line-height:1.15;margin:1.8em 0 .6em}
.prose h4{font-size:16px;font-weight:600;margin:1.6em 0 .5em}
.prose strong,.prose b{color:var(--ink);font-weight:600}
.prose ul,.prose ol{padding-left:1.2em;margin:0 0 1.35em;list-style:disc}
.prose ol{list-style:decimal}
.prose li{margin:.35em 0}
.prose li p{margin:0}
.prose a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--light-line);transition:color .25s}
.prose a:hover{color:var(--tech-paper)}
.prose blockquote{margin:2em 0;padding-left:20px;border-left:2px solid var(--orange);color:var(--ink);font-size:var(--heading);font-weight:500;line-height:1.3;letter-spacing:-.015em}
.prose table{width:100%;border-collapse:collapse;font-size:15px;margin:0 0 1.35em}
.prose th,.prose td{padding:10px 12px;border-bottom:1px solid var(--light-line);text-align:left;vertical-align:top}
.prose th{color:var(--ink);font-weight:500}
.prose--read{margin-top:clamp(24px,3vw,40px)}
.prose>*:first-child{margin-top:0}

/* pager */
.pager{display:grid;grid-template-columns:1fr;gap:16px;max-width:var(--max);margin:clamp(72px,9vw,128px) auto 0;padding:clamp(32px,4vw,48px) var(--gutter) clamp(96px,12vw,160px);border-top:1px solid var(--light-line)}
.pager a{display:flex;flex-direction:column;gap:10px;color:var(--ink)}
.pager a:last-child{text-align:right;align-items:flex-end}
.pager a .display-md{transition:color .25s}
.pager a:hover .display-md{color:var(--tech-paper)}
.pager .label{color:var(--ink-soft)}
@media (min-width:700px){.pager{grid-template-columns:1fr 1fr}}
.post .pager{grid-template-columns:1fr;border-top:0;margin-top:40px;padding-top:0}
.post .pager a{align-items:flex-start;text-align:left}
.post__foot{max-width:calc(44rem + 2*var(--gutter));margin:clamp(48px,6vw,80px) auto 0;padding:32px var(--gutter) 0;border-top:1px solid var(--light-line)}
.post__foot>.body-sm{color:var(--ink-2)}
.post__foot>.body-sm a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--light-line)}
.post__foot>.body-sm a:hover{color:var(--tech-paper)}
.post__related{margin-top:40px}
.post__related .label{margin-bottom:8px}
.q--mini{grid-template-columns:1fr;padding:18px 0}
.q--mini .q__t{max-width:none}

/* research rows (editorial list, as in the reference) */
.research--page{padding-top:0}
.q{display:grid;grid-template-columns:1fr;gap:12px;padding:32px 0;border-bottom:1px solid var(--light-line);position:relative;transition:padding-left .45s var(--ease)}
.q.is-hidden{display:none}
.q__meta{display:inline-flex;gap:14px;color:var(--ink-soft)}
.q__meta span{text-transform:uppercase}
.q__x{color:var(--ink-2);max-width:60ch}
.q__topics{display:flex;flex-wrap:wrap;gap:8px 24px;color:var(--ink-2);margin-top:4px}
.q__topics span{white-space:nowrap}
.q .q__t{font-size:var(--display-md);max-width:30ch}
@media (min-width:900px){.q{grid-template-columns:1fr;padding:40px 0}}
