/* NODAL extends the portfolio's existing palette and serif/system type pairing. */
.nodal-page{--technical:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
.nodal-header,.nodal-footer{width:min(1320px,100%);margin:auto;padding:32px clamp(22px,5vw,72px);display:flex;justify-content:space-between;align-items:baseline;gap:20px}
.nodal-header nav{justify-content:flex-end;flex-wrap:wrap;font:13px/1.6 var(--technical);gap:12px 24px}.nodal-header nav a{color:var(--muted);padding:10px 0}
.nodal-layout{width:min(1320px,100%);margin:auto;padding:0 clamp(22px,5vw,72px);display:grid;grid-template-columns:190px minmax(0,800px);gap:clamp(36px,6vw,90px);justify-content:space-between}
.nodal-page main{padding:58px 0 0;min-width:0}.case-index{position:sticky;top:28px;align-self:start;padding-top:64px}.micro,.case-index nav,.index-note,.project-facts,.source-note,.nodal-footer{font:12px/1.65 var(--technical);color:var(--muted)}.micro{text-transform:uppercase;letter-spacing:.09em;margin:0 0 22px}.case-index nav{display:flex;flex-direction:column;align-items:stretch;gap:0}.case-index nav a{display:flex;gap:12px;align-items:center;min-height:40px;color:var(--muted)}.case-index nav a span{font-size:10px}.case-index nav a[aria-current],.case-index nav a:hover{color:var(--fg)}.index-note{border-top:1px solid var(--line);padding-top:18px;margin-top:28px}
.nodal-opening h1{font-size:clamp(68px,9vw,116px);line-height:1;letter-spacing:-.055em;margin:30px 0 14px;font-weight:400}.tagline{font-size:17px;font-style:italic;color:var(--muted);margin:0 0 52px}.opening-question{font-size:clamp(26px,3.1vw,38px);line-height:1.3;letter-spacing:-.025em;max-width:24ch;margin-bottom:28px}.lead{max-width:59ch;color:var(--muted);font-size:18px;line-height:1.8}.project-facts{display:grid;grid-template-columns:2fr 1fr;gap:18px 30px;border-top:1px solid var(--line);padding-top:24px;margin:32px 0 0}.project-facts div:nth-child(3){grid-column:1 / -1}dt{color:var(--muted)}.project-facts dd{color:var(--fg);margin:4px 0 0}
.case-section{padding:64px 0 0;margin-top:68px;border-top:1px solid var(--line);scroll-margin-top:28px}.case-section h2{font-size:clamp(27px,3vw,36px);font-weight:400;line-height:1.3;margin:0 0 28px;max-width:29ch}.prose{max-width:64ch}.prose p,.case-section>p.prose{color:var(--muted)}.research-line{font:13px/2 var(--technical);margin:32px 0 0;display:flex;flex-wrap:wrap;gap:8px 16px}.research-line span{color:var(--line)}
.workflow{margin:36px 0 0}.stage-tabs{display:none}.workflow.enhanced .stage-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0}.nodal-page button{font:13px/1.5 var(--technical);color:var(--muted);background:none;cursor:pointer;border:0;border-bottom:1px solid var(--line);border-radius:0;min-height:44px;padding:12px 4px;text-align:left;transition:color .16s,border-color .16s,background .16s}.stage-tabs button span{display:block;font-size:11px;margin-bottom:8px}.stage-tabs button[aria-selected="true"]{color:var(--fg);border-bottom:2px solid var(--link)}.nodal-page button:hover{color:var(--fg);border-color:var(--fg)}.stage-panels{border-bottom:1px solid var(--line)}.stage-panel{padding:28px 0}.enhanced .stage-panel{min-height:320px}.stage-panel[hidden]{display:none}.stage-panel .micro{margin-bottom:12px}.stage-panel h3{font-size:24px;line-height:1.35;font-weight:400;margin-bottom:14px}.stage-panel>p:not(.micro){color:var(--muted);max-width:57ch}.stage-panel dl{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:24px 0 0;font:13px/1.7 var(--technical)}.stage-panel dt{text-transform:uppercase;font-size:10px;letter-spacing:.1em}.stage-panel dd{margin:8px 0 0}
.evidence-study{margin:36px 0}.evidence-study figcaption{font-size:10px;max-width:65ch}.source-model{display:grid;grid-template-columns:1fr 26px 1fr;gap:18px;border-block:1px solid var(--line);padding:24px 0}.source-model p{font-size:21px;line-height:1.6;margin:16px 0}.source-model .micro{font-size:10px}.flow-arrow{align-self:center;color:var(--link)}mark{background:transparent;color:inherit;transition:background .2s,color .2s}mark.active{color:var(--bg);background:var(--link)}.reading-controls,.decision-controls{display:flex;flex-wrap:wrap;gap:8px 20px;margin:16px 0}.reading-controls[hidden],.decision-controls[hidden]{display:none}.reading-controls button[aria-pressed="true"]{color:var(--fg);border-color:var(--link)}.reading-note,.decision-note{font:13px/1.7 var(--technical);color:var(--muted);min-height:48px}.human-decision{border-left:2px solid var(--line);padding-left:24px;margin-top:32px}.human-decision h3{font-weight:400;font-size:23px;line-height:1.4;margin-bottom:14px}.human-decision .micro{margin-bottom:12px}.human-decision>p:not(.decision-note){color:var(--muted);font-size:16px}.human-decision[data-state="accept"]{border-color:var(--link)}.boundary-statement{font-size:26px;line-height:1.4;max-width:28ch;margin:38px 0 20px}
.design-decisions,.engineering-notes{margin-top:32px}.design-decisions>div,.engineering-notes>div{display:grid;grid-template-columns:180px 1fr;gap:28px;padding:22px 0;border-top:1px solid var(--line)}.design-decisions dt,.engineering-notes dt{font:13px/1.7 var(--technical);color:var(--fg)}.design-decisions dd,.engineering-notes dd{margin:0;color:var(--muted);font-size:16px;line-height:1.8}.boundaries h2{font-size:clamp(30px,3.6vw,44px)}.state-columns{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:16px}.state-columns h3{font:13px/1.7 var(--technical);margin-bottom:14px}.state-columns p{font-size:16px;color:var(--muted)}.source-note{border-top:1px solid var(--line);padding-top:18px;margin-top:28px}.closing-line{font-size:clamp(28px,3.2vw,40px);line-height:1.4;letter-spacing:-.025em;margin:64px 0 36px}.return-link{display:inline-block;font:14px/1.7 var(--technical);padding:10px 0}.return-link span{margin-left:24px}.nodal-footer{margin-top:64px;border-top:1px solid var(--line)}
@media(max-width:960px){.nodal-layout{display:block;max-width:820px}.case-index{position:static;padding-top:22px}.case-index nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.case-index .micro{margin-bottom:12px}.index-note{display:none}.nodal-page main{padding-top:44px}.nodal-header{max-width:820px}.case-index nav a{min-height:40px}}
@media(max-width:600px){.nodal-header{flex-direction:column;gap:8px;padding-bottom:14px}.nodal-header nav{justify-content:flex-start}.case-index nav{font-size:11px}.case-index nav a{min-height:44px;gap:8px}.nodal-opening h1{margin-top:20px}.tagline{font-size:15px;margin-bottom:36px}.lead{font-size:17px}.project-facts{gap:18px}.case-section{margin-top:48px;padding-top:40px}.workflow.enhanced .stage-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 8px}.stage-panel dl{grid-template-columns:1fr;gap:18px}.enhanced .stage-panel{min-height:420px}.source-model{grid-template-columns:1fr;gap:4px}.flow-arrow{transform:rotate(90deg);justify-self:center}.source-model p{font-size:20px}.design-decisions>div,.engineering-notes>div{grid-template-columns:1fr;gap:10px}.state-columns{grid-template-columns:1fr;gap:12px}.human-decision{padding-left:18px}.closing-line{margin-top:44px}.nodal-footer{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.nodal-page *{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
@media print{.case-index,.nodal-header,.reading-controls,.decision-controls,.stage-tabs{display:none!important}.nodal-layout{display:block}.stage-panel[hidden]{display:block}.case-section{break-inside:avoid}body{background:white;color:black}.nodal-page{--fg:#111;--muted:#333;--line:#999;--bg:#fff;--link:#234}}
@media(prefers-reduced-motion:no-preference){.enhanced .stage-panel:not([hidden]){animation:nodal-stage-in .18s ease-out}@keyframes nodal-stage-in{from{opacity:.5}to{opacity:1}}}
