:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a28;--text-primary: #e8e8f0;--text-secondary: #a8a8c0;--text-muted: #6a6a80;--accent: #8b5cf6;--accent-dark: #6d28d9;--accent-light: #a78bfa;--accent-glow: rgba(139, 92, 246, .3);--border-color: rgba(139, 92, 246, .2);--glass-bg: rgba(26, 26, 40, .6);--glass-border: rgba(139, 92, 246, .3);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-size-6xl: 4rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--spacing-4xl: 6rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 6px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .4);--shadow-glow: 0 0 20px var(--accent-glow);--duration-fast: .15s;--duration-normal: .3s;--duration-slow: .5s;--duration-slower: .8s;--easing-standard: cubic-bezier(.4, 0, .2, 1);--easing-decelerate: cubic-bezier(0, 0, .2, 1);--easing-accelerate: cubic-bezier(.4, 0, 1, 1);--easing-bounce: cubic-bezier(.68, -.55, .265, 1.55);--z-canvas: -1;--z-content: 1;--z-floating: 10;--z-controls: 100;--z-modal: 1000}[data-theme=light]{--bg-primary: #f8f8fb;--bg-secondary: #ffffff;--bg-tertiary: #e8e8f0;--text-primary: #1a1a28;--text-secondary: #4a4a60;--text-muted: #6a6a80;--accent: #7c3aed;--accent-dark: #5b21b6;--accent-light: #8b5cf6;--accent-glow: rgba(124, 58, 237, .2);--border-color: rgba(124, 58, 237, .2);--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(124, 58, 237, .2);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;overflow-x:hidden}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg-primary);overflow-x:hidden;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--text-primary)}h1{font-size:var(--font-size-5xl)}h2{font-size:var(--font-size-4xl)}h3{font-size:var(--font-size-3xl)}p{margin-bottom:var(--spacing-md)}a{color:var(--accent);text-decoration:none;transition:color var(--duration-fast) var(--easing-standard)}a:hover{color:var(--accent-light)}a:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--radius-sm)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-xl);text-align:center}.btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border:none;border-radius:var(--radius-full);cursor:pointer;transition:all var(--duration-normal) var(--easing-standard);text-decoration:none}.btn--primary{background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;box-shadow:var(--shadow-glow)}.btn--primary:hover{transform:translateY(-2px);-webkit-transform:translateY(-2px);-ms-transform:translateY(-2px);box-shadow:0 0 30px var(--accent-glow)}.btn--secondary{background:transparent;color:var(--accent);border:2px solid var(--accent)}.btn--secondary:hover{background:var(--accent);color:#fff;transform:translateY(-2px);-webkit-transform:translateY(-2px);-ms-transform:translateY(-2px)}.icon-btn{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-full);cursor:pointer;color:var(--text-primary);transition:all var(--duration-normal) var(--easing-standard);-webkit-transition:all var(--duration-normal) var(--easing-standard);-ms-transition:all var(--duration-normal) var(--easing-standard);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);position:relative}.icon-btn svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}.icon-btn:hover{background:var(--accent);color:#fff;transform:scale(1.1);-webkit-transform:scale(1.1);-ms-transform:scale(1.1)}.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:4px}#particle-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--z-canvas);pointer-events:none}main{position:relative;z-index:var(--z-content)}.section{min-height:100vh;padding:var(--spacing-4xl) 0;display:flex;align-items:center;justify-content:center}.section__title{font-size:var(--font-size-4xl);margin-bottom:var(--spacing-3xl);text-align:center;background:linear-gradient(135deg,var(--accent-light),var(--accent-dark));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;-ms-background-clip:text;position:relative;display:inline-block;z-index:1;color:var(--accent-light)}@media (max-width: 768px){.container{padding:0 var(--spacing-lg)}.section{min-height:auto;padding:var(--spacing-3xl) 0}.section__title{font-size:var(--font-size-3xl);margin-bottom:var(--spacing-2xl)}}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}::selection{background:var(--accent-glow);color:var(--text-primary)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--accent);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--accent-light)}.controls{position:fixed;top:var(--spacing-xl);right:var(--spacing-xl);z-index:var(--z-controls);display:flex;gap:var(--spacing-md);align-items:center}.toggle-btn{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-lg);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--duration-normal) var(--easing-standard);-webkit-transition:all var(--duration-normal) var(--easing-standard);-ms-transition:all var(--duration-normal) var(--easing-standard);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);text-transform:uppercase;letter-spacing:.05em}.toggle-btn:hover{border-color:var(--accent);color:var(--accent)}.toggle-btn[aria-pressed=true]{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--shadow-glow)}.toggle-indicator{width:8px}.sun-icon{display:none}.moon-icon,[data-theme=light] .sun-icon{display:block}[data-theme=light] .moon-icon{display:none}@media (max-width: 768px){.controls{top:var(--spacing-lg);right:var(--spacing-lg)}.toggle-label{display:none}}.hero{position:relative;min-height:100vh;display:flex;justify-content:center;flex-wrap:wrap}.hero__content{position:relative;z-index:var(--z-content);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl) var(--spacing-xl)}.hero__name{font-size:clamp(2.5rem,8vw,5rem);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--spacing-lg);line-height:var(--line-height-tight);opacity:1}.hero__name-first,.hero__name-last{display:inline-block;color:var(--text-primary);opacity:1}.hero__role{font-size:var(--font-size-xl);color:var(--text-secondary);margin-bottom:var(--spacing-2xl)}.hero__cta{display:flex;gap:var(--spacing-md);flex-wrap:wrap;justify-content:center}.floating-object{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:clamp(200px,30vw,400px);height:clamp(200px,30vw,400px);z-index:var(--z-floating);cursor:grab;-webkit-user-select:none;user-select:none;will-change:transform}.floating-object:active{cursor:grabbing}.floating-object svg{width:100%;height:100%;filter:drop-shadow(0 0 30px var(--accent-glow))}.scroll-indicator{position:absolute;bottom:var(--spacing-3xl);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);color:var(--text-muted);font-size:var(--font-size-sm);opacity:.6}.about__bio{font-size:var(--font-size-lg);color:var(--text-secondary);line-height:var(--line-height-relaxed);max-width:800px;margin:0 auto var(--spacing-3xl);text-align:center}.skills__title{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-2xl);text-align:center;color:var(--text-primary)}.skills__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-xl);max-width:1000px;margin:0 auto}.skill-category{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--spacing-xl);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all var(--duration-normal) var(--easing-standard);-webkit-transition:all var(--duration-normal) var(--easing-standard);-ms-transition:all var(--duration-normal) var(--easing-standard)}.skill-category:hover{transform:translateY(-4px);-webkit-transform:translateY(-4px);-ms-transform:translateY(-4px);border-color:var(--accent);box-shadow:var(--shadow-glow)}.skill-category__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-lg);color:var(--accent-light)}.skill-category__items{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.skill-tag{padding:var(--spacing-sm) var(--spacing-md);background:#8b5cf61a;border:1px solid rgba(139,92,246,.3);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--text-secondary);transition:all var(--duration-fast) var(--easing-standard)}.skill-tag:hover{background:#8b5cf633;color:var(--accent-light);transform:scale(1.05)}.projects{background:var(--bg-secondary)}.projects__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--spacing-2xl);max-width:1200px;margin:0 auto}.project-card{position:relative;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--spacing-xl);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);cursor:pointer;transition:all var(--duration-normal) var(--easing-standard);-webkit-transition:all var(--duration-normal) var(--easing-standard);-ms-transition:all var(--duration-normal) var(--easing-standard);will-change:transform}.project-card:hover{transform:translateY(-8px);-webkit-transform:translateY(-8px);-ms-transform:translateY(-8px);border-color:var(--accent);box-shadow:var(--shadow-glow)}.project-card:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.project-card__title{font-size:var(--font-size-xl);margin-bottom:var(--spacing-md);color:var(--text-primary)}.project-card__description{font-size:var(--font-size-base);color:var(--text-secondary);line-height:var(--line-height-relaxed);margin-bottom:var(--spacing-lg)}.project-card__technologies{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.tech-tag{padding:.375rem .75rem;background:#8b5cf626;border:1px solid rgba(139,92,246,.3);border-radius:var(--radius-md);font-size:var(--font-size-xs);color:var(--accent-light);font-weight:var(--font-weight-medium)}@media (max-width: 768px){.projects__grid{grid-template-columns:1fr}}.contact{background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);text-align:center}.contact__text{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-3xl);max-width:600px;margin-left:auto;margin-right:auto}.contact__links{display:flex;gap:var(--spacing-lg);justify-content:center;flex-wrap:wrap}.contact__link{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-full);color:var(--text-primary);font-weight:var(--font-weight-medium);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all var(--duration-normal) var(--easing-standard);-webkit-transition:all var(--duration-normal) var(--easing-standard);-ms-transition:all var(--duration-normal) var(--easing-standard)}.contact__link:hover{background:var(--accent);color:#fff;transform:translateY(-4px);-webkit-transform:translateY(-4px);-ms-transform:translateY(-4px);box-shadow:var(--shadow-glow)}.footer{padding:var(--spacing-2xl);text-align:center;color:var(--text-muted);font-size:var(--font-size-sm);background:var(--bg-primary);border-top:1px solid var(--border-color)}.modal{position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg)}.modal[hidden]{display:none}.modal__overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.modal__container{position:relative;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;background:var(--bg-secondary);border:1px solid var(--accent);border-radius:var(--radius-xl);padding:var(--spacing-3xl);box-shadow:0 20px 60px #00000080}.modal__close{position:absolute;top:var(--spacing-lg);right:var(--spacing-lg);width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-full);color:var(--text-primary);cursor:pointer;transition:all var(--duration-fast) var(--easing-standard)}.modal__close:hover{background:var(--accent);color:#fff;transform:rotate(90deg)}.modal__title{font-size:var(--font-size-3xl);margin-bottom:var(--spacing-lg);color:var(--accent-light)}.modal__description{font-size:var(--font-size-lg);color:var(--text-secondary);line-height:var(--line-height-relaxed);margin-bottom:var(--spacing-xl)}.modal__technologies{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl)}.modal__highlights{list-style:none;margin-bottom:var(--spacing-2xl)}.modal__highlights li{padding:var(--spacing-md);margin-bottom:var(--spacing-sm);background:#8b5cf60d;border-left:3px solid var(--accent);border-radius:var(--radius-sm);color:var(--text-secondary)}.modal__highlights li:before{content:"→ ";color:var(--accent);font-weight:700;margin-right:var(--spacing-sm)}.modal__actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap}@media (max-width: 768px){.modal__container{padding:var(--spacing-2xl)}.modal__title{font-size:var(--font-size-2xl);padding-right:var(--spacing-3xl)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@-webkit-keyframes bounce{0%,to{-webkit-transform:translateY(0);transform:translateY(0)}50%{-webkit-transform:translateY(-10px);transform:translateY(-10px)}}@-ms-keyframes bounce{0%,to{-ms-transform:translateY(0);transform:translateY(0)}50%{-ms-transform:translateY(-10px);transform:translateY(-10px)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.2)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@-webkit-keyframes slideUp{0%{opacity:0;-webkit-transform:translateY(30px);transform:translateY(30px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-ms-keyframes slideUp{0%{opacity:0;-ms-transform:translateY(30px);transform:translateY(30px)}to{opacity:1;-ms-transform:translateY(0);transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@-webkit-keyframes float{0%,to{-webkit-transform:translateY(0px);transform:translateY(0)}50%{-webkit-transform:translateY(-20px);transform:translateY(-20px)}}@-ms-keyframes float{0%,to{-ms-transform:translateY(0px);transform:translateY(0)}50%{-ms-transform:translateY(-20px);transform:translateY(-20px)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes glowPulse{0%,to{box-shadow:0 0 20px var(--accent-glow)}50%{box-shadow:0 0 40px var(--accent-glow),0 0 60px var(--accent-glow)}}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@-ms-keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@-webkit-keyframes modalSlideIn{0%{opacity:0;-webkit-transform:scale(.9) translateY(20px);transform:scale(.9) translateY(20px)}to{opacity:1;-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-ms-keyframes modalSlideIn{0%{opacity:0;-ms-transform:scale(.9) translateY(20px);transform:scale(.9) translateY(20px)}to{opacity:1;-ms-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}.modal{animation:modalFadeIn var(--duration-normal) var(--easing-decelerate);-webkit-animation:modalFadeIn var(--duration-normal) var(--easing-decelerate);-ms-animation:modalFadeIn var(--duration-normal) var(--easing-decelerate)}.modal__container{animation:modalSlideIn var(--duration-slow) var(--easing-bounce);-webkit-animation:modalSlideIn var(--duration-slow) var(--easing-bounce);-ms-animation:modalSlideIn var(--duration-slow) var(--easing-bounce)}.hero__name{animation:slideUp .8s var(--easing-decelerate) .2s forwards;-webkit-animation:slideUp .8s var(--easing-decelerate) .2s forwards;-ms-animation:slideUp .8s var(--easing-decelerate) .2s forwards;opacity:1}.hero__name-first,.hero__name-last{opacity:1;color:var(--text-primary)}.hero__role{animation:slideUp .8s var(--easing-decelerate) .4s forwards;-webkit-animation:slideUp .8s var(--easing-decelerate) .4s forwards;-ms-animation:slideUp .8s var(--easing-decelerate) .4s forwards}.hero__cta{animation:slideUp .8s var(--easing-decelerate) .6s forwards;-webkit-animation:slideUp .8s var(--easing-decelerate) .6s forwards;-ms-animation:slideUp .8s var(--easing-decelerate) .6s forwards}.floating-object{animation:float 6s ease-in-out infinite;-webkit-animation:float 6s ease-in-out infinite;-ms-animation:float 6s ease-in-out infinite}.section--animate{opacity:0;transform:translateY(30px);-webkit-transform:translateY(30px);-ms-transform:translateY(30px);transition:opacity .8s var(--easing-decelerate),transform .8s var(--easing-decelerate);-webkit-transition:opacity .8s var(--easing-decelerate),-webkit-transform .8s var(--easing-decelerate);-ms-transition:opacity .8s var(--easing-decelerate),-ms-transform .8s var(--easing-decelerate)}.section--visible{opacity:1;transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0)}.project-card{opacity:0;transform:translateY(30px);-webkit-transform:translateY(30px);-ms-transform:translateY(30px);transition:opacity .6s var(--easing-decelerate),transform .6s var(--easing-decelerate);-webkit-transition:opacity .6s var(--easing-decelerate),-webkit-transform .6s var(--easing-decelerate);-ms-transition:opacity .6s var(--easing-decelerate),-ms-transform .6s var(--easing-decelerate)}.project-card--visible{opacity:1;transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0)}.project-card:nth-child(1){transition-delay:.1s}.project-card:nth-child(2){transition-delay:.2s}.project-card:nth-child(3){transition-delay:.3s}.project-card:nth-child(4){transition-delay:.4s}.project-card:nth-child(5){transition-delay:.5s}.project-card:nth-child(6){transition-delay:.6s}.skill-category{opacity:0;transform:translateY(20px);-webkit-transform:translateY(20px);-ms-transform:translateY(20px);transition:opacity .6s var(--easing-decelerate),transform .6s var(--easing-decelerate);-webkit-transition:opacity .6s var(--easing-decelerate),-webkit-transform .6s var(--easing-decelerate);-ms-transition:opacity .6s var(--easing-decelerate),-ms-transform .6s var(--easing-decelerate)}.skill-category--visible{opacity:1;transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0)}.skill-category:nth-child(1){transition-delay:.1s}.skill-category:nth-child(2){transition-delay:.2s}.skill-category:nth-child(3){transition-delay:.3s}@media (prefers-reduced-motion: reduce){.floating-object{animation:none}.hero__name,.hero__role,.hero__cta,.section--animate,.project-card,.skill-category{animation:none;opacity:1;transform:none}.scroll-indicator svg{animation:none}.toggle-btn[aria-pressed=true] .toggle-indicator{animation:none}}
