@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #0A1628;--color-bg-secondary: #0D1F35;--color-surface: #112240;--color-border: rgba(20, 184, 166, .15);--color-accent: #14B8A6;--color-accent-dim: #0D9488;--color-text: #F1F5F9;--color-text-muted: rgba(241, 245, 249, .5);--nav-height: 60px;font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--color-bg);color:var(--color-text);min-height:100vh}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}h1,h2,h3,h4{line-height:1.2}#root{display:flex;flex-direction:column;min-height:100vh}.navbar{position:fixed;top:0;left:0;right:0;height:var(--nav-height);display:flex;align-items:center;justify-content:space-between;padding:0 2rem;background:#000000d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);z-index:100}.navbar-logo{font-size:1.25rem;font-weight:700;color:var(--color-accent);letter-spacing:.05em;text-decoration:none}.navbar-logo:hover{text-decoration:none;opacity:.85}.navbar-links{display:flex;gap:.25rem}.nav-link{padding:.4rem 1rem;border-radius:6px;font-size:.95rem;color:var(--color-text-muted);transition:color .2s,background .2s;text-decoration:none}.nav-link:hover{color:var(--color-text);background:#14b8a61a;text-decoration:none}.nav-link--active{color:var(--color-accent);background:#14b8a61f}.navbar-lang{display:flex;gap:.15rem}.lang-btn{background:none;border:1px solid transparent;border-radius:5px;padding:.25rem .55rem;font-size:.8rem;font-weight:600;color:var(--color-text-muted);letter-spacing:.05em;transition:color .2s,border-color .2s}.lang-btn:hover{color:var(--color-text);border-color:var(--color-border)}.lang-btn--active{color:var(--color-accent);border-color:var(--color-border)}.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;padding:4px;cursor:pointer}.hamburger span{display:block;width:22px;height:2px;background:var(--color-text);border-radius:2px;transition:transform .25s,opacity .25s}.hamburger--open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger--open span:nth-child(2){opacity:0}.hamburger--open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media(max-width:640px){.navbar{padding:0 1.25rem}.hamburger{display:flex}.navbar-links{display:none;position:fixed;top:var(--nav-height);left:0;right:0;flex-direction:column;gap:0;background:#0a1628f7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);padding:.5rem 0;z-index:99}.navbar-links--open{display:flex}.nav-link{padding:.9rem 1.75rem;font-size:1rem;border-radius:0}}.layout-content{padding-top:var(--nav-height);min-height:100vh}.page{padding:5rem 2rem 4rem}.page-inner{max-width:860px;margin:0 auto}.page-title{font-size:clamp(1.8rem,4vw,2.8rem);font-weight:800;letter-spacing:-.02em}.page-title:after{content:"";display:block;width:40px;height:3px;background:var(--color-accent);margin-top:.6rem;border-radius:2px}.skill-tag{padding:.3rem .8rem;border:1px solid var(--color-border);border-radius:6px;font-size:.85rem;color:var(--color-accent-dim);background:#14b8a612;list-style:none}.landing{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:calc(var(--nav-height) + 2rem) 2rem 4rem;background:radial-gradient(ellipse at 20% 15%,rgba(20,184,166,.1) 0%,transparent 50%),radial-gradient(ellipse at 80% 85%,rgba(13,148,136,.07) 0%,transparent 50%),radial-gradient(ellipse at 75% 5%,rgba(14,30,64,.4) 0%,transparent 45%),var(--color-bg);position:relative}.landing-content{max-width:680px;display:flex;flex-direction:column;align-items:center;gap:1.25rem}.landing-badge{display:inline-block;padding:.3rem .9rem;border:1px solid var(--color-border);border-radius:999px;font-size:.8rem;color:var(--color-accent);letter-spacing:.08em;text-transform:uppercase;background:#14b8a614}.landing-title{font-size:clamp(2.8rem,7vw,5rem);font-weight:800;letter-spacing:-.02em;color:var(--color-text)}.accent{color:var(--color-accent)}.landing-tagline{font-size:clamp(1.1rem,2.5vw,1.5rem);color:var(--color-accent-dim);font-weight:500}.landing-description{font-size:1rem;color:var(--color-text-muted);max-width:520px;line-height:1.7}.landing-actions{display:flex;gap:1rem;margin-top:.5rem;flex-wrap:wrap;justify-content:center}.btn{padding:.7rem 1.8rem;border-radius:8px;font-size:.95rem;font-weight:600;transition:all .2s;text-decoration:none;border:1px solid transparent}.btn:hover{text-decoration:none}.btn-primary{background:var(--color-accent);color:#000}.btn-primary:hover{background:#0d9488;transform:translateY(-1px)}.btn-secondary{border-color:var(--color-border);color:var(--color-text);background:transparent}.btn-secondary:hover{border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-1px)}.landing-scroll-hint{position:absolute;bottom:2rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;font-size:.75rem;color:var(--color-text-muted);letter-spacing:.05em;text-transform:uppercase}.scroll-arrow{width:1px;height:40px;background:linear-gradient(to bottom,var(--color-accent),transparent);animation:arrow-pulse 1.8s ease-in-out infinite}@keyframes arrow-pulse{0%,to{opacity:.3;transform:scaleY(.7)}50%{opacity:1;transform:scaleY(1)}}.about-bio{display:flex;flex-direction:column;gap:1rem;color:var(--color-text-muted);line-height:1.8;font-size:1.05rem;max-width:680px;margin-top:2rem}.about-skills{margin-top:3rem}.skills-heading{font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);margin-bottom:1.5rem}.skills-categories{display:flex;flex-direction:column;gap:1.5rem}.skills-category{display:flex;flex-direction:column;gap:.6rem}.skills-category-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-accent-dim);font-weight:600}.skills-list{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem}.page-subtitle{color:var(--color-text-muted);margin-top:.5rem;font-size:1.05rem}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-top:2.5rem}.project-card{display:flex;flex-direction:column;gap:.75rem;padding:1.75rem;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);text-decoration:none;color:inherit;transition:border-color .2s,transform .2s}.project-card:hover{border-color:#14b8a666;transform:translateY(-2px);text-decoration:none}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.project-card-header h3{font-size:1.1rem;font-weight:600}.project-status{font-size:.75rem;padding:.2rem .6rem;border-radius:999px;border:1px solid;white-space:nowrap;font-weight:500;letter-spacing:.03em}.project-status--live{color:var(--color-accent);border-color:var(--color-accent)}.project-status--in-progress{color:var(--color-accent-dim);border-color:var(--color-accent-dim);opacity:.8}.project-status--planned{color:var(--color-text-muted);border-color:var(--color-border)}.project-desc{font-size:.95rem;color:var(--color-text-muted);line-height:1.6;flex:1}.back-link{display:inline-block;font-size:.9rem;color:var(--color-text-muted);margin-bottom:2rem;transition:color .2s}.back-link:hover{color:var(--color-accent);text-decoration:none}.project-detail-header{margin-bottom:2.5rem}.project-detail-title-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.project-detail-title-row .page-title:after{display:none}.project-detail-header:after{content:"";display:block;width:40px;height:3px;background:var(--color-accent);margin-top:1rem;border-radius:2px}.project-detail-desc{color:var(--color-text-muted);line-height:1.8;font-size:1.05rem;max-width:720px}.project-section{margin-top:2.5rem}.project-section-title{font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);margin-bottom:1rem}.highlights-list{display:flex;flex-direction:column;gap:.6rem;padding-left:1.25rem}.highlights-list li{color:var(--color-text-muted);line-height:1.6}.highlights-list li::marker{color:var(--color-accent)}.project-tags{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}.project-links{display:flex;gap:1rem;flex-wrap:wrap}.contact-layout{display:grid;grid-template-columns:1fr 1.5fr;gap:4rem;margin-top:2.5rem}.contact-info{display:flex;flex-direction:column;gap:1.5rem;color:var(--color-text-muted);line-height:1.8;padding-top:.25rem}.contact-email{font-size:1.05rem;font-weight:600;color:var(--color-accent)}.contact-email:hover{text-decoration:underline}.contact-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-size:.85rem;color:var(--color-text-muted);letter-spacing:.05em;text-transform:uppercase}.form-group input,.form-group textarea{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:.7rem 1rem;color:var(--color-text);font-size:.95rem;font-family:inherit;resize:vertical;transition:border-color .2s;outline:none}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-accent)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--color-text-muted);opacity:.6}.contact-social{display:flex;flex-direction:column;gap:.6rem}.contact-social-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.contact-social-links{display:flex;gap:.75rem}.social-link{font-size:.95rem;font-weight:600;color:var(--color-accent-dim);transition:color .2s}.social-link:hover{color:var(--color-accent);text-decoration:none}.contact-form .btn{align-self:flex-start}.form-feedback{font-size:.9rem;padding:.5rem 0}.form-feedback--success{color:var(--color-accent)}.form-feedback--error{color:#f87171}.field-error{font-size:.8rem;color:#f87171;margin-top:.2rem}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:#f87171}.char-counter{font-size:.75rem;color:var(--color-text-muted);text-align:right;margin-top:.2rem}@media(max-width:640px){.contact-layout{grid-template-columns:1fr;gap:2rem}}
