@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400;500&family=Manrope:wght@400;500;600;700;800&display=swap";:root{--paper:#f2f0e9;--ink:#161713;--muted:#65665f;--line:#1617132e;--acid:#b8ff35;--white:#fffef8;color:var(--ink);background:var(--paper);font-synthesis:none;font-family:Manrope,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);min-width:320px;margin:0;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit}::selection{color:var(--ink);background:var(--acid)}.site-header{z-index:100;justify-content:space-between;align-items:center;height:84px;padding:0 clamp(22px,4vw,64px);transition:background .25s,border-color .25s;display:flex;position:fixed;inset:0 0 auto}.site-header.is-scrolled{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);background:#f2f0e9e6}.brand{align-items:center;gap:11px;display:flex}.brand-mark{background:var(--ink);width:40px;height:40px;color:var(--acid);box-shadow:0 0 0 0 var(--acid);border-radius:50%;place-items:center;font:500 12px DM Mono;transition:box-shadow .3s;display:grid;position:relative;overflow:hidden}.brand-initials{letter-spacing:-.09em;font:600 10px DM Mono;transform:translate(-.04em)}.brand:hover .brand-mark{box-shadow:0 0 0 4px #b8ff3547}.brand-copy{text-transform:uppercase;letter-spacing:-.02em;font-size:11px;font-weight:800;line-height:1.05}nav{align-items:center;gap:clamp(22px,3vw,46px);font-size:13px;font-weight:600;display:flex}nav>a:not(.nav-cta){position:relative}nav>a:not(.nav-cta):after{content:"";background:var(--ink);height:1px;transition:right .25s;position:absolute;bottom:-5px;left:0;right:100%}nav>a:hover:after{right:0}.nav-cta{border:1px solid var(--ink);border-radius:999px;padding:11px 17px}.nav-cta span{margin-left:12px}.menu-button{background:0 0;border:0;padding:8px;display:none}.menu-button span{background:var(--ink);width:24px;height:2px;margin:5px;display:block}.hero{border-bottom:1px solid var(--ink);flex-direction:column;min-height:100vh;padding-top:84px;display:flex}.hero-grid{isolation:isolate;flex:1;grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr) 360px;column-gap:50px;width:100%;max-width:1600px;margin:auto;padding:clamp(70px,11vh,130px) clamp(22px,4vw,64px) 70px;display:grid;position:relative}.hero-kicker{z-index:3;text-transform:uppercase;letter-spacing:.08em;grid-column:1/-1;align-items:center;gap:10px;font:500 12px DM Mono;display:flex;position:relative}.status-dot{background:var(--acid);border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 5px #b8ff3538}.hero h1{z-index:2;letter-spacing:-.075em;align-self:center;margin:40px 0;font-size:clamp(62px,8.7vw,145px);font-weight:800;line-height:.87;position:relative}.hero h1 em,.about-layout h2 em,.contact-section h2 em{color:#0000;-webkit-text-stroke:2px var(--ink);font-style:normal}.hero-side{z-index:3;align-self:center;padding-top:35px;position:relative}.hero-side>p{color:var(--muted);margin:0 0 30px;font-size:clamp(16px,1.3vw,20px);line-height:1.65}.hero-actions{flex-direction:column;align-items:flex-start;gap:21px;display:flex}.button{border-radius:3px;justify-content:space-between;align-items:center;gap:36px;padding:16px 20px;font-size:13px;font-weight:700;display:inline-flex}.button-dark{color:var(--white);background:var(--ink)}.button-dark:hover span{transform:translateY(4px)}.button span{transition:transform .2s}.text-link{border-bottom:1px solid var(--ink);padding-bottom:5px;font:500 12px DM Mono}.text-link span{color:var(--muted)}.hero-portrait{z-index:1;width:clamp(250px,28vw,450px);height:min(69vh,690px);margin:0;position:absolute;bottom:0;right:26%}.portrait-frame{border:1px solid var(--ink);background:#dedbd1;border-radius:28px;width:100%;height:100%;overflow:hidden;box-shadow:12px 12px #b8ff35d9}.portrait-frame img{object-fit:cover;object-position:center top;filter:saturate(.96);width:100%;height:100%;display:block}.hero-stamp{z-index:3;grid-column:2;place-self:end;width:130px;height:130px;position:relative}.hero-stamp svg{width:100%;animation:18s linear infinite spin}.hero-stamp text{letter-spacing:2.2px;font:500 10px DM Mono}.stamp-arrow{fill:none;stroke:var(--ink);stroke-width:2px}@keyframes spin{to{transform:rotate(360deg)}}.hero-ticker{border-top:1px solid var(--ink);background:var(--acid);overflow:hidden}.hero-ticker>div{align-items:center;width:max-content;animation:26s linear infinite marquee;display:flex}.hero-ticker span,.hero-ticker i{text-transform:uppercase;padding:16px 23px;font:500 12px DM Mono}@keyframes marquee{to{transform:translate(-50%)}}.minimal-hero{border-bottom:1px solid var(--ink);background:var(--paper);min-height:100svh;padding-top:84px}.minimal-hero-inner{grid-template-rows:auto 1fr auto;max-width:1600px;min-height:calc(100svh - 84px);margin:0 auto;padding:42px clamp(22px,4vw,64px) 26px;display:grid}.minimal-kicker{letter-spacing:.12em;text-transform:uppercase;margin:0;font:500 11px DM Mono}.minimal-kicker:before{content:"";background:var(--acid);vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:11px;display:inline-block}.minimal-hero-body{grid-template-columns:minmax(320px,1.15fr) clamp(290px,27vw,430px) minmax(220px,.65fr);align-items:center;gap:clamp(26px,3vw,58px);min-height:0;display:grid}.minimal-hero h1{letter-spacing:-.065em;text-wrap:balance;max-width:760px;margin:0;font-size:clamp(52px,5.6vw,94px);font-weight:700;line-height:.94}.minimal-intro{max-width:360px;margin:0}.minimal-intro>p{color:var(--muted);margin:0;font-size:16px;line-height:1.7}.minimal-links{align-items:flex-start;gap:28px;margin-top:28px;display:flex}.minimal-links a{border-bottom:1px solid;padding-bottom:4px;font:500 11px DM Mono}.minimal-links a span{margin-left:14px}.minimal-avatar{justify-content:center;align-items:flex-end;height:min(70vh,720px);min-height:460px;margin:0;display:flex;overflow:hidden}.minimal-avatar img{object-fit:contain;object-position:center bottom;filter:drop-shadow(0 22px 28px #1617131f);width:100%;height:100%;display:block}.minimal-meta{border-top:1px solid var(--line);letter-spacing:.1em;text-transform:uppercase;grid-template-columns:1fr 1fr 1fr;padding-top:19px;font:400 9px DM Mono;display:grid}.minimal-meta span:nth-child(2){text-align:center}.minimal-meta span:last-child{text-align:right}.section{padding:130px clamp(22px,4vw,64px)}.section-heading{max-width:1600px;margin:0 auto 70px}.eyebrow{letter-spacing:.12em;text-transform:uppercase;margin:0 0 25px;font:500 11px DM Mono}.section-heading h2,.skills-heading h2{letter-spacing:-.065em;max-width:1000px;margin:0;font-size:clamp(45px,7vw,100px);line-height:.95}.section-intro{max-width:530px;color:var(--muted);margin:28px 0 0;font-size:17px;line-height:1.65}.projects-section{background:var(--ink);color:var(--white)}.projects-section .section-intro{color:#a9aaa3}.projects-list{grid-template-columns:1fr 1fr;gap:70px 28px;max-width:1600px;margin:auto;display:grid}.project-row{min-width:0}.project-row.project-featured{grid-column:1/-1;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);align-items:end;gap:28px;display:grid}.project-row.project-featured .product-visual{aspect-ratio:1.8}.project-row.project-featured .project-copy>p{min-height:0}.product-visual{aspect-ratio:1.42;background:var(--project-accent);border-radius:4px;transition:transform .45s cubic-bezier(.2,.8,.2,1);overflow:hidden}.project-row:hover .product-visual{transform:translateY(-8px)}.browser-bar{height:40px;color:var(--ink);background:#ffffffe0;border-bottom:1px solid #00000021;align-items:center;gap:6px;padding:0 15px;display:flex}.browser-bar>span{background:#0000004d;border-radius:50%;width:7px;height:7px}.browser-bar small{opacity:.6;margin-left:auto;margin-right:auto;font:400 9px DM Mono}.product-canvas{height:calc(100% - 40px);color:var(--ink);align-items:flex-end;padding:clamp(22px,4vw,55px);display:flex;position:relative;overflow:hidden}.product-code{z-index:2;letter-spacing:-.1em;font-size:clamp(72px,11vw,175px);font-weight:800;line-height:.7;position:relative}.product-lines{gap:9px;width:30%;display:grid;position:absolute;top:18%;right:8%}.product-lines span{background:var(--ink);height:5px}.product-lines span:nth-child(2){width:70%}.product-lines span:nth-child(3){width:42%}.product-orbit{aspect-ratio:1;border:2px solid var(--ink);border-radius:50%;width:55%;position:absolute;bottom:-32%;right:-17%}.product-orbit:after{content:"";aspect-ratio:1;background:var(--ink);border-radius:50%;width:13px;position:absolute;top:13%;left:8%}.project-copy{padding:25px 3px 0}.project-meta{color:#85867f;text-transform:uppercase;letter-spacing:.1em;justify-content:space-between;font:400 10px DM Mono;display:flex}.project-copy h3{letter-spacing:-.045em;margin:14px 0;font-size:clamp(31px,3vw,48px);line-height:1}.project-copy>p{color:#aeafa8;max-width:590px;min-height:72px;margin:0;font-size:14px;line-height:1.65}.project-footer{border-top:1px solid #ffffff2e;justify-content:space-between;align-items:center;margin-top:23px;padding-top:17px;font:500 11px DM Mono;display:flex}.pill{border:1px solid #ffffff4d;border-radius:999px;padding:7px 11px}.project-footer a:hover{color:var(--project-accent)}.project-footer a span{margin-left:8px}.experience-section{border-bottom:1px solid var(--ink);background:#fff}.split-heading{grid-template-columns:1fr 1fr;align-items:end;display:grid}.split-heading .section-intro{justify-self:end;margin-bottom:5px}.experience-list{border-top:1px solid var(--ink);max-width:1600px;margin:auto}.experience-item{border-bottom:1px solid var(--line);grid-template-columns:190px 1fr 1fr;gap:45px;padding:35px 0;display:grid}.experience-period{font:400 11px DM Mono}.experience-item h3{letter-spacing:-.02em;margin:0 0 7px;font-size:20px}.experience-company{color:var(--muted);margin:0;font-size:13px}.experience-detail{color:var(--muted);margin:0;font-size:14px;line-height:1.65}.current-label{vertical-align:3px;background:var(--acid);text-transform:uppercase;border-radius:2px;margin-left:9px;padding:4px 7px;font:500 8px DM Mono;display:inline-block}.about-section{padding-bottom:0}.about-panel{background:var(--acid);border-radius:5px;max-width:1600px;margin:auto;padding:clamp(35px,6vw,90px)}.about-layout{grid-template-columns:1.1fr .9fr;align-items:end;gap:70px;display:grid}.about-layout h2{letter-spacing:-.06em;margin:0;font-size:clamp(42px,6vw,90px);line-height:.96}.about-copy{max-width:570px}.about-copy p{margin:0 0 20px;font-size:16px;line-height:1.75}.about-facts{border-top:1px solid #00000040;grid-template-columns:repeat(3,1fr);margin-top:70px;padding-top:30px;display:grid}.about-facts div{flex-direction:column;gap:7px;display:flex}.about-facts strong{font-size:23px}.about-facts span{text-transform:uppercase;font:400 10px DM Mono}.skills-section{grid-template-columns:1fr 1fr;gap:80px;max-width:1600px;margin:auto;display:grid}.skills-heading h2{font-size:clamp(40px,4.8vw,72px)}.skill-groups{position:relative}.skills-rule{background:var(--ink);transform-origin:0;height:1px;position:absolute;top:0;left:0;right:0}.skill-group{border-bottom:1px solid var(--line);grid-template-columns:42px 130px 1fr;gap:18px;padding:26px 0;display:grid}.skill-number{color:var(--muted);font:400 10px DM Mono}.skill-group h3{margin:0;font-size:16px}.skill-tags{flex-wrap:wrap;gap:8px;display:flex}.skill-tags>span{border:1px solid var(--line);border-radius:999px;padding:7px 10px;font:400 10px DM Mono}.education-strip{color:var(--white);background:#2e5cff;grid-template-columns:160px 1fr auto;align-items:center;gap:30px;padding:40px clamp(22px,4vw,64px);display:grid}.education-strip .eyebrow{margin:0}.education-strip h2{letter-spacing:-.04em;margin:0;font-size:clamp(25px,3vw,46px)}.education-strip>p:last-child{font:400 11px DM Mono}.contact-section{color:var(--white);background:var(--ink);padding:130px clamp(22px,4vw,64px)}.contact-inner{max-width:1600px;margin:auto}.contact-section h2{letter-spacing:-.065em;max-width:1250px;margin:0 0 70px;font-size:clamp(48px,7vw,110px);line-height:.95}.contact-section h2 em{-webkit-text-stroke-color:var(--white)}.contact-email{border-top:1px solid #ffffff4d;border-bottom:1px solid #ffffff4d;justify-content:space-between;align-items:center;padding:25px 0;font-size:clamp(18px,2.7vw,40px);display:flex}.contact-email:hover{color:var(--acid)}.contact-links{gap:35px;margin-top:25px;font:400 11px DM Mono;display:flex}footer{border-top:1px solid var(--line);text-transform:uppercase;justify-content:space-between;align-items:center;padding:26px clamp(22px,4vw,64px);font:400 10px DM Mono;display:flex}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=900px){.menu-button{z-index:2;display:block}nav{background:var(--acid);flex-direction:column;align-items:flex-start;min-height:100vh;padding:110px 30px 40px;font-size:26px;display:none;position:absolute;inset:0 0 auto}nav.nav-open{display:flex}.nav-cta{margin-top:20px}.hero-grid{grid-template-rows:auto;grid-template-columns:1fr}.hero h1{margin-bottom:45px}.hero-portrait{width:min(78vw,390px);height:490px;margin:0 auto 65px;position:relative;bottom:auto;right:auto}.hero-side{max-width:580px;padding:0}.hero-stamp{display:none}.split-heading,.about-layout,.skills-section{grid-template-columns:1fr}.split-heading .section-intro{justify-self:start}.projects-list{gap:55px 18px}.project-row.project-featured{grid-template-columns:1fr 1fr}.experience-item{grid-template-columns:130px 1fr}.experience-detail{grid-column:2}.education-strip{grid-template-columns:1fr;gap:10px}.minimal-hero-body{grid-template-columns:1fr;padding-top:70px}.minimal-hero h1{text-align:center}.minimal-avatar{width:min(100%,420px);height:530px;min-height:0;margin:0 auto}.minimal-intro{text-align:center;max-width:540px;margin:0 auto 65px}.minimal-links{justify-content:center}}@media (width<=640px){.site-header{height:70px}.hero{padding-top:70px}.hero-grid{padding-top:80px}.hero h1{font-size:clamp(52px,17vw,86px)}.hero-portrait{width:calc(100% - 28px);height:440px}.hero h1 em,.about-layout h2 em,.contact-section h2 em{-webkit-text-stroke-width:1.2px}.hero-ticker span,.hero-ticker i{padding:13px 15px}.section{padding-top:90px;padding-bottom:90px}.projects-list{grid-template-columns:1fr}.project-row.project-featured{grid-column:auto;display:block}.project-row.project-featured .product-visual{aspect-ratio:1.42}.project-copy>p{min-height:0}.about-facts{grid-template-columns:1fr;gap:25px}.experience-section{padding-top:72px;padding-bottom:72px}.experience-section .section-heading{margin-bottom:38px}.experience-section .eyebrow{margin-bottom:18px}.experience-section .section-heading h2{font-size:clamp(42px,14vw,56px);line-height:.92}.experience-section .section-intro{margin-top:18px;font-size:14px;line-height:1.55}.experience-item{grid-template-columns:1fr;gap:6px;padding:24px 0}.experience-period{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 9px;font-size:9px}.experience-item h3{margin-bottom:4px;font-size:18px;line-height:1.25}.experience-company{font-size:12px}.experience-detail{grid-column:auto;margin-top:10px;font-size:13px;line-height:1.55}.current-label{vertical-align:2px;padding:3px 6px;font-size:7px}.skills-section{padding-top:90px}.skill-group{grid-template-columns:32px 1fr}.skill-tags{grid-column:2}.contact-section{padding-top:90px;padding-bottom:90px}.contact-links{flex-direction:column;gap:14px}footer{align-items:flex-end}footer>p{display:none}.minimal-hero{padding-top:70px}.minimal-hero-inner{min-height:calc(100svh - 70px);padding-top:30px}.minimal-hero-body{padding-top:58px}.minimal-hero h1{font-size:clamp(47px,14vw,68px)}.minimal-intro{margin-bottom:50px}.minimal-intro>p{font-size:15px}.minimal-links{gap:20px}.minimal-avatar{height:440px}.minimal-meta{grid-template-columns:1fr auto;row-gap:9px}.minimal-meta span:nth-child(2){display:none}}
