/* A página da Série Quintal (spec 106 §9). Papel de aquarela, a tinta marrom
   dos livros antigos e o tom de cada app. Tudo do balde (CSP `'self'`). */

@font-face {
  font-family: "Literata";
  src: url("/fontes/literata.woff2") format("woff2");
  font-weight: 200 900; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Inter";
  src: url("/fontes/inter.woff2") format("woff2");
  font-weight: 100 900; font-style: normal; font-display: swap;
}

:root {
  color-scheme: light dark;
  --serifa: "Literata", "Iowan Old Style", Georgia, serif;
  --sem-serifa: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  --papel: #f5eedf;
  --papel-alto: #fbf7ee;
  --tinta: #3f2e22;
  --tinta-2: #6b5646;
  --tinta-3: #937c69;
  --verde: #557b56;
  --cartao: rgba(255, 251, 242, .74);
  --cartao-forte: rgba(255, 252, 246, .9);
  --cartao-borda: rgba(255, 255, 255, .85);
  --cartao-aresta: rgba(98, 70, 44, .12);
  --mancha-verde: rgba(150, 190, 132, .42);
  --mancha-rosa: rgba(231, 170, 156, .38);
  --mancha-ouro: rgba(238, 205, 132, .40);
  --mancha-azul: rgba(150, 190, 200, .32);
  --grao: .18;
  --sombra-1: 0 1px 2px rgba(74, 52, 38, .06), 0 10px 24px -12px rgba(74, 52, 38, .22);
  --sombra-2: 0 2px 4px rgba(74, 52, 38, .05), 0 24px 48px -24px rgba(74, 52, 38, .32), 0 60px 90px -60px rgba(74, 52, 38, .3);
  --sombra-tela: 0 2px 6px rgba(60, 40, 24, .14), 0 26px 50px -22px rgba(60, 40, 24, .45);
  --gutter: clamp(16px, 4vw, 40px);
  --largura: 1160px;
}

@media (prefers-color-scheme: dark) {
  :root {
    --papel: #171a13;
    --papel-alto: #1e2219;
    --tinta: #efe6d6;
    --tinta-2: #c8bba6;
    --tinta-3: #9c907e;
    --verde: #9cc28f;
    --cartao: rgba(40, 44, 34, .66);
    --cartao-forte: rgba(46, 50, 39, .86);
    --cartao-borda: rgba(255, 245, 225, .07);
    --cartao-aresta: rgba(0, 0, 0, .45);
    --mancha-verde: rgba(90, 130, 80, .30);
    --mancha-rosa: rgba(160, 90, 80, .22);
    --mancha-ouro: rgba(170, 130, 60, .22);
    --mancha-azul: rgba(70, 110, 120, .24);
    --grao: .1;
    --sombra-1: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 24px -12px rgba(0, 0, 0, .6);
    --sombra-2: 0 2px 4px rgba(0, 0, 0, .35), 0 24px 48px -24px rgba(0, 0, 0, .7), 0 60px 90px -60px rgba(0, 0, 0, .6);
    --sombra-tela: 0 2px 6px rgba(0, 0, 0, .45), 0 26px 50px -22px rgba(0, 0, 0, .8);
  }
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; background: var(--papel); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0; color: var(--tinta); background: var(--papel);
  font: 400 17.5px/1.65 var(--serifa);
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
body::before {
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 100;
  opacity: var(--grao); mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .42 0 0 0 0 .33 0 0 0 0 .22 0 0 0 .6 0'/></filter><rect width='220' height='220' filter='url(%23n)'/></svg>");
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--verde); }
:focus-visible { outline: 2px solid var(--verde); outline-offset: 3px; border-radius: 6px; }

.pular { position: absolute; left: 12px; top: -60px; z-index: 200; background: var(--tinta); color: var(--papel); padding: 10px 14px; border-radius: 10px; text-decoration: none; }
.pular:focus { top: 12px; }

/* ── O topo ── */
.topo {
  position: sticky; top: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: calc(12px + env(safe-area-inset-top)) var(--gutter) 12px;
  background: color-mix(in srgb, var(--papel) 78%, transparent);
  backdrop-filter: blur(14px) saturate(1.2); -webkit-backdrop-filter: blur(14px) saturate(1.2);
  border-bottom: 1px solid color-mix(in srgb, var(--tinta) 7%, transparent);
}
.topo-nome { font: 600 1.1rem/1 var(--serifa); letter-spacing: .01em; }
.topo-nav { display: flex; gap: 6px; font: 500 14px/1 var(--sem-serifa); }
.topo-nav a { color: var(--tinta-2); text-decoration: none; padding: 8px 10px; border-radius: 999px; }
.topo-nav a:hover { color: var(--tinta); background: color-mix(in srgb, var(--tinta) 6%, transparent); }
@media (max-width: 560px) { .topo-nav { display: none; } }

