@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=DM+Sans:wght@400;500;600;700&family=Fira+Code:wght@400;500&display=swap";:root{--bg-primary: #0a0a0a;--bg-secondary: #111111;--bg-card: #161616;--bg-card-hover: #1a1a1a;--border-subtle: #2a2a2a;--border-accent: #333333;--text-primary: #f5f5f5;--text-secondary: #a0a0a0;--text-muted: #666666;--text-accent: #e0e0e0;--accent-primary: #d4a574;--accent-secondary: #b8956a;--accent-glow: rgba(212, 165, 116, .15);--success: #4ade80;--error: #f87171;--font-display: "Playfair Display", Georgia, serif;--font-body: "DM Sans", -apple-system, sans-serif;--font-mono: "Fira Code", monospace;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--space-4xl: 6rem;--transition-fast: .15s ease;--transition-base: .3s ease;--transition-smooth: .5s cubic-bezier(.4, 0, .2, 1);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.cursor-dot,.cursor-outline{position:fixed;top:0;left:0;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;z-index:9999;opacity:0;transition:opacity var(--transition-base)}.cursor-dot{width:8px;height:8px;background:var(--accent-primary)}.cursor-outline{width:40px;height:40px;border:1px solid var(--accent-primary);transition:transform .2s ease,opacity var(--transition-base),width .3s ease,height .3s ease}body.cursor-active .cursor-dot,body.cursor-active .cursor-outline{opacity:1}body.cursor-hover .cursor-outline{width:60px;height:60px;border-color:var(--accent-secondary)}::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(--border-accent);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-lg)}.app{min-height:100vh;position:relative}.background-effects{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.bg-gradient{position:absolute;width:800px;height:800px;border-radius:50%;background:radial-gradient(circle,rgba(212,165,116,.03) 0%,transparent 70%);filter:blur(60px);animation:float 20s ease-in-out infinite}.bg-gradient-1{top:-20%;left:-10%}.bg-gradient-2{bottom:-30%;right:-20%;animation-delay:-10s}.bg-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:60px 60px;-webkit-mask-image:radial-gradient(ellipse at center,black 0%,transparent 70%);mask-image:radial-gradient(ellipse at center,black 0%,transparent 70%)}@keyframes float{0%,to{transform:translate(0) rotate(0)}33%{transform:translate(30px,-30px) rotate(5deg)}66%{transform:translate(-20px,20px) rotate(-3deg)}}.main-content{position:relative;z-index:1}.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:var(--space-lg) 0;background:#0a0a0acc;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid transparent;transition:all var(--transition-smooth)}.nav.scrolled{background:#0a0a0af2;border-bottom-color:var(--border-subtle);padding:var(--space-md) 0}.nav-container{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:0 var(--space-lg)}.nav-logo{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--text-primary);text-decoration:none;letter-spacing:-.02em}.nav-logo span{color:var(--accent-primary)}.nav-links{display:flex;gap:var(--space-xl);list-style:none}.nav-link{font-size:.9rem;font-weight:500;color:var(--text-secondary);text-decoration:none;position:relative;transition:color var(--transition-fast)}.nav-link:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--accent-primary);transition:width var(--transition-base)}.nav-link:hover,.nav-link.active{color:var(--text-primary)}.nav-link:hover:after,.nav-link.active:after{width:100%}.nav-mobile-toggle{display:none;background:none;border:none;color:var(--text-primary);font-size:1.5rem;cursor:pointer}.hero{min-height:100vh;display:flex;align-items:center;padding:var(--space-4xl) 0;position:relative;overflow:hidden}.hero>.container{position:relative;z-index:1}.hero-layout{width:100%}.hero-content{max-width:580px}.hero-visual-wrapper{position:absolute;right:8%;top:0;height:100vh;display:flex;align-items:center;justify-content:center;z-index:1;animation:heroVisualFadeIn .8s ease .3s both}@keyframes heroVisualFadeIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.hero-visual{position:relative;width:340px;height:340px;display:flex;align-items:center;justify-content:center}.hero-ring{position:absolute;border-radius:50%;border:1px solid;pointer-events:none}.hero-ring-outer{width:320px;height:320px;border-color:#d4a5741f;animation:spin-slow 30s linear infinite}.hero-ring-mid{width:240px;height:240px;border-color:#d4a57414;animation:spin-slow 20s linear infinite reverse}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.hero-code-card{position:relative;z-index:2;background:var(--bg-card);border:1px solid var(--border-accent);border-radius:var(--radius-lg);width:200px;box-shadow:0 0 40px #d4a57414,0 20px 60px #00000080;overflow:hidden}.hero-code-header{display:flex;align-items:center;gap:6px;padding:10px 14px;background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle)}.hero-code-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.hero-code-filename{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted);margin-left:auto}.hero-code-body{padding:14px;font-family:var(--font-mono);font-size:.75rem;line-height:1.8}.hero-code-line{white-space:pre}.hero-code-line.indent{padding-left:1.2rem}.code-kw{color:#c792ea}.code-var{color:#82aaff}.code-key{color:#d4a574}.code-str{color:#c3e88d}.code-num{color:#f78c6c}.code-bool{color:#89ddff}.code-fn{color:#82aaff}.hero-orbit-container{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.hero-orbit-badge{position:absolute;top:50%;left:50%;font-family:var(--font-mono);font-size:.65rem;font-weight:500;padding:4px 10px;background:var(--bg-secondary);border:1px solid;border-radius:var(--radius-xl);white-space:nowrap;box-shadow:0 4px 12px #0006;pointer-events:none;transition:opacity .3s}.hero-visual-status{position:absolute;bottom:-20px;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:var(--bg-card);border:1px solid var(--border-accent);border-radius:var(--radius-xl);font-size:.75rem;color:var(--text-secondary);white-space:nowrap;box-shadow:0 4px 20px #0000004d}.hero-visual-status-dot{width:6px;height:6px;background:var(--accent-primary);border-radius:50%;animation:pulse 2s ease-in-out infinite}@media(max-width:960px){.hero-visual-wrapper{display:none}}.hero-label{display:inline-flex;align-items:center;gap:var(--space-sm);font-size:.85rem;font-weight:500;color:var(--accent-primary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-lg);padding:var(--space-sm) var(--space-md);background:var(--accent-glow);border-radius:var(--radius-xl)}.hero-label-dot{width:6px;height:6px;background:var(--accent-primary);border-radius:50%;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.hero-title{font-family:var(--font-display);font-size:clamp(3rem,8vw,5rem);font-weight:600;line-height:1.1;color:var(--text-primary);margin-bottom:var(--space-lg);letter-spacing:-.02em}.hero-title-accent{color:var(--accent-primary);font-style:italic}.hero-subtitle{font-size:1.25rem;color:var(--text-secondary);margin-bottom:var(--space-xl);max-width:600px}.hero-typed-text{font-family:var(--font-mono);font-size:1rem;color:var(--accent-primary);background:var(--accent-glow);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);display:inline}.hero-actions{display:flex;gap:var(--space-md);margin-top:var(--space-xl);flex-wrap:wrap}.hero-stats{display:flex;gap:var(--space-2xl);margin-top:var(--space-3xl);padding-top:var(--space-xl);border-top:1px solid var(--border-subtle)}.hero-stat{text-align:left}.hero-stat-number{font-family:var(--font-display);font-size:2rem;font-weight:600;color:var(--text-primary)}.hero-stat-label{font-size:.85rem;color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);font-family:var(--font-body);font-size:.95rem;font-weight:500;text-decoration:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);border:none}.btn-primary{background:var(--accent-primary);color:var(--bg-primary)}.btn-primary:hover{background:var(--accent-secondary);transform:translateY(-2px);box-shadow:0 8px 30px #d4a5744d}.btn-secondary{background:transparent;color:var(--text-primary);border:1px solid var(--border-accent)}.btn-secondary:hover{border-color:var(--accent-primary);background:var(--accent-glow)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{color:var(--text-primary)}.section{padding:var(--space-4xl) 0}.section-header{text-align:center;margin-bottom:var(--space-3xl)}.section-label{font-size:.8rem;font-weight:600;color:var(--accent-primary);text-transform:uppercase;letter-spacing:.15em;margin-bottom:var(--space-md)}.section-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-md)}.section-subtitle{font-size:1.1rem;color:var(--text-secondary);max-width:600px;margin:0 auto}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-lg)}.skill-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-xl);transition:all var(--transition-base)}.skill-card:hover{border-color:var(--border-accent);transform:translateY(-4px);box-shadow:0 20px 40px #0000004d}.skill-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:var(--space-md);background:var(--accent-glow);border-radius:var(--radius-md);color:var(--accent-primary)}.skill-category{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-md)}.skill-items{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.skill-tag{font-size:.85rem;color:var(--text-secondary);padding:var(--space-xs) var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-xl);border:1px solid var(--border-subtle);transition:all var(--transition-fast)}.skill-tag:hover{border-color:var(--accent-primary);color:var(--text-primary)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:var(--space-xl)}.project-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-base)}.project-card:hover{border-color:var(--border-accent);transform:translateY(-8px);box-shadow:0 24px 48px #0006}.project-image{width:100%;height:200px;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-card) 100%);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.project-image:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(45deg,var(--accent-glow) 0%,transparent 100%)}.project-image-icon{font-size:3rem;color:var(--accent-primary);opacity:.5}.project-content{padding:var(--space-xl)}.project-title{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-md)}.project-desc{font-size:.95rem;color:var(--text-secondary);margin-bottom:var(--space-lg);line-height:1.7}.project-tags{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-lg)}.project-tag{font-size:.75rem;font-family:var(--font-mono);color:var(--accent-primary);padding:var(--space-xs) var(--space-sm);background:var(--accent-glow);border-radius:var(--radius-sm)}.project-link{display:inline-flex;align-items:center;gap:var(--space-sm);font-size:.9rem;font-weight:500;color:var(--text-primary);text-decoration:none;transition:color var(--transition-fast)}.project-link:hover{color:var(--accent-primary)}.project-link-arrow{transition:transform var(--transition-fast)}.project-link:hover .project-link-arrow{transform:translate(4px)}.bento-section{padding:var(--space-4xl) 0}.bento-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md)}@media(max-width:900px){.bento-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:500px){.bento-grid{grid-template-columns:1fr}}.bento-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all var(--transition-base)}.bento-card:hover{border-color:var(--border-accent);transform:translateY(-2px)}.bento-card.full-width{grid-column:1 / -1}.bento-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-sm)}.bento-value{font-family:var(--font-display);font-size:1.75rem;font-weight:600;color:var(--text-primary)}.bento-value-accent{color:var(--accent-primary)}.bento-subtext{font-size:.85rem;color:var(--text-secondary);margin-top:var(--space-xs)}.bento-status{display:flex;align-items:center;gap:var(--space-md)}.bento-status-indicator{width:10px;height:10px;background:var(--success);border-radius:50%;box-shadow:0 0 0 4px #4ade8033;animation:pulse 2s ease-in-out infinite}.bento-location{font-size:.85rem;color:var(--text-secondary);background:var(--bg-secondary);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-xl)}.contact{text-align:center;padding:var(--space-4xl) 0}.contact-content{max-width:600px;margin:0 auto}.contact-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-md)}.contact-subtitle{font-size:1.1rem;color:var(--text-secondary);margin-bottom:var(--space-xl)}.contact-email{font-size:1.25rem;color:var(--accent-primary);text-decoration:none;display:inline-block;margin-bottom:var(--space-xl);transition:opacity var(--transition-fast)}.contact-email:hover{opacity:.8}.social-links{display:flex;justify-content:center;gap:var(--space-md);flex-wrap:wrap}.social-link{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);text-decoration:none;font-size:1rem;transition:all var(--transition-base)}.social-link:hover{border-color:var(--accent-primary);background:var(--accent-glow);color:var(--text-primary);transform:translateY(-4px)}.footer{padding:var(--space-xl) 0;border-top:1px solid var(--border-subtle);text-align:center}.footer-text{font-size:.85rem;color:var(--text-muted)}.footer-text span{color:var(--accent-primary)}.fade-in{opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}.fade-in.visible{opacity:1;transform:translateY(0)}.fade-in-delay-1{transition-delay:.1s}.fade-in-delay-2{transition-delay:.2s}.fade-in-delay-3{transition-delay:.3s}.fade-in-delay-4{transition-delay:.4s}@media(max-width:768px){.nav-links{display:none;position:fixed;top:70px;left:0;right:0;background:var(--bg-secondary);flex-direction:column;padding:var(--space-xl);gap:var(--space-lg);border-bottom:1px solid var(--border-subtle)}.nav-links.open{display:flex}.nav-mobile-toggle{display:block}.hero{padding:var(--space-3xl) 0 var(--space-2xl)}.hero-stats{flex-direction:column;gap:var(--space-lg)}.hero-actions{flex-direction:column}.btn{width:100%;text-align:center}.section{padding:var(--space-3xl) 0}.projects-grid,.bento-grid{grid-template-columns:1fr}}@media(max-width:480px){:root{font-size:14px}.hero-title{font-size:2.5rem}.section-title{font-size:1.75rem}}
