@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700;800;900&display=swap');
:root{--paper:#fcfcf9;--ink:#171d28;--blue:#2856d8;--soft:#eef1f9;--muted:#576170;--line:#d7dce5;--max:1280px;--gutter:clamp(22px,5vw,76px);--sans:'Archivo',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a,button,summary{outline-offset:6px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue)}img{display:block;width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,h3{letter-spacing:-.045em;line-height:1.04}p{line-height:1.65}h1{font-size:clamp(60px,8vw,112px);font-weight:800}h2{font-size:clamp(36px,4.5vw,64px);font-weight:700}h3{font-size:clamp(24px,2.5vw,34px);font-weight:700}[hidden]{display:none!important}::selection{background:#cddafa}.container{max-width:var(--max);padding-inline:var(--gutter);margin:auto}.section{padding-block:clamp(64px,8vw,110px)}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1.5}.muted{color:var(--muted)}.blue{color:var(--blue)}.skip-link{position:absolute;left:20px;top:-100px;background:var(--ink);color:white;padding:12px;z-index:200}.skip-link:focus{top:12px}.site-header{position:sticky;top:0;background:var(--paper);border-bottom:1px solid var(--line);z-index:50}.nav-wrap{min-height:86px;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:12px;font-size:15px;font-weight:800}.brand-mark{color:var(--blue);font-size:29px;letter-spacing:-.08em}.site-nav{display:flex;gap:28px;align-items:center}.site-nav a{font-size:13px;font-weight:600;padding:13px 0;border-bottom:2px solid transparent}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--blue);border-bottom-color:var(--blue)}.site-nav .nav-contact{border:1px solid var(--blue);color:var(--blue);padding:11px 15px;border-radius:3px}.site-nav .nav-contact:hover{background:var(--blue);color:white}.menu-toggle{display:none;width:44px;height:44px;background:transparent;border:1px solid var(--line);cursor:pointer}.menu-toggle span,.menu-toggle span:before,.menu-toggle span:after{display:block;width:19px;height:2px;background:var(--ink);position:relative;margin:auto}.menu-toggle span:before,.menu-toggle span:after{content:'';position:absolute;left:0;top:-6px}.menu-toggle span:after{top:6px}.hero{padding-top:55px;padding-bottom:55px}.hero-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,72px);align-items:center}.hero h1{font-size:clamp(90px,12.1vw,172px);font-weight:900;letter-spacing:-.075em;line-height:.83;color:var(--blue);margin:29px 0}.hero h1 span{display:block}.hero-intro{font-size:clamp(18px,1.7vw,22px);max-width:520px;line-height:1.5}.hero-note{font-size:14px;max-width:470px;color:var(--muted);margin-top:18px}.hero-photo img{height:530px;object-fit:cover;object-position:50% 45%;border-radius:2px}.caption{font-size:11px;color:var(--muted);line-height:1.5;margin-top:12px;display:flex;justify-content:space-between;gap:16px}.hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:27px}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;background:var(--blue);color:white;padding:16px 21px;border:1px solid var(--blue);border-radius:3px;min-height:52px;font-size:13px;font-weight:600;cursor:pointer}.btn:hover{background:#1741b9}.text-link{display:inline-flex;gap:16px;align-items:center;border-bottom:1px solid currentColor;padding-bottom:6px;font-size:13px;font-weight:600}.text-link:hover{color:var(--blue)}.home-status{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:24px 0;margin-top:48px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;line-height:1.6}.section-head{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:36px}.section-head p{max-width:405px;color:var(--muted);font-size:15px}.section-head .eyebrow{margin-bottom:18px;color:var(--blue)}.soft-section{background:var(--soft)}.photo-stories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.story figure img{height:355px;object-fit:cover}.story h3{font-size:21px;line-height:1.15;margin-top:17px;letter-spacing:-.025em}.story p{font-size:13px;color:var(--muted);margin-top:9px}.story .eyebrow{margin-top:18px;color:var(--blue);font-size:10px}.section-tail{margin-top:35px}.project-teasers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:27px}.project-teaser{border-top:2px solid var(--blue);padding-top:20px}.project-teaser h3{font-size:27px;margin:20px 0 14px}.project-teaser p{font-size:14px;color:var(--muted)}.project-teaser .text-link{margin-top:24px}.page-hero{padding-top:70px;padding-bottom:60px;border-bottom:1px solid var(--line)}.page-hero .eyebrow{color:var(--blue);margin-bottom:25px}.page-hero h1{max-width:1000px;color:var(--blue)}.page-hero .intro{font-size:20px;line-height:1.6;max-width:760px;margin-top:27px}.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,80px)}.body-big{font-size:clamp(25px,2.8vw,38px);letter-spacing:-.03em;line-height:1.35;font-weight:500}.body-copy{font-size:16px;color:var(--muted)}.body-copy p+p{margin-top:20px}.image-pair{display:grid;grid-template-columns:1fr 1fr;gap:27px}.image-pair img{height:480px;object-fit:cover}.portrait-pair img{height:430px}.full-caption{font-size:12px;color:var(--muted);margin-top:12px}.community{display:grid;grid-template-columns:.85fr 1.15fr;gap:65px;align-items:center}.community img{height:460px;object-fit:contain;background:#edf0f7}.community h2{margin:18px 0 25px}.community p+p{margin-top:18px}.fact-lines{margin-top:32px;border-top:1px solid var(--line)}.fact-line{display:grid;grid-template-columns:130px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid var(--line);font-size:14px}.fact-line span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.journey{border-top:1px solid var(--line)}.journey-item{display:grid;grid-template-columns:160px 1fr;gap:40px;padding:28px 0;border-bottom:1px solid var(--line)}.journey-date{color:var(--blue);font-size:11px;font-weight:700;line-height:1.6;padding-top:6px}.journey-item h3{font-size:28px}.journey-org{font-size:12px;color:var(--muted);line-height:1.6;margin:10px 0 14px}.journey-item p{font-size:15px;max-width:740px;color:var(--muted)}.recognition{display:grid;grid-template-columns:1fr 1fr;gap:40px}.recognition img{height:470px;object-fit:cover}.recognition .eyebrow{color:var(--blue);margin-top:23px}.recognition h3{margin-top:12px;font-size:29px}.recognition p{font-size:15px;color:var(--muted);margin-top:15px}.photo-secondary img{height:480px;object-fit:cover}.project-entry{display:grid;grid-template-columns:1fr 1fr;gap:65px;padding:64px 0;border-bottom:1px solid var(--line);align-items:center}.project-entry:first-child{padding-top:0}.project-copy .eyebrow{color:var(--blue);margin-bottom:22px}.project-copy h2{font-size:clamp(36px,4vw,55px)}.project-copy .why{font-size:19px;line-height:1.5;margin:23px 0 18px}.project-copy .description{color:var(--muted);font-size:15px}.tags{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0 28px}.tags span{border:1px solid var(--line);padding:7px 10px;font-size:10px;line-height:1.4}.project-art{aspect-ratio:1.1;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:35px;background:var(--soft);color:var(--blue)}.project-art .art-name{font-size:clamp(35px,4vw,55px);font-weight:800;line-height:1;letter-spacing:-.055em;max-width:310px;position:relative;z-index:2}.project-art .art-meta{font-size:10px;letter-spacing:.1em;font-weight:700;text-transform:uppercase;position:relative;z-index:2}.project-art svg{position:absolute;inset:auto 0 0;width:100%;height:58%;opacity:.65}.project-art.housing{background:#f3e5d6;color:#86521e}.project-status{font-size:11px;color:var(--muted);margin-top:14px}.interest-strip{display:grid;grid-template-columns:1fr 1.3fr;gap:60px;align-items:start}.interest-strip p{color:var(--muted);font-size:16px}.interest-list{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}.interest-list span{border-bottom:1px solid var(--line);padding:9px 0;margin-right:15px;font-size:14px}.footer-cta{background:var(--blue);color:white;padding-block:65px}.footer-layout{display:flex;justify-content:space-between;gap:45px;align-items:center}.footer-cta h2{font-size:clamp(38px,5vw,65px);max-width:710px}.footer-cta p{font-size:15px;color:#e0e6ff;max-width:600px;margin-top:20px}.footer-cta .btn{background:white;color:var(--blue);border-color:white;flex:none}.site-footer{padding:25px 0}.footer-content{display:flex;justify-content:space-between;gap:25px;font-size:11px;color:var(--muted);line-height:1.7}.footer-links{display:flex;gap:23px;flex-wrap:wrap}.footer-links a:hover{color:var(--blue)}.resume-actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin-top:25px}.resume-body h2{font-size:35px;margin-bottom:25px}.resume-body h3{font-size:21px;line-height:1.2;margin-bottom:8px}.resume-body h4{font-size:15px;margin:22px 0 8px}.resume-body article{margin-bottom:40px}.resume-body p{font-size:14px}.resume-body p+p{margin-top:12px}
@media(max-width:1000px){.hero h1{font-size:clamp(88px,12vw,130px)}.hero-photo img{height:460px}.photo-stories{gap:18px}.story figure img{height:280px}.community{gap:35px}.project-entry{gap:35px}.project-art{padding:25px}.project-art .art-name{font-size:40px}.site-nav{gap:20px}.recognition img{height:390px}}
@media(max-width:720px){.nav-wrap{min-height:74px}.brand{font-size:13px}.menu-toggle{display:block}.site-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:15px var(--gutter) 25px;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:3px}.site-nav.is-open{display:flex}.site-nav a{padding:14px 0;font-size:17px}.site-nav .nav-contact{margin-top:10px;align-self:start;padding:12px 16px}.hero{padding-top:35px}.hero-layout{grid-template-columns:1fr;gap:34px}.hero h1{font-size:clamp(100px,23vw,160px);margin:23px 0 26px}.hero-intro{font-size:20px}.hero-note{font-size:14px}.hero-photo img{height:440px;max-height:125vw}.home-status{margin-top:28px;flex-direction:column;gap:8px}.section-head{align-items:start;flex-direction:column;gap:21px}.photo-stories,.project-teasers,.split,.community,.recognition,.project-entry,.interest-strip{grid-template-columns:1fr}.photo-stories{gap:38px}.story figure img{height:400px;max-height:110vw}.story h3{font-size:25px}.project-teasers{gap:36px}.page-hero{padding-top:46px;padding-bottom:42px}.page-hero h1{font-size:clamp(54px,12vw,85px)}.page-hero .intro{font-size:18px}.image-pair{gap:15px}.image-pair img{height:300px}.community{gap:30px}.community img{height:auto;max-height:480px}.journey-item{grid-template-columns:1fr;gap:12px}.journey-item h3{font-size:27px}.journey-date{font-size:11px}.recognition{gap:46px}.recognition img{height:auto;max-height:none}.project-entry{gap:28px;padding:48px 0}.project-art{max-height:420px}.project-art .art-name{font-size:48px}.project-copy h2{font-size:39px}.project-copy .eyebrow{margin-bottom:15px}.project-copy .why{font-size:18px}.footer-layout,.footer-content{flex-direction:column;align-items:start}.footer-cta{padding-block:50px}.footer-links{gap:20px}.photo-secondary img{height:390px}.fact-line{grid-template-columns:100px 1fr}}
@media(max-width:380px){.hero h1{font-size:94px}.hero-intro{font-size:18px}.image-pair{grid-template-columns:1fr}.image-pair img{height:auto}.project-art .art-name{font-size:39px}.project-copy h2{font-size:34px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media print{body{font-family:Arial,sans-serif;background:white;color:#111;font-size:10pt}.site-header,.site-footer,.footer-cta,.skip-link,.resume-actions{display:none!important}.container{max-width:none;padding:0}.page-hero{padding:0 0 20px;border:0}.page-hero h1{font-size:34pt;color:#111}.page-hero .eyebrow{display:none}.page-hero .intro{font-size:11pt;margin-top:10px}.resume-body{padding:0}.resume-body .split{display:grid;grid-template-columns:1.4fr 1fr;gap:30px}.resume-body h2{font-size:19pt;margin-bottom:12px}.resume-body h3{font-size:12pt}.resume-body h4{font-size:10pt;margin-top:12px}.resume-body p{font-size:9pt;line-height:1.4}.resume-body article{margin-bottom:20px;break-inside:avoid}@page{size:A4;margin:16mm}}
@media(max-width:380px){.hero h1{font-size:clamp(78px,25.8vw,94px)}}
@media(max-width:380px){.page-hero h1{font-size:44px}}

/* Editorial direction: a restrained reading rhythm and one shared motion language. */
:root{--max:1240px;--serif:Georgia,'Times New Roman',serif;--ease:cubic-bezier(.22,.61,.36,1);--feedback:160ms;--transition:240ms}
html{scroll-behavior:auto;scrollbar-gutter:stable}h2{font-family:var(--serif);font-weight:400;letter-spacing:-.045em;line-height:1.08}p{line-height:1.7}.brand small{display:block;color:var(--muted);font-size:10px;font-weight:400;letter-spacing:.03em;margin-top:5px}.brand{font-size:12px;letter-spacing:.035em}.brand-mark{font-size:30px}.nav-wrap{min-height:82px}.site-nav a,.btn,.text-link,.btn span,.text-link span,.btn:hover span,.btn:focus-visible span,.text-link:hover span,.text-link:focus-visible span,.site-nav a[aria-current=page]{border-bottom-width:1px}.hero{padding-top:clamp(38px,5vw,68px);padding-bottom:32px}.hero-layout{grid-template-columns:1.12fr .88fr;gap:clamp(36px,7vw,90px)}.hero h1{font-size:clamp(94px,11.8vw,158px);line-height:.88;font-weight:800;margin:27px 0 32px;letter-spacing:-.07em}.hero-intro{font-size:clamp(19px,1.9vw,23px);line-height:1.45;letter-spacing:-.02em}.hero-note{font-size:14px;line-height:1.7;max-width:390px}.hero-photo img{height:auto;aspect-ratio:2/3;object-fit:cover;max-height:590px}.hero-actions{gap:24px;margin-top:28px}.home-status{margin-top:38px;padding:20px 0;font-size:10px;letter-spacing:.055em}.section{padding-block:clamp(58px,7vw,90px)}.section-head{margin-bottom:32px}.section-head .eyebrow{margin-bottom:15px}.section-head p{font-size:14px;max-width:370px}.page-hero{padding-top:60px;padding-bottom:46px}.page-hero h1{font-size:clamp(58px,7.5vw,100px);font-weight:700;letter-spacing:-.06em}.page-hero .intro{font-size:19px;max-width:690px;line-height:1.65}.page-hero .eyebrow{margin-bottom:23px}.body-copy{max-width:620px;font-size:16px}.body-big{font-family:var(--serif);font-size:clamp(27px,3vw,38px);font-weight:400;line-height:1.3}.education-portrait figure{max-width:350px}.education-portrait img{aspect-ratio:2/3;object-fit:cover}.education-portrait .body-big{margin-top:32px;max-width:400px}.full-caption{font-size:11px;line-height:1.6;max-width:52ch}.photo-stories{gap:28px}.story figure img{height:auto;aspect-ratio:3/4}.story:last-child figure img{object-fit:contain;background:#e8edf7}.story h3{font-size:23px;font-weight:600;line-height:1.2}.story .eyebrow{margin-top:20px;font-size:9px}.story p{line-height:1.65}.project-teaser h3{font-size:27px;line-height:1.14;font-weight:600}.project-teaser{border-top-width:1px}.project-teaser p{font-size:14px}.community{grid-template-columns:.9fr 1.1fr;gap:65px}.community img{height:auto;aspect-ratio:4/5;object-fit:contain}.journey-item{grid-template-columns:160px 1fr;padding-block:30px}.journey-item h3{font-size:27px;font-weight:600;line-height:1.15}.journey-item p{max-width:660px}.recognition{gap:48px}.recognition>article>figure img{height:auto;aspect-ratio:3/4;object-fit:cover}.recognition>article:nth-child(2)>figure img{object-fit:contain;background:#e4e8ed}.recognition h3{font-size:27px;font-weight:600;line-height:1.18}.recognition .eyebrow{font-size:10px}.photo-secondary> .photo-link img{height:auto;aspect-ratio:4/5;object-fit:cover}.project-index{display:flex;flex-wrap:wrap;gap:12px 30px;border-bottom:1px solid var(--line);padding-bottom:26px;margin-bottom:48px}.project-index a{font-size:12px;line-height:1.6;padding-block:5px}.project-index a:hover{text-decoration:underline;text-underline-offset:5px}.project-index span{color:var(--blue);font-size:10px;margin-right:8px}.project-entry{scroll-margin-top:100px;gap:60px;padding-block:52px}.project-copy h2{line-height:1.07}.project-copy .why{font-size:18px;margin-top:20px}.project-art{aspect-ratio:1.12}.project-art.housing{background:#e4eafb;color:#244580}.tags span{font-size:10px}.footer-cta{padding-block:58px}.footer-cta h2{line-height:1.08}.footer-cta p{font-size:14px;max-width:550px}.footer-cta .btn:hover{background:#eef2ff}.footer-links a{text-underline-offset:5px}.footer-links a:hover{text-decoration:underline}
.photo-link{display:block;position:relative;border-radius:2px;overflow:hidden}.photo-link img{transition:filter var(--transition) var(--ease)}.photo-link:hover img{filter:brightness(.97)}.photo-expand{position:absolute;right:12px;bottom:12px;padding:8px 10px;font-size:10px;letter-spacing:.02em;background:var(--paper);color:var(--ink);border:1px solid var(--line);opacity:0;transform:translateY(4px);transition:opacity var(--feedback),transform var(--transition) var(--ease)}.photo-link:hover .photo-expand,.photo-link:focus-visible .photo-expand{opacity:1;transform:none}.photo-link:focus-visible{outline-offset:5px;overflow:visible}.editorial-details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:24px}.editorial-details summary{display:flex;align-items:center;justify-content:space-between;gap:24px;cursor:pointer;padding:17px 0;color:var(--blue);font-size:12px;line-height:1.5;list-style:none}.editorial-details summary::-webkit-details-marker{display:none}.editorial-details summary span{font-size:20px;font-weight:400;transition:transform var(--feedback)}.editorial-details[open] summary span{transform:rotate(45deg)}.editorial-details .description{padding:2px 0 20px}.event-gallery{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding-bottom:20px}.event-gallery img{height:auto;aspect-ratio:2/3;object-fit:cover}.supporting-photo{padding-bottom:20px}.supporting-photo img{height:auto;aspect-ratio:auto;object-fit:contain}.project-note{margin-top:22px}.photo-dialog{width:min(1040px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:20px;border:0;background:var(--paper);color:var(--ink);overflow:auto}.photo-dialog::backdrop{background:rgb(16 25 44 / .86)}.photo-dialog-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px}.photo-dialog-toolbar p{font-size:11px;color:var(--muted)}.photo-close{display:flex;align-items:center;gap:24px;padding:10px 12px;background:transparent;border:1px solid var(--line);font-size:12px;color:var(--ink);cursor:pointer;min-height:44px}.photo-close:hover{border-color:var(--blue);color:var(--blue)}.photo-close span{font-size:20px}.photo-dialog-image{height:auto;max-height:calc(100dvh - 175px);width:100%;object-fit:contain}.photo-dialog-caption{font-size:12px;line-height:1.6;color:var(--muted);margin-top:14px}.photo-open{overflow:hidden}.photo-dialog[open]{animation:photo-enter 180ms var(--ease)}@keyframes photo-enter{from{opacity:.7;transform:translateY(6px)}to{opacity:1;transform:none}}
@view-transition{navigation:auto}::view-transition-old(root){animation:page-out 120ms ease both}::view-transition-new(root){animation:page-in 220ms var(--ease) both}@keyframes page-out{to{opacity:0}}@keyframes page-in{from{opacity:.35;transform:translateY(6px)}to{opacity:1;transform:none}}@supports(view-transition-name:site-header){.site-header{view-transition-name:site-header}::view-transition-old(site-header),::view-transition-new(site-header){animation:none}}
@media(max-width:1000px){.hero h1{font-size:clamp(94px,12vw,130px)}.hero-layout{gap:36px}.community{gap:35px}.project-entry{gap:35px}.story h3{font-size:21px}}
@media(max-width:720px){.nav-wrap{min-height:74px;flex-wrap:wrap}.menu-toggle{display:none}.site-nav{display:flex;position:static;flex-basis:100%;padding:0 0 20px;border:0}.nav-ready .menu-toggle{display:block}.nav-ready .site-nav{display:none;position:absolute;top:100%;left:0;right:0;padding:15px var(--gutter) 25px;border-bottom:1px solid var(--line)}.nav-ready .site-nav.is-open{display:flex}.hero-layout{grid-template-columns:1fr;gap:32px}.hero h1{font-size:clamp(94px,23vw,150px);margin-top:24px}.hero-intro{font-size:21px}.hero-photo{max-width:440px;width:100%}.hero-photo img{height:auto;max-height:none;aspect-ratio:2/3}.hero-note{max-width:410px}.home-status{margin-top:30px}.page-hero{padding-top:42px;padding-bottom:38px}.page-hero h1{font-size:clamp(50px,12vw,78px)}.page-hero .intro{font-size:18px}.section{padding-block:58px}.story figure img{height:auto;max-height:none;aspect-ratio:3/4}.photo-stories{gap:36px}.story h3{font-size:26px}.community,.journey-item,.project-entry{grid-template-columns:1fr}.community img{height:auto;max-height:none}.education-portrait{display:grid;grid-template-columns:.85fr 1fr;gap:25px;align-items:center}.education-portrait .body-big{margin-top:0;font-size:27px}.education-portrait figure{width:100%}.journey-item{gap:12px}.recognition{gap:40px}.project-index{display:grid;gap:7px;margin-bottom:36px}.project-entry{gap:30px}.project-art{max-height:none}.project-copy h2{font-size:40px}.photo-expand{opacity:1;transform:none}.photo-dialog{padding:14px}.footer-cta{padding-block:48px}}
@media(max-width:420px){.education-portrait{grid-template-columns:1fr}.education-portrait figure{max-width:270px}.education-portrait .body-big{max-width:300px}.hero-actions{gap:20px}.hero h1{font-size:clamp(86px,25vw,104px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
@media print{.photo-expand,.photo-dialog,.project-index{display:none!important}.brand small{display:none}.page-hero h1{font-size:34pt;color:#111}.section{padding-block:0}}
.related-chapters{padding-bottom:70px}.related-links{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:20px}.related-links a{border-top:1px solid var(--line);padding-top:20px;display:grid;grid-template-columns:1fr auto;gap:10px 20px}.related-links span{grid-column:1;font-size:10px;color:var(--muted)}.related-links strong{grid-column:1;font-size:20px;font-weight:500;letter-spacing:-.025em;line-height:1.3}.related-links i{grid-column:2;grid-row:1/3;font-style:normal;font-size:24px;color:var(--blue);align-self:center}.related-links a:hover strong{text-decoration:underline;text-underline-offset:5px}.related-links a:focus-visible strong{color:var(--blue)}@media(max-width:720px){.related-links{grid-template-columns:1fr;gap:26px}.related-chapters{padding-bottom:52px}}@media print{.related-chapters{display:none}}
.photo-dialog:not([open]){display:none}
/* Focused cleanup: retain typography and layouts while reducing empty space. */
.project-teasers{grid-template-columns:repeat(2,minmax(0,1fr))}.section{padding-block:clamp(44px,5.5vw,72px)}.section-head{margin-bottom:28px}.page-hero{padding-bottom:36px}.event-gallery{display:block;max-width:270px;margin-top:24px}.event-gallery img{aspect-ratio:2/3}.supporting-photo{margin-top:24px}.site-footer{border-top:1px solid var(--line);padding-block:28px}.site-nav .nav-contact-quiet{color:var(--muted);font-weight:400}.site-nav .nav-contact-quiet:hover{color:var(--blue)}.related-chapters{padding-bottom:48px}.project-art.housing{display:none}@media(max-width:720px){.project-teasers{grid-template-columns:1fr}.section{padding-block:40px}.page-hero{padding-block:34px}.section-head{gap:16px;margin-bottom:24px}.hero{padding-bottom:20px}.home-status{margin-top:24px}.photo-stories{gap:30px}.related-chapters{padding-bottom:38px}.site-footer{padding-block:24px}}
.mentorship-pillars{padding-left:20px;margin:18px 0;line-height:1.8}.community-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;line-height:1.5}.contact-options{display:grid;grid-template-columns:1fr 1fr;gap:50px;min-height:320px}.contact-options h2{font-size:32px;margin-bottom:24px}.contact-options .text-link{font-size:16px;min-height:44px;overflow-wrap:anywhere}.copy-email{display:block;background:none;border:1px solid var(--line);font:inherit;font-size:12px;min-height:44px;padding:10px 14px;margin-top:22px;color:var(--ink);cursor:pointer}.copy-email:hover{border-color:var(--blue)}#copy-status{font-size:12px;color:var(--muted);min-height:2em;margin-top:14px}@media(max-width:720px){.contact-options{grid-template-columns:1fr;gap:34px;min-height:0}.community-list{grid-template-columns:1fr}.education-portrait{display:block}.contact-options h2{margin-bottom:16px}}
/* Consistent Experience photo frames retain each complete original image. */
.page-experience main .recognition,.page-experience main .split{gap:40px}.page-experience main .event-gallery{max-width:none}.page-experience main .photo-link img{width:100%;height:440px;aspect-ratio:auto;max-height:none;object-fit:contain;background:#edf0f6}.wildcat-review-controls{padding:12px var(--gutter);display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px;background:var(--soft)}.wildcat-review-controls button{min-height:44px;padding:10px 14px;border:1px solid var(--line);font:inherit;background:var(--paper);color:var(--ink);cursor:pointer}.wildcat-review-controls button[aria-pressed=true]{background:var(--blue);color:white}.wildcat-review-controls a{margin-left:auto;text-decoration:underline}@media(max-width:720px){.page-experience main .photo-link img{height:380px}.wildcat-review-controls{gap:8px}.wildcat-review-controls span{flex-basis:100%}}
.story .eyebrow:empty{display:none}.home-project-cover{display:block;margin-bottom:24px}.home-project-cover .project-art{aspect-ratio:1.6;padding:26px}.home-project-cover .art-name{font-size:clamp(30px,3.4vw,46px);max-width:300px}.home-project-cover .project-art svg{height:62%}.home-project-cover:focus-visible{outline:3px solid var(--blue);outline-offset:5px}@media(max-width:720px){.home-project-cover .art-name{font-size:35px}}
/* Smaller homepage gallery, with deliberate spacing and category labels only. */
.experience-stories{grid-template-columns:repeat(3,minmax(0,230px));justify-content:space-between;gap:clamp(32px,6vw,88px);max-width:960px;margin-inline:auto}.experience-stories .story{min-width:0}.experience-stories .story figure .photo-link img{height:300px;max-height:none;aspect-ratio:auto;object-fit:contain;background:#eef1f9}.experience-stories .story .eyebrow{font-size:9px;line-height:1.6;letter-spacing:.09em;margin-top:18px;color:var(--blue)}@media(max-width:720px){.experience-stories{grid-template-columns:minmax(0,230px);justify-content:center;gap:36px}.experience-stories .story figure .photo-link img{height:285px}.experience-stories .story .eyebrow{margin-top:14px}}
.resume-pdf{display:block;width:100%;height:1050px;border:1px solid var(--line);background:white}.pdf-fallback{font-size:12px;color:var(--muted);margin-top:18px}@media(max-width:720px){.resume-pdf{height:70dvh;min-height:420px}.page-resume .resume-actions{gap:22px}}
/* Approved contextual homepage photograph and descriptive project presentation. */
.hero-photo img{aspect-ratio:4/5;object-fit:contain;background:var(--soft)}
.project-copy>.description{margin-top:18px;line-height:1.75}.project-copy>.project-note{margin-top:24px}.project-note .text-link{font-size:12px;margin-top:12px}.project-teaser h3{margin-bottom:14px}
.hero-photo{position:relative;isolation:isolate}.rapid-photo-layer{position:absolute;inset:0;pointer-events:none;background:var(--soft);overflow:hidden}.hero-photo .rapid-photo-layer img{width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:contain}.project-art{isolation:isolate}.project-art svg{position:absolute;left:6%;bottom:12%;width:88%;height:45%;opacity:1;overflow:visible}.project-art .art-name{max-width:100%;font-size:clamp(30px,3.8vw,52px);margin-bottom:auto;margin-top:22px}.project-art .art-meta:last-child{margin-top:auto;font-size:9px}@media(max-width:720px){.project-art .art-name{font-size:clamp(30px,8vw,48px)}}

/* Mentorship editorial refinement */
.mentorship-section{padding-block:32px 44px}.mentorship-section .community{align-items:start;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(28px,5vw,64px)}.mentorship-section figure{width:100%;max-width:100%;margin:0}.mentorship-section img{width:100%;height:auto;max-height:none;object-fit:contain}.mentorship-section h2{margin-top:12px}.mentorship-section .eyebrow{margin-top:0}@media(max-width:720px){.mentorship-section{padding-block:24px 36px}.mentorship-section .community{grid-template-columns:1fr;gap:24px}.mentorship-section figure{max-width:360px}.mentorship-section h2{font-size:clamp(32px,8vw,44px)}}

/* Preparation hides only animated copy; first approved photo stays visible. */
@media(prefers-reduced-motion:no-preference){html.opening-pending .page-home .hero h1>span,html.opening-pending .page-home .hero-intro,html.opening-pending .page-home .hero-note,html.opening-pending .page-home .hero-actions{visibility:hidden}html.opening-pending .page-home .hero-photo{background:var(--soft) url('assets/photos/tiea-group--960.webp') center/contain no-repeat}html.opening-pending .page-home .hero-photo picture{visibility:hidden}}

.contact-options .contact-scheduling{grid-column:1/-1}.scheduling-status{color:var(--muted);font-size:16px;line-height:1.7;max-width:48ch}
.booking-dialog{width:min(1050px,calc(100vw - 32px));max-width:none;max-height:94dvh;padding:0;border:1px solid var(--line);background:var(--paper);color:var(--ink)}.booking-dialog::backdrop{background:#171d2866}.booking-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid var(--line)}.booking-toolbar h2{font-size:24px}.booking-close{min-height:44px;padding:8px 12px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer}.booking-dialog iframe{display:block;width:100%;height:min(70dvh,740px);border:0}.booking-fallback{padding:12px 20px;font-size:13px}.booking-fallback a{color:var(--blue);text-decoration:underline}.booking-open{overflow:hidden}@media(max-width:720px){.booking-dialog{width:calc(100vw - 16px);max-height:96dvh}.booking-toolbar{padding:8px 12px}.booking-toolbar h2{font-size:20px}.booking-dialog iframe{height:72dvh}.booking-fallback{padding:10px 12px}}

/* Professional career index. Details remain in the original PDF. */
.career-section .section-head{align-items:center}
.career-section .section-head h2{font-size:clamp(34px,4vw,48px)}
.career-timeline{list-style:none;margin:0;padding:0;border-left:1px solid var(--line)}
.career-stop{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 40px;margin-left:28px;padding:28px 0 30px;border-top:1px solid var(--line)}
.career-stop::before{content:"";position:absolute;left:-32px;top:36px;width:7px;height:2px;background:var(--blue)}
.career-stop:last-child{padding-bottom:0}
.career-position h3{font-size:clamp(24px,2.4vw,31px);font-weight:600;line-height:1.18;letter-spacing:-.035em}
.career-position p{font-size:15px;line-height:1.5;color:var(--muted);margin-top:9px}
.career-dates{font-size:12px;line-height:1.6;color:var(--blue);font-variant-numeric:tabular-nums;padding-top:5px;white-space:nowrap}
.resume-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px}
.resume-heading .resume-actions{margin:0;gap:24px;flex:none}
@media(max-width:999px){.resume-heading{display:block}.resume-heading .resume-actions{margin-top:25px}.career-stop{grid-template-columns:1fr;gap:10px}.career-dates{padding-top:0}}
@media(max-width:720px){.career-stop{margin-left:20px;padding-block:24px}.career-stop::before{left:-24px;top:32px}.career-stop:last-child{padding-bottom:0}.career-position h3{font-size:25px}.career-position p{font-size:14px}.career-dates{white-space:normal;font-size:12px}.career-section .section-head{align-items:flex-start}.resume-heading .resume-actions{gap:22px}}

.project-copy>.workbook-link{margin-top:20px;min-height:44px;align-items:center;padding-block:8px}.workbook-link[aria-disabled="true"]{color:var(--muted);border-bottom-color:transparent;cursor:default}

.photo-link img{background-color:var(--soft);color:transparent}.photo-link img.image-failed{color:var(--ink)}
::view-transition-old(root){animation-duration:60ms}::view-transition-new(root){animation-duration:100ms}
.booking-dialog{height:min(850px,94dvh);overflow:hidden}.booking-dialog[open]{display:flex;flex-direction:column}.booking-toolbar{flex:none}.booking-detail{font-size:12px;color:var(--muted);margin-top:5px}.booking-calendar{flex:1;min-height:0;width:100%;overflow:auto;overscroll-behavior:contain}.booking-calendar iframe{height:100%;min-height:500px;width:100%;display:block;border:0}.booking-loading{padding:12px 20px;font-size:13px;color:var(--muted);flex:none}.booking-fallback{flex:none;margin:0;border-top:1px solid var(--line)}@media(max-width:720px){.booking-dialog{height:96dvh}.booking-calendar iframe{height:100%;min-height:420px}.booking-toolbar h2{font-size:20px}}

/* Compact rotations within the CDI Immerse entry. */
.career-rotations{grid-column:1/-1;list-style:none;margin:0;padding:0 0 0 14px;border-left:1px solid var(--line);max-width:650px}
.career-rotations li{display:flex;justify-content:space-between;align-items:baseline;gap:6px 24px;font-size:13px;line-height:1.5;padding-block:5px;color:var(--muted)}
.career-rotations .rotation-dates{font-size:11px;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}
@media(max-width:720px){.career-rotations{margin-top:4px;padding-left:12px}.career-rotations li{display:flex;flex-direction:column;gap:2px;padding-block:6px}.career-rotations .rotation-dates{white-space:normal}}

/* Homepage story uses the existing editorial columns. */
.home-story{border-top:1px solid var(--line)}.home-story .eyebrow{margin-bottom:20px}.home-story h2{font-size:clamp(34px,4vw,52px)}.home-story .split{align-items:start}.home-story .hero-actions{margin-top:25px}

/* Homepage career digest: a current chapter beside a compact internship index. */
.home-experience{border-top:1px solid var(--line)}.home-experience .section-head{align-items:center;margin-bottom:38px}.home-experience h2{font-size:clamp(36px,4vw,52px)}.experience-brief{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(36px,6vw,80px)}.experience-current,.experience-earlier{min-width:0}.experience-current>h3{font-size:clamp(25px,2.7vw,34px);line-height:1.15;margin-top:23px;max-width:390px}.current-role{font-size:15px;line-height:1.6;color:var(--muted);margin-top:12px;max-width:350px}.rotation-label{color:var(--muted);font-size:9px;margin-top:32px}.rotation-index,.internship-index{list-style:none;padding:0;margin:16px 0 0}.rotation-index li{display:flex;align-items:baseline;gap:12px;padding-block:12px;border-bottom:1px solid var(--line);font-size:13px;line-height:1.5}.rotation-number{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.rotation-index .is-current{color:var(--blue)}.rotation-now{font-size:9px;margin-left:auto}.experience-earlier{border-left:1px solid var(--line);padding-left:clamp(28px,4vw,52px)}.internship-index{margin-top:10px}.internship-index li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:18px;padding-block:18px;border-bottom:1px solid var(--line)}.internship-index h3{font-size:19px;line-height:1.25;letter-spacing:-.025em;font-weight:600}.internship-index p{font-size:12px;color:var(--muted);line-height:1.5;margin-top:5px}.index-years{font-size:10px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
@media(max-width:720px){.home-experience .section-head{align-items:flex-start;margin-bottom:30px}.experience-brief{grid-template-columns:1fr;gap:38px}.experience-earlier{border-left:0;border-top:1px solid var(--line);padding:30px 0 0}.experience-current>h3{max-width:340px}.internship-index li{gap:12px}.internship-index h3{font-size:18px}.rotation-index li{flex-wrap:wrap}.rotation-now{margin-left:0}}

/* Keeneland remains a standalone photograph with context in its viewer. */
.keeneland-photo{max-width:960px;margin-inline:auto}.keeneland-photo .photo-link img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain}

/* Jonabell: preserve the full portrait and keep context in the photo dialog. */
.jonabell-photo { max-width: 480px; margin: 0 auto; }
.jonabell-photo img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.jonabell-photo figcaption { margin-top: 16px; }

/* Two work moments: landscape and portrait retain their full compositions. */
.work-photos .section-head h2 { font-size: clamp(34px, 4vw, 48px); }
.work-photo-pair { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 80px); align-items: center; max-width: 960px; margin-inline: auto; }
.work-photo-pair .story { min-width: 0; }
.page-experience main .work-photo-pair .photo-link img { height: 360px; width: 100%; object-fit: contain; background: transparent; }
.work-photo-pair .eyebrow { font-size: 10px; line-height: 1.6; margin-top: 18px; }
@media (max-width: 720px) {
  .work-photo-pair { grid-template-columns: minmax(0, 1fr); gap: 42px; }
  .page-experience main .work-photo-pair .photo-link img { height: auto; max-height: 420px; }
}

/* Photo labels stay brief and blue; dates and context belong to the dialog. */
main figure > figcaption, .page-experience main .story figure > figcaption { color: var(--blue); font-size: 10px; line-height: 1.6; letter-spacing: .09em; text-transform: uppercase; font-weight: 700; margin-top: 18px; }

/* Four recognition photos share the same modest frames and blue labels. */
.experience-stories { grid-template-columns: repeat(4, minmax(0, 230px)); gap: 32px; max-width: 1100px; }
@media (min-width: 721px) and (max-width: 1000px) { .experience-stories { grid-template-columns: repeat(2, minmax(0, 230px)); justify-content: space-evenly; gap: 40px; } }
@media (max-width: 720px) { .experience-stories { grid-template-columns: minmax(0, 230px); justify-content: center; gap: 36px; } }

.page-experience .page-hero h1 { font-size: clamp(52px, 6vw, 88px); min-width: 0; line-height: 1.04; }

/* Consolidated personal index and selected career photographs. */
.home-graduation { max-width: 180px; margin-top: 28px; }
.home-graduation img { width: 100%; height: auto; max-height: 250px; object-fit: contain; }
.page-home .home-story .split { grid-template-columns: .8fr 1.2fr; align-items: start; }
.page-home .mentorship-section .community { grid-template-columns: minmax(0, 240px) minmax(0, 1fr); }
.personal-speaking-link { display: inline-block; margin-top: 22px; }
.markets-preview { border-top: 1px solid var(--line); }
.markets-preview-intro { max-width: 720px; font-size: 16px; color: var(--muted); }
.research-preview-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-top: 32px; }
.research-preview-pair article { border-top: 1px solid var(--line); padding-top: 20px; }
.research-preview-pair h3 { font-size: 27px; line-height: 1.2; }
.research-preview-pair h3 a:hover { color: var(--blue); }
.research-preview-pair p { margin-top: 12px; max-width: 450px; color: var(--muted); font-size: 14px; }
.career-rotations { max-width: none; }
.career-rotations li { display: block; padding-block: 9px; }
.rotation-summary { display: flex; justify-content: space-between; gap: 10px 24px; width: 100%; }
.career-rotations .rotation-with-photo { display: grid; grid-template-columns: minmax(0, 1fr) 180px; align-items: start; gap: 32px; padding-block: 18px; }
.rotation-photo { margin: 0; }
.page-experience main .rotation-photo .photo-link img { width: 100%; height: 210px; object-fit: contain; background: transparent; }
main .rotation-photo > figcaption { font-size: 9px; margin-top: 12px; }
.career-stop-with-photo { grid-template-columns: minmax(0, 1fr) 280px; align-items: start; }
.career-entry-copy { min-width: 0; }
.career-entry-copy .career-dates { margin-top: 12px; }
.page-experience main .internship-photo .photo-link img { width: 100%; height: auto; max-height: 210px; object-fit: contain; background: transparent; }
.internship-photo { margin: 0; }
main .internship-photo > figcaption { font-size: 9px; margin-top: 12px; }
@media (max-width: 1000px) and (min-width: 721px) {
 .career-stop-with-photo { grid-template-columns: minmax(0, 1fr) 240px; }
 .rotation-summary { flex-direction: column; gap: 4px; }
}
@media (max-width: 720px) {
 .page-home .home-story .split, .page-home .mentorship-section .community, .research-preview-pair { grid-template-columns: minmax(0, 1fr); }
 .home-graduation { max-width: 150px; margin-top: 24px; }
 .page-home .mentorship-section figure { max-width: 240px; }
 .research-preview-pair { gap: 28px; }
 .career-stop-with-photo { grid-template-columns: minmax(0, 1fr); gap: 24px; }
 .career-rotations .rotation-with-photo { grid-template-columns: minmax(0, 1fr); gap: 20px; }
 .rotation-summary { flex-direction: column; gap: 3px; }
 .rotation-photo { width: 160px; }
 .internship-photo { max-width: 320px; }
 .page-experience main .rotation-photo .photo-link img { height: auto; max-height: 220px; }
}

.rotation-summary > span:first-child { min-width: 0; overflow-wrap: break-word; }
.rotation-summary .rotation-dates { flex-shrink: 0; }
.rotation-index .rotation-number { flex: none; }

/* Small, deliberate interactions within the existing editorial style. */
.site-nav a:not(.nav-contact), .text-link, .research-preview-pair h3 a {
 background-image: linear-gradient(var(--blue), var(--blue));
 background-position: left bottom;
 background-repeat: no-repeat;
 background-size: 0 1px;
 transition: background-size 220ms ease, color 180ms ease;
}
.site-nav a:not(.nav-contact):hover, .site-nav a:not(.nav-contact):focus-visible,
.site-nav a[aria-current=page], .text-link:hover, .text-link:focus-visible,
.research-preview-pair h3 a:hover, .research-preview-pair h3 a:focus-visible { background-size: 100% 1px; }
.site-nav a:not(.nav-contact):hover { border-bottom-color: transparent; }
.text-link { border-bottom-color: transparent; }
.text-link:hover { text-decoration: none; }
.photo-link { transition: transform 240ms ease, box-shadow 240ms ease; }
.photo-link:hover, .photo-link:focus-visible { transform: translateY(-3px); box-shadow: 0 0 0 2px rgb(40 86 216 / .28), 0 10px 24px rgb(23 29 40 / .08); }
.rotation-index li.motion-ready, .internship-index li.motion-ready { transition: opacity 580ms ease var(--reveal-delay), transform 580ms ease var(--reveal-delay); }
.rotation-index li.motion-ready:not(.motion-visible), .internship-index li.motion-ready:not(.motion-visible) { opacity: 0; transform: translateY(12px); }
.rotation-index { position: relative; }
.rotation-index::before { content: ''; position: absolute; top: 22px; bottom: 22px; left: 5px; width: 1px; background: var(--blue); opacity: .25; transform: scaleY(0); transform-origin: top; transition: transform 650ms ease; }
.home-experience:hover .rotation-index::before, .home-experience:focus-within .rotation-index::before { transform: scaleY(1); }
.rotation-number { position: relative; z-index: 1; background: var(--paper); padding-block: 3px; }
.project-art { transition: box-shadow 280ms ease; outline-offset: 6px; }
.project-art:hover, .project-art:focus-visible { box-shadow: 0 0 32px rgb(40 86 216 / .15); }
.project-art:focus-visible { outline: 2px solid var(--blue); }
.project-art .art-trace { stroke-dasharray: 1; stroke-dashoffset: 0; }
.project-art.motion-ready .art-trace { transition: stroke-dashoffset 1300ms cubic-bezier(.2,.65,.3,1); }
.project-art.motion-ready:not(.motion-visible) .art-trace { stroke-dashoffset: 1; }
.project-art.motion-visible:hover .art-trace, .project-art.motion-visible:focus-visible .art-trace { animation: trace-art 1200ms cubic-bezier(.2,.65,.3,1) both; }
@keyframes trace-art { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
.project-question { margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--line); font-size: 15px; }
.project-question .eyebrow { display: block; margin-bottom: 9px; font-size: 9px; }
@media (prefers-reduced-motion: reduce) {
 .site-nav a, .text-link, .research-preview-pair h3 a, .photo-link, .rotation-index::before,
 .rotation-index li.motion-ready, .internship-index li.motion-ready, .project-art, .project-art .art-trace { transition: none; animation: none !important; }
 .photo-link:hover, .photo-link:focus-visible, .rotation-index li.motion-ready, .internship-index li.motion-ready { transform: none; opacity: 1; }
 .project-art.motion-ready:not(.motion-visible) .art-trace { stroke-dashoffset: 0; }
}

/* A deliberate line break gives the Career headline room to breathe. */
.page-experience .page-hero .resume-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; }
.page-experience .page-hero h1 { font-size: clamp(48px, 5.6vw, 76px); line-height: 1.03; letter-spacing: -.055em; }
.page-experience .page-hero h1 > span { display: block; }
.page-experience .page-hero .resume-actions { margin: 0 0 5px; flex: none; }
@media (max-width: 720px) {
 .page-experience .page-hero .resume-heading { align-items: start; flex-direction: column; gap: 26px; }
 .page-experience .page-hero h1 { font-size: clamp(40px, 10.2vw, 60px); }
}

/* Project artwork becomes an explorable illustration on touch and keyboard. */
button.project-art { width: 100%; border: 1px solid transparent; border-radius: 0; text-align: left; font: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; transform: none; transition: box-shadow 280ms ease, border-color 280ms ease; touch-action: manipulation; }
button.project-art::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at var(--light-x, 50%) var(--light-y, 50%), rgb(255 255 255 / .65), transparent 65%); opacity: 0; transition: opacity 280ms ease; }
button.project-art:hover::before, button.project-art:focus-visible::before, button.project-art.art-engaged::before { opacity: 1; }
button.project-art.art-engaged { border-color: rgb(40 86 216 / .3); }
button.project-art svg { transform: perspective(1000px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)); transition: transform 240ms ease-out, bottom 650ms cubic-bezier(.2,.7,.2,1), height 650ms cubic-bezier(.2,.7,.2,1), opacity 400ms ease; pointer-events: none; }
button.project-art .art-name { pointer-events: none; }
button.project-art .art-footer { display: flex; flex-direction: column; gap: 9px; margin-top: auto; z-index: 2; }
button.project-art .art-footer .art-meta { font-size: 10px; opacity: 1; }
.art-hint { font-size: 12px; font-weight: 600; letter-spacing: -.01em; }
.art-details { position: absolute; left: 35px; right: 35px; bottom: 19%; display: flex; gap: 6px 12px; flex-wrap: wrap; pointer-events: none; }
.art-details > span { font-size: 12px; font-weight: 500; line-height: 1.4; padding: 5px 0; border-bottom: 1px solid rgb(40 86 216 / .3); opacity: 0; transition: opacity 220ms ease; transition-delay: calc(var(--chip) * 55ms); }
.art-engaged .art-details > span { opacity: 1; }
button.project-art.art-engaged svg { bottom: 38%; height: 30%; }
button.project-art .network-route { stroke-dasharray: 1; stroke-dashoffset: 1; opacity: 0; transition: stroke-dashoffset 1000ms cubic-bezier(.2,.7,.2,1), opacity 200ms ease; }
button.project-art.art-engaged .network-route { stroke-dashoffset: 0; opacity: 1; }
button.project-art.career.art-engaged .art-trace { opacity: .35; }
button.project-art.motion-visible:hover .art-trace, button.project-art.motion-visible:focus-visible .art-trace { animation: none; }
button.project-art.market.art-engaged .art-trace { animation: trace-art 1100ms cubic-bezier(.2,.65,.3,1) both; }
@media (max-width: 1000px) { .art-details { left: 25px; right: 25px; bottom: 22%; } button.project-art.art-engaged svg { bottom: 42%; height: 28%; } }
@media (max-width: 720px) { button.project-art { aspect-ratio: 1.05; } button.project-art .art-name { font-size: clamp(30px, 8vw, 44px); } .art-details { bottom: 22%; } button.project-art.art-engaged svg { bottom: 42%; height: 28%; } }

/* A tap on a photograph opens it with a brief editorial reveal. */
.photo-dialog[open] .photo-dialog-image { animation: photo-focus 420ms cubic-bezier(.2,.7,.2,1) both; }
.photo-dialog[open] .photo-dialog-caption { animation: photo-caption 350ms ease 100ms both; }
@keyframes photo-focus { from { opacity: .2; transform: translateY(18px) scale(.965); clip-path: inset(4% 2%); } to { opacity: 1; transform: none; clip-path: inset(0); } }
@keyframes photo-caption { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
 button.project-art, button.project-art::before, button.project-art svg, button.project-art .network-route, .art-details > span { transition: none; transform: none; }
 button.project-art .art-trace, .photo-dialog[open] .photo-dialog-image, .photo-dialog[open] .photo-dialog-caption { animation: none !important; }
}

.project-conversation { margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--line); }
.project-conversation p { font-size: 13px; line-height: 1.6; color: var(--muted); max-width: 360px; }
.project-conversation .text-link { margin-top: 14px; }

/* Live public editions retain their own Google Sheets layout and navigation. */
.project-entry > * { min-width: 0; }
.project-public-note { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.project-public-note > p + p { margin-top: 10px; color: var(--muted); font-size: 15px; line-height: 1.65; }
.workbook-panel { grid-column: 1 / -1; min-width: 0; border: 1px solid var(--line); background: white; }
.workbook-toolbar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px 24px; padding: 18px 22px; border-bottom: 1px solid var(--line); background: var(--paper); }
.workbook-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 26px; }
.workbook-actions .text-link { min-height: 44px; font-size: 14px; }
.workbook-expand { border: 0; padding: 0; background: none; color: var(--ink); cursor: pointer; }
.workbook-scroll { overflow: auto; overscroll-behavior-x: contain; background: white; }
.workbook-scroll:focus-visible { outline: 3px solid var(--blue); outline-offset: -3px; }
.workbook-frame { display: block; width: 100%; min-width: 1080px; height: 480px; height: clamp(380px, 52vh, 540px); border: 0; }
.workbook-help { padding: 16px 22px; border-top: 1px solid var(--line); background: var(--paper); font-size: 14px; color: var(--muted); line-height: 1.65; }
.workbook-sheet-picker, .workbook-mobile-help { display: none; }
.workbook-open { overflow: hidden; }
.workbook-open .site-header { visibility: hidden; }
.workbook-panel.is-expanded { position: fixed; inset: 12px; z-index: 100; display: flex; flex-direction: column; margin: 0; box-shadow: 0 0 0 20px var(--paper); }
.workbook-panel.is-expanded .workbook-scroll { flex: 1; min-height: 0; }
.workbook-panel.is-expanded .workbook-frame { height: 100%; }
@media (max-width: 720px) {
 .workbook-toolbar { align-items: flex-start; padding: 14px 16px; gap: 8px; }
 .workbook-toolbar { display: grid; grid-template-columns: minmax(0, 1fr); }
 .workbook-actions { display: grid; grid-template-columns: auto 1fr; gap: 8px 14px; }
 .workbook-actions .text-link { font-size: 14px; justify-content: center; border: 1px solid var(--line); padding: 10px 8px; gap: 6px; background: white; }
 .workbook-desktop-help { display: none; }
 .workbook-mobile-help { display: inline; }
 .workbook-sheet-picker { display: grid; gap: 7px; width: 100%; font-size: 13px; font-weight: 600; }
 .workbook-sheet-picker select { width: 100%; min-width: 0; min-height: 46px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 0; background: white; color: var(--ink); font: inherit; font-size: 16px; }
 .workbook-scroll { overflow: hidden; }
 .workbook-frame { min-width: 0; width: 100%; height: clamp(320px, 50svh, 460px); }
 .workbook-panel.is-expanded { inset: env(safe-area-inset-top, 0px) 0 env(safe-area-inset-bottom, 0px); height: 100dvh; box-shadow: none; }
 .workbook-panel.is-expanded .workbook-actions { grid-template-columns: 1fr; }
 .workbook-panel.is-expanded .workbook-help { display: none; }
 .workbook-panel.is-expanded .workbook-scroll { min-height: 160px; }
 .workbook-panel.is-expanded .workbook-toolbar > .eyebrow { display: none; }
 .workbook-panel.is-expanded .workbook-frame { height: 100%; }
 .workbook-help { padding: 14px 16px; }
}

/* One title per project, with a more compact visual alongside its introduction. */
.page-projects .project-entry { grid-template-columns: .85fr 1.15fr; gap: clamp(28px, 4vw, 56px); padding-block: 46px; }
.page-projects .project-entry:first-child { padding-top: 0; }
.page-projects button.project-art { aspect-ratio: 1.35; min-height: 300px; padding: 28px; }
.page-projects button.project-art svg { bottom: 26%; height: 56%; }
.page-projects button.project-art.art-engaged svg { bottom: 50%; height: 32%; }
.page-projects .art-details { left: 28px; right: 28px; bottom: 28%; }
.page-projects .project-copy .why { font-size: 18px; margin: 18px 0 12px; }
.page-projects .project-conversation { margin-top: 20px; padding-top: 16px; }
.site-nav .nav-resume-quiet { color: var(--muted); font-weight: 400; white-space: nowrap; }
.site-nav .nav-resume-quiet:hover, .site-nav .nav-resume-quiet:focus-visible { color: var(--blue); }
.rotation-role { min-width: 0; }
.rotation-organization { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; font-weight: 400; line-height: 1.5; }
@media (min-width: 721px) and (max-width: 900px) {
 .site-nav { gap: 16px; }
 .site-nav a { font-size: 12px; }
 .brand { font-size: 13px; }
 .nav-wrap { gap: 16px; }
}
@media (max-width: 720px) {
 .page-projects .project-entry { grid-template-columns: minmax(0, 1fr); gap: 26px; padding-block: 36px; }
 .page-projects button.project-art { aspect-ratio: 1.2; padding: 24px; }
 .page-projects .art-details { left: 24px; right: 24px; }
}
/* Readable supporting copy, preserving the editorial scale. */
.research-preview-pair p,.project-conversation p,.project-copy .description,.rotation-role,.internship-index p,.career-position p{font-size:16px;line-height:1.65}
.rotation-organization,.rotation-dates,.career-dates,.index-years,.rotation-now{font-size:14px;line-height:1.6}
main figure > figcaption,.page-experience main .story figure > figcaption,.experience-stories .story .eyebrow,.work-photo-pair .eyebrow{font-size:13px;line-height:1.6;letter-spacing:.045em}
.photo-dialog-caption{font-size:16px;line-height:1.65;max-width:72ch}
.photo-expand,.art-hint,.art-details > span,button.project-art .art-meta,button.project-art .art-footer .art-meta{font-size:14px;line-height:1.5}
.editorial-details summary,.project-index a{font-size:16px;line-height:1.6}

/* Homepage research previews enter once, with flat, crisp text. */
.markets-preview .project-preview-ready{opacity:0;transition:opacity 540ms var(--ease);transition-delay:var(--preview-delay,0ms)}
.markets-preview .project-preview-visible{opacity:1}
.markets-preview:focus-within .project-preview-ready{opacity:1;transition-delay:0ms}
@media(prefers-reduced-motion:reduce){.markets-preview .project-preview-ready{opacity:1;transition:none}}
/* Home shares the same interactive illustrations as Markets & Networks. */
.research-preview-pair article{min-width:0}
.page-home .research-preview-pair .project-art{margin-top:24px;aspect-ratio:1.35;min-height:300px;padding:28px}
.page-home .research-preview-pair .project-art svg{bottom:26%;height:56%}
.page-home .research-preview-pair .project-art.art-engaged svg{bottom:50%;height:32%}
.page-home .research-preview-pair .art-details{left:28px;right:28px;bottom:28%}
/* On phones, expanded artwork uses document flow so labels never collide. */
@media(max-width:720px){
 #main-content button.project-art{aspect-ratio:auto;min-height:300px;padding:24px;justify-content:flex-start;gap:0}
 #main-content button.project-art svg,#main-content button.project-art.art-engaged svg{position:static;inset:auto;width:100%;height:148px;flex:none;margin-top:18px;transform:none;transition:opacity 240ms ease}
 #main-content button.project-art .art-details{position:static;inset:auto;display:none;margin-top:18px;width:100%;gap:0}
 #main-content button.project-art.art-engaged .art-details{display:grid;grid-template-columns:minmax(0,1fr)}
 #main-content button.project-art .art-details > span{font-size:15px;line-height:1.5;padding:9px 0;overflow-wrap:anywhere}
 #main-content button.project-art .art-footer{position:static;margin-top:24px;gap:12px}
 #main-content button.project-art .art-footer .art-meta{display:none}
 #main-content button.project-art .art-hint{font-size:14px;line-height:1.6;min-height:28px}
}

/* Two still photographs, aligned with the editorial grid. */
.career-photo-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,48px);align-items:start}
.career-photo-pair figure{min-width:0}
.page-experience main .career-photo-pair .photo-link img{width:100%;height:400px;max-height:none;aspect-ratio:auto;object-fit:contain;background:var(--soft)}
.career-photo-pair figcaption{margin-top:16px}
@media(max-width:600px){.career-photo-pair{grid-template-columns:minmax(0,1fr);gap:32px}.page-experience main .career-photo-pair .photo-link img{height:auto;max-height:500px}}

