:root{
  --bg:#061224;
  --bg-2:#0E1E36;
  --bg-3:#16324F;
  --ciano:#22D3EE;
  --roxo:#1E5EFF;
  --texto:#F0F6FF;
  --texto-2:#8FA8C7;
  --borda:rgba(120,180,255,.12);
  --vidro:rgba(120,180,255,.05);
  --raio:16px;
  --trans:.25s cubic-bezier(.4,0,.2,1);
  --sombra:0 20px 60px rgba(0,10,30,.6);
  --glow-ciano:0 0 0 1px rgba(34,211,238,.35), 0 12px 40px rgba(34,211,238,.3);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:80px;}
body{margin:0;font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--texto);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
h1,h2,h3,h4{font-family:'Space Grotesk',sans-serif;line-height:1.15;margin:0 0 .5em;letter-spacing:-.02em;}
p{margin:0 0 1em;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
button{cursor:pointer;border:none;background:none;font:inherit;color:inherit;}
ul{margin:0;padding:0;list-style:none;}
code{font-family:'JetBrains Mono',monospace;background:rgba(34,211,238,.1);padding:2px 6px;border-radius:5px;font-size:.85em;color:var(--ciano);}
:focus-visible{outline:2px solid var(--ciano);outline-offset:3px;border-radius:6px;}

body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(800px 500px at 15% 0%, rgba(34,211,238,.14), transparent 60%),radial-gradient(700px 500px at 90% 10%, rgba(30,94,255,.16), transparent 60%),radial-gradient(900px 600px at 50% 100%, rgba(34,211,238,.08), transparent 65%);}

.container{width:min(1200px,100% - 2.5rem);margin-inline:auto;}

/* HEADER */
.header{position:sticky;top:0;z-index:900;background:rgba(6,18,36,.75);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--borda);}
.header-inner{height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px;}
.logo{display:flex;align-items:center;gap:12px;}
.logo-mark{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--ciano),var(--roxo));display:grid;place-items:center;flex-shrink:0;box-shadow:0 8px 24px rgba(34,211,238,.3);}
.logo-mark svg{width:24px;height:24px;}
.logo-text{font-family:'Space Grotesk',sans-serif;font-weight:700;line-height:1;}
.logo-text strong{color:var(--texto);display:block;font-size:1.05rem;}
.logo-text span{color:var(--ciano);font-size:.7rem;letter-spacing:.3em;font-weight:600;}
.nav{display:flex;gap:4px;}
.nav a{padding:8px 14px;border-radius:999px;font-size:.92rem;color:var(--texto-2);transition:all var(--trans);}
.nav a:hover{color:var(--texto);background:var(--vidro);}
.header-cta{display:flex;gap:10px;align-items:center;}
.menu-toggle{display:none;width:42px;height:42px;border-radius:12px;background:var(--vidro);border:1px solid var(--borda);place-items:center;font-size:1.2rem;}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border-radius:999px;font-weight:600;font-size:.92rem;transition:all var(--trans);white-space:nowrap;border:1px solid transparent;}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:linear-gradient(135deg,var(--ciano),var(--roxo));color:#061224;font-weight:700;box-shadow:0 8px 28px rgba(34,211,238,.35);}
.btn-primary:hover{box-shadow:0 12px 40px rgba(34,211,238,.55);}
.btn-ghost{background:var(--vidro);color:var(--texto);border-color:var(--borda);}
.btn-ghost:hover{background:rgba(120,180,255,.1);border-color:rgba(34,211,238,.4);}
.btn-lg{padding:16px 28px;font-size:1rem;}
.btn-sm{padding:8px 14px;font-size:.84rem;}
.btn-block{width:100%;}

