@import "https://fonts.googleapis.com/css2?family=Caveat:wght@400;500;600;700&family=Sacramento&family=JetBrains+Mono:wght@300;400;500&family=Inter:wght@300;400;500;600&family=Merriweather:wght@300;400;700&display=swap";
*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0d0d11;--bg-secondary:#14141b;--bg-card:#ffffff08;--bg-hover:#ffffff0f;--text-primary:#e8e6e3;--text-secondary:#a0a0a0;--text-muted:#5a5a6a;--accent:#c9a55a;--accent-hover:#dbb86e;--accent-subtle:#c9a55a1a;--accent-glow:#c9a55a0f;--border:#ffffff0f;--border-light:#ffffff1a;--border-accent:#c9a55a33;--font-hand:"Caveat",cursive;--font-cursive:"Sacramento",cursive;--font-mono:"JetBrains Mono","Fira Code",monospace;--font-body:"JetBrains Mono",monospace;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.5rem;--space-2xl:3.5rem;--space-3xl:5rem;--space-4xl:7rem;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--glass-bg:#ffffff08;--glass-bg-hover:#ffffff0f;--glass-border:#ffffff12;--glass-blur:16px;--shadow-soft:0 4px 24px #0003;--shadow-glow:0 0 40px #c9a55a0a;--shadow-hover:0 8px 40px #0000004d;--transition-fast:.15s ease;--transition-base:.3s cubic-bezier(.4,0,.2,1);--transition-slow:.5s cubic-bezier(.4,0,.2,1);--max-width:1100px;--nav-height:68px;--navbar-bg:#0d0d11cc;--navbar-mobile-bg:#0d0d11f2}[data-theme=coffee]{--bg-primary:#1a1410;--bg-secondary:#211a14;--bg-card:#fff0dc0a;--bg-hover:#fff0dc12;--text-primary:#e8ddd0;--text-secondary:#b5a896;--text-muted:#6e6255;--accent:#c4956a;--accent-hover:#d4a87e;--accent-subtle:#c4956a1a;--accent-glow:#c4956a0f;--border:#fff0dc0f;--border-light:#fff0dc1a;--border-accent:#c4956a33;--glass-bg:#fff0dc08;--glass-bg-hover:#fff0dc0f;--glass-border:#fff0dc12;--shadow-glow:0 0 40px #c4956a0a;--navbar-bg:#1a1410d9;--navbar-mobile-bg:#1a1410f2}[data-theme=pastel]{--bg-primary:#1a1520;--bg-secondary:#201a28;--bg-card:#dcc8f00a;--bg-hover:#dcc8f012;--text-primary:#e8e0ef;--text-secondary:#b0a4be;--text-muted:#6a5f7a;--accent:#b088c4;--accent-hover:#c49ed6;--accent-subtle:#b088c41a;--accent-glow:#b088c40f;--border:#dcc8f00f;--border-light:#dcc8f01a;--border-accent:#b088c433;--glass-bg:#dcc8f008;--glass-bg-hover:#dcc8f00f;--glass-border:#dcc8f012;--shadow-glow:0 0 40px #b088c40a;--navbar-bg:#1a1520d9;--navbar-mobile-bg:#1a1520f2}[data-theme=forest]{--bg-primary:#0f1610;--bg-secondary:#151e16;--bg-card:#c8e6c80a;--bg-hover:#c8e6c812;--text-primary:#d8e0d4;--text-secondary:#9aac94;--text-muted:#556b52;--accent:#7da67d;--accent-hover:#92ba92;--accent-subtle:#7da67d1a;--accent-glow:#7da67d0f;--border:#c8e6c80f;--border-light:#c8e6c81a;--border-accent:#7da67d33;--glass-bg:#c8e6c808;--glass-bg-hover:#c8e6c80f;--glass-border:#c8e6c812;--shadow-glow:0 0 40px #7da67d0a;--navbar-bg:#0f1610d9;--navbar-mobile-bg:#0f1610f2}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--text-primary);cursor:none;min-height:100vh;font-size:.875rem;font-weight:400;line-height:1.7;transition:background-color .4s,color .4s;overflow-x:hidden}a{color:var(--accent);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-hover)}h1,h2{font-family:var(--font-hand);color:var(--text-primary);letter-spacing:.01em;font-weight:600;line-height:1.2}h3,h4,h5,h6{font-family:var(--font-mono);color:var(--text-primary);font-weight:500;line-height:1.4}h1{font-size:clamp(2.4rem,6vw,3.8rem)}h2{font-size:clamp(1.8rem,4vw,2.8rem)}h3{font-size:clamp(.95rem,2vw,1.15rem)}p{font-family:var(--font-body);color:var(--text-secondary);font-size:.85rem;line-height:1.8}code,pre{font-family:var(--font-mono)}.highlight{font-family:var(--font-cursive);color:var(--accent);font-size:1.3em;font-weight:400}::selection{background:var(--accent);color:var(--bg-primary)}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}@media (max-width:768px){body{font-size:.825rem}}
.navbar{height:var(--nav-height);background:var(--navbar-bg);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);z-index:100;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.navbar__logo,.navbar__link{cursor:none;background:0 0;border:none;text-decoration:none}.navbar__inner{max-width:var(--max-width);padding:0 var(--space-xl);justify-content:space-between;align-items:center;width:100%;margin:0 auto;display:flex}.navbar__logo{font-family:var(--font-hand);color:var(--text-primary);cursor:none;align-items:baseline;gap:0;font-size:1.6rem;font-weight:600;display:flex}.navbar__logo-accent{font-family:var(--font-cursive);color:var(--accent);font-size:1.8rem}.navbar__links{gap:var(--space-lg);list-style:none;display:flex}.navbar__link{font-family:var(--font-mono);color:var(--text-muted);transition:color var(--transition-base);padding:var(--space-xs)0;cursor:none;letter-spacing:.03em;font-size:.75rem;font-weight:400;position:relative}.navbar__link:after{content:"";background:var(--accent);width:0;height:1px;transition:width var(--transition-base);position:absolute;bottom:-2px;left:0}.navbar__link:hover,.navbar__link.active{color:var(--text-primary)}.navbar__link:hover:after,.navbar__link.active:after{width:100%}.navbar__toggle{cursor:none;padding:var(--space-xs);background:0 0;border:none;flex-direction:column;gap:5px;display:none}.navbar__toggle span{background:var(--text-primary);width:20px;height:1.5px;transition:all var(--transition-base);border-radius:2px}.navbar__toggle.open span:first-child{transform:rotate(45deg)translate(4px,5px)}.navbar__toggle.open span:nth-child(2){opacity:0}.navbar__toggle.open span:nth-child(3){transform:rotate(-45deg)translate(4px,-5px)}.navbar__mobile{top:var(--nav-height);background:var(--navbar-mobile-bg);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);padding:var(--space-lg)var(--space-xl);gap:var(--space-md);z-index:99;flex-direction:column;display:flex;position:fixed;left:0;right:0}.navbar__mobile .navbar__link{padding:var(--space-sm)0;color:var(--text-secondary);font-size:.85rem}@media (max-width:768px){.navbar__links{display:none}.navbar__toggle{display:flex}.navbar__inner{padding:0 var(--space-lg)}}
.theme-switcher{bottom:var(--space-xl);right:var(--space-xl);z-index:90;position:fixed}.theme-switcher__toggle{border:1px solid var(--border-light);background:var(--bg-secondary);width:40px;height:40px;color:var(--accent);cursor:none;transition:border-color var(--transition-base),box-shadow var(--transition-base);border-radius:50%;justify-content:center;align-items:center;display:flex}.theme-switcher__toggle:hover{border-color:var(--accent);box-shadow:0 0 20px var(--accent-glow)}.theme-switcher__palette{bottom:calc(100% + var(--space-sm));background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--space-sm);min-width:140px;box-shadow:var(--shadow-hover);flex-direction:column;gap:2px;display:flex;position:absolute;right:0}.theme-switcher__option{align-items:center;gap:var(--space-sm);padding:var(--space-sm)var(--space-md);border-radius:var(--radius-sm);cursor:none;transition:background var(--transition-fast);color:var(--text-secondary);background:0 0;border:none;display:flex}.theme-switcher__option:hover{background:var(--bg-hover)}.theme-switcher__option.active{background:var(--accent-subtle);color:var(--text-primary)}.theme-switcher__swatch{border:1px solid var(--border);border-radius:50%;flex-shrink:0;width:14px;height:14px}.theme-switcher__name{font-family:var(--font-mono);letter-spacing:.03em;font-size:.72rem}@media (max-width:480px){.theme-switcher{bottom:var(--space-lg);right:var(--space-lg)}}
.section-block{padding:var(--space-4xl)0;position:relative}.section-block+.section-block{border-top:1px solid var(--border)}.section-label{font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.15em;margin-bottom:var(--space-sm);font-size:.65rem}.section-title{margin-bottom:var(--space-2xl)}.container{max-width:var(--max-width);padding:0 var(--space-xl);margin:0 auto}.hero{min-height:calc(100vh - var(--nav-height));padding-top:var(--nav-height);text-align:center;justify-content:center;align-items:center;display:flex}.hero__content{align-items:center;gap:var(--space-md);flex-direction:column;display:flex}.hero__name{font-family:var(--font-mono);letter-spacing:-.03em;color:var(--text-primary);font-size:clamp(2.8rem,7vw,4.2rem);font-weight:500;line-height:1}.hero__name-accent{color:var(--accent)}.hero__typing-wrap{align-items:center;min-height:1.8rem;display:flex}.hero__typing{font-family:var(--font-mono);color:var(--text-secondary);font-size:clamp(.9rem,1.8vw,1.15rem);font-weight:400}.typing-cursor{color:var(--accent);margin-left:1px;font-weight:300;animation:.7s step-end infinite cursor-blink}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}.hero__tagline{font-family:var(--font-mono);color:var(--text-muted);max-width:500px;font-size:clamp(.72rem,1.3vw,.82rem);font-weight:300;line-height:1.7}.hero__location{align-items:center;gap:var(--space-sm);font-family:var(--font-mono);color:var(--text-muted);border:1px dashed var(--border);border-radius:var(--radius-xl);letter-spacing:.03em;padding:5px 16px;font-size:.7rem;display:inline-flex}.hero__location-dot{background:#4ade80;border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite pulse-dot;box-shadow:0 0 8px #4ade8066}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}.hero__scroll-hint{margin-top:var(--space-2xl);color:var(--text-muted);opacity:.5;font-size:1.2rem}.about__grid{gap:var(--space-3xl);grid-template-columns:1fr 1fr;align-items:start;display:grid}.about__text p{margin-bottom:var(--space-md)}.about__cards{gap:var(--space-md);flex-direction:column;display:flex}.about__card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-lg)var(--space-xl);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.about__card:hover{border-color:var(--border-accent);box-shadow:var(--shadow-soft)}.about__card-label{font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.1em;margin-bottom:2px;font-size:.65rem;display:block}.about__card-value{font-family:var(--font-mono);color:var(--text-primary);font-size:.85rem}.about__education{margin-top:var(--space-3xl)}.about__education h3{margin-bottom:var(--space-lg)}.about__edu-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-xl);margin-bottom:var(--space-md);transition:border-color var(--transition-base)}.about__edu-card:hover{border-color:var(--border-accent)}.about__edu-card h4{margin-bottom:var(--space-xs);font-size:.95rem}.about__edu-institution{color:var(--accent)!important;margin-bottom:var(--space-xs)!important;font-size:.78rem!important}.about__edu-year{color:var(--text-muted)!important;margin-bottom:var(--space-sm)!important;font-size:.7rem!important}.skills__group{margin-bottom:var(--space-2xl)}.skills__group h3{margin-bottom:var(--space-lg)}.skills__grid{gap:var(--space-sm);flex-wrap:wrap;display:flex}.projects__grid{gap:var(--space-lg);margin-bottom:var(--space-2xl);grid-template-columns:repeat(2,1fr);display:grid}.projects__mini-header{margin-bottom:var(--space-lg)}.projects__mini-grid{gap:var(--space-md);grid-template-columns:repeat(3,1fr);display:grid}.project-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-xl);gap:var(--space-sm);transition:border-color var(--transition-base),box-shadow var(--transition-base);cursor:none;flex-direction:column;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";background:linear-gradient(90deg,#0000 0%,#ffffff14 50%,#0000 100%);height:1px;position:absolute;top:0;left:0;right:0}.project-card:hover{border-color:var(--border-accent);box-shadow:var(--shadow-hover),var(--shadow-glow)}.project-card__title{font-family:var(--font-mono);color:var(--text-primary);font-size:1rem;font-weight:500}.project-card__desc{font-family:var(--font-mono);color:var(--text-secondary);flex:1;font-size:.8rem;line-height:1.7}.project-card__tags{gap:var(--space-xs);margin-top:var(--space-sm);flex-wrap:wrap;display:flex}.project-card--mini{padding:var(--space-lg)}.project-card--mini .project-card__title{font-size:.9rem}.project-card--mini .project-card__desc{font-size:.78rem}.timeline{margin-top:var(--space-xl);padding-left:var(--space-2xl);position:relative}.timeline:before{content:"";background:linear-gradient(180deg,var(--accent)0%,var(--border)100%);width:1px;position:absolute;top:0;bottom:0;left:6px}.timeline__item{padding-bottom:var(--space-2xl);position:relative}.timeline__item:last-child{padding-bottom:0}.timeline__dot{left:calc(-1*var(--space-2xl) + 2px);top:var(--space-sm);background:var(--accent);width:9px;height:9px;box-shadow:0 0 0 4px var(--bg-primary),0 0 12px var(--accent-glow);border-radius:50%;position:absolute}.timeline__card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-xl);transition:border-color var(--transition-base)}.timeline__card:hover{border-color:var(--border-accent)}.timeline__card h3{margin-bottom:var(--space-xs);font-size:1rem}.timeline__company{color:var(--accent)!important;margin-bottom:var(--space-xs)!important;font-size:.78rem!important}.timeline__period{color:var(--text-muted)!important;margin-bottom:var(--space-md)!important;font-size:.7rem!important}.timeline__highlights{gap:var(--space-sm);margin-top:var(--space-md);flex-direction:column;list-style:none;display:flex}.timeline__highlights li{font-family:var(--font-mono);color:var(--text-secondary);padding-left:var(--space-md);font-size:.75rem;line-height:1.6;position:relative}.timeline__highlights li:before{content:"▸";color:var(--accent);position:absolute;left:0}.contact__layout{gap:var(--space-3xl);grid-template-columns:1fr 1fr;align-items:start;display:grid}.contact__links{gap:var(--space-md);margin-top:var(--space-xl);flex-direction:column;display:flex}.contact__link-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-lg)var(--space-xl);transition:border-color var(--transition-base)}.contact__link-card:hover{border-color:var(--border-accent)}.contact__link-label{font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.1em;margin-bottom:2px;font-size:.65rem;display:block}.contact__link-value{font-family:var(--font-mono);color:var(--text-secondary);transition:color var(--transition-fast);font-size:.8rem}.contact__form{gap:var(--space-md);flex-direction:column;display:flex}.form-group{gap:var(--space-xs);flex-direction:column;display:flex}.form-group label{font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.65rem}.form-group input,.form-group textarea{padding:var(--space-md);background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-mono);transition:border-color var(--transition-base),box-shadow var(--transition-base);cursor:none;outline:none;font-size:.8rem}.form-group input:focus,.form-group textarea:focus{border-color:var(--border-accent);box-shadow:0 0 20px var(--accent-glow)}.form-group textarea{resize:vertical;min-height:120px}.form-submit{padding:var(--space-md)var(--space-xl);background:var(--accent);color:var(--bg-primary);border-radius:var(--radius-md);font-family:var(--font-mono);cursor:none;transition:all var(--transition-base);letter-spacing:.03em;border:none;align-self:flex-start;font-size:.8rem;font-weight:500}.form-submit:hover{background:var(--accent-hover);box-shadow:0 4px 20px var(--accent-glow);transform:translateY(-2px)}.footer{border-top:1px solid var(--border);padding:var(--space-lg)0;text-align:center}.footer p{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.05em;font-size:.65rem}.footer .highlight{font-family:var(--font-cursive);color:var(--accent);font-size:.95rem}.badge{font-family:var(--font-mono);background:var(--accent-subtle);color:var(--accent);border:1px solid var(--border-accent);border-radius:var(--radius-sm);cursor:none;letter-spacing:.02em;padding:.4rem .9rem;font-size:.78rem;font-weight:400;display:inline-block}.badge--outline{border-color:var(--border);color:var(--text-secondary);background:0 0}.badge--outline:hover{border-color:var(--border-accent);color:var(--accent)}.tag{font-family:var(--font-mono);color:var(--text-muted);background:var(--glass-bg);border:1px solid var(--border);border-radius:var(--radius-sm);white-space:nowrap;padding:.2rem .55rem;font-size:.68rem}@media (max-width:768px){.section-block{padding:var(--space-3xl)0}.container{padding:0 var(--space-lg)}.hero__name{font-size:clamp(2rem,10vw,3rem)}.about__grid{gap:var(--space-2xl);grid-template-columns:1fr}.projects__grid{grid-template-columns:1fr}.projects__mini-grid{grid-template-columns:repeat(2,1fr)}.contact__layout{gap:var(--space-2xl);grid-template-columns:1fr}.timeline{padding-left:var(--space-xl)}.timeline__dot{left:calc(-1*var(--space-xl) + 2px)}}@media (max-width:480px){.projects__mini-grid{grid-template-columns:1fr}.project-card{padding:var(--space-lg)}}@media (prefers-reduced-motion:reduce){.typing-cursor{opacity:1;animation:none}.hero__location-dot{animation:none}}
.layout{flex-direction:column;min-height:100vh;display:flex;position:relative}.layout>main{flex:1}.custom-cursor{border:1.5px solid var(--accent);pointer-events:none;z-index:9999;opacity:.7;border-radius:50%;width:20px;height:20px;transition:width .25s,height .25s,background .25s,border-color .25s,opacity .25s;position:fixed;transform:translate(-50%,-50%)}.custom-cursor.hovering{border-color:var(--accent-hover);opacity:1;background:#c9a55a14;width:40px;height:40px}.cursor-dot{background:var(--accent);pointer-events:none;z-index:10000;border-radius:50%;width:4px;height:4px;position:fixed;transform:translate(-50%,-50%)}@media (hover:none) and (pointer:coarse){.custom-cursor,.cursor-dot{display:none}body{cursor:auto}}.footer{border-top:1px solid var(--border);padding:var(--space-lg)0;text-align:center;margin-top:auto}.footer p{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.05em;font-size:.65rem}.footer .highlight{font-family:var(--font-cursive);color:var(--accent);font-size:.95rem}
