/* Case studies extend the homepage's paper, ink, accent, type, and evidence frames. */
.case-page { --case-rule: #dedbd0; }
.case-page[data-case-scroll] { --case-reveal-duration:1400ms; }
[data-case-scroll] [data-case-reveal] {
 opacity:1;
 transform:none;
}
[data-case-scroll] [data-case-reveal="visible"] {
 transition:opacity var(--case-reveal-duration) var(--story-ease-out), transform var(--case-reveal-duration) var(--story-ease-out);
}
[data-case-scroll] [data-case-reveal="pending"] { opacity:0; transform:translateY(12px); }
[data-case-scroll] [data-case-reveal="settled"] { transition:none; }
@media(prefers-reduced-motion:reduce), print {
 [data-case-scroll] [data-case-reveal] { opacity:1!important; transform:none!important; transition:none!important; }
}
.case-shell { width: min(1096px, calc(100% - 64px)); margin-inline: auto; }
.case-masthead { display:flex; justify-content:space-between; align-items:center; gap:24px; padding-block:24px; font-size:14px; }
.case-masthead a { display:inline-flex; align-items:center; min-height:44px; color:inherit; text-decoration:none; }
.case-masthead a:hover { text-decoration:underline; text-underline-offset:5px; }
.case-hero { max-width:820px; padding-block:64px 48px; text-align:center; }
.case-eyebrow { margin:0 0 20px; color:var(--story-muted); font-size:13px; font-weight:500; }
.case-hero h1 { max-width:760px; margin:0 auto; font-size:clamp(48px,6.25vw,80px); font-weight:500; line-height:1.08; letter-spacing:-.045em; text-wrap:balance; }
.case-hero h1 span { white-space:nowrap; }
.case-hero h1 span,.case-chapter h2 span,.case-outcome h2 span { color:var(--story-accent); }
.case-deck { max-width:620px; margin:28px auto 0; font-size:22px; line-height:1.5; text-wrap:pretty; }
.case-intro { max-width:570px; margin:20px auto 0; color:var(--story-muted); font-size:17px; line-height:1.6; text-wrap:pretty; }
.case-hero > a { margin-top:24px; }
.case-cover { margin-block:0; }
.case-cover img { display:block; width:100%; height:auto; border-radius:16px; }
.case-page figcaption { max-width:640px; margin:14px auto 0; color:var(--story-muted); font-size:13px; line-height:1.55; text-align:center; text-wrap:pretty; }
.case-facts { padding-block:40px 32px; }
.case-facts dl { display:grid; grid-template-columns:1.3fr 1.1fr 1fr; gap:48px; margin:0; padding:28px 0; border-block:1px solid var(--case-rule); }
.case-facts dt { margin-bottom:8px; color:var(--story-muted); font-size:13px; }
.case-facts dd { max-width:280px; margin:0; font-size:15px; line-height:1.6; }
.case-chapter { display:grid; grid-template-columns:180px minmax(0,1fr); gap:64px; padding-block:72px; border-bottom:1px solid var(--case-rule); scroll-margin-top:32px; }
.case-chapter-label { align-self:start; position:sticky; top:32px; display:flex; align-items:center; gap:12px; padding-top:6px; }
.case-chapter-label p { margin:0; color:var(--story-muted); font-size:14px; }
.case-chapter-body { min-width:0; }
.case-chapter h2,.case-outcome h2 { margin:0 0 28px; font-size:clamp(32px,3.5vw,46px); font-weight:500; line-height:1.16; letter-spacing:-.04em; text-wrap:balance; }
.case-prose { max-width:640px; font-size:18px; line-height:1.7; }
.case-prose p { margin:0 0 20px; text-wrap:pretty; }
.case-prose p:last-child { margin-bottom:0; }
.case-evidence { margin:32px 0; }
.case-evidence img { display:block; width:100%; height:auto; border-radius:12px; }
.case-evidence--detail { padding:24px; border-radius:16px; background:#efeee7; }
.case-evidence--wireframe { padding:24px; border:1px solid var(--case-rule); border-radius:16px; }
.case-disclosure { margin-top:32px; border-block:1px solid var(--case-rule); }
.case-disclosure + .case-disclosure { border-top:0; }
.case-disclosure summary { display:flex; align-items:center; gap:10px; min-height:56px; padding:16px 8px; font-size:15px; cursor:pointer; list-style:none; }
.case-disclosure summary::-webkit-details-marker { display:none; }
.case-disclosure summary::marker { content:""; }
/* Lucide chevron-right; rotates to indicate the expanded state. */
.case-disclosure-icon { flex:0 0 20px; transition:transform 180ms ease; }
.case-disclosure[open] > summary .case-disclosure-icon { transform:rotate(90deg); }
@media(prefers-reduced-motion:reduce) { .case-disclosure-icon { transition:none; } }
.case-disclosure summary:hover { color:#a72b3d; }
.case-disclosure summary:focus-visible { outline:2px solid #a72b3d; outline-offset:4px; }
.case-disclosure > p { max-width:640px; margin:0 0 24px; font-size:16px; line-height:1.65; }
.case-decision { margin-block:36px; padding:8px 0 8px 28px; border-left:3px solid var(--story-accent); }
.case-decision .case-eyebrow { margin-bottom:12px; }
.case-decision > p:last-child { max-width:600px; margin:0; font-size:26px; line-height:1.4; letter-spacing:-.025em; text-wrap:pretty; }
.case-decision em { font-style:normal; color:var(--story-accent); }
.case-tradeoff { margin-top:40px; }
.case-tradeoff h3 { margin:0 0 20px; font-size:25px; font-weight:500; line-height:1.3; letter-spacing:-.025em; }
.case-outcome { padding-block:88px; background:#efeee7; }
.case-outcome-inner { padding-left:244px; }
.case-outcome .case-limit { color:var(--story-muted); font-size:14px; line-height:1.6; }
.case-reflection { max-width:640px; margin-top:40px; padding-top:28px; border-top:1px solid #d5d3c9; }
.case-reflection .case-eyebrow { margin-bottom:12px; }
.case-reflection > p:last-child { margin:0; font-size:23px; line-height:1.5; letter-spacing:-.025em; text-wrap:pretty; }
.case-next { padding-block:56px 32px; border-bottom:1px solid var(--case-rule); }
.case-next-link { display:flex; align-items:center; justify-content:space-between; gap:32px; padding:32px 0; border-block:1px solid var(--case-rule); color:var(--story-ink); text-decoration:none; }
.case-next-link > div { min-width:0; }
.case-next .case-eyebrow { margin-bottom:16px; }
.case-next h2 { max-width:760px; margin:0 0 24px; font-size:clamp(30px,3.5vw,44px); font-weight:500; line-height:1.15; letter-spacing:-.035em; text-wrap:pretty; }
.case-next-cta { display:inline-block; color:var(--story-accent); font-size:15px; text-decoration:underline; text-underline-offset:5px; }
.case-next-arrow { flex-shrink:0; color:var(--story-accent); width:40px; height:40px; }
.case-next-link:hover h2 { color:var(--story-accent); }
.case-next-link:focus-visible { outline:3px solid var(--story-accent); outline-offset:6px; border-radius:2px; }
.case-next-all-icon { flex-shrink:0; width:18px; height:18px; }
.case-next-all { display:inline-flex; align-items:center; gap:8px; min-height:44px; margin-top:16px; font-size:14px; }
@media(max-width:900px) {
 .case-chapter { grid-template-columns:140px minmax(0,1fr); gap:32px; padding-block:56px; }
 .case-outcome-inner { padding-left:172px; }
 .case-facts dl { gap:24px; }
}
@media(max-width:639px) {
 .case-shell { width:calc(100% - 32px); }
 .case-masthead { padding-block:12px; font-size:13px; }
 .case-hero { padding-block:44px 32px; }
 .case-hero .case-eyebrow { max-width:260px; margin-inline:auto; }
 .case-hero h1 { font-size:clamp(44px,12vw,64px); }
 .case-deck { margin-top:24px; font-size:20px; }
 .case-intro { font-size:16px; }
 .case-cover img { border-radius:12px; }
 .case-facts { padding-block:28px 20px; }
 .case-facts dl { grid-template-columns:1fr; gap:20px; padding-block:24px; }
 .case-facts dl > div { display:grid; grid-template-columns:110px 1fr; gap:16px; }
 .case-facts dt { margin:0; }
 .case-facts dd { font-size:14px; }
 .case-chapter { grid-template-columns:1fr; gap:24px; padding-block:44px; }
 .case-chapter-label { position:static; padding:0; }
 .case-chapter h2,.case-outcome h2 { font-size:32px; }
 .case-prose { font-size:17px; line-height:1.65; }
 .case-evidence--detail,.case-evidence--wireframe { padding:12px; }
 .case-decision { padding-left:20px; margin-block:28px; }
 .case-decision > p:last-child { font-size:23px; }
 .case-outcome { padding-block:56px; }
 .case-outcome-inner { padding-left:0; }
 .case-reflection > p:last-child { font-size:21px; }
 .case-next { padding-block:40px 24px; }
 .case-next-link { gap:16px; padding-block:24px; }
 .case-next-arrow { width:32px; height:32px; }
 .case-next h2 { font-size:30px; }
}
/* Centered case narratives retain a wider shell for inspectable evidence. */
.case-tightened .case-chapter { display:block; }
.case-tightened .case-chapter-body > :is(h2,.case-prose,.case-decision,.case-tradeoff,.case-disclosure,.professional-prompts,.professional-message-flow) { max-width:820px; margin-inline:auto; }
.case-tightened .case-prose { max-width:820px; }
.case-tightened .case-outcome-inner { max-width:820px; padding-left:0; }
.case-tightened .case-reflection { max-width:100%; }
/* Shapes keeps its established reading measure around the full-width models. */
.case-tightened.shapes-page .case-chapter-body > :is(h2,.case-prose) { max-width:720px; }
.case-tightened.shapes-page .case-outcome-inner { max-width:720px; }
@media print {
 .case-masthead,.case-hero > a,.case-next,.story-footer { display:none; }
 .case-hero { padding-top:0; }
 .case-chapter { padding-block:28px; grid-template-columns:100px 1fr; gap:24px; }
 .case-chapter-label { position:static; }
 .case-outcome { padding-block:28px; }
 .case-outcome-inner { padding-left:124px; }
 .case-evidence,.case-cover { break-inside:avoid; }
}

/* Readable release boundaries and resilient content shared by all cases. */
.case-page :is(h1,h2,h3,p,dd,li,a) { overflow-wrap: anywhere; }
.case-release-boundary { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:28px 0; padding:24px; border:1px solid var(--case-rule); border-radius:12px; }
.case-release-boundary dt { margin-bottom:8px; font-weight:500; }
.case-release-boundary dd { margin:0; font-size:16px; line-height:1.6; }
.case-prose :is(ul,ol) { padding-left:1.3em; }
.case-prose li + li { margin-top:10px; }
@media(max-width:639px) { .case-release-boundary { grid-template-columns:1fr; padding:20px; } }