/* HERO */
.hero{padding:clamp(60px,9vw,120px) 0 clamp(70px,9vw,110px);}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(30px,5vw,60px);align-items:center;}
.badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;font-size:.78rem;font-weight:600;background:rgba(34,211,238,.1);border:1px solid rgba(34,211,238,.3);color:var(--ciano);margin-bottom:22px;}
.badge .dot{width:6px;height:6px;border-radius:50%;background:var(--ciano);animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.35;}}
.hero h1{font-size:clamp(2.2rem,5.5vw,4rem);font-weight:700;margin-bottom:.4em;}
.hero h1 .grad{background:linear-gradient(135deg,var(--ciano),var(--roxo));-webkit-background-clip:text;background-clip:text;color:transparent;}
.hero .lead{font-size:clamp(1rem,1.6vw,1.18rem);color:var(--texto-2);max-width:560px;margin-bottom:32px;}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:36px;}
.hero-stats{display:flex;gap:clamp(20px,4vw,48px);flex-wrap:wrap;padding-top:28px;border-top:1px solid var(--borda);}
.hero-stat strong{font-family:'Space Grotesk',sans-serif;font-size:1.5rem;display:block;color:var(--texto);}
.hero-stat span{font-size:.82rem;color:var(--texto-2);}

/* CODE WINDOW */
.code-window{background:linear-gradient(160deg,#0E1E36,#061224);border:1px solid var(--borda);border-radius:16px;box-shadow:var(--sombra),var(--glow-ciano);overflow:hidden;font-family:'JetBrains Mono',monospace;}
.code-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;background:rgba(0,0,0,.35);border-bottom:1px solid var(--borda);}
.code-bar .dot{width:11px;height:11px;border-radius:50%;}
.code-bar .dot.r{background:#FF5F57;}
.code-bar .dot.y{background:#FEBC2E;}
.code-bar .dot.g{background:#28C840;}
.code-bar .title{margin-left:8px;font-size:.72rem;color:var(--texto-2);}
.code-body{padding:20px;font-size:.82rem;line-height:1.75;overflow:hidden;}
.code-body .ln{display:block;white-space:pre;color:var(--texto-2);}
.code-body .kw{color:#1E5EFF;}
.code-body .fn{color:var(--ciano);}
.code-body .str{color:#22C55E;}
.code-body .cm{color:#4B6382;font-style:italic;}
.code-body .var{color:#F0F6FF;}
.code-body .num{color:#FBBF24;}
.cursor{display:inline-block;width:8px;height:14px;background:var(--ciano);animation:blink 1s steps(1) infinite;vertical-align:middle;}
@keyframes blink{50%{opacity:0;}}

/* SECTIONS */
.section{padding:clamp(70px,9vw,120px) 0;}
.section-head{max-width:680px;margin:0 auto clamp(40px,6vw,64px);text-align:center;}
.section-head h2{font-size:clamp(1.8rem,4vw,2.8rem);}
.section-head p{color:var(--texto-2);font-size:1.02rem;}
.eyebrow{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ciano);margin-bottom:14px;}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;}

/* CARDS */
.card{background:linear-gradient(165deg,var(--bg-2),var(--bg));border:1px solid var(--borda);border-radius:var(--raio);padding:32px 28px;transition:all var(--trans);position:relative;overflow:hidden;}
.card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--ciano),var(--roxo));transform:scaleX(0);transform-origin:left;transition:transform .4s;}
.card:hover{transform:translateY(-6px);border-color:rgba(34,211,238,.35);}
.card:hover::before{transform:scaleX(1);}
.card-ico{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,rgba(34,211,238,.15),rgba(30,94,255,.15));border:1px solid rgba(34,211,238,.3);display:grid;place-items:center;margin-bottom:20px;font-size:1.4rem;}
.card h3{font-size:1.15rem;margin-bottom:8px;}
.card p{color:var(--texto-2);font-size:.92rem;margin:0;}
.card .price{display:inline-block;margin-top:16px;padding:4px 12px;border-radius:999px;background:rgba(34,211,238,.12);color:var(--ciano);font-size:.78rem;font-weight:600;}

/* PORTFÓLIO */
.project{border-radius:var(--raio);overflow:hidden;border:1px solid var(--borda);background:var(--bg-2);transition:all var(--trans);}
.project:hover{transform:translateY(-6px);border-color:rgba(34,211,238,.35);}
.project-img{aspect-ratio:16/10;background:linear-gradient(135deg,var(--bg-3),var(--bg));display:grid;place-items:center;position:relative;overflow:hidden;}
.project-img::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 30%, rgba(34,211,238,.22), transparent 60%);}
.project-img .mockup{font-family:'JetBrains Mono',monospace;font-size:.8rem;color:var(--texto-2);position:relative;z-index:1;}
.project-img img{width:100%;height:100%;object-fit:cover;position:relative;z-index:1;}
.project-body{padding:22px;}
.project-body h3{font-size:1.05rem;margin-bottom:6px;}
.project-body p{color:var(--texto-2);font-size:.88rem;margin:0 0 12px;}
.tags{display:flex;gap:6px;flex-wrap:wrap;}
.tag{padding:4px 10px;border-radius:6px;font-size:.72rem;font-weight:600;background:rgba(30,94,255,.18);color:#93C5FD;font-family:'JetBrains Mono',monospace;}

/* STEPS */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;}
.step{padding:28px 22px;border-radius:var(--raio);background:var(--bg-2);border:1px solid var(--borda);}
.step-num{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--ciano),var(--roxo));color:#061224;display:grid;place-items:center;font-weight:800;font-family:'Space Grotesk',sans-serif;margin-bottom:16px;}
.step h4{font-size:1rem;margin-bottom:6px;}
.step p{color:var(--texto-2);font-size:.88rem;margin:0;}

