/* Site-wide component bridge: legacy page structures retain their content and URLs. */
*{box-sizing:border-box}html{scroll-padding-top:1rem}body,body.ab-system{margin:0;background:var(--bg);color:var(--text);font:400 var(--ab-type-base)/1.6 var(--font-body);color-scheme:inherit;overflow-wrap:break-word}
body :is(h1,h2,h3,h4,h5,h6),body.ab-system :is(h1,h2,h3){font-family:var(--font-heading);color:var(--heading);font-weight:400;letter-spacing:-.02em;text-wrap:pretty}
body h1,body .lesson-page .hub-hero h1,body.ab-system h1{font-size:var(--ab-type-h1);line-height:1.02;font-weight:400;letter-spacing:-.02em}
body h2,body.ab-system h2,body .lesson-page .lesson-section h2{font-size:var(--ab-type-h2);line-height:1.1;font-weight:400}
body h3,body.ab-system h3{font-size:var(--ab-type-h3);line-height:1.15;font-weight:500}
body :is(p,li,label,input,select,button,summary){font-family:var(--font-body)}body p{color:inherit}body a{color:var(--accent);text-underline-offset:.22em}body a:hover{color:var(--heading)}body em{font-style:italic;color:var(--accent)}
body :is(.lead,.large){font-size:var(--ab-type-lead);line-height:1.55;color:var(--text)}
body :is(.eyebrow,.eyebrow.dark,.case-kicker,.contact-eyebrow,.visual-label){font:600 13px/1.5 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
body :is(.number,.project-metric,.metric-number,.step-number){font-family:var(--font-heading);font-variant-numeric:lining-nums tabular-nums;color:var(--accent)}
body :is(.small,.meta,.muted,.caption,.project-origin,.reading-time){color:var(--text-muted)}
body :is(.button,.contact-primary,.portfolio-primary),body.ab-system .button{background:var(--button-bg);color:var(--button-text);border:1px solid transparent;border-radius:999px;padding:12px 22px;font:600 1rem/1.4 var(--font-body);min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:12px;text-decoration:none;box-shadow:none;margin:0;transition:background var(--ab-duration-fast)}
body :is(.button,.contact-primary,.portfolio-primary):hover{background:var(--accent);color:var(--button-text)}
body :is(.button.secondary,.contact-secondary,.text-link),body.ab-system .button.secondary{background:transparent;border:0;border-radius:0;color:var(--accent);text-decoration:underline;text-underline-offset:5px;padding:10px 0;box-shadow:none;min-height:44px}
body :is(.article-card,.topic-card,.project,.panel,.calc-card,.calculator-panel,.contact-card,.scope-box,.callout,.review-notice){background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;box-shadow:none;transform:none}
body :is(.article-card,.topic-card,.panel,.calc-card,.calculator-panel){padding:36px}
body :is(.article-card,.project):hover{box-shadow:none;transform:none;border-color:var(--accent)}
body :is(.article-card-body,.project-body){background:transparent;color:var(--text)}
body :is(.section-heading,.section-head){border-bottom:1px solid var(--border);padding-bottom:24px;margin-bottom:36px}
body :is(.hero,.hub-hero,.subject-hero,.case-hero,.profile,.connect,.case-result,.result-strip,.trust-panel,.formula,.case-equation,.lesson-equation,.calc-result,.result-panel,.project-visual){background:var(--band-pale);color:var(--text);box-shadow:none}
body :is(.hero,.hub-hero,.subject-hero,.case-hero) p{color:var(--text)}
body :is(.section,.case-section){border-color:var(--border)}
body :is(.verification-badge,.badge,.hub-status){background:transparent!important;color:var(--accent)!important;border:0!important;border-radius:0!important;padding:0!important;font:600 12px/1.6 var(--font-body)!important;letter-spacing:.08em;text-transform:uppercase;box-shadow:none!important}
body :is(.topic-chip,.domain-tag,.difficulty,.tags span){background:transparent;color:var(--accent);border-color:var(--border);box-shadow:none}
body :is(input,select,textarea){background:var(--surface);color:var(--text);border:1px solid var(--control-border);border-radius:8px;min-height:44px;font-size:1rem}
body input[type=checkbox],body input[type=radio]{min-height:0;accent-color:var(--accent)}
body table{color:var(--text)}body :is(th,td){color:var(--text);background:var(--surface);border-color:var(--border)}body th{background:var(--band-pale)}
body :is(.case-table-wrap,.table-wrap){max-width:100%;overflow-x:auto;border-color:var(--border)}
body :is(.case-figure,.lesson-figure,.model-panel,.diagram-panel){border-color:var(--border);background:var(--surface);color:var(--text)}
body figcaption{color:var(--text-muted)}body img{max-width:100%}body :is(pre,code){overflow-wrap:anywhere}body pre{overflow:auto;max-width:100%}
body :is(.case-grid,.article-grid,.learning-grid,.calculator-grid,.projects){min-width:0}body :is(.case-grid,.article-grid,.learning-grid,.calculator-grid,.projects)>*{min-width:0}
body :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--accent);outline-offset:4px;box-shadow:0 0 0 6px var(--surface)}
body .skip{position:fixed;top:-100px;left:20px;z-index:1000;background:var(--button-bg);color:var(--button-text);padding:12px 22px}body .skip:focus{top:12px}
/* Shared header and footer */
body .portfolio-header{height:auto;display:block;background:var(--bg);color:var(--text);padding:0;border-bottom:1px solid var(--border)}
.portfolio-container{width:min(100%,1280px);padding-inline:40px;margin-inline:auto}
.portfolio-header .portfolio-header-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding-block:26px}
body .portfolio-brand{display:flex;align-items:center;gap:16px;flex:1 1 390px;color:var(--heading);text-decoration:none;min-width:0}
.portfolio-brand .monogram{font:500 36px/1 var(--font-heading);letter-spacing:-.06em;white-space:nowrap}.portfolio-brand .monogram span{color:var(--accent)}
.portfolio-brand .brand-name{font:400 24px/1.2 var(--font-heading);letter-spacing:0;text-transform:none;display:block;white-space:nowrap}
.portfolio-brand .brand-subtitle{font:400 12px/1.5 var(--font-body);letter-spacing:0;color:var(--text-muted);display:block;margin-top:6px;max-width:37em}
body .portfolio-nav{display:flex;align-items:center;flex-wrap:wrap;gap:18px;color:var(--text);font-size:15px}
.portfolio-nav>a,.portfolio-nav summary{display:inline-flex;align-items:center;min-height:44px;padding-block:8px;color:var(--text);text-decoration:none;cursor:pointer}
.portfolio-nav [aria-current=page]{text-decoration:underline;text-underline-offset:7px}
.portfolio-nav details{position:relative}.portfolio-nav summary{list-style:none;gap:6px}.portfolio-nav summary::-webkit-details-marker{display:none}
.portfolio-nav .menu-panel{position:absolute;top:100%;right:0;left:auto;z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:8px;width:255px;max-width:calc(100vw - 40px);padding:12px;box-shadow:none}
.portfolio-nav .menu-panel a{display:block;min-height:44px;padding:10px;color:var(--text)}
.portfolio-header .header-actions{display:flex;align-items:center;gap:16px}.portfolio-header .portfolio-primary{font-size:14px;white-space:nowrap}.portfolio-header .appearance-button{border:0;border-radius:0;background:none;color:var(--text-muted);font:500 13px var(--font-body);min-height:44px;padding:8px 0;cursor:pointer;white-space:nowrap}
body .portfolio-footer{display:block;background:var(--navy);color:#FFFFFF;padding:48px 0 24px;border:0;font-size:14px}
.portfolio-footer .footer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;flex-wrap:wrap}.portfolio-footer p{color:#FFFFFF;max-width:65ch}.portfolio-footer .footer-name{font:400 28px var(--font-heading);color:#FFFFFF;text-decoration:none;letter-spacing:0}.portfolio-footer .footer-location{margin:10px 0}.portfolio-footer .footer-links{display:flex;gap:24px;flex-wrap:wrap}.portfolio-footer a{color:#FFFFFF}.portfolio-footer .footer-legal{border-top:1px solid #44566F;padding-top:24px;margin-top:28px;font-size:12px;line-height:1.7;max-width:none;color:#E8EEF5}.portfolio-footer :focus-visible{outline-color:#9DB7D3;box-shadow:0 0 0 6px #14284B}
/* New homepage */
.portfolio-home main{width:100%;max-width:none;padding:0;margin:0}
.announcement{background:var(--navy);color:#FFFFFF;text-align:center;font-size:14px;padding:10px 20px;line-height:1.5}.announcement a{color:#FFFFFF;text-decoration:underline;white-space:nowrap}.announcement a:hover{color:#FFFFFF}
.home-section{padding-block:96px}.home-section .section-heading{display:flex;justify-content:space-between;align-items:end;gap:24px}.home-section .section-heading h2{margin:0}.home-section .section-heading p{margin:0}.home-section h2{margin-top:0}.home-section p{max-width:65ch}
.home-hero{position:relative;isolation:isolate;overflow:hidden;padding-block:76px 88px}
.home-hero::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:64px 64px;opacity:.25;mask-image:linear-gradient(90deg,transparent 30%,#000 100%);pointer-events:none}
.home-hero-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(250px,.8fr);gap:80px;align-items:center}.home-hero .hero-name{font:400 clamp(1.5rem,1.25rem + 1vw,2rem)/1.2 var(--font-heading);color:var(--heading);margin:0 0 16px}.home-hero .hero-credentials{font-size:14px;color:var(--text-muted);line-height:1.7;margin-bottom:28px}.home-hero h1{margin:0 0 28px;max-width:13ch}.home-hero .availability{margin:0 0 28px;font-size:17px;max-width:38ch}.home-hero .text-link{display:inline-flex;align-items:center;gap:30px;font-size:17px;font-weight:600}
.portrait-placeholder{margin:0;position:relative;aspect-ratio:4/5;background:var(--band-pale);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;justify-content:center;align-items:center;max-width:360px;width:100%;justify-self:end;overflow:hidden}
.portrait-placeholder::before,.portrait-placeholder::after{content:"";position:absolute;inset:22px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);pointer-events:none}.portrait-placeholder::after{inset:12px 32px;border:0;border-left:1px solid var(--border);border-right:1px solid var(--border)}
.portrait-placeholder .portrait-initials{font:400 100px/1 var(--font-heading);color:var(--accent);letter-spacing:-.06em}.portrait-placeholder figcaption{font-size:13px;position:absolute;bottom:32px;color:var(--text-muted)}
.credential-strip{background:var(--navy);color:#FFFFFF;padding-block:30px}.credential-strip ul{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;padding:0;list-style:none;margin:0}.credential-strip li{border-left:1px solid #44566F;padding-left:24px;margin:0}.credential-strip li:first-child{border-left:0;padding-left:0}.credential-strip strong{display:block;font:500 23px/1.3 var(--font-heading);color:#FFFFFF}.credential-strip span,.credential-strip a{display:block;font-size:13px;color:#E8EEF5;margin-top:5px}.credential-strip a{text-decoration:underline}.credential-strip :focus-visible{outline-color:#9DB7D3;box-shadow:none}
.audience-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.editorial-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:36px;box-shadow:none;display:flex;flex-direction:column;gap:18px;min-width:0}.editorial-card h3,.editorial-card p{margin:0}.editorial-card .text-link{margin-top:auto;align-self:flex-start}.editorial-card .card-context{font:600 12px/1.6 var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.pale-band{background:var(--band-pale)}.approach-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:80px}.approach-layout h2{max-width:14ch}.approach-steps{padding:0;margin:0;list-style:none}.approach-steps li{display:grid;grid-template-columns:64px 1fr;gap:20px;border-top:1px solid var(--border);padding:26px 0}.approach-steps li:last-child{padding-bottom:0}.approach-steps .step-number{font:400 52px/1 var(--font-heading);color:var(--accent)}.approach-steps h3{margin:0 0 12px}.approach-steps p{margin:0}
.work-grid,.notes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.work-grid .work-metric{font:400 36px/1.15 var(--font-heading);color:var(--accent);margin:8px 0}.work-grid .work-metric small{font:400 14px var(--font-body);display:block;margin-top:8px;color:var(--text-muted)}
.latest-notes{background:var(--band-pale)}.closing-contact{padding-block:40px}.closing-contact .portfolio-container{display:flex;align-items:center;justify-content:space-between;gap:24px}.closing-contact p{margin:0;font-size:20px}.closing-contact a{white-space:nowrap}
@media(min-width:1050px) and (max-width:1250px){.portfolio-brand{flex-basis:100%}.portfolio-header .header-actions{margin-left:auto}}
@media(max-width:1049px){.portfolio-header .portfolio-header-row{gap:12px 24px}.portfolio-brand{flex-basis:100%}.portfolio-header .header-actions{margin-left:auto}.home-hero-grid{gap:36px}.approach-layout{gap:40px}.work-grid,.notes-grid{grid-template-columns:1fr}.work-grid .editorial-card,.notes-grid .editorial-card{padding:28px}.credential-strip ul{gap:16px}.credential-strip li{padding-left:16px}.credential-strip strong{font-size:20px}}
@media(max-width:700px){.portfolio-container{padding-inline:20px}.home-section{padding-block:64px}.portfolio-header .portfolio-header-row{padding-block:20px}.portfolio-brand .brand-subtitle{font-size:12px;max-width:29ch}.portfolio-nav{width:100%;justify-content:space-between;gap:6px!important}.portfolio-header .header-actions{width:100%;margin:0;justify-content:space-between}.home-hero{padding-block:48px 60px}.home-hero-grid{grid-template-columns:1fr;gap:36px}.home-hero h1{max-width:14ch}.portrait-placeholder{max-width:100%;aspect-ratio:16/9;justify-self:start}.portrait-placeholder .portrait-initials{font-size:68px}.portrait-placeholder figcaption{bottom:20px}.credential-strip ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.credential-strip li{border-left:0;padding-left:0}.credential-strip li:last-child{grid-column:1/-1}.audience-grid,.approach-layout{grid-template-columns:1fr;gap:24px}.editorial-card{padding:28px}.home-section .section-heading{align-items:start;flex-direction:column;gap:16px}.closing-contact .portfolio-container{align-items:start;flex-direction:column;gap:12px}.portfolio-footer .footer-top{flex-direction:column;gap:20px}body :is(.article-card,.topic-card,.panel,.calc-card,.calculator-panel){padding:24px}body .section{padding-inline:20px}body .contact-card{padding:24px}body .hero{grid-template-columns:1fr}.portfolio-footer{padding-inline:0!important}.portfolio-header{padding-inline:0!important}.portfolio-footer .footer-legal{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.announcement,.portfolio-header,.portfolio-footer,.portrait-placeholder{display:none!important}body{background:#FFFFFF!important;color:#14284B!important}.home-section{padding-block:24px}.home-hero-grid,.approach-layout{display:block}.editorial-card{break-inside:avoid}.home-hero::before{display:none}}
/* Legacy content surfaces inherit the shared palette in both themes. */
body :is(.breadcrumbs,.breadcrumb,.breadcrumbs a,.breadcrumb a){color:var(--text-muted)}
body :is(.profile,.hero,.hub-hero,.subject-hero,.case-hero) :is(p,li,small,.large){color:var(--text)}
body :is(.project-visual,.project:first-child .project-visual,.project:nth-child(2) .project-visual,.project:nth-child(3) .project-visual,.project .project-visual.has-cad){background:var(--surface);color:var(--text)}
body :is(.has-cad .visual-label,.has-cad .metric-label,.cad-study-label){color:var(--accent)}
body :is(.profile-list,.profile-list strong,.profile-list span,.profile .large){color:var(--text)}
body :is(.credential-badge,.credential-item){box-shadow:none;border-color:var(--border);background:var(--surface);color:var(--text)}
body :is(.breadcrumb,.breadcrumbs) *{color:inherit}

/* A quiet, original drafting detail replaces the portrait placeholder. */
.hero-drawing{width:100%;max-width:440px;justify-self:end;color:var(--accent);aspect-ratio:11/9;display:grid;place-items:center}
.hero-drawing svg{width:100%;height:auto;display:block}.hero-drawing .drawing-guide{opacity:.35}
@media(max-width:700px){.hero-drawing{max-width:280px;justify-self:center;margin-block:-8px}.home-hero-grid{gap:24px}.portfolio-header .header-actions{width:auto;margin-left:auto}}
@media print{.hero-drawing{display:none}}
