/* Shvil HaHar — shared stylesheet.
   Mobile (375px) first; desktop is a media query that centers and caps width.
   RTL is the native direction: every spacing rule uses logical properties,
   never left/right. Palette from CLAUDE.md — limestone, ink, terra rossa, blue.

   Four rules decide everything below, and they come from the director:

   1 · The photograph commands the screen (docs/design.md, "Linguagem visual",
       11 August 2026). A large picture at the top of the point page with the
       content sheet rising over its lower edge; a thumbnail on every list
       card. The product is about places, and a place is recognised by looking.
   2 · The interface never writes what it does not have. There is no styling
       here for an empty state, because an empty block is never rendered — and
       that includes the thumbnail: a record with no picture gets a text card,
       never a grey box standing in for one.
   3 · Sources live behind one discreet control at the foot of the page.
   4 · Only patterns people already know: a bottom bar with icon and label,
       rounded cards with a thumbnail, a search field at the top, pills for the
       layers, a bottom sheet. Elegance comes from space, type and photography
       — never from a gesture to be learnt, and never from a CSS trick to hold
       an effect together.

   Zero JavaScript, zero webfonts, zero external requests. */

:root {
  color-scheme: light dark;

  /* ---- Palette — the director's reference, flat (18 August 2026) ----

     THE TOKENS ARE NAMED FOR THEIR ROLE AND NOT FOR A MATERIAL, and that is the
     lesson of having repainted this file twice in two days. `--loess`, `--latao`
     and `--turquesa` were the Negev's soil, brass and oasis; `--gir`, `--terra`
     and `--azul` were this ridge's limestone, terra rossa and dusk. Each rename
     cost a sweep of the whole stylesheet, and in between the names lied. The
     ROLES never changed once: a warm accent that draws labels and edges, and a
     cool colour that carries STATE. Named that way, the next repaint is values
     only.

     The surface is light and very nearly white; colour arrives as accent and
     never as ground — a warm mid tone behind every photograph flattens the
     product into one colour.

     AND THE CONTRAST RULE THAT COMES WITH A PASTEL PALETTE: on these colours you
     write with INK, never with white. White on the coral is 1.9:1 and on the
     amber 1.6:1 — unreadable in the sun this product is validated in. The text
     values below are the pastels darkened until they pass AA on the light page
     and on the dark one. */
  --fundo: #F7F6F3;          /* the page — near white, a degree warm */
  --superficie: #FFFFFF;     /* the card, lifted off the page */
  --chip: #F2EEE8;           /* the accent surface: a pill, a tag, a picture's bed */
  --tinta: #1E1D1B;          /* warm near-black */
  --acento: #E8836E;         /* coral — labels and edges; lines, the stamp's paper */
  --acento-texto: #B8402B;   /* the same, darkened until it reads as text — 5.3:1 */

  /* ---- The second colour: state ----
     The accent is warm; everything warm in one palette gives a page with no cold
     note anywhere, and the eye stops finding the live thing on it. The cool
     colour is what carries STATE: the layer being looked at, the control that is
     ready to be pressed, the link that leads out, the water. The accent keeps
     the rest: labels, edges, section headings, the paper of a stamp.
     4.8:1 on the light page and 8.4:1 on the dark one, both past AA. */
  /* A MARCA — os dois vectores chegaram do diretor em 18 de agosto de 2026, e
     trazem as suas proprias duas cores. Elas entram como tokens porque o
     desenho e' inline: o gerador troca os `fill` do Illustrator por estas
     variaveis, e e' assim que a marca clareia no tema escuro em vez de
     desaparecer nele. */
  --marca-tinta: #11656D;   /* azul-petroleo — 6.2:1 sobre o fundo, le-se como texto */
  --marca-ouro:  #F3AD4B;   /* ambar — 1.8:1: ORNAMENTO, nunca texto e nunca sozinho
                               a carregar um significado. Se algum dia levar palavra
                               por cima, escurece-se primeiro, como se fez ao coral. */

  /* O azul da interface passa a SER o azul da marca. Antes eram #0E7C86 e
     #11656D — perto o suficiente para o olho os ler como um erro de impressao,
     longe o suficiente para nao serem a mesma cor. Um so. */
  --estado: #11656D;
  --agua: var(--estado);   /* the water layer is the accent itself */

  /* ---- Blue as INK, and not only as state ----
     The director asked for orange and blue as the theme. Blue carrying state
     alone is barely visible: on a page with nothing active on it, the whole
     product reads cream and brick. This is the second job blue does, and it is
     the one place in the product where a colour is used for weight rather than
     for meaning — the opening verse, set as a printed page would set it, in
     ink that is blue-black rather than warm black.
     It is scripture, and scripture is already the one ceremonial element here;
     giving it its own ink adds no new device to learn. 9.6:1 on the light page. */
  --tinta-verso: #14343A;

  /* A card lifts off the page with a soft shadow, not with a border. */
  --sombra: 0 1px 2px rgba(30, 29, 27, 0.04),
            0 10px 26px -14px rgba(30, 29, 27, 0.24);
  --borda: rgba(30, 29, 27, 0.07);
  --toque: rgba(232, 131, 110, 0.16);   /* the press state, on any surface */

  --raio: 1.35rem;           /* ≈24px — the card corner */
  --raio-peq: 0.9rem;        /* ≈16px — the thumbnail, the paired photographs */

  /* System Hebrew stack — no webfont, the site must work offline */
  --fonte: "Segoe UI", -apple-system, "Noto Sans Hebrew", "David Libre", sans-serif;

  /* Scripture is the one ceremonial element: a printed-page serif, distinct
     from the running text. In Shvil HaNegev this was system-only; here the
     director asked for a more worked letter on the opening verse, so the face
     is SERVED FROM THIS SITE (site/vendor/, 19 kB, hebrew subset) and never
     from a CDN. That keeps the one law it could have broken — zero external
     requests — and the licence is filed next to the file, exactly as a
     photograph's licence is filed next to the photograph.
     The system names stay behind it: if the file fails, the verse is still a
     serif, and nothing on the page collapses. */
  --fonte-verso: "Keter YG", "Frank Ruhl Libre", "David Libre", "Times New Roman", Georgia, serif;

  /* The bottom bar is fixed, so every scrolling surface reserves its height. */
  --barra-altura: 4.1rem;

  /* One measure for the whole product, and three places need it as a number:
     the column, the pill row that has to line up with it, and the overlays on
     a full-bleed photograph that have to line up with it too. */
  --medida: 34rem;
  --calha: 1.15rem;

  /* ---- A RÉGUA VERTICAL ----

     Três distâncias, e só três. O diretor, 17 de agosto de 2026: «cada página
     que entro o site dá um pulo». Medidos os doze ecrãs a 1440px antes de
     mexer, os vãos entre blocos irmãos eram 0, 13, 14, 15, 22, 24, 25, 27, 29,
     34, 35, 66 e 76 pixéis — cada elemento com a margem que quem o escreveu lhe
     deu no dia em que o escreveu, e nenhum ritmo que a página inteira siga. O
     cartão «לפי נקודה קרובה» e o destaque de Beer Sheva encostados um ao outro
     na home são o caso que ele apanhou; a causa é esta, e não aquele par.

     A régua não distingue componentes, distingue RELAÇÕES:

       --ritmo-junto   uma coisa e a legenda dela. O rótulo e a lista que ele
                       nomeia, o título e a fotografia dele. Lêem-se como uma
                       peça só, e o branco entre elas tem de ser menor do que o
                       branco à volta da peça, ou a legenda vai colar-se ao
                       bloco de cima.
       --ritmo         dois irmãos da MESMA natureza — dois cartões, dois
                       parágrafos. É o 0,75rem que a ficha e o `אודות` já
                       usavam, e por isso é ele que fica: a régua não move o que
                       já estava certo.
       --ritmo-bloco   dois blocos de naturezas DIFERENTES. É o único vão que
                       tem de ser grande, porque é o único que carrega
                       informação: aqui acabou uma coisa e começou outra.

     Os três valores vivem aqui e não em cada regra, para que a resposta a
     «quanto?» seja uma pergunta com uma resposta e não doze. */
  --ritmo-junto: 0.5rem;
  --ritmo: 0.75rem;
  --ritmo-bloco: 2rem;
}

/* ---- Night, and who decides it ----

   The device decides by default, and that is still the default. What is new is
   that the person can overrule it: `data-tema="dark"` or `"light"` on the root,
   written before the first paint by four lines in the head, and the absence of
   the attribute means "keep following the device".

   THE BLOCK IS WRITTEN TWICE ON PURPOSE, and the duplication is the honest
   shape of it: a media query cannot be widened by a selector, so "the system
   says night and nobody overruled it" and "she chose night" are two different
   conditions with one set of values. They must be edited together — a value
   that lands in one and not the other produces a theme that is right only for
   the people who never touched the control, which is the hardest kind of wrong
   to notice. */

@media (prefers-color-scheme: dark) {
  :root:not([data-tema="light"]) {
    --fundo: #17191A;        /* night on the mountain */
    --superficie: #202325;
    --chip: #292D2F;          /* the same accent, read by night */
    --tinta: #F2EFE9;        /* ink inverts to limestone */
    --acento-texto: #F3A996;  /* terra rossa, lightened until it reads as text */
    --estado: #4FC3CE;         /* the ridge at dusk, lightened the same way */
    --marca-tinta: #4FC3CE;    /* a marca clareia com ele: #11656D da 2.7:1 sobre a noite */
    --tinta-verso: #A8DCE2;   /* the verse ink, lightened until it reads on night */
    /* Shadow does not read on a dark page; a hairline does the same work. */
    --sombra: 0 0 0 1px rgba(242, 239, 233, 0.09);
    --borda: rgba(242, 239, 233, 0.12);
    --toque: rgba(232, 131, 110, 0.24);
  }
}

:root[data-tema="dark"] {
  color-scheme: dark;
  --fundo: #17191A;
  --superficie: #202325;
  --chip: #292D2F;
  --tinta: #F2EFE9;
  --acento-texto: #F3A996;
  --estado: #4FC3CE;
  --marca-tinta: #4FC3CE;
  --tinta-verso: #A8DCE2;
  --sombra: 0 0 0 1px rgba(242, 239, 233, 0.09);
  --borda: rgba(242, 239, 233, 0.12);
  --toque: rgba(232, 131, 110, 0.24);
}

/* Declared, not inherited: on a device set to night the UA would still paint
   its scrollbars and form controls dark under a page she has put in daylight. */
:root[data-tema="light"] {
  color-scheme: light;
}

/* ---- The one served face ----

   Frank Ruhl Libre, SIL Open Font License 1.1, hebrew subset, variable weight.
   The file and its licence are in site/vendor/, next to MapLibre and under the
   same rule: nothing this product needs at runtime is fetched from anyone.

   `font-display: swap` on purpose. The verse is the first thing on the home,
   and a blocking face would hold the opening of the page for a letterform —
   on the bad network this product is built for, that is the wrong trade. The
   fallback is a serif too, so what swaps is the drawing, never the layout. */
/* A FONTE DO VERSO E' KETER YG, E A TROCA NAO FOI DE GOSTO.
 *
 * O diretor viu, em 18 de agosto de 2026: «a fonte hebraica escolhida para os
 * versiculos nao e boa, ela tem inconsistencias em algumas letras». Fui contar
 * os glifos das duas, e o defeito e' pior do que inconsistencia:
 *
 *     Frank Ruhl Libre    teamim  0/31    nikud 21/23
 *     Keter YG            teamim 31/31    nikud 24/23
 *
 * A Frank Ruhl Libre do Google NAO TEM UM UNICO SINAL DE CANTILACAO. O que se
 * via nao eram letras mal desenhadas: eram caixas de glifo em falta onde devia
 * estar o taam. Num acervo cuja primeira linha e' um versiculo com teamim, era
 * a pagina a falhar exactamente na coisa que ela existe para citar.
 *
 * A Keter YG e' do projeto Culmus, de Yoram Gnat, e foi desenhada para texto da
 * Tanach com nikud e teamim — nao e' uma serif a que se pediu que os aguentasse.
 * Pesa o mesmo que a anterior (18,7 kB o corpo, 10,4 kB o negrito) e serve-se
 * daqui, nunca de CDN, como manda o CLAUDE.md.
 *
 * A LICENCA E' GPL v2 com a excepcao de fonte, e nao OFL como a anterior. E'
 * livre, e fica registada em vendor/keter-yg-LICENSE.txt — como se regista a
 * licenca de uma fotografia, e pela mesma razao.
 *
 * A Frank Ruhl Libre fica na pilha, a seguir: o que degrada tem de degradar
 * para algo utilizavel, e uma letra sem taam continua a ser uma letra. */
@font-face {
  font-family: "Keter YG";
  src: url("vendor/keter-yg-hebrew.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}

@font-face {
  font-family: "Keter YG";
  src: url("vendor/keter-yg-hebrew-bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}

@font-face {
  font-family: "Frank Ruhl Libre";
  src: url("vendor/frank-ruhl-libre-hebrew.woff2") format("woff2");
  font-weight: 300 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}

/* ---- Base ---- */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  /* High contrast, large type — validated in direct sun, not on a monitor */
  font-size: 18px;
  -webkit-text-size-adjust: 100%;
}

body {
  min-height: 100vh;
  min-height: 100dvh;
  /* O ESQUELETO QUE TRAVA O RODAPÉ AO FUNDO — e `dvh` acima, não `vh`, porque
     no telemóvel a barra do navegador aparece e desaparece e `vh` mede a
     altura errada. Numa página que não enche o ecrã (`חידון`, `תומכים`) o
     rodapé ficava a flutuar a 119–261px do fundo, medido a 768 e a 1440 em
     hebraico, espanhol e português. A coluna aqui, e o `main` a crescer logo
     abaixo, são o que empurra o rodapé para baixo sem lhe tocar na margem. */
  display: flex;
  flex-direction: column;
  font-family: var(--fonte);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--tinta);
  background-color: var(--fundo);
  /* Room for the fixed bar, plus the phone's own bottom inset. */
  padding-block-end: calc(var(--barra-altura) + env(safe-area-inset-bottom) + 1rem);
}

/* Quem recebe o espaço que sobra é o miolo, e nunca o rodapé: com
   `margin-block-start: auto` no rodapé a folga de 2,4rem que ele tem por cima
   desaparecia em toda a página longa, que são quase todas. Assim a página
   curta estica por dentro e a longa não dá por nada — verificado ao pixel no
   `doc` e no fundo do rodapé de dezanove páginas.

   O mapa não entra nisto: `.mapa-com-mapa .mapa-principal` já se dá a si
   próprio `flex: 1`, com mais especificidade do que esta regra. */
main {
  flex: 1 0 auto;
}

a {
  color: inherit;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}

svg {
  display: block;
  flex-shrink: 0;
}

:focus-visible {
  outline: 3px solid var(--acento-texto);
  outline-offset: 2px;
}

/* One measure for the whole product: the phone is the design, the desktop
   is the same column with more air around it. */
.faixa {
  width: 100%;
  max-width: var(--medida);
  margin-inline: auto;
  padding-inline: var(--calha);
}

/* ---- The card: the one container in the product ---- */

.cartao {
  display: block;
  padding: 1.15rem;
  background-color: var(--superficie);
  border-radius: var(--raio);
  box-shadow: var(--sombra);
}

/* Any card that is a link is also a touch target well past the floor. */
a.cartao,
button.cartao {
  min-height: 3.4rem;         /* 61px */
}

a.cartao:active,
button.cartao:active {
  background-color: var(--toque);
}

/* Block, because a card is built of spans and each one owns its line. */
.cartao-titulo {
  display: block;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.28;
}

/* The small brass label inside a card — "the next one on the trail", the
   distance in the map list. */
.cartao-rotulo {
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--acento-texto);
  margin-block-end: 0.15rem;
}

.cartao-linha {
  display: block;
  margin-block-start: 0.25rem;
  font-size: 0.9rem;
  line-height: 1.45;
  opacity: 0.74;
}

/* A card whose whole body is one row: icon · text · chevron */
.cartao-fila {
  display: flex;
  align-items: center;
  gap: 0.9rem;
}

.cartao-fila > .cartao-texto {
  flex: 1;
  min-width: 0;
}

/* ---- The list card: thumbnail · text ----

   Every card in a list carries the picture of its record — the photograph
   first, and when the record has none, the temporary illustration. That is
   what makes a list of places read as places instead of as rows of text.

   A record with neither gets this same card without the thumbnail: the text
   simply takes the full width. No frame, no grey square, no camera glyph —
   a placeholder is the caption of absence, drawn. */

.cartao-lista {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  padding: 0.8rem;
}

.cartao-lista > .cartao-texto {
  flex: 1;
  min-width: 0;
  padding-block: 0.25rem;
  padding-inline-end: 0.35rem;
}

/* One step down from the card title elsewhere: beside a thumbnail the column
   is narrow, and at the larger size a three-word Hebrew name took three
   lines and pushed the picture out of proportion with its own card. */
.cartao-lista .cartao-titulo {
  font-size: 1.08rem;
}

/* A station, on a list card: the pin and the name of the place it is inside.
   The same two marks the point page puts under the title, one size down. A
   list that showed a station beside the place it belongs to without saying so
   would read as two places that happen to be named alike. */
.cartao-pai {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  margin-block-start: 0.4rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--acento-texto);
}

.cartao-pai svg {
  width: 0.95rem;
  height: 0.95rem;
}

.cartao-mini {
  position: relative;
  display: block;
  flex: 0 0 auto;
  width: 5.1rem;              /* 92px */
  height: 5.1rem;
  overflow: hidden;
  background-color: var(--chip);
  border-radius: var(--raio-peq);
}

.cartao-mini img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* The section label above a group of cards. Small, brass, quiet. */
.secao-rotulo {
  margin-block: 1.9rem 0.8rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--acento-texto);
}

/* O DEGRAU DA LOCALIDADE, dentro da lista por distância do mapa (A57).

   Nenhuma voz tipográfica nova: é o mesmo rótulo de secção que a home, o álbum,
   a busca e a lista já usam para dizer «aqui começa outro grupo». O que muda é
   só a medida do degrau — um fio e o ar por cima dele —, porque aqui o rótulo
   nasce entre dois cartões e não no alto de uma página, e sem o fio o olho lê
   uma legenda do cartão seguinte em vez de uma fronteira.

   O primeiro não leva fio nem ar: ele encosta à linha que já diz por que ordem
   a lista está, e no telemóvel a primeira dobra é o que mais custa. Assim o
   agrupamento gasta 27 px na primeira dobra e o resto do degrau só aparece onde
   há degrau para marcar.

   `border-block-start`, `margin-block` e `padding-block-start` — o degrau é o
   mesmo nas seis línguas, e nenhuma delas tem lado. */
.feed > .secao-rotulo.feed-yeshuv {
  margin-block: 1.5rem 0.55rem;
  padding-block-start: 1.05rem;
  border-block-start: 1px solid var(--chip);
  /* Uma linha de rótulo não é prosa: a entrelinha herdada do corpo dava-lhe
     22 px de caixa para 13 px de letra, e esses 5 px saíam todos da primeira
     dobra do telemóvel. */
  line-height: 1.3;
}

.feed > .secao-rotulo.feed-yeshuv:first-child {
  margin-block-start: 0;
  padding-block-start: 0;
  border-block-start: 0;
}

/* O FIM DOS NOMES — o mesmo fio, sem palavra nenhuma.

   As fichas que não declaram localidade ficam no fim, sem cabeçalho: «sem
   localidade» seria legenda de uma ausência, e ausência é silêncio. Mas coladas
   ao último grupo elas pareciam ser dele — filtrar por «נבטי» punha חלוצה e
   שבטה debaixo de «דימונה», que é de onde ממשית é e elas não. O fio diz que o
   grupo anterior acabou, que é verdade, e não escreve nome nenhum, que é o que
   não há. */
.feed > .feed-degrau {
  margin-block: 1.5rem 1.35rem;
  border: 0;
  border-block-start: 1px solid var(--chip);
}

/* E O DEGRAU PAGA-SE A SI PRÓPRIO.

   O rótulo de secção nasceu para viver ENTRE dois grupos de cartões, e por isso
   traz 1,9rem de ar em cima. A legenda da ordem («por distância desde a Cidade
   Velha») não está entre nada: é a primeira linha da secção, e já tem por cima
   a barra do topo. Passa a ter o mesmo ar em cima que tem em baixo, o que
   devolve 19,8 px à primeira dobra — quase os 32,7 px que o primeiro cabeçalho
   de localidade custa. Medido a 375 px: três cartões inteiros antes, três
   depois. */
.mapa-lista > .secao-rotulo:first-child {
  margin-block-start: 0.8rem;
}

/* ---- NOTHING IS WRITTEN OVER A PICTURE ----

   There used to be three marks here: a pill in the corner of a temporary
   illustration, a credit lozenge across the foot of the hero photograph, and a
   strip over the thumbnail in every list. All three are gone — the director,
   11 August 2026: no mark on the image, neither burnt into the file nor laid
   over it in HTML.

   What each picture is, and who made it, is said in the credits block at the
   foot of its page (`מקורות`) — where this product has always kept its
   apparatus, and now the only place it lives.

   The chevron points the way the language reads: in RTL, forward is left.
   It is drawn pointing left and mirrored back for a future LTR locale. */
.seta {
  width: 1.3rem;
  height: 1.3rem;
  color: var(--acento-texto);
}

[dir="ltr"] .seta {
  transform: scaleX(-1);
}

/* ---- The top of the home: brand, question, search ---- */

.topo {
  padding-block-start: calc(env(safe-area-inset-top) + 1.4rem);
}

/* A marca no topo das páginas de lista e de busca. Elas escreviam שביל הנגב em
   texto enquanto o resto do site já usava a logo — o produto a falar por duas
   vozes. Agora é a mesma peça, com a mesma saída para casa e o mesmo botão de
   partilhar das outras barras. */
/* SEM MARGEM POR BAIXO desde 17 de agosto de 2026, e a conta é exacta. Ela
   existia para separar a fila do `<h1>` que vinha logo a seguir DENTRO do mesmo
   `<header>`; com o título mudado para o `<main>` — que é o que faz o cabeçalho
   poder colar-se ao topo — já não há nada por baixo dela para separar.

   E não é indiferente tirá-la: enquanto os dois eram irmãos, os 6,3px dela e os
   8,1px do título COLAPSAVAM num só, e o título ficava a 83px do alto. Em
   `<main>` já não colapsam — `main` é item de flex do corpo e margens de itens
   de flex nunca colapsam —, e as duas somavam-se: o título caía para 89px e a
   página inteira descia 6px. Medido a 375 e a 768 nas seis línguas, nas três
   páginas que levam esta fila. Sem a margem, a conta volta a dar 83. */
.topo-marca {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.marca-nome {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--acento-texto);
}

/* ---- The arrival card ----

   Until 11 August 2026 the home opened by asking `איפה אתה עכשיו?` in title
   size, with the name of the trail small above it. The director turned that
   around: the name is the title, and the question is secondary, sitting on the
   photograph. His reason is that the home is where somebody ARRIVES — from a
   code printed on a wall, most often — and the first thing they see has to say
   where they have arrived before it asks them anything.

   Big and tight: the contrast in this product comes from size, never from a
   box drawn around the words. */
/* A marca da home e o botão de partilhar na mesma linha. `align-items:
   flex-start` porque a logo é alta e o botão não deve descer com ela: ele
   alinha pelo topo, como um controlo de barra. */
.home-marca {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}

/* A marca. Era texto e passou a ser a logo do diretor — na home e no cabeçalho
   de todas as páginas de dentro, 11 de agosto.

   `width` em `em` e não em pixéis: a marca cresce e encolhe com a tipografia da
   página, e por isso continua a acompanhar quem aumenta a letra do telemóvel.
   O `alt` carrega שביל הנגב, que é o que a marca diz — quem ouve a página não
   perde o nome do projeto por ele ter virado desenho. */
.marca-titulo {
  margin: 0;
  line-height: 0;
}

.marca-titulo img {
  display: block;
  /* 12em dá ~192px num ecrã de 375: a marca apresenta-se e não ocupa
     a chegada inteira. Em `em` para acompanhar quem aumenta a letra.

     Os atributos `width`/`height` no HTML são o tamanho de EXIBIÇÃO e não o
     intrínseco do ficheiro, e isso é uma defesa e não um detalhe: no dia em que
     esta folha não chegar ao navegador — foi o que aconteceu a 11 de agosto,
     com o css fora da regra de cache — a marca cai para 192px em vez de encher
     o ecrã. A proporção é a mesma: 1432/396 e 192/53 dão os dois 3.62. */
  width: min(12em, 62%);
  height: auto;
}

/* One line saying what this is. It comes from dados/sobre.json and never from
   this file — a stranger who scanned a code does not know what שביל הנגב is,
   and a card that only carries a name introduces nothing. */
.marca-linha {
  margin-block-start: 0.35rem;
  font-size: 1rem;
  line-height: 1.35;
  color: var(--tinta-fraca, inherit);
  opacity: 0.78;
}

/* Kept for the pages that still open with the old question. */
.pergunta {
  margin-block-start: 0.45rem;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.1;
}

/* ---- The band under the question ----

   The home used to be three buttons and a list; the rest of the product has
   been photograph-led since 11 August. The band is the archive's widest
   photograph (see `faixaDaHome`), a link to the record it belongs to, and a
   credit line under it — never over it.

   `aspect-ratio` with `cover`: the picture is already a panorama, so the crop
   takes a sliver off the ends at most, and the band holds one height whatever
   the file is. Without it the header would jump by a hundred pixels the day a
   different photograph became the widest one. */

.home-faixa {
  position: relative;
  margin-block-start: 1.15rem;
}

/* The link is the positioning context, not the figure: the caption with the
   photographer's credit lives outside it and must not be veiled. */
.home-faixa a {
  position: relative;
  display: block;
}

/* THE VEIL, and it is the only reason text over a photograph is safe here.

   A27 forbids text over images everywhere in this product, and the director
   made this one exception knowingly — see the comment in gerar-site.mjs. What
   makes it hold in direct sun is not a shadow on the letters, which fails over
   a bright sky, but a dark gradient occupying the bottom third of the frame.
   The question sits on the veil, not on the photograph. */
.home-veu {
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  block-size: 62%;
  border-end-start-radius: var(--raio);
  border-end-end-radius: var(--raio);
  background: linear-gradient(to top, rgba(18, 20, 25, 0.82), rgba(18, 20, 25, 0.45) 46%, rgba(18, 20, 25, 0));
  pointer-events: none;
}

.home-pergunta {
  position: absolute;
  inset-inline-start: 0.95rem;
  inset-inline-end: 0.95rem;
  inset-block-end: 0.8rem;
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1.15;
  color: #fdfbf6;
  pointer-events: none;
}

/* `height: auto` is load-bearing and not tidiness: the generator writes the
   file's real width and height onto the tag so the layout does not jump while
   the picture loads, and those attributes land as a presentational `height` in
   pixels. A presentational hint beats `auto`, and `aspect-ratio` only takes
   over when one axis is auto — so without this line the band ignores 21/9 and
   comes out the full height of the photograph. */
.home-faixa img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 21 / 9;
  object-fit: cover;
  background-color: var(--chip);
  border-radius: var(--raio);
}

.home-faixa .foto-credito {
  margin-block-start: 0.4rem;
  padding-inline: 0.3rem;
  font-size: 0.7rem;
}

/* THE END OF THE LIST, said out loud.

   The archive list is cut into sheets of about forty, and the last sheet says
   so instead of just stopping. Automatic infinite scroll was considered and
   left out: in a list that is an archive rather than a feed, somebody who
   reaches the bottom should be told they reached the bottom. */
.fim-da-lista {
  margin-block: 1.6rem 0.5rem;
  text-align: center;
  font-size: 0.86rem;
  color: var(--acento-texto);
}

/* The search field is a link that opens the search page — the pattern every
   map and travel app uses, and it needs no script to behave correctly. */
.busca {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-height: 3.4rem;         /* 61px */
  margin-block-start: 1.3rem;
  padding-inline: 1.15rem;
  background-color: var(--superficie);
  border-radius: 999px;
  box-shadow: var(--sombra);
}

.busca:active {
  background-color: var(--toque);
}

.busca-icone {
  width: 1.35rem;
  height: 1.35rem;
  color: var(--acento-texto);
}

.busca-texto {
  font-size: 1.02rem;
  opacity: 0.75;
}

/* ---- The search page ----
   The same field as the home, except that here it is the real one. It is
   written into the document hidden and revealed by site/busca.js: without a
   script there is nothing behind it to answer, and a search field that cannot
   search is the interface writing what it does not have. What the document
   carries instead is the whole archive, in sheets by layer, with the index
   above it. */

.busca-titulo {
  margin-block-start: 0.45rem;
  font-size: 2.1rem;
  font-weight: 700;
  line-height: 1.1;
}

/* The input takes the whole field: the rounded surface is the form around it,
   so the tap target is the field and not a box inside a box. */
.busca-entrada {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 3.4rem;
  font-family: inherit;
  font-size: 1.02rem;
  color: inherit;
  background: none;
  border: 0;
  outline: none;
}

.busca-entrada::placeholder {
  color: inherit;
  opacity: 0.55;
}

/* The one line that answers the question that was asked — how many, or that
   this one found nothing and what else can be asked. Never a line about the
   archive. */
.busca-nota {
  margin-block-start: 1.25rem;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.5;
  color: var(--acento-texto);
}

#resultados:not([hidden]) {
  margin-block-start: 0.9rem;
}

/* The same cut as the album, and the same reason: at 250 points the browser
   should not lay out every layer to show the first one. */
/* No margin rule alongside it, and that is deliberate: containment stops the
   section label's own top margin from collapsing out, so the gap between two
   sections is the same 1.9rem it always was — now accounted for inside the
   section instead of between them. */
.secao-camada {
  content-visibility: auto;
  /* Measured like the album's: a list card averages 10.5rem on the phone and
     the section label costs 3.3rem. The generator writes each section's card
     count into --secao-cartoes; one figure for all of them made the page
     claim a quarter more scroll than it has. */
  contain-intrinsic-size: auto calc(var(--secao-cartoes, 4) * 10.5rem + 3.3rem);
}

/* ---- The layers, as pills that scroll sideways ---- */

.filtros {
  margin-block-start: 1.25rem;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
}

.filtros::-webkit-scrollbar {
  display: none;
}

/* The row runs edge to edge so a half-cut pill tells the eye it scrolls,
   while its first pill still lines up with the column above it. */
.filtros-lista {
  display: flex;
  gap: 0.5rem;
  width: max-content;
  min-width: 100%;
  padding-inline: max(var(--calha), calc((100% - var(--medida)) / 2));
  padding-block: 0.15rem 0.4rem;
  list-style: none;
}

/* Loess as accent: the pill is filled with the soil of the city and carries no
   border, so the row reads as a band of material against the near-white page
   instead of as a row of outlines. */
.pilula {
  display: flex;
  align-items: center;
  min-height: 2.75rem;        /* 50px */
  padding-inline: 1.05rem;
  font-size: 0.92rem;
  font-weight: 600;
  white-space: nowrap;
  color: var(--tinta);
  background-color: var(--chip);
  border: 1px solid transparent;
  border-radius: 999px;
}

.pilula:active {
  background-color: var(--toque);
}

/* ---- ACTIVE IS TURQUOISE, EVERYWHERE IT APPEARS ----
   The pill, the index chip and the destination in the bottom bar are three
   drawings of one idea — "this is the one you are looking at" — and before 11
   August each drew it differently: two of them filled with ink, the third with
   loess. One accent for the three, and the accent is the cold one, because
   state is the thing the eye has to find first on a warm page. */
.pilula[aria-current="true"] {
  color: var(--fundo);
  background-color: var(--estado);
  border-color: var(--estado);
}

/* ---- The index of layers: a table of contents, in two pages ----
   The album and the search both lay the whole archive out at once, and both
   cut it the same way — one sheet per historical layer. This is the sheet
   list: every layer, how many points it holds, and a link that lands on it.
   It is the same action as a pill and it carries the same href; what it adds
   is the numbers and the completeness, which is why it is read once at the
   top instead of scrolled past sideways.

   IT WAS EATING THE SCREEN, and that is the defect the director found on the
   phone: eleven rows in a two-column grid of 54px cells came to 385px, which
   under the search page's header left about a centimetre of the first card
   showing. A page whose first screen ends in a sliver does not look like a
   page that scrolls — it looks like a page that ended.

   So the grid became a row that wraps, and the cell became a chip. Three
   things came out of the height at once: the cell no longer stretches to the
   column (a short name costs a short chip), the count sits beside the name
   instead of being pushed to the far edge, and the whole index is one
   continuous flow instead of eleven boxes on a fixed pitch. The floor is
   untouched — 2.7rem is 48.6px, and the thumb never notices the difference. */

.indice {
  margin-block-start: 1rem;
}

.indice-lista {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  list-style: none;
}

/* `flex: 0 1 auto` and not `0 0 auto`: a chip is sized by its own name, but a
   layer whose name is longer than the measure has to be able to give way and
   wrap inside itself rather than run off the edge of the page. */
.indice-item {
  display: flex;
  align-items: center;
  gap: 0.42rem;
  flex: 0 1 auto;
  max-width: 100%;
  min-height: 2.7rem;         /* 48.6px — the touch floor, and no more */
  padding-block: 0.35rem;
  padding-inline: 0.8rem;
  font-size: 0.86rem;
  font-weight: 600;
  background-color: var(--superficie);
  border-radius: var(--raio-peq);
  box-shadow: var(--sombra);
}

.indice-item:active {
  background-color: var(--toque);
}

.indice-item[aria-current="true"] {
  color: var(--fundo);
  background-color: var(--estado);
}

/* A long layer name wraps rather than being cut: "תקופה כלקוליתית" truncated
   to "תקופה כלקול…" is a layer the index fails to name, and naming them is
   what the index is for. The grid stretches the whole row to match. */
.indice-nome {
  min-width: 0;
  line-height: 1.25;
}

/* dir="ltr" is on the element for the same reason as the album counter: bidi
   reads "4 / 26" backwards inside a right-to-left row. */
.indice-conta {
  flex: 0 0 auto;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--acento-texto);
}

.indice-item[aria-current="true"] .indice-conta {
  color: var(--fundo);
}

/* ---- The home feed ---- */

.destaque {
  margin-block-start: 1.35rem;
}

.destaque-icone {
  width: 1.7rem;
  height: 1.7rem;
  color: var(--acento-texto);
}

.feed > * + * {
  margin-block-start: 0.75rem;
}

/* The wells trail wears the water blue — the only blue in the product. */
.trilha .cartao-titulo,
.trilha .trilha-icone,
.trilha .seta {
  color: var(--agua);
}

.trilha-icone {
  width: 1.5rem;
  height: 1.5rem;
}

.etiquetas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-block-start: 0.6rem;
  list-style: none;
}

/* Filled with loess rather than outlined in brass: on a card that now carries
   a picture, three outlined pills fought the thumbnail for attention. */
.etiqueta {
  padding-block: 0.2rem;
  padding-inline: 0.55rem;
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--acento-texto);
  background-color: var(--chip);
  border-radius: 999px;
}

.ponto-texto .etiquetas {
  margin-block-start: 1rem;
}

/* NO FIM DA FICHA A ETIQUETA É UMA LIGAÇÃO — desde 17 de agosto de 2026 leva ao
   mapa com aquela camada escolhida, e foi ela que substituiu a fila de filtros
   que o mapa tinha no topo.

   E por isso cresce. Uma etiqueta que só se lê pode ter a altura do texto; uma
   que se toca com o polegar, no sol, com uma mão, não pode: a pílula media 28px
   de alto, e o piso de um alvo de toque é 44. O que muda é só o `padding-block`
   — 0.62rem de cada lado põe a caixa em 44px certos a 375px, e o desenho da
   pílula fica igual ao dos cartões, onde ela continua a ser texto e continua
   pequena. `min-block-size` fecha a conta nas línguas de letra mais baixa. */