/* ── A abertura ── */
.abertura {
  position: relative; isolation: isolate; text-align: center;
  padding: clamp(48px, 8vw, 96px) var(--gutter) clamp(56px, 8vw, 100px);
}
.aquarela { position: absolute; inset: -80px 0 -160px; z-index: -1; overflow: hidden; pointer-events: none;
  -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent); mask-image: linear-gradient(180deg, #000 70%, transparent); }
.mancha { position: absolute; border-radius: 48% 52% 55% 45% / 50% 44% 56% 50%; filter: blur(28px); animation: flutua 18s ease-in-out infinite; }
.m1 { width: 46vw; height: 30vw; left: -8vw; top: 6%; background: var(--mancha-verde); }
.m2 { width: 40vw; height: 28vw; right: -6vw; top: 2%; background: var(--mancha-rosa); animation-delay: -6s; }
.m3 { width: 50vw; height: 26vw; left: 22vw; bottom: -6%; background: var(--mancha-ouro); animation-delay: -11s; }
.m4 { width: 26vw; height: 20vw; right: 10vw; bottom: 8%; background: var(--mancha-azul); animation-delay: -3s; }
@keyframes flutua { 0%, 100% { transform: translate(0, 0) scale(1); } 50% { transform: translate(2vw, -1.5vw) scale(1.05); } }
@media (prefers-reduced-motion: reduce) { .mancha { animation: none; } }

.trio { list-style: none; margin: 0 auto 34px; padding: 0; display: flex; justify-content: center; }
.trio li { margin: 0 -10px; }
.trio img {
  width: clamp(76px, 10vw, 108px); height: auto; border-radius: 24%;
  box-shadow: 0 0 0 3px var(--papel-alto), var(--sombra-2);
  animation: balanca 7s ease-in-out infinite;
}
.trio li:nth-child(1) img { transform: rotate(-8deg) translateY(10px); animation-delay: -1s; }
.trio li:nth-child(2) { position: relative; z-index: 1; }
.trio li:nth-child(2) img { width: clamp(88px, 11.5vw, 124px); animation-delay: -3s; }
.trio li:nth-child(3) img { transform: rotate(8deg) translateY(10px); animation-delay: -5s; }
@keyframes balanca { 0%, 100% { translate: 0 0; } 50% { translate: 0 -6px; } }
@media (prefers-reduced-motion: reduce) { .trio img { animation: none; } }

.sobrelinha { margin: 0 0 16px; font: 600 12.5px/1.3 var(--sem-serifa); letter-spacing: .18em; text-transform: uppercase; color: var(--verde); }
.abertura h1 {
  margin: 0 auto; max-width: 13em;
  font: 500 clamp(2.4rem, 5vw + 1rem, 4.8rem)/1.04 var(--serifa); letter-spacing: -.025em; text-wrap: balance;
}
.abertura h1 em { font-style: italic; font-weight: 400; color: var(--verde); }
.lide { max-width: 36em; margin: 24px auto 0; font-size: clamp(1.05rem, .4vw + 1rem, 1.25rem); color: var(--tinta-2); text-wrap: pretty; }
.promessa { list-style: none; display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; margin: 32px auto 0; padding: 12px 24px; border-radius: 999px;
  background: var(--cartao); box-shadow: var(--sombra-1), inset 0 1px 0 var(--cartao-borda); font: 600 14.5px/1.3 var(--sem-serifa); color: var(--tinta-2); }
.promessa li::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--verde); margin-right: 8px; vertical-align: 2px; }

