/* Shared case-study styling. Uses site.css tokens and the existing .shell/.btn/.eyebrow. */
.case-study { overflow: clip; }
.case-hero { padding-top: clamp(64px, 9vw, 120px); padding-bottom: 56px; }
.case-hero-top { display: flex; justify-content: space-between; gap: 20px; align-items: center; }
.case-hero-top .eyebrow { margin: 0; }
.case-hero-top .eyebrow span { color: var(--muted-2); padding: 0 8px; }
.case-state { color: var(--muted); font: .75rem var(--font-mono); text-transform: uppercase; letter-spacing: .09em; }
.case-hero h1 { max-width: 1000px; margin: 35px 0 20px; font-size: clamp(3.3rem, 9vw, 8.5rem); line-height: .95; letter-spacing: -.075em; font-weight: 620; }
.case-hero h1 span, .case-section h2 + span { color: var(--accent); }
.case-lead { max-width: 760px; margin: 0 0 48px; font-size: clamp(1.1rem, 2.2vw, 1.65rem); line-height: 1.48; color: var(--muted); }
.case-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); }
.case-facts > div { display: flex; flex-direction: column; gap: 9px; padding: 23px 16px 25px 0; }
.case-facts > div + div { border-left: 1px solid var(--line); padding-left: 20px; }
.case-facts span, .case-card > span { font: .72rem var(--font-mono); text-transform: uppercase; letter-spacing: .1em; color: var(--muted-2); }
.case-facts strong { font-size: .95rem; font-weight: 550; }
.case-keywords { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 22px; }
.case-keywords span { padding: 6px 11px; border: 1px solid var(--line-strong); color: var(--muted); font: .78rem var(--font-mono); }
.case-media { margin-bottom: 38px; }
.case-repo-link { margin-bottom: 28px; }
.case-media-image { display: block; width: 100%; height: auto; border: 1px solid var(--accent-line); background: var(--surface); }
.case-media-placeholder { min-height: clamp(280px, 43vw, 540px); padding: 30px; border: 1px solid var(--accent-line); background: radial-gradient(circle at 75% 25%, rgba(106,168,255,.19), transparent 40%), linear-gradient(130deg, #142337, #0b1016 65%); display: flex; flex-direction: column; justify-content: space-between; }
.case-media-label, .case-media-note, .case-caption { font: .72rem var(--font-mono); letter-spacing: .09em; color: var(--muted); text-transform: uppercase; }
.case-media-art { display: flex; gap: 14px; align-items: flex-end; height: 30%; opacity: .65; }
.case-media-art i { display: block; width: 20%; height: 45%; border: 1px solid var(--accent-line); background: var(--accent-soft); }
.case-media-art i:nth-child(2) { height: 100%; }.case-media-art i:nth-child(3) { height: 65%; }.case-media-art i:nth-child(4) { height: 82%; }
.case-caption { margin: 12px 0 0; font-size: .66rem; }
.case-section { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); column-gap: clamp(40px, 8vw, 120px); row-gap: 40px; padding-top: 94px; padding-bottom: 94px; border-top: 1px solid var(--line); scroll-margin-top: 80px; }
.case-section h2, .case-footer h2 { max-width: 600px; margin: 0; font-size: clamp(2.1rem, 4vw, 4rem); line-height: 1.06; letter-spacing: -.055em; font-weight: 600; }
.case-prose { max-width: 610px; color: var(--muted); font-size: 1.04rem; line-height: 1.75; }
.case-prose p { margin: 0 0 22px; }.case-prose p:last-child { margin-bottom: 0; }
.case-card-grid { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; }
.case-card { border: 1px solid var(--line-strong); background: var(--surface); padding: 26px; min-height: 205px; }
.case-card h3 { margin: 26px 0 8px; font-size: 1.2rem; }.case-card p { margin: 0; color: var(--muted); }
.case-footer {
  border-top: 1px solid var(--line);
  padding-top: 82px;
  padding-bottom: 110px;
}
.case-footer-inner { padding-inline: clamp(24px, 3vw, 48px); }
.case-footer .eyebrow,
.case-footer h2 { max-width: 680px; }
.case-footer h2 { margin-bottom: 30px; }
@media (max-width: 760px) {
  .case-hero { padding-top: 55px; }.case-hero-top { align-items: flex-start; flex-direction: column; gap: 10px; }
  .case-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .case-facts > div { border-left: 0 !important; padding-left: 0 !important; }
  .case-facts > div:nth-child(even) { padding-left: 16px !important; border-left: 1px solid var(--line) !important; }
  .case-facts > div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .case-section { display: block; padding-top: 64px; padding-bottom: 64px; }
  .case-section-heading { margin-bottom: 26px; }.case-card-grid { grid-template-columns: 1fr; margin-top: 34px; }
  .case-card { min-height: unset; }.case-footer { padding-top: 65px; padding-bottom: 80px; }
  .case-footer-inner { padding-inline: 24px; }
}