.ponto-texto .etiqueta {
  display: flex;
  align-items: center;
  min-block-size: 2.45rem;
  padding-block: 0.62rem;
  padding-inline: 0.85rem;
  font-size: 0.82rem;
  color: var(--acento-texto);
  text-decoration: none;
}

.ponto-texto .etiqueta:active {
  background-color: var(--toque);
}

/* ---- The theme: light, dark, or whatever the device says ----

   WHERE IT IS, and why there. The foot of the home, beside `אודות`. This
   product has no settings screen and should not grow one for a single
   preference, and the foot of the home is already the shelf for the things
   that are about the app rather than about a place — it is the one page
   everybody passes through, and `אודות` has lived there since the first build.
   The same control is repeated on `אודות` itself, which is the second door a
   person opens looking for anything of that kind.

   WHAT IT IS: three real radios in a fieldset, drawn as the segmented control
   every phone already has. The input is moved off screen rather than hidden —
   `display: none` would take it out of the tab order and off the keyboard, and
   the whole reason for using radios is that the browser already knows how they
   behave. */

.tema {
  margin-block-start: 1.9rem;
}

.tema-campo {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem;
  border: 0;
}

.tema-legenda {
  /* `float` and not a grid cell: a <legend> is not a flex item of its own
     fieldset in every engine, and floating it is the one behaviour they all
     agree on. */
  float: inline-start;
  margin-inline-end: 0.75rem;
  padding: 0;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--acento-texto);
  line-height: 2.7rem;
}

/* Positioned so the moved-off-screen input is anchored inside its own label
   and not at the corner of whatever happens to be positioned above it. */
.tema-opcao {
  position: relative;
  display: inline-flex;
}

.tema-opcao input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.tema-opcao span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 4.4rem;
  min-height: 2.7rem;         /* 48.6px — the floor, again */
  padding-inline: 0.9rem;
  font-size: 0.88rem;
  font-weight: 600;
  background-color: var(--superficie);
  border-radius: 999px;
  box-shadow: var(--sombra);
}

/* The chosen segment wears the same turquoise as every other active state in
   the product. Two colours for "this is the one you picked" would be two
   languages for one idea. */
.tema-opcao input:checked + span {
  color: var(--fundo);
  background-color: var(--estado);
}

.tema-opcao input:focus-visible + span {
  outline: 3px solid var(--acento-texto);
  outline-offset: 2px;
}

/* ---- The signature: who answers for this ----

   Small, quiet, and on every page that scrolls. Each contact is a link that
   does what it says — the address opens the site, the address book opens the
   mail, the number dials. `dir="ltr"` is on each item and never on the block:
   the paragraph is Hebrew, and only the Latin run inside it is not. */

.assinatura {
  margin-block-start: 2.4rem;
  padding-block: 1.1rem 0.4rem;
  border-block-start: 1px solid var(--borda);
  text-align: center;
  opacity: 0.72;
}

.assinatura-nome {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.assinatura-lista {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0 1rem;
  list-style: none;
}

.assinatura-lista a {
  display: inline-flex;
  align-items: center;
  min-height: 2.7rem;
  font-size: 0.78rem;
  color: var(--estado);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

/* ============================================================
   THE POINT PAGE
   Vertical order is fixed by docs/design.md: photo · name+line ·
   listen · then/now · scripture · text · onward. A block whose
   material does not exist is not rendered at all — so on a record
   with no photograph the page opens at the name, and there is no
   trace of what is missing.
   ============================================================ */

/* ---- The header bar: back at the inline start, as every app puts it ---- */

/* NO TELEMÓVEL A BARRA NÃO COLA, e agora é dito em vez de acontecer por acaso.

   Até 17 de agosto de 2026 esta regra dizia `position: sticky`, e a trava do
   transbordo horizontal desligava-a em silêncio (ver `html, body` mais acima).
   Corrigida a trava, a declaração passaria a valer — e um cabeçalho colado ao
   topo come 68px dos 812 de um ecrã de telemóvel, que é o contrário de
   «nada essencial no topo da tela» e do que o diretor pediu para o telemóvel:
   «a barra continua em baixo e nada muda». No desktop cola, e é lá que a
   declaração vive (careira de 64rem). */
.barra {
  position: static;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding-block: calc(env(safe-area-inset-top) + 0.35rem) 0.35rem;
  background-color: var(--fundo);
  border-block-end: 1px solid var(--borda);
}

/* PARTILHAR. Empurrado para a ponta oposta da seta de voltar pelo
   `margin-inline-start: auto` — que num layout RTL o põe na esquerda sozinho,
   sem uma linha condicional. É por isto que todo o espaçamento aqui é lógico.

   O visto verde de "copiado" vive no ::after e dura 1.6s. Sem confirmação, quem
   copia o endereço não sabe se copiou, e volta a carregar. */
/* OS IDIOMAS — o menu abre POR CIMA e não empurra nada.

   O diretor mandou o ecrã do que estava mal, e estava tudo: o painel no fluxo
   a empurrar a página para baixo, os pontos de lista, e o triângulo que o
   navegador põe em todo `<summary>`. Três defeitos e uma causa: eu tinha
   escrito o menu a contar com estilos que o aparelho dele ainda não tinha.

   Agora nada disto depende de sorte:
   · `position: absolute` no painel e `relative` no bloco — ele flutua, e a
     página por baixo não se mexe.
   · `list-style: none` no `<ul>`, nos `<li>` E no `<summary>`, mais o
     `::marker` e o `::-webkit-details-marker`. Cada navegador esconde o
     marcador por um sítio diferente, e faltar um deixa a bolinha à vista.
   · `z-index` acima da barra, senão ele abre por baixo da fotografia.

   O bloco inteiro fica no canto de início da leitura — em RTL, a esquerda —,
   com o botão de partilhar imediatamente ao lado. */
.barra-canto {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  margin-inline-start: auto;
}

.idiomas {
  position: relative;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.idiomas-atual {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  min-height: 2.5rem;
  padding-inline: 0.55rem;
  color: var(--tinta);
  cursor: pointer;
  list-style: none;
}

.idiomas-atual::marker,
.idiomas-atual::-webkit-details-marker { content: ''; display: none; }

.idiomas-atual svg { transition: transform 140ms ease; }
.idiomas[open] .idiomas-atual svg { transform: rotate(180deg); }

/* O painel. Fundo próprio, sombra funda e um traço de borda: tem de se ler
   como uma folha por cima da página, e não como um pedaço dela. */
.idiomas-lista {
  position: absolute;
  inset-block-start: calc(100% + 0.2rem);
  inset-inline-start: 0;
  z-index: 60;
  min-width: 4.2rem;
  margin: 0;
  padding: 0.3rem;
  list-style: none;
  background-color: var(--cartao, #fff);
  border: 1px solid var(--borda, rgba(0, 0, 0, 0.08));
  border-radius: 0.8rem;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
}

.idiomas-lista li {
  display: block;
  list-style: none;
}

.idiomas-lista li::marker { content: ''; }

.idiomas-lista span,
.idiomas-lista a {
  display: block;
  padding: 0.34rem 0.55rem;
  text-align: start;
  border-radius: 0.45rem;
}

.idioma-ativo {
  color: var(--tinta);
  background-color: rgba(0, 0, 0, 0.06);
}

/* A outra versão que EXISTE. É um `<a>` de verdade, e leva à mesma página na
   outra língua — nunca à entrada: trocar de idioma no meio de uma ficha é
   pedir aquela ficha na outra língua, e mandar a pessoa para a home seria
   perder o lugar. Tinta cheia, porque é um destino real; o sublinhado só no
   toque, para não competir com o código da língua corrente. */
.idioma-outro {
  color: var(--tinta);
  text-decoration: none;
}

.idioma-outro:hover,
.idioma-outro:focus-visible {
  background-color: var(--toque, rgba(0, 0, 0, 0.06));
}

/* Havia aqui `.idioma-espera`, o span a 0.34 de opacidade de um idioma ainda
   por escrever. Saiu com o português: são seis e não falta nenhum. O raciocínio
   está em seletorIdioma(), scripts/gerar-site.mjs. */

/* O botão tem FUNDO, e não é enfeite: sem ele é um ícone de linha solto num
   canto, e o diretor procurou-o e não o encontrou. Um controlo tem de parecer
   um controlo. E o `width`/`height` no próprio SVG é a mesma defesa da marca:
   no dia em que esta folha não chegar, ele fica com 22px em vez dos 4px a que
   um SVG sem medida se reduz — que foi exatamente o que aconteceu. */
.barra-share {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  color: var(--tinta);
  background-color: var(--cartao, rgba(0, 0, 0, 0.05));
  border: 0;
  border-radius: 999px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.09);
}

.barra-share svg { width: 1.35rem; height: 1.35rem; }

.barra-share.feito { color: var(--estado); }

.barra-share.feito::after {
  content: 'הועתק';
  position: absolute;
  inset-block-start: 3.1rem;
  inset-inline-end: 0.6rem;
  padding: 0.3rem 0.7rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--fundo);
  background-color: var(--estado);
  border-radius: 999px;
}

.barra-voltar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;                /* 54px square */
  height: 3rem;
  margin-inline-start: -0.6rem;
  border-radius: 999px;
}

.barra-voltar:active {
  background-color: var(--toque);
}

.barra-voltar svg {
  width: 1.5rem;
  height: 1.5rem;
}

[dir="ltr"] .barra-voltar svg {
  transform: scaleX(-1);
}

/* A marca na barra. 8.2em de largura dá cerca de 118px na tipografia padrão —
   a altura da barra manda, e acima disso a acácia empurra a barra para baixo. */
/* Clicar na marca volta a casa. É a convenção que toda a gente já traz de
   qualquer outro site, e o diretor apanhou que a nossa não a cumpria. Na home
   ela não é link: já se está lá, e um link para a página onde se está é um
   controlo morto. O alvo tem altura de barra inteira — o polegar não acerta
   numa faixa de 29px. */
.barra-casa {
  display: flex;
  align-items: center;
  min-height: 2.75rem;
}

.barra-marca {
  width: 6.6em;
  height: auto;
  align-self: center;
}

/* ---- The photograph: it commands the screen ----

   Full bleed, large, no frame and no filter — the one-second confirmation,
   "yes, this is the place". The content sheet below rises over its lower edge,
   which is why nothing important is written down there. */

/* A LARGURA DA FOTOGRAFIA É A DA LEITURA, e no telemóvel isso não muda nada.

   O diretor, 17 de agosto de 2026: «as imagens do topo no desktop ficam sempre
   mal enquadradas, talvez fazer elas menores na horizontal, elas se
   enquadrariam melhor, e aumentar um pouco a altura do campo da imagem».

   A intuição dele é a correção inteira, e a medida diz porquê. A moldura era
   sangria completa e a altura ficava presa a 34vh: a 1440×900 dava 1425×306,
   uma proporção de 4,66 para um acervo cuja fotografia mediana mede 1,333.
   Sobrevivia 31% da fotografia, e o que se cortava era em cima e em baixo, que
   é onde estão as cabeças e os telhados. A 375 a mesma regra dá 375×276 — 1,358,
   quase exactamente a mediana do acervo — e por isso no telemóvel nunca houve
   defeito nenhum: a fotografia é que não podia ser mais larga do que o ecrã.

   `max-inline-size: var(--medida)` é o que traz o desktop de volta ao caso do
   telemóvel: a fotografia passa a ter a largura da coluna de leitura, a mesma
   que a folha que sobe por cima dela, e abaixo de 34rem de janela a declaração
   não faz nada. */
.ponto-foto {
  position: relative;
  width: 100%;
  max-inline-size: var(--medida);
  margin-inline: auto;
  background-color: var(--chip);
}

/* 4/3 NÃO É GOSTO, É A MEDIÇÃO DAS 265 FOTOGRAFIAS PUBLICADAS.

   Metade delas (49,3%) cai entre 1,25 e 1,45; a mediana é 1,333 e o quartil
   superior 1,50. Procurada a proporção de moldura que menos corta sobre o acervo
   real, o óptimo dá 1,334 — retém 88,1% de cada fotografia em média sobre as
   166 capas, contra 31,3% da moldura de 1425×306 que estava aqui. `4 / 3` é esse
   número escrito como fracção.

   E O TECTO EM VH FICA, porque foi ele que resolveu um defeito real: com 44vh o
   botão de ouvir caía abaixo da dobra num telemóvel, e o diretor mandou o ecrã a
   provar. Aqui ele deixa de mandar na forma e passa a ser só um limite: onde há
   altura, a moldura toma a proporção do acervo; onde não há, encurta — e uma
   moldura mais baixa é só um recorte maior, nunca uma imagem deformada, porque
   quem trata disso é o `cover`. A 375×812 e a 375×667 o tecto continua a ganhar
   e a moldura sai idêntica à de antes, ao pixel.

   `height: auto` é o de sempre e é preciso: os atributos `width`/`height` da tag
   chegam como altura de apresentação em pixéis, uma dica que ganha ao `auto`
   implícito, e sem esta linha o `aspect-ratio` nunca chegaria a ser usado. */
.ponto-foto img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  max-block-size: clamp(12rem, 34vh, 20rem);
  object-fit: cover;
}

/* The temporary illustration takes the photograph's place, never a place of
   its own beside it — the two never coexist, because the illustration exists
   only while the photograph does not.

   One thing about it is different, and it is not decoration: it is the only
   picture in the product that is never cropped. A photograph survives the
   crop of a hero frame; an editorial plate is a whole composition, and cutting
   its sides destroys it. So it keeps its own proportion and, where the window
   is wide enough to make that too tall, it is contained on the loess ground
   the illustration itself is printed on. */
.ponto-ilustracao img {
  height: auto;
  /* `aspect-ratio: auto` desfaz o 4/3 do irmão acima, e é o que mantém a
     promessa deste bloco: a ilustração é a única imagem do produto que nunca é
     recortada, e uma moldura de proporção fixa recortá-la-ia. Ela continua a
     medir o que é. */
  aspect-ratio: auto;
  max-height: 34vh;
  object-fit: contain;
}

/* ---- The credit, under a picture and never on it ----

   Almost every photograph in this archive is CC BY or CC BY-SA, and both ask
   for attribution on the page that publishes the work. Until 11 August 2026
   the hero carried it as a dark lozenge laid over the picture's lower corner;
   the director took every mark off the images, and the attribution moved
   entirely into the `מקורות` block at the foot of the page, where it keeps
   the one thing the lozenge never had — the link back to the file itself.

   What survives here is the caption under each frame of the then/now pair.
   That is a caption inside a card, printed under the picture the way a printed
   page does it, and there is no photograph beneath the words. */
.foto-credito {
  display: block;
  font-size: 0.78rem;
  line-height: 1.45;
  font-weight: 400;
  color: var(--tinta);
  opacity: 0.62;
}

/* ---- The sheet: the content rises over the picture ----

   No class decides this — the adjacency does. `paginaPonto` writes the figure
   immediately before the main column when, and only when, there is a picture,
   so a record without one has nothing to rise over and the rule never
   matches. One less flag to keep in step with the generator. */

/* O ANO DA FOTOGRAFIA, e so' no ponto demolido.

   Fica ABAIXO da imagem e nunca sobre ela — a decisao do diretor de 11 de
   agosto de 2026 vale para toda imagem do produto, e um ano queimado no canto
   de uma foto seria a mesma tarja que saiu dali. Ele mora na faixa de loess
   entre a fotografia e o corpo que sobe por cima dela.

   A margem de baixo e' maior que os 2rem que o corpo avanca. Sem isso o corpo
   comeria justamente a linha que existe para ser lida. */
.ponto-foto-ano {
  padding-block: 0.55rem 2.6rem;
  padding-inline: var(--calha);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--acento-texto);
}

.ponto-foto + .ponto-corpo {
  position: relative;
  z-index: 1;
  margin-block-start: -2rem;
  padding-block-start: 0.1rem;
  background-color: var(--fundo);
  border-start-start-radius: 1.6rem;
  border-start-end-radius: 1.6rem;
}

/* In the then/now pair the credit sits under the year, inside a caption that
   is already inset by the card — no gutter of its own, and one size smaller
   than the year so the two never read as one line. */
.ponto-par .foto-credito {
  max-width: none;
  padding-inline: 0;
  padding-block-start: 0.15rem;
  font-size: 0.72rem;
  color: var(--tinta);
}

/* The then/now pair, when the record carries both frames: same crop, same
   size, side by side at any width — comparing them is the whole point, and
   two different proportions would make the comparison about the frames. */
.ponto-par {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem;
}

/* `height: auto` for the same reason as the home band: the width/height
   attributes on the tag arrive as a presentational height, which outranks
   `auto` and would leave `aspect-ratio` unused — the two frames would then be
   two different heights, which is exactly what the pair exists to prevent. */
.ponto-par img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background-color: var(--chip);
  border-radius: var(--raio-peq);
}

.ponto-par figcaption {
  margin-block-start: 0.35rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--acento-texto);
}

/* ---- Name and the one line: the page opens here ---- */

.ponto-identidade {
  padding-block: 1.6rem 0.5rem;
}

/* Large and tight — the hierarchy is carried by size, and the secondary line
   steps down far enough that the two never read as one block. */
/* O nome do lugar. Era 2.35rem e partia-se em duas linhas em nomes compridos —
   פארק נחל באר שבע ocupava duas linhas inteiras e empurrava tudo para baixo.
   1.85rem cabe na maioria numa linha só, e continua a ser o maior texto da
   página, que é o que o título precisa de ser. */
.ponto-nome {
  font-size: 1.85rem;
  font-weight: 700;
  line-height: 1.14;
}

.ponto-linha {
  margin-block-start: 0.4rem;
  font-size: 0.98rem;
  line-height: 1.5;
  opacity: 0.76;
}

/* ---- A station, and the place it belongs to ----

   docs/decisoes.md, decision 5: the record is the unit of knowledge and the
   stamp is the unit of the walk, and they do not coincide. A record that is a
   station of a point has no stamp of its own, no dot of its own on the map,
   and — here — one quiet line saying where it is: a pin and the name of the
   place, no preposition and no sentence. It sits under the one-line summary, at
   the size of the small labels, because it is the address of the thing above it
   and not a second title. */

.ponto-pai {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin-block-start: 0.7rem;
  /* Past the 48px floor without looking like a button: the padding is vertical
     and the line stays where the eye left it. `min-height` and not padding
     alone — the comment above claimed the floor and the padding delivered
     41px, which a measurement caught and reading never would. */
  min-height: 2.7rem;
  padding-block: 0.45rem;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--acento-texto);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.ponto-pai svg {
  width: 1.05rem;
  height: 1.05rem;
  flex: 0 0 auto;
}

/* The other half of the same decision: the point's page lists its stations, so
   the stamp of the tel is worth more because whoever sticks it has four things
   to read standing there. The heading and the cards are the home's, unchanged —
   a station is a whole record and reads like one. */

.ponto-estacoes .secao-rotulo {
  margin-block: 0 0.75rem;
}

/* One rhythm for the whole column: every card sits 0.75rem under the last. */
.ponto-corpo > * + * {
  margin-block-start: 0.75rem;
}

/* The section is a heading plus a list, not a card, so it needs the step above
   it that a card gets from the rhythm rule and then some: a new subject starts
   here. */
.ponto-corpo > .ponto-estacoes + *,
.ponto-corpo > * + .ponto-estacoes {
  margin-block-start: 1.6rem;
}

.ponto-titulo {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--acento-texto);
  margin-block-end: 0.75rem;
}

/* ---- Scripture — the one ceremonial block, and the only one.
   When a record carries both corpora they sit side by side at
   identical size and weight; when it carries one, the card holds
   that one and says nothing about the other. ---- */

/* auto-fit, not two fixed columns: with two corpora the desktop gets two
   equal columns, and with one the single verse fills the card instead of
   sitting beside a reserved empty half — the reserved half would be exactly
   the absence this page refuses to draw. */
.versos-par {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  gap: 1.6rem;
}

.verso-corpus {
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--acento-texto);
  margin-block-end: 0.5rem;
}

.verso-texto {
  font-family: var(--fonte-verso);
  font-size: 1.35rem;
  font-weight: 400;
  line-height: 1.95;          /* niqqud needs the room */
  /* A MESMA TINTA DO VERSO DA HOME, e por isso a regra é uma só ideia e não
     duas. A escritura é o elemento cerimonial deste produto; dar-lhe tinta
     azul-preta em vez do preto do texto corrente é o que uma página impressa
     faz há séculos, e é o que torna o tema laranja-e-azul visível numa página
     onde não há nada activo. Se a home a tem e a ficha não, o leitor que
     escaneia um QR chega a um verso que se lê como texto corrido. */
  color: var(--tinta-verso);
}

/* The gloss: the verse in the language of this edition, under the verse in the
   language it was written in.

   It is deliberately NOT ceremonial. The running family instead of the printed
   serif, two thirds of the size, a hairline down its leading edge — everything
   here says "this is a reading of the text above", never a second scripture.
   The original commands; without that distance the Arabic and the Hebrew would
   read as two equal quotations and the page would have invented a claim the
   archive never made.

   A record with no gloss gets nothing at all: no gap, no line, no note that a
   translation is missing. Every Tanach verse in the archive is that case. */
.verso-glosa {
  margin-block-start: 0.85rem;
  padding-inline-start: 0.8rem;
  border-inline-start: 2px solid var(--acento);
  font-family: var(--fonte);
  font-size: 0.95rem;
  line-height: 1.7;
  opacity: 0.86;
}

/* The translator, on his own line. The credit travels inside the record's own
   text, between parentheses at the end of it; taken out of the sentence it
   reads as what it is — a nineteenth-century translation with an author — and
   it lines up with the verse's reference two lines below. */
.verso-glosa-credito {
  display: block;
  margin-block-start: 0.4rem;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--acento-texto);
  opacity: 1;
}

/* A referência, agora sozinha por baixo do versículo — os dois títulos que
   estavam por cima dele saíram em 18 de agosto de 2026. Ela leva a cor do
   acento, que é a mesma das legendas e dos rótulos de secção em todo o produto:
   o versículo é a tinta cerimonial, a referência é a atribuição, e a diferença
   entre os dois lê-se sem nenhuma palavra a explicá-la. */
.verso-ref {
  margin-block-start: 0.6rem;
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--acento-texto);
}

/* ---- The story ---- */

.ponto-texto p {
  font-size: 1.02rem;
  line-height: 1.75;
}

/* ---- Listen, and the stamp: the two controls ---- */

.controle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  width: 100%;
  min-height: 3.4rem;         /* 61px */
  padding-inline: 1.1rem;
  font-family: inherit;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--tinta);
  background-color: transparent;
  border: 2px solid var(--tinta);
  border-radius: 999px;
}

/* A explicação do álbum. Substituiu o índice de camadas que estava debaixo do
   título — decisão do diretor, 11 de agosto: ali quem chega pela primeira vez
   precisa de saber o que é isto e como funciona, e não de uma contagem por
   época. A navegação por camada não se perdeu: as pílulas no topo levam aos
   mesmos sítios, e sempre levaram.

   O texto NÃO menciona o passaporte, e a omissão é deliberada: o botão de o
   guardar só aparece depois do primeiro selo, e apontar para um botão invisível
   é exatamente o que a regra da casa proíbe. */
.album-explica {
  display: grid;
  gap: 0.7rem;
  margin-block-end: 1.6rem;
  font-size: 1.02rem;
  line-height: 1.62;
}

.album-explica p { margin: 0; }

.album-explica p:first-child {
  font-weight: 700;
  font-size: 1.1rem;
}

.album-explica p:last-child {
  color: var(--tinta-fraca);
  font-size: 0.95rem;
}

/* A fila das outras fotografias. Rola na horizontal em vez de empilhar: são
   imagens secundárias, e empilhá-las daria a uma nota de rodapé a altura de um
   capítulo. `scroll-snap` para o dedo parar em cima de uma e não entre duas. */
.ponto-galeria { overflow: hidden; }

.galeria-fila {
  display: flex;
  gap: 0.7rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-block-end: 0.3rem;
  margin-inline: -0.2rem;
  padding-inline: 0.2rem;
}

.galeria-fila figure {
  flex: 0 0 62%;
  margin: 0;
  scroll-snap-align: start;
}

.galeria-fila img {
  display: block;
  width: 100%;
  height: 8.6rem;
  object-fit: cover;
  border-radius: 0.7rem;
}

.galeria-fila figcaption {
  margin-block-start: 0.35rem;
  font-size: 0.82rem;
  color: var(--tinta-fraca);
}

/* A PÁGINA DOS APOIADORES.

   Os selos usam a mesma folha do álbum (`.album-folha`) e o mesmo objeto de
   selo (`.bul`): não há peça nova, e é por isso que a promessa da página é
   literal — quem apoia fica com um selo no acervo, do mesmo desenho que os
   lugares têm. Com um apoiador só, a folha mostra um; com trinta, mostra
   trinta, sem uma linha a mais. */
.apoiar-chamada {
  margin-block: 0 1.2rem;
  font-size: 1.14rem;
  font-weight: 700;
  line-height: 1.45;
}

.apoiar-selos { margin-block-end: 1.4rem; }

/* `.sobre-apoiadores` É A MESMA SECÇÃO NOUTRA PÁGINA, desde 16 de agosto de
   2026: os apoiadores passaram a fechar `אודות`, e o selo de um apoiador tem de
   ser o MESMO selo nos dois sítios. Por isso ela entra nestes seletores em vez
   de ganhar regras próprias — duas folhas para o mesmo desenho divergiriam no
   dia em que uma delas fosse afinada, e o selo deixaria de ser o dele.

   Com poucos apoiadores a grelha do álbum deixaria um selo solto a ocupar uma
   fila inteira. Aqui eles alinham-se ao início da leitura e ficam com a largura
   de um selo, que é o tamanho a que o desenho foi feito. */
.apoiar-selos .album-folha,
.sobre-apoiadores .album-folha {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  /* E DESLIGA A PREGUIÇA DO ÁLBUM, que aqui não é uma otimização — é um salto.

     `.album-folha` traz `content-visibility: auto` e reserva
     `3 × 11.4rem + 4.7rem` = 700px enquanto a folha estiver longe do ecrã. Isso
     é certo no álbum, onde uma folha tem mesmo três filas de selos altos e onde
     há trezentos pontos a renderizar. Aqui há quatro nomes numa fila de selos
     deitados, e a folha inteira mede 75,6px — medido a 375px.

     A conta só aparece quando a secção fica longe do ecrã, e é por isso que ela
     não se via até 16 de agosto: em `supporters.html` a folha está no topo e
     rende à primeira. No fim de `אודות` está a 5 500px do topo, e a página
     reservava 700px de vazio que encolhiam para 76 quando alguém lá chegasse —
     a barra de rolagem a mentir em 625px e um solavanco no fim da leitura. */
  content-visibility: visible;
  contain-intrinsic-size: none;
}

/* Dentro de `אודות` a folha é o fim de um cartão de texto e não a página
   inteira: precisa do ar que a separa do parágrafo acima dela. */
.sobre-apoiadores .album-folha {
  margin-block-start: 1rem;
}

/* O selo do apoiador é HORIZONTAL e pequeno — pedido do diretor, 12 de agosto:
   um terço do tamanho, deitado, com o nome maior. E faz sentido: o selo de um
   lugar é retrato porque tem uma fotografia dentro; o de um apoiador tem só um
   nome, e um nome é largo. A forma segue o conteúdo.

   Um terço da área: o retrato tinha 8.5x10.6rem, cerca de 90rem². Deitado a
   5/3, 7rem de largura dão 4.2 de altura e 29rem² — o terço pedido, medido e
   não estimado. */
.apoiar-selos .bul,
.sobre-apoiadores .bul { flex: 0 0 7rem; }

.apoiar-selos .bul-quadro,
.sobre-apoiadores .bul-quadro {
  aspect-ratio: 5 / 3;
  padding: 6% 8%;
}

/* O nome cresce porque agora é o único conteúdo do selo, e porque um selo mais
   pequeno com a mesma letra ficaria com o nome a nadar. */
.apoiar-selos .bul-nome,
.sobre-apoiadores .bul-nome { font-size: 0.86rem; }
.apoiar-selos .bul-serie,
.sobre-apoiadores .bul-serie { font-size: 0.68rem; }

.apoiar-texto p { margin-block: 0 0.8rem; }
.apoiar-texto p:last-child { margin-block-end: 0; }

/* O canal é um e-mail e não um botão de pagar, porque não há meio de pagamento
   — e um controlo que não faz nada é o defeito que este produto não comete. */
.apoiar-canal {
  margin-block-start: 1.2rem;
  text-decoration: none;
}

/* ONDE VOCÊ ESTÁ. Um ponto turquesa com anel branco e um halo à volta — o
   desenho que toda a gente já leu num mapa, e por isso não precisa de legenda.
   O halo pulsa devagar: é o que distingue "eu, agora" de mais um ponto do
   acervo, sem lhe dar cor nova nem tamanho maior.

   O `position: absolute` com `left: 0; top: 0` não é descuido de RTL: é o
   contrato do MapLibre. A biblioteca põe a classe `.maplibregl-marker` neste
   elemento e move-o só por `transform`, a partir do canto superior esquerdo do
   mapa. A folha do vendor declara isso, a nossa carrega depois dela, e o
   `position: relative` que aqui estava ganhava — o pino deixava de estar
   posicionado e caía onde o fluxo o punha. **Num documento RTL o fluxo começa à
   direita**, então a bolinha aparecia 356 px ao lado de onde a pessoa estava:
   medido em 14 de agosto de 2026, com o telefone na Cidade Velha e o pino em
   cima do Kanyon. Em hebraico e em árabe — a V1 e o sexto idioma.

   Aqui `left`/`top` são os corretos e não há propriedade lógica a usar: não é
   espaçamento nem leitura, é a origem de uma transformação num plano que não
   tem direção de escrita. O `absolute` também ancora o `::after` de baixo, que
   era o motivo do `relative`. */
.mapa-eu {
  position: absolute;
  left: 0;
  top: 0;
  width: 1.05rem;
  height: 1.05rem;
  background-color: var(--estado);
  border: 3px solid #fff;
  border-radius: 999px;
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.35);
}

.mapa-eu::after {
  content: '';
  position: absolute;
  inset: -0.62rem;
  border-radius: 999px;
  background-color: var(--estado);
  opacity: 0.2;
  animation: mapa-eu-pulso 2.4s ease-out infinite;
}

@keyframes mapa-eu-pulso {
  0%   { transform: scale(0.6); opacity: 0.3; }
  70%  { transform: scale(1.25); opacity: 0.05; }
  100% { transform: scale(1.25); opacity: 0; }
}

/* Quem pediu menos movimento não leva movimento nenhum. */
@media (prefers-reduced-motion: reduce) {
  .mapa-eu::after { animation: none; opacity: 0.18; }
}

/* A TRAVA CONTRA O TRANSBORDO HORIZONTAL.

   O diretor descreveu o sintoma com precisão: "quando entro em um local, ele
   vai para baixo em um scroll infinito e não volta para cima". Isso é o que um
   telemóvel faz quando algum elemento é mais largo do que o ecrã — a página
   ganha um eixo horizontal que ninguém pediu, e o dedo, ao rolar na diagonal,
   deixa de conseguir voltar.

   Este produto NUNCA tem eixo horizontal: o que é largo (a fila de fotografias,
   as pílulas, o mapa) rola dentro da sua própria caixa, e nunca no corpo. A
   regra fica aqui em vez de se caçar o culpado de cada vez, porque num layout
   RTL com propriedades lógicas basta uma margem negativa mal medida para o
   reabrir.

   `clip` E NÃO `hidden`, E É POR CAUSA DO CABEÇALHO.

   O diretor, 17 de agosto de 2026: «não está fixo quando faço scroll para
   baixo, ele sobe». O `.barra` declara `position: sticky` desde que existe, e
   nunca funcionou uma única vez — em nenhuma página, em nenhuma largura.
   Medido: a 1440px, com a página rolada 900px, o topo da barra estava a −900.

   A causa é esta linha, e ela é conhecida o suficiente para ter nome: um
   `overflow-x: hidden` faz o outro eixo passar de `visible` a `auto`, o
   elemento torna-se uma caixa de rolagem, e um `sticky` filho dela passa a
   colar-se ao topo de uma caixa QUE NUNCA ROLA. A declaração continua lá, o
   estilo computado continua a dizer `sticky`, e não há um único erro em lado
   nenhum — é o mesmo formato de defeito da lei da entrega: possível e
   invisível.

   `overflow-x: clip` corta exactamente o mesmo transbordo e NÃO cria caixa de
   rolagem, e por isso é a correcção e não um remendo: a trava faz o trabalho
   para que foi escrita e deixa de fazer o que ninguém lhe pediu.

   AS DUAS LINHAS SÃO DE PROPÓSITO. Um navegador que não conheça `clip` fica com
   o `hidden` de sempre — a trava continua de pé e o cabeçalho continua como
   estava hoje, que é o que a regra 4 da lei da entrega pede: o que degrada
   degrada para algo utilizável. */
html, body {
  max-width: 100%;
  overflow-x: hidden;
  overflow-x: clip;
}

/* E `overscroll-behavior` impede que o fim de uma lista interna arraste a
   página atrás dela — o outro caminho para o mesmo sintoma. */
.galeria-fila,
.filtros-lista,
.feed {
  overscroll-behavior-x: contain;
}

/* O CARTÃO DE DESTAQUE — a cidade, no topo da home.

   É o mesmo cartão dos outros pontos, maior e com a fotografia a ocupar tudo.
   O que o faz destaque é a posição e o tamanho; não há enfeite que os outros
   não tenham. O véu escuro no terço de baixo é o mesmo da fachada — texto
   sobre imagem só existe onde há véu, e é a exceção declarada do A27. */
.destaque-cidade {
  position: relative;
  display: block;
  overflow: hidden;
  margin-block-end: 1.4rem;
  border-radius: 1.1rem;
  text-decoration: none;
}

/* A MESMA ARITMETICA DO TOPO DA FICHA, e a mesma correcao. A 1440 esta moldura
   media 1255x270 — proporcao 4,65 — e guardava 21% da imagem. Passa a ter
   proporcao dita, e a altura sai dela; a `height` de antes vira tecto, para que
   um ecrã estreito não a faça crescer para além do que era.

   16/9 e não 4/3 como a ficha, e é uma diferença de natureza: aquilo é a
   fotografia que confirma «sim, é aqui» e quer ser a fotografia; isto é uma
   fachada com o nome da cidade escrito por cima do véu, e uma fachada é uma
   faixa. Com a fotografia real por baixo (1,5) guarda 84% dela contra os 59%
   que a miniatura quadrada dava. */
.destaque-cidade img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  max-block-size: 11rem;
  object-fit: cover;
}

.destaque-veu {
  position: absolute;
  inset-block-end: 0;
  inset-inline: 0;
  height: 72%;
  background: linear-gradient(to top, rgba(9, 10, 12, 0.86), rgba(9, 10, 12, 0));
}

.destaque-texto {
  position: absolute;
  inset-block-end: 0;
  inset-inline: 0;
  display: grid;
  gap: 0.15rem;
  padding: 0.9rem 1rem;
  color: #fff;
}

.destaque-nome { font-size: 1.6rem; font-weight: 700; line-height: 1.1; }
.destaque-linha { font-size: 0.94rem; opacity: 0.88; line-height: 1.35; }

