@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/32687112bd2dd8db-s.0v2ipp7s07_p9.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:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/28868e710e86be81-s.44ks8kcggj012.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:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.1ii7211jqpzi_.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:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.space_grotesk_6bde161f-module__FMgJqG__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.space_grotesk_6bde161f-module__FMgJqG__variable{--font-sans:"Space Grotesk", "Space Grotesk Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.3zhtymus0wdqb.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.3nkuoiize4urq.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.1da667lu-u79a.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.1i05ju5aeyhye.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.1dgcou5jor5q_.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.31-2bzhq1gx_9.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.3xauquyg2sixn.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.2taws-qdxmzlf.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.0htwiiqufp3l9.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.28xcb7557rbh2.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_30c7ab4c-module__VCrZzq__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_30c7ab4c-module__VCrZzq__variable{--font-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
:root{--ink:#f7f7ff;--muted:#b8bad3;--night:#050718;--night-soft:#0a0d23;--cyan:#19c8ff;--pink:#ff3aac;--line:#ffffff26}*{box-sizing:border-box}html{background:var(--night);color:var(--ink);font-family:var(--font-sans), sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}body{margin:0}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}::selection{color:#fff;background:#ff3aac5c}.home{--pointer-x:50%;--pointer-y:48%;isolation:isolate;background:var(--night);grid-template-rows:auto 1fr auto;min-height:100svh;display:grid;position:relative;overflow:hidden}.home:after{z-index:1;background:radial-gradient(circle 420px at var(--pointer-x) var(--pointer-y), #19c8ff1f, #ff3aac0a 46%, transparent 74%);content:"";pointer-events:none;transition:background-position .18s ease-out;position:absolute;inset:0}.cover-image,.resume-background{z-index:-3;object-fit:cover;object-position:center}.cover-image{filter:saturate(.78)brightness(.68);animation:18s ease-in-out infinite alternate cover-breathe;transform:scale(1.035)}.cover-wash{z-index:-2;background:linear-gradient(#03041152 0%,#0000 35%),radial-gradient(circle at 50% 48%,#0000 0%,#04051459 54%,#03040fe0 100%),linear-gradient(90deg,#05071875,#0000 28% 72%,#05071875);position:absolute;inset:0}.cover-wash:after,.resume-wash:after{content:"";mix-blend-mode:soft-light;opacity:.08;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.34'/%3E%3C/svg%3E");position:absolute;inset:0}.ambient{z-index:-1;filter:blur(110px);opacity:.17;pointer-events:none;border-radius:50%;width:32rem;height:32rem;position:absolute}.ambient-one{background:var(--cyan);animation:14s ease-in-out infinite alternate ambient-drift-one;top:-18rem;left:-10rem}.ambient-two{background:var(--pink);animation:16s ease-in-out infinite alternate ambient-drift-two;bottom:-20rem;right:-12rem}.site-header,.site-footer,.hero{z-index:2;position:relative}.site-header,.site-footer{justify-content:space-between;align-items:center;width:100%;padding-inline:clamp(1.25rem,4vw,4rem);display:flex}.site-header{padding-top:clamp(1.3rem,3.5vw,2.5rem)}.logo-link,.site-logo{width:2rem;height:2rem;display:block}.logo-link{border-radius:.5rem;transition:box-shadow .18s,transform .18s}.logo-link:hover,.logo-link:focus-visible,.back-link:hover .site-logo,.back-link:focus-visible .site-logo{transform:translateY(-.08rem);box-shadow:0 0 1.5rem #19c8ff47}.resume-link{font-family:var(--font-mono), monospace;letter-spacing:.11em;text-transform:uppercase;border-bottom:1px solid #ffffff4d;align-items:center;gap:.55rem;padding-block:.3rem;font-size:.68rem;transition:border-color .18s,color .18s;display:inline-flex}.resume-link svg,.back-link svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;width:.9rem;transition:transform .18s}.resume-link:hover,.resume-link:focus-visible{border-color:var(--cyan);color:var(--cyan)}.resume-link:hover svg,.resume-link:focus-visible svg{transform:translate(.15rem)}.hero{text-align:center;flex-direction:column;justify-content:center;align-self:center;align-items:center;padding:clamp(2.5rem,7vh,5rem) 1.25rem;display:flex}.portrait-wrap{margin-bottom:clamp(1.6rem,3.5vh,2.2rem);animation:7s ease-in-out infinite portrait-float;position:relative}.portrait-frame{aspect-ratio:1;background:var(--night-soft);border:1px solid #ffffff7a;border-radius:50%;width:clamp(8.5rem,13vw,11rem);position:relative;overflow:hidden;box-shadow:0 1.8rem 5rem #0000007a,inset 0 0 0 .3rem #ffffff0a}.portrait-frame:after{border-radius:inherit;content:"";pointer-events:none;border:.42rem solid #0507186b;position:absolute;inset:0}.portrait{object-fit:cover;width:100%;height:100%}.portrait-halo{background:conic-gradient(from 90deg, transparent 0 12%, var(--pink) 25%, transparent 40% 62%, var(--cyan) 78%, transparent 92%);filter:blur(8px);opacity:.55;border-radius:50%;animation:10s linear infinite halo-spin;position:absolute;inset:-.65rem}.role,.document-label{color:#d5d6e8;font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;margin:0;font-size:clamp(.65rem,1vw,.76rem)}.role{align-items:center;gap:.75rem;display:flex}.role:before,.role:after{background:linear-gradient(90deg, transparent, var(--cyan));content:"";width:1.5rem;height:1px}.role:after{background:linear-gradient(90deg, var(--pink), transparent)}.hero h1{letter-spacing:-.075em;text-shadow:0 .2rem 2rem #0000005c;margin:.65rem 0 0;font-size:clamp(3rem,8vw,7.2rem);font-weight:500;line-height:.94}.availability{color:#ffffffb8;font-family:var(--font-mono), monospace;letter-spacing:.13em;text-transform:uppercase;align-items:center;gap:.55rem;margin:.9rem 0 0;font-size:clamp(.62rem,.9vw,.72rem);display:inline-flex}.availability span{background:var(--cyan);border-radius:50%;width:.45rem;height:.45rem;box-shadow:0 0 .8rem #19c8ffcc}.hero-resume-button{background:var(--ink);min-width:min(15rem,100%);min-height:3.35rem;color:var(--night);font-family:var(--font-mono), monospace;letter-spacing:.11em;text-transform:uppercase;border:1px solid #ffffffeb;border-radius:999px;justify-content:center;align-items:center;gap:.8rem;margin-top:clamp(1.4rem,3vh,2rem);font-size:.72rem;font-weight:500;transition:border-color .18s,background .18s,box-shadow .18s,transform .18s;display:inline-flex;box-shadow:0 .8rem 2.5rem #00000040,0 0 2.5rem #19c8ff14}.hero-resume-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;width:1.1rem;transition:transform .18s}.hero-resume-button:hover,.hero-resume-button:focus-visible{border-color:var(--cyan);background:var(--cyan);transform:translateY(-.14rem);box-shadow:0 .8rem 2.5rem #00000052,0 0 3rem #19c8ff3d}.hero-resume-button:hover svg,.hero-resume-button:focus-visible svg{transform:translate(.18rem)}.social-links{flex-wrap:wrap;justify-content:center;gap:.75rem;max-width:calc(100vw - 2.5rem);margin-top:clamp(1.4rem,3vh,2rem);display:flex}.social-link{border:1px solid var(--line);-webkit-backdrop-filter:blur(.85rem);backdrop-filter:blur(.85rem);color:#ffffffc7;background:#0507186b;border-radius:50%;place-items:center;width:2.75rem;height:2.75rem;transition:border-color .2s,color .2s,transform .2s,background .2s;display:grid;position:relative}.social-link svg{fill:currentColor;width:1.05rem}.social-link:after{color:#ffffffb8;content:attr(data-label);font-family:var(--font-mono), monospace;letter-spacing:.08em;opacity:0;pointer-events:none;text-transform:uppercase;background:#050718c2;border-radius:.2rem;padding:.15rem .35rem;font-size:.56rem;transition:opacity .18s,transform .18s;position:absolute;bottom:-1.75rem;left:50%;transform:translate(-50%,-.2rem)}.social-link:hover,.social-link:focus-visible{color:var(--cyan);background:#0c112ebd;border-color:#19c8ffa6;transform:translateY(-.18rem)}.social-link:hover:after,.social-link:focus-visible:after{opacity:1;transform:translate(-50%)}.site-footer{color:#ffffff8f;font-family:var(--font-mono), monospace;letter-spacing:.08em;padding-bottom:clamp(1.3rem,3.5vw,2.5rem);font-size:.64rem}.home-footer{justify-content:flex-end}.resume-page{isolation:isolate;background:var(--night);min-height:100svh;padding:0 clamp(1.25rem,4vw,4rem) clamp(1.25rem,4vw,4rem);position:relative;overflow:hidden}.resume-background{filter:saturate(.78)brightness(.68);animation:18s ease-in-out infinite alternate cover-breathe;transform:scale(1.035);position:fixed!important}.resume-wash{z-index:-2;background:linear-gradient(#03041152 0%,#0000 35%),radial-gradient(circle at 50% 48%,#0000 0%,#04051459 54%,#03040fe0 100%),linear-gradient(90deg,#05071875,#0000 28% 72%,#05071875);position:fixed;inset:0}.resume-header{justify-content:space-between;align-items:center;max-width:88rem;min-height:clamp(4.5rem,9vw,6.5rem);margin-inline:auto;display:flex}.back-link{color:#ffffffb8;font-family:var(--font-mono), monospace;letter-spacing:.09em;align-items:center;gap:.5rem;font-size:.68rem;transition:color .18s;display:inline-flex}.back-link:hover,.back-link:focus-visible{color:var(--cyan)}.back-link:hover>svg,.back-link:focus-visible>svg{transform:translate(-.15rem)}.resume-card{-webkit-backdrop-filter:blur(1.2rem);backdrop-filter:blur(1.2rem);background:#050718a8;border:1px solid #ffffff21;border-radius:clamp(1rem,2vw,1.5rem);width:100%;min-width:0;max-width:88rem;margin-inline:auto;overflow:hidden;box-shadow:0 2rem 7rem #00000061}.resume-intro{justify-content:space-between;align-items:flex-end;gap:2rem;padding:clamp(1.4rem,4vw,3.2rem);display:flex}.document-label{color:var(--cyan);font-size:.62rem}.resume-intro h1{letter-spacing:-.07em;margin:.4rem 0 -.1em;font-size:clamp(2.5rem,6vw,5.5rem);font-weight:500;line-height:1}.download-actions{gap:.65rem;display:flex}.download-button{min-width:6.6rem;min-height:2.85rem;font-family:var(--font-mono), monospace;letter-spacing:.12em;background:#ffffff0d;border:1px solid #ffffff2e;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;font-size:.65rem;transition:border-color .18s,background .18s,color .18s,transform .18s;display:inline-flex}.download-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.4px;width:1rem}.download-button.primary{background:var(--ink);color:var(--night);border-color:#0000}.download-button:hover,.download-button:focus-visible{border-color:var(--cyan);color:var(--cyan);background:#19c8ff1f;transform:translateY(-.12rem)}.download-button.primary:hover,.download-button.primary:focus-visible{background:var(--cyan);color:var(--night)}.document-preview{background:radial-gradient(circle at 80% 0,#ff3aac14,#0000 32%),radial-gradient(circle at 10% 22%,#19c8ff14,#0000 30%),#0204109e;border-top:1px solid #ffffff1a;width:100%;min-width:0;padding:clamp(.8rem,2.5vw,2.25rem);display:block}.preview-toolbar{color:#ffffff8f;max-width:64rem;font-family:var(--font-mono), monospace;letter-spacing:.11em;text-transform:uppercase;justify-content:space-between;align-items:center;margin:0 auto .8rem;font-size:.58rem;display:flex}.preview-label,.preview-open{align-items:center;display:inline-flex}.preview-label{gap:.5rem}.preview-dot{background:var(--cyan);border-radius:50%;width:.38rem;height:.38rem;box-shadow:0 0 .8rem #19c8ffcc}.preview-open{color:#ffffffc2;gap:.35rem;transition:color .18s}.preview-open svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.3px;width:.78rem;transition:transform .18s}.document-preview:hover .preview-open,.document-preview:focus-visible .preview-open{color:var(--cyan)}.document-preview:hover .preview-open svg,.document-preview:focus-visible .preview-open svg{transform:translate(.1rem,-.1rem)}.resume-paper{background:#fff;border:1px solid #ffffff29;border-radius:clamp(.25rem,.8vw,.55rem);width:100%;min-width:0;max-width:64rem;margin-inline:auto;transition:border-color .18s,box-shadow .18s;display:block;overflow:hidden;box-shadow:0 2rem 5rem #0006,0 0 4rem #19c8ff0d}.resume-paper img{width:100%;height:auto;display:block}.document-preview:hover .resume-paper,.document-preview:focus-visible .resume-paper{border-color:#19c8ff57;box-shadow:0 2rem 5rem #00000075,0 0 5rem #19c8ff17}.resume-footer{color:#ffffff8f;max-width:88rem;font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;justify-content:center;align-items:center;gap:1.5rem;margin:clamp(1.4rem,3vw,2.25rem) auto 0;font-size:.61rem;display:flex;position:relative}.resume-social-links{justify-content:center;margin-top:0}.resume-footer>span{position:absolute;right:0}.not-found{background:radial-gradient(circle at 25% 25%, #19c8ff26, transparent 32%), radial-gradient(circle at 75% 75%, #ff3aac26, transparent 34%), var(--night);text-align:center;place-content:center;min-height:100svh;padding:2rem;display:grid}.not-found p{color:var(--pink);font-family:var(--font-mono), monospace;letter-spacing:.2em;margin:0;font-size:.7rem}.not-found h1{letter-spacing:-.07em;margin:.5rem 0 1.5rem;font-size:clamp(2.8rem,8vw,6rem);font-weight:500}.not-found a{border-bottom:1px solid var(--cyan);color:var(--cyan);font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase;justify-self:center;padding-bottom:.25rem;font-size:.7rem}:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}@keyframes cover-breathe{0%{transform:scale(1.035)translate(-.25%)}to{transform:scale(1.085)translate(.5%,-.5%)}}@keyframes portrait-float{0%,to{transform:translateY(0)}50%{transform:translateY(-.55rem)}}@keyframes halo-spin{to{transform:rotate(360deg)}}@keyframes ambient-drift-one{to{transform:translate(7rem,5rem)scale(1.18)}}@keyframes ambient-drift-two{to{transform:translate(-8rem,-4rem)scale(1.12)}}@media (max-width:640px){.cover-image,.resume-background{object-position:55% center}.home:after{display:none}.hero{padding-block:2.4rem 3.2rem}.hero h1{max-width:100%;font-size:clamp(2.8rem,13vw,4rem)}.role{letter-spacing:.17em;font-size:.59rem}.social-link:after{display:none}.social-links{gap:.25rem}.social-link{width:2.25rem;height:2.25rem}.social-link svg{width:.95rem}.site-footer{font-size:.57rem}.resume-intro{flex-direction:column;align-items:stretch;gap:1.4rem}.download-actions{width:100%;min-width:0}.download-button{flex:1;min-width:0}.document-preview{padding:.7rem}.preview-toolbar{margin-bottom:.65rem;font-size:.52rem}.resume-footer{flex-direction:column;align-items:center;gap:1rem}.resume-footer>span{position:static}}@media (max-width:340px){.social-links{gap:.125rem}.social-link{flex:none;width:2.0625rem;height:2.0625rem}}@media (max-height:720px) and (min-width:641px){.hero{padding-block:1.5rem}.portrait-frame{width:7.75rem}.portrait-wrap{margin-bottom:1.2rem}.hero h1{font-size:clamp(3rem,9vh,4.5rem)}.social-links{margin-top:1.1rem}.hero-resume-button{min-height:3rem;margin-top:1.15rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
