/* Case studies + proof: tokens, type, 3D panels, pipeline. Loaded on /work/, /work/<slug>/ and the homepage. */
:root{
  --cs-bg:#050505;
  --cs-ink:#F4F3EF;
  --cs-muted:#A09E96;
  --cs-faint:#6B6A64;
  --cs-line:rgba(244,243,239,.12);
  --cs-surface:rgba(244,243,239,.035);
  --cs-amber:#F2B544;
  --cs-amber-soft:rgba(242,181,68,.16);
  --cs-display:'Bricolage Grotesque','Montserrat',system-ui,sans-serif;
  --cs-body:'Montserrat',system-ui,sans-serif;
}
.cs{color:var(--cs-ink);font-family:var(--cs-body)}
.cs-display{font-family:var(--cs-display);font-variation-settings:'opsz' 96;font-weight:600;letter-spacing:-.035em;line-height:.98}
.cs-display-light{font-family:var(--cs-display);font-variation-settings:'opsz' 96;font-weight:400;letter-spacing:-.02em}
.cs-wrap{max-width:80rem;margin:0 auto;padding:0 1.5rem}
@media(min-width:1024px){.cs-wrap{padding:0 2rem}}
.cs-muted{color:var(--cs-muted)}
.cs-faint{color:var(--cs-faint)}
.cs-amber{color:var(--cs-amber)}
.cs-link{color:var(--cs-ink);text-decoration:underline;text-underline-offset:.3em;text-decoration-color:var(--cs-line);transition:text-decoration-color .2s}
.cs-link:hover{text-decoration-color:var(--cs-amber)}

/* Hero with the 3D field behind it */
.cs-hero{position:relative;min-height:88vh;display:flex;align-items:flex-end;overflow:hidden;background:
  radial-gradient(70% 55% at 70% 30%,rgba(242,181,68,.10),transparent 70%),
  radial-gradient(40% 40% at 20% 70%,rgba(244,243,239,.05),transparent 70%),var(--cs-bg)}