@media (max-width: 720px), (hover: none) and (pointer: coarse) { .photo-expand { display: none !important; } }

/* A fine, upward-curving editorial tick, matching the approved reference. */
.editorial-direction { display: inline-flex; width: 36px; height: 22px; flex: 0 0 36px; vertical-align: middle; color: var(--blue); transition: translate 160ms ease; }
.editorial-direction > svg { display: block; width: 100%; height: 100%; position: static; opacity: 1; fill: none; stroke: currentColor; stroke-width: 1.45; stroke-linecap: round; stroke-linejoin: round; }
.editorial-direction[data-direction="down"] { width: 22px; height: 32px; flex-basis: 22px; }
.editorial-direction[data-direction="expand"] { width: 22px; height: 22px; flex-basis: 22px; }
a:hover .editorial-direction[data-direction="out"] { translate: 2px -1px; }
a:hover .editorial-direction[data-direction="down"] { translate: 0 2px; }
@media (prefers-reduced-motion: reduce) { .editorial-direction { transition: none; translate: none !important; } }

/* Shared control geometry keeps labels and custom marks on the same centerline. */
.workbook-actions { align-items: center; }
@media (min-width: 721px) {
 .workbook-toolbar { display: grid; grid-template-columns: minmax(180px, 1fr) auto; gap: 12px 24px; padding-block: 14px; }
 .workbook-actions { display: grid; grid-template-columns: auto; gap: 0; }
 .workbook-actions .text-link { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin: 0; padding: 0; border: 0; line-height: 1; white-space: nowrap; }
 .workbook-actions .editorial-direction { align-self: center; }
}
@media (min-width: 721px) and (max-width: 1050px) {
 .workbook-toolbar { grid-template-columns: minmax(0, 1fr); gap: 4px; }
 .workbook-actions { justify-self: start; }
}

