:root{--bg-0:#0b0a18;--ink:#f3f0ff;--mut:#a39db8;--mut-2:#6f6987;--glass:#ffffff0d;--glass-2:#ffffff14;--bord:#ffffff1f;--bord-2:#fff3;--accent:#ffc24a;--accent2:#ff7a3c;--accent-ink:var(--accent);--accent-bord:var(--accent);--accent-on:#1a0f02;--grad:linear-gradient(100deg,var(--accent2),var(--accent));--glow:#ff963c73;--field-bg:#ffffff09;--gh:#5cc08a;--li:#5b9bd5;--wave-1:#ff7a3c;--wave-2:#ffc24a;--wave-3:#fff;--r:5px;--r-sm:3px}[data-theme=light]{--bg-0:#fdf3ea;--ink:#241a13;--mut:#6b5d50;--mut-2:#9a8c7d;--glass:#2814080a;--glass-2:#28140812;--bord:#2814081f;--bord-2:#28140838;--accent:#8b5cf6;--accent2:#7c3aed;--accent-on:#fff;--accent-ink:#6d28d9;--accent-bord:#7c3aed;--glow:#7c3aed4d;--field-bg:#2814080a;--gh:#2e9e6b;--li:#2f7fc4;--wave-1:#6d28d9;--wave-2:#8b5cf6;--wave-3:#a855f7}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth}body{color:var(--ink);background:var(--bg-0);background-image:radial-gradient(90% 60% at 12% 0,#241346 0%,#0000 55%),radial-gradient(80% 70% at 92% 12%,#3a1840 0%,#0000 55%),radial-gradient(120% 80% at 50% 112%,#2a1530 0%,#0000 60%),linear-gradient(#0b0a18,#0d0b1f 60%,#100a1c);min-height:100vh;font-family:Outfit,system-ui,sans-serif;font-weight:300;line-height:1.6;position:relative;overflow-x:hidden}[data-theme=light] body{background-image:radial-gradient(90% 60% at 12% 0,#ffe3cc 0%,#0000 55%),radial-gradient(80% 70% at 92% 12%,#ffd9bf 0%,#0000 55%),radial-gradient(120% 80% at 50% 112%,#ffe7d6 0%,#0000 60%),linear-gradient(#fff6ef,#fdeee1 60%,#fff3ea)}::selection{background:var(--accent);color:var(--accent-on)}a{color:inherit;text-decoration:none}.mono{font-family:JetBrains Mono,ui-monospace,monospace}.gtext{background:var(--grad);color:#0000;-webkit-background-clip:text;background-clip:text}.thin{letter-spacing:-.025em;font-weight:200}.glass{background:var(--glass);border:1px solid var(--bord);border-radius:var(--r);-webkit-backdrop-filter:blur(18px)saturate(1.5);backdrop-filter:blur(18px)saturate(1.5);box-shadow:0 18px 50px -20px #000000b3,0 0 60px -30px var(--glow),inset 0 1px 0 #ffffff14}.glass-2{background:var(--glass-2);border-color:var(--bord-2)}.kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink);border:1px solid color-mix(in srgb,var(--accent-bord) 35%,transparent);border-radius:var(--r-sm);background:color-mix(in srgb,var(--accent) 8%,transparent);align-items:center;gap:10px;padding:7px 13px;font-family:JetBrains Mono,monospace;font-size:12px;display:inline-flex}.btn{background:var(--grad);color:var(--accent-on);border-radius:var(--r);cursor:pointer;box-shadow:0 14px 34px -10px var(--glow);border:0;align-items:center;gap:10px;padding:14px 26px;font-family:inherit;font-size:15px;font-weight:600;transition:transform .25s,box-shadow .25s;display:inline-flex}.btn:hover{box-shadow:0 20px 44px -10px var(--glow);transform:translateY(-2px)}.ghost{color:var(--ink);border-radius:var(--r);border:1px solid var(--bord);align-items:center;gap:8px;padding:13px 22px;font-size:14px;transition:all .25s;display:inline-flex}.ghost:hover{background:var(--glass);border-color:var(--bord-2)}.sec-h{align-items:center;gap:14px;margin:clamp(60px,10vh,110px) 0 30px;display:flex}.sec-h .ix{color:var(--accent-ink);font-family:JetBrains Mono,monospace;font-size:13px}.sec-h h2{letter-spacing:.28em;text-transform:uppercase;color:var(--mut);font-size:clamp(13px,2vw,15px);font-weight:400}.sec-h .line{background:linear-gradient(90deg,var(--bord),transparent);flex:1;height:1px}.w1{stroke:var(--wave-1)}.w2{stroke:var(--wave-2)}.w3{stroke:var(--wave-3)}.wflow{animation:wflow var(--ws,18s) linear infinite}@keyframes wflow{to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.wflow{animation:none}}.wave-div{height:80px;margin:4px 0;position:relative;overflow:hidden}.wave-div svg{width:200%;height:100%}.field{margin-bottom:16px}.field label{letter-spacing:.2em;text-transform:uppercase;color:var(--mut);margin-bottom:9px;font-family:JetBrains Mono,monospace;font-size:11px;display:block}.field input,.field textarea{background:var(--field-bg);border:1px solid var(--bord);border-radius:var(--r);width:100%;color:var(--ink);resize:vertical;outline:none;padding:13px 15px;font-family:inherit;font-size:15px;font-weight:300;transition:all .25s}.field input::placeholder,.field textarea::placeholder{color:var(--mut-2)}.field input:focus,.field textarea:focus{border-color:var(--accent-bord);background:color-mix(in srgb,var(--accent) 5%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent),0 10px 30px -12px var(--glow)}.field.err input,.field.err textarea{border-color:#ff6b8a;box-shadow:0 0 0 3px #ff6b8a24}.field .msg{color:#ff8da3;margin-top:7px;font-size:12px;display:none}.field.err .msg{display:block}.submit{background:var(--grad);width:100%;color:var(--accent-on);border-radius:var(--r);cursor:pointer;box-shadow:0 14px 34px -10px var(--glow);border:0;justify-content:center;align-items:center;gap:10px;padding:15px;font-family:inherit;font-size:15px;font-weight:600;transition:transform .25s,box-shadow .25s;display:inline-flex}.submit:hover{box-shadow:0 22px 46px -10px var(--glow);transform:translateY(-2px)}.submit:disabled{opacity:.7;cursor:wait;transform:none}.sent{border-radius:var(--r);border:1px solid color-mix(in srgb,var(--accent-bord) 40%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent);margin-top:16px;padding:18px 20px;animation:.5s gf-fade;display:none}@keyframes gf-fade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.sent.show{align-items:flex-start;gap:14px;display:flex}.sent .ok{border-radius:var(--r-sm);background:var(--grad);width:32px;height:32px;color:var(--accent-on);flex:none;justify-content:center;align-items:center;font-weight:700;display:flex}.sent b{font-weight:600}.sent p{color:var(--mut);margin-top:3px;font-size:13.5px}.statline{color:var(--mut);align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:12px;display:inline-flex}.statline i{background:var(--accent);width:7px;height:7px;box-shadow:0 0 10px var(--accent);border-radius:50%;font-style:normal;animation:2.4s ease-out infinite stp}@keyframes stp{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 50%,transparent)}to{box-shadow:0 0 0 9px #0000}}.reveal{opacity:0;transition:opacity .9s,transform .9s cubic-bezier(.2,.8,.3,1);transform:translateY(22px)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}.theme-toggle{border-radius:var(--r-sm);border:1px solid var(--bord);background:var(--glass);width:34px;height:34px;color:var(--ink);cursor:pointer;flex:none;justify-content:center;align-items:center;transition:border-color .25s,background .25s,color .25s;display:inline-flex}.theme-toggle:hover{border-color:var(--bord-2);background:var(--glass-2)}.theme-toggle svg{width:17px;height:17px;display:block}html{scroll-behavior:smooth}.wavefield{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.wavefield.mask{-webkit-mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.wavefield svg{width:200%;height:100%;position:absolute;left:0}section[id]{scroll-margin-top:40px}.page{z-index:2;max-width:1120px;margin:0 auto;padding:0 clamp(18px,5vw,42px) 160px;position:relative}.nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font-size:14px;display:flex}.nav .logo{color:var(--ink);letter-spacing:.04em;align-items:center;gap:9px;font-size:15px;font-weight:500;display:flex}.nav .logo .bars{align-items:flex-end;gap:3px;display:flex}.nav .logo .bars span{background:var(--accent);border-radius:1px;width:3px}.nav .logo .bars span:first-child{height:8px}.nav .logo .bars span:nth-child(2){height:16px}.nav .logo .bars span:nth-child(3){height:12px}.nav .logo .bars span:nth-child(4){height:14px}.nav-links{gap:24px;display:flex}.nav-links a{color:var(--mut);padding-bottom:3px;font-family:JetBrains Mono,monospace;font-size:12px;text-decoration:none;transition:color .25s;position:relative}.nav-links a:after{content:"";background:var(--accent);width:0;height:1.5px;transition:width .25s;position:absolute;bottom:0;left:0}.nav-links a:hover{color:var(--accent-ink)}.nav-links a:hover:after{width:100%}.backwave{z-index:0;pointer-events:none;opacity:.5;height:38vh;position:fixed;bottom:0;left:0;right:0;-webkit-mask-image:linear-gradient(#0000,#000);mask-image:linear-gradient(#0000,#000)}.backwave svg{width:200%;height:100%;position:absolute;bottom:0;left:0}.hero{grid-template-columns:1fr;align-items:center;gap:30px;min-height:60vh;padding:clamp(28px,6vh,64px) 0;display:grid;position:relative}@media (width>=860px){.hero{grid-template-columns:1.05fr .95fr}}.hero .hero-txt{z-index:3;position:relative}.hero .kicker{margin-bottom:38px}.hero h1{letter-spacing:-.035em;margin:22px 0 0;font-size:clamp(48px,9.5vw,104px);font-weight:200;line-height:.92}.hero h1 b{font-weight:500}.hero .sub{color:var(--mut);text-wrap:pretty;max-width:42ch;margin-top:24px;font-size:clamp(15px,2.1vw,19px);line-height:1.5}.hero .cta{color:var(--ink);border-bottom:1px solid color-mix(in srgb, var(--accent-bord) 60%, transparent);align-items:center;gap:12px;margin-top:42px;padding-bottom:6px;font-size:15px;transition:all .3s;display:inline-flex}.hero .cta:hover{color:var(--accent-ink);gap:22px}.hero .socials{gap:14px;margin-top:42px;display:flex}.hero .socials a{border-radius:var(--r);border:1px solid var(--bord);background:var(--glass);width:46px;height:46px;color:var(--mut);justify-content:center;align-items:center;transition:color .25s,transform .25s,background .25s,border-color .25s;display:inline-flex}.hero .socials a:hover{transform:translateY(-3px)}.hero .socials .gh{color:var(--gh);border-color:color-mix(in srgb, var(--gh) 45%, transparent);background:color-mix(in srgb, var(--gh) 12%, transparent)}.hero .socials .gh:hover{border-color:var(--gh);background:color-mix(in srgb, var(--gh) 22%, transparent)}.hero .socials .li{color:var(--li);border-color:color-mix(in srgb, var(--li) 45%, transparent);background:color-mix(in srgb, var(--li) 12%, transparent)}.hero .socials .li:hover{border-color:var(--li);background:color-mix(in srgb, var(--li) 22%, transparent)}.hero .socials .mail:hover{color:var(--accent-ink);border-color:color-mix(in srgb, var(--accent-bord) 45%, transparent)}.hero .hero-vis{z-index:2;height:340px;position:relative;overflow:hidden}.hero .socials svg{width:23px;height:23px;display:block}.mh{align-items:center;gap:14px;margin:clamp(60px,10vh,110px) 0 30px;display:flex}.mh h2{letter-spacing:.28em;text-transform:uppercase;color:var(--accent-ink);font-size:clamp(13px,2vw,15px);font-weight:400}.mh .line{background:linear-gradient(90deg, var(--bord), transparent);flex:1;height:1px}.about .lead{letter-spacing:-.02em;max-width:20ch;font-size:clamp(26px,4.4vw,42px);font-weight:200;line-height:1.2}.about .lead b{font-weight:500}.about p{color:var(--mut);max-width:56ch;margin-top:26px;font-size:16.5px;font-weight:300;line-height:1.75}.fig{color:var(--accent-ink);font-weight:400}.about .marks{flex-wrap:wrap;gap:40px;margin-top:34px;display:flex}.about .mark .v{letter-spacing:-.02em;font-size:clamp(34px,5vw,46px);font-weight:200;line-height:1}.about .mark .t{color:var(--mut);letter-spacing:.02em;max-width:22ch;margin-top:8px;font-family:JetBrains Mono,monospace;font-size:12px}.edu{gap:0;display:grid}.erow{border-top:1px solid var(--bord);padding:36px 0}.erow:last-child{border-bottom:1px solid var(--bord)}.emeta{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.erow .when{color:var(--mut);letter-spacing:.04em;font-family:JetBrains Mono,monospace;font-size:12px}.tag{letter-spacing:.14em;text-transform:uppercase;border-radius:var(--r-sm);color:var(--tag-c);background:color-mix(in srgb, var(--tag-c) 13%, transparent);border:1px solid color-mix(in srgb, var(--tag-c) 32%, transparent);padding:4px 9px;font-family:JetBrains Mono,monospace;font-size:10.5px}.tag-work{--tag-c:var(--accent-ink)}.tag-int{--tag-c:var(--li)}.tag-edu{--tag-c:var(--gh)}.erow h3{letter-spacing:-.01em;margin-top:12px;font-size:clamp(22px,4vw,30px);font-weight:200}.erow .org{color:var(--mut);margin-top:4px;font-size:14px}.erow p{color:var(--mut);max-width:54ch;margin-top:16px;font-size:15.5px;font-weight:300;line-height:1.65}.erow .langs{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.erow .lang{color:var(--ink);font-family:JetBrains Mono,monospace;font-size:13px}.erow .lang b{color:var(--accent-ink);font-weight:500}.skills{grid-template-columns:1fr;display:grid}.skill{border-top:1px solid var(--bord);grid-template-columns:1fr auto;align-items:baseline;gap:20px;padding:22px 0;transition:all .3s;display:grid}.skill:last-child{border-bottom:1px solid var(--bord)}.skill:hover{padding-left:10px}.skill .n{letter-spacing:-.01em;align-items:center;gap:16px;font-size:clamp(22px,3.4vw,30px);font-weight:200;display:inline-flex}.skill .ic{color:var(--accent-ink);flex:none;display:inline-flex}.skill .ic svg{width:26px;height:26px;display:block}.skill:hover .n{color:var(--accent-ink)}.skill .d{color:var(--mut);text-align:right;font-family:JetBrains Mono,monospace;font-size:12px}.contact .intro{letter-spacing:-.02em;max-width:16ch;font-size:clamp(28px,5vw,48px);font-weight:200;line-height:1.12}.contact .intro b{font-weight:500}.form{margin-top:48px}.form .form-error{color:#ff6b8a;margin-top:16px;font-size:13px}.form .field{border-bottom:1px solid var(--bord);margin-bottom:0;padding:22px 0;transition:all .3s}.form .field:focus-within{border-color:color-mix(in srgb, var(--accent-bord) 60%, transparent);box-shadow:0 14px 30px -22px var(--glow)}.form .field.err{border-color:#ff6b8a}.form .field label{letter-spacing:.22em;text-transform:uppercase;color:var(--mut);margin-bottom:12px;font-family:JetBrains Mono,monospace;font-size:11px}.form .field input,.form .field textarea{width:100%;color:var(--ink);resize:vertical;background:0 0;border:0;border-radius:0;outline:none;padding:0;font-family:inherit;font-size:clamp(18px,2.4vw,22px);font-weight:300}.form .field input:focus,.form .field textarea:focus{box-shadow:none;background:0 0}.form .field .msg{color:#ff8da3;margin-top:7px;font-size:12px;display:none}.form .field.err .msg{display:block}.form .submit{background:var(--accent2);width:auto;color:var(--accent-on);border-radius:var(--r);letter-spacing:.04em;box-shadow:0 16px 40px -12px var(--glow);cursor:pointer;border:0;margin-top:42px;padding:18px 48px;font-family:inherit;font-size:16px;font-weight:600;transition:transform .25s,box-shadow .25s,filter .25s}.form .submit:hover{box-shadow:0 26px 54px -12px var(--glow);filter:brightness(1.05);transform:translateY(-2px)}.form .submit:active{transform:translateY(0)}.form .submit:disabled{opacity:.7;cursor:wait;transform:none}.form .sent{border-radius:var(--r);border:1px solid color-mix(in srgb, var(--accent-bord) 40%, transparent);background:color-mix(in srgb, var(--accent) 8%, transparent);margin-top:16px;padding:18px 20px;animation:.5s gf-fade;display:none}.form .sent.show{align-items:flex-start;gap:14px;display:flex}.form .sent .ok{border-radius:var(--r-sm);background:var(--grad);width:32px;height:32px;color:var(--accent-on);flex:none;justify-content:center;align-items:center;font-weight:700;display:flex}.form .sent b{font-weight:600}.form .sent p{color:var(--mut);margin-top:3px;font-size:13.5px}.links{flex-wrap:wrap;gap:30px;margin-top:44px;font-family:JetBrains Mono,monospace;font-size:12.5px;display:flex}.links a{color:var(--mut);border-bottom:1px solid #0000;gap:8px;padding-bottom:3px;transition:all .25s;display:inline-flex}.links a:hover{color:var(--ink);border-color:var(--accent-ink)}.links .gh{color:var(--gh)}.links .gh:hover{color:var(--gh);border-color:color-mix(in srgb, var(--gh) 55%, transparent)}.links .li{color:var(--li)}.links .li:hover{color:var(--li);border-color:color-mix(in srgb, var(--li) 55%, transparent)}footer{letter-spacing:.16em;text-transform:uppercase;color:var(--mut-2);margin-top:90px;font-family:JetBrains Mono,monospace;font-size:11px}.hp{width:1px;height:1px;position:absolute;top:-9999px;left:-9999px;overflow:hidden}.turnstile{margin-top:4px}
