
/* Privacy additions inherit the existing page and contact backgrounds. */
.contact-heading{display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-width:0}
.contact .footer-privacy{color:inherit;font:400 14px/1.5 var(--sans);text-decoration:underline;text-underline-offset:4px}
.contact .footer-privacy:hover{color:#e7bb62}
.contact .footer-privacy:focus-visible{outline:2px solid #e7bb62;outline-offset:5px}
.privacy-copy{max-width:76ch;overflow-wrap:anywhere}
.privacy-copy p{margin:0 0 22px;line-height:1.75}
.privacy-copy .privacy-updated{color:var(--muted);font-size:14px;margin-bottom:26px}
/* Layout: annual-report masthead with double rules, two-column profile, formal experience ledger, engraved-style contact block */
:root {
  --paper: #fbfbf8;
  --panel: #f2f1ec;
  --ink: #1b1f2a;
  --navy: #1d2f4f;
  --claret: #7a1f2b;
  --rule: #cfccc2;
  --muted: #5d6270;
  --ph: #9a9ca3;
  --serif: "EB Garamond", Garamond, "Times New Roman", serif;
  --sans: "Source Sans 3", "Helvetica Neue", Arial, sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --paper: #111a2b; --panel: #172238; --ink: #ece9e0; --navy: #c9d3e6;
    --claret: #d98b92; --rule: #33415c; --muted: #a3abbb; --ph: #6f7a90;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --paper: #111a2b; --panel: #172238; --ink: #ece9e0; --navy: #c9d3e6;
  --claret: #d98b92; --rule: #33415c; --muted: #a3abbb; --ph: #6f7a90;
  color-scheme: dark;
}
* { box-sizing: border-box; }
body { background: var(--paper); color: var(--ink); font: 17px/1.65 var(--sans); }
.wrap { max-width: 1040px; margin: 0 auto; padding-inline: 24px; }
a { color: var(--navy); }
a:focus-visible, button:focus-visible { outline: 2px solid var(--claret); outline-offset: 3px; }
.ph { color: var(--ph); font-style: italic; }
.sc { font-family: var(--sans); font-size: .74rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }

/* top bar */
.topbar { border-bottom: 1px solid var(--rule); }
.topbar .wrap { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-block: 10px; flex-wrap: wrap; color: var(--muted); }
.topbar ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 24px; flex-wrap: wrap; }
.topbar a { color: var(--muted); text-decoration: none; }
.topbar a:hover { color: var(--claret); }

/* masthead */
.mast { text-align: center; padding-block: 64px 0; }
.mast .sc { color: var(--claret); }
.mast h1 { font: 500 clamp(3rem, 9vw, 5.8rem)/1 var(--serif); letter-spacing: .01em; margin: 18px 0 14px; color: var(--navy); }
.mast .sub { font: italic 400 clamp(1.15rem, 2.5vw, 1.45rem) var(--serif); color: var(--muted); margin: 0 auto; max-width: 34em; text-wrap: balance; }
.double { border: 0; border-top: 3px double var(--ink); margin: 40px 0 0; }
.facts { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--rule); }
.facts div { padding: 16px 12px; text-align: center; border-right: 1px solid var(--rule); min-width: 0; }
.facts div:last-child { border-right: 0; }
.facts .sc { display: block; color: var(--muted); font-size: .68rem; margin-bottom: 4px; }
.facts strong { font: 500 1.15rem/1.3 var(--serif); }

/* section heads */
section { padding-block: 72px 0; }
.head { display: flex; align-items: center; gap: 20px; margin-bottom: 36px; }
.head h2 { font: 500 2.1rem/1.1 var(--serif); margin: 0; color: var(--navy); white-space: nowrap; }
.head::after { content: ""; flex: 1; border-top: 1px solid var(--rule); }
.head .num { font: italic 400 1.1rem var(--serif); color: var(--claret); }

