@font-face{font-family:"Playfair Display";src:url("../fonts/playfair-display-900-latin.woff2") format("woff2");font-style:normal;font-weight:900;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url("../fonts/barlow-condensed-700-latin.woff2") format("woff2");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("../fonts/ibm-plex-mono-400-latin.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Pacifico;src:url("../fonts/pacifico-400-latin.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}

[hidden] { display: none !important; }

:root{--ink:#111;--paper:#f7f7f7;--muted:#676765;--line:#d4d4d0;--serif:"Playfair Display",Georgia,serif;--heading:"Barlow Condensed",Impact,sans-serif;--mono:"IBM Plex Mono","Courier New",monospace;--script:Pacifico,cursive}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0;background:var(--paper);color:var(--ink);font-family:var(--mono)}img{max-width:100%;height:auto}a{color:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--ink);outline-offset:4px}.section-pad{padding-left:4vw;padding-right:4vw}.site-header{position:relative;z-index:2}.logo{font:400 clamp(1.3rem,2vw,1.8rem)/1 var(--script);text-decoration:none}.header-actions{display:flex;gap:.5rem;align-items:center}.button{font:700 .72rem/1 var(--mono);letter-spacing:.04em;transition:background-color .15s,color .15s,transform .15s}.button:hover{background:var(--ink);color:var(--paper);transform:translate(-2px,-2px)}.button--solid{background:var(--ink);color:var(--paper);border:0}.button--solid:hover{box-shadow:4px 4px 0 var(--line)}.eyebrow{margin:0;font-size:.7rem;font-weight:700;letter-spacing:.11em}.hero{position:relative;display:flex;flex-direction:column;justify-content:center}.hero h1{position:relative;z-index:1;font-family:var(--serif);font-weight:900}.portrait-card{position:absolute;z-index:0;top:22%;left:62%;width:clamp(8rem,19vw,18rem);aspect-ratio:4/5;object-fit:cover;border:3px solid var(--ink);border-radius:9rem 9rem 1.5rem 1.5rem;box-shadow:10px 10px 0 var(--ink)}.hero-bottom{display:flex;align-items:end;justify-content:flex-end;gap:1rem;margin-top:clamp(2rem,7vw,7rem)}.hero-arrow{width:clamp(5rem,10vw,10rem);transform:rotate(-14deg)}.hero-tagline{margin:0}.about{padding-top:clamp(4rem,11vw,11rem)}h2{font:900 clamp(4rem,11vw,12rem)/.8 var(--serif);letter-spacing:-.075em;margin:.1em 0 .55em}h3{margin:0}.about-panel{display:grid;place-items:center;min-height:clamp(22rem,48vw,50rem);padding:9vw 8vw;background:var(--ink);color:var(--paper)}.about-panel p{max-width:1100px;margin:0;font:700 clamp(1.65rem,4.5vw,5rem)/.98 var(--heading);letter-spacing:.008em}.skills{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding-top:clamp(3rem,6vw,6rem);padding-bottom:clamp(5rem,11vw,11rem)}.skill-group h3{margin:0 0:.8rem;font:700 1.15rem/1 var(--heading);text-transform:uppercase}.skill-group ul{display:flex;flex-wrap:wrap;gap:.65rem;margin:0;padding:0;list-style:none}.skill-tile{display:flex;align-items:center;gap:.45rem;min-height:3rem;padding:.75rem;background:#fff;border-radius:.75rem;box-shadow:4px 4px 11px #00000016;font-size:.68rem}.skill-tile svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.8}.principles{padding-top:clamp(3rem,7vw,7rem);padding-bottom:clamp(6rem,11vw,11rem);border-top:1px solid var(--line)}.principles-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.25rem}.principle-card{padding:1.6rem;border:3px solid var(--ink);box-shadow:8px 8px 0 var(--ink)}.principle-card:nth-child(2){transform:translateY(2rem)}.principle-card:nth-child(3){transform:translateY(4rem)}.principle-number{font:700 1rem var(--mono)}.principle-card h3{margin:3rem 0 1rem;font:700 clamp(2rem,3vw,3.4rem)/.85 var(--heading);text-transform:uppercase}.principle-card p{font-size:.78rem;line-height:1.7}.principle-card mark{background:var(--ink);color:var(--paper);padding:0 .15em}#projects{padding:clamp(4rem,10vw,10rem) 0;background:#eaeae6}.projects-list{counter-reset:project}.project-row{position:relative;display:grid;grid-template-columns:minmax(5rem,.35fr) minmax(0,1fr) minmax(14rem,1fr);gap:clamp(1rem,4vw,5rem);align-items:center;counter-increment:project;padding:clamp(2rem,6vw,6rem) 0;border-top:1px solid var(--ink)}.project-row:last-child{border-bottom:1px solid var(--ink)}.project-index{margin:0;font:900 clamp(4rem,8vw,9rem)/.7 var(--heading);color:transparent;-webkit-text-stroke:1.5px var(--ink)}.project-index:before{content:counter(project,decimal-leading-zero)}.project-copy p{max-width:37rem;margin:1.1rem 0;font-size:.76rem;line-height:1.8}.project-titleline{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.project-copy h3{font:700 clamp(2.5rem,5vw,6rem)/.85 var(--heading);text-transform:uppercase}.project-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0:1.25rem;padding:0;list-style:none}.project-tags li,.status-pill{padding:.38rem .5rem;border:1px solid var(--ink);font-size:.61rem;font-weight:700;letter-spacing:.06em}.status-pill{background:var(--ink);color:var(--paper);white-space:nowrap}.project-image{order:-1;width:100%;border:3px solid var(--ink);box-shadow:8px 8px 0 var(--ink)}.project-row:nth-child(even) .project-image{order:initial}.project-row--no-media{grid-template-columns:minmax(5rem,.35fr) minmax(0,1fr)}.certifications{padding-top:clamp(5rem,11vw,11rem);padding-bottom:clamp(5rem,11vw,11rem)}.certificate-list{margin:0;padding:0;list-style:none}.certificate-list li{border-top:1px solid var(--ink)}.certificate-list a{display:flex;justify-content:space-between;padding:1rem 0;text-decoration:none}.site-footer{overflow:hidden;background:var(--ink);color:var(--paper);padding-top:clamp(4rem,10vw,10rem)}.availability{display:inline-flex;gap:.5rem;align-items:center;margin:0;padding:.55rem .8rem;border:1px solid currentColor;border-radius:999px;font-size:.66rem}.footer-top h2{margin-top:.3em;font-size:clamp(4.3rem,13vw,14rem)}.footer-email{font:700 clamp(1rem,2.5vw,2.7rem)/1 var(--heading);text-decoration-thickness:2px;text-underline-offset:.15em}.footer-meta{display:grid;grid-template-columns:1fr auto auto;gap:1rem;align-items:end;margin-top:clamp(5rem,14vw,14rem);padding-bottom:1.5rem;font-size:.67rem}.footer-meta nav{display:flex;flex-wrap:wrap;gap:1rem}.footer-meta a{text-underline-offset:.2em}.footer-meta p{margin:0}.footer-name{margin:0 -.05em -.17em;font:900 clamp(3.45rem,13.45vw,17rem)/.8 var(--serif);letter-spacing:-.09em;white-space:nowrap}.cursor{display:none}.not-found{min-height:100svh;display:grid;place-items:center}.not-found main{max-width:52rem;padding:8vw}.not-found h1{font:900 clamp(4rem,12vw,10rem)/.8 var(--serif);letter-spacing:-.07em;margin:.25em 0}
@media (pointer:fine){body{cursor:none}a,button{cursor:none}.cursor{position:fixed;z-index:9;display:block;top:-7px;left:-7px;width:14px;height:14px;border-radius:50%;background:var(--ink);pointer-events:none;opacity:0;transition:width .16s,height .16s,opacity .16s,background-color .16s;will-change:transform}.cursor--visible{opacity:1}.cursor--active{width:30px;height:30px;margin:-8px;background:var(--paper);border:1px solid var(--ink);mix-blend-mode:difference}}
@media (max-width:820px){.site-header{padding-left:5vw;padding-right:5vw}.header-actions{gap:.35rem}.button{min-height:2.35rem;padding:.6rem .65rem;font-size:.63rem}.hero{padding-left:5vw;padding-right:5vw}.hero h1{font-size:clamp(4.5rem,17vw,8.5rem)}.portrait-card{top:35%;left:58%;width:clamp(7rem,24vw,12rem)}.hero-bottom{margin-top:4rem}.section-pad{padding-left:5vw;padding-right:5vw}.skills{grid-template-columns:repeat(2,1fr)}.principles-grid{grid-template-columns:1fr;gap:1rem}.principle-card:nth-child(n){transform:none}.project-row,.project-row--no-media{grid-template-columns:4.5rem minmax(0,1fr)}.project-image{grid-column:2;order:initial!important}.footer-meta{grid-template-columns:1fr;align-items:start}.footer-name{font-size:14.2vw}}
@media (max-width:480px){.header-actions .button--quiet:first-child{display:none}.hero{min-height:35rem}.portrait-card{top:33%;left:auto;right:5%;width:8rem}.hero-bottom{align-items:center}.hero-arrow{width:4.5rem}.hero-tagline{font-size:.72rem}.skills{grid-template-columns:1fr}.skill-group{padding-bottom:.75rem;border-bottom:1px solid var(--line)}.project-copy h3{font-size:2.65rem}.project-index{font-size:4.3rem}.project-row,.project-row--no-media{gap:.75rem;grid-template-columns:3.5rem minmax(0,1fr)}.availability{font-size:.58rem}.footer-email{font-size:1.45rem}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.certifications{position:relative}.certificate-list li:last-child{border-bottom:1px solid var(--ink)}.certificate-link{align-items:center;gap:1rem}.certificate-link strong{display:block;font:700 clamp(1.6rem,3vw,3.4rem)/.9 var(--heading);text-transform:uppercase}.certificate-link small{font-size:.65rem}.certificate-preview{position:fixed;z-index:5;width:min(23vw,18rem);border:3px solid var(--ink);box-shadow:8px 8px 0 var(--ink);pointer-events:none;opacity:0;transform:translate3d(-50%,-50%,0) scale(.94);transition:opacity .15s,transform .15s}.certificate-preview--visible{opacity:1;transform:translate3d(-50%,-50%,0) scale(1)}

/* Hero portrait treatment */
.hero{min-height:calc(100svh - 5.5rem);padding-top:clamp(1rem,3vw,3rem);padding-bottom:clamp(2rem,5vw,5rem);overflow:clip}
.hero-stage{position:relative;min-height:clamp(30rem,48vw,48rem);margin-top:clamp(.75rem,2vw,2rem)}
.hero h1{position:absolute;z-index:2;top:5%;left:-.06em;width:calc(100% + .12em);margin:0;font-size:clamp(5rem,12.2vw,14.5rem);line-height:.72;letter-spacing:-.095em;text-transform:uppercase;white-space:nowrap;pointer-events:none}
.hero h1 span+span{margin-left:.13em}
.portrait-card{top:17%;right:4%;left:auto;width:clamp(18rem,42vw,42rem);height:clamp(25rem,42vw,44rem);aspect-ratio:auto;object-fit:cover;object-position:center;border:0;border-radius:2rem;box-shadow:0 1.25rem 2.5rem #00000022}
.hero-bottom{position:relative;z-index:3;justify-content:flex-start;margin-top:clamp(-3rem,-2vw,-1rem);padding-left:clamp(1rem,14vw,16rem)}
.hero-arrow{width:clamp(4rem,7vw,7rem)}

@media (max-width:820px){.hero-stage{min-height:clamp(28rem,94vw,40rem)}.hero h1{top:4%;font-size:clamp(4.2rem,15.4vw,8rem);white-space:normal}.hero h1 span{display:block}.hero h1 span+span{margin-left:clamp(3rem,12vw,8rem)}.portrait-card{top:27%;right:0;width:clamp(16rem,64vw,30rem);height:clamp(22rem,68vw,34rem);border-radius:1.5rem}.hero-bottom{margin-top:-1rem;padding-left:0;justify-content:flex-end}}
@media (max-width:480px){.hero{min-height:42rem}.hero-stage{min-height:31rem}.hero h1{font-size:clamp(4rem,18vw,5.5rem);line-height:.76}.hero h1 span+span{margin-left:1.1em}.portrait-card{top:32%;width:75vw;height:23rem;border-radius:1.25rem}.hero-bottom{gap:.5rem}.hero-tagline{max-width:14rem}}
