:root{--neon-cyan:#00f0ff;--neon-magenta:#ff2bd6;--line:rgb(240 235 229/0.14);--line-strong:rgb(240 235 229/0.35);--panel:rgb(21 21 28/0.72);--ease-out:cubic-bezier(0.19,1,0.22,1)}.hero_menu,.hero_menu-wrap,.pre_loader-wrap{pointer-events:none}.hero_menu>*{pointer-events:auto}.site-nav{z-index:998;position:fixed;top:2.5vw;left:50%;transform:translateX(-50%);font-family:PP NeueBit,sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--white)}.site-nav_bar{gap:1.6vw;padding:.55vw 1.2vw;background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);-webkit-clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}.site-nav_bar,.site-nav_status{display:flex;align-items:center}.site-nav_status{gap:.5vw;font-size:max(.75vw,10px);color:rgb(240 235 229/.5);padding-right:1.4vw;border-right:1px solid var(--line)}.site-nav_dot{width:6px;height:6px;background:var(--neon-cyan);box-shadow:0 0 8px var(--neon-cyan);animation:site-blink 1.4s steps(2,start) infinite}.site-nav_list{display:flex;gap:1.6vw;margin:0;padding:0;list-style:none}.site-nav_link{position:relative;display:flex;align-items:baseline;gap:.35vw;font-size:max(.95vw,12px);color:rgb(240 235 229/.6);text-decoration:none;transition:color .4s var(--ease-out)}.site-nav_index{font-size:.8em;color:rgb(240 235 229/.35)}.site-nav_label{position:relative}.site-nav_link:after{content:"";position:absolute;left:0;right:0;bottom:-.45vw;height:1px;background:var(--neon-cyan);box-shadow:0 0 6px var(--neon-cyan);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out)}.site-nav_link.is-active,.site-nav_link:hover{color:var(--white)}.site-nav_link.is-active .site-nav_index,.site-nav_link:hover .site-nav_index{color:var(--neon-cyan)}.site-nav_link.is-active:after,.site-nav_link:hover:after{transform:scaleX(1)}.site-nav_label:after,.site-nav_label:before{content:attr(data-text);position:absolute;inset:0;opacity:0;pointer-events:none}.site-nav_label:before{color:var(--neon-cyan)}.site-nav_label:after{color:var(--neon-magenta)}.site-nav_link:hover .site-nav_label:before{opacity:.8;animation:glitch-a .6s steps(2) infinite}.site-nav_link:hover .site-nav_label:after{opacity:.8;animation:glitch-b .6s steps(2) infinite}.site-nav_langs{display:flex;align-items:center;gap:.5vw;padding-left:1.4vw;border-left:1px solid var(--line);font-size:max(.85vw,12px)}.site-nav_lang{padding:.15em .35em;color:rgb(240 235 229/.5);text-decoration:none;text-transform:uppercase;transition:color .4s var(--ease-out),background-color .4s var(--ease-out)}.site-nav_lang:hover{color:var(--neon-cyan)}.site-nav_lang.is-active{color:#000;background:var(--neon-cyan);box-shadow:0 0 10px rgb(0 240 255/.5)}.site-nav_toggle{display:none;padding:0;background:none;border:0;font:inherit;font-size:13px;letter-spacing:inherit;text-transform:inherit;color:var(--white);cursor:pointer}.site-nav_overlay{display:none}@media screen and (max-width:767px){.site-nav{top:14px;left:0;right:0;display:flex;justify-content:center;transform:none}.site-nav_bar{position:relative;z-index:1;gap:14px;padding:8px 14px}.site-nav_status{gap:6px;padding-right:14px}.site-nav_toggle{display:block}.site-nav_langs{gap:6px;padding-left:14px;font-size:13px}.site-nav_list{display:none}.site-nav_overlay:not([hidden]){display:flex;flex-direction:column;justify-content:center;gap:28px;position:fixed;inset:0;margin:0;padding:0 32px;list-style:none;background:repeating-linear-gradient(0deg,rgb(0 0 0/.25) 0 1px,transparent 1px 3px),var(--dark-violet)}.site-nav_overlay .site-nav_link{font-family:"Sudo (Normal)",sans-serif;font-size:15vw;line-height:.9;letter-spacing:-.01em;gap:12px}.site-nav_overlay .site-nav_index{font-family:PP NeueBit,sans-serif;font-size:16px;letter-spacing:.15em}.site-nav_overlay .site-nav_link:after{bottom:-6px}}@keyframes site-blink{to{opacity:.15}}@keyframes glitch-a{0%{transform:translate(calc(var(--glitch, 2px) * -1));-webkit-clip-path:inset(0 0 55% 0);clip-path:inset(0 0 55% 0)}50%{transform:translate(var(--glitch,2px),-1px);-webkit-clip-path:inset(45% 0 0 0);clip-path:inset(45% 0 0 0)}to{transform:translate(calc(var(--glitch, 2px) * -.5),1px);-webkit-clip-path:inset(20% 0 40% 0);clip-path:inset(20% 0 40% 0)}}@keyframes glitch-b{0%{transform:translate(var(--glitch,2px));-webkit-clip-path:inset(50% 0 0 0);clip-path:inset(50% 0 0 0)}50%{transform:translate(calc(var(--glitch, 2px) * -1),1px);-webkit-clip-path:inset(0 0 60% 0);clip-path:inset(0 0 60% 0)}to{transform:translate(calc(var(--glitch, 2px) * .5),-1px);-webkit-clip-path:inset(35% 0 25% 0);clip-path:inset(35% 0 25% 0)}}.glitch{position:relative}.glitch:after,.glitch:before{content:attr(data-text);position:absolute;inset:0;pointer-events:none}.glitch:before{color:var(--neon-cyan);animation:glitch-a 3.2s steps(2) infinite}.glitch:after,.glitch:before{opacity:.7;mix-blend-mode:screen}.glitch:after{color:var(--neon-magenta);animation:glitch-b 2.7s steps(2) infinite}.scanlines{z-index:996;position:fixed;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgb(0 0 0/.18) 0 1px,transparent 1px 3px);mix-blend-mode:multiply}.site-audio{z-index:998;position:fixed;top:2.5vw;right:2.5vw}.site-audio .audio_wrap{width:max(4.5vw,44px);height:max(2.5vw,24px);cursor:pointer}.site-audio_labels{position:absolute;top:100%;right:0;display:flex;gap:.8vw;margin-top:.6vw;white-space:nowrap;opacity:0;transform:translateY(-4px);transition:opacity .5s var(--ease-out),transform .5s var(--ease-out)}.site-audio:focus-within .site-audio_labels,.site-audio:hover .site-audio_labels{opacity:1;transform:none}.site-audio_labels .paragraph{cursor:pointer}@media screen and (max-width:767px){.site-audio{top:14px;right:10px}.site-audio .audio_wrap{width:36px;height:22px}}.site-logo{z-index:998;position:fixed;top:2.5vw;left:2.5vw}.site-logo,.site-logo img{display:block}.cv{position:relative;z-index:1;padding:11vw 5vw 8vw;background-color:var(--dark-violet);color:var(--white)}.cv_hero{display:grid;grid-template-columns:1fr auto;align-items:end;grid-gap:4vw;gap:4vw;min-height:70vh;padding-bottom:5vw;border-bottom:1px solid var(--line)}.cv_terminal{position:relative;margin-bottom:2vw}.cv_name{margin:0;font-family:"Sudo (Normal)",sans-serif;font-size:17vw;font-weight:400;line-height:.78;letter-spacing:-.01em;text-transform:uppercase;color:var(--white)}.cv_name .glitch{--glitch:0.6vw}.cv_role{margin-top:2vw}.cv_id{position:relative;width:24vw;min-width:260px;padding:1.6vw;background:var(--panel);border:1px solid var(--line);-webkit-clip-path:polygon(18px 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%,0 18px);clip-path:polygon(18px 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%,0 18px)}.cv_id-head{padding-bottom:1vw;margin-bottom:1vw;border-bottom:1px solid var(--line);color:var(--neon-cyan)}.cv_id-head,.cv_id-row{display:flex;justify-content:space-between}.cv_id-row{gap:1vw;padding:.55vw 0}.cv_id-row dt{color:rgb(240 235 229/.45)}.cv_id-row dd{margin:0;text-align:right}.cv_status{color:var(--neon-cyan);text-shadow:0 0 8px rgb(0 240 255/.6)}.cv_section{padding:6vw 0;border-bottom:1px solid var(--line)}.cv_section-head{display:flex;align-items:baseline;gap:1.5vw;margin-bottom:3.5vw}.cv_section-index{color:var(--neon-magenta);text-shadow:0 0 10px rgb(255 43 214/.55)}.cv_section-title{margin:0;font-family:"Sudo (Normal)",sans-serif;font-size:7vw;font-weight:400;line-height:.8;text-transform:uppercase;color:var(--white)}.cv_section-line{flex:1 1;height:1px;background:linear-gradient(90deg,var(--line-strong),transparent)}.cv .h-h4.is-indent{font-size:4.6vw;line-height:4.2vw;text-indent:18vw}.cv_rows{display:grid;grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line)}.cv_row{position:relative;display:grid;grid-template-columns:14vw 1fr 1.3fr;grid-gap:3vw;gap:3vw;padding:2vw;background:var(--dark-violet);transition:background-color .6s var(--ease-out)}.cv_row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--neon-cyan);box-shadow:0 0 12px var(--neon-cyan);transform:scaleY(0);transition:transform .6s var(--ease-out)}.cv_row:hover{background-color:#1b1b24}.cv_row:hover:before{transform:scaleY(1)}.cv_row-title{margin:0 0 .6vw;font-family:PP NeueBit,sans-serif;font-size:2.2vw;font-weight:700;line-height:1;text-transform:uppercase;letter-spacing:.02em}.cv_row-logo{display:block;width:auto;height:3vw;min-height:34px;margin-top:1.4vw;opacity:.85}.cv_inline-link{color:var(--neon-cyan);text-decoration:none}.cv .paragraph{font-size:max(.95vw,14px);line-height:1.45;color:rgb(240 235 229/.75)}.cv .paragraph.is-support-medium,.cv .paragraph.is-support-small{line-height:1.3;color:var(--white)}.cv .paragraph.is-support-medium{font-size:max(1.1vw,13px)}.cv .paragraph.is-support-small{font-size:max(.8vw,11px)}.cv_muted{color:rgb(240 235 229/.45)!important}.cv_grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:5vw;gap:5vw}.cv_skill{margin-bottom:1.6vw}.cv_skill-head{display:flex;justify-content:space-between;margin-bottom:.6vw}.cv_meter{display:grid;grid-template-columns:repeat(20,1fr);grid-gap:3px;gap:3px}.cv_meter span{height:10px;background:rgb(240 235 229/.08)}.cv_meter span.is-on{background:var(--neon-cyan);box-shadow:0 0 6px rgb(0 240 255/.55)}.cv_meter span.is-on:nth-child(n+15){background:var(--neon-magenta);box-shadow:0 0 6px rgb(255 43 214/.55)}.cv_tags{display:flex;flex-wrap:wrap;gap:.8vw;margin:0 0 3vw;padding:0;list-style:none}.cv_tag{padding:.6vw 1vw;border:1px solid var(--line-strong);-webkit-clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);transition:border-color .4s var(--ease-out),color .4s var(--ease-out)}.cv_tag:hover{border-color:var(--neon-cyan);color:var(--neon-cyan)}.cv_contact{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:5vw;gap:5vw;align-items:end}.cv_contact-mail{display:inline-block;font-family:"Sudo (Normal)",sans-serif;font-size:3.6vw;line-height:.9;color:var(--white);text-decoration:none;text-transform:uppercase;overflow-wrap:anywhere;transition:color .4s var(--ease-out),text-shadow .4s var(--ease-out)}.cv_contact-mail:hover{color:var(--neon-cyan);text-shadow:0 0 18px rgb(0 240 255/.6)}.cv_links{display:grid;grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line)}.cv_link{display:flex;justify-content:space-between;padding:1.2vw 1.4vw;background:var(--dark-violet);color:var(--white);text-decoration:none;transition:color .4s var(--ease-out),background-color .4s var(--ease-out)}.cv_link:hover{color:var(--neon-magenta);background-color:#1b1b24}@media screen and (max-width:991px){.cv{padding-top:120px}.cv_contact,.cv_grid-2,.cv_hero{grid-template-columns:1fr}.cv_hero{min-height:0;gap:40px;padding-bottom:48px}.cv_section{padding:56px 0}.cv_id{width:100%;padding:20px}.cv_id-row{padding:6px 0}.cv_row{grid-template-columns:1fr;gap:10px;padding:20px}.cv_row-title{font-size:26px}.cv .h-h4.is-indent{font-size:9vw;line-height:8.4vw;text-indent:12vw}.cv_section-title{font-size:13vw}.cv_section-head{gap:12px;margin-bottom:28px}.cv_skill{margin-bottom:18px}.cv_tags{gap:8px}.cv_link,.cv_tag{padding:10px 14px}.cv_contact-mail{font-size:7.4vw}}.portrait{margin:0 0 1.2vw}.portrait_frame{position:relative;aspect-ratio:4/5;overflow:hidden;isolation:isolate;background:#000;border:1px solid var(--line);animation:portrait-boot 1.4s steps(14) 1s both}.portrait_img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%;filter:contrast(1.15) brightness(.95)}.portrait_split{position:absolute;inset:0;isolation:isolate;mix-blend-mode:screen;pointer-events:none}.portrait_split .portrait_img{mix-blend-mode:multiply}.portrait_split.is-cyan{background:var(--neon-cyan);animation:portrait-split-a 5s steps(1) infinite}.portrait_split.is-magenta{background:var(--neon-magenta);animation:portrait-split-b 5s steps(1) infinite}.portrait_frame:hover .portrait_split{animation-duration:1.2s}.portrait_dots{inset:0;background-image:radial-gradient(rgb(0 0 0/.45) .8px,transparent 1.3px);background-size:4px 4px;mix-blend-mode:multiply}.portrait_dots,.portrait_scan{position:absolute;pointer-events:none}.portrait_scan{left:0;right:0;top:-20%;height:18%;background:linear-gradient(180deg,transparent,rgb(0 240 255/.14) 85%,rgb(0 240 255/.85));mix-blend-mode:screen;animation:portrait-scan 4.5s linear 2.4s infinite}.portrait_target{--c:var(--neon-cyan);position:absolute;left:27%;top:16%;width:46%;height:44%;background:linear-gradient(var(--c),var(--c)) 0 0 /16px 1px no-repeat,linear-gradient(var(--c),var(--c)) 0 0 /1px 16px no-repeat,linear-gradient(var(--c),var(--c)) 100% 0 /16px 1px no-repeat,linear-gradient(var(--c),var(--c)) 100% 0 /1px 16px no-repeat,linear-gradient(var(--c),var(--c)) 0 100% /16px 1px no-repeat,linear-gradient(var(--c),var(--c)) 0 100% /1px 16px no-repeat,linear-gradient(var(--c),var(--c)) 100% 100% /16px 1px no-repeat,linear-gradient(var(--c),var(--c)) 100% 100% /1px 16px no-repeat;filter:drop-shadow(0 0 4px rgb(0 240 255/.8));animation:portrait-lock .9s steps(6) 2.4s both;pointer-events:none}.portrait_target-label{position:absolute;top:100%;left:0;margin-top:6px;padding:2px 6px;background:var(--neon-cyan);color:#000;font-family:PP NeueBit,sans-serif;font-size:max(.7vw,10px);font-weight:700;letter-spacing:.15em;line-height:1.2;text-transform:uppercase;white-space:nowrap}.portrait_hud{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;padding:10px 12px 24px;background:linear-gradient(180deg,rgb(0 0 0/.6),transparent);font-size:max(.7vw,10px)!important;color:var(--white);pointer-events:none}.portrait_hud.is-bottom{top:auto;bottom:0;align-items:center;padding:24px 12px 10px;background:linear-gradient(0deg,rgb(0 0 0/.6),transparent)}.portrait_hud.is-bottom>span:first-child{display:flex;align-items:center;gap:6px;color:var(--neon-cyan)}.portrait_hud>span:last-child{color:var(--neon-magenta)}@keyframes portrait-boot{0%{-webkit-clip-path:inset(0 0 100% 0);clip-path:inset(0 0 100% 0)}to{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}}@keyframes portrait-scan{to{top:110%}}@keyframes portrait-lock{0%{opacity:0;transform:scale(1.5)}60%{opacity:1}to{opacity:1;transform:scale(1)}}@keyframes portrait-split-a{0%{opacity:.32;transform:translate(-3px);-webkit-clip-path:inset(0);clip-path:inset(0)}80%{opacity:.8;transform:translate(-10px);-webkit-clip-path:inset(12% 0 62% 0);clip-path:inset(12% 0 62% 0)}83%{transform:translate(8px);-webkit-clip-path:inset(44% 0 30% 0);clip-path:inset(44% 0 30% 0)}86%{transform:translate(-5px);-webkit-clip-path:inset(72% 0 6% 0);clip-path:inset(72% 0 6% 0)}89%{opacity:.32;transform:translate(-3px);-webkit-clip-path:inset(0);clip-path:inset(0)}}@keyframes portrait-split-b{0%{opacity:.28;transform:translate(3px);-webkit-clip-path:inset(0);clip-path:inset(0)}80%{opacity:.75;transform:translate(9px,1px);-webkit-clip-path:inset(30% 0 48% 0);clip-path:inset(30% 0 48% 0)}84%{transform:translate(-7px);-webkit-clip-path:inset(58% 0 22% 0);clip-path:inset(58% 0 22% 0)}87%{transform:translate(6px,-1px);-webkit-clip-path:inset(5% 0 80% 0);clip-path:inset(5% 0 80% 0)}90%{opacity:.28;transform:translate(3px);-webkit-clip-path:inset(0);clip-path:inset(0)}}@media (prefers-reduced-motion:reduce){.portrait_frame,.portrait_scan,.portrait_split,.portrait_target{animation:none}.portrait_scan{display:none}}@media screen and (max-width:991px){.portrait{margin-bottom:16px}}