/* TECHS */
.techs{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:800px;margin:0 auto;}
.tech{padding:8px 16px;border-radius:10px;background:var(--bg-2);border:1px solid var(--borda);font-family:'JetBrains Mono',monospace;font-size:.82rem;color:var(--texto-2);transition:all var(--trans);}
.tech:hover{color:var(--ciano);border-color:rgba(34,211,238,.4);transform:translateY(-2px);}

/* QUOTES */
.quote{padding:28px;border-radius:var(--raio);background:var(--bg-2);border:1px solid var(--borda);}
.quote p{color:var(--texto);font-style:italic;font-size:.95rem;}
.quote-author{display:flex;align-items:center;gap:12px;margin-top:18px;}
.quote-author .av{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--ciano),var(--roxo));display:grid;place-items:center;color:#061224;font-weight:800;font-family:'Space Grotesk',sans-serif;}
.quote-author strong{display:block;font-size:.9rem;}
.quote-author span{font-size:.78rem;color:var(--texto-2);}

/* CTA + FORM */
.cta-box{background:linear-gradient(135deg,rgba(34,211,238,.1),rgba(30,94,255,.12));border:1px solid rgba(34,211,238,.3);border-radius:24px;padding:clamp(40px,6vw,72px);text-align:center;position:relative;overflow:hidden;}
.cta-box::before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle, rgba(34,211,238,.15) 0%, transparent 60%);animation:rotate 20s linear infinite;}
@keyframes rotate{to{transform:rotate(360deg);}}
.cta-box > *{position:relative;z-index:1;}
.cta-box h2{font-size:clamp(1.6rem,3.6vw,2.4rem);}
.cta-box p{color:var(--texto-2);max-width:560px;margin:0 auto 28px;}

