@import "https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600&display=swap";
:root{--ink:#09090b;--primary:#18181b;--secondary:#3f3f46;--blue:#2563eb;--paper:#fafafa;--white:#fff;--line:#e4e4e7;--content:1120px;--page-pad:max(24px, calc((100vw - var(--content)) / 2));--display:"Archivo", Arial, sans-serif;--body:"Space Grotesk", Arial, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{color:var(--ink);background:var(--paper);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}::selection{color:var(--white);background:var(--blue)}a{color:inherit;cursor:pointer;text-decoration:none}a:focus-visible{outline-offset:4px;outline:3px solid #fbbf24}h1,h2,h3,p{margin-top:0}svg{fill:none;stroke:currentColor;stroke-linecap:square;stroke-linejoin:miter;stroke-width:1.5px;flex:none;width:1em;height:1em}.skip-link{z-index:100;color:var(--white);background:var(--ink);padding:11px 16px;transition:transform .18s ease-out;position:fixed;top:10px;left:10px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:20;width:min(var(--content), calc(100% - 36px));background:#fffffff5;border:1px solid #09090b21;border-radius:14px;grid-template-columns:1fr auto 1fr;align-items:center;height:64px;padding:0 22px;animation:.65s cubic-bezier(.22,1,.36,1) .35s both nav-in;display:grid;position:absolute;top:18px;left:50%;transform:translate(-50%);box-shadow:0 10px 35px #09090b14}.logo{width:36px;height:36px;display:block}.logo img{object-fit:contain;width:100%;height:100%;display:block}.site-header nav{gap:30px;font-size:13px;display:flex}.site-header nav a,.contact-link{transition:color .18s ease-out}.site-header nav a:hover,.contact-link:hover{color:var(--blue)}.contact-link{justify-self:end;align-items:center;gap:7px;font-size:13px;font-weight:500;display:inline-flex}@keyframes nav-in{0%{opacity:0;transform:translate(-50%,-16px)}to{opacity:1;transform:translate(-50%)}}.hero{height:100svh;min-height:720px;padding:112px var(--page-pad) 42px;background:var(--white);grid-template-columns:minmax(0,1.12fr) minmax(420px,.88fr);align-items:center;display:grid;position:relative;overflow:hidden}.hero-blue{background:var(--blue);transform-origin:100%;animation:.85s cubic-bezier(.22,1,.36,1) both blue-in;position:absolute;inset:0 0 0 64%}.hero-blue:after{content:"";background:#fff3;width:1px;animation:10s ease-in-out 1s infinite alternate hero-line-drift;position:absolute;top:17%;bottom:14%;left:52%}@keyframes blue-in{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.hero-copy{z-index:3;max-width:850px;position:relative}.role{color:var(--secondary);margin-bottom:32px;font-size:13px;font-weight:500}.hero h1{font:600 clamp(76px, 10vw, 156px) / .78 var(--display);letter-spacing:-.075em;margin:0 0 34px}.hero h1 span{width:max-content;max-width:100%;padding-right:.08em;animation:.85s cubic-bezier(.22,1,.36,1) both title-in;display:block;overflow:hidden}.hero h1 span:last-child{color:var(--blue);animation-delay:90ms}@keyframes title-in{0%{clip-path:inset(0 100% 0 0);transform:translateY(26px)}to{clip-path:inset(0);transform:translateY(0)}}.intro{max-width:560px;color:var(--secondary);margin-bottom:36px;font-size:clamp(17px,1.55vw,22px);line-height:1.55;animation:.65s ease-out .26s both fade-up}.hero-actions{flex-wrap:wrap;align-items:center;gap:26px;font-size:13px;font-weight:500;animation:.65s ease-out .35s both fade-up;display:flex}.hero-actions a{align-items:center;gap:7px;display:inline-flex}.hero-actions a:not(.button){border-bottom:1px solid;padding-bottom:3px;transition:color .18s ease-out}.hero-actions a:not(.button):hover{color:var(--blue)}.button{min-height:48px;color:var(--white);background:var(--ink);border-radius:8px;padding:0 20px;transition:background-color .18s ease-out}.button:hover{background:var(--blue)}@keyframes fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.portrait-wrap{z-index:2;place-self:end;width:min(38vw,560px);animation:.9s cubic-bezier(.22,1,.36,1) .12s both portrait-in;position:relative}.portrait-backdrop{z-index:-1;aspect-ratio:1;background:var(--white);border-radius:50%;width:82%;animation:11s ease-in-out infinite alternate portrait-breathe;position:absolute;bottom:12%;right:3%}.portrait-orbit{z-index:-1;aspect-ratio:1;border:1px solid #ffffff6b;border-radius:50%;width:90%;animation:14s ease-in-out infinite alternate portrait-orbit-drift;position:absolute;bottom:8%;right:-3%}.portrait-orbit:after{content:"";background:#ffffffc2;width:24px;height:1px;position:absolute;top:19%;right:3%;transform:rotate(42deg)}.portrait-wrap img{filter:saturate(.82)contrast(1.02);transform-origin:bottom;width:100%;height:auto;animation:7s ease-in-out 1.2s infinite alternate portrait-float;display:block}@keyframes portrait-in{0%{opacity:0;transform:translateY(80px)}to{opacity:1;transform:translateY(0)}}@keyframes portrait-breathe{0%{transform:translate(-4px,5px)scale(.985)}to{transform:translate(6px,-4px)scale(1.02)}}@keyframes portrait-orbit-drift{0%{transform:translate(-7px,4px)rotate(-2deg)}to{transform:translate(8px,-7px)rotate(3deg)}}@keyframes portrait-float{0%{transform:translate(0,0)}to{transform:translateY(-6px)rotate(.2deg)}}@keyframes hero-line-drift{0%{opacity:.45;transform:translate(-20px)}to{opacity:1;transform:translate(20px)}}.section{padding:clamp(72px, 6vw, 96px) var(--page-pad)}.reveal-ready [data-reveal]>*{opacity:0;will-change:opacity, transform;transition:opacity .68s cubic-bezier(.22,1,.36,1),transform .68s cubic-bezier(.22,1,.36,1);transform:translateY(34px)}.reveal-ready [data-reveal]>:nth-child(2){transition-delay:90ms}.reveal-ready [data-reveal]>:nth-child(3){transition-delay:.16s}.reveal-ready [data-reveal].is-visible>*{opacity:1;will-change:auto;transform:translateY(0)}.section-title{justify-content:space-between;align-items:end;gap:40px;margin-bottom:36px;display:flex}.section-title h2,.about h2{font:600 clamp(48px, 6vw, 86px) / .95 var(--display);letter-spacing:-.06em;margin:0}.section-title p{color:var(--secondary);margin:0 0 7px;font-size:14px}.work{background:var(--paper)}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:52px 24px;display:grid}.project-card-featured{grid-column:1/-1;grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);align-items:center;gap:36px;display:grid}.project-image-link{background:#eff1f5;border-radius:16px;display:block;position:relative;overflow:hidden}.project-image-wrap{aspect-ratio:1.9;position:relative;overflow:hidden}.project-card-featured .project-image-wrap{aspect-ratio:1.62}.project-card-featured .project-info{padding-top:0}.project-card-featured .project-bottom{display:block}.project-card-featured .project-bottom ul{margin-bottom:18px}.project-image-wrap img{object-fit:cover;transition:transform .42s cubic-bezier(.22,1,.36,1)}.project-image-link:hover img{transform:scale(1.025)}.project-open{width:48px;height:48px;color:var(--white);background:var(--blue);border-radius:50%;place-items:center;font-size:21px;transition:transform .26s cubic-bezier(.22,1,.36,1);display:grid;position:absolute;bottom:16px;right:16px;transform:translateY(70px)}.project-image-link:hover .project-open,.project-image-link:focus-visible .project-open{transform:translateY(0)}.project-info{padding-top:22px}.project-info h3{font:600 clamp(27px, 3vw, 42px) / 1 var(--display);letter-spacing:-.045em;margin-bottom:13px}.project-info>p{max-width:650px;color:var(--secondary);margin-bottom:24px;font-size:15px;line-height:1.6}.project-bottom{border-top:1px solid var(--line);justify-content:space-between;align-items:end;gap:28px;padding-top:18px;display:flex}.project-bottom ul{color:#52525b;flex-wrap:wrap;gap:8px 16px;margin:0;padding:0;font-size:11px;list-style:none;display:flex}.project-bottom a{flex:none;align-items:center;gap:7px;font-size:12px;font-weight:600;transition:color .18s ease-out;display:inline-flex}.project-bottom a:hover{color:var(--blue)}.experience{color:var(--white);background:var(--primary)}.experience .section-title{margin-bottom:48px}.experience-list{border-top:1px solid #3f3f46}.experience-list article{border-bottom:1px solid #3f3f46;grid-template-columns:.7fr 1fr 1.6fr auto;align-items:start;gap:40px;padding:24px 0;transition:transform .22s ease-out,border-color .22s ease-out;display:grid}.experience-list article:hover{border-color:var(--blue);transform:translate(14px)}.experience-list h3{font:600 19px/1.35 var(--display);margin:0}.experience-role,.experience-description,.experience-period{margin:2px 0 0}.experience-role{font-size:14px}.experience-description{color:#a1a1aa;max-width:550px;font-size:13px;line-height:1.6}.experience-period{color:#a1a1aa;text-align:right;font-size:12px}.about{color:var(--white);background:var(--blue);grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:72px;display:grid}.about-lead{letter-spacing:-.025em;max-width:760px;margin:34px 0 0;font-size:clamp(21px,2.1vw,31px);line-height:1.45}.tool-list{border-top:1px solid #ffffff61;grid-template-columns:1fr 1fr;align-content:center;margin:0;padding:0;list-style:none;display:grid}.tool-list li{border-bottom:1px solid #ffffff61;padding:16px 0;font-size:14px}.tool-list li:nth-child(2n){padding-left:22px}.contact{padding:clamp(72px, 6vw, 96px) var(--page-pad) 30px;background:var(--white)}.contact>p{color:var(--secondary);margin-bottom:22px;font-size:14px}.contact>a{color:var(--ink);border-bottom:2px solid var(--ink);font:600 clamp(60px, 9vw, 132px) / .9 var(--display);letter-spacing:-.075em;justify-content:space-between;align-items:center;padding-bottom:24px;transition:color .22s ease-out,border-color .22s ease-out;display:flex}.contact>a:hover{color:var(--blue);border-color:var(--blue)}.contact>a svg{font-size:.68em}footer{color:#52525b;grid-template-columns:1fr auto 1fr;gap:30px;margin-top:42px;font-size:11px;display:grid}footer p{margin:0}footer div{flex-wrap:wrap;align-items:center;gap:12px 24px;display:flex}footer .footer-social-links{justify-self:center}footer .footer-legal-links{justify-self:end;gap:12px 16px}footer a{align-items:center;gap:5px;display:inline-flex}footer a:hover{color:var(--blue)}.legal-page{min-height:100svh;color:var(--ink);background:var(--paper)}.legal-header{width:min(var(--content), calc(100% - 40px));border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:84px;margin:0 auto;display:flex}.legal-logo{width:38px;height:38px;display:block}.legal-logo img{object-fit:contain;width:100%;height:100%;display:block}.legal-home-link{border:1px solid var(--line);border-radius:999px;align-items:center;min-height:38px;padding:0 13px;font-size:12px;font-weight:600;transition:color .18s ease-out,border-color .18s ease-out;display:inline-flex}.legal-home-link:hover{color:var(--blue);border-color:var(--blue)}.legal-main{width:min(760px,100% - 40px);margin:0 auto;padding:clamp(72px,10vw,132px) 0 56px}.legal-kicker{color:var(--blue);letter-spacing:.1em;text-transform:uppercase;margin-bottom:22px;font-size:12px;font-weight:700}.legal-main h1{max-width:640px;font:600 clamp(56px, 9vw, 96px) / .88 var(--display);letter-spacing:-.07em;margin:0}.legal-updated{color:var(--secondary);margin:24px 0 56px;font-size:13px}.legal-content{max-width:680px}.legal-content section{border-top:1px solid var(--line);padding:32px 0}.legal-content h2{font:600 clamp(26px, 4vw, 34px) / 1 var(--display);letter-spacing:-.045em;margin:0 0 12px}.legal-content p,.legal-content li{color:var(--secondary);font-size:15px;line-height:1.72}.legal-content p:last-child{margin-bottom:0}.legal-content ul{margin:0;padding-left:20px}.legal-content a{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.legal-content a:hover{color:var(--blue)}.legal-footer{width:min(var(--content), calc(100% - 40px));border-top:1px solid var(--line);color:#52525b;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 28px;margin:0 auto;padding:26px 0 34px;font-size:11px;display:flex}.legal-footer p{margin:0}.legal-footer div{flex-wrap:wrap;gap:18px;display:flex}.legal-footer a:hover{color:var(--blue)}@media (max-width:1000px){.hero{grid-template-columns:minmax(0,1fr) minmax(330px,.7fr);min-height:700px}.hero h1{font-size:clamp(68px,10vw,104px)}.experience-list article{grid-template-columns:.6fr 1fr 1.5fr auto;gap:24px}.about{gap:60px}}@media (max-width:820px){:root{--page-pad:20px}html{scroll-padding-top:86px}.site-header{grid-template-columns:1fr auto;width:calc(100% - 24px);height:58px;padding:0 14px;top:12px}.site-header nav{display:none}.logo{width:32px;height:32px}.legal-header{width:calc(100% - 40px);height:76px}.legal-main{padding-top:72px}.legal-footer{width:calc(100% - 40px)}.hero{grid-template-columns:1fr;align-content:start;height:auto;min-height:780px;padding:126px 20px 0}.hero-blue{inset:56% 0 0}.hero-copy{z-index:4}.role{margin-bottom:26px}.hero h1{font-size:clamp(62px,21vw,92px)}.intro{max-width:480px;font-size:17px}.hero-actions{gap:20px}.button{justify-content:center;width:100%}.portrait-wrap{justify-self:center;width:min(88vw,480px);margin-top:46px}.section{padding:72px 20px}.section-title{margin-bottom:42px;display:block}.section-title h2,.about h2{font-size:54px}.section-title p{margin:14px 0 0}.project-grid{grid-template-columns:1fr;gap:50px}.project-card-featured{grid-column:auto;display:block}.project-card-featured .project-info{padding-top:22px}.project-card-featured .project-image-wrap,.project-image-wrap{aspect-ratio:1.55}.project-info h3{font-size:34px}.project-bottom{align-items:flex-start}.project-bottom ul{max-width:65%}.experience-list article{grid-template-columns:1fr auto;gap:8px 18px}.experience-role,.experience-description{grid-column:1/-1}.experience-description{margin-top:8px}.experience-period{grid-area:1/2}.experience-list article:hover{transform:none}.about{grid-template-columns:1fr;gap:54px}.about-lead{margin-top:28px;font-size:21px}.contact{padding:72px 20px 26px}.contact>a{font-size:clamp(60px,19vw,88px)}footer{grid-template-columns:1fr;gap:16px}footer .footer-social-links,footer .footer-legal-links{justify-self:start}}@media (max-width:390px){.hero{min-height:740px}.hero h1{font-size:59px}.hero-actions{font-size:12px}.project-bottom{display:block}.project-bottom ul{max-width:none;margin-bottom:18px}.tool-list{grid-template-columns:1fr}.tool-list li:nth-child(2n){padding-left:0}footer{grid-template-columns:1fr}footer p:last-child{grid-column:auto}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal-ready [data-reveal]>*{opacity:1;transform:none}.portrait-backdrop,.portrait-orbit,.portrait-wrap img,.hero-blue:after{animation:none}}
