*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#FBFCFE;
  --ink:#1B1B1C;
  --ink-2:#5B5D63;
  --ink-3:#8C8F96;
  --line:rgba(20,22,28,0.1);
  --line-2:rgba(20,22,28,0.16);
  --card:rgba(255,255,255,0.68);
  --accent:#4E3A8A;
  --serif:'Instrument Serif',Georgia,serif;
  --sans:'Manrope',system-ui,-apple-system,'Helvetica Neue',sans-serif;
  --ease-out:cubic-bezier(0.23,1,0.32,1);
  --ease-in-out:cubic-bezier(0.77,0,0.175,1);
  --motion-press:140ms;
  --motion-control:180ms;
  --motion-layout:220ms;
  --motion-reveal:360ms;
  --case-study-rail:856px;
  --case-study-wide-rail:1328px;
  --case-study-gutters:64px;
  --case-study-card-radius:28px;
  --case-study-inner-radius:20px;
  --case-study-ease-out:var(--ease-out);
  --case-study-ease-in-out:var(--ease-in-out);
}

/* Base */
html{scroll-behavior:smooth}
.scroll-instant{scroll-behavior:auto!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
[id]{scroll-margin-top:96px}
@media(max-width:720px){[id]{scroll-margin-top:80px}}
body{
  font-family:var(--sans);background:var(--bg);color:var(--ink);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  line-height:1.55;font-size:16px;overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font:inherit}
::selection{background:var(--accent);color:#fff}
.page-wash{
  position:fixed;inset:-36px;z-index:-2;pointer-events:none;opacity:.4;
  background:
    radial-gradient(900px 500px at 18% 12%,rgba(120,160,255,.05),transparent 58%),
    radial-gradient(900px 520px at 82% 8%,rgba(140,170,230,.055),transparent 56%),
    linear-gradient(180deg,#FBFCFE 0%,#F6F8FC 100%);
  filter:blur(14px);
  transform:scale(1.02);
}
.page-wash::after{
  content:"";position:absolute;inset:0;
  background:rgba(251,252,254,.36);
}

/* Rails */
.w{width:min(var(--case-study-rail),calc(100% - var(--case-study-gutters)));margin:0 auto}
.wide{width:min(var(--case-study-wide-rail),calc(100% - var(--case-study-gutters)));margin:0 auto}

/* CaseStudyNav */
.case-study-nav{
  position:fixed;top:18px;left:0;right:0;z-index:50;
  width:min(var(--case-study-rail),calc(100% - var(--case-study-gutters)));margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;pointer-events:none;
}
.case-study-nav a{pointer-events:auto}
.case-study-nav__back,.case-study-nav__cta{
  min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border-radius:100px;border:1px solid var(--line);background:rgba(255,255,255,.62);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  font-size:14px;font-weight:600;padding:0 14px;
  transition:background-color 140ms ease,color 140ms ease,box-shadow 140ms ease,transform 120ms var(--case-study-ease-out);
}
.case-study-nav__back{min-width:96px;padding-left:7px;padding-right:15px}
.case-study-nav__icon{width:26px;height:26px;border-radius:50%;border:1px solid var(--line-2);display:inline-flex;align-items:center;justify-content:center;font-size:17px;line-height:1;flex:0 0 26px}
.case-study-nav__cta{background:var(--ink);border-color:var(--ink);color:#fff;padding:0 20px}
@media(hover:hover) and (pointer:fine){
  .case-study-nav__back:hover{background:#fff;box-shadow:0 8px 24px rgba(20,22,28,.08)}
  .case-study-nav__cta:hover{background:#000;box-shadow:0 8px 24px rgba(20,22,28,.16)}
}
.case-study-nav__back:active,.case-study-nav__cta:active{transform:scale(.96);transition-duration:100ms}

/* CaseStudyHero + CaseStudyHeroMedia */
.case-study-hero{padding:120px 0 28px}
.case-study-hero > .w:first-child{
  width:min(1120px,calc(100% - var(--case-study-gutters)));
}
.case-study-hero-media{
  position:relative;overflow:visible;border-radius:24px;
  background:transparent;padding:0;margin-bottom:46px;
}
.case-study-hero-media::before{display:none}
.case-study-hero-media img{width:100%;border-radius:24px}
.case-study-hero-media img,.case-study-image-card img{outline:1px solid rgba(20,22,28,.1);outline-offset:-1px}
.case-study-lightbox-trigger{
  appearance:none;border:0;background:transparent;padding:0;margin:0;color:inherit;
  display:block;width:100%;cursor:zoom-in;text-align:inherit;position:relative;border-radius:inherit;overflow:hidden;
}
.case-study-lightbox-trigger--hero{position:relative;z-index:1}
.case-study-lightbox-trigger:focus-visible{outline:2px dashed rgba(20,22,28,.54);outline-offset:6px}
.case-study-lightbox-trigger__hint{
  position:absolute;right:14px;bottom:14px;z-index:2;display:inline-flex;align-items:center;gap:7px;
  min-height:34px;padding:0 10px 0 12px;border-radius:100px;border:1px dashed rgba(20,22,28,.28);
  background:rgba(255,255,255,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  color:var(--ink);box-shadow:0 10px 28px rgba(20,22,28,.14);font-size:12px;font-weight:700;
  letter-spacing:0;line-height:1;opacity:.92;
  transition:opacity 140ms ease,background-color 140ms ease,border-color 140ms ease,box-shadow 140ms ease;
}
.case-study-lightbox-trigger__hint i{
  font-style:normal;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  background:var(--ink);color:#fff;font-size:12px;line-height:1;transition:background-color 140ms ease;
}
.case-study-lightbox-trigger__hint svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
@media(hover:hover) and (pointer:fine){
  .case-study-lightbox-trigger img{transition:outline-color 140ms ease}
  .case-study-lightbox-trigger:hover img{outline-color:rgba(20,22,28,.24)}
  .case-study-lightbox-trigger:hover .case-study-lightbox-trigger__hint{
    opacity:1;background:#fff;border-color:rgba(20,22,28,.24);
    box-shadow:0 12px 30px rgba(20,22,28,.18);
  }
  .case-study-lightbox-trigger:hover .case-study-lightbox-trigger__hint i{background:#000}
}
.case-study-lightbox-trigger:active img{outline-color:rgba(20,22,28,.32);transition-duration:100ms}

/* CaseStudyHeroActionDock */
.case-study-hero-action-dock{
  position:static;z-index:3;transform:none;width:max-content;max-width:100%;margin:16px auto 0;padding:0;
  display:flex;align-items:stretch;justify-content:center;gap:5px;
  border:0;border-radius:100px;background:transparent;
  backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;
}
.case-study-hero-action-dock__link{
  display:flex;align-items:center;justify-content:center;gap:7px;border-radius:100px;
  min-height:42px;padding:0 18px;border:0;font-size:14px;font-weight:600;color:var(--ink);
  background:rgba(20,22,28,.05);position:relative;white-space:nowrap;
  transition:background-color 140ms ease,color 140ms ease,transform 120ms var(--case-study-ease-out);
}
.case-study-hero-action-dock__link i{
  display:inline-flex;align-items:center;justify-content:center;font-style:normal;line-height:1;
  transition:transform var(--motion-press) var(--ease-out);
}
.case-study-hero-action-dock__link--jump i{
  animation:none;
}
.case-study-hero-action-dock__link--primary{background:var(--ink);color:white}
.case-study-hero-action-dock__link:focus-visible,.case-study-nav a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(hover:hover) and (pointer:fine){
  .case-study-hero-action-dock__link:hover{background:rgba(20,22,28,.1)}
  .case-study-hero-action-dock__link--jump:hover i{transform:translateY(2px)}
  .case-study-hero-action-dock__link--primary:hover{background:#000}
  .case-study-hero-action-dock__link--primary:hover i{transform:translate(2px,-2px)}
}
.case-study-hero-action-dock__link:active{transform:scale(.96);transition-duration:100ms}

/* CaseStudyHero */
.case-study-hero-summary{max-width:830px}
.case-study-kicker,.case-study-section__label,.case-study-visual-evidence__label{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3)}
.case-study-kicker{letter-spacing:.08em;margin-bottom:14px}
.case-study-title{
  font-family:var(--serif);font-size:clamp(58px,7.2vw,104px);font-weight:400;letter-spacing:-.045em;
  line-height:.94;max-width:830px;
}
.case-study-title em{font-style:italic;color:var(--accent)}
.case-study-intro{font-size:20px;color:var(--ink-2);line-height:1.55;max-width:78ch;margin-top:32px}
.case-study-meta{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:42px;padding-top:28px;border-top:1px solid var(--line);
}
.case-study-meta--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.case-study-meta dd{font-size:17px;color:var(--ink);margin-top:8px;line-height:1.35}

/* CaseStudySection */
.case-study-section{padding:46px 0}
.case-study-hero + .case-study-section{padding-top:34px}
.case-study-section h2{
  font-family:var(--serif);font-weight:400;font-size:clamp(34px,4.2vw,58px);
  letter-spacing:-.035em;line-height:1;margin:10px 0 20px;
}
.case-study-section p{font-size:19px;color:var(--ink-2);line-height:1.65;max-width:100%}
.case-study-section p + p{margin-top:18px}

/* CaseStudyCalloutList */
.case-study-callout-list{display:grid;gap:1px;border:1px solid var(--line);border-radius:var(--case-study-card-radius);overflow:hidden;margin-top:28px;background:var(--line)}
.case-study-callout{background:rgba(255,255,255,.38);padding:24px}
.case-study-callout h3{font-size:18px;font-weight:700;letter-spacing:-.02em;margin-bottom:8px}
.case-study-callout p{font-size:16px;line-height:1.55;margin:0}

/* CaseStudyMetrics */
.case-study-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border:1px solid var(--line);border-radius:var(--case-study-card-radius);overflow:hidden;background:var(--line);margin:28px 0 0}
.case-study-metric{background:rgba(255,255,255,.42);padding:26px 18px;text-align:center}
.case-study-metric strong{display:block;font-family:var(--serif);font-size:clamp(36px,4vw,52px);font-weight:400;line-height:1;color:var(--ink)}
.case-study-metric span{display:block;font-size:13px;color:var(--ink-3);margin-top:8px}

/* CaseStudySplitGrid */
.case-study-split-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--line);border-radius:var(--case-study-card-radius);overflow:hidden;background:var(--line);margin-top:28px}
.case-study-split-card{background:rgba(255,255,255,.38);padding:25px}
.case-study-split-card h3{font-size:19px;font-weight:700;letter-spacing:-.02em;margin-bottom:8px}
.case-study-split-card p{font-size:16px;line-height:1.58;margin:0}

/* CaseStudyFlow */
.case-study-flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:28px}
.case-study-flow span{display:inline-flex;align-items:center;justify-content:center;min-height:38px;border:1px solid var(--line);border-radius:100px;background:rgba(255,255,255,.5);padding:0 15px;font-size:14px;font-weight:700}
.case-study-flow i{font-style:normal;color:var(--ink-3)}

/* CaseStudyImageBand + CaseStudyImageStack */
.case-study-visual-evidence{padding:38px 0 22px;scroll-margin-top:96px}
.case-study-visual-evidence h2{
  font-family:var(--serif);font-size:clamp(48px,6vw,86px);font-weight:400;
  letter-spacing:-.045em;line-height:.94;margin-top:10px;max-width:820px;
}
.case-study-visual-evidence p{font-size:19px;color:var(--ink-2);line-height:1.62;max-width:70ch;margin-top:24px}
.case-study-image-band{padding:20px 0 40px}
.case-study-image-card{border:0;border-radius:24px;padding:0;background:transparent;overflow:hidden}
.case-study-image-card--dark{background:#0c1117}
.case-study-image-card img{width:100%;border-radius:24px}
.case-study-caption{font-size:13px;color:var(--ink-3);text-align:center;margin-top:12px}
.case-study-image-stack{display:grid;grid-template-columns:1fr;gap:40px}
.case-study-reveal-ready [data-case-reveal]{opacity:0;transform:translateY(10px);transition:opacity var(--motion-reveal) var(--ease-out),transform var(--motion-reveal) var(--ease-out);transition-delay:var(--case-reveal-delay,0ms)}
.case-study-reveal-ready [data-case-reveal="image-band"]{transform:scale(.995)}
.case-study-reveal-ready [data-case-reveal].in{opacity:1;transform:none}
.case-study-lightbox{
  position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:28px;
  background:rgba(251,252,254,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  opacity:0;pointer-events:none;transition:opacity 140ms var(--case-study-ease-out);
}
.case-study-lightbox.is-open{opacity:1;pointer-events:auto;transition-duration:180ms}
.case-study-lightbox__figure{
  width:min(1480px,100%);max-height:calc(100dvh - 56px);display:grid;grid-template-rows:minmax(0,1fr) auto;gap:12px;
  opacity:0;transform:translateY(8px) scale(.985);
  transition:opacity 120ms var(--case-study-ease-out),transform 140ms var(--case-study-ease-out);
}
.case-study-lightbox.is-open .case-study-lightbox__figure{
  opacity:1;transform:translateY(0) scale(1);transition-duration:180ms,220ms;
}
.case-study-lightbox__image{
  width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 112px);margin:0 auto;
  border-radius:18px;border:1px solid var(--line-2);box-shadow:0 24px 80px rgba(20,22,28,.18);
  object-fit:contain;background:#fff;
}
.case-study-lightbox__caption{font-size:13px;line-height:1.45;color:var(--ink-3);text-align:center}
.case-study-lightbox__close{
  position:fixed;top:18px;right:18px;width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(20,22,28,.14);background:rgba(255,255,255,.74);color:var(--ink);
  display:flex;align-items:center;justify-content:center;font-size:26px;line-height:1;cursor:pointer;
  opacity:0;transform:scale(.96);
  transition:opacity 120ms var(--case-study-ease-out),transform 120ms var(--case-study-ease-out),background-color 140ms ease;
}
.case-study-lightbox.is-open .case-study-lightbox__close{opacity:1;transform:scale(1);transition-duration:180ms}
@media(hover:hover) and (pointer:fine){.case-study-lightbox__close:hover{background:#fff}}
.case-study-lightbox__close:active{transform:scale(.96);transition-duration:100ms}
.case-study-lightbox__close:focus-visible{outline:2px dashed rgba(20,22,28,.54);outline-offset:4px}
body.case-study-lightbox-open{overflow:hidden}

@media(prefers-reduced-motion:reduce){
  .case-study-nav__back,.case-study-nav__cta,.case-study-hero-action-dock__link,.case-study-contact__button,
  .case-study-hero-action-dock__link i,.case-study-lightbox-trigger img,.case-study-lightbox-trigger__hint,.case-study-lightbox__figure,.case-study-lightbox__close{
    transform:none!important;
  }
  .case-study-hero-action-dock__link--jump i{animation:none}
  .case-study-lightbox,.case-study-lightbox__figure,.case-study-lightbox__close{transition-duration:100ms!important}
  .case-study-reveal-ready [data-case-reveal]{opacity:1!important;transform:none!important;transition:opacity 200ms ease!important;transition-delay:0ms!important}
}

/* CaseStudyOutcome */
.case-study-outcome{border:1px solid var(--line);border-radius:var(--case-study-card-radius);padding:32px;background:rgba(255,255,255,.34)}

/* CaseStudyContact */
.case-study-contact{padding:24px 0 64px}
.case-study-contact .w{width:min(var(--case-study-rail),calc(100% - var(--case-study-gutters)));max-width:none;padding:0}
.case-study-contact__card{
  background:rgba(246,248,250,0.86);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border:1px solid var(--line);border-radius:44px;padding:52px;position:relative;overflow:hidden;
  display:flex;flex-direction:column;justify-content:flex-start;box-shadow:none;
}
.case-study-contact__card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:url("cta-cloud-mask.png") center / cover no-repeat;opacity:0.98;z-index:0}
.case-study-contact__card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,0.42),rgba(255,255,255,0.1));z-index:1}
.case-study-contact__card > *,.case-study-contact__actions,.case-study-contact__foot,.case-study-contact__card h2,.case-study-contact__card p,.case-study-contact__button{position:relative;z-index:2}
.case-study-contact__main{display:grid;grid-template-columns:1fr;align-items:start;gap:36px;order:1}
.case-study-contact__copy{max-width:100%}
.case-study-contact__card h2{font-family:var(--serif);font-weight:400;font-size:clamp(54px,6vw,78px);letter-spacing:-0.04em;line-height:0.94;max-width:none}
.case-study-contact__card h2 .line{display:block;white-space:nowrap}
.case-study-contact__card h2 em{font-style:italic;color:var(--accent)}
.case-study-contact__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-self:start}
.case-study-contact__button{
  min-height:54px;width:max-content;max-width:100%;border-radius:100px;background:var(--ink);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 22px;font-size:15px;font-weight:600;flex-shrink:0;
  border:0;font-family:inherit;line-height:1;cursor:pointer;overflow:hidden;justify-self:start;margin-top:0;
  transition:background-color 140ms ease,box-shadow 140ms ease,transform 120ms var(--case-study-ease-out);
}
@media(hover:hover) and (pointer:fine){.case-study-contact__button:hover{background:#000;box-shadow:0 10px 28px rgba(20,22,28,.18)}}
.case-study-contact__button:active{transform:scale(.96);transition-duration:100ms}
.case-study-contact__button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.case-study-contact__card p{font-size:19px;color:#2d2d2d;line-height:1.5;max-width:58ch;margin-top:34px}
.case-study-contact__foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:0;padding-top:0;font-size:13.5px;font-weight:500;color:var(--ink-2);order:4}
@media(max-width:860px){
  :root{--case-study-gutters:40px}
  .case-study-hero{padding-top:100px}
  .case-study-hero-media{margin-bottom:42px}
  .case-study-meta,.case-study-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .case-study-split-grid{grid-template-columns:1fr}
  .case-study-contact__card{padding:46px 40px;border-radius:44px;min-height:0}.case-study-contact__main{gap:32px}.case-study-contact__card h2{font-size:clamp(52px,8vw,72px)}
}
@media(max-width:560px){
  :root{--case-study-card-radius:24px;--case-study-inner-radius:18px}
  .case-study-nav{top:14px}
  .case-study-title{font-size:54px}.case-study-intro{font-size:17px}.case-study-section p,.case-study-visual-evidence p{font-size:16px}
  .case-study-hero-media,.case-study-hero-media img,.case-study-image-card,.case-study-image-card img{border-radius:18px}
  .case-study-hero-action-dock{width:100%;gap:4px;margin-top:10px;padding:0}
  .case-study-hero-action-dock__link{flex:1;min-width:0;min-height:38px;padding:0 8px;font-size:12.5px;text-align:center}
  .case-study-meta,.case-study-metrics{grid-template-columns:1fr}
  .case-study-section{padding:46px 0}.case-study-visual-evidence{padding:34px 0 12px}
  .case-study-visual-evidence h2{font-size:50px}
  .case-study-image-band{padding:16px 0 30px}
  .case-study-image-stack{gap:24px}
  .case-study-flow{gap:8px}
  .case-study-flow span{min-height:36px;font-size:13px}
  .case-study-contact{padding:20px 0}
  .case-study-contact .w{width:calc(100% - 32px)}
  .case-study-contact__card{padding:36px 28px;border-radius:34px}
  .case-study-contact__main,.case-study-contact__copy{display:contents}
  .case-study-contact__card h2{order:1;width:100%;max-width:none;font-size:clamp(40px,11vw,44px)}
  .case-study-contact__card p{order:2;font-size:16px;margin-top:26px}
  .case-study-contact__actions{order:3;width:100%;flex-wrap:nowrap;margin-top:26px}
  .case-study-contact__button{min-height:52px;width:auto;flex:1;font-size:14px;margin-top:0;justify-self:start;padding:0 18px}
  .case-study-contact__foot{margin-top:18px}
}