/* ── Títulos de seção ── */
.titulo-secao { text-align: center; margin: 0 0 34px; font: 500 clamp(1.8rem, 2vw + 1rem, 2.6rem)/1.1 var(--serifa); letter-spacing: -.02em; }
.titulo-secao::after { content: ""; display: block; width: 46px; height: 3px; margin: 18px auto 0; border-radius: 3px; background: linear-gradient(90deg, #6f9a52, #e2b35a, #d0826c); }

/* ── O jeito ── */
.jeito { padding: 0 var(--gutter) clamp(64px, 9vw, 110px); }
.jeito-grade { max-width: var(--largura); margin: 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.jeito-item { padding: 28px 26px; border-radius: 24px; background: linear-gradient(170deg, var(--cartao-forte), var(--cartao)); box-shadow: var(--sombra-1), inset 0 1px 0 var(--cartao-borda), inset 0 0 0 1px var(--cartao-aresta); }
.jeito-sinal { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; font-size: 22px; color: var(--verde); background: color-mix(in srgb, var(--verde) 14%, transparent); }
.jeito-item h3 { margin: 18px 0 8px; font: 600 1.22rem/1.25 var(--serifa); }
.jeito-item p { margin: 0; color: var(--tinta-2); font-size: 1rem; }
@media (max-width: 860px) { .jeito-grade { grid-template-columns: 1fr; max-width: 560px; } }

/* ── Cada app ── */
#apps { display: grid; gap: clamp(28px, 4vw, 48px); padding: 0 var(--gutter); }
.app {
  position: relative; isolation: isolate; overflow: hidden;
  max-width: var(--largura); width: 100%; margin: 0 auto;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(24px, 4vw, 60px);
  padding: clamp(26px, 4.4vw, 60px); border-radius: 34px;
  background:
    radial-gradient(70% 80% at 100% 100%, color-mix(in srgb, var(--tom) 24%, transparent), transparent 62%),
    radial-gradient(50% 50% at 0% 0%, color-mix(in srgb, var(--tom-claro) 55%, transparent), transparent 70%),
    linear-gradient(165deg, var(--cartao-forte), var(--cartao));
  box-shadow: var(--sombra-2), inset 0 1px 0 var(--cartao-borda), inset 0 0 0 1px var(--cartao-aresta);
}
@media (prefers-color-scheme: dark) {
  .app { background:
    radial-gradient(70% 80% at 100% 100%, color-mix(in srgb, var(--tom) 30%, transparent), transparent 62%),
    linear-gradient(165deg, var(--cartao-forte), var(--cartao)); }
}
.app-par .app-texto { order: 2; }
.app-par .telas { order: 1; }

.app-cabeca { display: flex; align-items: center; gap: 16px; }
.icone { width: 72px; height: 72px; border-radius: 17px; flex: none; box-shadow: 0 0 0 2px var(--papel-alto), 0 12px 26px -12px color-mix(in srgb, var(--tom) 80%, black); }
.app-cabeca h2 { margin: 0; font: 600 1.75rem/1.1 var(--serifa); letter-spacing: -.01em; }
.app-chamada { margin: 6px 0 0; font: 600 12px/1.3 var(--sem-serifa); letter-spacing: .14em; text-transform: uppercase; color: color-mix(in srgb, var(--tom) 75%, var(--tinta)); }
.app-titulo { margin: 26px 0 10px; font: 500 clamp(1.55rem, 1.6vw + 1rem, 2.3rem)/1.14 var(--serifa); letter-spacing: -.02em; text-wrap: balance; }
.app-texto > p { color: var(--tinta-2); text-wrap: pretty; }
.app-texto > p.app-titulo { color: var(--tinta); }

.passos { list-style: none; counter-reset: passo; margin: 20px 0 0; padding: 0; display: grid; gap: 12px; }
.passos li { counter-increment: passo; position: relative; padding-left: 44px; color: var(--tinta-2); font-size: 1rem; }
.passos li::before {
  content: counter(passo); position: absolute; left: 0; top: 1px;
  width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center;
  font: 600 13px/1 var(--sem-serifa); color: var(--papel-alto);
  background: radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--tom) 70%, white), var(--tom));
  box-shadow: 0 4px 10px -4px color-mix(in srgb, var(--tom) 80%, black);
}
.passos b { color: var(--tinta); font-weight: 600; }

.estante-titulo { margin: 24px 0 4px; font: 600 12px/1.3 var(--sem-serifa) !important; letter-spacing: .14em; text-transform: uppercase; color: var(--tinta-3) !important; }
.estante { margin: 0; font-style: italic; font-size: 1rem; }
.compra { margin: 16px 0 0; font-size: .95rem; padding: 12px 16px; border-radius: 14px; background: color-mix(in srgb, var(--tom) 8%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tom) 16%, transparent); }