/* profile */
.profile { display: grid; grid-template-columns: 1.5fr 1fr; gap: 56px; }
.profile > * { min-width: 0; }
.profile p { margin: 0 0 18px; max-width: 36em; }
.profile p.lead { font: 400 1.35rem/1.55 var(--serif); }
.profile p.lead::first-letter { float: left; font: 500 4.1rem/.8 var(--serif); color: var(--claret); padding: 8px 10px 0 0; }
.card { background: var(--panel); padding: 28px; border-top: 3px solid var(--navy); }
.card h3 { margin: 0 0 16px; color: var(--claret); }
.card dl { margin: 0; display: grid; gap: 14px; }
.card dt { font-size: .82rem; color: var(--muted); }
.card dd { margin: 0; font: 500 1.1rem/1.35 var(--serif); }

/* experience ledger */
.ledger { border-top: 2px solid var(--ink); }
.entry { display: grid; grid-template-columns: 1fr 2.2fr; gap: 40px; padding-block: 32px; border-bottom: 1px solid var(--rule); }
.entry > * { min-width: 0; }
.entry h3 { font: 500 1.6rem/1.15 var(--serif); margin: 0 0 6px; color: var(--navy); }
.entry .meta { font-size: .9rem; color: var(--muted); display: grid; gap: 2px; }
.entry .role { font: italic 400 1.2rem var(--serif); color: var(--claret); margin: 0 0 10px; }
.entry ul { margin: 0; padding-left: 20px; display: grid; gap: 6px; }

