/* ==========================================================================
   Colorê — base: reset, tipografia e utilitários
   ========================================================================== */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scrollbar-gutter: stable;
  scroll-padding-top: calc(var(--topbar-h) + var(--safe-top) + 8px);
  -webkit-tap-highlight-color: transparent;
  cursor: var(--cursor);
}

/* ---------- Cursor: seta e mãozinha tradicionais, nas cores do site (só com mouse) ----------
   Tinta escura com contorno de papel no tema claro, creme no escuro; a ponta da seta e a do dedo
   levam um toque de magenta, como se tivessem sido mergulhadas na tinta. As cores ficam no próprio SVG. */
:root {
  --cursor: auto;
  --cursor-mao: pointer;
}

@media (hover: hover) and (pointer: fine) {
  :root {
    --cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3CclipPath id='c'%3E%3Cpath d='M4 3V23L9 18L12.75 25.5L15.25 24.25L11.5 16.75H17.75Z'/%3E%3C/clipPath%3E%3Cpath d='M4 3V23L9 18L12.75 25.5L15.25 24.25L11.5 16.75H17.75Z' fill='%23211A2B'/%3E%3Cpath d='M0 0H32V8.9C9 9.3 8.4 8.6 7.4 9.4C6.7 10 6.5 11.4 5.8 11.4C5.1 11.4 5.2 9.6 4 9.5H0Z' fill='%23F5279C' clip-path='url(%23c)'/%3E%3Cpath d='M4 3V23L9 18L12.75 25.5L15.25 24.25L11.5 16.75H17.75Z' fill='none' stroke='%23FFFDF9' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") 4 3, auto;
    --cursor-mao: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3CclipPath id='c'%3E%3Cpath d='M9 16.6V5A2 2 0 0 1 13 5V12A2 2 0 0 1 17 12V13A2 2 0 0 1 21 13V14.5A1.75 1.75 0 0 1 24.5 14.5V21C24.5 25 22 28 18 28H14C11.6 28 10.1 26.6 8.6 24.6L4.6 19.3C3.7 18.1 4.2 16.5 5.5 16.2C6.6 16 7.5 16.6 8.2 17.4L9 18.3Z'/%3E%3C/clipPath%3E%3Cpath d='M9 16.6V5A2 2 0 0 1 13 5V12A2 2 0 0 1 17 12V13A2 2 0 0 1 21 13V14.5A1.75 1.75 0 0 1 24.5 14.5V21C24.5 25 22 28 18 28H14C11.6 28 10.1 26.6 8.6 24.6L4.6 19.3C3.7 18.1 4.2 16.5 5.5 16.2C6.6 16 7.5 16.6 8.2 17.4L9 18.3Z' fill='%23211A2B'/%3E%3Cpath d='M0 0H32V7.3C12.6 7.9 12 7 11.1 7.7C10.5 8.2 10 8.1 0 7.5Z' fill='%23F5279C' clip-path='url(%23c)'/%3E%3Cpath d='M13 12.6V15.2M17 13.6V15.8M21 15.1V17' fill='none' stroke='%23FFFDF9' stroke-opacity='.75' stroke-width='1.1' stroke-linecap='round'/%3E%3Cpath d='M9 16.6V5A2 2 0 0 1 13 5V12A2 2 0 0 1 17 12V13A2 2 0 0 1 21 13V14.5A1.75 1.75 0 0 1 24.5 14.5V21C24.5 25 22 28 18 28H14C11.6 28 10.1 26.6 8.6 24.6L4.6 19.3C3.7 18.1 4.2 16.5 5.5 16.2C6.6 16 7.5 16.6 8.2 17.4L9 18.3Z' fill='none' stroke='%23FFFDF9' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") 11 3, pointer;
  }

  :root[data-theme="dark"] {
    --cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3CclipPath id='c'%3E%3Cpath d='M4 3V23L9 18L12.75 25.5L15.25 24.25L11.5 16.75H17.75Z'/%3E%3C/clipPath%3E%3Cpath d='M4 3V23L9 18L12.75 25.5L15.25 24.25L11.5 16.75H17.75Z' fill='%23F2ECE3'/%3E%3Cpath d='M0 0H32V8.9C9 9.3 8.4 8.6 7.4 9.4C6.7 10 6.5 11.4 5.8 11.4C5.1 11.4 5.2 9.6 4 9.5H0Z' fill='%23FF4FAE' clip-path='url(%23c)'/%3E%3Cpath d='M4 3V23L9 18L12.75 25.5L15.25 24.25L11.5 16.75H17.75Z' fill='none' stroke='%23121A21' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") 4 3, auto;
    --cursor-mao: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3CclipPath id='c'%3E%3Cpath d='M9 16.6V5A2 2 0 0 1 13 5V12A2 2 0 0 1 17 12V13A2 2 0 0 1 21 13V14.5A1.75 1.75 0 0 1 24.5 14.5V21C24.5 25 22 28 18 28H14C11.6 28 10.1 26.6 8.6 24.6L4.6 19.3C3.7 18.1 4.2 16.5 5.5 16.2C6.6 16 7.5 16.6 8.2 17.4L9 18.3Z'/%3E%3C/clipPath%3E%3Cpath d='M9 16.6V5A2 2 0 0 1 13 5V12A2 2 0 0 1 17 12V13A2 2 0 0 1 21 13V14.5A1.75 1.75 0 0 1 24.5 14.5V21C24.5 25 22 28 18 28H14C11.6 28 10.1 26.6 8.6 24.6L4.6 19.3C3.7 18.1 4.2 16.5 5.5 16.2C6.6 16 7.5 16.6 8.2 17.4L9 18.3Z' fill='%23F2ECE3'/%3E%3Cpath d='M0 0H32V7.3C12.6 7.9 12 7 11.1 7.7C10.5 8.2 10 8.1 0 7.5Z' fill='%23FF4FAE' clip-path='url(%23c)'/%3E%3Cpath d='M13 12.6V15.2M17 13.6V15.8M21 15.1V17' fill='none' stroke='%23121A21' stroke-opacity='.75' stroke-width='1.1' stroke-linecap='round'/%3E%3Cpath d='M9 16.6V5A2 2 0 0 1 13 5V12A2 2 0 0 1 17 12V13A2 2 0 0 1 21 13V14.5A1.75 1.75 0 0 1 24.5 14.5V21C24.5 25 22 28 18 28H14C11.6 28 10.1 26.6 8.6 24.6L4.6 19.3C3.7 18.1 4.2 16.5 5.5 16.2C6.6 16 7.5 16.6 8.2 17.4L9 18.3Z' fill='none' stroke='%23121A21' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") 11 3, pointer;
  }
}