.destaque-caps {
  margin-block-start: 0.3rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  opacity: 0.95;
}

/* O VISLUMBRE DENTRO DO SELO POR COLAR — ideia do diretor, 12 de agosto:
   "e se tivéssemos em cada selo um preview dessaturado em 60% de
   transparência?"

   A folha do álbum era uma parede de contornos vazios. O contorno vazio é o
   que faz querer preencher (docs/selos.md) — mas cem contornos iguais não
   dizem nada sobre os cem lugares que representam. Com o vislumbre, cada
   moldura passa a prometer um lugar concreto, e continua visivelmente por
   colar: dessaturado e apagado, é um fantasma e não uma fotografia.

   `grayscale(1)` mais 0.4 de opacidade. O selo COLADO tem a fotografia em
   duotone latão-sobre-loess, cheia e viva; a diferença entre os dois estados
   tem de se ler de relance, do outro lado da folha — e lê-se. */
.bul-vislumbre {
  position: absolute;
  inset: 9%;
  z-index: 0;
  width: 82%;
  height: 82%;
  object-fit: cover;
  filter: grayscale(1) contrast(0.9);
  opacity: 0.4;
  pointer-events: none;
}

/* No selo já colado, o vislumbre sai de cena: a fotografia de verdade ocupa
   o lugar dele, e duas imagens sobrepostas seriam sujidade. */
.bul-cheio .bul-vislumbre { display: none; }

@media (prefers-color-scheme: dark) {
  :root:not([data-tema="light"]) .bul-vislumbre { opacity: 0.3; }
}

/* OS CAPÍTULOS — a cidade contada em nove faixas.

   Uma linha por capítulo: número, título, duração. O número existe porque a
   ordem é a da história e não uma lista de opções — quem entra pelo capítulo
   cinco tem de perceber que há quatro antes.

   Um capítulo SEM áudio aparece na mesma, com o título e sem botão. O texto é
   o acervo; o áudio é derivado dele. Esconder um capítulo escrito por falta de
   um ficheiro seria o acervo a mentir sobre o que tem. */
.cap-lista {
  display: grid;
  gap: 0.15rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.cap { list-style: none; }
.cap::marker { content: ''; }

.cap-botao,
.cap-sem-audio {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  width: 100%;
  min-height: 3rem;
  padding: 0.5rem 0.2rem;
  font-family: inherit;
  font-size: 1rem;
  text-align: start;
  color: var(--tinta);
  background: transparent;
  border: 0;
  border-block-end: 1px solid var(--borda);
}

.cap:last-child .cap-botao,
.cap:last-child .cap-sem-audio { border-block-end: 0; }

.cap-num {
  flex: 0 0 auto;
  min-width: 1.4rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--acento-texto);
  font-variant-numeric: tabular-nums;
}

.cap-nome { flex: 1 1 auto; font-weight: 600; line-height: 1.32; }

.cap-tempo {
  flex: 0 0 auto;
  font-size: 0.86rem;
  font-weight: 600;
  opacity: 0.6;
  font-variant-numeric: tabular-nums;
}

/* Um capítulo ainda sem áudio: o título continua legível, mas apagado, e sem
   nada que pareça tocável. */
.cap-sem-audio .cap-nome { opacity: 0.5; }

.cap-botao.a-tocar { color: var(--estado); }
.cap-botao.a-tocar .cap-num,
.cap-botao.a-tocar .cap-tempo { color: var(--estado); opacity: 1; }

/* A LUPA — um cartão ao meio do ecrã, como qualquer galeria.

   Segunda versão, e a especificação é do diretor: "fit no meio da tela, com
   bordas arredondadas no estilo do nosso site, o pinch de zoom deve escalonar
   a imagem dentro da margem, ao clicar nela ou fora ele fecha".

   A primeira versão era sangria completa, sem margem e sem cantos — lia-se
   como um visor de sistema e não como uma peça deste site. O raio é o mesmo
   dos cartões (1.1rem), e a margem existe para que se veja que há um fora
   onde tocar. */
.lupa {
  display: block;
  cursor: zoom-in;
}

.lupa-tela {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  /* O diálogo ocupa o ecrã todo para que o "fora" seja clicável em qualquer
     ponto; quem tem tamanho de cartão é a moldura lá dentro. */
  display: grid;
  place-items: center;
  overflow: hidden;
  opacity: 0;
  transition: opacity 160ms ease, overlay 160ms allow-discrete, display 160ms allow-discrete;
}

/* ESTA LINHA NÃO É REDUNDANTE, E APAGÁ-LA TRAZ O DEFEITO DE VOLTA.

   O navegador traz `dialog:not([open]) { display: none }` na sua própria folha,
   mas é folha DO NAVEGADOR: qualquer declaração de autor ganha, por muito baixa
   que seja a especificidade. O `display: grid` acima — que existe por uma boa
   razão, dar um "fora" clicável — derrota-a, e a lupa FECHADA passa a ser
   desenhada: `position: absolute`, `height: 100%`, um bloco da altura do ecrã
   inteiro depois do rodapé, invisível porque tem `opacity: 0`.

   Era isso que fazia rolar até ecrã vazio: 621px a 375, 882px a 768 e 758px a
   1440 de nada por baixo do rodapé de `זיכרון`. Invisível de olhar, óbvio de
   medir. Apanhado pelo diretor a 16 de agosto de 2026 — «eu posso rodar o
   scroll até ficar sem nada na tela».

   E é o remate certo do padrão que esta folha já usa, não um penso: o
   `display` está na lista de transições com `allow-discrete` justamente para
   que o `none` só chegue no fim da animação de saída, e o `@starting-style`
   trata da entrada. Sem o `:not([open])` o padrão está escrito a meio. */
.lupa-tela:not([open]) { display: none; }

.lupa-tela[open] { opacity: 1; }

@starting-style {
  .lupa-tela[open] { opacity: 0; }
}

.lupa-tela::backdrop { background: rgba(9, 10, 12, 0.88); }

/* A MOLDURA TOMA A FORMA DA FOTOGRAFIA, e não o contrário.

   Até 17 de agosto de 2026 a caixa tinha forma própria — `min(92vw, 46rem)`
   por `min(80dvh, 46rem)` — e a fotografia era encaixada lá dentro com
   `contain`. O que sobrava era preto: numa paisagem a 375px, 345 por 650 de
   moldura para 345 por 230 de fotografia, ou seja 210px de banda escura em
   cima e outros tantos em baixo. Numa vertical a 1440 as bandas passavam para
   os lados, 174px de cada. O diretor: «isso é muito feio, deve ser rente à
   imagem as nossas margens».

   O envelope é o mesmo de antes, e é essa a única mudança: os dois pares de
   medidas deixam de ser `width`/`height` — «enche isto» — e passam a ser
   `max-inline-size`/`max-block-size` — «cabe dentro disto». A imagem entra com
   as duas dimensões em `auto`, que é a forma que o navegador resolve
   preservando a proporção mesmo quando os DOIS limites apertam (CSS 2.1 §10.4);
   a moldura, que é item de uma grelha centrada, encolhe para o que leva. Nem
   um cálculo por quadro, nem uma medida no script.

   `overflow: hidden` continua a ser o que faz o zoom acontecer DENTRO da
   margem: a imagem cresce e o que passa da moldura é cortado por ela em vez de
   invadir o ecrã. Agora a moldura é a própria fotografia, e o limite de
   arrasto do script — que já media a moldura — passa a ser exato.
   `touch-action: none` entrega o gesto de dois dedos ao script; sem isso o
   navegador amplia a página inteira e a moldura fica para trás. */
.lupa-moldura {
  overflow: hidden;
  background-color: #0b0a09;
  border-radius: 1.1rem;
  touch-action: none;
  cursor: zoom-out;
}

.lupa-moldura img {
  display: block;
  inline-size: auto;
  block-size: auto;
  max-inline-size: min(92vw, 46rem);
  max-block-size: min(80dvh, 46rem);
  transform-origin: center center;
  will-change: transform;
}

/* A MESMA CAIXA, COM LEGENDA — é o que o jogo da memória abre ao encontrar um
   par. As duas medem o que levam; a diferença é que esta tem largura DITA, e
   tem-na porque o que manda no seu tamanho não é a fotografia mas o cartão:
   por baixo da imagem vem o nome do lugar, e um cartão de jogo que mudasse de
   largura a cada par seria outro cartão de cada vez. A imagem enche essa
   largura e fica quadrada, que é a forma das cartas do tabuleiro. Nada mais
   muda: o fundo, o fecho ao tocar dentro ou fora, o Esc e o raio dos cantos
   são os da lupa. */
.lupa-moldura-legenda {
  width: min(80vw, 20rem);
  background-color: var(--superficie);
  touch-action: auto;
  cursor: pointer;
}

.lupa-moldura-legenda img {
  inline-size: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}

.lupa-legenda {
  margin: 0;
  padding: 0.85rem 1rem 1rem;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  color: var(--tinta);
}

/* O relogio da narracao. `tabular-nums` e' o que impede o botao de tremer:
   sem ele, cada segundo troca a largura dos digitos e a linha inteira dança —
   e um botao que dança com o polegar em cima parece que se moveu. O tom mais
   apagado separa o numero do verbo sem precisar de outro tamanho. */
.ouvir-relogio {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  opacity: 0.62;
  letter-spacing: 0.01em;
}

.controle svg {
  width: 1.25rem;
  height: 1.25rem;
}

.controle:active {
  background-color: var(--toque);
}

.controle[disabled] {
  border-color: var(--acento);
  color: var(--tinta);        /* legible, never greyed into the background */
}

/* The collect button. It is the readiest thing on the page, and turquoise is
   what says ready. The disabled rule is repeated here on purpose: the button
   is written into the document disabled and site/stamps.js is what enables it,
   so a browser that never runs the script never shows a live-looking control.

   It used to be "a promise about the body" — it only worked within fifty
   metres, which made it a dead control for almost everyone who opens the site.
   Since 17 August 2026 it collects with one tap from anywhere; being at the
   place is what earns the postmark, and the line under the button says so
   before anything is pressed. */
.ponto-selo .controle,
.ponto-selo .controle[disabled] {
  color: var(--estado);
  border-color: var(--estado);
}

.ponto-selo .ponto-nota {
  margin-block-start: 0.7rem;
  font-size: 0.92rem;
  text-align: center;
}

/* ============================================================
   THE TWO MODES — street and table, at the same address

   docs/design.md, "A escolha que organiza tudo": the street is
   arrive, look, listen, walk on — ninety seconds at a point; the
   table is search, read, compare, go deep. The mode is not a
   switch, it is a consequence of how the person got here: the QR
   on the wall opens the street, a search or a link opens the
   table, and there is always a visible way across.

   HOW IT IS DECIDED HERE, and why it is decided here rather than
   in a script. No selector can read the query of an address, and
   the site is static — `?qr=1` alone cannot change a byte of what
   is served. A fragment can: `:target` is plain CSS. So the wall
   address is `p/<id>.html?qr=1#rehov`, the point page carries
   `<body id="rehov">`, and everything below is what that match
   means.

   THE DIRECTION MATTERS. The document is born as the table and
   the street is subtraction, because CSS can hide and never
   reveal — a closed <details> does not open from a stylesheet, so
   the complete state has to be the default. The good consequence
   is that nothing is written twice: the then/now pair, the verses
   and the tail of the story are all still in the document, once,
   and the street simply does not draw them.
   ============================================================ */

/* The table is the default, so what belongs to the street waits. */
.so-rua {
  display: none;
}

#rehov:target .so-mesa {
  display: none;
}

#rehov:target .so-rua {
  display: block;
}

/* Shorter, so that the name, the one line and the stamp are all above the
   fold on a phone held in one hand. The photograph still commands the screen
   — it is the one-second confirmation — but on the street the confirmation
   has already happened with the eyes.

   `max-block-size` e não `height` desde 17 de agosto de 2026: é o mesmo tecto
   com o mesmo valor, mas agora deixa o 4/3 da regra de base governar a forma
   onde houver altura para ele. No telemóvel, que é onde o modo rua existe, o
   tecto ganha e a moldura sai igual à de antes. */
#rehov:target .ponto-foto img {
  max-block-size: clamp(11rem, 30vh, 17rem);
}

/* The column becomes a flex column for one reason: the stamp is written near
   the foot of the document, where it belongs when reading, and on the street
   it belongs directly under the name. `order` moves it without the generator
   writing the page twice.

   The rhythm moves from the adjacency rule to `gap`, because with `order` in
   play "every child after the first" is no longer "every child after the
   first one you see". */
#rehov:target .ponto-corpo {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

#rehov:target .ponto-corpo > * + * {
  margin-block-start: 0;
}

#rehov:target .ponto-identidade {
  order: -3;
}

#rehov:target .ponto-ouvir {
  order: -2;
}

#rehov:target .ponto-selo {
  order: -1;
}

/* The one thing the street is for, filled rather than outlined. It is the
   only solid control in the product, and it is solid in exactly one place:
   standing in front of the thing, with the sun on the screen, the button that
   collects has to be found without looking for it. */
#rehov:target .ponto-selo .controle {
  color: var(--fundo);
  background-color: var(--tinta);
  border-color: var(--tinta);
}

/* Continue reading: a link to this same page without the fragment, which is
   literally where the rest of the text is written. Native, no gesture to
   learn, and nothing duplicated to hold it up. */
/* ---- A LINK THAT LEADS OUT IS TURQUOISE ----
   Not every brass word became one: brass still labels, still rules an edge,
   still heads a section. What changed colour is the thing you can go through —
   continue reading, cross to the other mode, open a source, reach the album,
   write to whoever keeps this. A page where the label and the door are the
   same colour makes you read to find out which is which. */
.ponto-continuar {
  margin-block-start: 0.9rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--estado);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

/* The crossing between the modes, in both directions: the size and the tone
   of the אודות link on the home page. Small to the eye, past the touch floor
   for the thumb, and never an explanation of what the modes are. */
.modo-passagem {
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  margin-block-start: 0.4rem;
  font-size: 0.85rem;
  color: var(--estado);
  text-decoration: underline;
  opacity: 0.9;
}

/* Both crossings are written into every page and each mode draws its own. The
   pair is spelled out here instead of leaning on the .so-rua / .so-mesa
   defaults for one reason worth remembering: `display: flex` on the base class
   weighs exactly as much as `display: none` on the mode class and comes later
   in this file, so the base would have won and the street's link would have
   shown up on the table's page. Under :target the id outweighs both. */
.modo-passagem.so-mesa,
#rehov:target .modo-passagem.so-rua {
  display: flex;
}

/* ---- Sources: one control at the foot, closed until asked for ---- */

.fontes {
  padding: 0;
  overflow: hidden;
}

.fontes-resumo {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  min-height: 3.2rem;         /* 58px */
  padding-inline: 1.15rem;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--acento-texto);
  cursor: pointer;
  list-style: none;
}

.fontes-resumo::-webkit-details-marker {
  display: none;
}

.fontes-resumo:active {
  background-color: var(--toque);
}

.fontes-resumo .seta {
  margin-inline-start: auto;
  transform: rotate(-90deg);  /* pointing down, closed */
}

[dir="ltr"] .fontes-resumo .seta {
  transform: scaleX(-1) rotate(90deg);
}

.fontes[open] .fontes-resumo .seta {
  transform: rotate(90deg);
}

[dir="ltr"] .fontes[open] .fontes-resumo .seta {
  transform: scaleX(-1) rotate(-90deg);
}

.fontes-corpo {
  padding-block: 0.2rem 1.1rem;
  padding-inline: 1.15rem;
}

.fontes-lista {
  list-style: none;
}

/* The images get their own heading inside the sources sheet: the credit under
   the photograph says who made it and under what licence, and this is where
   the way back to the work itself lives — the other half of what CC BY asks
   for. It is a label for a list that exists, never a heading over nothing:
   without a credited image the block is not written at all. */
.fontes-rotulo {
  margin-block-start: 1.1rem;
  margin-block-end: 0.1rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  color: var(--acento-texto);
}

.fontes-corpo > .fontes-lista:first-child + .fontes-rotulo {
  margin-block-start: 0.9rem;
}

.fontes-lista li + li {
  margin-block-start: 0.5rem;
}

/* Small to the eye, honest to the thumb: the vertical padding is what
   carries a one-line link past the 48px floor. Unnumbered on purpose —
   an ordered marker beside a Latin-script title reorders to the wrong
   side under RTL bidi, and no sentence cites a source by number. */
.fonte {
  display: inline-block;
  padding-block: 0.72rem;     /* what carries a one-line link past 48px */
  font-size: 0.92rem;
  line-height: 1.4;
  text-decoration: underline;
}

/* Only the ones that are links. A credit whose record carries no URL is drawn
   with the same class in a <span>, and colouring that turquoise would promise
   a door where there is none. */
a.fonte {
  color: var(--estado);
}

/* A credit whose record carries no URL is still a credit, and it takes the
   same place in the list — but underlined text that goes nowhere is a broken
   link to the eye and to the thumb. */
span.fonte {
  text-decoration: none;
}

.fonte-data {
  display: block;
  font-size: 0.82rem;
  opacity: 0.85;
}

/* verified.method — said to the reader in the product, not kept for us */
.fontes-aimut {
  margin-block-start: 0.9rem;
  padding-block: 0.6rem;
  padding-inline: 0.8rem;
  font-size: 0.9rem;
  line-height: 1.5;
  border-inline-start: 3px solid var(--acento);
}

/* ============================================================
   THE MAP
   The one page that talks to the network, and the exception is
   declared in CLAUDE.md: the library is served from site/vendor/
   and the OpenStreetMap tiles are the only external request.

   The page is built the other way round from what a map usually
   is. Its document is the list of points ordered by distance;
   the map is what replaces the list once a tile actually
   arrives. So the default state of this stylesheet is the list,
   and .mapa-com-mapa — set on <html> by the page, removed the
   moment the tiles cannot be honoured — is what swaps them. No
   script, no WebGL, no signal: each of those simply never sets
   the class, and the person gets the list. There is no styling
   here for a broken map, because there is no broken map.
   ============================================================ */

[hidden] {
  display: none !important;
}

.mapa-area {
  display: none;
}

.mapa-com-mapa .mapa-area {
  display: block;
  flex: 1;
  min-height: 0;
}

.mapa-com-mapa .mapa-lista {
  display: none;
}

/* Map mode is the one screen in the product that does not scroll: the map owns
   the space between the layer pills and the bottom bar. */
.mapa-com-mapa body.corpo-mapa {
  height: 100dvh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.mapa-com-mapa .mapa-principal {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.mapa-topo {
  position: relative;
  z-index: 5;
  background-color: var(--fundo);
}

.mapa-topo .barra {
  position: static;
  justify-content: space-between;
  border-block-end: none;
}

/* The counter is per layer, never one grand total, and it exists only once
   there is a first stamp — see docs/selos.md. */
.mapa-conta {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--acento-texto);
}

/* A SAIDA DO FILTRO, E O UNICO CONTROLO DE FILTRO QUE O MAPA TEM.

   A fila de pilulas saiu daqui a 17 de agosto de 2026, por decisao do diretor:
   36 etiquetas em tres linhas a 1440px, um terco do ecra de uma pagina cujo
   conteudo e' o mapa. Quem escolhe uma camada agora e' a etiqueta no fim de uma
   ficha, que aponta para `map.html#<chave>`; o que fica aqui e' a volta atras.

   Nasce `hidden` e o script so' o revela quando ha filtro — sem filtro nao ha
   controlo nenhum, e nao ha linha a dizer que nao ha filtro. E vive na linha da
   barra, encostado ao fim da leitura, porque nao e' um cabecalho: e' uma coisa
   que se desfaz. */
.mapa-limpar {
  display: block;
  padding-block: 0.55rem;
  padding-inline: var(--calha);
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--estado);
  text-decoration: underline;
  text-underline-offset: 0.2em;
  text-align: end;
}

/* ---- The list: the page when there is no map ---- */

.mapa-lista {
  padding-block-end: 1.5rem;
}

.mapa-perto {
  margin-block-end: 1rem;
}

/* ---- The bottom sheet: name, one line, and the way in ---- */

.folha {
  position: fixed;
  inset-inline: 0;
  inset-block-end: calc(var(--barra-altura) + env(safe-area-inset-bottom));
  z-index: 15;
  width: 100%;
  max-width: var(--medida);
  margin-inline: auto;
  padding: 0 var(--calha) 1.15rem;
  background-color: var(--fundo);
  border-start-start-radius: 1.6rem;
  border-start-end-radius: 1.6rem;
  box-shadow: 0 -8px 30px -12px rgba(30, 29, 27, 0.4);
  transform: translateY(100%);
  transition: transform 0.2s ease-out;
}

.folha.aberta {
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .folha {
    transition: none;
  }
}

/* The grab handle every sheet has. It is drawn and not draggable, and that is
   deliberate: it says which edge the panel came from, and the close button
   next to it is the control that actually does something. */
.folha-topo {
  position: relative;
  display: flex;
  justify-content: flex-end;
  padding-block: 0.35rem;
}

.folha-topo::before {
  content: "";
  position: absolute;
  inset-block-start: 0.55rem;
  inset-inline: 0;
  width: 2.4rem;
  height: 0.28rem;
  margin-inline: auto;
  border-radius: 999px;
  background-color: var(--chip);
}

.folha-fechar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.7rem;              /* 49px */
  height: 2.7rem;
  color: var(--tinta);
  background-color: transparent;
  border: none;
  border-radius: 999px;
  cursor: pointer;
}

.folha-fechar svg {
  width: 1.3rem;
  height: 1.3rem;
}

.folha-fechar:active {
  background-color: var(--toque);
}

.folha-corpo > * + * {
  margin-block-start: 0.7rem;
}

/* The stations of a point, under its card in the sheet. One dot on the map,
   and behind it everything there is to read standing there — the trade
   docs/decisoes.md made in decision 5. Links and not cards: the card above
   already carries the picture and the line, and four cards in a bottom sheet
   would push the map off the screen. */

.folha-estacoes {
  list-style: none;
  padding-inline-start: 0.35rem;
}

.folha-estacao {
  display: block;
  padding-block: 0.62rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--acento-texto);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.folha-estacoes li + li .folha-estacao {
  border-block-start: 1px solid var(--borda);
}

/* ---- The names beside the dots ----

   A12. A dot with no name is a question mark: fourteen coloured rings over
   Beer Sheva, and the only way to learn what any of them is was to tap it.

   Text drawn by the map engine needs a glyph endpoint — a second external
   request on a product that has declared exactly one — or a Hebrew font
   compiled into site/vendor/ and carried by every phone on the street. These
   are neither: they are spans over the canvas, moved by site/mapa.js on every
   frame of a pan. The typeface is the system stack the whole site already
   uses, right-to-left is the browser's own and correct without a line of code,
   and the file costs nothing because there is no file.

   The halo is what makes them legible over a map instead of over a page, and
   it is the page's own background colour, so it reads in the sun and at night
   without a second rule. */

.mapa-rotulos {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;       /* the dot underneath is the target, never this */
}

.mapa-rotulo {
  position: absolute;
  /* `top`/`left` and not the logical pair, and it is the one place in this
     stylesheet where that is right: the script writes `transform: translate()`
     in canvas pixels measured from the top left corner by `map.project()`.
     That is a screen-space origin, not a direction of reading — mirroring it
     would put every name on the wrong side of its own dot. The Hebrew inside
     the box still lays itself out right-to-left, as it does everywhere. */
  top: 0;
  left: 0;
  max-width: 11rem;
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--tinta);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-shadow:
    0 0 2px var(--fundo), 0 0 2px var(--fundo),
    0 0 4px var(--fundo), 0 1px 3px var(--fundo);
  will-change: transform;
}

/* ---- MapLibre's own furniture, brought into the palette ---- */

.maplibregl-map {
  font-family: var(--fonte);
}

/* The library ships 29px buttons; the floor in this product is 48px. */
.maplibregl-ctrl-group button {
  width: 2.7rem;
  height: 2.7rem;
}

.maplibregl-ctrl-group {
  background-color: var(--superficie);
  border-radius: var(--raio-peq);
  box-shadow: var(--sombra);
}

.maplibregl-ctrl-group button + button {
  border-block-start: 1px solid var(--borda);
}

/* The library greys a control out when the browser cannot honour it — the
   locate button without geolocation, for one. A control that cannot work is
   not drawn at all: the interface never writes what it does not have. */
.maplibregl-ctrl-group button:disabled {
  display: none;
}

.maplibregl-ctrl-group:not(:has(button:not([disabled]))) {
  display: none;
}

/* The ODbL credit: always visible, never collapsed behind an "i", and set
   left-to-right inside a right-to-left document so the © stays put. */
.maplibregl-ctrl-attrib {
  direction: ltr;
  text-align: left;
  font-size: 0.66rem;
  color: var(--tinta);
  background-color: var(--superficie);
  border-radius: var(--raio-peq);
}

.maplibregl-ctrl-attrib a {
  color: var(--tinta);
  text-decoration: underline;
}

.maplibregl-ctrl-bottom-left,
.maplibregl-ctrl-bottom-right {
  display: none;              /* everything lives at the top, clear of the sheet */
}

/* Mesmo tecto que a doca: estas duas medidas existem para lhe dar lugar, e na
   vista de acervo já não há doca nenhuma em baixo. */
@media (min-width: 768px) and (max-width: 63.99rem) {
  /* The bar becomes a floating dock on desktop; the map gives it room instead
     of hiding its own bottom edge underneath it. */
  .mapa-com-mapa body.corpo-mapa {
    padding-block-end: calc(var(--barra-altura) + 2.2rem);
  }

  .mapa-com-mapa .folha {
    inset-block-end: calc(var(--barra-altura) + 2.2rem);
  }
}

/* ============================================================
   THE STAMP
   Perforated paper, portrait, the place's own photograph inside
   it in brass over loess, the name and the layer under it, and
   the postmark across a corner with the date and hour that
   person collected it. Built from fields the record already
   carries — docs/selos.md asks for zero handmade artwork across
   two hundred and fifty places, and that is the whole reason
   this is CSS and SVG and not a folder of pictures.

   Every colour in here is a literal and not a variable, on
   purpose and for the same reason as the illustration's label:
   a stamp is a printed object. It does not follow the interface
   from light to dark, because paper does not.

   The one part that does follow the page is the outline of a
   stamp not yet collected: there is no paper there to sit on —
   that is the point of it — so the name is written in the ink
   of the page and reads in either theme.
   ============================================================ */

/* The definitions the stamps refer to: the perforated outline as one path and
   the duotone as one filter, written into the document once by the generator
   and used by reference. Never rendered on its own. */
.bul-defs {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

/* EVERY PLACE HAS ITS OWN STAMP, and it is always the same one.

   Three axes, and the generator computes all three from the record itself
   (see `estiloDoSelo`): the perforation from the id, the colour from the
   historical layer — the same colour the point wears on the map — and the
   printed rule inside the paper from how old that layer is. Nothing is drawn
   by hand and nothing is drawn twice: two hundred and fifty places cannot each
   have their own artwork, and a stamp that came out different on the second
   visit would not be a stamp.

   `--bul-cor` and `--bul-cor-escura` arrive as an inline style on the figure.
   The one that is used depends on where the ink is: an empty outline is ink on
   the PAGE and has to read in either theme; a collected stamp is ink on paper,
   and paper does not follow the interface from light to dark. */
.bul {
  position: relative;
  --bul-tinta: var(--bul-cor, var(--acento));
}

@media (prefers-color-scheme: dark) {
  :root:not([data-tema="light"]) .bul {
    --bul-tinta: var(--bul-cor-escura, var(--acento));
  }
}

:root[data-tema="dark"] .bul {
  --bul-tinta: var(--bul-cor-escura, var(--acento));
}

.bul-quadro {
  position: relative;
  display: flex;
  flex-direction: column;
  aspect-ratio: 4 / 5;
  padding: 7.5% 7.5% 6.5%;
  /* Contains the postmark's blending: it must print onto the paper and the
     photograph under it, and never onto the page behind them. */
  isolation: isolate;
}

/* The paper itself. Not collected: an empty outline in brass, the shape of the
   stamp with nothing in it — seeing the hole is what makes someone want to
   fill it (docs/selos.md). Collected: the same shape, filled, lifted off the
   album sheet by its own shadow. */
.bul-papel {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: var(--bul-tinta);
  stroke-width: 1.4;
  stroke-dasharray: 0;
}

.bul-cheio .bul-papel {
  fill: #FFFCF4;
  stroke: rgba(184, 64, 43, 0.18);
  filter: drop-shadow(0 5px 9px rgba(30, 29, 27, 0.2));
}

/* The printed rule: a border struck inside the paper, between the perforation
   and the picture, in the layer's colour. It is the device that tells one
   stamp issue from another on a real album page, and here it says how old the
   place is — nothing, one line, two lines, by the layer's position in the
   chronology. Only on the collected stamp: the empty outline has no paper. */
/* `z-index: 1` and not 0: the paper is an absolutely positioned SVG at 0, and
   at the same level the later element wins — the rule would be printed under
   the sheet it is supposed to be printed on. */
.bul-cheio .bul-quadro::before {
  content: "";
  position: absolute;
  inset: 4.6%;
  z-index: 1;
  pointer-events: none;
}

.bul-cheio.bul-regra-1 .bul-quadro::before {
  border: 1px solid var(--bul-cor, var(--acento));
  opacity: 0.75;
}

.bul-cheio.bul-regra-2 .bul-quadro::before {
  border: 1px solid var(--bul-cor, var(--acento));
  box-shadow: inset 0 0 0 3px #FFFCF4, inset 0 0 0 4px var(--bul-cor, var(--acento));
  opacity: 0.75;
}

/* The window on the picture. Inset from the perforated edge, the way a stamp
   is printed — so the photograph never has to be clipped to the scalloped
   outline, and the outline stays one path for both states.

   A point with no free photograph gets the paper with no window at all. It
   never gets the temporary AI illustration: that picture may only appear under
   its own label, and a label across a souvenir would ruin the souvenir and the
   rule at once. */
.bul-janela {
  position: relative;
  z-index: 1;
  flex: 1;
  min-height: 0;
  overflow: hidden;
  background-color: #E6DDC7;
}

.bul-janela img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: url(#bul-duotone);
}

.bul-legenda {
  position: relative;
  z-index: 1;
  display: block;
  padding-block-start: 0.35rem;
  text-align: center;
}

/* With no window above it the legend sits in the middle of the empty outline,
   which is where a name has to be to be read at a glance across a sheet. */
.bul:not(.bul-cheio) .bul-legenda {
  margin-block: auto;
}

.bul-nome {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.22;
  color: var(--tinta);
}

.bul-serie {
  display: block;
  margin-block-start: 0.12rem;
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: var(--acento-texto);
}

.bul-cheio .bul-nome {
  color: #362A11;
}

.bul-cheio .bul-serie {
  color: #B8402B;
}

/* The postmark: the only part of the collection that is hers alone. Over the
   corner, tilted the way a hand tilts, printed into what is underneath. */
.bul-carimbo {
  position: absolute;
  z-index: 2;
  inset-block-start: 5%;
  inset-inline-start: 4%;
  width: 42%;
  height: auto;
  fill: #4A3A16;
  stroke: #4A3A16;
  opacity: 0.74;
  mix-blend-mode: multiply;
  transform: rotate(-13deg);
}

/* ---- The stamp on the point page, once it is collected ---- */

.ponto-selo-colado {
  text-align: center;
}

.ponto-selo-colado .bul {
  width: min(11rem, 62%);
  margin-inline: auto;
}

.bul-ida {
  display: inline-block;
  margin-block-start: 0.9rem;
  padding-block: 0.6rem;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--estado);
  text-decoration: underline;
}

/* ============================================================
   ABOUT — the page the foot of the home page has always pointed at

   The same vocabulary as everything else: cards, the brass label
   over each one, the reading measure of the story. Nothing new is
   invented for it, because a page about the project is the last
   place that should teach anyone a new shape.

   The last card is the data credit, and it is the one credit in
   the product that is not behind a control: the map tiles are
   OpenStreetMap under the ODbL, which requires the attribution to
   be visible, and the archive's identifiers are Wikidata under
   CC0. It reuses the sources list because it is the same kind of
   thing — a way back to the work.
   ============================================================ */

.sobre-titulo {
  padding-block: 1.3rem 0.2rem;
  font-size: 2.1rem;
  font-weight: 700;
  line-height: 1.1;
}

.sobre-pagina > * + * {
  margin-block-start: 0.75rem;
}

/* A FOTOGRAFIA DENTRO DE UM BLOCO DE `אודות`.

   O mesmo raio pequeno das fotografias emparelhadas da ficha, e não o raio
   grande do cartão: ela está DENTRO de um cartão, e uma curva igual à do pai
   encostada à curva do pai lê-se como um erro de alinhamento.

   `height: auto` é carga e não arrumação, pela mesma razão que na faixa da
   home: o gerador escreve `width`/`height` no HTML para o navegador reservar o
   espaço antes de o ficheiro chegar, e sem esta linha esses atributos passam a
   ser o tamanho de exibição e a imagem sai esmagada.

   AS DUAS DISTÂNCIAS SAEM DA RÉGUA e não são números escritos aqui. Ao título
   por cima ela cola-se — título e fotografia são uma coisa só, e é isso que
   `--ritmo-junto` diz em toda a folha; ao texto por baixo guarda a distância de
   dois irmãos da mesma natureza, `--ritmo`. Nenhum número próprio, que é a
   margem-por-ter-sido-escrita-depois que a régua existe para acabar. */
.sobre-foto {
  display: block;
  width: 100%;
  height: auto;
  margin-block: var(--ritmo-junto) var(--ritmo);
  border-radius: var(--raio-peq);
}

.sobre-bloco p {
  font-size: 1.02rem;
  line-height: 1.75;
}

.sobre-bloco p + p {
  margin-block-start: 0.9rem;
}

/* The intro over the credit list, and the note under it, read as text rather
   than as the small print of a list entry. */
.sobre-bloco .fontes-lista {
  margin-block-start: 0.6rem;
}

/* What the archive took from each collection. One step down from the running
   text and one step up from the licence line, because it is a sentence and
   not a label. */
.sobre-bloco .fonte-nota {
  display: block;
  margin-block-start: 0.1rem;
  font-size: 0.9rem;
  line-height: 1.5;
  opacity: 0.9;
}

.sobre-nota {
  margin-block-start: 1rem;
  font-size: 0.9rem;
  line-height: 1.5;
  opacity: 0.8;
}

/* ============================================================
   THE ALBUM — "my stamps"
   A philatelic album sheet: the archive laid out in a grid,
   one sheet per historical layer, an outline where a stamp is
   missing and the stamp itself where it is not. The counter is
   per sheet and appears only once there is a first stamp; so
   does the invitation to save the collection. Reward first,
   request afterwards, and the request optional.
   ============================================================ */

.album-titulo {
  padding-block: 1.3rem 0.2rem;
  font-size: 2.1rem;
  font-weight: 700;
  line-height: 1.1;
}

/* THE TWO TALLIES, under the title: how many stamps, and how many of them were
   stuck at the place itself. Label then number, never a sentence with the noun
   behind the numeral — "1 בולים" is a concord error in five of the six
   languages, and the sheets of this album already count this way ("4 / 26").

   `flex-wrap` and not a fixed row: at 375px the Arabic pair is the widest and
   the two still sit side by side, but a font-size step or a longer word drops
   the second pair to its own line instead of squeezing the first.

   Both numbers carry `dir="ltr"` on the element, like every other counter
   here, because bidi is free to move a bare numeral around a Hebrew label.

   Nothing in this rule ranks anything. The second pair is written only when it
   is greater than zero, and it wears the same weight, the same size and the
   same brass as the first — a tally, not a grade. */
