@charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap";.power-switch[data-v-dd5d118a]{--color-invert: #ffffff;--width: 150px;--height: 150px;position:relative;display:flex;justify-content:center;align-items:center;width:var(--width);height:var(--height);outline:none}.power-switch .button[data-v-dd5d118a]{width:100%;height:100%;display:flex;justify-content:center;align-items:center;position:relative;cursor:pointer}.power-switch .button[data-v-dd5d118a]:after{content:"";width:100%;height:100%;position:absolute;background:radial-gradient(circle closest-side,var(--color-invert),transparent);filter:blur(20px);opacity:0;transition:opacity 1s ease,transform 1s ease;transform:perspective(1px) translateZ(0);backface-visibility:hidden}.power-switch .power-on[data-v-dd5d118a],.power-switch .power-off[data-v-dd5d118a]{height:100%;width:100%;position:absolute;z-index:1;fill:none;stroke:var(--color-invert);stroke-width:8px;stroke-linecap:round;stroke-linejoin:round}.power-switch .power-on .line[data-v-dd5d118a],.power-switch .power-off .line[data-v-dd5d118a]{opacity:.2}.power-switch .power-on .circle[data-v-dd5d118a],.power-switch .power-off .circle[data-v-dd5d118a]{opacity:.2;transform:rotate(-58deg);transform-origin:center 80px;stroke-dasharray:220;stroke-dashoffset:40}.power-switch .power-on[data-v-dd5d118a]{filter:drop-shadow(0px 0px 6px rgba(255,255,255,.8))}.power-switch .power-on .line[data-v-dd5d118a]{opacity:0;transition:opacity .3s ease 1s}.power-switch .power-on .circle[data-v-dd5d118a]{opacity:1;stroke-dashoffset:220;transition:transform 0s ease,stroke-dashoffset 1s ease 0s}.power-switch input[data-v-dd5d118a]{position:absolute;height:100%;width:100%;z-index:2;cursor:pointer;opacity:0}.power-switch input:checked+.button[data-v-dd5d118a]:after{opacity:.15;transform:scale(2) perspective(1px) translateZ(0);backface-visibility:hidden;transition:opacity .5s ease,transform .5s ease}.power-switch input:checked+.button .power-on[data-v-dd5d118a],.power-switch input:checked+.button .power-off[data-v-dd5d118a]{animation:click-animation-dd5d118a .3s ease forwards;transform:scale(1)}.power-switch input:checked+.button .power-on .line[data-v-dd5d118a],.power-switch input:checked+.button .power-off .line[data-v-dd5d118a]{animation:line-animation-dd5d118a .8s ease-in forwards}.power-switch input:checked+.button .power-on .circle[data-v-dd5d118a],.power-switch input:checked+.button .power-off .circle[data-v-dd5d118a]{transform:rotate(302deg)}.power-switch input:checked+.button .power-on .line[data-v-dd5d118a]{opacity:1;transition:opacity .05s ease-in .55s}.power-switch input:checked+.button .power-on .circle[data-v-dd5d118a]{transform:rotate(302deg);stroke-dashoffset:40;transition:transform .4s ease .2s,stroke-dashoffset .4s ease .2s}@keyframes line-animation-dd5d118a{0%{transform:translateY(0)}10%{transform:translateY(10px)}40%{transform:translateY(-25px)}60%{transform:translateY(-25px)}85%{transform:translateY(10px)}to{transform:translateY(0)}}@keyframes click-animation-dd5d118a{0%{transform:scale(1)}50%{transform:scale(.9)}to{transform:scale(1)}}header{--ui-font: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Arial, "Noto Sans", "Liberation Sans", sans-serif;--brand: #4895ef;--brand-2: #a78bfa;--brand-3: #22d3ee;--txt: #4895EF;--txt-dim: rgba(255,255,255,.88);--glass: rgba(14, 18, 26, .3);--glass-scrolled: rgba(14, 18, 26, .45);--border: rgba(255,255,255,.1);--shadow: 0 8px 30px rgba(0,0,0,.25);--ease: cubic-bezier(.22,1,.36,1);--header-h: 75px;--container: 1280px;--gutter: 16px;--fs-base: 16px;--fs-btn: 14px;--burger-w: 28px;--burger-h: 20px;--burger-line-h: 2px;--burger-line-radius: 2px;--menu-gap: 24px;--mobile-bg-start: rgba(14,18,26,.6);--mobile-bg-end: rgba(14,18,26,.3);--mobile-blur: blur(12px) saturate(120%);--mobile-menu-mt: 12px;--mobile-menu-pb: 24px;--mobile-menu-link-py: 14px;--mobile-menu-link-px: 16px;--mobile-menu-link-fs: 18px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.site-header{width:100%;height:var(--header-h);position:sticky;top:0;z-index:20;background:linear-gradient(180deg,var(--glass),transparent);border-bottom:1px solid var(--border);box-shadow:none;font-family:var(--ui-font);font-size:var(--fs-base);line-height:1.25;transition:background .35s var(--ease),backdrop-filter .35s var(--ease),-webkit-backdrop-filter .35s var(--ease),box-shadow .35s var(--ease),transform .35s var(--ease);-webkit-tap-highlight-color:transparent}@supports ((backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px))){header{backdrop-filter:saturate(120%) blur(0px);-webkit-backdrop-filter:saturate(120%) blur(0px)}}header.is-scrolled{background:linear-gradient(180deg,var(--glass-scrolled),rgba(14,18,26,.3));box-shadow:var(--shadow)}@supports ((backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px))){header.is-scrolled{backdrop-filter:saturate(140%) blur(12px);-webkit-backdrop-filter:saturate(140%) blur(12px)}}header.is-scrolled{transform:translateZ(0)}.header-inner{max-width:var(--container);height:100%;margin-inline:auto;padding-inline:16px;display:flex;align-items:center;justify-content:space-between}.header-logo{font-family:var(--ui-font);font-weight:700;font-size:22px;text-decoration:none;color:var(--txt);letter-spacing:.2px;text-shadow:none;transition:opacity .25s var(--ease),transform .25s var(--ease);position:relative;z-index:2000}.header-nav.desktop{display:flex;gap:var(--menu-gap)}.header-nav.desktop a{position:relative;color:var(--txt-dim);font-family:var(--ui-font);font-size:var(--fs-base);font-weight:600;text-decoration:none;letter-spacing:.1px;padding:4px 0;transition:color .25s var(--ease),transform .25s var(--ease),opacity .25s var(--ease)}.header-nav.desktop a:after{content:"";position:absolute;left:0;bottom:-6px;width:100%;height:2px;background:var(--txt);transform:scaleX(0);transform-origin:left center;transition:transform .35s var(--ease);border-radius:2px;opacity:.9}.header-nav.desktop a:hover{color:#fff}.header-nav.desktop a:hover:after{transform:scaleX(1)}.header-right{display:flex;align-items:center;gap:16px}.burger{display:none;flex-direction:column;justify-content:space-between;width:var(--burger-w);height:var(--burger-h);background:none;border:none;cursor:pointer;padding:0;z-index:2100;-webkit-tap-highlight-color:transparent;transition:transform .25s var(--ease),opacity .25s var(--ease)}.burger:hover{transform:translateY(-1px)}.burger:active{transform:scale(.96)}.burger span{display:block;height:var(--burger-line-h);width:100%;background:#fff;border-radius:var(--burger-line-radius);transition:transform .35s var(--ease),opacity .3s var(--ease),background-color .25s var(--ease)}.burger.open span:nth-child(1){transform:translateY(calc(var(--burger-h) / 2 - var(--burger-line-h) / 2)) rotate(45deg)}.burger.open span:nth-child(2){opacity:0}.burger.open span:nth-child(3){transform:translateY(calc(-1 * (var(--burger-h) / 2 - var(--burger-line-h) / 2))) rotate(-45deg)}.mobile-menu{position:fixed;left:0;right:0;top:var(--header-h, 75px);bottom:0;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(16px) scale(.98);transition:opacity .4s var(--ease),transform .4s var(--ease),visibility 0s linear .4s;will-change:opacity,transform;z-index:1500;background:radial-gradient(100% 100% at 0% 0%,rgba(72,149,239,.12),transparent 60%),linear-gradient(180deg,var(--mobile-bg-start),var(--mobile-bg-end));backdrop-filter:var(--mobile-blur);-webkit-backdrop-filter:var(--mobile-blur)}.mobile-menu.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);transition:opacity .4s var(--ease),transform .4s var(--ease),visibility 0s}.mobile-menu nav{display:flex;flex-direction:column;width:100%;padding-bottom:var(--mobile-menu-pb);transform:translateY(8px);opacity:.001;transition:transform .35s var(--ease),opacity .35s var(--ease)}.mobile-menu.open nav{transform:translateY(0);opacity:1}.mobile-menu a{padding:var(--mobile-menu-link-py) var(--mobile-menu-link-px);font-family:var(--ui-font);font-size:var(--mobile-menu-link-fs);font-weight:600;color:#fff;text-decoration:none;letter-spacing:.1px;border-bottom:1px solid rgba(255,255,255,.08);background-color:transparent;text-align:left;opacity:0;transform:translateY(8px);transition:opacity .35s var(--ease),transform .35s var(--ease),background-color .25s var(--ease);transition-delay:0s}.mobile-menu.open a{opacity:1;transform:translateY(0);transition-delay:calc(var(--i, 0) * .08s)}.mobile-menu a:hover{background-color:#ffffff0a;transform:translate(2px)}@media (max-width: 1024px){.header-nav.desktop{display:none}.burger.mobile{display:flex}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.hero{--bg: #0b0f15;--text: #e9eef6;--text-dim: #a9b4c2;--brand: #4895ef;--brand-2: #2f68e8;--ring: #2f78ff;--shadow-lg: 0 10px 40px rgba(0,0,0,.35);font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,Arial,Noto Sans,Liberation Sans,sans-serif;position:relative;color:var(--text);background:var(--bg);overflow:clip;min-height:calc(100vh - var(--header-h));min-height:calc(100svh - var(--header-h))}@supports (height: 100dvh){.hero{min-height:calc(100dvh - var(--header-h))}}.hero__inner{min-height:inherit;max-width:var(--container);margin-inline:auto;padding-inline:16px;display:grid;grid-template-columns:1.2fr .9fr;align-items:center;gap:var(--hero-gap)}@media (max-width: 1024px){.hero__inner{grid-template-columns:1fr;row-gap:0;column-gap:var(--hero-gap);text-align:center}.hero__avatar{order:-1;margin:0 auto 4px;display:block}.eyebrow{margin-bottom:4px}.title,.subtitle{margin-bottom:6px}.lead{margin-bottom:12px}}.eyebrow{margin:0 0 12px;color:var(--brand);font-weight:600;letter-spacing:.3px;opacity:.95}.title{margin:0 0 12px;font-size:var(--hero-title-fs);font-weight:700;line-height:1.05;letter-spacing:.4px}.subtitle{margin:0 0 14px;font-size:var(--hero-subtitle-fs);color:var(--text);opacity:.9}.lead{margin:0 0 26px;color:var(--text-dim);font-size:var(--hero-lead-fs);line-height:1.7}.cta{display:flex;align-items:center;gap:14px;margin-bottom:6px;flex-wrap:wrap}@media (max-width: 1024px){.cta{justify-content:center;gap:12px}}.btn{--h: 46px;display:inline-flex;align-items:center;justify-content:center;height:var(--h);padding:0 18px;border-radius:12px;font-weight:600;text-decoration:none;border:1px solid transparent;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease;line-height:1;white-space:nowrap;will-change:transform,box-shadow}.btn svg{width:18px;height:18px;margin-inline-start:8px}.btn--primary{position:relative;color:#fff;background:#4895ef29;border:1px solid rgba(72,149,239,.45);backdrop-filter:blur(8px) saturate(120%);-webkit-backdrop-filter:blur(8px) saturate(120%);box-shadow:inset 0 1px #fff3,0 6px 18px #4895ef47;text-shadow:0 1px 0 rgba(0,0,0,.25);transition:all .25s ease}.btn--primary:hover{background:#4895ef42;border-color:#4895efa6;box-shadow:inset 0 1px #ffffff47,0 10px 26px #4895ef61;transform:translateY(-1px)}.btn--primary:active{transform:translateY(0);box-shadow:inset 0 1px #ffffff38,0 4px 12px #4895ef47}.btn--ghost{color:var(--text);background:#ffffff05;border-color:#ffffff24;backdrop-filter:blur(6px)}.btn--ghost:hover{border-color:#ffffff47;background:#4895ef14;transform:translateY(-1px)}.btn--ghost:active{transform:translateY(0);background:#4895ef1f}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px #2f78ff66,0 6px 20px #2f78ff40}.btn.is-disabled,.btn[aria-disabled=true]{opacity:.6;pointer-events:none}.hero__avatar{position:relative;width:var(--hero-avatar-size);aspect-ratio:1 / 1;justify-self:end}.avatar-ring{position:relative;display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:radial-gradient(60% 60% at 50% 40%,rgba(72,149,239,.22),transparent 60%),radial-gradient(55% 55% at 60% 60%,rgba(167,139,250,.18),transparent 62%),#ffffff05;box-shadow:var(--shadow-lg)}.avatar-ring:before,.avatar-ring:after{content:"";position:absolute;inset:10px;border-radius:50%;pointer-events:none}.avatar-ring:before{border:3px solid rgba(255,255,255,.06)}.avatar-ring:after{inset:6px;border:4px solid var(--ring);filter:drop-shadow(0 0 18px rgba(47,120,255,.35));animation:breathe 4.6s ease-in-out infinite}.hero__avatar img{position:absolute;inset:16px;max-width:calc(100% - 32px);max-height:calc(100% - 32px);border-radius:50%;object-fit:cover;filter:saturate(95%)}.avatar-glow{position:absolute;inset:0;z-index:-1;border-radius:50%;background:radial-gradient(60% 60% at 55% 45%,rgba(47,120,255,.2),transparent 65%);filter:blur(24px)}.scroll{position:absolute;left:50%;bottom:16px;transform:translate(-50%);display:grid;place-items:center;width:42px;height:42px;border-radius:50%;color:#c7d2e1;background:#ffffff0a;border:1px solid rgba(255,255,255,.12);cursor:pointer;animation:floatY 3.2s ease-in-out infinite,pulse 2.4s infinite;transition:transform .25s ease,background-color .25s ease,color .25s ease}.scroll:hover{background:#4895ef1a;color:var(--brand);transform:translate(-50%) scale(1.08)}@keyframes breathe{0%,to{transform:scale(1);opacity:.85}50%{transform:scale(1.02);opacity:1}}@keyframes floatY{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,-6px)}}@keyframes pulse{0%{box-shadow:0 0 #4895ef66}70%{box-shadow:0 0 0 12px #4895ef00}to{box-shadow:0 0 #4895ef00}}@media (prefers-reduced-motion: reduce){.avatar-ring:after,.scroll{animation:none}.btn{transition:none}}@media (max-width: 1025px){.cta{display:none}}.cursor[data-v-25661bae]{display:inline-block;margin-left:2px;animation:blink-25661bae .8s infinite}@keyframes blink-25661bae{0%,50%{opacity:1}51%,to{opacity:0}}.about{--bg: #1E1E1E;--text: #e9eef6;--text-dim: #a9b4c2;--brand: #4895ef;--card: #11151c;background:var(--bg);color:var(--text);padding-block:40px;font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,Arial,Noto Sans,Liberation Sans,sans-serif}.about__header{display:grid;place-items:center;margin-bottom:clamp(24px,4vw,32px)}.about__title{margin:0;font-weight:700;font-size:clamp(28px,4.8vw,40px);letter-spacing:.3px}.about__title:after{content:"";display:block;width:72px;height:3px;margin:10px auto 0;background:var(--brand);border-radius:3px;opacity:.9}.about__grid{display:grid;grid-template-columns:.9fr 1.1fr;align-items:start}.about__avatar{margin:0 auto;display:flex;justify-content:center;aspect-ratio:4 / 5;max-height:450px}.avatar-card{position:relative;width:100%;aspect-ratio:4 / 5;border-radius:18px;overflow:hidden;background:#0f141b;box-shadow:0 18px 40px #00000059}.avatar-card:before{content:"";position:absolute;inset:0;background:radial-gradient(60% 60% at 30% 10%,rgba(72,149,239,.2),transparent 60%),radial-gradient(60% 60% at 90% 90%,rgba(167,139,250,.18),transparent 62%);pointer-events:none}.avatar-card img{width:100%;height:100%;object-fit:cover;display:block}.about__content{max-width:840px;margin:10px}.about__subtitle{color:var(--brand);font-size:clamp(18px,2.6vw,26px);margin:0 0 8px;font-weight:700}.about__p{margin:0 0 14px;color:var(--text);opacity:.92;line-height:1.7}.about__skills{max-width:1024px;list-style:none;padding:8px 0 0;margin:20px auto;display:grid;grid-template-columns:1fr 1fr;justify-content:space-between;gap:20px}.skill{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:start;max-width:400px}.skill__icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:linear-gradient(180deg,#4895ef2e,#4895ef1a);color:var(--brand);border:1px solid rgba(255,255,255,.08);box-shadow:0 6px 18px #4895ef2e,0 0 12px #4895ef59,0 0 24px #4895ef40}.skill__icon img{width:20px;height:20px;object-fit:contain;display:block}.skill__title{font-weight:700;margin-bottom:2px}.skill__desc{color:var(--text-dim);font-size:14.5px;line-height:1.55}@media (max-width: 1024px){.about__grid{grid-template-columns:1fr;gap:30px}.about__avatar{margin:0 auto;max-width:420px}.about__content{margin:0 20px}.about__skills{margin:20px;gap:20px}}@media (max-width: 640px){.about__title{font-size:24px}.about__avatar{max-width:300px}.about__content{margin:0 12px}.about__skills{grid-template-columns:1fr}.about__subtitle{margin-top:20px;text-align:center}}.scroll-top[data-v-c2856ac6]{--st-size: 44px;--st-radius: 50%;--st-bg: rgba(14, 18, 26, .8);--st-bg-hover: rgba(14, 18, 26, .92);--st-fg: #fff;--st-shadow: 0 8px 20px rgba(0, 0, 0, .35);--st-shadow-hover: 0 10px 28px rgba(0, 0, 0, .45);--st-z: 40;position:fixed;right:clamp(16px,2vw,28px);bottom:clamp(16px,2vw,28px);width:var(--st-size);height:var(--st-size);border-radius:var(--st-radius);display:inline-flex;align-items:center;justify-content:center;background:var(--st-bg);color:var(--st-fg);border:none;outline:none;cursor:pointer;box-shadow:var(--st-shadow);transition:transform .22s ease,opacity .22s ease,box-shadow .22s ease,background-color .22s ease;z-index:var(--st-z);opacity:0;visibility:hidden;transform:translateY(8px)}.scroll-top.is-visible[data-v-c2856ac6]{opacity:1;visibility:visible;transform:translateY(0)}.scroll-top[data-v-c2856ac6]:hover{background:var(--st-bg-hover);box-shadow:var(--st-shadow-hover)}.scroll-top[data-v-c2856ac6]:active{transform:translateY(1px)}.scroll-top[data-v-c2856ac6]:focus-visible{outline:2px solid rgba(72,149,239,.9);outline-offset:2px}@media (prefers-reduced-motion: no-preference){.scroll-top.is-visible[data-v-c2856ac6]{animation:st-pulse-c2856ac6 2.4s infinite}@keyframes st-pulse-c2856ac6{0%{box-shadow:0 0 #4895ef40}70%{box-shadow:0 0 0 14px #4895ef00}to{box-shadow:0 0 #4895ef00}}}@media (prefers-reduced-motion: reduce){.scroll-top[data-v-c2856ac6],.scroll-top.is-visible[data-v-c2856ac6]{transition:none;animation:none}}.switch-button[data-v-e41c481c]{--segment-width: 120px;--glow: rgba(72, 149, 239, .45);--glow-hover: rgba(72, 149, 239, .6);--pulse: rgba(72, 149, 239, .25);box-shadow:0 12px 30px #0006;background:#363434;overflow:hidden;width:calc(var(--segment-width) * 2);text-align:center;font-size:12px;letter-spacing:1px;color:#e9eef6;position:relative;padding-right:var(--segment-width);font-weight:800}.switch-button[data-v-e41c481c]:before{content:attr(data-right);position:absolute;inset:0 0 0 auto;width:var(--segment-width);display:flex;align-items:center;justify-content:center;z-index:3;pointer-events:none}.switch-button-checkbox[data-v-e41c481c]{cursor:pointer;position:absolute;inset:0;width:100%;height:100%;opacity:0;z-index:2}.switch-button-checkbox:checked+.switch-button-label[data-v-e41c481c]:before{transform:translate(var(--segment-width));transition:transform .3s linear,box-shadow .25s ease}.switch-button-checkbox+.switch-button-label[data-v-e41c481c]{position:relative;padding:7px 0;display:block;user-select:none;pointer-events:none}.switch-button-checkbox+.switch-button-label[data-v-e41c481c]:before{content:"";background:linear-gradient(90deg,#4895ef,#2f68e8);height:100%;width:100%;position:absolute;left:0;top:0;border-radius:30px;transform:translate(0);transition:transform .3s,box-shadow .25s ease;z-index:1;box-shadow:0 6px 20px var(--glow)}.switch-button-checkbox+.switch-button-label[data-v-e41c481c]:after{content:"";position:absolute;inset:0;border-radius:30px;background:var(--pulse);opacity:0;transform:scale(.9);transition:opacity .3s,transform .3s;z-index:2}.switch-button-checkbox+.switch-button-label .switch-button-label-span[data-v-e41c481c]{position:relative;z-index:3}.resume{background:#0b0f15;color:#fff;display:flex;justify-content:center}.resume .container{max-width:960px;width:100%;text-align:center}.resume__title{font-size:2.2rem;font-weight:700;margin-bottom:32px;position:relative;display:inline-block}.resume__title:after{content:"";display:block;width:70%;height:3px;background:linear-gradient(90deg,#2f68e8,#4895ef);margin:6px auto 0;border-radius:2px}.resume-card{position:relative;border-radius:16px;margin-top:40px;padding:30px 28px;background-color:#24272c;background-image:var(--resume-bg, none);background-size:cover;background-repeat:no-repeat;background-position:right bottom;box-shadow:0 12px 30px #29282866}.resume-card-content{padding:12px}.resume-card__title{font-size:1.2rem;font-weight:600;margin-bottom:8px}.resume-card__subtitle{color:#a9b4c2;margin-bottom:28px;font-size:.95rem}.resume-card__actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.btn{--h: 46px;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--h);padding:0 22px;font-weight:600;font-size:.95rem;text-decoration:none;border-radius:12px;transition:all .25s ease;cursor:pointer;border:2px solid transparent;position:relative;overflow:hidden}.btn--ghost{color:#e9eef6;background:transparent;border-color:#ffffff38}.btn--ghost:hover{border-color:#4895ef;color:#4895ef;box-shadow:0 0 12px #4895ef66}.btn--primary{color:#fff;background:linear-gradient(135deg,#4895ef,#2f68e8);box-shadow:0 6px 20px #4895ef73;border:none;position:relative;overflow:hidden}.btn--primary:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 10px 28px #4895ef99;background:linear-gradient(135deg,#4ea0ff,#326cf0)}.btn--primary:active:after{content:"";position:absolute;inset:0;border-radius:inherit;background:#fff3;animation:ripple .5s ease-out}@keyframes ripple{0%{opacity:1;transform:scale(.95)}to{opacity:0;transform:scale(1.3)}}.btn--primary:after{content:"";position:absolute;inset:0;border-radius:inherit;background:#4895ef40;opacity:0;transform:scale(.9);transition:opacity .3s,transform .3s}.btn--primary:hover:after{opacity:1;transform:scale(1.1)}.lang-switch{display:inline-flex;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:999px;overflow:hidden;backdrop-filter:blur(8px)}.lang-switch__btn{appearance:none;border:none;background:transparent;color:#e9eef6;font-weight:600;padding:6px 12px;line-height:1;cursor:pointer;transition:background .2s ease,color .2s ease;font-size:.85rem}.lang-switch__btn:not(.is-active):hover{background:#ffffff14}.lang-switch__btn.is-active{color:#0b0f15;background:linear-gradient(135deg,#4895ef,#2f68e8)}.lang-switch--card{position:absolute;top:14px;right:14px;z-index:2;box-shadow:0 6px 16px #00000040}@media (max-width: 1024px){.resume-card-content{padding:24px 0}}@media (max-width: 640px){.resume-card-content{padding:64px 0}}:root{--bg: #0c0f14;--card: #151a22;--ink: #e9eef7;--muted: rgba(233, 238, 247, .7);--brand: #7aa7ff;--brand-2: #9f7aff;--accent: #00d1ff;--stroke: rgba(255,255,255,.08);--r: 18px;--shadow: 0 12px 28px rgba(0,0,0,.35);--line-progress: 8%}.experience{background:#0b0f15;padding:clamp(32px,5vw,72px) 16px;color:var(--ink)}.exp-container{max-width:1000px;margin:0 auto;position:relative}.exp-header{text-align:center}.exp__title{font-size:2.2rem;font-weight:700;margin-bottom:32px;position:relative;display:inline-block}.exp__title:after{content:"";display:block;width:70%;height:3px;background:linear-gradient(90deg,#4895ef,#2f68e8);margin:6px auto 0;border-radius:2px}.exp-line{position:absolute;top:140px;left:36px;width:3px;height:calc(100% - 120px);background:linear-gradient(to bottom,#7aa7ff40,#9f7aff2e);border-radius:999px;overflow:hidden}.exp-line:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,var(--brand),var(--brand-2));height:var(--line-progress);transition:height .7s cubic-bezier(.22,.61,.36,1)}.exp-list{list-style:none;margin:28px 0 0;padding:0}.exp-item{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr);gap:16px;margin-bottom:28px;opacity:0;transform:translateY(16px) scale(.98);filter:saturate(.7);transition:opacity .6s ease-out var(--stagger, 0ms),transform .6s ease-out var(--stagger, 0ms),filter .6s ease-out var(--stagger, 0ms)}.exp-item.in-view{opacity:1;transform:translateY(0) scale(1);filter:saturate(1)}.exp-dot{position:relative;width:72px;display:flex;align-items:flex-start;justify-content:center}.exp-dot:before{content:"";width:18px;height:18px;background:radial-gradient(circle at 35% 35%,#fff,#cfe0ff 30%,#6a8dff 60%,#2b3a80);border:2px solid rgba(255,255,255,.6);border-radius:50%;box-shadow:0 0 0 6px #7aa7ff2e,0 8px 20px #00000059,inset 0 0 8px #ffffff80;margin-top:10px;animation:pulse 2.5s infinite}.exp-card{background:linear-gradient(180deg,#ffffff05,#fff0),var(--card);border:1px solid var(--stroke);border-radius:var(--r);box-shadow:var(--shadow);padding:18px 18px 14px;transition:transform .26s ease,border-color .26s ease,box-shadow .26s ease;will-change:transform}.exp-card:hover{transform:translateY(-2px);border-color:#7aa7ff59;box-shadow:0 18px 40px #1e294d73}.exp-card-head{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:start}.exp-logo{width:44px;height:44px;object-fit:contain;background:#0f1218;border-radius:12px;border:1px solid var(--stroke)}.exp-title{min-width:0}.exp-role{margin:0;font-size:20px;line-height:1.25}.exp-company{margin:4px 0 6px;color:var(--muted);font-weight:500}.exp-company a{color:var(--ink);text-decoration:none;background:linear-gradient(90deg,var(--brand),var(--accent)) left bottom / 0 2px no-repeat;transition:background-size .3s ease;padding-bottom:1px;border-radius:2px}.exp-company a:hover{background-size:100% 2px}.exp-meta{display:flex;flex-wrap:wrap;gap:10px 16px;color:var(--muted);font-size:14px}.exp-bullets{margin:14px 0 12px;padding-left:18px;color:var(--ink)}.exp-bullets li{margin:6px 0;line-height:1.5;position:relative}.exp-bullets li::marker{content:"▸ ";color:var(--brand);font-weight:700}.exp-tech{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.exp-chip{font-size:12px;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(4px);background:linear-gradient(180deg,#7aa7ff26,#7aa7ff0d);white-space:nowrap;transition:transform .2s ease,border-color .2s ease}.exp-chip:hover{transform:translateY(-1px);border-color:#7aa7ff59}@media (max-width: 720px){.exp-line{left:22px}.exp-item{grid-template-columns:48px minmax(0,1fr)}.exp-dot{width:48px}.exp-card-head{grid-template-columns:36px minmax(0,1fr)}.exp-logo{width:36px;height:36px;border-radius:10px}.exp-role{font-size:18px}}@media (prefers-reduced-motion: reduce){.exp-item,.exp-card,.exp-company a,.exp-line:after{transition:none!important}}@keyframes pulse{0%{box-shadow:0 0 0 6px #7aa7ff2e}50%{box-shadow:0 0 0 12px #7aa7ff59}to{box-shadow:0 0 0 6px #7aa7ff2e}}:root{--bg:#0c0f14;--panel:#1a212b;--ink:#ecf2ff;--muted:rgba(236,242,255,.75);--stroke:rgba(255,255,255,.08);--r:20px;--shadow:0 16px 40px rgba(0,0,0,.35);--proficient:#31d69b;--intermediate:#5f7fff;--exploring:#a97bff;--familiar:#ffb454}.skills{background:#1e1e1e;padding:clamp(32px,5vw,72px) 16px;color:var(--ink)}.skills-header{text-align:center;margin-bottom:28px}.skills-header h2{font-size:clamp(28px,4vw,44px);margin:0;font-weight:800}.skills-underline{width:72px;height:4px;margin:10px auto 14px;border-radius:999px;background:linear-gradient(90deg,#6ea8ff,#00d1ff);filter:drop-shadow(0 0 10px rgba(110,168,255,.35))}.skills-legend{margin:8px 0 0;padding:0;list-style:none;display:flex;gap:18px;justify-content:center;color:var(--muted);font-size:14px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:8px}.dot--proficient{background:var(--proficient)}.dot--intermediate{background:var(--intermediate)}.dot--exploring{background:var(--exploring)}.dot--familiar{background:var(--familiar)}.skills-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;max-width:1280px;margin:0 auto}@media (max-width: 900px){.skills-grid{grid-template-columns:1fr}}.skills-card{background:linear-gradient(180deg,#ffffff05,#fff0),var(--panel);border:1px solid var(--stroke);border-radius:var(--r);box-shadow:var(--shadow);padding:20px;opacity:0;transform:translateY(12px) scale(.98);transition:opacity .6s ease var(--stagger,0ms),transform .6s ease var(--stagger,0ms),border-color .25s ease,box-shadow .25s ease}.skills-card.in-view{opacity:1;transform:translateY(0) scale(1)}.skills-card:hover{border-color:#7aa7ff59;box-shadow:0 20px 50px #1e294d73}.card-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}.card-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(180deg,#5f7fff38,#5f7fff14);border:1px solid var(--stroke);font-size:22px}.card-title{font-size:clamp(20px,2.4vw,26px);margin:0}.chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}@media (max-width: 520px){.chips{grid-template-columns:1fr}}.skill-chip{--ring: rgba(255,255,255,.14);position:relative;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;background:#13192299;border:1px solid var(--ring);color:var(--ink);font-weight:500;letter-spacing:.2px;backdrop-filter:blur(6px);box-shadow:0 6px 18px #00000040;cursor:default;opacity:0;transform:translateY(8px);transition:transform .3s cubic-bezier(.22,.61,.36,1) var(--stagger,0ms),opacity .3s ease var(--stagger,0ms),border-color .2s ease,box-shadow .2s ease}.skill-chip.in-view{opacity:1;transform:translateY(0)}.skill-chip .chip-icon{font-size:14px;opacity:.9}.skill-chip .chip-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.skill-chip:focus-visible{outline:2px solid #00d1ff;outline-offset:2px}.skill-chip[data-level=proficient]{border-color:#31d69b99}.skill-chip[data-level=intermediate]{border-color:#5f7fff99}.skill-chip[data-level=exploring]{border-color:#a97bff99}.skill-chip[data-level=familiar]{border-color:#ffb454a6}.skill-chip:hover{transform:translateY(-2px);box-shadow:0 10px 28px #00000059}.skill-chip[data-level=proficient]:hover{border-color:var(--proficient)}.skill-chip[data-level=intermediate]:hover{border-color:var(--intermediate)}.skill-chip[data-level=exploring]:hover{border-color:var(--exploring)}.skill-chip[data-level=familiar]:hover{border-color:var(--familiar)}.chip-badge{position:absolute;top:-6px;left:-6px;font-size:10px;font-weight:700;padding:2px 6px;border-radius:6px;background:#ffb454e6;border:1px solid rgba(255,255,255,.25);color:#1a1a1a;letter-spacing:.2px;pointer-events:none;z-index:2;box-shadow:0 2px 6px #00000040}.skill-chip[data-variant=aws]{border-style:dashed;border-color:#ffb4548c;background:#28201273}.skill-chip[data-variant=aws]:hover{border-color:#ffb454}@media (prefers-reduced-motion: reduce){.skills-card,.skill-chip{transition:none!important}}.xfooter__socials{display:flex;gap:12px;align-items:center}.xso{display:inline-flex;align-items:center;justify-content:center}.xso__img{display:block;width:24px;height:24px;object-fit:contain}.xfooter .xso__img{filter:brightness(0) saturate(100%) invert(29%) sepia(96%) saturate(2576%) hue-rotate(208deg) brightness(99%) contrast(101%)}.xfooter .xso:hover .xso__img{filter:brightness(0) saturate(100%) invert(60%) sepia(48%) saturate(1735%) hue-rotate(205deg) brightness(100%) contrast(98%)}:root{--ink: #e8ecf8;--muted: #9aa8bf;--bg: #0b0f17;--panel: #14181f;--accent: #3b82f6;--stroke: rgba(255,255,255,.12)}.xfooter{padding-top:clamp(28px,4vw,40px);background:linear-gradient(180deg,#101417,#0c1014);color:var(--ink);text-align:center;border-top:1px solid rgba(255,255,255,.06)}.xfooter__hairline{height:1px;width:100%;background:#ffffff14;transform:translateY(-1px)}.xfooter__inner{max-width:980px;margin:0 auto;padding:clamp(20px,4vw,36px) clamp(16px,4vw,24px)}.xfooter__brand{margin:0 0 18px;font-weight:800;font-size:clamp(22px,3.6vw,32px);letter-spacing:.2px;color:#d7e5ff;text-shadow:0 0 0 transparent}.xfooter__socials{display:flex;justify-content:center;gap:16px;margin:0 0 16px;padding:0}.xso{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 60%,white 0%);background:radial-gradient(120% 120% at 50% 0%,#ffffff0a,#ffffff05);color:var(--ink);text-decoration:none;transition:transform .18s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease}.xso:hover{transform:translateY(-1px);border-color:var(--accent);box-shadow:0 6px 18px #0000002e;background:radial-gradient(120% 120% at 50% 0%,#3b82f626,#ffffff08)}.xso:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}.xso__icon{width:20px;height:20px;fill:color-mix(in srgb,var(--accent) 70%,white 0%)}.xfooter__note{margin:8px 0 28px;color:color-mix(in srgb,var(--ink) 70%,var(--muted) 30%);font-size:14px}.xfooter__divider{height:1px;max-width:70%;margin:0 auto;background:#ffffff24}.xfooter__copy{margin:12px 0 clamp(20px,5vw,36px);color:color-mix(in srgb,var(--ink) 85%,var(--muted) 15%);font-size:14px}body{background-color:var(--bg)}@media (max-width: 520px){.xso{width:40px;height:40px}.xfooter__note,.xfooter__copy{font-size:13px}}[data-v-6c924c16],[data-v-6c924c16]:before,[data-v-6c924c16]:after{box-sizing:border-box}.contact[data-v-6c924c16]{background:#0f1115;color:var(--ink);padding-block:clamp(28px,5vw,72px);padding-inline:max(16px,env(safe-area-inset-left)) max(16px,env(safe-area-inset-right));overflow-x:hidden}:where(img[data-v-6c924c16]){max-width:100%;height:auto}.contact__header[data-v-6c924c16]{display:grid;place-items:center;margin-bottom:clamp(32px,6vw,42px)}.contact__title[data-v-6c924c16]{margin:0;font-weight:700;font-size:clamp(24px,4.6vw,40px);letter-spacing:.3px}.contact__title[data-v-6c924c16]:after{content:"";display:block;width:72px;height:3px;margin:10px auto 0;background:var(--brand);border-radius:3px;opacity:.9}.contact__grid[data-v-6c924c16]{display:grid;gap:20px;max-width:1200px;width:100%;margin-inline:auto;grid-template-columns:1fr;overflow:clip}@media (min-width: 980px){.contact__grid[data-v-6c924c16]{grid-template-columns:minmax(0,.95fr) minmax(0,1.4fr);gap:28px}}.info-list[data-v-6c924c16]{list-style:none;margin:0;padding:0;display:grid;gap:16px}.info-card[data-v-6c924c16]{display:flex;align-items:center;gap:14px;background:linear-gradient(180deg,#ffffff05,#fff0),var(--panel);border:1px solid var(--stroke);border-radius:var(--r);padding:16px;color:inherit;text-decoration:none;box-shadow:0 10px 28px #00000040;transition:border-color .25s ease,box-shadow .25s ease,transform .2s ease;min-width:0}.info-card[data-v-6c924c16]:hover{border-color:#7aa7ff59;box-shadow:0 18px 38px #1e294d73;transform:translateY(-1px)}.info-card__icon[data-v-6c924c16]{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;flex:0 0 48px;background:#3e80ff26;border:1px solid rgba(110,168,255,.25)}.info-card__icon img[data-v-6c924c16]{width:32px;height:32px;display:block;object-fit:contain;image-rendering:auto;filter:brightness(0) invert(1);opacity:.95}.info-card__text[data-v-6c924c16]{display:flex;flex-direction:column;min-width:0}.info-card__label[data-v-6c924c16]{font-weight:700}.info-card__value[data-v-6c924c16]{color:#6ea8ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 450px){.info-card[data-v-6c924c16]{padding:14px}.info-card__value[data-v-6c924c16]{white-space:normal;overflow-wrap:anywhere;word-break:break-word}}.form-card[data-v-6c924c16]{background:linear-gradient(180deg,#ffffff05,#fff0),var(--panel);border:1px solid var(--stroke);border-radius:calc(var(--r) + 4px);padding:18px;box-shadow:var(--shadow);min-width:0}.form-row[data-v-6c924c16]{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.form-row label[data-v-6c924c16]{color:var(--muted);font-size:14px}input[data-v-6c924c16],textarea[data-v-6c924c16]{width:100%;background:#131923;color:var(--ink);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px 14px;outline:none;box-shadow:inset 0 1px #ffffff05}input[data-v-6c924c16]:focus,textarea[data-v-6c924c16]:focus{border-color:#7aa7ff73;box-shadow:0 0 0 3px #7aa7ff2e}textarea[data-v-6c924c16]{resize:vertical;min-height:140px}.form-actions[data-v-6c924c16]{display:flex;align-items:center;gap:12px;margin-top:10px;justify-content:flex-start;flex-wrap:wrap}@media (max-width: 979px){.form-actions[data-v-6c924c16]{justify-content:center;gap:10px}.btn-primary[data-v-6c924c16]{width:100%;max-width:320px}.form-card[data-v-6c924c16]{padding:16px}}.btn-primary[data-v-6c924c16]{height:44px;padding:0 18px;border-radius:12px;background:#3b82f6;color:#fff;font-weight:700;border:1px solid rgba(255,255,255,.06);box-shadow:0 8px 20px #3b82f659;cursor:pointer;transition:transform .18s ease,box-shadow .25s ease,background-color .25s ease}.btn-primary[data-v-6c924c16]:hover{transform:translateY(-1px);box-shadow:0 12px 26px #3b82f673}.btn-primary[data-v-6c924c16]:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.hint[data-v-6c924c16]{margin:0;font-size:13px}.hint.success[data-v-6c924c16]{color:#31d69b}.hint.error[data-v-6c924c16]{color:#ff6b6b}.btn-primary[data-v-6c924c16]:focus-visible{outline:2px solid #00d1ff;outline-offset:2px}@media (prefers-reduced-motion: reduce){.info-card[data-v-6c924c16],.btn-primary[data-v-6c924c16]{transition:none!important;transform:none!important}}:root{--container: 1280px;--gutter: clamp(16px, 4vw, 32px);--section-y: clamp(64px, 10vw, 96px);--header-h: 75px;--grid-gap: clamp(24px, 4vw, 48px);--fs-base: 16px;--btn-padding-y: 10px;--btn-padding-x: 20px;--menu-gap: clamp(24px, 3.5vw, 56px);--mobile-blur: blur(14px) saturate(140%);--mobile-bg-start: rgba(10, 12, 16, .7);--mobile-bg-end: rgba(10, 12, 16, .55);--mobile-dim: .4;--mobile-menu-pb: 24px;--mobile-menu-link-py: 18px;--mobile-menu-link-px: 24px;--mobile-menu-link-fs: 20px;--hero-title-fs: clamp(38px, 6.2vw, 64px);--hero-subtitle-fs: clamp(18px, 2.2vw, 22px);--hero-lead-fs: 16.5px;--hero-gap: var(--grid-gap);--hero-avatar-size: min(360px, 65vw)}@media (max-width: 768px){:root{--mobile-blur: blur(18px) saturate(160%);--mobile-bg-start: rgba(10, 12, 16, .88);--mobile-bg-end: rgba(10, 12, 16, .78);--mobile-dim: .55}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,Noto Sans,Liberation Sans,sans-serif;background:#0b0f15;color:#e9eef6;scroll-behavior:smooth}.container{max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
