:root{--font-sans: "Outfit", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace;--bg: #07070f;--bg-elevated: #0f0f1a;--surface: rgba(255, 255, 255, .04);--surface-hover: rgba(255, 255, 255, .08);--border: rgba(255, 255, 255, .1);--text: #f0f0f8;--text-muted: #9898b0;--accent: #7c5cff;--accent-2: #00d4aa;--accent-3: #ff6b9d;--glow: rgba(124, 92, 255, .45);--glow-2: rgba(0, 212, 170, .35);--radius-sm: 8px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--nav-height: 72px;--section-gap: clamp(4rem, 10vw, 8rem);--container: min(1200px, 92vw);--mouse-x: 50%;--mouse-y: 50%;color-scheme:dark}[data-theme=light]{--bg: #f4f2ff;--bg-elevated: #ffffff;--surface: rgba(0, 0, 0, .03);--surface-hover: rgba(0, 0, 0, .06);--border: rgba(0, 0, 0, .08);--text: #12121f;--text-muted: #5a5a72;--accent: #5b3fd4;--accent-2: #00a884;--accent-3: #e0457a;--glow: rgba(91, 63, 212, .25);--glow-2: rgba(0, 168, 132, .2);color-scheme:light}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-height)}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.6;overflow-x:hidden;cursor:none;transition:background .6s ease,color .6s ease;position:relative}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9998;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}.reveal-text,.scroll-reveal{opacity:1!important;transform:none!important}.clip-reveal,.about__photo-ring{transition-duration:.35s!important}}@media (pointer: coarse),(max-width: 768px){body{cursor:auto}.cursor-ring,.cursor-dot{display:none!important}}a{color:inherit;text-decoration:none}ul{list-style:none}img{max-width:100%;display:block}::selection{background:var(--accent);color:#fff}.section{padding:var(--section-gap) 0;position:relative}.section-header{max-width:var(--container);margin:0 auto 3rem;padding:0 4vw}.section-header h2{font-size:clamp(2rem,5vw,3.25rem);font-weight:800;letter-spacing:-.03em}.section-tag{display:inline-block;font-family:var(--font-mono);font-size:.72rem;color:var(--accent-2);letter-spacing:.05em;text-transform:uppercase;margin-bottom:.5rem}.section-header__hint{margin-top:.75rem;font-size:.9rem;color:var(--text-muted);max-width:36rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1.6rem;border-radius:999px;font-weight:600;font-size:.95rem;border:none;cursor:none;transition:transform .25s ease,box-shadow .25s ease,background .25s ease;position:relative;z-index:1}@media (pointer: coarse){.btn{cursor:pointer}}.btn--primary{background:linear-gradient(135deg,var(--accent),var(--accent-3));color:#fff;box-shadow:0 8px 32px var(--glow)}.btn--primary:hover{box-shadow:0 12px 40px var(--glow),0 0 24px var(--glow-2);transform:translateY(-2px)}.btn--ghost{background:transparent;border:1px solid var(--border);color:var(--text)}.btn--ghost:hover{background:var(--surface-hover);border-color:var(--accent)}.btn--sm{padding:.5rem 1rem;font-size:.85rem}.btn--large{padding:1rem 2rem;font-size:1rem}.footer{padding:2rem 4vw 3rem;text-align:center;color:var(--text-muted);font-size:.85rem;border-top:1px solid var(--border)}.footer__effects{margin-top:.75rem;font-family:var(--font-mono);font-size:.65rem;opacity:.6;max-width:900px;margin-inline:auto;line-height:1.8}.spotlight{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(600px circle at var(--mouse-x) var(--mouse-y),rgba(124,92,255,.08),transparent 40%);transition:opacity .3s}[data-theme=light] .spotlight{background:radial-gradient(600px circle at var(--mouse-x) var(--mouse-y),rgba(91,63,212,.06),transparent 40%)}.cursor-ring,.cursor-dot{position:fixed;pointer-events:none;z-index:9999;border-radius:50%;transform:translate(-50%,-50%);transition:width .2s,height .2s,border-color .2s,background .2s}.cursor-ring{width:40px;height:40px;border:1.5px solid var(--accent);opacity:.6}.cursor-dot{width:6px;height:6px;background:var(--accent-2)}body.cursor-hover .cursor-ring{width:56px;height:56px;border-color:var(--accent-2);opacity:.9}.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:1001;background:transparent}.scroll-progress__bar{height:100%;width:0%;background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent-3));box-shadow:0 0 12px var(--glow);transform-origin:left}@supports (animation-timeline: scroll()){.scroll-progress__bar{animation:scroll-progress linear forwards;animation-timeline:scroll()}@keyframes scroll-progress{0%{width:0%}to{width:100%}}}.glass{background:var(--surface);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--border);border-radius:var(--radius-lg)}.neon-text{color:#ddd6ff;background:linear-gradient(135deg,#e9e0ff,#5eead4,#fbcfe8);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:neon-shift 4s ease infinite;filter:drop-shadow(0 0 28px rgba(124,92,255,.65)) drop-shadow(0 0 8px rgba(94,234,212,.4))}[data-theme=light] .neon-text{background:linear-gradient(135deg,#5b3fd4,#00a884,#e0457a);filter:drop-shadow(0 0 16px rgba(91,63,212,.35))}@keyframes neon-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.reveal-text{display:inline-block;opacity:0;transform:translateY(24px);animation:reveal-up .8s cubic-bezier(.22,1,.36,1) forwards}.reveal-text:nth-child(2){animation-delay:.1s}.reveal-text:nth-child(3){animation-delay:.2s}.hero__title .reveal-text:nth-child(1){animation-delay:.15s}.hero__title .reveal-text:nth-child(2){animation-delay:.35s}.hero__eyebrow.reveal-text{animation-delay:.05s}.hero__subtitle.reveal-text{animation-delay:.45s}.hero__actions.reveal-text{animation-delay:.6s}@keyframes reveal-up{to{opacity:1;transform:translateY(0)}}.hero__blob{position:absolute;border-radius:40% 60% 70% 30%/40% 50% 60%;filter:blur(60px);opacity:.5;animation:blob-morph 12s ease-in-out infinite;pointer-events:none}.hero__blob--1{width:420px;height:420px;background:var(--accent);top:10%;left:-5%;animation-delay:0s}.hero__blob--2{width:350px;height:350px;background:var(--accent-2);bottom:5%;right:10%;animation-delay:-4s}@keyframes blob-morph{0%,to{border-radius:40% 60% 70% 30%/40% 50% 60%;transform:translate(0) rotate(0)}33%{border-radius:70% 30% 50% 50%/30% 60% 40% 70%;transform:translate(30px,-20px) rotate(120deg)}66%{border-radius:50% 60% 30% 70%/60% 40% 70% 30%;transform:translate(-20px,30px) rotate(240deg)}}.hero__mesh{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 60% at 20% 30%,rgba(124,92,255,.25),transparent),radial-gradient(ellipse 60% 50% at 80% 70%,rgba(0,212,170,.15),transparent),radial-gradient(ellipse 50% 40% at 50% 50%,rgba(255,107,157,.1),transparent);animation:mesh-drift 20s ease-in-out infinite alternate}@keyframes mesh-drift{0%{transform:scale(1) rotate(0)}to{transform:scale(1.1) rotate(3deg)}}.hero:not(.is-inview) .hero__blob,.hero:not(.is-inview) .hero__mesh,.hero:not(.is-inview) .neon-text{animation-play-state:paused}[data-theme=light] .hero__mesh{opacity:.7}.marquee-section{padding:1.5rem 0;border-block:1px solid var(--border);overflow:hidden;background:var(--bg-elevated)}.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,black 10%,black 90%,transparent);mask-image:linear-gradient(90deg,transparent,black 10%,black 90%,transparent)}.marquee__track{display:flex;gap:3rem;width:max-content;animation:marquee 30s linear infinite}.marquee__track span{font-family:var(--font-mono);font-size:.9rem;font-weight:500;color:var(--text-muted);white-space:nowrap;letter-spacing:.08em;text-transform:uppercase}.marquee__track span:nth-child(odd){color:var(--accent)}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.marquee-section:not(.is-inview) .marquee__track{animation-play-state:paused}.clip-reveal{clip-path:polygon(50% 0%,50% 0%,100% 25%,100% 75%,50% 100%,50% 100%,0% 75%,0% 25%);transition:clip-path .35s ease-in-out;will-change:clip-path}.about__photo-wrap:hover .clip-reveal{clip-path:polygon(30% 0%,70% 0%,100% 30%,100% 70%,70% 100%,30% 100%,0% 70%,0% 30%)}.about__photo-ring{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border:2px solid transparent;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2)) border-box;-webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:ring-spin 8s linear infinite;clip-path:polygon(50% 0%,50% 0%,100% 25%,100% 75%,50% 100%,50% 100%,0% 75%,0% 25%);transition:clip-path .35s ease-in-out;will-change:clip-path}.about__photo-wrap:hover .about__photo-ring{clip-path:polygon(30% 0%,70% 0%,100% 30%,100% 70%,70% 100%,30% 100%,0% 70%,0% 30%)}@keyframes ring-spin{to{transform:rotate(360deg)}}.about:not(.is-inview) .about__photo-ring{animation-play-state:paused}body.is-page-hidden .hero__blob,body.is-page-hidden .hero__mesh,body.is-page-hidden .neon-text,body.is-page-hidden .marquee__track,body.is-page-hidden .about__photo-ring{animation-play-state:paused}.flip-card{perspective:1000px;height:100%;min-height:200px}.flip-card__inner{position:relative;width:100%;height:100%;min-height:inherit;transition:transform .7s cubic-bezier(.22,1,.36,1);transform-style:preserve-3d}.flip-card:hover .flip-card__inner,.flip-card:focus-within .flip-card__inner,.flip-card.is-flipped .flip-card__inner{transform:rotateY(180deg)}.flip-card__front,.flip-card__back{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;padding:1.5rem;display:flex;flex-direction:column;justify-content:center;border-radius:var(--radius-lg)}.flip-card__front{background:linear-gradient(160deg,rgba(124,92,255,.08),transparent 60%)}.flip-card__back{transform:rotateY(180deg);background:linear-gradient(135deg,#7c5cff26,#00d4aa1a);gap:.75rem}.project-card{transform-style:preserve-3d;transition:transform .15s ease-out,box-shadow .3s ease;will-change:transform}.project-card.is-tilting{box-shadow:0 20px 60px #0000004d,0 0 40px var(--glow)}.stagger-list li,.stagger-list .skill-tag{opacity:0;transform:translateY(16px)}.stagger-list.is-visible li,.stagger-list.is-visible .skill-tag{animation:stagger-in .5s cubic-bezier(.22,1,.36,1) forwards}.stagger-list.is-visible li:nth-child(1),.stagger-list.is-visible .skill-tag:nth-child(1){animation-delay:.05s}.stagger-list.is-visible li:nth-child(2),.stagger-list.is-visible .skill-tag:nth-child(2){animation-delay:.1s}.stagger-list.is-visible li:nth-child(3),.stagger-list.is-visible .skill-tag:nth-child(3){animation-delay:.15s}.stagger-list.is-visible li:nth-child(4),.stagger-list.is-visible .skill-tag:nth-child(4){animation-delay:.2s}.stagger-list.is-visible li:nth-child(5),.stagger-list.is-visible .skill-tag:nth-child(5){animation-delay:.25s}.stagger-list.is-visible li:nth-child(6),.stagger-list.is-visible .skill-tag:nth-child(6){animation-delay:.3s}.stagger-list.is-visible li:nth-child(7),.stagger-list.is-visible .skill-tag:nth-child(7){animation-delay:.35s}.stagger-list.is-visible li:nth-child(8),.stagger-list.is-visible .skill-tag:nth-child(8){animation-delay:.4s}.stagger-list.is-visible li:nth-child(9),.stagger-list.is-visible .skill-tag:nth-child(9){animation-delay:.45s}.stagger-list.is-visible li:nth-child(10),.stagger-list.is-visible .skill-tag:nth-child(10){animation-delay:.5s}.stagger-list.is-visible li:nth-child(11),.stagger-list.is-visible .skill-tag:nth-child(11){animation-delay:.55s}.stagger-list.is-visible li:nth-child(12),.stagger-list.is-visible .skill-tag:nth-child(12){animation-delay:.6s}@keyframes stagger-in{to{opacity:1;transform:translateY(0)}}.scroll-reveal{opacity:0;transform:translateY(40px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}.scroll-reveal.is-visible{opacity:1;transform:translateY(0)}.globe-scene{perspective:none;width:300px;height:300px;margin:0 auto;cursor:grab;touch-action:none}.globe-scene canvas{display:block;width:100%;height:100%;border-radius:50%}.globe-scene.is-dragging{cursor:grabbing}.theme-toggle{background:none;border:none;cursor:none;padding:4px}@media (pointer: coarse){.theme-toggle{cursor:pointer}}.theme-toggle__track{display:block;width:56px;height:30px;background:var(--surface);border:1px solid var(--border);border-radius:999px;position:relative;transition:background .4s}.theme-toggle__thumb{position:absolute;top:3px;left:3px;width:22px;height:22px;background:linear-gradient(135deg,var(--accent),var(--accent-3));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;transition:transform .5s cubic-bezier(.34,1.56,.64,1);box-shadow:0 2px 8px var(--glow)}[data-theme=light] .theme-toggle__thumb{transform:translate(26px)}.theme-toggle__sun,.theme-toggle__moon{position:absolute;transition:opacity .3s,transform .3s}.theme-toggle__moon{opacity:0;transform:rotate(-90deg)}[data-theme=light] .theme-toggle__sun{opacity:0;transform:rotate(90deg)}[data-theme=light] .theme-toggle__moon{opacity:1;transform:rotate(0)}@supports (view-transition-name: root){::view-transition-old(root),::view-transition-new(root){animation-duration:.5s}}.lang-switch{display:flex;align-items:center;gap:2px;padding:3px;background:var(--surface);border:1px solid var(--border);border-radius:999px}.lang-switch__btn{background:none;border:none;cursor:none;font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.04em;color:var(--text-muted);padding:.28rem .55rem;border-radius:999px;transition:color .25s,background .25s}.lang-switch__btn:hover{color:var(--text)}.lang-switch__btn.is-active{color:var(--text);background:linear-gradient(135deg,#7c5cff59,#00d4aa33)}@media (pointer: coarse){.lang-switch__btn{cursor:pointer}}.nav{position:fixed;top:1rem;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:2rem;padding:.75rem 1.5rem;width:min(900px,94vw);border-radius:999px;box-shadow:0 8px 32px #0003}.nav:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(124,92,255,.4),rgba(0,212,170,.2),transparent);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.nav__logo{font-weight:800;font-size:1.25rem;letter-spacing:-.03em;display:inline-block;transition:transform .85s cubic-bezier(.34,1.2,.64,1);transform-origin:center center}.nav__logo:hover{transform:rotate(360deg)}@media (prefers-reduced-motion: reduce){.nav__logo:hover{transform:none}}.nav__dot{color:var(--accent-2)}.nav__links{display:flex;gap:1.5rem;margin-left:auto}.nav__actions{display:flex;align-items:center;gap:.65rem;flex-shrink:0}.nav__links a{font-size:.9rem;color:var(--text-muted);transition:color .2s}.nav__links a:hover{color:var(--text)}@media (max-width: 640px){.nav__links{display:none}.nav{justify-content:space-between;padding:.65rem 1rem}.nav__logo{font-size:1.1rem}}.hero{min-height:100vh;min-height:100dvh;display:flex;align-items:center;padding-top:calc(var(--nav-height) + 1rem);padding-bottom:3rem;overflow:hidden}.hero__grid{max-width:var(--container);margin:0 auto;padding:0 4vw;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;position:relative;z-index:1}@media (max-width: 900px){.hero__grid{grid-template-columns:1fr;text-align:center}}.hero__eyebrow{font-family:var(--font-mono);font-size:.85rem;color:var(--accent-2);margin-bottom:1rem;letter-spacing:.04em}.hero__title{font-size:clamp(2.4rem,6.5vw,4.25rem);font-weight:800;line-height:1.1;letter-spacing:-.04em;margin-bottom:1rem}.hero__title .neon-text{display:inline}.hero__subtitle{font-size:clamp(1rem,2vw,1.2rem);color:var(--text-muted);max-width:520px;margin-bottom:2rem}@media (max-width: 900px){.hero__subtitle{margin-inline:auto}}.hero__subtitle em{color:var(--accent);font-style:normal;font-weight:600}main{position:relative;z-index:1}.hero__actions{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem;min-height:52px}@media (max-width: 900px){.hero__actions{justify-content:center}}.hero__stats{display:flex;gap:1rem;flex-wrap:wrap}@media (max-width: 900px){.hero__stats{justify-content:center}}.stat-card{padding:1rem 1.25rem;text-align:center;min-width:110px}.stat-card__num{display:block;font-size:2rem;font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.stat-card__label{font-size:.75rem;color:var(--text-muted)}.globe-hint{text-align:center;margin-top:1rem;font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted)}.about{background:linear-gradient(180deg,transparent,rgba(124,92,255,.03) 50%,transparent)}.projects{background:var(--bg-elevated);border-block:1px solid var(--border)}.skills{background:linear-gradient(180deg,transparent,rgba(0,212,170,.03) 50%,transparent)}.contact{padding-bottom:calc(var(--section-gap) + 2rem)}.about__grid{max-width:var(--container);margin:0 auto;padding:0 4vw;display:grid;grid-template-columns:280px 1fr;gap:3rem;align-items:center}@media (max-width: 768px){.about__grid{grid-template-columns:1fr;justify-items:center;text-align:center}}.about__photo-wrap{position:relative;width:240px;height:260px}.about__photo{width:100%;height:100%;overflow:hidden;background:linear-gradient(135deg,var(--accent),var(--accent-3))}.about__avatar{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:4rem;font-weight:800;color:#fff;text-shadow:0 4px 20px rgba(0,0,0,.3)}.about__content{padding:2.5rem}.about__content p{color:var(--text-muted);margin-bottom:1rem}.about__content p strong{color:var(--text)}.about__highlights{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1.5rem}.about__highlights li{font-size:.9rem;padding:.5rem .75rem;background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border)}@media (max-width: 768px){.about__highlights{grid-template-columns:1fr}}.bento-grid{max-width:var(--container);margin:0 auto 3rem;padding:0 4vw;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:auto auto;grid-template-areas:"wide wide card2 card3" "wide wide tall tall";gap:1.25rem}.bento-card--wide{grid-area:wide}.bento-card:nth-child(2){grid-area:card2}.bento-card:nth-child(3){grid-area:card3}.bento-card--tall{grid-area:tall}.bento-grid--6{grid-template-areas:"wide wide card2 card3" "card4 card5 wide2 wide2"}.bento-grid--6 .bento-card:nth-child(1){grid-area:wide}.bento-grid--6 .bento-card:nth-child(2){grid-area:card2}.bento-grid--6 .bento-card:nth-child(3){grid-area:card3}.bento-grid--6 .bento-card:nth-child(4){grid-area:card4}.bento-grid--6 .bento-card:nth-child(5){grid-area:card5}.bento-grid--6 .bento-card:nth-child(6){grid-area:wide2}.bento-grid--6 .bento-card--wide2 .flip-card{min-height:240px}@media (max-width: 900px){.bento-grid{grid-template-columns:1fr 1fr;grid-template-areas:"wide wide" "card2 card3" "tall tall"}.bento-grid--6{grid-template-areas:"wide wide" "card2 card3" "card4 card5" "wide2 wide2"}}@media (max-width: 540px){.bento-grid{grid-template-columns:1fr;grid-template-areas:"wide" "card2" "card3" "tall"}.bento-grid--6{grid-template-areas:"wide" "card2" "card3" "card4" "card5" "wide2"}}.bento-card{container-type:inline-size;padding:0;overflow:hidden}.bento-card .flip-card{min-height:260px}.bento-card--wide .flip-card{min-height:300px}.bento-card--tall .flip-card{min-height:280px}@container (max-width: 280px){.flip-card__front h3,.flip-card__back h3{font-size:1rem}.flip-card__front p,.flip-card__back p{font-size:.8rem}.project-card__icon{font-size:1.5rem!important}}@container (min-width: 400px){.flip-card__front,.flip-card__back{padding:2rem}.flip-card__front h3{font-size:1.5rem}}.project-card__icon{font-size:2.5rem;margin-bottom:.75rem}.flip-card__front h3{font-size:1.25rem;font-weight:700;margin-bottom:.5rem}.flip-card__front p{color:var(--text-muted);font-size:.9rem}.flip-card__front .project-card__teaser{margin-bottom:.75rem}.project-card__tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:auto}.project-card__tag{font-family:var(--font-mono);font-size:.65rem;padding:.2rem .55rem;background:#7c5cff1f;border:1px solid rgba(124,92,255,.25);border-radius:999px;color:var(--accent-2);letter-spacing:.02em}.flip-card__back{justify-content:flex-start;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--accent) transparent}.flip-card__back-label{font-family:var(--font-mono);font-size:.7rem;color:var(--accent-2);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.25rem}.flip-card__back h3{font-size:1.1rem;font-weight:700;margin-bottom:.35rem}.flip-card__back .project-card__desc{font-size:.82rem;line-height:1.55;color:var(--text-muted);flex:1;margin-bottom:.75rem}.flip-card__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:auto;padding-top:.5rem}.flip-card__actions .btn--ghost-sm{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:.4rem .85rem;font-size:.78rem;border-radius:var(--radius-sm);transition:border-color .2s,color .2s}.flip-card__actions .btn--ghost-sm:hover{border-color:var(--accent);color:var(--text)}.snap-gallery-wrap{max-width:var(--container);margin:0 auto;padding:0 4vw}.snap-gallery__label{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);margin-bottom:1rem}.snap-gallery{display:flex;gap:1.25rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:4vw;padding-bottom:1rem;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--accent) transparent;cursor:grab;touch-action:pan-y pinch-zoom}.snap-gallery.is-dragging{cursor:grabbing;scroll-snap-type:none;-webkit-user-select:none;user-select:none}.snap-gallery.is-dragging .snap-card{pointer-events:none}.snap-gallery::-webkit-scrollbar{height:6px}.snap-gallery::-webkit-scrollbar-thumb{background:var(--accent);border-radius:999px}.snap-card{flex:0 0 min(280px,80vw);scroll-snap-align:start;padding:2rem;min-height:180px;display:flex;flex-direction:column;justify-content:flex-end;transition:transform .3s ease,box-shadow .3s ease}.snap-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px var(--glow)}.snap-card span{font-family:var(--font-mono);font-size:2rem;font-weight:700;color:var(--accent);opacity:.5;margin-bottom:auto}.snap-card h4{font-size:1.25rem;font-weight:700}.snap-card p{font-size:.85rem;color:var(--text-muted);margin-top:.35rem}.skills__bars{max-width:640px;margin:0 auto 3rem;padding:0 4vw;display:flex;flex-direction:column;gap:1.25rem}.skill-bar__header{display:flex;justify-content:space-between;font-size:.9rem;margin-bottom:.5rem}.skill-bar__header span:last-child{font-family:var(--font-mono);color:var(--accent-2)}.skill-bar__track{height:8px;background:var(--surface);border-radius:999px;overflow:hidden;border:1px solid var(--border)}.skill-bar__fill{height:100%;width:0%;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:999px;box-shadow:0 0 12px var(--glow);transition:width 1.2s cubic-bezier(.22,1,.36,1)}.skill-bar.is-visible .skill-bar__fill{width:calc(var(--level, 0) * 1%)}.skills__tags{max-width:var(--container);margin:0 auto;padding:0 4vw;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.skill-tag{padding:.5rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;font-size:.85rem;font-family:var(--font-mono);transition:border-color .2s,box-shadow .2s}.skill-tag:hover{border-color:var(--accent);box-shadow:0 0 16px var(--glow)}.contact__box{max-width:640px;margin:0 auto;padding:3rem;text-align:center}.contact__lead{font-size:1.1rem;color:var(--text-muted);margin-bottom:2rem}.contact__actions{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:2rem;position:relative;min-height:200px;width:100%}.runaway-btn{position:relative;transition:left .35s cubic-bezier(.34,1.56,.64,1),top .35s cubic-bezier(.34,1.56,.64,1)}.contact__links{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}.contact-link{font-family:var(--font-mono);font-size:.9rem;color:var(--text-muted);transition:color .2s}.contact-link:hover{color:var(--accent-2)}@media (max-width: 540px){.contact__box{padding:2rem 1.5rem}}.chat-widget{position:fixed;bottom:1.5rem;right:1.5rem;z-index:10000;font-family:var(--font-sans);cursor:auto}.chat-toggle{width:3.5rem;height:3.5rem;border-radius:50%;border:1px solid var(--border);background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 32px var(--glow);transition:transform .25s ease,box-shadow .25s ease}.chat-toggle:hover{transform:scale(1.06);box-shadow:0 12px 40px var(--glow)}.chat-toggle__icon{width:1.5rem;height:1.5rem;transition:opacity .2s,transform .2s}.chat-toggle__icon--close{position:absolute;opacity:0;transform:rotate(-90deg) scale(.8)}.chat-widget.is-open .chat-toggle__icon--open{opacity:0;transform:rotate(90deg) scale(.8)}.chat-widget.is-open .chat-toggle__icon--close{opacity:1;transform:rotate(0) scale(1)}.chat-panel{position:absolute;bottom:4.5rem;right:0;width:min(380px,calc(100vw - 2rem));height:min(520px,calc(100vh - 8rem));display:flex;flex-direction:column;border-radius:var(--radius-lg);overflow:hidden;opacity:0;visibility:hidden;transform:translateY(12px) scale(.96);transition:opacity .25s ease,transform .25s ease,visibility .25s;box-shadow:0 24px 64px #00000059}.chat-widget.is-open .chat-panel{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.chat-panel__header{padding:1rem 1.25rem;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.75rem}.chat-panel__avatar{width:2.25rem;height:2.25rem;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}.chat-panel__title{font-weight:600;font-size:.95rem;line-height:1.3}.chat-panel__subtitle{font-size:.75rem;color:var(--text-muted)}.chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem;scroll-behavior:smooth}.chat-message{max-width:88%;padding:.65rem .9rem;border-radius:var(--radius-md);font-size:.875rem;line-height:1.5;word-break:break-word}.chat-message--bot{align-self:flex-start;background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:4px}.chat-message--user{align-self:flex-end;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 80%,var(--accent-2)));color:#fff;border-bottom-right-radius:4px}.chat-message--typing{display:flex;gap:4px;padding:.75rem 1rem}.chat-message--typing span{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:chat-typing 1.2s infinite ease-in-out}.chat-message--typing span:nth-child(2){animation-delay:.15s}.chat-message--typing span:nth-child(3){animation-delay:.3s}@keyframes chat-typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.chat-suggestions{display:flex;flex-wrap:wrap;gap:.4rem;padding:0 1rem .75rem}.chat-suggestion{font-size:.75rem;padding:.35rem .65rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;transition:border-color .2s,color .2s}.chat-suggestion:hover{border-color:var(--accent);color:var(--accent)}.chat-form{display:flex;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--border)}.chat-input{flex:1;padding:.6rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font-family:var(--font-sans);font-size:.875rem;outline:none;transition:border-color .2s}.chat-input:focus{border-color:var(--accent)}.chat-input::placeholder{color:var(--text-muted)}.chat-send{width:2.5rem;height:2.5rem;border-radius:var(--radius-sm);border:none;background:var(--accent);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s,opacity .2s}.chat-send:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 85%,#fff)}.chat-send:disabled{opacity:.5;cursor:not-allowed}.chat-send svg{width:1.1rem;height:1.1rem}@media (max-width: 480px){.chat-widget{bottom:1rem;right:1rem}.chat-panel{width:calc(100vw - 2rem);height:min(480px,calc(100vh - 6rem))}}