.album-soma {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.6rem;
  margin-block-start: 0.35rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--acento-texto);
}

.soma-par {
  display: inline-flex;
  align-items: baseline;
  gap: 0.4rem;
}

/* The number is the thing being read across the room; the label is what tells
   you what it counts. One step of size and one of weight between them is the
   whole hierarchy — and it is the same one in both pairs, so that "at the
   place" never reads as the louder of the two lines. */
.soma-n {
  font-size: 1.15rem;
  color: var(--tinta);
}

.soma-rotulo {
  font-weight: 600;
  color: var(--acento-texto);
}

/* The layer pills sit under the bar, exactly where the map keeps them, so the
   one control that switches layers is in the same place on every page that
   has layers. */
.album-filtros {
  margin-block-start: 0.4rem;
}

/* Only the sheet being looked at is laid out. With 34 points the album is
   4.3k pixels tall and the browser pays for all of it; at 250 it would be
   ten times that, and the cost is paid on a phone. `auto` on the intrinsic
   size means the first render teaches the browser each sheet's real height,
   so the scrollbar stops lying after one pass. A browser that does not know
   the property ignores it and gets exactly today's album.

   No margin rule goes with it: containment keeps the sheet label's own top
   margin inside the sheet instead of collapsing it out, so the space between
   two sheets stays exactly what it was. */
.album-folha {
  content-visibility: auto;
  /* Measured on the phone, not guessed: one row of stamps at two columns is
     11.4rem and the sheet's own label and padding are 4.7rem. The generator
     writes the row count of each sheet into --folha-linhas, because a single
     figure for every sheet makes the scrollbar claim twelve thousand pixels
     for an album of seven. */
  contain-intrinsic-size: auto calc(var(--folha-linhas, 3) * 11.4rem + 4.7rem);
}

.album-cabecalho {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.7rem;
}

.album-cabecalho .secao-rotulo {
  margin-block-end: 0;
}

/* dir="ltr" is on the element, not decoration: bidi reorders "4 / 26" into
   "26 / 4", which reads as four points holding twenty-six stamps. */
.album-conta {
  flex: 0 0 auto;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--acento-texto);
}

/* The sheet itself, in loess: the ground a stamp is mounted on, and the reason
   the perforated paper reads as paper at all. On a near-white page a
   near-white stamp on a near-white background is a rectangle with a shadow —
   the punched edge only becomes a punched edge when the album shows through
   the holes. Loess as an accent surface is exactly what the palette asks for,
   and by night the same rule inverts with it. */
.album-grade {
  display: grid;
  /* 7.6rem is what keeps two stamps on a 375px screen once the sheet's own
     padding is taken out of the column — at 8.6rem the second one fell off and
     the album became a single file of very large stamps. */
  grid-template-columns: repeat(auto-fill, minmax(7.6rem, 1fr));
  gap: 1rem 0.7rem;
  margin-block-start: 0.8rem;
  padding: 0.9rem 0.6rem;
  background-color: var(--chip);
  border-radius: var(--raio);
  list-style: none;
}

/* ---- Saving the passport: a link, and the same link as a code ---- */

.guardar {
  margin-block-start: 2.2rem;
}

.guardar-painel {
  margin-block-start: 0.9rem;
  text-align: center;
}

.guardar-nota {
  font-size: 0.92rem;
  line-height: 1.5;
}

.guardar-codigo {
  width: min(15rem, 100%);
  margin: 1rem auto 0;
}

.guardar-codigo svg {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--raio-peq);
}

/* The address is long by nature — it is the collection itself — so it wraps
   anywhere and is set left to right inside the right-to-left page. */
.guardar-endereco {
  display: block;
  margin-block-start: 0.9rem;
  padding-block: 0.6rem;
  direction: ltr;
  text-align: left;
  font-size: 0.72rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
  text-decoration: underline;
  color: var(--acento-texto);
}

/* ============================================================
   THE BOTTOM NAVIGATION BAR
   Four destinations, fixed, always in thumb reach — the pattern
   every phone owner already knows. Links only: no script.
   ============================================================ */

.navegacao {
  position: fixed;
  inset-block-end: 0;
  inset-inline: 0;
  z-index: 20;
  background-color: var(--superficie);
  border-block-start: 1px solid var(--borda);
  padding-block-end: env(safe-area-inset-bottom);
}

.navegacao-lista {
  display: flex;
  width: 100%;
  max-width: var(--medida);
  margin-inline: auto;
  list-style: none;
}

.navegacao-lista > li {
  flex: 1;
  display: flex;
}

.navegacao-item {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  min-height: var(--barra-altura);   /* 74px */
  padding-block: 0.45rem;
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--tinta);
}

.navegacao-item:active {
  background-color: var(--toque);
}

/* O ícone não encolhe e não cresce: a linha de base dos seis é a mesma porque
   os seis medem o mesmo, e não porque calharam de medir. */
.navegacao-icone {
  flex: none;
  width: 1.5rem;
  height: 1.5rem;
}

/* NENHUM RÓTULO PARTE PARA DUAS LINHAS. Um que parta fica mais alto do que os
   outros cinco, e a fila inteira de ícones desalinha — foi o que se viu no
   telemóvel do diretor com `הבולים שלי`. A palavra encurtou (ver `navegacao()`
   no gerador) e esta linha é a trava: uma palavra futura que não caiba passa a
   transbordar de forma visível em vez de desarrumar a barra em silêncio.
   `line-height` fixo pela mesma razão — a altura do rótulo deixa de depender
   das letras que ele tem. */
.navegacao-item > span {
  white-space: nowrap;
  line-height: 1.1;
}

.navegacao-item > * {
  position: relative;
  z-index: 1;
}

/* O REALCE MARCA O ÍCONE E O NOME COMO UMA COISA SÓ. Pedido do diretor a 13 de
   agosto: antes o campo cobria só o ícone e a palavra ficava de fora, em
   turquesa solto sobre a barra — duas cores para um destino só, que se lê como
   duas coisas. Agora o campo é o item inteiro e os dois saem em negativo dele.
   Continua a não ser só cor: muda a forma (o campo), o peso da letra, e o
   `aria-current` diz o mesmo a quem ouve a página.
   Contraste do par: 4,8:1 de dia e 6,5:1 de noite — os dois passam AA. */
.navegacao-item[aria-current="page"] {
  color: var(--fundo);
  font-weight: 700;
}

.navegacao-item[aria-current="page"]::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset-block: 0.4rem;
  inset-inline: 0.25rem;
  border-radius: var(--raio-peq);
  background-color: var(--estado);
}

/* ---- Desktop (≥768px): the archive view — same column, more air ---- */

@media (min-width: 768px) {
  .pergunta {
    font-size: 2.7rem;
  }

  .ponto-nome {
    font-size: 3rem;
  }

  .ponto-identidade {
    padding-block: 2rem 0.6rem;
  }

  .ponto-linha {
    font-size: 1.12rem;
  }

  .cartao-mini {
    width: 5.8rem;
    height: 5.8rem;
  }

  /* Both corpora side by side, equal columns, equal weight — the columns
     themselves come from the auto-fit rule above. */
  .versos-par {
    gap: 2.2rem;
  }

}

/* A DOCA FLUTUANTE É DA FAIXA DO TABLET, e só dela: dos 768px até à vista de
   acervo. Acima disso a barra sobe para o topo (ver mais abaixo), e por isso
   este bloco tem tecto — sem ele, o desktop herdava um pílula arredondada
   colada em baixo e as regras do topo passavam a vida a desfazê-la. */
@media (min-width: 768px) and (max-width: 63.99rem) {
  /* The bar stops spanning the window and becomes a floating dock over
     the same column the content uses. */
  .navegacao {
    inset-inline: 0;
    inset-block-end: 1.1rem;
    width: min(var(--medida), calc(100% - 2.2rem));
    margin-inline: auto;
    border: 1px solid var(--borda);
    border-radius: 999px;
    box-shadow: 0 10px 30px -12px rgba(30, 29, 27, 0.35);
    overflow: hidden;
  }

  /* Na doca do desktop a barra é mais baixa por fora, e o campo encosta-se um
     pouco mais para não tocar na borda arredondada dela. */
  .navegacao-item[aria-current="page"]::before {
    inset-block: 0.3rem;
  }
}

/* ===========================================================================
   ילדים — A SECÇÃO DAS CRIANÇAS

   UMA FAIXA POR TEMA, EMPILHADAS, e sem filtro nenhum por cima. Decisão do
   diretor a 13 de agosto: a página tinha um carrossel com as quarenta, uma
   fila de pílulas que só saltava para uma âncora, e uma grelha com as quarenta
   outra vez. Com uma galeria por tema, o título da faixa É o filtro — e cada
   história aparece uma vez só.

   O CARTÃO ENCOLHEU POR CAUSA DA PILHA. Com sete faixas uma debaixo da outra,
   o que diz que há mais coisa por baixo é ver o princípio da faixa seguinte;
   um cartão de 13,5rem punha uma só no ecrã de 375px e a página voltava a
   parecer uma lista vertical. 11rem de altura e 6rem de fotografia deixam
   entrar duas faixas inteiras.

   O CARROSSEL MOSTRA MEIO CARTÃO DE CADA LADO, e essa é a affordance inteira:
   um carrossel cujo primeiro cartão enche o ecrã parece uma imagem parada e
   ninguém lhe toca. A conta que o faz não tem truque nenhum, e vale escrevê-la
   porque parece errada à primeira vista:

     padding-inline: 11%   →  a caixa de conteúdo passa a ser 78% da largura
     flex: 0 0 100%        →  o cartão ocupa 100% DESSA caixa = 78% do total

   Uma percentagem de padding resolve contra a largura do próprio elemento, e
   uma flex-basis em percentagem resolve contra a caixa de conteúdo. As duas
   juntas dão 78% exactos sem elementos-espaçadores, sem `calc`, sem `:has()`
   e sem unidades de viewport que partiriam no desktop, onde a coluna está
   limitada a `--medida`. O `scroll-padding-inline` faz o snap aterrar no
   mesmo sítio.

   RTL não precisa de uma linha sequer aqui: `padding-inline`, `flex` e
   `scroll-snap-align: center` são todos agnósticos à direcção, e o navegador
   já começa a rolagem no início da leitura — que em hebraico é a direita.

   O CARTÃO DE TEMA NÃO TEM FOTOGRAFIA, e não finge ter. Não há fotografia do
   que é um deserto. Em vez de um quadro cinzento a fazer de conta, o corpo do
   cartão enche a altura toda e leva a cor da sua categoria — o mesmo mecanismo
   do mapa, onde a cor carrega o dado e não a decoração. Ausência é silêncio.
   =========================================================================== */

.kids-carrossel {
  display: flex;
  gap: 0.7rem;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x mandatory;
  padding-inline: 11%;
  scroll-padding-inline: 11%;
  padding-block-end: 1rem;
  margin-inline: calc(var(--calha) * -1);
  scrollbar-width: none;
}

.kids-carrossel::-webkit-scrollbar { display: none; }

.kids-carrossel > .kids-cartao { flex: 0 0 100%; min-height: 11rem; }

/* O cartão. Na GRELHA mede o que o seu conteúdo pede — um cartão de tema ali é
   duas linhas de texto e não deve ocupar meio ecrã. A altura fixa pertence só
   ao carrossel, onde um cartão com fotografia e um sem ela têm de medir o
   mesmo, ou a fila lê-se como uma coisa partida. */
.kids-cartao {
  display: flex;
  flex-direction: column;
  background-color: var(--superficie);
  border-radius: var(--raio);
  box-shadow: var(--sombra);
  overflow: hidden;
  scroll-snap-align: center;
  color: inherit;
  text-decoration: none;
}

/* A LIGAÇÃO É AGORA UMA PARTE DO CARTÃO, e não o cartão inteiro. O play e o
   share são irmãos dela — um botão dentro de um `<a>` é HTML inválido, e o
   telemóvel resolve a ambiguidade navegando quando se queria ouvir. O alvo da
   navegação continua a ser tudo o que se vê: fotografia e texto. */
.kids-cartao-alvo {
  display: flex;
  flex: 1;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
}

.kids-cartao-alvo:active { background-color: var(--toque); }

/* A TIRA DE 6REM DECAPITAVA OS BICHOS. Medido, e o diretor viu-o antes de mim:
   «um abutre sem cabeça, um íbex sem cabeça e uma hiena descentrada».

   A causa não é o enquadramento da fotografia, é a aritmética da moldura. A
   imagem que entra aqui é a miniatura quadrada de 432px, e a caixa media 408×108
   no desktop — proporção 3,78. Um `cover` de 3,78 sobre uma imagem de 1,0 guarda
   26% da altura, isto é, a faixa entre os 37% e os 63% da fotografia. Uma cabeça
   de íbex vive acima disso, e a moldura cortava-a sem falhar uma vez.

   3/2 E NÃO OUTRO NÚMERO, e foi escolhido a olhar: gerado o mesmo recorte em
   3,78 · 2,4 · 2,0 · 16:9 · 3:2 · 4:3 para as cinco fotografias de animais, 3:2
   é a primeira proporção em que TODOS ficam inteiros — o abutre entra a 2,0, a
   hiena a 2,4, mas os cornos do íbex e os do צבי só cabem a 3:2. Retém 67% da
   altura contra os 26% de antes.

   E CUSTA MENOS DO QUE PARECE: o cartão do carrossel já tinha `min-height:
   11rem` e sobrava-lhe folga por baixo do título. */
.kids-cartao-foto {
  display: block;
  background-color: var(--chip);
}

.kids-cartao-foto img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

/* Sem fotografia, o cartão é TIPOGRÁFICO — e tem de parecer decidido, não por
   acabar. Um retângulo bege alto com duas linhas pequenas ao fundo lê-se como
   uma imagem que não carregou; o mesmo retângulo com o rótulo da categoria
   grande, na cor dela, lê-se como uma capa. É a mesma altura e é outra coisa.
   Com fotografia, o corpo encosta ao topo e o texto volta ao tamanho normal. */
.kids-cartao-corpo {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.85rem 0.95rem;
  background-color: var(--kids-campo, var(--chip));
}

.kids-cartao-foto + .kids-cartao-corpo {
  flex: 0 0 auto;
  justify-content: flex-start;
  background-color: var(--superficie);
}

.kids-cartao-tema {
  font-size: 1.02rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--kids-cor, var(--acento-texto));
}

.kids-cartao-titulo {
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.25;
}

/* Com fotografia o texto é legenda, e encolhe: quem manda no cartão passa a
   ser a imagem. Sem ela, o texto É o cartão. */
.kids-cartao-foto + .kids-cartao-corpo .kids-cartao-tema { font-size: 0.78rem; }
.kids-cartao-foto + .kids-cartao-corpo .kids-cartao-titulo { font-size: 1.05rem; }


/* ---- O PLAY E O SHARE, NO PRÓPRIO CARTÃO ----

   Pedido do diretor a 13 de agosto. São dois alvos separados numa barra ao pé
   do cartão, e SEPARADOS é o ponto: o dedo que quer ouvir não pode abrir a
   página, e o que quer abrir a página não pode pôr som na rua. Ambos com 44px
   de lado — a medida do polegar, e a mesma que o resto do produto usa.

   A barra não pinta fundo nenhum: ela está dentro do cartão e é do cartão. Um
   segundo tom aqui partia em dois um objecto que é um só.

   `[hidden]` PRECISA DE REGRA porque a regra de classe ganha à do navegador.
   Os dois botões nascem escondidos e só o script os revela — sem ele nenhum
   faz o que promete —, e sem esta linha o `display: flex` de baixo mostrava-os
   na mesma, mortos. Foi assim que o botão do canto passou anos a aparecer sem
   javascript; aqui não passa. */
.kids-cartao-acoes {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 0.6rem;
}

.kids-cartao-acoes button[hidden] { display: none; }

.kids-cartao-play {
  display: flex;
  flex: 1;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.75rem;         /* 44px */
  padding-inline: 0.9rem;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 700;
  color: var(--tinta);
  background-color: var(--chip);
  border: 0;
  border-radius: 999px;
}

.kids-cartao-play:active { background-color: var(--toque); }

/* O rótulo troca de palavra ao tocar — לשמוע por להפסיק — e as duas não podem
   partir para uma segunda linha num cartão estreito: o botão saltaria de
   altura no instante em que a criança lhe toca. */
.kids-cartao-play-rotulo { white-space: nowrap; }

/* O relógio encosta ao fim da linha e os dígitos medem todos o mesmo: uma
   contagem regressiva que empurra o rótulo a cada segundo lê-se como avaria. */
.kids-cartao-tempo {
  margin-inline-start: auto;
  font-size: 0.92rem;
  font-variant-numeric: tabular-nums;
}

/* Sem play — história ainda sem voz — o share vai sozinho para o fim da linha,
   e a barra continua a ser a mesma barra. */
.kids-cartao-share {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin-inline-start: auto;
  padding: 0;
  color: var(--tinta);
  background-color: var(--chip);
  border: 0;
  border-radius: 999px;
}

.kids-cartao-share:active { background-color: var(--toque); }

.kids-cartao-share.feito { color: var(--estado); }

/* ---- OS DOIS ATALHOS: o חידון e o jogo da memória ----

   «No home do ילדים quase não percebi os cards de perguntas e do jogo da
   memória, dê uma cor para cada um» — o diretor, 13 de agosto. Eram dois
   cartões brancos entre cartões brancos, com um ícone pequeno de latão.

   Cada um leva agora a sua cor, e as duas são as DUAS CORES QUE O PRODUTO JÁ
   TEM: latão para o חידון — a matéria da placa e do selo, e o חידון é a prova
   da escola — e turquesa para a memória. Nenhuma cor nova entra na paleta por
   causa de dois cartões, e as duas já estão medidas nos dois temas.

   E a cor não vai sozinha: o que distingue um cartão do outro é o ícone e o
   título, como sempre foi; a cor só os faz notar. O campo cheio é o que os
   separa dos cartões de história, que são brancos e com fotografia.

   Uma barra de cor na margem de início — a marca da `kids-lembrar` — foi
   tentada e saiu: com o raio do cartão, um bordo de 5px desenha uma cunha
   torta no canto, e um cartão com um canto torto lê-se como defeito. */
.kids-atalho {
  background-color: var(--atalho-campo);
}

.kids-atalho .cartao-titulo,
.kids-atalho .destaque-icone,
.kids-atalho .seta {
  color: var(--atalho-cor);
}

.kids-atalho-hidon {
  --atalho-cor: var(--acento-texto);
  --atalho-campo: rgba(232, 131, 110, 0.16);
}

.kids-atalho-zikaron {
  --atalho-cor: var(--estado);
  --atalho-campo: rgba(14, 124, 134, 0.13);
}

/* O rótulo da faixa já traz 1,9rem por cima de si; a margem da secção existe
   para que ela não colapse com o cartão que vem antes da primeira. */
.kids-seccao { margin-block-start: 1.4rem; }

/* Dentro de uma faixa o rótulo encosta-se ao carrossel: são uma coisa só. */
.kids-seccao .secao-rotulo { margin-block-end: 0.5rem; }

/* ---- A página de uma história ---- */

/* A fotografia manda no ecrã, como em toda a parte deste produto. Quando não
   há, não há bloco — e a página começa pelo rótulo da categoria. */
/* A MESMA SANGRIA QUE O TOPO DA FICHA TINHA, e a mesma correção — apontada
   pelo diretor a 18 de agosto: «em ילדים ainda ficou aquele problema de
   imagens muito extensas na horizontal dentro dos temas». A moldura era
   sangria completa (a largura do ecrã) com `max-height: 15rem` fixo e sem
   `aspect-ratio`: a 375 dava 375×270 — proporção 1,39, quase inofensiva — mas
   a 1440 dava 1425×270 — proporção 5,28, e cada fotografia perdia mais de
   70% da sua altura. Medidas as 40 fotografias que estas faixas usam de
   facto: mediana 1,50, média 1,56 — este acervo específico é mais largo que
   as 265 fotografias do produto (mediana 1,33, que é o que deu 4/3 no topo
   da ficha). Comparado 3/2 contra 4/3 sobre as 40: 3/2 retém mais em média
   (90,4% contra 88,6%) e no pior caso (44,3% contra 39,3%) — 3/2 e não 4/3.

     375   375×270  R 1,39  ret 0,89   →   375×250  R 1,50  ret 0,90
     1440 1425×270  R 5,28  ret 0,30   →   612×408  R 1,50  ret 0,90

   `max-inline-size: var(--medida)` traz a moldura para a largura da coluna
   de leitura, como o topo da ficha; sem ela a caixa continuaria a alargar
   com a janela e o 3/2 nunca teria espaço para acontecer. */
.kids-figura {
  width: 100%;
  max-inline-size: var(--medida);
  margin-inline: auto;
  background-color: var(--chip);
}

.kids-figura img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  max-block-size: clamp(12rem, 34vh, 20rem);
  object-fit: cover;
}

.kids-historia { padding-block-start: 1.2rem; }

.kids-tema-rotulo {
  margin: 0 0 0.3rem;
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--kids-cor, var(--acento-texto));
}

.kids-titulo {
  margin: 0 0 1.2rem;
  font-size: 1.85rem;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.01em;
}

/* O LUGAR DO PLAY, RESERVADO ANTES DE HAVER ÁUDIO.

   Não há uma única faixa gerada e por isso não há um único botão no site — um
   play que não toca é a legenda de ausência que este produto não escreve. Mas
   a MAQUETE tem de estar certa desde já: o diretor pediu o play por baixo da
   imagem, e se as medidas só aparecerem no dia em que o áudio entrar, esse dia
   é um dia de redesenhar a página inteira. Então a regra de posição existe
   agora e fica à espera. O bloco vive entre o título e a coisa para levar, que
   é onde `paginaHistoriaCrianca` já o escreve quando o manifesto tem faixa. */
.kids-historia .ponto-ouvir {
  margin-block: 0 1.5rem;
}

/* A COISA PARA LEVAR. Um cartão só, antes do texto e não depois: a criança que
   lê tudo encontra-o de novo no fim pela própria leitura, e a que não lê tudo
   leva na mesma o número, o nome ou a data. A barra de latão na margem de
   início marca-o sem caixa e sem ícone. */
.kids-lembrar {
  border-inline-start: 4px solid var(--kids-cor, var(--acento-texto));
  margin-block-end: 1.5rem;
}

.kids-lembrar-rotulo {
  margin: 0 0 0.35rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--kids-cor, var(--acento-texto));
}

.kids-lembrar-texto {
  margin: 0;
  font-size: 1.06rem;
  font-weight: 600;
  line-height: 1.45;
}

/* Corpo generoso: o mínimo do modo rua são 18px, e isto lê-se sentado com uma
   criança ao lado. Parágrafos curtos e muitos, que é a forma do texto. */
.kids-texto {
  font-size: 1.12rem;
  line-height: 1.68;
}

.kids-texto p { margin: 0 0 1.05rem; }

/* ---- A cor de cada categoria ----
   Vocabulário de dados e não de decoração, como `camada-*` no mapa: o gerador
   escreve só o nome. O tom do campo é o mesmo nos dois temas — é alfa sobre a
   superfície, e sobe ou desce com ela. O que muda é a cor do texto, que tem de
   passar o contraste dos dois lados. */
