@font-face{font-family:"Fraunces";font-style:normal;font-weight:300 700;font-display:swap;src:url("../fonts/fraunces-var.woff2") format("woff2")}
@font-face{font-family:"Fraunces";font-style:italic;font-weight:300 700;font-display:swap;src:url("../fonts/fraunces-italic-var.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:400 600;font-display:swap;src:url("../fonts/inter-var.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400 500;font-display:swap;src:url("../fonts/plexmono-400.woff2") format("woff2")}
:root{--bone:#f3eee6;--bone-dim:#e9e2d5;--espresso:#17130f;--cobalt:#1e47e6;--amber:#c8893b;--ink-soft:rgba(23,19,15,.72);--milk-soft:rgba(243,238,230,.68);--line-dark:rgba(243,238,230,.16);--line-light:rgba(23,19,15,.16);--display:"Fraunces",Georgia,serif;--body:"Inter",Arial,sans-serif;--mono:"IBM Plex Mono",monospace;--max:1120px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--espresso)}
body{margin:0;background:var(--bone);color:var(--espresso);font-family:var(--body);font-size:1rem;line-height:1.7}
img{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:3px solid var(--cobalt);outline-offset:4px}
.skip{position:absolute;left:-999px;top:0;background:var(--cobalt);color:#fff;padding:.7rem 1rem;z-index:20}.skip:focus{left:0}
.shell{width:min(var(--max),calc(100% - 40px));margin:auto}
.nav{background:var(--espresso);color:var(--bone);border-bottom:1px solid var(--line-dark)}
.nav-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.brand{display:flex;align-items:baseline;gap:.55rem;text-decoration:none}.brand strong{font-family:var(--display);font-style:italic;font-size:1.28rem;font-weight:480}.brand span{font-family:var(--mono);font-size:.66rem;letter-spacing:.25em;color:var(--milk-soft)}
.nav-links{display:flex;flex-wrap:wrap;gap:.7rem 1.3rem;list-style:none;margin:0;padding:0}.nav-links a{font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--milk-soft);text-underline-offset:4px}.nav-links a[aria-current="page"]{color:var(--bone);text-decoration-color:var(--cobalt)}
.hero{background:var(--espresso);color:var(--bone);padding:clamp(4rem,9vw,8rem) 0 clamp(4.5rem,9vw,7.5rem)}
.kicker{font-family:var(--mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--milk-soft);margin:0}
h1,h2,h3{font-family:var(--display);font-weight:450;letter-spacing:-.02em;line-height:1.04;margin:0}
h1{font-size:clamp(3rem,8vw,6.6rem);max-width:14ch;margin-top:1.4rem}
.hero .lede{font-size:clamp(1.05rem,2vw,1.3rem);line-height:1.65;color:var(--milk-soft);max-width:66ch;margin:1.6rem 0 0}
.hero-links{display:flex;flex-wrap:wrap;gap:.8rem 1.4rem;margin-top:2rem}.hero-links a{font-family:var(--mono);font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;text-underline-offset:5px}
.section{padding:clamp(4rem,8vw,7.5rem) 0}
.section--tint{background:var(--bone-dim)}
.section h2{font-size:clamp(2.2rem,5vw,4.2rem);max-width:18ch}
.section .intro{max-width:70ch;color:var(--ink-soft);margin:1.2rem 0 0}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem clamp(1.5rem,4vw,4rem);margin-top:clamp(2.5rem,5vw,4.5rem)}
.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{border-top:1px solid var(--line-light);padding:1.4rem 0 1.8rem}.card h3{font-size:clamp(1.35rem,2.3vw,1.8rem)}.card p,.card li{color:var(--ink-soft)}.card p{margin:.7rem 0 0}.card ul,.card ol{padding-left:1.2rem;margin:.8rem 0 0}.card a{font-family:var(--mono);font-size:.7rem;letter-spacing:.11em;text-transform:uppercase;text-underline-offset:4px}
.profile{display:grid;grid-template-columns:minmax(260px,.75fr) 1.25fr;gap:clamp(1.5rem,5vw,5rem);align-items:center;margin-top:clamp(2.5rem,5vw,4.5rem)}
.profile img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:60% 22%;background:#211a13}
.profile h2{font-size:clamp(2.2rem,5vw,4rem)}.profile .role{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.profile p{color:var(--ink-soft);max-width:58ch}
.metric{font-family:var(--mono);font-size:clamp(2.4rem,5vw,4rem);line-height:1;color:var(--amber);margin:.8rem 0}
.project{scroll-margin-top:2rem;border-top:1px solid var(--line-light);padding:clamp(2rem,4vw,3.5rem) 0;display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(1.5rem,5vw,5rem)}
.project h2{font-size:clamp(2rem,4vw,3.4rem)}.project p,.project li{color:var(--ink-soft)}.project ul{padding-left:1.2rem}.project .note{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;line-height:1.7}.project-links{display:flex;flex-wrap:wrap;gap:.7rem 1.2rem;margin-top:1.3rem}.project-links a{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;text-underline-offset:4px}
.prose{width:min(760px,100%)}.prose h2{font-size:clamp(1.7rem,3vw,2.4rem);margin-top:2.6rem}.prose h3{font-size:1.35rem;margin-top:2rem}.prose p,.prose li{color:var(--ink-soft)}.prose ul,.prose ol{padding-left:1.25rem}
.callout{border:1px solid var(--line-light);padding:1.4rem 1.5rem;margin-top:2rem;background:rgba(255,255,255,.2)}
.footer{background:var(--espresso);color:var(--bone);padding:2.6rem 0}.footer-inner{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:1.2rem 2rem}.footer p{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;color:var(--milk-soft);margin:0}.footer-links{display:flex;flex-wrap:wrap;gap:.5rem 1rem;list-style:none;padding:0;margin:0}.footer-links a{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--milk-soft);text-underline-offset:4px}
@media(max-width:820px){.nav-inner{align-items:flex-start;padding:1rem 0;flex-direction:column}.grid,.grid--3,.profile,.project{grid-template-columns:1fr}.nav-links{gap:.45rem .9rem}h1{font-size:clamp(2.8rem,13vw,4.5rem)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
