/* ============================================================
   BASE — tokens + chrome compartilhado por todas as páginas
   (nav, menu mobile, footer, botões, layout de projeto, cursores)
   Cor de destaque do site: #55FF00
   ============================================================ */
:root{
  --bg:#F6F7F5;
  --panel:#FFFFFF;
  --ink:#12141A;
  --dim:#70747C;
  --line:#E4E5E1;

  /* destaque verde */
  --accent:#55FF00;          /* highlight principal (fundos, texto sobre escuro) */
  --accent-strong:#37C300;   /* verde legível como TEXTO sobre fundo claro */
  --accent-soft:#EAFFD6;      /* wash claro para hover */
  --accent-ink:#0F1A00;       /* verde quase preto para gradientes */

  /* cores de assinatura de cada projeto (usadas nos eyebrows) */
  --aj:#8A6A3F;
  --np:#5B45E0;
  --tw:#0FB8AE;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter', sans-serif;
  -webkit-font-smoothing:antialiased;
  cursor: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACrElEQVR4nMWWP2jbUBCHvxdCYvBQjaYE4s0a1U4Z36ihg8eMypap1SjootHdRKHgrepSPJouEbSD6WQ6CbqoUIqWFkPXpnlNC9fBkSznj5ETx/7BLe/u6b47nZ4e7PEVeMoGJRf2bHMALzYLIc0UaSabg5DmJ+TB911pvl0/xBYABuQ3bHV24SUA0bogZgCnIL+E5v4OPF8vhDSHCO8QDjhn9lUU9vg+k28DnH4D3vCPn3wEXlX858Dn+wRQTKuEh3zgB0+APzW2iY47cysj7wsganmEJn/Z4z2wW2+DEh3bYpnGnOnYFlCyPAA8AnbuknwVEHdOvgYIJZZpSBxoMYZrLQ60WKZxHwDT6hclr0Is04WtRc440JIOe+LrfZzYcOBYAOTD7lxcPuwyCDUAh+EIJzb4ep902JM40Lfvhq/bYvJETJ6U1V/XhQJ0LuZin6/bCwEWdiAa5SrwjsnSlHScMwh12YWi8sBt4xy42I5TrgFkaUrgHRON8lucDZfk67YYg/i6LdmgK9mgK3GgxddtSYe9strp65rF3jnxTKpsLagryYvEhc8YVjOEVeXDLuk4x5gzoiwBKNseR31GVoYxZ6Tj/MqQrkhKQInJE3G6RowxZeuNMdO1PJEiru5Tt+sDiAIlg36PcQRMKq7JiHEEg36vEltPS0yoksS8JnFDADz/eM4bR30A3CTEbRzVhqgJME0OcBj2cOzro9IMBmEwBakJUWMIlZj8BD1p4TaO8MbmxkhvbHAbR+hJC5OfUGcWas1AlqbYjoMVdIjDHM9tAdBLcgACtw1AnEywwk65Z4VS5XRXf7vFUVz9TVdjV0kwB7L4RnSPF5LMtiWw7EtVziywbMns5S4ktU/CQl4LAqu4kIoqJj2wOnitZZ+21DkA85Vd/sQW+W7WfzwkCMdnbiLyAAAAAElFTkSuQmCC") 0 0, auto;
}
::selection{background:var(--accent);color:#0F1A00;}

h1,h2,h3,.display{
  font-family:'Space Grotesk', sans-serif;
  font-weight:500;
  letter-spacing:-0.02em;
  margin:0;
}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  text-transform:uppercase;
  letter-spacing:0.12em;
  font-size:11.5px;
  color:var(--dim);
}
a{color:inherit;text-decoration:none;}
p{margin:0;}