/* tombstones */
.tombs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
.tomb { border: 1px solid var(--ink); padding: 6px; }
.tomb-in { border: 1px solid var(--rule); padding: 36px 28px; text-align: center; height: 100%; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.tomb .sc { color: var(--muted); font-size: .66rem; }
.tomb h3 { font: 500 2rem/1.1 var(--serif); margin: 4px 0; color: var(--navy); }
.tomb .role { font: italic 400 1.15rem var(--serif); color: var(--claret); margin: 0; }
.tomb .sep { width: 48px; border-top: 1px solid var(--ink); margin: 8px 0; }
.tomb p { margin: 0; color: var(--muted); max-width: 26em; }
.tomb .foot { margin-top: auto; padding-top: 14px; }

/* education + skills */
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
.two > * { min-width: 0; }
.two h3 { font: 500 1.4rem var(--serif); margin: 0 0 4px; color: var(--navy); }
.two .role { font: italic 400 1.1rem var(--serif); color: var(--claret); margin: 0 0 12px; }
.skills { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.skills h4 { margin: 0 0 10px; padding-bottom: 8px; border-bottom: 1px solid var(--rule); color: var(--muted); }
.skills ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }

/* contact */
.contact { margin-top: 80px; background: var(--navy); color: var(--paper); padding: 56px 40px; text-align: center; }
.contact .sc { color: color-mix(in srgb, var(--paper) 70%, var(--navy)); }
.contact h2 { font: 500 clamp(2rem, 5vw, 3rem)/1.1 var(--serif); margin: 12px 0 20px; text-wrap: balance; }
.contact .email { font: 400 1.3rem var(--serif); overflow-wrap: anywhere; user-select: all; margin: 0 0 22px; }
.actions { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }
.btn { font: 600 .8rem var(--sans); letter-spacing: .14em; text-transform: uppercase; padding: 13px 24px; border: 1px solid var(--paper); background: var(--paper); color: var(--navy); cursor: pointer; text-decoration: none; }
.btn.out { background: transparent; color: var(--paper); }
.contact .note { margin: 16px 0 0; font-size: .85rem; opacity: .75; }
footer { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-block: 24px 48px; color: var(--muted); font-size: .85rem; }

@media (max-width: 780px) {
  .facts { grid-template-columns: 1fr 1fr; }
  .facts div:nth-child(2) { border-right: 0; }
  .facts div:nth-child(-n+2) { border-bottom: 1px solid var(--rule); }
  .profile, .entry, .tombs, .two { grid-template-columns: 1fr; gap: 24px; }
  .entry { gap: 12px; }
  .head h2 { white-space: normal; }
  .mast { padding-block: 44px 0; }
  .contact { padding: 40px 22px; }
  section { padding-block: 56px 0; }
}
@media (max-width: 420px) { .skills { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* Content integration; the uploaded template owns the palette and page structure. */
body{margin:0}img{display:block;max-width:100%;height:auto}figure{margin:0}[hidden]{display:none!important}.skip{position:fixed;left:16px;top:-100px;background:var(--paper);padding:12px;z-index:20}.skip:focus{top:16px}.brand{font:500 1.35rem var(--serif);white-space:nowrap}.topbar .wrap{padding-block:18px}.topbar ul{gap:10px 20px;justify-content:flex-end}.topbar li{font-size:14px}.topbar a.active{color:var(--claret);text-decoration:underline;text-underline-offset:6px}.view:not(#about){padding-top:56px}.head h1{font:500 clamp(2rem,4vw,2.6rem)/1.15 var(--serif);margin:0;color:var(--navy)}.mast h1{white-space:nowrap}.profile{padding-top:44px}.portrait-figure img{width:100%;border:1px solid var(--rule)}.caption{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--muted);margin-top:10px}.contact h2 a{color:inherit;text-decoration:none}.contact h2 a:hover{text-decoration:underline;text-underline-offset:6px}.contact-message{max-width:40em;margin:0 auto}.company-logo{width:48px;height:48px;object-fit:contain;background:white;padding:4px;margin-bottom:18px}.entry .meta{margin:8px 0 0}.entry .job-copy{margin:0}.entry .role{line-height:1.5}.project-report{border-top:2px solid var(--ink);padding-top:26px}.proj-kind{color:var(--muted);font-size:14px;margin:0 0 12px}.project-report h3{font:500 clamp(1.8rem,4vw,2.5rem)/1.15 var(--serif);color:var(--navy);margin:0 0 12px}.project-title-link,.club-title-link{text-decoration:none}.project-title-link:hover,.club-title-link:hover{text-decoration:underline}.project-report .subtitle{font:italic 400 1.2rem var(--serif);color:var(--claret);margin:0 0 24px}.project-report p{max-width:54em}.case-detail h4{font:500 1.4rem var(--serif);color:var(--navy);margin:26px 0 10px}.project-gallery{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:28px}.project-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover}.tomb .sc{font-size:12px;line-height:1.6}.tomb p{max-width:none}.club-copy p+p{margin-top:16px}.club-logo{width:90px}.featured-club{grid-column:1/-1}.featured-club .tomb-in{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);column-gap:36px;text-align:left;align-items:start}.featured-club .tomb-in>*{grid-column:1}.featured-club .tomb-in>.leadership-photo{grid-column:2;grid-row:1/7;align-self:center;width:100%}.featured-club .tomb-in h3{font-size:2rem}.leadership-photo img{width:100%}.tomb .job-copy{font-size:16px;line-height:1.75}.school img{width:155px;background:white;border:1px solid var(--rule);margin-bottom:24px}.school h2{font:500 2rem/1.15 var(--serif);color:var(--navy);margin:0 0 26px}.degree{margin-bottom:24px}.degree-text{font:500 1.25rem/1.45 var(--serif);margin:0 0 6px}.degree .job-when{color:var(--claret);font-size:15px;margin:0}.recognition{padding-top:24px;border-top:1px solid var(--rule);margin-top:26px}.recognition h3{margin-bottom:14px}.recognition-item{margin-bottom:14px}.recognition-item p{margin:0}.credential-date{font-size:14px;color:var(--muted)}.skills{align-content:start}.skill-item{padding-bottom:12px}.skill-category{font-weight:600;font-size:16px}.skill-item p{font-size:16px;line-height:1.55;color:var(--muted);margin:4px 0 0}.skills h4{font-size:13px;line-height:1.5;letter-spacing:.1em}.view:not(#about){padding-bottom:40px}footer.wrap{margin-top:48px;border-top:1px solid var(--rule)}
@media(max-width:900px){.topbar .wrap{justify-content:center}.topbar ul{justify-content:center}.two{gap:32px}.skills{grid-template-columns:1fr}}
@media(max-width:780px){.view:not(#about){padding-top:36px}.profile{padding-top:32px}.portrait-figure{max-width:390px}.featured-club .tomb-in{display:flex;text-align:center;gap:12px}.featured-club .tomb-in>.leadership-photo{margin-top:16px;max-width:440px}.tomb-in{padding:28px 20px}.project-gallery{grid-template-columns:1fr}.skills{grid-template-columns:1fr 1fr}.head{margin-bottom:28px}.mast h1{font-size:clamp(2.6rem,9vw,4rem)}}
@media(max-width:420px){.skills{grid-template-columns:1fr}.wrap{padding-inline:20px}.topbar ul{gap:10px 16px}.head h1{font-size:2rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Academic journey and full-width skills directory. */
.academic-mast{display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:0 0 28px}.academic-mast img{width:132px;height:auto;border:1px solid var(--rule);background:white}.academic-mast h2{font:500 clamp(1.8rem,4vw,2.4rem)/1.15 var(--serif);color:var(--navy);margin:0}.degree-path{border-top:3px double var(--ink);margin-bottom:48px}.degree-path .degree{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:32px;align-items:center;padding:24px 0;margin:0;border-bottom:1px solid var(--rule)}.degree-path .degree-text{font-size:1.3rem;margin:0}.degree-path .job-when{text-align:right;font-size:15px;line-height:1.6;margin:0;color:var(--claret)}.skills-directory{display:block}.skill-band{display:grid;grid-template-columns:210px minmax(0,1fr);gap:38px;margin-bottom:38px;padding-top:24px;border-top:2px solid var(--ink)}.skill-band-title{font:500 1.8rem/1.2 var(--serif);color:var(--navy);margin:0}.skill-band ul{list-style:none;margin:0;padding:0}.skill-band .skill-item{display:grid;grid-template-columns:170px minmax(0,1fr);gap:24px;padding:16px 0;border-bottom:1px solid var(--rule)}.skill-band .skill-item:first-child{padding-top:0}.skill-band .skill-category{font-size:16px;font-weight:600;color:var(--navy)}.skill-band .skill-item p{margin:0;font-size:16px;line-height:1.6}.credentials-strip{display:grid;grid-template-columns:1fr 1.5fr;gap:48px;border-top:3px double var(--ink);padding-top:28px;margin-top:8px}.credentials-strip .recognition{margin:0;padding:0;border:0}.credentials-strip h3{font:500 1.65rem/1.2 var(--serif);color:var(--navy);margin:0 0 18px}.credentials-strip .recognition-item{margin-bottom:16px}
/* An open invitation with a typographic email link. */
.contact.contact-invitation{display:grid;grid-template-columns:1fr 1.25fr;gap:48px;align-items:center;background:transparent;color:var(--ink);text-align:left;padding:36px 0;margin-top:52px;border-top:3px double var(--ink);border-bottom:1px solid var(--rule)}.contact-invitation h2{margin:0;font:500 clamp(2.4rem,5vw,3.6rem)/1.1 var(--serif)}.contact.contact-invitation .contact-link{color:var(--claret);text-decoration:underline;text-decoration-color:var(--rule);text-decoration-thickness:1px;text-underline-offset:9px}.contact.contact-invitation .contact-link:hover{color:var(--navy);text-decoration-color:var(--navy)}.contact-invitation .contact-message{font-size:18px;color:var(--muted);line-height:1.7;margin:0;max-width:36em}
@media(max-width:780px){.degree-path .degree{grid-template-columns:1fr;gap:8px}.degree-path .job-when{text-align:left}.skill-band{grid-template-columns:1fr;gap:22px}.credentials-strip{gap:28px}.contact.contact-invitation{grid-template-columns:1fr;gap:22px;padding-block:30px}.skill-band .skill-item{grid-template-columns:150px minmax(0,1fr);gap:20px}}
@media(max-width:500px){.skill-band .skill-item{grid-template-columns:1fr;gap:6px}.credentials-strip{grid-template-columns:1fr;gap:30px}.degree-path{margin-bottom:32px}.contact-invitation .contact-message{font-size:17px}}
/* Final contact and academic details. */
.contact.contact-invitation .contact-link,.contact.contact-invitation .contact-link:hover{text-decoration:none}.contact.contact-invitation{border-bottom:0}body:has(#about:not([hidden])) footer.wrap{border-top:0;margin-top:16px}.degree-path .gpa{display:inline-block;white-space:nowrap}.academic-mast{padding-bottom:24px}
/* Align category labels and credentials on a shared column. */
.skill-band{align-items:baseline}.skill-band-title{text-align:right}.skill-band .skill-item{align-items:baseline}.skill-band .skill-category{text-align:right}.credentials-strip{display:block}.credentials-strip .recognition{display:grid;grid-template-columns:210px minmax(0,1fr);gap:38px;align-items:baseline}.credentials-strip .recognition+.recognition{margin-top:26px}.credentials-strip h3{text-align:right;margin:0}.credential-details{min-width:0}.academic-mast h2{width:min(620px,100%);margin:0}.academic-mast h2 img{width:100%;height:auto;background:transparent;border:0}.academic-mast{padding-bottom:24px}.tomb-in{border:0}
@media(max-width:780px){.skill-band-title{text-align:left}.credentials-strip .recognition{grid-template-columns:150px minmax(0,1fr);gap:20px}}
@media(max-width:500px){.skill-band .skill-category{text-align:left}.credentials-strip .recognition{grid-template-columns:1fr;gap:14px}.credentials-strip h3{text-align:left}}
/* Left-aligned labels with a consistent top edge for the details. */
.skill-band{grid-template-columns:210px minmax(0,1fr);gap:38px;align-items:start}.skill-band-title{text-align:left;line-height:1.2}.skill-band .skill-item{align-items:start}.skill-band .skill-category{text-align:left;line-height:1.6}.skill-band .skill-item p{line-height:1.6}.credentials-strip .recognition{grid-template-columns:210px minmax(0,1fr);gap:38px;align-items:start}.credentials-strip h3{text-align:left;line-height:1.2}.credential-details .recognition-item:first-child p{margin-top:0}.credential-details .recognition-item{line-height:1.6}
@media(max-width:780px){.skill-band{grid-template-columns:1fr;gap:22px}.credentials-strip .recognition{grid-template-columns:1fr;gap:16px}.credentials-strip h3,.skill-band-title,.skill-band .skill-category{text-align:left}}
/* Paired credentials and awards, with a single central divider. */
.credentials-strip{display:grid;grid-template-columns:1fr 1fr;gap:0;padding-top:28px}.credentials-strip .recognition{display:block;padding:0 32px 0 0;margin:0}.credentials-strip .recognition+.recognition{margin:0;padding:0 0 0 32px;border-left:1px solid var(--rule)}.credentials-strip h3{margin:0 0 20px;text-align:left}.credentials-strip .credential-details{line-height:1.6}#skills>.head{margin-bottom:10px}.academic-mast{padding-bottom:16px}
@media(max-width:600px){.credentials-strip{grid-template-columns:1fr;gap:24px}.credentials-strip .recognition{padding:0}.credentials-strip .recognition+.recognition{border-left:0;border-top:1px solid var(--rule);padding:24px 0 0}.credentials-strip h3{margin-bottom:14px}}
/* Gold typography and an editorial, full-width contact bar. */
:root{--claret:#a16b13}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--claret:#e7bb62}}
:root[data-theme="dark"]{--claret:#e7bb62}
.topbar .brand{font:600 1.25rem/1 var(--serif);letter-spacing:.08em;border:1px solid var(--rule);min-width:42px;min-height:42px;display:inline-grid;place-items:center;color:var(--navy)}
#about .mast{text-align:left;padding-top:46px}#about .mast h1{margin:0 0 26px;font-size:clamp(3.2rem,8vw,5.2rem)}#about .mast .double{margin:0}#about .profile{padding-top:34px}#about .portrait-figure img{width:100%;height:auto}
/* Responsive skills grid, inspired by the supplied two-column example. */
#skills>.head{margin-bottom:0}#skills .academic-mast{padding-top:0;padding-bottom:4px}#skills .academic-mast h2{width:min(580px,100%)}#skills .degree-path{margin-bottom:38px}
.skill-band{display:block;padding-top:18px;margin-bottom:38px}.skill-band-title{font-size:1.75rem;line-height:1.2;text-align:left;margin:0 0 18px;padding-bottom:12px;border-bottom:1px solid var(--rule)}.skill-band ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}.skill-band .skill-item{display:block;padding:17px 0 20px;border-bottom:1px solid var(--rule);min-width:0}.skill-band .skill-item:first-child{padding-top:17px}.skill-band .skill-category{display:block;text-align:left;font:500 1.3rem/1.25 var(--serif);color:var(--navy)}.skill-band .skill-item p{margin:6px 0 0;color:var(--muted);font-size:15px;line-height:1.55}.credentials-strip{margin-top:6px}
/* Leadership entries read from the top, with common date positions. */
.tombs{align-items:stretch}.tomb{padding:0;border:1px solid var(--rule)}.tomb-in{padding:28px 30px;text-align:left;align-items:stretch;gap:0}.tomb .sc{min-height:2em;color:var(--claret);font-size:13px;margin:0 0 16px}.tomb h3{font-size:1.75rem;line-height:1.12;margin:0 0 10px}.tomb .role{line-height:1.35;margin:0 0 14px}.tomb .sep{width:100%;margin:0 0 18px;border-color:var(--rule)}.club-copy{margin:0}.club-copy p{margin:0 0 13px;text-align:left;line-height:1.7}.club-copy p:last-child{margin-bottom:0}.featured-club .tomb-in{align-items:start}.featured-club .tomb-in>.leadership-photo{grid-row:1/7;align-self:start}
/* Shared contact sits after every page view. */
.contact.contact-invitation{margin:68px calc(50% - 50vw) 0;padding:42px max(24px,calc((100vw - 992px)/2));display:flex;align-items:center;justify-content:space-between;gap:28px;background:#122240;color:#f9f6eb;border:0;min-height:150px}.contact-invitation h2{font:500 clamp(1.65rem,3vw,2.25rem)/1.15 var(--serif);margin:0;white-space:nowrap}.contact.contact-invitation .contact-link,.contact.contact-invitation .contact-link:hover{color:#f9f6eb;text-decoration:none}.contact-invitation em{color:#e7bb62;font-weight:400}.contact-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.contact-action{color:#f9f6eb;text-decoration:none;text-transform:uppercase;letter-spacing:.13em;font:600 12px/1 var(--sans);border:1px solid #60708c;padding:13px 17px;white-space:nowrap}.contact-action:hover{border-color:#e7bb62;color:#e7bb62}
@media(max-width:780px){#about .mast{padding-top:34px}.skill-band ul{grid-template-columns:repeat(2,minmax(0,1fr))}.contact.contact-invitation{margin-top:50px;padding:32px 24px}.tomb-in{padding:25px}.featured-club .tomb-in{text-align:left;align-items:stretch}}
@media(max-width:600px){.skill-band ul{grid-template-columns:1fr}.contact.contact-invitation{flex-direction:column;align-items:flex-start;justify-content:center;gap:20px}.tombs{grid-template-columns:1fr}.featured-club{grid-column:auto}}
/* Wide masthead and full-bleed contact, aligned to the reference edges. */
.topbar{background:#0b182b;border-bottom:1px solid #293c59;color:#aebed4}.topbar .wrap{max-width:none;padding:0 clamp(24px,3vw,56px);height:66px;min-height:66px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:nowrap}.topbar .brand{border:0;min-height:0;min-width:0;display:inline-block;color:#d6ab4e;font:500 1.3rem/1 var(--serif);letter-spacing:0;text-decoration:none;white-space:nowrap}.topbar ul{gap:clamp(12px,2vw,36px);justify-content:flex-end;align-items:center;flex-wrap:nowrap}.topbar li{font-size:11px;white-space:nowrap;letter-spacing:.12em;text-transform:uppercase}.topbar a{color:#aebed4}.topbar a:hover{color:#e7bb62}.topbar a.active{color:#e7bb62;text-decoration:none;border-bottom:2px solid #d6ab4e;padding-bottom:14px;padding-top:16px}.topbar a.ext{color:#d6ab4e}
.contact.contact-invitation{padding-inline:clamp(24px,3vw,56px);min-height:152px}.contact-invitation h2{font-size:clamp(1.6rem,2.4vw,2rem)}.contact-actions{margin-left:auto}.contact-action{font-size:11px;padding:12px 18px}
@media(max-width:900px){.topbar .wrap{height:auto;min-height:66px;flex-wrap:wrap;padding-block:13px;gap:12px}.topbar ul{flex-wrap:wrap;justify-content:flex-start;gap:8px 18px}.topbar a.active{padding-block:8px}}
@media(max-width:600px){.topbar .wrap{padding-inline:20px}.topbar li{font-size:10px}.contact.contact-invitation{padding-inline:20px}.contact-actions{margin-left:0}}
/* About: wider editorial introduction and a separate welcome section. */
main.wrap{max-width:1200px}
body:has(#about:not([hidden])){background:var(--paper);color:var(--ink);--about-accent:#946817}
#about .about-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.85fr);gap:clamp(40px,6vw,86px);align-items:start;padding:62px 0 72px}
#about .mast{padding:0;text-align:left;min-width:0}
#about .mast h1{white-space:normal;font:500 clamp(3.7rem,6.5vw,6rem)/.96 var(--serif);color:var(--navy);letter-spacing:-.02em;margin:0 0 32px;max-width:9em}
#about .mast h1 em{display:block;color:var(--about-accent);font-weight:400}
#about .mast .double{display:none}
#about .hero-subtitle{font:italic 400 clamp(1.2rem,2vw,1.55rem)/1.35 var(--serif);color:var(--muted);margin:0 0 24px}
#about .hero-lede{font:400 17px/1.8 var(--sans);color:var(--muted);margin:0;max-width:60ch}
#about .portrait-figure{width:100%;max-width:420px;justify-self:end;margin:0;position:relative}
#about .portrait-figure::after{content:"";position:absolute;z-index:-1;inset:12px -12px -12px 12px;border:1px solid var(--rule)}
#about .portrait-figure img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:center top;border:1px solid var(--rule)}
#about .profile{display:block;padding:25px 0 48px;border-top:1px solid var(--rule)}
#about .profile h2{font:500 clamp(2rem,3vw,2.7rem)/1.2 var(--serif);color:var(--navy);margin:0 0 24px}
#about .profile>div{max-width:100%;min-width:0}
#about .profile p,#about .profile p.lead{font:400 17px/1.9 var(--sans);color:var(--ink);max-width:90ch;margin:0 0 22px}
#about .profile p.lead::first-letter{float:none;font:inherit;color:inherit;padding:0}
body:has(#about:not([hidden])) .contact.contact-invitation{margin-top:20px}
@media(max-width:900px){#about .about-hero{grid-template-columns:minmax(0,1.2fr) minmax(230px,.8fr);gap:32px;padding-top:45px}#about .mast h1{font-size:clamp(3rem,6vw,4.5rem)}#about .portrait-figure{max-width:360px}}
@media(max-width:700px){#about .about-hero{grid-template-columns:1fr;gap:35px;padding:38px 0 48px}#about .mast h1{font-size:clamp(3.2rem,10vw,5rem)}#about .portrait-figure{justify-self:start;max-width:370px}#about .profile{padding-bottom:20px}}
/* Consistent spacing rhythm across the existing page structures. */
#about .about-hero{gap:clamp(34px,5vw,66px);align-items:center;padding-block:52px 58px}
#about .mast h1{margin-bottom:25px;line-height:.99}
#about .hero-subtitle{margin-bottom:19px;line-height:1.4}
#about .hero-lede{line-height:1.72;max-width:57ch}
#about .portrait-figure{max-width:410px}
#about .profile{padding-top:27px;padding-bottom:36px}
#about .profile h2{margin-bottom:22px}
#about .profile p,#about .profile p.lead{line-height:1.78;margin-bottom:19px;max-width:86ch}
#about .profile p:last-child{margin-bottom:0}
.view:not(#about){padding-top:48px;padding-bottom:34px}
.view:not(#about)>.head{margin-bottom:29px}
#experience .entry{gap:36px;padding-block:27px}
#experience .entry:first-child{padding-top:28px}
#experience .entry .role{margin-bottom:10px}
#experience .job-copy{line-height:1.7}
#projects .project-report{padding-top:23px}
#projects .project-report>p{line-height:1.7;margin-bottom:15px}
#projects .case-detail{margin-top:28px}
#projects .project-gallery{margin-top:25px}
#leadership .tombs{gap:24px}
#leadership .tomb-in{padding:27px 30px}
#leadership .featured-club .tomb-in{column-gap:42px}
#leadership .club-copy p{line-height:1.7;margin-bottom:13px}
#leadership .club-copy p:last-child{margin-bottom:0}
#skills .degree-path{margin-bottom:34px}
#skills .degree-path .degree{padding-block:22px}
#skills .skill-band{margin-bottom:32px}
#skills .skill-band ul{column-gap:36px}
#skills .skill-band .skill-item{padding-block:15px 17px}
#skills .credentials-strip{padding-top:25px}
.contact.contact-invitation{margin-top:52px}
@media(max-width:900px){#about .about-hero{align-items:start;gap:32px;padding-block:42px 50px}#leadership .featured-club .tomb-in{column-gap:26px}}
@media(max-width:700px){#about .about-hero{gap:30px;padding-block:34px 43px}#about .profile{padding-bottom:20px}#experience .entry{padding-block:24px;gap:12px}#leadership .tomb-in{padding:24px}.view:not(#about){padding-top:38px}}
/* Let the existing copy use the same width as its adjacent images and rules. */
#projects .project-report>p:not(.proj-kind):not(.subtitle),
#projects .project-report .case-detail p{max-width:100%;width:100%}
#about .profile>div,#about .profile p,#about .profile p.lead{max-width:100%}
#skills>.head{margin-bottom:0}
#skills .academic-mast{margin-top:-18px;padding-bottom:0}
@media(max-width:700px){#skills .academic-mast{margin-top:-8px}}
/* Match the top edge of each dated involvement and close the logo gap. */
#leadership .tomb-in>.sc{margin:0 0 14px;min-height:0;line-height:1.4}
#leadership .tomb-in{justify-content:flex-start}
#skills .academic-mast{margin-top:-76px}
@media(max-width:700px){#skills .academic-mast{margin-top:-56px}}
/* A more comfortable reading size for the introduction. */
#about .profile p,#about .profile p.lead{font-size:1.125rem;line-height:1.72;max-width:100%}
@media(max-width:700px){#about .profile p,#about .profile p.lead{font-size:1.0625rem;line-height:1.72}}
.topbar li{font-size:12px;letter-spacing:.09em}
@media(max-width:600px){.topbar li{font-size:11px}}
@media(prefers-color-scheme:dark){body:has(#about:not([hidden])):not([data-theme="light"]){--about-accent:#e7bb62}}
:root[data-theme="dark"] body:has(#about:not([hidden])){--about-accent:#e7bb62}
@media(prefers-reduced-motion:no-preference){
  .view.enter{animation:page-reveal .42s cubic-bezier(.22,1,.36,1) both}
  .topbar a{transition:color .22s ease,border-color .22s ease}
  @keyframes page-reveal{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
}
/* Keep the short policy page's footer at the viewport bottom. */
body.privacy-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
.privacy-page>main.wrap{flex:1;display:flex;flex-direction:column;width:100%}
.privacy-page #privacy{flex:1}