.kids-tema-hai         { --kids-cor: #B8402B; --kids-campo: rgba(232, 131, 110, 0.14); }
.kids-tema-tzomeach    { --kids-cor: #0E7C86; --kids-campo: rgba(14, 124, 134, 0.13); }
.kids-tema-arkheologia { --kids-cor: #8A5A2B; --kids-campo: rgba(138, 90, 43, 0.13); }
.kids-tema-astronomia  { --kids-cor: #3E5A8C; --kids-campo: rgba(62, 90, 140, 0.13); }
.kids-tema-aklim       { --kids-cor: #A45A3C; --kids-campo: rgba(164, 90, 60, 0.10); }
.kids-tema-geografia   { --kids-cor: #556B2F; --kids-campo: rgba(85, 107, 47, 0.14); }
.kids-tema-makom       { --kids-cor: #B8402B; --kids-campo: rgba(232, 131, 110, 0.14); }

/* Escrito duas vezes pela razão que o cabeçalho deste ficheiro já dá: uma
   media query não se alarga com um selector, e "o sistema diz noite" e "ela
   escolheu noite" são duas condições com um só conjunto de valores. Editar
   sempre as duas. */
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="light"]) .kids-tema-hai         { --kids-cor: #F3A996; }
  :root:not([data-tema="light"]) .kids-tema-tzomeach    { --kids-cor: #4FC3CE; }
  :root:not([data-tema="light"]) .kids-tema-arkheologia { --kids-cor: #C79463; }
  :root:not([data-tema="light"]) .kids-tema-astronomia  { --kids-cor: #8FAEDC; }
  :root:not([data-tema="light"]) .kids-tema-aklim       { --kids-cor: #DB9273; }
  :root:not([data-tema="light"]) .kids-tema-geografia   { --kids-cor: #A9BC78; }
  :root:not([data-tema="light"]) .kids-tema-makom       { --kids-cor: #F3A996; }
}

:root[data-tema="dark"] .kids-tema-hai         { --kids-cor: #F3A996; }
:root[data-tema="dark"] .kids-tema-tzomeach    { --kids-cor: #4FC3CE; }
:root[data-tema="dark"] .kids-tema-arkheologia { --kids-cor: #C79463; }
:root[data-tema="dark"] .kids-tema-astronomia  { --kids-cor: #8FAEDC; }
:root[data-tema="dark"] .kids-tema-aklim       { --kids-cor: #DB9273; }
:root[data-tema="dark"] .kids-tema-geografia   { --kids-cor: #A9BC78; }
:root[data-tema="dark"] .kids-tema-makom       { --kids-cor: #F3A996; }

/* ===========================================================================
   O חידון

   O mesmo carrossel da galeria — mesma conta dos 78%, mesmo snap — com um
   cartão de pergunta em vez de um cartão de história. `.quiz-fila` é um `<ul>`
   e por isso só precisa de perder as marcas da lista.

   TRÊS ESTADOS. Por responder, certa, errada. Ao errar, a opção tocada fica
   vermelha e a certa pisca três vezes e depois fica verde fixa: piscar chama o
   olho, ficar fixa deixa ler sem pressa.

   A página avança sozinha nos dois casos, e as esperas diferem por cinco vezes:
   600ms no acerto, onde não há nada para ler, e três segundos no erro, onde há.
   Os três segundos são do diretor, 13 de agosto. A piscadela leva 1,86s deles,
   de propósito: a certa ainda fica parada e verde mais de um segundo antes de o
   cartão seguinte entrar. Quem já deslizou entretanto não é atropelada — o
   script só avança se o cartão respondido ainda estiver centrado.

   As duas cores de estado não são as da paleta do produto, e é de propósito:
   verde e vermelho aqui não são decoração, são a resposta. São os dois únicos
   sítios do site onde uma cor CARREGA a informação — por isso nenhum dos dois
   depende só dela: a certa ganha também peso e um traço, e o botão errado fica
   riscado. Quem não distingue as duas cores continua a ler o resultado. */

/* CADA CARTÃO MEDE O QUE ELE PRÓPRIO PEDE, e é isso que `flex-start` faz aqui.
   Numa fila flex o alinhamento por omissão é `stretch`: os cento e quarenta e
   sete cartões ficavam todos com a altura do MAIOR deles — a pergunta mais
   comprida com as quatro opções mais compridas —, e como o conteúdo estava
   centrado, um cartão curto abria mais de meio cartão de vazio por cima do
   contador. Foi o que o diretor viu no telemóvel: «o card da pergunta ficou com
   uma altura muito grande no topo, e empurrou tudo para baixo», com a quarta
   opção outra vez fora do ecrã. A pergunta começa no topo do cartão. */
.quiz-fila {
  list-style: none;
  margin: 0;
  padding-inline: 11%;
  align-items: flex-start;
}

.quiz-cartao {
  display: flex;
  flex: 0 0 100%;
  flex-direction: column;
  padding: 1.1rem 1.15rem;
  background-color: var(--superficie);
  border-radius: var(--raio);
  box-shadow: var(--sombra);
  scroll-snap-align: center;
}

.quiz-conta {
  margin: 0 0 0.5rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--acento-texto);
}

.quiz-pergunta {
  margin: 0 0 0.9rem;
  font-size: 1.32rem;
  font-weight: 700;
  line-height: 1.32;
}

.quiz-opcoes {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}

/* Alvo bem acima do piso: um polegar, ao sol, com pressa. O `min-height` é que
   garante os 44px do polegar; o `padding` só conta quando a resposta parte para
   duas linhas, e por isso apertá-lo não encolhe alvo nenhum — encolhe a
   pergunta mais comprida do baralho, que era a que empurrava a quarta opção
   para debaixo da barra de baixo. */
.quiz-opcao {
  width: 100%;
  min-height: 3.15rem;
  padding: 0.55rem 0.9rem;
  font: inherit;
  font-size: 1.06rem;
  font-weight: 600;
  text-align: start;
  color: var(--tinta);
  background-color: var(--fundo);
  border: 2px solid var(--borda);
  border-radius: 0.85rem;
  cursor: pointer;
}

.quiz-opcao:active { background-color: var(--toque); }
.quiz-opcao[disabled] { cursor: default; opacity: 1; }

/* A certa. Cor, peso e um traço à cabeça — três sinais, só um deles é cor. */
.quiz-opcao.certa {
  color: #17603F;
  background-color: rgba(23, 96, 63, 0.11);
  border-color: #17603F;
  font-weight: 700;
}

/* A errada. Cor e o texto riscado, para que não dependa da cor. */
.quiz-opcao.errada {
  color: #9B2C22;
  background-color: rgba(155, 44, 34, 0.10);
  border-color: #9B2C22;
  text-decoration: line-through;
  text-decoration-thickness: 2px;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-tema="light"]) .quiz-opcao.certa {
    color: #6FCB9B;
    background-color: rgba(111, 203, 155, 0.15);
    border-color: #6FCB9B;
  }
  :root:not([data-tema="light"]) .quiz-opcao.errada {
    color: #F0928A;
    background-color: rgba(240, 146, 138, 0.14);
    border-color: #F0928A;
  }
}

:root[data-tema="dark"] .quiz-opcao.certa {
  color: #6FCB9B;
  background-color: rgba(111, 203, 155, 0.15);
  border-color: #6FCB9B;
}

:root[data-tema="dark"] .quiz-opcao.errada {
  color: #F0928A;
  background-color: rgba(240, 146, 138, 0.14);
  border-color: #F0928A;
}

/* Três piscadas e pára. Não é um laço: um pisca-pisca permanente ao lado de um
   texto para ler é ruído, e ao fim de dois segundos já ninguém o vê. */
@keyframes quiz-piscar {
  0%, 100% { opacity: 1; }
  /* 0,45 e não 0,2: a certa nunca chega a ficar difícil de ler durante a
     piscadela. Piscar é para chamar o olho, não para esconder a resposta. */
  50%      { opacity: 0.45; }
}

.quiz-opcao.a-piscar {
  animation: quiz-piscar 0.62s ease-in-out 3;
}

/* Quem desligou o movimento no sistema recebe a certa já fixa. Ela não perde
   nada: a cor, o peso e a borda dizem a mesma coisa sem se mexerem. */
@media (prefers-reduced-motion: reduce) {
  .quiz-opcao.a-piscar { animation: none; }
}

/* A ligação para a página que contém mesmo a resposta.

   NASCE ESCONDIDA COM O ESPAÇO RESERVADO, e as duas metades importam. Visível
   antes de responder, ela transforma cada pergunta numa consulta de um toque.
   E é `visibility` e não `display` de propósito: assim o cartão tem a mesma
   altura antes e depois, e nada salta debaixo do dedo no instante em que a
   criança acaba de tocar. `visibility: hidden` também a tira da ordem de
   tabulação e do leitor de ecrã enquanto ela não faz sentido.

   O alvo abre a ficha completa ou a história — as duas contêm a resposta, e
   ler a resposta é o objectivo desta secção e não a fuga a ele. */
.quiz-saber {
  margin-block-start: 1rem;
  align-self: start;
  min-height: 2.75rem;
  display: inline-flex;
  align-items: center;
  font-size: 1rem;
  font-weight: 700;
  color: var(--acento-texto);
  text-decoration: underline;
  text-underline-offset: 0.22em;
  visibility: hidden;
}

.quiz-cartao.respondida .quiz-saber { visibility: visible; }

/* Uma linha, e não um bloco. Num ecrã de 375px o cabeçalho grande da galeria
   empurrava a quarta opção para debaixo da barra de baixo, e uma pergunta de
   escolha múltipla com uma opção escondida é uma pergunta estragada. */
.quiz-linha {
  margin: 0.2rem 0 1rem;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--tinta-fraca, var(--acento-texto));
}

/* O TERMÓMETRO DE ACERTOS — pedido do diretor, 13 de agosto: «um termómetro ou
   estrelinhas de proporção de respostas corretas, que se reseta por sessão com
   o dispositivo, sem ocupar muito espaço».

   OCUPA ZERO. Ele não se acrescenta à linha de cima: substitui-a, no momento
   em que há a primeira resposta. Mesma margem, mesmo corpo de letra, mesma
   altura de linha — o cartão da pergunta não desce um pixel, e a quarta opção
   continua onde estava. Esse defeito já voltou duas vezes nesta página.

   A COR NÃO CARREGA A INFORMAÇÃO. Quem não distingue verde de cinzento lê o
   número, que está lá sempre e é exacto. E a barra é de uma cor só, seja qual
   for a proporção: um verde que virasse vermelho a meio seria a página a
   julgar uma criança, e o que ela mede é quanto já acertou, não quanto vale.
   O verde é o mesmo da resposta certa, três linhas acima — nesta página essa
   cor já quer dizer isso.

   ENCHE DE DENTRO PARA FORA A PARTIR DO INÍCIO DA LINHA: `inline-size` e não
   `width`, e por isso em hebraico cresce da direita, que é por onde se lê. */
.quiz-placar {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0.2rem 0 1rem;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--tinta);
}

.quiz-placar-rotulo { white-space: nowrap; }

/* Quatro pixels de altura e não oito: ao lado de uma linha de texto, uma barra
   grossa vira um segundo objeto. Fina, ela é uma régua. */
.quiz-placar-barra {
  flex: 1;
  min-inline-size: 3rem;
  block-size: 0.28rem;
  border-radius: 999px;
  background-color: var(--borda);
  overflow: hidden;
}

.quiz-placar-cheio {
  display: block;
  block-size: 100%;
  inline-size: 0;
  border-radius: 999px;
  background-color: #17603F;
}

/* Algarismos de largura fixa: sem eles a barra encolhe e cresce um pixel de
   cada vez que o contador passa de 9 para 10. */
.quiz-placar-conta { font-variant-numeric: tabular-nums; }

@media (prefers-color-scheme: dark) {
  :root:not([data-tema="light"]) .quiz-placar-cheio { background-color: #6FCB9B; }
}

:root[data-tema="dark"] .quiz-placar-cheio { background-color: #6FCB9B; }

/* ===========================================================================
   O JOGO DA MEMÓRIA

   Doze fotografias da cidade, cada uma duas vezes. LOOP.md, A56, peça 2 — e a
   frase que a define é «quando a criança acerta um par, mostra o NOME do
   lugar»: o jogo tem de ensinar, não só entreter.

   SEM SCRIPT AS CARTAS ESTÃO VIRADAS PARA CIMA, e a folha desenha exatamente
   isso: uma galeria de doze lugares com nome e ligação. O verso só existe
   dentro de `.a-jogar`, que é a classe que site/memory.js põe no tabuleiro.
   Assim a página nunca é um tabuleiro morto — é uma folha que ganha um jogo.

   E NADA DE VIRAGEM EM TRÊS DIMENSÕES. Um `preserve-3d` com
   `backface-visibility` é truque de folha de estilo para um efeito que não é
   necessário, e truque que é preciso para funcionar sai. A carta tem uma face
   por cima; revelar é tirá-la. */

.memoria-estado {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 1.4rem;
  margin-block-end: 0.6rem;
}

.memoria-medida {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
}

.memoria-rotulo {
  font-weight: 600;
  color: var(--acento-texto);
}

/* O nome do lugar encontrado, em corpo grande e numa linha própria. Numa
   célula de 79 pixels um nome hebraico de três palavras não se lê, e o nome é
   o ponto todo desta peça.

   A ALTURA ESTÁ RESERVADA PARA DUAS LINHAS, e não para uma. O nome mais longo
   do baralho — `גשר הרכבת הטורקי על נחל באר שבע` — ocupa duas a 375px, e com
   uma linha reservada o tabuleiro descia meio centímetro no instante em que a
   criança acertava um par. Um tabuleiro que se mexe debaixo do dedo é o mesmo
   defeito que tirou o avanço automático do חידון quando se erra. */
.memoria-hodaa {
  margin: 0 0 0.9rem;
  min-height: 3.2rem;
  font-size: 1.22rem;
  font-weight: 700;
  line-height: 1.3;
}

.memoria-fim {
  color: var(--acento-texto);
}

/* O TABULEIRO TEM DE SE COMPORTAR NOS DOIS EXTREMOS, e eles estão longe um do
   outro: quatro cartas no primeiro nível e vinte e quatro no último. Com quatro
   cartas a quatro colunas ficava uma tira; a duas colunas e sem tecto de
   largura ficavam quatro quadrados de meio ecrã cada um. O número de colunas
   vem do script, em `data-colunas`, e o tecto de largura é daqui.

   Sem script não há atributo nenhum, e as doze fotografias ficam em quatro
   colunas — que é a folha que esta página é sem javascript. */
.memoria-luach {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.5rem;
}

.memoria-luach[data-colunas="2"] {
  grid-template-columns: repeat(2, 1fr);
  max-width: 17rem;
}

.memoria-celula {
  margin: 0;
}

.memoria-carta {
  position: relative;
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: var(--raio-peq);
  background-color: var(--superficie);
  box-shadow: var(--sombra);
  color: var(--tinta);
  text-decoration: none;
}

.memoria-carta img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* O nome sobre a fotografia. Não é para ler de longe — é para identificar o
   que se está a ver; quem lê é a linha grande por baixo do tabuleiro. O véu
   escuro é o que faz o texto sobreviver a uma fotografia clara ao sol. */
.memoria-nome {
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  padding: 0.7rem 0.35rem 0.3rem;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  color: #FFFFFF;
  background: linear-gradient(to top, rgba(15, 17, 21, 0.82), rgba(15, 17, 21, 0));
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* O verso. Só existe quando há jogo — sem script esta regra nunca se aplica e
   as cartas ficam à vista. A cor é a do latão do produto, e o ponto ao centro
   dá-lhe uma frente sem precisar de uma imagem que teria de ser descarregada. */
.memoria-verso {
  display: none;
}

/* ENQUANTO SE JOGA, A CARTA NÃO TEM NOME NENHUM. Decisão do diretor a 13 de
   agosto: «não coloque o nome no card; ao acertar um casal, apareça um popup do
   local com foto e nome». Numa célula de 79 pixéis um nome hebraico de três
   palavras não se lê, e uma carta com nome entrega o par a quem lê depressa.
   O nome continua escrito no html — sem script esta folha é uma galeria de doze
   lugares com nome e ligação — e é o jogo que o tira.

   `display: none` e não `visibility`: tira-o da vista E da árvore de
   acessibilidade, senão o jogo dizia a resposta a quem ouve a página. */
.memoria-luach.a-jogar .memoria-nome {
  display: none;
}

.memoria-luach.a-jogar .memoria-carta:not(.virada) .memoria-verso {
  display: block;
  position: absolute;
  inset: 0;
  background-color: var(--acento-texto);
  background-image: radial-gradient(circle at 50% 50%, rgba(242, 239, 233, 0.9) 0 12%, rgba(242, 239, 233, 0) 12.5%);
}

.memoria-luach.a-jogar .memoria-carta:active {
  background-color: var(--toque);
}

/* A carta encontrada não fica apagada: ganha uma moldura e um visto. A cor
   sozinha nunca chega, aqui como no חידון — e como o nome saiu da carta, o
   visto deixou de poder viver nele e passa a ser uma marca no canto. */
.memoria-luach.a-jogar .memoria-carta.achada {
  outline: 3px solid #17603F;
  outline-offset: -3px;
}

.memoria-luach.a-jogar .memoria-carta.achada::after {
  content: "✓";
  position: absolute;
  inset-block-start: 0.25rem;
  inset-inline-start: 0.25rem;
  display: grid;
  place-items: center;
  width: 1.35rem;
  height: 1.35rem;
  font-size: 0.85rem;
  font-weight: 700;
  line-height: 1;
  color: #FFFFFF;
  background-color: #17603F;
  border-radius: 999px;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-tema="light"]) .memoria-luach.a-jogar .memoria-carta.achada {
    outline-color: #6FCB9B;
  }
}

:root[data-tema="dark"] .memoria-luach.a-jogar .memoria-carta.achada {
  outline-color: #6FCB9B;
}

.memoria-shuv {
  margin-block-start: 1.2rem;
}

/* No desktop o tabuleiro não se estica a ecrã inteiro: uma carta de 300 pixels
   transforma um jogo de memória num exercício de rolamento. */
@media (min-width: 40rem) {
  .memoria-luach {
    max-width: 30rem;
    gap: 0.7rem;
  }
  .memoria-nome {
    font-size: 0.9rem;
  }

  /* A FOTOGRAFIA DE TOPO GANHA CANTOS QUANDO DEIXA DE TOCAR NO BORDO.

     No telemóvel ela é sangria completa e um canto arredondado seria uma
     invenção; a partir daqui a janela é mais larga que a coluna de leitura, a
     fotografia fica encostada ao meio com margem dos dois lados, e um
     rectângulo de cantos vivos entre cartões arredondados lê-se como uma
     imagem que ainda não acabou de carregar. O raio é o da folha que sobe por
     cima dela — 1.6rem, o mesmo par de propriedades — e só em cima: em baixo os
     cantos ficam por debaixo da folha, e arredondá-los seria arredondar uma
     linha que ninguém vê. */
  .ponto-foto img {
    border-start-start-radius: 1.6rem;
    border-start-end-radius: 1.6rem;
  }
}

/* ===========================================================================
   A VISTA DE ACERVO — ≥64rem (1024px)

   «Desktop é a vista de acervo — pesquisa, mapa, leitura longa, o neto em
   Melbourne procurando um sobrenome. Mesma base de dados, densidade
   diferente.» (CLAUDE.md)

   Até aqui o desktop era o telemóvel esticado: uma coluna de 34rem ao meio de
   um ecrã de 1440, tudo empilhado, e a barra do polegar a flutuar por cima da
   última linha de cartões. Não é um desenho novo — é a MESMA tipografia, as
   mesmas cores, os mesmos cartões, arrumados para um ecrã largo.

   TRÊS DECISÕES SEGURAM O BLOCO INTEIRO:

   1 · A MEDIDA DE LEITURA NÃO MUDA. `--medida` (34rem) continua a ser a coluna
       de texto da ficha, porque 65-75 caracteres é o limite legível e esticar
       um parágrafo até 1440px é o defeito clássico de quem descobre que tem
       espaço. O que ganha largura é o ACERVO — listas, busca, mapa, álbum —,
       e é por isso que a medida larga tem nome próprio em vez de sobrescrever
       a outra.

   2 · QUEM DECIDE O NÚMERO DE COLUNAS É O `auto-fill`, e não um número escrito
       por breakpoint. `minmax(20rem, 1fr)` diz a única coisa que se sabe de
       verdade: abaixo de 20rem um cartão com miniatura, título, uma linha e
       três etiquetas deixa de caber. O resto é aritmética do navegador — dá 2
       colunas a 1024px e 3 a partir de ~1180px, e continua a dar 1 dentro da
       coluna estreita da ficha sem precisar de uma exceção escrita.

   3 · RTL NÃO PRECISA DE UMA LINHA AQUI. `grid-template-columns`,
       `padding-inline` e `flex-basis` são agnósticos à direção, e o navegador
       preenche a grelha a partir do início da leitura — que em hebraico é a
       direita e em inglês a esquerda. Confirmado nos dois.
   =========================================================================== */

:root {
  /* Três colunas de cartão e as calhas. Tem tecto e não é `vw`: numa parede de
     1920 uma grelha sem limite não fica densa, fica dispersa. */
  --medida-acervo: 72rem;

  /* A ALTURA DA FILA DO CABEÇALHO, uma para as doze páginas. 3,75rem são 67,5px,
     que é o que onze delas já mediam — a régua não move o que já estava certo,
     alinha o que não estava. Vive fora da careira porque o valor é o mesmo
     número em toda a folha e não uma decisão de largura. */
  --cabecalho: 3.75rem;
}

@media (min-width: 64rem) {
  /* ---- A coluna larga, e ela é do CORPO e não do `main` ----
     O cabeçalho leva a marca, o rodapé leva os créditos, e se só o meio
     alargasse os três deixavam de partilhar a mesma margem — a logo ficaria
     encavalitada sobre a segunda coluna de cartões. Uma página é de acervo ou
     não é; não é de acervo só no meio. */
  .corpo-acervo .faixa {
    max-width: var(--medida-acervo);
  }

  .corpo-acervo .feed {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
    gap: 0.85rem;
    align-items: start;
  }

  /* A pilha vertical era feita de margens entre irmãos; numa grelha a margem
     do irmão desalinha a linha inteira, e quem dá o espaço é o `gap`. */
  .corpo-acervo .feed > * + * {
    margin-block-start: 0;
  }

  /* ==========================================================================
     A RÉGUA VERTICAL, APLICADA

     Os três valores estão declarados no `:root` no topo desta folha, com o
     raciocínio e as medidas de antes. Aqui é onde eles tocam a página.

     UMA REGRA PARA TODOS OS FILHOS DE `main`, E NÃO UMA POR COMPONENTE. É esta
     forma que resolve o defeito que o diretor apanhou, e não o par de cartões
     onde ele o viu: `margin-block: X 0` é uma abreviatura, e uma abreviatura
     REESCREVE as duas margens — a de cima E a de baixo. Ou seja, cada elemento
     que trazia a sua margem própria de nascença («eu, que fui escrito depois,
     dou-me 1,4rem por baixo») perde-a aqui e recebe a da régua. Não é uma
     margem a somar-se às outras; é a única.

     `main.faixa` e não `main`, e é aritmética de especificidade e não estilo:
     `.destaque-cidade` é (0,1,0) e ganharia a um `main >` de (0,0,1) — o cartão
     continuaria a trazer a margem dele e o defeito continuaria lá. (0,1,1)
     ganha a todas as regras de uma classe só, que são a esmagadora maioria.

     E O MAPA FICA DE FORA DE GRAÇA: o `main` do mapa é `.mapa-principal` e
     nunca teve `.faixa` — é a tela que não rola, e uma régua de leitura não
     tem nada que lhe dizer.
     ========================================================================== */
  main.faixa > * {
    margin-block: var(--ritmo-bloco) 0;
  }

  /* DOIS IRMÃOS DA MESMA NATUREZA ficam juntos. Dois cartões seguidos são uma
     pilha, e uma pilha com 2rem entre cada um deixa de se ler como pilha. */
  main.faixa > .cartao + .cartao,
  main.faixa > .secao-camada + .secao-camada,
  main.faixa > .album-folha + .album-folha,
  main.faixa > .kids-seccao + .kids-seccao,
  .sobre-pagina > .cartao + .cartao {
    margin-block-start: var(--ritmo);
  }

  /* O RÓTULO E O QUE ELE NOMEIA são uma peça só. O rótulo perde as margens que
     tinha (34,2px por cima e 14,4px por baixo, escritas quando ele era o único
     a decidir) e passa a receber a distância de cima da régua, como qualquer
     outro bloco; o que fica curto é só o vão até à lista que ele nomeia. */
  .secao-rotulo {
    margin-block: 0;
  }

  .secao-rotulo + * {
    margin-block-start: var(--ritmo-junto);
  }

  /* A LINHA QUE DIZ O QUE ISTO É, debaixo da marca na home. É a legenda da
     marca e não um bloco a seguir a ela. */
  main.faixa > .marca-linha {
    margin-block-start: var(--ritmo-junto);
  }

  /* A FICHA ABRE NO NOME, encostado ao alto da folha que sobe por cima da
     fotografia — esse encosto é o desenho da página e não uma margem esquecida.
     O resto da ficha segue a régua como todas as outras. */
  .ponto-corpo > :first-child {
    margin-block-start: 0;
  }

  /* O TECTO DA FOTOGRAFIA DE TOPO AFROUXA, e é o que deixa o 4/3 acontecer.

     A 1440×900 a coluna dá 612px de largura, e 4/3 pede 459px de altura; o tecto
     de 34vh dá 306 e continuaria a mandar, deixando a moldura em 2,0 — melhor
     que os 4,66 de antes, e ainda longe do 1,333 que a medição pede. 52vh dá 468
     e sai da frente, e a moldura fica exactamente em 4/3.

     52 e não mais: com a fotografia em 459px o botão de ouvir acaba a 777px de
     900, e continua acima da dobra. Em janelas mais baixas o tecto volta a
     ganhar e a moldura encurta em vez de empurrar o controlo para fora do ecrã —
     que é a lição de 44vh do telemóvel, aplicada onde ela também é verdade.

     E a ilustração temporária herda o mesmo tecto de graça, o que lhe faz bem:
     `max-height: 34vh` obrigava-a a caber em 306px numa moldura de 612 de
     largura, e com `contain` isso desenhava-a a 514px com quase 100px de loess
     de cada lado. Com 468 ela cabe inteira e sem bandas. */
  .ponto-foto img {
    max-block-size: 52vh;
  }

  /* O MESMO AFROUXO, PARA O 3/2 DA HISTÓRIA DA CRIANÇA. A 1440×900 a coluna dá
     612px e 3/2 pede 408px de altura — 45,3vh. O tecto de 34vh (clamp acima) dá
     só 306 e prendia a moldura em 2,0. 46vh dá 414 e sai da frente: com a
     fotografia em 408px o bloco de ouvir acaba a 769px de 900, acima da dobra —
     medido na página, não estimado. Em janelas mais baixas o tecto volta a
     ganhar, como no topo da ficha. */
  .kids-figura img {
    max-block-size: 46vh;
  }

  /* O parágrafo que explica o álbum é a legenda do título que está por cima
     dele, e a margem de 28,8px que ele trazia por baixo sai com a régua. Ele é
     um `.cartao`, e o que vem a seguir também — mas prosa e atalho não são a
     mesma natureza, e por isso o vão a seguir é o de blocos e não o de irmãos. */
  .corpo-acervo .album-explica {
    margin-block-start: var(--ritmo-junto);
    margin-block-end: 0;
  }

  /* `.cartao.album-explica` e não `.album-explica`: o par de irmãos acima é
     `.faixa > .cartao + .cartao`, três classes, e ganharia a duas. Empatadas,
     ganha a que vem depois — e a que vem depois tem de ser esta, que é a que
     sabe que ali muda a natureza do bloco. */
  main.faixa > .cartao.album-explica + * {
    margin-block-start: var(--ritmo-bloco);
  }

  /* Uma margem própria com mais especificidade do que a régua, escrita antes de
     ela existir. Fica igual às outras. */
  .kids-historia .ponto-ouvir {
    margin-block: var(--ritmo-bloco) 0;
  }

  /* ==========================================================================
     AS PÍLULAS DEIXAM DE DESLIZAR

     O diretor, 17 de agosto de 2026: «a fila de filtros do mapa corre de
     extremidade a extremidade, colada ao bordo esquerdo, cortando a última
     pílula, enquanto o resto da página tem margem».

     NO TELEMÓVEL A TIRA ESTÁ CERTA e não se toca nela: uma fila que desliza
     deve tocar o bordo, e a pílula meio cortada é a affordance inteira — é ela
     que diz que há mais e que aquilo se arrasta. A regra é a de sempre: só
     padrões que as pessoas já conhecem, e no dedo este é conhecido.

     NO DESKTOP NÃO HÁ DEDO. Medido a 1440px antes de mexer, nas duas páginas
     que têm pílulas: a tira ia de 0 a 1440 enquanto a coluna vai de 72 a 1368,
     `.filtros-lista` recebia 414px de calha de cada lado (a conta que a centra
     na medida de leitura, 34rem, e não na medida de acervo), a primeira pílula
     começava 322px dentro do início da coluna, e a última caía em x=−4406 no
     mapa e x=−1873 no álbum — fora do ecrã, sem nada que se possa arrastar com
     um rato. Três desalinhamentos com uma causa: a tira foi desenhada para uma
     largura que o desktop não tem.

     A CORREÇÃO É DEIXAR DE ROLAR. Elas passam a quebrar em linhas dentro da
     mesma coluna do resto da página: nada escondido atrás de um gesto que o
     rato não tem, e o início da primeira pílula na mesma vertical do título e
     dos cartões. É o que o desktop é neste produto — a vista de acervo, onde o
     que existe se vê todo de uma vez.

     RTL E LTR SAEM DE GRAÇA, e é por isso que não há uma linha de direção aqui:
     `flex-wrap` preenche a partir do início da leitura, e `padding-inline` e
     `margin-inline` são agnósticos. Confirmado nas seis línguas — a sangria era
     à esquerda em hebraico e árabe e à direita nas outras quatro, e some nas
     seis pela mesma regra.
     ========================================================================== */
  .filtros {
    width: 100%;
    max-width: var(--medida-acervo);
    margin-inline: auto;
    padding-inline: var(--calha);
    overflow-x: visible;
  }

  .filtros-lista {
    flex-wrap: wrap;
    width: auto;
    min-width: 0;
    padding-inline: 0;
    row-gap: 0.5rem;
  }

  /* A FILA DO MAPA JÁ NÃO EXISTE, e por isso não há aqui uma regra para ela.

     Havia, e era um remendo caro: a 1440×900 as 36 pílulas do mapa quebravam em
     três linhas e a tela do mapa caía de 706 para 472; a 1024px eram 352px de
     pílulas para 413px de mapa, que é mais filtro do que mapa. A regra
     recortava-as a três linhas com rolagem vertical. O diretor, a 17 de agosto
     de 2026, resolveu-a por baixo: «por favor remova os filtros da secção MAPA,
     não aguento mais conviver com estes filtros». O que restava aqui saiu com
     elas. O álbum, com 26 pílulas em três linhas e 176px, fica — a página dele
     rola, e o efeito de cada pílula vê-se no momento. */

  /* ---- UMA FILA SÓ ----

     Até 16 de agosto de 2026 a navegação subia para uma barra própria, fixa
     no topo, e o cabeçalho (marca, partilha, idioma) ficava por baixo dela —
     duas filas a dividir a altura que o desktop existe para dar à vista de
     acervo. O diretor mandou o ecrã: «duas linhas, deve haver uma só, com a
     logo ao lado direito e o seletor de idiomas do lado esquerdo».

     A correção não é só CSS: `navegacao()`, em scripts/gerar-site.mjs, passou
     a ser chamada DENTRO de `<header>`, entre a marca e o canto do idioma —
     nas doze páginas que a levam — e já não como uma barra à parte no fim do
     corpo. É essa mudança de DOM que torna a fila única possível sem truque
     de posicionamento: os três blocos (marca, navegação, canto) são agora
     irmãos dentro do mesmo `display: flex`, e cada um ocupa o que lhe cabe.

     NO TELEMÓVEL NADA MUDA: `.navegacao` continua `position: fixed` sempre
     que a folha está abaixo desta careira (ver a regra de base, e a doca de
     768–1023px mais acima) — posição fixa sai do fluxo do pai onde estiver,
     e nenhuma das regras abaixo tem efeito abaixo de 64rem.

     A ORDEM É A DO DIRETOR, em propriedades lógicas: a marca fica no INÍCIO
     da leitura (direita em hebraico e árabe, esquerda nas outras quatro
     línguas), o canto do idioma no FIM, e a navegação — que cresce para
     preencher o que sobra — fica entre os dois. Nenhuma regra de direção
     está escrita aqui: `flex` já lê `dir` sozinho.

     A LARGURA DO CABEÇALHO NÃO É A DA LEITURA. `.barra` e `.topo` também
     levam `.faixa`, que prende a ficha aos 34rem de sempre (a medida de
     leitura não muda — é a primeira das três decisões deste bloco) — mas os
     seis destinos da navegação não cabem numa coluna pensada para prosa.
     O cabeçalho pede a medida larga em TODA a página, tenha ela ou não
     `.corpo-acervo`: sem isto a ficha, o "sobre", o quiz, a memória e a
     página de apoiadores ficavam com a fila espremida em 34rem enquanto o
     resto do desktop já usa 72rem — medido a 1024px, onde os seis rótulos
     em hebraico colidiam uns com os outros. */
  .barra,
  .topo {
    max-width: var(--medida-acervo);
  }

  /* ---- UMA ALTURA, UM DESENHO, E FICA NO TOPO ----

     17 de agosto de 2026. O diretor: «cada página que entro o site dá um pulo,
     header se comporta diferente no design em cada página». Medidas as doze
     páginas a 1440px antes de mexer, a fila do cabeçalho era três peças
     diferentes com três comportamentos:

       · `.barra`       — ficha, אודות, בולים, ילדים, história, חידון, זיכרון,
                          mapa. 68px, com traço em baixo. No mapa 62px, porque
                          é a única sem seta de voltar e era a seta que lhe dava
                          a altura.
       · `.topo-marca`  — כל המקומות, חיפוש, תומכים. 68px, SEM traço, e com
                          25,2px de `.topo` por cima a empurrar a página inteira
                          para baixo só nestas três.
       · `.home-marca`  — a home. O mesmo, mais a logo alinhada por outro eixo.

     Agora é uma medida só, e ela é declarada: `--cabecalho`. A fila mede-a por
     `min-height` em vez de a somar de padding com o que calhar estar lá dentro
     — foi assim que a do mapa saiu 6px mais baixa do que as outras onze, e uma
     altura que depende do conteúdo volta a divergir no dia em que alguém tirar
     um botão. O traço em baixo é o mesmo nas doze: um cabeçalho colado ao topo
     precisa de dizer onde acaba, ou o texto passa-lhe por baixo sem fronteira.

     E COLA. Um cabeçalho que sobe com a rolagem obriga a voltar ao topo para
     mudar de página, e numa ficha longa isso são vários ecrãs. Ele não come
     altura de leitura: são 67,5px de 900, e o que ganha é a navegação inteira
     sempre à mão — que é a razão de ela ter subido para aqui em 16 de agosto.
     O mapa fica de fora por `position: static` na sua própria regra, e com
     razão: a página do mapa não rola.

     QUEM COLA É O `<header>`, e não a fila dentro dele. `position: sticky`
     cola-se dentro da caixa do PAI, e enquanto o pai era um `<header>` que
     também levava o título e a fotografia de abertura, a fila colava-se durante
     os 500px do pai e desaparecia com ele. Medido a 1440px com a página rolada
     900px: a home ia a −397, a lista a −850, os selos a −833. É por isso que
     esta correção não é só de folha: o título e o campo de busca saíram do
     `<header>` para dentro do `<main>` no gerador, e o cabeçalho passou a ser
     o que o nome dele diz — a fila e nada mais. */
  .barra,
  .topo {
    position: sticky;
    inset-block-start: 0;
    z-index: 15;
    min-height: var(--cabecalho);
    padding-block: 0;
    background-color: var(--fundo);
    border-block-end: 1px solid var(--borda);
  }

  /* `.topo` é um bloco com uma fila dentro; `.barra` já É a fila. Os 25,2px de
     `padding-block-start` que só as quatro páginas de `.topo` tinham saem com o
     `padding-block: 0` acima — a distância do cabeçalho ao primeiro elemento
     passa a ser uma medida da régua e não uma sobra do cabeçalho. */
  .topo {
    display: flex;
    align-items: center;
  }

  /* A fila enche a largura do cabeçalho e centra o que leva dentro. Sem
     `min-height` própria: quem manda na altura é o `--cabecalho` do pai, e duas
     alturas declaradas discordam no dia em que uma delas mudar. */
  .topo-marca,
  .home-marca {
    flex: 1;
    min-width: 0;
    align-items: center;
    flex-wrap: nowrap;
    margin-block-end: 0;
  }

  .barra {
    align-items: center;
    flex-wrap: nowrap;
  }

  /* O mapa não rola, e por isso não cola — mas o traço em baixo é o mesmo, que
     é o que separa a fila da tira de camadas logo abaixo dela. */
  .mapa-topo .barra {
    border-block-end: 1px solid var(--borda);
  }

  /* A logo da home é alta (12em) e antes alinhava-se pelo topo sozinha; numa
     fila com navegação ao lado o que se quer é o centro dos três, como em
     todas as outras páginas. */
  .home-marca {
    align-items: center;
  }

  /* ---- A MARCA DA HOME PASSA A SER A MARCA DE TODAS ----

     16 de agosto de 2026. A fila única de ontem entrou em doze páginas, e a
     home ficou de fora do resultado sem ficar de fora do código: o `<nav>`
     mudou de sítio nela como nas outras, mas a marca dela é outra peça —
     `.marca-titulo img`, a logo grande de `min(12em, 62%)` — e é ela que
     manda na altura da linha. Medido a 1440px antes de mexer: a home tinha a
     logo a 186px e a fila a 69,4px de altura, enquanto o `אודות`, a busca e o
     acervo tinham 118,8px e 49,5px. Uma linha, sim, mas uma linha diferente
     das outras cinco — e é isso que a captura do diretor mostra.

     E ela leva no mesmo movimento a outra coisa que ele pediu: «a logo poderia
     ser menor, uns 70% do tamanho atual». As duas correções caem no mesmo
     número, e isso não é coincidência — 6,6rem são 118,8px, que é 64% dos
     186px de antes. Encolher a marca da home ATÉ à marca das outras páginas é
     ao mesmo tempo juntá-la e reduzi-la, e deixa UMA medida de logo no
     produto inteiro em vez de duas.

     `rem` e não `em`: o `<h1>` que a envolve tem `font-size: 2rem`, e por isso
     `6.6em` aqui dariam 237px — o dobro do que se quer. A folha de `.barra-marca`
     usa `em` porque lá o contexto é o corpo do texto; aqui o contexto é um
     título, e a medida tem de ser a da página e não a dele.

     NO TELEMÓVEL NADA DISTO EXISTE: está dentro da careira de 64rem, e abaixo
     dela a home continua com a logo de `min(12em, 62%)`, que a 375px dá os
     135px de sempre. O `width`/`height` do HTML também não é tocado — é a
     medida que sobra quando esta folha não chega, e já foi precisa uma vez. */
  .home-marca .marca-titulo img {
    width: 6.6rem;
  }

  /* O mapa é a tela que não rola (ver `.mapa-com-mapa body.corpo-mapa` mais
     acima); a regra dela já fixa `position: static` com especificidade maior
     do que esta, e por isso não precisa de reafirmação aqui — mas o resto do
     bloco (marca no início, navegação ao meio, idioma no fim) aplica-se-lhe
     na mesma. */

  /* Os dois cantos NUNCA cedem espaço — quem cede é a navegação entre eles
     (ver `.navegacao` abaixo). Testado a 1024 e a 1280px nas seis línguas:
     `Печати`, `Поиск` e `Buscar` são as etiquetas mais largas desde que o sexto
     destino passou de `Supporters` a `About` (16 de agosto de 2026), e são
     elas que ditam o `min-width: 0` da navegação, nunca a marca ou o idioma. */
  .barra-voltar,
  .barra-casa,
  .marca-titulo,
  .barra-canto {
    flex: none;
  }

  .navegacao {
    position: static;
    inset: auto;
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    padding-block-end: 0;
    background-color: transparent;
  }

  .navegacao-lista {
    max-width: none;
    margin-inline: 0;
    padding-inline: 0;
    justify-content: center;
  }

  /* Seis ícones esticados por 1440px ficariam a um palmo uns dos outros; a
     fila fica compacta ao centro e cada destino mede só o que precisa. */
  .navegacao-lista > li {
    flex: 0 1 auto;
    min-width: 0;
  }

  .navegacao-item {
    flex-direction: row;
    gap: 0.4rem;
    min-height: 2.75rem;
    padding-inline: 0.7rem;
    font-size: 0.82rem;
  }

  .navegacao-item[aria-current="page"]::before {
    inset-block: 0.3rem;
    inset-inline: 0;
  }

  /* A partir de 80rem sobra largura a mais para continuar comprimida — a
     fila de navegação respira ao mesmo ritmo da marca e do idioma. Medido:
     a 1024px seis rótulos em inglês (a língua mais larga, com `Supporters`)
     ainda cabem com a compressão de cima; a 1280px já sobra espaço para os
     valores de sempre. */
  @media (min-width: 80rem) {
    .navegacao-item {
      gap: 0.5rem;
      padding-inline: 1rem;
      font-size: 0.86rem;
    }
  }

  /* A navegação já não é uma barra à parte, e o corpo não precisa mais de
     reservar espaço próprio para ela — o cabeçalho, colado ao topo, ocupa o
     seu próprio lugar no fluxo normal do documento. */
  body {
    padding-block-end: 2.5rem;
  }

  /* ---- O MAPA: mapa e lista lado a lado ----
     A lista por distância deixa de ser o que substitui o mapa e passa a ser o
     que o acompanha — que é a vista de acervo do mapa, e é o que já servia em
     baixo no telemóvel. Sem mapa (sem script, sem rede, sem WebGL) nada disto
     se aplica: a página continua a ser a lista inteira, como sempre foi. */
  .mapa-com-mapa .mapa-principal {
    flex-direction: row;
    gap: var(--calha);
  }

  .mapa-com-mapa .mapa-lista {
    display: block;
    flex: 0 0 23rem;
    min-height: 0;
    overflow-y: auto;
    padding-block: 0.6rem 1.5rem;
  }

  .mapa-com-mapa .mapa-area {
    flex: 1;
    min-width: 0;
  }

  /* A folha continua a abrir sobre o mapa, e agora encosta ao fundo: já não há
     barra nenhuma em baixo para lhe dar lugar. */
  .mapa-com-mapa .folha {
    inset-block-end: 0;
  }

  /* ---- A FICHA ----
     A coluna de texto NÃO alarga (ver a decisão 1 no topo do bloco). O que
     muda é a galeria: uma fila que rola na horizontal é um gesto de dedo, e
     com um rato ela esconde fotografias atrás de uma interação que ninguém
     espera. Passa a mostrar tudo de uma vez, na mesma moldura e no mesmo
     tamanho — respirar em vez de rolar. */
  .galeria-fila {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    overflow-x: visible;
  }

  .galeria-fila figure {
    flex: none;
  }

  /* A regra da medida de leitura não deixa de valer dentro de uma página de
     acervo: o parágrafo que explica o álbum é prosa, e prosa a 72rem não se
     lê. Fica na medida de sempre, encostado ao início da leitura — que é onde
     está o título por cima dele, e a primeira coluna da grelha por baixo. */
  .corpo-acervo .album-explica {
    max-width: var(--medida);
    margin-inline-end: auto;
  }

  /* ---- As duas fotografias de topo da home são FAIXAS, não pósteres ----
     Com a coluna a 34rem, `aspect-ratio: 21/9` dava 148px de altura; a 72rem
     dá 494px, e a pergunta «איפה אתה עכשיו?» com os três verbos debaixo dela
     saía do ecrã — a home deixava de ser uma pergunta e passava a ser um
     cartaz. A altura passa a ser dita, e o recorte continua a ser `cover`: a
     fotografia manda na tela sem tomar a tela toda. */
  .corpo-acervo .home-faixa img {
    aspect-ratio: auto;
    height: 19rem;
  }

  /* A fachada da cidade é a irmã da faixa acima e mede como ela: a 1296px de
     coluna, 19rem dá 3,79 de proporção, e a fotografia real (1,5) sobrevive a
     41% em vez dos 21% que a moldura de 15rem dava sobre um quadrado ampliado.
     `aspect-ratio: auto` porque aqui a altura é dita, como na faixa. */
  .corpo-acervo .destaque-cidade img {
    aspect-ratio: auto;
    max-block-size: none;
    height: 19rem;
  }

  /* ==========================================================================
     ילדים: O CARROSSEL DEIXA DE SER UM CARROSSEL

     O diretor, 17 de agosto de 2026: «o carrossel das crianças não funciona no
     desktop. Foi desenhado para o dedo; com rato não há como avançar». Está
     certo, e a medida confirma-o: a faixa «מקומות» tem 15 cartões e 5836px de
     largura numa caixa de 1296 — vêem-se três, e os outros doze não têm como
     ser alcançados sem um gesto que o rato não faz.

     ELE VIRA GRELHA, E NÃO GANHA SETAS. As duas respostas eram legítimas; esta
     é a que este produto já sabe dar, por quatro razões e nenhuma é de gosto:

       1 · A afordância do carrossel É a espreitadela — meio cartão de cada lado
           a dizer «arrasta-me». É uma frase dita ao dedo. Num ecrã de rato ela
           não é insuficiente: é uma promessa numa língua que o aparelho não
           fala. Setas seriam uma segunda gramática para a mesma fila.
       2 · O desktop deste produto está definido, e não por mim: «a vista de
           acervo — pesquisa, mapa, leitura longa» (CLAUDE.md). Ver o que existe
           é o que ele é para. Uma grelha mostra as quinze; um carrossel com
           setas mostra três de cada vez, e mais devagar.
       3 · Setas são JavaScript e um controlo novo em cada faixa — sete filas,
           catorze botões, estados de fim de curso. A grelha é uma declaração e
           degrada para uma coluna quando não há folha nenhuma.
       4 · É o MESMO desenho que o resto do desktop já usa. `auto-fill` com
           `minmax(20rem, 1fr)` é a grelha de `.feed`, na home, na lista e na
           busca. Não é um padrão novo: é este, aplicado onde faltava.

     NO TELEMÓVEL FICA EXACTAMENTE COMO ESTÁ. Tudo isto vive dentro da careira
     de 64rem, e abaixo dela o carrossel é o de sempre — os 78% de largura, a
     espreitadela dos dois lados e o `scroll-snap`, que no dedo é o certo.

     O `.quiz-fila` usa a mesma classe e NÃO entra aqui: `חידון` não tem
     `.corpo-acervo` no corpo, e não tem por ser um baralho — uma pergunta de
     cada vez, virada pelo script. Uma grelha ali mostraria as respostas todas.
     ========================================================================== */
  .corpo-acervo .kids-carrossel {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
    gap: 0.85rem;
    margin-inline: 0;
    padding-inline: 0;
    padding-block-end: 0;
    overflow-x: visible;
    scroll-snap-type: none;
  }
}

/* ---------------------------------------------------------------------------
   O árabe pede entrelinha, e só entrelinha

   MEDIDO a 375px nas fichas longas, com esta mesma folha e o mesmo corpo de
   letra. Numa `.ponto-texto p` a tinta de uma linha hebraica tem 18,4px de
   altura e deixa 13,8px de branco até à linha seguinte; a mesma frase em árabe
   tem 26,1px de tinta e deixa 6,0px. Na lista de fontes deixa −1,4px, que não
   é apertado: é colisão — a descendente de ج a aterrar no ا da linha de baixo.

   A razão está na escrita e não na folha. O árabe desce muito abaixo da linha
   de base e sobe muito acima da altura-de-x; a mesma razão de entrelinha compra
   metade do espaço óptico. Nada mais muda — o corpo, a medida, a cor e a
   DIREÇÃO são os do hebraico, porque o árabe é RTL como ele e o espelho já
   estava feito. Não foi preciso uma única regra de direção para o árabe, e isso
   é o que este bloco não faz.

   UM NÚMERO, somado à razão que cada regra de texto corrido já declara. Uma
   segunda escala tipográfica seria a correção errada e uma correção maior:
   mudaria o tamanho da letra, e o tamanho está certo — é a altura da linha que
   não estava. 0,45 é a diferença medida: devolve ao parágrafo árabe os mesmos
   ~14px de branco que o hebraico tem.
   --------------------------------------------------------------------------- */
:root:lang(ar) {
  --folga-ar: 0.45;
}

:root:lang(ar) body           { line-height: calc(1.5 + var(--folga-ar)); }
:root:lang(ar) .ponto-texto p { line-height: calc(1.75 + var(--folga-ar)); }
:root:lang(ar) .ponto-linha   { line-height: calc(1.5 + var(--folga-ar)); }
:root:lang(ar) .cartao-linha  { line-height: calc(1.45 + var(--folga-ar)); }
:root:lang(ar) .album-explica { line-height: calc(1.62 + var(--folga-ar)); }
:root:lang(ar) .verso-glosa   { line-height: calc(1.7 + var(--folga-ar)); }

:root:lang(ar) .kids-texto    { line-height: calc(1.68 + var(--folga-ar)); }
:root:lang(ar) .sobre-bloco p { line-height: calc(1.75 + var(--folga-ar)); }

:root:lang(ar) .kids-lembrar-texto { line-height: calc(1.45 + var(--folga-ar)); }

/* ---- A MARCA EM TEXTO, enquanto não houver logo ----

   O diretor, 17 de agosto de 2026: «ainda não fiz a logo, use texto no lugar
   por enquanto». O gerador escolhe entre `<img>` e `<span>` conforme exista
   `arte/Logo.svg` — ver `MARCA_GRAFICA` em scripts/gerar-site.mjs —, e este
   bloco existe para o segundo caso.

   ELE VEM DEPOIS DE `.barra-marca` DE PROPÓSITO. Aquela regra dá `width: 6.6em`
   à marca da barra, que é a medida de uma imagem e não a de uma palavra; as
   duas têm a mesma especificidade, e por isso quem ganha é quem vem por
   último. Escrito antes, a marca de texto sairia esticada numa caixa de 6,6em.

   O TAMANHO NÃO ESTÁ AQUI: está no atributo `style` do próprio elemento, posto
   pelo gerador a partir do mesmo par de medidas que a imagem levaria. É a
   regra 4 da lei da entrega — o que degrada tem de degradar para algo
   utilizável —, e uma declaração em linha é o único sítio onde nenhuma folha
   em falta lhe toca. */
.marca-texto {
  display: block;
  width: auto;
  height: auto;
  font-family: var(--fonte-verso);
  font-weight: 700;
  line-height: 1.08;
  color: var(--tinta);
  white-space: nowrap;
}

/* ---- OS VECTORES DA MARCA — 18 de agosto de 2026 ----

   Chegaram seis do diretor. Quatro estao no produto e dois nao, e as ausencias
   sao decisao e nao esquecimento — estao escritas no fim deste bloco.

   Todos entram INLINE, com `width`/`height` no HTML. Regra 4 da lei da entrega:
   sem medida no HTML um `svg` colapsa para 4 px no dia em que esta folha nao
   chegar, e foi exactamente esse o dia que custou uma manha ao diretor no
   projeto irmao. As regras daqui refinam o tamanho; nenhuma delas o cria. */

.marca-vetor {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
}

/* A marca do cabecalho: em `em`, para acompanhar quem aumenta a letra do
   telemovel — e nao em pixeis, que ignorariam essa escolha. */
.barra-marca { block-size: 1.85em; }
.marca-titulo .marca-vetor { inline-size: min(13em, 66%); }

/* ---- O FIM DA PAGINA ----

   Pedido do diretor: o horizonte centrado a fechar cada pagina, «como fim».
   Na home e na pagina do projeto e' a marca completa, que e' o mesmo horizonte
   com o nome por baixo.

   `text-align: center` e nao margens automaticas: e' a unica centragem que nao
   tem lado, e esta folha e' RTL por omissao. */
.fim-da-pagina {
  margin: 0 0 1.1rem;
  text-align: center;
  line-height: 0;
}

/* O desenho dos dois grandes esta no fim desta folha, como mascara sem cor
   (scripts/mascaras.mjs). Aqui fica so' a caixa: a largura, o recuo e o centro.
   `margin-inline: auto` e nao `left/right` — esta folha e' RTL por omissao. */
/* O horizonte e' mascara e nao tem medida propria; a marca completa e' um `svg`
   inline e ja traz `width`/`height` do HTML. As duas partilham a caixa. */
.fim-horizonte,
.fim-marca {
  max-inline-size: min(100%, 22rem);
  margin-inline: auto;
  inline-size: auto;
  block-size: auto;
  /* Um pouco recuado: e' pontuacao, nao ilustracao. Nunca ao ponto de o
     confundir com desenho desligado — 0.85 le-se ao sol. */
  opacity: 0.85;
}

/* ---- O REMATE DO VERSO DE ABERTURA ----

   O divisor — regua, estrela, regua — fecha o versiculo da home e separa-o do
   resto da pagina. E' o unico sitio onde ele aparece: o verso e' a primeira
   coisa que alguem le neste acervo, e o que o remata nao se repete a seguir sem
   deixar de ser um remate. */
.verso-abertura-remate {
  margin: -0.2rem 0 var(--ritmo-bloco);
  text-align: center;
  line-height: 0;
}

.remate-divisor {
  display: inline-block;
  width: auto;
  height: auto;
  max-width: min(60%, 11rem);
  opacity: 0.9;
}

/* ---- O SINAL DOS VERSOS, na ficha ----

   A estrela sozinha, 22 px, a abrir o cartao do pasuk. Nesta serra o versiculo
   e' o chao do acervo, e este e' o unico bloco cerimonial da pagina — um sinal
   aqui diz alguma coisa. Posto tambem noutros sitios, diria so' que existe um
   ficheiro de ornamentos. */
.versos-sinal {
  margin: 0 0 0.7rem;
  text-align: center;
  line-height: 0;
}

.sinal-estrela {
  display: inline-block;
  width: auto;
  height: auto;
}

/* O CIRCULO nao entrou, e a razao fica escrita para nao se reabrir por
   distraccao: ele le-se como um alvo — anel com nucleo cheio —, e a unica coisa
   deste produto que quer dizer «aqui, este ponto» e' o pino do mapa e o selo.
   Nos dois ele seria decoracao com forma de controlo, que e' a maneira mais
   cara de enganar alguem com pressa. Fica em `arte/circulo.svg`, a espera de um
   lugar onde a forma queira dizer o que parece.

   A ESTRELA dentro do divisor e' a mesma estrela do ornamento; nao ha versao
   segunda a manter. */

/* Movimento nenhum em nenhum deles: sao desenho parado, e uma pagina que se
   mexe ao sol e' uma pagina que se le pior. */

/* ---- O VERSO DE ABERTURA ----

   Pedido do diretor, 17 de agosto de 2026: a home abre com um verso em
   hebraico sobre a região, em tipografia rebuscada e em destaque. O texto vem
   de dados/sobre.json; sem ele não há bloco nenhum.

   TRÊS DECISÕES, e todas são de leitura e não de gosto:

   · A ENTRELINHA É LARGA porque o texto leva nikud. Os pontos vivem por baixo
     da letra, e a 1.4 eles encostam na linha seguinte — o verso fica legível
     como desenho e ilegível como texto, que é o pior dos dois mundos.
   · NÃO HÁ CAIXA, nem moldura, nem barra lateral. O destaque é o tamanho e a
     letra, como em todo o resto do produto; uma citação emoldurada num acervo
     é a única coisa da página que se parece com um cartaz.
   · A REFERÊNCIA É PEQUENA E É EM TERRA ROSSA, o mesmo tratamento das legendas
     e dos rótulos de secção. Ela não compete com o verso — mas está lá, porque
     um versículo sem referência é uma frase sem fonte. */
.verso-abertura {
  margin-block: 0.9rem var(--ritmo-bloco);
}

.verso-abertura-texto {
  font-family: var(--fonte-verso);
  font-size: 1.5rem;
  /* 400 e nao 500: a Keter YG tem corpo e negrito desenhados, e mais nada. Um
     peso intermedio obrigava o navegador a sintetizar — e a sintese engorda os
     teamim ate eles colidirem com as letras, que e' o defeito que esta troca
     veio corrigir. */
  font-weight: 400;
  line-height: 1.85;
  color: var(--tinta-verso);
  text-wrap: balance;
}

/* A tradução, quando existe e quando a página não é a hebraica. Corpo normal:
   ela serve o verso e não o substitui. */
.verso-abertura-gloss {
  margin-block-start: 0.55rem;
  font-size: 0.98rem;
  line-height: 1.5;
  opacity: 0.82;
}

.verso-abertura-ref {
  margin-block-start: 0.55rem;
  font-size: 0.82rem;
  letter-spacing: 0.03em;
  color: var(--acento-texto);
}

@media (min-width: 40rem) {
  .verso-abertura-texto { font-size: 1.75rem; }
}

/* A marca grande partilha a tinta do verso — e só ela.

   O nome e o versículo são as duas primeiras coisas da home e agora leem-se
   como uma peça: mesma serif, mesma tinta azul-preta. É o que dá ao produto a
   identidade laranja-e-azul que o diretor pediu, sem uma única caixa colorida.

   A marca PEQUENA, na barra de cima das páginas de dentro, fica em tinta: ali
   ela é orientação e não identidade, e a poucos centímetros do azul do
   separador activo duas coisas azuis competiriam. */
.marca-titulo .marca-texto {
  color: var(--tinta-verso);
}

/* >>> mascaras: gerado por scripts/mascaras.mjs — nao editar a mao <<< */

.fim-horizonte {
  display: block;
  inline-size: 100%;
  aspect-ratio: 476.16 / 92.8;
  position: relative;
}

.fim-horizonte::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: var(--marca-tinta);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 476.16 92.8' fill='%23000'%3E%3Cpath d='M97.2,15.48c.83-2.85,3.16-4.97,5.7-6.34.87,2.59.2,5.56-1.52,7.66-1.22,1.53-3.11,2.35-4.28,3.93-2.27,2.97-3.96,6.35-5.21,9.87-1.54,4.4-1.05,9.42,1.14,13.52,1.1,2.12,2.62,4.02,3.41,6.29-.48-.1-.96-.21-1.43-.32-1.67-2.8-3.7-5.46-4.65-8.62-.77-2.45-.86-5.07-.66-7.62.14-1.21-.5-2.31-.76-3.46-4.07-1.14-6-5.85-5.13-9.75,2.34.97,4.48,2.69,5.41,5.11.86,1.77.04,3.83.97,5.58.51-1.85,1.26-3.62,2.07-5.35.46-.89.29-1.92.36-2.89-1.47-1.05-2.69-2.5-3.15-4.27-.61-1.93-.2-4,.39-5.88,2.07.95,3.52,2.97,4.04,5.15.39,1.62-.06,3.26-.19,4.89.95-1.17,1.78-2.43,2.63-3.67.86-1.09.48-2.55.85-3.81ZM98.18,18.01c2.27-1.53,3.83-4.02,3.89-6.79-2.22,1.56-3.83,4.03-3.89,6.79ZM90.65,15.08c-.38,2.3.2,4.77,1.97,6.36.53-2.31-.13-4.81-1.97-6.36ZM85,22.72c.14,1.3.24,2.68.96,3.82.57,1.01,1.52,1.72,2.46,2.36-.11-1.15-.2-2.35-.75-3.39-.59-1.18-1.64-2.01-2.67-2.79Z'/%3E%3Cpath d='M247.78,19.2c-3.75-2.03-8.42-2.11-12.32-.44-3.85,1.63-6.97,5.05-8.04,9.11-.88,3.04-.63,6.38.68,9.26,1.58,3.63,4.83,6.42,8.55,7.69,1.89.57,3.89.57,5.85.52.6-.03.89-.06,1.74-.2,4.71-1.26,8.73-5,10.05-9.73,1.99-6.03-.9-13.24-6.51-16.22ZM251.14,38.75c-1.69,2.31-4.15,4.13-6.95,4.82-5.87,1.65-12.66-1.53-14.95-7.22-1.32-3.15-1.24-6.85.23-9.94,1.54-3.45,4.78-6.01,8.41-6.96,3.17-.81,6.69-.46,9.53,1.22,2.31,1.34,4.12,3.49,5.16,5.94,1.58,3.94,1.07,8.69-1.43,12.14Z'/%3E%3Cpath d='M459.37,79.61c-3.9-.06-7.81.17-11.68-.39-7.1-.94-13.69-4.05-19.78-7.68-6.26-3.69-12.17-7.93-18.42-11.63-3.89-2.24-8.08-4.34-12.65-4.57-4.62-.24-9.03,1.39-13.29,2.93-3.59,1.24-7.17,2.54-10.86,3.47-.58-.37-1.16-.72-1.76-1.06.15-1.67-.33-3.46-1.66-4.56-1.15-1.08-2.79-1.29-4.3-1.24-.5-7.01-.94-14.02-1.27-21.04-.05-1.01-.06-2.16-.82-2.93-1.32-1.36-3.24-2.05-5.11-2.12-1.24-.55-2.59-.67-3.92-.83-1.23-.69-2.53-1.4-4-1.19-1.27-.06-2.21.85-3.17,1.52-2.55.37-5.31.19-7.61,1.52-.92.5-1.26,1.57-1.29,2.55-.63,7.58-1.37,15.15-2.16,22.71-5.28-.01-10.55.02-15.83-.02-1.13-.03-2.42.08-3.22.99-1.54,1.65-.44,4.22-1.76,6-1.04-.05-2.07.01-3.1-.11-1.04-.3-1.87-1.19-3.01-1.19-1.93-.06-3.87-.13-5.79.03-1.44.11-2.57,1.44-2.61,2.86-.19,1.32.18,2.93-.86,3.97-1.25.99-2.99.77-4.44.49-11.43-2.81-21.57-9.02-32.55-13.05-.18-1.69-.04-4.08-1.95-4.84-1.55-.38-3.16-.14-4.74-.19-.27-.93-.48-2.15-1.53-2.5-1.4-.34-2.87-.24-4.3-.19-.89-.02-1.34.79-1.64,1.49-.87-1.41-2.59-1.23-4.04-1.22-.51.07-1.06.22-1.41.31-.22.05-.37.24-.4.46-.04.44-.08.88-.12,1.32-.08.72-.03,1.16-.4,1.45-1.05.83-2.51.44-3.74.64.08-1.42.42-3.46-1.22-4.12-1.37-.28-2.8-.18-4.19-.06-1.27.11-1.74,1.41-2.01,2.46-1.39.05-2.83-.2-4.17.23-1.71.82-1.42,3.05-1.62,4.63-6.15,2.12-12.06,4.89-18.29,6.8.71-.9,1.4-1.89,1.5-3.07.31-2.97-.3-5.93-.79-8.84-.25-1.13-.35-2.31-.84-3.38-.5-.62-.85.37-1.03.72-.87,2.66-1.24,5.46-1.58,8.23-.17,1.85-.22,3.97,1.09,5.45.16.32.86.84.36,1.16-2.19.77-4.51,1.06-6.8,1.4.04-.77-.12-1.64.48-2.25,1.34-1.62,1.39-3.82,1.32-5.81-.16-3.62-.56-7.22-1.19-10.78-.21-1.15-.37-2.35-.9-3.41-.96-.09-1.07.99-1.29,1.68-.7,3.17-1.09,6.41-1.4,9.65-.14,2.26-.5,4.59.09,6.83.2,1,.99,1.69,1.55,2.5.09.58.1,1.18.14,1.77-2.96.14-6.04.58-8.91-.41.68-1.12,1.56-2.19,1.72-3.53.4-2.74-.01-5.52-.36-8.25-.35-2.19-.64-4.41-1.4-6.5-.43.23-.92.47-1.02,1-.71,2.45-1.04,4.99-1.41,7.51-.24,2.19-.66,4.45-.1,6.63.27,1.11,1.09,1.95,1.72,2.86-2.33-.48-4.51-1.45-6.71-2.32-6.21-2.62-12.18-5.73-18.32-8.5-.18-1.94.33-4.08-.63-5.86-1.39-1.77-3.92-.83-5.84-1.02-.16-.94-.27-2.16-1.3-2.56-1.24-.32-2.54-.15-3.81-.18-.06-1.16-.25-2.68-1.6-3.01-1.74-.27-3.51-.06-5.26-.11-1.07.05-2.33-.15-3.17.68-.7.64-.73,1.64-.9,2.51-1.45.05-2.93-.16-4.35.17-1.03.34-1.21,1.5-1.37,2.42-1.56.06-3.28-.39-4.7.4-1.44.92-1.31,2.82-1.4,4.32-7.89,2.4-15.15,6.39-22.45,10.14-4.65,2.44-9.33,4.8-13.95,7.29-1.63-1.97-1.85-4.88-.56-7.08,1.31-2.5,4.41-3.26,5.85-5.65,1.61-2.62.7-6.05,2.48-8.6,1.63-2.38,4.03-4.47,6.93-5.02.84-.19,1.48.48,2.14.87-1.27,2.1-1.38,5.17.58,6.89.63.5,1.81,1.26,2.43.39,2-2.17,1.36-6.46-1.72-7.26-.34-.58-.73-1.13-1.15-1.66,2.64-.22,5.45.14,7.88-1.14.94-.53,2.04-.26,3.06-.4,3.21-.29,6.08-2.58,7.2-5.58-2.67-.46-5.58-.01-7.73,1.69-1.04.77-1.68,1.93-2.57,2.84-1.59,1.11-3.62,1.1-5.48,1.14-1.77,0-3.45.6-5.16.98.9-1.07,1.88-2.06,2.89-3.02.87-.91,2.17-1.07,3.3-1.5,1.59.24,3.45.28,4.67-.96.7-.72,1.6-1.67,1.38-2.74-2.59-1.4-5.68.61-6.65,3.07-.39.12-.77.24-1.16.37,1.54-2.2,2.72-5.04,5.5-5.93,1.29.01,2.58.32,3.87.08,2.67-.38,4.83-2.36,6.01-4.71-2.88-.88-6.29-.47-8.58,1.6-1.48,1.44-3.27,2.47-4.82,3.81.26-1.32.37-2.67.68-3.98.69-1.07,1.53-2.09,1.85-3.36.73-2.4.2-4.99-.87-7.2-2.05,1.81-3.65,4.41-3.52,7.22-.02,1.24.48,2.4,1.04,3.49-.08,1.46.03,2.97-.43,4.39-.77,2.48-2.27,4.68-4.08,6.52-.34-1.79,1.24-3.02,1.42-4.7.35-2.38-.66-4.73-2.04-6.62-1.79,2.2-3.03,5.34-1.84,8.11.41,1.15,1.75,2.15,1.09,3.46-1.48,3.54-5.62,4.89-7.38,8.26-1.45,2.23-1.39,4.95-1.98,7.45-.62,2.2-2.92,3.06-4.49,4.44-2.45,1.99-3.6,5.53-2.52,8.54.56,1.76,1.82,3.2,3.34,4.21,2.03,1.38,3.47,3.4,5.21,5.1,1.15,1.13,2.62,1.78,4.05,2.47-2.48-.26-5.29-.78-6.85-2.95-1.35-1.86-2.62-4.26-5.08-4.76-2.27-.43-3.76,1.68-5.74,2.31.42-.92.91-1.81,1.13-2.8.63-2.53-1.14-5.05-.17-7.55.95-3.36,4.94-4.36,6.25-7.48.93-2.12.39-4.72-1.14-6.41-1.64-1.95-4.13-2.76-6.45-3.57-1.93-.64-2.97-2.48-4.39-3.79-1.81-2.53-1.9-5.84-1.62-8.82,0-3.16-2.28-5.82-4.8-7.46-.81,1.98-.86,4.27-.05,6.26.6,1.7,1.95,2.94,3.27,4.09.17,1.96.55,3.92,1.49,5.68-1.52-1.03-2.98-2.14-4.39-3.33-.29-1.43-.89-2.82-1.99-3.82-1.55-1.54-3.79-1.98-5.9-2.07.24,2.26,1.54,4.38,3.44,5.62.93.62,2.06.74,3.1,1.07.87.44,1.61,1.1,2.4,1.68.01.1.04.31.06.41-1.68-.7-3.4-1.49-5.26-1.43-2.3-.01-4.45,1.12-6.04,2.73,1.97,1.27,4.4,2.12,6.74,1.53,1.4-.32,2.52-1.27,3.54-2.23,1.24.04,2.47.21,3.64.62-1.71,1.35-4.14,2.11-4.98,4.29-.67,1.67-.48,3.8,1,4.98,1.85-.53,3.46-1.95,3.91-3.87.42-1.29.06-2.63-.27-3.89.54-.25,1.07-.51,1.61-.76,1.33,1.46,2.81,2.85,4.62,3.69,1.79.84,3.86,1.16,5.38,2.51,1.7,1.37,2.67,3.85,1.7,5.92-1.09,2.33-3.84,3.14-5.21,5.27-1.52,2.09-1.7,4.84-1.01,7.27.63,2.05-.25,4.1-1.45,5.73-3.38-.42-6.47-1.95-9.78-2.67-3.46-.9-7.12-1.06-10.62-.25-5.84,1.33-10.93,4.65-16.41,6.92-3.22,1.39-6.61,2.39-10.07,2.97-4.87.79-9.82.31-14.73.52-.87-.06-.87,1.57.06,1.37,11.47.02,22.93.04,34.4,0,6.94.02,13.91-.98,20.45-3.34,2.63-.98,5.19-2.27,7.28-4.18,1.37-.15,2.8-.33,3.94-1.17.94-.63,2.01-1.6,3.22-1.07,2.07,1.01,2.86,3.37,4.51,4.85,2.37,2.25,5.77,3.01,8.96,2.81,4-.09,7.71-1.72,11.49-2.84,2.6-.8,5.44-.9,8.07-.12,2.24.68,4.28,1.83,6.38,2.85,2.42,1.18,4.94,2.13,7.54,2.83,8.7,2.42,17.83,1.35,26.72,1.11,7.75-.48,15.53-.61,23.29-.08,9.36.42,18.66,1.49,28.01,2.11,7.85.31,15.72.37,23.57-.03,3.03-.29,6.19-.35,9.05-1.51.07-.31.21-.94.28-1.25-4.55,1.06-9.22,1.41-13.87,1.61.44-.51,1.16-.98,1.07-1.75-.47-1.05-1.44-1.73-2.28-2.47-4.04-3.23-8.56-5.85-13.34-7.83-6.23-2.77-12.85-4.62-19.58-5.71-.64-.15-1.69-.19-1.32-1.13,5.1-.69,10.1-2.04,14.88-3.97,6.88-2.75,13.78-5.65,21.11-6.99,6.34-1.34,12.95-1.07,19.25.35,7.59,1.54,14.62,4.89,21.6,8.11,6.08,2.88,12.35,5.4,18.81,7.28-1.71.03-3.44-.24-5.13.01-1.43.28-2.16,1.65-2.58,2.91-1.13-.24-2.31-.27-3.35.29-.81-.05-1.52.19-2.02.84-1.01.18-2.16.25-2.9,1.06-1.29,1.2-.61,3.32-1.9,4.52-.63.95-1.8,1.04-2.82,1.22-.25-1.01-.36-2.06-.77-3.02-.48-.94-1.6-1.43-2.63-1.29-1.63.15-3.24.46-4.86.61-.61-1.43-.97-3.31-2.71-3.78-2.34-.57-4.81-.12-7.2-.21-.29-1.15-.42-2.54-1.53-3.23-1.58-1.18-3.65-.92-5.5-.85-.31-1.04-.62-2.21-1.63-2.78-1.76-1.02-3.9-.52-5.78-.99-1.68-1.26-3.87-1.19-5.84-.82-2.2-1.42-5.16-1.19-7.35.13-2.91-.38-5.9-1.04-8.83-.49-1.29.17-1.92,1.44-2.88,2.07-3.43-.35-6.86-.76-10.31-.86.01.32.04.96.05,1.27,12.26.65,24.6,3.5,35.3,9.69,2.96,1.81,5.98,3.62,8.46,6.09.38-.39,1.17-.91.48-1.43-3.89-3.33-8.34-5.99-12.95-8.21,4.81.76,9.52,2.11,14.07,3.83,4.54,1.87,9.13,3.71,13.38,6.19-6.61,2.14-13.17,4.56-20.03,5.81-2.45.47-4.94.17-7.39-.02-.58-.15-.66.65-.98.95,4.36,1.48,9.03.68,13.36-.49,7.38-1.93,14.49-4.79,22-6.23,9.06-1.77,18.31-2.57,27.24-4.96,4.11-1,8.08-2.48,12.22-3.4,3.2-.71,6.43-1.31,9.69-1.72,4.5-.58,9.09-.38,13.56-1.31,2.19-.28,4.41-1.16,6.63-.62.11,1.84,1.75,3.05,3.45,3.32,2.95.66,5.7-.89,8.47-1.65,2.58-.74,5.34-.49,7.87.34,5.87,1.8,10.89,5.75,16.96,6.99,3.91.85,7.9.04,11.84-.11,5.02-.24,10.05.05,15.07-.04,1.7-.01,3.19-.88,4.7-1.55,1.18-.53,2.64-.25,3.51.72,1.93,2.04,4.83,2.78,7.57,2.74,12.78.01,25.57.01,38.35,0,.9.14.56-.89.52-1.42ZM109.7,42.88c.69.57,1.49,1.15,1.73,2.06.34,1.08-.07,2.19-.44,3.2-1.95-.97-2.29-3.48-1.29-5.26ZM124.97,34.06c-1.47,2.16-4.03,3.34-6.61,3.35,1.6-2.01,4.01-3.31,6.61-3.35ZM117.09,32.17c-.8,1.52-2.5,1.97-4.1,1.99,1-1.24,2.45-2.1,4.1-1.99ZM123.81,25.27c-1.63,1.88-4.09,2.87-6.57,2.5,1.59-1.94,4.12-2.73,6.57-2.5ZM113.65,17.67c.95,2.31.33,5.03-1.22,6.95-.96-2.35-.4-5.03,1.22-6.95ZM106.47,27.87c1.23,1.9,1.18,4.34.06,6.27-1.53-1.81-1.13-4.34-.06-6.27ZM76.58,32.91c-1.99-1.52-2.93-4.01-2.72-6.47,1.97,1.51,3.17,3.97,2.72,6.47ZM67.33,32.49c2.19.28,4,1.77,4.8,3.8-2.24-.13-4.06-1.73-4.8-3.8ZM65.61,40.91c1.87-1.32,4.25-1.57,6.41-.9-1.63,1.83-4.31,1.72-6.41.9ZM73.52,48.93c-.21-1.07-.41-2.25.1-3.27.42-1.04,1.38-1.67,2.23-2.32.46,2.14-.22,4.6-2.32,5.59ZM69.53,78.02c-5.34,1.27-10.83,1.63-16.3,1.59-4.45-.03-8.89.05-13.33-.03,7.15-1.56,13.23-5.9,20.08-8.26,3.36-1.1,6.98-1.54,10.47-.86,3.59.61,6.95,2.07,10.46,2.97-3.38,2.41-7.41,3.58-11.38,4.59ZM196.75,55.34c.21-3.48.59-6.97,1.28-10.39.48,3.46.93,6.93,1.1,10.42.03,1.39,0,2.84-.55,4.14-.19.36-.31.95-.85.73-1.19-1.33-1.01-3.25-.99-4.91ZM187.04,57.49c.11-2.91.59-5.79,1.08-8.66.48,3.21,1.11,6.46.96,9.72-.17.91-.13,2.18-1.1,2.66-.94-.99-.97-2.44-.95-3.72ZM160.33,46.44c.51.05.86.55.92,1.04.13,1.32.04,2.65.08,3.97-1.69-.66-3.4-1.28-5.11-1.89,0-1.05-.01-2.09-.04-3.14,1.38-.05,2.77-.17,4.15.03ZM154.1,43.67c.46-.02.74.51.76.92.11,1.53.01,3.07.03,4.6-1.82-.54-3.67-.95-5.54-1.25-.04-1.44-.04-2.89-.05-4.33,1.6.04,3.2-.02,4.8.06ZM141.51,41.73c-.01-.85.91-1.22,1.63-1.16,1.92-.01,3.84-.11,5.76.05.97.08.84,1.24.97,1.93h-.42c-.24-.68-.59-1.72-1.53-1.23.01.77.05,5.17.06,6.39-.8-.06-1.59-.13-2.38-.19-.13-.85.15-1.99-.73-2.51-1.36-.13-1.21,1.53-1.26,2.42-.72,0-1.43,0-2.15,0,.04-1.9-.07-3.81.05-5.7ZM135.82,44.11c1.21-.9,2.97-.22,4.39-.42.01,1.29,0,2.59-.01,3.88-1.5.11-2.99.29-4.48.52.04-1.33-.1-2.66.1-3.98ZM130.3,46.39c1.3-.37,2.69-.09,4.03-.11,0,.68.02,1.36.04,2.04-1.59.41-3.18.78-4.77,1.16.15-1.02-.22-2.36.7-3.09ZM160.26,81.36c-2.62.46-5.32.24-7.98.43,1.12-1.26.32-3.25,1.37-4.43,2.38-.55,4.92-.11,7.36-.06.18,1.37.16,2.94-.75,4.06ZM162.81,73.36c1.92-.06,3.89-.08,5.79.26.36,1.14.27,3.48-1.44,3.28-1.81.05-3.62-.1-5.42.05-1.69-.81-.6-3.54,1.07-3.58ZM171.28,80.96c-3.25.16-6.5.25-9.74.43.37-1.14-.05-2.75.95-3.58,1.91-.16,3.82.12,5.74.09,1,.08,2.04-.08,3,.25.23.92.09,1.88.05,2.82ZM177.32,73.88c.03,1.08,0,2.16-.09,3.24-2.58.02-5.18.08-7.75-.18-.08-1.11,0-2.23.15-3.33,2.56-.08,5.13.06,7.69.27ZM170.84,72.75c.35-.88.66-2.01,1.7-2.29,1.44-.35,2.99-.21,4.42.14.11.72.04,1.49-.27,2.16-1.92.35-3.91-.04-5.85-.01ZM180.74,80.91c-2.96-.03-5.93,0-8.89.05.12-.95-.04-2,.44-2.86,2.73-.27,5.59-.57,8.3.01.29.9.17,1.86.15,2.79ZM186.98,74.34c.09.53.18,1.07.29,1.6.14-.52.26-1.04.4-1.56,4.4.05,8.8-.06,13.2-.08,1.83.13,1.57,2.52,1.13,3.75-1.1.22-2.23-.02-3.34-.07-2.85-.32-5.72-.24-8.58-.27-2.39-.01-4.77-.35-7.16-.25-1.69.08-3.39-.07-5.08-.2.03-1.09.11-2.18.3-3.25,2.95-.29,5.92-.3,8.83.32ZM184.47,70.81c2.29-.29,4.6-.04,6.88.16,1.32.09,2.86.76,2.75,2.33-3.21-.03-6.43.12-9.63-.23-.04-.76-.04-1.51,0-2.26ZM191.33,81.43c-3.31-.25-6.64-.24-9.94-.56-.07-.94-.23-1.95.18-2.84,1.64-.18,3.28.17,4.92.13,1.5.09,3.06-.14,4.51.28.61.84.25,2.01.33,2.99ZM192,81.44c-.06-1.05-.14-2.1-.3-3.13,3.72.04,7.47.15,11.15.78.18,1.07.27,2.15.3,3.24-3.72-.34-7.44-.58-11.15-.89ZM203.28,75.28c1.63-.01,3.39-.03,4.88.71,1.01.53.88,1.79.99,2.75-2.01-.04-4.02-.19-6.03-.29.01-1.05-.24-2.17.16-3.17ZM203.73,82.38c-.18-1.11-.29-2.23-.36-3.35,1.87.06,3.77.13,5.61.5.44,1.06.39,2.28.66,3.4-1.97-.2-3.94-.39-5.91-.56ZM210.52,82.96c-.84-.91-.53-2.28-.54-3.4,1.81.19,3.81.06,5.42,1.04.58.8.51,1.91.83,2.83-1.9-.17-3.84-.13-5.72-.47ZM201.92,67.56c7.11,1.25,13.98,3.63,20.5,6.7,4.26,2.09,8.41,4.58,11.8,7.93-.74.62-1.58,1.2-2.59,1.24-3.79.31-7.61.16-11.4-.04-.9-.1-1.94-.08-2.64-.74-.68-.95-.52-2.37-1.53-3.1-1.62-1.13-3.72-.98-5.59-1.19-.15-1.36-.52-2.89-1.82-3.6-1.77-.94-3.85-.82-5.79-.92-.6-.4-1.22-.87-1.97-.85-1.74-.09-3.48,0-5.22-.03-.28-1.17-.94-2.31-2.13-2.72-2.46-.95-5.17-.84-7.76-.92-1.31-.08-2.45.64-3.4,1.46.32.05.95.16,1.27.22-.04.62-.06,1.25-.14,1.87-1.99.22-4.01.03-6.02.13.03-.71.07-1.41.11-2.11.94-.15,2.04-.03,2.75-.79-.55-.96-1.64-.94-2.58-.73-1.86-.35-3.81-.56-5.67-.12-1.4.37-2.04,1.76-2.47,3.01-2.5-.16-5.06-.6-7.54-.09-1.71.43-2.33,2.2-2.69,3.72-2.04.07-4.22-.52-6.16.28-1.48.74-1.37,2.53-1.5,3.93-.07,1.21-1.48,1.61-2.49,1.62-5.44.05-10.9-.91-15.98-2.86-3.14-1.17-5.96-3.06-9.16-4.1-2.44-.83-5.1-.91-7.62-.46-2.87.55-5.53,1.85-8.39,2.41-2.81.43-5.72-.32-8.14-1.74-1.64-.94-2.7-2.57-3.95-3.94-.91-1.02-1.97-1.86-3.07-2.66,2.71-1.59,5.56-2.91,8.32-4.4,7.72-3.93,15.27-8.27,23.38-11.37,6.15-2.29,12.67-3.76,19.26-3.72,7.85.18,15.35,2.95,22.33,6.36,6.95,3.22,13.74,6.9,21.12,9.1.16.92.16,1.94.76,2.71.44.59,1.26.52,1.9.71-.62-.94-1.11-1.97-1.33-3.09,4.44.9,8.81,2.12,13.27,2.91ZM205.97,60.3c-.5-.71-.79-1.56-.79-2.43-.08-2.69.54-5.32.88-7.98.49,2.49.93,5.02.96,7.56-.1.98-.12,2.24-1.05,2.84ZM230.82,53.27c-.32.1-.96.32-1.28.42-.18-.16-.36-.33-.53-.49.1-.38.21-.76.32-1.14-.38-.04-.76-.09-1.13-.13.1.6-.44,1.75.77,1.52-.06.12-.18.37-.24.49-.82.14-1.61.36-2.4.58.18-1.1-.15-2.58.95-3.28,1.18-.2,2.39-.07,3.58-.1-.01.71-.02,1.41-.03,2.12ZM237,52.02c-1.64.29-3.27.59-4.88.99,0-1.13-.09-2.27.04-3.39.06-.47.46-.92.96-.89,1.2-.06,2.43-.16,3.61.09.58.97.27,2.15.28,3.21ZM242.92,51.5c.06-.87-.18-1.83.26-2.62,1.7-.25,3.64-.16,4.89,1.18,0,.57,0,1.13,0,1.7-1.72-.11-3.44-.23-5.16-.25ZM249.29,51.94c.11-1.11-.29-2.56.68-3.36,1.44-.29,2.96-.21,4.39.14.19,1.37.18,2.75.18,4.12-1.74-.37-3.49-.7-5.26-.91ZM255.84,53.03c0-.62,0-1.23.01-1.84,1.49.06,3.03-.21,4.5.13.98.76.7,2.18.87,3.26-1.78-.56-3.56-1.13-5.39-1.55ZM241.51,66.27c1.56.13,3.2.05,4.68.64.95.4,1.07,1.52,1.32,2.39-2-.19-4.02-.4-5.94-1.02-.34-.63-.13-1.35-.06-2.02ZM235.43,65.24c1.52-.24,3.19-.38,4.59.35.91.52.66,1.72.76,2.59-1.79-.23-3.66-.25-5.35-.93-.15-.66-.05-1.34,0-2.01ZM228.76,65.05c1.24-.88,2.87-.83,4.31-.59.57.13,1.23.27,1.61.76.21.7.23,1.44.34,2.16-2.1-.3-4.22-.47-6.31-.88-.63-.28-.37-1.1.04-1.45ZM224.66,65.07c1.07.04,2.14.09,3.21.16.02.47.04.93.07,1.4-1.11.04-2.23.04-3.33,0,.01-.39.04-1.18.06-1.57ZM224.17,64.98c.07.54.12,1.09.15,1.63-2.15-.03-4.31-.18-6.42-.62,1.57-1.79,4.19-1.24,6.27-1.01ZM236.74,71c-1.55-.13-3.07-.51-4.53-1.05-.06-.54.03-1.12-.27-1.6-.75-.24-.22.99-.41,1.36-2.6-1.14-5.44-1.58-8.06-2.64,2.87-.17,5.72.4,8.55.8,1.95.22,3.96.22,5.82.95.85,0,1.69.05,2.54.12.05.78.08,1.56.19,2.34.27-.68.29-1.42.34-2.14.87.14,1.75.29,2.62.45.07.88.13,1.77.18,2.65-2.32-.41-4.59-1.14-6.96-1.22ZM244.25,72.35c-.12-.94-.23-1.87-.37-2.81,1.18.13,2.38.13,3.53.43.35,1.07.39,2.2.51,3.31-1.22-.32-2.44-.64-3.67-.93ZM253.35,70.53c.91.52.77,1.7,1.01,2.57-1.87-.07-3.74-.13-5.6-.27-.23-.97-.43-1.94-.65-2.91,1.74.03,3.68-.38,5.24.6ZM248.33,73.39c2.06-.16,4.13.03,6.19.25.16.83.29,1.67.43,2.52-2.16-1.02-4.6-1.48-6.62-2.76ZM256.63,76.58c-.62-.73-.64-1.75-.87-2.63,2.2.06,4.44-.24,6.62.14,1.3.34,1.43,1.85,1.82,2.91-1.32,0-2.64.03-3.95.07-.28-1-.18-2.14-.83-3-.02,1.02.1,2.05.28,3.06-1.02-.09-2.27.28-3.06-.55ZM265.89,82.14c-.23-.5-.33-1.15-.91-1.37-1.78-.95-3.65-1.75-5.44-2.68,3.23-.19,6.49-.08,9.7-.64.86-.06,2.01-.45,2.62.4.42.89.41,1.91.57,2.86-2.21.34-4.38.86-6.54,1.43ZM363.51,53.99c-1.68-.26-3.37-.46-5.06-.55-.02-1.22-.13-2.45-.6-3.58,1.8.26,3.62.45,5.42.73.08,1.13.16,2.26.24,3.4ZM357.57,33.16c.2.03.61.09.81.11.01-1.06.01-2.11.03-3.17,1.36.46,2.99.85,3.79,2.17.25,1.38.15,2.8.23,4.2-1.68-.52-3.37-.98-5.07-1.39.09-.64.15-1.28.22-1.92ZM337.53,50.29c3.25-.29,6.5-.63,9.76-.87,0-.09.01-.28.01-.37-3.26.18-6.51.51-9.75.93.13-1.39.28-2.77.43-4.16,1.7-.23,3.41-.47,5.13-.57.42-.04.76.12,1.04.46.38,1.05-.04,2.17-.1,3.25.75-1.07.62-2.38.49-3.61l.1-.16c2.1-.27,4.22-.42,6.34-.32,1.02.04,2.07.24,3.07-.06-3.02-.66-6.12-.24-9.16-.08-2.31.03-4.58.46-6.87.75.15-1.58.26-3.17.41-4.75,1.01-.16,2.06-.21,3.01-.64-.99-.01-1.97.1-2.94.25.08-1.38.18-2.75.35-4.12.52-.22,1.06-.43,1.57-.69-.52.07-1.03.15-1.54.24.12-1.36.11-2.73.35-4.07.05-.57.63-.8,1.09-1,2.19-.84,4.57-.82,6.87-1.11.77-.5,1.38-1.33,2.34-1.44,1.4-.35,2.78.28,3.81,1.2,1.04.07,2.14.02,3.11.46.62.26.43,1,.51,1.53.02,1.26.17,2.52.33,3.78-2.88-.66-5.84-.85-8.78-.81.01.1.03.29.04.38,3.79-.18,7.54.54,11.23,1.33-.05.93-.09,1.86-.03,2.79.09,0,.27-.01.35-.02.03-.9-.06-1.79-.19-2.68.81.22,1.64.4,2.43.72.38,1.3.21,2.69.35,4.03-.76-.09-1.51-.19-2.26-.19.72.34,1.5.49,2.28.66.11,1.51.2,3.02.26,4.53-.9-.09-1.78-.19-2.67-.29v.34c.87.13,1.76.25,2.66.37.1,1.29.19,2.59.31,3.89-3.34-.6-6.72-.83-10.09-1.06-1.63-.08-3.26-.19-4.88.01.67.22,1.36.33,2.06.4.55.26,1.1.53,1.66.81-.22-.24-.66-.72-.89-.95,2.19.09,4.36.35,6.55.48.14,1.02.2,2.06.6,3.03-.19.16-.38.33-.57.49-6.87-.53-13.77-.08-20.59.83.12-1.3.26-2.61.41-3.91ZM337.07,54.5c3.54-.39,7.09-.66,10.65-.85,3.34-.21,6.69.09,10.03.17,1.95.17,3.93.16,5.85.62.16,1.28-1.34,1.75-1.97,2.66-1.09-.7-2.33-.58-3.43.03-1.14-.84-2.52-1.47-3.96-1.24-1.61.13-2.86,1.19-4.03,2.17-1.54.32-3.17.3-4.72,0-.12.08-.36.24-.48.32-.42.02-1.26.05-1.69.07.03-.05.06-.1.09-.15-.05.05-.11.11-.17.16-1.52.38-3.11.35-4.64.7,1.13.12,2.27.01,3.4-.08-.62,1.13-.72,2.4-.89,3.65.09,0,.27.02.35.03.13-1.3.24-2.66,1.02-3.76,2.33-.37,4.69-.39,7.05-.47-.75,1-1.16,2.19-1.35,3.41-1.66-.09-3.4-.27-4.97.38-.88.33-1.55,1.02-2.34,1.51-1.65.2-3.33.26-4.91.81.38-3.38.73-6.77,1.1-10.15ZM329.64,56.45c1.93-.05,3.86-.09,5.8-.07-.15,1.41-.32,2.82-.45,4.23-2.17.51-4.38.05-6.56-.06.4-.29.81-.57,1.22-.84-.02-1.09-.01-2.17-.01-3.26ZM317.03,58.17c.01-.89.74-1.75,1.67-1.7,3.49-.05,6.99-.09,10.48-.02.04,1.04.06,2.09.05,3.14-.29.29-.58.58-.85.88-3.74.34-7.49-.09-11.24.08.38.18.76.43,1.21.39,2.1.03,4.21-.07,6.31.1-.49.34-.98.66-1.46.99-.09.94-.17,1.87-.1,2.81.32-.94.47-1.91.66-2.88.6-.28,1.18-.62,1.8-.86,3.08-.5,6.15.4,9.23.05.04,1.36-.11,2.71-.27,4.05-1.54-.01-3.08-.06-4.62-.08.03-.94.06-1.87.02-2.81-.38.88-.35,1.86-.4,2.8-3.46,0-6.92.08-10.37-.15-.5-1.3-1.56-2.22-2.91-2.53.73-1.31.71-2.82.8-4.27ZM314.06,63.88c.42-.94,1.66-.33,2.39-.15,1.06.32,1.24,1.46,1.37,2.39-1.22.03-2.43.03-3.65,0-.02-.75-.25-1.52-.11-2.25ZM289.44,70.89c1.51-.41,3.09,0,4.63,0-.2,1.07-.49,2.12-.77,3.17-1.81.14-3.61.05-5.41-.01.19-1.15.25-2.71,1.56-3.16ZM283.32,78.82c-1.8.32-3.6.59-5.39.9.7-1.16.83-2.53,1.23-3.79.6-1.09,2.03-.97,3.1-1.11.19-.35.39-.7.6-1.04.25.06.75.19,1,.26.89-.63,1.94-.52,2.93-.2-.21.53-.29,1.14-.63,1.61-.63.45-1.41.67-1.99,1.2-.54.59-.64,1.42-.85,2.16ZM290.49,77.65c-1.97.35-3.93.74-5.93.91.39-.93,1.2-1.5,2.05-1.98.79-.4.99-1.32,1.34-2.06,1.54-.03,3.1-.04,4.64.08-.61.54-1.35.81-2.14.55.71.75.3,1.66.04,2.51ZM302.12,74.99c-1.52.4-3.05.78-4.57,1.19-.01-.33-.05-1-.06-1.34-.22.5-.41,1.01-.6,1.53-1.89.46-3.8.85-5.71,1.19.06-.59.12-1.19.18-1.78.54-.39,1.07-.8,1.58-1.23,2.51-.05,5.03-.02,7.54-.05.55.02,1.16-.07,1.66.25,0,.06-.01.18-.02.24ZM327.74,70.2c-6.4.22-12.75,1.25-18.96,2.76-.03-.7-.06-1.39-.09-2.07-.67.59-.6,1.5-.71,2.31-1.67.44-3.3,1.09-5,1.4-.06-.1-.18-.3-.24-.4-3.02-.05-6.04,0-9.07-.12.38-1.07.8-2.14,1.13-3.23,4.93-.03,9.86.03,14.78-.1.32-1.11.59-2.26.44-3.43-.32.96-.39,1.97-.47,2.97-1.34.07-2.74.14-3.98-.46l.24.5c-.43.01-1.3.04-1.73.06,1.05-.6.98-1.74.8-2.76-.34.92-.11,2.28-1.26,2.64-2.56.18-5.16.19-7.71-.06,1.41-.81,3.36-.3,4.52-1.66,1.31-1.2,1.12-3.06,1.22-4.67,0-.92.72-1.78,1.68-1.79,1.55-.11,3.11-.04,4.67-.02,1.08-.06,1.94.67,2.89,1.06.9.44,1.93.23,2.9.24-.12.95-.22,1.9-.3,2.85-2.05.04-4.1-.02-6.15.05.8-1.02.88-2.36.52-3.57-.24,1.18-.14,2.47-.81,3.52-1.82.03-3.64-.02-5.46-.06.33.46.85.57,1.39.53,3.35,0,6.7-.05,10.04.22,3.09.42,6.19-.18,9.29-.07-.1-.45-.2-.9-.29-1.35,3.84-.02,7.68.04,11.52,0-2.2,1.16-5.07,2-5.79,4.71ZM379.11,78.02c-4.86-.7-9.1-3.35-13.46-5.43-3.48-1.57-7.27-2.94-11.15-2.42-2.29.24-4.38,1.26-6.58,1.85-1.59.4-3.44.4-4.83-.56-.79-.97-.9-2.77-2.47-2.81-3.86-.12-7.58,1.27-11.42,1.45.54-.89,1.3-1.63,2.28-2.01,3.15-1.33,6.35-3.08,9.9-2.64.85-.75,1.69-1.59,2.82-1.9,1.61-.53,3.32-.03,4.96-.28.69-1.2.41-2.92,1.63-3.82,1.26-.92,2.42-2.38,4.15-2.23,1.27-.08,2.2.87,3.04,1.69.72-.38,1.42-1.16,2.3-.9.56.33,1.09.71,1.65,1.04.66-.96,1.3-2.07,2.45-2.5,1.88-.82,4.41.15,5.04,2.16.34.94.01,1.92-.26,2.82,1.13.23,2.46.57,2.95,1.76.52.96-.1,1.95-.45,2.84,1.1-.09,2.14.22,2.97.96,1.18-1.45,3.54-1.97,4.98-.6,1.24,1.19.68,3.04.39,4.5,1.12.17,2.49.18,3.2,1.23.63.8.08,1.83.08,2.73,1.55-.02,3.16-.26,4.65.34,1.9.73,3.93,1.28,5.63,2.46-4.81-.47-9.62.83-14.43.27ZM402.94,77.76c-2.09-.1-4.22.17-6.27-.35-1.78-.67-3.46-1.57-5.24-2.24.21-.19.43-.38.65-.57-.16-1.52-.13-3.52,1.51-4.24,1.29-.68,2.49.38,3.68.78.38-1.06.62-2.36,1.72-2.94,1.59-.99,3.91.06,4.33,1.86.34,1.11-.09,2.25-.53,3.27.1.18.29.53.39.71,1.17-.05,2.53-.34,3.53.47.78.55.87,1.56,1.1,2.42-1.52.72-3.21.93-4.87.84ZM420.87,79.6c-1.97-.01-4.05-.2-5.75-1.28-1.11-.69-1.88-1.93-3.21-2.24-.93-.3-1.9-.08-2.81.1-.36-1.02-.7-2.16-1.63-2.81-.81-.63-1.87-.68-2.84-.78.25-1.45.23-3.06-.67-4.29-1.18-1.74-3.71-2.35-5.54-1.3-.91.46-1.45,1.35-1.94,2.2-1.63-.68-3.69-.46-4.81,1-.98,1.04-.9,2.53-1.06,3.84-.22.11-.66.34-.87.46-1.51-.65-3.12-1.06-4.77-1.01,0-1.93-1.53-3.31-3.33-3.66.13-1.18.21-2.47-.44-3.52-1.15-2.01-4.01-2.56-5.96-1.43-.5.19-.97.68-1.52.43-.09-.77-.09-1.56-.11-2.33,5.18-1.33,10.11-3.43,15.21-5.01,3.52-1.03,7.33-1.74,10.95-.78,4.03.99,7.67,3.08,11.19,5.22,10.09,6.2,19.65,13.76,31.16,17.18-7.08.01-14.15.04-21.22.01Z'/%3E%3Cpath d='M345.05,57.72c-.19-.14-.56-.42-.75-.56.06-.96.27-1.9.78-2.72-1.27.75-.73,2.4-1.4,3.51.36-.35.81-.43,1.36-.24Z'/%3E%3Cpath d='M99.43,20.97c1.65-1.07,3.73-1.25,5.63-.94.05.1.15.32.2.42-.9,2.12-2.71,3.87-4.92,4.56-1.56.48-3.18,0-4.77.17,1.29-1.39,2.2-3.19,3.86-4.21ZM97.97,24.11c2.13-.08,4.17-1.06,5.34-2.88-2.17-.05-4.14,1.1-5.34,2.88Z'/%3E%3Cpath d='M95.4,29.42c1.49-1.59,3.8-2.03,5.89-1.76-.42,2.43-2.11,4.57-4.47,5.37,1.25.18,2.48.58,3.49,1.37.22-.29.44-.58.64-.89-.26-.39-.57-.75-.83-1.13.87-.67,2.29.34,2.05,1.42.03.89-.89,1.12-1.58,1.28.35,1.19.43,2.75-.72,3.53-1.52,1.1-3.77.06-4.21-1.68-.34-1.05.27-2.06.71-2.98-.77.14-1.62.1-2.29.56-.86.62-1.54,1.44-2.38,2.08.01-1.56,1.03-2.8,2.27-3.62.11-1.3.43-2.65,1.44-3.54ZM95.14,32.24c1.92-.51,3.68-1.64,4.62-3.44-2.09.08-4,1.4-4.62,3.44ZM97.74,34.4c-.34.61-.88,1.21-.76,1.97,0,.86.9,1.51,1.73,1.36.8-.27,1.02-1.37.63-2.05-.25-.69-1.01-.93-1.59-1.28Z'/%3E%3Cpath d='M81.28,31c2.22.62,4.51,1.7,5.7,3.78.81,1.26.92,2.79.96,4.25.22.12.67.37.89.49-2-.06-4.05-.67-5.44-2.19-1.73-1.61-2.22-4.06-2.11-6.33ZM86.82,38.04c-.28-1.1-.56-2.26-1.3-3.16-.75-.96-1.87-1.52-2.92-2.1.15,2.47,1.96,4.44,4.21,5.26Z'/%3E%3Cpath d='M342.61,35.67c.04-1.02.81-2.12,1.89-2.19.97-.12,1.74.85,1.75,1.75.06,1.57.05,3.15-.05,4.73-1.21.33-2.48.27-3.72.4.06-1.57.04-3.13.13-4.69ZM343.96,35.01c-.43,1.38-.2,2.87-.29,4.3.46-.06.93-.13,1.4-.19-.03-1.45.26-2.92-.04-4.35-.39-.15-.91-.26-1.07.24Z'/%3E%3Cpath d='M351.85,39.04c.65-1.25.65-2.67,1.02-4.01-.02,1.49.06,2.97.52,4.4.52.13,1.05.28,1.57.44-2.32-.11-4.69-.05-6.97-.51,1.28-.11,2.58-.04,3.85-.32ZM352.31,38.43c-.52.46-.02,1.42.63,1,.33-.35-.14-1.55-.63-1Z'/%3E%3Cpath d='M355.8,40.67c.09-.72.59-1.34,1.25-1.63,1.01-.18,1.7.91,1.94,1.76.2,1.66.11,3.35.13,5.02-1.16-.14-2.31-.28-3.47-.42.06-1.58-.04-3.16.15-4.73ZM357.12,40.32c-.53,1.31-.19,2.77-.25,4.14.36.03.73.05,1.1.08-.03-1.05,0-2.09-.05-3.13-.05-.49-.14-1.2-.8-1.09Z'/%3E%3Cpath d='M114.31,40.44c4.01-1.15,8.12,2.93,7.55,6.95-2.06-.09-4.21-.82-5.55-2.45-1.1-1.26-1.67-2.88-2-4.49ZM115.86,41.33c.54,2.32,2.39,4.09,4.7,4.63-.48-2.33-2.31-4.26-4.7-4.63Z'/%3E%3Cpath d='M142.6,41.81c.47.02.94.05,1.4.09-.05.52-.08,1.04-.2,1.54-.39.09-.8.12-1.2.1-.01-.58-.01-1.16,0-1.73Z'/%3E%3Cpath d='M145.13,43.66c.08-.64-.47-1.96.58-1.88.83-.17.8,1.1.63,1.64-.3.06-.91.18-1.21.24Z'/%3E%3Cpath d='M137.52,46.23c.13-.61-.25-1.6.59-1.76,1.01-.01.59,1.16.73,1.81-.44-.01-.89-.03-1.32-.05Z'/%3E%3Cpath d='M151.53,44.72c.38-.28.77-.3,1.18-.06.09.58.08,1.17.1,1.76-.47-.03-.94-.05-1.4-.08.03-.54.03-1.08.13-1.61Z'/%3E%3Cpath d='M131.18,48.63c.16-.64-.04-1.61.87-1.7.53.33.5.96.33,1.48-.3.05-.9.16-1.2.21Z'/%3E%3Cpath d='M158.17,48.9c-.42-.63-.3-1.94.73-1.77.71.24.41,1.11.55,1.68-.43.05-.86.08-1.28.09Z'/%3E%3Cpath d='M251.26,49.42c.38.03.76.06,1.14.1,0,.53,0,1.06,0,1.59-.41-.06-.81-.12-1.21-.18.03-.51.05-1.01.09-1.51Z'/%3E%3Cpath d='M233.89,49.66c.41,0,.82,0,1.24,0-.02.51-.03,1.03-.05,1.54-.39,0-.77,0-1.15,0-.02-.52-.03-1.04-.03-1.56Z'/%3E%3Cpath d='M244.81,49.5c.27.07.8.22,1.07.29.05.43.07.86.06,1.3-.3.05-.91.14-1.21.18.02-.59.05-1.19.09-1.77Z'/%3E%3Cpath d='M257.74,52.02c.42-.04.85-.08,1.29-.11.03.54.05,1.09.08,1.63-.37-.03-.73-.08-1.1-.13-.1-.46-.19-.92-.27-1.38Z'/%3E%3Cpath d='M322.09,56.51c.47,1.16.52,2.61-.19,3.68.09-1.23.09-2.46.19-3.68Z'/%3E%3Cpath d='M196.36,75.14c.48.22.42,1.64-.1,1.84-.28-.56-.18-1.3.1-1.84Z'/%3E%3Cpath d='M470.45,79.18c1.38-.35,1.93,1.96.53,2.23-1.5.51-2.04-2.04-.53-2.23Z'/%3E%3Cpath d='M8.48,79.4c.86-.7,2.32.39,1.75,1.35-.31.82-1.29.55-1.96.55-.1-.63-.48-1.47.21-1.9Z'/%3E%3Cpath d='M12.5,79.5c.55-.62,1.85-.3,1.95.57.36,1.1-1.3,1.8-1.97.98-.47-.38-.39-1.16.03-1.55Z'/%3E%3Cpath d='M16.46,79.5c1.02-1.08,2.77.64,1.63,1.63-1.03,1.02-2.76-.63-1.63-1.63Z'/%3E%3Cpath d='M461.75,79.36c.88-.67,2.25.48,1.72,1.43-.33.9-1.82.84-2.13-.05-.27-.45-.04-1.15.41-1.39Z'/%3E%3Cpath d='M465.73,79.42c.59-.54,1.76-.19,1.89.62.35.93-.83,1.74-1.63,1.3-.76-.27-.88-1.47-.26-1.92Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 476.16 92.8' fill='%23000'%3E%3Cpath d='M97.2,15.48c.83-2.85,3.16-4.97,5.7-6.34.87,2.59.2,5.56-1.52,7.66-1.22,1.53-3.11,2.35-4.28,3.93-2.27,2.97-3.96,6.35-5.21,9.87-1.54,4.4-1.05,9.42,1.14,13.52,1.1,2.12,2.62,4.02,3.41,6.29-.48-.1-.96-.21-1.43-.32-1.67-2.8-3.7-5.46-4.65-8.62-.77-2.45-.86-5.07-.66-7.62.14-1.21-.5-2.31-.76-3.46-4.07-1.14-6-5.85-5.13-9.75,2.34.97,4.48,2.69,5.41,5.11.86,1.77.04,3.83.97,5.58.51-1.85,1.26-3.62,2.07-5.35.46-.89.29-1.92.36-2.89-1.47-1.05-2.69-2.5-3.15-4.27-.61-1.93-.2-4,.39-5.88,2.07.95,3.52,2.97,4.04,5.15.39,1.62-.06,3.26-.19,4.89.95-1.17,1.78-2.43,2.63-3.67.86-1.09.48-2.55.85-3.81ZM98.18,18.01c2.27-1.53,3.83-4.02,3.89-6.79-2.22,1.56-3.83,4.03-3.89,6.79ZM90.65,15.08c-.38,2.3.2,4.77,1.97,6.36.53-2.31-.13-4.81-1.97-6.36ZM85,22.72c.14,1.3.24,2.68.96,3.82.57,1.01,1.52,1.72,2.46,2.36-.11-1.15-.2-2.35-.75-3.39-.59-1.18-1.64-2.01-2.67-2.79Z'/%3E%3Cpath d='M247.78,19.2c-3.75-2.03-8.42-2.11-12.32-.44-3.85,1.63-6.97,5.05-8.04,9.11-.88,3.04-.63,6.38.68,9.26,1.58,3.63,4.83,6.42,8.55,7.69,1.89.57,3.89.57,5.85.52.6-.03.89-.06,1.74-.2,4.71-1.26,8.73-5,10.05-9.73,1.99-6.03-.9-13.24-6.51-16.22ZM251.14,38.75c-1.69,2.31-4.15,4.13-6.95,4.82-5.87,1.65-12.66-1.53-14.95-7.22-1.32-3.15-1.24-6.85.23-9.94,1.54-3.45,4.78-6.01,8.41-6.96,3.17-.81,6.69-.46,9.53,1.22,2.31,1.34,4.12,3.49,5.16,5.94,1.58,3.94,1.07,8.69-1.43,12.14Z'/%3E%3Cpath d='M459.37,79.61c-3.9-.06-7.81.17-11.68-.39-7.1-.94-13.69-4.05-19.78-7.68-6.26-3.69-12.17-7.93-18.42-11.63-3.89-2.24-8.08-4.34-12.65-4.57-4.62-.24-9.03,1.39-13.29,2.93-3.59,1.24-7.17,2.54-10.86,3.47-.58-.37-1.16-.72-1.76-1.06.15-1.67-.33-3.46-1.66-4.56-1.15-1.08-2.79-1.29-4.3-1.24-.5-7.01-.94-14.02-1.27-21.04-.05-1.01-.06-2.16-.82-2.93-1.32-1.36-3.24-2.05-5.11-2.12-1.24-.55-2.59-.67-3.92-.83-1.23-.69-2.53-1.4-4-1.19-1.27-.06-2.21.85-3.17,1.52-2.55.37-5.31.19-7.61,1.52-.92.5-1.26,1.57-1.29,2.55-.63,7.58-1.37,15.15-2.16,22.71-5.28-.01-10.55.02-15.83-.02-1.13-.03-2.42.08-3.22.99-1.54,1.65-.44,4.22-1.76,6-1.04-.05-2.07.01-3.1-.11-1.04-.3-1.87-1.19-3.01-1.19-1.93-.06-3.87-.13-5.79.03-1.44.11-2.57,1.44-2.61,2.86-.19,1.32.18,2.93-.86,3.97-1.25.99-2.99.77-4.44.49-11.43-2.81-21.57-9.02-32.55-13.05-.18-1.69-.04-4.08-1.95-4.84-1.55-.38-3.16-.14-4.74-.19-.27-.93-.48-2.15-1.53-2.5-1.4-.34-2.87-.24-4.3-.19-.89-.02-1.34.79-1.64,1.49-.87-1.41-2.59-1.23-4.04-1.22-.51.07-1.06.22-1.41.31-.22.05-.37.24-.4.46-.04.44-.08.88-.12,1.32-.08.72-.03,1.16-.4,1.45-1.05.83-2.51.44-3.74.64.08-1.42.42-3.46-1.22-4.12-1.37-.28-2.8-.18-4.19-.06-1.27.11-1.74,1.41-2.01,2.46-1.39.05-2.83-.2-4.17.23-1.71.82-1.42,3.05-1.62,4.63-6.15,2.12-12.06,4.89-18.29,6.8.71-.9,1.4-1.89,1.5-3.07.31-2.97-.3-5.93-.79-8.84-.25-1.13-.35-2.31-.84-3.38-.5-.62-.85.37-1.03.72-.87,2.66-1.24,5.46-1.58,8.23-.17,1.85-.22,3.97,1.09,5.45.16.32.86.84.36,1.16-2.19.77-4.51,1.06-6.8,1.4.04-.77-.12-1.64.48-2.25,1.34-1.62,1.39-3.82,1.32-5.81-.16-3.62-.56-7.22-1.19-10.78-.21-1.15-.37-2.35-.9-3.41-.96-.09-1.07.99-1.29,1.68-.7,3.17-1.09,6.41-1.4,9.65-.14,2.26-.5,4.59.09,6.83.2,1,.99,1.69,1.55,2.5.09.58.1,1.18.14,1.77-2.96.14-6.04.58-8.91-.41.68-1.12,1.56-2.19,1.72-3.53.4-2.74-.01-5.52-.36-8.25-.35-2.19-.64-4.41-1.4-6.5-.43.23-.92.47-1.02,1-.71,2.45-1.04,4.99-1.41,7.51-.24,2.19-.66,4.45-.1,6.63.27,1.11,1.09,1.95,1.72,2.86-2.33-.48-4.51-1.45-6.71-2.32-6.21-2.62-12.18-5.73-18.32-8.5-.18-1.94.33-4.08-.63-5.86-1.39-1.77-3.92-.83-5.84-1.02-.16-.94-.27-2.16-1.3-2.56-1.24-.32-2.54-.15-3.81-.18-.06-1.16-.25-2.68-1.6-3.01-1.74-.27-3.51-.06-5.26-.11-1.07.05-2.33-.15-3.17.68-.7.64-.73,1.64-.9,2.51-1.45.05-2.93-.16-4.35.17-1.03.34-1.21,1.5-1.37,2.42-1.56.06-3.28-.39-4.7.4-1.44.92-1.31,2.82-1.4,4.32-7.89,2.4-15.15,6.39-22.45,10.14-4.65,2.44-9.33,4.8-13.95,7.29-1.63-1.97-1.85-4.88-.56-7.08,1.31-2.5,4.41-3.26,5.85-5.65,1.61-2.62.7-6.05,2.48-8.6,1.63-2.38,4.03-4.47,6.93-5.02.84-.19,1.48.48,2.14.87-1.27,2.1-1.38,5.17.58,6.89.63.5,1.81,1.26,2.43.39,2-2.17,1.36-6.46-1.72-7.26-.34-.58-.73-1.13-1.15-1.66,2.64-.22,5.45.14,7.88-1.14.94-.53,2.04-.26,3.06-.4,3.21-.29,6.08-2.58,7.2-5.58-2.67-.46-5.58-.01-7.73,1.69-1.04.77-1.68,1.93-2.57,2.84-1.59,1.11-3.62,1.1-5.48,1.14-1.77,0-3.45.6-5.16.98.9-1.07,1.88-2.06,2.89-3.02.87-.91,2.17-1.07,3.3-1.5,1.59.24,3.45.28,4.67-.96.7-.72,1.6-1.67,1.38-2.74-2.59-1.4-5.68.61-6.65,3.07-.39.12-.77.24-1.16.37,1.54-2.2,2.72-5.04,5.5-5.93,1.29.01,2.58.32,3.87.08,2.67-.38,4.83-2.36,6.01-4.71-2.88-.88-6.29-.47-8.58,1.6-1.48,1.44-3.27,2.47-4.82,3.81.26-1.32.37-2.67.68-3.98.69-1.07,1.53-2.09,1.85-3.36.73-2.4.2-4.99-.87-7.2-2.05,1.81-3.65,4.41-3.52,7.22-.02,1.24.48,2.4,1.04,3.49-.08,1.46.03,2.97-.43,4.39-.77,2.48-2.27,4.68-4.08,6.52-.34-1.79,1.24-3.02,1.42-4.7.35-2.38-.66-4.73-2.04-6.62-1.79,2.2-3.03,5.34-1.84,8.11.41,1.15,1.75,2.15,1.09,3.46-1.48,3.54-5.62,4.89-7.38,8.26-1.45,2.23-1.39,4.95-1.98,7.45-.62,2.2-2.92,3.06-4.49,4.44-2.45,1.99-3.6,5.53-2.52,8.54.56,1.76,1.82,3.2,3.34,4.21,2.03,1.38,3.47,3.4,5.21,5.1,1.15,1.13,2.62,1.78,4.05,2.47-2.48-.26-5.29-.78-6.85-2.95-1.35-1.86-2.62-4.26-5.08-4.76-2.27-.43-3.76,1.68-5.74,2.31.42-.92.91-1.81,1.13-2.8.63-2.53-1.14-5.05-.17-7.55.95-3.36,4.94-4.36,6.25-7.48.93-2.12.39-4.72-1.14-6.41-1.64-1.95-4.13-2.76-6.45-3.57-1.93-.64-2.97-2.48-4.39-3.79-1.81-2.53-1.9-5.84-1.62-8.82,0-3.16-2.28-5.82-4.8-7.46-.81,1.98-.86,4.27-.05,6.26.6,1.7,1.95,2.94,3.27,4.09.17,1.96.55,3.92,1.49,5.68-1.52-1.03-2.98-2.14-4.39-3.33-.29-1.43-.89-2.82-1.99-3.82-1.55-1.54-3.79-1.98-5.9-2.07.24,2.26,1.54,4.38,3.44,5.62.93.62,2.06.74,3.1,1.07.87.44,1.61,1.1,2.4,1.68.01.1.04.31.06.41-1.68-.7-3.4-1.49-5.26-1.43-2.3-.01-4.45,1.12-6.04,2.73,1.97,1.27,4.4,2.12,6.74,1.53,1.4-.32,2.52-1.27,3.54-2.23,1.24.04,2.47.21,3.64.62-1.71,1.35-4.14,2.11-4.98,4.29-.67,1.67-.48,3.8,1,4.98,1.85-.53,3.46-1.95,3.91-3.87.42-1.29.06-2.63-.27-3.89.54-.25,1.07-.51,1.61-.76,1.33,1.46,2.81,2.85,4.62,3.69,1.79.84,3.86,1.16,5.38,2.51,1.7,1.37,2.67,3.85,1.7,5.92-1.09,2.33-3.84,3.14-5.21,5.27-1.52,2.09-1.7,4.84-1.01,7.27.63,2.05-.25,4.1-1.45,5.73-3.38-.42-6.47-1.95-9.78-2.67-3.46-.9-7.12-1.06-10.62-.25-5.84,1.33-10.93,4.65-16.41,6.92-3.22,1.39-6.61,2.39-10.07,2.97-4.87.79-9.82.31-14.73.52-.87-.06-.87,1.57.06,1.37,11.47.02,22.93.04,34.4,0,6.94.02,13.91-.98,20.45-3.34,2.63-.98,5.19-2.27,7.28-4.18,1.37-.15,2.8-.33,3.94-1.17.94-.63,2.01-1.6,3.22-1.07,2.07,1.01,2.86,3.37,4.51,4.85,2.37,2.25,5.77,3.01,8.96,2.81,4-.09,7.71-1.72,11.49-2.84,2.6-.8,5.44-.9,8.07-.12,2.24.68,4.28,1.83,6.38,2.85,2.42,1.18,4.94,2.13,7.54,2.83,8.7,2.42,17.83,1.35,26.72,1.11,7.75-.48,15.53-.61,23.29-.08,9.36.42,18.66,1.49,28.01,2.11,7.85.31,15.72.37,23.57-.03,3.03-.29,6.19-.35,9.05-1.51.07-.31.21-.94.28-1.25-4.55,1.06-9.22,1.41-13.87,1.61.44-.51,1.16-.98,1.07-1.75-.47-1.05-1.44-1.73-2.28-2.47-4.04-3.23-8.56-5.85-13.34-7.83-6.23-2.77-12.85-4.62-19.58-5.71-.64-.15-1.69-.19-1.32-1.13,5.1-.69,10.1-2.04,14.88-3.97,6.88-2.75,13.78-5.65,21.11-6.99,6.34-1.34,12.95-1.07,19.25.35,7.59,1.54,14.62,4.89,21.6,8.11,6.08,2.88,12.35,5.4,18.81,7.28-1.71.03-3.44-.24-5.13.01-1.43.28-2.16,1.65-2.58,2.91-1.13-.24-2.31-.27-3.35.29-.81-.05-1.52.19-2.02.84-1.01.18-2.16.25-2.9,1.06-1.29,1.2-.61,3.32-1.9,4.52-.63.95-1.8,1.04-2.82,1.22-.25-1.01-.36-2.06-.77-3.02-.48-.94-1.6-1.43-2.63-1.29-1.63.15-3.24.46-4.86.61-.61-1.43-.97-3.31-2.71-3.78-2.34-.57-4.81-.12-7.2-.21-.29-1.15-.42-2.54-1.53-3.23-1.58-1.18-3.65-.92-5.5-.85-.31-1.04-.62-2.21-1.63-2.78-1.76-1.02-3.9-.52-5.78-.99-1.68-1.26-3.87-1.19-5.84-.82-2.2-1.42-5.16-1.19-7.35.13-2.91-.38-5.9-1.04-8.83-.49-1.29.17-1.92,1.44-2.88,2.07-3.43-.35-6.86-.76-10.31-.86.01.32.04.96.05,1.27,12.26.65,24.6,3.5,35.3,9.69,2.96,1.81,5.98,3.62,8.46,6.09.38-.39,1.17-.91.48-1.43-3.89-3.33-8.34-5.99-12.95-8.21,4.81.76,9.52,2.11,14.07,3.83,4.54,1.87,9.13,3.71,13.38,6.19-6.61,2.14-13.17,4.56-20.03,5.81-2.45.47-4.94.17-7.39-.02-.58-.15-.66.65-.98.95,4.36,1.48,9.03.68,13.36-.49,7.38-1.93,14.49-4.79,22-6.23,9.06-1.77,18.31-2.57,27.24-4.96,4.11-1,8.08-2.48,12.22-3.4,3.2-.71,6.43-1.31,9.69-1.72,4.5-.58,9.09-.38,13.56-1.31,2.19-.28,4.41-1.16,6.63-.62.11,1.84,1.75,3.05,3.45,3.32,2.95.66,5.7-.89,8.47-1.65,2.58-.74,5.34-.49,7.87.34,5.87,1.8,10.89,5.75,16.96,6.99,3.91.85,7.9.04,11.84-.11,5.02-.24,10.05.05,15.07-.04,1.7-.01,3.19-.88,4.7-1.55,1.18-.53,2.64-.25,3.51.72,1.93,2.04,4.83,2.78,7.57,2.74,12.78.01,25.57.01,38.35,0,.9.14.56-.89.52-1.42ZM109.7,42.88c.69.57,1.49,1.15,1.73,2.06.34,1.08-.07,2.19-.44,3.2-1.95-.97-2.29-3.48-1.29-5.26ZM124.97,34.06c-1.47,2.16-4.03,3.34-6.61,3.35,1.6-2.01,4.01-3.31,6.61-3.35ZM117.09,32.17c-.8,1.52-2.5,1.97-4.1,1.99,1-1.24,2.45-2.1,4.1-1.99ZM123.81,25.27c-1.63,1.88-4.09,2.87-6.57,2.5,1.59-1.94,4.12-2.73,6.57-2.5ZM113.65,17.67c.95,2.31.33,5.03-1.22,6.95-.96-2.35-.4-5.03,1.22-6.95ZM106.47,27.87c1.23,1.9,1.18,4.34.06,6.27-1.53-1.81-1.13-4.34-.06-6.27ZM76.58,32.91c-1.99-1.52-2.93-4.01-2.72-6.47,1.97,1.51,3.17,3.97,2.72,6.47ZM67.33,32.49c2.19.28,4,1.77,4.8,3.8-2.24-.13-4.06-1.73-4.8-3.8ZM65.61,40.91c1.87-1.32,4.25-1.57,6.41-.9-1.63,1.83-4.31,1.72-6.41.9ZM73.52,48.93c-.21-1.07-.41-2.25.1-3.27.42-1.04,1.38-1.67,2.23-2.32.46,2.14-.22,4.6-2.32,5.59ZM69.53,78.02c-5.34,1.27-10.83,1.63-16.3,1.59-4.45-.03-8.89.05-13.33-.03,7.15-1.56,13.23-5.9,20.08-8.26,3.36-1.1,6.98-1.54,10.47-.86,3.59.61,6.95,2.07,10.46,2.97-3.38,2.41-7.41,3.58-11.38,4.59ZM196.75,55.34c.21-3.48.59-6.97,1.28-10.39.48,3.46.93,6.93,1.1,10.42.03,1.39,0,2.84-.55,4.14-.19.36-.31.95-.85.73-1.19-1.33-1.01-3.25-.99-4.91ZM187.04,57.49c.11-2.91.59-5.79,1.08-8.66.48,3.21,1.11,6.46.96,9.72-.17.91-.13,2.18-1.1,2.66-.94-.99-.97-2.44-.95-3.72ZM160.33,46.44c.51.05.86.55.92,1.04.13,1.32.04,2.65.08,3.97-1.69-.66-3.4-1.28-5.11-1.89,0-1.05-.01-2.09-.04-3.14,1.38-.05,2.77-.17,4.15.03ZM154.1,43.67c.46-.02.74.51.76.92.11,1.53.01,3.07.03,4.6-1.82-.54-3.67-.95-5.54-1.25-.04-1.44-.04-2.89-.05-4.33,1.6.04,3.2-.02,4.8.06ZM141.51,41.73c-.01-.85.91-1.22,1.63-1.16,1.92-.01,3.84-.11,5.76.05.97.08.84,1.24.97,1.93h-.42c-.24-.68-.59-1.72-1.53-1.23.01.77.05,5.17.06,6.39-.8-.06-1.59-.13-2.38-.19-.13-.85.15-1.99-.73-2.51-1.36-.13-1.21,1.53-1.26,2.42-.72,0-1.43,0-2.15,0,.04-1.9-.07-3.81.05-5.7ZM135.82,44.11c1.21-.9,2.97-.22,4.39-.42.01,1.29,0,2.59-.01,3.88-1.5.11-2.99.29-4.48.52.04-1.33-.1-2.66.1-3.98ZM130.3,46.39c1.3-.37,2.69-.09,4.03-.11,0,.68.02,1.36.04,2.04-1.59.41-3.18.78-4.77,1.16.15-1.02-.22-2.36.7-3.09ZM160.26,81.36c-2.62.46-5.32.24-7.98.43,1.12-1.26.32-3.25,1.37-4.43,2.38-.55,4.92-.11,7.36-.06.18,1.37.16,2.94-.75,4.06ZM162.81,73.36c1.92-.06,3.89-.08,5.79.26.36,1.14.27,3.48-1.44,3.28-1.81.05-3.62-.1-5.42.05-1.69-.81-.6-3.54,1.07-3.58ZM171.28,80.96c-3.25.16-6.5.25-9.74.43.37-1.14-.05-2.75.95-3.58,1.91-.16,3.82.12,5.74.09,1,.08,2.04-.08,3,.25.23.92.09,1.88.05,2.82ZM177.32,73.88c.03,1.08,0,2.16-.09,3.24-2.58.02-5.18.08-7.75-.18-.08-1.11,0-2.23.15-3.33,2.56-.08,5.13.06,7.69.27ZM170.84,72.75c.35-.88.66-2.01,1.7-2.29,1.44-.35,2.99-.21,4.42.14.11.72.04,1.49-.27,2.16-1.92.35-3.91-.04-5.85-.01ZM180.74,80.91c-2.96-.03-5.93,0-8.89.05.12-.95-.04-2,.44-2.86,2.73-.27,5.59-.57,8.3.01.29.9.17,1.86.15,2.79ZM186.98,74.34c.09.53.18,1.07.29,1.6.14-.52.26-1.04.4-1.56,4.4.05,8.8-.06,13.2-.08,1.83.13,1.57,2.52,1.13,3.75-1.1.22-2.23-.02-3.34-.07-2.85-.32-5.72-.24-8.58-.27-2.39-.01-4.77-.35-7.16-.25-1.69.08-3.39-.07-5.08-.2.03-1.09.11-2.18.3-3.25,2.95-.29,5.92-.3,8.83.32ZM184.47,70.81c2.29-.29,4.6-.04,6.88.16,1.32.09,2.86.76,2.75,2.33-3.21-.03-6.43.12-9.63-.23-.04-.76-.04-1.51,0-2.26ZM191.33,81.43c-3.31-.25-6.64-.24-9.94-.56-.07-.94-.23-1.95.18-2.84,1.64-.18,3.28.17,4.92.13,1.5.09,3.06-.14,4.51.28.61.84.25,2.01.33,2.99ZM192,81.44c-.06-1.05-.14-2.1-.3-3.13,3.72.04,7.47.15,11.15.78.18,1.07.27,2.15.3,3.24-3.72-.34-7.44-.58-11.15-.89ZM203.28,75.28c1.63-.01,3.39-.03,4.88.71,1.01.53.88,1.79.99,2.75-2.01-.04-4.02-.19-6.03-.29.01-1.05-.24-2.17.16-3.17ZM203.73,82.38c-.18-1.11-.29-2.23-.36-3.35,1.87.06,3.77.13,5.61.5.44,1.06.39,2.28.66,3.4-1.97-.2-3.94-.39-5.91-.56ZM210.52,82.96c-.84-.91-.53-2.28-.54-3.4,1.81.19,3.81.06,5.42,1.04.58.8.51,1.91.83,2.83-1.9-.17-3.84-.13-5.72-.47ZM201.92,67.56c7.11,1.25,13.98,3.63,20.5,6.7,4.26,2.09,8.41,4.58,11.8,7.93-.74.62-1.58,1.2-2.59,1.24-3.79.31-7.61.16-11.4-.04-.9-.1-1.94-.08-2.64-.74-.68-.95-.52-2.37-1.53-3.1-1.62-1.13-3.72-.98-5.59-1.19-.15-1.36-.52-2.89-1.82-3.6-1.77-.94-3.85-.82-5.79-.92-.6-.4-1.22-.87-1.97-.85-1.74-.09-3.48,0-5.22-.03-.28-1.17-.94-2.31-2.13-2.72-2.46-.95-5.17-.84-7.76-.92-1.31-.08-2.45.64-3.4,1.46.32.05.95.16,1.27.22-.04.62-.06,1.25-.14,1.87-1.99.22-4.01.03-6.02.13.03-.71.07-1.41.11-2.11.94-.15,2.04-.03,2.75-.79-.55-.96-1.64-.94-2.58-.73-1.86-.35-3.81-.56-5.67-.12-1.4.37-2.04,1.76-2.47,3.01-2.5-.16-5.06-.6-7.54-.09-1.71.43-2.33,2.2-2.69,3.72-2.04.07-4.22-.52-6.16.28-1.48.74-1.37,2.53-1.5,3.93-.07,1.21-1.48,1.61-2.49,1.62-5.44.05-10.9-.91-15.98-2.86-3.14-1.17-5.96-3.06-9.16-4.1-2.44-.83-5.1-.91-7.62-.46-2.87.55-5.53,1.85-8.39,2.41-2.81.43-5.72-.32-8.14-1.74-1.64-.94-2.7-2.57-3.95-3.94-.91-1.02-1.97-1.86-3.07-2.66,2.71-1.59,5.56-2.91,8.32-4.4,7.72-3.93,15.27-8.27,23.38-11.37,6.15-2.29,12.67-3.76,19.26-3.72,7.85.18,15.35,2.95,22.33,6.36,6.95,3.22,13.74,6.9,21.12,9.1.16.92.16,1.94.76,2.71.44.59,1.26.52,1.9.71-.62-.94-1.11-1.97-1.33-3.09,4.44.9,8.81,2.12,13.27,2.91ZM205.97,60.3c-.5-.71-.79-1.56-.79-2.43-.08-2.69.54-5.32.88-7.98.49,2.49.93,5.02.96,7.56-.1.98-.12,2.24-1.05,2.84ZM230.82,53.27c-.32.1-.96.32-1.28.42-.18-.16-.36-.33-.53-.49.1-.38.21-.76.32-1.14-.38-.04-.76-.09-1.13-.13.1.6-.44,1.75.77,1.52-.06.12-.18.37-.24.49-.82.14-1.61.36-2.4.58.18-1.1-.15-2.58.95-3.28,1.18-.2,2.39-.07,3.58-.1-.01.71-.02,1.41-.03,2.12ZM237,52.02c-1.64.29-3.27.59-4.88.99,0-1.13-.09-2.27.04-3.39.06-.47.46-.92.96-.89,1.2-.06,2.43-.16,3.61.09.58.97.27,2.15.28,3.21ZM242.92,51.5c.06-.87-.18-1.83.26-2.62,1.7-.25,3.64-.16,4.89,1.18,0,.57,0,1.13,0,1.7-1.72-.11-3.44-.23-5.16-.25ZM249.29,51.94c.11-1.11-.29-2.56.68-3.36,1.44-.29,2.96-.21,4.39.14.19,1.37.18,2.75.18,4.12-1.74-.37-3.49-.7-5.26-.91ZM255.84,53.03c0-.62,0-1.23.01-1.84,1.49.06,3.03-.21,4.5.13.98.76.7,2.18.87,3.26-1.78-.56-3.56-1.13-5.39-1.55ZM241.51,66.27c1.56.13,3.2.05,4.68.64.95.4,1.07,1.52,1.32,2.39-2-.19-4.02-.4-5.94-1.02-.34-.63-.13-1.35-.06-2.02ZM235.43,65.24c1.52-.24,3.19-.38,4.59.35.91.52.66,1.72.76,2.59-1.79-.23-3.66-.25-5.35-.93-.15-.66-.05-1.34,0-2.01ZM228.76,65.05c1.24-.88,2.87-.83,4.31-.59.57.13,1.23.27,1.61.76.21.7.23,1.44.34,2.16-2.1-.3-4.22-.47-6.31-.88-.63-.28-.37-1.1.04-1.45ZM224.66,65.07c1.07.04,2.14.09,3.21.16.02.47.04.93.07,1.4-1.11.04-2.23.04-3.33,0,.01-.39.04-1.18.06-1.57ZM224.17,64.98c.07.54.12,1.09.15,1.63-2.15-.03-4.31-.18-6.42-.62,1.57-1.79,4.19-1.24,6.27-1.01ZM236.74,71c-1.55-.13-3.07-.51-4.53-1.05-.06-.54.03-1.12-.27-1.6-.75-.24-.22.99-.41,1.36-2.6-1.14-5.44-1.58-8.06-2.64,2.87-.17,5.72.4,8.55.8,1.95.22,3.96.22,5.82.95.85,0,1.69.05,2.54.12.05.78.08,1.56.19,2.34.27-.68.29-1.42.34-2.14.87.14,1.75.29,2.62.45.07.88.13,1.77.18,2.65-2.32-.41-4.59-1.14-6.96-1.22ZM244.25,72.35c-.12-.94-.23-1.87-.37-2.81,1.18.13,2.38.13,3.53.43.35,1.07.39,2.2.51,3.31-1.22-.32-2.44-.64-3.67-.93ZM253.35,70.53c.91.52.77,1.7,1.01,2.57-1.87-.07-3.74-.13-5.6-.27-.23-.97-.43-1.94-.65-2.91,1.74.03,3.68-.38,5.24.6ZM248.33,73.39c2.06-.16,4.13.03,6.19.25.16.83.29,1.67.43,2.52-2.16-1.02-4.6-1.48-6.62-2.76ZM256.63,76.58c-.62-.73-.64-1.75-.87-2.63,2.2.06,4.44-.24,6.62.14,1.3.34,1.43,1.85,1.82,2.91-1.32,0-2.64.03-3.95.07-.28-1-.18-2.14-.83-3-.02,1.02.1,2.05.28,3.06-1.02-.09-2.27.28-3.06-.55ZM265.89,82.14c-.23-.5-.33-1.15-.91-1.37-1.78-.95-3.65-1.75-5.44-2.68,3.23-.19,6.49-.08,9.7-.64.86-.06,2.01-.45,2.62.4.42.89.41,1.91.57,2.86-2.21.34-4.38.86-6.54,1.43ZM363.51,53.99c-1.68-.26-3.37-.46-5.06-.55-.02-1.22-.13-2.45-.6-3.58,1.8.26,3.62.45,5.42.73.08,1.13.16,2.26.24,3.4ZM357.57,33.16c.2.03.61.09.81.11.01-1.06.01-2.11.03-3.17,1.36.46,2.99.85,3.79,2.17.25,1.38.15,2.8.23,4.2-1.68-.52-3.37-.98-5.07-1.39.09-.64.15-1.28.22-1.92ZM337.53,50.29c3.25-.29,6.5-.63,9.76-.87,0-.09.01-.28.01-.37-3.26.18-6.51.51-9.75.93.13-1.39.28-2.77.43-4.16,1.7-.23,3.41-.47,5.13-.57.42-.04.76.12,1.04.46.38,1.05-.04,2.17-.1,3.25.75-1.07.62-2.38.49-3.61l.1-.16c2.1-.27,4.22-.42,6.34-.32,1.02.04,2.07.24,3.07-.06-3.02-.66-6.12-.24-9.16-.08-2.31.03-4.58.46-6.87.75.15-1.58.26-3.17.41-4.75,1.01-.16,2.06-.21,3.01-.64-.99-.01-1.97.1-2.94.25.08-1.38.18-2.75.35-4.12.52-.22,1.06-.43,1.57-.69-.52.07-1.03.15-1.54.24.12-1.36.11-2.73.35-4.07.05-.57.63-.8,1.09-1,2.19-.84,4.57-.82,6.87-1.11.77-.5,1.38-1.33,2.34-1.44,1.4-.35,2.78.28,3.81,1.2,1.04.07,2.14.02,3.11.46.62.26.43,1,.51,1.53.02,1.26.17,2.52.33,3.78-2.88-.66-5.84-.85-8.78-.81.01.1.03.29.04.38,3.79-.18,7.54.54,11.23,1.33-.05.93-.09,1.86-.03,2.79.09,0,.27-.01.35-.02.03-.9-.06-1.79-.19-2.68.81.22,1.64.4,2.43.72.38,1.3.21,2.69.35,4.03-.76-.09-1.51-.19-2.26-.19.72.34,1.5.49,2.28.66.11,1.51.2,3.02.26,4.53-.9-.09-1.78-.19-2.67-.29v.34c.87.13,1.76.25,2.66.37.1,1.29.19,2.59.31,3.89-3.34-.6-6.72-.83-10.09-1.06-1.63-.08-3.26-.19-4.88.01.67.22,1.36.33,2.06.4.55.26,1.1.53,1.66.81-.22-.24-.66-.72-.89-.95,2.19.09,4.36.35,6.55.48.14,1.02.2,2.06.6,3.03-.19.16-.38.33-.57.49-6.87-.53-13.77-.08-20.59.83.12-1.3.26-2.61.41-3.91ZM337.07,54.5c3.54-.39,7.09-.66,10.65-.85,3.34-.21,6.69.09,10.03.17,1.95.17,3.93.16,5.85.62.16,1.28-1.34,1.75-1.97,2.66-1.09-.7-2.33-.58-3.43.03-1.14-.84-2.52-1.47-3.96-1.24-1.61.13-2.86,1.19-4.03,2.17-1.54.32-3.17.3-4.72,0-.12.08-.36.24-.48.32-.42.02-1.26.05-1.69.07.03-.05.06-.1.09-.15-.05.05-.11.11-.17.16-1.52.38-3.11.35-4.64.7,1.13.12,2.27.01,3.4-.08-.62,1.13-.72,2.4-.89,3.65.09,0,.27.02.35.03.13-1.3.24-2.66,1.02-3.76,2.33-.37,4.69-.39,7.05-.47-.75,1-1.16,2.19-1.35,3.41-1.66-.09-3.4-.27-4.97.38-.88.33-1.55,1.02-2.34,1.51-1.65.2-3.33.26-4.91.81.38-3.38.73-6.77,1.1-10.15ZM329.64,56.45c1.93-.05,3.86-.09,5.8-.07-.15,1.41-.32,2.82-.45,4.23-2.17.51-4.38.05-6.56-.06.4-.29.81-.57,1.22-.84-.02-1.09-.01-2.17-.01-3.26ZM317.03,58.17c.01-.89.74-1.75,1.67-1.7,3.49-.05,6.99-.09,10.48-.02.04,1.04.06,2.09.05,3.14-.29.29-.58.58-.85.88-3.74.34-7.49-.09-11.24.08.38.18.76.43,1.21.39,2.1.03,4.21-.07,6.31.1-.49.34-.98.66-1.46.99-.09.94-.17,1.87-.1,2.81.32-.94.47-1.91.66-2.88.6-.28,1.18-.62,1.8-.86,3.08-.5,6.15.4,9.23.05.04,1.36-.11,2.71-.27,4.05-1.54-.01-3.08-.06-4.62-.08.03-.94.06-1.87.02-2.81-.38.88-.35,1.86-.4,2.8-3.46,0-6.92.08-10.37-.15-.5-1.3-1.56-2.22-2.91-2.53.73-1.31.71-2.82.8-4.27ZM314.06,63.88c.42-.94,1.66-.33,2.39-.15,1.06.32,1.24,1.46,1.37,2.39-1.22.03-2.43.03-3.65,0-.02-.75-.25-1.52-.11-2.25ZM289.44,70.89c1.51-.41,3.09,0,4.63,0-.2,1.07-.49,2.12-.77,3.17-1.81.14-3.61.05-5.41-.01.19-1.15.25-2.71,1.56-3.16ZM283.32,78.82c-1.8.32-3.6.59-5.39.9.7-1.16.83-2.53,1.23-3.79.6-1.09,2.03-.97,3.1-1.11.19-.35.39-.7.6-1.04.25.06.75.19,1,.26.89-.63,1.94-.52,2.93-.2-.21.53-.29,1.14-.63,1.61-.63.45-1.41.67-1.99,1.2-.54.59-.64,1.42-.85,2.16ZM290.49,77.65c-1.97.35-3.93.74-5.93.91.39-.93,1.2-1.5,2.05-1.98.79-.4.99-1.32,1.34-2.06,1.54-.03,3.1-.04,4.64.08-.61.54-1.35.81-2.14.55.71.75.3,1.66.04,2.51ZM302.12,74.99c-1.52.4-3.05.78-4.57,1.19-.01-.33-.05-1-.06-1.34-.22.5-.41,1.01-.6,1.53-1.89.46-3.8.85-5.71,1.19.06-.59.12-1.19.18-1.78.54-.39,1.07-.8,1.58-1.23,2.51-.05,5.03-.02,7.54-.05.55.02,1.16-.07,1.66.25,0,.06-.01.18-.02.24ZM327.74,70.2c-6.4.22-12.75,1.25-18.96,2.76-.03-.7-.06-1.39-.09-2.07-.67.59-.6,1.5-.71,2.31-1.67.44-3.3,1.09-5,1.4-.06-.1-.18-.3-.24-.4-3.02-.05-6.04,0-9.07-.12.38-1.07.8-2.14,1.13-3.23,4.93-.03,9.86.03,14.78-.1.32-1.11.59-2.26.44-3.43-.32.96-.39,1.97-.47,2.97-1.34.07-2.74.14-3.98-.46l.24.5c-.43.01-1.3.04-1.73.06,1.05-.6.98-1.74.8-2.76-.34.92-.11,2.28-1.26,2.64-2.56.18-5.16.19-7.71-.06,1.41-.81,3.36-.3,4.52-1.66,1.31-1.2,1.12-3.06,1.22-4.67,0-.92.72-1.78,1.68-1.79,1.55-.11,3.11-.04,4.67-.02,1.08-.06,1.94.67,2.89,1.06.9.44,1.93.23,2.9.24-.12.95-.22,1.9-.3,2.85-2.05.04-4.1-.02-6.15.05.8-1.02.88-2.36.52-3.57-.24,1.18-.14,2.47-.81,3.52-1.82.03-3.64-.02-5.46-.06.33.46.85.57,1.39.53,3.35,0,6.7-.05,10.04.22,3.09.42,6.19-.18,9.29-.07-.1-.45-.2-.9-.29-1.35,3.84-.02,7.68.04,11.52,0-2.2,1.16-5.07,2-5.79,4.71ZM379.11,78.02c-4.86-.7-9.1-3.35-13.46-5.43-3.48-1.57-7.27-2.94-11.15-2.42-2.29.24-4.38,1.26-6.58,1.85-1.59.4-3.44.4-4.83-.56-.79-.97-.9-2.77-2.47-2.81-3.86-.12-7.58,1.27-11.42,1.45.54-.89,1.3-1.63,2.28-2.01,3.15-1.33,6.35-3.08,9.9-2.64.85-.75,1.69-1.59,2.82-1.9,1.61-.53,3.32-.03,4.96-.28.69-1.2.41-2.92,1.63-3.82,1.26-.92,2.42-2.38,4.15-2.23,1.27-.08,2.2.87,3.04,1.69.72-.38,1.42-1.16,2.3-.9.56.33,1.09.71,1.65,1.04.66-.96,1.3-2.07,2.45-2.5,1.88-.82,4.41.15,5.04,2.16.34.94.01,1.92-.26,2.82,1.13.23,2.46.57,2.95,1.76.52.96-.1,1.95-.45,2.84,1.1-.09,2.14.22,2.97.96,1.18-1.45,3.54-1.97,4.98-.6,1.24,1.19.68,3.04.39,4.5,1.12.17,2.49.18,3.2,1.23.63.8.08,1.83.08,2.73,1.55-.02,3.16-.26,4.65.34,1.9.73,3.93,1.28,5.63,2.46-4.81-.47-9.62.83-14.43.27ZM402.94,77.76c-2.09-.1-4.22.17-6.27-.35-1.78-.67-3.46-1.57-5.24-2.24.21-.19.43-.38.65-.57-.16-1.52-.13-3.52,1.51-4.24,1.29-.68,2.49.38,3.68.78.38-1.06.62-2.36,1.72-2.94,1.59-.99,3.91.06,4.33,1.86.34,1.11-.09,2.25-.53,3.27.1.18.29.53.39.71,1.17-.05,2.53-.34,3.53.47.78.55.87,1.56,1.1,2.42-1.52.72-3.21.93-4.87.84ZM420.87,79.6c-1.97-.01-4.05-.2-5.75-1.28-1.11-.69-1.88-1.93-3.21-2.24-.93-.3-1.9-.08-2.81.1-.36-1.02-.7-2.16-1.63-2.81-.81-.63-1.87-.68-2.84-.78.25-1.45.23-3.06-.67-4.29-1.18-1.74-3.71-2.35-5.54-1.3-.91.46-1.45,1.35-1.94,2.2-1.63-.68-3.69-.46-4.81,1-.98,1.04-.9,2.53-1.06,3.84-.22.11-.66.34-.87.46-1.51-.65-3.12-1.06-4.77-1.01,0-1.93-1.53-3.31-3.33-3.66.13-1.18.21-2.47-.44-3.52-1.15-2.01-4.01-2.56-5.96-1.43-.5.19-.97.68-1.52.43-.09-.77-.09-1.56-.11-2.33,5.18-1.33,10.11-3.43,15.21-5.01,3.52-1.03,7.33-1.74,10.95-.78,4.03.99,7.67,3.08,11.19,5.22,10.09,6.2,19.65,13.76,31.16,17.18-7.08.01-14.15.04-21.22.01Z'/%3E%3Cpath d='M345.05,57.72c-.19-.14-.56-.42-.75-.56.06-.96.27-1.9.78-2.72-1.27.75-.73,2.4-1.4,3.51.36-.35.81-.43,1.36-.24Z'/%3E%3Cpath d='M99.43,20.97c1.65-1.07,3.73-1.25,5.63-.94.05.1.15.32.2.42-.9,2.12-2.71,3.87-4.92,4.56-1.56.48-3.18,0-4.77.17,1.29-1.39,2.2-3.19,3.86-4.21ZM97.97,24.11c2.13-.08,4.17-1.06,5.34-2.88-2.17-.05-4.14,1.1-5.34,2.88Z'/%3E%3Cpath d='M95.4,29.42c1.49-1.59,3.8-2.03,5.89-1.76-.42,2.43-2.11,4.57-4.47,5.37,1.25.18,2.48.58,3.49,1.37.22-.29.44-.58.64-.89-.26-.39-.57-.75-.83-1.13.87-.67,2.29.34,2.05,1.42.03.89-.89,1.12-1.58,1.28.35,1.19.43,2.75-.72,3.53-1.52,1.1-3.77.06-4.21-1.68-.34-1.05.27-2.06.71-2.98-.77.14-1.62.1-2.29.56-.86.62-1.54,1.44-2.38,2.08.01-1.56,1.03-2.8,2.27-3.62.11-1.3.43-2.65,1.44-3.54ZM95.14,32.24c1.92-.51,3.68-1.64,4.62-3.44-2.09.08-4,1.4-4.62,3.44ZM97.74,34.4c-.34.61-.88,1.21-.76,1.97,0,.86.9,1.51,1.73,1.36.8-.27,1.02-1.37.63-2.05-.25-.69-1.01-.93-1.59-1.28Z'/%3E%3Cpath d='M81.28,31c2.22.62,4.51,1.7,5.7,3.78.81,1.26.92,2.79.96,4.25.22.12.67.37.89.49-2-.06-4.05-.67-5.44-2.19-1.73-1.61-2.22-4.06-2.11-6.33ZM86.82,38.04c-.28-1.1-.56-2.26-1.3-3.16-.75-.96-1.87-1.52-2.92-2.1.15,2.47,1.96,4.44,4.21,5.26Z'/%3E%3Cpath d='M342.61,35.67c.04-1.02.81-2.12,1.89-2.19.97-.12,1.74.85,1.75,1.75.06,1.57.05,3.15-.05,4.73-1.21.33-2.48.27-3.72.4.06-1.57.04-3.13.13-4.69ZM343.96,35.01c-.43,1.38-.2,2.87-.29,4.3.46-.06.93-.13,1.4-.19-.03-1.45.26-2.92-.04-4.35-.39-.15-.91-.26-1.07.24Z'/%3E%3Cpath d='M351.85,39.04c.65-1.25.65-2.67,1.02-4.01-.02,1.49.06,2.97.52,4.4.52.13,1.05.28,1.57.44-2.32-.11-4.69-.05-6.97-.51,1.28-.11,2.58-.04,3.85-.32ZM352.31,38.43c-.52.46-.02,1.42.63,1,.33-.35-.14-1.55-.63-1Z'/%3E%3Cpath d='M355.8,40.67c.09-.72.59-1.34,1.25-1.63,1.01-.18,1.7.91,1.94,1.76.2,1.66.11,3.35.13,5.02-1.16-.14-2.31-.28-3.47-.42.06-1.58-.04-3.16.15-4.73ZM357.12,40.32c-.53,1.31-.19,2.77-.25,4.14.36.03.73.05,1.1.08-.03-1.05,0-2.09-.05-3.13-.05-.49-.14-1.2-.8-1.09Z'/%3E%3Cpath d='M114.31,40.44c4.01-1.15,8.12,2.93,7.55,6.95-2.06-.09-4.21-.82-5.55-2.45-1.1-1.26-1.67-2.88-2-4.49ZM115.86,41.33c.54,2.32,2.39,4.09,4.7,4.63-.48-2.33-2.31-4.26-4.7-4.63Z'/%3E%3Cpath d='M142.6,41.81c.47.02.94.05,1.4.09-.05.52-.08,1.04-.2,1.54-.39.09-.8.12-1.2.1-.01-.58-.01-1.16,0-1.73Z'/%3E%3Cpath d='M145.13,43.66c.08-.64-.47-1.96.58-1.88.83-.17.8,1.1.63,1.64-.3.06-.91.18-1.21.24Z'/%3E%3Cpath d='M137.52,46.23c.13-.61-.25-1.6.59-1.76,1.01-.01.59,1.16.73,1.81-.44-.01-.89-.03-1.32-.05Z'/%3E%3Cpath d='M151.53,44.72c.38-.28.77-.3,1.18-.06.09.58.08,1.17.1,1.76-.47-.03-.94-.05-1.4-.08.03-.54.03-1.08.13-1.61Z'/%3E%3Cpath d='M131.18,48.63c.16-.64-.04-1.61.87-1.7.53.33.5.96.33,1.48-.3.05-.9.16-1.2.21Z'/%3E%3Cpath d='M158.17,48.9c-.42-.63-.3-1.94.73-1.77.71.24.41,1.11.55,1.68-.43.05-.86.08-1.28.09Z'/%3E%3Cpath d='M251.26,49.42c.38.03.76.06,1.14.1,0,.53,0,1.06,0,1.59-.41-.06-.81-.12-1.21-.18.03-.51.05-1.01.09-1.51Z'/%3E%3Cpath d='M233.89,49.66c.41,0,.82,0,1.24,0-.02.51-.03,1.03-.05,1.54-.39,0-.77,0-1.15,0-.02-.52-.03-1.04-.03-1.56Z'/%3E%3Cpath d='M244.81,49.5c.27.07.8.22,1.07.29.05.43.07.86.06,1.3-.3.05-.91.14-1.21.18.02-.59.05-1.19.09-1.77Z'/%3E%3Cpath d='M257.74,52.02c.42-.04.85-.08,1.29-.11.03.54.05,1.09.08,1.63-.37-.03-.73-.08-1.1-.13-.1-.46-.19-.92-.27-1.38Z'/%3E%3Cpath d='M322.09,56.51c.47,1.16.52,2.61-.19,3.68.09-1.23.09-2.46.19-3.68Z'/%3E%3Cpath d='M196.36,75.14c.48.22.42,1.64-.1,1.84-.28-.56-.18-1.3.1-1.84Z'/%3E%3Cpath d='M470.45,79.18c1.38-.35,1.93,1.96.53,2.23-1.5.51-2.04-2.04-.53-2.23Z'/%3E%3Cpath d='M8.48,79.4c.86-.7,2.32.39,1.75,1.35-.31.82-1.29.55-1.96.55-.1-.63-.48-1.47.21-1.9Z'/%3E%3Cpath d='M12.5,79.5c.55-.62,1.85-.3,1.95.57.36,1.1-1.3,1.8-1.97.98-.47-.38-.39-1.16.03-1.55Z'/%3E%3Cpath d='M16.46,79.5c1.02-1.08,2.77.64,1.63,1.63-1.03,1.02-2.76-.63-1.63-1.63Z'/%3E%3Cpath d='M461.75,79.36c.88-.67,2.25.48,1.72,1.43-.33.9-1.82.84-2.13-.05-.27-.45-.04-1.15.41-1.39Z'/%3E%3Cpath d='M465.73,79.42c.59-.54,1.76-.19,1.89.62.35.93-.83,1.74-1.63,1.3-.76-.27-.88-1.47-.26-1.92Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.fim-horizonte::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: var(--marca-ouro);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 476.16 92.8' fill='%23000'%3E%3Cpath d='M239.72,21.25c3.37-.5,6.92.79,9.15,3.36,2.88,3.21,3.31,8.24,1.15,11.95-1.68,2.84-4.69,4.93-8,5.29-2.5.32-5.04-.49-7.12-1.87-3.32-2.19-5.12-6.5-4.24-10.39.83-4.34,4.7-7.81,9.05-8.35Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 476.16 92.8' fill='%23000'%3E%3Cpath d='M239.72,21.25c3.37-.5,6.92.79,9.15,3.36,2.88,3.21,3.31,8.24,1.15,11.95-1.68,2.84-4.69,4.93-8,5.29-2.5.32-5.04-.49-7.12-1.87-3.32-2.19-5.12-6.5-4.24-10.39.83-4.34,4.7-7.81,9.05-8.35Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* <<< fim das mascaras >>> */
