:root{color-scheme:dark;--bg:#0c151c;--panel:#101d26;--ink:#f0eae0;--muted:#a2b6c0;--line:#2c3e47;--accent:#b3ccd5;font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--ink);height:100vh;height:100dvh;display:grid;grid-template-rows:74px minmax(0,1fr);overflow:hidden}a{color:var(--accent)}button,select,input{font:inherit}button,a,summary,input,select{-webkit-tap-highlight-color:transparent}button{color:var(--accent);border:0;background:none;cursor:pointer}button:hover,a:hover,summary:hover{color:#fff}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;top:-100px;left:20px;z-index:50;background:var(--panel);padding:12px}.skip-link:focus{top:8px}
.masthead{display:flex;justify-content:space-between;align-items:center;padding:0 30px;border-bottom:1px solid var(--line);background:#0d1720;z-index:20;gap:20px}.wordmark{display:flex;gap:16px;align-items:center;text-decoration:none;font-size:12px;letter-spacing:.13em;color:var(--ink);font-weight:600}.wordmark small{display:block;margin-top:4px;font-size:9px;letter-spacing:.17em;color:var(--muted)}.mark{font:42px/1 Georgia,serif;letter-spacing:-.14em;color:var(--accent)}.masthead>nav{display:flex;align-items:center;gap:16px;font-size:13px;white-space:nowrap}.masthead>nav>a{text-decoration:none;padding:10px 0;color:var(--muted)}.masthead>nav>a[aria-current]{color:var(--ink);text-decoration:underline;text-underline-offset:6px}#chapter-menu{position:relative}#chapter-menu summary{cursor:pointer;list-style:none;color:var(--accent);padding:10px 0}#chapter-menu summary::-webkit-details-marker{display:none}.chapter-menu-panel{position:absolute;right:0;top:45px;width:278px;max-height:calc(100dvh - 96px);overflow:auto;background:#101e28;border:1px solid #49616e;padding:18px;box-shadow:0 12px 40px #02080dcc}.chapter-menu-panel>p{font:10px/1.4 ui-monospace,Menlo,monospace;letter-spacing:.1em;color:var(--muted);margin:0 0 12px}#chapter-links{display:grid;gap:2px}#chapter-links button{display:flex;gap:12px;align-items:baseline;text-align:left;min-height:32px;padding:5px 7px;font-size:13px}#chapter-links button span{color:#8096a2;font:10px ui-monospace,Menlo,monospace}#chapter-links button[aria-current=step]{background:#253c49;color:#fff}.explorer-link{display:block;font-size:12px;padding:12px 7px 0;margin-top:7px;border-top:1px solid var(--line);text-decoration:none}
main{min-height:0;display:grid;grid-template-rows:minmax(150px,1fr) auto}.stage{position:relative;min-height:0;min-width:0;overflow:hidden;background:radial-gradient(ellipse at 50% 38%,#283940,#101c25 68%)}#viewport{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}.stage-heading{position:absolute;top:22px;left:28px;right:28px;display:flex;justify-content:space-between;gap:20px;pointer-events:none;font:10px/1.6 ui-monospace,Menlo,monospace;letter-spacing:.09em;color:#a3bac4}.stage-heading p{margin:0}.stage-heading small{display:block;font-size:9px;color:#7896a4;margin-top:4px}.stage-heading>span{color:#879eaa;white-space:nowrap;flex:none}.camera-actions{position:absolute;right:24px;top:66px;display:grid;gap:4px}.camera-actions button{width:32px;height:32px;font-size:20px;border:1px solid #38505c;background:#12232dc9;border-radius:2px}.model-note,.interaction-note{position:absolute;bottom:16px;margin:0;color:#91a9b6;font:10px/1.5 ui-monospace,Menlo,monospace;pointer-events:none}.model-note{left:28px;max-width:60%}.interaction-note{right:28px;text-align:right}#loading{position:absolute;top:45%;left:20px;right:20px;text-align:center;margin:0;color:var(--accent);font-size:14px;pointer-events:none}#loading.error{padding:18px;background:#101f29e8;max-width:480px;margin:auto;border:1px solid #536775}
#construction-transport{border-top:1px solid var(--line);background:#0c161d;padding:10px max(24px,calc((100% - 1040px)/2)) max(10px,env(safe-area-inset-bottom));max-height:55dvh;overflow:auto;scrollbar-width:thin;min-width:0}.caption-meta{display:flex;justify-content:space-between;align-items:center;min-height:27px;gap:12px;margin-bottom:4px}.section-select{min-width:0}.section-select select{color:#a3bbc6;font-size:12px;background:#0c161d;border:0;max-width:100%;padding:0;cursor:pointer}.beat-nav{display:flex;align-items:center;gap:8px;font:10px/1.4 ui-monospace,Menlo,monospace;color:#829aa7;white-space:nowrap}.beat-nav button{font-size:24px;min-width:24px;height:28px}h1{font:400 clamp(24px,2.3vw,30px)/1.15 "Iowan Old Style",Baskerville,Georgia,serif;letter-spacing:-.025em;margin:0 0 7px;text-wrap:balance}#construction-copy{font-size:16px;line-height:1.5;color:#bccbd2;margin:0;max-width:79ch;min-height:3em;text-wrap:pretty}#visual-note{font-size:10px;color:#829ca8;line-height:1.4;margin:8px 0 6px}.transport-row{display:flex;align-items:center;gap:15px;min-height:48px}.transport-row>button{font-size:12px;min-height:40px;padding:0}.transport-row>#previous-section{font-size:26px;min-width:24px}.transport-row>#play-toggle{background:var(--accent);color:#0b161e;border-radius:4px;min-width:92px;padding:0 15px;font-size:12px;white-space:nowrap}.progress-wrap{flex:1;min-width:45px;position:relative;padding-bottom:10px}.progress-wrap input{width:100%;accent-color:var(--accent);margin:0;cursor:pointer}.progress-wrap span{display:block;font:9px/1.3 ui-monospace,Menlo,monospace;letter-spacing:-.02em;color:#698794;position:absolute;white-space:nowrap;left:2px;bottom:-1px}#next-section,#day-handoff{max-width:24%;text-align:right;font-size:12px;line-height:1.4}#day-handoff{color:#d8e8ec;text-underline-offset:4px}
#system-diagram{position:absolute;left:28px;top:78px;max-width:260px;width:24vw;background:#10212bec;border-left:2px solid #769eac;padding:13px 15px;color:#c2d2d8;font-size:12px;box-shadow:0 6px 25px #020b1144;pointer-events:none}#system-diagram h2{font:10px/1.4 ui-monospace,Menlo,monospace;letter-spacing:.08em;color:#93b5c2;margin:0 0 12px}#system-diagram .diagram-row{padding:7px 0;border-top:1px solid #314853}#system-diagram b{display:block;font-weight:500;color:#dfebef}#system-diagram small{display:block;color:#a1bac6;font-size:11px;line-height:1.5}#system-diagram .diagram-note{font-size:9px;color:#7899a8;line-height:1.5;margin:10px 0 0}.construction-label{pointer-events:none}
dialog{background:#12212b;color:var(--ink);border:1px solid #4f6773;width:min(650px,calc(100vw - 32px));max-height:85dvh;overflow:auto;padding:30px;scrollbar-width:thin}dialog::backdrop{background:#030a11d4;backdrop-filter:blur(4px)}#close-evidence{float:right;font-size:25px;width:32px;height:32px;margin:-15px -15px 0 10px}dialog .eyebrow{font:10px/1.5 ui-monospace,Menlo,monospace;color:#9eb9c5;letter-spacing:.1em;margin:0 0 14px}dialog h2{font:30px/1.15 Georgia,serif;margin:0 0 19px}#evidence-copy p,.day-note p{font-size:14px;line-height:1.65;color:#b9cbd4;margin:0 0 13px}.day-note{border-block:1px solid #37505d;padding:15px 0;margin:18px 0}.day-note h3{font-size:13px;color:#d7e6eb;margin:0 0 8px}.day-note p{margin:0}#evidence-sources{display:grid;gap:11px;font-size:12px}.evidence-scope{font-size:11px;line-height:1.6;color:#869faa;margin:23px 0 0}.no-script{position:fixed;inset:auto 20px 50%;z-index:40;padding:20px;background:#152d3a;text-align:center}
@media(max-width:850px){body{grid-template-rows:60px minmax(0,1fr)}.masthead{padding:0 17px;gap:14px}.wordmark{font-size:10px;gap:10px}.wordmark small{font-size:8px}.mark{font-size:34px}.masthead>nav{gap:14px;font-size:12px}.masthead>nav>a>span{display:none}#construction-transport{padding-inline:20px}.progress-wrap span{display:none}.progress-wrap{padding:0}#system-diagram{width:220px;max-width:34%;left:20px;font-size:11px;padding:10px}.stage-heading{left:20px;right:20px}.camera-actions{right:17px}.model-note{left:20px;max-width:65%;font-size:9px}.interaction-note{right:20px;font-size:9px}}
@media(max-width:600px){.wordmark>span:last-child{display:none}.masthead{padding:0 16px}.masthead>nav{gap:17px;font-size:12px}.masthead>nav>a>span{display:inline}.mark{font-size:32px}.chapter-menu-panel{width:268px;max-height:calc(100dvh - 80px)}main{grid-template-rows:minmax(140px,1fr) auto}#construction-transport{padding:9px 16px max(9px,env(safe-area-inset-bottom));max-height:57dvh}h1{font-size:24px}#construction-copy{font-size:15px;line-height:1.45;min-height:4.35em}#visual-note{font-size:9px;margin:7px 0 3px}.transport-row{gap:10px;flex-wrap:wrap}.transport-row>#play-toggle{min-width:73px;padding-inline:12px}.transport-row>#previous-section{min-width:16px}#next-section,#day-handoff{max-width:26%;font-size:11px}.transport-row>button{font-size:11px}.caption-meta{margin-bottom:4px}.section-select select{font-size:11px;max-width:235px}.stage-heading{top:15px;left:16px;right:16px;font-size:9px}.stage-heading small{font-size:8px;max-width:250px}.camera-actions{top:58px;right:12px;gap:3px}.camera-actions button{width:29px;height:29px;font-size:18px}.model-note{bottom:10px;left:16px;max-width:80%;font-size:8px}.interaction-note{display:none}#system-diagram{top:auto;bottom:32px;left:16px;max-width:calc(100% - 64px);width:auto;min-width:190px;padding:8px 11px}#system-diagram h2{font-size:8px;margin:0 0 5px}#system-diagram .diagram-row{display:flex;gap:9px;padding:3px 0;align-items:baseline}#system-diagram b{font-size:10px;min-width:76px}#system-diagram small{font-size:10px}#system-diagram .diagram-note{display:none}dialog{padding:24px}dialog h2{font-size:26px}}
@media(max-height:580px) and (min-width:601px){body{grid-template-rows:52px minmax(0,1fr)}main{grid-template-columns:minmax(0,1fr) 43%;grid-template-rows:minmax(0,1fr)}#construction-transport{border-top:0;border-left:1px solid var(--line);padding:12px 18px;max-height:none}.wordmark .mark{font-size:30px}.caption-meta{margin-bottom:9px}.transport-row{flex-wrap:wrap}#next-section,#day-handoff{max-width:none;flex:1 0 100%;text-align:right}#system-diagram{max-width:45%;font-size:10px;top:auto;bottom:40px}#system-diagram .diagram-note{display:none}.interaction-note{display:none}.model-note{max-width:90%}#construction-copy{font-size:14px}.camera-actions{top:55px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Explicitly shrink the grid track on small phones; the transport wraps below
   its native controls rather than widening the entire viewport. */
main{min-width:0;grid-template-columns:minmax(0,1fr)}
body{grid-template-columns:minmax(0,1fr)}.masthead{min-width:0}
@media(max-width:360px){.masthead>nav{gap:12px}.masthead>nav>a>span{display:none}}
@media(max-width:600px) and (max-height:700px){.camera-actions{grid-template-columns:repeat(5,29px);top:56px;right:12px}.stage-heading small{max-width:245px}}
@media(max-height:580px) and (min-width:601px){main{grid-template-columns:minmax(0,1fr) minmax(0,43%)}}

/* The drawing always belongs to the viewing stage. Desktop shows it beside
   the model; compact screens select one view at a time. */
#construction-stage-content{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);min-width:0;min-height:0}
#construction-stage-content #viewport{position:relative;inset:auto;grid-column:1;grid-row:1;min-width:0;min-height:0}
#construction-stage-content.has-diagram{grid-template-columns:minmax(245px,28%) minmax(0,1fr)}
#construction-stage-content.has-diagram #viewport{grid-column:2}
#system-diagram{grid-column:1;grid-row:1;position:relative;inset:auto;align-self:center;max-width:330px;width:auto;min-width:0;max-height:calc(100% - 102px);overflow:auto;margin:70px 0 32px 28px;padding:12px 14px;pointer-events:auto;scrollbar-width:thin}
#system-diagram h2{font-size:10px;margin:0 0 10px}
#system-diagram .diagram-note{display:block;font-size:9px;line-height:1.5;margin:9px 0 0}
#system-diagram .diagram-row{display:block;padding:7px 0}
#system-diagram .diagram-row b{font-size:12px;min-width:0}
#system-diagram .diagram-row small{font-size:11px}
.construction-schematic{display:block;width:100%;height:auto;overflow:visible;color:#9ac1ce}
.construction-schematic text{font:11px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;fill:#d4e4e9}
.construction-schematic .diagram-zone{font-size:10px;letter-spacing:.07em;fill:#9ebcc9}
.diagram-node{fill:#142d39;stroke:#527684;stroke-width:1}
.diagram-source{fill:#29404b;stroke:#c6ac78;stroke-width:1.5}
.diagram-flow{fill:none;stroke:currentColor;stroke-width:1.5;marker-end:url(#water-arrow)}
.diagram-backup{stroke-dasharray:4 3}
.diagram-junction{fill:#c6ac78}
.diagram-divider{stroke:#3a535e;stroke-width:1}
.diagram-muted-group{opacity:.66}
#system-diagram .diagram-takeaway{font-size:12px;line-height:1.45;color:#d8e8eb;margin:10px 0 0}
/* Fit the drawing between its heading and source limits as the reading panel
   changes height. The SVG keeps its own proportions inside this available space. */
@media(min-width:601px){
  #system-diagram:has(.construction-schematic){height:min(360px,calc(100% - 102px));min-height:0;overflow:visible}
  #system-diagram:has(.construction-schematic) .construction-diagram-content{display:flex;flex-direction:column;height:100%;min-height:0}
  #system-diagram:has(.construction-schematic) h2,#system-diagram:has(.construction-schematic) p{flex:none}
  #system-diagram .construction-schematic{flex:1;min-height:0}
}
.diagram-steel{fill:#8baab6;stroke:#b4d0d9;stroke-width:1}
.diagram-column{fill:#536f7c;stroke:#a2bbc5;stroke-width:1}
.diagram-seat{fill:#8298a1;stroke:#bbcbd0;stroke-width:1}
.diagram-leader{fill:none;stroke:#93b0bc;stroke-width:1}
.diagram-contact{fill:none;stroke:#e1b775;stroke-width:3}
.diagram-contact-leader{fill:none;stroke:#e1b775;stroke-width:1}
.construction-schematic .diagram-contact-label{fill:#e5c593}
#floor-story-breadcrumb{display:flex;flex-wrap:wrap;gap:6px 10px;list-style:none;padding:0;margin:8px 0 5px;color:#829ca8;font-size:11px;line-height:1.6}
#floor-story-breadcrumb li+li::before{content:'→';padding-right:10px;color:#536e7b}
#floor-story-breadcrumb [aria-current=step]{color:#e8d0a7;font-weight:600}
@media(max-width:850px){#construction-stage-content.has-diagram{grid-template-columns:minmax(220px,34%) minmax(0,1fr)}#system-diagram{margin-left:20px;padding:10px;max-height:calc(100% - 98px)}}
@media(max-width:600px){
  #construction-stage-content.has-diagram{grid-template-columns:minmax(0,1fr)}
  #construction-stage-content.has-diagram #viewport{grid-column:1}
  #construction-stage-content[data-view=diagram] #viewport{visibility:hidden}
  #construction-stage-content[data-view=model] #system-diagram{visibility:hidden}
  #system-diagram{align-self:stretch;inset:auto;width:auto;max-width:none;min-width:0;max-height:none;margin:62px 16px 53px;padding:8px 12px;overflow:auto;border-left:2px solid #769eac;background:#10212b}
  #system-diagram .construction-diagram-content{display:flex;flex-direction:column;min-height:100%;height:100%}
  #system-diagram .construction-schematic{flex:1;min-height:210px}
  #system-diagram h2{font-size:9px;margin:0 0 6px;flex:none}
  #system-diagram p{flex:none}
  #system-diagram .diagram-note{display:block;font-size:9px;margin-top:6px}
  #system-diagram .diagram-takeaway{font-size:11px;margin-top:6px}
  #system-diagram .diagram-row{display:block}
  #system-diagram .diagram-row b{font-size:12px}
  #system-diagram .diagram-row small{font-size:11px}
  #floor-story-breadcrumb{font-size:10px;gap:4px 7px}
  #floor-story-breadcrumb li+li::before{padding-right:7px}
  .stage[data-view=diagram] .camera-actions,.stage[data-view=diagram] #loading:not(.error){visibility:hidden}
  .stage .model-note{display:none}
}

@media(max-height:580px) and (min-width:601px){#construction-stage-content.has-diagram{grid-template-columns:minmax(150px,44%) minmax(0,1fr)}#system-diagram{margin:68px 0 30px 12px;padding:9px;max-height:calc(100% - 98px)}#system-diagram h2{font-size:9px}.construction-schematic text{font-size:11px}}
.construction-plan-locator{position:absolute;left:28px;top:70px;width:143px;padding:5px 6px;background:#0b1a22d9;border:1px solid #38515d;border-radius:3px;pointer-events:none;z-index:2}
.construction-plan-locator .plan-floor{font-size:10px;letter-spacing:.09em;fill:#adc5cf}
.plan-building{fill:#182f3b;stroke:#829fac;stroke-width:1.2}
.plan-bay{fill:#d5ad6959;stroke:#d9b878;stroke-width:1}
.plan-girder{fill:none;stroke:#f4d39d;stroke-width:2}
.plan-column{fill:#f4d39d}
.construction-plan-locator .plan-north{font-size:10px;fill:#adc5cf}
.plan-north-arrow{fill:none;stroke:#9cb7c2;stroke-width:1.2}
.construction-plan-locator .plan-key{font-size:10px;fill:#d9b878}
#construction-stage-content.has-diagram .construction-plan-locator{left:14px}
@media(max-width:850px){.construction-plan-locator{left:20px;width:127px}}
@media(max-width:600px){.construction-plan-locator{left:12px;top:62px;width:108px;padding:3px}}
/* Preserve a usable model area on short phones. Controls sit below the
   authored subject; provenance remains in the reading panel's visual note. */
@media(max-width:600px) and (max-height:700px){
  #construction-transport{max-height:49dvh}
  .camera-actions{top:auto;bottom:7px;right:12px}
  .model-note{display:none}
  .construction-plan-locator{top:54px;width:88px;padding:2px}
}
.story-route-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 5px;min-height:28px}
.story-route-controls{display:flex;align-items:center;gap:5px}
.story-route-controls button{font-size:11px;padding:3px 9px;border:1px solid transparent;border-radius:3px;color:#8ba5b2;white-space:nowrap}
.story-route-controls button[aria-pressed=true]{color:#e8d0a7;border-color:#526873;background:#1b2b35}
#story-position{font:10px/1.3 ui-monospace,Menlo,monospace;color:#91aab7;white-space:nowrap}
#story-progress{display:block;appearance:none;width:100%;height:2px;border:0;background:#233743;margin:0 0 7px;accent-color:#c7b38d}
#story-progress::-webkit-progress-bar{background:#233743}#story-progress::-webkit-progress-value{background:#c7b38d}#story-progress::-moz-progress-bar{background:#c7b38d}
@media(max-width:600px){.story-route-row{gap:6px}.story-route-controls{gap:2px}.story-route-controls button{font-size:10px;padding:3px 7px}#story-position{font-size:9px}}

.view-actions{position:absolute;left:28px;bottom:12px;z-index:4;display:flex;gap:9px;align-items:center}
.view-actions button{font-size:10px;min-height:30px;padding:5px 9px;background:#12232de8;border:1px solid #38505c;border-radius:3px}
#view-switch{display:flex;gap:3px}
#view-switch button[aria-pressed=true]{color:#f0dfbf;border-color:#9c927b;background:#283840}
@media(min-width:601px){.view-actions{left:auto;right:24px;bottom:12px}.interaction-note{display:none}}
@media(max-width:600px){.view-actions{left:16px;right:16px;bottom:9px;justify-content:space-between}.camera-actions{top:58px;bottom:auto;grid-template-columns:1fr}}
body.view-expanded .stage{position:fixed;inset:0;z-index:30}
body.view-expanded .masthead,body.view-expanded #construction-transport{visibility:hidden}
body.view-expanded .skip-link{display:none}
body.view-expanded #system-diagram{max-height:calc(100% - 122px)}
body.view-expanded .view-actions{bottom:max(16px,env(safe-area-inset-bottom))}
