:root{--bg:#0f1115;--bg-alt:#161a21;--surface:#1d222b;--border:#2a303b;--text:#e6e8eb;--text-muted:#9aa3b2;--accent:#6ea8fe;--accent-strong:#3d8bfd;color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:4rem}body{background:var(--bg);margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.container{width:100%;max-width:1040px;margin:0 auto;padding:0 1rem}.navbar{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);background:#0f1115d9;position:sticky;top:0}.navbar__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;min-height:4rem;display:flex}.navbar__brand{color:var(--text);align-items:center;gap:.7rem;display:inline-flex}.navbar__brand:hover{text-decoration:none}.navbar__logo{letter-spacing:.02em;color:#fff;background:linear-gradient(135deg, var(--accent-strong), #8b5cf6, #06b6d4, var(--accent-strong));background-size:300% 300%;border-radius:10px;place-items:center;width:2.4rem;height:2.4rem;font-size:1rem;font-weight:800;transition:transform .3s,box-shadow .3s;animation:6s ease-in-out infinite logo-gradient;display:grid;position:relative;overflow:hidden;box-shadow:0 4px 12px #00000059,0 0 14px #8b5cf659}.navbar__brand:hover .navbar__logo{transform:rotate(-8deg)scale(1.06);box-shadow:0 6px 16px #0006,0 0 22px #8b5cf68c}.navbar__logo:after{content:"";background:linear-gradient(120deg,#0000 30%,#ffffff59 50%,#0000 70%);animation:4s ease-in-out infinite btn-shine;position:absolute;inset:0;transform:translate(-100%)}.navbar__name{letter-spacing:.01em;background:linear-gradient(90deg, var(--text), var(--text));-webkit-background-clip:text;background-clip:text;font-size:1.1rem;font-weight:700;transition:color .3s}.navbar__brand:hover .navbar__name{color:#0000;background-image:linear-gradient(90deg, var(--accent), #a78bfa)}@keyframes logo-gradient{0%,to{background-position:0%}50%{background-position:100%}}@media (prefers-reduced-motion:reduce){.navbar__logo,.navbar__logo:after{animation:none}.navbar__logo:after{display:none}}.navbar__links{flex-wrap:wrap;gap:1.5rem;margin:0;padding:0;list-style:none;display:flex}.navbar__links a{color:var(--text-muted);padding:.25rem 0;font-size:1.05rem;font-weight:500;transition:color .2s;position:relative}.navbar__links a:after{content:"";background:var(--accent);border-radius:2px;height:2px;transition:transform .25s;position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.navbar__links a:hover,.navbar__links a:focus-visible{color:var(--text);text-decoration:none}.navbar__links a:hover:after,.navbar__links a:focus-visible:after{transform:scaleX(1)}.hero{padding:3rem 0 1.5rem}.hero+.section{padding-top:1.5rem}.hero__greeting{color:var(--accent);margin:0;font-weight:600}.hero__name{margin:.25rem 0;font-size:clamp(2.5rem,7vw,4.5rem);line-height:1.1}.hero__role{color:var(--text-muted);margin:0;font-size:clamp(1.25rem,3.5vw,2rem);font-weight:500}.hero__tagline{max-width:36rem;color:var(--text-muted);margin:1.5rem 0 2rem;font-size:1.1rem}.hero__actions{flex-wrap:wrap;gap:1rem;display:flex}.btn{--btn-glow:#6ea8fe40;border:1px solid var(--border);color:var(--text);box-shadow:0 4px 10px #00000059, 0 0 14px var(--btn-glow);border-radius:8px;padding:.7rem 1.4rem;font-weight:600;transition:background .2s,border-color .2s,transform .2s,box-shadow .2s;display:inline-block;position:relative;overflow:hidden}.btn:after{content:"";pointer-events:none;background:linear-gradient(120deg,#0000 30%,#ffffff40 50%,#0000 70%);animation:4s ease-in-out infinite btn-shine;position:absolute;inset:0;transform:translate(-100%)}.btn:hover{border-color:var(--accent);box-shadow:0 10px 22px #00000073, 0 0 26px var(--btn-glow);text-decoration:none;transform:translateY(-3px)}.btn:active{box-shadow:0 2px 6px #0006, 0 0 10px var(--btn-glow);transform:translateY(0)scale(.97)}.hero__actions .btn,.contact__actions .btn,.card__links .btn{animation:3s ease-in-out infinite btn-float}.hero__actions .btn:nth-child(2),.contact__actions .btn:nth-child(2),.card__links .btn:nth-child(2){animation-delay:-.75s}.contact__actions .btn:nth-child(3){animation-delay:-1.5s}.contact__actions .btn:nth-child(4){animation-delay:-2.25s}.hero__actions .btn:nth-child(2):after,.contact__actions .btn:nth-child(2):after,.card__links .btn:nth-child(2):after{animation-delay:.5s}.contact__actions .btn:nth-child(3):after{animation-delay:1s}.contact__actions .btn:nth-child(4):after{animation-delay:1.5s}@keyframes btn-float{0%,to{translate:0}50%{translate:0 -6px}}@keyframes btn-shine{0%{transform:translate(-100%)}40%,to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.btn,.btn:after{transition:none;animation:none!important}.btn:after{display:none}}:where(button.btn){font:inherit;cursor:pointer;background:0 0}.btn--primary{--btn-glow:#3d8bfd73;background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.btn--primary:hover{background:var(--accent);border-color:var(--accent)}.section{padding:3rem 0}.section--alt{background:var(--bg-alt)}.section__title{margin:0 0 2rem;font-size:1.9rem}.about{max-width:44rem;color:var(--text-muted);font-size:1.05rem}.projects{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:1.5rem;display:grid}.card--clickable{cursor:pointer;position:relative}.card--clickable:hover{box-shadow:0 12px 28px #0006,0 0 20px #6ea8fe26}.project-card__summary{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.card__open{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;align-self:flex-start;margin-top:1.25rem;padding:0;font-weight:600}.card__open:before{content:"";border-radius:inherit;position:absolute;inset:0}.card--clickable:hover .card__open{text-decoration:underline}.card__open:focus-visible{outline:none}.card--clickable:has(.card__open:focus-visible){outline:2px solid var(--accent);outline-offset:3px}body:has(.modal[open]){overflow:hidden}.modal{width:min(860px,100% - 2rem);max-height:calc(100dvh - 2rem);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:0;box-shadow:0 24px 60px #0009}.modal[open]{animation:.25s ease-out modal-in}.modal::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#05070ab3;animation:.25s ease-out backdrop-in}.modal__content{padding:2rem 1.75rem 1.75rem;position:relative}.modal__content .card__header{padding-right:2.5rem}.modal__description{color:var(--text-muted);margin:0 0 1.5rem}.modal__close{width:2.25rem;height:2.25rem;color:var(--text-muted);background:var(--bg-alt);border:1px solid var(--border);cursor:pointer;border-radius:50%;font-size:1rem;transition:color .2s,border-color .2s;position:absolute;top:1rem;right:1rem}.modal__close:hover{color:var(--text);border-color:var(--accent)}.modal .card__links{margin-top:1.5rem}.modal--document{width:min(1000px,100% - 2rem)}.document__title{margin-bottom:1rem;padding-right:2.5rem}.document__tabs{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.document__tab{font:inherit;color:var(--text-muted);background:var(--bg-alt);border:1px solid var(--border);cursor:pointer;border-radius:999px;padding:.4rem 1rem;font-size:.9rem;font-weight:600;transition:color .2s,border-color .2s,background .2s}.document__tab:hover{color:var(--text);border-color:var(--accent)}.document__tab[aria-selected=true]{color:#fff;background:var(--accent-strong);border-color:var(--accent-strong)}.document__image{object-fit:contain;background:#fff;border-radius:8px;width:100%;max-height:calc(100dvh - 12rem);display:block}@keyframes modal-in{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:none}}@keyframes backdrop-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.modal[open],.modal::backdrop{animation:none}}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;padding:1.5rem;transition:transform .2s,border-color .2s;display:flex}.card:hover{border-color:var(--accent);transform:translateY(-3px)}.card__title{margin:0 0 .5rem}.card__text{color:var(--text-muted);flex:1;margin:0 0 1rem}.card__header{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:.5rem;display:flex}.card__header .card__title{margin:0}.badge{border:1px solid;border-radius:999px;padding:.15rem .65rem;font-size:.8rem;font-weight:600}.badge--success{color:#4ade80;background:#4ade801f;border-color:#4ade8059}.badge--warning{color:#f5c451;background:#f5c4511f;border-color:#f5c45159}.badge--info{color:#b39afd;background:#b39afd1f;border-color:#b39afd59}.card__highlights{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:0 0 1.25rem;padding:0;list-style:none;display:grid}.card__highlights li{background:var(--bg-alt);border:1px solid var(--border);border-left:3px solid var(--accent-strong);border-radius:8px;padding:1rem}.card__highlights h4{margin:0 0 .4rem;font-size:1rem}.card__highlights p{color:var(--text-muted);margin:0;font-size:.92rem}.card__links{flex-wrap:wrap;gap:1rem;margin-top:1rem;font-weight:600;display:flex}.tags{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.tag{color:var(--accent);background:#6ea8fe1a;border-radius:999px;padding:.2rem .7rem;font-size:.85rem}.skills{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2rem;display:grid}.skills__group h3{margin:0 0 .75rem;font-size:1.1rem}.contact{text-align:center}.contact p{color:var(--text-muted);margin:0 0 1.5rem}.contact__actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.btn--whatsapp{--btn-glow:#25d36666;color:#fff;background:#1f9d55;border-color:#1f9d55}.btn--whatsapp:hover{background:#25d366;border-color:#25d366}.btn--github{--btn-glow:#c8d2e133;color:#fff;background:#24292f;border-color:#3d444d}.btn--github:hover{background:#32383f;border-color:#57606a}.btn--linkedin{--btn-glow:#0a66c280;color:#fff;background:#0a66c2;border-color:#0a66c2}.btn--linkedin:hover{background:#1d7fe0;border-color:#1d7fe0}.footer{border-top:1px solid var(--border);color:var(--text-muted);text-align:center;padding:2rem 0;font-size:.9rem}.hero__stack{margin-top:1.25rem}.hero__tagline+.hero__location{color:var(--text-muted);margin:-1.25rem 0 2rem;font-size:.95rem}.timeline{border-left:2px solid var(--border);margin:0;padding:0 0 0 1.5rem;list-style:none}.timeline__item{padding-bottom:2.5rem;position:relative}.timeline__item:last-child{padding-bottom:0}.timeline__item:before{content:"";background:var(--accent-strong);width:12px;height:12px;box-shadow:0 0 0 4px var(--bg-alt);border-radius:50%;position:absolute;top:.4rem;left:calc(-1.5rem - 7px)}.timeline__period{color:var(--accent);margin:0;font-size:.9rem;font-weight:600}.timeline__role{margin:.2rem 0;font-size:1.25rem}.timeline__company{color:var(--text-muted);margin:0 0 .75rem}.timeline__highlights{color:var(--text-muted);margin:0;padding-left:1.2rem}.timeline__highlights li+li{margin-top:.4rem}.education{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.5rem;display:grid}.education .card__text{flex:0;margin:0}.education__detail{color:var(--text-muted);margin:.75rem 0 0;font-size:.85rem}.education__languages-title{margin:2.5rem 0 .75rem;font-size:1.1rem}.education .card__open{margin-top:auto;padding-top:1rem}.about p,.timeline__highlights li,.project-card__summary,.modal__description,.card__highlights p{text-align:justify;-webkit-hyphens:auto;hyphens:auto}.like-button{z-index:20;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:.5rem;padding:.65rem 1.1rem;font-weight:700;transition:transform .2s,border-color .2s,box-shadow .2s;display:inline-flex;position:fixed;bottom:3rem;right:2.5rem;box-shadow:0 6px 18px #00000073,0 0 14px #3d8bfd40}.like-button:hover{border-color:var(--accent-strong);transform:translateY(-3px);box-shadow:0 10px 24px #00000080,0 0 22px #3d8bfd73}.like-button:active{transform:scale(.95)}.like-button__icon{fill:none;width:1.3rem;height:1.3rem;stroke:var(--accent);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;transform-origin:30% 80%;transition:fill .2s}.like-button--liked .like-button__icon{fill:var(--accent-strong);stroke:var(--accent-strong);animation:.5s like-pop}.like-button__count{font-variant-numeric:tabular-nums;min-width:1.5ch}@keyframes like-pop{0%{transform:scale(1)}35%{transform:scale(1.4)rotate(-18deg)}60%{transform:scale(.92)rotate(6deg)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.like-button--liked .like-button__icon{animation:none}}@media (width<=600px){.like-button{bottom:1.75rem;right:1.25rem}}