.lojas { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 22px; min-height: 48px; }
.selo { display: inline-block; border-radius: 10px; transition: transform .2s ease; }
.selo:hover { transform: translateY(-2px); }
.selo-apple img { height: 48px; width: auto; }
.selo-play img { height: 70px; width: auto; margin: -11px -10px; }
.em-breve { display: inline-flex; align-items: center; gap: 9px; min-height: 46px; padding: 0 16px; border-radius: 12px;
  font: 500 14px/1.2 var(--sem-serifa); color: var(--tinta-2);
  background: color-mix(in srgb, var(--cartao-forte) 70%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tinta) 12%, transparent); }
.em-breve .ponto { width: 7px; height: 7px; border-radius: 50%; background: var(--tom); box-shadow: 0 0 0 4px color-mix(in srgb, var(--tom) 22%, transparent); }

/* As três telas em leque. */
.telas { position: relative; display: grid; grid-template-columns: 1fr; justify-items: center; align-items: center; min-height: 100%; }
.telas::before { content: ""; position: absolute; inset: 15% 5% 5%; z-index: -1; border-radius: 50%; filter: blur(34px);
  background: radial-gradient(circle, color-mix(in srgb, var(--tom) 40%, transparent), transparent 66%); }
.telas img {
  grid-area: 1 / 1; width: min(250px, 46%); border-radius: 22px;
  box-shadow: var(--sombra-tela), 0 0 0 1px rgba(0, 0, 0, .06);
  transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}
.telas img:nth-child(1) { transform: translateX(-62%) rotate(-7deg) scale(.88); }
.telas img:nth-child(2) { position: relative; z-index: 2; }
.telas img:nth-child(3) { transform: translateX(62%) rotate(7deg) scale(.88); }
.app:hover .telas img:nth-child(1) { transform: translateX(-70%) rotate(-9deg) scale(.88); }
.app:hover .telas img:nth-child(3) { transform: translateX(70%) rotate(9deg) scale(.88); }

/* ── Para a família ── */
.familia { max-width: 860px; margin: 0 auto; padding: clamp(64px, 9vw, 110px) var(--gutter); }
.familia-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.familia-lista li { padding: 18px 22px 18px 54px; position: relative; border-radius: 18px; color: var(--tinta-2);
  background: var(--cartao); box-shadow: var(--sombra-1), inset 0 1px 0 var(--cartao-borda); }
.familia-lista li::before { content: "✿"; position: absolute; left: 20px; top: 17px; color: var(--verde); }
.familia-lista b { color: var(--tinta); }

/* ── Rodapé ── */
.rodape { text-align: center; padding: 64px var(--gutter) calc(44px + env(safe-area-inset-bottom));
  background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--verde) 16%, var(--papel)));
  color: var(--tinta-2); font-family: var(--sem-serifa); }
.rodape-frase { margin: 0; font: italic 400 1.45rem/1.3 var(--serifa); color: var(--tinta); }
.rodape-links { margin: 22px 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 10px; font-size: .92rem; }
.rodape-links a, .rodape-casa a { color: var(--tinta-2); text-decoration: none; border-bottom: 1px solid color-mix(in srgb, var(--tinta) 22%, transparent); }
.rodape-casa { margin: 16px 0 0; font-size: .92rem; }
.rodape-miudo { max-width: 600px; margin: 22px auto 0; font-size: 12px; line-height: 1.55; color: var(--tinta-3); }

/* ── Chegada ── */
.app, .jeito-item, .familia { opacity: 0; transform: translateY(22px); transition: opacity .8s ease, transform .8s cubic-bezier(.2, .7, .2, 1); }
.visto { opacity: 1 !important; transform: none !important; }
@media (prefers-reduced-motion: reduce) { .app, .jeito-item, .familia { opacity: 1; transform: none; transition: none; } }

/* ── Larguras ── */
@media (max-width: 900px) {
  .app, .app-par { grid-template-columns: 1fr; }
  .app-par .app-texto, .app-par .telas { order: initial; }
  .telas { margin-top: 8px; }
}
@media (max-width: 560px) {
  body { font-size: 16.5px; }
  .app { border-radius: 26px; }
  .telas { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 8px calc(-1 * clamp(26px, 4.4vw, 60px)) 0; padding: 10px clamp(26px, 4.4vw, 60px) 18px; scrollbar-width: none; justify-content: flex-start; }
  .telas::-webkit-scrollbar { display: none; }
  .telas::before { display: none; }
  .telas img, .telas img:nth-child(1), .telas img:nth-child(3), .app:hover .telas img:nth-child(1), .app:hover .telas img:nth-child(3) { transform: none; flex: 0 0 68%; width: 68%; scroll-snap-align: center; }
}
