
  :root{
    --bg:#ffffff;
    --bg-raise:#e5e5ea;
    --bg-raise-2:#d4d4da;
    --ink:#1d1d1f;
    --muted:#6e6e73;
    --line: rgba(0,0,0,0.14);
    --accent:#0071e3;
    --accent-ink:#ffffff;
    --teal:#48484a;
    --teal-ink:#ffffff;
    --serif-tight: -0.02em;
    --maxw: 1180px;

    /* ---- responsive spacing scale (single source of truth) ---- */
    --sp-section-y: min(16vh,130px);      /* default vertical rhythm of a section */
    --sp-section-y-tight: min(4vh,36px);  /* tighter sections (clients) */
    --sp-section-y-end: min(6vh,48px);
    --sp-services-top: clamp(84px,12vh,110px);
    --sp-services-bottom: clamp(24px,5vh,56px);
    --sp-head-gap: 56px;                  /* heading block -> content */
    --sp-cta-gap: 24px;                   /* content -> CTA button */
    --sp-founder-y: clamp(70px,9vw,120px);
    --sp-cube-vh: 100vh;                  /* height of the sticky cube stage */
    --sp-dash-top: 40px;
    --sp-hero-top: 0px;                   /* hero is vertically centered on desktop */
    --sp-hero-bottom: 0px;
    --sp-hero-cta-gap: 40px;              /* copy -> hero CTA */
    --sp-card-gap: 24px;                  /* gap inside/between cards */
    --sp-grid-gap: 32px;                  /* multi-column grids (stats, dash) */
    --sp-grid-gap-lg: 56px;
    --sp-stack-gap: 44px;                 /* stacked blocks on small screens */
  }
  @media (max-width:900px){
    :root{
      --sp-hero-top: 96px;
      --sp-hero-bottom: 64px;
      --sp-grid-gap-lg: 36px;
    }
  }
  @media (max-width:760px){
    :root{
      --sp-section-y: 44px;
      --sp-section-y-tight: 32px;
      --sp-section-y-end: 24px;
      --sp-services-top: 64px;
      --sp-services-bottom: 20px;
      --sp-head-gap: 20px;
      --sp-cta-gap: 12px;
      --sp-founder-y: 28px;
      --sp-cube-vh: 64vh;
      --sp-dash-top: 40px;
      --sp-hero-top: 96px;
      --sp-hero-bottom: 64px;
      --sp-hero-cta-gap: 28px;
      --sp-card-gap: 18px;
      --sp-grid-gap: 24px;
      --sp-grid-gap-lg: 36px;
      --sp-stack-gap: 44px;
    }
  }
  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ background:var(--bg); scroll-behavior:auto; }
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:'IBM Plex Sans', sans-serif;
    font-size:16px;
    line-height:1.5;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
  }
  ::selection{ background:var(--accent); color:var(--accent-ink); }
  a{ color:inherit; }
  .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 clamp(20px,4vw,48px); position:relative; z-index:2; }

  /* ambient background texture: dot grid + drifting gradient blobs */
  .bg-texture{
    position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden;
  }
  .bg-texture .dots{
    position:absolute; inset:-2px;
    background-image:radial-gradient(rgba(0,0,0,0.06) 1px, transparent 1.4px);
    background-size:26px 26px;
    opacity:0.5;
  }
  .bg-texture .blob{
    position:absolute;
    border-radius:50%;
    filter:blur(100px);
    opacity:0.35;
  }
  .bg-texture .blob-1{
    width:520px; height:520px; top:-120px; right:-140px;
    background:radial-gradient(circle, rgba(0,113,227,0.14), transparent 70%);
    animation: drift1 26s ease-in-out infinite;
  }
  .bg-texture .blob-2{
    width:460px; height:460px; top:60vh; left:-160px;
    background:radial-gradient(circle, rgba(110,110,115,0.16), transparent 70%);
    animation: drift2 32s ease-in-out infinite;
  }
  .bg-texture .blob-3{
    width:380px; height:380px; top:140vh; right:-100px;
    background:radial-gradient(circle, rgba(0,113,227,0.09), transparent 70%);
    animation: drift1 24s ease-in-out infinite reverse;
  }
  @keyframes drift1{
    0%,100%{ transform:translate(0,0) scale(1); }
    50%{ transform:translate(-40px,50px) scale(1.12); }
  }
  @keyframes drift2{
    0%,100%{ transform:translate(0,0) scale(1); }
    50%{ transform:translate(50px,-30px) scale(1.08); }
  }
  section, nav, footer, .hero{ position:relative; z-index:2; }
  @media (prefers-reduced-motion: reduce){
    .bg-texture .blob{ animation:none; }
  }
  h1,h2,h3{
    font-family:'Bricolage Grotesque', sans-serif;
    letter-spacing:var(--serif-tight);
    font-weight:600;
    line-height:1.04;
  }
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--accent);
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:16px; height:1px;
    background:var(--accent);
    display:inline-block;
  }
  .btn{
    font-family:'IBM Plex Mono', monospace;
    font-size:13px;
    letter-spacing:0.02em;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:14px 22px;
    border-radius:100px;
    border:1px solid var(--line);
    transition:border-color .25s ease, transform .25s ease, background .25s ease, color .25s ease;
    white-space:nowrap;
  }
  .btn-primary{
    position:relative;
    overflow:hidden;
    isolation:isolate;
    background:#aaabad;
    color:#000000;
    border-color:#aaabad;
    font-weight:600;
    transition:border-color .4s cubic-bezier(.65,0,.35,1), transform .25s ease, color .4s cubic-bezier(.65,0,.35,1);
  }
  .btn-primary::before{
    content:"";
    position:absolute;
    inset:0;
    background:#000000;
    transform:scaleX(0);
    transform-origin:left center;
    transition:transform .4s cubic-bezier(.65,0,.35,1);
    z-index:0;
  }
  .btn-primary > *{ position:relative; z-index:1; }
  .btn-primary:hover{
    border-color:#000000;
    color:#ffffff;
    transform:translateY(-2px);
  }
  .btn-primary:hover::before{ transform:scaleX(1); }
  .btn-ghost{ color:var(--ink); }
  .btn-ghost:hover{ border-color:var(--ink); }
  .btn-ghost svg, .btn-primary svg{ width:12px; height:12px; }

  /* progress bar */
  #progress{
    position:fixed; top:0; left:0; height:2px; width:100%;
    background:var(--accent);
    transform-origin:0 50%;
    transform:scaleX(0);
    z-index:1000;
  }

  /* nav */
  nav{
    position:fixed; top:0; left:0; right:0; z-index:900;
    padding:22px clamp(20px,4vw,48px);
    display:flex; align-items:center; justify-content:space-between;
    transition:background .3s ease, border-color .3s ease, padding .3s ease;
    border-bottom:1px solid transparent;
  }
  nav.scrolled{
    background:rgba(255,255,255,0.75);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    border-bottom-color:var(--line);
    padding-top:14px; padding-bottom:14px;
  }
  .logo{
    font-family:'Bricolage Grotesque', sans-serif;
    font-weight:800;
    font-size:36px;
    letter-spacing:-0.01em;
    text-decoration:none;
    display:flex; align-items:center; gap:8px;
  }
  .logo .dot{ width:8px; height:8px; border-radius:50%; background:var(--accent); }
  .nav-links{ display:flex; align-items:center; gap:32px; }
  .nav-links a{
    font-family:'IBM Plex Mono', monospace;
    font-size:13px;
    text-decoration:none;
    color:var(--muted);
    transition:color .2s ease;
    text-transform:uppercase;
    letter-spacing:.04em;
  }
  .nav-links a:hover{ color:var(--ink); }
  .nav-links a.btn-primary{ color:#000000; }
  .nav-links a.btn-primary:hover{ color:#ffffff; }
  .mobile-sticky-cta{ display:none; }

  /* Botão flutuante do WhatsApp (desktop) */
  .wa-float{
    position:fixed;
    right:24px;
    bottom:24px;
    z-index:120;
    width:58px;
    height:58px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#25D366;
    color:#ffffff;
    box-shadow:0 10px 26px rgba(37,211,102,.38), 0 2px 8px rgba(0,0,0,.18);
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .wa-float .wa-icon{ width:32px; height:32px; }
  .wa-float:hover{ transform:translateY(-2px) scale(1.05); box-shadow:0 14px 32px rgba(37,211,102,.5); }
  @media (max-width:900px){ .wa-float{ display:none; } }

  @media (max-width:800px){ .nav-links a.hide-mobile{ display:none; } }
  @media (max-width:900px){
    nav.scrolled{ position:absolute; }
    nav.scrolled .nav-links a.btn-primary{ display:none; }
    body.is-scrolled .mobile-sticky-cta{
      display:flex;
      position:fixed;
      left:16px; right:16px;
      bottom:calc(16px + env(safe-area-inset-bottom, 0px));
      z-index:950;
      justify-content:center;
      padding:16px 20px !important;
      font-size:13px;
      box-shadow:0 12px 30px -10px rgba(0,0,0,0.35);
      align-items:center;
      gap:10px;
      background:#25D366 !important;
      border-color:#25D366 !important;
      color:#ffffff !important;
    }
    body.is-scrolled .mobile-sticky-cta:hover{
      background:#1EBE5B !important;
      border-color:#1EBE5B !important;
      color:#ffffff !important;
    }
    body.is-scrolled .mobile-sticky-cta .wa-icon{
      width:18px; height:18px; flex:none; display:block;
    }
    body{ padding-bottom:84px; }
  }
  @media (max-width:560px){
    nav{ padding-left:18px; padding-right:18px; gap:12px; }
    .logo{ font-size:26px; line-height:1; }
    .logo .dot{ width:9px; height:9px; }
  }



  /* HERO */
  .hero{
    position:relative;
    height:100vh;
    display:flex;
    align-items:center;
    overflow:hidden;
  }
  .hero-bg{
    position:absolute; inset:0;
    background:
      radial-gradient(circle at 82% 18%, rgba(0,113,227,0.08), transparent 42%),
      radial-gradient(circle at 12% 85%, rgba(110,110,115,0.1), transparent 45%);
    pointer-events:none;
  }
  .hero-inner{ position:relative; z-index:2; width:100%; display:grid; grid-template-columns:1.15fr 0.85fr; align-items:center; gap:24px; }
  @media (max-width:900px){ .hero-inner{ grid-template-columns:1fr; } }
  .hero-copy{ min-width:0; }
  .hero h1{
    font-size:clamp(38px, 5.6vw, 80px);
    max-width:15ch;
  }
  .hero-visual{
    position:relative;
    height:min(58vh, 460px);
    display:flex;
    align-items:center;
    justify-content:center;
  }
  @media (max-width:900px){ .hero-visual{ display:none; } }
  @media (max-width:900px){
    .hero{ height:auto; min-height:auto; padding-top:var(--sp-hero-top); padding-bottom:var(--sp-hero-bottom); }
  }

  .hero-visual svg{ width:100%; height:100%; overflow:visible; }
  .hero-visual .hv-card{
    position:absolute;
    background:rgba(255,255,255,0.8);
    border:1px solid var(--line);
    border-radius:14px;
    padding:14px 18px;
    box-shadow:0 18px 40px -20px rgba(0,0,0,0.25);
    -webkit-backdrop-filter:blur(6px);
    backdrop-filter:blur(6px);
    font-family:'IBM Plex Mono', monospace;
  }
  .hero-visual .hv-card .hv-num{ font-family:'Bricolage Grotesque',sans-serif; font-size:21px; font-weight:600; color:var(--ink); line-height:1; }
  .hero-visual .hv-card .hv-lbl{ display:flex; align-items:center; gap:6px; font-size:10px; color:var(--muted); margin-top:5px; letter-spacing:0.04em; white-space:nowrap; }
  .hero-visual .hv-swatch{ width:14px; height:0; border-top:2px solid var(--accent); display:inline-block; flex:none; }
  .hero-visual .hv-swatch.dashed{ border-top-style:dashed; border-top-color:#7db8f0; }
  .hero-visual .hv-swatch.dotted{ border-top-style:dotted; border-top-color:#86868b; border-top-width:2.5px; }
  .hero-visual .hv-card-1{ top:3%; right:0%; animation: floaty 6s ease-in-out infinite; }
  .hero-visual .hv-card-2{ top:25%; right:0%; animation: floaty 7s ease-in-out infinite 0.6s; }
  .hero-visual .hv-card-3{ top:47%; right:0%; animation: floaty 6.5s ease-in-out infinite 1.1s; }
  @keyframes floaty{
    0%,100%{ transform:translateY(0); }
    50%{ transform:translateY(-10px); }
  }
  @media (prefers-reduced-motion: reduce){ .hero-visual .hv-card{ animation:none; } }
  .hero-word{ display:inline-block; opacity:1; color:var(--ink); }
  .hero-sub{
    margin-top:28px;
    max-width:46ch;
    color:var(--muted);
    font-size:clamp(15px,1.6vw,18px);
  }
  .hero-cta{ margin-top:var(--sp-hero-cta-gap); display:flex; gap:14px; flex-wrap:wrap; }
  .hero-scrollcue{
    position:absolute; bottom:38px; left:clamp(20px,4vw,48px);
    display:flex; align-items:center; gap:10px;
    font-family:'IBM Plex Mono', monospace;
    font-size:11px; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--muted);
  }
  .hero-scrollcue .line{ width:28px; height:1px; background:var(--muted); position:relative; overflow:hidden; }
  .hero-scrollcue .line::after{
    content:""; position:absolute; inset:0; background:var(--accent);
    animation: cue 1.8s ease-in-out infinite;
  }
  @keyframes cue{ 0%{ transform:translateX(-100%);} 50%{ transform:translateX(0);} 100%{ transform:translateX(100%);} }

  /* THESIS / intro reveal */
  section{ position:relative; padding:min(18vh,150px) 0; }
  .thesis{
    padding-top:min(12vh,100px);
    padding-bottom:min(12vh,100px);
  }
  .thesis p{
    font-family:'Bricolage Grotesque', sans-serif;
    font-size:clamp(24px, 3.6vw, 46px);
    line-height:1.25;
    font-weight:500;
    max-width:24ch;
  }
  .reveal-word{ color:var(--muted); transition:none; }

  /* STATS */
  .stats{
    background:linear-gradient(to bottom, transparent, var(--bg-raise) 90px, var(--bg-raise) calc(100% - 90px), transparent);
    padding:min(10vh,80px) 0;
  }
  .stats-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:var(--sp-grid-gap);
  }
  @media (max-width:760px){
    .stats-grid{ grid-template-columns:1fr; gap:var(--sp-stack-gap); }
    .stat{ text-align:center; }
    .stat-label{ margin-left:auto; margin-right:auto; }
    .thesis{ padding-bottom:var(--sp-section-y); }
    .stats{ padding-top:var(--sp-section-y); }
  }
  .stat-num{
    font-family:'Bricolage Grotesque', sans-serif;
    font-size:clamp(40px,5.6vw,68px);
    font-weight:600;
    color:var(--ink);
    line-height:1;
  }
  .stat-label{
    margin-top:10px;
    color:var(--muted);
    font-size:14px;
    max-width:24ch;
  }

  /* SERVICES horizontal pin */
  .services{
    overflow:hidden;
    height:100vh;
    height:100dvh;
    padding:var(--sp-services-top) 0 var(--sp-services-bottom);
    display:flex;
    flex-direction:column;
    justify-content:center;
    background:linear-gradient(to bottom, transparent, var(--bg-raise) 100px, var(--bg-raise) calc(100% - 100px), transparent);
  }
  .services-head{ margin-bottom:clamp(20px,3.5vh,40px); text-align:center; flex:0 0 auto; position:relative; z-index:1; }
  .services-head h2{ font-size:clamp(24px,3vw,40px); max-width:26ch; margin-left:auto; margin-right:auto; text-wrap:balance; }
  .services-head .eyebrow{ justify-content:center; }
  .services-track{
    position:relative;
    z-index:5;
    isolation:isolate;
    flex:1 1 auto;
    min-height:0;
    max-height:640px;
    padding:0 clamp(20px,4vw,48px);
  }

  .service-card{
    position:absolute;
    inset:0;
    margin:auto;
    width:min(92vw, 880px);
    height:100%;
    background:var(--bg-raise-2);
    border:1px solid var(--line);
    border-radius:24px;
    padding:clamp(28px,4vw,56px);
    display:flex;
    flex-direction:column;
    gap:var(--sp-card-gap);
    overflow:hidden;
    will-change:transform, opacity;
  }
  .service-card h3{ font-size:clamp(26px,3.4vw,44px); }
  .service-card p{ max-width:56ch; font-size:clamp(14.5px,1.3vw,18px); }
  .service-card .icon{ width:clamp(44px,4vw,64px); height:clamp(44px,4vw,64px); }
  .service-card .icon svg{ width:50%; height:50%; }
  .service-card::before{
    content:"";
    position:absolute; top:0; left:0; right:0; height:2px;
    background:linear-gradient(90deg, var(--accent), transparent 70%);
    opacity:0.6;
  }
  .service-card .icon{
    width:44px; height:44px;
    border-radius:12px;
    background:rgba(0,113,227,0.12);
    border:1px solid rgba(0,113,227,0.3);
    display:flex; align-items:center; justify-content:center;
    color:var(--accent);
  }
  .service-card .icon svg{ width:22px; height:22px; }
  .service-card .top-row{ display:flex; align-items:center; gap:14px; }
  .service-card .top-row .n{ margin-left:auto; }
  .service-card{
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(0,0.9fr);
    gap:clamp(20px,3vw,44px);
    align-items:stretch;
  }
  .service-body{ display:flex; flex-direction:column; gap:18px; min-width:0; }
  .service-media{
    margin:0;
    border-radius:18px;
    overflow:hidden;
    border:1px solid var(--line);
    background:var(--bg-raise);
    min-height:0;
  }
  .service-media img{ width:100%; height:100%; object-fit:cover; display:block; }
  @media (max-width:900px){
    .service-card{ grid-template-columns:1fr; }
    .service-media{ display:none; }
  }
  .service-card .n{
    font-family:'IBM Plex Mono', monospace;
    color:var(--accent);
    font-size:13px;
  }
  .service-card h3{ font-size:26px; margin-top:0; }
  .service-body{ justify-content:flex-start; }
  .service-card p{ color:var(--muted); font-size:14.5px; }
  .service-list{
    list-style:none;
    margin:2px 0 0;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:10px;
  }
  .service-list li{
    position:relative;
    padding-left:26px;
    font-size:clamp(14px,1.15vw,16px);
    color:var(--ink);
    line-height:1.45;
  }
  .service-list li::before{
    content:'';
    position:absolute;
    left:0; top:0.35em;
    width:14px; height:8px;
    border-left:2px solid var(--accent);
    border-bottom:2px solid var(--accent);
    transform:rotate(-45deg);
  }
  .service-card .tag{
    align-self:center;
    flex:0 0 auto;
    font-family:'IBM Plex Mono', monospace;
    font-size:11px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    padding:6px 12px;
    border:1px solid var(--line);
    border-radius:100px;
    color:var(--muted);
  }

  /* PROCESS list (mobile fallback) */
  .process{ padding:var(--sp-section-y) 0; }
  .process-head{ margin-bottom:var(--sp-head-gap); max-width:640px; }
  .process-head h2{ font-size:clamp(28px,4vw,48px); }
  .rubik-mobile-list{ display:none; border-top:1px solid var(--line); }
  .process-row{
    display:grid;
    grid-template-columns:64px 1fr;
    column-gap:32px;
    align-items:start;
    padding:40px 0 40px 28px;
    border-bottom:1px solid var(--line);
    border-left:2px solid var(--line);
  }
  .process-row-index{
    font-family:'IBM Plex Mono', monospace;
    font-size:14px;
    color:var(--muted);
    padding-top:5px;
  }
  .process-row-top{
    display:flex;
    align-items:baseline;
    flex-wrap:wrap;
    gap:14px;
    margin-bottom:10px;
  }
  .process-row-top h4{
    font-family:'Bricolage Grotesque', sans-serif;
    font-size:clamp(19px,2.4vw,24px);
    font-weight:600;
  }
  .process-row-top .when{
    font-family:'IBM Plex Mono', monospace;
    font-size:11.5px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--muted);
  }
  .process-row-body p{
    color:var(--muted);
    font-size:15px;
    max-width:62ch;
  }

  /* PROCESS — Rubik's cube scroll-zoom sequence (desktop only) */
  .rubik-pin{ position:relative; height:600vh; }
  .rubik-sticky{
    position:relative;
    height:var(--sp-cube-vh);
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    perspective:1800px;
  }
  .rubik-box{
    position:relative;
    --cube-size:min(56vh,520px);
    width:var(--cube-size);
    height:var(--cube-size);
    transform-style:preserve-3d;
    will-change:transform;
  }
  .rubik-slab{
    position:absolute;
    inset:0;
    border-radius:28px;
  }
  .rubik-grid{
    position:absolute;
    inset:0;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    grid-template-rows:repeat(3,1fr);
    gap:12px;
    padding:16px;
    background:var(--bg-raise);
    border-radius:28px;
    box-shadow:0 40px 90px -30px rgba(0,0,0,0.35);
  }
  .rubik-cell{
    position:relative;
    border-radius:14px;
    background:#c4c4cb;
    border:2px solid #b3b3ba;
    padding:7%;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    opacity:0.7;
    overflow:hidden;
    transition:opacity .35s ease, background .5s ease, border-color .5s ease, transform .35s ease;
  }
  .rubik-cell.active{
    opacity:1;
    background:var(--bg);
    border-color:var(--accent);
    box-shadow:0 0 0 3px rgba(0,113,227,0.15);
  }
  .rubik-cell .rc-num{
    font-family:'IBM Plex Mono', monospace;
    font-size:clamp(10px,1vw,13px);
    color:var(--muted);
  }
  .rubik-cell .rc-title{
    font-family:'Bricolage Grotesque', sans-serif;
    font-weight:700;
    font-size:clamp(13px,2.1vw,21px);
    color:var(--ink);
    margin-top:4px;
    line-height:1.15;
    overflow-wrap:anywhere;
    hyphens:auto;
  }
  .rubik-cell .rc-when{
    font-family:'IBM Plex Mono', monospace;
    font-size:clamp(8px,0.75vw,10.5px);
    color:var(--accent);
    letter-spacing:0.05em;
    text-transform:uppercase;
    margin-top:3px;
    display:block;
  }
  .rubik-cell .rc-desc{
    font-size:clamp(9px,1vw,12.5px);
    color:var(--muted);
    margin-top:6px;
    line-height:1.35;
  }
  .rubik-grid.complete .rubik-cell{ opacity:1; background:var(--bg); }
  .rubik-grid.complete .rubik-cell.x-cell{
    background:var(--accent);
    border-color:var(--accent);
  }
  .rubik-grid.complete .rubik-cell.x-cell .rc-num,
  .rubik-grid.complete .rubik-cell.x-cell .rc-title,
  .rubik-grid.complete .rubik-cell.x-cell .rc-when,
  .rubik-grid.complete .rubik-cell.x-cell .rc-desc{
    color:#ffffff;
  }
  @media (max-width:760px){
    .rubik-pin{ display:block; height:520vh; }
    .rubik-mobile-list{ display:none; }
    .rubik-box{ --cube-size:min(74vw,360px); }
    .rubik-sticky{
      perspective:1200px;
      align-items:flex-start;
      height:100vh;
      box-sizing:border-box;
      overflow:visible;
      padding-top:calc((var(--sp-cube-vh) - min(74vw,360px)) / 2);
      padding-bottom:calc(min(74vw,360px) * 0.28);
    }
  }


  /* ---- Real 3D cube (six faces, true cube depth) ---- */
  .rubik-box{ transform-style:preserve-3d; }
  .cube-face{
    position:absolute;
    inset:0;
    border-radius:28px;
    backface-visibility:hidden;
    background:var(--bg-raise-2);
    box-shadow:inset 0 0 0 1px rgba(0,0,0,0.06);
  }
  .cube-front{ transform:translateZ(calc(var(--cube-size) / 2)); }
  .cube-back{ transform:rotateY(180deg) translateZ(calc(var(--cube-size) / 2)); background:#c9c9d0; }
  .cube-right{ transform:rotateY(90deg) translateZ(calc(var(--cube-size) / 2)); background:#bfbfc7; }
  .cube-left{ transform:rotateY(-90deg) translateZ(calc(var(--cube-size) / 2)); background:#bfbfc7; }
  .cube-top{ transform:rotateX(90deg) translateZ(calc(var(--cube-size) / 2)); background:#d8d8de; }
  .cube-bottom{ transform:rotateX(-90deg) translateZ(calc(var(--cube-size) / 2)); background:#b4b4bc; }
  .cube-face:not(.cube-front){
    display:grid;
    grid-template-columns:repeat(3,1fr);
    grid-template-rows:repeat(3,1fr);
    gap:12px;
    padding:16px;
  }
  .cube-face:not(.cube-front) > span{
    border-radius:14px;
    background:rgba(255,255,255,0.55);
    border:2px solid rgba(0,0,0,0.07);
    box-shadow:inset 0 1px 0 rgba(255,255,255,0.6);
  }
  .rubik-cell.is-clone{
    opacity:1;
    background:var(--bg);
    pointer-events:none;
  }
  .rubik-cell.is-clone.x-cell{
    background:var(--accent);
    border-color:var(--accent);
  }
  .rubik-cell.is-clone.x-cell .rc-num,
  .rubik-cell.is-clone.x-cell .rc-title,
  .rubik-cell.is-clone.x-cell .rc-when,
  .rubik-cell.is-clone.x-cell .rc-desc{ color:#ffffff; }


  /* CLIENTS MOSAIC — scroll-driven rows sliding at different speeds */
  .clients{ padding:var(--sp-section-y-tight) 0 var(--sp-section-y-end); }
  .clients-inner{ text-align:center; }
  .clients-inner h2{ margin-left:auto; margin-right:auto; }
  .clients-hint{
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px;
    color:var(--muted);
    margin-bottom:0;
  }
  .mosaic-wrap{
    position:relative;
    margin-top:36px;
    display:flex;
    flex-direction:column;
    gap:14px;
    overflow:hidden;
    -webkit-mask-image:linear-gradient(to bottom, transparent, black 6%, black 94%, transparent);
    mask-image:linear-gradient(to bottom, transparent, black 6%, black 94%, transparent);
  }
  .mosaic-row{
    position:relative;
    height:112px;
    overflow:hidden;
  }
  .mosaic-row-track{
    position:absolute;
    top:0; left:0;
    display:flex;
    gap:14px;
    will-change:transform;
  }
  .mosaic-tile{
    flex:none;
    width:200px;
    height:112px;
    border-radius:14px;
    background:var(--bg-raise-2);
    border:1px solid var(--line);
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:18px;
    transition:border-color .5s ease, background .5s ease, transform .25s ease, box-shadow .25s ease;
  }
  .mosaic-tile:hover{
    transform:translateY(-3px);
    box-shadow:0 12px 24px -12px rgba(0,0,0,0.55);
  }
  .mosaic-tile img{
    max-width:100%;
    max-height:100%;
    object-fit:contain;
    filter:grayscale(1) contrast(0.9);
    opacity:0.7;
    transition:filter .25s ease, opacity .25s ease;
  }
  .mosaic-tile:hover img{
    filter:none;
    opacity:1;
  }
  .mosaic-tile span{
    display:none;
    font-family:'Bricolage Grotesque', sans-serif;
    font-weight:600;
    font-size:15px;
    color:var(--muted);
    letter-spacing:-0.01em;
    line-height:1.25;
  }
  .mosaic-tile.logo-fallback span{ display:block; }
  .mosaic-tile.logo-fallback:hover span{ color:var(--ink); }
  @media (max-width:900px){
    .mosaic-row:nth-child(n+5){ display:none; }
    .mosaic-row{ height:92px; }
    .mosaic-tile{ width:160px; height:92px; }
    .mosaic-tile span{ font-size:13px; }
  }
  @media (max-width:560px){
    .mosaic-row:nth-child(n+4){ display:none; }
    .clients{ padding-bottom:var(--sp-section-y-tight); }
    .dash-section{ padding-top:var(--sp-dash-top); }
  }
  @media (prefers-reduced-motion: reduce){
    .mosaic-row-track{ transform:none !important; }
  }

  /* DASHBOARD MOCKUP */
  .dash-section{ padding:min(14vh,110px) 0; }
  .dash-wrap{
    display:grid;
    grid-template-columns:0.8fr 1.2fr;
    gap:var(--sp-grid-gap-lg);
    align-items:center;
  }
  @media (max-width:900px){ .dash-wrap{ grid-template-columns:1fr; gap:var(--sp-grid-gap-lg); } }
  .dash-copy h2{ font-size:clamp(26px,3.6vw,40px); max-width:14ch; }
  .dash-mock{
    border-radius:18px;
    border:1px solid var(--line);
    background:var(--bg-raise);
    box-shadow:0 40px 80px -30px rgba(0,0,0,0.6);
    overflow:hidden;
  }
  .dash-chrome{
    display:flex; align-items:center; gap:8px;
    padding:14px 16px;
    border-bottom:1px solid var(--line);
    background:var(--bg-raise-2);
  }
  .dash-chrome .dot{ width:9px; height:9px; border-radius:50%; display:inline-block; }
  .dash-chrome .r{ background:#ff6157; }
  .dash-chrome .y{ background:#ffbd2e; }
  .dash-chrome .g{ background:#28c840; }
  .dash-url{
    flex:1;
    margin-left:12px;
    text-align:center;
    font-family:'IBM Plex Mono', monospace;
    font-size:14px;
    font-weight:700;
    letter-spacing:.01em;
    color:var(--ink);
  }

  .dash-body{ padding:26px; }
  .dash-kpis{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:12px; margin-bottom:24px; }
  .dash-kpi{
    min-width:0;
    background:var(--bg-raise-2);
    border:1px solid var(--line);
    border-radius:12px;
    padding:14px 14px;
    display:flex; flex-direction:column; gap:6px;
  }

  .dash-kpi .k-lbl{ font-family:'IBM Plex Mono', monospace; font-size:10px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:0.04em; }
  .dash-kpi .k-lbl .k-txt{ font-weight:700; }

  .dash-kpi .k-val{ font-family:'Bricolage Grotesque', sans-serif; font-size:22px; font-weight:600; }
  .dash-kpi .k-delta{ font-family:'IBM Plex Mono', monospace; font-size:11px; width:fit-content; padding:2px 7px; border-radius:100px; }
  .dash-kpi .k-delta.up{ color:#ffffff; background:var(--accent); }
  .dash-kpi .k-delta.down{ color:var(--teal-ink); background:var(--teal); }
  /* interactive simulator */
  .dash-kpi .k-lbl{ display:flex; align-items:center; gap:5px; flex-wrap:wrap; min-height:28px; }
  .dash-kpi .k-lbl .k-txt{ white-space:nowrap; }
  /* Accessible contrast against the existing gray cards, without geometry changes. */
  .dash-kpi .k-lbl{ color:#55555c; }
  .dash-kpi .k-tag{
    font-style:normal; font-size:8.5px; letter-spacing:0.05em;
    padding:2px 5px; border-radius:100px;
    background:var(--accent); color:#fff; opacity:0;
    transition:opacity .2s ease; white-space:nowrap;
  }
  .dash-kpi.is-computed .k-tag{ opacity:1; }
  .dash-kpi.is-computed{ border-color:var(--accent); }
  .dash-kpi .k-input{ display:flex; align-items:baseline; gap:2px; max-width:100%; overflow:hidden; }
  .dash-kpi .k-pre, .dash-kpi .k-suf{
    font-family:'Bricolage Grotesque', sans-serif; font-size:14px; font-weight:600; color:#55555c; flex:0 0 auto;
  }
  .dash-kpi .k-input input{
    flex:0 1 auto; min-width:0; width:auto; max-width:100%;
    field-sizing:content;
    border:0; background:transparent; outline:none; padding:0;
    font-family:'Bricolage Grotesque', sans-serif; font-size:19px; font-weight:600;
    color:var(--ink); text-overflow:ellipsis;
  }
  @supports not (field-sizing: content){
    .dash-kpi .k-input input{ flex:1 1 auto; width:100%; }
  }
  .dash-kpi.is-computed .k-input input{ color:#0056ad; }
  .dash-kpi .k-req{
    font-style:normal; font-size:8.5px; letter-spacing:0.05em;
    padding:2px 5px; border-radius:100px;
    border:1px solid var(--line); color:#55555c; white-space:nowrap;
  }
  .dash-kpi.is-missing{ border-color:#d64545; }
  .dash-kpi.is-missing .k-req{ border-color:#d64545; color:#d64545; }

  .dash-sim-hint{
    font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--muted);
    margin:-14px 0 20px;
  }

  .funnel{
    display:grid; grid-template-columns:repeat(5, minmax(0,1fr));
    border:1px solid var(--line); border-radius:12px; overflow:hidden;
    background:var(--bg-raise-2);
  }
  .funnel-step{ display:flex; flex-direction:column; border-right:1px dashed var(--line); }
  .funnel-step:last-child{ border-right:0; }
  .fn-head{ padding:10px 10px; border-bottom:1px solid var(--line); display:flex; flex-direction:column; gap:3px; min-height:82px; }
  .fn-etapa{ font-family:'IBM Plex Mono', monospace; font-size:9.5px; color:var(--muted); text-transform:uppercase; letter-spacing:0.05em; }
  .fn-row{ display:flex; flex-direction:column; gap:2px; }
  .fn-name{ font-family:'IBM Plex Mono', monospace; font-size:13px; font-weight:700; color:var(--ink); line-height:1.25; letter-spacing:-0.01em; }
  .fn-pct{ font-family:'IBM Plex Mono', monospace; font-size:12px; color:#0056ad; font-weight:700; }
  .fn-plot{ position:relative; height:130px; display:flex; align-items:flex-end; padding:20px 10px 0; }
  .fn-val{
    position:absolute; left:10px; right:10px; top:2px;
    font-family:'IBM Plex Mono', monospace; font-size:12px; font-weight:700; color:var(--ink);
    pointer-events:none;
  }
  .fn-bar{
    width:100%; min-height:2px;
    background:linear-gradient(180deg, var(--accent), rgba(0,113,227,0.45));
    border-radius:4px 4px 0 0;
    transition:height .8s cubic-bezier(.2,.8,.2,1);
  }
  .fn-foot{ padding:9px 10px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:3px; }
  .fn-foot-lbl{ font-family:'IBM Plex Mono', monospace; font-size:10.5px; color:var(--muted); }
  .fn-foot-val{ display:flex; align-items:center; gap:5px; font-family:'IBM Plex Mono', monospace; font-size:12px; font-weight:700; color:var(--ink); }
  .fn-foot-val i{ width:8px; height:8px; border-radius:2px; background:var(--accent); display:inline-block; }
  @media (max-width:760px){
    .funnel{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  }

  /* ---- MOBILE: painel interativo ---- */
  @media (max-width:640px){
    .dash-mock{ border-radius:16px; box-shadow:0 18px 36px -26px rgba(0,0,0,0.45); }
    /* No mobile o "browser do Mac" não faz sentido: vira um header de app */
    .dash-chrome{
      display:block;
      padding:16px 16px 14px;
      background:var(--bg-raise);
      border-bottom:1px solid var(--line);
    }
    .dash-chrome .dot{ display:none; }
    .dash-chrome::before{
      content:"Simulador de metas";
      display:block;
      font-family:'IBM Plex Mono', monospace;
      font-size:9.5px;
      letter-spacing:0.16em;
      text-transform:uppercase;
      color:var(--accent);
      margin-bottom:6px;
    }
    .dash-url{
      display:block;
      margin-left:0;
      text-align:center;
      font-family:inherit;
      font-size:15px;
      line-height:1.45;
      font-weight:800;
      color:var(--ink);
      background:var(--bg-raise-2);
      border:1px solid var(--line);
      border-radius:10px;
      padding:10px 12px;
    }
    .dash-body{ padding:14px; }


    /* KPIs viram linhas: rótulo à esquerda, valor à direita */
    .dash-kpis{ grid-template-columns:1fr; gap:8px; margin-bottom:18px; }
    .dash-kpi{
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      align-items:center;
      gap:10px;
      padding:12px 14px;
      border-radius:10px;
    }
    .dash-kpi .k-lbl{ min-height:0; font-size:10px; flex-wrap:wrap; }
    .dash-kpi .k-tag, .dash-kpi .k-req{ font-size:8px; padding:1px 5px; }
    .dash-kpi .k-input{ justify-content:flex-end; text-align:right; }
    .dash-kpi .k-input input{ font-size:20px; text-align:right; }
    .dash-kpi .k-pre, .dash-kpi .k-suf{ font-size:13px; }
    .dash-sim-hint{ font-size:10.5px; margin:-8px 0 16px; line-height:1.5; }

    /* Funil completo no mobile: a silhueta é fixa; os números continuam dinâmicos */
    .funnel{
      display:flex;
      flex-direction:column;
      align-items:center;
      padding:14px 8px 18px;
      gap:0;
      overflow:visible;
    }
    .funnel-step{
      --funnel-top:100%;
      --funnel-bottom:88%;
      width:100%;
      border-right:0;
      border-bottom:0;
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:0;
      padding:0;
      position:relative;
      flex:none;
    }
    .funnel-step:nth-child(2){ --funnel-top:88%; --funnel-bottom:76%; }
    .funnel-step:nth-child(3){ --funnel-top:76%; --funnel-bottom:64%; }
    .funnel-step:nth-child(4){ --funnel-top:64%; --funnel-bottom:52%; }
    .funnel-step:nth-child(5){ --funnel-top:52%; --funnel-bottom:40%; }
    .fn-head{
      position:absolute; left:0; right:0; top:0; height:auto; padding:14px 12px 0; border-bottom:0; min-height:0;
      display:flex; align-items:center; justify-content:center; z-index:2; pointer-events:none;
    }
    .fn-row{ flex-direction:column; align-items:center; justify-content:center; gap:2px; }
    .fn-name{ font-size:15px; font-weight:700; color:#fff; line-height:1.2; text-align:center; text-shadow:0 1px 2px rgba(0,0,0,.22); }
    .fn-pct{ font-size:12px; color:rgba(255,255,255,.9); }
    .fn-plot{
      position:relative;
      width:100%;
      height:126px;
      padding:0;
      display:flex;
      align-items:flex-end;
      justify-content:center;
      background:none;
      overflow:visible;
      flex:none;
    }
    .fn-bar{
      position:absolute;
      inset:0;
      width:100% !important;
      height:100% !important;
      border-radius:0;
      background:linear-gradient(180deg, var(--accent), rgba(0,113,227,0.7));
      clip-path:polygon(
        calc(50% - var(--funnel-top) / 2) 0%,
        calc(50% + var(--funnel-top) / 2) 0%,
        calc(50% + var(--funnel-bottom) / 2) 100%,
        calc(50% - var(--funnel-bottom) / 2) 100%
      );
    }
    /* linha divisória entre as etapas do funil */
    .funnel-step:not(:first-child) .fn-bar::before{
      content:"";
      position:absolute; left:0; right:0; top:0; height:1px;
      background:rgba(255,255,255,.42);
    }
    .funnel-step:nth-child(2) .fn-bar{ background:linear-gradient(180deg, rgba(0,113,227,.88), rgba(0,113,227,.78)); }
    .funnel-step:nth-child(3) .fn-bar{ background:linear-gradient(180deg, rgba(0,113,227,.78), rgba(0,113,227,.68)); }
    .funnel-step:nth-child(4) .fn-bar{ background:linear-gradient(180deg, rgba(0,113,227,.68), rgba(0,113,227,.58)); }
    .funnel-step:nth-child(5) .fn-bar{ background:linear-gradient(180deg, rgba(0,113,227,.58), rgba(0,113,227,.48)); }
    .fn-val{
      position:absolute;
      left:0;
      right:0;
      top:56px;
      z-index:3;
      display:block;
      font-size:20px;
      font-weight:700;
      letter-spacing:-0.02em;
      color:#fff;
      text-align:center;
      margin:0;
      text-shadow:0 1px 3px rgba(0,0,0,.28);
    }
    .fn-foot{
      position:absolute;
      left:12px;
      right:12px;
      bottom:10px;
      z-index:3;
      padding:6px 0 0;
      border-top:1px solid rgba(255,255,255,.28);
      flex-direction:row; align-items:center; justify-content:center; gap:6px;
      pointer-events:none;
    }
    .fn-foot-lbl{ font-size:11px; color:rgba(255,255,255,.8); }
    .fn-foot-val{ font-size:12px; font-weight:700; color:#fff; }
    .fn-foot-val i{ width:5px; height:5px; background:#fff; opacity:.75; }
    .funnel-step:last-child .fn-foot{ display:none; }
  }


  /* FOUNDER */
  .founder-section{ padding:var(--sp-founder-y) 0; }
  .founder-wrap{
    display:grid;
    grid-template-columns:0.8fr 1.2fr;
    gap:clamp(28px,5vw,64px);
    align-items:start;
  }
  .founder-head-mobile{ display:none; }
  @media (max-width:860px){
    .founder-wrap{ grid-template-columns:1fr; }
    .founder-head-mobile{ display:block; margin-bottom:14px; }
    .founder-copy > .eyebrow{ display:none; }
    .founder-copy > h2{ margin-top:0 !important; }
  }
  @media (max-width:760px){
    .founder-photo{ width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); transform:none; }
    .founder-photo-inner{ border-radius:0; border-left:0; border-right:0; aspect-ratio:4/4.4; }
  }
  .founder-photo{ position:relative; }
  .founder-photo-inner{
    aspect-ratio:4/5;
    border-radius:20px;
    border:1px solid var(--line);
    background:linear-gradient(160deg, var(--bg-raise), var(--bg-raise-2));
    display:flex; align-items:center; justify-content:center;
    overflow:hidden;
  }
  .founder-photo-inner img{ width:100%; height:100%; object-fit:cover; object-position:50% 22%; display:block; }
  @media (max-width:760px){
    .founder-photo-inner{ border:0; border-radius:0; }
  }
  .founder-initials{
    font-family:'Bricolage Grotesque', sans-serif;
    font-size:clamp(48px,7vw,86px);
    font-weight:700;
    color:var(--muted);
    letter-spacing:-0.03em;
  }
  .founder-badge{
    position:absolute; left:16px; bottom:16px;
    font-family:'IBM Plex Mono', monospace;
    font-size:11px; letter-spacing:.12em;
    padding:8px 14px; border-radius:100px;
    background:var(--accent); color:var(--accent-ink);
  }
  .founder-role{
    margin-top:12px;
    font-family:'IBM Plex Mono', monospace;
    font-size:13px; letter-spacing:.03em;
    color:var(--accent);
  }
  .founder-bio{ margin-top:18px; color:var(--muted); font-size:16px; max-width:56ch; }
  .founder-list{ margin-top:22px; list-style:none; display:grid; gap:10px; }
  .founder-list li{
    position:relative; padding-left:22px; font-size:14px; color:var(--ink);
  }
  .founder-list li::before{
    content:""; position:absolute; left:0; top:8px;
    width:8px; height:8px; border-radius:2px; background:var(--accent);
  }
  .founder-stats{
    margin-top:32px;
    display:grid; grid-template-columns:repeat(4,1fr);
    gap:1px; background:var(--line);
    border:1px solid var(--line); border-radius:16px; overflow:hidden;
  }
  @media (max-width:760px){ .founder-stats{ grid-template-columns:repeat(2,1fr); } }
  .founder-stat{ background:var(--bg-raise-2); padding:20px 18px; }
  .founder-stat strong{
    display:block;
    font-family:'Bricolage Grotesque', sans-serif;
    font-size:24px; font-weight:600; color:var(--ink);
    letter-spacing:-0.02em;
  }
  .founder-stat span{ display:block; margin-top:6px; font-size:12px; color:var(--muted); line-height:1.35; }


  /* RESULTS */
  .results-section{ background:linear-gradient(to bottom, transparent, var(--bg-raise) 100px, var(--bg-raise) calc(100% - 100px), transparent); }
  .results-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
    border-radius:20px;
    overflow:hidden;
  }
  @media (max-width:760px){ .results-grid{ grid-template-columns:1fr; } }
  .result-card{
    background:var(--bg-raise-2);
    padding:36px;
  }
  .result-card .r-icon{ margin-bottom:16px; }
  .result-card .r-icon.up{ color:var(--accent); }
  .result-card .r-icon.down{ color:var(--teal); opacity:0.85; }
  .result-card .metric{
    font-family:'Bricolage Grotesque', sans-serif;
    font-size:38px;
    font-weight:600;
    color:var(--accent);
  }
  .result-card .label{ margin-top:8px; font-size:14px; color:var(--muted); }
  .result-card .who{
    margin-top:24px;
    padding-top:16px;
    border-top:1px solid var(--line);
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    color:var(--muted);
  }

  /* TESTIMONIAL */
  .testimonial{
    text-align:center;
    max-width:780px;
    margin:0 auto;
  }
  .t-avatar{
    width:56px; height:56px;
    border-radius:50%;
    margin:0 auto 24px;
    display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg, var(--accent), var(--teal));
    color:#ffffff;
    font-family:'Bricolage Grotesque', sans-serif;
    font-weight:700;
    font-size:16px;
  }
  .testimonial blockquote{
    font-family:'Bricolage Grotesque', sans-serif;
    font-size:clamp(16px,1.6vw,20px);
    font-weight:500;
    line-height:1.55;
    text-align:left;
  }
  .testimonial cite{
    display:block;
    margin-top:28px;
    font-style:normal;
    font-family:'IBM Plex Mono', monospace;
    font-size:13px;
    color:var(--muted);
  }

  /* FAQ */
  .faq-list{ max-width:760px; }
  .faq-item{ border-top:1px solid var(--line); }
  .faq-list .faq-item:last-child{ border-bottom:1px solid var(--line); }
  .faq-q{
    width:100%;
    text-align:left;
    background:none;
    border:none;
    color:var(--ink);
    font-family:'Bricolage Grotesque', sans-serif;
    font-size:18px;
    font-weight:500;
    padding:24px 0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    cursor:pointer;
    gap:20px;
  }
  .faq-q .plus{
    flex:none;
    width:20px; height:20px;
    position:relative;
  }
  .faq-q .plus::before, .faq-q .plus::after{
    content:""; position:absolute; background:var(--muted);
    transition:transform .3s ease;
  }
  .faq-q .plus::before{ left:0; top:50%; width:100%; height:1px; transform:translateY(-50%); }
  .faq-q .plus::after{ top:0; left:50%; width:1px; height:100%; transform:translateX(-50%); }
  .faq-item.open .plus::after{ transform:translateX(-50%) rotate(90deg); opacity:0; }
  .faq-a{
    max-height:0;
    overflow:hidden;
    transition:max-height .35s ease;
  }
  .faq-a p{ padding-bottom:24px; color:var(--muted); font-size:15px; max-width:60ch; }

  @media (max-width: 900px){
    section:has(> .wrap > .faq-list){ padding-bottom:28px; }
    .cta-final{ margin-top:0; margin-bottom:0; padding-top:min(10vh,72px); }
    footer{ padding-top:24px; }
  }



  /* CTA */
  .cta-final{
    text-align:center;
    padding:min(16vh,140px) 0;
    background:#f2f2f4;
    color:var(--ink);
    position:relative;
    overflow:hidden;
    margin:min(10vh,80px) 0;
  }
  .cta-final .eyebrow{ color:var(--muted); justify-content:center; }
  .cta-final .eyebrow::before{ background:var(--muted); }
  .cta-final h2{ color:var(--ink); }
  .cta-final .btn-primary{
    background:var(--ink);
    color:#ffffff;
    border-color:var(--ink);
  }
  .cta-final .btn-primary:hover{ color:#ffffff; }
  .cta-final .cta-blob{
    position:absolute;
    border-radius:50%;
    background:rgba(0,0,0,0.04);
    filter:blur(10px);
  }
  .cta-final .cta-blob-1{ width:340px; height:340px; top:-140px; left:-100px; }
  .cta-final .cta-blob-2{ width:260px; height:260px; bottom:-120px; right:-60px; }

  .cta-final h2{
    font-size:clamp(32px,5.4vw,64px);
    max-width:16ch;
    margin:0 auto 32px;
  }

  footer{
    border-top:1px solid var(--line);
    padding:48px 0 32px;
  }
  .footer-grid{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    flex-wrap:wrap;
    gap:24px;
  }
  .footer-grid .fcol{ font-family:'IBM Plex Mono', monospace; font-size:12.5px; color:var(--muted); }
  .footer-grid .fcol a{ text-decoration:none; }
  .footer-grid .fcol a:hover{ color:var(--ink); }
  /* Extend hit areas outward, keeping the text and line spacing unchanged. */
  .footer-touch-link{
    display:inline-block;
    vertical-align:baseline;
    min-width:48px;
  }
  .footer-touch-link-first{ padding-top:30px; margin-top:-30px; }
  .footer-touch-link-last{ padding-bottom:30px; margin-bottom:-30px; }
  footer .bottom{
    margin-top:40px; padding-top:20px; border-top:1px solid var(--line);
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
    font-family:'IBM Plex Mono', monospace; font-size:11.5px; color:var(--muted);
  }

  /* Keep this override after the base CTA rule so its desktop margin cannot
     recreate a blank band between the CTA and footer on small screens. */
  @media (max-width:900px){
    .cta-final{
      margin-top:0;
      margin-bottom:0;
      padding-top:min(10vh,72px);
      padding-bottom:min(10vh,72px);
    }
    footer{ padding-top:24px; }
  }

  @media (prefers-reduced-motion: reduce){
    .hero-scrollcue .line::after{ animation:none; }
  }

/* ---- Real Rubik's cube: 27 individual cubies ---- */
.rubik-box.is-cubies{ background:transparent; box-shadow:none; }
.cubie-stage{
  position:absolute;
  inset:0;
  transform-style:preserve-3d;
}
.cw{
  position:absolute;
  left:50%;
  top:50%;
  width:0;
  height:0;
  transform-style:preserve-3d;
}
.cubie{
  position:absolute;
  width:var(--cubie-size);
  height:var(--cubie-size);
  transform-style:preserve-3d;
  will-change:transform;
}
.cubie-face{
  position:absolute;
  left:0; top:0;
  width:100%;
  height:100%;
  border-radius:calc(var(--cubie-size) * 0.16);
  background:#2b2b31;
  overflow:hidden;
  backface-visibility:hidden;
}
.cubie-face.has-step{ background:#c4c4cb; }
/* solid dark core: inner cube slightly smaller than the sticker faces */
.cubie-core{
  position:absolute;
  left:8%; top:8%;
  width:84%;
  height:84%;
  background:#26262c;
  border-radius:calc(var(--cubie-size) * 0.10);
  backface-visibility:hidden;
}
.cc-f{ transform:translateZ(calc(var(--cubie-size) * 0.42)); }
.cc-b{ transform:rotateY(180deg) translateZ(calc(var(--cubie-size) * 0.42)); }
.cc-r{ transform:rotateY(90deg)  translateZ(calc(var(--cubie-size) * 0.42)); }
.cc-l{ transform:rotateY(-90deg) translateZ(calc(var(--cubie-size) * 0.42)); }
.cc-u{ transform:rotateX(90deg)  translateZ(calc(var(--cubie-size) * 0.42)); }
.cc-d{ transform:rotateX(-90deg) translateZ(calc(var(--cubie-size) * 0.42)); }

.cf-front { transform:translateZ(calc(var(--cubie-size) / 2 - 1px)); }
.cf-back  { transform:rotateY(180deg) translateZ(calc(var(--cubie-size) / 2 - 1px)); }
.cf-right { transform:rotateY(90deg)  translateZ(calc(var(--cubie-size) / 2 - 1px)); }
.cf-left  { transform:rotateY(-90deg) translateZ(calc(var(--cubie-size) / 2 - 1px)); }
.cf-top   { transform:rotateX(90deg)  translateZ(calc(var(--cubie-size) / 2 - 1px)); }
.cf-bottom{ transform:rotateX(-90deg) translateZ(calc(var(--cubie-size) / 2 - 1px)); }

.cubie-face > .rubik-cell{
  position:absolute;
  inset:4%;
  border-radius:calc(var(--cubie-size) * 0.13);
  opacity:1;
  padding:calc(var(--cubie-size) * 0.075);
  justify-content:flex-start;
  gap:calc(var(--cubie-size) * 0.012);
}
.cubie-face > .rubik-cell .rc-num{
  font-size:calc(var(--cubie-size) * 0.075);
  line-height:1.2;
}
.cubie-face > .rubik-cell .rc-title{
  font-size:calc(var(--cubie-size) * 0.09);
  line-height:1.15;
  white-space:nowrap;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:auto;
  -webkit-hyphens:auto;
  margin-top:calc(var(--cubie-size) * 0.02);
}
.cubie-face > .rubik-cell .rc-desc{
  font-size:calc(var(--cubie-size) * 0.072);
  line-height:1.3;
  margin-top:calc(var(--cubie-size) * 0.03);
}



/* ---- Nine sticker colours, identical mapping on all six faces ---- */
.cubie-face > .rubik-cell.tone-1{ background:#e9edff; border-color:#c3ccff; }
.cubie-face > .rubik-cell.tone-2{ background:#3b46f0; border-color:#3b46f0; }
.cubie-face > .rubik-cell.tone-3{ background:#ffe9c9; border-color:#f2cf9c; }
.cubie-face > .rubik-cell.tone-4{ background:#d6f5e3; border-color:#a9e3c6; }
.cubie-face > .rubik-cell.tone-5{ background:#1f2430; border-color:#1f2430; }
.cubie-face > .rubik-cell.tone-6{ background:#ffd9dd; border-color:#f5b3ba; }
.cubie-face > .rubik-cell.tone-7{ background:#d9ecff; border-color:#a9d2f7; }
.cubie-face > .rubik-cell.tone-8{ background:#f2e6ff; border-color:#d8bdf5; }
.cubie-face > .rubik-cell.tone-9{ background:#fff7cc; border-color:#efe09a; }
.cubie-face > .rubik-cell.tone-2 .rc-num,
.cubie-face > .rubik-cell.tone-2 .rc-title,
.cubie-face > .rubik-cell.tone-2 .rc-when,
.cubie-face > .rubik-cell.tone-2 .rc-desc,
.cubie-face > .rubik-cell.tone-5 .rc-num,
.cubie-face > .rubik-cell.tone-5 .rc-title,
.cubie-face > .rubik-cell.tone-5 .rc-when,
.cubie-face > .rubik-cell.tone-5 .rc-desc{ color:#ffffff; }
.cubie-face > .rubik-cell.flat-color > *{ display:none; }
.rubik-box.complete .cubie-face > .rubik-cell{ opacity:1 !important; }


/* CTA at the end of the process (method) section — sits over the gradient seam */
.process{ padding-bottom:32px; }
.process-cta {
  display: flex;
  justify-content: center;
  padding: var(--sp-cta-gap) 0 0;
  margin-bottom: -22px;
  position: relative;
  z-index: 3;
}


/* While a single step is zoomed in, the surrounding cubie shells fade out so
   no oversized 3D edges rasterize into black wedges behind the card. */
.rubik-box.zoomed .cubie-core{ opacity:0; }
.rubik-box.zoomed .cubie-face{ background:transparent; }
.rubik-box.zoomed .cubie-face > .rubik-cell{ box-shadow:none; }

  /* SERVICES — mobile carousel */
  .services-nav{ display:none; }
  .svc-dots{ display:none; }
  .services-viewport{ display:contents; }
  @media (max-width:760px){
    .services{
      height:auto;
      min-height:0;
      display:block;
    }
    .rubik-stage{ height:auto; min-height:0; padding:0; }

    .process-cta{ margin-bottom:0; padding-top:0; }
    .rubik-sticky{ padding-bottom:24px; }


    .services-track{
      display:flex;
      flex-wrap:nowrap;
      gap:14px;
      max-height:none;
      overflow-x:auto;
      overflow-y:hidden;
      scroll-snap-type:x mandatory;
      -webkit-overflow-scrolling:touch;
      scrollbar-width:none;
      padding:2px 20px 6px;
    }
    .services-track::-webkit-scrollbar{ display:none; }
    .service-card{
      position:relative;
      inset:auto;
      margin:0;
      flex:0 0 86%;
      width:86%;
      height:auto;
      scroll-snap-align:center;
      padding:22px 20px 24px;
      gap:14px;
      opacity:1 !important;
      transform:none !important;
      border-radius:20px;
    }
    .services-viewport{ display:block; position:relative; }
    .services-nav{ display:block; }
    .svc-arrow{
      position:absolute;
      top:50%;
      transform:translateY(-50%);
      width:34px; height:34px;
      display:flex; align-items:center; justify-content:center;
      border-radius:50%;
      border:1px solid var(--line);
      background:color-mix(in srgb, #ffffff 78%, transparent);
      backdrop-filter:blur(6px);
      color:var(--muted);
      opacity:0.7;
      padding:0;
      z-index:6;
    }
    .svc-arrow[data-dir="-1"]{ left:6px; }
    .svc-arrow[data-dir="1"]{ right:6px; }
    .svc-arrow svg{ width:16px; height:16px; }
    .svc-arrow.is-hidden{ opacity:0; pointer-events:none; }
    .svc-dots{ display:flex; gap:6px; justify-content:center; margin-top:14px; }

    .svc-dots i{
      width:6px; height:6px; border-radius:50%;
      background:var(--line);
      display:block;
    }
    .svc-dots i.on{ background:var(--accent); }
  }

@media (max-width: 860px){
  .testimonial-section{ padding-top:20px !important; padding-bottom:20px !important; }
  .testimonial .t-avatar{ margin-bottom:16px; }
  .testimonial cite{ margin-top:16px; }
}

  /* ---- OFFERS (lista editorial animada) ---- */
  .offers{
    padding:var(--sp-section-y) 0;
    background:
      radial-gradient(120% 60% at 15% 0%, color-mix(in oklab, var(--accent) 10%, transparent), transparent 60%),
      linear-gradient(180deg, #f6f7fb 0%, #eef1f8 55%, #f7f8fc 100%);
    position:relative;
    overflow:hidden;
  }

  .offers-marquee{
    overflow:hidden;
    white-space:nowrap;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:10px 0;
    margin-bottom:clamp(28px,5vh,56px);
    mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  }
  .offers-marquee-track{
    display:inline-flex;
    gap:22px;
    align-items:center;
    animation:offersMarquee 32s linear infinite;
    font-size:13px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--muted);
  }
  .offers-marquee-track span:nth-child(4n+1){ color:var(--accent); }
  @keyframes offersMarquee{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

  .offers-head{ text-align:center; margin-bottom:clamp(24px,4vh,44px); }
  .offers-head .eyebrow{ justify-content:center; }
  .offers-head h2{ font-size:clamp(24px,3vw,40px); max-width:26ch; margin-left:auto; margin-right:auto; text-wrap:balance; }

  .offers-list{ border-top:1px solid var(--line); }
  .offer-row{
    position:relative;
    width:100%;
    display:grid;
    grid-template-columns:38px 1fr 40px;
    align-items:start;
    gap:16px;
    text-align:left;
    background:transparent;
    border:0;
    border-bottom:1px solid var(--line);
    padding:clamp(18px,2.4vw,30px) clamp(8px,2vw,24px);
    cursor:pointer;
    font:inherit;
    color:inherit;
    overflow:hidden;
    transition:padding .4s cubic-bezier(.2,.7,.2,1), color .3s ease;
  }
  .offer-row::before{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(90deg, color-mix(in oklab, var(--accent) 10%, transparent), transparent 70%);
    transform:scaleX(0);
    transform-origin:left center;
    transition:transform .5s cubic-bezier(.2,.7,.2,1);
    pointer-events:none;
  }
  .offer-row:hover::before,
  .offer-row.is-open::before{ transform:scaleX(1); }
  .offer-row .offer-ico{
    display:inline-flex; align-items:center; justify-content:center;
    width:38px; height:38px; flex:0 0 38px;
    border-radius:10px;
    color:var(--accent);
    background:color-mix(in oklab, var(--accent) 10%, transparent);
    margin-top:2px;
    transition:transform .45s cubic-bezier(.2,.7,.2,1), background .3s ease;
  }
  .offer-row .offer-ico svg{ width:20px; height:20px; }
  .offer-row:hover .offer-ico,
  .offer-row.is-open .offer-ico{ transform:translateX(6px); background:color-mix(in oklab, var(--accent) 18%, transparent); }

  .offer-main{ display:block; min-width:0; }
  .offer-title{
    display:block;
    font-size:clamp(20px,2.6vw,34px);
    line-height:1.15;
    letter-spacing:var(--serif-tight);
    font-weight:600;
    transition:transform .45s cubic-bezier(.2,.7,.2,1), color .3s ease;
  }
  .offer-row:hover .offer-title,
  .offer-row.is-open .offer-title{ transform:translateX(10px); color:var(--accent); }
  .offer-desc{
    display:grid;
    grid-template-rows:0fr;
    opacity:0;
    transition:grid-template-rows .5s cubic-bezier(.2,.7,.2,1), opacity .4s ease;
  }
  .offer-desc-inner{ overflow:hidden; display:block; }
  .offer-row:hover .offer-desc,
  .offer-row.is-open .offer-desc{ grid-template-rows:1fr; opacity:1; }
  .offer-desc-inner{
    color:var(--muted);
    font-size:15px;
    line-height:1.6;
    max-width:62ch;
    padding-top:10px;
  }
  .offer-arrow{
    justify-self:end;
    font-size:22px;
    color:var(--muted);
    opacity:.5;
    transform:translate(-6px,6px) rotate(0deg);
    transition:opacity .35s ease, transform .5s cubic-bezier(.2,.7,.2,1), color .3s ease;
  }
  .offer-row:hover .offer-arrow,
  .offer-row.is-open .offer-arrow{ opacity:1; transform:translate(0,0) rotate(45deg); color:var(--accent); }

  @media (prefers-reduced-motion: reduce){
    .offers-marquee-track{ animation:none; }
    .offer-row, .offer-row::before, .offer-title, .offer-desc, .offer-arrow{ transition:none; }
  }
  @media (max-width:720px){
    .offer-row{ grid-template-columns:40px 1fr 28px; gap:10px; padding:16px 4px; }
    .offer-title{ font-size:19px; }
    .offer-desc-inner{ font-size:14px; }
    .offers-marquee{ margin-bottom:22px; }
    /* mobile: chevron apontando para baixo, sem haste */
    .offer-arrow{
      font-size:0;
      line-height:0;
      transform:none;
      align-self:center;
      display:flex;
      align-items:center;
      justify-content:center;
      width:28px;
      height:28px;
    }
    .offer-arrow::before{
      content:"";
      width:10px;
      height:10px;
      border-right:2px solid currentColor;
      border-bottom:2px solid currentColor;
      transform:translateY(-3px) rotate(45deg);
      transition:transform .35s cubic-bezier(.2,.7,.2,1);
    }
    .offer-row:hover .offer-arrow,
    .offer-row.is-open .offer-arrow{ transform:none; }
    .offer-row.is-open .offer-arrow::before{ transform:translateY(2px) rotate(-135deg); }
  }

  /* ============================================================
     A11y / touch layer
     - minimum legible type on small screens
     - hover-only effects get a touch-friendly default state
     ============================================================ */

  /* Touch devices: no real hover — button stays high contrast at all times */
  @media (hover:none){
    .btn-primary{ background:#000000; color:#ffffff; border-color:#000000; }
    .btn-primary::before{ display:none; }
    .btn-primary:hover, .btn-primary:active{ color:#ffffff; border-color:#000000; transform:none; }
    .cta-final .btn-primary{ background:#000000; color:#ffffff; border-color:#000000; }
    .nav-links a.btn-primary{ color:#ffffff; }

    /* logos already colored, icons already highlighted — no tap required */
    .mosaic-tile img{ filter:none; opacity:1; }
    .mosaic-tile.logo-fallback span{ color:var(--ink); }
    .offer-row .offer-ico{ background:color-mix(in oklab, var(--accent) 14%, transparent); }
    .offer-row .offer-arrow{ opacity:.65; }
  }
  /* pointer devices: only paint the text white after the black fill lands */
  @media (hover:hover){
    .btn-primary:hover{ transition-delay:.1s; }
  }

  /* Minimum 12px for any functional text on mobile */
  @media (max-width:760px){
    .hero-visual .hv-card .hv-lbl,
    .dash-kpi .k-lbl,
    .dash-kpi .k-delta,
    .dash-kpi .k-tag,
    .dash-kpi .k-req,
    .dash-sim-hint,
    .mosaic-tile span,
    .badge,
    .eyebrow{ font-size:12px; }
  }

  .offers-help{
    display:flex; flex-direction:column; align-items:center; gap:14px;
    margin-top:clamp(24px,4vh,40px); text-align:center;
  }
  .offers-help p{ font-size:15px; color:var(--muted); margin:0; }
  /* Preserve surfaces and spacing; darken only muted text on gray surfaces. */
  .dash-mock, .service-card, .founder-stat, .mosaic-tile{ --muted:#55555c; }
  @media (max-width:760px){
    .offers-help{ margin-top:22px; }
    .offers-help p{ font-size:14px; }
  }
