[hidden] { display: none !important; }
.scene-hero { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); min-height:0; padding-block:32px; }
.scene-hero .scene-photo { align-self:center; }
.scene-photo .photoframe,.scene-hero .hero-photo .photoframe { aspect-ratio:3/2; min-height:0; flex:none; }
.scene-photo img { object-fit:contain; }
.casegrid-expanded { grid-template-columns:repeat(2,minmax(0,1fr)); }
.casegrid-expanded .scene-photo .photoframe { aspect-ratio:3/2; }
.decision-pair,.record-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; }
.decision-pair article { border-top:3px solid #4598a7; padding-top:26px; }
.decision-pair h3,.record-grid h3 { margin:15px 0 24px; }
.decision-pair p,.record-grid p,.evidence-list { font-size:16px; }
.evidence-list { padding-left:20px; }
.evidence-list li { margin:0 0 18px; padding-left:8px; }
.handover-note { border:1px solid #244c6144; padding:30px; }
.task-boundary { margin-top:30px; max-width:850px; }
html:has(.scene-hero) { scroll-behavior:auto; }
@media(max-width:760px) {
 .scene-hero { grid-template-columns:1fr; padding-block:0; }
 .scene-hero .scene-photo { order:-1; }
 .decision-pair,.record-grid,.casegrid-expanded { grid-template-columns:1fr; gap:30px; }
 .scene-hero .hero-photo .photoframe { aspect-ratio:3/2; }
}
.nav a[data-active="true"] { color: #087888; }
.resource-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 26px; }
.resource-card { padding: 28px; border: 1px solid var(--line); border-top: 3px solid #3b98a8; }
.light .resource-card { border-color: #173c4a25; border-top-color: #3b98a8; background: #ffffff7a; }
.resource-card h3 { margin: 12px 0 18px; font-size: 30px; }
.resource-card p { font-size: 15px; }
.light .textlink { color: #176f81; }
.resource-card .textlink { font-weight: 600; }
.scope-note { padding: 18px 23px; border-left: 3px solid #68c4d1; background: #ffffff0a; font-size: 14px; }
.light .scope-note { background: #dce8e766; }
.download-row { display:flex; align-items: center; flex-wrap: wrap; gap: 18px 28px; margin: 30px 0 0; }
.download-row a:not(.button) { font-size: 14px; text-decoration: underline; text-underline-offset: 4px; }
.table-scroll { overflow-x: auto; }
.component-table { width:100%; border-collapse:collapse; text-align:left; }
.component-table th,.component-table td { border-bottom:1px solid #8eabb844; padding: 20px 18px; vertical-align: top; }
.component-table th { min-width: 220px; }
.component-table small { display:block; color: #83becb; font: 11px ui-monospace,monospace; margin-top:8px; }
.library-filter { display:grid; grid-template-columns: auto minmax(150px,1fr) auto minmax(150px,.7fr); gap:12px; align-items: center; margin-bottom:30px; }
.library-filter input,.library-filter select,.parts-panel input { font-family:inherit; font-size:16px; padding: 12px 14px; width:100%; min-width:0; color:#102c39; background:#fff; border:1px solid #77919b; }
.library-filter p { grid-column:1/-1; margin:0; font-size:13px; }
.library-filter label { font-size:13px; }
.library-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:38px 25px; }
.library-item h3 { margin:20px 0 12px; font-size:29px; }
.library-item p { font-size:14px; }
.library-item .photoframe { aspect-ratio:16/10; }
.process-grid { display:grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 28px; }
.process-grid article { border-top:2px solid #4c9aaa; padding-top:20px; }
.process-grid span { font:12px ui-monospace,monospace; color:#2b7c8c; }
.process-grid h3 { margin:18px 0; font-size:28px; }
.process-grid p { font-size:15px; }
.access-card { display:grid; grid-template-columns:1fr 1fr; gap:60px; }
.access-card h3,.prompt-panel h3 { margin-bottom:20px; }
.access-card small { font-size:13px; }
.prompt-panel { margin-top:40px; padding:30px; border:1px solid var(--line); }
.prompt-panel p { font-size:15px; }
.procedure-steps { padding:0; margin:0; list-style:none; }
.procedure-steps li { display:grid; grid-template-columns:70px 1fr; gap:25px; padding:35px 0; border-bottom:1px solid var(--line); scroll-margin-top:120px; }
.step-number { font:34px ui-monospace,monospace; color:#76cbd9; }
.procedure-steps h3 { margin-bottom:20px; }
.procedure-steps .expected { font-size:14px; color:#cfe8ed; margin-bottom:10px; }
.procedure-steps .eyebrow { margin-bottom:12px; }
.inspector { display:grid; grid-template-columns:minmax(0,2.25fr) minmax(250px,1fr); gap:25px; }
.model-column,.parts-panel { min-width:0; }
.model-shell { position:relative; border:1px solid #4f7184; background:radial-gradient(ellipse at 50% 40%,#e3ebed,#c5d3d9); border-radius:8px; overflow:hidden; }
model-viewer { display:block; width:100%; height:560px; --poster-color:transparent; --progress-bar-color:#2d8ea0; }
.asset-badge { position:absolute; left:16px; top:15px; color:#174354; font:10px ui-monospace,monospace; background:#ffffffc9; padding:8px 12px; pointer-events:none; }
.model-status { position:absolute; bottom:16px; left:16px; right:16px; padding:12px; background:#0d293cec; color:#fff; font-size:13px; }
.model-status.loaded { background:#ffffffd9; color:#214b5a; pointer-events:none; }
.viewer-tools { display:flex; flex-wrap:wrap; gap:8px; padding:17px 0; }
.viewer-tools button { border:1px solid #657f8d; padding:9px 13px; color:#153b4b; background:#fff; font-size:13px; }
.viewer-tools button:hover,.viewer-tools button[aria-pressed="true"] { background:#d7eef1; }
.inspection-spread { border-top:1px solid #8ea5ad; padding-top:17px; }
.inspection-spread label { display:flex; justify-content:space-between; font-size:15px; font-weight:600; color:#163b4c; }
.inspection-spread input { display:block; width:100%; margin:18px 0; accent-color:#197c8f; }
.inspection-spread .small { font-size:13px; }
.parts-panel { background:#fff; border:1px solid #1e43542c; padding:20px; }
.parts-panel>label { display:block; font-size:13px; color:#294d5e; margin-bottom:10px; }
.component-list { max-height:350px; overflow:auto; margin:16px 0; }
.component-list button { width:100%; padding:12px; margin:0 0 6px; border:1px solid #d2dfe2; background:#f7f9f8; text-align:left; color:#183c4b; }
.component-list span { display:block; font-size:14px; font-weight:600; }
.component-list small { display:block; font:10px ui-monospace,monospace; color:#547584; margin-top:4px; }
.component-list button[aria-pressed="true"] { background:#d6eef1; border-color:#24869a; box-shadow:inset 3px 0 #24869a; }
.selection-detail { border-top:1px solid #c0d1d8; padding-top:20px; }
.selection-detail .eyebrow { font-size:10px; margin-bottom:10px; }
.selection-detail h3 { font-size:26px; margin-bottom:14px; }
.selection-detail p { font-size:14px; }
.model-hotspot { border:1px solid #397d8f; border-radius:20px; background:#fffffff0; color:#163847; padding:7px 11px; font-size:11px; box-shadow:0 3px 12px #132e4530; white-space:nowrap; }
.model-hotspot.selected { background:#c2f0f5; border-color:#08768c; box-shadow:0 0 0 3px #57c0d460; }
@media(max-width:1050px) {
  .nav { gap:18px; }
  .brand .brand-lockup { width:190px; }
  .resource-grid,.library-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .process-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .inspector { grid-template-columns:minmax(0,1.8fr) minmax(230px,1fr); }
  model-viewer { height:490px; }
}
@media(max-width:760px) {
  .resource-grid,.library-grid,.access-card,.inspector { grid-template-columns:1fr; }
  .resource-grid,.library-grid { gap:25px; }
  .resource-card { padding:23px; }
  .resource-card h3 { font-size:30px; }
  .library-filter { grid-template-columns:1fr; gap:8px; }
  .library-filter input,.library-filter select { margin-bottom:12px; }
  .library-filter p { grid-column:auto; }
  .access-card { gap:35px; }
  .procedure-steps li { grid-template-columns:40px 1fr; gap:13px; padding:28px 0; }
  .step-number { font-size:26px; }
  .procedure-steps h3 { font-size:29px; }
  .prompt-panel { padding:23px; }
  model-viewer { height:430px; }
  .asset-badge { font-size:8px; left:10px; top:10px; padding:6px 8px; }
  .viewer-tools button { padding:10px 12px; }
  .parts-panel { padding:18px; }
  .component-list { max-height:285px; }
  .model-hotspot { font-size:10px; padding:6px 8px; }
}
@media(max-width:440px) { .process-grid { grid-template-columns:1fr; } }
