:root{--primary-100: #eef2ff;--primary-200: #d1dafe;--primary-300: #a4bcfd;--primary-400: #818cf8;--primary-500: #178f0c;--primary-600: #3a56d4;--primary-700: #3344b8;--secondary-100: #e6e6ff;--secondary-200: #c8c8fa;--secondary-300: #a9a9f5;--secondary-400: #8080f0;--secondary-500: #3a0ca3;--secondary-600: #330986;--secondary-700: #280769;--accent-100: #e6f9ff;--accent-200: #ccf3ff;--accent-300: #99e6ff;--accent-400: #66d9ff;--accent-500: #4cc9f0;--accent-600: #33a1c9;--accent-700: #1a7a9f;--success-100: #e6fff0;--success-200: #ccffe0;--success-300: #99ffc2;--success-400: #66ffa3;--success-500: #2ecc71;--success-600: #25a75c;--success-700: #1c8347;--warning-100: #fff9e6;--warning-200: #fff3cc;--warning-300: #ffe699;--warning-400: #ffda66;--warning-500: #f39c12;--warning-600: #cc830f;--warning-700: #a66a0c;--error-100: #ffe6e6;--error-200: #ffcccc;--error-300: #ff9999;--error-400: #ff6666;--error-500: #e74c3c;--error-600: #c0392b;--error-700: #992d22;--neutral-100: #f5f5f5;--neutral-200: #e0e0e0;--neutral-300: #d4d4d4;--neutral-400: #a3a3a3;--neutral-500: #737373;--neutral-600: #525252;--neutral-700: #404040;--neutral-800: #262626;--neutral-900: #171717;--background: var(--neutral-100);--surface: #ffffff;--on-background: var(--neutral-900);--on-surface: var(--neutral-800);--subtle-text: var(--neutral-600);--border-color: var(--neutral-300);--shadow-color: rgba(0, 0, 0, .1);--code-bg: var(--neutral-200);--font-primary: "Inter", sans-serif;--font-code: "Fira Code", monospace;--space-1: .25rem;--space-2: .5rem;--space-3: 1rem;--space-4: 1.5rem;--space-5: 2rem;--space-6: 3rem;--space-7: 4rem;--space-8: 6rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: 1rem;--radius-full: 9999px;--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;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-loose: 1.75;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-bold: 700;--transition-fast: .2s;--transition-normal: .3s;--transition-slow: .5s;--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--z-below: -1;--z-normal: 0;--z-above: 1;--z-header: 100;--z-overlay: 200;--z-modal: 300;--z-popover: 400;--z-tooltip: 500}.dark-theme{--background: var(--neutral-900);--surface: var(--neutral-800);--on-background: var(--neutral-100);--on-surface: var(--neutral-200);--subtle-text: var(--neutral-400);--border-color: var(--neutral-700);--shadow-color: rgba(0, 0, 0, .5);--code-bg: var(--neutral-700)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-primary);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--on-background);background-color:var(--background);transition:background-color var(--transition-normal),color var(--transition-normal)}h1,h2,h3,h4,h5,h6{line-height:var(--line-height-tight);font-weight:var(--font-weight-bold)}a{color:var(--primary-500);text-decoration:none;transition:color var(--transition-normal)}a:hover{color:var(--primary-500)}.btn{display:inline-block;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);text-align:center;cursor:pointer;transition:all var(--transition-normal);border:none;outline:none}.btn-primary{background-color:var(--primary-500);color:#fff;border:2px solid transparent}.btn-primary:hover{color:var(--primary-500);background-color:#fff;border:2px solid var(--primary-500)}.btn-secondary{background-color:transparent;color:var(--primary-500);border:2px solid var(--primary-500)}.btn-secondary:hover{background-color:var(--primary-500);color:wheat;border-color:wheat}img{max-width:100%;height:auto}section{padding:var(--space-7) 0;position:relative}.section-title{font-size:var(--font-size-4xl);margin-bottom:var(--space-3);position:relative;display:inline-block}.section-title:after{content:"";position:absolute;left:0;bottom:-8px;width:60px;height:4px;background-color:var(--primary-500);border-radius:var(--radius-full)}.section-subtitle{font-size:var(--font-size-lg);color:var(--subtle-text);margin-bottom:var(--space-5)}.header{position:fixed;top:0;left:0;right:0;background-color:#f8f8ff;padding:var(--space-3) 0;transition:background-color var(--transition-normal),box-shadow var(--transition-normal);z-index:var(--z-header)}.header.scrolled{background-color:var(--surface);box-shadow:0 2px 10px var(--shadow-color)}.logo{font-family:var(--font-code);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.logo-bracket{color:var(--primary-500)}.logo-text{color:var(--on-background)}.nav-menu{list-style:none;display:flex;gap:var(--space-4)}.nav-link{color:var(--on-background);font-weight:var(--font-weight-medium);position:relative}.nav-link:after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;background-color:var(--primary-500);transition:width var(--transition-normal)}.nav-link:hover:after,.nav-link.active:after{width:100%}.mobile-menu-toggle{display:none;background:none;border:none;cursor:pointer}.bar{display:block;width:25px;height:3px;margin:5px auto;background-color:var(--on-background);transition:all var(--transition-normal)}.theme-toggle-container{position:fixed;top:var(--space-3);right:var(--space-3);z-index:var(--z-header)}#theme-toggle{background-color:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-full);width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 5px var(--shadow-color);transition:background-color var(--transition-normal)}#theme-toggle i{font-size:var(--font-size-lg);color:var(--on-surface);transition:opacity var(--transition-normal)}#theme-toggle .fa-sun,.dark-theme #theme-toggle .fa-moon{display:none}.dark-theme #theme-toggle .fa-sun{display:block}.code-window{background-color:var(--neutral-800);border-radius:var(--radius-md);overflow:hidden;box-shadow:0 8px 30px #0003;width:100%}.code-header{background-color:var(--neutral-700);padding:var(--space-2);display:flex;align-items:center}.code-dot{width:12px;height:12px;border-radius:50%;margin-right:6px}.code-dot:nth-child(1){background-color:#ff5f56}.code-dot:nth-child(2){background-color:#ffbd2e}.code-dot:nth-child(3){background-color:#27c93f}.code-title{margin-left:var(--space-2);color:var(--neutral-400);font-family:var(--font-code);font-size:var(--font-size-sm)}.code-content{padding:var(--space-3)}.code-content pre{margin:0;font-family:var(--font-code);font-size:var(--font-size-sm);line-height:1.6;color:var(--neutral-200);overflow-x:auto}.tag{display:inline-block;padding:var(--space-1) var(--space-2);background-color:var(--primary-100);color:var(--primary-700);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);margin-right:var(--space-1);margin-bottom:var(--space-1)}.dark-theme .tag{background-color:var(--primary-900);color:var(--primary-300)}.form-group{margin-bottom:var(--space-3)}label{display:block;margin-bottom:var(--space-1);color:var(--on-background);font-weight:var(--font-weight-medium)}input,textarea{width:100%;padding:var(--space-2);border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--surface);color:var(--on-surface);font-family:var(--font-primary);font-size:var(--font-size-base);transition:border-color var(--transition-normal)}input:focus,textarea:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-200)}.error-message{display:none;color:var(--error-500);font-size:var(--font-size-sm);margin-top:var(--space-1)}.form-status{margin-top:var(--space-3);padding:var(--space-2);border-radius:var(--radius-md);text-align:center}.form-status.success{background-color:var(--success-100);color:var(--success-700)}.form-status.error{background-color:var(--error-100);color:var(--error-700)}.footer{background-color:var(--surface);padding:var(--space-5) 0;border-top:1px solid var(--border-color)}.footer-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center}.footer-logo{font-family:var(--font-code);font-size:var(--font-size-xl);margin-bottom:var(--space-2)}.footer-copyright{color:var(--subtle-text);font-size:var(--font-size-sm)}.footer-social{display:flex;gap:var(--space-3);margin-top:var(--space-2)}.social-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background-color:var(--primary-100);color:#000;border-radius:var(--radius-full);transition:all var(--transition-normal)}.dark-theme .social-link{background-color:var(--neutral-700);color:var(--primary-400)}.social-link:hover{background-color:var(--primary-500);color:#fff;transform:translateY(-3px)}.highlight{color:var(--primary-500);font-weight:var(--font-weight-bold)}.scroll-indicator{position:absolute;bottom:var(--space-4);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;opacity:.7;transition:opacity var(--transition-normal)}.scroll-indicator:hover{opacity:1}.mouse{width:30px;height:50px;border:2px solid var(--on-background);border-radius:20px;position:relative}.mouse-wheel{background-color:var(--on-background);width:4px;height:8px;border-radius:2px;position:absolute;top:10px;left:50%;transform:translate(-50%);animation:scroll 2s infinite}.scroll-indicator p{margin-top:var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.spinner{display:inline-block;width:24px;height:24px;border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s ease-in-out infinite}.cursor{display:inline-block;width:2px;height:1em;background-color:var(--primary-500);margin-left:4px;animation:blink 1s step-end infinite;vertical-align:text-bottom}.container{width:100%;max-width:var(--container-lg);margin:0 auto;padding:0 var(--space-3)}.hidden{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.header .container{display:flex;justify-content:space-between;align-items:center}.hero{min-height:100vh;display:flex;align-items:center;padding-top:var(--space-7);position:relative}.hero-content{display:flex;align-items:center;gap:var(--space-6)}.hero-text{flex:1}.hero-image{flex:1;display:flex;justify-content:center;align-items:center}.hero-title{font-size:var(--font-size-5xl);line-height:1.2;margin-bottom:var(--space-3)}.hero-title .line{display:block;font-size:var(--font-size-2xl);color:var(--subtle-text)}.hero-title .name{color:var(--primary-500)}.console{font-family:var(--font-code);background-color:var(--code-bg);padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-4);display:inline-flex;align-items:center}.console-prompt{color:var(--primary-500);margin-right:var(--space-1)}.console-text{color:var(--on-surface)}.hero-description{font-size:var(--font-size-lg);margin-bottom:var(--space-4);max-width:500px;line-height:var(--line-height-loose)}.hero-cta{display:flex;gap:var(--space-3)}.skills-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--space-4);margin-top:var(--space-5)}.skill-card{background-color:var(--surface);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:0 4px 10px var(--shadow-color);transition:transform var(--transition-normal),box-shadow var(--transition-normal);position:relative;overflow:hidden}.skill-card:before{content:"";position:absolute;top:0;left:0;width:5px;height:100%;background-color:var(--primary-500);transition:width var(--transition-normal)}.skill-card:hover{transform:translateY(-5px);box-shadow:0 8px 20px var(--shadow-color)}.skill-card:hover:before{width:100%;opacity:.1}.skill-icon{font-size:var(--font-size-4xl);color:var(--primary-500);margin-bottom:var(--space-3)}.skill-title{font-size:var(--font-size-xl);margin-bottom:var(--space-2)}.skill-level{margin-bottom:var(--space-3)}.progress-bar{width:100%;height:8px;background-color:var(--neutral-200);border-radius:var(--radius-full);overflow:hidden;margin-bottom:var(--space-1)}.progress{height:100%;background-color:var(--primary-500);border-radius:var(--radius-full)}.progress-text{font-size:var(--font-size-sm);color:var(--subtle-text);font-weight:var(--font-weight-medium)}.skill-description{font-size:var(--font-size-sm);line-height:var(--line-height-loose)}.timeline{position:relative;max-width:800px;margin:var(--space-6) auto}.timeline:before{content:"";position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);width:4px;background-color:var(--primary-200);border-radius:var(--radius-full)}.timeline-item{position:relative;margin-bottom:var(--space-7);width:100%}.timeline-item:after{content:attr(data-year);position:absolute;top:0;left:50%;transform:translate(-50%);background-color:var(--primary-500);color:#fff;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);font-family:var(--font-code);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm)}.timeline-content{position:relative;width:calc(50% - var(--space-4));background-color:var(--surface);padding:var(--space-4);border-radius:var(--radius-md);box-shadow:0 4px 10px var(--shadow-color)}.timeline-item:nth-child(odd) .timeline-content{margin-left:auto}.timeline-item:nth-child(odd) .timeline-content:before{content:"";position:absolute;top:10px;left:-12px;width:0;height:0;border-style:solid;border-width:10px 12px 10px 0;border-color:transparent var(--surface) transparent transparent}.timeline-item:nth-child(2n) .timeline-content:before{content:"";position:absolute;top:10px;right:-12px;width:0;height:0;border-style:solid;border-width:10px 0 10px 12px;border-color:transparent transparent transparent var(--surface)}.timeline-title{font-size:var(--font-size-xl);margin-bottom:var(--space-2)}.timeline-description{margin-bottom:var(--space-3);line-height:var(--line-height-loose)}.timeline-tags{display:flex;flex-wrap:wrap;gap:var(--space-1)}.about-content{display:flex;gap:var(--space-6);align-items:center;margin-top:var(--space-5)}.about-image{flex:1;display:flex;justify-content:center}.profile-placeholder{width:300px;height:300px;border-radius:50%;background-color:var(--primary-100);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-5xl);color:var(--primary-500);border:5px solid var(--primary-300)}.about-text{flex:2}.about-text h3{font-size:var(--font-size-2xl);margin-bottom:var(--space-3)}.about-text p{margin-bottom:var(--space-3);line-height:var(--line-height-loose)}.about-details{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4);margin-bottom:var(--space-4)}.detail-item{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm)}.detail-item i{color:var(--primary-500)}.social-links{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.contact-container{display:flex;gap:var(--space-6);margin-top:var(--space-5)}.contact-info{flex:1}.contact-card{background-color:var(--surface);border-radius:var(--radius-md);padding:var(--space-3);display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);box-shadow:0 4px 10px var(--shadow-color);transition:transform var(--transition-normal)}.contact-card:hover{transform:translateY(-3px)}.contact-icon{width:50px;height:50px;border-radius:var(--radius-full);background-color:var(--primary-100);display:flex;align-items:center;justify-content:center;color:var(--primary-500);font-size:var(--font-size-xl)}.contact-details h3{font-size:var(--font-size-lg);margin-bottom:var(--space-1)}.contact-form{flex:2;background-color:var(--surface);padding:var(--space-4);border-radius:var(--radius-md);box-shadow:0 4px 10px var(--shadow-color)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInLeft{0%{transform:translate(-50px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInRight{0%{transform:translate(50px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes scroll{0%{opacity:1;transform:translate(-50%) translateY(0)}75%{opacity:1;transform:translate(-50%) translateY(12px)}to{opacity:0;transform:translate(-50%) translateY(12px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.hero-title .line{animation:fadeIn .8s ease-out .4s both}.hero-title .name{animation:slideUp .8s ease-out .6s both}.console{animation:fadeIn .8s ease-out .8s both}.hero-description{animation:fadeIn .8s ease-out 1s both}.hero-cta{animation:fadeIn .8s ease-out 1.2s both}.hero-image{animation:slideInRight 1s ease-out .8s both}.fade-in{opacity:0;transform:translateY(30px);transition:opacity .8s ease-out,transform .8s ease-out}.fade-in.visible{opacity:1;transform:translateY(0)}.slide-left{opacity:0;transform:translate(-50px);transition:opacity .8s ease-out,transform .8s ease-out}.slide-left.visible{opacity:1;transform:translate(0)}.slide-right{opacity:0;transform:translate(50px);transition:opacity .8s ease-out,transform .8s ease-out}.slide-right.visible{opacity:1;transform:translate(0)}.skill-icon i{transition:transform var(--transition-normal)}.skill-card:hover .skill-icon i{transform:scale(1.2)}.mobile-menu-toggle.active .bar:nth-child(1){transform:translateY(8px) rotate(45deg)}.mobile-menu-toggle.active .bar:nth-child(2){opacity:0}.mobile-menu-toggle.active .bar:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.delay-1{transition-delay:.1s}.delay-2{transition-delay:.2s}.delay-3{transition-delay:.3s}.delay-4{transition-delay:.4s}.delay-5{transition-delay:.5s}.timeline-item{opacity:0;transform:translateY(30px);transition:opacity var(--transition-slow),transform var(--transition-slow)}.timeline-item.visible{opacity:1;transform:translateY(0)}.timeline-item:after{transform:translate(-50%) scale(0);transition:transform var(--transition-normal)}.timeline-item.visible:after{transform:translate(-50%) scale(1)}.btn{position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background-color:#fff3;border-radius:50%;transform:translate(-50%,-50%);transition:width .5s,height .5s}.btn:hover:after{width:200%;height:200%}@media only screen and (max-width: 576px){.section-title{font-size:var(--font-size-2xl)}.section-subtitle{font-size:var(--font-size-base)}.hero-title{font-size:var(--font-size-3xl)}.hero-title .line{font-size:var(--font-size-lg)}.console{padding:var(--space-2);width:100%}.code-window{display:none}.about-content,.contact-container{flex-direction:column}.profile-placeholder{width:200px;height:200px;margin-bottom:var(--space-4)}.contact-info,.contact-form{width:100%}.hero-cta{flex-direction:column;width:100%}.btn{width:100%;margin-bottom:var(--space-2)}.about-details{flex-direction:column;gap:var(--space-2)}}@media only screen and (max-width: 768px){.hero-content{flex-direction:column;text-align:center}.hero-text{order:2}.hero-image{order:1;margin-bottom:var(--space-4)}.timeline:before{left:20px}.timeline-item:after{left:20px;transform:translate(-50%)}.timeline-content{width:calc(100% - 50px);margin-left:40px}.timeline-item:nth-child(odd) .timeline-content:before,.timeline-item:nth-child(2n) .timeline-content:before{left:-12px;right:auto;border-width:10px 12px 10px 0;border-color:transparent var(--surface) transparent transparent}.nav-menu{position:fixed;top:70px;left:-100%;width:100%;padding:var(--space-3);background-color:var(--surface);box-shadow:0 10px 20px var(--shadow-color);flex-direction:column;align-items:center;transition:left var(--transition-normal);z-index:var(--z-header)}.nav-menu.active{left:0}.mobile-menu-toggle{display:block}}@media only screen and (min-width: 768px) and (max-width: 992px){.hero-content{gap:var(--space-4)}.hero-title{font-size:var(--font-size-4xl)}.skills-container{grid-template-columns:repeat(2,1fr)}.contact-container{gap:var(--space-4)}}@media only screen and (min-width: 992px){.container{max-width:var(--container-lg)}.skills-container{grid-template-columns:repeat(4,1fr)}}@media only screen and (min-width: 1200px){.container{max-width:var(--container-xl)}}@media only screen and (min-width: 769px){.mobile-menu-toggle{display:none}.nav-menu{display:flex}}@media only screen and (max-width: 350px){html{font-size:14px}.section-title{font-size:var(--font-size-xl)}.hero-title{font-size:var(--font-size-2xl)}.hero-title .line{font-size:var(--font-size-base)}.profile-placeholder{width:150px;height:150px}}
