@font-face{font-family:Archivo;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/archivo-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f3f2f2;--color-surface:#eae9e9;--color-text:#201e1d;--color-accent:#ec3013;--color-accent-fill:#d3280e;--color-on-accent:#f3f2f2;--color-divider:#201e1d66;--color-neutral-100:#f8f4f4;--color-neutral-300:#d7d3d3;--color-neutral-700:#605d5d;--color-neutral-800:#444141;--color-accent-100:#fff2ef;--color-accent-600:#dd2b0f;--color-accent-700:#ae1800;--color-accent-800:#7c1405;--ink:32, 30, 29;--font-heading:"Archivo", system-ui, sans-serif;--font-body:"Archivo", system-ui, sans-serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--radius-md:0px;--gutter:clamp(20px, 4vw, 48px);--ease-out:cubic-bezier(.16, 1, .3, 1)}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#141312;--color-accent-fill:#ec3013;--color-on-accent:#000;--color-surface:#1e1c1b;--color-text:#f3f2f2;--color-divider:#f3f2f257;--color-neutral-100:#1e1c1b;--color-neutral-300:#3a3635;--color-neutral-700:#b6b1b0;--color-neutral-800:#d9d5d4;--color-accent-700:#ff9783;--ink:243, 242, 242}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);margin:0;font-size:15px;line-height:1.55;overflow-x:hidden}h1,h2,h3{font-family:var(--font-heading);letter-spacing:-.015em;margin:0;font-weight:800;line-height:1.12}p{margin:0 0 var(--space-3)}a{color:var(--color-accent);text-underline-offset:3px}img{max-width:100%;height:auto;display:block}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background:color-mix(in srgb, var(--color-accent) 30%, transparent)}.grayscale{filter:grayscale()contrast(1.08)}.hr{height:2px;margin:var(--space-4) 0;background:var(--color-divider)}.accent{color:var(--color-accent)}.btn{cursor:pointer;white-space:nowrap;font-family:var(--font-heading);color:var(--color-text);padding:var(--space-2) 14px;border-radius:var(--radius-md);background:0 0;border:1px solid #0000;align-items:center;gap:6px;font-size:14px;font-weight:800;line-height:1.2;text-decoration:none;display:inline-flex}.btn-primary{background:var(--color-accent-fill);color:var(--color-on-accent)}.btn-primary:hover{background:color-mix(in srgb, var(--color-accent-fill) 88%, #000)}.btn-primary:active{background:color-mix(in srgb, var(--color-accent-fill) 76%, #000)}.btn-secondary{border-color:var(--color-divider)}.btn-secondary:hover{background:color-mix(in srgb, var(--color-text) 7%, transparent)}.tag{letter-spacing:.02em;align-items:center;padding:3px 10px;font-size:11px;display:inline-flex}.tag-accent{background:var(--color-accent-100);color:var(--color-accent-800)}.tag-outline{border:1px solid var(--color-accent);color:var(--color-accent-700)}.container{max-width:1400px;padding:clamp(48px, 7vw, 96px) var(--gutter);margin:0 auto}.rule-top{border-top:2px solid var(--color-divider)}.meta-label,.stat-label,.section-meta,.contact-label,.loader-label,.hero-status{letter-spacing:.14em;text-transform:uppercase;color:var(--color-neutral-700);font-size:12px;font-weight:700}.section-title{letter-spacing:-.035em;text-transform:uppercase;font-size:clamp(34px,5.5vw,76px)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:24px;padding-bottom:0;display:flex}.section-head+*{margin-top:clamp(24px,4vw,48px)}.container>.section-title{margin-bottom:clamp(24px,4vw,48px)}.loader{z-index:100;--curtain:cubic-bezier(.62, .05, .25, 1);--rise:cubic-bezier(.22, 1, .36, 1);position:fixed;inset:0}html:not(.js) .loader,.loader.is-done{display:none}.loader-panels{display:flex;position:absolute;inset:0}.loader-panel{flex:1;margin-right:-1px;position:relative}.loader-panel:before,.loader-panel:after{content:"";transition:transform .9s var(--curtain);transition-delay:calc(var(--i) * 65ms);position:absolute;inset:0}.loader-panel:before{background:var(--color-accent-fill);transition-delay:calc(var(--i) * 65ms + .15s)}.loader-panel:after{background:var(--color-bg);inset:0 -1px}.is-lifting .loader-panel:before,.is-lifting .loader-panel:after{transform:translateY(-101%)}.loader-inner{padding:var(--gutter);color:var(--color-text);background-image:linear-gradient(rgba(var(--ink), .07) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--ink), .07) 1px, transparent 1px);background-size:72px 72px;grid-template-rows:auto 1fr auto;transition:transform .4s cubic-bezier(.6,0,.9,.35),opacity .3s cubic-bezier(.6,0,.9,.35);display:grid;position:absolute;inset:0}.is-leaving .loader-inner{opacity:0;transform:translateY(-6vh)}.loader-top{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.loader-bottom{flex-wrap:wrap;justify-content:space-between;align-self:end;align-items:flex-end;gap:24px;display:flex}.loader-brand,.brand{font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;color:var(--color-text);align-items:center;gap:12px;font-size:13px;font-weight:800;text-decoration:none;display:flex}.mark{flex:none;width:34px;height:34px;display:block}.brand .mark{width:26px;height:26px}.loader-label{letter-spacing:.18em;animation:.8s .6s both ash-fade}.loader .mark rect{transform-box:fill-box;transform-origin:50%}.loader .mark rect:first-child{stroke-dasharray:184;animation:ash-draw .9s var(--rise) both}.loader .mark rect:not(:first-child){animation:.55s cubic-bezier(.34,1.56,.64,1) both ash-pop}.loader .mark rect:nth-child(2){animation-delay:.35s}.loader .mark rect:nth-child(3){animation-delay:.47s}.loader .mark rect:nth-child(4){animation-delay:.59s}.loader-name{padding-block:2px;display:inline-flex;overflow:hidden}.loader-name .char{animation:ash-up .8s var(--rise) both;animation-delay:calc(.3s + var(--i) * 28ms);display:inline-block}.loader-count{font-family:var(--font-heading);letter-spacing:-.05em;font-variant-numeric:tabular-nums;transition:font-weight .45s var(--rise);align-items:flex-start;margin-bottom:-.1em;font-size:clamp(110px,24vw,360px);font-weight:400;line-height:1;display:flex}.odo{height:1em;display:block;overflow:hidden}.odo-in{animation:ash-up .9s var(--rise) both;animation-delay:calc(.45s + var(--i) * 70ms);display:block}.odo-strip{transition:transform .36s var(--rise);display:block}.odo-strip>span{height:1em;display:block}.loader-pct{color:var(--color-accent);margin:.16em 0 0 .08em;font-size:.26em;font-weight:800;animation:.6s .8s both ash-fade}.loader-side{justify-items:end;gap:10px;padding-bottom:.6em;display:grid}.loader-word{font-family:var(--font-heading);letter-spacing:-.02em;text-transform:uppercase;font-size:clamp(18px,2.2vw,30px);font-weight:800;display:block;overflow:hidden}.loader-word>span{display:block}.loader-track{background:var(--color-neutral-300);height:2px;animation:ash-wipe .9s var(--rise) both .2s;transform-origin:0;margin-top:18px;position:relative}.loader-bar{background:var(--color-accent);transform-origin:0;height:100%;transition:transform .45s var(--rise);transform:scaleX(0)}@media (width<=640px){.loader-side{justify-items:start;padding-bottom:0}}.site-header{z-index:50;background:color-mix(in srgb, var(--color-bg) 86%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:2px solid var(--color-divider);position:fixed;top:0;left:0;right:0}.header-inner{max-width:1400px;padding:14px var(--gutter);justify-content:space-between;align-items:center;gap:24px;margin:0 auto;display:flex}.brand{letter-spacing:.14em;gap:10px;font-size:14px}.site-nav{align-items:center;gap:clamp(10px,1.8vw,26px);display:flex}.nav-link{letter-spacing:.12em;text-transform:uppercase;color:var(--color-text);font-size:12px;font-weight:600;text-decoration:none}.nav-link:hover{color:var(--color-accent)}.theme-toggle{cursor:pointer;font-family:var(--font-heading);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--color-divider);color:var(--color-text);background:0 0;flex:none;align-items:center;gap:7px;padding:6px 10px;font-size:11px;font-weight:800;display:flex}.theme-swatch{background:var(--color-text);width:10px;height:10px;display:block}.scroll-progress{background:var(--color-accent);width:0;height:2px}@media (width<=640px){.nav-link:not(.nav-resume){display:none}.brand span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.hero{min-height:100vh;padding:120px var(--gutter) 0;flex-direction:column;justify-content:flex-end;display:flex;position:relative;overflow:hidden}.hero-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.hero-inner{width:100%;max-width:1400px;margin:0 auto;padding-bottom:40px;position:relative}.hero-status{letter-spacing:.18em;color:var(--color-text);align-items:center;gap:12px;margin:0 0 clamp(16px,3vh,36px);animation:.8s .1s both ash-fade;display:flex}.pulse{background:var(--color-accent);width:9px;height:9px;animation:1.8s infinite ash-blink}.hero-title{letter-spacing:-.04em;text-transform:uppercase;font-size:clamp(40px,9.5vw,156px);line-height:.88}.hero-title .line{display:block;overflow:hidden}.hero-title .line>span{animation:ash-rise .9s var(--ease-out) both;display:block}.hero-rule{background:var(--color-divider);transform-origin:0;height:2px;animation:ash-wipe 1s var(--ease-out) both .5s;margin:clamp(24px,4vh,48px) 0 24px}.hero-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:24px;padding-bottom:48px;animation:1s .7s both ash-fade;display:grid}.hero-intro{max-width:34ch;margin:0;font-size:clamp(15px,1.15vw,18px);line-height:1.5}.meta-label{margin-bottom:6px;font-size:11px}.meta-value{font-size:16px;font-weight:600}.hero-actions{flex-wrap:wrap;align-items:flex-start;gap:10px;display:flex}.marquee-wrap{border-top:2px solid var(--color-divider);border-bottom:2px solid var(--color-divider);background:var(--color-neutral-100);overflow:hidden}.marquee{width:max-content;animation:38s linear infinite ash-marquee;display:flex}.marquee-track{font-family:var(--font-heading);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:36px;padding:16px 18px;font-size:15px;font-weight:800;display:flex}.diamond{color:var(--color-accent)}.stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:32px;display:grid}.stat-value{font-family:var(--font-heading);letter-spacing:-.03em;font-size:clamp(44px,6vw,84px);font-weight:800;line-height:1}.stat-label{margin-top:8px}.work-list{border-top:2px solid var(--color-divider)}.work-row{color:var(--color-text);border-bottom:2px solid var(--color-divider);text-decoration:none;display:block;position:relative;overflow:hidden}.work-fill{background:var(--color-accent-fill);transform-origin:center var(--fill-origin,bottom);transition:transform .55s var(--ease-out);position:absolute;inset:0;transform:scaleY(0)}.work-row:hover .work-fill,.work-row:focus-visible .work-fill{transform:scaleY(1)}.work-title,.work-year{transition:transform .7s var(--ease-out)}.work-row:hover .work-title{transform:translateX(calc(16px + var(--px,0) * 56px))}.work-row:hover .work-year{transform:translate(-10px)}.work-row:hover,.work-row:focus-visible{color:var(--color-on-accent)}.work-grid{max-width:1400px;padding:clamp(20px, 2.6vw, 36px) var(--gutter);grid-template-columns:64px minmax(0,1.6fr) minmax(0,1fr) 110px;align-items:center;gap:16px;margin:0 auto;display:grid;position:relative}.work-index,.work-year{letter-spacing:.12em;font-size:12px;font-weight:700}.work-year{text-align:right}.work-title{font-family:var(--font-heading);letter-spacing:-.025em;text-transform:uppercase;font-size:clamp(22px,3.4vw,46px);font-weight:800}.work-summary{font-size:13px;line-height:1.4}@media (width<=720px){.work-grid{grid-template-columns:48px minmax(0,1fr) 70px}.work-summary{grid-column:2}}.cap-grid{background:var(--color-divider);border:2px solid var(--color-divider);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2px;display:grid}.cap-card{background:var(--color-bg);padding:clamp(24px,2.6vw,40px);position:relative;overflow:hidden}.cap-card>*{position:relative}.cap-card:before{content:"";pointer-events:none;opacity:0;transition:opacity .5s var(--ease-out);background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%), color-mix(in srgb, var(--color-accent) 16%, transparent), transparent 70%);position:absolute;inset:0}.cap-card:hover:before{opacity:1}.cap-kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent-700);margin-bottom:16px;font-size:11px;font-weight:700}.cap-title{letter-spacing:-.02em;margin:0 0 12px;font-size:22px}.cap-body{color:var(--color-neutral-800);margin:0;font-size:14px;line-height:1.6}.path-row{border-top:2px solid var(--color-divider);grid-template-columns:150px minmax(0,1fr) minmax(0,1.2fr);gap:24px;padding:20px 0;display:grid;position:relative}.path-row:before{content:"";background:var(--color-accent);transform-origin:0;height:2px;transition:transform .7s var(--ease-out);position:absolute;top:-2px;left:0;right:0;transform:scaleX(0)}.path-row:hover:before{transform:scaleX(1)}.path-title{transition:transform .6s var(--ease-out), color .3s var(--ease-out)}.path-row:hover .path-title{color:var(--color-accent);transform:translate(12px)}.path-row.is-last{border-bottom:2px solid var(--color-divider)}.path-period{letter-spacing:.1em;font-size:13px;font-weight:700}.path-title{font-family:var(--font-heading);letter-spacing:-.02em;font-size:clamp(18px,2vw,26px);font-weight:800}.path-body{color:var(--color-neutral-800);font-size:14px;line-height:1.6}@media (width<=720px){.path-row{grid-template-columns:1fr;gap:8px}}.about{background:var(--color-neutral-100)}.about-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:clamp(32px,5vw,72px);display:grid}.portrait{aspect-ratio:4/5;width:100%;position:relative;overflow:hidden}.portrait img{object-fit:cover;width:100%;height:100%}.portrait-placeholder{background:var(--color-surface);border:2px solid var(--color-divider);place-items:center;width:100%;height:100%;display:grid}.portrait-placeholder .mark{width:30%;height:auto}.about-title{margin-bottom:24px;font-size:clamp(34px,5vw,68px)}.about-lead{max-width:48ch;font-size:clamp(16px,1.3vw,20px);line-height:1.55}.about-body{max-width:52ch;color:var(--color-neutral-800);font-size:15px;line-height:1.65}.tags{flex-wrap:wrap;gap:8px;display:flex}.contact{background:var(--color-accent-fill);color:var(--color-on-accent);border-top:2px solid var(--color-accent-fill)}.contact .container{padding-block:clamp(56px,9vw,130px)}.contact-kicker{letter-spacing:.18em;text-transform:uppercase;margin-bottom:24px;font-size:12px;font-weight:700}.contact-title{letter-spacing:-.04em;text-transform:uppercase;color:var(--color-on-accent);font-size:clamp(44px,10vw,150px);line-height:.88}.contact-rule{background:color-mix(in srgb, var(--color-on-accent) 55%, transparent);height:2px;margin:clamp(28px,4vw,56px) 0 28px}.contact-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end;gap:24px;display:grid}.contact-label{letter-spacing:.16em;color:inherit;margin-bottom:6px;font-size:11px}.contact-email,.contact-value{font-size:clamp(18px,2vw,26px);font-weight:700}.contact-email{color:var(--color-on-accent);border-bottom:2px solid var(--color-on-accent);overflow-wrap:anywhere;text-decoration:none}.contact-links{flex-wrap:wrap;gap:18px;font-size:15px;font-weight:700;display:flex}.contact-links a{color:var(--color-on-accent);border-bottom:2px solid #0000;text-decoration:none}.contact-links a:hover{border-bottom-color:var(--color-on-accent)}.site-footer{border-top:2px solid var(--color-divider)}.footer-inner{letter-spacing:.1em;text-transform:uppercase;color:var(--color-neutral-700);flex-wrap:wrap;justify-content:space-between;gap:16px;padding-block:24px;font-size:12px;font-weight:600;display:flex}.footer-inner a{color:inherit;text-decoration:none}.portrait img,.portrait-placeholder{will-change:transform}.js .portrait[data-reveal]{transition:opacity .8s var(--ease-out), transform .8s var(--ease-out), filter .6s var(--ease-out)}.portrait.grayscale:hover{filter:none}.cursor,.cursor-dot,.cursor-label{pointer-events:none;z-index:90;opacity:0;transition:opacity .3s var(--ease-out);position:fixed;top:0;left:0}.has-cursor .cursor,.has-cursor .cursor-dot,.has-cursor .cursor-label{opacity:1}.cursor{mix-blend-mode:difference;width:26px;height:26px}.cursor:before{content:"";transition:scale .3s var(--ease-out);border:2px solid #fff;position:absolute;inset:0}.cursor.is-active:before{scale:1.6}.cursor-label-on .cursor:before{scale:0}.cursor-dot{mix-blend-mode:difference;background:#fff;width:6px;height:6px}.cursor-label span{background:var(--color-text);width:92px;height:92px;color:var(--color-bg);font:800 11px/1 var(--font-heading);letter-spacing:.16em;text-transform:uppercase;transition:scale .45s var(--ease-out);place-items:center;display:grid;position:absolute;top:0;left:0;translate:-50% -50%;scale:0}.cursor-label-on .cursor-label span{scale:1}@media (pointer:fine) and (prefers-reduced-motion:no-preference){.js,.js *{cursor:none}}.magnetic{transition:transform .5s var(--ease-out)}:where(.nav-link,.contact-email,.contact-links a).magnetic{display:inline-block}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.split .word{white-space:nowrap;display:inline-block}.split .char{display:inline-block}.split-reveal .word{vertical-align:top;overflow:hidden}.split-reveal .char{transition:transform .9s var(--ease-out);transition-delay:calc(var(--i) * 18ms);transform:translateY(110%)}.is-revealed .split-reveal .char,.split-reveal.is-revealed .char{transform:none}.js [data-reveal]{transition:opacity .8s var(--ease-out), transform .8s var(--ease-out)}.js [data-reveal]:not(.is-revealed){opacity:0;transform:translateY(30px)}.js [data-reveal].split-reveal:not(.is-revealed){opacity:1;transform:none}.is-intro .hero *{animation-play-state:paused}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}@keyframes ash-rise{0%{opacity:0;transform:translateY(.9em)}to{opacity:1;transform:translateY(0)}}@keyframes ash-wipe{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes ash-marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes ash-blink{0%,to{opacity:1}50%{opacity:.15}}@keyframes ash-fade{0%{opacity:0}to{opacity:1}}@keyframes ash-up{0%{transform:translateY(105%)}to{transform:none}}@keyframes ash-draw{0%{stroke-dashoffset:184px}to{stroke-dashoffset:0}}@keyframes ash-pop{0%{transform:scale(0)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.js [data-reveal]:not(.is-revealed){opacity:1;transform:none}.loader,.cursor,.cursor-dot,.cursor-label{display:none!important}}
