/* ===== Case study pages (shares tokens, nav, buttons from styles.css) ===== */
.cs{--brand:#ff7a1a;--brand-soft:rgba(255,122,26,.14)}
.cs .nav{background:rgba(14,14,14,.7);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--line)}
.cs-back{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:14px;transition:color .2s}
.cs-back:hover{color:var(--fg)}
.cs-back .arr{transition:transform .3s var(--ease)}
.cs-back:hover .arr{transform:translateX(-4px)}

/* reveal */
.cs-rv{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.cs-rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.cs-rv{opacity:1;transform:none;transition:none}}

/* hero */
.cs-hero{position:relative;padding:170px 0 0;isolation:isolate;overflow:hidden}
.cs-hero::before{content:"";position:absolute;inset:0 0 auto;height:900px;z-index:-1;pointer-events:none;
  background:radial-gradient(50% 55% at 80% 5%,rgba(255,122,26,.22),transparent 70%),radial-gradient(40% 50% at 10% 15%,rgba(200,255,61,.08),transparent 70%)}
.cs-crumbs{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:28px}
.cs-crumbs a:hover{color:var(--fg)}
.cs-crumbs i{font-style:normal;opacity:.5}
.cs-brand{display:inline-flex;align-items:center;gap:14px;margin-bottom:22px}
.cs-brand img{width:52px;height:52px;border-radius:14px;border:1px solid var(--line2);background:#1a1310}
.cs-brand span{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);padding:6px 12px;border:1px solid rgba(255,122,26,.35);border-radius:999px;background:var(--brand-soft)}
.cs-title{font-size:clamp(48px,9vw,140px);line-height:.92;letter-spacing:-.055em;font-weight:600}
.cs-title em{color:var(--brand)}
.cs-lede{max-width:760px;font-size:clamp(18px,2vw,25px);line-height:1.42;letter-spacing:-.015em;margin-top:30px;color:rgba(242,240,235,.92)}
.cs-lede b{font-weight:500;color:var(--fg)}
.cs-meta{display:grid;grid-template-columns:repeat(4,1fr);margin-top:56px;border:1px solid var(--line);border-radius:var(--r);background:rgba(255,255,255,.015)}
.cs-meta div{padding:22px 24px;display:grid;gap:6px}
.cs-meta div+div{border-left:1px solid var(--line)}
.cs-meta small{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.cs-meta b{font-weight:500;font-size:16px;letter-spacing:-.01em}
.cs-meta a{color:var(--accent)}
.cs-meta a:hover{text-decoration:underline}

/* framed shots */
.cs-shot{position:relative;border:1px solid var(--line2);border-radius:16px;background:#111;overflow:hidden;cursor:zoom-in;
  box-shadow:0 40px 100px -30px rgba(255,122,26,.18),0 30px 60px rgba(0,0,0,.55)}
.cs-shot .bar{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line);background:#161616}
.cs-shot .bar i{width:9px;height:9px;border-radius:50%;background:#333}
.cs-shot .bar span{margin-left:10px;font-family:var(--mono);font-size:11px;color:var(--muted)}
.cs-shot img{width:100%;height:auto;transition:transform 1.2s var(--ease)}
.cs-shot:hover img{transform:scale(1.015)}
.cs-hero-shot{margin-top:70px;perspective:1600px}
.cs-hero-shot .cs-shot{transform:rotateX(10deg) scale(.96);transform-origin:top center;transition:transform 1.4s var(--ease)}
.cs-hero-shot.in .cs-shot{transform:none}
figure{margin:0}
figcaption{font-size:13px;color:var(--muted);margin-top:14px;display:flex;gap:10px;align-items:baseline}
figcaption b{font-family:var(--mono);font-size:11px;font-weight:400;color:var(--brand);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}

/* stats */
.cs-stats{display:grid;grid-template-columns:repeat(6,1fr);margin-top:90px;border-block:1px solid var(--line)}
.cs-stat{padding:34px 22px;display:grid;gap:6px}
.cs-stat+.cs-stat{border-left:1px solid var(--line)}
.cs-stat strong{font-size:clamp(34px,4vw,56px);font-weight:500;letter-spacing:-.045em;line-height:1}
.cs-stat small{color:var(--muted);font-size:13px;line-height:1.35}

/* section scaffolding */
.cs-sec{padding:130px 0 0}
.cs-sec-head{display:grid;grid-template-columns:260px 1fr;gap:40px;margin-bottom:56px}
.cs-sec-head .eyebrow{margin:10px 0 0}
.cs-sec-head h2{font-size:clamp(34px,5vw,68px)}
.cs-sec-head p{color:var(--muted);font-size:18px;margin-top:20px;max-width:640px}
.cs-body{margin-left:300px}

/* summary list */
.cs-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cs-card{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:28px;display:grid;gap:10px;align-content:start;transition:border-color .4s}
.cs-card:hover{border-color:var(--line2)}
.cs-card small{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.cs-card h3{font-size:21px;font-weight:500;letter-spacing:-.02em;line-height:1.2}
.cs-card p{color:var(--muted);font-size:15px}

/* users */
.cs-users{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.cs-user{border-top:1px solid var(--line2);padding-top:20px;display:grid;gap:8px}
.cs-user span{font-family:var(--mono);font-size:11px;color:var(--brand);letter-spacing:.08em}
.cs-user h3{font-size:19px;font-weight:500;letter-spacing:-.02em}
.cs-user p{color:var(--muted);font-size:14.5px}
.cs-quote{font-family:var(--serif);font-style:italic;font-size:clamp(26px,3.2vw,42px);line-height:1.15;letter-spacing:-.01em;max-width:920px;margin-bottom:64px}
.cs-quote span{color:var(--muted)}

/* problems */
.cs-problems{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.cs-problem{background:var(--bg);padding:32px 28px 36px;display:grid;gap:12px;align-content:start;transition:background .4s}
.cs-problem:hover{background:#101010}
.cs-problem .n{font-family:var(--mono);font-size:12px;color:var(--muted)}
.cs-problem h3{font-size:21px;font-weight:500;letter-spacing:-.02em;line-height:1.2}
.cs-problem p{color:var(--muted);font-size:15px}
.cs-note{margin-top:22px;display:flex;gap:14px;align-items:flex-start;padding:20px 24px;border:1px dashed rgba(255,122,26,.35);border-radius:14px;color:rgba(242,240,235,.85);font-size:15px;background:rgba(255,122,26,.04)}
.cs-note b{color:var(--brand);font-family:var(--mono);font-size:11px;font-weight:400;text-transform:uppercase;letter-spacing:.1em;padding-top:3px;white-space:nowrap}

/* goals */
.cs-goals{border-top:1px solid var(--line)}
.cs-goal{display:grid;grid-template-columns:60px 1fr 1.2fr;gap:24px;padding:26px 0;border-bottom:1px solid var(--line);align-items:baseline}
.cs-goal span{font-family:var(--mono);font-size:12px;color:var(--muted)}
.cs-goal h3{font-size:clamp(19px,2vw,24px);font-weight:500;letter-spacing:-.02em}
.cs-goal p{color:var(--muted);font-size:15.5px}
.cs-goal p::before{content:"✓ ";color:var(--accent)}

/* solution features */
.cs-feature{display:grid;grid-template-columns:1fr 1.45fr;gap:56px;align-items:center;padding:56px 0;border-top:1px solid var(--line)}
.cs-feature:first-child{border-top:none;padding-top:0}
.cs-feature.flip{grid-template-columns:1.45fr 1fr}
.cs-feature.flip .cs-f-text{order:2}
.cs-f-text{display:grid;gap:16px;align-content:start}
.cs-f-tag{display:inline-flex;align-self:start;justify-self:start;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);border:1px solid var(--line2);border-radius:999px;padding:6px 12px}
.cs-f-tag i{font-style:normal;color:var(--brand)}
.cs-f-text h3{font-size:clamp(26px,3vw,40px);font-weight:500;letter-spacing:-.035em;line-height:1.05}
.cs-f-text p{color:var(--muted);font-size:16px}
.cs-f-text ul{list-style:none;display:grid;gap:10px;margin-top:4px}
.cs-f-text li{position:relative;padding-left:22px;font-size:15px;color:rgba(242,240,235,.88)}
.cs-f-text li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:1.5px;background:var(--accent)}
.cs-stack{display:grid;gap:18px}
.cs-stack .cs-shot:nth-child(2){width:86%;margin:-90px 0 0 auto;box-shadow:0 30px 80px rgba(0,0,0,.7)}
.cs-phones{display:flex;justify-content:center;gap:18px;align-items:flex-end;padding:20px 0 0}
.cs-phones .cs-shot{border-radius:26px;width:32%;max-width:240px;box-shadow:0 30px 70px rgba(0,0,0,.6)}
.cs-phones .cs-shot:nth-child(2){transform:translateY(-34px)}
.cs-phones .cs-shot img{border-radius:25px}
.cs-guard{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px}
.cs-guard span{font-size:14px;padding:10px 16px;border:1px solid var(--line2);border-radius:999px;color:rgba(242,240,235,.88)}
.cs-guard span::before{content:"◆ ";color:var(--accent);font-size:10px}

/* matrix: problem → answer */
.cs-matrix{display:grid;gap:12px}
.cs-row{display:grid;grid-template-columns:240px 1fr;gap:28px;padding:22px 26px;border:1px solid var(--line);border-radius:14px;background:var(--card)}
.cs-row h4{font-weight:500;font-size:16px;letter-spacing:-.01em;color:var(--brand)}
.cs-row p{color:rgba(242,240,235,.82);font-size:15px}

/* architecture */
.cs-arch{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:0;align-items:stretch;border:1px solid var(--line);border-radius:22px;overflow:hidden;
  background:radial-gradient(60% 80% at 50% 50%,rgba(255,122,26,.08),transparent 70%),#0d0d0d}
.cs-col{padding:30px 26px;display:grid;gap:10px;align-content:center;position:relative}
.cs-col>small{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:6px}
.cs-col .chip{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid var(--line2);border-radius:10px;background:rgba(255,255,255,.02);font-size:14px}
.cs-col .chip::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--muted);flex:none}
.cs-col.in-col .chip::before{background:var(--accent)}
.cs-col.out-col .chip::before{background:var(--brand)}
.cs-core{border-inline:1px dashed var(--line2);background:rgba(255,255,255,.015)}
.cs-core .chip{background:#141414;justify-content:space-between}
.cs-core .chip::before{display:none}
.cs-core .chip em{font-family:var(--mono);font-style:normal;font-size:11px;color:var(--muted)}
.cs-core .chip.hl{border-color:rgba(255,122,26,.5);background:var(--brand-soft)}
.cs-flow{position:absolute;top:50%;width:26px;height:26px;margin-top:-13px;border-radius:50%;background:var(--bg);border:1px solid var(--line2);display:grid;place-items:center;font-size:13px;color:var(--fg);z-index:2}
.cs-flow.l{left:-13px}.cs-flow.r{right:-13px}
.cs-arch-cap{color:var(--muted);font-size:15px;margin-top:18px;max-width:760px}
.cs-tech{margin-top:48px;border-top:1px solid var(--line)}
.cs-tech div{display:grid;grid-template-columns:200px 1fr;gap:24px;padding:16px 0;border-bottom:1px solid var(--line);font-size:15px}
.cs-tech dt{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding-top:2px}
.cs-tech dd{color:rgba(242,240,235,.9)}

/* challenges */
.cs-chal{border-top:1px solid var(--line)}
.cs-chal details{border-bottom:1px solid var(--line)}
.cs-chal summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:60px 1fr 40px;gap:20px;align-items:center;padding:26px 0}
.cs-chal summary::-webkit-details-marker{display:none}
.cs-chal summary span{font-family:var(--mono);font-size:12px;color:var(--muted)}
.cs-chal summary h3{font-size:clamp(19px,2.2vw,28px);font-weight:500;letter-spacing:-.025em}
.cs-chal summary i{width:36px;height:36px;border-radius:50%;border:1px solid var(--line2);display:grid;place-items:center;font-style:normal;transition:transform .4s var(--ease),background .3s,color .3s}
.cs-chal details[open] summary i{transform:rotate(45deg);background:var(--accent);color:#0a0a0a;border-color:var(--accent)}
.cs-chal .ans{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:0 0 30px 80px}
.cs-chal .ans div{padding:20px 22px;border-radius:14px;border:1px solid var(--line);display:grid;gap:8px}
.cs-chal .ans small{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.cs-chal .ans .fix{border-color:rgba(200,255,61,.25);background:rgba(200,255,61,.04)}
.cs-chal .ans .fix small{color:var(--accent)}
.cs-chal .ans p{font-size:15px;color:rgba(242,240,235,.88)}

/* results */
.cs-results{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.cs-result{border:1px solid var(--line);border-radius:var(--r);padding:28px;background:linear-gradient(160deg,rgba(255,122,26,.08),transparent 50%),var(--card);display:grid;gap:10px;align-content:start}
.cs-result strong{font-size:clamp(44px,5vw,72px);font-weight:500;letter-spacing:-.05em;line-height:1}
.cs-result h3{font-size:17px;font-weight:500}
.cs-result p{color:var(--muted);font-size:14px}
.cs-integrations{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.cs-integrations span{font-family:var(--mono);font-size:12px;padding:9px 14px;border-radius:10px;background:#151515;border:1px solid var(--line);color:rgba(242,240,235,.85)}

/* lessons */
.cs-lessons{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.cs-lesson{padding:30px;border:1px solid var(--line);border-radius:var(--r);display:grid;gap:12px;align-content:start}
.cs-lesson span{font-family:var(--serif);font-style:italic;font-size:34px;line-height:1;color:var(--accent)}
.cs-lesson h3{font-size:21px;font-weight:500;letter-spacing:-.02em}
.cs-lesson p{color:var(--muted);font-size:15px}
.cs-lesson.wide{grid-column:span 2}

/* conclusion */
.cs-end{margin-top:140px;padding:90px 0 110px;border-top:1px solid var(--line);text-align:center;position:relative;isolation:isolate}
.cs-end::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(45% 60% at 50% 100%,rgba(255,122,26,.16),transparent 70%)}
.cs-end h2{font-size:clamp(36px,6vw,88px);max-width:1000px;margin:0 auto}
.cs-end p{color:var(--muted);font-size:18px;max-width:640px;margin:26px auto 0}
.cs-end .hero-ctas{margin-top:38px}
.cs-next{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:28px 0 40px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.cs-next a:hover{color:var(--fg)}

/* lightbox */
.cs-lb{position:fixed;inset:0;z-index:100;background:rgba(5,5,5,.92);backdrop-filter:blur(8px);display:grid;place-items:center;padding:30px;opacity:0;pointer-events:none;transition:opacity .35s var(--ease);cursor:zoom-out}
.cs-lb.open{opacity:1;pointer-events:auto}
.cs-lb img{max-width:min(1600px,100%);max-height:88vh;width:auto;border-radius:12px;border:1px solid var(--line2);transform:scale(.96);transition:transform .45s var(--ease)}
.cs-lb.open img{transform:none}
.cs-lb p{position:absolute;bottom:20px;left:0;right:0;text-align:center;color:var(--muted);font-size:13px}

/* responsive */
@media (max-width:1100px){
  .cs-body{margin-left:0}
  .cs-sec-head{grid-template-columns:1fr;gap:0}
  .cs-stats{grid-template-columns:repeat(3,1fr)}
  .cs-stat:nth-child(4){border-left:none}
  .cs-stat:nth-child(n+4){border-top:1px solid var(--line)}
  .cs-users,.cs-results{grid-template-columns:repeat(2,1fr)}
  .cs-problems{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:860px){
  .cs-meta{grid-template-columns:repeat(2,1fr)}
  .cs-meta div:nth-child(3){border-left:none}
  .cs-meta div:nth-child(n+3){border-top:1px solid var(--line)}
  .cs-summary{grid-template-columns:1fr}
  .cs-feature,.cs-feature.flip{grid-template-columns:1fr;gap:34px}
  .cs-feature.flip .cs-f-text{order:0}
  .cs-arch{grid-template-columns:1fr}
  .cs-core{border-inline:none;border-block:1px dashed var(--line2)}
  .cs-flow{display:none}
  .cs-row{grid-template-columns:1fr;gap:8px}
  .cs-goal{grid-template-columns:40px 1fr}
  .cs-goal p{grid-column:2}
  .cs-chal .ans{grid-template-columns:1fr;padding-left:0}
  .cs-tech div{grid-template-columns:1fr;gap:4px}
}
@media (max-width:600px){
  .cs-hero{padding-top:130px}
  .cs-sec{padding-top:90px}
  .cs-stats{grid-template-columns:repeat(2,1fr)}
  .cs-stat:nth-child(odd){border-left:none}
  .cs-stat:nth-child(4){border-left:1px solid var(--line)}
  .cs-stat:nth-child(n+3){border-top:1px solid var(--line)}
  .cs-users,.cs-results,.cs-problems,.cs-lessons{grid-template-columns:1fr}
  .cs-lesson.wide{grid-column:auto}
  .cs-chal summary{grid-template-columns:34px 1fr 36px;gap:12px}
  .cs-stack .cs-shot:nth-child(2){width:100%;margin:0}
  .cs-phones{gap:10px}
  .cs-next{flex-direction:column;align-items:flex-start}
  .cs-hide-sm{display:none}
}
/* keep the simple nav visible on small screens (no burger on case studies) */
@media (max-width:900px){
  .cs .nav-links{position:static;inset:auto;height:auto;background:none;backdrop-filter:none;flex-direction:row;gap:16px;font-size:14px;opacity:1;pointer-events:auto;z-index:auto}
  .cs .nav-links a.cs-back{color:var(--muted)}
}
