:root{
  --navy:#111b28;
  --purple:#f96206;   /* accent: brand orange */
  --orange:#fb8b3d;   /* gradient tail */
  --ink:#111b28;
  --muted:#8a8a8a;
  --bg:#f1f1f1;
  --card:#fff;
  --radius:28px;
  --max:1320px;
  --gutter:clamp(20px,3.6vw,52px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Poppins,system-ui,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
.shell{background:var(--bg);overflow-x:clip}
/* every band is full-bleed; its contents sit in a centred measure */
.bound{width:min(var(--max),100%);margin-inline:auto;padding-inline:var(--gutter)}
.bound-card{width:min(var(--max),100% - var(--gutter)*2);margin-inline:auto}

/* ---------- hero ---------- */
.hero{position:relative;min-height:clamp(600px,80vh,860px);display:flex;flex-direction:column;justify-content:space-between;color:#fff;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0;background:#4a4a52}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1s ease}
.slide img{width:100%;height:100%;object-fit:cover;object-position:center 42%;display:block}
.hero-dim .slide img{filter:saturate(.6) brightness(.82) blur(3px);transform:scale(1.04)}
.slide.is-active{opacity:1}
.hero-dim .hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,14,22,.86) 0%,rgba(9,14,22,.78) 34%,rgba(9,14,22,.94) 100%)}
.hero>*:not(.hero-bg){position:relative;z-index:1}
.hero>nav:not(.hero-bg){z-index:20}   /* menu panel must clear the hero copy */

