/* Case studies reuse the home page's tokens, fonts, controls and header. */
.case-back { display:inline-block; margin-top:36px; color:var(--muted); font-size:12px; }
.case-back:hover { color:var(--ink); }
.case-hero { display:grid; grid-template-columns:1fr 1.1fr; align-items:center; gap:clamp(28px,5vw,72px); padding:64px 0 58px; }
.case-hero h1 { font-size:clamp(48px,6.2vw,88px); line-height:1; letter-spacing:-.075em; margin:0 0 24px; overflow-wrap:anywhere; }
.case-hero .kicker { margin-bottom:18px; }
.case-lede { font-size:clamp(20px,2vw,26px); line-height:1.45; letter-spacing:-.035em; margin:0 0 30px; max-width:28ch; }
.case-actions { display:flex; flex-wrap:wrap; gap:18px 24px; align-items:center; }
.case-hero .project-shot { padding:20px; min-width:0; aspect-ratio:4/3; border:0; }
.case-hero .project-shot img { min-height:0; }
.case-hero .borrow-shot { background:#eee; }
.case-caption { font:11px/1.6 'DM Mono',monospace; color:var(--muted); margin:12px 0 0; }
.case-media { min-width:0; }
.case-facts { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; padding:28px 0; margin:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.case-facts dt { font:11px 'DM Mono',monospace; color:var(--muted); margin-bottom:10px; }
.case-facts dd { margin:0; font-weight:700; font-size:16px; line-height:1.5; }
.case-section { display:grid; grid-template-columns:1fr 2fr; gap:clamp(24px,6vw,92px); padding:76px 0 0; scroll-margin-top:100px; }
.case-section h2 { font-size:clamp(25px,3vw,36px); letter-spacing:-.055em; line-height:1.1; margin:0; }
.case-body { min-width:0; }
.case-body>p { font-size:16px; color:var(--muted); line-height:1.8; margin:0 0 20px; max-width:66ch; }
.case-body>p:last-child { margin-bottom:0; }
.case-body strong { color:var(--ink); font-weight:700; }
.case-tech { list-style:none; padding:0; margin:0; display:grid; gap:26px; }
.case-tech li { display:grid; grid-template-columns:180px 1fr; gap:20px; }
.case-tech h3 { margin:0; font-size:16px; line-height:1.6; }
.case-tech p { margin:0; color:var(--muted); font-size:14px; line-height:1.8; }
.case-flow { counter-reset:step; list-style:none; padding:0; margin:0; display:grid; gap:0; }
.case-flow li { counter-increment:step; position:relative; padding:0 0 28px 44px; }
.case-flow li::before { content:counter(step,decimal-leading-zero); position:absolute; left:0; top:3px; font:11px 'DM Mono',monospace; color:var(--muted); }
.case-flow li:not(:last-child)::after { content:''; position:absolute; left:9px; top:24px; bottom:8px; border-left:1px solid var(--line); }
.case-flow h3 { font-size:17px; letter-spacing:-.02em; margin:0 0 8px; }
.case-flow p { color:var(--muted); font-size:14px; line-height:1.75; margin:0; }
.case-demo { margin:76px 0; padding:clamp(24px,4vw,44px); background:var(--surface); display:grid; grid-template-columns:1fr auto; align-items:center; gap:32px; }
.case-demo h2 { font-size:clamp(26px,3vw,38px); letter-spacing:-.055em; margin:0 0 14px; line-height:1.1; }
.case-demo p:not(.kicker) { margin:0; max-width:62ch; font-size:14px; color:var(--muted); line-height:1.75; }
.case-next { padding:0 0 64px; display:flex; justify-content:space-between; align-items:center; gap:24px; }
.case-next .kicker { margin:0 0 10px; }
.case-next a:last-child { font-size:clamp(24px,3vw,38px); font-weight:700; letter-spacing:-.04em; }
.case-next a:hover { text-decoration:underline; text-underline-offset:6px; }
.case-page a:focus-visible { outline:2px solid var(--ink); outline-offset:5px; }
.case-page .button:hover { filter:brightness(.94); }
.case-page footer { gap:20px; }
@media(max-width:900px) {
  .case-hero { grid-template-columns:1fr; padding-top:42px; }
  .case-lede { max-width:36ch; }
  .case-hero .project-shot { aspect-ratio:16/10; }
  .case-section { grid-template-columns:1fr; gap:26px; padding-top:56px; }
  .case-demo { grid-template-columns:1fr; margin:56px 0; }
  .case-demo .button { justify-self:start; }
}
@media(max-width:520px) {
  .case-back { margin-top:26px; }
  .case-hero { padding-top:32px; padding-bottom:36px; }
  .case-hero .project-shot { padding:12px; aspect-ratio:4/3; }
  .case-facts { grid-template-columns:1fr; gap:20px; }
  .case-facts>div { display:grid; grid-template-columns:100px 1fr; gap:12px; align-items:baseline; }
  .case-facts dt { margin:0; }
  .case-facts dd { font-size:14px; }
  .case-tech li { grid-template-columns:1fr; gap:5px; }
  .case-next { flex-direction:column; align-items:flex-start; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } body { transition:none; } }
.case-demo.embedded-demo { display:block; padding:0; margin:64px 0 0; background:transparent; scroll-margin-top:100px; }
.demo-section-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:16px; }
.demo-section-heading h2 { margin:0; }
.demo-section-heading .inline-link { flex-shrink:0; }
.case-demo .demo-context { max-width:80ch; margin-bottom:20px; }
.case-demo .demo-wallet-note { margin:0 0 18px; font-size:12px; }
.demo-frame-wrap { border:1px solid var(--line); background:#080b0c; }
.demo-frame { display:block; width:100%; height:780px; border:0; }
.case-demo .demo-load-status { font-size:12px; margin:12px 0 0; }
.case-demo .demo-load-status a { text-decoration:underline; text-underline-offset:3px; }
.case-page .case-next { margin-top:76px; }
@media(max-width:600px) { .demo-section-heading { align-items:flex-start; flex-direction:column; } .demo-frame { height:900px; } }
