/* Phase 3A only; shared Phase 1 tokens/components remain unchanged. */
@media(prefers-color-scheme:light){:root:not([data-ab-theme]){--ab-bg:#F6F4EF;--ab-surface:#FFFFFF;--ab-surface-raised:#EEEAE2;--ab-text:#111C27;--ab-text-muted:#495A68;--ab-line:#C9C5BC;--ab-control-line:#65727C;--ab-link:#875100;--ab-link-hover:#623A00;--ab-verified-bg:#E6F2E8;--ab-verified-fg:#235C36;--ab-assumed-bg:#FFF0D4;--ab-assumed-fg:#754700;--ab-untested-bg:#FBE7E7;--ab-untested-fg:#92333A}}
.case-study-page{--ab-content-wide:78rem;font-size:1rem}
.case-study-page .container{width:100%;max-width:78rem;margin-inline:auto;padding-inline:clamp(1rem,4vw,2.5rem)}
.case-study-page .case-header{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;border-bottom:1px solid var(--ab-line);padding-block:1rem}
.case-study-page .brand{display:flex;align-items:center;gap:.7rem;line-height:1.4;font-size:.875rem}.case-study-page .monogram{font-size:2rem}.case-study-page .brand small{display:block;font-size:.75rem;color:var(--ab-text-muted)}
.case-study-page .site-nav{margin-left:auto}.case-study-page .nav-cta{min-height:44px;display:flex;align-items:center;font-size:.875rem}.case-study-page .theme-label{font-size:.8125rem;display:flex;align-items:center;gap:.5rem;margin:0}
.case-study-page .article-hero{padding-block:3rem;border-bottom:1px solid var(--ab-line)}.case-study-page .article-hero h1{margin:1rem 0;max-width:22ch;font-size:clamp(2rem,4vw,3.5rem)}.case-study-page .article-hero em{font-style:normal}.case-study-page .deck{font-size:1.125rem;max-width:60ch;color:var(--ab-text-muted)}
.case-study-page .byline,.case-study-page .hero-notes,.case-study-page .review-meta{font-size:.875rem;color:var(--ab-text-muted)}.case-study-page .hero-notes{display:flex;gap:1rem;flex-wrap:wrap;margin-block:1rem}.case-study-page .review-meta{margin-top:1rem}
.case-study-page .case-layout{display:grid;gap:2rem;padding-block:2rem}.case-study-page .case-body{min-width:0;max-width:76ch}.case-study-page .case-section{padding-block:2rem;border-bottom:1px solid var(--ab-line);scroll-margin-top:1rem}.case-study-page section[id]{scroll-margin-top:1.5rem}.case-study-page .case-section>section{margin-top:2rem}.case-study-page h3{font-size:1.35rem;margin-top:2rem}.case-study-page h4{font-family:var(--ab-font-heading);font-size:1.125rem;margin:1.5rem 0 .75rem}
.case-study-page .case-toc{font-size:.875rem;align-self:start;border:1px solid var(--ab-line);padding:1rem;background:var(--ab-surface);border-radius:var(--ab-radius-md)}.case-study-page .case-toc h2{font-size:1rem}.case-study-page .case-toc ol{padding:0;list-style:none;margin:0}.case-study-page .case-toc li{margin:0}.case-study-page .case-toc a{display:block;min-height:44px;padding:.6rem .5rem;border-left:3px solid transparent;color:var(--ab-text);text-decoration:none}.case-study-page .case-toc a[aria-current]{border-color:var(--ab-link);text-decoration:underline;font-weight:600}.case-study-page .progress-wrap{margin-block:1rem}.case-study-page progress{display:block;width:100%;height:.5rem;accent-color:var(--ab-link)}.case-study-page progress::-webkit-progress-bar{background:var(--ab-surface-raised)}.case-study-page progress::-webkit-progress-value{background:var(--ab-link)}
.case-study-page button{min-height:44px;min-width:44px;border:1px solid var(--ab-control-line);border-radius:var(--ab-radius-sm);padding:.6rem .8rem;background:var(--ab-surface);color:var(--ab-text);font:inherit;cursor:pointer}.case-study-page button:hover{background:var(--ab-surface-raised)}.case-study-page button:disabled{cursor:default;opacity:.7}
.case-study-page [hidden]{display:none!important}.case-study-page .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.case-study-page .table-wrap{border:1px solid var(--ab-line);border-radius:var(--ab-radius-sm);margin-block:1rem}.case-study-page table{min-width:30rem;font-size:.875rem}.case-study-page th small{display:block;font-weight:400;color:var(--ab-text-muted);margin-top:.4rem}.case-study-page table .verification-badge{white-space:normal;min-width:8rem}.case-study-page .result-status{display:block;margin-top:.5rem}.case-study-page .verification-badge{font-size:.75rem;font-weight:400;padding:.2rem .45rem}.case-study-page .equation-status{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.case-study-page .case-equation,.case-study-page .equation{white-space:normal;padding:1rem;background:var(--ab-surface-raised);font-family:var(--ab-font-mono);border-left:2px solid var(--ab-control-line);overflow-wrap:anywhere}
.case-study-page .live-calculation{padding:1.25rem;border:1px solid var(--ab-control-line);border-radius:var(--ab-radius-md);background:var(--ab-surface);margin-block:1.5rem}.case-study-page fieldset{border:1px solid var(--ab-line);min-width:0;margin:1rem 0;padding:1rem}.case-study-page legend{font-weight:600}.case-study-page .field-pair{margin-bottom:1.5rem}.case-study-page input[type=range]{display:block;width:100%;min-height:44px;padding:0;accent-color:var(--ab-link)}.case-study-page input[type=number]{max-width:16rem}.case-study-page .result-panel{padding:1rem;border:1px solid var(--ab-line);background:var(--ab-surface-raised);border-radius:var(--ab-radius-sm)}.case-study-page #live-result{font-family:var(--ab-font-mono);font-size:1rem;min-height:3.4em;margin-bottom:.6rem}.case-study-page #calc-error{min-height:1.7em;font-weight:600}.case-study-page #calc-warning{font-size:.875rem;margin:1rem 0;min-height:5rem}.case-study-page #url-message{margin:0}.case-study-page #share-url{width:100%}.case-study-page pre{white-space:pre-wrap;overflow-wrap:anywhere}
.case-study-page details{margin-block:1rem}.case-study-page details>summary{min-height:44px;padding:.75rem;border:1px solid var(--ab-control-line);cursor:pointer;font-weight:600}.case-study-page details>summary::before{content:'+ ';font-family:var(--ab-font-mono)}.case-study-page details[open]>summary::before{content:'− '}.case-study-page details>summary::-webkit-details-marker{display:none}.case-study-page header details{margin:0}.case-study-page header details>summary{border:0;font-weight:400}.case-study-page header details>summary::before{content:''}
.case-study-page .math-slot{min-height:5rem;display:flex;align-items:center;overflow-x:auto;padding:.75rem;background:var(--ab-surface-raised);font-size:1.15rem}.case-study-page math{color:var(--ab-text);font-size:1.1em}.case-study-page .formula-block p{font-size:.875rem;margin-top:.6rem}
.case-study-page .evidence-map{border:1px solid var(--ab-line);padding:1.25rem;border-radius:var(--ab-radius-md);background:var(--ab-surface)}.case-study-page .evidence-map strong{display:block}.case-study-page .educational-disclaimer{border:1px solid var(--ab-control-line);border-left:3px solid var(--ab-link);padding:1.25rem;margin-top:2rem;border-radius:var(--ab-radius-sm)}
.case-study-page .viewer{border:1px solid var(--ab-line);border-radius:var(--ab-radius-md);padding:1rem;background:var(--ab-surface)}.case-study-page .viewer-label{display:flex;justify-content:space-between;gap:1rem;font:400 .8125rem var(--ab-font-mono);margin-bottom:1rem}.case-study-page #model-fallback,.case-study-page #shaft-canvas{width:100%;aspect-ratio:5/3;height:auto;display:block;object-fit:contain}.case-study-page #shaft-canvas{touch-action:pan-y}.case-study-page #viewer-status{font-size:.875rem;min-height:3.4em}.case-study-page .viewer-tools{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.case-study-page .viewer-tools label{margin:0}.case-study-page .drawing-link{width:100%;height:auto}.case-study-page .caption-inline{font-size:.875rem;color:var(--ab-text-muted)}
.case-study-page .downloads{display:grid;gap:1rem}.case-study-page .download{padding:1rem;border:1px solid var(--ab-line);display:block}.case-study-page footer{max-width:78rem;margin:auto;padding:2rem;font-size:.875rem;color:var(--ab-text-muted)}.case-study-page .print-summary{display:none}
@media(min-width:60rem){.case-study-page .case-layout{grid-template-columns:13rem minmax(0,1fr);gap:3rem}.case-study-page .case-toc{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto}}
@media(max-width:40rem){.case-study-page .site-nav{margin-left:0;order:3;flex-basis:100%;gap:0}.case-study-page .site-nav>a,.case-study-page .site-nav summary{font-size:.8125rem}.case-study-page .article-hero{padding-block:2rem}.case-study-page .live-calculation{padding:.8rem}.case-study-page .case-toc ol{display:flex;flex-wrap:wrap;gap:.25rem}.case-study-page .viewer-label{flex-wrap:wrap}.case-study-page .theme-label{margin-left:auto}}
@media(prefers-reduced-motion:reduce){.case-study-page *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{@page{size:A4;margin:14mm}.case-study-page{background:white!important;color:black!important;font:10.5pt/1.35 Arial,sans-serif!important}.case-study-page> :not(.print-summary){display:none!important}.case-study-page .print-summary{display:block!important;color:black!important}.case-study-page .print-summary h1{font:600 18pt/1.2 Arial,sans-serif;margin:0 0 5mm}.case-study-page .print-summary h2{font:600 11pt/1.25 Arial,sans-serif;margin:4mm 0 1.5mm;break-after:avoid}.case-study-page .print-summary p{max-width:none;margin:0 0 2mm;orphans:3;widows:3}.case-study-page .print-summary a{color:black;text-decoration:none}.case-study-page .print-summary{overflow-wrap:anywhere}}
@media(prefers-color-scheme:light){:root:not([data-ab-theme]) .case-study-page{color-scheme:light}}
