@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Fraunces:opsz,wght@9..144,500;9..144,600&display=swap";:root{color:#181512;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--paper:#f5f2ea;--paper-deep:#ece7dc;--ink:#181512;--muted:#6f6960;--faint:#948d83;--rule:#18151229;--rule-strong:#18151257;--accent:#8d3f51;--accent-soft:#8d3f511a;--page:min(1180px, calc(100vw - 64px));background:#f5f2ea;font-family:DM Sans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:7rem}body{min-width:320px;min-height:100vh;color:var(--ink);background:radial-gradient(circle at 80% 5%, #8d3f510e, transparent 28rem), var(--paper);margin:0}body:before{z-index:-1;content:"";pointer-events:none;opacity:.42;background-image:linear-gradient(#ffffff1f 1px,#0000 1px),linear-gradient(90deg,#ffffff1f 1px,#0000 1px);background-size:36px 36px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 42rem);mask-image:linear-gradient(#000,#0000 42rem)}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}svg{display:block}::selection{color:var(--ink);background:#8d3f5133}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.page-width{width:var(--page);margin-inline:auto}.skip-link{z-index:100;color:#fff;background:var(--ink);padding:.75rem 1rem;transition:transform .16s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:20;border-bottom:1px solid var(--rule);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f5f2eaf0;position:sticky;top:0}.site-header__inner{grid-template-columns:minmax(16rem,1fr) auto minmax(7rem,1fr);align-items:center;gap:2rem;min-height:78px;display:grid}.site-brand{align-items:center;gap:.8rem;width:max-content;display:inline-flex}.site-brand__mark{border:1px solid var(--rule-strong);border-radius:50%;flex:none;place-items:center;width:2.35rem;height:2.35rem;font-family:Fraunces,Georgia,serif;font-size:.88rem;font-weight:600;display:grid}.site-brand__text{gap:.12rem;display:grid}.site-brand__text strong{font-size:.94rem;font-weight:600}.site-brand__text small{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem}.site-nav{justify-content:center;align-items:center;gap:1.55rem;display:flex}.site-nav a,.header-resume{color:var(--muted);font-size:.83rem;font-weight:500;position:relative}.site-nav a:after,.header-resume:after{content:"";background:var(--ink);transform-origin:100%;height:1px;transition:transform .18s;position:absolute;bottom:-.35rem;left:0;right:0;transform:scaleX(0)}.site-nav a:hover,.header-resume:hover{color:var(--ink)}.site-nav a:hover:after,.header-resume:hover:after{transform-origin:0;transform:scaleX(1)}.header-resume{color:var(--ink);justify-self:end;align-items:center;gap:.35rem;display:inline-flex}.header-resume svg{width:.95rem}.hero{border-bottom:1px solid var(--rule);padding:clamp(4rem,8vw,7.5rem) 0 clamp(5rem,9vw,8rem)}.eyebrow{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.73rem;font-weight:600}.hero__eyebrow{border-bottom:1px solid var(--rule);padding-bottom:1.2rem}.hero__grid{grid-template-columns:minmax(0,1.25fr) minmax(21rem,.75fr);align-items:end;gap:clamp(4rem,9vw,8.5rem);padding-top:clamp(2.5rem,5vw,4.5rem);display:grid}.hero__name{color:var(--faint);letter-spacing:.18em;text-transform:uppercase;margin:0 0 1.2rem;font-size:.8rem;font-weight:500}.hero h1,.section-heading h2,.project-row h3,.experience-row h3,.education-row h3,.contact h2{letter-spacing:-.045em;font-family:Fraunces,Georgia,serif;font-weight:500}.hero h1{text-wrap:balance;max-width:9ch;margin:0;font-size:clamp(4.3rem,8.7vw,8.3rem);line-height:.91}.hero__summary{max-width:42rem;color:var(--muted);margin:2.1rem 0 0;font-size:clamp(1rem,1.5vw,1.18rem);line-height:1.75}.hero__actions{flex-wrap:wrap;gap:.75rem;margin-top:2.15rem;display:flex}.button{border:1px solid var(--ink);justify-content:center;align-items:center;gap:.55rem;min-height:46px;padding:.8rem 1.1rem;font-size:.84rem;font-weight:600;transition:color .18s,background .18s,transform .18s;display:inline-flex}.button svg{width:1rem}.button:hover{transform:translateY(-2px)}.button--primary{color:#fff;background:var(--ink)}.button--primary:hover{background:var(--accent);border-color:var(--accent)}.button--secondary:hover{color:#fff;background:var(--ink)}.profile-ledger{border-top:1px solid var(--rule-strong)}.profile-ledger__row{border-bottom:1px solid var(--rule);gap:.35rem;padding:1.3rem 0;display:grid}.profile-ledger__row p,.profile-ledger__row strong,.profile-ledger__row span{margin:0}.profile-ledger__row p{color:var(--accent);letter-spacing:.13em;text-transform:uppercase;font-size:.69rem;font-weight:600}.profile-ledger__row strong{font-family:Fraunces,Georgia,serif;font-size:1.28rem;font-weight:500;line-height:1.25}.profile-ledger__row span{color:var(--muted);font-size:.84rem;line-height:1.55}.section{border-bottom:1px solid var(--rule);padding:clamp(5rem,9vw,8.5rem) 0}.section--tinted{background:#ece7dc94}.section-heading{grid-template-columns:4rem minmax(18rem,1fr) minmax(18rem,.72fr);align-items:end;gap:2rem;padding-bottom:2.4rem;display:grid}.section-heading--compact{grid-template-columns:4rem 1fr}.section-heading__number{color:var(--faint);margin:0;font-family:Fraunces,Georgia,serif;font-size:1.2rem}.section-heading h2{text-wrap:balance;max-width:16ch;margin:.5rem 0 0;font-size:clamp(2.8rem,5vw,5rem);line-height:.98}.section-heading__intro{color:var(--muted);margin:0;font-size:.96rem;line-height:1.72}.project-ledger,.experience-ledger,.skills-ledger,.education-ledger{border-top:1px solid var(--rule-strong)}.project-row{border-bottom:1px solid var(--rule);grid-template-columns:8.5rem minmax(18rem,1fr) minmax(20rem,.92fr);gap:clamp(2rem,5vw,5rem);padding:2.6rem 0;display:grid}.project-row__index{align-content:start;gap:.55rem;display:grid}.project-row__index span{color:var(--accent);font-family:Fraunces,Georgia,serif;font-size:1.55rem}.project-row__index p,.project-row__index small{color:var(--muted);margin:0;font-size:.76rem;line-height:1.45}.project-row h3{margin:0;font-size:clamp(2.4rem,4vw,4.2rem);line-height:1}.project-row__main>p{max-width:43rem;color:var(--muted);margin:1.1rem 0 0;font-size:.98rem;line-height:1.75}.project-row__details ul,.experience-row__detail ul{padding:0;list-style:none}.project-row__details ul{margin:0}.experience-row__detail ul{margin:.8rem 0 0}.project-row__details li,.experience-row__detail li{color:var(--muted);padding-left:1.1rem;font-size:.88rem;line-height:1.62;position:relative}.project-row__details li+li,.experience-row__detail li+li{margin-top:.55rem}.project-row__details li:before,.experience-row__detail li:before{content:"";background:var(--accent);border-radius:50%;width:.32rem;height:.32rem;position:absolute;top:.69em;left:0}.project-row__stack{border-top:1px solid var(--rule);color:var(--faint);margin:1.25rem 0 0;padding-top:1rem;font-size:.74rem;line-height:1.6}.experience-row{border-bottom:1px solid var(--rule);grid-template-columns:9rem minmax(17rem,.8fr) minmax(22rem,1.2fr);gap:clamp(2rem,5vw,5rem);padding:2.4rem 0;display:grid}.experience-row__dates{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:600}.experience-row__role h3{margin:0;font-size:clamp(1.55rem,2.2vw,2.25rem);line-height:1.08}.experience-row__role p,.experience-row__detail>p{color:var(--muted);margin:.65rem 0 0;font-size:.9rem;line-height:1.65}.experience-row__detail>p{color:var(--ink);margin-top:0}.skills-ledger{margin-left:6rem}.skills-ledger__row{border-bottom:1px solid var(--rule);grid-template-columns:minmax(11rem,.36fr) 1fr;gap:2rem;padding:1.35rem 0;display:grid}.skills-ledger dt{font-family:Fraunces,Georgia,serif;font-size:1.2rem}.skills-ledger dd{color:var(--muted);margin:0;font-size:.9rem;line-height:1.65}.education-ledger{margin-left:6rem}.education-row{border-bottom:1px solid var(--rule);grid-template-columns:9rem minmax(20rem,1fr) minmax(18rem,.8fr);align-items:baseline;gap:2rem;padding:2rem 0;display:grid}.education-row>p{color:var(--muted);margin:0;font-size:.82rem;line-height:1.6}.education-row h3{margin:0;font-size:clamp(1.65rem,2.4vw,2.35rem);line-height:1.1}.education-row div p{color:var(--accent);margin:.4rem 0 0;font-size:.82rem;font-weight:600}.education-row--certification h3{font-size:clamp(1.35rem,2vw,1.9rem)}.contact{color:#f5f2ea;background:var(--ink);padding:clamp(5rem,9vw,8rem) 0}.contact__grid{grid-template-columns:minmax(18rem,.8fr) minmax(22rem,1.2fr);gap:clamp(4rem,10vw,9rem);display:grid}.contact .eyebrow{color:#c78a9a}.contact h2{margin:.75rem 0 0;font-size:clamp(3.5rem,7vw,6.5rem);line-height:.94}.contact__grid>div:first-child>p:last-child{color:#f5f2ea9e;max-width:28rem;margin:1.5rem 0 0;line-height:1.7}.contact__links{border-top:1px solid #f5f2ea52}.contact__links a,.contact__links>div{border-bottom:1px solid #f5f2ea2e;grid-template-columns:1.1rem 6rem 1fr;align-items:center;gap:1rem;padding:1.15rem 0;display:grid}.contact__links a{transition:color .16s,padding .16s}.contact__links a:hover{color:#e4a9b9;padding-left:.5rem}.contact__links svg{width:1rem}.contact__links span{color:#f5f2ea8c;text-transform:uppercase;letter-spacing:.09em;font-size:.75rem}.contact__links strong{overflow-wrap:anywhere;min-width:0;font-size:.86rem;font-weight:500}.site-footer{color:#f5f2ea99;background:var(--ink)}.site-footer__inner{border-top:1px solid #f5f2ea26;justify-content:space-between;gap:1rem;padding:1.4rem 0 2rem;display:flex}.site-footer p,.site-footer a{margin:0;font-size:.75rem}.site-footer a:hover{color:#fff}@media (width<=1000px){:root{--page:min(100% - 40px, 1180px)}.site-header__inner{grid-template-columns:1fr auto;padding:.8rem 0 .7rem}.site-nav{scrollbar-width:none;grid-area:2/1/auto/-1;justify-content:flex-start;gap:1.25rem;padding:.15rem 0 .35rem;overflow-x:auto}.site-nav::-webkit-scrollbar{display:none}.hero__grid{grid-template-columns:1fr;gap:3.5rem}.profile-ledger{grid-template-columns:repeat(3,1fr);display:grid}.profile-ledger__row{border-right:1px solid var(--rule);padding:1.15rem}.profile-ledger__row:first-child{padding-left:0}.profile-ledger__row:last-child{border-right:0}.section-heading{grid-template-columns:3rem 1fr}.section-heading__intro{grid-column:2;max-width:42rem}.project-row,.experience-row{grid-template-columns:7rem 1fr;gap:1.5rem 2.5rem}.project-row__details,.experience-row__detail{grid-column:2}.skills-ledger,.education-ledger{margin-left:5rem}.education-row{grid-template-columns:8rem 1fr}.education-row>p:last-child{grid-column:2}}@media (width<=700px){:root{--page:min(100% - 28px, 1180px)}html{scroll-padding-top:8rem}.site-brand__text small{display:none}.site-nav{gap:1rem}.site-nav a{white-space:nowrap}.hero{padding-top:3.5rem}.hero__eyebrow{line-height:1.6}.hero h1{font-size:clamp(3.7rem,17vw,6rem)}.hero__actions{display:grid}.button{width:100%}.profile-ledger{display:block}.profile-ledger__row,.profile-ledger__row:first-child{border-right:0;padding:1.2rem 0}.section-heading,.section-heading--compact{grid-template-columns:2rem 1fr;gap:1rem}.section-heading__intro{grid-column:1/-1;padding-left:3rem}.section-heading h2{font-size:clamp(2.45rem,13vw,4rem)}.project-row,.experience-row{grid-template-columns:1fr;gap:1.1rem;padding:2rem 0}.project-row__index{grid-template-columns:auto 1fr auto;align-items:baseline;display:grid}.project-row__main,.project-row__details,.experience-row__role,.experience-row__detail{grid-column:1}.project-row h3{font-size:clamp(2.35rem,12vw,3.4rem)}.skills-ledger,.education-ledger{margin-left:0}.skills-ledger__row,.education-row{grid-template-columns:1fr;gap:.65rem}.education-row>p:last-child{grid-column:1}.contact__grid{grid-template-columns:1fr;gap:3rem}.contact__links a,.contact__links>div{grid-template-columns:1rem 4.8rem 1fr;gap:.65rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{.site-header,.hero__actions,.site-footer{display:none!important}body{background:#fff}.section,.hero,.contact{color:#000;break-inside:avoid;background:#fff}}