.contact-form{max-width:680px;margin:0 auto;text-align:left;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.field{margin-bottom:14px;}
.field label{display:block;font-size:.82rem;font-weight:600;color:var(--texto-2);margin-bottom:6px;}
.input{width:100%;padding:13px 15px;border-radius:12px;background:rgba(0,0,0,.3);border:1px solid var(--borda);color:var(--texto);font:inherit;font-size:.92rem;transition:all var(--trans);}
.input::placeholder{color:rgba(143,168,199,.55);}
.input:focus{outline:none;border-color:var(--ciano);background:rgba(0,0,0,.45);}
.input.invalid{border-color:#EF4444;background:rgba(239,68,68,.08);}
textarea.input{resize:vertical;min-height:100px;font-family:inherit;}
select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238FA8C7' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px;padding-right:42px;}
.error-msg{font-size:.74rem;color:#FCA5A5;margin-top:5px;display:none;}
.error-msg.show{display:block;}
.form-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:8px;}

/* FOOTER */
.footer{padding:60px 0 28px;border-top:1px solid var(--borda);margin-top:60px;}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:40px;margin-bottom:44px;}
.footer p,.footer li{font-size:.88rem;color:var(--texto-2);}
.footer li{margin-bottom:10px;}
.footer h4{font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ciano);margin-bottom:18px;}
.footer a:hover{color:var(--ciano);}
.footer-bottom{padding-top:24px;border-top:1px solid var(--borda);display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;font-size:.8rem;color:var(--texto-2);}
.admin-link{color:var(--texto-2);border-bottom:1px dashed var(--texto-2);transition:all var(--trans);}
.admin-link:hover{color:var(--ciano);border-color:var(--ciano);}
.socials{display:flex;gap:10px;margin-top:18px;}
.social{width:40px;height:40px;border-radius:12px;background:var(--vidro);border:1px solid var(--borda);display:grid;place-items:center;transition:all var(--trans);}
.social:hover{border-color:var(--ciano);background:rgba(34,211,238,.1);transform:translateY(-2px);}
.social svg{width:18px;height:18px;fill:currentColor;}

/* TOAST */
.toast-wrap{position:fixed;bottom:22px;left:22px;z-index:1100;display:flex;flex-direction:column;gap:10px;max-width:min(380px,calc(100vw - 44px));}
.toast{display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:14px;background:rgba(14,30,54,.97);border:1px solid var(--borda);box-shadow:var(--sombra);font-size:.88rem;backdrop-filter:blur(14px);animation:toastIn .35s cubic-bezier(.2,.9,.3,1.3);}
.toast.out{animation:toastOut .3s forwards;}
.toast.success{border-color:rgba(34,197,94,.55);}
.toast.error{border-color:rgba(239,68,68,.55);}
.toast.info{border-color:rgba(34,211,238,.55);}
@keyframes toastIn{from{opacity:0;transform:translateY(18px) scale(.94);}to{opacity:1;transform:none;}}
@keyframes toastOut{to{opacity:0;transform:translateX(-24px);}}

/* ============================================================
   LOGO — círculo com imagem
   - Remove fundo preto da imagem (mix-blend-mode)
   - Garante círculo perfeito
   ============================================================ */
[data-logo-circle]{
  border-radius: 50%;
  overflow: hidden;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
}
[data-logo-circle] img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform-origin: center center;
  /* Remove fundo preto da imagem — fundo azul aparece no lugar */
  mix-blend-mode: screen;
}
/* Quando o logo-mark tem imagem dentro, removemos o gradiente do fundo */
.logo-mark:has(img){
  background: transparent !important;
  box-shadow: none !important;
}

/* RESPONSIVO */
@media (max-width:1024px){
  .hero-grid{grid-template-columns:1fr;}
  .code-window{order:-1;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:768px){
  .nav{position:fixed;top:72px;left:0;right:0;flex-direction:column;align-items:stretch;gap:4px;background:rgba(6,18,36,.98);backdrop-filter:blur(18px);padding:20px;border-bottom:1px solid var(--borda);transform:translateY(-120%);transition:transform .3s;}
  .nav.show{transform:translateY(0);}
  .nav a{padding:12px 14px;}
  .menu-toggle{display:grid;}
  .header-cta .btn-primary{display:none;}
  .form-row{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .container{width:calc(100% - 2rem);}
  .footer-grid{grid-template-columns:1fr;gap:28px;}
  .hero-stat strong{font-size:1.3rem;}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;}
}