/* ---------- Barra de rolagem: um traço de tinta nas cores da logo ---------- */
@supports selector(::-webkit-scrollbar) {
  ::-webkit-scrollbar {
    width: 12px;
    height: 12px;
  }

  ::-webkit-scrollbar-track,
  ::-webkit-scrollbar-corner {
    background: transparent;
  }

  ::-webkit-scrollbar-thumb {
    border: 3px solid transparent;
    border-radius: var(--radius-pill);
    background: linear-gradient(var(--magenta), var(--roxo) 55%, var(--ciano)) padding-box;
  }

  ::-webkit-scrollbar-thumb:hover,
  ::-webkit-scrollbar-thumb:active {
    border-width: 2px;
  }
}

/* Firefox não tem os seletores acima: só cor e espessura */
@supports not selector(::-webkit-scrollbar) {
  html {
    scrollbar-color: var(--roxo) transparent;
    scrollbar-width: thin;
  }
}

/* Rolagem do fundo travada enquanto carta ou galeria estão abertas */
html.has-modal {
  overflow: hidden;
}

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  background-color: var(--bg);
  background-image: var(--grain);
  color: var(--text);
  font-family: var(--font-body);
  font-size: var(--fs-base);
  line-height: var(--lh);
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

@supports (overflow: clip) {
  body {
    overflow-x: clip;
  }
}

img,
svg,
video,
iframe {
  display: block;
  max-width: 100%;
}

img {
  height: auto;
}

h1,
h2,
h3,
p,
ul,
ol,
figure,
blockquote {
  margin: 0;
}

ul[role="list"],
ol[role="list"] {
  list-style: none;
  padding: 0;
}

h1,
h2,
h3 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -0.015em;
  text-wrap: balance;
}

p {
  text-wrap: pretty;
}

a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
}

button {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  touch-action: manipulation;
}

a,
button {
  -webkit-tap-highlight-color: transparent;
}

a[href],
button,
summary,
label[for] {
  cursor: var(--cursor-mao);
}

:focus {
  outline: none;
}

:focus-visible {
  outline: 2.5px solid var(--focus);
  outline-offset: 3px;
  border-radius: 6px;
}

::selection {
  background: color-mix(in srgb, var(--brand-2) 35%, transparent);
  color: var(--text);
}

[hidden] {
  display: none !important;
}

/* ---------- Utilitários ---------- */
.container {
  width: 100%;
  max-width: calc(var(--maxw) + var(--gutter) * 2);
  margin-inline: auto;
  padding-inline: calc(var(--gutter) + var(--safe-left)) calc(var(--gutter) + var(--safe-right));
}

.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  top: calc(var(--safe-top) + 8px);
  left: 8px;
  z-index: 100;
  padding: 0.75rem 1.1rem;
  border-radius: var(--radius-pill);
  background: var(--text);
  color: var(--bg);
  font-weight: 700;
  text-decoration: none;
  transform: translateY(-160%);
  transition: transform var(--dur-2) var(--ease);
}

.skip-link:focus-visible {
  transform: none;
}

/* Rótulo pequeno acima dos títulos */
.kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.kicker__num {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 1.05rem;
  letter-spacing: 0;
  text-transform: none;
  color: var(--sec-ink, var(--accent));
}

.kicker::after {
  content: "";
  width: 2.25rem;
  height: 1px;
  background: currentColor;
  opacity: 0.5;
}
