@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(../media/af21ab248943f479-s.3gj6ciom31zjc.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(../media/4ae66b896b591e96-s.0_kz_z3o_slvt.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(../media/21ca8f3f56c22ca2-s.p.1cp9-4nby68jc.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}@font-face{font-family:Archivo Fallback;src:local(Arial);ascent-override:88.96%;descent-override:21.28%;line-gap-override:0.0%;size-adjust:98.7%}.archivo_ce71830f-module__-DvYyG__className{font-family:Archivo,Archivo Fallback;font-style:normal}.archivo_ce71830f-module__-DvYyG__variable{--font-sans:"Archivo", "Archivo Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.0rgnxg2b64rzs.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/59b15b4bcd7b1eb5-s.2vemzm0itqzfy.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e532fa1b9921e1cd-s.3cb5lpr2l6xud.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2fe89d53234c61d4-s.1u30mmyq6lnsd.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/99e609270109b47d-s.p.40sczeszzbjw1.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}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5e05ae5b48faa55e-s.1yd4_i3e35931.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a7afbb44bec2bb18-s.1qc6dx89jd2qv.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/02263ebadd758ea4-s.29yke99gs9qpn.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/68757d6cddeff913-s.1i-sca43-qwng.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/effe91970fc4db64-s.p.0oace-s_gkfks.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}@font-face{font-family:IBM Plex Mono Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.ibm_plex_mono_cbe490f6-module__A9d69W__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_cbe490f6-module__A9d69W__variable{--font-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
:root{--bg:#0b0b09;--panel:#12110d;--fg:#e8e4da;--muted:#a6a091;--dim:#5a554a;--line:#1e1c17;--border:#2a2822;--accent:#f27e63;--gutter:48px;--maxw:1280px;--section-y:120px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans), "Archivo", system-ui, sans-serif;-webkit-font-smoothing:antialiased;margin:0;overflow-x:clip}a{color:var(--fg);text-decoration:none;transition:color .2s}a:hover{color:var(--accent)}img{max-width:100%;display:block}::selection{background:var(--accent);color:var(--bg)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.mono{font-family:var(--font-mono), "IBM Plex Mono", ui-monospace, monospace}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes drift{0%,to{transform:translateY(0)}50%{transform:translateY(-18px)}}@keyframes pulse{0%,to{opacity:.35}50%{opacity:.7}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.reveal-ready [data-reveal]:not(.is-revealed){opacity:0;transform:translateY(28px)}.reveal-ready [data-reveal]{transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.2,1)}.section{padding:var(--section-y) var(--gutter);border-top:1px solid var(--line)}.container{max-width:var(--maxw);margin:0 auto}.split{grid-template-columns:minmax(180px,1fr) minmax(300px,2fr);gap:48px;display:grid}.eyebrow{letter-spacing:3px;color:var(--accent);margin:0;font-size:12px}.eyebrow--gap-16{margin-bottom:16px}.eyebrow--gap-24{margin-bottom:24px}.eyebrow--gap-40{margin-bottom:40px}.eyebrow--gap-48{margin-bottom:48px}.section-title{letter-spacing:-1.5px;text-transform:uppercase;margin:0 0 56px;font-size:clamp(32px,4.5vw,64px);font-weight:800;font-stretch:110%;line-height:1.05}.nav{z-index:50;padding:20px var(--gutter);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(#0b0b09e6,#0b0b0900);justify-content:space-between;align-items:center;display:flex;position:fixed;inset:0 0 auto}.nav__brand{letter-spacing:2px;color:var(--fg);font-size:13px}.nav__brand span{color:var(--accent)}.nav__links{letter-spacing:1px;align-items:center;gap:28px;font-size:12px;display:flex}.nav__link{color:var(--muted)}.nav__cta{color:var(--bg);background:var(--accent);border-radius:2px;padding:6px 14px;font-weight:500;transition:filter .2s}.nav__cta:hover{color:var(--bg);filter:brightness(1.1)}.nav__toggle{border:1px solid var(--border);width:40px;height:40px;color:var(--fg);cursor:pointer;background:0 0;border-radius:2px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0;display:none}.nav__toggle span{background:currentColor;width:16px;height:1.5px;transition:transform .25s,opacity .2s;display:block}.nav__toggle[aria-expanded=true] span:first-child{transform:translateY(6.5px)rotate(45deg)}.nav__toggle[aria-expanded=true] span:nth-child(2){opacity:0}.nav__toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.hero{min-height:100vh;padding:120px var(--gutter) 80px;flex-direction:column;justify-content:center;display:flex;position:relative}.hero__glow,.hero__grid{pointer-events:none;position:absolute;inset:0}.hero__glow{background:radial-gradient(70% 50% at 70% 30%,#f27e6314,#0000 70%);animation:7s ease-in-out infinite pulse}.hero__grid{background-image:linear-gradient(#e8e4da08 1px,#0000 1px),linear-gradient(90deg,#e8e4da08 1px,#0000 1px);background-size:72px 72px;-webkit-mask-image:radial-gradient(80% 70% at 50% 40%,#000,#0000);mask-image:radial-gradient(80% 70% at 50% 40%,#000,#0000)}.hero__top{flex-wrap:wrap;align-items:center;gap:48px;display:flex;position:relative}.hero__copy{flex:480px;min-width:0;container-type:inline-size}.hero__eyebrow{letter-spacing:3px;color:var(--accent);margin:0 0 24px;font-size:13px}.hero__title{letter-spacing:-2px;text-transform:uppercase;margin:0;font-size:clamp(30px,9.2cqi,104px);font-weight:800;font-stretch:110%;line-height:.95}.hero__title span{color:var(--accent)}.hero__frame{aspect-ratio:4/5;border:1px solid var(--border);background:var(--panel);flex:0 340px;width:min(340px,100%);padding:10px;position:relative}.hero__frame:before,.hero__frame:after{content:"";width:24px;height:24px;position:absolute}.hero__frame:before{border-top:2px solid var(--accent);border-left:2px solid var(--accent);top:-1px;left:-1px}.hero__frame:after{border-bottom:2px solid var(--accent);border-right:2px solid var(--accent);bottom:-1px;right:-1px}.hero__photo{object-fit:cover;object-position:center;width:100%;height:100%}.hero__bottom{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:32px;margin-top:48px;display:flex;position:relative}.hero__intro{max-width:520px;color:var(--muted);margin:0;font-size:18px;line-height:1.6}.hero__badge{letter-spacing:1px;color:var(--muted);border:1px solid var(--border);border-radius:2px;align-items:center;gap:10px;padding:10px 16px;font-size:12px;display:flex}.hero__badge:before{content:"";background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px}.hero__scroll{bottom:32px;left:var(--gutter);letter-spacing:2px;color:var(--dim);font-size:11px;animation:3.5s ease-in-out infinite drift;position:absolute}.ticker{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;overflow:hidden}.ticker__track{letter-spacing:2px;width:max-content;color:var(--dim);white-space:nowrap;gap:56px;font-size:13px;animation:30s linear infinite marquee;display:flex}.ticker__sep{color:var(--accent)}.about__heading{letter-spacing:-1px;margin:0 0 28px;font-size:clamp(28px,3.5vw,44px);font-weight:700;line-height:1.15}.about__body{color:var(--muted);margin:0 0 20px;font-size:17px;line-height:1.7}.about__body:last-of-type{margin-bottom:40px}.stats{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.stats__cell{background:var(--bg);padding:24px 20px}.stats__value{color:var(--accent);font-size:36px;font-weight:800;font-stretch:110%}.stats__label{letter-spacing:1px;color:var(--dim);margin-top:6px;font-size:11px}.skills{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;display:grid}.skills__card{background:var(--bg);padding:36px 28px;transition:background .25s}.skills__card:hover{background:var(--panel)}.skills__name{margin:0 0 14px;font-size:19px;font-weight:700}.skills__tags{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tag{letter-spacing:.5px;color:var(--muted);border:1px solid var(--border);border-radius:2px;padding:4px 10px;font-size:11px}.services{flex-direction:column;display:flex}.services__row{border-top:1px solid var(--line);grid-template-columns:minmax(200px,1fr) minmax(240px,1.4fr);align-items:baseline;gap:32px;padding:36px 0;transition:background .25s;display:grid}.services__row:hover{background:var(--panel)}.services__name{letter-spacing:-.5px;margin:0;font-size:26px;font-weight:700}.services__desc{color:var(--muted);margin:0;font-size:15px;line-height:1.65}.projects{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:24px;display:grid}.project{border:1px solid var(--line);background:var(--bg);flex-direction:column;gap:16px;padding:32px 28px;transition:border-color .25s,background .25s;display:flex}.project:hover{background:var(--panel);border-color:#f27e6366}.project__meta{letter-spacing:1px;color:var(--dim);justify-content:space-between;align-items:center;font-size:11px;display:flex}.project__year{color:var(--accent)}.project__title{letter-spacing:-.5px;margin:0;font-size:22px;font-weight:700;line-height:1.25}.project__desc{color:var(--muted);flex:1;margin:0;font-size:14px;line-height:1.65}.project__result{color:var(--accent);letter-spacing:.5px;font-size:12px}.timeline{flex-direction:column;display:flex}.timeline__row{border-top:1px solid var(--line);grid-template-columns:130px 1fr;gap:24px;padding:28px 0;display:grid}.timeline__years{color:var(--dim);padding-top:4px;font-size:12px}.timeline__title{margin:0 0 4px;font-size:19px;font-weight:700}.timeline__org{color:var(--accent);font-size:12px}.certs{flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none;display:flex}.certs__item{letter-spacing:.5px;color:var(--fg);border:1px solid var(--border);border-radius:2px;padding:12px 20px;font-size:13px;transition:border-color .25s,color .25s}.certs__item:hover{color:var(--accent);border-color:#f27e6366}.writing__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:48px;display:flex}.writing__all{letter-spacing:1px;color:var(--muted);font-size:12px}.writing__grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;display:grid}.post{border-top:2px solid var(--border);color:var(--fg);flex-direction:column;gap:12px;padding-top:20px;transition:color .2s,border-color .2s;display:flex}.post:hover{color:var(--accent);border-color:var(--accent)}.post__date{letter-spacing:1px;color:var(--dim);font-size:11px}.post__title{letter-spacing:-.3px;margin:0;font-size:20px;font-weight:700;line-height:1.3}.post__blurb{color:var(--muted);margin:0;font-size:14px;line-height:1.6}.testimonials{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;display:grid}.testimonial{border:1px solid var(--line);background:var(--bg);flex-direction:column;gap:20px;margin:0;padding:32px 28px;display:flex}.testimonial blockquote{color:var(--fg);margin:0;font-size:17px;line-height:1.6}.testimonial figcaption{color:var(--dim);letter-spacing:.5px;font-size:12px}.testimonial figcaption span{color:var(--accent)}.contact{padding:140px var(--gutter) 80px;border-top:1px solid var(--line);position:relative}.contact__glow{pointer-events:none;background:radial-gradient(60% 50% at 50% 100%,#f27e6312,#0000 70%);position:absolute;inset:0}.contact__inner{position:relative}.contact__heading{letter-spacing:-2px;text-transform:uppercase;margin:0 0 40px;font-size:clamp(40px,7vw,104px);font-weight:800;font-stretch:110%;line-height:.98}.contact__heading span{color:var(--accent)}.contact__actions{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.btn-primary{background:var(--accent);color:var(--bg);letter-spacing:.5px;border-radius:2px;padding:16px 32px;font-size:16px;font-weight:700;transition:filter .2s}.btn-primary:hover{color:var(--bg);filter:brightness(1.1)}.btn-ghost{border:1px solid var(--border);color:var(--fg);letter-spacing:1px;border-radius:2px;padding:16px 28px;font-size:13px;transition:border-color .2s}.btn-ghost:hover{border-color:#f27e6366}.footer{border-top:1px solid var(--line);letter-spacing:1px;color:var(--dim);flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:100px;padding-top:24px;font-size:11px;display:flex}@media (max-width:900px){.nav__links{padding:8px var(--gutter) 24px;background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;display:none;position:absolute;top:100%;left:0;right:0}.nav[data-open=true] .nav__links{display:flex}.nav[data-open=true]{background:var(--bg)}.nav__link,.nav__cta{border-top:1px solid var(--line);padding:16px 0}.nav__cta{color:var(--accent);text-align:left;background:0 0}.nav__cta:hover{color:var(--accent);filter:none}.nav__toggle{display:flex}.split{grid-template-columns:1fr;gap:24px}.services__row{grid-template-columns:1fr;gap:12px}}@media (max-width:720px){:root{--gutter:24px;--section-y:80px}.hero{padding-top:104px}.hero__scroll{display:none}.hero__top{gap:32px}.contact{padding-top:100px}.stats,.projects,.writing__grid,.testimonials{grid-template-columns:1fr}.timeline__row{grid-template-columns:1fr;gap:8px}.footer{margin-top:64px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero__glow,.hero__scroll,.ticker__track{animation:none}*,:before,:after{transition-duration:.01ms!important}}
