/* A photographic folio. System fonts keep rendering local and immediate. */
:root {
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",Arial,sans-serif;
  color:#242725;
  background:#fafaf8;
  font-synthesis:none;
  -webkit-font-smoothing:antialiased;
  --paper:#fafaf8;
  --ink:#242725;
  --muted:#626861;
  --line:#d5d8d2;
  --dark:#1e2621;
  --accent:#934522;
  --gutter:clamp(22px,5.6vw,88px);
}
*,*::before,*::after { box-sizing:border-box; }
body { margin:0; }
button,a { -webkit-tap-highlight-color:transparent; }
button { font:inherit; color:inherit; cursor:pointer; border:0; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
figure,p,h1,h2,h3,blockquote,dl,dd { margin:0; }
button:focus-visible,a:focus-visible,summary:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
::selection { background:#ddc6b9; color:#242725; }
main,section,footer { scroll-margin-top:100px; }
.container { width:calc(100% - var(--gutter)*2); max-width:1280px; margin-inline:auto; }
.section-pad { padding-block:clamp(72px,7.8vw,120px); }
p { line-height:1.65; }
h2 { font-size:clamp(38px,4.7vw,68px); line-height:1.06; letter-spacing:-.045em; font-weight:500; text-wrap:balance; }
h3 { font-size:16px; line-height:1.4; font-weight:600; }
.section-label { font-size:14px; line-height:1.5; color:var(--muted); margin-bottom:24px; }
.large-copy { font-size:clamp(25px,2.5vw,36px); line-height:1.35; letter-spacing:-.025em; }
.sr-only { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; left:20px; top:12px; padding:14px 22px; background:var(--ink); color:#fff; z-index:100; transform:translateY(-200%); }
.skip-link:focus { transform:none; }
[hidden] { display:none!important; }
html[data-dialog-open=true] { overflow:hidden; scrollbar-gutter:stable; }
.line-link { display:inline-flex; align-items:center; justify-content:space-between; gap:30px; min-height:44px; background:none; border-bottom:1px solid currentColor; padding:12px 0; font-size:15px; font-weight:500; line-height:1.5; text-align:left; }
.line-link>span { font-size:21px; }
@media (hover:hover) and (pointer:fine) { .line-link:hover { color:var(--accent); } }

/* Navigation stays the same height: no scroll-induced jump. */
.site-header { position:fixed; inset:0 0 auto; z-index:20; height:84px; display:flex; align-items:center; gap:30px; padding-inline:var(--gutter); border-bottom:1px solid #ffffff40; color:#fff; background:transparent; }
.site-header.is-solid,.site-header.menu-open { background:var(--dark); border-color:#ffffff30; }
.identity { display:flex; align-items:center; gap:15px; flex-shrink:0; font-size:13px; line-height:1.25; font-weight:500; }
.identity-mark { font-size:40px; font-weight:600; line-height:1; letter-spacing:-.1em; padding-right:4px; }
.site-header nav { display:flex; align-items:center; gap:clamp(18px,2.4vw,36px); margin-left:auto; font-size:14px; }
.site-header nav a { display:flex; align-items:center; gap:10px; min-height:44px; }
@media (hover:hover) and (pointer:fine) { .site-header nav a:hover { text-decoration:underline; text-underline-offset:5px; } }
.header-actions { display:flex; align-items:center; border-left:1px solid #ffffff50; padding-left:20px; }
.motion-toggle { display:flex; align-items:center; gap:7px; justify-content:center; min-height:44px; min-width:44px; background:none; font-size:12px; line-height:1.25; }
.motion-toggle span { max-width:72px; text-align:left; }
.motion-toggle svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.5; }
.play-icon { display:none; }
.motion-toggle[aria-pressed=true] .pause-icon { display:none; }
.motion-toggle[aria-pressed=true] .play-icon { display:block; }
.motion-toggle[aria-pressed=true] { color:#fff; }
.motion-toggle[aria-disabled=true] { cursor:default; }
.motion-toggle[aria-disabled=true] .play-icon { display:none; }
.motion-toggle[aria-disabled=true] .pause-icon { display:block; }
#menu-toggle { display:none; }

/* Full-bleed chapters retain native scrolling. Overscan accommodates subtle parallax. */
.visual-chapter { position:relative; isolation:isolate; overflow:hidden; background:var(--dark); color:#fff; height:90svh; min-height:600px; max-height:1040px; }
.visual-chapter .container { max-width:1440px; }
.visual-media { position:absolute; inset:0; z-index:-3; overflow:hidden; }
.visual-media img { position:absolute; inset:-9% 0; height:118%; width:100%; max-width:none; object-fit:cover; object-position:center; }
/* Supported browsers tie transforms directly to scroll progress, without JS frame work. */
@supports (animation-timeline:view()) and (view-timeline-name:--chapter) {
  .visual-chapter { view-timeline-name:--chapter; view-timeline-axis:block; }
  html[data-motion=active][data-scroll-motion=native] .parallax-image {
    animation:chapter-image 1ms linear both;
    animation-timeline:--chapter;
  }
  html[data-motion=active][data-scroll-motion=native] .parallax-title {
    animation:chapter-title 1ms linear both;
    animation-timeline:--chapter;
  }
}
@keyframes chapter-image { from { transform:translate3d(0,-42px,0); } to { transform:translate3d(0,42px,0); } }
@keyframes chapter-title { from { transform:translate3d(0,20px,0); } to { transform:translate3d(0,-20px,0); } }
.hero { height:100svh; min-height:760px; max-height:1200px; }
.hero .visual-media img { object-position:57% 54%; }
.hero-shade,.chapter-shade { position:absolute; inset:0; z-index:-1; pointer-events:none; }
.hero-shade { background:linear-gradient(90deg,#101b16b3 0%,#17201833 75%),linear-gradient(0deg,#09140ed9 0%,transparent 68%,#111b1780 100%); }
.hero-content { display:flex; flex-direction:column; justify-content:flex-end; height:100%; padding-top:145px; padding-bottom:26px; }
.hero-kicker { display:flex; align-items:center; gap:22px; margin-bottom:auto; padding-bottom:44px; font-size:12px; line-height:1.5; letter-spacing:.13em; text-transform:uppercase; }
.hero-kicker .rule { width:44px; height:1px; background:#ffffff70; }
.hero h1 { font-size:clamp(86px,10.4vw,188px); line-height:.93; font-weight:500; letter-spacing:-.066em; margin:0 0 38px -5px; }
.hero h1>span { font-weight:400; }
.hero h1 .name-credential { display:inline-block; font-size:.32em; letter-spacing:-.025em; white-space:nowrap; vertical-align:baseline; }
.hero-main { display:grid; grid-template-columns:minmax(0,1fr) clamp(220px,22vw,340px); align-items:end; gap:clamp(32px,4vw,64px); }
.hero-introduction { max-width:660px; }
.hero-credential { font-size:clamp(20px,1.65vw,26px); line-height:1.4; font-weight:500; letter-spacing:-.02em; }
.hero-direction { font-size:clamp(16px,1.3vw,21px); line-height:1.5; margin-top:10px; color:#f1f3ee; }
.portrait-note { display:block; width:100%; font-size:13px; line-height:1.6; }
.portrait-note img { width:100%; height:auto; aspect-ratio:945/1037; }
.portrait-note>span { display:block; margin-top:14px; }
.portrait-note strong { display:flex; align-items:center; justify-content:space-between; font-size:15px; font-weight:500; margin-top:4px; }
.portrait-note strong span { display:inline-block; margin-left:24px; }
@media (hover:hover) and (pointer:fine) { .portrait-note:hover strong { text-decoration:underline; text-underline-offset:5px; } }
.hero-bottom { display:flex; justify-content:space-between; align-items:center; gap:30px; border-top:1px solid #ffffff55; margin-top:46px; padding-top:18px; font-size:12px; }
.hero-bottom>a { display:flex; align-items:center; gap:36px; min-height:44px; }
.hero-bottom>a span { font-size:24px; }
.hero-bottom>span { color:#e0e6e0; text-align:right; }
.chapter-shade { background:linear-gradient(90deg,#101a12b5,transparent 90%),linear-gradient(0deg,#10170dd9,transparent 65%,#10170d66); }
.chapter-copy { display:flex; flex-direction:column; justify-content:flex-end; height:100%; padding-block:60px 35px; }
.chapter-label { margin-bottom:auto; font-size:12px; line-height:1.5; letter-spacing:.13em; text-transform:uppercase; }
.chapter-copy h2 { font-size:clamp(65px,7.8vw,130px); line-height:1; font-weight:400; letter-spacing:-.055em; margin-top:80px; margin-bottom:64px; text-wrap:initial; }
.chapter-bottom { display:flex; justify-content:space-between; align-items:end; gap:30px; border-top:1px solid #ffffff70; padding-top:22px; }
.chapter-bottom p { font-size:clamp(16px,1.2vw,20px); line-height:1.5; }
.chapter-bottom>span { text-align:right; font-size:12px; line-height:1.65; color:#e0e6e0; }
.field-chapter .visual-media img { object-position:55% 55%; }
figcaption { font-size:13px; line-height:1.5; color:var(--muted); }

.section-heading { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr); column-gap:8%; margin-bottom:48px; }
.section-heading .section-label { padding-top:8px; }
.about-layout { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr); gap:8%; align-items:start; }
.about-portrait img { width:100%; height:auto; aspect-ratio:1320/1723; }
.about-portrait figcaption { margin-top:16px; max-width:360px; }
.academic-record { border-top:1px solid var(--line); padding-top:22px; margin-top:36px; }
.profile-facts { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.profile-facts>div { padding-top:20px; }
.profile-facts dt { color:var(--muted); font-size:13px; margin-bottom:10px; }
.profile-facts dd { font-size:16px; line-height:1.45; font-weight:500; }
.profile-facts dd span { display:block; font-size:14px; font-weight:400; color:var(--muted); margin-top:8px; }
.about-copy>p:not(.large-copy) { font-size:17px; color:var(--muted); margin-top:24px; max-width:630px; }
.interests { margin-top:34px; padding-top:24px; border-top:1px solid var(--line); }
.interests p { margin-top:12px; font-size:15px; color:var(--muted); }

.experience { border-top:1px solid var(--line); }
.split-heading { display:grid; grid-template-columns:1.35fr 1fr; gap:12%; align-items:end; margin-bottom:50px; }
.split-heading>p { font-size:16px; color:var(--muted); max-width:460px; }
.experience-layout { display:grid; grid-template-columns:1.14fr 1fr; gap:8%; align-items:start; }
.experience-image { position:sticky; top:112px; }
.image-button { display:block; position:relative; width:100%; padding:0; background:#edf0eb; }
.image-button>img { width:100%; height:auto; aspect-ratio:4/3; object-fit:contain; }
.expand-image { position:absolute; right:14px; bottom:14px; display:grid; place-items:center; width:36px; height:36px; background:var(--paper); color:var(--ink); font-size:22px; }
@media (hover:hover) and (pointer:fine) { .image-button:hover .expand-image { background:var(--ink); color:#fff; } }
.experience-image>.image-feedback { position:absolute; inset:0 0 auto; aspect-ratio:4/3; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; background:#edf0eb; }
.experience-image figcaption { display:flex; justify-content:space-between; gap:24px; margin-top:15px; }
#agency-index { white-space:nowrap; }
.agency { border-top:1px solid var(--line); }
.agency:last-child { border-bottom:1px solid var(--line); }
.agency summary { list-style:none; display:grid; grid-template-columns:1fr 20px; align-items:start; gap:20px; cursor:pointer; padding:22px 0; font-size:23px; font-weight:500; letter-spacing:-.025em; }
.agency summary::-webkit-details-marker { display:none; }
.agency summary small { display:block; margin-top:7px; color:var(--muted); font-weight:400; font-size:13px; letter-spacing:0; line-height:1.45; }
.expand { position:relative; width:16px; height:16px; top:7px; }
.expand::before,.expand::after { content:""; position:absolute; inset:7px 0 auto; height:1px; background:currentColor; }
.expand::after { transform:rotate(90deg); }
.agency[open] .expand::after { transform:none; }
.agency[open] summary { color:var(--accent); }
.agency-body { padding:0 34px 24px 0; }
.agency-body p { font-size:15px; color:var(--muted); }
.supporting-records { display:flex; justify-content:space-between; align-items:center; gap:40px; margin-top:50px; padding-top:24px; border-top:1px solid var(--line); }
.supporting-records p { max-width:500px; color:var(--muted); font-size:14px; margin-top:9px; }
.supporting-records a { flex-shrink:0; }

.dark-section { background:var(--dark); color:#fff; }
.dark-section .section-label { color:#c5cec5; }
@media (hover:hover) and (pointer:fine) { .dark-section .line-link:hover { color:#ebbd9f; } }
.research-top { display:flex; justify-content:space-between; gap:24px; margin-bottom:50px; font-size:14px; color:#c5cec5; }
.research-top .section-label { margin:0; }
.research-layout { display:grid; grid-template-columns:1.35fr 1fr; gap:12%; }
.research-intro h2 { font-size:clamp(40px,4.5vw,66px); }
.research-intro h2>span { color:#d7aa8f; }
.research-subject { margin-top:28px; max-width:490px; font-size:18px; line-height:1.5; }
.research-site { margin-top:40px; border-top:1px solid #ffffff40; padding-top:20px; }
.research-site dt { color:#c5cec5; font-size:13px; margin-bottom:9px; }
.research-site dd { font-size:16px; line-height:1.5; }
.research-contribution>p { font-size:18px; color:#e0e5df; }
.research-contribution h3 { margin-top:30px; }
.research-contribution ul { list-style:none; margin:14px 0 22px; padding:0; }
.research-contribution li { padding:12px 0; border-bottom:1px solid #ffffff29; font-size:15px; line-height:1.5; color:#d2dad2; }

.journal .split-heading { margin-bottom:40px; }
.gallery-controls { display:flex; justify-content:space-between; align-items:center; gap:25px; border-block:1px solid var(--line); padding-block:8px; margin-bottom:32px; scroll-margin-top:104px; }
.gallery-filters { display:flex; flex-wrap:wrap; gap:6px; }
.gallery-filters button { background:none; color:var(--muted); font-size:14px; padding:12px 10px; min-height:44px; }
.gallery-filters button:first-child { margin-left:-10px; }
.gallery-filters button[aria-pressed=true] { color:var(--ink); text-decoration:underline; text-underline-offset:6px; text-decoration-thickness:2px; }
@media (hover:hover) and (pointer:fine) { .gallery-filters button:hover { color:var(--accent); } }
#gallery-status { font-size:12px; color:var(--muted); white-space:nowrap; }
.gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px 26px; }
.gallery-card { min-width:0; }
.gallery-card.is-wide:first-child { grid-column:span 2; }
.gallery-card button,.gallery-card>a { display:block; width:100%; padding:0; background:none; text-align:left; }
.gallery-photo { position:relative; overflow:hidden; background:#e8ebe5; }
.gallery-photo img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.gallery-card.is-wide:first-child .gallery-photo img { aspect-ratio:2.4; }
.gallery-card.is-portrait .gallery-photo img { object-fit:contain; }
.gallery-card figcaption { display:flex; justify-content:space-between; gap:16px; margin-top:12px; font-weight:500; color:var(--ink); }
.gallery-card figcaption>span { font-size:12px; color:var(--muted); font-weight:400; padding-top:1px; }
.thumbnail-error { position:absolute; inset:0; display:grid; place-items:center; padding:18px; text-align:center; font-size:13px; line-height:1.5; color:var(--ink); }
.gallery-category { display:block; font-weight:400; font-size:12px; color:var(--muted); margin-top:5px; }
.gallery-card .expand-image { opacity:0; transition:opacity .15s; }
.gallery-card button:focus-visible .expand-image { opacity:1; }
@media (hover:hover) and (pointer:fine) { .gallery-card button:hover .expand-image { opacity:1; } }
.gallery-bottom { display:flex; justify-content:space-between; align-items:center; gap:30px; margin-top:40px; padding-top:20px; border-top:1px solid var(--line); }
.gallery-bottom>span,.gallery-loading { color:var(--muted); font-size:14px; }
.gallery-loading { margin-top:20px; }
.gallery-loading .line-link { margin-left:16px; }

.capabilities { background:#eef0eb; }
.capabilities-layout { display:grid; grid-template-columns:1fr 1.3fr; gap:12%; }
.capabilities h2 { font-size:clamp(37px,4.3vw,62px); }
.skills-list>div { padding-block:23px; border-top:1px solid #c8cec4; }
.skills-list>div:first-child { padding-top:0; border:0; }
.skills-list dt { font-size:19px; font-weight:500; letter-spacing:-.02em; }
.skills-list dd { color:var(--muted); font-size:16px; line-height:1.65; margin-top:12px; }
.personal { display:grid; grid-template-columns:1.1fr 1fr; gap:12%; align-items:center; }
.personal-photo img { width:100%; height:auto; }
.personal-photo figcaption { margin-top:14px; }
.personal-copy h2 { font-size:clamp(36px,3.6vw,54px); }
.personal-copy>p:not(.section-label) { font-size:16px; color:var(--muted); margin-top:26px; }
.personal-copy .commitment { padding-top:24px; border-top:1px solid var(--line); }

.contact { padding-top:45px; }
.contact-top { display:flex; justify-content:space-between; align-items:center; gap:25px; }
.contact-top .section-label { margin:0; }
.back-link { display:flex; align-items:center; gap:18px; font-size:13px; min-height:44px; }
.contact-main { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:10%; margin-top:50px; }
.contact-main h2 { font-size:clamp(60px,7.4vw,108px); font-weight:400; }
.contact-main p { color:#c5cec5; font-size:16px; }
.email-link { display:inline-flex; align-items:center; gap:20px; font-size:clamp(21px,2.25vw,33px); letter-spacing:-.035em; border-bottom:1px solid #ffffff70; padding-block:14px; margin-top:17px; max-width:100%; }
@media (hover:hover) and (pointer:fine) { .email-link:hover,.contact-links a:hover,.back-link:hover { color:#ebbd9f; } }
.contact-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-block:1px solid #ffffff40; margin-top:60px; }
.contact-links>a { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:28px 28px 28px 0; font-size:21px; }
.contact-links>a+a { border-left:1px solid #ffffff40; padding-left:28px; }
.contact-links small { display:block; font-size:13px; color:#c5cec5; margin-top:8px; line-height:1.5; }
.contact-live { display:grid; grid-template-columns:1fr 1fr; gap:40px; padding-block:32px; border-bottom:1px solid #ffffff40; }
.live-label { color:#c5cec5; font-size:13px; line-height:1.5; }
.live-label>span { margin-left:14px; font-size:12px; }
.live-value { display:block; margin-top:10px; min-height:1.2em; font-size:clamp(28px,2.6vw,38px); line-height:1.2; letter-spacing:-.025em; font-variant-numeric:tabular-nums; font-weight:400; }
.live-detail { color:#c5cec5; font-size:12px; line-height:1.5; margin-top:9px; }
.contact-counter { text-align:right; }
.footer-bottom { display:flex; justify-content:space-between; gap:24px; padding-block:25px; font-size:12px; color:#c5cec5; }

/* Native dialogs provide focus containment and inert page content. */
dialog { border:0; padding:0; }
dialog::backdrop { background:#101710ed; }
.close-dialog { background:none; font-size:30px; line-height:1; width:44px; height:44px; flex-shrink:0; }
.photo-dialog { background:#182019; color:#fff; width:min(1400px,calc(100% - 56px)); height:min(920px,calc(100svh - 40px)); max-width:none; max-height:none; overflow:hidden; }
.photo-toolbar { display:flex; align-items:center; gap:24px; height:64px; font-size:14px; padding-inline:16px; }
.photo-toolbar>span:nth-child(2) { margin-left:auto; color:#c5cec5; }
.photo-stage { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; gap:20px; align-items:center; height:calc(100% - 150px); padding-inline:16px; }
.photo-stage>button { width:44px; height:44px; border:1px solid #ffffff70; background:none; font-size:23px; }
@media (hover:hover) and (pointer:fine) { .photo-stage>button:hover { background:#ffffff20; } }
.photo-frame { position:relative; height:100%; min-height:0; min-width:0; display:grid; place-items:center; }
.photo-frame img { width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; }
.image-feedback { font-size:14px; line-height:1.5; text-align:center; padding:20px; }
.photo-frame .image-feedback { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; }
#photo-retry { color:inherit; }
#agency-feedback { color:var(--muted); }
#photo-caption { font-size:15px; text-align:center; margin:20px 25px 0; line-height:1.4; }
.photo-hint { color:#c5cec5; font-size:12px; text-align:center; margin:9px 16px 0; }
.research-dialog { width:min(730px,calc(100% - 48px)); max-height:90svh; background:var(--paper); color:var(--ink); overscroll-behavior:contain; }
.research-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); padding:14px 30px; font-size:14px; position:sticky; top:0; background:var(--paper); }
.research-dialog-content { padding:32px 42px 45px; }
.research-dialog h2 { font-size:38px; line-height:1.14; }
.research-dialog h2>span { color:var(--accent); }
.research-meta { display:grid; grid-template-columns:2fr 1fr; gap:25px; padding-block:22px; border-block:1px solid var(--line); margin-block:28px; font-size:15px; line-height:1.5; }
.research-meta dt { color:var(--muted); font-size:13px; margin-bottom:8px; }
.research-dialog h3 { margin-top:22px; }
.research-dialog-content>p:not(.section-label) { font-size:16px; color:var(--muted); margin-top:10px; }
.research-dialog .line-link { margin-top:25px; }

@media(min-width:1600px) { .site-header { padding-inline:max(var(--gutter),calc((100vw - 1440px)/2)); } }
@media(max-width:1100px) {
  .contact-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .contact-links>a+a { border-left:0; padding-left:0; }
  .contact-links>a:nth-child(even) { border-left:1px solid #ffffff40; padding-left:28px; }
  .contact-links>a:nth-child(-n+2) { border-bottom:1px solid #ffffff40; }
  .identity>span:last-child { max-width:90px; }
  .motion-toggle span { display:none; }
  .site-header { gap:20px; }
  .header-actions { padding-left:14px; }
  .experience-layout,.research-layout { gap:7%; }
  .agency summary { font-size:21px; }
  .gallery-controls { display:block; }
  #gallery-status { display:block; margin:3px 0 8px; }
}
@media(max-width:800px) {
  :root { --gutter:28px; }
  .site-header { height:76px; }
  .identity>span:last-child { max-width:none; }
  .header-actions { border:0; padding:0; margin-left:auto; gap:10px; }
  .site-header nav { display:none; position:absolute; top:76px; left:0; right:0; background:var(--dark); border-bottom:1px solid #ffffff30; padding:14px var(--gutter) 28px; max-height:calc(100svh - 76px); overflow:auto; margin:0; flex-direction:column; align-items:stretch; gap:0; font-size:23px; }
  .site-header.menu-open nav { display:flex; }
  .site-header nav a { padding-block:14px; border-top:1px solid #ffffff30; }
  #menu-toggle { display:flex; flex-direction:column; justify-content:center; gap:6px; width:44px; height:44px; padding:10px; background:none; }
  #menu-toggle>span { height:1px; width:24px; background:currentColor; }
  #menu-toggle[aria-expanded=true]>span:first-child { transform:translateY(3.5px) rotate(45deg); }
  #menu-toggle[aria-expanded=true]>span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
  .hero { min-height:760px; }
  .hero-content { padding-top:130px; }
  .hero-kicker { font-size:12px; gap:16px; }
  .hero h1 { font-size:11.5vw; }
  .hero-main { grid-template-columns:minmax(0,1fr) 195px; gap:28px; }
  .hero-credential { font-size:21px; }
  .hero-direction { font-size:16px; }
  .portrait-note { font-size:12px; }
  .portrait-note strong { font-size:13px; }
  .portrait-note strong span { margin-left:12px; }
  .chapter-copy h2 { font-size:8vw; }
  .section-heading,.about-layout { grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr); gap:6%; }
  .profile-facts { grid-template-columns:1fr; gap:0; }
  .profile-facts>div+div { border-top:1px solid var(--line); margin-top:20px; }
  .profile-facts dd { font-size:16px; }
  .split-heading { gap:7%; grid-template-columns:1.2fr 1fr; }
  .split-heading>p { font-size:15px; }
  .experience-layout { grid-template-columns:1fr 1fr; gap:6%; }
  .agency summary { font-size:20px; }
  .research-top { margin-bottom:35px; }
  .research-layout { gap:8%; grid-template-columns:1.2fr 1fr; }
  .research-intro h2 { font-size:40px; }
  .research-contribution>p { font-size:16px; }
  .gallery { gap:28px 18px; }
  .capabilities-layout { gap:8%; grid-template-columns:1fr 1.3fr; }
  .personal { gap:8%; }
  .contact-main { gap:7%; }
  .contact-main p { font-size:14px; }
  .contact-links>a { font-size:19px; padding-right:18px; }
  .contact-links>a:nth-child(even) { padding-left:18px; }
  .contact-links small { font-size:12px; }
}
@media(max-width:600px) {
  :root { --gutter:22px; }
  section,footer { scroll-margin-top:90px; }
  .section-pad { padding-block:68px; }
  .site-header { height:70px; gap:12px; }
  .identity { font-size:12px; gap:11px; }
  .identity-mark { font-size:35px; }
  .site-header nav { top:70px; max-height:calc(100svh - 70px); }
  .header-actions { gap:0; }
  .hero { height:auto; min-height:100svh; max-height:none; }
  .hero-content { height:auto; min-height:100svh; padding-top:112px; padding-bottom:20px; }
  .hero-kicker { max-width:280px; display:block; font-size:12px; line-height:1.8; letter-spacing:.1em; margin-bottom:0; padding-bottom:34px; }
  .hero-kicker .rule { display:block; width:32px; margin-block:9px; }
  .hero h1 { font-size:16.2vw; line-height:.98; margin:0 0 28px -2px; }
  .hero .visual-media img { object-position:64% center; }
  .hero-shade { background:linear-gradient(0deg,#0c160ef2 0%,#111c124d 80%,#111b1780 100%); }
  .hero-main { display:block; }
  .hero-credential { font-size:19px; max-width:340px; }
  .hero-direction { font-size:15px; max-width:370px; margin-top:10px; }
  .portrait-note { width:clamp(180px,52vw,230px); max-width:100%; margin:28px 0 0 auto; font-size:12px; }
  .portrait-note strong { font-size:13px; margin-top:3px; }
  .hero-bottom { margin-top:28px; padding-top:12px; font-size:12px; gap:20px; }
  .hero-bottom>a { gap:15px; white-space:nowrap; }
  .hero-bottom>span { max-width:145px; line-height:1.5; }
  .visual-chapter:not(.hero) { height:80svh; min-height:570px; max-height:800px; }
  .chapter-copy { padding-block:35px 28px; }
  .chapter-label { font-size:12px; }
  .chapter-copy h2 { font-size:10.3vw; line-height:1.06; letter-spacing:-.05em; margin-top:80px; margin-bottom:42px; }
  .field-chapter .visual-media img { object-position:59% 50%; }
  .chapter-bottom { display:block; padding-top:18px; }
  .chapter-bottom p { font-size:15px; }
  .chapter-bottom>span { display:block; text-align:left; font-size:12px; margin-top:18px; }
  .chapter-shade { background:linear-gradient(0deg,#0b130bf2,transparent 90%),linear-gradient(90deg,#0b130b66,transparent); }
  .desktop-break { display:none; }
  .section-label { font-size:13px; margin-bottom:20px; }
  .section-heading { display:block; margin-bottom:30px; }
  .section-heading .section-label { padding:0; }
  .about-layout { display:flex; flex-direction:column; gap:35px; }
  .about-portrait { width:100%; max-width:440px; }
  .about-portrait figcaption { font-size:12px; margin-top:12px; }
  .about-copy>p:not(.large-copy) { font-size:16px; margin-top:22px; }
  .profile-facts>div { display:grid; grid-template-columns:85px 1fr; gap:20px; padding-block:20px; border-bottom:1px solid var(--line); }
  .profile-facts>div+div { border-top:0; margin-top:0; }
  .profile-facts dt { font-size:12px; padding-top:3px; }
  .profile-facts dd span { font-size:14px; }
  .interests { margin-top:28px; }
  .split-heading { display:block; margin-bottom:30px; }
  .split-heading>p { margin-top:24px; font-size:16px; }
  .experience-layout { display:flex; flex-direction:column; gap:26px; }
  .experience-image { position:relative; width:100%; }
  .experience-image figcaption { font-size:12px; }
  .agency-list { width:100%; }
  .agency summary { padding-block:22px; font-size:23px; }
  .agency summary small { font-size:13px; }
  .agency-body p { font-size:16px; }
  .supporting-records { display:block; margin-top:32px; }
  .supporting-records .line-link { margin-top:15px; }
  .research-top { margin-bottom:35px; }
  .research-top>span { font-size:13px; }
  .research-layout { display:block; }
  .research-intro h2 { font-size:11vw; }
  .research-subject { font-size:18px; margin-top:24px; }
  .research-site { margin-top:28px; }
  .research-contribution { margin-top:36px; }
  .research-contribution>p { font-size:17px; }
  .research-contribution li { font-size:16px; }
  .gallery-controls { margin-bottom:26px; }
  .gallery-filters { gap:0 6px; }
  .gallery-filters button { padding-inline:9px; font-size:13px; }
  .gallery-filters button:first-child { margin-left:-9px; }
  #gallery-status { font-size:12px; margin-block:6px; }
  .gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 16px; }
  .gallery-card.is-wide:first-child .gallery-photo img { aspect-ratio:1.7; }
  .gallery-photo img { aspect-ratio:4/3; }
  .gallery-card figcaption { font-size:13px; gap:10px; }
  .gallery-card figcaption>span { display:none; }
  .gallery-category { font-size:12px; }
  .gallery-card .expand-image { display:none; }
  .gallery-bottom { display:block; margin-top:32px; }
  .gallery-bottom .line-link { display:flex; width:max-content; max-width:100%; margin-top:14px; }
  .capabilities-layout { display:block; }
  .capabilities-heading { margin-bottom:34px; }
  .skills-list dt { font-size:20px; }
  .personal { display:flex; flex-direction:column; gap:32px; align-items:stretch; }
  .personal-copy { order:-1; }
  .personal-photo { width:92%; }
  .personal-photo figcaption { font-size:12px; }
  .contact { padding-top:30px; }
  .contact-main { display:block; margin-top:36px; }
  .contact-main h2 { font-size:18vw; }
  .contact-main>div { margin-top:30px; }
  .contact-main p { font-size:15px; }
  .email-link { font-size:clamp(20px,5.6vw,28px); gap:14px; margin-top:12px; }
  .contact-links { grid-template-columns:1fr; margin-top:36px; }
  .contact-links>a:nth-child(n) { border-left:0; border-bottom:0; padding:23px 0; font-size:21px; }
  .contact-links>a+a { border-top:1px solid #ffffff40; }
  .contact-links small { font-size:13px; }
  .contact-live { gap:20px; padding-block:26px; }
  .live-value { font-size:28px; }
  .live-label>span { display:block; margin:4px 0 0; }
  .contact-counter .live-label { min-height:42px; }
  .live-detail { font-size:12px; }
  .footer-bottom { flex-wrap:wrap; gap:14px; }
  .footer-bottom>span:nth-child(2) { order:3; width:100%; }
  .photo-dialog { width:calc(100% - 20px); height:calc(100svh - 20px); }
  .photo-toolbar { height:56px; gap:12px; padding-inline:10px; font-size:12px; }
  .photo-stage { height:calc(100% - 155px); grid-template-columns:1fr 1fr; grid-template-rows:minmax(0,1fr) 44px; gap:18px 10px; padding-inline:10px; }
  .photo-frame { grid-column:1/-1; grid-row:1; }
  .photo-stage>button { grid-row:2; justify-self:start; }
  .photo-stage>button:last-child { justify-self:end; }
  #photo-caption { font-size:14px; margin-top:15px; }
  .photo-hint { font-size:12px; }
  .research-dialog { width:calc(100% - 24px); max-height:94svh; }
  .research-toolbar { padding:10px 18px; font-size:13px; }
  .research-dialog-content { padding:28px 24px 35px; }
  .research-dialog h2 { font-size:31px; }
  .research-meta { grid-template-columns:1fr; gap:20px; }
}
@media(max-width:360px) {
  :root { --gutter:18px; }
  .identity>span:last-child { max-width:100px; }
  .hero-credential { font-size:18px; }
  .hero-bottom { font-size:12px; gap:12px; }
  .profile-facts>div { grid-template-columns:73px 1fr; gap:16px; }
  .gallery { column-gap:12px; }
  .agency summary { font-size:21px; }
  .photo-toolbar { gap:8px; }
  .photo-toolbar>span:first-child { max-width:105px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
  .parallax-image,.parallax-title { transform:none!important; }
}
html[data-motion=paused] *,html[data-motion=paused] *::before,html[data-motion=paused] *::after { transition:none!important; animation:none!important; }
html[data-motion=paused] .parallax-image,html[data-motion=paused] .parallax-title { transform:none!important; }
@media print {
  .site-header,.field-chapter,.hero .visual-media,.hero-shade,.hero-bottom,.gallery-controls,.gallery-bottom,.back-link,dialog,.image-button .expand-image { display:none!important; }
  body { background:#fff; }
  .container { width:100%; }
  .hero { height:auto; min-height:0; color:#000; background:#fff; }
  .hero-content { padding:0; min-height:0; }
  .hero-main { grid-template-columns:1fr 180px; }
  .portrait-note { width:180px; }
  .about-portrait { max-width:260px; }
  .hero-kicker { margin-bottom:20px; padding:0; }
  .hero h1 { font-size:58px; margin:0 0 24px; }
  .hero-direction { color:#333; }
  .portrait-note { color:#000; }
  .hero-kicker .rule { display:none; }
  .section-pad { padding-block:30px; }
  .dark-section { background:#fff; color:#000; }
  .dark-section p,.dark-section li,.dark-section dt,.dark-section .section-label,.contact-links small,.footer-bottom,.live-label,.live-detail { color:#333; }
  h2,.contact-main h2 { font-size:34px; }
  .experience-image { position:static; }
  .agency { break-inside:avoid; }
  .agency-body { display:block!important; }
  .personal { break-inside:avoid; }
  .contact { padding-top:20px; }
  .contact-links { margin-top:20px; }
}
