.ThemeToggle-module__b1g1DG__toggle{border:1px solid var(--border);background-color:var(--surface-alt);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:999px;flex-shrink:0;width:58px;height:30px;padding:0;transition:border-color .3s,background-color .3s;position:relative;overflow:hidden}.ThemeToggle-module__b1g1DG__toggle:hover{border-color:var(--icon-idle)}.ThemeToggle-module__b1g1DG__toggle:focus-visible{outline:2px solid var(--text);outline-offset:2px}.ThemeToggle-module__b1g1DG__stars{opacity:0;pointer-events:none;transition:opacity .4s,transform .5s cubic-bezier(.22,.61,.36,1);position:absolute;inset:0;transform:translate(6px)}.ThemeToggle-module__b1g1DG__toggle[data-dark=true] .ThemeToggle-module__b1g1DG__stars{opacity:1;transform:translate(0)}.ThemeToggle-module__b1g1DG__star{background-color:var(--text);border-radius:50%;animation:2.6s ease-in-out infinite ThemeToggle-module__b1g1DG__twinkle;position:absolute}.ThemeToggle-module__b1g1DG__star1{width:2px;height:2px;animation-delay:0s;top:7px;left:9px}.ThemeToggle-module__b1g1DG__star2{width:3px;height:3px;animation-delay:.5s;top:17px;left:16px}.ThemeToggle-module__b1g1DG__star3{width:2px;height:2px;animation-delay:1.1s;top:10px;left:23px}@keyframes ThemeToggle-module__b1g1DG__twinkle{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.ThemeToggle-module__b1g1DG__knob{background-color:var(--invert-bg);border-radius:50%;place-items:center;width:22px;height:22px;margin-top:-11px;transition:transform .45s cubic-bezier(.68,-.45,.27,1.45),background-color .3s;display:grid;position:absolute;top:50%;left:3px;box-shadow:0 2px 6px #00000040}.ThemeToggle-module__b1g1DG__toggle[data-dark=true] .ThemeToggle-module__b1g1DG__knob{transform:translate(28px)}.ThemeToggle-module__b1g1DG__toggle:active .ThemeToggle-module__b1g1DG__knob{transform:scale(.9)}.ThemeToggle-module__b1g1DG__toggle[data-dark=true]:active .ThemeToggle-module__b1g1DG__knob{transform:translate(28px)scale(.9)}.ThemeToggle-module__b1g1DG__halo{border:1px solid var(--invert-bg);opacity:0;pointer-events:none;border-radius:50%;position:absolute;inset:-4px;transform:scale(.7)}.ThemeToggle-module__b1g1DG__toggle[data-animating=true] .ThemeToggle-module__b1g1DG__halo{animation:.55s ease-out ThemeToggle-module__b1g1DG__halo}@keyframes ThemeToggle-module__b1g1DG__halo{0%{opacity:.55;transform:scale(.7)}to{opacity:0;transform:scale(1.7)}}.ThemeToggle-module__b1g1DG__icon{width:13px;height:13px;color:var(--invert-text);transition:opacity .35s,transform .45s cubic-bezier(.22,.61,.36,1);position:absolute}.ThemeToggle-module__b1g1DG__sun{opacity:1;transform:rotate(0)scale(1)}.ThemeToggle-module__b1g1DG__moon{opacity:0;transform:rotate(-90deg)scale(.4)}.ThemeToggle-module__b1g1DG__toggle[data-dark=true] .ThemeToggle-module__b1g1DG__sun{opacity:0;transform:rotate(90deg)scale(.4)}.ThemeToggle-module__b1g1DG__toggle[data-dark=true] .ThemeToggle-module__b1g1DG__moon{opacity:1;transform:rotate(0)scale(1)}.ThemeToggle-module__b1g1DG__toggle[data-ready=false] .ThemeToggle-module__b1g1DG__knob,.ThemeToggle-module__b1g1DG__toggle[data-ready=false] .ThemeToggle-module__b1g1DG__icon,.ThemeToggle-module__b1g1DG__toggle[data-ready=false] .ThemeToggle-module__b1g1DG__stars{transition:none}@media (prefers-reduced-motion:reduce){.ThemeToggle-module__b1g1DG__toggle,.ThemeToggle-module__b1g1DG__knob,.ThemeToggle-module__b1g1DG__icon,.ThemeToggle-module__b1g1DG__stars{transition:none}.ThemeToggle-module__b1g1DG__star{opacity:.8;animation:none}.ThemeToggle-module__b1g1DG__toggle[data-animating=true] .ThemeToggle-module__b1g1DG__halo{animation:none}}
@keyframes Hero-module__gNeX-G__fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes Hero-module__gNeX-G__glowPulse{0%,to{opacity:.45;transform:scale(1)}50%{opacity:.85;transform:scale(1.1)}}@keyframes Hero-module__gNeX-G__shimmer{0%{background-position:100% 0}to{background-position:0 0}}.Hero-module__gNeX-G__reveal{opacity:0;animation:.6s cubic-bezier(.22,.61,.36,1) forwards Hero-module__gNeX-G__fadeUp}.Hero-module__gNeX-G__avatarWrap{place-items:center;margin-bottom:20px;display:grid;position:relative}.Hero-module__gNeX-G__glow{background:radial-gradient(circle,var(--glow)0%,transparent 68%);pointer-events:none;border-radius:50%;width:150px;height:150px;animation:5s ease-in-out infinite Hero-module__gNeX-G__glowPulse;position:absolute}.Hero-module__gNeX-G__avatar{background-color:var(--surface-alt);width:80px;height:80px;box-shadow:var(--shadow-sm);border-radius:18px;flex-shrink:0;transition:transform .35s cubic-bezier(.22,.61,.36,1),box-shadow .35s;position:relative;overflow:hidden}.Hero-module__gNeX-G__avatar:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)scale(1.04)}.Hero-module__gNeX-G__avatarImg{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.22,.61,.36,1);display:block}.Hero-module__gNeX-G__avatar:hover .Hero-module__gNeX-G__avatarImg{transform:scale(1.08)}.Hero-module__gNeX-G__name{color:var(--text);font-size:26px;font-weight:700;font-family:var(--font-geist-sans);letter-spacing:-.01em;text-align:center;margin:0 0 8px}.Hero-module__gNeX-G__nameText{display:inline-block}@supports ((-webkit-background-clip:text) or (background-clip:text)){.Hero-module__gNeX-G__name:hover .Hero-module__gNeX-G__nameText{background-image:linear-gradient(100deg,var(--text)0%,var(--text)40%,var(--shimmer-hi)50%,var(--text)60%,var(--text)100%);color:#0000;background-position:0 0;background-repeat:no-repeat;background-size:300% 100%;-webkit-background-clip:text;background-clip:text;animation:1.1s ease-out Hero-module__gNeX-G__shimmer}}.Hero-module__gNeX-G__title{color:var(--text-secondary);font-size:15px;font-family:var(--font-geist-sans);text-align:center;margin:0 0 18px}.Hero-module__gNeX-G__companyLink{color:var(--text-secondary);text-decoration:none;transition:color .25s;position:relative}.Hero-module__gNeX-G__companyLink:before{content:"";background-color:var(--border);width:100%;height:1px;position:absolute;bottom:-2px;left:0}.Hero-module__gNeX-G__companyLink:after{content:"";background-color:var(--text);transform-origin:0;width:100%;height:1px;transition:transform .3s cubic-bezier(.22,.61,.36,1);position:absolute;bottom:-2px;left:0;transform:scaleX(0)}.Hero-module__gNeX-G__companyLink:hover{color:var(--text)}.Hero-module__gNeX-G__companyLink:hover:after{transform:scaleX(1)}.Hero-module__gNeX-G__socials{align-items:center;gap:8px;display:flex}.Hero-module__gNeX-G__social{width:38px;height:38px;color:var(--icon-idle);border-radius:10px;place-items:center;line-height:0;transition:color .25s,transform .25s cubic-bezier(.22,.61,.36,1);display:grid;position:relative}.Hero-module__gNeX-G__social:before{content:"";background-color:var(--surface-alt);opacity:0;border-radius:10px;transition:transform .25s cubic-bezier(.22,.61,.36,1),opacity .25s;position:absolute;inset:0;transform:scale(.6)}.Hero-module__gNeX-G__social:hover,.Hero-module__gNeX-G__social:focus-visible{color:var(--hover-color,var(--text));transform:translateY(-3px)}.Hero-module__gNeX-G__social:hover:before,.Hero-module__gNeX-G__social:focus-visible:before{opacity:1;transform:scale(1)}.Hero-module__gNeX-G__social:active{transform:translateY(-1px)scale(.96)}.Hero-module__gNeX-G__social svg{position:relative}.Hero-module__gNeX-G__social:after{content:attr(data-label);background-color:var(--text);color:var(--invert-text);font-family:var(--font-geist-sans);letter-spacing:.02em;white-space:nowrap;opacity:0;pointer-events:none;border-radius:5px;padding:4px 8px;font-size:10px;font-weight:500;line-height:1.4;transition:opacity .2s,transform .2s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%,4px)}.Hero-module__gNeX-G__social:hover:after,.Hero-module__gNeX-G__social:focus-visible:after{opacity:1;transform:translate(-50%)}.Hero-module__gNeX-G__social:focus-visible{outline:2px solid var(--text);outline-offset:2px}@media (prefers-reduced-motion:reduce){.Hero-module__gNeX-G__reveal{opacity:1;animation:none}.Hero-module__gNeX-G__glow,.Hero-module__gNeX-G__name:hover .Hero-module__gNeX-G__nameText{animation:none}.Hero-module__gNeX-G__avatar,.Hero-module__gNeX-G__avatarImg,.Hero-module__gNeX-G__social,.Hero-module__gNeX-G__social:before,.Hero-module__gNeX-G__social:after,.Hero-module__gNeX-G__companyLink:after{transition:none}.Hero-module__gNeX-G__avatar:hover,.Hero-module__gNeX-G__avatar:hover .Hero-module__gNeX-G__avatarImg,.Hero-module__gNeX-G__social:hover{transform:none}}
.Section-module__7jGEVW__section{background-color:var(--surface);border-left:1px dashed var(--border);border-right:1px dashed var(--border);border-bottom:1px dashed var(--border);padding:clamp(18px,5vw,24px)}.Section-module__7jGEVW__heading{color:var(--text);letter-spacing:.08em;font-size:11px;font-weight:600;font-family:var(--font-geist-sans);align-items:center;gap:12px;margin:0 0 24px;display:flex}.Section-module__7jGEVW__heading:after{content:"";background-color:var(--border);flex:1;height:1px}.Section-module__7jGEVW__row{border-radius:10px;align-items:flex-start;gap:16px;margin-inline:-12px;padding:12px;transition:background-color .25s;display:flex}.Section-module__7jGEVW__row:hover{background-color:var(--surface-alt)}.Section-module__7jGEVW__rowList{flex-direction:column;gap:6px;display:flex}.Section-module__7jGEVW__logoTile{background-color:var(--logo-tile);color:#fff;width:36px;height:36px;font-size:14px;font-weight:700;font-family:var(--font-geist-sans);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:transform .25s cubic-bezier(.22,.61,.36,1),box-shadow .25s;display:flex;overflow:hidden}.Section-module__7jGEVW__row:hover .Section-module__7jGEVW__logoTile{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.Section-module__7jGEVW__logoImg{object-fit:contain;width:100%;height:100%;padding:3px}@media (max-width:420px){.Section-module__7jGEVW__row{gap:12px}}@media (prefers-reduced-motion:reduce){.Section-module__7jGEVW__row,.Section-module__7jGEVW__logoTile{transition:none}.Section-module__7jGEVW__row:hover .Section-module__7jGEVW__logoTile{transform:none}}
.Skills-module__lhWK4a__groups{flex-direction:column;gap:18px;display:flex}.Skills-module__lhWK4a__group{grid-template-columns:96px 1fr;align-items:start;gap:12px;display:grid}.Skills-module__lhWK4a__groupLabel{color:var(--text-muted);letter-spacing:.04em;font-size:11px;font-family:var(--font-geist-sans);padding-top:5px}.Skills-module__lhWK4a__tags{flex-wrap:wrap;gap:6px;display:flex}.Skills-module__lhWK4a__tag{color:var(--text-secondary);font-size:12px;font-family:var(--font-geist-sans);border:1px solid var(--border);background-color:var(--surface);border-radius:999px;padding:4px 10px;transition:color .2s,border-color .2s,background-color .2s,transform .2s cubic-bezier(.22,.61,.36,1)}.Skills-module__lhWK4a__tag:hover{color:var(--text);border-color:var(--text-muted);background-color:var(--surface-alt);transform:translateY(-2px)}@media (max-width:520px){.Skills-module__lhWK4a__group{grid-template-columns:1fr;gap:8px}.Skills-module__lhWK4a__groupLabel{padding-top:0}}@media (prefers-reduced-motion:reduce){.Skills-module__lhWK4a__tag{transition:none}.Skills-module__lhWK4a__tag:hover{transform:none}}
.Contact-module__gQiC5G__fieldRow{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (max-width:480px){.Contact-module__gQiC5G__fieldRow{grid-template-columns:1fr}}.Contact-module__gQiC5G__honeypot{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
html[data-js="1"] .Reveal-module__kr6AIq__reveal[data-visible=false]{opacity:0;transform:translateY(18px)}.Reveal-module__kr6AIq__reveal{transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion:reduce){html[data-js="1"] .Reveal-module__kr6AIq__reveal[data-visible=false]{opacity:1;transform:none}.Reveal-module__kr6AIq__reveal{transition:none}}
.ScrollProgress-module__uPYvRq__track{z-index:100;pointer-events:none;background-color:#0000;height:2px;position:fixed;top:0;left:0;right:0}.ScrollProgress-module__uPYvRq__bar{transform-origin:0;background-image:linear-gradient(90deg,var(--text-muted)0%,var(--text)100%);will-change:transform;width:100%;height:100%;transform:scaleX(0)}
.Backdrop-module__v6ww8G__backdrop{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.Backdrop-module__v6ww8G__layer{transition:opacity .5s;position:absolute;inset:0}.Backdrop-module__v6ww8G__dots{opacity:1;background-image:radial-gradient(circle,var(--border)1px,transparent 1.2px);background-size:22px 22px}.Backdrop-module__v6ww8G__spotlight{opacity:1;background-image:radial-gradient(circle,var(--text-muted)1px,transparent 1.2px);-webkit-mask-image:radial-gradient(circle 190px at var(--spot-x)var(--spot-y),#000 0%,#00000059 50%,transparent 75%);-webkit-mask-image:radial-gradient(circle 190px at var(--spot-x)var(--spot-y),#000 0%,#00000059 50%,transparent 75%);mask-image:radial-gradient(circle 190px at var(--spot-x)var(--spot-y),#000 0%,#00000059 50%,transparent 75%);--spot-x:-1000px;--spot-y:-1000px;background-size:22px 22px;animation:4.5s ease-in-out infinite Backdrop-module__v6ww8G__breathe;display:none}@media (pointer:fine){.Backdrop-module__v6ww8G__spotlight{display:block}}@keyframes Backdrop-module__v6ww8G__breathe{0%,to{opacity:.7}50%{opacity:1}}.Backdrop-module__v6ww8G__sky{opacity:0}:is(html[data-theme=dark] .Backdrop-module__v6ww8G__dots,html[data-theme=dark] .Backdrop-module__v6ww8G__spotlight){opacity:0;animation:none}html[data-theme=dark] .Backdrop-module__v6ww8G__sky{opacity:1}@media (prefers-color-scheme:dark){:is(html:not([data-theme=light]) .Backdrop-module__v6ww8G__dots,html:not([data-theme=light]) .Backdrop-module__v6ww8G__spotlight){opacity:0;animation:none}html:not([data-theme=light]) .Backdrop-module__v6ww8G__sky{opacity:1}}.Backdrop-module__v6ww8G__star{opacity:.15;animation:Backdrop-module__v6ww8G__twinkle var(--dur)ease-in-out var(--delay)infinite;background-color:#fff;border-radius:50%;position:absolute}@keyframes Backdrop-module__v6ww8G__twinkle{0%,to{opacity:.12;transform:scale(.7)}50%{opacity:var(--peak);transform:scale(1)}}.Backdrop-module__v6ww8G__shooting{opacity:0;width:2px;height:2px;animation:Backdrop-module__v6ww8G__shoot var(--dur)ease-in var(--delay)infinite;background-color:#fff;border-radius:50%;position:absolute;box-shadow:0 0 6px 1px #ffffffb3}.Backdrop-module__v6ww8G__shooting:after{content:"";background-image:linear-gradient(90deg,#fff0 0%,#ffffffbf 100%);width:90px;height:1px;position:absolute;top:50%;right:1px;transform:translateY(-50%)}@keyframes Backdrop-module__v6ww8G__shoot{0%{opacity:0;transform:rotate(135deg)translate(0)}4%{opacity:1}22%{opacity:0;transform:rotate(135deg)translate(510px)}to{opacity:0;transform:rotate(135deg)translate(510px)}}@media (prefers-reduced-motion:reduce){.Backdrop-module__v6ww8G__layer{transition:none}.Backdrop-module__v6ww8G__star{opacity:.3;animation:none}.Backdrop-module__v6ww8G__spotlight{opacity:1;animation:none}.Backdrop-module__v6ww8G__shooting{display:none}}