.cs-hero.has-field{background:var(--cs-bg)}
@media(max-width:767px){.cs-hero{min-height:68vh}}
.cs-hero canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.cs-hero-fade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,5,5,.15) 0%,rgba(5,5,5,0) 30%,rgba(5,5,5,.55) 62%,rgba(5,5,5,.97) 100%);pointer-events:none}
.cs-hero-inner{position:relative;z-index:2;width:100%;padding-bottom:4.5rem}
.cs-hero h1{font-size:clamp(2.75rem,8vw,7.5rem);max-width:14ch;text-shadow:0 2px 30px rgba(5,5,5,.9)}
.cs-hero p{max-width:38rem;font-size:1.0625rem;line-height:1.65;color:#CFCDC6;margin-top:1.5rem;text-shadow:0 1px 12px rgba(5,5,5,1),0 0 2px rgba(5,5,5,1)}
.cs-reveal{opacity:0;transform:translateY(22px)}
.cs-reveal.is-in{animation:cs-in .9s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes cs-in{to{opacity:1;transform:none}}

/* Proof strip: numbers read as a sentence, not a stat tile row */
.cs-proof{display:flex;flex-wrap:wrap;gap:2.5rem 3.5rem;padding:2.5rem 0;border-top:1px solid var(--cs-line);border-bottom:1px solid var(--cs-line)}
.cs-proof strong{display:block;font-family:var(--cs-display);font-variation-settings:'opsz' 96;font-weight:500;font-size:2.75rem;letter-spacing:-.03em;line-height:1}
.cs-proof .cs-plabel{display:block;margin-top:.4rem;color:var(--cs-muted);font-size:.9375rem}
.cs-proof strong .cs-stars{margin-left:.35rem;vertical-align:.35em}
.cs-stars{display:inline-flex;gap:.15rem;vertical-align:middle;color:var(--cs-amber)}
.cs-stars svg{width:1rem;height:1rem;fill:currentColor}

/* Case rows */
.cs-row{display:grid;gap:2rem;padding:4rem 0;border-bottom:1px solid var(--cs-line);align-items:center}
@media(min-width:1024px){.cs-row{grid-template-columns:1.05fr 1fr;gap:5rem;padding:5.5rem 0}}
.cs-row h2{font-size:clamp(1.9rem,3.6vw,3.25rem);max-width:16ch}
.cs-row .cs-client{font-size:.9375rem;color:var(--cs-muted);margin-bottom:1rem}
.cs-row p.cs-sum{margin-top:1.25rem;color:var(--cs-muted);line-height:1.65;max-width:44rem}
.cs-row .cs-more{display:inline-block;margin-top:1.75rem;font-weight:600}

/* 3D tilt panel */
.cs-tilt{perspective:1200px}
.cs-panel{position:relative;aspect-ratio:4/3;border-radius:1.25rem;overflow:hidden;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s;background:
  radial-gradient(120% 90% at 85% 10%,rgba(242,181,68,.16),transparent 55%),
  radial-gradient(90% 70% at 10% 95%,rgba(244,243,239,.07),transparent 60%),
  #0a0a0b;border:1px solid var(--cs-line);box-shadow:0 30px 80px -30px rgba(0,0,0,.9)}
.cs-panel:hover{box-shadow:0 50px 110px -30px rgba(0,0,0,.95),0 0 0 1px rgba(242,181,68,.25)}
.cs-panel .cs-grid{position:absolute;inset:0;background-image:linear-gradient(var(--cs-line) 1px,transparent 1px),linear-gradient(90deg,var(--cs-line) 1px,transparent 1px);background-size:3rem 3rem;opacity:.35;transform:translateZ(0)}
.cs-panel .cs-layer{position:absolute;left:2rem;right:2rem;transform:translateZ(40px)}
.cs-panel .cs-layer.top{top:1.75rem}
.cs-panel .cs-layer.bottom{bottom:1.75rem;transform:translateZ(60px)}
.cs-panel .cs-ptitle{font-family:var(--cs-display);font-variation-settings:'opsz' 96;font-weight:600;letter-spacing:-.03em;line-height:1;font-size:clamp(1.6rem,3vw,2.6rem);max-width:12ch}
.cs-panel .cs-pclient{font-size:.875rem;color:var(--cs-muted)}
.cs-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}
.cs-chip{font-size:.75rem;padding:.3rem .65rem;border:1px solid var(--cs-line);border-radius:999px;color:var(--cs-muted);background:rgba(5,5,5,.5);backdrop-filter:blur(6px)}
.cs-panel .cs-node{position:absolute;width:.55rem;height:.55rem;border-radius:50%;background:var(--cs-amber);box-shadow:0 0 18px 4px var(--cs-amber-soft);transform:translateZ(80px)}

/* Pipeline (single page) */
.cs-pipe{position:relative;margin:3.5rem 0 1rem}
.cs-pipe svg{width:100%;height:auto;display:block;overflow:visible}
.cs-pipe .cs-path{fill:none;stroke:var(--cs-amber);stroke-width:1.5;stroke-linecap:round}
.cs-pipe .cs-path-bg{fill:none;stroke:var(--cs-line);stroke-width:1.5;stroke-dasharray:3 6}
.cs-pipe circle.n{fill:#050505;stroke:var(--cs-line);stroke-width:1.5;transition:stroke .3s,fill .3s}
.cs-pipe circle.n.lit{fill:var(--cs-amber);stroke:var(--cs-amber);filter:drop-shadow(0 0 10px rgba(242,181,68,.7))}
.cs-pipe text{font-family:var(--cs-body);font-size:12px;fill:var(--cs-muted);transition:fill .3s}
.cs-pipe text.lit{fill:var(--cs-ink)}
.cs-steps{display:grid;gap:.75rem;margin-top:1.5rem;counter-reset:step}
@media(min-width:768px){.cs-steps{grid-template-columns:repeat(2,1fr)}}
.cs-steps li{list-style:none;position:relative;padding:.9rem 1rem .9rem 3rem;border:1px solid var(--cs-line);border-radius:.75rem;background:var(--cs-surface);color:var(--cs-muted);font-size:.9375rem;line-height:1.5;transition:color .3s,border-color .3s}
.cs-steps li::before{counter-increment:step;content:counter(step);position:absolute;left:1rem;top:.9rem;width:1.5rem;height:1.5rem;border-radius:50%;border:1px solid var(--cs-line);display:grid;place-items:center;font-size:.7rem;color:var(--cs-faint);font-variant-numeric:tabular-nums}
.cs-steps li.lit{color:var(--cs-ink);border-color:rgba(242,181,68,.35)}
.cs-steps li.lit::before{background:var(--cs-amber);color:#050505;border-color:var(--cs-amber)}

/* Single page body prose */
.cs-prose{font-size:1.0625rem;line-height:1.75;color:#D5D3CC;max-width:42rem}
.cs-prose h2{font-family:var(--cs-display);font-variation-settings:'opsz' 96;font-weight:600;letter-spacing:-.03em;font-size:1.9rem;color:var(--cs-ink);margin:2.75rem 0 1rem;line-height:1.1}
.cs-prose p{margin:0 0 1.25rem}
.cs-prose strong{color:var(--cs-ink)}
.cs-prose ul{padding-left:1.25rem;margin:0 0 1.25rem;list-style:disc}
.cs-prose li{margin:.35rem 0}
.cs-facts{display:grid;gap:1.25rem;padding:1.75rem 0;border-top:1px solid var(--cs-line);border-bottom:1px solid var(--cs-line)}
@media(min-width:768px){.cs-facts{grid-template-columns:repeat(3,1fr)}}
.cs-facts dt{font-size:.8125rem;color:var(--cs-faint)}
.cs-facts dd{margin:.35rem 0 0;font-size:.9375rem;line-height:1.5}

/* Review */
.cs-review{position:relative;padding:3rem 0 0;margin-top:3.5rem;border-top:1px solid var(--cs-line)}
.cs-review blockquote{font-family:var(--cs-display);font-variation-settings:'opsz' 48;font-weight:400;letter-spacing:-.015em;font-size:clamp(1.35rem,2.4vw,2rem);line-height:1.3;max-width:34ch}
.cs-review blockquote::before{content:'\201C';color:var(--cs-amber);margin-right:.1em}
.cs-review figcaption{margin-top:1.5rem;color:var(--cs-muted);font-size:.9375rem;display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center}

/* Testimonials (home) */
.cs-testi{display:grid;gap:1.5rem}
@media(min-width:1024px){.cs-testi{grid-template-columns:repeat(3,1fr)}}
.cs-testi article{padding:2rem;border:1px solid var(--cs-line);border-radius:1.25rem;background:var(--cs-surface);display:flex;flex-direction:column;gap:1.25rem}
.cs-testi blockquote{font-family:var(--cs-display);font-variation-settings:'opsz' 32;font-weight:400;font-size:1.125rem;line-height:1.45;color:#E6E4DE;flex:1}
.cs-testi .who{color:var(--cs-muted);font-size:.875rem;line-height:1.5}
.cs-testi .who b{display:block;color:var(--cs-ink);font-weight:600}
.cs-testi .meta{display:flex;align-items:center;gap:.75rem;font-size:.8125rem;color:var(--cs-muted)}

.cs-next{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding:2.5rem 0;border-top:1px solid var(--cs-line);margin-top:3.5rem}
.cs-next a{font-family:var(--cs-display);font-variation-settings:'opsz' 48;font-weight:500;font-size:1.25rem;letter-spacing:-.02em}
.cs-next small{display:block;font-family:var(--cs-body);font-size:.8125rem;color:var(--cs-faint);margin-bottom:.35rem}

.cs-cta{padding:6rem 0;text-align:left}
.cs-cta h2{font-size:clamp(2rem,4.5vw,3.5rem);max-width:16ch}
.cs-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.9rem 1.6rem;border-radius:999px;background:var(--cs-ink);color:#050505;font-weight:600;font-size:.9375rem;transition:background .2s,transform .2s}
.cs-btn:hover{background:#fff;transform:translateY(-1px)}

@media(max-width:640px){
  .cs-panel{aspect-ratio:1/1}
  .cs-panel .cs-layer{left:1.25rem;right:1.25rem}
  .cs-panel .cs-ptitle{font-size:1.45rem;max-width:14ch}
  .cs-panel .cs-chips .cs-chip:nth-child(n+4){display:none}
}
@media(prefers-reduced-motion:reduce){
  .cs-reveal{opacity:1;transform:none;animation:none}
  .cs-panel{transition:none}
}

/* Plain list variant: same cards, no step numbers (for lists that are not a sequence) */
.cs-steps--plain li{padding-left:2.25rem}
.cs-steps--plain li::before{content:'';width:.45rem;height:.45rem;top:1.25rem;left:1rem;border:0;background:var(--cs-amber)}
