:root{--base:#1e1e2e;--mantle:#181825;--crust:#11111b;--surface0:#313244;--surface1:#45475a;--overlay2:#9399b2;--subtext0:#a6adc8;--subtext1:#bac2de;--text:#cdd6f4;--rosewater:#f5e0dc;--accent:#cba6f7;--glow:rgba(166,227,161,.12);--font-body:"Geist",system-ui,sans-serif;--font-mono:"Geist Mono",ui-monospace,monospace;--font-display:"Pixelify Sans",var(--font-mono);--mx:-9999px;--my:-9999px}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.nav__bars,.nav__bars:after,.nav__bars:before{transition:none}}body{-webkit-font-smoothing:antialiased;background:#1e1e2e;background:var(--base);color:#a6adc8;color:var(--subtext0);font-family:Geist,system-ui,sans-serif;font-family:var(--font-body);font-size:17px;line-height:1.6;margin:0}a{color:#cdd6f4;color:var(--text)}a:hover{color:#f5e0dc;color:var(--rosewater)}a:focus-visible{outline:2px solid #cba6f7;outline:2px solid var(--accent);outline-offset:3px}::selection{background:#cba6f7;background:var(--accent);color:#11111b;color:var(--crust)}.container{margin:0 auto;max-width:1040px;padding:0 24px}.accent{color:#cba6f7;color:var(--accent)}.hl{color:#cdd6f4;color:var(--text)}.muted{color:#9399b2;color:var(--overlay2)}.mono{font-family:Geist Mono,ui-monospace,monospace;font-family:var(--font-mono)}.label{color:#cba6f7;color:var(--accent);font-size:13px;letter-spacing:.14em}.label,.mono-link{font-family:Geist Mono,ui-monospace,monospace;font-family:var(--font-mono);text-transform:uppercase}.mono-link{font-size:14px;letter-spacing:.1em;text-underline-offset:6px}.h2{color:#cdd6f4;color:var(--text);font-family:Pixelify Sans,Geist Mono,ui-monospace,monospace;font-family:var(--font-display);font-size:64px;font-weight:500;line-height:1.05;margin:0}.backdrop{inset:0;pointer-events:none;position:fixed;z-index:0}.backdrop__glow{background:radial-gradient(circle 260px at -9999px -9999px,rgba(166,227,161,.12),transparent 75%);background:radial-gradient(circle 260px at var(--mx) var(--my),var(--glow),transparent 75%);inset:0;position:absolute}.backdrop__rain{height:100%;inset:0;-webkit-mask-image:radial-gradient(circle 260px at -9999px -9999px,rgba(0,0,0,.63),rgba(0,0,0,.18) 100%);-webkit-mask-image:radial-gradient(circle 260px at var(--mx) var(--my),rgba(0,0,0,.63),rgba(0,0,0,.18) 100%);mask-image:radial-gradient(circle 260px at -9999px -9999px,rgba(0,0,0,.63),rgba(0,0,0,.18) 100%);mask-image:radial-gradient(circle 260px at var(--mx) var(--my),rgba(0,0,0,.63),rgba(0,0,0,.18) 100%);position:absolute;width:100%}.page{position:relative;z-index:1}.ticker{background:#cba6f7;background:var(--accent);color:#11111b;color:var(--crust);font-family:Geist Mono,ui-monospace,monospace;font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.12em;padding:9px 16px;text-align:center;text-transform:uppercase}.ticker__dot{opacity:.6}.nav{align-items:center;display:flex;flex-wrap:wrap;gap:16px 32px;justify-content:space-between;padding-bottom:24px;padding-top:24px}.nav__logo{font-family:Pixelify Sans,Geist Mono,ui-monospace,monospace;font-family:var(--font-display);font-size:26px;font-weight:600;letter-spacing:.02em;text-decoration:none}.nav__links{align-items:center;display:flex;flex-wrap:wrap;font-size:15px;gap:8px 28px}.nav__links a{color:#a6adc8;color:var(--subtext0);text-decoration:none}.nav__links a:hover{color:#f5e0dc;color:var(--rosewater)}.nav__links .nav__cta{align-items:center;background:#cdd6f4;background:var(--text);color:#11111b;color:var(--crust);display:inline-flex;font-weight:600;min-height:44px;padding:10px 16px}.nav__links .nav__cta:hover{background:#f5e0dc;background:var(--rosewater);color:#11111b;color:var(--crust)}.nav__toggle{background:#181825;background:var(--mantle);border:1px solid #45475a;border:1px solid var(--surface1);color:#cdd6f4;color:var(--text);cursor:pointer;display:none;height:44px;padding:0;width:44px}.nav.is-open .nav__toggle,.nav__toggle:hover{border-color:#cba6f7;border-color:var(--accent);color:#cba6f7;color:var(--accent)}.nav__bars,.nav__bars:after,.nav__bars:before{background:currentColor;display:block;height:2px;margin:0 auto;transition:background-color .2s ease,-webkit-transform .2s ease;transition:transform .2s ease,background-color .2s ease;transition:transform .2s ease,background-color .2s ease,-webkit-transform .2s ease;width:18px}.nav__bars{position:relative}.nav__bars:after,.nav__bars:before{content:"";left:0;position:absolute}.nav__bars:before{-webkit-transform:translateY(-6px);transform:translateY(-6px)}.nav__bars:after{-webkit-transform:translateY(6px);transform:translateY(6px)}.nav.is-open .nav__bars{background:transparent}.nav.is-open .nav__bars:before{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.nav.is-open .nav__bars:after{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.brackets{--corner:14px;--corner-color:var(--text);position:relative}.brackets__corner{border:0 solid var(--corner-color);height:var(--corner);position:absolute;width:var(--corner)}.brackets__corner--tl{border-left-width:2px;border-top-width:2px;left:0;top:0}.brackets__corner--tr{border-right-width:2px;border-top-width:2px;right:0;top:0}.brackets__corner--bl{border-bottom-width:2px;border-left-width:2px;bottom:0;left:0}.brackets__corner--br{border-bottom-width:2px;border-right-width:2px;bottom:0;right:0}.brackets--accent{--corner:10px;--corner-color:var(--accent);padding:7px}.dot-grid{background-image:radial-gradient(#313244 1px,transparent 1.2px);background-image:radial-gradient(var(--surface0) 1px,transparent 1.2px);background-size:8px 8px}.hero{align-items:center;display:flex;flex-wrap:wrap;gap:64px;padding:96px 0 120px}.hero__portrait{display:flex;flex:1 1 300px;justify-content:center}.hero__text{display:flex;flex:999 1 480px;flex-direction:column;gap:22px;min-width:0}.hero__title{color:#cdd6f4;color:var(--text);font-family:Pixelify Sans,Geist Mono,ui-monospace,monospace;font-family:var(--font-display);font-size:80px;font-weight:500;letter-spacing:-.01em;line-height:1;margin:0}.hero__lede{font-size:20px;margin:0;max-width:32ch}.hero__school{font-size:14px;margin:0}.hero__actions{align-items:center;display:flex;flex-wrap:wrap;gap:20px;margin-top:12px}.button{align-items:center;background:#cba6f7;background:var(--accent);display:inline-flex;font-family:Geist Mono,ui-monospace,monospace;font-family:var(--font-mono);font-size:14px;font-weight:500;justify-content:center;letter-spacing:.14em;min-height:52px;padding:0 40px;text-decoration:none;text-transform:uppercase}.button,.button:hover{color:#11111b;color:var(--crust)}.button:hover{background:#f5e0dc;background:var(--rosewater)}.portrait{padding:18px}.portrait__frame{aspect-ratio:5/6;max-width:calc(100vw - 84px);position:relative;width:300px}.portrait__img{display:block;-webkit-filter:grayscale(1) contrast(1.5) brightness(1.15);filter:grayscale(1) contrast(1.5) brightness(1.15);height:100%;-webkit-mask-image:radial-gradient(circle,#000 52%,transparent 58%);mask-image:radial-gradient(circle,#000 52%,transparent 58%);-webkit-mask-size:4px 4px;mask-size:4px 4px;object-fit:cover;width:100%}.portrait__slice{left:0;top:0;-webkit-transform-origin:left center;transform-origin:left center}.portrait__block,.portrait__slice{pointer-events:none;position:absolute}.portrait__block{background-image:radial-gradient(#bac2de 1px,transparent 1.4px);background-image:radial-gradient(var(--subtext1) 1px,transparent 1.4px);background-size:3px 3px}.glitch-text{display:inline-block;position:relative}.glitch-text__overlay{left:0;pointer-events:none;position:absolute;top:0;white-space:nowrap}.section{padding-bottom:120px}.work{display:flex;flex-direction:column;gap:32px}.work__span{color:#cba6f7;color:var(--accent);display:block;font-family:Pixelify Sans,Geist Mono,ui-monospace,monospace;font-family:var(--font-display);font-size:40px;line-height:1.1;margin-top:4px}.panel{background:#181825;background:var(--mantle);border:1px solid #313244;border:1px solid var(--surface0);padding:8px 32px}.job{align-items:center;border-bottom:1px dashed #45475a;border-bottom:1px dashed var(--surface1);display:flex;flex-wrap:wrap;gap:8px 32px;padding:28px 0}.job:last-child{border-bottom:0}.job__dates{color:#9399b2;color:var(--overlay2);flex:0 0 180px;font-family:Geist Mono,ui-monospace,monospace;font-family:var(--font-mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase}.job__body{flex:1 1 320px;min-width:0}.job__company{color:#cdd6f4;color:var(--text);font-family:Pixelify Sans,Geist Mono,ui-monospace,monospace;font-family:var(--font-display);font-size:30px;line-height:1.2}.job__company a{text-decoration:none}.job__arrow{font-size:20px;vertical-align:4px}.badge{border:1px solid #45475a;border:1px solid var(--surface1);color:#cdd6f4;color:var(--text);font-family:Geist Mono,ui-monospace,monospace;font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;padding:6px 12px;text-transform:uppercase}.education{align-items:flex-start;display:flex;flex-wrap:wrap;gap:48px}.education__title{flex:1 1 280px}.education__list{flex:2 1 480px;margin:0;min-width:0}.education__row{border-top:1px dashed #45475a;border-top:1px dashed var(--surface1);display:flex;flex-wrap:wrap;gap:4px 24px;padding:14px 0}.education__row:last-child{border-bottom:1px dashed #45475a;border-bottom:1px dashed var(--surface1)}.education__row dt{color:#cba6f7;color:var(--accent);flex:0 0 140px;font-family:Geist Mono,ui-monospace,monospace;font-family:var(--font-mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase}.education__row dd{color:#cdd6f4;color:var(--text);margin:0}.projects{display:flex;flex-wrap:wrap;gap:20px;margin-top:32px}.project{align-items:flex-start;border:1px dashed #45475a;border:1px dashed var(--surface1);display:flex;flex:1 1 300px;flex-direction:column;gap:14px;min-width:0;padding:28px}.project__name{font-family:Pixelify Sans,Geist Mono,ui-monospace,monospace;font-family:var(--font-display);font-size:36px;font-weight:400;line-height:1.1}.project__name,.project__pitch{color:#cdd6f4;color:var(--text);margin:0}.project__link{align-items:center;display:inline-flex;font-family:Geist Mono,ui-monospace,monospace;font-family:var(--font-mono);font-size:13px;letter-spacing:.1em;margin-top:4px;min-height:44px;text-transform:uppercase;text-underline-offset:5px}.contact{align-items:center;border-top:1px solid #313244;border-top:1px solid var(--surface0);display:flex;flex-direction:column;gap:24px;padding:96px 0 120px;text-align:center}.contact__title{color:#cdd6f4;color:var(--text);font-family:Pixelify Sans,Geist Mono,ui-monospace,monospace;font-family:var(--font-display);font-size:80px;font-weight:500;line-height:1;margin:0}.contact__email{font-size:22px;overflow-wrap:anywhere;text-underline-offset:6px}.contact__socials{display:flex;gap:12px}.icon-button{align-items:center;border:1px solid #45475a;border:1px solid var(--surface1);display:inline-flex;height:44px;justify-content:center;width:44px}.icon-button:hover{border-color:#f5e0dc;border-color:var(--rosewater)}.footer{border-top:1px solid #313244;border-top:1px solid var(--surface0)}.footer__inner{color:#9399b2;color:var(--overlay2);display:flex;flex-wrap:wrap;font-family:Geist Mono,ui-monospace,monospace;font-family:var(--font-mono);font-size:12px;gap:8px 24px;justify-content:space-between;letter-spacing:.1em;padding-bottom:24px;padding-top:24px;text-transform:uppercase}@media (max-width:600px){.nav{flex-wrap:nowrap;position:relative;z-index:2}.nav__toggle{display:block}.nav__links{display:none}.nav.is-open .nav__links{align-items:stretch;background:#181825;background:var(--mantle);border:1px solid #45475a;border:1px solid var(--surface1);box-shadow:0 16px 40px rgba(17,17,27,.6);display:flex;flex-direction:column;gap:0;left:24px;padding:8px;position:absolute;right:24px;top:calc(100% - 12px)}.nav.is-open .nav__links a:not(.nav__cta){align-items:center;border-bottom:1px solid #313244;border-bottom:1px solid var(--surface0);display:flex;min-height:48px;padding:0 12px}.nav.is-open .nav__links .nav__cta{justify-content:center;margin-top:8px}.hero{gap:48px;padding:56px 0 88px}.contact__title,.hero__title{font-size:56px}.h2{font-size:48px}.work__span{font-size:30px}.panel{padding:4px 20px}.section{padding-bottom:88px}.contact{padding:72px 0 88px}.education__row dt{flex-basis:100%}}
/*# sourceMappingURL=main.4fd9cde7.css.map*/