/* Use the space released by the removed artwork labels. */
.page-home .research-preview-pair button.project-art.market > svg,
.page-projects button.project-art.market > svg { left: 3%; width: 94%; bottom: 12%; height: 72%; }
.page-home .research-preview-pair button.project-art.market.art-engaged > svg,
.page-projects button.project-art.market.art-engaged > svg { bottom: 44%; height: 42%; }
@media (max-width: 720px) {
 #main-content button.project-art.market > svg,
 #main-content button.project-art.market.art-engaged > svg { position: static; inset: auto; width: 100%; height: 184px; margin-top: 12px; }
}

/* One action, with compact persistent controls in the expanded phone viewer. */
.workbook-toolbar { flex-shrink: 0; }
@media (max-width: 720px) {
 .workbook-actions { grid-template-columns: minmax(0, 1fr); }
 .workbook-panel.is-expanded { inset: 0; height: 100dvh; padding: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px) env(safe-area-inset-left, 0px); }
 .workbook-panel.is-expanded .workbook-toolbar { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding: 10px 12px; align-items: center; }
 .workbook-panel.is-expanded .workbook-sheet-picker { grid-column: 1; grid-row: 1; font-size: 0; gap: 0; }
 .workbook-panel.is-expanded .workbook-sheet-picker select { min-height: 44px; }
 .workbook-panel.is-expanded .workbook-actions { grid-column: 2; grid-row: 1; }
 .workbook-panel.is-expanded .workbook-actions .text-link { padding-inline: 12px; }
}

