@font-face {
  font-family: 'Montserrat';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/montserrat-italic-400.ttf) format('truetype');
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/montserrat-normal-400.ttf) format('truetype');
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/montserrat-normal-500.ttf) format('truetype');
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/montserrat-normal-700.ttf) format('truetype');
}
:root{--navy:#DFC5A2;--ink:#49372B;--lime:#B65F38;--paper:#FAF5EB;--muted:#665344;--line:#E2D6C4;--wash:#F1E8DA}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Montserrat',Arial,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,summary,a{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:3px solid #626B36;outline-offset:7px}a:hover{text-decoration:underline;text-underline-offset:5px}.skip{position:fixed;left:15px;top:-100px;z-index:100;background:var(--lime);padding:10px}.skip:focus{top:10px}header{height:92px;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;background:rgba(250,245,235,.97);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.monogram{font-size:32px;letter-spacing:-2px;font-weight:700}.monogram span{color:#626B36}nav{display:flex;gap:30px;font-size:14px}nav a{padding:10px 0;position:relative}nav a.active:after{content:'';position:absolute;height:3px;left:0;right:0;bottom:0;background:var(--ink)}.resume-link{font-size:14px;border-bottom:1px solid var(--ink);padding-bottom:5px}.resume-link span{margin-left:15px}.hero{max-width:1500px;margin:auto;padding:76px 5.5% 72px;display:grid;grid-template-columns:1.2fr .8fr;gap:7%;align-items:center}.eyebrow{font-size:12px;font-weight:700;letter-spacing:2px;margin:0 0 28px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(52px,5.8vw,85px);line-height:1.07;font-weight:500;letter-spacing:-4px;margin-bottom:25px}em{font-family:'Montserrat',Arial,sans-serif;font-weight:400}h1 em{position:relative}h1 em:after{content:'';position:absolute;height:8px;background:var(--lime);left:2px;right:3px;bottom:2px;z-index:-1}.intro{font-size:19px;line-height:1.6;margin-bottom:18px}.bio{font-size:16px;color:var(--muted);max-width:490px;line-height:1.8}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:29px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;padding:15px 23px;font-size:14px;font-weight:700;border:1px solid transparent;transition:transform .2s,background .2s}.button:hover{text-decoration:none;transform:translateY(-3px);background:#A55030}.lime{background:var(--lime);color:var(--ink)}.text-link{font-size:14px}.hero-meta{display:flex;gap:30px;font-size:12px;color:var(--muted);margin-top:35px}.hero-meta span+span{border-left:1px solid var(--line);padding-left:30px}.portrait-wrap{position:relative;background:var(--navy);padding:20px 20px 0;transform:rotate(2deg);box-shadow:18px 20px 0 var(--wash)}.portrait-label{color:var(--lime);font-size:11px;letter-spacing:2px;margin-bottom:17px}.portrait-wrap img{display:block;width:100%;height:auto;aspect-ratio:4/4.8;object-fit:cover;object-position:50% 35%;filter:saturate(.85)}.portrait-caption{padding:20px 0;color:white;display:flex;gap:10px;align-items:center;justify-content:space-between;font-size:12px}.portrait-caption span:first-child{font-family:'Montserrat',Arial,sans-serif;font-size:23px;font-style:italic}.impact{background:var(--navy);color:white;display:grid;grid-template-columns:repeat(3,1fr);padding:35px 5.5%;gap:25px}.impact>div{display:flex;align-items:center;gap:25px;padding:10px 20px;border-right:1px solid #CDA78C}.impact>div:last-child{border-right:0}.impact strong{font-size:58px;font-weight:400;letter-spacing:-3px;white-space:nowrap;line-height:1}.impact strong span{font-size:33px;color:var(--lime)}.impact p{font-size:14px;margin:0;line-height:1.7}.impact p span{font-size:12px;color:#665344}.section{padding:94px 5.5%}.experience,.skills{display:grid;grid-template-columns:.8fr 1.6fr;gap:7%}h2{font-size:clamp(36px,3.5vw,52px);line-height:1.16;letter-spacing:-1.8px;font-weight:500;margin-bottom:24px}.section-heading>p:last-child:not(.eyebrow){color:var(--muted);max-width:260px}.roles{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{display:flex;align-items:center;gap:20px;padding:28px 0;cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.role-number{font-size:12px;color:var(--muted);align-self:flex-start;padding-top:7px}.role-title{display:flex;flex:1;flex-direction:column;font-size:14px;color:var(--muted)}.organization{font-size:23px;font-weight:500;color:var(--ink);letter-spacing:-.6px}.role-meta{font-size:12px;color:var(--muted);text-align:right}.toggle{font-size:29px;line-height:1;transition:transform .2s;font-weight:300;margin-left:10px}details[open] .toggle{transform:rotate(45deg)}details[open] .organization{font-weight:600}.role-body{padding:0 44px 26px}.role-focus{font-size:12px;text-transform:uppercase;letter-spacing:1px;font-weight:700;color:#626B36;margin-bottom:15px}.role-body ul{padding-left:18px;margin:0}.role-body li{padding-left:4px;margin:10px 0;color:var(--muted);line-height:1.75}.role-body strong{color:var(--ink);font-weight:600}.mobile-date{display:none}.education{display:grid;grid-template-columns:.8fr 1.6fr;gap:7%;background:var(--wash)}.education-main{border-top:2px solid var(--ink);padding-top:30px}.degree-meta{font-size:12px;letter-spacing:1.5px;color:var(--muted)}h3{font-size:40px;font-family:'Montserrat',Arial,sans-serif;font-weight:400;letter-spacing:-1px;margin-bottom:4px}.degree{font-size:18px}dl{margin:30px 0}dl>div{display:grid;grid-template-columns:80px 1fr;margin:12px 0}dt{font-size:14px;color:var(--muted)}dd{margin:0}.academic-stats{display:flex;gap:65px;border-top:1px solid var(--line);padding-top:25px}.academic-stats>div{display:flex;flex-direction:column}.academic-stats strong{font-size:29px;font-weight:400}.academic-stats span{font-size:13px;color:var(--muted)}.skills-list>div{padding:24px 0;border-top:1px solid var(--line)}.skill-category{font-size:12px;letter-spacing:1.5px;color:var(--muted)}.skills-list p{font-size:26px;line-height:1.7;margin:15px 0 0;letter-spacing:-.4px}.skills-list p span{color:#A55030;padding:0 8px}.contact{background:var(--navy);color:white;padding-bottom:25px}.contact .eyebrow{color:var(--lime)}.contact-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:45px}.contact h2{font-size:clamp(48px,6vw,86px);margin:0}.contact-links{display:flex;gap:35px;flex-wrap:wrap;font-size:16px}.contact-links a{border-bottom:1px solid #9C7150;padding-bottom:5px}footer{border-top:1px solid #CDA78C;display:flex;justify-content:space-between;font-size:12px;color:#665344;margin-top:75px;padding-top:25px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1600px){.section,.impact{padding-left:max(5.5%,calc((100vw - 1335px)/2));padding-right:max(5.5%,calc((100vw - 1335px)/2))}}
@media(max-width:1050px){header{padding:0 4%}nav{gap:18px}.hero{gap:5%;padding:65px 5%}h1{font-size:61px;letter-spacing:-3px}.portrait-caption{flex-direction:column;align-items:flex-start;gap:0}.impact>div{padding:10px 0;gap:16px}.impact strong{font-size:44px}.experience,.education,.skills{grid-template-columns:.7fr 1.3fr;gap:5%}.role-meta{display:none}.mobile-date{display:block;margin-top:4px;font-size:12px}.section{padding:75px 5%}.role-body{padding-left:34px;padding-right:12px}.contact-links{gap:23px}}
@media(max-width:720px){html{scroll-padding-top:115px}header{height:auto;min-height:100px;padding:12px 6%;flex-wrap:wrap;gap:8px}.monogram{font-size:27px}nav{order:3;width:100%;justify-content:space-between;gap:14px;font-size:13px}.resume-link{font-size:12px}nav a{padding:3px 0}.hero{padding:42px 7% 50px;grid-template-columns:1fr;gap:40px}.eyebrow{font-size:11px;letter-spacing:1.6px;margin-bottom:22px}h1{font-size:clamp(46px,10vw,68px);letter-spacing:-2.8px}.intro{font-size:18px}.bio{font-size:16px}.hero-actions{gap:20px;flex-wrap:wrap}.hero-meta{margin-top:25px}.portrait-wrap{max-width:360px;width:86%;justify-self:center;padding:14px 14px 0}.portrait-wrap img{aspect-ratio:1/1}.portrait-caption{flex-direction:row;align-items:center;padding:15px 0}.portrait-caption span:first-child{font-size:21px}.portrait-label{margin-bottom:12px}.impact{grid-template-columns:1fr;padding:20px 7%;gap:0}.impact>div{border-right:0;border-bottom:1px solid #CDA78C;padding:20px 0;gap:24px}.impact>div:last-child{border-bottom:0}.impact strong{font-size:46px;min-width:130px}.impact p{font-size:14px}.section{padding:57px 7%}.experience,.education,.skills{grid-template-columns:1fr;gap:20px}h2{font-size:39px}.section-heading>p:last-child:not(.eyebrow){max-width:none}.organization{font-size:21px}.role-title{font-size:14px}summary{gap:13px;padding:24px 0}.role-body{padding-left:27px;padding-right:0}.role-number{font-size:11px}.role-body li{font-size:16px}.education-main{padding-top:24px}h3{font-size:35px}.academic-stats{gap:35px}.academic-stats strong{font-size:26px}.skills-list p{font-size:24px}.contact-top{display:block}.contact h2{font-size:52px;margin-bottom:30px}.contact-links{flex-direction:column;align-items:flex-start;gap:20px}.contact-links a{overflow-wrap:anywhere}footer{gap:15px;flex-wrap:wrap;margin-top:50px}.contact{padding-bottom:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{header,.hero-actions,.contact .button,.contact-links,footer{display:none}.hero,.section{padding:20px}.hero{grid-template-columns:2fr 1fr}.hero h1{font-size:35px}.portrait-wrap{transform:none;box-shadow:none}.impact{background:white;color:#DFC5A2}.section{break-inside:avoid}.experience{display:block}.role-body{display:block}body{font-size:12px}.contact{background:white;color:#DFC5A2}}

.impact strong .stat-prefix{display:block;font-size:16px;letter-spacing:0;line-height:1.4;color:inherit;margin-bottom:4px}

/* Warm dark lettering keeps autumn panels readable. */
.portrait-caption,.impact,.contact{color:var(--ink)}
.portrait-label,.contact .eyebrow,.impact strong span{color:#80512F}
.impact strong .stat-prefix{color:inherit}

.personal-headline{font-size:clamp(40px,4.5vw,65px);letter-spacing:-2.5px;line-height:1.12}.personal-headline em{display:block;margin-top:.2em}.personal-headline em:after{display:none}@media(max-width:720px){.personal-headline{font-size:clamp(38px,8.5vw,56px);letter-spacing:-1.8px}}

.personal-headline{font-size:clamp(32px,3.9vw,56px)}.headline-line{display:block}@media(max-width:720px){.personal-headline{font-size:clamp(24px,5.7vw,41px);letter-spacing:-1px}}

.portrait-wrap{padding-bottom:76px}@media(max-width:720px){.portrait-wrap{padding-bottom:60px}}

/* Give the opening message, introduction, and action distinct breathing room. */
.hero-copy .eyebrow{margin-bottom:44px}
.hero-copy .personal-headline{margin-bottom:64px}
.hero-copy .personal-headline em{margin-top:.45em}
.hero-copy .bio{color:#665344;font-weight:500;line-height:1.85;margin-bottom:0}
.hero-copy .hero-actions{margin-top:56px}
@media(max-width:720px){.hero-copy .eyebrow{margin-bottom:32px}.hero-copy .personal-headline{margin-bottom:44px}.hero-copy .hero-actions{margin-top:40px}}

.handwriting{position:absolute;left:24px;right:24px;bottom:10px;height:56px;display:flex;align-items:center;justify-content:center}.portrait-wrap .handwriting img{width:85%;height:100%;aspect-ratio:auto;object-fit:contain;filter:none;transform:scale(1.25)}@media(max-width:720px){.handwriting{left:20px;right:20px;bottom:8px;height:44px}}

/* Homepage headline, primary action, and Polaroid refinements. */
.personal-headline .headline-line + .headline-line{margin-top:.08em}
.personal-headline .headline-line:last-child{color:#806C59;margin-top:.18em}
.hero-actions .button{padding:12px 19px;gap:18px;font-size:13px;transition:transform .2s ease,box-shadow .2s ease}
.hero-actions .button:hover{background:var(--lime);transform:translateY(-2px);box-shadow:0 5px 12px rgba(73,55,43,.10)}
.portrait-wrap{transform:rotate(2.5deg);box-shadow:0 14px 30px rgba(73,55,43,.12),0 3px 7px rgba(73,55,43,.07)}
@media(prefers-reduced-motion:reduce){.hero-actions .button{transition:none}.hero-actions .button:hover{transform:none}}

/* True Autumn accent surfaces and accessible olive actions. */
.impact{background:#E7C4AF}.contact{background:#F1E8DA}.button.lime{background:#A55030;color:#FAF5EB}.hero-actions .button.lime:hover{background:#8D4228}.monogram span{color:#626B36}

.portfolio{display:grid;grid-template-columns:.7fr 1.3fr;gap:7%;border-top:1px solid var(--line)}.portfolio-grid{display:grid;grid-template-columns:1fr;max-width:700px}.project-cover{display:block;position:relative;overflow:hidden;background:#242424;border:1px solid var(--line);transition:transform .2s ease,box-shadow .2s ease}.project-cover img{display:block;width:100%;height:auto;aspect-ratio:1400/788;object-fit:contain}.project-cover:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(73,55,43,.12)}.project-open{position:absolute;bottom:12px;right:12px;padding:7px 12px;background:var(--paper);color:var(--ink);font-size:12px;font-weight:700}.project-open span{margin-left:10px}.project-card h3{font-size:24px;line-height:1.35;letter-spacing:-.4px;margin:22px 0 12px}.project-card>p{font-size:15px;line-height:1.8;color:var(--muted);margin-bottom:16px}.project-type{font-size:10px;letter-spacing:1.4px;font-weight:700;color:#626B36}@media(max-width:720px){.portfolio{grid-template-columns:1fr;gap:24px}.project-card h3{font-size:21px}nav{gap:8px;font-size:12px}}@media(prefers-reduced-motion:reduce){.project-cover{transition:none}.project-cover:hover{transform:none}}

.portfolio-grid{gap:48px}
.living-cover{aspect-ratio:1400/788;background:#e7ddc8;color:#49372b;padding:32px;display:flex;flex-direction:column;justify-content:space-between}
.living-brand{font-size:12px;font-weight:700;letter-spacing:2px}
.living-title{font-size:clamp(48px,6vw,78px);line-height:.95;letter-spacing:-3px;font-weight:600}
.living-subtitle{font-size:10px;letter-spacing:2px;font-weight:700;color:#626b36}
@media(max-width:720px){.living-cover{padding:24px}.living-title{font-size:clamp(44px,10vw,68px)}.living-brand{font-size:10px}.living-subtitle{font-size:8px}}

.school-cover{background:#626b36;color:#faf6ed}
.school-title{font-size:clamp(32px,4.2vw,56px);line-height:1.05;letter-spacing:-1.5px;font-weight:600}
.school-cover .living-subtitle{color:#f1e5cd}
@media(max-width:720px){.school-title{font-size:clamp(26px,6.5vw,44px)}}

.organization-logo{display:flex;align-items:center;width:144px;height:64px;margin-bottom:12px;background:#fff;border:1px solid var(--line);padding:9px 12px;border-radius:4px}
.organization-logo img{display:block;width:100%;height:100%;object-fit:contain}
.organization-logo.logo-bethesda{padding:0 4px}
.organization-logo.logo-stair{width:88px;height:72px;padding:5px}
@media(max-width:720px){.organization-logo{width:128px;height:56px}.organization-logo.logo-stair{width:76px;height:64px}}

.organization-logo.logo-jingo{width:72px;height:64px;padding:0}

.signature-link{cursor:pointer;border-radius:4px}.signature-note{position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%,5px);width:220px;background:var(--paper);padding:10px 14px;font-size:12px;color:var(--ink);text-align:center;border:1px solid var(--line);box-shadow:0 4px 16px #49372b18;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.signature-link:hover .signature-note,.signature-link:focus-visible .signature-note{opacity:1;transform:translate(-50%,0)}.interests-hint{position:absolute;top:calc(100% + 14px);left:0;right:0;text-align:center;font-size:11px;color:var(--muted)}
#interests{border:1px solid var(--line);padding:0;width:min(960px,calc(100% - 28px));max-height:88dvh;background:var(--paper);color:var(--ink);box-shadow:0 24px 90px #241b1840;border-radius:6px}#interests::backdrop{background:#2d241b99;backdrop-filter:blur(4px)}body.interests-open{overflow:hidden}.scrapbook{padding:50px 40px 28px;position:relative}.interests-close{position:absolute;right:20px;top:16px;border:0;background:transparent;color:var(--ink);font:inherit;font-size:12px;cursor:pointer;padding:8px}.interests-close span{font-size:22px;margin-left:8px}.interests-close:focus-visible{outline:2px solid #626b36}.scrapbook h2{font-size:48px;line-height:1.1;letter-spacing:-2px;margin-bottom:16px}.scrapbook .eyebrow{font-size:10px;margin-bottom:20px}.scrapbook-intro{color:var(--muted);font-size:14px}.interest-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:34px 0 28px}.interest-note{background:#eee2cb;padding:24px 22px;box-shadow:2px 5px 12px #49372b12;transform:rotate(-1deg);position:relative}.interest-note:before{content:'';position:absolute;top:-9px;left:calc(50% - 26px);width:52px;height:20px;background:#b65f3830;transform:rotate(-7deg)}.interest-note:nth-child(2){background:#e4e6d5;transform:rotate(1.5deg)}.interest-note:nth-child(3){background:#f0d9ca;transform:rotate(-.5deg)}.interest-doodle{font-family:Georgia,serif;font-style:italic;font-size:44px;color:#626b36;line-height:1.4}.interest-label{font-size:8px;letter-spacing:1.3px;font-weight:700;margin:16px 0 12px}.interest-note h3{font:500 21px/1.3 Montserrat,Arial,sans-serif;letter-spacing:-.5px;margin-bottom:12px}.interest-note>p:last-child{font-size:13px;line-height:1.8;margin:0;color:var(--muted)}.scrapbook-footer{font-size:11px;color:var(--muted);text-align:center;margin:0}nav{gap:20px}
@media(max-width:720px){.interest-cards{grid-template-columns:1fr;gap:25px}.scrapbook{padding:55px 24px 24px}.scrapbook h2{font-size:38px}.interest-note{padding:20px}nav{gap:8px;flex-wrap:wrap;justify-content:center}.hero{padding-bottom:86px}}
@media(prefers-reduced-motion:reduce){.signature-note{transition:none}}

.academic-note{color:#626B36;font-size:16px;line-height:1.6;max-width:270px}

.experience{background:var(--wash)}
