:root{color-scheme:light;--paper:#f7f8f6;--surface:#eef1ed;--ink:#172b2b;--muted:#586762;--quiet:#6b7872;--accent:#29675b;--line:#d5ddd6;--inverse:#fff;--header:rgba(247,248,246,.94);--serif:Georgia,'Times New Roman',serif;--sans:'Segoe UI',Arial,'Microsoft YaHei',sans-serif;--max:1160px}
html[data-theme=dark]{color-scheme:dark;--paper:#101a1d;--surface:#19272b;--ink:#edf0e9;--muted:#b3c1ba;--quiet:#92a59c;--accent:#9ed5c2;--line:#304247;--inverse:#101a1d;--header:rgba(16,26,29,.94)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}body:has(.lightbox[open]){overflow:hidden}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}a:hover{color:var(--accent)}button{font:inherit;color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}img,video{max-width:100%;display:block}figure{margin:0}p,h1,h2,h3{margin:0 0 20px}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.14;letter-spacing:-.035em}h1{font-size:clamp(3.5rem,7vw,6.1rem)}h2{font-size:clamp(2rem,3.6vw,3.35rem)}h3{font-size:1.85rem;letter-spacing:-.025em}em{color:var(--accent);font-weight:400}::selection{background:var(--accent);color:var(--inverse)}.section-band,.header-inner,.site-footer{width:min(calc(100% - 88px),var(--max));margin-inline:auto}.eyebrow,.card-kicker{display:block;color:var(--accent);font-size:.69rem;font-weight:650;letter-spacing:.15em;text-transform:uppercase;line-height:1.6;margin-bottom:20px}.skip-link{position:fixed;z-index:100;top:-100px;left:20px;background:var(--ink);color:var(--paper);padding:10px 18px}.skip-link:focus{top:10px}
/* Shared navigation and page rhythm. */
.site-header{position:sticky;top:0;z-index:20;background:var(--header);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;gap:28px;min-height:86px}.brand{font-family:var(--serif);font-size:1.5rem;white-space:nowrap;letter-spacing:-.04em;text-decoration:none;display:flex;align-items:center;gap:11px}.brand-dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}.main-nav{margin-left:auto;display:flex;align-items:center;gap:25px}.main-nav a{position:relative;text-decoration:none;font-size:.72rem;letter-spacing:.045em;font-weight:600;padding:12px 0}.main-nav a[aria-current=page]{color:var(--accent)}.main-nav a[aria-current=page]:after{content:'';position:absolute;bottom:3px;left:0;width:15px;height:2px;background:var(--accent)}.theme-toggle{display:none;align-items:center;justify-content:center;background:none;border:1px solid var(--line);width:34px;height:34px;border-radius:50%;padding:0;font-size:1.2rem;flex-shrink:0}.js .theme-toggle{display:flex}.theme-toggle:hover{background:var(--surface)}.menu-toggle{display:none}.inline-link{display:inline-flex;align-items:center;gap:16px;color:var(--accent);font-size:.83rem;font-weight:600;text-decoration:none;line-height:1.6;border-bottom:1px solid var(--line);padding-bottom:4px}.inline-link:hover{border-color:var(--accent)}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:46px;padding:11px 21px;font-size:.81rem;font-weight:600;text-decoration:none;border:1px solid var(--accent)}.button.primary{background:var(--accent);color:var(--inverse)}.button:hover{filter:brightness(.92)}.page-intro{padding:76px 0 54px;border-bottom:1px solid var(--line)}.page-intro h1{margin-bottom:24px}.page-lede{max-width:700px;font-size:1.12rem;color:var(--muted);line-height:1.8;margin-bottom:20px}.page-jumps{display:flex;flex-wrap:wrap;gap:12px 30px;margin-top:32px}.page-jumps a{font-size:.8rem;color:var(--accent);text-decoration:none;border-bottom:1px solid var(--line)}.section-top{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:36px}.section-top h2{margin:0}.section-top .eyebrow{margin-bottom:14px}
/* Home: brief introduction, selected work, and invitations to explore. */
.hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr);gap:90px;align-items:center;padding:80px 0 90px}.hero-copy h1{font-size:clamp(4rem,7.1vw,6.35rem);margin:30px 0 32px;line-height:1.02;letter-spacing:-.055em}.hero-copy .eyebrow{font-size:.66rem}.hero-name{font-family:var(--serif);font-size:1.32rem;margin-bottom:17px}.hero-name span{font-family:var(--sans);font-size:.83rem;color:var(--muted);margin-left:12px;display:inline-block}.hero-lede{color:var(--muted);max-width:540px;font-size:1.02rem;line-height:1.9}.hero-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:28px}.hero-portrait{padding-top:12px}.hero-portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center;border-radius:2px}.hero-portrait figcaption{display:flex;justify-content:space-between;gap:15px;font-size:.58rem;letter-spacing:.035em;color:var(--quiet);padding:15px 0;border-bottom:1px solid var(--line)}.hero-portrait figcaption span:last-child{white-space:nowrap}.home-statement{display:grid;grid-template-columns:1fr 1fr;gap:0 80px;padding:52px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.home-statement>.eyebrow{grid-column:1/-1}.home-statement h2{margin:0}.home-statement>p:last-child{color:var(--muted);margin:0;align-self:center}.selected-work{padding:75px 0}.home-work-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px}.work-preview{display:block;text-decoration:none}.preview-image{overflow:hidden;aspect-ratio:1.75;background:var(--surface);margin-bottom:24px}.preview-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.preview-image.scientific{padding:18px;background:#e7eae7}.preview-image.scientific img{object-fit:contain}.work-preview:hover img{transform:scale(1.025)}.preview-meta{display:flex;justify-content:space-between;align-items:start}.preview-meta .eyebrow{margin-bottom:12px}.work-preview h3{margin-bottom:12px}.work-preview p{color:var(--muted);font-size:.93rem;max-width:480px;margin:0}.latest{padding:32px 0 42px;border-block:1px solid var(--line);margin-bottom:74px}.latest>.eyebrow{margin-bottom:15px}.news-row{display:grid;grid-template-columns:90px 1fr auto;gap:20px;align-items:center}.news-date{font-family:var(--serif);font-size:1.4rem;color:var(--quiet)}.news-row p{margin:0;font-size:.94rem}.photo-highlight>a{position:relative;display:block;overflow:hidden;isolation:isolate}.photo-highlight>a:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,26,32,.68),transparent 85%);z-index:0}.photo-highlight img{width:100%;height:440px;object-fit:cover}.photo-highlight-copy{position:absolute;left:48px;bottom:40px;color:#fff;z-index:1}.photo-highlight-copy h2{font-size:3.6rem}.photo-highlight-copy .eyebrow{color:#e3f4ee}.photo-cta{font-size:.83rem;border-bottom:1px solid #ffffff80;padding-bottom:7px}.beyond{padding:78px 0 80px}.beyond-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}.beyond-grid article{border-top:1px solid var(--line);padding-top:22px;display:flex;flex-direction:column;align-items:start}.item-number{font-family:var(--serif);color:var(--accent);font-size:.9rem;margin-bottom:17px}.beyond-grid h3{font-size:1.65rem}.beyond-grid p{font-size:.9rem;color:var(--muted);flex:1}
/* Research and projects share headings, evidence panels, and resource links. */
.split-section{display:grid;grid-template-columns:1fr 1.15fr;gap:80px;padding:64px 0 40px}.section-heading h2{max-width:430px;font-size:clamp(2.1rem,3.25vw,3rem)}.section-body{color:var(--muted);font-size:.96rem}.section-body p:last-child{margin-bottom:0}.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0 0}.tag-row span{border:1px solid var(--line);padding:4px 9px;font-size:.68rem;color:var(--accent);line-height:1.6}.visual-lab,.project-grid{display:grid;gap:30px}.visual-lab{grid-template-columns:1fr 1fr;padding-bottom:54px}.visual-card,.project-card{min-width:0}.media-card{padding:0 0 22px;border-bottom:1px solid var(--line)}.media-card img,.media-card video{width:100%;aspect-ratio:1.55;object-fit:contain;background:#eef0ee;margin-bottom:22px}.media-card .card-kicker{margin:0 0 10px}.media-card h3{font-size:1.65rem;margin-bottom:12px}.media-card p,.project-card p,.project-card li{color:var(--muted);font-size:.92rem}.wide-card{grid-column:1/-1;display:grid;grid-template-columns:1.25fr 1fr;column-gap:35px;align-content:center}.wide-card img{grid-column:1;grid-row:1/5;margin:0}.wide-card .card-kicker{padding-top:20px}.wide-card h3,.wide-card p{grid-column:2}.aps-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:38px 0 60px;border-bottom:1px solid var(--line)}.aps-copy{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.15fr;gap:0 80px}.aps-copy>.eyebrow{grid-column:1/-1}.aps-copy h3{font-size:2.1rem}.aps-copy>p:last-child{color:var(--muted);font-size:.93rem}.aps-photo img{width:100%;aspect-ratio:1.4;object-fit:cover}.aps-photo figcaption,.lead-photo figcaption{padding:12px 0;color:var(--quiet);font-size:.76rem;line-height:1.6}.project-grid{grid-template-columns:repeat(3,1fr);padding-bottom:72px}.astro-card{display:flex;flex-direction:column;border-top:1px solid var(--line);padding-top:20px}.card-preview{width:100%;aspect-ratio:1.4;object-fit:cover;object-position:top;margin-bottom:24px;background:#fff}.astro-card h3{font-size:1.7rem}.astro-card p{flex:1}.astro-card .inline-link{align-self:start}.project-card .card-kicker{margin-bottom:12px}.inspiration-poster{display:flex;gap:20px;align-items:center;border-top:1px solid var(--line);padding-top:22px;margin-top:22px}.inspiration-poster img{width:90px;height:auto}.inspiration-poster figcaption{max-width:190px;font-size:.77rem;color:var(--quiet)}.project-feature{padding-bottom:65px;border-bottom:1px solid var(--line)}.feature-project-card{display:grid;grid-template-columns:1.2fr 1fr;gap:45px;align-items:center}.feature-preview{width:100%;max-height:430px;object-fit:contain;background:#eef0ee}.cabin-project{padding-bottom:75px}.cabin-project .project-card>h3,.cabin-project .project-card>.card-kicker,.cabin-project .project-card>p{display:none}.project-media-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}.project-media-grid img{width:100%;aspect-ratio:1.5;object-fit:cover}.cabin-project .project-media-grid{grid-template-columns:1.25fr 1fr;align-items:center;margin:0}.cabin-project img{aspect-ratio:auto;height:auto}.cabin-project .project-media-grid:after{content:'Blender cabin study — rendered scene and modeling workspace.';grid-column:1/-1;font-size:.76rem;color:var(--quiet)}
/* Photographs keep their native proportions. */
.gallery-label{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:30px 0 20px}.gallery-label .eyebrow{margin:0}.gallery-label>span:last-child{color:var(--quiet);font-size:.74rem}.portfolio-gallery{columns:3;column-gap:24px;padding-bottom:36px;border-bottom:1px solid var(--line)}.portfolio-photo{break-inside:avoid;margin-bottom:26px}.gallery-open{display:block;position:relative;overflow:hidden;background:var(--surface);cursor:zoom-in}.portfolio-photo img{width:100%;height:auto;transition:transform .35s ease}.gallery-open:hover img{transform:scale(1.025)}.zoom-hint{position:absolute;right:12px;bottom:12px;display:grid;place-items:center;width:28px;height:28px;background:#10232299;color:#fff;border:1px solid #ffffff55;font-size:.85rem}.portfolio-photo figcaption{font-size:.77rem;color:var(--muted);padding:10px 0 0;letter-spacing:.02em}.flight-feature{display:grid;grid-template-columns:1.4fr 1fr;gap:42px;align-items:center;padding:0 0 75px}.flight-feature img{width:100%;max-height:450px;object-fit:cover}.flight-feature p:last-child{color:var(--muted);font-size:.95rem}.lightbox{position:fixed;inset:0;max-width:100vw;max-height:100dvh;width:100vw;height:100dvh;padding:24px 40px;border:0;background:#0b1317;color:#edf0e9;margin:0}.lightbox::backdrop{background:#0b1317}.lightbox[open]{display:flex;flex-direction:column}.lightbox-toolbar,.lightbox-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-shrink:0}.lightbox-toolbar{padding-bottom:14px}.lightbox-toolbar span{font-size:.8rem}.lightbox button{background:none;color:inherit;border:1px solid #536166;padding:8px 15px;min-height:44px;font-size:.8rem}.lightbox button:hover{background:#243136}.lightbox figure{display:flex;flex:1;min-height:0;flex-direction:column;align-items:center;justify-content:center;gap:14px}.lightbox-image{width:100%;height:100%;min-height:0;object-fit:contain}.lightbox-caption{flex-shrink:0;font-size:.87rem;text-align:center;padding-bottom:10px}.lightbox-controls{padding-top:10px}
/* Experiences. */
.metrics-band{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;padding:16px 0 40px}.metrics-band div{border-top:1px solid var(--line);padding-top:23px}.metrics-band strong{display:block;font-family:var(--serif);font-size:3.2rem;font-weight:400;line-height:1.1;letter-spacing:-.04em;margin-bottom:12px}.metrics-band span{font-size:.8rem;color:var(--muted);display:block;max-width:190px}.leadership-gallery{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-bottom:65px;border-bottom:1px solid var(--line)}.lead-photo:first-child{grid-column:1/-1}.lead-photo img{width:100%;aspect-ratio:1.5;object-fit:cover}.lead-photo:first-child img{aspect-ratio:2.5;object-position:center}.lead-photo:last-child img{object-fit:contain;background:#edf0ec}.experience-extras{padding:60px 0 70px}.experience-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px}.clean-list{margin:0;padding-left:18px}.clean-list li{padding:6px 0}.award-strip{display:flex;gap:16px;margin-top:25px}.award-strip img{width:calc(50% - 8px);height:200px;object-fit:contain;background:var(--surface)}
.contact-section{display:grid;grid-template-columns:1fr auto;align-items:center;gap:40px;border-top:1px solid var(--line);padding:58px 0 60px}.contact-section h2{font-size:2.5rem;margin-bottom:14px}.contact-section p:last-child{color:var(--muted);font-size:.9rem;margin:0}.contact-section .eyebrow{margin-bottom:16px}.contact-links{display:flex;flex-direction:column;align-items:start;gap:18px}.contact-links .inline-link{overflow-wrap:anywhere;font-size:.9rem}.quiet-link{font-size:.77rem;color:var(--muted);text-decoration:none}.site-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);padding:24px 0 32px;font-size:.72rem;color:var(--quiet)}.site-footer a{text-decoration:none}.site-footer>a:first-child{color:var(--ink)}.site-footer>a:first-child span{margin-left:12px;color:var(--quiet)}
@media(min-width:1500px){.hero{gap:110px}}
@media(max-width:1000px){.section-band,.header-inner,.site-footer{width:calc(100% - 56px)}.header-inner{gap:20px}.main-nav{gap:16px}.main-nav a{font-size:.67rem}.hero{gap:45px}.hero-copy h1{font-size:5rem}.hero-name span{margin-left:0;display:block;margin-top:5px}.hero-actions{gap:18px}.home-statement,.split-section,.aps-copy{gap:0 42px}.project-grid{gap:22px}.feature-project-card{gap:30px}.contact-section{grid-template-columns:1.2fr 1fr}.contact-section h2{font-size:2.2rem}}
@media(max-width:780px){.header-inner{flex-wrap:wrap;gap:0 18px;min-height:72px;padding:15px 0}.brand{font-size:1.35rem}.js .menu-toggle{display:flex;gap:18px;align-items:center;justify-content:center;margin-left:auto;background:none;border:1px solid var(--line);padding:5px 12px;min-height:38px;font-size:.76rem}.theme-toggle{width:34px;height:34px}.main-nav{order:3;width:100%;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:4px 24px}.main-nav a{font-size:.8rem;padding:8px 0}.js .main-nav{display:none}.js .main-nav.is-open{display:flex;padding-bottom:10px}.hero{padding:55px 0 60px;gap:32px;grid-template-columns:1.2fr .8fr}.hero-copy h1{font-size:4rem}.hero .eyebrow{font-size:.62rem}.hero-lede{font-size:.92rem}.hero-portrait figcaption{display:block}.hero-portrait figcaption span{display:block;margin-bottom:4px}.hero-actions{gap:20px}.button{padding:10px 14px;gap:15px}.hero-actions .inline-link{font-size:.78rem}.home-statement{gap:0 32px}.home-statement h2{font-size:2.3rem}.home-statement>p:last-child{font-size:.9rem}.page-intro{padding:55px 0 40px}.split-section{gap:30px;grid-template-columns:1fr;padding-top:44px}.section-heading h2{max-width:600px}.section-body{max-width:650px}.section-heading .eyebrow{margin-bottom:12px}.section-heading h2{margin:0}.project-grid{grid-template-columns:1fr}.astro-card{display:grid;grid-template-columns:180px 1fr;gap:0 24px}.astro-card .card-preview{grid-row:1/5;margin:0;height:100%;max-height:245px}.astro-card .card-kicker{margin-bottom:10px}.astro-card h3{font-size:1.6rem}.astro-card p{margin-bottom:16px}.astro-card .inline-link{justify-self:start}.aps-gallery{gap:18px}.aps-copy{gap:25px;grid-template-columns:1fr}.aps-copy>.eyebrow,.aps-copy h3,.aps-copy p{margin:0}.aps-copy{margin-bottom:12px}.metrics-band{gap:20px}.metrics-band strong{font-size:2.7rem}.experience-grid{gap:28px}.news-row{grid-template-columns:60px 1fr}.news-row .inline-link{grid-column:2;justify-self:start}.beyond-grid{gap:25px}.beyond-grid h3{font-size:1.4rem}.portfolio-gallery{columns:2;column-gap:20px}.gallery-label{align-items:start}.gallery-label>span:last-child{max-width:150px}.flight-feature{gap:28px;grid-template-columns:1fr 1fr}.flight-feature h3{font-size:1.8rem}.flight-feature img{height:350px}.contact-section{grid-template-columns:1fr;gap:25px}.contact-links{flex-direction:row;flex-wrap:wrap;gap:16px 35px;align-items:center}.contact-section h2{font-size:2.4rem}}
@media(max-width:560px){.section-band,.header-inner,.site-footer{width:calc(100% - 40px)}body{font-size:15px}.header-inner{gap:0 12px}.hero{grid-template-columns:1fr;gap:38px;padding-top:38px}.hero-copy h1{font-size:clamp(3.8rem,16vw,5rem);margin:24px 0}.hero-name span{display:inline-block;margin-left:8px;font-size:.75rem}.hero-lede{font-size:1rem}.hero-portrait{width:100%;padding:0}.hero-portrait img{aspect-ratio:4/4.3;object-position:center 35%}.hero-portrait figcaption{display:flex;font-size:.58rem}.hero-actions{margin-top:25px;gap:20px}.hero-copy .eyebrow{max-width:290px}.home-statement{grid-template-columns:1fr;gap:20px;padding:35px 0}.home-statement>.eyebrow{margin:0}.home-statement h2{font-size:2.4rem}.home-statement>p:last-child{font-size:.94rem}.section-top{display:block;margin-bottom:25px}.section-top>.inline-link{margin-top:20px}.selected-work{padding:45px 0}.home-work-grid{grid-template-columns:1fr;gap:38px}.preview-image{margin-bottom:20px}.latest{margin-bottom:45px}.news-row{grid-template-columns:42px 1fr;gap:15px}.news-row p{font-size:.9rem}.photo-highlight img{height:360px}.photo-highlight-copy{left:25px;bottom:28px}.photo-highlight-copy h2{font-size:2.9rem}.photo-highlight-copy .eyebrow{font-size:.62rem}.beyond{padding:45px 0}.beyond-grid{grid-template-columns:1fr;gap:28px}.beyond-grid h3{font-size:1.8rem;margin-bottom:12px}.item-number{margin-bottom:12px}.beyond-grid p{font-size:.94rem}.page-intro{padding:38px 0 32px}.page-intro h1{font-size:3.5rem;margin-bottom:20px}.page-lede{font-size:1rem}.page-jumps{gap:12px 22px;margin-top:23px}.visual-lab{grid-template-columns:1fr;gap:27px;padding-bottom:35px}.wide-card{display:block;grid-column:auto}.wide-card img{margin-bottom:22px}.wide-card .card-kicker{padding-top:0}.media-card img,.media-card video{aspect-ratio:auto;max-height:360px;min-height:180px}.media-card video{aspect-ratio:1.4}.aps-gallery{grid-template-columns:1fr;padding-top:28px;padding-bottom:35px}.aps-copy{grid-column:auto;gap:18px}.aps-photo img{aspect-ratio:1.5}.project-grid{padding-bottom:45px}.astro-card{display:flex}.astro-card .card-preview{height:auto;max-height:300px;object-fit:contain;aspect-ratio:1.4;margin-bottom:20px}.astro-card .inline-link{align-self:start}.feature-project-card{grid-template-columns:1fr;gap:25px}.feature-project-card h3{font-size:1.85rem}.project-feature{padding-bottom:40px}.cabin-project{padding-bottom:45px}.cabin-project .project-media-grid{grid-template-columns:1fr}.gallery-label{display:block;padding:25px 0 18px}.gallery-label>span:last-child{display:block;max-width:none;margin-top:7px}.portfolio-gallery{columns:1}.portfolio-photo{margin-bottom:25px}.portfolio-photo figcaption{font-size:.8rem}.flight-feature{grid-template-columns:1fr;padding-bottom:40px}.flight-feature img{height:auto;max-height:none}.flight-feature h3{font-size:2rem}.lightbox{padding:16px}.lightbox button{font-size:.75rem}.metrics-band{grid-template-columns:1fr 1fr;gap:24px}.metrics-band strong{font-size:3rem}.leadership-gallery{grid-template-columns:1fr;padding-bottom:35px}.lead-photo:first-child{grid-column:auto}.lead-photo:first-child img{aspect-ratio:1.5}.experience-extras{padding:38px 0 45px}.experience-grid{grid-template-columns:1fr;gap:35px}.experience-grid>.project-card{padding-top:24px;border-top:1px solid var(--line)}.experience-grid h3{font-size:1.85rem}.contact-section{padding:38px 0 40px}.contact-section h2{font-size:2.05rem}.contact-links{flex-direction:column;align-items:start;gap:17px}.contact-links .inline-link{font-size:.82rem}.site-footer{flex-wrap:wrap;gap:10px 22px;padding:20px 0 28px}.site-footer>a:first-child{width:100%}.site-footer>a:last-child{margin-left:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Intrinsic image dimensions reserve space without fixing rendered height. */
img { height: auto; }
.hero-portrait img, .aps-photo img, .card-preview, .lead-photo img, .project-media-grid img { height: auto; }

@media (max-width: 400px) { .page-intro h1 { font-size: clamp(2.6rem, 13vw, 3.5rem); } }

@media (max-width: 400px) { .metrics-band { grid-template-columns: repeat(2, minmax(0, 1fr)); } .metrics-band strong { font-size: 2rem; } }

/* CV and the education summary use the same visual language as the portfolio. */
.cv-contact{display:flex;flex-wrap:wrap;gap:8px 24px;color:var(--muted);font-size:.9rem;max-width:850px}
.cv-contact a{color:var(--accent)}
.cv-download{display:flex;gap:26px;align-items:center;flex-wrap:wrap;margin-top:30px}
.cv-section{padding:50px 0 25px;border-bottom:1px solid var(--line)}
.cv-section>h2{margin-bottom:35px;font-size:2.4rem}
.cv-entry{display:grid;grid-template-columns:180px minmax(0,1fr);gap:38px;padding:0 0 32px}
.cv-entry+.cv-entry{border-top:1px solid var(--line);padding-top:30px}
.cv-entry-meta{color:var(--quiet);font-size:.79rem;line-height:1.8;padding-top:4px}
.cv-entry-meta span{display:block}
.cv-entry-meta span+span{margin-top:6px}
.cv-entry h3{font-size:1.65rem;line-height:1.3;letter-spacing:-.02em;margin-bottom:8px}
.cv-role{color:var(--accent);font-size:.9rem;margin-bottom:18px}
.cv-bullets{padding-left:18px;margin:0;color:var(--muted);font-size:.93rem;line-height:1.85}
.cv-bullets li{padding-left:5px;margin-bottom:12px}
.cv-entry-body>p:not(.cv-role){font-size:.98rem;color:var(--muted)}
.cv-gpa{font-weight:600;color:var(--accent)!important}
.cv-honors>div{display:grid;grid-template-columns:180px 1fr;gap:38px;padding-bottom:18px}
.cv-honors>div>span{font-family:var(--serif);color:var(--accent);font-size:1.2rem}
.cv-honors p{font-size:.95rem;margin:0}
.cv-additional{padding-bottom:50px;border-bottom:0}
.cv-additional dl{margin:0}
.cv-additional dl>div{display:grid;grid-template-columns:180px 1fr;gap:38px;padding-bottom:15px}
.cv-additional dt{font-size:.88rem;color:var(--accent);font-weight:600}
.cv-additional dd{margin:0;font-size:.95rem;color:var(--muted)}
.home-education{display:grid;grid-template-columns:1fr 1.15fr auto;gap:30px;align-items:center;padding:36px 0;border-bottom:1px solid var(--line)}
.home-education .eyebrow{margin-bottom:10px}.home-education h2{font-size:1.8rem;margin:0}.home-education p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.9}.home-education p span{color:var(--accent)}
.news-row+.news-row{border-top:1px solid var(--line);margin-top:22px;padding-top:22px}.news-date{font-size:1.2rem}
.research-affiliation{font-size:.88rem;color:var(--quiet);margin-top:22px}
@media(max-width:900px){
 .header-inner{flex-wrap:wrap;gap:0 18px;min-height:72px;padding:15px 0}.brand{font-size:1.35rem}
 .js .menu-toggle{display:flex;gap:18px;align-items:center;justify-content:center;margin-left:auto;background:none;border:1px solid var(--line);padding:5px 12px;min-height:38px;font-size:.76rem}
 .main-nav{order:3;width:100%;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:4px 24px}.main-nav a{font-size:.8rem;padding:8px 0}.js .main-nav{display:none}.js .main-nav.is-open{display:flex;padding-bottom:10px}
 .cv-entry,.cv-honors>div,.cv-additional dl>div{grid-template-columns:140px minmax(0,1fr);gap:24px}
 .home-education{grid-template-columns:1fr 1.2fr}.home-education>.inline-link{grid-column:2;justify-self:start}
}
@media(max-width:560px){
 .header-inner{gap:0 12px}.cv-section{padding-top:35px}.cv-section>h2{font-size:2rem;margin-bottom:25px}
 .cv-entry{grid-template-columns:1fr;gap:10px}.cv-entry-meta{display:flex;flex-wrap:wrap;gap:8px 20px}.cv-entry-meta span+span{margin:0}
 .cv-entry h3{font-size:1.5rem}.cv-bullets{font-size:.9rem}.cv-contact{font-size:.85rem}.cv-honors>div{grid-template-columns:46px minmax(0,1fr);gap:15px}.cv-additional dl>div{grid-template-columns:1fr;gap:3px;padding-bottom:20px}
 .home-education{grid-template-columns:1fr;gap:16px}.home-education>.inline-link{grid-column:1}
 .cv-download{gap:20px}.cv-intro .page-lede{font-size:.94rem}
}


/* Conference records distinguish completed talks from confirmed future work. */
.conference-presentations{padding:38px 0 45px;border-top:1px solid var(--line)}
.talk-entry{display:grid;grid-template-columns:180px minmax(0,1fr);gap:38px;padding:32px 0;border-top:1px solid var(--line);scroll-margin-top:110px}
.talk-meta{display:flex;flex-direction:column;align-items:start;gap:10px;color:var(--quiet);font-size:.8rem;line-height:1.7}
.talk-year{font-family:var(--serif);font-size:2.3rem;line-height:1.1;color:var(--accent)}
.talk-status{font-size:.69rem;color:var(--accent);border-left:2px solid var(--line);padding-left:10px;max-width:150px}
.talk-body .eyebrow{margin-bottom:12px}.talk-body h3{font-size:1.9rem;line-height:1.3;letter-spacing:-.025em;margin-bottom:17px}
.talk-authors{font-size:.87rem;color:var(--muted);margin-bottom:17px}.talk-authors strong{font-weight:600;color:var(--ink)}
.talk-summary{color:var(--muted);font-size:.96rem;line-height:1.8;margin-bottom:20px}
.talk-abstract{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:20px 0}
.talk-abstract summary{font-size:.84rem;font-weight:600;color:var(--accent);cursor:pointer;padding:14px 0;min-height:44px}
.talk-abstract p{font-size:.94rem;line-height:1.95;color:var(--muted);margin:0;padding:4px 0 24px}
@media(max-width:780px){.talk-entry{grid-template-columns:130px minmax(0,1fr);gap:25px}.talk-body h3{font-size:1.65rem}}
@media(max-width:560px){.conference-presentations{padding-top:32px}.talk-entry{grid-template-columns:1fr;gap:24px;padding:25px 0}.talk-meta{flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px 16px}.talk-year{font-size:1.8rem}.talk-status{max-width:none}.talk-body h3{font-size:1.6rem}.talk-abstract p{font-size:.91rem}}

