@font-face{font-family:protest strike;src:url(../fonts/protest-strike.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:inter;src:url(../fonts/inter-var.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:space mono;src:url(../fonts/space-mono-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:space mono;src:url(../fonts/space-mono-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0d0e10;--bg-elev:#141619;--surface:#17191d;--text:#e9eaec;--text-dim:#9a9ea6;--text-faint:#676b73;--line:#24272c;--line-strong:#383c43;--accent:#c7d1d9;--font-display:"Protest Strike", "Helvetica Neue", Arial, sans-serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"Space Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--max:1320px;--pad:clamp(1.25rem, 5vw, 4rem)}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);color:var(--text);background:var(--bg);line-height:1.7;min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:#0b0c0e}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.mono{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--text-faint)}.site-header{position:sticky;top:0;z-index:100;background:rgba(13,14,16,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.header-inner{max-width:var(--max);margin:0 auto;padding:1.1rem var(--pad);display:flex;align-items:center;justify-content:space-between}.site-title{font-family:var(--font-display);font-weight:400;font-size:1.15rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text)}.site-nav{display:flex;gap:2.25rem}.site-nav a{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);padding:.2rem 0;position:relative;transition:color .25s}.site-nav a::after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .28s ease}.site-nav a:hover{color:var(--text)}.site-nav a:hover::after,.site-nav a.active::after{transform:scaleX(1)}.site-nav a.active{color:var(--text)}.nav-toggle{display:none;background:0 0;border:none;cursor:pointer;padding:.4rem;flex-direction:column;gap:5px}.nav-toggle span{display:block;width:24px;height:1.5px;background:var(--text);transition:transform .3s,opacity .3s}.site-main{flex:1;width:100%}.shell{max-width:var(--max);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}.hero{position:relative;min-height:84vh;display:flex;flex-direction:column;justify-content:center;padding:7rem var(--pad)0;max-width:var(--max);margin:0 auto;overflow:hidden}.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 85% -10%,rgba(120,150,175,.14),transparent 55%);pointer-events:none}.hero-eyebrow{margin-bottom:2rem}.hero h1{font-family:var(--font-display);font-weight:400;font-size:clamp(3.4rem,14vw,12rem);line-height:.92;letter-spacing:.005em;text-transform:uppercase;margin:0}.hero h1 .lastname{color:var(--text-dim)}.hero-lede{max-width:30ch;margin-top:2rem;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.55;color:var(--text-dim)}.hero-cta{display:inline-flex;align-items:center;gap:.6rem;margin-top:2.5rem;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text)}.hero-cta .arrow{transition:transform .3s}.hero-cta:hover{color:var(--accent)}.hero-cta:hover .arrow{transform:translateX(6px)}.hero-meta{margin-top:auto;padding:1.4rem 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem}.section{max-width:var(--max);margin:0 auto;padding:clamp(3.5rem,8vw,6.5rem)var(--pad)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-bottom:1.6rem;margin-bottom:2.5rem;border-bottom:1px solid var(--line)}.section-head h2{font-family:var(--font-display);font-weight:400;font-size:clamp(1.5rem,3vw,2.2rem);letter-spacing:.01em;text-transform:uppercase}.gallery{column-count:3;column-gap:clamp(1rem,2vw,1.6rem)}.gallery-item{display:block;break-inside:avoid;margin-bottom:clamp(1rem,2vw,1.6rem);cursor:zoom-in}.gallery-figure{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line)}.gallery-item img{width:100%;height:auto;transition:transform .6s cubic-bezier(.2,.7,.2,1),opacity .6s}.gallery-item:hover img{transform:scale(1.04)}.gallery-figure::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px var(--accent);opacity:0;transition:opacity .3s}.gallery-item:hover .gallery-figure::after{opacity:.6}.gallery-caption{display:flex;align-items:baseline;justify-content:space-between;gap:.9rem;margin-top:.7rem}.gallery-caption .ttl{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.02em;color:var(--text-dim);transition:color .25s}.gallery-caption .meta{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.05em;color:var(--text-faint);white-space:nowrap;flex-shrink:0}.gallery-item:hover .gallery-caption .ttl{color:var(--text)}.featured-more{margin-top:3rem;text-align:center}.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 2rem;border:1px solid var(--line-strong);font-family:var(--font-mono);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text);transition:border-color .3s,background .3s,color .3s}.btn:hover{border-color:var(--accent);color:var(--accent)}.page{max-width:760px;margin:0 auto;padding:clamp(4rem,9vw,7rem)var(--pad)}.page-title{font-family:var(--font-display);font-weight:400;font-size:clamp(2.2rem,6vw,3.6rem);letter-spacing:-.01em;text-transform:uppercase;margin-bottom:2.5rem}.page-content{font-size:1.06rem;color:var(--text-dim)}.page-content strong{color:var(--text);font-weight:600}.page-content p{margin-bottom:1.2rem}.page-content a{color:var(--text);border-bottom:1px solid var(--line-strong);transition:border-color .25s}.page-content a:hover{border-color:var(--accent);color:var(--accent)}.page-content h2{font-family:var(--font-mono);font-weight:700;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);margin:2.6rem 0 1rem}.page-content h3{font-family:var(--font-body);font-weight:600;font-size:1.05rem;color:var(--text);margin:1.6rem 0 .6rem}.about{max-width:var(--max);margin:0 auto;padding:clamp(3.5rem,8vw,6rem)var(--pad);display:grid;grid-template-columns:minmax(0,340px)minmax(0,1fr);gap:clamp(2rem,6vw,5rem);align-items:start}.about-aside{position:sticky;top:6rem}.about-portrait{width:100%;aspect-ratio:3/4;object-fit:cover;background:var(--surface);border:1px solid var(--line);filter:grayscale(.15)contrast(1.03)}.about-aside .mono{display:block;margin-top:1rem}.about-name{font-family:var(--font-display);font-weight:400;font-size:clamp(2.2rem,5vw,3.2rem);line-height:1;letter-spacing:-.01em;text-transform:uppercase;margin-bottom:1.5rem}.about-intro{font-size:1.15rem;line-height:1.6;color:var(--text);max-width:60ch}.about-intro p{margin-bottom:1.1rem}.about-block{margin-top:3rem}.about-block>.mono{display:block;padding-bottom:.8rem;margin-bottom:1.4rem;border-bottom:1px solid var(--line)}.cv-row{display:grid;grid-template-columns:7.5rem 1fr;gap:1rem 1.5rem;padding:.7rem 0}.cv-row+.cv-row{border-top:1px solid var(--line)}.cv-year{font-family:var(--font-mono);font-size:.8rem;color:var(--text-faint);letter-spacing:.04em;padding-top:.15rem}.cv-entry .t{color:var(--text);font-weight:500}.cv-entry .s{color:var(--text-dim);font-size:.95rem}.cv-entry .row{margin-bottom:.5rem}.cv-entry .row:last-child{margin-bottom:0}.statement{font-family:var(--font-body);font-size:1.15rem;line-height:1.75;color:var(--text-dim);max-width:62ch}.statement p{margin-bottom:1.2rem}.site-footer{border-top:1px solid var(--line);margin-top:auto;background:var(--bg-elev)}.footer-inner{max-width:var(--max);margin:0 auto;padding:2.5rem var(--pad);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.footer-inner p,.footer-inner a{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint)}.footer-inner a{transition:color .25s}.footer-inner a:hover{color:var(--text)}.lightbox{position:fixed;inset:0;background:rgba(8,9,10,.96);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s}.lightbox.active{opacity:1;pointer-events:auto}.lightbox-content{max-width:92vw;max-height:88vh;display:flex;flex-direction:column;align-items:center}.lightbox-content img{max-width:92vw;max-height:82vh;object-fit:contain}.lightbox-caption{font-family:var(--font-mono);color:var(--text-dim);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;margin-top:1.2rem;text-align:center}.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;background:0 0;border:none;color:var(--text);cursor:pointer;font-size:2.4rem;padding:1rem;opacity:.65;transition:opacity .2s}.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{opacity:1}.lightbox-close{top:.8rem;right:1.2rem;font-size:2rem}.lightbox-prev{left:1rem;top:50%;transform:translateY(-50%)}.lightbox-next{right:1rem;top:50%;transform:translateY(-50%)}@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.reveal{animation:rise .8s cubic-bezier(.2,.7,.2,1)both}.reveal-2{animation-delay:.12s}.reveal-3{animation-delay:.24s}.reveal-4{animation-delay:.36s}@media(max-width:980px){.gallery{column-count:2}.about{grid-template-columns:1fr}.about-aside{position:static;max-width:320px}}@media(max-width:620px){.nav-toggle{display:flex}.site-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--bg-elev);border-bottom:1px solid var(--line);flex-direction:column;gap:1.1rem;padding:1.4rem var(--pad)}.site-nav.open{display:flex}.hero{min-height:78vh;padding-top:5rem}.gallery{column-count:1}.cv-row{grid-template-columns:1fr;gap:.2rem;padding:.9rem 0}.footer-inner{flex-direction:column;align-items:flex-start}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto !important}.reveal{animation:none}.gallery-item img,.hero-cta .arrow{transition:none}}