    /* ======================== THEME TOKENS ======================== */
    :root {
      --gap: 22px;
      --cards: 4;
      --card-w: calc((100% - (var(--gap) * (var(--cards) - 1))) / var(--cards));
      --slide-x: 0px;
      --radius: 16px;
      --nav-h: 60px;
      /* hover lift */
      --lift: -10px;
      --hover-scale: 1.035;
      /* mask overflow compensation for hover lift + shadow */
      --mask-pad-y: 18px;
    }

    /* light palette */
    [data-theme="light"] {
      --ink: #16161a;
      --muted: #74747c;
      --line: #e7e6e1;
      --paper: #faf9f6;
      --card-bg: #ffffff;
      --card-border: #e7e6e1;
      --card-border-hover: #dcdad2;
      --eyebrow-bg: #fff;
      --toggle-bg: #ebebea;
      --toggle-border: #dededb;
      --active-toggle-bg: #fff;
      --input-bg: #faf9f6;
      --input-bg-focus: #fff;
      --input-border: #e7e6e1;
      --input-border-hover: #d0cfca;
      --input-placeholder: #b0afaa;
      --social-btn-bg: #fff;
      --social-btn-hover: #f7f6f2;
      --social-btn-border-hover: #d4d3cf;
      --success-bg: #e8f8ef;
      --success-border: #b2f2c8;
      --chip-bg: #f4f3ee;
      --chip-color: #4b4b52;
      --media-bg: #eeece6;
      --title-ghost: #b3b2aa;
      --login-card-bg: #fff;
      --body-bg: #fff;
      --mask-grad: rgba(255,255,255,.94);
      --nav-bg: rgba(250,249,246,.88);
      --shadow-card: none;
      --shadow-card-hover: none;
      --shadow-login: 0 4px 24px rgba(22,22,26,.06), 0 1px 4px rgba(22,22,26,.04);
      --shadow-sub-btn: 0 8px 24px rgba(22,22,26,.22);
      --bg-1: radial-gradient(1100px 520px at 88% -8%, #f1f0ea 0%, transparent 62%);
      --bg-2: radial-gradient(900px 480px at -6% 4%, #f4f2ec 0%, transparent 58%);
      --focus-ring: rgba(22,22,26,.08);
      --divider-span: #74747c;
      --input-focus-ring: 0 0 0 3px rgba(22,22,26,.08);
    }

    /* dark palette */
    [data-theme="dark"] {
      --ink: #eae9e4;
      --muted: #9b9a93;
      --line: #2c2c2e;
      --paper: #111113;
      --card-bg: #1a1a1d;
      --card-border: #2c2c2e;
      --card-border-hover: #3e3e41;
      --eyebrow-bg: #1a1a1d;
      --toggle-bg: #1f1f22;
      --toggle-border: #2c2c2e;
      --active-toggle-bg: #2a2a2d;
      --input-bg: #1a1a1d;
      --input-bg-focus: #1f1f22;
      --input-border: #2c2c2e;
      --input-border-hover: #3e3e41;
      --input-placeholder: #5a5a5e;
      --social-btn-bg: #1a1a1d;
      --social-btn-hover: #222225;
      --social-btn-border-hover: #3e3e41;
      --success-bg: #0f261b;
      --success-border: #16583a;
      --chip-bg: #26262a;
      --chip-color: #b5b4ad;
      --media-bg: #1f1f22;
      --title-ghost: #3a3a3d;
      --login-card-bg: #1a1a1d;
      --body-bg: #1a1a1d;
      --mask-grad: rgba(17,17,19,.94);
      --nav-bg: rgba(17,17,19,.86);
      --shadow-card: none;
      --shadow-card-hover: none;
      --shadow-login: 0 4px 32px rgba(0,0,0,.3), 0 1px 6px rgba(0,0,0,.16);
      --shadow-sub-btn: 0 8px 24px rgba(0,0,0,.4);
      --bg-1: radial-gradient(1100px 520px at 88% -8%, #1a1a1d 0%, transparent 62%);
      --bg-2: radial-gradient(900px 480px at -6% 4%, #141416 0%, transparent 58%);
      --focus-ring: rgba(255,255,255,.06);
      --divider-span: #9b9a93;
      --input-focus-ring: 0 0 0 3px rgba(255,255,255,.06);
    }

    /* ======================== RESET & BODY ======================== */
    * { box-sizing: border-box; margin: 0; padding: 0; }

    html { scroll-behavior: smooth; transition: background-color 400ms ease, color 400ms ease; }

    body {
      font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
      color: var(--ink);
      background: var(--bg-1), var(--bg-2), var(--paper);
      -webkit-font-smoothing: antialiased;
      overflow-x: hidden;
      min-height: 100vh;
      transition: background 400ms ease, color 400ms ease;
    }

    /* ======================== TOP NAV ======================== */
    .top-nav {
      position: sticky; top: 0; z-index: 100;
      width: 100%;
      margin-inline: 0;
      padding-inline: max(clamp(16px, 3.6vw, 60px), calc(50vw - 780px));
      height: var(--nav-h);
      display: flex; align-items: center; justify-content: space-between; gap: 20px;
      background: var(--nav-bg);
      backdrop-filter: blur(18px) saturate(1.5);
      -webkit-backdrop-filter: blur(18px) saturate(1.5);
      border-bottom: 0;
      box-shadow: none;
      animation: navDrop 500ms cubic-bezier(.16,1,.3,1) both;
      transition: background 400ms ease;
    }

    @keyframes navDrop { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }

    .brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink); flex-shrink: 0; transition: color 300ms ease; }

    .brand-icon {
      width: 34px; height: 34px; border-radius: 10px;
      background: var(--ink); display: grid; place-items: center;
      transition: background 300ms ease;
    }
    .brand-icon svg { color: var(--paper); transition: color 300ms ease; }

    .brand-name { font-size: 15px; font-weight: 600; letter-spacing: -0.02em; }

    /* toggle duplo */
    .toggle {
      position: relative;
      display: flex; align-items: center;
      background: var(--toggle-bg); border: 1px solid var(--toggle-border);
      border-radius: 13px; padding: 4px; gap: 2px;
      animation: fadeUp 600ms 100ms cubic-bezier(.16,1,.3,1) both;
      transition: background 300ms ease, border-color 300ms ease;
    }

    /* animated login tooltip pointing to "Entrar" - respiro ampliado para não colar no hero */
    .login-tip {
      position: absolute;
      top: calc(100% + 16px);
      right: 4px;
      z-index: 50;
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 6px 12px;
      border-radius: 9px;
      background: #16a37b;
      color: #fff;
      font-size: 10.5px;
      font-weight: 600;
      letter-spacing: -0.01em;
      white-space: nowrap;
      box-shadow: 0 4px 14px rgba(22,163,123,.35);
      pointer-events: none;
      animation: tipBounce 1.8s infinite ease-in-out;
      transition: opacity 250ms ease, transform 250ms ease;
    }

    .login-tip::before {
      content: "";
      position: absolute;
      bottom: 100%;
      right: 28px;
      border-width: 5px;
      border-style: solid;
      border-color: transparent transparent #16a37b transparent;
    }

    .tip-arrow-icon {
      animation: arrowPulse 1s infinite ease-in-out;
      display: inline-block;
      margin-left: 1px;
    }

    @keyframes tipBounce {
      0%, 100% { transform: translateY(0); }
      50% { transform: translateY(4px); }
    }

    @keyframes arrowPulse {
      0%, 100% { transform: translateY(0); }
      50% { transform: translateY(-2px); }
    }

    .toggle-btn {
      display: flex; align-items: center; justify-content: center; gap: 7px;
      padding: 0 18px; height: 38px;
      border: none; border-radius: 9px; background: transparent;
      font-family: inherit; font-size: 13px; font-weight: 500; color: var(--muted);
      cursor: pointer; white-space: nowrap; -webkit-tap-highlight-color: transparent;
      transition: background 220ms ease, color 220ms ease, box-shadow 220ms ease;
    }

    .toggle-btn.active {
      background: var(--btn-bg, var(--active-toggle-bg));
      color: var(--btn-fg, var(--ink));
      box-shadow: 0 2px 8px color-mix(in srgb, var(--btn-bg, #8b5cf6) 35%, transparent);
    }

    .toggle-btn:hover:not(.active) {
      color: var(--btn-bg, var(--ink));
      background: color-mix(in srgb, var(--btn-bg, #8b5cf6) 12%, transparent);
    }

    /* theme toggle - com ícones coloridos vibrantes para sun e moon */
    .theme-btn {
      width: 38px; height: 38px;
      display: grid; place-items: center;
      border: 1px solid var(--line); border-radius: 11px;
      background: var(--toggle-bg); color: #f59e0b;
      cursor: pointer; flex-shrink: 0;
      transition: background 220ms ease, color 220ms ease, border-color 220ms ease, transform 220ms ease, box-shadow 220ms ease;
      -webkit-tap-highlight-color: transparent;
    }
    [data-theme="dark"] .theme-btn { color: #38bdf8; }
    .theme-btn:hover {
      transform: scale(1.06);
      border-color: currentColor;
      background: color-mix(in srgb, currentColor 12%, transparent);
      box-shadow: 0 0 14px color-mix(in srgb, currentColor 28%, transparent);
    }
    .theme-btn:active { transform: scale(.96); }
    .theme-btn .icon-sun,
    .theme-btn .icon-moon { position: absolute; transition: opacity 250ms ease, transform 350ms ease; }
    .theme-btn .icon-moon { opacity: 0; transform: rotate(-90deg) scale(.5); }
    [data-theme="dark"] .theme-btn .icon-sun  { opacity: 0; transform: rotate(90deg) scale(.5); }
    [data-theme="dark"] .theme-btn .icon-moon  { opacity: 1; transform: rotate(0deg) scale(1); }

    .nav-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

    /* cart button (desktop nav) */
    .cart-btn {
      position: relative;
      width: 38px; height: 38px;
      display: grid; place-items: center;
      border: 1px solid var(--line); border-radius: 11px;
      background: var(--toggle-bg); color: #8b5cf6;
      cursor: pointer; flex-shrink: 0;
      transition: background 220ms ease, color 220ms ease, border-color 220ms ease, transform 220ms ease, box-shadow 220ms ease;
      -webkit-tap-highlight-color: transparent;
    }
    .cart-btn:hover {
      transform: scale(1.06);
      border-color: currentColor;
      background: color-mix(in srgb, currentColor 12%, transparent);
      box-shadow: 0 0 14px color-mix(in srgb, currentColor 28%, transparent);
    }
    .cart-btn:active { transform: scale(.96); }

    .cart-badge {
      position: absolute;
      top: -5px; right: -5px;
      min-width: 17px; height: 17px;
      padding: 0 4px;
      display: grid; place-items: center;
      border-radius: 999px;
      background: #ef4444; color: #fff;
      font-size: 9.5px; font-weight: 700;
      border: 2px solid var(--paper);
      transition: transform 260ms cubic-bezier(.2,.8,.2,1), border-color 300ms ease;
    }
    .cart-btn:hover .cart-badge { transform: scale(1.12); }

    /* share button */
    .share-wrap { position: relative; flex-shrink: 0; display: none; }

    .share-btn {
      width: 42px; height: 42px;
      display: grid; place-items: center;
      border: 1px solid var(--line); border-radius: 12px;
      background: var(--card-bg); color: var(--muted);
      cursor: pointer; flex-shrink: 0;
      transition: background 200ms ease, color 200ms ease, border-color 200ms ease, transform 200ms ease;
      -webkit-tap-highlight-color: transparent;
    }
    .share-btn:hover {
      transform: translateY(-2px);
      color: #fff;
      background: #8b5cf6;
      border-color: #8b5cf6;
    }
    .share-btn:active { transform: scale(.96); }

    .share-menu {
      position: absolute;
      bottom: calc(100% + 10px);
      left: 50%;
      margin-left: -95px;
      z-index: 200;
      min-width: 190px;
      padding: 6px;
      border-radius: 13px;
      background: var(--card-bg);
      border: 1px solid var(--line);
      box-shadow: 0 12px 34px -10px rgba(0,0,0,.28), 0 2px 8px rgba(0,0,0,.08);
      opacity: 0; visibility: hidden;
      transform: translateY(6px) scale(.97);
      transform-origin: bottom center;
      transition: opacity 200ms ease, transform 220ms cubic-bezier(.2,.8,.2,1), visibility 200ms;
    }
    [data-theme="dark"] .share-menu { box-shadow: 0 14px 40px -10px rgba(0,0,0,.62), 0 2px 8px rgba(0,0,0,.3); }

    .share-menu.open { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }

    .share-item {
      width: 100%;
      display: flex; align-items: center; gap: 10px;
      padding: 9px 11px;
      border: none; border-radius: 9px;
      background: transparent;
      font-family: inherit; font-size: 12.5px; font-weight: 500;
      color: var(--ink); text-align: left; text-decoration: none;
      cursor: pointer;
      transition: background 180ms ease, color 180ms ease;
    }
    .share-item:hover { background: color-mix(in srgb, var(--si, var(--ink)) 12%, transparent); color: var(--si, var(--ink)); }
    .share-item svg { flex-shrink: 0; color: var(--si, var(--muted)); }

    .share-divider { height: 1px; margin: 5px 8px; background: var(--line); }

    .share-toast {
      position: fixed;
      bottom: 26px; left: 50%;
      transform: translateX(-50%) translateY(14px);
      z-index: 1200;
      padding: 10px 18px;
      border-radius: 12px;
      background: #16a37b; color: #fff;
      font-size: 13px; font-weight: 600;
      box-shadow: 0 8px 26px rgba(22,163,123,.4);
      opacity: 0; pointer-events: none;
      transition: opacity 260ms ease, transform 260ms cubic-bezier(.2,.8,.2,1);
    }
    .share-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

    /* social icons */
    .socials { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }

    .social-icon {
      width: 36px; height: 36px; display: grid; place-items: center;
      border-radius: 10px; border: 1px solid var(--line); background: var(--card-bg);
      color: var(--muted); text-decoration: none;
      transition: color 200ms ease, background 200ms ease, border-color 200ms ease, transform 200ms ease;
      -webkit-tap-highlight-color: transparent;
    }
    .social-icon:hover { transform: translateY(-2px); color: #fff; background: var(--sc); border-color: var(--sc); }

    .socials-mobile {
      display: none; align-items: center; justify-content: center; gap: 10px;
      margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--line);
    }
    .socials-mobile .social-icon { width: 42px; height: 42px; border-radius: 12px; }

    /* ======================== VIEWS ======================== */
    .view {
      display: none;
      width: min(1680px, 100%);
      margin-inline: auto;
      padding: clamp(12px, 2vh, 22px) clamp(16px, 3.6vw, 60px) clamp(40px, 6vh, 72px);
      animation: fadeUp 700ms cubic-bezier(.16,1,.3,1) both;
    }
    .view.active { display: block; }
    .fade-up { animation: fadeUp 780ms cubic-bezier(.16,1,.3,1) both; }
    .fade-up.delay { animation-delay: 130ms; }

    @keyframes fadeUp { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

    @keyframes heartBeat {
      0%, 100% { transform: scale(1); }
      30% { transform: scale(1.18); }
      60% { transform: scale(1.06); }
    }

    /* ======================== HERO ======================== */
    .hero {
      display: flex; flex-direction: column; justify-content: flex-start;
      gap: 0;
    }

    .hero-header { margin-top: 40px; }

    /* eyebrow colorida com gradiente vibrante */
    .eyebrow {
      display: inline-flex; align-items: center; gap: 8px;
      padding: 5px 14px; border-radius: 999px;
      border: 1px solid transparent;
      background:
        linear-gradient(var(--eyebrow-bg), var(--eyebrow-bg)) padding-box,
        linear-gradient(95deg, #f59e0b, #ef4444, #8b5cf6, #3b82f6, #16a37b) border-box;
      font-size: 11px; font-weight: 600; letter-spacing: .14em;
      text-transform: uppercase;
      transition: background 300ms ease, filter 300ms ease;
    }
    .eyebrow-text {
      background: linear-gradient(95deg, #f59e0b, #ef4444, #8b5cf6, #3b82f6, #16a37b);
      background-size: 220% auto;
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
      color: transparent;
      animation: eyebrowShift 6s linear infinite;
    }
    .eyebrow::before {
      content: ""; width: 6px; height: 6px; border-radius: 50%;
      background: #16a37b;
      box-shadow: 0 0 0 3px rgba(22,163,123,.18);
      animation: eyebrowDot 2.4s ease-in-out infinite;
    }

    @keyframes eyebrowShift {
      0% { background-position: 0% center; }
      100% { background-position: 220% center; }
    }
    @keyframes eyebrowDot {
      0%, 100% { background: #16a37b; box-shadow: 0 0 0 3px rgba(22,163,123,.18); }
      33% { background: #8b5cf6; box-shadow: 0 0 0 3px rgba(139,92,246,.18); }
      66% { background: #f59e0b; box-shadow: 0 0 0 3px rgba(245,158,11,.18); }
    }

    /* espaçamento equilibrado: título -> subtítulo -> cards */
    .title { margin: 14px 0 0; font-size: clamp(2.2rem, 4.2vw, 4rem); font-weight: 600; letter-spacing: -0.045em; line-height: 0.94; transition: color 300ms ease; }
    .title em { font-style: normal; color: var(--title-ghost); transition: color 300ms ease; }

    .subtitle { margin: 14px 0 14px; max-width: 620px; font-size: clamp(.85rem, .95vw, .98rem); font-weight: 300; line-height: 1.45; color: var(--muted); transition: color 300ms ease; }

    /* ======================== CARROSSEL ======================== */
    .stage { position: relative; }

    /* mask: estendida horizontalmente com padding/margin negativo para revelar o halo de luz sem cortes nas extremidades */
    .mask {
      overflow-x: clip;
      overflow-y: visible;
      padding: 24px 20px 30px;
      margin: 0 -20px -16px;
    }

    .track {
      display: flex; gap: var(--gap);
      transform: translate3d(var(--slide-x), 0, 0);
      transition: transform 680ms cubic-bezier(.22,1,.36,1);
      will-change: transform;
    }

    .card {
      position: relative; flex: 0 0 var(--card-w);
      height: clamp(420px, 48vh, 520px);
      display: flex; flex-direction: column;
      background: var(--card-bg);
      border: 1px solid var(--card-border);
      border-radius: var(--radius);
      overflow: hidden;
      cursor: pointer; text-align: left; font: inherit; color: inherit;
      box-shadow: none;
      transition:
        transform 420ms cubic-bezier(.2,.8,.2,1),
        box-shadow 420ms ease,
        opacity 380ms ease,
        border-color 380ms ease,
        filter 420ms ease,
        background 400ms ease;
    }

    .track:hover .card, .track:focus-within .card { opacity: .55; filter: saturate(.55); }

    .card:hover, .card:focus-visible {
      opacity: 1 !important; filter: none !important;
      z-index: 4;
      transform: translateY(var(--lift)) scale(var(--hover-scale));
      border-color: var(--tag-dot, var(--card-border-hover));
      box-shadow: none;
      outline: none;
    }

    [data-theme="dark"] .card:hover, [data-theme="dark"] .card:focus-visible { box-shadow: none; }

    .media { position: relative; flex: 1 1 auto; min-height: 0; overflow: hidden; background: var(--media-bg); transition: background 300ms ease; }

    .media img {
      width: 100%; height: 100%; object-fit: cover; display: block;
      transform: scale(1.01);
      transition: transform 900ms cubic-bezier(.22,1,.36,1), filter 500ms ease;
      filter: saturate(.92) contrast(1.02) brightness(1.04);
    }

    [data-theme="dark"] .media img { filter: saturate(.86) contrast(1.05) brightness(.92); }

    .card:hover .media img, .card:focus-visible .media img { transform: scale(1.075); }

    .media::after {
      content: ""; position: absolute; inset: auto 0 0; height: 50%;
      background: linear-gradient(to top, var(--mask-grad), transparent);
      pointer-events: none; transition: background 300ms ease;
    }

    /* tag */
    .tag {
      position: absolute; top: 14px; left: 14px; z-index: 2;
      display: inline-flex; align-items: center; gap: 7px;
      padding: 6px 12px 6px 9px; border-radius: 10px;
      background: var(--tag-bg, rgba(255,255,255,.86));
      backdrop-filter: blur(8px);
      border: 1px solid var(--tag-border, rgba(0,0,0,.05));
      font-size: 11px; font-weight: 600; letter-spacing: .1em;
      text-transform: uppercase; color: var(--tag-fg, #16161a);
    }
    .tag-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--tag-dot); box-shadow: 0 0 0 2.5px var(--tag-ring); }

    /* ribbon badge em 135º no canto superior direito - centralizada matematicamente na diagonal */
    .ribbon-badge {
      position: absolute; top: 25px; right: -42px; z-index: 3;
      width: 170px; padding: 6px 0;
      display: flex; align-items: center; justify-content: center;
      background: var(--ribbon-bg, #f59e0b); color: #fff;
      font-size: 9px; font-weight: 700; letter-spacing: .06em;
      line-height: 1.1;
      text-transform: uppercase; text-align: center;
      transform: rotate(45deg);
      box-shadow: 0 3px 12px rgba(0,0,0,.32);
      pointer-events: none;
      text-shadow: 0 1px 2px rgba(0,0,0,.25);
      border-bottom: 1px solid rgba(0,0,0,.15);
      box-sizing: border-box;
    }

    .body { position: relative; padding: 16px 20px 20px; background: var(--card-bg); transition: background 300ms ease; }
    .body h2 { margin: 0; font-size: clamp(1.1rem, 1.3vw, 1.45rem); font-weight: 600; letter-spacing: -0.02em; }
    .lede { margin: 5px 0 0; font-size: .88rem; font-weight: 300; line-height: 1.5; color: var(--muted); }

    /* conteúdo sempre visível (desktop e mobile) */
    .reveal { display: grid; grid-template-rows: 1fr; opacity: 1; }
    .reveal > div { overflow: visible; padding-bottom: 6px; padding-right: 4px; margin-bottom: -6px; margin-right: -4px; }

    .divider { height: 1px; margin: 10px 0 10px; background: var(--line); transition: background 300ms ease; }

    /* chips e tags com o mesmo padrão de cores vibrantes e harmoniosas em light e dark */
    .chips { display: flex; flex-wrap: wrap; gap: 6px; }
    .chip {
      padding: 4px 9px; border-radius: 8px;
      background: var(--tag-bg, var(--chip-bg));
      color: var(--tag-fg, var(--chip-color));
      border: 1px solid var(--tag-border, transparent);
      font-size: 10.5px; font-weight: 500;
      transition: background 300ms ease, color 300ms ease, border-color 300ms ease;
    }
    [data-theme="dark"] .chip,
    [data-theme="dark"] .tag {
      background: color-mix(in srgb, var(--tag-dot) 16%, var(--card-bg));
      border: 1px solid color-mix(in srgb, var(--tag-dot) 35%, var(--card-bg));
      color: color-mix(in srgb, #fff 88%, var(--tag-dot));
    }

    .meta {
      display: flex; align-items: center; justify-content: space-between;
      gap: 12px; margin-top: 10px; padding: 2px 6px 6px 0; margin-bottom: -4px;
      font-size: .8rem; color: var(--muted);
    }

    .cta-link {
      display: inline-flex; align-items: center; gap: 5px;
      padding: 6px 11px; border-radius: 10px;
      background: var(--tag-dot, var(--ink)); color: #fff;
      font-size: .76rem; font-weight: 600; white-space: nowrap;
      transition: transform 240ms ease, box-shadow 240ms ease;
      text-decoration: none;
    }
    .card:hover .cta-link {
      transform: translateY(-1px) translateX(1px);
      box-shadow: 0 4px 14px color-mix(in srgb, var(--tag-dot, var(--ink)) 35%, transparent);
    }

    /* ======================== CONTROLES ======================== */
    .controls {
      display: flex; align-items: center; gap: 12px; margin-top: 12px;
      position: relative; z-index: 5;
    }

    .nav-btn {
      width: 44px; height: 44px; display: grid; place-items: center;
      border: 1px solid var(--line); border-radius: 13px;
      background: var(--card-bg); color: var(--ink); cursor: pointer;
      transition: background 200ms ease, border-color 200ms ease, opacity 200ms ease, transform 200ms ease, color 300ms ease;
      -webkit-tap-highlight-color: transparent;
    }
    .nav-btn:hover { background: color-mix(in srgb, var(--ink) 8%, transparent); transform: translateY(-1px); }
    .nav-btn:active { transform: translateY(0) scale(.97); }
    .nav-btn:disabled { opacity: .3; cursor: default; transform: none; }

    .rail { position: relative; flex: 0 0 clamp(100px, 14vw, 190px); height: 2px; background: var(--line); border-radius: 2px; overflow: hidden; transition: background 300ms ease; }
    .rail span { position: absolute; inset: 0 auto 0 0; width: var(--rail-w, 50%); background: var(--ink); border-radius: 2px; transform: translateX(var(--rail-x, 0%)); transition: transform 680ms cubic-bezier(.22,1,.36,1), width 420ms ease, background 300ms ease; }

    .counter { font-size: .82rem; font-weight: 500; color: var(--muted); font-variant-numeric: tabular-nums; }
    .hint { margin-left: auto; font-size: .78rem; font-weight: 300; color: var(--muted); opacity: .6; }

    /* ======================== LOGIN (sem scroll) ======================== */
    /* a view de login trava a altura para caber inteira na tela */
    body.login-active { overflow: hidden; }

    #view-entrar.active {
      height: calc(100vh - var(--nav-h));
      max-height: calc(100vh - var(--nav-h));
      overflow: hidden;
      padding-top: 0;
      padding-bottom: 0;
      display: flex;
    }

    .login-wrap {
      width: 100%;
      height: 100%;
      display: flex; flex-direction: column; justify-content: center; align-items: center;
      gap: 0;
      overflow: hidden;
    }

    .login-card {
      width: 100%; max-width: 420px;
      background: var(--login-card-bg); border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: clamp(18px, 2.6vh, 34px) clamp(22px, 3vw, 36px);
      box-shadow: var(--shadow-login);
      transition: background 300ms ease, border-color 300ms ease, box-shadow 300ms ease;
      max-height: 100%;
      overflow: hidden;
    }

    .login-header { text-align: center; margin-bottom: clamp(14px, 2.4vh, 26px); }
    .login-header h2 { font-size: clamp(1.2rem, 2.2vh, 1.45rem); font-weight: 600; letter-spacing: -0.025em; }
    .login-header p { margin-top: 5px; font-size: clamp(.8rem, 1.6vh, .88rem); color: var(--muted); font-weight: 300; }

    .form-grid { display: grid; gap: clamp(10px, 1.7vh, 16px); }
    .field { display: grid; gap: 5px; }
    .field label { font-size: 12.5px; font-weight: 500; color: var(--ink); letter-spacing: .01em; }

    .field input {
      width: 100%; height: clamp(38px, 5.4vh, 44px); padding: 0 14px;
      border: 1px solid var(--input-border); border-radius: 11px;
      background: var(--input-bg); font-family: inherit; font-size: 14px; color: var(--ink);
      transition: border-color 200ms ease, box-shadow 200ms ease, background 200ms ease;
      outline: none; -webkit-appearance: none;
    }
    .field input::placeholder { color: var(--input-placeholder); }
    .field input:hover { border-color: var(--input-border-hover); background: var(--input-bg-focus); }
    .field input:focus { border-color: var(--ink); box-shadow: var(--input-focus-ring); background: var(--input-bg-focus); }

    .forgot { text-align: right; margin-top: -6px; }
    .forgot a { font-size: 12px; color: var(--muted); text-decoration: none; transition: color 180ms ease; }
    .forgot a:hover { color: var(--ink); }

    .remember-access {
      position: relative;
      display: flex; align-items: flex-start; gap: 10px;
      padding: 10px 12px; border: 1px solid var(--line); border-radius: 11px;
      background: var(--input-bg); transition: opacity 180ms ease, background 180ms ease, border-color 180ms ease;
    }
    .remember-access.is-disabled { opacity: .52; }
    .remember-access input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
    .remember-switch {
      position: relative; flex: 0 0 auto; width: 38px; height: 22px; margin-top: 1px;
      border-radius: 999px; background: var(--toggle-bg); border: 1px solid var(--toggle-border);
      cursor: pointer; transition: background 180ms ease, border-color 180ms ease;
    }
    .remember-switch::after {
      content: ""; position: absolute; width: 16px; height: 16px; top: 2px; left: 2px;
      border-radius: 50%; background: var(--card-bg); box-shadow: 0 1px 4px rgba(0,0,0,.2);
      transition: transform 180ms ease;
    }
    .remember-access input:checked + .remember-switch { background: #16a37b; border-color: #16a37b; }
    .remember-access input:checked + .remember-switch::after { transform: translateX(16px); }
    .remember-access input:focus-visible + .remember-switch { box-shadow: var(--input-focus-ring); }
    .remember-access input:disabled + .remember-switch { cursor: not-allowed; }
    .remember-copy { display: grid; gap: 2px; cursor: pointer; }
    .remember-copy strong { font-size: 12.5px; font-weight: 600; color: var(--ink); }
    .remember-copy small { font-size: 10.5px; line-height: 1.35; color: var(--muted); }
    .panel-link { text-decoration: none; }

    .submit-btn {
      width: 100%; height: clamp(40px, 5.8vh, 48px); border: none; border-radius: 13px;
      background: var(--ink); color: var(--paper); font-family: inherit;
      font-size: 14px; font-weight: 600; cursor: pointer;
      display: flex; align-items: center; justify-content: center; gap: 8px;
      transition: transform 200ms ease, box-shadow 200ms ease, opacity 200ms ease, background 300ms ease, color 300ms ease;
      margin-top: 2px;
    }
    .submit-btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-sub-btn); }
    .submit-btn:active { transform: translateY(0) scale(.99); }

    .divider-line { display: flex; align-items: center; gap: 14px; margin: clamp(8px, 1.6vh, 14px) 0; }
    .divider-line::before, .divider-line::after { content: ""; flex: 1; height: 1px; background: var(--line); transition: background 300ms ease; }
    .divider-line span { font-size: 12px; color: var(--divider-span); font-weight: 400; transition: color 300ms ease; }

    .social-btns { display: grid; gap: 10px; }
    .social-btn {
      width: 100%; height: clamp(38px, 5.4vh, 46px); display: flex; align-items: center; justify-content: center; gap: 10px;
      border: 1px solid var(--line); border-radius: 12px;
      background: var(--social-btn-bg); font-family: inherit; font-size: 13px; font-weight: 500;
      color: var(--ink); cursor: pointer;
      transition: background 200ms ease, border-color 200ms ease, transform 200ms ease, color 300ms ease;
    }
    .social-btn:hover { background: var(--social-btn-hover); border-color: var(--social-btn-border-hover); transform: translateY(-1px); }

    .login-footer { text-align: center; margin-top: clamp(10px, 2vh, 18px); font-size: .84rem; color: var(--muted); }
    .login-footer a { color: var(--ink); font-weight: 500; text-decoration: none; transition: color 300ms ease; }
    .login-footer a:hover { text-decoration: underline; }

    .success-msg { display: none; text-align: center; padding: 16px; }
    .success-msg.show { display: block; }
    .success-icon {
      width: 52px; height: 52px; border-radius: 50%;
      background: var(--success-bg); border: 1px solid var(--success-border);
      display: grid; place-items: center; margin: 0 auto 14px;
      transition: background 300ms ease, border-color 300ms ease;
    }
    .success-msg h3 { font-size: 1.1rem; font-weight: 600; margin-bottom: 6px; }
    .success-msg p { font-size: .88rem; color: var(--muted); }

    /* ======================== FOOTER ======================== */
    .site-footer {
      width: min(1680px, 100%);
      margin: clamp(56px, 8vh, 96px) auto 0;
      padding: clamp(22px, 3vh, 30px) clamp(16px, 3.6vw, 60px) clamp(30px, 4vh, 44px);
      border-top: 1px solid var(--line);
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 10px;
      text-align: center;
      transition: border-color 300ms ease;
    }

    .footer-brand {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      color: var(--ink);
      transition: color 300ms ease;
    }

    .footer-brand-icon {
      width: 26px; height: 26px;
      border-radius: 8px;
      background: var(--ink);
      display: grid; place-items: center;
      transition: background 300ms ease;
    }
    .footer-brand-icon svg { color: var(--paper); transition: color 300ms ease; }

    .footer-brand-name {
      font-size: 14px;
      font-weight: 600;
      letter-spacing: -0.02em;
    }

    .footer-slogan {
      margin: 0;
      font-size: 12.5px;
      font-weight: 300;
      color: var(--muted);
      max-width: 540px;
      line-height: 1.5;
      transition: color 300ms ease;
    }

    .footer-meta {
      margin: 2px 0 0;
      font-size: 11.5px;
      font-weight: 400;
      color: var(--muted);
      opacity: .75;
      letter-spacing: .02em;
      transition: color 300ms ease;
    }

    .footer-meta a {
      color: var(--muted);
      text-decoration: none;
      transition: color 180ms ease;
    }
    .footer-meta a:hover { color: var(--ink); }

    .footer-divider {
      width: 100%;
      height: 1px;
      background: var(--line);
      margin: 4px 0;
      transition: background 300ms ease;
    }

    .footer-legal {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 6px 14px;
      font-size: 11px;
      color: var(--muted);
      opacity: .7;
    }
    .footer-legal span { white-space: nowrap; }

    /* ======================== WHATSAPP FLOATING BUTTON ======================== */
    .float-wpp {
      position: fixed;
      bottom: clamp(20px, 4vh, 32px);
      right: clamp(20px, 4vw, 32px);
      z-index: 990;
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px 18px 10px 14px;
      border-radius: 999px;
      background: #25d366;
      color: #fff;
      text-decoration: none;
      box-shadow: 0 4px 18px rgba(37, 211, 102, 0.42), 0 2px 8px rgba(0, 0, 0, 0.18);
      transition: transform 300ms cubic-bezier(.2,.8,.2,1), box-shadow 300ms ease, background 200ms ease;
      -webkit-tap-highlight-color: transparent;
      animation: wppBounce 3.5s ease-in-out infinite;
    }

    @keyframes wppBounce {
      0%, 100% { transform: translateY(0) scale(1); }
      50% { transform: translateY(-6px) scale(1.02); }
    }

    .float-wpp:hover {
      background: #20bd5a;
      transform: translateY(-4px) scale(1.06) !important;
      box-shadow: 0 8px 28px rgba(37, 211, 102, 0.6), 0 4px 12px rgba(0, 0, 0, 0.22);
    }

    .wpp-ping {
      position: absolute;
      left: 10px;
      top: 50%;
      transform: translateY(-50%);
      width: 32px;
      height: 32px;
      border-radius: 50%;
      background: #25d366;
      opacity: 0.7;
      animation: ping 2s cubic-bezier(0, 0, 0.2, 1) infinite;
      pointer-events: none;
    }

    @keyframes ping {
      75%, 100% { transform: translateY(-50%) scale(1.8); opacity: 0; }
    }

    .wpp-icon {
      position: relative;
      z-index: 2;
      display: grid;
      place-items: center;
      width: 28px;
      height: 28px;
    }

    .wpp-text {
      position: relative;
      z-index: 2;
      font-size: 13.5px;
      font-weight: 600;
      letter-spacing: -0.01em;
      white-space: nowrap;
      text-shadow: 0 1px 2px rgba(0,0,0,.15);
    }

    /* ======================== RESPONSIVIDADE ======================== */
    @media (max-width: 1180px) { :root { --cards: 3; } }
    @media (max-width: 900px) {
      :root { --cards: 2; --gap: 16px; }
      .hint { display: none; }
    }
    @media (max-width: 860px) { .brand-name { display: none; } }

    @media (max-width: 680px) {
      :root { --cards: 2; --gap: 12px; --nav-h: 58px; --mask-pad-y: 8px; --lift: 0px; --hover-scale: 1; }

      .top-nav { padding: 0 14px; gap: 10px; }
      .toggle-btn { padding: 0 13px; font-size: 12px; }
      .view { padding: 16px 16px 40px; }
      .socials { display: none; }
      .socials-mobile { display: flex !important; }

      .hero { justify-content: flex-start; gap: 16px; }
      .hero-header { margin-top: 28px; }
      .title { font-size: clamp(2.2rem, 9vw, 3.2rem); margin-top: 12px; }
      .subtitle { font-size: .92rem; margin-top: 12px; margin-bottom: 12px; }
      .login-tip { top: calc(100% + 14px); right: 0; font-size: 10px; padding: 5px 10px; }

      /* mobile: 2 cards lado a lado, em grid */
      .mask { overflow: visible; padding: 6px 0 0; margin: 0; padding-inline: 0; }
      .track {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
        transform: none !important;
      }
      .card {
        flex: 0 0 auto; width: 100%; height: auto; min-height: 0;
        opacity: 1 !important; filter: none !important; transform: none !important;
        border-radius: 13px;
      }
      .card:hover, .card:focus-visible { transform: none !important; box-shadow: none; }
      .media { height: 130px; flex: 0 0 130px; }
      .tag { top: 8px; left: 8px; padding: 4px 8px 4px 6px; font-size: 8.5px; gap: 5px; border-radius: 7px; }
      .tag-dot { width: 6px; height: 6px; box-shadow: 0 0 0 2px var(--tag-ring); }
      .ribbon-badge { top: 14px; right: -46px; width: 150px; font-size: 7px; padding: 4px 0; letter-spacing: .04em; }
      /* no mobile: conteúdo sempre visível, chips e cta sempre visíveis */
      .reveal { grid-template-rows: 1fr; opacity: 1; }
      .body { padding: 10px 11px 12px; }
      .body h2 { font-size: 1.08rem; line-height: 1.25; }
      .lede { font-size: .76rem; line-height: 1.38; margin-top: 3px; }

      .site-footer { margin-top: 40px; padding: 18px 16px 34px; gap: 8px; }
      .footer-brand-name { font-size: 13px; }
      .footer-slogan { font-size: 11.5px; }
      .footer-meta { font-size: 10.5px; }
      .footer-legal { font-size: 10px; gap: 4px 10px; }
      .divider { margin: 8px 0; }
      .chips { gap: 4px; }
      .chip { font-size: 8.5px; padding: 3px 6px; border-radius: 6px; }
      .meta { flex-direction: column; align-items: flex-start; gap: 7px; margin-top: 8px; font-size: .68rem; padding-right: 0; }
      .cta-link { font-size: .7rem; padding: 5px 9px; border-radius: 8px; }
      .controls { display: none; }

      .login-card { padding: 18px 18px; max-width: 100%; }
      .login-wrap { justify-content: center; padding-top: 0; }
      #view-entrar.active { padding-left: 16px; padding-right: 16px; }
      .login-header { margin-bottom: 14px; }
      .login-header h2 { font-size: 1.2rem; }
      .login-header p { font-size: .8rem; }
      .form-grid { gap: 11px; }
      .field input { height: 40px; font-size: 13.5px; }
      .submit-btn { height: 42px; font-size: 13.5px; }
      .divider-line { margin: 9px 0; }
      .social-btn { height: 40px; font-size: 12.5px; }
      .login-footer { margin-top: 11px; font-size: .78rem; }

      /* botão compartilhar aparece no footer mobile, ao lado das redes */
      .share-wrap { display: block; }
      .share-btn { width: 42px; height: 42px; border-radius: 12px; }

      /* ícone flutuante do wpp no mobile: acompanha o scroll e tem animação reativa ao rolar */
      .float-wpp {
        bottom: 20px;
        right: 18px;
        padding: 12px;
        border-radius: 50%;
        transition: transform 250ms cubic-bezier(.2,.8,.2,1), bottom 250ms ease, box-shadow 250ms ease;
      }
      .wpp-text { display: none; }
      .wpp-icon { width: 30px; height: 30px; }
      .wpp-icon svg { width: 26px; height: 26px; }
      .wpp-ping { left: 8px; width: 38px; height: 38px; }
      .float-wpp.is-scrolling {
        transform: scale(0.92) translateY(5px) !important;
        box-shadow: 0 2px 10px rgba(37, 211, 102, 0.35);
      }
    }

    @media (max-width: 380px) {
      .top-nav { gap: 7px; padding: 0 12px; }
      .toggle-btn { padding: 0 11px; font-size: 11.5px; gap: 5px; }
      .brand-icon { width: 30px; height: 30px; }
      .cart-btn, .theme-btn { width: 34px; height: 34px; border-radius: 10px; }
      .share-menu { min-width: 172px; margin-left: -86px; }
      :root { --gap: 10px; }
      .track { gap: 10px; }
      .body { padding: 9px 10px 11px; }
      .body h2 { font-size: .88rem; }
      .lede { font-size: .7rem; }
    }

    @media (prefers-reduced-motion: reduce) {
      * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
    }

    .card-link { text-decoration: none; }
    .catalog-empty { --tag-dot:#8b5cf6; cursor:default; }
    .media-centered { display:grid; place-items:center; }
    .brand-dynamic-logo { width:100%; height:100%; object-fit:contain; border-radius:inherit; }
    .footer-heart { color:#ef4444; display:inline-block; animation:heartBeat 1.2s infinite ease-in-out; }
    .social-instagram { --sc:#e1306c; }
    .social-tiktok { --sc:#000000; }
    .social-youtube { --sc:#ff0000; }
    .share-whatsapp { --si:#25d366; }
    .share-facebook { --si:#0866ff; }
    .share-x { --si:#111; }
    .share-linkedin { --si:#0a66c2; }
    .share-copy { --si:#16a37b; }