/* Keep sheet navigation available after a phone is rotated. */
.workbook-panel.workbook-sheet-view .workbook-sheet-picker { display: grid; }
.workbook-panel.workbook-sheet-view .workbook-frame { min-width: 0; }
.workbook-panel.workbook-sheet-view .workbook-desktop-help { display: none; }
.workbook-panel.workbook-sheet-view .workbook-mobile-help { display: inline; }
.workbook-panel.is-expanded.workbook-sheet-view .workbook-toolbar { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding: 10px 12px; align-items: center; }
.workbook-panel.is-expanded.workbook-sheet-view .workbook-toolbar > .eyebrow { display: none; }
.workbook-panel.is-expanded.workbook-sheet-view .workbook-sheet-picker { grid-column: 1; grid-row: 1; font-size: 0; gap: 0; }
.workbook-panel.is-expanded.workbook-sheet-view .workbook-sheet-picker select { min-height: 44px; }
.workbook-panel.is-expanded.workbook-sheet-view .workbook-actions { grid-column: 2; grid-row: 1; }
.workbook-panel.is-expanded.workbook-sheet-view .workbook-help { display: none; }

/* A curved editorial return stroke, with a quiet baseline. */
.back-to-top { position: fixed; right: max(18px, env(safe-area-inset-right)); bottom: max(18px, env(safe-area-inset-bottom)); z-index: 35; width: 48px; height: 48px; padding: 8px; display: grid; place-items: center; color: var(--blue); background: var(--paper); border: 1px solid var(--line); border-radius: 0; cursor: pointer; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 220ms ease, visibility 220ms; }
.back-to-top.is-visible { opacity: 1; visibility: visible; pointer-events: auto; }
.back-to-top svg { width: 28px; height: 32px; transition: transform 180ms ease; }
@media (hover: hover) { .back-to-top:hover { border-color: var(--blue); } .back-to-top:hover svg { transform: translateY(-3px); } }
.back-to-top:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
.site-footer { padding-bottom: 88px; }
body:has(.workbook-panel.is-expanded) .back-to-top, body:has(dialog[open]) .back-to-top, body:has(.site-nav.is-open) .back-to-top { opacity: 0; visibility: hidden; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .back-to-top, .back-to-top svg { transition: none; } .back-to-top:hover svg { transform: none; } }

