:root { color-scheme: light; --case-ink:#14282e; --case-muted:#587078; --case-line:#d6e2e4; --case-accent:#087e83; --case-bg:#f2f6f5; }
.public-case-page *, .public-case-directory * { box-sizing:border-box; }
body.public-case-page { margin:0; color:var(--case-ink); background:var(--case-bg); font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif; line-height:1.65; }
.public-case-page a, .public-case-directory a { color:var(--case-accent); text-decoration-thickness:1px; text-underline-offset:4px; }
.public-case-page a:hover, .public-case-directory a:hover { color:#054f55; }
.public-case-page a:focus-visible, .public-case-directory a:focus-visible { outline:3px solid #b7d731; outline-offset:4px; }
.case-site-header { min-height:88px; padding:18px max(24px,calc((100vw - 1320px)/2)); display:flex; justify-content:space-between; align-items:center; gap:24px; background:white; border-bottom:1px solid var(--case-line); }
.case-brand { display:flex; align-items:center; gap:18px; text-decoration:none; font-size:28px; font-weight:850; }
.case-brand span { color:var(--case-ink); font-size:20px; }
.case-site-header nav { display:flex; align-items:center; flex-wrap:wrap; gap:24px; font-weight:650; }
.case-site-header nav a { text-decoration:none; }
.case-header-action { background:#e0ff38; color:var(--case-ink); padding:9px 15px; }
.case-page { width:min(1320px,calc(100% - 48px)); margin:0 auto; }
.case-breadcrumb { display:flex; gap:10px; flex-wrap:wrap; padding:28px 0; color:var(--case-muted); font-size:14px; }
.case-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.06fr); gap:50px; align-items:center; padding:24px 0 58px; }
.case-eyebrow { color:var(--case-accent); font-weight:750; font-size:13px; letter-spacing:1px; }
.case-page h1,.case-page h2,.case-page h3 { line-height:1.25; overflow-wrap:anywhere; }
.case-page h1 { font-size:clamp(32px,3.6vw,52px); margin:14px 0 24px; letter-spacing:-1.5px; }
.case-page h2 { font-size:25px; margin:0 0 22px; }
.case-page h3 { font-size:19px; }
.case-summary { font-size:19px; color:var(--case-muted); }
.case-status { display:inline-block; padding:5px 10px; margin:10px 0 20px; border:1px solid #bdd4d4; font-size:13px; color:var(--case-accent); }
.case-hero-image { margin:0; border:1px solid var(--case-line); background:white; }
.case-hero-image img { display:block; width:100%; height:auto; aspect-ratio:1.35; object-fit:cover; }
.case-hero-image figcaption { padding:10px 14px; font-size:12px; color:var(--case-muted); }
.case-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:10px 0; }
.case-actions a { display:flex; justify-content:center; align-items:center; min-height:50px; padding:10px; text-align:center; text-decoration:none; font-weight:750; border:1px solid var(--case-ink); }
.public-case-page a.case-primary { grid-column:1/-1; background:var(--case-ink); color:white; }
.public-case-page a.case-primary:hover { background:#254650; color:white; }
.public-case-page a.case-secondary { color:var(--case-ink); background:white; }
.case-permalink { font-size:12px; color:var(--case-muted); overflow-wrap:anywhere; }
.case-content-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:24px; align-items:start; }
.case-panel { padding:30px; background:white; border:1px solid var(--case-line); margin-bottom:24px; }
.case-panel p { overflow-wrap:anywhere; }
.case-note { color:var(--case-muted); font-size:14px; }
.case-parts { padding-left:22px; display:grid; grid-template-columns:1fr 1fr; gap:12px 24px; }
.case-parts li { overflow-wrap:anywhere; }
.case-text-link { font-weight:650; font-size:14px; }
.case-evidence { padding:28px 32px; border-left:4px solid #bc9547; background:#fff9e9; margin:8px 0 32px; }
.case-evidence h2 { font-size:21px; }
.case-evidence p { font-size:14px; color:#65522f; }
.case-next { padding:36px; background:#dfedeb; display:grid; grid-template-columns:1fr minmax(280px,420px); gap:0 48px; align-items:center; }
.case-next h2 { margin:0; }
.case-next p { color:var(--case-muted); margin-bottom:0; }
.case-next .case-actions { grid-column:2; grid-row:1/3; }
.case-related { padding:56px 0; }
.case-tile-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.case-tile { padding:26px; border:1px solid var(--case-line); background:white; }
.case-tile h3 a { color:var(--case-ink); text-decoration:none; }
.case-tile h3 a:hover { text-decoration:underline; }
.case-tile p { font-size:14px; color:var(--case-muted); }
.case-footer { border-top:1px solid var(--case-line); padding:28px max(24px,calc((100vw - 1320px)/2)); background:white; font-size:13px; }
.case-footer p { max-width:900px; color:var(--case-muted); }
.case-index-header { max-width:850px; padding:20px 0 32px; }
.case-index-header p { color:var(--case-muted); }
.case-category-nav { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:45px; }
.case-category-nav a { padding:8px 12px; border:1px solid #a7c3c3; text-decoration:none; background:white; font-size:14px; }
.case-category-nav span { font-size:12px; padding-left:6px; }
.case-index-section { padding-bottom:48px; scroll-margin-top:24px; }
.public-case-directory { margin:40px auto; max-width:1480px; padding:30px 24px; border-top:1px solid #d6e2e4; }
.public-case-directory h2 { font-size:24px; margin-bottom:12px; }
.public-case-directory>p { color:#587078; font-size:14px; }
.public-case-directory-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px 30px; }
.public-case-directory-grid h3 { font-size:16px; margin:16px 0 12px; }
.public-case-directory-grid ul { list-style:none; padding:0; margin:0; }
.public-case-directory-grid li { font-size:13px; padding:4px 0; }
.public-case-directory-grid a { color:#087e83; }
@media(max-width:920px) { .case-site-header { align-items:flex-start; } .case-site-header nav { justify-content:flex-end; gap:14px; font-size:13px; } .case-hero { gap:28px; } .case-parts { grid-template-columns:1fr; } .case-tile-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .public-case-directory-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:640px) { .case-site-header { padding:16px 20px; flex-direction:column; gap:14px; } .case-site-header nav { width:100%; justify-content:flex-start; gap:15px; } .case-brand span { font-size:19px; } .case-page { width:calc(100% - 32px); } .case-breadcrumb { padding:20px 0; font-size:12px; } .case-hero { grid-template-columns:1fr; gap:24px; padding:14px 0 32px; } .case-page h1 { margin:12px 0 18px; letter-spacing:-.8px; } .case-summary { font-size:17px; } .case-content-grid { grid-template-columns:1fr; gap:0; } .case-panel { padding:23px; } .case-parts { grid-template-columns:1fr 1fr; gap:12px 20px; } .case-evidence { padding:22px; } .case-next { display:block; padding:24px; } .case-next .case-actions { margin-top:24px; } .case-tile-grid { grid-template-columns:1fr; } .case-related { padding:36px 0; } .public-case-directory-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .public-case-directory { padding:24px 18px; } }
/* The public engineering record remains usable without scripts or canvas. */
.public-engineering { margin:42px 0; scroll-margin-top:24px; }
.engineering-intro { display:flex; align-items:center; justify-content:space-between; gap:32px; padding:10px 0 20px; }
.engineering-intro h2 { font-size:32px; margin-bottom:14px; }
.engineering-intro p { margin:8px 0; color:var(--case-muted); }
.engineering-intro .case-eyebrow { color:var(--case-accent); font-size:12px; }
.engineering-data-link { flex-shrink:0; padding:12px 16px; border:1px solid #9ebfc0; background:white; font-size:13px; font-weight:650; text-decoration:none; }
.engineering-provenance { display:flex; flex-wrap:wrap; gap:8px 28px; color:var(--case-muted); font-size:12px; padding:12px 0 20px; overflow-wrap:anywhere; }
.engineering-provenance code { color:var(--case-ink); font:inherit; }
.engineering-navigation { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin:0 0 20px; }
.engineering-navigation a { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:12px 14px; background:white; border:1px solid var(--case-line); text-decoration:none; font-size:14px; font-weight:650; }
.engineering-navigation a:hover { border-color:var(--case-accent); }
.engineering-navigation span { font-size:12px; font-weight:500; color:var(--case-muted); }
.engineering-scope { padding:18px 22px; margin-bottom:24px; background:#e8eeed; border-left:3px solid #658b87; }
.engineering-scope strong { font-size:15px; }
.engineering-scope p { margin:8px 0 0; font-size:14px; overflow-wrap:anywhere; }
.engineering-scope p.case-note { font-size:12px; }
.engineering-section { scroll-margin-top:24px; padding:28px; }
.engineering-section-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:12px 24px; padding-bottom:20px; border-bottom:1px solid var(--case-line); margin-bottom:22px; }
.engineering-section-heading h2 { margin:0; font-size:23px; }
.engineering-section-heading>span { color:var(--case-muted); font-size:13px; }
.engineering-subheading { padding:10px 0 2px; font-size:17px!important; }
.engineering-record-list { display:grid; gap:12px; }
.engineering-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.engineering-record { min-width:0; padding:20px; border:1px solid #e0e8e9; background:#fbfdfc; overflow-wrap:anywhere; }
.engineering-record-heading { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:10px 16px; }
.engineering-record h3 { font-size:16px; line-height:1.5; margin:0; flex:1 1 220px; }
.engineering-record p { font-size:14px; color:var(--case-muted); margin:12px 0 0; }
.engineering-record p.case-note { font-size:12px; }
.engineering-status { display:inline-block; flex-shrink:0; max-width:100%; font-size:11px; font-weight:600; padding:3px 8px; border:1px solid #cddbdc; border-radius:2px; line-height:1.5; white-space:normal; overflow-wrap:anywhere; }
.engineering-status-recorded { background:#edf3f2; color:#456764; }
.engineering-status-pending { background:#fbf5e6; color:#7b5f28; border-color:#e7d8b4; }
.engineering-fields { display:grid; gap:9px; font-size:13px; margin:18px 0 0; }
.engineering-fields>div { display:grid; grid-template-columns:92px minmax(0,1fr); gap:12px; }
.engineering-fields dt { color:var(--case-muted); }
.engineering-fields dd { margin:0; color:var(--case-ink); }
.engineering-record p.engineering-missing { color:#85632a; font-size:12px; border-top:1px dashed #e4d9bf; padding-top:12px; }
.engineering-source-refs { display:block; margin-top:12px; font-size:12px; color:var(--case-muted); }
.engineering-source-refs a { display:inline-block; margin-left:3px; }
.engineering-empty { padding:18px 20px; background:#f3f6f5; border-left:3px solid #bfcfcb; font-size:14px; color:var(--case-muted); }
.engineering-more { margin-top:14px; border-top:1px solid var(--case-line); }
.engineering-more>summary { cursor:pointer; padding:16px 2px; color:var(--case-accent); font-weight:650; font-size:14px; }
.engineering-more>summary:focus-visible { outline:3px solid #b7d731; outline-offset:2px; }
.engineering-more[open]>summary { margin-bottom:2px; }
.engineering-gap { background:#fffdf8; border-color:#ece4d0; }
.engineering-sources { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 28px; }
.engineering-sources li { display:flex; gap:12px; min-width:0; padding:16px 0; border-bottom:1px solid #e8eeee; scroll-margin-top:24px; overflow-wrap:anywhere; font-size:13px; }
.engineering-sources li:target { background:#f8f4d8; outline:6px solid #f8f4d8; }
.engineering-source-number { flex-shrink:0; color:var(--case-muted); font-size:12px; }
.engineering-sources p.case-note { font-size:11px; margin:7px 0 0; }
@media(max-width:920px) { .engineering-intro { align-items:flex-start; flex-direction:column; gap:12px; } .engineering-navigation { grid-template-columns:repeat(3,minmax(0,1fr)); } .engineering-record h3 { flex-basis:180px; } }
@media(max-width:640px) { .public-engineering { margin:30px 0; } .engineering-intro h2 { font-size:27px; } .engineering-intro p { font-size:14px; } .engineering-data-link { max-width:100%; font-size:12px; overflow-wrap:anywhere; } .engineering-navigation { grid-template-columns:repeat(2,minmax(0,1fr)); } .engineering-navigation a { font-size:13px; padding:11px 12px; } .engineering-provenance { display:grid; font-size:11px; } .engineering-scope { padding:16px; } .engineering-section { padding:20px 16px; } .engineering-section-heading { padding-bottom:16px; gap:8px; } .engineering-section-heading h2 { font-size:21px; } .engineering-section-heading>span { font-size:12px; } .engineering-card-grid,.engineering-sources { grid-template-columns:minmax(0,1fr); } .engineering-record { padding:16px; } .engineering-record h3 { flex-basis:150px; font-size:15px; } .engineering-fields>div { grid-template-columns:80px minmax(0,1fr); gap:8px; } .engineering-record-heading { gap:8px; } .engineering-sources li { font-size:12px; } }