/* TOP NAV */
.topnav{
  position:fixed;
  top:0; left:0; right:0;
  z-index:60;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:22px 44px;
  background:rgba(246,247,245,0.82);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.logo{
  font-family:'Space Grotesk', sans-serif;
  font-weight:600;
  font-size:17px;
  letter-spacing:-0.02em;
}
.logo .dot{color:var(--accent-strong);}
.nav-links{
  display:flex;
  align-items:center;
  gap:34px;
  list-style:none;
  margin:0;padding:0;
}
.nav-link{
  font-size:13.5px;
  color:var(--dim);
  cursor:pointer;
  position:relative;
  padding:4px 0;
  transition:color .2s ease;
}
.nav-link::after{
  content:'';
  position:absolute;
  left:0;bottom:-2px;
  height:1px;width:0;
  background:var(--ink);
  transition:width .25s ease;
}
.nav-link:hover, .nav-link.active{color:var(--ink);}
.nav-link:hover::after, .nav-link.active::after{width:100%;}
.nav-cta{
  font-size:15px;
  font-weight:500;
  padding:10px 18px;
  border-radius:999px;
  background:var(--ink);
  color:#fff;
}
.nav-cta:hover{background:var(--accent);color:#0F1A00;border-color:var(--accent);transform:translateY(-1px);}

.nav-mobile-toggle{display:none;}

.has-dropdown{position:relative;}
.dropdown{
  position:absolute;
  top:calc(100% + 18px);
  left:50%;
  transform:translateX(-50%) translateY(-6px);
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:14px;
  padding:8px;
  min-width:170px;
  display:flex;
  flex-direction:column;
  gap:2px;
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease, transform .2s ease;
  box-shadow:0 20px 40px rgba(18,20,26,0.12);
}
.has-dropdown:hover .dropdown{
  opacity:1;
  pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
.dropdown-item{
  display:block;
  font-size:13.5px;
  color:var(--dim);
  padding:9px 14px;
  border-radius:8px;
  cursor:pointer;
  transition:background .15s ease, color .15s ease;
}
.dropdown-item:hover{background:var(--accent-soft);color:var(--accent-strong);}

/* SOCIAL ICONS */
.social-row{display:flex;gap:16px;}
.social-icon{
  width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  color:var(--dim);
  transition:color .2s ease, transform .2s ease;
  border-radius:50%;
}
.social-icon svg{width:20px;height:20px;}
.social-icon:hover{color:var(--accent-strong);transform:translateY(-2px);}

/* MAIN / PAGE / WRAP */
.main{padding-top:88px;}
.page{display:none;animation:fadeIn .45s ease;}
.page.active{display:block;}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
.wrap{max-width:1040px;margin:0 auto;padding:70px 44px 140px;}
@media (max-width:900px){.wrap{padding:40px 22px 100px;}}

/* BOTÕES */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 22px;border-radius:999px;
  font-size:13.5px;font-weight:500;cursor:pointer;
  border:1px solid var(--line);
  transition:all .2s ease;
}
.btn-primary{background:var(--ink);color:#fff;border-color:var(--ink);}
.btn-primary:hover{background:var(--accent);color:#0F1A00;border-color:var(--accent);transform:translateY(-1px);}
.btn-ghost{color:var(--ink);background:var(--panel);}
.btn-ghost:hover{border-color:var(--ink);}

/* CURSOR PREVIEW (usado na home) */
.preview-float{
  position:fixed;
  top:0;left:0;
  width:220px;
  aspect-ratio:4/3;
  border-radius:14px;
  overflow:hidden;
  pointer-events:none;
  z-index:200;
  opacity:0;
  transform:translate(-50%,-50%) scale(.9);
  transition:opacity .25s ease, transform .25s ease;
  box-shadow:0 20px 50px rgba(18,20,26,0.25);
  background:#fff;
}
.preview-float.show{opacity:1;transform:translate(-50%,-50%) scale(1);}
.preview-float img{width:100%;height:100%;object-fit:cover;display:block;}

/* LAYOUT DE PROJETO (compartilhado) */
.proj-head{
  display:flex;justify-content:space-between;align-items:flex-end;
  gap:24px;flex-wrap:wrap;
  border-bottom:1px solid var(--line);
  padding-bottom:32px;
}
.proj-head h1{font-size:clamp(32px,5vw,56px);}
.proj-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;}
.tag{
  font-size:11.5px;font-family:'IBM Plex Mono', monospace;
  padding:5px 11px;border:1px solid var(--line);
  border-radius:999px;color:var(--dim);background:var(--panel);
}
.proj-meta{text-align:right;font-size:13px;color:var(--dim);line-height:1.7;}
.proj-meta b{color:var(--ink);font-weight:500;}
@media (max-width:900px){.proj-head{flex-direction:column;align-items:flex-start;}.proj-meta{text-align:left;}}
.proj-cover{margin-top:46px;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:var(--panel);}
.proj-cover img{width:100%;display:block;}
.proj-body{margin-top:58px;display:grid;grid-template-columns:1fr 1.6fr;gap:60px;}
.proj-body h3{font-size:13px;text-transform:uppercase;letter-spacing:0.08em;color:var(--dim);font-family:'IBM Plex Mono',monospace;font-weight:400;}
.proj-body p{font-size:15.5px;line-height:1.75;color:var(--ink);margin-top:14px;}
@media (max-width:900px){.proj-body{grid-template-columns:1fr;gap:24px;}}
.proj-shots{margin-top:50px;display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;}
.proj-shots .shot{border-radius:14px;overflow:hidden;border:1px solid var(--line);background:var(--panel);}
.proj-shots .shot img{width:100%;height:auto;display:block;}
.proj-shots .shot.full{grid-column:1/-1;}
@media (max-width:900px){.proj-shots{grid-template-columns:1fr;}}
.proj-footer{
  margin-top:80px;padding-top:36px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;
}
.proj-footer .next{font-size:13px;color:var(--dim);}
.proj-footer .next .t{font-family:'Space Grotesk',sans-serif;font-size:20px;color:var(--ink);margin-top:4px;font-weight:500;cursor:pointer;transition:color .2s ease;}
.proj-footer .next a.t:hover{color:var(--accent-strong);}

/* WHATSAPP FAB */
.wa-fab{
  position:fixed;right:32px;bottom:32px;z-index:100;
  display:flex;align-items:center;gap:10px;
  background:var(--ink);color:#fff;
  padding:14px 20px;border-radius:999px;
  font-size:13.5px;font-weight:500;
  box-shadow:0 10px 30px rgba(18,20,26,.25);
  transition:transform .2s ease, background .2s ease, color .2s ease;
}
.wa-fab:hover{transform:translateY(-3px);background:var(--accent);color:#0F1A00;}
.wa-fab svg{width:17px;height:17px;color:#25D366;}
.wa-fab:hover svg{color:#0F1A00;}

/* HAMBURGER + MENU MOBILE */
.hamburger-btn{
  display:none;
  background:none;border:none;cursor:pointer;
  width:38px;height:38px;
  align-items:center;justify-content:center;
  font-size:19px;color:var(--ink);
  border-radius:8px;
  transition:background .2s ease;
}
.hamburger-btn:hover{background:var(--accent-soft);}
.mobile-menu-overlay{
  display:none;
  position:fixed;inset:0;
  z-index:200;
  background:rgba(15,17,22,0.45);
  backdrop-filter:blur(2px);
  opacity:0;
  pointer-events:none;
  transition:opacity .3s ease;
}
.mobile-menu-overlay.open{opacity:1;pointer-events:auto;}
.mobile-menu-panel{
  position:absolute;top:0;right:0;bottom:0;
  width:min(84vw, 340px);
  background:var(--bg);
  box-shadow:-20px 0 50px rgba(0,0,0,0.2);
  padding:22px 26px 40px;
  display:flex;flex-direction:column;
  transform:translateX(100%);
  transition:transform .35s cubic-bezier(.16,.84,.44,1);
}
.mobile-menu-overlay.open .mobile-menu-panel{transform:translateX(0);}
.mobile-menu-top{
  display:flex;align-items:center;justify-content:space-between;
  padding-bottom:24px;margin-bottom:14px;
  border-bottom:1px solid var(--line);
}
.mobile-menu-link{
  display:block;
  font-family:'Space Grotesk', sans-serif;
  font-size:21px;font-weight:500;
  color:var(--ink);
  padding:14px 4px;
  border-bottom:1px solid var(--line);
}
.mobile-menu-link.active{color:var(--accent-strong);}
.mobile-menu-cta{
  margin-top:auto;
  display:flex;align-items:center;justify-content:center;gap:10px;
  background:var(--ink);color:#fff;
  padding:15px;border-radius:999px;
  font-size:14.5px;font-weight:500;
}
.mobile-menu-cta i{color:#25D366;font-size:18px;}
@media (max-width:900px){
  .nav-links{display:none;}
  .topnav{padding:16px 20px;}
  .main{padding-top:64px;}
  .hamburger-btn{display:flex;}
  .mobile-menu-overlay{display:block;}
}

/* FOOTER */
.site-footer{
  background:var(--ink);
  color:var(--bg);
  padding:80px 44px 32px;
}
.footer-inner{max-width:1040px;margin:0 auto;}
.footer-top{
  display:flex;justify-content:space-between;align-items:flex-end;
  gap:32px;flex-wrap:wrap;
  padding-bottom:48px;
  border-bottom:1px solid rgba(255,255,255,0.12);
}
.footer-top h2{
  font-size:clamp(28px,4.4vw,46px);
  color:#fff;
  max-width:520px;
  line-height:1.05;
}
.footer-cta{display:flex;flex-direction:column;gap:10px;align-items:flex-start;text-decoration:none;}
.footer-email{
  font-size:15px;color:var(--bg);
  border-bottom:1px solid rgba(255,255,255,0.3);
  padding-bottom:3px;
  transition:border-color .2s ease, color .2s ease;
}
.footer-email:hover{color:var(--accent);border-color:var(--accent);}
.footer-cols{
  display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap;
  padding:44px 0;
  border-bottom:1px solid rgba(255,255,255,0.12);
}
.footer-col{min-width:140px;}
.footer-col .ft-label{
  font-family:'IBM Plex Mono', monospace;
  font-size:11px;text-transform:uppercase;letter-spacing:0.1em;
  color:rgba(246,247,245,0.45);
  margin-bottom:14px;
}
.footer-col a, .footer-col span{
  display:block;
  font-size:13.5px;
  color:rgba(246,247,245,0.85);
  margin-bottom:10px;
  cursor:pointer;
  transition:color .2s ease;
  width:fit-content;
}
.footer-col a:hover{color:var(--accent);}
.footer-social{display:flex;gap:16px;margin-top:14px;}
.footer-social .social-icon{color:rgba(246,247,245,0.7);}
.footer-social .social-icon:hover{color:var(--accent);}
.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:12px;
  padding-top:24px;
  font-size:12px;
  color:rgba(246,247,245,0.45);
}
@media (max-width:900px){
  .site-footer{padding:60px 22px 24px;}
  .footer-top{flex-direction:column;align-items:flex-start;}
  .footer-cols{gap:36px;}
  .footer-col{min-width:120px;}
}
@media (max-width:520px){
  .topnav{padding:16px 18px;}
  .logo{font-size:15.5px;}
  .nav-cta{padding:9px 14px;font-size:12px;}
  .proj-tags{gap:6px;}
  .tag{font-size:10.5px;padding:4px 9px;}
  .wa-fab{right:18px;bottom:18px;}
  .footer-top h2{font-size:26px;}
  .footer-cols{flex-direction:column;gap:28px;}
}

/* ==================== CURSORES CUSTOMIZADOS ==================== */
p, h1, h2, h3, .eyebrow, .lede, .about-lead, .about-main p, .proj-body p,
.contact-box p, .proj-meta, .tag, .footer-col span{
  cursor: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABOklEQVR4nO2XvW3DMBCFnwzt4ElSMYBvhuziInBNsNAumYFFXGUALWPgUvDHJ0GiaFNUxQcIkHhHvY9H4UwDeWJ/7a5Tjrm1FtbaAHIoAHtjAKgCkVOBqmoADaABNIAUQOyCRAQiArB/N1wDmJgH1YDoErHJ74CUB0nNzVZqCzq5+hrmWwCHqF8Z39rfEC+uRLduNsQ7az8AAER/In5NvTNbp6dZuNyz0g/w6EwuZ8LlTAAQx2TudO5rCrQcTO+3Hko/YsLv1/dkwuePifch937r4StStCUMDKy0YaVNOISy0oZ5BPPo4nLc5Q1FB9Y5MbtSPsssqwFArhYi9+2VL01kMc5KG2GMuaHMfUtLfWDxhfNKpHJLAQ5VA0ieB5aby+Bj9QE64Cq+/qDyhjMz2ZSoxL7mr6ja3/N/F+F5JLIcTUoAAAAASUVORK5CYII=") 0 0, text;
}
a, button, .btn, .nav-link, .dropdown-item, .g-item, .index-row,
.social-icon, .hamburger-btn, .mobile-menu-link, .mobile-menu-cta,
.footer-col a, .nav-cta, .wa-fab{
  cursor: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACsUlEQVR4nO2XIZDbMBBFvzqdqaGh2YlF0LCsgi46w0AfCzQ0DDQ0DDtBQxedoY8FCjrMYYZhp6ItcKPYiTvXKp6WdGcWaCXPf4p2tQrgaLnakeu3Y/vgKi64WATio6s4F/xebTcAAOCCQ/gBIO4HcDoC4Qf3K98DsKT9B/jnAE5V8L4x8rMVwlGV6BY45S37CwCMfPMJQAd9NSOFoGsQ5yMQFb+JpZJTWz6ih0EPg7CcrtHrDth2AJjrDcooOgXEy4C0MsTLgKJTQACjVHIyBrMulSDfeBN3hGDEy+DnxxcYgFFbxr8EMAakMmnFpRIW4CYpfgfCdC8AAI9/BQCY7gVZskFed3ZVV8XgcTUZ7/UJSvQ21iQHtxxotR6NiLVao2iOKLfSRnlcTcZn0+107ATQRwGaoEdtngEwUsUOYfyGJH9FV8WTtV0V293PgTgAEIu8p0mkaI4AAGPesNtpeB5DV8XQ+84K630HAEj2BqEyaD4nUNmXP5cfjFFtlPUhL2oyxpCuctJVTmFsyBhDqeSUSk4qk2QMhmrpajJdTank5HgP3P4K5S4H+gYiDCHC0MaTdIMk3UzWtlojSzYomuM9veACUZtnJPnrJDn3JSwQcDmCojlCFTvoxAPgVIbXxmhIRiDynpDKh5sdq2KHojmiLR8h1t8AEPMzQaf8sATABSLynuBnKyR7Y2fOOx16wAEATTQXaseX4wjFIBrVWysOAOU2m/1y0fdAKh+GhgMgL3MbP9f8+d5YUnNkjPxMTJrS9d1/XbrAIkl4AZBqBb3u0GPIgSzidlbVPU7ed9TmGbIfXtXnXrIYwPAY8WZdKkF+JuylpavctSXPi7dCUOYPAtf9XyoxasFjX8wGgDHEnGf+sGYsvtCbkJhoDzQeXwNm/grJzB+qBZPwPWOzgD8A1gfPF4MpjtQAAAAAElFTkSuQmCC") 14 0, pointer;
}
