:root{--font-display: "DM Sans", system-ui, sans-serif;--font-body: "DM Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace;--accent-glow: #bd93f9;--accent-warm: #ffb86c;--accent-pink: #ff79c6;--surface-elevated: rgba(255, 255, 255, .03);--surface-border: rgba(255, 255, 255, .06);--text-muted: rgba(248, 248, 242, .55);--text-secondary: rgba(248, 248, 242, .75);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}html{font-family:var(--font-body);letter-spacing:-.01em}code,.font-mono{font-family:var(--font-mono)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes subtlePulse{0%,to{opacity:.4}50%{opacity:.7}}@keyframes typewriter-blink{0%,to{opacity:1}50%{opacity:0}}.animate-fade-up{animation:fadeInUp .7s var(--ease-out-expo) both}.animate-fade-in{animation:fadeIn .6s ease both}.animate-slide-left{animation:slideInLeft .6s var(--ease-out-expo) both}.stagger-1{animation-delay:.05s}.stagger-2{animation-delay:.12s}.stagger-3{animation-delay:.2s}.stagger-4{animation-delay:.3s}.stagger-5{animation-delay:.4s}.stagger-6{animation-delay:.5s}.stagger-7{animation-delay:.6s}.hero-label{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:var(--accent-glow)}.hero-name{font-family:var(--font-display);font-size:clamp(2.8rem,6vw,4.2rem);line-height:1.05;color:#f8f8f2}.hero-role{font-family:var(--font-display);font-style:italic;font-size:clamp(1.4rem,3vw,2rem);color:var(--text-secondary);line-height:1.3}.hero-bio{font-size:1.05rem;line-height:1.7;color:var(--text-secondary)}.hero-cursor{display:inline-block;width:2px;height:1.1em;background:var(--accent-glow);margin-left:2px;vertical-align:text-bottom;animation:typewriter-blink 1s step-end infinite}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem}.skill-category{padding:1.25rem;border-radius:12px;background:var(--surface-elevated);border:1px solid var(--surface-border);transition:all .35s var(--ease-out-expo)}.skill-category:hover{border-color:#bd93f926;background:#bd93f90a;transform:translateY(-2px)}.skill-category-label{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-glow);margin-bottom:.75rem}.skill-tag{display:inline-block;font-family:var(--font-mono);font-size:.78rem;padding:.25rem .6rem;border-radius:4px;background:#f8f8f20d;color:var(--text-secondary);margin:.2rem;transition:all .2s ease}.skill-tag:hover{background:#bd93f91f;color:#f8f8f2}.section-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.section-header h2{font-family:var(--font-display);font-size:1.75rem;white-space:nowrap}.section-line{flex:1;height:1px;background:linear-gradient(to right,var(--surface-border),transparent)}.section-number{font-family:var(--font-mono);font-size:.75rem;color:var(--accent-glow);opacity:.6}.project-card{display:grid;grid-template-columns:1fr;gap:0;border-radius:12px;background:var(--surface-elevated);border:1px solid var(--surface-border);overflow:hidden;transition:all .4s var(--ease-out-expo);text-decoration:none;color:inherit}@media (min-width: 640px){.project-card{grid-template-columns:200px 1fr}}.project-card:hover{border-color:#bd93f933;transform:translateY(-3px);box-shadow:0 16px 48px -12px #0006,0 0 0 1px #bd93f91a}.project-card-image{position:relative;overflow:hidden;aspect-ratio:16/10;background:#1e2029}@media (min-width: 640px){.project-card-image{aspect-ratio:auto;height:155px}}.project-card-image img{width:100%;height:100%;transition:transform .5s var(--ease-out-expo)}.project-card:hover .project-card-image img{transform:scale(1.05)}.project-card-body{padding:1.25rem 1.5rem;display:flex;flex-direction:column;justify-content:center;gap:.5rem}.project-card-title{font-family:var(--font-display);font-size:1.35rem;color:#f8f8f2;line-height:1.2;transition:color .2s ease}.project-card:hover .project-card-title{color:var(--accent-glow)}.project-card-desc{font-size:.9rem;color:var(--text-muted);line-height:1.5}.project-card-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.25rem}.project-card-tag{font-family:var(--font-mono);font-size:.7rem;padding:.2rem .5rem;border-radius:3px;background:#bd93f91a;color:var(--accent-glow);letter-spacing:.02em}.project-card-arrow{color:var(--text-muted);transition:all .3s var(--ease-out-expo);opacity:0;transform:translate(-4px)}.project-card:hover .project-card-arrow{opacity:1;transform:translate(0);color:var(--accent-glow)}.cta-strip{margin-top:3rem;padding:2rem;border-radius:12px;background:linear-gradient(135deg,#bd93f90f,#ff79c60a);border:1px solid rgba(189,147,249,.1);text-align:center}.cta-strip p{font-family:var(--font-display);font-style:italic;font-size:1.2rem;color:var(--text-secondary);margin-bottom:1rem}.cta-links{display:flex;justify-content:center;gap:1.5rem;flex-wrap:wrap}.cta-link{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.05em;color:var(--accent-glow);text-decoration:none;padding:.5rem 1.2rem;border-radius:6px;border:1px solid rgba(189,147,249,.25);transition:all .25s ease}.cta-link:hover{background:#bd93f91a;border-color:#bd93f980;transform:translateY(-1px)}.sidebar-name{font-family:var(--font-display);font-size:1.15rem;letter-spacing:-.01em;margin-top:.75rem}.sidebar-role{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#50fa7b;margin-right:6px;animation:subtlePulse 2.5s ease-in-out infinite}.time-line-container>div:last-child .education__time>.education__line{display:none}#WCVimage{height:400px;width:400px}.noise-overlay{position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.015;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