nav{display:flex;align-items:center;gap:20px;padding-block:26px}
.logo{flex:0 0 auto;display:block}
.logo img{width:auto;height:44px;object-fit:contain}
.nav-items{display:contents}
.menu{display:flex;gap:6px;margin:0 auto;background:rgba(255,255,255,.14);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:6px}
.menu a{font-size:13.5px;padding:9px 17px;border-radius:999px;white-space:nowrap;transition:background .2s}
.menu a:hover,.menu a[aria-current]{background:rgba(255,255,255,.25)}
.socials{display:flex;gap:9px}
.icon{width:36px;height:36px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);transition:background .2s}
.icon:hover{background:rgba(255,255,255,.32)}
.icon svg{width:17px;height:17px;fill:#fff}
.btn-white{background:#fff;color:var(--ink);font-size:13.5px;font-weight:500;padding:11px 22px;border-radius:999px;white-space:nowrap;transition:transform .2s}
.btn-white:hover{transform:translateY(-2px)}
.burger{display:none;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);border-radius:12px;width:44px;height:44px;place-items:center;cursor:pointer;padding:0}
.burger span{display:block;width:18px;height:2px;background:#fff;box-shadow:0 -6px 0 #fff,0 6px 0 #fff}

/* ---------- mega menu ---------- */
nav{position:relative}
.has-mega{position:static}
.has-mega>a,.has-sub>a{display:inline-flex;align-items:center;gap:6px}
.caret{width:9px;height:6px;opacity:.7;transition:transform .2s}
.has-mega:hover .caret,.has-mega:focus-within .caret,
.has-sub:hover .caret,.has-sub:focus-within .caret{transform:rotate(180deg)}

.mega{position:absolute;left:50%;right:auto;width:min(1060px,calc(100vw - 48px));top:calc(100% + 14px);z-index:60;
  background:#fdfbf7;color:var(--ink);border:1px solid #e8e2d8;border-radius:22px;
  box-shadow:0 28px 70px rgba(10,16,26,.28);
  display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(24px,3vw,46px);
  padding:clamp(22px,2.6vw,36px);
  opacity:0;visibility:hidden;pointer-events:none;transform:translateX(-50%) translateY(-8px);
  transition:opacity .2s,transform .2s,visibility .2s}
.mega::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.has-mega:hover .mega,.has-mega:focus-within .mega{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.mega h6,.mega-col h6{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#a09585;
  font-weight:600;margin-bottom:14px}
.mega-list{border-right:1px solid #ece5da;padding-right:clamp(10px,2vw,30px)}
.mega-item{display:flex;gap:13px;align-items:flex-start;padding:9px 10px;border-radius:12px;transition:background .15s}
.mega-item:hover{background:#f3ece1}
.mega-item i{flex:0 0 auto;width:34px;height:34px;border-radius:10px;background:#f1e9dc;color:var(--navy);
  display:grid;place-items:center}
.mega-item i svg{width:17px;height:17px}
.mega-item b{display:block;font-size:14px;font-weight:600;line-height:1.3}
.mega-item em{display:block;font-style:normal;font-size:12px;color:#8a8073;margin-top:2px;line-height:1.45}
.mega-side{display:flex;flex-direction:column;gap:22px;min-width:0}
.mega-feature{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:0;border-radius:16px;overflow:hidden;
  background:linear-gradient(135deg,var(--navy),#2a1a0f);color:#fff;transition:transform .25s}
.mega-feature:hover{transform:translateY(-2px)}
.mf-text{padding:22px}
.mf-kicker{display:block;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--orange);margin-bottom:9px}
.mf-text b{display:block;font-size:19px;font-weight:600;line-height:1.25}
.mf-text p{font-size:12.5px;line-height:1.6;color:rgba(255,255,255,.7);margin-top:9px}
.mf-cta{display:inline-block;font-size:12.5px;font-weight:500;color:#fff;margin-top:14px;
  border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:2px}
.mf-art{position:relative;min-height:160px;min-width:0}
.mf-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mf-art::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,var(--navy) 0%,rgba(17,27,40,.25) 55%,transparent 100%)}
.mega-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.mega-col a{display:block;font-size:13px;color:#5d5548;padding:6px 0;transition:color .15s}
.mega-col a:hover{color:var(--purple)}

@media(max-width:860px){
  .has-mega{width:100%}
  .has-mega>a{justify-content:space-between;width:100%;padding:12px 14px;font-size:15px;border-radius:12px}
  .mega{position:static;left:auto;width:auto;opacity:1;visibility:visible;pointer-events:auto;transform:none;
    grid-template-columns:1fr;gap:16px;background:none;border:0;box-shadow:none;padding:0 0 10px 14px;
    color:#fff}
  .mega::before{display:none}
  .mega h6,.mega-col h6{color:rgba(255,255,255,.45);margin-bottom:8px}
  .mega-list{border-right:0;border-left:2px solid rgba(255,255,255,.16);padding:0 0 0 12px}
  .mega-item{padding:8px 6px}
  .mega-item:hover{background:rgba(255,255,255,.08)}
  .mega-item i{display:none}
  .mega-item b{font-size:13.5px;color:#fff}
  .mega-item em{color:rgba(255,255,255,.55)}
  .mega-feature{display:none}
  .mega-cols{padding-left:12px;border-left:2px solid rgba(255,255,255,.16)}
  .mega-col a{color:rgba(255,255,255,.8);font-size:13px}
}

/* ---------- nav sub-menus ---------- */
.has-sub{position:relative}
.has-sub>a{display:inline-flex;align-items:center;gap:6px}
.has-sub>a svg{width:9px;height:6px;opacity:.7;transition:transform .2s}
.has-sub:hover>a svg,.has-sub:focus-within>a svg{transform:rotate(180deg)}
.sub{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%) translateY(-6px);
  min-width:236px;background:rgba(17,27,40,.97);backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.16);border-radius:16px;padding:8px;
  display:flex;flex-direction:column;gap:2px;z-index:40;
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s,transform .18s,visibility .18s}
.sub::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.has-sub:hover .sub,.has-sub:focus-within .sub{opacity:1;visibility:visible;pointer-events:auto;
  transform:translateX(-50%) translateY(0)}
.sub a{font-size:13px;color:rgba(255,255,255,.82);padding:9px 13px;border-radius:10px;white-space:nowrap;
  text-align:left;transition:background .15s,color .15s}
.sub a:hover{background:rgba(255,255,255,.1);color:#fff}
@media(max-width:860px){
  .has-sub{width:100%}
  .has-sub>a{justify-content:space-between;width:100%;padding:12px 14px;font-size:15px;border-radius:12px}
  .sub{position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;min-width:0;
    background:none;border:0;border-left:2px solid rgba(255,255,255,.16);border-radius:0;
    margin:2px 0 8px 16px;padding:0 0 0 10px;backdrop-filter:none}
  .sub::before{display:none}
  .sub a{font-size:13.5px;padding:8px 10px}
}

.hero-main{width:min(var(--max),100%);margin-inline:auto;padding-inline:var(--gutter);
  display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);
  gap:clamp(28px,4vw,66px);align-items:center;padding-block:clamp(24px,3vw,48px)}
.hero-copy{min-width:0}

.hero-video{margin:0;min-width:0}
.hv-frame{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:16/9;
  background:#0b1220;border:1px solid rgba(255,255,255,.22);
  box-shadow:0 30px 70px rgba(4,8,16,.5)}
.hv-frame video{width:100%;height:100%;object-fit:cover;display:block}
.hv-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:clamp(58px,5.4vw,78px);aspect-ratio:1;border:0;border-radius:50%;cursor:pointer;
  background:var(--purple);color:#fff;display:grid;place-items:center;
  box-shadow:0 10px 30px rgba(249,98,6,.45);transition:transform .25s ease,opacity .25s ease}
.hv-play svg{width:34%;margin-left:8%}
.hv-play:hover{transform:translate(-50%,-50%) scale(1.07)}
.hv-frame.is-playing .hv-play{opacity:0;pointer-events:none}
.hero-video figcaption{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  margin-top:16px;font-size:12.5px;color:rgba(255,255,255,.82)}
.hv-tag{font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.26);
  padding:5px 12px;border-radius:999px}

@media(max-width:900px){
  .hero-main{grid-template-columns:1fr;gap:30px}
  .hero-video{order:2}
}
.pill-call{display:inline-flex;align-items:center;gap:12px;background:#fff;color:var(--ink);font-size:13.5px;font-weight:500;padding:6px 6px 6px 20px;border-radius:999px;margin-bottom:22px;transition:transform .2s}
.pill-call:hover{transform:translateY(-2px)}
.pill-call span{width:28px;height:28px;flex:0 0 auto;border-radius:50%;background:var(--purple);color:#fff;display:grid;place-items:center;font-size:14px}
.kicker{font-size:14px;font-weight:300;opacity:.92;margin-bottom:4px}
h1{font-size:clamp(40px,6.2vw,66px);font-weight:600;letter-spacing:-.02em;line-height:1.08}

.hero-tag{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.26);
  backdrop-filter:blur(10px);padding:8px 18px;border-radius:999px;margin-bottom:20px}
.hero-tag span:first-child{color:#fff}
.hero-tag span:last-child{color:var(--orange)}

.hero-copy h1{font-size:clamp(27px,3.7vw,50px);line-height:1.14;max-width:27ch;letter-spacing:-.025em}
.hero-sub{font-size:clamp(13.5px,1.5vw,16.5px);font-weight:300;line-height:1.7;color:rgba(255,255,255,.88);
  margin-top:18px;max-width:62ch}
.hero-cta{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:26px}
.hero-cta .pill-call{margin-bottom:0}
.hero-link{font-size:13.5px;font-weight:500;color:#fff;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:2px}
.hero-link:hover{border-color:#fff}
@media(max-width:700px){.hero-copy h1{max-width:none}}

.stats{display:grid;grid-template-columns:repeat(4,1fr);padding-bottom:30px;margin-top:26px}
.stat{padding:16px 22px 0 0;border:0;border-top:1px solid rgba(255,255,255,.25);display:flex;gap:12px;align-items:flex-start;
  background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-top-color .4s}
.stat+.stat{padding-left:22px}
.stat.is-active{border-top-color:#fff}
.stat.is-active .num{background:#fff;color:var(--ink);border-color:#fff}
.num{flex:0 0 auto;width:26px;height:26px;border-radius:50%;border:1px solid rgba(255,255,255,.6);display:grid;place-items:center;font-size:10px;margin-top:2px;transition:background .4s,color .4s}
.stat{color:#fff;text-decoration:none;transition:border-color .25s ease}
.stat:hover{border-top-color:#fff}
.stat:hover .num{background:#fff;color:var(--ink);border-color:#fff}
.stat b{display:block;font-size:20px;font-weight:600;line-height:1.2}
.stat small{display:block;font-size:11px;font-weight:300;opacity:.85}

/* ---------- section bits ---------- */
.eyebrow{color:var(--purple);font-size:13px;font-weight:500;margin-bottom:14px;letter-spacing:0}
h2{font-size:clamp(28px,3.4vw,38px);font-weight:600;letter-spacing:-.02em;line-height:1.22}
.btn-grad{display:inline-flex;align-items:center;gap:12px;background:linear-gradient(90deg,var(--purple),var(--orange));color:#fff;font-size:13.5px;font-weight:500;padding:6px 6px 6px 22px;border-radius:999px;transition:transform .2s}
.btn-grad:hover{transform:translateY(-2px)}
.btn-grad span{width:30px;height:30px;flex:0 0 auto;border-radius:50%;background:#fff;color:var(--ink);display:grid;place-items:center}

/* ---------- services (stages) ---------- */
.services{padding-block:clamp(56px,7vw,100px)}
.svc-head{text-align:center;max-width:740px;margin:0 auto}
.svc-head h2{font-size:clamp(28px,3.8vw,46px);max-width:20ch;margin-inline:auto;text-wrap:balance}
.svc-head .lead{font-size:clamp(14px,1.6vw,17px);line-height:1.7;color:#5c5c5c;margin-top:14px}
.tabs{position:sticky;top:14px;z-index:20;transition:opacity .25s,transform .25s;display:flex;justify-content:center;gap:4px;
  margin:34px auto 44px;padding:6px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);
  border:1px solid #e6e6e6;border-radius:999px;width:max-content;max-width:100%;
  box-shadow:0 8px 26px rgba(10,16,26,.08);overflow-x:auto}
.tab{font-size:14px;font-weight:500;color:#6c6c6c;padding:11px 26px;border-radius:999px;
  white-space:nowrap;transition:background .2s,color .2s}
.tab:hover{color:var(--ink)}
.tab.is-active{background:var(--navy);color:#fff}
.stages{display:grid;gap:clamp(48px,6vw,96px)}
.stage{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4vw,62px);align-items:center;
  scroll-margin-top:96px}
.stage:nth-child(even) .tp-art{order:2}
.tp-art{position:relative;border-radius:20px;aspect-ratio:16/10;background:var(--stage-bg,#eef1f4);
  border:1px solid rgba(17,27,40,.06);display:flex;align-items:center;justify-content:center;overflow:hidden}
.stage-icons{position:relative;display:flex;gap:clamp(10px,1.6vw,20px);flex-wrap:wrap;justify-content:center}
.stage-icons span{width:clamp(52px,6.4vw,78px);height:clamp(52px,6.4vw,78px);border-radius:18px;background:#fff;
  color:var(--navy);display:grid;place-items:center;box-shadow:0 6px 20px rgba(10,16,26,.08)}
.stage-icons svg{width:46%;height:46%}
.tp-body h3{font-size:clamp(22px,2.9vw,34px);font-weight:600;letter-spacing:-.02em;line-height:1.2}
.tp-body p{font-size:clamp(13.5px,1.5vw,16px);line-height:1.75;color:#5c5c5c;margin-top:16px;max-width:52ch}
.svc-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.svc-chip{font-size:12.5px;font-weight:500;color:var(--ink);background:#fff;border:1px solid #e2e2e2;
  border-radius:999px;padding:8px 16px;scroll-margin-top:110px;transition:border-color .2s,color .2s}
.svc-chip.is-target{border-color:var(--purple);color:var(--purple);background:#fff6f0}
.tp-cta{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:500;color:var(--ink);
  margin-top:26px;border-bottom:1.5px solid var(--purple);padding-bottom:3px;transition:color .2s}
.tp-cta:hover{color:var(--purple)}
@media(max-width:860px){
  .stage{grid-template-columns:1fr;gap:22px}
  .stage:nth-child(even) .tp-art{order:0}
  .tabs{width:100%;justify-content:flex-start}
  .tab{padding:10px 18px;font-size:13.5px}
}

/* ---------- featured work ---------- */
.work{padding-block:clamp(50px,6vw,90px)}
.work-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:34px}
.work-all{color:var(--purple);border-color:var(--purple)}
.work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,2.4vw,34px) clamp(18px,2vw,28px)}
.proj{display:flex;flex-direction:column;gap:14px}
.proj-art{position:relative;display:block;border-radius:18px;overflow:hidden;
  background:var(--proj-bg,#dce8f0);aspect-ratio:16/9;border:1px solid rgba(17,27,40,.07)}
.proj-art img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.proj-art:hover img{transform:scale(1.03)}
.proj-pill{position:absolute;right:16px;bottom:16px;z-index:2;display:inline-flex;align-items:center;gap:10px;
  background:#fff;color:var(--ink);font-size:13px;font-weight:500;padding:8px 8px 8px 20px;border-radius:999px;
  box-shadow:0 6px 20px rgba(10,16,26,.18);transition:transform .25s}
.proj-art:hover .proj-pill{transform:translateX(-2px)}
.proj-pill i{flex:0 0 auto;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#f0f0f0}
.proj-pill i svg{width:7px;height:11px}
.proj-art.is-pending{cursor:default}
.proj-art.is-pending .proj-pill{opacity:.5}
.proj-meta{display:flex;justify-content:space-between;align-items:baseline;gap:18px;flex-wrap:wrap}
.proj-meta h4{font-size:17px;font-weight:600}
.proj-meta p{font-size:12.5px;color:var(--muted);text-align:right}
@media(max-width:760px){
  .work-grid{grid-template-columns:1fr}
  .proj-meta{flex-direction:column;align-items:flex-start;gap:4px}
  .proj-meta p{text-align:left}
}

/* ---------- video testimonials ---------- */
.testi{display:grid;grid-template-columns:.85fr 2fr;gap:clamp(30px,4vw,64px);
  padding-block:clamp(50px,6vw,90px);align-items:start}
.testi-head h2{font-size:clamp(28px,3.4vw,44px);font-weight:500;line-height:1.18;letter-spacing:-.02em}
.testi-note{font-size:13px;color:var(--muted);margin-top:16px}
.testi-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,2.4vw,38px)}
.tcard{border-left:1px solid #e0e0e0;padding-left:clamp(18px,2vw,28px)}
.tcard:first-child{border-left:0;padding-left:0}
.tcard-thumb{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:16/10;background:#e6e0d6}
.tcard-thumb img{width:100%;height:100%;object-fit:cover}
.play-pill{position:absolute;right:14px;bottom:14px;display:inline-flex;align-items:center;gap:10px;
  background:#fff;color:var(--ink);font-size:12.5px;font-weight:500;padding:7px 7px 7px 16px;border-radius:999px;
  box-shadow:0 6px 18px rgba(10,16,26,.2)}
.play-pill i{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#f0f0f0}
.play-pill i svg{width:9px;height:11px;margin-left:2px}
.tcard h4{font-size:clamp(18px,2vw,24px);font-weight:600;margin-top:20px;line-height:1.25}
.tcard-role{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:8px}
.tcard-quote{font-size:14px;line-height:1.7;color:#4f4f4f;margin-top:14px}
.tcard-quote mark{background:#e9f7a8;color:inherit;padding:0 3px;border-radius:2px}
.tcard-transcript{margin-top:14px;border-top:1px solid #e4e4e4;padding-top:12px}
.tcard-transcript summary{font-size:12px;font-weight:500;color:var(--ink);cursor:pointer;list-style:none}
.tcard-transcript summary::-webkit-details-marker{display:none}
.tcard-transcript summary::after{content:" +";color:var(--purple)}
.tcard-transcript[open] summary::after{content:" \2013";color:var(--purple)}
.tcard-transcript p{font-size:12.5px;line-height:1.75;color:#6a6a6a;margin-top:10px}
.tcard.is-awaiting .tcard-thumb{filter:grayscale(1);opacity:.5}
.tcard.is-awaiting .play-pill{opacity:.55}
.tcard.is-awaiting .tcard-quote{color:var(--muted);font-style:italic}
.tcard-thumb.has-video video{width:100%;height:100%;object-fit:cover;display:block;background:#111b28}
button.play-pill{border:0;cursor:pointer;font:inherit}
.tcard-thumb.is-playing .play-pill{opacity:0;pointer-events:none;transition:opacity .25s}
@media(max-width:1000px){
  .testi{grid-template-columns:1fr}
  .testi-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
  .testi-grid{grid-template-columns:1fr}
  .tcard{border-left:0;padding-left:0;border-top:1px solid #e0e0e0;padding-top:24px}
  .tcard:first-child{border-top:0;padding-top:0}
}

/* ---------- closing band ---------- */
.closer{background:linear-gradient(120deg,var(--navy) 0%,#1d2c40 55%,#3a2410 100%);color:#fff;
  border-radius:var(--radius);margin-bottom:clamp(40px,5vw,70px);overflow:hidden;position:relative}
.closer::after{content:"";position:absolute;right:-90px;bottom:-140px;width:340px;height:340px;border-radius:50%;
  background:radial-gradient(circle,var(--purple) 0%,transparent 68%);opacity:.55}
.closer-in{position:relative;z-index:1;padding:clamp(36px,5vw,68px)}
.closer h2{font-size:clamp(26px,3.6vw,42px);max-width:16ch}
.closer p{font-size:clamp(13.5px,1.5vw,16px);line-height:1.75;color:rgba(255,255,255,.75);margin-top:16px;max-width:58ch}
.closer-art{position:absolute;inset:0 0 0 auto;width:62%;z-index:0;pointer-events:none}
.closer-art img{width:100%;height:100%;object-fit:cover;object-position:left center;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 32%);
  mask-image:linear-gradient(90deg,transparent 0,#000 32%)}
.closer-in{max-width:min(620px,56%)}
.closer-cta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:28px}
@media(max-width:860px){
  .closer-art{display:none}
  .closer-in{max-width:none}
}
.btn-ghost{font-size:13.5px;color:rgba(255,255,255,.85);border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:2px}
.btn-ghost:hover{color:#fff;border-color:#fff}

/* ---------- footer ---------- */
.site-footer{background:var(--navy);color:#fff;margin-top:clamp(40px,5vw,70px)}
.foot{display:grid;grid-template-columns:1.1fr 1fr 1.2fr;gap:clamp(28px,4vw,56px);padding-block:clamp(48px,5vw,70px);align-items:start}
.foot h5{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:14px}
.foot-brand img{width:210px;height:auto;object-fit:contain}
.foot-brand p{font-size:13px;line-height:1.7;color:rgba(255,255,255,.7);margin-top:16px;max-width:290px}
.foot-links{display:grid;gap:9px}
.foot-links a{font-size:13.5px;color:rgba(255,255,255,.85)}
.foot-links a:hover{color:#fff;text-decoration:underline}
.foot-map iframe{width:100%;height:210px;border:0;border-radius:16px;display:block;filter:grayscale(.3)}
.foot-map .where{font-size:13.5px;color:rgba(255,255,255,.85);margin-top:12px}
.foot-map .where b{display:block;font-weight:600;color:#fff}
.foot-bottom{border-top:1px solid rgba(255,255,255,.14);padding-block:20px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  font-size:12.5px;color:rgba(255,255,255,.55)}
.foot-bottom a{color:rgba(255,255,255,.75)}
@media(max-width:900px){.foot{grid-template-columns:1fr}}

/* ---------- impact page ---------- */
.aside-mail{margin:0}
.timeline-wrap{padding-block:clamp(50px,6vw,88px)}
.timeline-wrap h2,.gallery-wrap h2{margin-bottom:28px}
.timeline{list-style:none;display:grid;gap:0;counter-reset:t}
.timeline li{position:relative;padding:22px 0 22px 34px;border-top:1px solid #dcdcdc}
.timeline li:last-child{border-bottom:1px solid #dcdcdc}
.timeline li::before{content:"";position:absolute;left:0;top:30px;width:11px;height:11px;border-radius:50%;
  background:var(--purple)}
.timeline .when{display:block;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.timeline h4{font-size:18px;font-weight:600}
.timeline p{font-size:13.5px;line-height:1.7;color:#6c6c6c;margin-top:6px;max-width:64ch}
.gallery-wrap{padding-bottom:clamp(50px,6vw,88px)}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.shot{margin:0}
.shot img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:16px;display:block;
  transition:transform .5s ease}
.shot:hover img{transform:scale(1.03)}
.shot figcaption{font-size:12.5px;color:#6c6c6c;margin-top:9px}
.impact-cta{padding-bottom:clamp(50px,6vw,88px)}
.cta-card{background:var(--navy);color:#fff;border-radius:22px;padding:clamp(28px,4vw,48px);
  display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.cta-card h3{font-size:clamp(20px,2.6vw,28px);font-weight:600;max-width:22ch}
.cta-card p{font-size:14px;line-height:1.7;color:rgba(255,255,255,.72);max-width:56ch}
.cta-card .btn-grad{margin-top:8px}

/* ---------- booking page ---------- */
.page-head{background:var(--navy);color:#fff;padding-block:26px}
.page-head nav{padding-block:0}
.page-hero{background:var(--navy);color:#fff;padding-block:clamp(44px,6vw,86px)}
.page-hero .eyebrow{color:var(--purple)}
.page-hero h1{font-size:clamp(32px,4.6vw,54px);max-width:16ch}
.page-hero p{font-size:clamp(14px,1.6vw,17px);line-height:1.75;color:rgba(255,255,255,.75);margin-top:18px;max-width:60ch}
.booking{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(32px,4vw,64px);padding-block:clamp(48px,6vw,84px);align-items:start}
.form-card{background:var(--card);border-radius:var(--radius);padding:clamp(26px,3vw,42px)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:block;margin-bottom:16px}
.field span{display:block;font-size:12.5px;font-weight:500;margin-bottom:7px}
.field span i{font-style:normal;color:var(--purple)}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:14px;color:var(--ink);background:#f6f6f6;
  border:1px solid #e2e2e2;border-radius:12px;padding:12px 14px;transition:border-color .2s,background .2s}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--purple);background:#fff}
.field input:invalid:not(:placeholder-shown){border-color:#d9534f}
.fieldset-note{font-size:12.5px;line-height:1.6;color:var(--muted);background:#f6f6f6;border-radius:10px;padding:11px 14px;margin-bottom:16px}
.form-note{font-size:12px;line-height:1.6;color:var(--muted);margin-top:14px}
.submit{font:inherit;font-size:14px;font-weight:500;color:#fff;background:linear-gradient(90deg,var(--purple),var(--orange));
  border:0;border-radius:999px;padding:14px 34px;cursor:pointer;transition:transform .2s}
.submit:hover{transform:translateY(-2px)}
.aside h3{font-size:17px;font-weight:600;margin-bottom:12px}
.aside .card{background:var(--card);border-radius:20px;padding:26px;margin-bottom:16px}
.aside ul{list-style:none;display:grid;gap:10px}
.aside li{font-size:13.5px;line-height:1.6;color:#5c5c5c;padding-left:20px;position:relative}
.aside li::before{content:"";position:absolute;left:0;top:7px;width:8px;height:8px;border-radius:50%;background:var(--purple)}
.aside .mail{font-size:14px;font-weight:500;color:var(--purple);word-break:break-all}
@media(max-width:900px){.booking{grid-template-columns:1fr}.field-row{grid-template-columns:1fr}}

/* ---------- case study ---------- */
.cs-hero{background:#082338;color:#fff;padding-block:clamp(46px,6vw,86px)}
.cs-hero .eyebrow{color:#29B66A}
.cs-hero h1{font-size:clamp(36px,5.6vw,68px);font-weight:600;letter-spacing:-.03em}
.cs-tag{font-size:clamp(15px,1.9vw,20px);color:rgba(255,255,255,.72);margin-top:14px}
.cs-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px;margin-top:38px;
  border-top:1px solid rgba(255,255,255,.18);padding-top:22px}
.cs-facts dt{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.cs-facts dd{font-size:14px;margin-top:6px}
.cs-block{padding-block:clamp(44px,5.5vw,80px)}
.cs-block h2{margin-bottom:22px}
.cs-lead{font-size:clamp(13.5px,1.5vw,16px);line-height:1.75;color:#5c5c5c;margin-bottom:26px;max-width:62ch}
.cs-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,60px);align-items:center}
.cs-split p{font-size:clamp(13.5px,1.5vw,15.5px);line-height:1.8;color:#5c5c5c;margin-top:16px}
.cs-shot,.cs-wide{margin:0}
.cs-shot img,.cs-wide img{width:100%;height:auto;border-radius:16px;display:block;border:1px solid #e4e4e4}
.cs-shot figcaption{font-size:12.5px;color:var(--muted);margin-top:10px}
.cs-pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,26px)}
.cs-reasons{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:30px}
.cs-reasons div{border-top:2px solid #082338;padding-top:14px}
.cs-reasons b{display:block;font-size:15px;font-weight:600}
.cs-reasons span{display:block;font-size:13px;line-height:1.65;color:#6c6c6c;margin-top:6px}
.swatches{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px}
.sw span{display:block;height:110px;border-radius:14px;margin-bottom:12px}
.sw b{display:block;font-size:14px;font-weight:600}
.sw code{display:block;font-size:12.5px;color:#6c6c6c;margin-top:3px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.sw em{display:block;font-style:normal;font-size:11.5px;color:var(--muted);margin-top:2px}
@media(max-width:820px){.cs-split,.cs-pair{grid-template-columns:1fr}}
.t-mono{display:grid;place-items:center;width:100%;aspect-ratio:4/5;border-radius:16px;
  background:linear-gradient(140deg,var(--navy),#2b3d55);color:#fff;font-size:44px;font-weight:600;letter-spacing:.02em}

/* ---------- responsive: nav + hero (restored) ---------- */
@media(max-width:860px){
  nav{flex-wrap:nowrap;justify-content:space-between;gap:12px;position:relative}
  .burger{display:grid}
  .nav-items{display:none;position:absolute;top:calc(100% + 10px);left:0;right:0;flex-direction:column;gap:12px;
    background:rgba(17,27,40,.97);border:1px solid rgba(255,255,255,.16);border-radius:20px;padding:14px;z-index:30}
  .nav-items.is-open{display:flex}
  .menu{flex-direction:column;width:100%;margin:0;gap:2px;background:none;border:0;padding:0;backdrop-filter:none}
  .menu>a{padding:12px 14px;font-size:15px;border-radius:12px}
  .socials{justify-content:center}
  .btn-white{text-align:center}
}
@media(max-width:700px){
  .logo img{height:34px}
  .hero{min-height:clamp(520px,76vh,700px)}
  .kicker{font-size:12.5px}
  .pill-call{font-size:12.5px}
  .stats{grid-template-columns:repeat(2,1fr);gap:16px 0}
  .stat+.stat{padding-left:0}
  .stat:nth-child(even){padding-left:16px}
  .stat b{font-size:16px}
  .stat small{font-size:10px}
  .tile-row{grid-template-columns:1fr}
}

/* ---------- who we build for (restored) ---------- */
.offer{background:var(--card);border-radius:var(--radius);padding:clamp(32px,4vw,60px)}
.offer-top{display:grid;grid-template-columns:1fr 1.15fr;gap:48px;align-items:center}
.offer-top p{font-size:14px;line-height:1.8;color:#9a9a9a;margin-top:18px}
.offer-top p b{color:var(--ink);font-weight:600}
.tile{position:relative;border-radius:16px;overflow:hidden;background:#ccc}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.72))}
.tile .cap{position:absolute;left:18px;right:18px;bottom:16px;z-index:1;color:#fff}
.tile .cap h4{font-size:15px;font-weight:500}
.tile .cap p{font-size:11px;font-weight:300;opacity:.85;margin-top:3px;line-height:1.45;color:#fff}
.tile-lg{aspect-ratio:16/11}
.tile-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}
.tile-sm{aspect-ratio:16/9}
.tile-sm .cap h4{font-size:13px}
.tile-sm .cap p{font-size:10.5px}
@media(max-width:900px){.offer-top{grid-template-columns:1fr}}
@media(max-width:700px){.tile-row{grid-template-columns:1fr}}

/* ---------- the movement (restored) ---------- */
.movement{padding-block:clamp(60px,7vw,100px)}
.movement .lead{font-size:clamp(15px,1.7vw,18px);line-height:1.7;color:#5c5c5c;margin-top:16px;max-width:660px}
.movement .sub{font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:clamp(40px,5vw,64px) 0 20px}
.sub-note{font-size:13.5px;color:#6c6c6c;margin:-8px 0 20px}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}
.pillar{background:var(--card);border-radius:20px;padding:28px}
.pillar i{font-style:normal;font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--purple)}
.pillar h4{font-size:17px;font-weight:600;margin:10px 0 8px;line-height:1.3}
.pillar p{font-size:13px;line-height:1.7;color:#6c6c6c}
.aim{font-size:14px;color:#5c5c5c;margin-top:20px}
.aim b{color:var(--ink);font-weight:600}
.mindsets{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 34px}
.mindset{border-top:1px solid #dcdcdc;padding-top:16px}
.mindset h4{font-size:15px;font-weight:600;margin-bottom:6px}
.mindset p{font-size:13px;line-height:1.65;color:#6c6c6c}
.versions{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.version{background:var(--navy);color:#fff;border-radius:22px;padding:30px}
.version .tag{display:inline-block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);padding:6px 13px;border-radius:999px}
.version h4{font-size:20px;font-weight:600;margin:16px 0 6px}
.version .why{font-size:13px;color:rgba(255,255,255,.65);margin-bottom:18px}
.version ul{list-style:none;display:grid;gap:9px}
.version li{font-size:13.5px;padding-left:22px;position:relative;color:rgba(255,255,255,.9)}
.version li::before{content:"";position:absolute;left:0;top:6px;width:9px;height:9px;border-radius:50%;background:var(--purple)}
.thesis{margin-top:clamp(40px,5vw,64px);border-left:3px solid var(--purple);padding-left:24px;
  font-size:clamp(16px,2vw,21px);line-height:1.6;font-weight:500;max-width:820px}
@media(max-width:900px){.pillars{grid-template-columns:1fr}.mindsets{grid-template-columns:1fr;gap:14px}.versions{grid-template-columns:1fr}}

/* ---------- events (restored) ---------- */
.events{padding-block:clamp(60px,7vw,100px)}
.events h2{margin-bottom:26px}
.event{display:grid;grid-template-columns:1.15fr .85fr;background:var(--navy);color:#fff;
  border-radius:26px;overflow:hidden;position:relative;isolation:isolate}
.event::after{content:"";position:absolute;left:-120px;top:-120px;width:380px;height:380px;border-radius:50%;
  background:radial-gradient(circle,var(--purple) 0%,transparent 70%);opacity:.32;z-index:-1}
.ev-body{padding:clamp(28px,3.4vw,52px);display:flex;flex-direction:column}
.ev-pills{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.pill-live,.pill-when{font-size:11.5px;font-weight:500;letter-spacing:.04em;padding:7px 14px;border-radius:999px}
.pill-live{background:var(--purple);color:#fff;text-transform:uppercase}
.pill-when{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:#fff}
.event h3{font-size:clamp(24px,3.2vw,38px);font-weight:600;letter-spacing:-.02em;line-height:1.15}
.ev-blurb{font-size:clamp(13px,1.45vw,15px);line-height:1.75;color:rgba(255,255,255,.72);margin-top:14px;max-width:52ch}
.where-line{font-size:12.5px;font-weight:500;color:#fff;margin-top:12px}
.event .closes{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5);margin:26px 0 10px}
.countdown{display:flex;gap:10px;flex-wrap:wrap}
.countdown.is-over{display:none}
.unit{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#fff;border-radius:14px;
  padding:12px 0;width:72px;text-align:center}
.unit b{display:block;font-size:26px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}
.unit:last-child b{color:#f5c518}
.unit span{font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;opacity:.55}
.ev-cta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:26px}
.ticket{display:inline-block;font-size:14px;font-weight:600;color:#fff;
  background:linear-gradient(90deg,var(--purple),var(--orange));border:0;border-radius:999px;
  padding:14px 30px;white-space:nowrap;transition:transform .2s}
.ticket:hover{transform:translateY(-2px)}
.ticket.is-closed{pointer-events:none;opacity:.45;background:rgba(255,255,255,.14)}
.ev-note{font-size:12.5px;color:rgba(255,255,255,.55);max-width:26ch;line-height:1.5}
.ev-proof{list-style:none;display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:auto;padding-top:30px}
.ev-proof li{font-size:11.5px;color:rgba(255,255,255,.6);display:flex;align-items:baseline;gap:6px}
.ev-proof b{font-size:17px;font-weight:600;color:#fff}
.ev-art{position:relative;min-height:260px}
.ev-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:left center}
.ev-art::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,var(--navy) 0%,rgba(17,27,40,.55) 22%,transparent 60%)}
@media(max-width:860px){
  .event{grid-template-columns:1fr}
  .ev-art{min-height:210px;order:-1}
  .ev-art::before{background:linear-gradient(0deg,var(--navy) 0%,transparent 70%)}
  .ev-art img{object-position:center}
}

/* ---------- team page (restored) ---------- */
.btn-plain{display:inline-flex;align-items:center;font-size:13.5px;font-weight:500;color:var(--ink);
  border-bottom:1.5px solid var(--purple);padding-bottom:2px;margin-left:20px}
.btn-plain:hover{color:var(--purple)}
.team-page{background:#f7f3ec}
.tam{container-type:inline-size;padding-block:clamp(48px,6vw,88px)}
.tam-row{display:flex;align-items:center}
.tam-row+.tam-row{margin-top:2.8cqw}
.tam-row:last-child{margin-top:-1.4cqw;align-items:flex-end}
.tam-tile{position:relative;display:block;width:var(--w);margin-left:var(--ml,0);
  align-self:center;border-radius:9px;overflow:hidden;color:inherit;text-decoration:none}
.tam-tile img{width:100%;height:auto;display:block;
  transition:transform .55s cubic-bezier(.22,1,.36,1)}
.tam-tile:hover img,.tam-tile:focus-visible img{transform:scale(1.05)}
.tam-tile:focus-visible{outline:3px solid var(--purple);outline-offset:3px}
.tam-hot{position:absolute;left:0;right:0;bottom:0;padding:38% 8% 7%;pointer-events:none;
  background:linear-gradient(transparent,rgba(12,35,66,.93));color:#fff;
  opacity:0;transition:opacity .34s ease}
.tam-tile:hover .tam-hot,.tam-tile:focus-visible .tam-hot{opacity:1}
.tam-cue{margin-top:clamp(18px,2cqw,28px);font-size:13px;color:var(--muted)}
.tam-cue a{color:var(--ink);border-bottom:1.5px solid var(--purple);padding-bottom:1px}
.tam-cue a:hover{color:var(--purple)}
.tam-hot b{display:block;font-weight:600;letter-spacing:-.01em;line-height:1.2;
  font-size:clamp(10px,1.25cqw,15px)}
.tam-hot i{display:block;font-style:normal;margin-top:3px;opacity:.76;line-height:1.25;
  font-size:clamp(8px,.95cqw,12px)}
.tam-word{width:var(--w,auto);margin-left:var(--ml,0);flex:1 1 auto;white-space:nowrap;
  font-size:15.8cqw;font-weight:700;letter-spacing:-.045em;line-height:.82;color:#0c2342}
.tam-word[style*="--w"]{flex:0 0 auto}

.roster{padding-bottom:clamp(54px,6vw,92px);display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:start}
.roster-list{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px 24px}
.roster-list li{border-top:1px solid #e2dbcd;padding-top:12px}
.roster-list b{display:block;font-size:15px;font-weight:600;color:var(--ink)}
.roster-list span{display:block;font-size:12.5px;color:#8a7f6b;margin-top:3px}
.roster-note p{font-size:clamp(13px,1.4vw,15px);line-height:1.75;color:#5c5c5c;margin:0 0 18px}

@media(max-width:760px){
  .roster{grid-template-columns:1fr}
}

/* ---------- video in service stages ---------- */
.tp-art.has-video{padding:0}
.tp-art video{width:100%;height:100%;display:block;border-radius:inherit}
.tp-art video.is-cover{object-fit:cover}
.tp-art video.is-contain{object-fit:contain;padding:clamp(10px,1.6vw,22px)}
.tp-media video{width:100%;height:100%;object-fit:cover;display:block}
@media(prefers-reduced-motion:reduce){
  .tp-art video{display:none}
  .tp-art.has-video{background-image:var(--poster);background-size:cover;background-position:center}
}

/* ---------- swappable stage media ---------- */
.tp-art.has-media{position:relative}
.tp-media{position:absolute;inset:0;display:none;place-items:center;border-radius:inherit;overflow:hidden}
.tp-media.is-active{display:grid}
.tp-media svg[data-lottie-svg]{width:100%;height:100%}
.tp-media > div{width:100%;height:100%}
.svc-chip.is-switch{font:inherit;cursor:pointer}
.svc-chip.is-switch[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}

/* ---------- about ---------- */
.about{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(28px,4vw,72px);padding-block:clamp(60px,7vw,110px);align-items:start}
.about-intro{align-self:start}
.about-hero{padding-block:clamp(60px,7vw,110px)}
.about-hero .about-intro{max-width:620px}
.about-hero .tam{padding-block:0;margin-top:clamp(30px,3.6vw,54px)}
.about-visual{position:relative}
.about-visual::before{content:"";position:absolute;left:-14px;top:-14px;width:58%;height:42%;
  border-radius:22px;background:linear-gradient(135deg,var(--purple),var(--orange));opacity:.14}
.portrait{position:relative;border-radius:22px;overflow:hidden;aspect-ratio:3/4;background:#141414}
.portrait img{width:100%;height:100%;object-fit:cover;display:block}
.inset{position:absolute;right:-16px;bottom:64px;width:44%;aspect-ratio:4/3;border-radius:14px;
  overflow:hidden;border:5px solid var(--bg);box-shadow:0 14px 34px rgba(10,16,26,.18);background:#ddd}
.inset img{width:100%;height:100%;object-fit:cover;display:block}
.signature{font-family:Caveat,cursive;font-size:clamp(26px,2.6vw,34px);text-align:center;
  margin:26px auto 0;padding-bottom:8px;border-bottom:1.5px solid var(--ink);width:72%;transform:rotate(-3deg)}
.sig-role{text-align:center;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);margin-top:16px}

.about h2{font-size:clamp(28px,3.6vw,44px)}
.about-lead{font-size:clamp(15px,1.8vw,19px);line-height:1.65;color:var(--ink);margin-top:0;max-width:46ch}
.about-body>p:not(.about-lead):not(.eyebrow){font-size:clamp(13.5px,1.5vw,15.5px);line-height:1.8;
  color:#5c5c5c;margin-top:16px;max-width:52ch}
.about-stats{display:grid;grid-template-columns:repeat(3,auto);gap:clamp(20px,3vw,48px);
  justify-content:start;margin-top:clamp(28px,3.5vw,42px);padding-top:26px;border-top:1px solid #dfdfdf}
.about-stats dt{font-size:clamp(26px,3.2vw,38px);font-weight:700;letter-spacing:-.03em;line-height:1;color:var(--ink)}
.about-stats dt span{color:var(--purple)}
.about-stats dd{font-size:11.5px;color:var(--muted);margin-top:7px;line-height:1.35;max-width:14ch}
@media(max-width:900px){
  .about{grid-template-columns:1fr;gap:26px}
  .about-visual{max-width:420px}
  .inset{right:-10px;width:40%}
  .about-stats{grid-template-columns:repeat(3,1fr);gap:18px}
}
@media(max-width:560px){
  .about-stats{grid-template-columns:1fr 1fr}
  .inset{display:none}
}

/* ---------- trusted-by grid ---------- */
.brands{padding-block:clamp(50px,6vw,88px);container-type:inline-size}
.brand-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1.05cqw}
.brand-head{grid-column:span 2;display:flex;align-items:center;padding:2cqw 1.7cqw}
.brand-head h2{font-size:max(11px,2.42cqw);font-weight:500;line-height:1.25;letter-spacing:-.02em;max-width:16ch}
.brand-cell{background:var(--card);border:1px solid #e9e9e9;border-radius:1.5cqw;display:grid;place-items:center;
  aspect-ratio:4/3;padding:1.85cqw;transition:border-color .25s,transform .25s,box-shadow .25s}
.brand-cell:hover{border-color:#d6d6d6;transform:translateY(-2px);box-shadow:0 10px 26px rgba(10,16,26,.07)}
.brand-cell img{width:100%;height:100%;object-fit:contain;max-height:4.45cqw}
/* still used by the original About block on /nextgen */
.thumb{position:absolute;right:0;bottom:56px;width:120px;aspect-ratio:3/3.6;border-radius:14px;overflow:hidden;background:#ddd}

/* ---------- the NextGen arm ---------- */
.arms{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,4.5vw,72px);
  padding-block:clamp(56px,7vw,100px);align-items:center}
.arm-visual{border-radius:22px;overflow:hidden;aspect-ratio:16/11;background:#dfe3e8;
  box-shadow:0 18px 44px rgba(10,16,26,.12)}
.arm-visual img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s ease}
.arms:hover .arm-visual img{transform:scale(1.03)}
.arm-body h2{font-size:clamp(26px,3.4vw,42px)}
.arm-body>p{font-size:clamp(14px,1.6vw,17px);line-height:1.75;color:#5c5c5c;margin-top:18px;max-width:50ch}
.arm-body>p b{color:var(--ink);font-weight:600}
.arm-note{font-size:clamp(13px,1.45vw,15px)!important;color:#7a7a7a!important}
.arm-body .btn-grad{margin-top:28px}
@media(max-width:860px){.arms{grid-template-columns:1fr;gap:28px}}

/* ---------- twelve reasons ---------- */
.reasons{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(32px,4.5vw,76px);
  padding-block:clamp(56px,7vw,100px);align-items:start}
.reasons-head{position:sticky;top:30px}
.reasons-head h2{font-size:clamp(26px,3.4vw,42px);max-width:14ch}
.reasons-note{font-size:clamp(13.5px,1.5vw,15.5px);line-height:1.75;color:#5c5c5c;margin-top:18px;max-width:38ch}
.reasons-head .btn-grad{margin-top:26px}
.reasons-list{border-top:1px solid #dcdcdc}
.reason{border-bottom:1px solid #dcdcdc}
.reason summary{display:flex;gap:16px;align-items:flex-start;padding:18px 34px 18px 0;cursor:pointer;
  position:relative;list-style:none;transition:color .2s}
.reason summary::-webkit-details-marker{display:none}
.reason summary:hover{color:var(--purple)}
.reason summary i{font-style:normal;font-size:11px;font-weight:600;color:var(--purple);
  padding-top:4px;flex:0 0 auto;letter-spacing:.04em}
.reason summary span{font-size:clamp(14.5px,1.7vw,17.5px);font-weight:500;line-height:1.45}
.reason summary::after{content:"";position:absolute;right:4px;top:26px;width:11px;height:11px;
  border-right:1.8px solid #9a9a9a;border-bottom:1.8px solid #9a9a9a;transform:rotate(45deg);
  transition:transform .25s,border-color .2s}
.reason[open] summary::after{transform:rotate(-135deg);border-color:var(--purple)}
.reason p{font-size:14px;line-height:1.75;color:#5c5c5c;padding:0 40px 20px 39px;max-width:64ch;
  animation:reasonIn .25s ease-out}
@keyframes reasonIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(max-width:900px){
  .reasons{grid-template-columns:1fr;gap:30px}
  .reasons-head{position:static}
  .reason p{padding-left:0;padding-right:0}
}

/* ---------- stage bands: full-bleed colour per stage ---------- */
.stages{gap:0}
.stage{position:relative;padding-block:clamp(46px,6vw,84px);scroll-margin-top:96px}
.stage::before{content:"";position:absolute;inset:0;left:50%;transform:translateX(-50%);
  width:100vw;background:var(--band,transparent);z-index:0}
.stage>*{position:relative;z-index:1}
.stage.on-dark .tp-body h3{color:#fff}
.stage.on-dark .tp-body p{color:rgba(255,255,255,.7)}
.stage.on-dark .svc-chip{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22);color:#fff}
.stage.on-dark .tp-cta{color:#fff;border-bottom-color:var(--orange)}
.stage.on-dark .tp-cta:hover{color:var(--orange)}
.stage.on-dark .lcard h4{color:#fff}
.stage.on-dark .lcard p{color:rgba(255,255,255,.55)}
.stage.on-dark .lcard-art{border-color:rgba(255,255,255,.12)}
/* navy reads on orange; white would fail contrast at body size */
.stage.on-orange .tp-body h3,.stage.on-orange .tp-body p,.stage.on-orange .tp-cta{color:#fff}
.stage.on-orange .tp-body p{opacity:1}
.stage.on-orange .svc-chip{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.4);color:#fff}
.stage.on-orange .tp-cta{border-bottom-color:#fff}
.stage.on-orange .tp-cta:hover{color:#fff;opacity:.85}
.stage.on-orange .tp-art{border-color:rgba(17,27,40,.12)}

/* call CTA in the nav */
.btn-call{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.btn-call svg{width:14px;height:14px;flex:0 0 auto}

/* small screens: four equal columns so the bar can never clip or scroll */
@media(max-width:860px){
  .tabs{display:grid;grid-template-columns:repeat(4,1fr);width:100%;max-width:440px;
    margin-inline:auto;gap:2px;padding:5px;overflow:visible}
  .tab{padding:10px 4px;font-size:13px;text-align:center}
}
@media(max-width:380px){
  .tab{font-size:12px;padding:9px 2px}
}

/* ---------- automate carousel ---------- */
.stage.has-carousel{display:block}
.carousel{position:relative}
.cpane{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4vw,62px);align-items:center}
.cpane:not(.is-active){display:none}
.cpane .tp-art{display:block;overflow:hidden}
.cpane .tp-art.is-glyph{display:grid;place-items:center}
.cbar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-top:clamp(26px,3vw,38px);padding-top:20px;border-top:1px solid rgba(255,255,255,.28)}
.cdots{display:flex;gap:8px;flex-wrap:wrap}
.cdot{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:12.5px;font-weight:500;
  color:rgba(255,255,255,.72);background:transparent;border:1px solid rgba(255,255,255,.34);
  border-radius:999px;padding:8px 16px;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.cdot span{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.5);transition:background .2s}
.cdot:hover{color:#fff;border-color:rgba(255,255,255,.6)}
.cdot.is-on{background:#fff;color:var(--navy);border-color:#fff}
.cdot.is-on span{background:var(--purple)}
.carrows{display:flex;gap:8px}
.carrow{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.34);color:#fff;
  transition:background .2s,transform .2s}
.carrow:hover{background:#fff;color:var(--navy);transform:translateY(-1px)}
.carrow svg{width:12px;height:12px}
.stage.on-orange .cpane .lcard-glyph{width:clamp(64px,7vw,88px);height:clamp(64px,7vw,88px)}
@media(max-width:860px){
  .cpane{grid-template-columns:1fr;gap:22px}
  .cbar{justify-content:center}
}

/* ---------- launch: horizontal accordion ---------- */
.stage.is-wide{display:block}
.stage.is-wide .tp-body{max-width:none}
.stage.is-wide .tp-body p{max-width:64ch}
.lcards{display:flex;gap:clamp(10px,1.2vw,16px);margin-top:clamp(26px,3vw,40px)}
.lcard{position:relative;flex:1 1 0;min-width:0;border-radius:20px;overflow:hidden;
  aspect-ratio:3/4;background:var(--card-bg,#eef1f4);border:1px solid rgba(255,255,255,.1);
  cursor:pointer;outline:none;
  transition:flex-grow .62s cubic-bezier(.22,1,.36,1),box-shadow .4s}
/* everything shrinks while one is hovered, so the row keeps its width */
.lcards:hover .lcard,.lcards:focus-within .lcard{flex-grow:.72}
.lcard:hover,.lcard:focus-visible,.lcard.is-open{flex-grow:2.4;box-shadow:0 20px 50px rgba(0,0,0,.28)}
.lcard-art{position:absolute;inset:0}
.lcard-art video,.lcard-art .lottie{width:100%;height:100%;display:block}
.lcard-art video{object-fit:cover;transition:transform .7s cubic-bezier(.22,1,.36,1)}
.lcard:hover .lcard-art video,.lcard.is-open .lcard-art video{transform:scale(1.05)}
/* portrait clip in a landscape card: hold the top so the dashboard stays in frame */
.lcard-art.is-focus-top video{object-position:center top}
.lcard-art .lottie{overflow:hidden}
.lcard-art .lottie svg{width:100%!important;height:100%!important;
  /* slice already fills; this nudge pushes the export watermark off the right edge */
  transform:scale(1.08) translateX(-3%);transform-origin:center}
.lcard-scrim{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,16,26,.28) 0%,transparent 34%,transparent 46%,rgba(10,16,26,.86) 100%)}
.lcard-arrow{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;
  display:grid;place-items:center;background:rgba(255,255,255,.92);color:var(--navy);
  opacity:0;transform:translate(-6px,6px);pointer-events:none;
  transition:opacity .35s ease .12s,transform .35s cubic-bezier(.22,1,.36,1) .12s}
.lcard-arrow svg{width:13px;height:13px}
.lcard:hover .lcard-arrow,.lcard:focus-visible .lcard-arrow,.lcard.is-open .lcard-arrow{opacity:1;transform:none}
.lcard-body{position:absolute;left:0;right:0;bottom:0;padding:clamp(14px,1.6vw,22px);color:#fff}
.lcard-body h4{font-size:clamp(14px,1.5vw,17px);font-weight:600;line-height:1.25;
  transition:transform .5s cubic-bezier(.22,1,.36,1)}
.lcard-body p{font-size:12.5px;line-height:1.55;color:rgba(255,255,255,.82);margin-top:7px;
  opacity:0;transform:translateY(8px);max-width:34ch;
  transition:opacity .4s ease .16s,transform .45s cubic-bezier(.22,1,.36,1) .16s}
.lcard:hover .lcard-body p,.lcard:focus-visible .lcard-body p,.lcard.is-open .lcard-body p{opacity:1;transform:none}
.stage.is-wide .tp-cta{margin-top:clamp(26px,3vw,38px)}

@media(max-width:860px){
  .lcards{flex-direction:column;gap:14px}
  .lcard{aspect-ratio:16/10;flex:none}
  .lcards:hover .lcard,.lcards:focus-within .lcard,.lcard:hover,.lcard.is-open{flex-grow:0}
  .lcard-body p{opacity:1;transform:none}
  .lcard-arrow{opacity:1;transform:none}
}

/* corporate-website mock — real type, scales with the card */
.lcard-art{container-type:inline-size}
.corp{position:absolute;inset:0;background:#fff;color:var(--navy);
  padding:7cqw 6cqw 8cqw;display:flex;flex-direction:column;gap:4.5cqw;overflow:hidden}
.corp-bar{display:flex;align-items:baseline;justify-content:space-between;gap:3cqw;
  padding-bottom:3cqw;border-bottom:1px solid #e8ebef}
.corp-bar b{font-size:4cqw;font-weight:700;letter-spacing:.14em}
.corp-bar nav{display:flex;gap:2.6cqw}
.corp-bar nav span{font-size:2.5cqw;color:#8a93a0;white-space:nowrap}
.corp-hero{font-size:5.4cqw;font-weight:600;line-height:1.24;letter-spacing:-.02em;max-width:22ch}
.corp-stats{display:flex;gap:4cqw}
.corp-stats div{flex:1;min-width:0}
.corp-stats b{display:block;font-size:8.4cqw;font-weight:700;line-height:1;letter-spacing:-.03em;
  font-variant-numeric:tabular-nums}
.corp-stats span{display:block;font-size:2.4cqw;color:#8a93a0;margin-top:1.4cqw;white-space:nowrap}
.corp-report{margin-top:auto;display:flex;align-items:center;gap:2.8cqw;
  padding:3cqw;border-radius:2.4cqw;background:#f5f7f9;border:1px solid #e6eaef}
.corp-pdf{flex:0 0 auto;font-size:2.2cqw;font-weight:700;letter-spacing:.06em;color:#fff;
  background:var(--purple);border-radius:1.2cqw;padding:1.4cqw 1.8cqw}
.corp-rt{flex:1;min-width:0;display:flex;flex-direction:column;gap:.8cqw}
.corp-rt i{font-style:normal;font-size:2.9cqw;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.corp-rt em{font-style:normal;font-size:2.3cqw;color:#8a93a0}
.corp-dl{flex:0 0 auto;display:grid;place-items:center;width:6cqw;height:6cqw;border-radius:50%;
  background:var(--navy);color:#fff}
.corp-dl svg{width:2.8cqw;height:2.8cqw}
.corp-board{display:flex;align-items:center;gap:1.6cqw}
.corp-board span{font-size:2.3cqw;color:#8a93a0;margin-right:.8cqw}
.corp-board i{width:5.2cqw;height:5.2cqw;border-radius:50%;background:#dde2e8;
  border:.5cqw solid #fff;margin-left:-1.6cqw}
.corp-board i:first-of-type{margin-left:0}

/* ---------- insights ---------- */
.posts{display:grid;gap:clamp(20px,2.4vw,32px);padding-block:clamp(48px,6vw,84px)}
.post{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(20px,2.6vw,40px);align-items:center;
  background:var(--card);border:1px solid #e9e9e9;border-radius:22px;overflow:hidden;
  transition:border-color .25s,transform .25s,box-shadow .25s}
.post:hover{border-color:#d8d8d8;transform:translateY(-2px);box-shadow:0 14px 34px rgba(10,16,26,.07)}
.post-art{display:block;aspect-ratio:16/10;overflow:hidden;background:#eef1f4}
.post-art img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.post:hover .post-art img{transform:scale(1.03)}
.post-body{padding:clamp(18px,2vw,30px) clamp(20px,2.4vw,34px) clamp(18px,2vw,30px) 0}
.post-cat{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--purple);font-weight:600}
.post-body h3{font-size:clamp(18px,2.2vw,26px);font-weight:600;line-height:1.28;letter-spacing:-.02em;margin-top:10px}
.post-body h3 a{color:inherit}
.post-body h3 a:hover{color:var(--purple)}
.post-ex{font-size:13.5px;line-height:1.7;color:#5c5c5c;margin-top:12px;max-width:56ch}
.post-foot{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:18px}
.post-read{font-size:12px;color:var(--muted)}
.post-cta{font-size:13px;font-weight:500;color:var(--ink);border-bottom:1.5px solid var(--purple);padding-bottom:2px}
.post-cta:hover{color:var(--purple)}
@media(max-width:760px){
  .post{grid-template-columns:1fr}
  .post-body{padding:0 20px 22px}
}

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

/* ---------- services page ---------- */
.hero-slim{min-height:clamp(420px,54vh,560px)}
.svc-intro{padding-block:clamp(44px,5vw,76px)}
.svc-lead{font-size:clamp(15px,1.75vw,19px);line-height:1.72;color:var(--ink);max-width:70ch}
.svc-lead b{font-weight:600}
.svc-table-wrap{margin-top:clamp(28px,3.4vw,44px);overflow-x:auto}
.svc-table{width:100%;border-collapse:collapse;min-width:620px;text-align:left}
.svc-table caption{text-align:left;font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);padding-bottom:14px}
.svc-table th,.svc-table td{padding:15px 18px 15px 0;border-bottom:1px solid #e0e0e0;vertical-align:top;
  font-size:14px;line-height:1.6;color:#5c5c5c}
.svc-table thead th{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);
  font-weight:600;border-bottom-color:var(--ink)}
.svc-table tbody th{font-weight:600;color:var(--ink);font-size:15px;white-space:nowrap}

.svc-block .svc-head{text-align:left;max-width:none;margin:0}
.svc-block{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(24px,4vw,64px);padding-block:clamp(38px,4.6vw,70px);border-top:1px solid #e2e2e2}
.svc-block .svc-head h2{font-size:clamp(23px,2.7vw,34px);line-height:1.2;max-width:18ch}
.svc-body p{font-size:clamp(13.5px,1.5vw,15.5px);line-height:1.8;color:#5c5c5c;margin-bottom:14px}
.svc-body b{color:var(--ink);font-weight:600}
.svc-list{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:12px}
.svc-list li{position:relative;padding-left:22px;font-size:clamp(13.5px,1.5vw,15.5px);
  line-height:1.75;color:#5c5c5c}
.svc-list li::before{content:"";position:absolute;left:0;top:10px;width:8px;height:8px;
  border-radius:50%;background:var(--purple)}
.svc-proof{font-size:13.5px !important}
.svc-proof a{color:var(--ink);border-bottom:1.5px solid var(--purple);padding-bottom:1px}
.svc-proof a:hover{color:var(--purple)}
.svc-steps{margin:0 0 22px;padding-left:20px;display:grid;gap:12px}
.svc-steps li{font-size:clamp(13.5px,1.5vw,15.5px);line-height:1.75;color:#5c5c5c;padding-left:6px}
.svc-steps li::marker{color:var(--purple);font-weight:600}
.fit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:clamp(20px,3vw,42px)}
.fit-col h3{font-size:15px;font-weight:600;margin-bottom:14px;padding-bottom:10px;
  border-bottom:1px solid #e0e0e0}
@media(max-width:820px){
  .svc-block{grid-template-columns:1fr;gap:18px}
  .svc-block .svc-head h2{max-width:none}
}

/* ---------- brief builder (smart defaults + endowment) ---------- */
.brief{padding-block:clamp(38px,4.6vw,70px);border-top:1px solid #e2e2e2}
.brief-head h2{font-size:clamp(23px,2.7vw,34px);line-height:1.2}
.brief-note{font-size:clamp(13.5px,1.5vw,15.5px);line-height:1.75;color:#5c5c5c;
  margin-top:12px;max-width:62ch}
.brief-pick{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));
  gap:12px;margin:clamp(24px,3vw,34px) 0 26px}
.pick{position:relative;display:block;cursor:pointer}
.pick input{position:absolute;opacity:0;width:0;height:0}
.pick span{display:block;border:1.5px solid #dcdcdc;border-radius:16px;padding:16px 18px;
  background:#fff;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.pick b{display:block;font-size:15px;font-weight:600;color:var(--ink)}
.pick i{display:block;font-style:normal;font-size:12.5px;line-height:1.5;color:var(--muted);margin-top:4px}
.pick input:checked + span{border-color:var(--purple);background:#fff7f2;
  box-shadow:0 0 0 1px var(--purple) inset}
.pick input:focus-visible + span{outline:3px solid var(--purple);outline-offset:3px}
.pick:hover span{border-color:#bdbdbd}
.pick input:checked + span b::after{content:" \2713";color:var(--purple)}
.brief-back{font-size:12.5px;color:var(--muted);margin-top:14px}

/* ---------- booking form: progress + reciprocity ---------- */
.pg{margin-bottom:18px}
.pg-track{height:6px;border-radius:999px;background:#e6e6e6;overflow:hidden}
.pg-fill{height:100%;width:20%;border-radius:999px;
  background:linear-gradient(90deg,var(--purple),var(--orange));transition:width .35s ease}
.pg-text{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:8px}
.recip{font-size:13px;line-height:1.7;color:#5c5c5c;margin-bottom:22px;padding:14px 16px;
  border-left:2px solid var(--purple);background:#fff7f2;border-radius:0 10px 10px 0}
.brief-go{display:inline-flex;max-width:100%}
.brief-go .brief-label{width:auto;height:auto;flex:0 1 auto;background:none;color:#fff;
  border-radius:0;display:inline;place-items:initial;line-height:1.3}

/* stage table -> stacked cards on phones */
@media(max-width:700px){
  .svc-table-wrap{overflow:visible}
  .svc-table{min-width:0;display:block}
  .svc-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .svc-table tbody,.svc-table tr{display:block}
  .svc-table tr{border:1.5px solid #e0e0e0;border-radius:16px;padding:16px 18px;
    margin-bottom:12px;background:#fff}
  .svc-table th,.svc-table td{display:block;border:0;padding:0;white-space:normal}
  .svc-table tbody th{font-size:17px;margin-bottom:8px}
  .svc-table td{margin-top:8px}
  .svc-table td::before{display:block;font-size:10.5px;letter-spacing:.1em;
    text-transform:uppercase;color:var(--muted);margin-bottom:3px}
  .svc-table td:nth-of-type(1)::before{content:"What it covers"}
  .svc-table td:nth-of-type(2)::before{content:"What you walk away with"}
}

/* heroes with no scrim: keep the photo untouched, make the type carry itself */
.hero:not(.hero-dim) .hero-copy,
.hero:not(.hero-dim) .stats{
  text-shadow:0 2px 16px rgba(0,0,0,.78),0 1px 4px rgba(0,0,0,.65)}
.hero:not(.hero-dim) .stat{border-top-color:rgba(255,255,255,.6)}
.hero:not(.hero-dim) .stat .num{background:rgba(0,0,0,.34);border-color:rgba(255,255,255,.65)}
.hero:not(.hero-dim) .hero-tag{background:rgba(0,0,0,.42);border-color:rgba(255,255,255,.45)}
.hero:not(.hero-dim) .kicker{opacity:1;font-weight:400}
.hero:not(.hero-dim) .stat small{opacity:1;font-weight:400}
.hero:not(.hero-dim) .stat b{font-weight:700}
/* no-scrim heroes: the stat bar gets its own solid band so the photo stays untouched */
.hero:not(.hero-dim) .stats{position:relative;background:var(--navy);text-shadow:none;
  padding-top:24px;padding-bottom:28px;margin-top:0;
  box-shadow:0 0 0 100vmax var(--navy);clip-path:inset(0 -100vmax)}
.hero:not(.hero-dim) .stat{border-top-color:rgba(255,255,255,.3)}
.hero:not(.hero-dim) .stat .num{background:transparent;border-color:rgba(255,255,255,.4)}
.hero:not(.hero-dim) .stat small{opacity:.85;font-weight:300}

/* ---------- GEO audit ---------- */
.ga{padding-block:clamp(30px,4vw,60px)}
.ga-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);
  gap:clamp(26px,3.6vw,56px);align-items:start}
.ga-checks h2{font-size:clamp(23px,2.7vw,34px)}
.ga-note{font-size:clamp(13px,1.45vw,15px);line-height:1.75;color:#5c5c5c;margin:12px 0 26px;max-width:58ch}
.ga-list{display:grid;gap:10px}
.ga-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;cursor:pointer;
  border:1.5px solid #e2e2e2;border-radius:16px;padding:16px 18px;background:#fff;
  transition:border-color .2s ease,background .2s ease}
.ga-item:hover{border-color:#c4c4c4}
.ga-item input{position:absolute;opacity:0;width:0;height:0}
.ga-box{width:22px;height:22px;margin-top:1px;border:1.5px solid #c9c9c9;border-radius:7px;
  display:grid;place-items:center;transition:background .2s ease,border-color .2s ease}
.ga-box::after{content:"\2713";font-size:13px;color:#fff;opacity:0;transition:opacity .15s}
.ga-item input:checked ~ .ga-box{background:var(--purple);border-color:var(--purple)}
.ga-item input:checked ~ .ga-box::after{opacity:1}
.ga-item input:focus-visible ~ .ga-box{outline:3px solid var(--purple);outline-offset:2px}
.ga-item:has(input:checked){border-color:var(--purple);background:#fff9f5}
.ga-body b{display:block;font-size:14.5px;font-weight:600;color:var(--ink);line-height:1.45}
.ga-body code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;
  background:#f0f0f0;padding:1px 5px;border-radius:4px}
.ga-why{display:block;font-style:normal;font-size:12.5px;line-height:1.65;color:#6f6f6f;margin-top:6px}
.ga-fix{display:block;font-style:normal;font-size:12.5px;line-height:1.65;color:#8a4b12;
  margin-top:8px;padding:9px 12px;background:#fff3e9;border-radius:9px}
.ga-fix b{display:inline;font-size:inherit;color:inherit}

.ga-result{position:sticky;top:18px;border:1.5px solid #e2e2e2;border-radius:22px;
  padding:clamp(20px,2.4vw,28px);background:#fff}
.ga-score{text-align:center;padding-bottom:20px;border-bottom:1px solid #ededed}
.ga-ring{width:148px;height:148px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;
  background:conic-gradient(var(--purple) calc(var(--pct)*1%),#ededed 0);transition:--pct .4s ease}
.ga-ring::before{content:"";position:absolute;width:112px;height:112px;border-radius:50%;background:#fff}
.ga-num{position:relative;display:flex;align-items:baseline;gap:3px}
.ga-num b{font-size:40px;font-weight:700;letter-spacing:-.03em;color:var(--ink);line-height:1}
.ga-num i{font-style:normal;font-size:14px;color:var(--muted)}
.ga-band{font-size:15px;font-weight:600;color:var(--ink);margin-top:4px}
.ga-verdict{font-size:12.5px;line-height:1.65;color:#6f6f6f;margin-top:8px}
.ga-gaps{padding:20px 0}
.ga-gaps h3{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.ga-gaps ol{margin:0;padding-left:18px;display:grid;gap:9px}
.ga-gaps li{font-size:12.5px;line-height:1.6;color:#5c5c5c}
.ga-gaps li::marker{color:var(--purple);font-weight:600}
.ga-empty{list-style:none;margin-left:-18px;color:var(--muted) !important}
.ga-cta{display:inline-flex;width:100%;justify-content:space-between}
.ga-cta .ga-cta-label{width:auto;height:auto;background:none;color:#fff;border-radius:0;display:inline}
.ga-fine{font-size:11.5px;line-height:1.6;color:var(--muted);margin-top:12px;text-align:center}
@media(max-width:900px){
  .ga-grid{grid-template-columns:1fr}
  .ga-result{position:static;order:-1}
}

/* no-scrim heroes: frost the panel behind the copy, leave the photo sharp */
.hero:not(.hero-dim) .hero-copy{
  backdrop-filter:blur(16px) saturate(.85) brightness(.62);
  -webkit-backdrop-filter:blur(16px) saturate(.85) brightness(.62);
  background:rgba(9,14,22,.18);
  border:1px solid rgba(255,255,255,.14);
  border-radius:26px;
  padding:clamp(24px,2.6vw,38px);
  text-shadow:none}
.hero:not(.hero-dim) .hero-main{padding-block:clamp(30px,3.4vw,54px)}

/* services page: lists and kickers inside the stage bands */
.stage-kicker{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--purple);margin-bottom:12px}
.stage .svc-list{margin-top:20px}
.stage .svc-list li{font-size:clamp(13px,1.45vw,15px)}
.stage.on-dark .stage-kicker{color:var(--orange)}
.stage.on-dark .svc-list li{color:rgba(255,255,255,.72)}
.stage.on-dark .svc-list li b{color:#fff}
.stage.on-dark .svc-list li::before{background:var(--orange)}
.stage.on-orange .stage-kicker{color:#fff;opacity:.85}
.stage.on-orange .svc-list li{color:rgba(255,255,255,.92)}
.stage.on-orange .svc-list li b{color:#fff}
.stage.on-orange .svc-list li::before{background:#fff}
.stage-foot{font-size:13px !important;font-style:italic;margin-top:4px !important}
.stage.on-orange .stage-foot{color:rgba(255,255,255,.85) !important}
.services .tabs{margin-bottom:clamp(30px,4vw,54px)}

/* ---------- service detail pages ---------- */
.crumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;margin-bottom:16px;
  color:rgba(255,255,255,.62)}
.crumbs a{color:rgba(255,255,255,.82);border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:1px}
.crumbs a:hover{color:#fff;border-color:#fff}
.crumbs b{color:#fff;font-weight:500}
.crumbs span{opacity:.5}
section.stage{padding-block:clamp(34px,4.2vw,64px)}
section.stage h2{font-size:clamp(23px,2.7vw,34px);line-height:1.2}
.sibs{padding-block:clamp(34px,4.2vw,64px);border-top:1px solid #e2e2e2}
.sib-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:20px}
.sib{display:block;border:1.5px solid #e2e2e2;border-radius:18px;padding:20px 22px;background:#fff;
  transition:border-color .2s ease,transform .2s ease}
.sib:hover{border-color:var(--purple);transform:translateY(-2px)}
.sib b{display:block;font-size:15.5px;font-weight:600;color:var(--ink)}
.sib i{display:block;font-style:normal;font-size:12.5px;line-height:1.6;color:var(--muted);margin-top:6px}
.sib::after{content:"\2192";display:block;margin-top:14px;color:var(--purple);font-size:15px}
.proj-note{font-size:12.5px;line-height:1.7;color:var(--muted);margin-top:10px;max-width:46ch}
.work-note{font-size:clamp(13px,1.45vw,15px);line-height:1.75;color:#5c5c5c;margin-top:14px;max-width:56ch}

/* ---------- outcome-led case study (mk) ---------- */
.mk-client{font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--orange);margin-bottom:14px}
.mk .bound-card{margin-block:clamp(30px,4vw,56px)}

.mk-glance{padding-block:clamp(26px,3vw,44px);border-bottom:1px solid #e2e2e2}
.mk-glance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:clamp(18px,2.4vw,34px);margin:0}
.mk-glance-grid dt{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.mk-glance-grid dd{margin:7px 0 0;font-size:15px;font-weight:600;color:var(--ink);line-height:1.4}

.mk-hero-shot{margin:clamp(30px,4vw,56px) auto;border-radius:24px;overflow:hidden;position:relative}
.mk-hero-shot img{width:100%;height:auto;aspect-ratio:16/8;object-fit:cover;display:block}
.mk-hero-shot figcaption{font-size:12.5px;color:var(--muted);padding:14px 4px 0}

.mk-block{display:grid;grid-template-columns:minmax(0,.34fr) minmax(0,.66fr);
  gap:clamp(22px,3.4vw,58px);padding-block:clamp(34px,4.4vw,66px);border-top:1px solid #e2e2e2}
.mk-label{display:flex;align-items:baseline;gap:12px}
.mk-label span{font-size:12px;font-weight:700;color:var(--purple);letter-spacing:.08em}
.mk-label p{font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.mk-lead{font-size:clamp(19px,2.3vw,28px);line-height:1.38;letter-spacing:-.015em;
  color:var(--ink);font-weight:500;margin-bottom:20px}
.mk-body p{font-size:clamp(13.5px,1.5vw,15.5px);line-height:1.85;color:#5c5c5c;margin-bottom:15px}
.mk-body>p:last-child{margin-bottom:0}

.mk-moves{list-style:none;margin:0;padding:0;counter-reset:mv;display:grid;gap:22px}
.mk-moves li{counter-increment:mv;position:relative;padding-left:46px}
.mk-moves li::before{content:counter(mv,decimal-leading-zero);position:absolute;left:0;top:1px;
  font-size:12px;font-weight:700;color:var(--purple);letter-spacing:.06em}
.mk-moves b{display:block;font-size:16.5px;font-weight:600;color:var(--ink);line-height:1.35}
.mk-moves span{display:block;font-size:14px;line-height:1.8;color:#5c5c5c;margin-top:7px}

.mk-pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.6vw,22px);
  padding-block:clamp(20px,2.6vw,38px);align-items:start}
.mk-pair figure{margin:0}
.mk-pair img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:16px;display:block}
.mk-pair figcaption{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);margin-top:11px}

.mk-impact{padding-block:clamp(34px,4.4vw,66px);border-top:1px solid #e2e2e2}
.mk-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:clamp(20px,3vw,44px);margin-top:clamp(22px,2.8vw,38px)}
.mk-stats b{display:block;font-size:clamp(38px,5.4vw,66px);font-weight:700;letter-spacing:-.04em;
  line-height:1;color:var(--ink)}
.mk-stats span{display:block;font-size:13px;line-height:1.6;color:var(--muted);margin-top:12px;max-width:22ch}
.mk-impact-note{font-size:13.5px;line-height:1.8;color:#5c5c5c;margin-top:clamp(22px,2.6vw,34px);max-width:64ch}

.mk-quote{background:var(--navy);color:#fff;border-radius:var(--radius);
  padding:clamp(32px,4.6vw,66px)}
.mk-quote blockquote{margin:0;max-width:60ch}
.mk-quote p{font-size:clamp(19px,2.5vw,30px);line-height:1.45;letter-spacing:-.015em;font-weight:300}
.mk-quote footer{margin-top:26px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.mk-quote footer b{font-size:14px;font-weight:600}
.mk-quote footer span{font-size:12.5px;color:rgba(255,255,255,.6)}

.mk-next{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;
  padding-block:clamp(30px,3.6vw,54px);border-top:1px solid #e2e2e2}
.mk-next a{display:block}
.mk-next span{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.mk-next b{display:block;font-size:clamp(18px,2.2vw,26px);font-weight:600;color:var(--ink);margin-top:7px}
.mk-next a:hover b{color:var(--purple)}
.mk-next-all b{font-size:15px !important}

/* unfilled template slots — obvious on screen, harmless if one is missed */
.mk-todo{outline:1.5px dashed rgba(249,98,6,.55);outline-offset:3px;border-radius:4px;
  background:rgba(249,98,6,.05)}

@media(max-width:820px){
  .mk-block{grid-template-columns:1fr;gap:16px}
  .mk-pair{grid-template-columns:1fr}
  .mk-next{grid-template-columns:1fr}
}
.mk-play{position:relative;display:block;border-radius:inherit;overflow:hidden}
.mk-play img{transition:transform .6s cubic-bezier(.22,1,.36,1)}
.mk-play:hover img{transform:scale(1.03)}
.mk-play-btn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:clamp(60px,5.6vw,82px);aspect-ratio:1;border-radius:50%;background:var(--purple);color:#fff;
  display:grid;place-items:center;box-shadow:0 12px 34px rgba(249,98,6,.45);transition:transform .25s}
.mk-play-btn svg{width:34%;margin-left:8%}
.mk-play:hover .mk-play-btn{transform:translate(-50%,-50%) scale(1.08)}
.mk-play-label{position:absolute;left:18px;bottom:18px;font-size:12.5px;font-weight:500;color:var(--ink);
  background:#fff;padding:8px 16px;border-radius:999px;box-shadow:0 6px 18px rgba(10,16,26,.2)}
.mk-hero-shot.is-logo img{aspect-ratio:16/7;object-fit:contain;background:#fff;padding:clamp(30px,5vw,70px)}
.mk-gallery{padding-block:clamp(26px,3.4vw,50px);border-top:1px solid #e2e2e2}
.mk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.6vw,22px);
  margin-top:clamp(18px,2.4vw,32px);align-items:start}
.mk-grid figure{margin:0}
.mk-grid figure.is-wide{grid-column:1/-1}
.mk-grid img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:16px;display:block;background:#f2f2f2}
.mk-grid figcaption{font-size:12px;line-height:1.6;color:var(--muted);margin-top:10px}
@media(max-width:700px){.mk-grid{grid-template-columns:1fr}}
.mk-grid.mk-grid-tall{grid-template-columns:repeat(3,minmax(0,1fr))}
.mk-grid.mk-grid-tall img{aspect-ratio:3/4}
@media(max-width:700px){.mk-grid.mk-grid-tall{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mk-install{padding-block:clamp(30px,3.8vw,58px);border-top:1px solid #e2e2e2}
.mk-install-grid{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,.58fr);
  gap:clamp(22px,3.4vw,52px);align-items:center;margin-top:clamp(18px,2.4vw,30px)}
.mk-install-vid{border-radius:20px;overflow:hidden;background:#111b28;aspect-ratio:3/4}
.mk-install-vid video{width:100%;height:100%;object-fit:cover;display:block}
.mk-install-copy p{font-size:clamp(13.5px,1.5vw,15.5px);line-height:1.85;color:#5c5c5c;margin-bottom:14px}
.mk-install-copy .mk-lead{margin-bottom:16px}
@media(max-width:820px){.mk-install-grid{grid-template-columns:1fr}}

/* logo wall: 4 across on phones — same arrangement, bigger marks */
@media(max-width:500px){
  .brand-grid{grid-template-columns:repeat(4,1fr)}
  .brand-cell{padding:2.3cqw;border-radius:1.9cqw}
  .brand-cell img{max-height:5.6cqw}
  .brand-head{padding:2.4cqw 2cqw}
}
.cs-visit{display:inline-flex;align-items:center;gap:10px;margin-top:clamp(20px,2.4vw,30px);
  background:#fff;color:var(--ink);font-size:13.5px;font-weight:500;
  padding:11px 22px;border-radius:999px;transition:transform .2s ease,box-shadow .2s ease}
.cs-visit:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.28)}
.cs-visit span{color:var(--purple);font-size:15px}
/* UI screenshots: show the whole frame, never crop the interface */
.mk-grid-shots{align-items:start}
.mk-grid-shots img{aspect-ratio:auto;object-fit:contain;background:#fff;
  border:1px solid #e6e6e6}

/* ---------- live site frame: a page that actually scrolls ---------- */
.site-frame{border-radius:18px;overflow:hidden;border:1px solid #dcdcdc;background:#fff;
  box-shadow:0 22px 60px rgba(10,16,26,.14)}
.site-bar{display:flex;align-items:center;gap:10px;padding:11px 16px;background:#f3f3f4;
  border-bottom:1px solid #e3e3e3}
.site-dots{display:flex;gap:6px;flex:0 0 auto}
.site-dots i{width:10px;height:10px;border-radius:50%;background:#d6d6d8}
.site-dots i:first-child{background:#f2675b}
.site-dots i:nth-child(2){background:#f6bf4f}
.site-dots i:nth-child(3){background:#61c554}
.site-url{flex:1;text-align:center;font-size:11.5px;color:#7b7b80;background:#fff;
  border-radius:999px;padding:5px 14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.site-scroll{position:relative;aspect-ratio:16/10;overflow:hidden;background:#fff}
.site-scroll img{width:100%;height:100%;object-fit:cover;object-position:50% 0%;display:block;
  transition:object-position 11s cubic-bezier(.25,.1,.25,1)}
.site-frame:hover .site-scroll img,
.site-frame:focus-within .site-scroll img{object-position:50% 100%}
.site-hint{position:absolute;right:14px;bottom:14px;font-size:11.5px;font-weight:500;color:var(--ink);
  background:rgba(255,255,255,.94);padding:7px 15px;border-radius:999px;
  box-shadow:0 5px 16px rgba(10,16,26,.16);transition:opacity .3s;pointer-events:none}
.site-frame:hover .site-hint{opacity:0}
.site-cap{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  margin-top:14px;font-size:12.5px;color:var(--muted)}
.site-cap a{color:var(--ink);border-bottom:1.5px solid var(--purple);padding-bottom:1px}
.site-cap a:hover{color:var(--purple)}

@keyframes siteScroll{
  0%,6%{object-position:50% 0%}
  50%,56%{object-position:50% 100%}
  100%{object-position:50% 0%}
}
@media(hover:none){
  .site-scroll img{animation:siteScroll 22s ease-in-out infinite}
  .site-hint{display:none}
}
@media(prefers-reduced-motion:reduce){
  .site-scroll img{animation:none;transition:none}
}
/* written testimonial (no video) */
.tcard.is-written{display:flex;flex-direction:column;justify-content:center}
.tcard-quote.is-lead{font-size:clamp(16px,1.9vw,21px);line-height:1.55;color:var(--ink);
  font-weight:400;margin:0 0 22px;letter-spacing:-.01em;border:0;padding:0}
.tcard.is-written h4{margin-top:0}
.tcard-note{font-size:12.5px;line-height:1.7;color:var(--muted);margin-top:14px;
  padding-top:14px;border-top:1px solid #e4e4e4}
.tcard-role a{color:var(--ink);border-bottom:1px solid var(--purple);padding-bottom:1px;
  text-transform:none;letter-spacing:0}
.tcard-role a:hover{color:var(--purple)}
.tcard-face{width:clamp(56px,6vw,72px);height:clamp(56px,6vw,72px);border-radius:50%;
  object-fit:cover;object-position:center 22%;display:block;margin-bottom:20px;
  border:2px solid #fff;box-shadow:0 5px 16px rgba(10,16,26,.14)}
