/* Shared reading, grid and surface system. Loaded after page styles. */
:root{--text-small:16px;--text-medium:28px;--text-large:56px;--page-gutter:56px;--section-gap:96px;--block-gap:48px;--glass:rgba(250,250,253,.90)}
[data-theme=dark]{--glass:rgba(37,38,46,.94)}
.shell,.hm-about__inner,.hm-cv__inner,.wk__inner{width:min(1184px,calc(100% - var(--page-gutter)*2));max-width:1184px;margin-inline:auto;padding-inline:0}
.hm-about__inner,.hm-cv__inner,.wk__inner{padding-top:0;padding-bottom:var(--section-gap)}
.personal.shell,.testimonials.shell{width:min(1184px,calc(100% - var(--page-gutter)*2));max-width:1184px}
.personal{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.personal h2{max-width:30ch}.portrait-card{justify-self:end}
.folder-home .identity-card{width:300px}.identity-card span>span{white-space:nowrap}
.ab-hero,.cv-hero,.page-intro{padding-top:32px;padding-bottom:var(--block-gap)}
.wk__inner{padding-top:0}.wk__sec+.wk__sec{margin-top:var(--section-gap)}
.hm-about .ab-note__stage,.wk-card__name{font-size:var(--text-small)!important;font-weight:600!important;color:var(--ink)}
.hm-cv .cv-sec__name{font-size:var(--text-small)!important;font-weight:600!important}
.hm-cv .cv-job__role,.hm-cv .cv-edu__degree{font-size:var(--text-medium)!important;font-weight:500!important;line-height:1.25}
.hm-cv .cv-job__role :is(span,a){font-size:var(--text-small)!important}
.cv-sec{padding-block:var(--block-gap)}.cv-sec__body{max-width:65ch}
.cv-sec__body p,.ab-chapter p{line-height:1.65}
body .glass-nav a{background:var(--glass);-webkit-backdrop-filter:blur(20px) saturate(130%);backdrop-filter:blur(20px) saturate(130%)}
[data-theme=dark] body .glass-nav a{background:var(--glass)}
body .glass-nav a.is-liquid-active{background:linear-gradient(145deg,#eef3ff,#c5d5ee)}
[data-theme=dark] body .glass-nav a.is-liquid-active{background:linear-gradient(145deg,#526580,#364962)}
.site-header::before{content:'';position:absolute;inset:0 -40px;z-index:-1;background:linear-gradient(var(--paper) 65%,transparent);pointer-events:none}
.case-chapters{position:sticky;top:88px;z-index:45;display:flex;justify-content:center;padding:8px 0;background:var(--glass);backdrop-filter:blur(20px);border-bottom:1px solid var(--line)}
.case-chapters .ncs__nav{display:flex;gap:4px;overflow-x:auto;max-width:100%;padding:0 20px;margin:0;position:static}
.case-chapters a{white-space:nowrap;display:block;padding:10px 16px;border-radius:24px;color:var(--muted);min-height:44px}
.case-chapters a[aria-current]{background:var(--soft);color:var(--ink);font-weight:600!important}
.case-chapters a:hover{color:var(--ink)}
#main .ncs{--nink:var(--ink);--nbody:var(--muted);--nline:var(--line);--npaper:var(--card);--nblue:#526c8c;--nblue-soft:#e9eef5;--acc-light:#c4d4e8;--dark-bg:#354354;--hero-bg:linear-gradient(135deg,#53677e,#2c394b);--glow:82,108,140;--muted-c:#d3dfec}
#main .ncs--vinnie{--nblue:#946456;--nblue-soft:#f1e9e4;--acc-light:#ead0c4;--dark-bg:#50403b;--hero-bg:linear-gradient(135deg,#81665c,#453530);--glow:148,100,86;--muted-c:#e5d5cd}
#main .ncs--linko{--nblue:#60795e;--nblue-soft:#eaf0e7;--acc-light:#d0dfc9;--dark-bg:#3c493a;--hero-bg:linear-gradient(135deg,#697d62,#354231);--glow:96,121,94;--muted-c:#d7e1d2}
[data-theme=dark] #main .ncs{--nblue:#b0c3dc;--nblue-soft:#303c4a;--muted-c:#303c4a}
[data-theme=dark] #main .ncs--vinnie{--nblue:#d6b2a5;--nblue-soft:#443633;--muted-c:#443633}
[data-theme=dark] #main .ncs--linko{--nblue:#bdcfb4;--nblue-soft:#344030;--muted-c:#344030}
.original-study{background:var(--paper)}
#main .ncs :is(h3,h3 *,h4,h4 *){font-size:var(--text-small)!important;font-weight:600!important;line-height:1.5}
#main .ncs.ncs--linko .ncs__fball i{font-size:var(--text-small)!important}
#main .ncs p{line-height:1.65}
#main .ncs :is(.ncs__hero,.ncs__divider){scroll-margin-top:164px}
#main .ncs>.ncs__hero{padding:32px 0 0;width:min(1184px,calc(100% - var(--page-gutter)*2));margin-inline:auto}
#main .ncs>.ncs__wrap,#main .ncs>.ncs__impact-progress{width:min(1184px,calc(100% - var(--page-gutter)*2));max-width:1184px;margin-inline:auto;padding-inline:0}
/* One owner for the gap between direct sections prevents double padding. */
#main .ncs>section{padding-top:0;padding-bottom:0;margin-top:var(--section-gap);margin-bottom:0}
#main .ncs>.ncs__divider{padding:0;margin:var(--section-gap) 0 var(--block-gap)}
#main .ncs>.ncs__divider+section{margin-top:0}
#main .ncs>.ncs__hmw{width:100%;max-width:none;left:auto;transform:none;margin-inline:0;padding:var(--block-gap) var(--page-gutter)}
#main .ncs>.ncs__closing,#main .ncs>.ncs__next{padding-bottom:var(--section-gap)}
#main .ncs>.ncs__impact-progress{padding:32px}
#main .ncs .ncs__row--solution{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--block-gap)}
#main .ncs--vinnie .ncs__row--solution{grid-template-columns:1fr}
#main .ncs .ncs__col p{max-width:65ch}
#main .ncs .ncs__herocard{border:1px solid #ffffff35;box-shadow:inset 0 1px 0 #ffffff55,0 12px 32px #30303912;background:var(--hero-bg)}
#main .ncs .ncs__herocard{max-width:none}#main .ncs .ncs__herocard .ncs__meta dt{color:#ffffffbf}
#main .ncs :is(.ncs__qcard,.ncs__lc,.ncs__need-card,.ncs__jstep){border:1px solid var(--nline);box-shadow:inset 0 1px 0 #ffffff35,0 5px 18px #3030390b}
#main .ncs--vinnie .ncs__vstat-line{background:var(--nblue-soft);color:var(--nink)}
.diagram-link{display:block;width:fit-content;margin:16px auto 0;padding:10px 16px;border:1px solid var(--line);border-radius:24px;background:var(--card);color:var(--ink);font-weight:500!important}
@media(max-width:1000px){:root{--page-gutter:32px}.personal{gap:32px}}
@media(max-width:760px){
 :root{--text-small:14px;--text-medium:20px;--text-large:30px;--page-gutter:20px;--section-gap:64px;--block-gap:32px}
 body{padding-top:132px}.ab-hero,.cv-hero,.page-intro{padding-top:20px;padding-bottom:32px}
 .folder-home{overflow-x:clip}
 body .site-header{width:calc(100% - 40px)}body .glass-nav a{padding-inline:12px}
 .personal{grid-template-columns:1fr}.portrait-card{justify-self:center}.personal h2{max-width:none}
 .case-chapters{top:124px;justify-content:flex-start}.case-chapters .ncs__nav{padding-inline:12px;gap:0}.case-chapters a{padding:10px 12px}
 #main .ncs :is(.ncs__hero,.ncs__divider){scroll-margin-top:200px}
 #main .ncs>.ncs__hero{padding-top:24px}
 #main .ncs .ncs__row--solution{grid-template-columns:1fr;gap:32px}
 #main .ncs>.ncs__impact-progress{padding:20px}
 .cv-hero__meta li+li::before{display:none}
 .folder-home .identity-row{gap:12px}.folder-home .identity-card{padding-left:76px;padding-right:8px;width:226px;flex-shrink:0}.folder-home .identity-card span>span{line-height:1.35}
 .folder-home .resume-card{min-width:110px;padding-left:52px;padding-right:10px}
}
@media(max-width:370px){.folder-home .identity-row{flex-wrap:wrap;justify-content:center;gap:24px}.folder-home .identity-card{width:250px}}

/* Case studies retain their original back button and section-menu header. */
.case-page #main .ncs :is(.ncs__hero,.ncs__divider){scroll-margin-top:100px}
@media(max-width:760px){
 .case-page{padding-top:88px}
 .case-page .site-header .ncs__nav.glass-nav{background:var(--glass)}
 [data-theme=dark] .case-page .site-header .ncs__nav.glass-nav{background:var(--glass)}
 .case-page #main .ncs :is(.ncs__hero,.ncs__divider){scroll-margin-top:100px}
}

/* All pages share the homepage header highlight, including narrow screens. */
@media(max-width:760px) { .site-header::before { inset:0 -20px; } }
/* Paper notes keep dark ink in both themes. */
[data-theme=dark] .hm-about .ab-note__stage { color:#242633; }
[data-theme=dark] .hm-about .ab-note__doing { color:#424959; }
[data-theme=dark] .skip { color:#18191f; }
[data-theme=dark] .hm-about .ab-shot--sketch figcaption { color:#525363; }