/* Market research: history, observation, then a fan of possible scenarios. */
#main-content button.project-art:is(.market,.career) { display:flex; flex-direction:column; min-height:300px; aspect-ratio:1.35; padding:28px; overflow:hidden; }
#main-content button.project-art:is(.market,.career) > svg { position:static; inset:auto; flex:1; min-height:0; width:100%; height:auto; margin:16px 0 12px; transform:none; transition:none; }
#main-content button.project-art:is(.market,.career) .art-details { position:static; display:flex; flex-wrap:wrap; gap:4px 16px; width:100%; margin:0; }
#main-content button.project-art:is(.market,.career) .art-details > span { opacity:1; font-size:12px; padding:4px 0; line-height:1.5; }
button.project-art:is(.market,.career)::before { display:none; }
.market-history,.market-branch { stroke-dasharray:1; stroke-dashoffset:0; }
.branch-mid { opacity:.6; } .branch-low { opacity:.35; }
.market-playing .market-history { animation:market-draw 1.25s cubic-bezier(.25,.6,.4,1) both; }
.market-playing .market-point { animation:market-mark .4s ease both; }
.market-playing .point-one { animation-delay:.35s; } .market-playing .point-two { animation-delay:.7s; } .market-playing .point-three { animation-delay:1.15s; }
.market-playing .market-branch { animation:market-draw 1.1s ease both; animation-delay:1.35s; }
.market-playing .branch-mid { animation-delay:1.5s; } .market-playing .branch-low { animation-delay:1.65s; }
.market-playing .market-envelope { animation:market-mark 1s ease 1.3s both; }
.market-playing .market-ring { transform-origin:293px 122px; animation:market-observe 1.2s ease 1.1s both; }
.market-playing .market-end { animation:market-mark .4s ease 2.4s both; }
@keyframes market-draw { from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }
@keyframes market-mark { from { opacity:0; } to { opacity:1; } }
@keyframes market-observe { from { opacity:0; transform:scale(.5); } 45% { opacity:1; } to { opacity:.55; transform:scale(1.2); } }
@media(max-width:720px) {
 #main-content button.project-art:is(.market,.career) { aspect-ratio:auto; min-height:0; padding:22px; }
 #main-content button.project-art:is(.market,.career) > svg { flex:none; height:auto; aspect-ratio:460 / 210; margin:24px 0 20px; }
 #main-content button.project-art:is(.market,.career) .art-details { gap:4px 12px; }
}
@media(prefers-reduced-motion:reduce) { .market-playing svg * { animation:none!important; } }

