:root {--bg-1:#011627;--bg-2:#010e1a;--bg-elevated:#0a2136;--bg-card:#0b2942;--text:#f4f7fb;--text-soft:#b7c5d3;--muted:#80cbc4;--accent:#c5e46f;--accent-soft:rgb(197 228 111 / 16%);--border:rgb(255 255 255 / 14%);--border-strong:#cecece;--shadow:0 18px 50px rgb(0 0 0 / 35%);--radius:0.85rem;--radius-pill:999px;--nav-h:5.5rem;--max:88rem;--pad:clamp(1.25rem,5vw,5rem);--font-display:"Outfit","Segoe UI",system-ui,sans-serif;--font-body:"Sora","Segoe UI",system-ui,sans-serif;--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);}*,*::before,*::after {box-sizing:border-box;margin:0;padding:0;}html {scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%;}body {font-family:var(--font-body);color:var(--text);background:radial-gradient(1200px 600px at 85% -10%,rgb(197 228 111 / 8%),transparent 55%),radial-gradient(900px 500px at -10% 20%,rgb(128 203 196 / 7%),transparent 50%),var(--bg-1);overflow-x:clip;padding:var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l);line-height:1.55;}img {max-width:100%;height:auto;display:block;}a {text-decoration:none;color:inherit;}ul {list-style:none;}button,input,textarea {font:inherit;}:focus-visible {outline:2px solid var(--accent);outline-offset:3px;}.skip-link {position:absolute;left:1rem;top:-4rem;z-index:2000;padding:0.7rem 1rem;border-radius:0.5rem;background:var(--accent);color:#011627;font-weight:700;}.skip-link:focus {top:1rem;}.hp-field {position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}.reveal {opacity:0;transform:translateY(18px);transition:opacity 0.55s ease,transform 0.55s ease;}.reveal.is-visible {opacity:1;transform:none;}.max-width {width:min(100% - (var(--pad) * 2),var(--max));margin-inline:auto;}section {position:relative;}section .title {position:relative;text-align:center;font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);font-weight:700;letter-spacing:-0.02em;margin-bottom:1.25rem;padding-bottom:1.25rem;}.section-intro {text-align:center;margin-bottom:2.5rem;}.section-lead {max-width:40rem;margin:0.5rem auto 0;color:var(--text-soft);font-size:1.05rem;}.project-group-title {width:min(100%,var(--max));margin:2.5rem auto 1rem;padding-inline:var(--pad);text-align:left;font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--muted);letter-spacing:0.04em;text-transform:uppercase;}section .title::before {content:"";position:absolute;bottom:0;left:50%;width:11rem;height:3px;background:var(--accent);transform:translateX(-50%);}.navbar {position:fixed;inset:var(--safe-t) 0 auto;z-index:1000;padding:1.5rem 0;transition:padding 0.3s ease,background-color 0.3s ease;}.navbar.sticky {padding:0.85rem 0;background:#000;}.navbar .max-width {display:flex;align-items:center;justify-content:space-between;gap:1rem;}.navbar .logo a {color:var(--text);font-family:var(--font-display);font-size:clamp(1.5rem,2vw,2.125rem);font-weight:800;letter-spacing:0.04em;line-height:1;}.navbar .menu {display:flex;align-items:center;flex-wrap:nowrap;gap:clamp(0.1rem,0.8vw,0.35rem);}.navbar .menu li a {display:block;color:var(--text);font-size:clamp(0.95rem,1.15vw,1.125rem);font-weight:500;padding:0.4rem clamp(0.45rem,1vw,0.85rem);white-space:nowrap;transition:color 0.25s ease;}.navbar .menu li a:hover,.navbar .menu li a.active {color:var(--accent);}.menu-toggle {display:none;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border:0;background:transparent;color:var(--text);font-size:1.4rem;cursor:pointer;touch-action:manipulation;}.home {display:flex;align-items:center;justify-content:space-between;gap:clamp(1rem,3vw,2.5rem);min-height:100svh;min-height:100dvh;padding:calc(var(--nav-h) + 1rem) clamp(1.25rem,6vw,5rem) 2rem clamp(1.25rem,6vw,5rem);background:var(--bg-1);color:var(--text);}.home > .max-width {flex:1 1 38%;width:auto;max-width:36rem;margin:0;}.home-content .text-1 {font-family:var(--font-display);font-size:clamp(2.4rem,5vw,4.25rem);font-weight:700;color:var(--text);line-height:1.1;letter-spacing:-0.03em;}.home-content .text-2 {font-family:var(--font-display);font-size:clamp(2.1rem,4.5vw,3.9rem);font-weight:700;color:var(--muted);line-height:1.1;letter-spacing:-0.03em;margin:0.2rem 0 0.45rem;}.home-content h1.text-2 {display:block;}.home-content .text-3 {font-size:clamp(1.2rem,2.5vw,2.15rem);font-weight:600;color:var(--text);min-height:1.45em;margin-bottom:0.25rem;}.home-content .text-3 span,.typing,.typing-2 {color:var(--accent);font-weight:600;}.typed-cursor {color:var(--accent);}.home-actions {display:flex;flex-wrap:wrap;gap:0.75rem;margin-top:1.5rem;}.btn-primary,.btn-ghost,.home-content a {display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:0.7rem 1.6rem;border-radius:var(--radius-pill);font-size:clamp(1rem,1.4vw,1.2rem);font-weight:600;transition:background-color 0.25s ease,color 0.25s ease,border-color 0.25s ease;touch-action:manipulation;}.btn-primary,.home-content a.btn-primary {border:2px solid var(--border-strong);background:#fff;color:#011627;}.btn-primary:hover,.home-content a.btn-primary:hover {background:var(--accent);border-color:var(--accent);}.btn-ghost {border:1px solid var(--border);background:transparent;color:var(--text);}.btn-ghost:hover {border-color:var(--accent);color:var(--accent);}.container-img {flex:1 1 55%;display:flex;align-items:center;justify-content:center;min-width:0;}.container-img img,.imagem-responsiva {width:min(100%,46rem);margin-inline:0 0;opacity:0.92;}.about {background:var(--bg-2);padding:clamp(4rem,8vw,6.5rem) var(--pad);}.about-content {display:grid;grid-template-columns:minmax(14rem,0.9fr) minmax(0,1.4fr);gap:clamp(1.5rem,4vw,3rem);align-items:center;}.about .column.left {background:var(--bg-card);border-radius:0.9rem;padding:0.75rem;opacity:0.95;}.about .column.left img {width:100%;border-radius:0.6rem;object-fit:cover;}.about .column.right {color:var(--text);}.about .text {font-size:clamp(1.2rem,2vw,1.5rem);font-weight:700;margin-bottom:0.65rem;}.about .text span {color:var(--accent);}.text-about {font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.7;text-align:left;text-wrap:pretty;hyphens:auto;color:var(--text-soft);}.social-links {display:flex;justify-content:flex-start;align-items:center;gap:1.5rem;margin-top:1.25rem;}.btn-social {width:3.5rem;height:3.5rem;background:#fff;border-radius:50%;transition:background-color 0.2s ease,border-radius 0.2s ease;}.btn-social:hover {background:var(--accent);border-radius:0.85rem;}.skills {background:var(--bg-1);padding:clamp(4rem,8vw,6.5rem) var(--pad);text-align:center;}.skills-wrapper {width:min(100%,var(--max));margin-inline:auto;}.skill-logo,.skills-logo2 {display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(1rem,3vw,2rem);margin-bottom:1.5rem;}.skills-wrapper img.icon,.icon-card {width:clamp(5.5rem,12vw,10rem);height:clamp(5.5rem,12vw,10rem);aspect-ratio:1 / 1;object-fit:contain;object-position:center;padding:0.75rem;box-sizing:border-box;transition:transform 0.25s ease;}.skill-fa {position:relative;display:grid;place-items:center;padding:0.75rem;border-radius:0;line-height:1;background:transparent;color:#fff;}.skill-fa::before {content:"";position:absolute;inset:0.75rem;border-radius:1.15rem;z-index:0;}.skill-fa i {position:relative;z-index:1;display:block;line-height:1;font-size:clamp(2.1rem,5.2vw,3.5rem);}.skill-fa--git::before {background:#f05032;}.skill-fa--php::before {background:#777bb4;}.skill-fa--php i {font-size:clamp(1.8rem,4.6vw,3.05rem);}.skills-wrapper img.icon:hover,.skill-fa:hover {transform:translateY(-4px);}.skills-btn {display:flex;flex-direction:column;align-items:center;gap:1.25rem;}.skills-btn h3 {font-size:clamp(1.15rem,2vw,1.6rem);font-weight:700;color:var(--text);text-align:center;margin:0;}.skills-tags {display:flex;flex-wrap:wrap;justify-content:center;gap:0.65rem;width:100%;max-width:56rem;}.filter-btn {display:inline-flex;align-items:center;padding:0.55rem 1rem;min-height:2.5rem;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-soft);font-weight:500;font-size:0.92rem;}.project {background:var(--bg-2);padding:clamp(4rem,8vw,6.5rem) var(--pad);text-align:center;color:var(--text);}.project-gallery {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17.5rem),1fr));gap:1.25rem;width:min(100%,var(--max));margin-inline:auto;align-items:stretch;}.project-gallery--featured {grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:1.5rem;}.project-box {display:flex;flex-direction:column;gap:1rem;height:100%;padding:1rem;text-align:left;border-radius:var(--radius);background:linear-gradient(180deg,var(--bg-elevated),var(--bg-card));border:1px solid var(--border);box-shadow:var(--shadow);transition:transform 0.25s ease,border-color 0.25s ease;}.project-box:hover {transform:translateY(-4px);border-color:rgb(197 228 111 / 35%);}.project-box--featured {padding:1.15rem;}.project-kicker {display:inline-block;margin-bottom:0.45rem;color:var(--accent);font-size:0.75rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;}.project-content h3 {font-family:var(--font-display);font-size:1.35rem;font-weight:700;letter-spacing:-0.02em;margin-bottom:0.35rem;}.project-stack {color:var(--muted);font-size:0.92rem;margin-bottom:0.85rem;}.project-problem,.project-outcome {color:var(--text-soft);font-size:0.95rem;line-height:1.55;margin-bottom:0.65rem;}.project-problem span,.project-outcome span {display:block;margin-bottom:0.2rem;color:var(--text);font-size:0.72rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;}.project-actions {display:flex;flex-wrap:wrap;gap:0.45rem;margin-top:0.75rem;}.btn-proj {display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;padding:0.4rem 0.95rem;border-radius:var(--radius-pill);border:1px solid var(--border);background:transparent;color:var(--text);font-size:0.92rem;transition:background-color 0.2s ease,border-color 0.2s ease,color 0.2s ease;touch-action:manipulation;}.btn-proj:hover {border-color:var(--accent);color:var(--accent);}.btn-proj--primary {background:#fff;border-color:#fff;color:#011627;font-weight:600;}.btn-proj--primary:hover {background:var(--accent);border-color:var(--accent);color:#011627;}.project-img {width:100%;aspect-ratio:16 / 10;border-radius:0.65rem;overflow:hidden;border:1px solid var(--border);background:#000;}.project-img img {width:100%;height:100%;object-fit:cover;}.contact-section {background:var(--bg-1);min-height:100svh;padding:clamp(4rem,8vw,6.5rem) var(--pad);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;}.contact-section .content {width:min(100%,40rem);text-align:center;}.contact-section .container {width:min(100%,var(--max));display:grid;grid-template-columns:minmax(14rem,0.8fr) minmax(0,1.2fr);gap:clamp(1.5rem,4vw,3rem);align-items:start;}.contact-info {display:flex;flex-direction:column;gap:1.25rem;}.contact-info .box {display:flex;gap:1rem;align-items:flex-start;}.icon-2 {width:2.75rem;height:2.75rem;border-radius:50%;background:var(--bg-card);color:var(--accent);display:grid;place-items:center;flex-shrink:0;}.contact-info .text h3 {font-size:1.15rem;margin-bottom:0.25rem;}.contact-info .text p {opacity:0.9;line-height:1.45;}.contact-form {background:linear-gradient(180deg,var(--bg-elevated),var(--bg-card));border:1px solid var(--border);border-radius:var(--radius);padding:clamp(1.25rem,3vw,2rem);box-shadow:var(--shadow);}.contact-form h2 {font-size:clamp(1.35rem,2vw,1.75rem);margin-bottom:1rem;}.input-box {margin-bottom:0.9rem;}.input-box label {display:block;margin-bottom:0.35rem;font-weight:600;}.input-box input,.input-box textarea {width:100%;border:1px solid rgb(255 255 255 / 18%);border-radius:0.5rem;background:rgb(0 0 0 / 25%);color:var(--text);padding:0.75rem 0.9rem;outline:none;}.input-box textarea {min-height:8rem;resize:vertical;}.input-box input:focus,.input-box textarea:focus {border-color:var(--accent);}.input-box input[type="submit"] {width:auto;min-height:2.75rem;padding:0.7rem 1.6rem;border-radius:999px;border:1px solid var(--border);background:#fff;color:#000;font-weight:600;cursor:pointer;transition:background-color 0.2s ease;touch-action:manipulation;}.input-box input[type="submit"]:hover {background:var(--accent);}footer {background:#000;color:var(--text);text-align:center;padding:2rem var(--pad) calc(2rem + var(--safe-b));font-size:0.95rem;}footer a {display:inline-flex;margin:0 0.45rem;font-size:1.5rem;transition:color 0.2s ease;}footer a:hover {color:var(--accent);}@media (max-width:1024px) {.home {flex-direction:column;justify-content:center;align-items:stretch;min-height:auto;padding-top:calc(var(--nav-h) + 1.5rem);padding-bottom:3rem;}.home > .max-width,.container-img {flex:none;width:min(100%,40rem);max-width:none;margin-inline:auto;}.about-content,.contact-section .container {grid-template-columns:1fr;}.about .column.left {max-width:18rem;margin-inline:auto;}}@media (max-width:900px) {.menu-toggle {display:inline-flex;}.navbar .menu {position:fixed;inset:0;z-index:999;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:0.5rem;padding:calc(5rem + var(--safe-t)) 1.5rem calc(2rem + var(--safe-b));background:var(--bg-2);transform:translateX(-100%);transition:transform 0.3s ease;}.navbar .menu.active {transform:translateX(0);}.navbar .menu li a {font-size:1.5rem;padding:0.75rem 1rem;}.navbar .logo {position:relative;z-index:1001;}.menu-toggle {position:relative;z-index:1001;}}@media (max-width:560px) {.home-content .text-1 {font-size:2.2rem;}.home-content .text-2 {font-size:2rem;}.home-content .text-3 {font-size:1.15rem;}.container-img {display:none;}.social-links {justify-content:center;}}@media (max-height:520px) and (orientation:landscape) {.home {min-height:auto;padding-block:4.5rem 1.5rem;}.container-img {display:none;}}@media (min-width:1920px) {:root {--max:100rem;}}@media (min-width:2560px) {:root {--max:120rem;font-size:112.5%;}}@media (min-width:3840px) {:root {--max:140rem;font-size:125%;}}@media (prefers-reduced-motion:reduce) {html {scroll-behavior:auto;}*,*::before,*::after {animation:none !important;transition:none !important;}}