:root{--teal: #1abc9c;--teal-dark: #15967d;--jungle: #093a3e;--deep: #0a1f1f;--navy: #2c3e50;--mint: #2dd4bf;--sky: #0ea5e9;--white: #f0faf8;--muted: #94b8b0;--font-body: "DM Sans", system-ui, sans-serif;--font-heading: "Outfit", system-ui, sans-serif;--nav-height: 4.5rem;--radius: 1rem;--transition: .25s ease;--focus-ring: 0 0 0 3px rgba(26, 188, 156, .45)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-height)}body{font-family:var(--font-body);font-size:1rem;line-height:1.6;color:var(--white);background:var(--deep);overflow-x:hidden}body.nav-open{overflow:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:4px}ul{list-style:none}.container{width:100%;max-width:72rem;margin-inline:auto;padding-inline:clamp(1.5rem,6vw,3rem)}.nav{position:fixed;inset:0 0 auto;z-index:100;height:var(--nav-height);display:flex;align-items:center;transition:background var(--transition),box-shadow var(--transition)}.nav--scrolled{background:#0a1f1fd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px #1abc9c26}.nav__inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;width:100%}.nav__brand{flex-shrink:0;font-family:var(--font-heading);font-weight:700;font-size:1.15rem;letter-spacing:-.02em;transition:color var(--transition)}.nav__brand:hover{color:var(--teal)}.nav__links{display:none;align-items:center;gap:2rem}.nav__actions{flex-shrink:0;display:flex;align-items:center;gap:.75rem}.nav__cta{display:none}.nav__link{position:relative;display:inline-block;font-size:.9rem;font-weight:500;color:var(--muted);padding:.25rem 0 .35rem;transition:color var(--transition)}.nav__link:hover,.nav__link.active{color:var(--white)}.nav__indicator{position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--teal);border-radius:1px}.nav__toggle{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:4px;color:var(--white)}.nav__backdrop{position:fixed;inset:var(--nav-height) 0 0;z-index:90;border:none;background:#0a1f1fb8;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);cursor:pointer}.nav__drawer{position:fixed;inset:var(--nav-height) 0 auto;z-index:95;background:#0a1f1ffa;border-bottom:1px solid rgba(26,188,156,.15);box-shadow:0 12px 40px #00000059}.nav__drawer-links{display:flex;flex-direction:column;gap:.25rem;padding:1.25rem clamp(1.5rem,6vw,3rem) 1.5rem}.nav__drawer-links .nav__link{display:block;font-size:1.05rem;padding:.75rem 0}.nav__drawer-resume{margin-top:.75rem;width:100%;justify-content:center}@media(min-width:768px){.nav__inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.nav__brand{grid-column:1;justify-self:start}.nav__links{display:flex;grid-column:2;justify-self:center}.nav__actions{grid-column:3;justify-self:end}.nav__toggle{display:none}.nav__cta{display:inline-flex}.nav__backdrop,.nav__drawer{display:none}}.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:calc(var(--nav-height) + 3rem) 0 4rem;background:radial-gradient(ellipse 80% 60% at 20% 80%,rgba(26,188,156,.12) 0%,transparent 60%),radial-gradient(ellipse 60% 50% at 80% 20%,rgba(14,165,233,.08) 0%,transparent 55%),linear-gradient(160deg,var(--deep) 0%,var(--jungle) 50%,#0d2b2b 100%);overflow:hidden}.hero__noise{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none}.hero__content{position:relative;text-align:center;max-width:640px}.hero__avatar-wrap{width:148px;height:148px;margin:0 auto 1.5rem}.hero__avatar{width:100%;height:100%;border-radius:50%;object-fit:cover;border:3px solid rgba(26,188,156,.45);box-shadow:0 8px 32px #1abc9c33}.hero__eyebrow{font-size:.85rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-bottom:.5rem}.hero__title{font-family:var(--font-heading);font-size:clamp(2.5rem,6vw,4rem);font-weight:700;letter-spacing:-.03em;line-height:1.1;margin-bottom:1rem;background:linear-gradient(135deg,var(--white) 0%,var(--mint) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero__tagline{font-size:1.1rem;color:var(--muted);max-width:480px;margin:0 auto 2rem}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-family:var(--font-body);font-size:.95rem;font-weight:600;border-radius:999px;border:2px solid transparent;cursor:pointer;transition:background var(--transition),box-shadow var(--transition),border-color var(--transition)}.btn--sm{padding:.5rem 1rem;font-size:.85rem}.btn--primary{background:var(--teal);color:var(--deep)}.btn--primary:hover{background:var(--mint);box-shadow:0 8px 32px #1abc9c59}.btn--outline{background:transparent;color:var(--white);border-color:#ffffff40}.btn--outline:hover{border-color:var(--teal);color:var(--teal)}.section{padding:6rem 0}.section--about{background:var(--deep);border-top:1px solid rgba(255,255,255,.06)}.section--work{background:var(--jungle);border-top:1px solid rgba(26,188,156,.12)}.section--skills{background:radial-gradient(ellipse 70% 50% at 50% 100%,rgba(26,188,156,.08) 0%,transparent 60%),var(--deep);border-top:1px solid rgba(255,255,255,.06)}.section__header{text-align:center;margin-bottom:3rem}.section__title{font-family:var(--font-heading);font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;letter-spacing:-.02em;margin-bottom:.5rem}.section__subtitle{color:var(--muted);font-size:1.05rem}.about__inner{max-width:42rem;margin-inline:auto;text-align:center}.about__title{margin-bottom:1rem}.about__text{font-size:1.1rem;color:var(--muted);line-height:1.75}.projects{display:grid;gap:1.5rem}@media(min-width:640px){.projects{grid-template-columns:repeat(2,1fr)}}.project-card{display:block}.project-card__inner{display:flex;flex-direction:column;height:100%;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);overflow:hidden;transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition)}.project-card:hover .project-card__inner{border-color:#1abc9c73;box-shadow:0 16px 48px #0000004d,0 0 0 1px #1abc9c26}.project-card__visual{position:relative;height:180px;overflow:hidden;background:var(--jungle)}.project-card__image{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .4s ease}.project-card:hover .project-card__image{transform:scale(1.03)}.project-card__icon-badge{position:absolute;bottom:.75rem;right:.75rem;display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:50%;background:#0a1f1fbf;border:1px solid rgba(255,255,255,.15);color:var(--mint);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.project-card__body{padding:1.5rem;flex:1;display:flex;flex-direction:column}.project-card__title{font-family:var(--font-heading);font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.project-card__desc{font-size:.9rem;color:var(--muted);flex:1;margin-bottom:1rem}.project-card__stack{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.project-card__stack li{padding:.2rem .65rem;font-size:.75rem;font-weight:500;color:var(--mint);background:#1abc9c1a;border:1px solid rgba(26,188,156,.25);border-radius:999px}.project-card__link{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--teal);transition:gap var(--transition),color var(--transition)}.project-card:hover .project-card__link{gap:.55rem;color:var(--mint)}.project-card__link-icon{transition:transform var(--transition)}.project-card:hover .project-card__link-icon{transform:translate(2px,-2px)}.skills{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.skills__label{display:flex;align-items:center;gap:.5rem;font-family:var(--font-heading);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--teal);margin-bottom:.75rem}.skills__tags{display:flex;flex-wrap:wrap;gap:.5rem}.skills__tags li{padding:.35rem .85rem;font-size:.85rem;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:999px;transition:background var(--transition),border-color var(--transition);cursor:default}.skills__tags li:hover{background:#1abc9c1f;border-color:#1abc9c59}.footer{background:var(--jungle);padding:3rem 0 1.5rem;border-top:1px solid rgba(255,255,255,.06)}.footer__inner{display:grid;gap:2rem;text-align:center;margin-bottom:2rem}@media(min-width:640px){.footer__inner{grid-template-columns:repeat(3,1fr);text-align:left;align-items:start}.footer__col:last-child{display:flex;justify-content:flex-end}}.footer__heading{font-family:var(--font-heading);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--teal);margin-bottom:.5rem}.footer__col p{color:var(--muted)}.footer__email{display:inline-block;margin-top:.75rem;font-size:.9rem;color:var(--muted);transition:color var(--transition)}.footer__email:hover{color:var(--teal)}.footer__social{display:flex;gap:.75rem;justify-content:center}@media(min-width:640px){.footer__social{justify-content:flex-start}}.footer__social a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.15);color:var(--muted);transition:color var(--transition),border-color var(--transition),transform var(--transition)}.footer__social a:hover{color:var(--teal);border-color:var(--teal);transform:translateY(-2px)}.footer__copy{text-align:center;font-size:.8rem;color:#ffffff4d}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.hero__title{background:var(--white);-webkit-text-fill-color:var(--white)}.project-card:hover .project-card__image{transform:none}}