/* Connections settle into shared context before a route is traced. */
button.project-art.career .network-route { opacity:1; stroke-dashoffset:0; }
.network-links path { stroke-dasharray:1; stroke-dashoffset:0; }
.network-playing .network-node,.network-playing .network-hub { animation:network-appear .45s ease both; }
.network-playing .node-one { animation-delay:.1s; } .network-playing .node-two { animation-delay:.25s; }
.network-playing .node-three { animation-delay:.4s; } .network-playing .node-four { animation-delay:.55s; }
.network-playing .node-five { animation-delay:.7s; } .network-playing .node-six { animation-delay:.85s; }
.network-playing .network-links path { animation:market-draw 1.1s ease .65s both; }
.network-playing .network-context { animation:market-mark .6s ease 1.4s both; }
.network-playing .network-route { animation:market-draw 1.3s cubic-bezier(.3,.6,.4,1) 1.5s both; }
.network-playing .network-arrival { transform-origin:440px 130px; animation:network-arrive .8s ease 2.65s both; }
@keyframes network-appear { from { opacity:0; } to { opacity:1; } }
@keyframes network-arrive { from { opacity:0; transform:scale(.6); } 50% { opacity:1; } to { opacity:.55; transform:scale(1.15); } }
@media(prefers-reduced-motion:reduce) { .network-playing svg * { animation:none!important; } }
