/* Brightus. "The navy square, opened up": the logo's square + rising bubbles drive every frame, card and motion. */
@font-face{font-family:"Newsreader";src:url("/fonts/newsreader-latin-standard-normal.woff2") format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url("/fonts/newsreader-latin-standard-italic.woff2") format("woff2");font-weight:200 800;font-style:italic;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("/fonts/source-sans-3-latin-wght-normal.woff2") format("woff2");font-weight:200 900;font-style:normal;font-display:swap}

:root{
  --navy:#1b3b6a; --navy-deep:#112a4d; --navy-night:#0c1d36; --navy-bright:#2c5a9e;
  --ink:#231f20; --paper:#ffffff; --mist:#eef2f7; --mist-2:#e2e9f2; --muted:#535c6b;
  --line:rgba(35,31,32,.14); --line-light:rgba(255,255,255,.2); --sky:#bcd0ea;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Source Sans 3",-apple-system,"Segoe UI",Roboto,sans-serif;
  --gutter:clamp(20px,4vw,56px);
  --section:clamp(64px,8.4vw,120px);
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.76,0,.24,1);
  --header-h:84px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:clamp(16px,1.12vw,18px);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
main{overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
::selection{background:var(--navy);color:#fff}
:focus-visible{outline:2px solid var(--navy-bright);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:10001;background:var(--ink);color:#fff;padding:10px 16px;text-decoration:none}
.skip:focus{top:12px}
.wrap{width:min(1320px,100% - var(--gutter)*2);margin-inline:auto}

/* type */
.h2{font-family:var(--serif);font-weight:400;font-size:clamp(32px,3.6vw,56px);line-height:1.06;letter-spacing:-.022em;color:var(--ink);text-wrap:balance}
.h3{font-family:var(--serif);font-weight:400;font-style:italic;font-size:clamp(20px,1.6vw,25px);line-height:1.35;letter-spacing:-.01em}
.label{font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--navy)}

/* buttons: pill = bubble. Hover swaps colour only. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:50px;padding:0 28px;border-radius:999px;font-family:var(--sans);font-weight:600;font-size:16px;letter-spacing:.01em;text-decoration:none;white-space:nowrap;border:1.5px solid transparent;transition:background-color .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease)}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:var(--navy);color:#fff}
.btn-light{background:#fff;color:var(--navy)}
.btn-light:hover{background:var(--navy-bright);color:#fff}
.btn-ghost-light{border-color:rgba(255,255,255,.55);color:#fff}
.btn-ghost-light:hover{background:var(--navy-bright);border-color:var(--navy-bright);color:#fff}

/* logo */
.logo{display:block;height:100%;width:auto}
.logo .logo-mark{fill:var(--logo-mark,var(--navy))}
.logo .logo-word{fill:var(--logo-word,var(--ink))}

/* ---------- intro veil ---------- */
.intro-veil{display:none}
html.js .intro-veil{display:flex;position:fixed;inset:0;z-index:10000;background:var(--navy);align-items:center;justify-content:center;pointer-events:none;will-change:clip-path}
.intro-mark{width:clamp(70px,8vw,104px);display:block}
.intro-mark svg{display:block;width:100%;height:auto;fill:#fff}
.intro-mark svg g{fill:#fff}
html.intro-done .intro-veil{display:none}

/* ---------- header ---------- */
.site-header{position:absolute;top:0;left:0;right:0;z-index:9999;height:var(--header-h);display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter);color:#fff;--logo-mark:#fff;--logo-word:#fff}
.brand{display:block;height:34px;text-decoration:none;flex:none}
.nav{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;gap:clamp(18px,2.1vw,34px);font-family:var(--serif);font-size:18px;white-space:nowrap}
.nav a{text-decoration:none;position:relative;padding:6px 0;transition:color .3s var(--ease)}
.nav a::after{content:"";position:absolute;left:50%;bottom:0;width:5px;height:5px;border-radius:50%;background:currentColor;transform:translate(-50%,6px) scale(0);transition:transform .35s var(--ease)}
.nav a:hover::after{transform:translate(-50%,6px) scale(1)}
.header-actions{display:flex;align-items:center;gap:22px}
.header-phone{text-decoration:none;font-weight:600;font-size:15px;letter-spacing:.02em}
.header-phone:hover{color:var(--sky)}
.header-cta{min-height:44px;padding:0 22px}
.menu-toggle{display:none;width:44px;height:44px;border-radius:50%;position:relative;color:inherit}
.menu-toggle span{position:absolute;left:12px;right:12px;height:2px;background:currentColor;transition:transform .5s var(--ease-io),top .5s var(--ease-io)}
.menu-toggle span:nth-child(1){top:17px}
.menu-toggle span:nth-child(2){top:25px}
@media (max-width:1239px){.header-phone{display:none}}

/* mobile menu */
.mobile-menu{position:fixed;inset:0;z-index:9998;background:var(--navy);color:#fff;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--header-h) + 24px) var(--gutter) 40px;transform:translate3d(100%,0,0);visibility:hidden;transition:transform .75s var(--ease-io),visibility 0s linear .75s;overflow:hidden}
.mobile-menu.is-open{transform:translate3d(0,0,0);visibility:visible;transition:transform .75s var(--ease-io),visibility 0s}
.mobile-menu nav{display:flex;flex-direction:column;gap:6px;position:relative}
.mobile-menu nav a{font-family:var(--serif);font-size:clamp(36px,9vw,52px);line-height:1.15;text-decoration:none;letter-spacing:-.02em}
.mobile-menu-foot{display:flex;flex-direction:column;gap:6px;margin-top:40px;font-weight:600;position:relative}
.mobile-menu-foot a{text-decoration:none;color:var(--sky)}
.mobile-menu-bubbles i{position:absolute;border-radius:50%;background:rgba(255,255,255,.07)}
.mobile-menu-bubbles i:nth-child(1){width:62vw;height:62vw;right:-14vw;top:8vh}
.mobile-menu-bubbles i:nth-child(2){width:30vw;height:30vw;right:22vw;top:52vh}
.mobile-menu-bubbles i:nth-child(3){width:16vw;height:16vw;right:12vw;top:72vh}
.mobile-menu-bubbles i:nth-child(4){width:8vw;height:8vw;right:6vw;top:84vh}

@media (max-width:899px){
  :root{--header-h:68px}
  .site-header{position:fixed;transform:translate3d(0,0,0);will-change:transform;background:transparent;transition:transform .6s var(--ease),opacity .6s var(--ease),background-color .35s var(--ease),color .35s var(--ease)}
  .site-header.is-solid{background:#fff;color:var(--ink);--logo-mark:var(--navy);--logo-word:var(--ink)}
  .site-header.is-hidden{transform:translate3d(0,calc(-100% - 24px),0);opacity:0;pointer-events:none}
  .site-header.is-menu{background:transparent;color:#fff;--logo-mark:#fff;--logo-word:#fff}
  .brand{height:28px}
  .nav,.header-cta{display:none}
  .menu-toggle{display:block}
  .site-header.is-x .menu-toggle span:nth-child(1){top:21px;transform:rotate(45deg)}
  .site-header.is-x .menu-toggle span:nth-child(2){top:21px;transform:rotate(-45deg)}
}

/* ---------- hero ---------- */
.hero{position:relative;height:100svh;min-height:640px;overflow:hidden;background:var(--navy-night);color:#fff;isolation:isolate}
.hero-media{position:absolute;inset:0;overflow:hidden;z-index:-3}
.hero-plate{position:absolute;left:50%;top:50%;width:max(112vw,calc(max(100svh,640px) * 1.18 * 1.5));aspect-ratio:2000/1333;transform:translate(-50%,-50%)}
.hero-sky,.hero-city{position:absolute;left:0;width:100%;will-change:transform}
.hero-sky{top:0;height:100%;object-fit:cover}
.hero-city{top:30.0075%;height:auto}
.hero-shade{position:absolute;inset:0;z-index:-2;background:
  linear-gradient(to bottom,rgba(12,29,54,.55) 0%,rgba(12,29,54,0) 22%),
  linear-gradient(to top,rgba(12,29,54,.92) 0%,rgba(12,29,54,.55) 28%,rgba(12,29,54,0) 58%),
  linear-gradient(to right,rgba(12,29,54,.35),rgba(12,29,54,0) 50%)}
.hero-float{position:absolute;inset:0;z-index:-1;pointer-events:none}
.hero-float i{position:absolute;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.28);animation:rise 14s var(--ease) infinite alternate}
.hero-float i:nth-child(1){width:clamp(90px,10vw,150px);aspect-ratio:1;right:16%;top:16%}
.hero-float i:nth-child(2){width:clamp(56px,6vw,92px);aspect-ratio:1;right:9%;top:36%;animation-delay:-4s;animation-duration:11s}
.hero-float i:nth-child(3){width:clamp(30px,3.4vw,52px);aspect-ratio:1;right:6%;top:52%;animation-delay:-7s;animation-duration:9s}
.hero-float i:nth-child(4){width:clamp(16px,1.8vw,28px);aspect-ratio:1;right:4.5%;top:63%;animation-delay:-2s;animation-duration:8s}
.hero-float i:nth-child(5){width:clamp(40px,4vw,64px);aspect-ratio:1;left:58%;top:24%;animation-delay:-9s;animation-duration:13s;background:rgba(255,255,255,.06)}
@keyframes rise{from{transform:translate3d(0,14px,0)}to{transform:translate3d(0,-18px,0)}}

.hero-inner{position:absolute;left:0;right:0;bottom:0;padding:0 var(--gutter) clamp(28px,5.5vh,64px);display:grid;grid-template-columns:auto minmax(0,1fr);align-items:end;gap:clamp(28px,3.4vw,56px)}
.hero-card{position:relative;width:clamp(300px,25vw,380px);aspect-ratio:1;background:var(--navy);padding:clamp(24px,2.2vw,34px);display:flex;flex-direction:column;justify-content:flex-end;gap:22px;overflow:hidden}
.card-bubbles i{position:absolute;border-radius:50%;background:#fff;animation:bob 6s ease-in-out infinite alternate}
.card-bubbles i:nth-child(1){width:20%;aspect-ratio:1;left:47%;top:7%}
.card-bubbles i:nth-child(2){width:13%;aspect-ratio:1;left:67%;top:22.5%;animation-delay:-1.5s}
.card-bubbles i:nth-child(3){width:7.8%;aspect-ratio:1;left:78.5%;top:34%;animation-delay:-3s}
.card-bubbles i:nth-child(4){width:4.6%;aspect-ratio:1;left:84.5%;top:42%;animation-delay:-4.5s}
@keyframes bob{from{transform:translate3d(0,4px,0)}to{transform:translate3d(0,-6px,0)}}
.hero-lede{position:relative;font-family:var(--serif);font-size:clamp(19px,1.45vw,22px);line-height:1.3;max-width:15em}
.hero-actions{position:relative;display:flex;flex-wrap:wrap;gap:10px}
.hero-actions .btn{min-height:46px;padding:0 22px;font-size:15px}
.hero-title{font-family:var(--serif);font-weight:380;font-size:clamp(48px,7.5vw,128px);line-height:.94;letter-spacing:-.03em;color:#fff;padding-bottom:.04em}
.hero-title .line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.hero-title .line>span{display:inline-block}
.hero-title em{font-style:italic;font-weight:300;color:var(--sky)}

@media (max-width:899px){
  .hero{min-height:600px}
  .hero-plate{transform:translate(-60%,-50%)}
  .hero-inner{grid-template-columns:minmax(0,1fr);gap:22px;padding-bottom:var(--gutter)}
  .hero-title{order:-1;font-size:clamp(44px,12.4vw,84px);width:100%}
  .hero-card{width:100%;aspect-ratio:auto;min-height:clamp(220px,58vw,300px)}
  .hero-card{padding-top:124px;min-height:0}
  .card-bubbles i:nth-child(1){width:74px;left:auto;right:calc(22% + 60px);top:20px}
  .card-bubbles i:nth-child(2){width:48px;left:auto;right:calc(12% + 34px);top:46px}
  .card-bubbles i:nth-child(3){width:28px;left:auto;right:calc(6% + 18px);top:70px}
  .card-bubbles i:nth-child(4){width:16px;left:auto;right:calc(3% + 10px);top:88px}
  .hero-lede{max-width:13em}
  .hero-float i:nth-child(1){right:8%;top:14%}
  .hero-float i:nth-child(5){display:none}
}

/* ---------- logo marquee ---------- */
.logos{padding:clamp(26px,3vw,40px) 0;border-bottom:1px solid var(--line);overflow:hidden}
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:flex;width:max-content;animation:marquee 60s linear infinite}
.marquee-list{display:flex;align-items:center;gap:clamp(48px,5vw,84px);padding-right:clamp(48px,5vw,84px)}
.marquee-list img{height:var(--h);width:auto;opacity:.72}
@keyframes marquee{to{transform:translate3d(-50%,0,0)}}
@media (max-width:899px){.marquee-list img{height:calc(var(--h) * .78)}.marquee-track{animation-duration:48s}}

/* ---------- statement ---------- */
.statement{padding:var(--section) 0}
.statement-text{font-family:var(--serif);font-weight:400;font-size:clamp(25px,3.15vw,48px);line-height:1.2;letter-spacing:-.018em;color:var(--navy);max-width:28em}
.statement-text .w{opacity:.17;transition:none}

/* ---------- growth ---------- */
.growth{padding:0 0 var(--section)}
.growth-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(40px,6vw,96px);align-items:center}
.bubble-frame{position:relative;aspect-ratio:1;margin:0 clamp(18px,2vw,30px) clamp(18px,2vw,30px) 0}
.bubble-frame-back{position:absolute;inset:clamp(18px,2vw,30px) calc(clamp(18px,2vw,30px) * -1) calc(clamp(18px,2vw,30px) * -1) clamp(18px,2vw,30px);background:var(--navy)}
.bubble-frame-photo{position:absolute;inset:0;overflow:hidden;
  -webkit-mask:radial-gradient(circle at 63% 17%,#0000 11.6%,#000 11.8%),radial-gradient(circle at 81% 35%,#0000 7.6%,#000 7.8%),radial-gradient(circle at 90.5% 49%,#0000 4.6%,#000 4.8%),radial-gradient(circle at 95% 59.5%,#0000 2.6%,#000 2.8%);
  -webkit-mask-composite:source-in;
  mask:radial-gradient(circle at 63% 17%,#0000 11.6%,#000 11.8%),radial-gradient(circle at 81% 35%,#0000 7.6%,#000 7.8%),radial-gradient(circle at 90.5% 49%,#0000 4.6%,#000 4.8%),radial-gradient(circle at 95% 59.5%,#0000 2.6%,#000 2.8%);
  mask-composite:intersect}
.bubble-frame-photo img{width:100%;height:118%;object-fit:cover;margin-top:-9%}
.growth-copy{display:flex;flex-direction:column;align-items:flex-start;gap:26px}
.growth-copy p{color:var(--muted);max-width:36em}
@media (max-width:899px){.growth-grid{grid-template-columns:minmax(0,1fr)}}

/* ---------- pillars ---------- */
.pillars{padding:0 0 var(--section)}
.pillars-title{max-width:21em;margin-bottom:clamp(36px,4vw,56px)}
.pillars-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(14px,1.6vw,24px)}
.pillar{position:relative;overflow:hidden;padding:clamp(28px,3.6vw,56px);display:flex;flex-direction:column;align-items:flex-start;gap:22px;min-height:clamp(380px,34vw,500px)}
.pillar .btn{margin-top:auto}
.pillar-navy{background:var(--navy);color:#fff}
.pillar-navy .label{color:var(--sky)}
.pillar-navy .h3{font-style:normal;font-size:clamp(22px,2vw,31px);line-height:1.28;max-width:24em;position:relative}
.pillar-paper{background:var(--mist)}
.pillar-paper p:not(.label){color:var(--muted)}
.pillar-bubbles i{position:absolute;border-radius:50%;background:rgba(255,255,255,.08)}
.pillar-bubbles i:nth-child(1){width:220px;height:220px;right:-60px;top:-70px}
.pillar-bubbles i:nth-child(2){width:96px;height:96px;right:150px;top:110px}
.pillar-bubbles i:nth-child(3){width:48px;height:48px;right:116px;top:216px}
.pillar-bubbles i:nth-child(4){width:22px;height:22px;right:96px;top:276px}
@media (max-width:899px){.pillars-grid{grid-template-columns:minmax(0,1fr)}.pillar{min-height:0}.pillar .btn{margin-top:8px}}

/* ---------- approach ---------- */
.approach{padding:var(--section) 0;background:var(--mist)}
.approach-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(36px,6vw,100px);align-items:end}
.approach-q{font-size:clamp(26px,2.75vw,42px);line-height:1.14}
.approach-a{border-left:3px solid var(--navy);padding-left:clamp(20px,2.4vw,34px)}
.approach-big{font-family:var(--serif);font-style:italic;font-size:clamp(20px,1.65vw,26px);line-height:1.4;color:var(--navy)}
@media (max-width:899px){.approach-grid{grid-template-columns:minmax(0,1fr)}}

/* ---------- strategy (pinned horizontal) ---------- */
.strategy{position:relative;z-index:1;height:100svh;min-height:600px;overflow:hidden;background:var(--navy-night);color:#fff}
.strategy-bg{position:absolute;inset:0;overflow:hidden}
.strategy-bg img{position:absolute;top:0;left:0;height:100%;width:132%;max-width:none;object-fit:cover;will-change:transform}
.strategy-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,29,54,.86) 0%,rgba(17,42,77,.62) 45%,rgba(12,29,54,.8) 100%)}
.strategy-inner{position:relative;height:100%;display:flex;flex-direction:column;justify-content:center;gap:0;padding:clamp(40px,7vh,90px) 0 clamp(36px,6vh,72px)}
.strategy-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,64px);align-items:end;padding-bottom:clamp(50px,6vh,72px)}
.strategy-head .h2{color:#fff}
.strategy-head p{color:rgba(255,255,255,.82);max-width:38em}
.strategy-viewport{overflow:visible}
.strategy-track{display:flex;gap:clamp(14px,1.6vw,24px);width:max-content;padding:0 var(--gutter);will-change:transform}
.strategy-track::after{content:"";flex:none;width:calc(var(--gutter) - clamp(14px,1.6vw,24px))}
.q-card{position:relative;width:clamp(280px,29vw,420px);min-height:clamp(240px,36vh,330px);background:#fff;color:var(--ink);padding:clamp(24px,2.4vw,36px);display:flex;flex-direction:column;justify-content:space-between;gap:24px;overflow:hidden}
.q-card::before{content:"";position:absolute;right:-34px;top:-34px;width:120px;height:120px;border-radius:50%;background:var(--mist)}
.q-num{position:relative;font-family:var(--serif);font-style:italic;font-size:clamp(46px,4.4vw,68px);line-height:1;color:var(--navy);letter-spacing:-.03em}
.q-card p{font-family:var(--serif);font-size:clamp(19px,1.5vw,23px);line-height:1.3;letter-spacing:-.005em}
@media (max-width:899px){
  .strategy{min-height:0}
  .strategy-inner{justify-content:flex-start;padding-top:calc(var(--header-h) - 20px)}
  .strategy-head{grid-template-columns:minmax(0,1fr);gap:14px;padding-bottom:50px}
  .strategy-head p{font-size:15.5px;line-height:1.5}
  .q-card{width:min(78vw,360px);min-height:min(36svh,280px)}
}
@media (max-width:899px) and (max-height:700px){.strategy-head p{font-size:14.5px}.q-card p{font-size:18px}}

/* ---------- formats ---------- */
.formats{padding:var(--section) 0}
.formats-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(40px,6vw,96px);align-items:start}
.formats-head{display:flex;flex-direction:column;gap:clamp(32px,4vw,56px)}
.desk-frame{position:relative;width:min(100%,460px)}
.desk-photo{position:relative;aspect-ratio:4/5;overflow:hidden;box-shadow:18px 18px 0 var(--navy)}
.desk-photo img{width:100%;height:116%;object-fit:cover;margin-top:-8%}
.desk-bubble{position:absolute;border-radius:50%;background:#fff;border:8px solid var(--navy)}
.desk-bubble.b1{width:96px;height:96px;right:-40px;top:16%}
.desk-bubble.b2{width:44px;height:44px;right:-62px;top:calc(16% + 110px);border-width:5px}
.formats-list{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:0;row-gap:4px;font-family:var(--serif);font-size:clamp(25px,2.5vw,40px);line-height:1.32;letter-spacing:-.015em;padding-top:clamp(0px,6vw,100px)}
.formats-list li{display:inline-flex;align-items:center;transition:color .3s var(--ease)}
.formats-list li::after{content:"";width:.24em;height:.24em;border-radius:50%;background:var(--navy);margin:0 .42em;opacity:.85;flex:none}
.formats-list li:nth-child(3n+2){font-style:italic;color:var(--navy)}
.formats-list li:last-child::after{display:none}
@media (max-width:899px){.formats-grid{grid-template-columns:minmax(0,1fr)}.desk-frame{width:calc(100% - 70px)}.formats-list{padding-top:0}}

/* ---------- channels ---------- */
.channels{padding:var(--section) 0;background:var(--navy);color:#fff;overflow:hidden}
.channels-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(40px,6vw,96px);align-items:center}
.channels-copy{display:flex;flex-direction:column;gap:22px}
.channels .h2{color:#fff;font-size:clamp(30px,3.1vw,48px)}
.channels .h3{color:var(--sky)}
.channels-eg{color:var(--sky);margin-top:10px}
.channels-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 32px}
.channels-list li{display:flex;align-items:center;gap:14px;font-size:clamp(16px,1.2vw,19px);font-weight:500}
.channels-list li::before{content:"";width:9px;height:9px;border-radius:50%;background:#fff;flex:none}
.lens{position:relative;aspect-ratio:1;width:100%;max-width:520px;justify-self:end}
.lens-photo{position:absolute;inset:0 18% 18% 0;border-radius:50%;overflow:hidden;box-shadow:0 0 0 10px rgba(255,255,255,.12)}
.lens-photo img{width:100%;height:120%;object-fit:cover;margin-top:-10%}
.lens-bubble{position:absolute;border-radius:50%;background:#fff}
.lens-bubble.l1{width:20%;aspect-ratio:1;right:2%;top:50%}
.lens-bubble.l2{width:11%;aspect-ratio:1;right:3%;top:76%}
.lens-bubble.l3{width:6%;aspect-ratio:1;right:15%;top:91%}
@media (max-width:899px){.channels-grid{grid-template-columns:minmax(0,1fr)}.lens{justify-self:center;max-width:420px}.channels-list{grid-template-columns:minmax(0,1fr)}}
@media (min-width:560px) and (max-width:899px){.channels-list{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- services ---------- */
.services{padding:var(--section) 0}
.services-title{max-width:22em;margin-bottom:clamp(36px,4vw,56px)}
.services-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.service{position:relative;overflow:hidden;background:#fff;min-height:clamp(140px,11vw,176px);padding:clamp(18px,1.6vw,26px);display:flex;flex-direction:column;justify-content:space-between;gap:18px;transition:background-color .45s var(--ease),color .45s var(--ease)}
.service-num{font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--navy);transition:color .45s var(--ease)}
.service-name{position:relative;font-family:var(--serif);font-size:clamp(20px,1.6vw,25px);line-height:1.18;letter-spacing:-.01em;max-width:12em}
.service i{position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.1);transform:scale(0);transition:transform .6s var(--ease)}
.service:hover{background:var(--navy);color:#fff}
.service:hover .service-num{color:var(--sky)}
.service:hover i{transform:scale(1)}
@media (max-width:1099px){.services-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:899px){.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service{min-height:128px}.service-name{font-size:19px}}
@media (max-width:420px){.service-name{font-size:17.5px}.service{padding:16px}}

/* ---------- industries ---------- */
.industries{padding:var(--section) 0;background:var(--mist)}
.industries-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(36px,6vw,96px);align-items:start}
.industries-title{position:sticky;top:48px}
.industries-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 28px;counter-reset:ind}
.industries-list li{display:flex;align-items:baseline;gap:12px;padding:12px 0;font-size:clamp(16px,1.15vw,18px);font-weight:500;line-height:1.3;counter-increment:ind}
.industries-list li::before{content:"";width:8px;height:8px;border-radius:50%;border:2px solid var(--navy);flex:none;transform:translateY(-1px)}
@media (max-width:899px){.industries-grid{grid-template-columns:minmax(0,1fr)}.industries-title{position:static}.industries-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}}

/* ---------- about ---------- */
.about{padding:var(--section) 0}
.about-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(40px,6vw,96px);align-items:center}
.founder{position:relative;padding-top:4%}
.founder-stage{position:relative;aspect-ratio:591/500;clip-path:inset(-40% -40% 0 -40%)}
.founder-square{position:absolute;left:0;right:0;bottom:0;height:74%;background:var(--navy);overflow:hidden}
.founder-bubbles i{position:absolute;border-radius:50%;background:#fff}
.founder-bubbles i:nth-child(1){width:11%;aspect-ratio:1;right:6%;top:8%}
.founder-bubbles i:nth-child(2){width:7%;aspect-ratio:1;right:3%;top:27%}
.founder-bubbles i:nth-child(3){width:4.2%;aspect-ratio:1;right:2.6%;top:41%}
.founder-bubbles i:nth-child(4){width:2.6%;aspect-ratio:1;right:3.2%;top:51%}
.founder-photo{position:absolute;left:0;bottom:-4%;width:100%;height:auto;will-change:transform}
.founder-cap{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-top:18px;border-top:0}
.founder-name{font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.2vw,34px);letter-spacing:-.02em}
.founder-cap p{color:var(--navy);font-weight:600}
.about-copy{display:flex;flex-direction:column;gap:26px}
.about-title{font-size:clamp(26px,2.5vw,38px);line-height:1.16}
.about .h3{color:var(--navy)}
.about-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;color:var(--muted);font-size:16px}
.about-cols p{border-top:2px solid var(--navy);padding-top:16px}
@media (max-width:1099px){.about-cols{grid-template-columns:minmax(0,1fr)}}
@media (max-width:899px){.about-grid{grid-template-columns:minmax(0,1fr)}.founder{max-width:440px;width:100%}}

/* ---------- clients ---------- */
.clients{padding:var(--section) 0;background:var(--paper);border-top:1px solid var(--line)}
.clients-label{margin-bottom:14px}
.clients-title{max-width:20em}
.clients-intro{margin:18px 0 clamp(36px,4vw,56px);color:var(--muted)}
.clients-index{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,5vw,80px);align-items:start}
.clients-names{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}
.client-name{width:100%;display:flex;align-items:baseline;gap:12px;padding:10px 0;text-align:left;color:rgba(35,31,32,.5);transition:color .35s var(--ease)}
.client-num{font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--navy);opacity:.7;flex:none;width:22px}
.client-label{font-family:var(--serif);font-size:clamp(20px,1.7vw,26px);line-height:1.2;letter-spacing:-.01em;position:relative}
.client-label::after{content:"";position:absolute;right:-18px;top:.45em;width:8px;height:8px;border-radius:50%;background:var(--navy);transform:scale(0);transition:transform .35s var(--ease)}
.client-name:hover,.client-name.is-active{color:var(--ink)}
.client-name.is-active .client-label::after{transform:scale(1)}
.clients-panels{position:sticky;top:40px;display:grid}
.client-panel{grid-area:1/1;background:var(--mist);padding:clamp(28px,3.4vw,52px);display:flex;flex-direction:column;gap:20px;opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility 0s linear .45s}
.client-panel.is-active{opacity:1;visibility:visible;transition:opacity .45s var(--ease),visibility 0s}
.client-logo{background:#fff;height:clamp(150px,14vw,200px);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.client-logo::before{content:"";position:absolute;width:64px;height:64px;border-radius:50%;background:var(--mist);right:-20px;top:-20px}
.client-logo img{height:var(--h);width:auto;max-width:70%;object-fit:contain;position:relative}
.client-title{font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.2vw,34px);letter-spacing:-.02em}
.client-panel p{color:var(--muted)}
.client-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:6px}
.client-domain{font-weight:600;color:var(--navy)}
@media (max-width:899px){
  .clients-index{grid-template-columns:minmax(0,1fr)}
  .clients-names{grid-template-columns:minmax(0,1fr)}
  .clients-names>li{border-bottom:1px solid var(--line)}
  .client-name{padding:16px 0;color:var(--ink)}
  .client-label::after{display:none}
  .clients-panels{display:none}
  .client-drawer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
  .client-drawer.is-open{grid-template-rows:1fr}
  .client-drawer>div{overflow:hidden;min-height:0}
  .client-drawer .client-panel{opacity:1;visibility:visible;margin-bottom:18px;padding:22px}
  .client-drawer .client-logo{height:130px}
}

/* ---------- faq ---------- */
.faq{padding:var(--section) 0;background:var(--mist)}
.faq-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(32px,6vw,96px);align-items:start}
.faq-title{max-width:8em}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item:first-child{border-top:1px solid var(--line)}
.faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0;text-align:left;font-family:var(--serif);font-size:clamp(20px,1.7vw,26px);line-height:1.25;letter-spacing:-.01em;transition:color .3s var(--ease)}
.faq-q:hover{color:var(--navy)}
.faq-icon{position:relative;width:36px;height:36px;border-radius:50%;border:1.5px solid var(--navy);flex:none;transition:background-color .4s var(--ease)}
.faq-icon::before,.faq-icon::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:var(--navy);transform:translate(-50%,-50%);transition:transform .45s var(--ease),background-color .4s var(--ease)}
.faq-icon::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-item.is-open .faq-icon{background:var(--navy)}
.faq-item.is-open .faq-icon::before,.faq-item.is-open .faq-icon::after{background:#fff}
.faq-item.is-open .faq-icon::after{transform:translate(-50%,-50%) rotate(0deg)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
.faq-item.is-open .faq-a{grid-template-rows:1fr}
.faq-a-inner{overflow:hidden;min-height:0}
.faq-a p{padding:0 60px 26px 0;color:var(--muted);max-width:40em;opacity:0;transform:translate3d(0,8px,0);transition:opacity .4s var(--ease),transform .5s var(--ease)}
.faq-item.is-open .faq-a p{opacity:1;transform:none;transition-delay:.12s}
.faq-a a{color:var(--navy);font-weight:600}
@media (max-width:899px){.faq-grid{grid-template-columns:minmax(0,1fr)}.faq-title{max-width:none}.faq-a p{padding-right:0}}

/* ---------- contact ---------- */
.contact{padding:var(--section) 0;background:var(--navy);color:#fff;position:relative;overflow:hidden}
.contact::before{content:"";position:absolute;width:min(60vw,760px);aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.05);left:-14vw;bottom:-30vw}
.contact-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:center}
.contact-copy{display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.contact .label{color:var(--sky)}
.contact-title{color:#fff;font-size:clamp(36px,4.4vw,68px)}
.contact-email{font-family:var(--serif);font-style:italic;font-size:clamp(24px,2.4vw,36px);text-decoration:none;color:#fff;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;padding-bottom:4px;transition:color .3s var(--ease)}
.contact-email:hover{color:var(--sky)}
.contact-card{background:#fff;color:var(--ink);padding:clamp(24px,3vw,44px);display:flex;flex-direction:column;gap:22px}
.contact-card .h3{color:var(--navy);font-size:clamp(24px,2vw,30px)}
.contact-details{display:grid;gap:12px;margin:0}
.contact-details div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;align-items:baseline}
.contact-details dt{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.contact-details dd a{font-weight:600;text-decoration:none;color:var(--ink);transition:color .3s var(--ease)}
.contact-details dd a:hover{color:var(--navy)}
.map{position:relative;aspect-ratio:16/10;background:var(--mist);overflow:hidden}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}
.map.is-active iframe{pointer-events:auto}
@media (max-width:899px){.contact-grid{grid-template-columns:minmax(0,1fr)}.contact-details div{grid-template-columns:minmax(0,1fr);gap:2px}.map{aspect-ratio:4/3}}

/* ---------- footer ---------- */
.site-footer{background:var(--mist);padding:clamp(56px,6vw,88px) 0 28px;--logo-mark:var(--navy);--logo-word:var(--ink)}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:clamp(28px,4vw,64px)}
.brand-footer{height:44px;margin-bottom:22px}
.footer-brand p{color:var(--muted);max-width:26em}
.footer-title{font-family:var(--serif);font-weight:500;font-size:clamp(23px,1.8vw,27px);letter-spacing:-.01em;color:var(--navy);margin-bottom:16px}
.footer-col ul{display:grid;gap:8px;font-size:15.5px}
.footer-col a{text-decoration:none;color:var(--ink);transition:color .3s var(--ease)}
.footer-col a:hover{color:var(--navy)}
.footer-base{margin-top:clamp(40px,5vw,72px);padding-top:22px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.footer-base a{color:var(--navy);font-weight:600;text-decoration:none}
.footer-base a:hover{text-decoration:underline}
@media (max-width:899px){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-brand{grid-column:1/-1}}

/* ---------- motion helpers ---------- */
html.reduced .strategy{height:auto;min-height:0}
html.reduced .strategy-track{flex-wrap:wrap;width:auto}
html.reduced .strategy-bg img{width:100%}
html.js [data-reveal],html.js [data-reveal-item]{opacity:0}
html.reduced [data-reveal],html.reduced [data-reveal-item]{opacity:1}
@media (prefers-reduced-motion:reduce){
  html.js [data-reveal],html.js [data-reveal-item]{opacity:1}
  .marquee-track,.hero-float i,.card-bubbles i{animation:none}
  .statement-text .w{opacity:1}
  *{scroll-behavior:auto}
}

/* short desktop viewports: keep the pinned strategy inside the screen */
@media (min-width:900px) and (max-height:760px){
  .strategy-inner{padding:24px 0}
  .strategy-head{padding-bottom:28px}
  .strategy-head p{font-size:15px;line-height:1.5}
  .q-card{min-height:200px;padding:22px 26px}
  .q-num{font-size:44px}
  .q-card p{font-size:18px}
}
