*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}:root{--bg:#07070f;--bg-card:rgba(255,255,255,.03);--border:rgba(255,255,255,.07);--border-hover:rgba(0,217,255,.25);--primary:#00d9ff;--primary-dim:rgba(0,217,255,.08);--primary-glow:rgba(0,217,255,.18);--secondary:#8b5cf6;--secondary-dim:rgba(139,92,246,.08);--secondary-glow:rgba(139,92,246,.18);--orange:#f97316;--orange-dim:rgba(249,115,22,.08);--green:#22c55e;--green-dim:rgba(34,197,94,.08);--text:#f1f5f9;--text-muted:#94a3b8;--text-subtle:#475569;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--spacing-sm:1rem;--spacing-md:1.5rem;--spacing-lg:2rem;--spacing-xl:3rem;--spacing-2xl:5rem;--font-sans:'Inter' , system-ui , -apple-system , BlinkMacSystemFont , sans-serif;--font-mono:'JetBrains Mono' , 'Fira Code' , monospace;--shadow-md:0 8px 24px rgba(0,0,0,.5);--shadow-glow:0 0 28px rgba(0,217,255,.12);--transition:.3s cubic-bezier(.4,0,.2,1)}html{scroll-behavior:smooth;scroll-padding-top:80px;font-size:16px}html,body{cursor:auto}body{background-color:var(--bg);color:var(--text);font-family: var(--font-sans);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (hover:hover) and (pointer:fine){html,body{cursor:auto}}.skip-link{position:absolute;top:-100%;left:1rem;z-index:10000;padding:.65rem 1rem;background:var(--primary);color:#07070f;font-weight:600;font-size:.85rem;border-radius:var(--radius-sm);transition:top .2s ease}.skip-link:focus{top:1rem;outline:2px solid #fff;outline-offset:2px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--primary);border-radius:2px}::selection{background:var(--primary-glow);color:var(--primary)}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}ul{list-style:none}.scroll-progress{position:fixed;top:0;left:0;height:2px;width:0%;background:linear-gradient(90deg,var(--primary),var(--secondary));z-index:1001;transition:width .1s linear}.back-to-top[hidden]{display:none!important}.back-to-top:not([hidden]) {display:flex}.back-to-top{position:fixed;right:1.25rem;bottom:1.25rem;z-index:500;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:1px solid var(--border-hover);border-radius:var(--radius-md);background:rgba(13,13,26,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--primary);cursor:pointer;box-shadow:var(--shadow-md);transition:opacity var(--transition) , transform var(--transition) , border-color var(--transition) , box-shadow var(--transition)}.back-to-top:hover{border-color:var(--primary);box-shadow:var(--shadow-glow);color:var(--text)}.back-to-top:focus-visible{outline:2px solid var(--primary);outline-offset:3px}body.nav-open .back-to-top{opacity:0;pointer-events:none}@media (max-width:600px){.back-to-top{right:1rem;bottom:1rem}}.particles-canvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.82}.header{position:fixed;top:0;left:0;right:0;z-index:100;padding:0 var(--spacing-lg);transition:background var(--transition) , backdrop-filter var(--transition) , box-shadow var(--transition)}.header.scrolled{background:rgba(7,7,15,.88);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 1px 0 var(--border)}.nav{display:flex;align-items:center;justify-content:space-between;height:72px;max-width:1160px;margin:0 auto}.nav-logo{font-family: var(--font-mono);font-size:1.05rem;font-weight:500;color:var(--text);letter-spacing:.02em;transition:opacity var(--transition)}.nav-logo:hover{opacity:.8}.logo-brackets{color:var(--primary)}.nav-links{display:flex;align-items:center;gap:var(--spacing-md)}.nav-link{font-size:.88rem;font-weight:500;color:var(--text-muted);transition:color var(--transition);position:relative;padding-bottom:2px}.nav-link::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--primary);transition:width var(--transition)}.nav-link:hover,.nav-link.active{color:var(--text)}.nav-link:hover::after,.nav-link.active::after{width:100%}.nav-link--cta{color:var(--primary)!important;border:1px solid rgba(0,217,255,.4);padding:6px 16px;border-radius:var(--radius-sm);transition:background var(--transition) , border-color var(--transition)}.nav-link--cta::after{display:none}.nav-link--cta:hover{background:var(--primary-dim);border-color:var(--primary)}.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px}.toggle-bar{width:22px;height:1.5px;background:var(--text);display:block;transition:transform var(--transition) , opacity var(--transition)}.nav-mobile{display:none;flex-direction:column;padding:var(--spacing-sm) var(--spacing-lg);background:rgba(7,7,15,.96);backdrop-filter:blur(20px);border-top:1px solid var(--border)}.nav-mobile-link{padding:14px 0;font-size:1rem;font-weight:500;color:var(--text-muted);border-bottom:1px solid var(--border);transition:color var(--transition) , padding-left var(--transition)}.nav-mobile-link:last-child{border-bottom:none}.nav-mobile-link:hover{color:var(--primary);padding-left:8px}.nav-mobile.is-open{display:flex}@media (max-width:768px){.nav-links{display:none}.nav-toggle{display:flex}.header{padding:0 var(--spacing-sm)}.nav-toggle{min-width:44px;min-height:44px;align-items:center;justify-content:center}.nav-mobile-link{min-height:48px;display:flex;align-items:center}}body.nav-open{overflow:hidden}.reveal-up,.reveal-left{opacity:0;transition:opacity .65s cubic-bezier(.4,0,.2,1) , transform .65s cubic-bezier(.4,0,.2,1)}.reveal-up{transform:translateY(28px)}.reveal-left{transform:translateX(-28px)}.reveal-up.is-revealed,.reveal-left.is-revealed{opacity:1;transform:translate(0,0)}.stat-card.reveal-up,.project-card.reveal-up,.edu-card.reveal-up,.contact-card.reveal-up{transform:translateY(24px) scale(.97)}.stat-card.reveal-up.is-revealed,.project-card.reveal-up.is-revealed,.edu-card.reveal-up.is-revealed,.contact-card.reveal-up.is-revealed{transform:translateY(0) scale(1)}.stat-card.reveal-up.is-revealed:hover{transform:translateY(-3px) scale(1)}.project-card.reveal-up.is-revealed:hover{transform:translateY(-4px) scale(1)}.edu-card.reveal-up.is-revealed:hover{transform:translateY(-3px) scale(1)}.contact-card.reveal-up.is-revealed:hover{transform:translateY(-4px) scale(1)}.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}.project-icon,.edu-icon,.contact-icon,.skill-category-icon{transition:opacity .45s cubic-bezier(.4,0,.2,1) , transform .45s cubic-bezier(.34,1.15,.64,1)}.project-card:not(.is-revealed) .project-icon,
.edu-card:not(.is-revealed) .edu-icon,
.contact-card:not(.is-revealed) .contact-icon,
.skill-category:not(.is-revealed) .skill-category-icon {opacity:0;transform:scale(.82)}.project-card.is-revealed .project-icon,.edu-card.is-revealed .edu-icon,.contact-card.is-revealed .contact-icon,.skill-category.is-revealed .skill-category-icon{opacity:1;transform:scale(1);transition-delay:.14s}.project-card.is-revealed.delay-1 .project-icon,.edu-card.is-revealed.delay-1 .edu-icon,.contact-card.is-revealed.delay-1 .contact-icon{transition-delay:.24s}.project-card.is-revealed.delay-2 .project-icon,.edu-card.is-revealed.delay-2 .edu-icon,.contact-card.is-revealed.delay-2 .contact-icon{transition-delay:.34s}.project-card.is-revealed.delay-3 .project-icon,.edu-card.is-revealed.delay-3 .edu-icon,.contact-card.is-revealed.delay-3 .contact-icon{transition-delay:.44s}.project-card.is-revealed.delay-4 .project-icon,.edu-card.is-revealed.delay-4 .edu-icon,.contact-card.is-revealed.delay-4 .contact-icon{transition-delay:.54s}.project-card.is-revealed.delay-5 .project-icon,.edu-card.is-revealed.delay-5 .edu-icon,.contact-card.is-revealed.delay-5 .contact-icon{transition-delay:.64s}.skill-icon{transition:transform .4s cubic-bezier(.34,1.15,.64,1)}.skill-category.is-revealed .skill-item .skill-icon{transform:scale(.78)}.skill-category.is-revealed .skill-item:nth-child(1) .skill-icon {transform:scale(1);transition-delay:.13s}.skill-category.is-revealed .skill-item:nth-child(2) .skill-icon {transform:scale(1);transition-delay:.18s}.skill-category.is-revealed .skill-item:nth-child(3) .skill-icon {transform:scale(1);transition-delay:.23s}.skill-category.is-revealed .skill-item:nth-child(4) .skill-icon {transform:scale(1);transition-delay:.28s}.skill-category.is-revealed .skill-item:nth-child(5) .skill-icon {transform:scale(1);transition-delay:.33s}.skill-category.is-revealed .skill-item:nth-child(6) .skill-icon {transform:scale(1);transition-delay:.38s}.skill-category.is-revealed .skill-item:nth-child(7) .skill-icon {transform:scale(1);transition-delay:.43s}.skill-category.is-revealed .skill-item:nth-child(8) .skill-icon {transform:scale(1);transition-delay:.48s}.skill-category.is-revealed .skill-item:nth-child(n+9) .skill-icon {transform:scale(1);transition-delay:.53s}.stat-card.is-revealed .stat-number{display:inline-block;animation:statNumberPop .55s cubic-bezier(.34,1.15,.64,1) both}.stat-card.is-revealed.delay-1 .stat-number{animation-delay:.2s}.stat-card.is-revealed.delay-2 .stat-number{animation-delay:.3s}.stat-card.is-revealed.delay-3 .stat-number{animation-delay:.4s}@keyframes statNumberPop {
  from {
    opacity: 0.5;
    transform: scale(0.88);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:80px var(--spacing-lg) var(--spacing-2xl);overflow:hidden;z-index:1}.hero-content{max-width:800px;text-align:center;position:relative;z-index:2}.hero-greeting{font-family: var(--font-mono);font-size:.85rem;color:var(--primary);letter-spacing:.18em;text-transform:uppercase;margin-bottom:1rem}.hero-name{font-size:clamp(2.8rem,8vw,5.5rem);font-weight:800;line-height:1.05;letter-spacing:-.03em;background:linear-gradient(135deg,#fff 0%,#e2e8f0 40%,var(--primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:1rem}.hero-title{display:flex;align-items:center;justify-content:center;gap:.2em;font-family: var(--font-mono);font-size:clamp(.85rem,2.2vw,1.1rem);color:var(--text-muted);margin-bottom:1.75rem;min-height:1.8rem}.hero-title-prefix{color:var(--secondary);opacity:.7}.hero-typing{color:var(--text)}.cursor-blink{color:var(--primary);animation:blink 1s step-end infinite}@keyframes blink {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0; }
}.hero-description{font-size:clamp(.93rem,2vw,1.08rem);color:var(--text-muted);line-height:1.85;margin-bottom:2.5rem}.highlight{color:var(--primary);font-weight:500}.hero-location{display:block;margin-top:.75rem;font-size:.82rem;color:var(--text-subtle);font-family: var(--font-mono);letter-spacing:.04em}.hero-quote{display:block;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border)}.hero-quote-text{display:block;font-style:italic;color:var(--text-muted);line-height:1.6}.hero-quote-ref{display:block;margin-top:.35rem;font-size:.75rem;font-style:normal;font-family: var(--font-mono);color:var(--text-subtle);letter-spacing:.02em}.hero-cta{display:flex;gap:var(--spacing-sm);justify-content:center;flex-wrap:wrap;margin-bottom:2rem}.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 26px;border-radius:var(--radius-md);font-size:.9rem;font-weight:600;font-family: var(--font-sans);cursor:pointer;transition:all var(--transition);border:1px solid transparent;position:relative;overflow:hidden}.btn-primary{background:var(--primary);color:#07070f;border-color:var(--primary);box-shadow:0 0 18px var(--primary-glow)}.btn-primary:hover{background:#33e0ff;box-shadow:0 0 32px rgba(0,217,255,.35);transform:translateY(-2px)}.btn-outline{background:transparent;color:var(--text);border-color:var(--border)}.btn-outline:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-2px)}.hero-scroll{position:absolute;bottom:1.75rem;left:0;right:0;width:100%;display:flex;flex-direction:column;align-items:center;gap:8px;opacity:.72;font-size:.7rem;font-family: var(--font-mono);letter-spacing:.12em;color:var(--primary);text-transform:uppercase;z-index:2}.scroll-line{width:2px;height:48px;border-radius:1px;background:linear-gradient(to bottom,var(--primary),rgba(0,217,255,.08));box-shadow:0 0 12px rgba(0,217,255,.25);animation:scrollPulse 2.2s ease-in-out infinite}@keyframes scrollPulse {
  0%, 100% { transform: scaleY(1); opacity: 0.65; }
  50%       { transform: scaleY(0.75); opacity: 0.35; }
}.hero-glow{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none}.hero-glow-1{width:420px;height:420px;background:rgba(0,217,255,.08);top:5%;left:10%;animation:floatGlow1 9s ease-in-out infinite}.hero-glow-2{width:320px;height:320px;background:rgba(139,92,246,.08);bottom:15%;right:10%;animation:floatGlow2 11s ease-in-out infinite}@keyframes floatGlow1 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50%       { transform: translate(24px, -24px) scale(1.08); }
}@keyframes floatGlow2 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50%       { transform: translate(-24px, 24px) scale(0.92); }
}.section{position:relative;padding:var(--spacing-2xl) var(--spacing-lg);z-index:1}.section-alt{background: linear-gradient(180deg,
    transparent 0%,
    rgba(139, 92, 246, 0.025) 40%,
    rgba(139, 92, 246, 0.025) 60%,
    transparent 100%
  )}.container{max-width:1100px;margin:0 auto}.section-header{text-align:center;margin-bottom:var(--spacing-2xl)}.section-tag{font-family: var(--font-mono);font-size:.78rem;color:var(--primary);letter-spacing:.18em;text-transform:uppercase;margin-bottom:.5rem;display:block}.section-title{font-size:clamp(1.8rem,4vw,2.7rem);font-weight:700;letter-spacing:-.02em;line-height:1.2;margin-bottom:.75rem}.section-subtitle{color:var(--text-muted);font-size:.95rem}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-2xl);align-items:start}@media (max-width:768px){.about-grid{grid-template-columns:1fr;gap:var(--spacing-xl)}}.about-lead{font-size:1.1rem;line-height:1.75;color:var(--text);margin-bottom:var(--spacing-md)}.about-text p{color:var(--text-muted);margin-bottom:var(--spacing-sm);line-height:1.8}.about-text strong{color:var(--text)}.about-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--spacing-md)}.tag{font-family: var(--font-mono);font-size:.77rem;color:var(--primary);background:var(--primary-dim);border:1px solid rgba(0,217,255,.14);padding:4px 12px;border-radius:100px;white-space:nowrap;transition:background var(--transition) , border-color var(--transition)}.tag:hover{background:rgba(0,217,255,.13);border-color:rgba(0,217,255,.25)}.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm)}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-md) var(--spacing-sm);display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;transition:border-color var(--transition) , box-shadow var(--transition) , transform var(--transition)}.stat-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-glow);transform:translateY(-3px)}.stat-number{font-size:2.1rem;font-weight:800;background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1}.stat-plus{font-size:1.4rem}.stat-label{font-size:.78rem;color:var(--text-muted);font-weight:500;line-height:1.3}.skills-categories{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}@media (max-width:768px){.skills-categories{grid-template-columns:1fr}}.skill-category{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-lg);backdrop-filter:blur(8px);transition:border-color var(--transition) , box-shadow var(--transition) , transform var(--transition)}.skill-category:hover{border-color:var(--border-hover);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.skill-category-title{font-size:.82rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--spacing-md);display:flex;align-items:center;gap:8px}.skill-category-icon{color:var(--primary);display:flex;align-items:center}.skill-items{display:flex;flex-direction:column;gap:11px}.skill-item{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;min-height:22px;font-size:.88rem;color:var(--text-muted);transition:color var(--transition)}.skill-item:hover{color:var(--text)}.skill-category .skill-item{opacity:0;transform:translateY(10px);transition:opacity .45s cubic-bezier(.4,0,.2,1) , transform .45s cubic-bezier(.4,0,.2,1)}.skill-category.is-revealed .skill-item{opacity:1;transform:translateY(0)}.skill-category.is-revealed .skill-item:nth-child(1) {transition-delay:.05s}.skill-category.is-revealed .skill-item:nth-child(2) {transition-delay:.1s}.skill-category.is-revealed .skill-item:nth-child(3) {transition-delay:.15s}.skill-category.is-revealed .skill-item:nth-child(4) {transition-delay:.2s}.skill-category.is-revealed .skill-item:nth-child(5) {transition-delay:.25s}.skill-category.is-revealed .skill-item:nth-child(6) {transition-delay:.3s}.skill-category.is-revealed .skill-item:nth-child(7) {transition-delay:.35s}.skill-category.is-revealed .skill-item:nth-child(8) {transition-delay:.4s}.skill-category.is-revealed .skill-item:nth-child(n+9) {transition-delay:.45s}.about-text .tag{opacity:0;transform:translateY(6px);transition:opacity .4s ease , transform .4s ease , background var(--transition) , border-color var(--transition)}.about-text.is-revealed .tag{opacity:1;transform:translateY(0)}.about-text.is-revealed .tag:nth-child(1) {transition-delay:.08s}.about-text.is-revealed .tag:nth-child(2) {transition-delay:.14s}.about-text.is-revealed .tag:nth-child(3) {transition-delay:.2s}.about-text.is-revealed .tag:nth-child(4) {transition-delay:.26s}.about-text.is-revealed .tag:nth-child(5) {transition-delay:.32s}.about-text.is-revealed .tag:nth-child(6) {transition-delay:.38s}.about-text.is-revealed .tag:nth-child(7) {transition-delay:.44s}.about-text.is-revealed .tag:nth-child(8) {transition-delay:.5s}.skill-icons{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:18px;min-width:18px;flex-shrink:0}.skill-icons:has(.skill-icon:nth-child(2)) {width:auto;min-width:40px}.skill-icons:has(.skill-icon:nth-child(3)) {gap:3px;min-width:58px}.skill-icon{display:block;width:18px;height:18px;flex-shrink:0}.skill-label{font-weight:500;line-height:1.35}.skill-pair{display:inline-flex;align-items:center;gap:6px}.skill-sep{color:var(--text-muted);opacity:.45;font-weight:500;line-height:1}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md)}@media (max-width:1024px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.projects-grid{grid-template-columns:1fr}.hero{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.hero-cta{flex-direction:column;width:100%;max-width:320px;margin-left:auto;margin-right:auto}.hero-cta .btn{width:100%;justify-content:center}.section{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.contact-value{font-size:.8rem;word-break:break-word}}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;backdrop-filter:blur(8px);transition:border-color var(--transition) , box-shadow var(--transition) , transform var(--transition)}.project-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-glow);transform:translateY(-4px)}.project-card-inner{padding:var(--spacing-md);height:100%;display:flex;flex-direction:column;gap:12px}.project-header{display:flex;align-items:flex-start;justify-content:space-between}.project-icon{width:44px;height:44px;background:var(--primary-dim);border:1px solid rgba(0,217,255,.1);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0}.project-icon--secondary{background:var(--secondary-dim);border-color:rgba(139,92,246,.12);color:var(--secondary)}.project-icon--green{background:var(--green-dim);border-color:rgba(34,197,94,.12);color:var(--green)}.project-icon--orange{background:var(--orange-dim);border-color:rgba(249,115,22,.12);color:var(--orange)}.project-links{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.project-link{color:var(--text-subtle);transition:color var(--transition);display:flex;align-items:center}.project-link:hover{color:var(--primary)}.project-link--external{width:36px;height:36px;justify-content:center;flex-shrink:0;border:1px solid rgba(0,217,255,.25);border-radius:var(--radius-sm);color:var(--primary)}.project-link--external:hover{border-color:rgba(0,217,255,.5);background:var(--primary-dim)}.project-name{font-size:.98rem;font-weight:600;color:var(--text);line-height:1.3}.project-description{font-size:.86rem;color:var(--text-muted);line-height:1.65;flex:1}.project-meta{display:flex;align-items:center;gap:10px;margin-top:auto}.project-lang{font-family: var(--font-mono);font-size:.71rem;padding:3px 10px;border-radius:100px;font-weight:500}.project-lang--dart{background:rgba(0,180,216,.1);color:#00c4db;border:1px solid rgba(0,180,216,.18)}.project-lang--js{background:rgba(234,179,8,.1);color:#e8b800;border:1px solid rgba(234,179,8,.18)}.project-lang--java{background:rgba(249,115,22,.1);color:#f97316;border:1px solid rgba(249,115,22,.18)}.project-private-badge{display:inline-flex;align-items:center;gap:4px;font-family: var(--font-mono);font-size:.68rem;font-weight:600;color:var(--text-subtle);background:rgba(255,255,255,.04);border:1px solid var(--border);padding:3px 9px;border-radius:100px;letter-spacing:.05em}.project-lang--python{background:rgba(59,130,246,.1);color:#60a5fa;border:1px solid rgba(59,130,246,.18)}.project-lang--oracle{background:rgba(239,68,68,.1);color:#f87171;border:1px solid rgba(239,68,68,.18)}.project-lang--php{background:rgba(139,92,246,.1);color:#a78bfa;border:1px solid rgba(139,92,246,.18)}.project-lang--html{background:rgba(227,79,38,.1);color:#f06543;border:1px solid rgba(227,79,38,.18)}.project-lang--css{background:rgba(38,77,228,.1);color:#5b8def;border:1px solid rgba(38,77,228,.18)}.project-lang--laravel{background:rgba(248,113,113,.1);color:#fb7185;border:1px solid rgba(248,113,113,.18)}.project-lang--flutter{background:rgba(56,189,248,.1);color:#38bdf8;border:1px solid rgba(56,189,248,.18)}.project-lang--firebase{background:rgba(255,202,40,.1);color:#ffca28;border:1px solid rgba(255,202,40,.18)}.project-card--legacy{border-style:dashed;border-color:rgba(148,163,184,.2)}.project-card--legacy:hover{border-color:rgba(148,163,184,.35);box-shadow:0 0 24px rgba(148,163,184,.08)}.project-lang--legacy-tag{background:rgba(148,163,184,.1);color:var(--text-muted);border:1px solid rgba(148,163,184,.18)}.project-lang--interno{background:rgba(139,92,246,.1);color:var(--secondary);border:1px solid rgba(139,92,246,.18)}.project-lang--erp{background:rgba(249,115,22,.1);color:var(--orange);border:1px solid rgba(249,115,22,.18)}.project-lang--diversos{background:rgba(255,255,255,.04);color:var(--text-subtle);border:1px solid var(--border)}.project-card--more{background:transparent;border:1px dashed var(--border);min-height:220px}.project-card--more:hover{border-style:solid;border-color:var(--primary)}.project-more-link{display:flex;align-items:center;justify-content:center;min-height:220px;text-decoration:none}.project-more-content{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-subtle);transition:color var(--transition)}.project-card--more:hover .project-more-content{color:var(--primary)}.project-more-text{font-size:.88rem;font-weight:500;text-align:center;line-height:1.5}.project-more-arrow{font-size:1.2rem;transition:transform var(--transition)}.project-card--more:hover .project-more-arrow{transform:translateX(5px)}.education-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md);max-width:1000px;margin:0 auto}@media (max-width:900px){.education-grid{grid-template-columns:1fr 1fr}}@media (max-width:580px){.education-grid{grid-template-columns:1fr}}.edu-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-lg);display:flex;flex-direction:column;gap:14px;backdrop-filter:blur(8px);transition:border-color var(--transition) , box-shadow var(--transition) , transform var(--transition)}.edu-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-glow);transform:translateY(-3px)}.edu-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.edu-icon{width:50px;height:50px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.edu-icon--primary{background:var(--primary-dim);color:var(--primary);border:1px solid rgba(0,217,255,.14)}.edu-icon--secondary{background:var(--secondary-dim);color:var(--secondary);border:1px solid rgba(139,92,246,.14)}.edu-icon--orange{background:var(--orange-dim);color:var(--orange);border:1px solid rgba(249,115,22,.14)}.edu-badge{font-family: var(--font-mono);font-size:.68rem;padding:3px 10px;border-radius:100px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.edu-badge--grad{background:rgba(0,217,255,.1);color:var(--primary);border:1px solid rgba(0,217,255,.18)}.edu-badge--pos{background:rgba(139,92,246,.1);color:var(--secondary);border:1px solid rgba(139,92,246,.18)}.edu-badge--cursos{background:rgba(249,115,22,.1);color:var(--orange);border:1px solid rgba(249,115,22,.18)}.edu-title{font-size:1rem;font-weight:700;color:var(--text);line-height:1.35}.edu-school{font-size:.8rem;font-weight:600;color:var(--primary);margin-top:4px;line-height:1.4}.edu-desc{font-size:.85rem;color:var(--text-muted);line-height:1.65;flex:1}.edu-footer{margin-top:auto;padding-top:12px;border-top:1px solid var(--border)}.edu-status{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-family: var(--font-mono);font-weight:600}.edu-status--done{color:var(--green)}.edu-platforms{display:flex;flex-wrap:wrap;gap:6px}.edu-platform{font-family: var(--font-mono);font-size:.7rem;color:var(--text-subtle);background:rgba(255,255,255,.04);border:1px solid var(--border);padding:3px 8px;border-radius:6px;transition:color var(--transition) , border-color var(--transition)}.edu-card:hover .edu-platform{color:var(--text-muted);border-color:rgba(255,255,255,.1)}.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md);max-width:860px;margin:0 auto}@media (max-width:768px){.contact-grid{grid-template-columns:1fr}}.contact-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-lg) var(--spacing-md);display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;backdrop-filter:blur(8px);transition:border-color var(--transition) , box-shadow var(--transition) , transform var(--transition);cursor:pointer}.contact-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-glow);transform:translateY(-4px)}.contact-icon{width:58px;height:58px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;transition:opacity .45s cubic-bezier(.4,0,.2,1) , transform .45s cubic-bezier(.34,1.15,.64,1)}.contact-card.is-revealed:hover .contact-icon{transform:scale(1.06)}.contact-icon--email{background:var(--primary-dim);color:var(--primary);border:1px solid rgba(0,217,255,.14)}.contact-icon--whatsapp{background:var(--green-dim);color:var(--green);border:1px solid rgba(34,197,94,.14)}.contact-icon--github{background:rgba(255,255,255,.04);color:var(--text-muted);border:1px solid var(--border)}.contact-info{display:flex;flex-direction:column;gap:4px}.contact-label{font-size:.72rem;font-family: var(--font-mono);color:var(--text-subtle);text-transform:uppercase;letter-spacing:.12em}.contact-value{font-size:.88rem;font-weight:600;color:var(--text)}.contact-arrow{font-size:1rem;color:var(--text-subtle);transition:transform var(--transition) , color var(--transition)}.contact-card:hover .contact-arrow{transform:translateX(5px);color:var(--primary)}.ambient-glow-bottom{position:fixed;left:0;right:0;bottom:0;height:min(42vh,380px);pointer-events:none;z-index:0;overflow:hidden}.ambient-glow-bottom__orb{position:absolute;border-radius:50%;filter:blur(90px)}.ambient-glow-bottom__orb--cyan{width:min(480px,70vw);height:min(480px,70vw);background:rgba(0,217,255,.07);bottom:-35%;left:8%;animation:floatGlow1 12s ease-in-out infinite}.ambient-glow-bottom__orb--purple{width:min(400px,60vw);height:min(400px,60vw);background:rgba(139,92,246,.08);bottom:-30%;right:6%;animation:floatGlow2 14s ease-in-out infinite}.footer{border-top:1px solid var(--border);padding:var(--spacing-xl) var(--spacing-lg);position:relative;z-index:1}.footer-content{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-sm)}.footer-brand{font-family: var(--font-mono);font-size:1rem;font-weight:500}.footer-quote{flex:1 1 100%;margin:0;padding:0;max-width:36rem;text-align:center;border:none}.footer-quote p{margin:0 0 .35rem;font-size:.88rem;font-style:italic;line-height:1.55;color:var(--text-muted)}.footer-quote cite{font-size:.75rem;font-style:normal;font-family: var(--font-mono);color:var(--text-muted);letter-spacing:.02em}.footer-copy,.footer-made{font-size:.82rem;color:var(--text-muted)}.footer-made span{color:#ef4444}@media (max-width:600px){.footer-content{flex-direction:column;text-align:center}}:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:4px}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.particles-canvas,.ambient-glow-bottom{display:none}.reveal-up,.reveal-left{opacity:1;transform:none}.skill-category .skill-item,.about-text .tag{opacity:1;transform:none}.project-icon,.edu-icon,.contact-icon,.skill-category-icon,.skill-icon{opacity:1;transform:none}.stat-card.is-revealed .stat-number{animation:none;opacity:1;transform:none}.error-glow{animation:none}}.page-404{min-height:100dvh;display:flex;flex-direction:column;position:relative;overflow-x:hidden}.error-glow{position:fixed;border-radius:50%;filter:blur(90px);pointer-events:none;z-index:0}.error-glow-1{width:380px;height:380px;background:rgba(0,217,255,.06);top:8%;left:8%;animation:floatGlow1 9s ease-in-out infinite}.error-glow-2{width:280px;height:280px;background:rgba(139,92,246,.06);bottom:20%;right:8%;animation:floatGlow2 11s ease-in-out infinite}.error-header{position:relative;z-index:1;padding:var(--spacing-md) var(--spacing-lg);max-width:1160px;margin:0 auto;width:100%}.error-logo{font-family: var(--font-mono);font-size:1.05rem;font-weight:500;color:var(--text);letter-spacing:.02em;transition:opacity var(--transition);display:inline-block}.error-logo:hover{opacity:.8}.error-main{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);position:relative;z-index:1}.error-card{width:100%;max-width:520px;text-align:center;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-xl) var(--spacing-lg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-md)}.error-code{font-size:clamp(4.5rem,18vw,7rem);font-weight:800;line-height:1;margin-bottom:var(--spacing-sm);background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-family: var(--font-mono);letter-spacing:-.04em}.error-title{font-size:clamp(1.35rem,4vw,1.75rem);font-weight:700;color:var(--text);margin-bottom:var(--spacing-md)}.error-terminal{text-align:left;font-family: var(--font-mono);font-size:.78rem;line-height:1.65;background:rgba(0,0,0,.35);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-md)}.error-terminal-line{color:var(--text-muted);margin:0;word-break:break-word}.error-terminal-prompt{color:var(--green);margin-right:.35rem}.error-terminal-line--err{color:#f87171;margin-top:.35rem}.error-desc{font-size:.95rem;color:var(--text-muted);margin-bottom:var(--spacing-lg);line-height:1.6}.error-cta{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:center}.error-cta .btn{min-height:44px;min-width:44px}@media (max-width:480px){.error-card{padding:var(--spacing-lg) var(--spacing-md)}.error-cta .btn{width:100%;justify-content:center}}