
*{box-sizing:border-box}
:root{--black:#000;--white:#fff;--deepTeal:#006D74;--teal:#0AA3AC;--aqua:#1ECAD3;
--softWhite:#F9FAFB;--charcoal:#2E3238;--gray:#726E75;--orange:#E86A33;
--gut:24px;--maxw:1240px}
@media(min-width:768px){:root{--gut:48px}}
html{scroll-behavior:smooth;overflow-x:hidden;scroll-padding-top:90px;}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--charcoal);background:#fff;
overflow-x:hidden;-webkit-font-smoothing:antialiased;line-height:1.5}
a{text-decoration:none;color:inherit}ul{margin:0;padding:0;list-style:none}p{margin:0}
h1,h2,h3,h4{margin:0;font-weight:500;letter-spacing:-.015em}

/* ONE SITE GRID — every section uses this identical container (item 18) */
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--gut);padding-right:var(--gut)}

header{position:sticky;top:0;z-index:40;background:var(--black)}
.hdr{height:78px;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:baseline}
.logo .h{font-family:Georgia,serif;font-weight:700;font-size:20px;color:#fff;transform:skewX(-12deg);display:inline-block;margin-right:1px}
.logo .n{font-family:Georgia,serif;font-size:19px;color:#fff;letter-spacing:.02em}
.nav{display:none;align-items:center;gap:30px}
.navcta{display:none}
@media(min-width:1024px){.nav{display:flex}.navcta{display:block}.mobtoggle{display:none}}
.nav a{font-size:14px;color:rgba(255,255,255,.8);transition:color .15s}
.nav a:hover,.nav a.on{color:var(--aqua)}
.mobtoggle{background:none;border:0;cursor:pointer;padding:8px}
.mobtoggle span{display:block;height:1px;background:#fff;margin:5px 0;width:24px}
.mobtoggle span:last-child{width:16px}
#mobnav{display:none;border-top:1px solid rgba(255,255,255,.14);padding:22px var(--gut);flex-direction:column;gap:16px}
#mobnav.open{display:flex}#mobnav a{font-size:14px;color:rgba(255,255,255,.8)}

.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;font-size:14px;font-weight:600;transition:all .2s;border:0;cursor:pointer}
.btn-p{background:var(--deepTeal);color:#fff}.btn-p:hover{background:var(--teal)}
.btn-g{background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff}
.btn-g:hover{border-color:var(--aqua);color:var(--aqua)}
.btn-gl{background:transparent;border:1px solid rgba(0,0,0,.22);color:var(--black)}
.btn-gl:hover{border-color:var(--deepTeal);color:var(--deepTeal)}

.sec{padding:72px 0}
@media(min-width:768px){.sec{padding:104px 0}}
.eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.eyebrow i{display:block;width:34px;height:2px;background:var(--orange);flex:0 0 auto}
.eyebrow span{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--gray)}
h1{font-size:clamp(34px,5.4vw,62px);line-height:1.06}
h2.big{font-size:clamp(27px,3.5vw,42px);line-height:1.16}
.lead{font-size:clamp(16px,1.6vw,19px);line-height:1.68}
.small{font-size:14px;line-height:1.7;color:var(--gray)}

/* MOTION (kept from previous pass) */
.m{opacity:0;transform:translateY(22px);transition:opacity .65s cubic-bezier(.2,.7,.2,1),transform .65s cubic-bezier(.2,.7,.2,1)}
.m.ml{transform:translateX(-34px)}.m.mr{transform:translateX(34px)}
.m.in{opacity:1;transform:none}
.d1{transition-delay:.07s}.d2{transition-delay:.14s}.d3{transition-delay:.21s}.d4{transition-delay:.28s}
html.nojs .m{opacity:1!important;transform:none!important}
.rule-draw{transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.rule-draw.in{transform:scaleX(1)}
html.nojs .rule-draw{transform:none!important}

/* HERO — editorial type + negative space, no diagram */
.hero{background:var(--black);color:#fff;position:relative;overflow:hidden}
.hero .in{padding:88px 0 96px}
@media(min-width:768px){.hero .in{padding:128px 0 136px}}
.hero h1{max-width:15ch}
.hero .lead{margin-top:30px;max-width:44ch;color:rgba(255,255,255,.72)}
.hbtns{margin-top:40px;display:flex;flex-wrap:wrap;gap:16px}
.heroline{margin-top:64px;height:1px;background:rgba(255,255,255,.16);transform-origin:left}
.herometa{margin-top:22px;display:flex;flex-wrap:wrap;gap:10px 34px}
.herometa span{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.42)}
.herometa span.acc{color:var(--aqua)}

/* lifecycle */
.lcd{position:relative;display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid rgba(0,0,0,.14)}
@media(min-width:860px){.lcd{grid-template-columns:repeat(3,1fr)}}
.lcline{position:absolute;left:0;right:0;top:-1px;height:2px;overflow:hidden}
.lcline i{position:absolute;inset:0;background:linear-gradient(90deg,var(--deepTeal),var(--teal));
transform:scaleX(0);transform-origin:left;transition:transform 1.3s cubic-bezier(.3,.7,.3,1)}
.lcline.in i{transform:scaleX(1)}
.lcnode{padding:30px 0 34px;border-bottom:1px solid rgba(0,0,0,.1)}
@media(min-width:860px){.lcnode{padding:34px 34px 40px 0;border-bottom:0}
 .lcnode+.lcnode{padding-left:34px;border-left:1px solid rgba(0,0,0,.1)}}
.lcnode .num{font-family:Georgia,serif;font-size:15px;color:var(--deepTeal);letter-spacing:.06em}
.lcnode h3{font-size:21px;margin-top:10px;color:var(--black)}
.lcnode p{font-size:14.5px;line-height:1.65;color:var(--gray);margin-top:8px}

/* pillars */
.pgrid{display:grid;grid-template-columns:1fr;gap:40px}
@media(min-width:900px){.pgrid{grid-template-columns:7fr 4fr;gap:72px;align-items:start}
 .pillar.left .pcopy{order:2}.pillar.left .pside{order:1}}
.pnum{font-family:Georgia,serif;font-size:15px;letter-spacing:.06em;color:var(--deepTeal)}
.pillar h2{font-size:clamp(30px,4vw,50px);color:var(--black);margin-top:10px;line-height:1.04}
.psub{font-size:15px;color:var(--gray);margin-top:12px}
.porange{height:2px;width:52px;background:var(--orange);margin-top:24px}
.pintro{font-size:clamp(16px,1.55vw,19px);line-height:1.7;color:var(--charcoal);margin-top:26px;max-width:54ch}
.pblock{margin-top:38px}
.pblock h4{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gray);font-weight:700;margin-bottom:14px}
.plist li{font-size:15px;line-height:1.6;color:var(--charcoal);padding:9px 0;border-bottom:1px solid rgba(0,0,0,.08)}
.plist li:first-child{border-top:1px solid rgba(0,0,0,.08)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--charcoal);padding:7px 13px;border:1px solid rgba(0,0,0,.18)}
/* side rail: quiet editorial marker, not a diagram */
.pside{position:relative}
.prail{border-left:2px solid var(--deepTeal);padding-left:22px}
.prail .k{font-family:Georgia,serif;font-size:clamp(44px,6vw,84px);line-height:.9;color:rgba(0,0,0,.07)}
.pillar[data-bg="dark"] .prail .k{color:rgba(255,255,255,.09)}
.prail p{font-size:14px;line-height:1.7;color:var(--gray);margin-top:18px;max-width:30ch}

/* one leader section */
.ol{background:var(--black);color:#fff}
.ol h2{max-width:16ch}
.ol .lead{color:rgba(255,255,255,.72);max-width:60ch;margin-top:24px}
.olgrid{display:grid;grid-template-columns:1fr;gap:0;margin-top:64px;border-top:1px solid rgba(255,255,255,.16)}
@media(min-width:760px){.olgrid{grid-template-columns:repeat(4,1fr)}}
.olcell{padding:26px 0 30px;border-bottom:1px solid rgba(255,255,255,.12)}
@media(min-width:760px){.olcell{padding:28px 26px 34px 0;border-bottom:0}
 .olcell+.olcell{padding-left:26px;border-left:1px solid rgba(255,255,255,.12)}}
.olcell h3{font-size:19px;color:#fff}
.olcell .dot{display:block;width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.3);margin-bottom:16px;transition:background .45s ease,transform .45s ease}
.olcell.on .dot{background:var(--orange);transform:scale(1.35)}
.olcell p{font-size:14px;line-height:1.65;color:rgba(255,255,255,.6);margin-top:10px}

/* selected work */
.wgrid{display:grid;grid-template-columns:1fr;gap:28px}
@media(min-width:680px){.wgrid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1040px){.wgrid{grid-template-columns:repeat(3,1fr)}}
.wcard{display:flex;flex-direction:column;position:relative;overflow:hidden;background:#fff;
border:1px solid rgba(0,0,0,.1);transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .3s}
.wcard:hover{transform:translateY(-3px);border-color:rgba(0,109,116,.5)}
.wcard:after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--orange);
transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.wcard:hover:after{transform:scaleX(1)}
.wcover{position:relative;aspect-ratio:3/2;background:var(--charcoal);overflow:hidden;
display:flex;flex-direction:column;justify-content:space-between;padding:22px;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.wcard:hover .wcover{transform:scale(1.02)}
.wcover .n{font-family:Georgia,serif;font-size:52px;line-height:1;color:rgba(255,255,255,.22)}
.wcover .cat{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--aqua)}
.wcover i{position:absolute;left:22px;bottom:56px;width:44px;height:2px;background:var(--orange)}
.wpad{padding:22px;display:flex;flex-direction:column;gap:9px;flex:1}
.wco{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray)}
.wcard h3{font-size:17px;line-height:1.32;color:var(--black)}
.wtags{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.wtag{font-size:10px;letter-spacing:.09em;text-transform:uppercase;padding:4px 8px;background:rgba(0,109,116,.08);color:var(--deepTeal)}
.wch{font-size:13.5px;line-height:1.6;color:var(--gray)}
.wim{font-size:13.5px;line-height:1.6;color:var(--charcoal)}
.wpf{font-size:12px;font-weight:700;color:var(--deepTeal);margin-top:auto;padding-top:10px}

/* way + cta */
.way{background:var(--softWhite)}
.way h2{max-width:22ch}
.cta{background:var(--deepTeal);color:#fff}
.cta h2{font-size:clamp(28px,4vw,50px);line-height:1.1;max-width:17ch}
.cta p{max-width:46ch;margin-top:22px;line-height:1.7;color:rgba(255,255,255,.85);font-size:17px}
.ctabtns{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px}

footer{background:var(--black);color:rgba(255,255,255,.6);font-size:14px}
.fgrid{display:grid;grid-template-columns:1fr;gap:36px}
@media(min-width:768px){.fgrid{grid-template-columns:2fr 1fr 1fr 1fr}}
footer h4{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-bottom:15px;font-weight:400}
footer li{margin-bottom:8px}footer a:hover{color:#fff}
.fbot{margin-top:44px;padding-top:26px;border-top:1px solid rgba(255,255,255,.1);font-size:12px}

@media(prefers-reduced-motion:reduce){
 .m,.rule-draw,.lcline i,.dot,.wcover{transition:none!important;opacity:1!important;transform:none!important}
 .lcline i{transform:scaleX(1)!important}
}

/* HOME-specific */


4%{opacity:1;transform:none}13%{opacity:1}17%,100%{opacity:0;transform:translateY(-6px)}}

@media(prefers-reduced-motion:reduce){}



.cm-line{display:block;opacity:0;transform:translateX(-34px);animation:cmIn .7s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes cmIn{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.cm-line{animation:none;opacity:1;transform:none}}
.g2{display:grid;grid-template-columns:1fr;gap:1px;background:rgba(0,0,0,.1)}
@media(min-width:700px){.g2{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.g2{grid-template-columns:repeat(3,1fr)}}
.cell{background:#fff;padding:24px}
.cell h4{font-size:15px;color:var(--black);margin-bottom:8px}
.cell p{font-size:13.5px;line-height:1.6;color:var(--gray)}
.sitlist{display:grid;grid-template-columns:1fr;gap:0}
@media(min-width:700px){.sitlist{grid-template-columns:repeat(2,1fr);column-gap:56px}}
.sitlist li{font-size:15.5px;line-height:1.55;color:var(--charcoal);padding:14px 0 14px 22px;position:relative;border-bottom:1px solid rgba(0,0,0,.09)}
.sitlist li:before{content:'';position:absolute;left:0;top:22px;width:9px;height:1px;background:var(--orange)}
.pil{background:#fff;border:1px solid rgba(0,0,0,.1);padding:28px;display:flex;flex-direction:column;gap:12px}
.pil.acc{border-top:3px solid var(--orange)}
.pil h3{font-size:21px;color:var(--black)}
.pil .s{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--gray)}
.pil p{font-size:14px;line-height:1.65;color:var(--charcoal)}
.pil li{font-size:13.5px;color:var(--gray);padding:6px 0;border-bottom:1px solid rgba(0,0,0,.07)}
.waygrid{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid rgba(255,255,255,.18)}
@media(min-width:820px){.waygrid{grid-template-columns:repeat(3,1fr)}}
.wcell{padding:28px 0 32px;border-bottom:1px solid rgba(255,255,255,.12)}
@media(min-width:820px){.wcell{padding:30px 30px 36px 0;border-bottom:0}
.wcell+.wcell{padding-left:30px;border-left:1px solid rgba(255,255,255,.12)}}
.wcell .st{font-family:Georgia,serif;font-size:14px;color:var(--aqua);letter-spacing:.06em}
.wcell h3{font-size:24px;color:#fff;margin-top:10px}
.wcell .ld{font-size:14.5px;color:var(--aqua);margin-top:6px}
.wcell p{font-size:14px;line-height:1.65;color:rgba(255,255,255,.62);margin-top:12px}
.ind{display:flex;flex-wrap:wrap;gap:10px}
.ind span{font-size:13px;padding:10px 16px;border:1px solid rgba(0,0,0,.16);color:var(--charcoal)}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}
@media(min-width:820px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat .n{font-size:clamp(30px,3.6vw,44px);font-weight:500;color:var(--black)}
.stat .l{font-size:12.5px;line-height:1.5;color:var(--gray);margin-top:8px}
.fcase{background:#fff;border:1px solid rgba(0,0,0,.1);padding:26px;display:flex;flex-direction:column;gap:11px;
transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .3s}
.fcase:hover{transform:translateY(-3px);border-color:rgba(0,109,116,.5)}
.fcase .tg{display:flex;flex-wrap:wrap;gap:6px}
.fcase .tg span{font-size:10px;letter-spacing:.09em;text-transform:uppercase;padding:4px 8px;background:rgba(0,109,116,.08);color:var(--deepTeal)}
.fcase .cl{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray)}
.fcase h3{font-size:17px;line-height:1.32;color:var(--black)}
.fcase p{font-size:13.5px;line-height:1.6;color:var(--gray)}
.fcase .pf{font-size:12px;font-weight:700;color:var(--deepTeal);margin-top:auto;padding-top:8px}
.fcase .pf.acc{color:var(--orange)}
.nl{background:var(--charcoal);color:#fff}
.nlform{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.nlform input{flex:1 1 260px;padding:14px 16px;border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;font-size:14px}
.nlform input::placeholder{color:rgba(255,255,255,.4)}

@media(min-width:860px){.posg{grid-template-columns:1fr 1fr!important;gap:64px!important}}
@media(min-width:900px){.pilg{grid-template-columns:repeat(3,1fr)!important}}
@media(min-width:760px){.fcg{grid-template-columns:repeat(2,1fr)!important}}
@media(min-width:1100px){.fcg{grid-template-columns:repeat(4,1fr)!important}}

/* ============================================================
   MOBILE HARDENING — composed, not scaled.
   Targets verified: 320 / 375 / 390 / 430 / 768
   ============================================================ */
html,body{max-width:100%;overflow-x:hidden}
img,svg,video,iframe{max-width:100%}
*{min-width:0}
@media(max-width:640px){
  :root{--gut:20px}
  .sec{padding:44px 0}
  h1{font-size:clamp(1.9rem,8.6vw,2.6rem);line-height:1.1}
  h2.big{font-size:clamp(1.45rem,6.4vw,2rem);line-height:1.2}
  .lead{font-size:16px;line-height:1.62}
  .hero .in{padding:52px 0 56px}
  .hbtns,.ctabtns{flex-direction:column;align-items:flex-start;gap:12px;width:100%}
  .hbtns .btn,.ctabtns .btn{width:100%;justify-content:center}
  .herometa{gap:8px 18px;margin-top:16px}
  .herometa span{font-size:10.5px}
  .heroline{margin-top:40px}
  .eyebrow{margin-bottom:16px}
  .chip,.wtag{white-space:normal;overflow-wrap:anywhere}
  .chips{gap:6px}
  .stats{grid-template-columns:repeat(2,1fr);gap:22px}
  .sitlist li{padding:12px 0 12px 18px;font-size:14.5px}
  .plist li{font-size:14px;padding:8px 0}
  .pintro{font-size:16px;margin-top:20px}
  .pblock{margin-top:26px}
  .wgrid,.fcg,.g2,.pilg{gap:16px}
  .wcover{padding:16px}
  .wcover .n{font-size:38px}
  .nlform{flex-direction:column}
  .nlform input,.nlform .btn{width:100%}
  .fgrid{gap:26px}
  .lcnode{padding:22px 0 24px}
  .olcell{padding:20px 0 22px}
  .prail{padding-left:16px}
  .prail .k{font-size:40px}
}
@media(max-width:380px){
  :root{--gut:16px}
  h1{font-size:1.75rem}
  .wcover .n{font-size:32px}
}

/* ============================================================
   HOMEPAGE HERO — rebuilt. Editorial scale, deliberate motion,
   capability progression synced to the kinetic line.
   ============================================================ */
.hero{background:var(--black);color:#fff;position:relative;overflow:hidden}
.hero-in{padding:56px 0 64px;min-height:calc(100svh - 78px);display:flex;align-items:center}
@media(min-width:1024px){.hero-in{padding:64px 0 72px}}
.hero-grid{display:grid;grid-template-columns:1fr;gap:40px;width:100%;align-items:center}
@media(min-width:1000px){.hero-grid{grid-template-columns:minmax(0,1fr) 210px;gap:64px}}
.hero-main{min-width:0}

.hero-eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.hero-eyebrow i{display:block;width:36px;height:2px;background:var(--orange)}
.hero-eyebrow span{font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:700;color:var(--aqua)}

/* dominant headline */
.hero-h1{font-size:clamp(2.6rem,7.6vw,6.4rem);line-height:1.02;letter-spacing:-.025em;
 font-weight:500;max-width:14ch;margin:0}

/* kinetic statements — part of the composition, not captions */
.kinwrap{position:relative;margin-top:26px;min-height:1.35em}
.kinstack{position:relative;min-height:1.35em}
.kl{position:absolute;left:0;top:0;display:block;opacity:0;
 font-size:clamp(1.5rem,3.4vw,3.9rem);line-height:1.15;font-weight:500;letter-spacing:-.015em;
 color:var(--aqua);transform:translateY(14px);
 transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.kl.on{opacity:1;transform:none}
.kin-fallback{display:none;font-size:clamp(1.5rem,3.4vw,3.9rem);line-height:1.15;
 font-weight:500;color:var(--aqua);letter-spacing:-.015em}
html.nojs .kinstack{display:none}
html.nojs .kin-fallback{display:block}

.hero-prop{margin-top:38px;font-size:clamp(1rem,1.55vw,1.28rem);line-height:1.55;font-weight:600;
 color:#fff;max-width:44ch}
.hero-scope{margin-top:16px;font-size:clamp(.86rem,1.05vw,.98rem);line-height:1.85;
 color:var(--aqua);max-width:52ch;letter-spacing:.01em}
.hero-sub{margin-top:16px;font-size:clamp(.88rem,1.05vw,1rem);line-height:1.7;
 color:rgba(255,255,255,.62);max-width:52ch}
.hero-ctas{margin-top:36px;display:flex;flex-wrap:wrap;gap:14px}

/* right-side capability progression — editorial device, no boxes */
.hero-caps{display:none}
@media(min-width:1000px){
  .hero-caps{display:block;border-left:1px solid rgba(255,255,255,.14);padding-left:26px}
  .hero-caps li{font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;
   color:rgba(255,255,255,.28);padding:9px 0;transition:color .6s ease,transform .6s ease}
  .hero-caps li.lit{color:var(--aqua);transform:translateX(4px)}
}

@media(prefers-reduced-motion:reduce){
  .kl{transition:none}
  .kinstack{display:none}.kin-fallback{display:block}
  .hero-caps li{transition:none}
}

/* MOBILE — recomposed. Meaningful copy inside the first screen. */
@media(max-width:999px){
  .hero-in{min-height:0;padding:36px 0 48px;display:block}
  .hero-h1{font-size:clamp(2.1rem,10.5vw,3.2rem);max-width:12ch}
  .kinwrap{margin-top:18px;min-height:2.6em}
  .kl{font-size:clamp(1.15rem,6vw,1.7rem);line-height:1.25}
  .kin-fallback{font-size:clamp(1.15rem,6vw,1.7rem)}
  .hero-prop{margin-top:26px;font-size:1rem;max-width:38ch}
  .hero-scope{font-size:.82rem;line-height:1.75;max-width:40ch}
  .hero-sub{font-size:.88rem;max-width:42ch}
  .hero-ctas{margin-top:28px;flex-direction:column;align-items:stretch;gap:11px}
  .hero-ctas .btn{width:100%;justify-content:center}
}
@media(max-width:390px){
  .hero-h1{font-size:1.95rem}
  .kl{font-size:1.1rem}
  .kinwrap{min-height:3.1em}
}
@media(max-width:330px){
  .hero-h1{font-size:1.78rem}
  .kl{font-size:1.02rem}
  .kinwrap{min-height:3.5em}
}

/* ============================================================
   SOLUTIONS — page-specific system.
   Inherits the approved global tokens, grid, buttons and motion.
   ============================================================ */

/* HERO — composed, no dead field */
.shero{background:var(--black);color:#fff;position:relative;overflow:hidden}
.shero-in{padding:52px 0 60px}
@media(min-width:1000px){.shero-in{padding:76px 0 84px}}
.shero h1{font-size:clamp(2.3rem,6.4vw,5.4rem);line-height:1.03;letter-spacing:-.025em;font-weight:500;max-width:15ch}
.shero .prop{margin-top:28px;font-size:clamp(1rem,1.5vw,1.24rem);line-height:1.6;color:rgba(255,255,255,.82);max-width:56ch}
.shero .adv{margin-top:18px;font-size:clamp(.92rem,1.1vw,1.05rem);line-height:1.65;color:var(--aqua);max-width:52ch;font-weight:600}
.shero-ctas{margin-top:34px;display:flex;flex-wrap:wrap;gap:14px}
/* lifecycle rail — typographic, not a diagram */
.lcrail{margin-top:54px;padding-top:26px;border-top:1px solid rgba(255,255,255,.14);
 display:flex;flex-wrap:wrap;gap:10px 26px;align-items:baseline}
.lcrail span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.3);
 transition:color .5s ease}
.lcrail span.lit{color:var(--aqua)}
.lcrail i{display:inline-block;width:14px;height:1px;background:rgba(255,255,255,.2);vertical-align:middle}

/* pillar intro */
.pintro-block{max-width:62ch}

/* PILLARS — two real columns; right side carries engagement + outcomes */
.pil2{display:grid;grid-template-columns:1fr;gap:36px}
@media(min-width:940px){.pil2{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:72px;align-items:start}}
.pnum2{font-family:Georgia,serif;font-size:14px;letter-spacing:.18em;color:var(--deepTeal)}
.pttl{font-size:clamp(1.9rem,3.6vw,3.1rem);line-height:1.05;color:var(--black);margin-top:12px;letter-spacing:-.02em}
.plede{font-size:clamp(1.05rem,1.6vw,1.35rem);font-weight:600;color:var(--deepTeal);margin-top:16px}
.pbody{font-size:16px;line-height:1.68;color:var(--charcoal);margin-top:16px;max-width:56ch}
.orule{height:2px;width:48px;background:var(--orange);margin-top:24px}
.psub{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gray);font-weight:700;margin-bottom:12px}
.pwhen{margin-top:34px}
.pwhen li{font-size:14.5px;line-height:1.55;color:var(--charcoal);padding:8px 0 8px 18px;position:relative;
 border-bottom:1px solid rgba(0,0,0,.07)}
.pwhen li:before{content:'';position:absolute;left:0;top:16px;width:8px;height:1px;background:var(--orange)}
.pleads{margin-top:34px;display:flex;flex-wrap:wrap;gap:7px 9px}
.pleads span{font-size:12px;letter-spacing:.02em;color:var(--charcoal);padding:6px 11px;
 border:1px solid rgba(0,0,0,.16);white-space:normal}
.pside2{position:relative}
@media(min-width:940px){.pside2{position:sticky;top:96px;border-left:2px solid var(--deepTeal);padding-left:26px}}
@media(max-width:939px){.pside2{border-top:1px solid rgba(0,0,0,.12);padding-top:28px}}
.pside2 ul li{font-size:14px;line-height:1.5;color:var(--charcoal);padding:7px 0;border-bottom:1px solid rgba(0,0,0,.07)}
.pside2 .grp+.grp{margin-top:30px}

/* creative transition */
.ctrans{background:var(--black);color:#fff;position:relative;overflow:hidden}
.ctrans h2{font-size:clamp(1.7rem,4.6vw,3.6rem);line-height:1.14;font-weight:500;letter-spacing:-.02em}
.ct-line{display:block;opacity:0;transform:translateX(-28px);
 animation:ctIn .75s cubic-bezier(.2,.7,.2,1) forwards}
.ct-line:last-child{color:var(--aqua)}
@keyframes ctIn{to{opacity:1;transform:none}}
html.nojs .ct-line{opacity:1;transform:none;animation:none}

/* one leader */
.olg{display:grid;grid-template-columns:1fr;gap:0;margin-top:52px;border-top:1px solid rgba(255,255,255,.16)}
@media(min-width:780px){.olg{grid-template-columns:repeat(4,1fr)}}
.olc{padding:24px 0 26px;border-bottom:1px solid rgba(255,255,255,.12)}
@media(min-width:780px){.olc{padding:26px 24px 30px 0;border-bottom:0}
 .olc+.olc{padding-left:24px;border-left:1px solid rgba(255,255,255,.12)}}
.olc .dot{display:block;width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.28);margin-bottom:14px;
 transition:background .5s ease,transform .5s ease}
.olc.on .dot{background:var(--orange);transform:scale(1.35)}
.olc h3{font-size:17px;color:#fff;line-height:1.25}
.olc p{font-size:13.5px;line-height:1.62;color:rgba(255,255,255,.6);margin-top:9px}

/* SELECTED WORK — editorial rows, no covers */
.cw{border-top:1px solid rgba(0,0,0,.14)}
.crow{display:grid;grid-template-columns:1fr;gap:18px;padding:34px 0;border-bottom:1px solid rgba(0,0,0,.1)}
@media(min-width:900px){.crow{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:56px;padding:44px 0}}
.cmeta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.cmeta span{font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:4px 8px;
 background:rgba(0,109,116,.08);color:var(--deepTeal)}
.cco{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gray)}
.crow h3{font-size:clamp(1.2rem,2.1vw,1.7rem);line-height:1.24;color:var(--black);margin-top:8px;letter-spacing:-.01em}
.cline{margin-top:14px}
.cline dt{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gray);font-weight:700}
.cline dd{margin:4px 0 12px;font-size:14.5px;line-height:1.6;color:var(--charcoal)}
.cproof{display:flex;flex-wrap:wrap;gap:26px}
@media(min-width:900px){.cproof{flex-direction:column;gap:22px}}
.cproof .n{font-size:clamp(1.9rem,3.2vw,2.9rem);font-weight:500;color:var(--deepTeal);line-height:1;letter-spacing:-.02em}
.cproof .l{font-size:12px;line-height:1.45;color:var(--gray);margin-top:6px;max-width:22ch}
.cnote{font-size:12.5px;color:var(--gray);font-style:italic}

/* industries — compact editorial */
.indl{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:26px}
.indl span{font-size:13px;color:var(--charcoal)}
.indl span:after{content:'·';margin-left:22px;color:rgba(0,0,0,.25)}
.indl span:last-child:after{content:''}

/* process — editorial progression */
.prg{display:grid;grid-template-columns:1fr;gap:0;margin-top:44px;border-top:1px solid rgba(0,0,0,.13)}
@media(min-width:760px){.prg{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1100px){.prg{grid-template-columns:repeat(6,1fr)}}
.prc{padding:22px 0 24px;border-bottom:1px solid rgba(0,0,0,.09)}
@media(min-width:760px){.prc{padding:24px 20px 28px 0;border-bottom:0}
 .prc+.prc{padding-left:20px;border-left:1px solid rgba(0,0,0,.09)}}
.prc .n{font-family:Georgia,serif;font-size:13px;letter-spacing:.16em;color:var(--deepTeal)}
.prc h4{font-size:15.5px;color:var(--black);margin-top:8px;line-height:1.25}
.prc p{font-size:13px;line-height:1.55;color:var(--gray);margin-top:8px}

/* MOBILE — recomposed */
@media(max-width:939px){
  .shero-in{padding:38px 0 46px}
  .shero h1{font-size:clamp(2rem,9.4vw,2.9rem);max-width:13ch}
  .shero .prop{margin-top:20px;font-size:1rem;max-width:44ch}
  .shero .adv{font-size:.95rem;max-width:42ch}
  .shero-ctas{flex-direction:column;align-items:stretch;gap:11px}
  .shero-ctas .btn{width:100%;justify-content:center}
  .lcrail{margin-top:34px;padding-top:20px;gap:8px 16px}
  .lcrail span{font-size:10px}
  .lcrail i{display:none}
  .pttl{font-size:clamp(1.75rem,8vw,2.3rem)}
  .plede{font-size:1.05rem}
  .pbody{font-size:15px}
  .pwhen,.pleads{margin-top:26px}
  .pleads span{font-size:11.5px;padding:5px 9px}
  .crow{padding:26px 0}
  .cproof{gap:20px}
  .prg{margin-top:30px}
  .olg{margin-top:36px}
}
@media(max-width:390px){
  .shero h1{font-size:1.95rem}
  .pttl{font-size:1.6rem}
  .indl{gap:6px 14px}
  .indl span:after{margin-left:14px}
}

  /* ===== standardized balanced footer ===== */
  .site-footer{background:var(--black);color:rgba(255,255,255,.7);border-top:3px solid var(--deep-teal);}
  .site-footer .fwrap{padding:48px 24px 8px;display:grid;grid-template-columns:1fr;gap:34px;max-width:1200px;margin:0 auto;}
  .fbrand .flogo{display:flex;align-items:baseline;text-decoration:none;}
  .fbrand .fhash{font-weight:700;font-size:20px;color:#fff;transform:skewX(-12deg);display:inline-block;margin-right:1px;}
  .fbrand .fname{font-size:20px;color:#fff;}
  .fstmt{font-size:14px;line-height:1.7;color:rgba(255,255,255,.6);max-width:44ch;margin-top:16px;}
  .site-footer .fgroups{display:grid;grid-template-columns:1fr;gap:32px;}
  .site-footer .flabel{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--aqua);font-weight:700;margin-bottom:14px;}
  .site-footer .flist{list-style:none;margin:0;padding:0;}
  .site-footer .flist li{margin-bottom:12px;}
  .site-footer .flist a{color:rgba(255,255,255,.9);font-size:16px;transition:color .15s;text-decoration:none;}
  .site-footer .flist a:hover{color:var(--aqua);}
  .fnews-copy{font-size:14px;line-height:1.6;color:rgba(255,255,255,.65);margin-bottom:14px;max-width:42ch;}
  .fnews-form{display:flex;gap:10px;flex-wrap:wrap;}
  .fnews-form input{flex:1;min-width:0;padding:13px 15px;background:#101010;border:1px solid rgba(255,255,255,.22);color:#fff;font-size:15px;min-height:50px;}
  .fnews-form input:focus{outline:none;border-color:var(--teal);}
  .fnews-form button{padding:13px 22px;background:var(--deep-teal);color:#fff;font-size:14px;font-weight:600;letter-spacing:.02em;min-height:50px;transition:background .2s;white-space:nowrap;border:0;cursor:pointer;}
  .fnews-form button:hover{background:#00565b;}
  .fnews-note{font-size:12px;color:rgba(255,255,255,.45);margin-top:12px;}
  .fnews-note.ok{color:var(--aqua);}
  .site-footer .fbottom{padding:28px 24px 40px;margin-top:8px;border-top:1px solid rgba(255,255,255,.1);font-size:12px;color:rgba(255,255,255,.5);max-width:1200px;margin-left:auto;margin-right:auto;}
  @media(min-width:680px){.site-footer .fgroups{grid-template-columns:1fr 1fr;gap:36px 40px;}}
  @media(min-width:960px){.site-footer .fwrap{grid-template-columns:1.4fr 2fr;gap:56px;align-items:start;}.site-footer .fgroups{grid-template-columns:1fr 1fr 1.5fr;}}
  @media(max-width:375px){.fnews-form{flex-direction:column;}.fnews-form input,.fnews-form button{width:100%;}.site-footer .fwrap{padding-left:20px;padding-right:20px;}.site-footer .fbottom{padding-left:20px;padding-right:20px;}}
