@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--background: #09090b;--foreground: #fafafa;--card: #09090b;--card-border: #27272a;--muted: #27272a;--muted-foreground: #a1a1aa;--primary: #fafafa;--primary-foreground: #18181b;--radius: .5rem;--font-main: "Inter", sans-serif;--accent: #3272da}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--background);color:var(--foreground);font-family:var(--font-main);line-height:1.5;-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit;transition:.2s ease}button{font-family:inherit;cursor:pointer}.container{max-width:1280px;margin:0 auto;padding:0 2rem;width:100%}.app{min-height:100vh}.navbar{position:fixed;top:0;left:0;right:0;height:64px;background:#09090bd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--card-border);z-index:50;display:flex;align-items:center}.nav-inner{display:flex;justify-content:space-between;align-items:center}.logo{font-weight:700;font-size:1.1rem;letter-spacing:-.025em}.logo:hover{color:var(--accent)}.nav-links{display:flex;gap:.25rem}.nav-link{position:relative;background:none;border:none;padding:.4rem .75rem;font-size:.875rem;font-weight:500;color:var(--muted-foreground);border-radius:var(--radius);transition:color .15s}.nav-link:hover,.nav-link--active{color:var(--foreground)}.nav-link-dot{position:absolute;bottom:3px;left:50%;transform:translate(-50%);width:3px;height:3px;border-radius:50%;background:var(--accent)}.nav-right{display:flex;align-items:center;gap:.75rem}.nav-icon-btn{background:none;border:none;color:var(--muted-foreground);font-size:1.1rem;padding:.4rem;border-radius:var(--radius);transition:color .15s}.nav-icon-btn:hover{color:var(--foreground)}.language-toggle{display:inline-flex;align-items:center;gap:.15rem;border:1px solid var(--card-border);border-radius:var(--radius);background:#27272a73;padding:.15rem}.language-toggle-btn{min-width:34px;height:28px;border:none;border-radius:calc(var(--radius) - .15rem);background:transparent;color:var(--muted-foreground);font-size:.72rem;font-weight:700;transition:background .15s,color .15s}.language-toggle-btn:hover{color:var(--foreground)}.language-toggle-btn--active{background:var(--foreground);color:var(--background)}.nav-cta-btn{background:var(--primary);color:var(--primary-foreground);border:none;padding:.45rem 1rem;border-radius:var(--radius);font-size:.875rem;font-weight:500;transition:opacity .15s}.nav-cta-btn:hover{opacity:.8}.hamburger{display:none;background:none;border:none;color:var(--foreground);font-size:1.2rem}.mobile-menu{position:absolute;top:64px;left:0;right:0;overflow:hidden;background:var(--background);border-bottom:1px solid var(--card-border)}.mobile-menu-link{display:block;width:100%;padding:.85rem 2rem;font-size:.9rem;color:var(--muted-foreground);text-align:left;background:none;border:none;border-bottom:1px solid var(--card-border);transition:color .15s}.mobile-menu-link:hover{color:var(--foreground)}.mobile-menu-lang{display:flex;justify-content:flex-start;padding:.85rem 2rem}.language-toggle--mobile .language-toggle-btn{min-width:46px}.hero{padding:170px 0 100px}.hero-content{max-width:680px}.hero-badge{display:inline-flex;align-items:center;gap:.5rem;background:var(--muted);border:1px solid var(--card-border);color:var(--foreground);font-size:.75rem;font-weight:500;padding:.3rem .8rem;border-radius:9999px;margin-bottom:1.5rem}.badge-dot{width:6px;height:6px;background:#4ade80;border-radius:50%;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.hero-title{font-size:clamp(2.4rem,5.5vw,4rem);font-weight:700;letter-spacing:-.05em;line-height:1.1;margin-bottom:1.4rem}.text-gradient{background-size:200% auto;background-image:linear-gradient(90deg,#fff,#a1a1aa,#fff);background-clip:text;-webkit-background-clip:text;color:transparent;animation:shimmer 5s linear infinite}@keyframes shimmer{to{background-position:200% center}}.hero-desc{font-size:1.1rem;color:var(--muted-foreground);max-width:520px;line-height:1.65;margin-bottom:2.25rem}.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:3.5rem}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;background:var(--primary);color:var(--primary-foreground);padding:.65rem 1.35rem;border-radius:var(--radius);font-size:.925rem;font-weight:500;transition:opacity .15s}.btn-primary:hover{opacity:.8}.btn-outline{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--card-border);color:var(--foreground);padding:.65rem 1.35rem;border-radius:var(--radius);font-size:.925rem;font-weight:500;transition:background .15s}.btn-outline:hover{background:var(--muted)}.hero-stats{display:flex;align-items:center;gap:2.5rem}.stat-item{display:flex;flex-direction:column}.stat-num{font-size:1.5rem;font-weight:700;letter-spacing:-.04em}.stat-label{font-size:.78rem;color:var(--muted-foreground)}.stat-sep{width:1px;height:32px;background:var(--card-border)}.scroll-hint{display:flex;justify-content:flex-start;margin-top:4rem}.scroll-arrow{width:36px;height:36px;border:1px solid var(--card-border);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--muted-foreground);font-size:.9rem;transition:color .15s,border-color .15s,background .15s}.scroll-arrow:hover{color:var(--foreground);border-color:var(--muted-foreground);background:var(--muted)}.section{padding:80px 0}.section-heading{font-size:2rem;font-weight:700;letter-spacing:-.03em;margin-bottom:.4rem}.section-sub{color:var(--muted-foreground);font-size:1rem;margin-bottom:2.75rem}.section-eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:.5rem;display:block}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start}.about-text .section-heading{margin-bottom:1.25rem}.about-para{color:var(--muted-foreground);line-height:1.75;margin-bottom:1.1rem;font-size:.975rem}.about-links{display:flex;gap:.75rem;margin-top:1.75rem;flex-wrap:wrap}.about-link{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--card-border);color:var(--muted-foreground);padding:.5rem 1rem;border-radius:var(--radius);font-size:.875rem;font-weight:500;transition:color .15s,border-color .15s}.about-link:hover{color:var(--foreground);border-color:var(--muted-foreground)}.about-link--accent{border-color:var(--accent);color:var(--accent)}.about-link--accent:hover{color:var(--foreground);background:var(--accent);border-color:var(--accent)}.about-card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);overflow:hidden}.info-row{display:flex;align-items:center;gap:1rem;padding:1.1rem 1.25rem;border-bottom:1px solid var(--card-border)}.info-row:last-child{border-bottom:none}.info-icon{width:16px;color:var(--muted-foreground);font-size:.85rem;flex-shrink:0}.info-label{font-size:.75rem;color:var(--muted-foreground);display:block}.info-value{font-size:.9rem;font-weight:500;display:block}.info-value--green{color:#4ade80}.filter-bar{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:2.5rem}.filter-btn{padding:.35rem .9rem;border-radius:9999px;font-size:.8rem;font-weight:500;border:1px solid var(--card-border);color:var(--muted-foreground);background:none;transition:all .15s}.filter-btn:hover{color:var(--foreground);border-color:var(--muted-foreground)}.filter-btn--active{background:var(--foreground);color:var(--background);border-color:var(--foreground)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.pcard--featured:first-child{grid-column:span 2}.pcard{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:border-color .2s,transform .2s;display:flex;flex-direction:column}.pcard:hover{border-color:var(--muted-foreground);transform:translateY(-2px)}.pcard--featured{border-color:#3272da44}.pcard--featured:hover{border-color:var(--accent)}.featured-tag{display:inline-flex;align-items:center;gap:.35rem;font-size:.7rem;font-weight:600;letter-spacing:.06em;color:var(--accent);text-transform:uppercase;margin-bottom:.6rem}.pcard-img{position:relative;height:200px;background:#18181b;overflow:hidden}.pcard--featured .pcard-img{height:260px}.pcard-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.pcard:hover .pcard-img img{transform:scale(1.04)}.pcard-img-overlay{position:absolute;inset:0;background:#09090b99;opacity:0;transition:opacity .25s;display:flex;align-items:center;justify-content:center}.pcard:hover .pcard-img-overlay{opacity:1}.pcard-view{color:var(--foreground);font-size:.85rem;font-weight:500;border:1px solid rgba(255,255,255,.25);padding:.45rem 1rem;border-radius:var(--radius)}.pcard-body{padding:1.25rem 1.5rem 1.5rem;display:flex;flex-direction:column;flex:1}.pcard-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}.pcard-actions{display:flex;align-items:center;gap:.5rem}.pcard-cat{font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground)}.pcard-external{color:var(--muted-foreground);font-size:.8rem;transition:color .15s}.pcard-external:hover{color:var(--foreground)}.pcard-title{font-size:1.1rem;font-weight:600;letter-spacing:-.02em;margin-bottom:.5rem}.pcard-desc{font-size:.875rem;color:var(--muted-foreground);line-height:1.6;margin-bottom:1rem;flex:1}.pcard-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto}.pcard-tag{font-size:.72rem;color:var(--muted-foreground);font-family:monospace;background:var(--muted);padding:.2rem .5rem;border-radius:4px}.modal-overlay{position:fixed;inset:0;background:#000000bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:200;display:flex;align-items:center;justify-content:center;padding:2rem}.modal-box{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);width:100%;max-width:980px;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px #0009}.modal-close{position:absolute;top:1rem;right:1.25rem;z-index:10;background:none;border:none;font-size:1.5rem;color:var(--muted-foreground);line-height:1;transition:color .15s}.modal-close:hover{color:var(--foreground)}.modal-layout{display:grid;grid-template-columns:1.2fr 1fr}.modal-gallery{border-right:1px solid var(--card-border);display:flex;flex-direction:column}.modal-main-img{position:relative;height:400px;background:#111;overflow:hidden}.modal-main-img img{width:100%;height:100%;object-fit:contain}.mgal-btn{position:absolute;top:50%;transform:translateY(-50%);background:#000000a6;color:#fff;border:none;width:40px;height:40px;border-radius:50%;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:background .2s;z-index:5}.mgal-btn:hover{background:#000000eb;color:var(--accent)}.mgal-btn--prev{left:.75rem}.mgal-btn--next{right:.75rem}.mgal-counter{position:absolute;bottom:.6rem;right:.75rem;font-size:.72rem;color:var(--muted-foreground);background:#00000080;padding:.15rem .5rem;border-radius:4px}.modal-thumbs{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem;border-top:1px solid var(--card-border)}.mthumb{width:58px;height:38px;border-radius:4px;overflow:hidden;border:1px solid transparent;transition:border-color .15s}.mthumb img{width:100%;height:100%;object-fit:cover}.mthumb--active{border-color:var(--accent)}.mthumb:hover{border-color:var(--muted-foreground)}.modal-info{padding:2rem;display:flex;flex-direction:column;gap:1.25rem}.modal-title{font-size:1.5rem;font-weight:700;letter-spacing:-.03em}.modal-desc{color:var(--muted-foreground);line-height:1.7;font-size:.95rem}.modal-tech-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-foreground);margin-bottom:.6rem}.modal-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:auto;padding-top:1.5rem;border-top:1px solid var(--card-border)}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:var(--radius);font-size:.875rem;font-weight:500;transition:all .15s}.btn-solid{background:var(--primary);color:var(--primary-foreground);border:1px solid var(--primary)}.btn-solid:hover{opacity:.8}.btn-border{background:transparent;border:1px solid var(--card-border);color:var(--foreground)}.btn-border:hover{background:var(--muted)}.stack-pills{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:3.5rem}.stack-pill{display:inline-flex;align-items:center;gap:.55rem;background:var(--card);border:1px solid var(--card-border);padding:.5rem 1.1rem;border-radius:var(--radius);font-size:.875rem;font-weight:500;transition:border-color .2s}.stack-pill:hover{border-color:var(--muted-foreground)}.stack-pill i{font-size:.95rem}.learning-label{color:var(--muted-foreground);font-size:.875rem;margin-bottom:1.25rem}.learning-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.learning-card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:1.25rem;transition:border-color .2s}.learning-card:hover{border-color:var(--muted-foreground)}.learning-card-top{display:flex;align-items:center;gap:.5rem;font-weight:500;font-size:.9rem;margin-bottom:1rem}.learning-card-top i{color:var(--muted-foreground);font-size:.85rem}.progress-bar{height:3px;background:var(--muted);border-radius:2px;overflow:hidden;margin-bottom:.4rem}.progress-fill{height:100%;background:var(--accent);border-radius:2px}.progress-pct{font-size:.72rem;color:var(--muted-foreground)}.contact-wrapper{border-top:1px solid var(--card-border);padding-top:4rem;max-width:640px}.contact-desc{color:var(--muted-foreground);font-size:1rem;line-height:1.7;margin:.75rem 0 2.25rem}.contact-cards{display:flex;flex-direction:column;gap:.75rem}.contact-card{display:flex;align-items:center;gap:1rem;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:1.1rem 1.25rem;transition:border-color .2s,transform .2s}.contact-card:hover{border-color:var(--muted-foreground);transform:translateY(-1px)}.ccard-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--muted-foreground);font-size:1rem;flex-shrink:0}.ccard-label{font-size:.72rem;color:var(--muted-foreground);display:block}.ccard-value{font-size:.9rem;font-weight:500;display:block}.ccard-arrow{margin-left:auto;color:var(--muted-foreground);font-size:.8rem;transition:transform .2s}.contact-card:hover .ccard-arrow{transform:translate(3px);color:var(--foreground)}.footer{border-top:1px solid var(--card-border);padding:2rem 0;margin-top:2rem;color:var(--muted-foreground);font-size:.875rem}.footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer-socials a{margin-left:1.5rem;color:var(--muted-foreground);font-size:1rem;transition:color .15s}.footer-socials a:hover{color:var(--foreground)}.wip-root{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--background);padding:2rem}.wip-card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:3rem;text-align:center;max-width:420px;width:100%;box-shadow:0 20px 50px #0006}.wip-icon{font-size:3rem;margin-bottom:1.25rem;display:block}.wip-title{font-size:1.75rem;font-weight:700;letter-spacing:-.04em;margin-bottom:.75rem}.wip-desc{color:var(--muted-foreground);font-size:.95rem;line-height:1.65;margin-bottom:2rem}.wip-btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--primary);color:var(--primary-foreground);padding:.65rem 1.5rem;border-radius:var(--radius);font-size:.9rem;font-weight:500;transition:opacity .15s}.wip-btn:hover{opacity:.8}@media(max-width:960px){.about-grid{grid-template-columns:1fr;gap:2.5rem}.pcard--featured:first-child{grid-column:span 1}.pcard--featured .pcard-img{height:200px}}@media(max-width:768px){.nav-links,.nav-cta-btn{display:none}.nav-right>.language-toggle{display:none}.hamburger{display:block}.hero{padding:130px 0 80px}.hero-title{font-size:2.2rem}.hero-stats{gap:1.5rem}.stat-num{font-size:1.25rem}.section{padding:60px 0}.section-heading{font-size:1.6rem}.container{padding:0 1.25rem}.modal-layout{grid-template-columns:1fr}.modal-gallery{border-right:none;border-bottom:1px solid var(--card-border)}.modal-main-img{height:250px}.projects-grid{grid-template-columns:1fr}}
