@font-face{font-family:'Public Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/PublicSans-400.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/IBMPlexMono-400.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/IBMPlexMono-500.woff2') format('woff2')}

/* ==========================================================================
   TOKENS — tema `universo`
   Herda o :root do tema anterior, que teve contraste conferido contra WCAG e
   traz o motivo de cada decisao escrito ao lado. O que NAO vem junto e a
   camada de apelidos (--uc-stamp, --uc-amber, --uc-crimson, --uc-navy,
   --uc-barra-*, --uc-sup*): ela existia porque 30+ regras os citavam, e aqui
   nao ha regra nenhuma citando. Divida que nao nasce nao precisa morrer.
   ========================================================================== */
:root{
  /* --- cor: superficie e tinta ---
     Fundo frio e neutro. O anterior era esverdeado (#F5F7F4): tingir o papel e
     o que da ao site ar de artesanato, e nao de ferramenta.
     --uc-rule: fio padrao (divisor entre itens de uma mesma lista/secao).
     --uc-rule-forte: divisor com mais peso, para separar blocos distintos
     (ex: fim de uma secao inteira) -- nao para uso repetido dentro dela. */
  --uc-paper:#F7F8FA; --uc-paper-2:#EFF1F5; --uc-paper-3:#E3E7EC;
  --uc-ink:#0F1419; --uc-ink-2:#3C4653; --uc-ink-3:#616C7A;
  --uc-rule:#D5DAE2; --uc-rule-forte:#B8C0CC;
  --uc-field:#FFFFFF;

  /* --- cor: acao e significado sao vocabularios diferentes ---
     Enquanto os dois eram o mesmo verde, "clicavel" e "correto" se confundiam
     na mesma tela. --uc-acao e' o unico acento de marca; --uc-certo e
     --uc-errado sao SEMANTICOS e nao contam como segundo acento.
     Regra do craft/: no maximo 2 usos visiveis do acento por tela.
     --uc-acao-forte: cor do estado PRESSIONADO do botao principal e cor da
     sombra tatil de 3px (--uc-tatil) -- sem o papel escrito, dois
     componentes usariam o mesmo token para coisas diferentes. */
  --uc-acao:#16365C; --uc-acao-soft:rgba(22,54,92,.10); --uc-acao-forte:#123A66;

  /* TINTA SOBRE O ACENTO. Existem porque o chip (tarefa C) e' o primeiro
     componente com superficie PREENCHIDA de --uc-acao, e o tema anterior
     resolvia isso com `color:#fff` solto -- hex fora do :root, que a Regra 1
     recusa, e com razao: "branco sobre o acento" e' decisao de sistema, nao
     de componente. Sem estes dois nomes, os doze componentes inventariam
     cada um o seu.
     MEDIDO contra --uc-acao (#16365C):
       --uc-acao-ink   (#FFFFFF)            12,23:1  -- texto principal
       --uc-acao-ink-2 (branco a 75%)        7,62:1  -- dado secundario
                                                       (contagem, fio)
     Os dois passam o piso de 4,5:1 de texto pequeno com folga; o -ink-2
     existe para o numero nao competir com o rotulo dentro do mesmo controle,
     nao para economizar contraste. */
  --uc-acao-ink:#FFFFFF;
  --uc-acao-ink-2:rgba(255,255,255,.75);
  --uc-certo:#0D7549; --uc-certo-soft:rgba(15,123,79,.10);
  --uc-errado:#B3261E; --uc-errado-soft:rgba(179,38,30,.09);
  --uc-alerta:#8A5200; --uc-alerta-soft:rgba(138,82,0,.10);

  /* --- cor: chrome (barra de topo e tabbar) ---
     Navy proprio, mais escuro que --uc-acao de proposito: superficie de chrome
     nao e' a mesma coisa que "isto e' clicavel". Papeis diferentes, nomes
     diferentes.
     --uc-chrome-cta-hover: o herdado (#2C7DF2) dava 3,95:1 contra texto
     branco, abaixo do piso de 4,5:1 -- corrigido para #1A66D6 (5,36:1,
     medido). Nao existe hover mais CLARO que passe: clarear azul reduz
     contraste contra branco, e o repouso (--uc-chrome-cta, 4,68:1) ja esta
     perto do piso. Por isso o hover fica mais ESCURO que o repouso -- padrao
     comum (o Airbnb faz o mesmo no estado pressionado). */
  --uc-chrome-bg:#0D2B4E;
  --uc-chrome-ink:#FFFFFF;
  --uc-chrome-ink-2:#A9C1D9;
  --uc-chrome-ink-3:#8FA9C2;
  --uc-chrome-ativo:#4E9BFF;
  --uc-chrome-cta:#1B6FE8;
  --uc-chrome-cta-hover:#1A66D6;

  /* --- cor: foco ---
     Anel de foco precisa de papel nomeado, nao de --uc-acao usado direto:
     --uc-acao sobre --uc-chrome-bg da 1,17:1 -- invisivel dentro do chrome.
     --uc-foco: fora do chrome (usa --uc-acao).
     --uc-foco-chrome: dentro do chrome (usa --uc-chrome-ativo, 5,06:1 contra
     --uc-chrome-bg). Nao e' cor nova -- e' o mesmo par com o papel escrito,
     para o proximo dev nao ter de escolher sozinho onde usar qual. */
  --uc-foco:var(--uc-acao);
  --uc-foco-chrome:var(--uc-chrome-ativo);

  /* --uc-foco-largura e --uc-foco-offset: espessura e recuo do anel de foco.
     Existem para que os doze componentes da fase seguinte (cartao com anel
     interno, chip acompanhando o proprio raio, etc.) nao reinventem cada um
     o seu -- um so par, usado em todo lugar que desenha anel.
     Ficam FORA da grade de 4px de proposito: anel de foco e' detalhe de
     contorno, nao ritmo de layout -- 4px de recuo afastaria o anel a ponto
     de ele deixar de ler como pertencente ao elemento. O :root e' isento da
     Regra 3 do lint de proposito, e e' exatamente para casos assim. */
  --uc-foco-largura:2px;
  --uc-foco-offset:2px;

  /* --- tipografia ---
     UMA familia para texto e titulo, decisao de 24/08/2026 que NAO se reabre:
     a Public Sans e variavel (100-900), entao a hierarquia vem de peso e
     entreletra, nao de trocar de fonte. A mono fica restrita a DADO: rotulo,
     numero de questao, contagem. */
  --uc-sans:'Public Sans',system-ui,-apple-system,sans-serif;
  --uc-display:var(--uc-sans);
  --uc-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,monospace;

  --uc-s--1:clamp(.75rem,.72rem + .15vw,.82rem);
  --uc-s-0:clamp(1rem,.97rem + .2vw,1.06rem);
  --uc-s-1:clamp(1.1rem,1.02rem + .4vw,1.3rem);
  --uc-s-2:clamp(1.4rem,1.22rem + .9vw,1.9rem);
  --uc-s-3:clamp(1.75rem,1.45rem + 1.7vw,2.6rem);
  --uc-s-sec:clamp(1.25rem,1.12rem + .6vw,1.6rem);

  /* Os dois abaixo sao RELATIVOS de proposito -- unica excecao consciente
     numa escala que ate aqui e' toda absoluta (clamp em rem). sub, sup,
     code, kbd, pre e samp sao elementos INLINE que herdam o contexto (corpo,
     titulo, alternativa) -- um token absoluto ali quebra em silencio.
     Medido em 04/09/2026 (Task 3, Correcao 2): <code> com var(--uc-s--1)
     (absoluto) media 13,1px tanto dentro de <p> (17px) quanto dentro de
     <h1> (42px) -- um terco do tamanho do titulo ao redor, porque nao
     escalava com ele. Com .92em (relativo) fica 15,6px no corpo e 38,3px no
     h1 -- cada um proporcional ao seu contexto, como elemento inline
     precisa. */
  --uc-s-rel-mono:.92em;     /* code, kbd, pre, samp: mono le maior, entao encolhe um pouco */
  --uc-s-rel-indice:.75em;   /* sub e sup */

  /* Entreletra: regra do craft/, verificavel, nao gosto.
     CAIXA ALTA sempre >= .06em; display grande sempre negativo. */
  --uc-tr-caps:.08em;
  --uc-tr-display:-.02em;
  --uc-tr-rotulo:.02em;

  /* Recuo do sublinhado de link. Estava escrito `2px` direto na 01-base.css e
     nao passava por regra nenhuma ate a Regra 10 (04/09/2026) -- e' medida de
     verdade, so' que nenhuma regra olhava a propriedade.
     FICA FORA DA GRADE DE 4px DE PROPOSITO, pelo mesmo motivo de
     --uc-foco-offset: recuo de sublinhado acompanha a altura-x da fonte, nao
     o ritmo de layout. 4px afastaria o traco a ponto de ele parar de ler como
     parte da palavra. O :root e' isento da R7/R10 exatamente para casos assim
     -- o escape da grade e' BATIZAR aqui, nunca isentar a propriedade la'. */
  --uc-sublinhado-recuo:2px;

  /* Tres pesos, nao uma escada. Peso salta, nao degrau a degrau. */
  --uc-w-ler:400;
  --uc-w-realce:550;
  --uc-w-anunciar:650;

  /* Altura de linha: ritmo vertical tanto quanto espaco -- todo componente
     com texto (cartao, lista, campo, alternativa, estado vazio) tropeca sem
     isso. Tres valores, nao escada de sete: mesma logica dos pesos acima,
     peso salta, nao degrau a degrau.
     Mapeamento nominal, para o componente nao escolher sozinho:
       apertado  -> display, titulo de cartao.
       normal    -> corpo, estado vazio, e a ALTERNATIVA A-E (decisao:
                    alternativa e' lida com atencao e pode ter tres linhas;
                    ser clicavel nao a torna rotulo de controle).
       controle  -> botao, chip, rotulo, texto de campo. */
  --uc-lh-apertado:1.15;  /* display e titulo */
  --uc-lh-normal:1.6;     /* corpo, estado vazio, alternativa */
  --uc-lh-controle:1.2;   /* botao, chip, rotulo, campo */

  /* --- espaco: escala de base 4px ---
     Antes cada componente escolhia o proprio valor (1.35rem, .85rem, .7rem...).
     Valor solto em toda parte e' o que produz ritmo quase-certo: nada esta
     errado isoladamente e o conjunto nunca alinha. */
  --sp-1:.25rem; --sp-2:.5rem;  --sp-3:.75rem; --sp-4:1rem;
  --sp-5:1.5rem; --sp-6:2rem;   --sp-7:3rem;   --sp-8:4rem; --sp-9:6rem;

  /* --- medida e respiro horizontal --- */
  --uc-maxw:1180px;
  --uc-medida:65ch;                 /* corpo de texto: 50-75 caracteres */
  --uc-gutter:clamp(1.25rem,5vw,3rem);

  /* --- a LARGURA MINIMA DE UM CARTAO (tarefa E, 05/09/2026) ---
     O unico numero que a grade de cartoes precisa: abaixo dele a coluna se
     parte em duas. Ele vive aqui, e nao dentro do `cartao.css`, por um motivo
     de GOVERNANCA e nao de gosto: `grid-template-columns` NAO PASSA POR REGRA
     NENHUMA do lint (a R3 tem lista fechada, a R10 fechou deslocamento, a R11
     fechou caixa) -- um `minmax(237px,1fr)` escrito la' passaria limpo.
     Batizar aqui e' o unico mecanismo de escape que este projeto aceita para
     medida absoluta, e e' o mesmo que --uc-alvo-toque e --uc-sublinhado-recuo
     ja usaram.
     240px e' medido, nao escolhido: e' o `minmax(240px,1fr)` que o tema antigo
     ja usava em `.uc-cards--fluida` (bancada.css:966), a unica das quatro
     grades de cartao dele que respondia ao espaco.
     ⚠️ NAO HA TETO, e a ausencia e' deliberada -- ver o cabecalho de
     `cartao.css`: um maximo definido em px nesta posicao nao limita a largura
     do cartao, ele REDUZ O NUMERO DE COLUNAS, porque o numero de repeticoes de
     um `repeat(auto-*, minmax())` e' calculado com o maximo quando o maximo e'
     definido. Escrevi um `--uc-cartao-teto:24rem`, medi duas colunas onde o
     desenho pede quatro, e apaguei. */
  --uc-cartao-piso:240px;

  /* --- a LARGURA MINIMA DE UMA CELULA DO MOSTRUARIO (tarefa F, 05/09/2026) ---
     Os dois numeros do palco do mostruario, que ate hoje viviam soltos dentro
     do `02-mostruario.css`. Eles vem para ca' pelo MESMO motivo de governanca
     que trouxe --uc-cartao-piso, e agora o motivo deixou de ser disciplina:
     a R14 (tarefa F) passou a julgar `grid-template-columns` e a familia de
     grade, e um `minmax(200px,1fr)` escrito la' vira achado.
     Os valores NAO mudaram, e nenhum dos dois foi escolhido -- os dois estao
     MEDIDOS no proprio `02-mostruario.css`, com a captura que os produziu:
       200px  cinco estados lado a lado numa coluna de 1.085px (5x200 + 4 vaos
              de 12 = 1.048), com o exemplar de borda conferido quebrando
              dentro de um palco de 198px;
       320px  a parede de chips empilhava no palco padrao de ~145px uteis; com
              256px de palco cabem dois chips e a quebra em linhas -- que e' a
              forma que se ia julgar -- volta a acontecer.
     ⚠️ SAO OS DOIS UNICOS TOKENS DO :root QUE NAO SAO DO PRODUTO: descrevem a
     folha de exemplares. Ficam aqui porque a R7 recusa medida nomeada
     declarada fora do :root, e a alternativa (literal solto) e' exatamente o
     que a R14 fecha. */
  --uc-palco:200px;
  --uc-palco-largo:320px;

  /* --- a ALTURA DE UMA BARRA DE CHROME (tarefa G1, 05/09/2026) ---
     56px, e o numero NAO foi escolhido: e' o que o tema antigo ja usava nos
     DOIS lugares onde uma barra de chrome existe -- `min-height:56px` em
     `.uc-top__in` (bancada.css:437) e `min-height:56px` em `.uc-tabbar__item`
     (bancada.css:1623). Dois autores, duas datas, o mesmo numero: e' uma
     decisao so' ("a menor barra confortavel"), e por isso vira UM nome em vez
     de dois literais.
     E' DERIVADO, nao arbitrario: 44px de alvo de toque (--uc-alvo-toque, o
     piso da WCAG 2.5.5) mais 4px de folga em cima e embaixo. Abaixo disso o
     alvo encosta na borda da barra; acima, o chrome come a tela do celular --
     que ja e' o recurso mais escasso desta pagina (medido em 05/09/2026, num
     visor de 390x844: o cabecalho antigo gastava 91,6px e o bloco de anuncio
     logo abaixo dele, 443,4px -- 63% da primeira tela antes da primeira linha
     de conteudo).
     FORA DA GRADE DE 4px de proposito, e pelo mesmo mecanismo de escape de
     --uc-alvo-toque: 56 nao esta na grade enumerada (0,4,8,12,16,24,32,48,64,
     96), a R11 recusaria o literal, e a saida deste projeto para medida fora
     da grade e' SEMPRE batizar aqui -- nunca isentar a propriedade la'. */
  --uc-chrome-altura:56px;

  /* --- a COLUNA DO RODAPE (tarefa G1, 05/09/2026) ---
     O unico numero que a grade do rodape precisa, pelo mesmo motivo de
     governanca que trouxe --uc-cartao-piso e --uc-palco: a R14 (tarefa F)
     julga `grid-template-columns`, e um `minmax(260px,1fr)` escrito no
     componente vira achado.
     260px e' MEDIDO contra as tres larguras que importam, com o gutter real:
       1084px uteis -> floor((1084+32)/(260+32)) = 3 colunas (marca, secoes,
                       institucional), que e' a composicao do rodape;
        700px uteis -> 2 colunas;
        351px uteis (visor de 390) -> 1 coluna.
     Qualquer valor entre 213 e 334 entrega essa escada; 260 fica no meio, o
     que da folga dos dois lados para o texto crescer sem trocar de degrau.
     ⚠️ SEM TETO no minmax, pela armadilha que a tarefa E mediu e escreveu no
     cabecalho de cartao.css: teto em px na segunda posicao de um
     `repeat(auto-*, minmax())` nao limita o item, REDUZ O NUMERO DE COLUNAS. */
  --uc-rodape-coluna:260px;

  /* --- CAMADAS: a ordem de empilhamento, em um lugar so' (tarefa G1) ---
     O chrome e' o primeiro componente do tema novo com peca FIXA na tela, e
     portanto o primeiro que precisa dizer quem fica na frente de quem. Tres
     nomes, nao um numero solto por componente -- foi assim que o tema antigo
     acabou com 20, 40, 41 e 100 espalhados por dois arquivos, sem nenhuma
     linha explicando por que 41.
     ⛔ NENHUMA REGRA DA GUARDA GOVERNA `z-index` -- ele nao e' comprimento
     (a R3 tem lista fechada, a R10 fecha deslocamento, a R11 fecha caixa, a
     R14 fecha grade, e todas julgam px/rem). Aqui e' DISCIPLINA, igual ao que
     --uc-cartao-piso era antes da R14 existir; fica registrado como buraco.
     Os valores:
       20   topo. Precisa vencer o conteudo da pagina porque o painel de busca
            desce POR CIMA do bloco de anuncio que vem logo abaixo.
       40   tabbar. Acima do topo porque ela e' fixa e o topo rola embora.
      100   pular. Acima de tudo, inclusive do que um plugin injetar entre 41 e
            99 -- se o link de pular ficar atras de qualquer coisa, ele deixa
            de existir para quem so' tem teclado, e isso e' falha silenciosa.
     ⚠️ O QUE ESTA FORA DESTE VOCABULARIO, e e' da tarefa H: a ancora do
     AdSense. O tema antigo publicava `--uc-ancora-h` pelo site.js e subia a
     tabbar com `bottom:var(--uc-ancora-h,0px)`, com a nota de que o z-index
     dela nao se vence. Aqui a tabbar usa `bottom:0`: declarar o token sem
     ninguem para escreve-lo seria consumo sem declaracao (R9), e a ancora
     esta configurada no TOPO na conta do AdSense. Quando a tarefa H trouxer o
     anuncio, o gancho e' este. */
  --uc-camada-topo:20;
  --uc-camada-tabbar:40;
  --uc-camada-pular:100;

  /* --- estado: desabilitado e esqueleto de carregamento ---
     Dois dos cinco estados obrigatorios em toda superficie que busca ou
     aceita dado (loading, empty, error, populated, edge) ainda nao tinham
     token -- cada componente inventaria opacity solta por conta propria.

     --uc-desabilitado-ink e --uc-desabilitado-op sao MUTUAMENTE EXCLUSIVOS,
     nunca os dois no mesmo elemento: aplicar ink (--uc-ink-3, 5,02:1 sozinho
     contra --uc-paper) E opacidade .55 juntos derruba para 2,18:1
     (rgb(164,171,180)). --uc-desabilitado-ink e' para TEXTO desabilitado;
     --uc-desabilitado-op e' para o ELEMENTO INTEIRO (icone, container,
     cartao). Texto desabilitado fica isento do piso de contraste pelo WCAG
     1.4.3, mas a regra deste projeto continua valendo -- cor nunca e' o
     unico sinal: desabilitado tambem precisa de cursor, aria-disabled e,
     quando couber, palavra. */
  --uc-desabilitado-ink:var(--uc-ink-3);
  --uc-desabilitado-op:.55;

  /* Esqueleto: o par que importa e' BLOCO CONTRA A PAGINA, nao brilho contra
     base. --uc-paper-2 dava 1,06:1 contra --uc-paper -- invisivel, nao e'
     estado de carregamento. --uc-rule contra --uc-paper da 1,32:1 (visivel
     sem pesar); o brilho vira --uc-paper contra o proprio --uc-esqueleto,
     tambem 1,32:1 -- simetrico, sem cor nova: o brilho e' "a pagina
     aparecendo atraves do bloco". */
  --uc-esqueleto:var(--uc-rule);
  --uc-esqueleto-brilho:var(--uc-paper);

  /* Duracao do brilho do esqueleto. Nao cabe em --uc-dur-1/2/3: aqueles tres
     medem TRANSICAO DE ESTADO (realce, controle, deslocamento) e o mais
     longo tem .28s -- um brilho de .28s nao le como "esta vindo", le como
     defeito de renderizacao. Este e' movimento AMBIENTE, em laco, e mora
     junto dos outros dois tokens de esqueleto porque so' eles o consomem.
     1,4s e' o intervalo em que o ciclo se completa sem competir com leitura
     (o proprio reset de movimento reduzido da 01-base.css o zera quando a
     pessoa pediu menos animacao). */
  --uc-esqueleto-dur:1.4s;

  /* --- forma: PERSONALIDADE B, aprovada em 04/09/2026 ---
     "Aprendizado com progresso", intensidade equilibrada: a MECANICA de
     progresso, nao a estetica infantil. Raio de controle sobe de 8px para
     12px; raio de superficie de 12px para 16px. */
  --uc-r-1:4px;    /* detalhe: marcador, selo pequeno */
  --uc-r-2:12px;   /* controle: botao, chip, campo */
  --uc-r-3:16px;   /* superficie: cartao, painel, caixa */
  --uc-r-max:9999px;

  /* Borda de 1,5px: mais presente que o fio de 1px do sistema antigo, longe
     dos 2-3px solidos do Duolingo, que somados a cor forte e' o que faz um
     produto de estudo parecer infantil para concurseiro adulto. */
  --uc-borda:1.5px;

  /* Peso tatil: sombra inferior SOLIDA, so no botao principal. E o unico
     lugar do sistema que a recebe -- espalhar isso e' o que vira brinquedo. */
  --uc-tatil:3px;

  /* Deslocamento do estado PRESSIONADO (:active). Diferente de --uc-tatil, que
     e' a SOMBRA de um botao so': este e' o movimento, e ele vale para todo
     controle que se pressiona -- chip, botao, opcao. Um valor, um nome, para
     os doze componentes nao escolherem cada um o seu 1px, 2px ou 3px.
     1px, e nao mais: e' o que o tema anterior ja usava no botao
     (`theme.css:515`, .uc-btn:active{transform:translateY(1px) scale(.97)}),
     e num controle de 13px de texto qualquer coisa acima disso le como
     "a pagina pulou", nao como "o dedo apertou".
     FORA DA GRADE DE 4px de proposito, pelo mesmo motivo de --uc-foco-largura:
     4px de deslocamento nao seria um toque, seria um salto. E' justamente esta
     linha que a Regra 10 (dimensao sem dono) passou a exigir: sem o token,
     `transform:translateY(1px)` entrava sem ser visto por regra nenhuma. */
  --uc-pressao:1px;

  /* Alvo de toque no dedo. E' um COMPROMISSO EXTERNO, nao uma escolha de
     ritmo: 44x44 e' o piso AAA da WCAG 2.5.5 e o numero do iOS HIG (o piso
     legal AA, 2.5.8, e' 24x24 e todo controle deste sistema ja passa dele no
     desktop). Por isso 44 nao esta -- nem deve estar -- na grade de 4px, que
     e' escala de espaco: 48px seria "o proximo degrau", nao "o compromisso".
     Mora aqui, e nao em cada componente, por dois motivos: doze componentes
     escreveriam 44 doze vezes; e quando a proxima regra da guarda passar a
     julgar width/height/min-* (ver o relatorio da tarefa C), este valor
     precisa ser um NOME para nao virar excecao cravada no lint -- excecao no
     lint e' a porta por onde a regra e' desligada. */
  --uc-alvo-toque:44px;

  /* O ponto de 1px da receita de "so' para leitor de tela"
     (.screen-reader-text, 01-base.css). E' CONSTANTE TECNICA, nao medida de
     layout: a caixa precisa existir (0x0 pode ser descartada da arvore de
     acessibilidade em alguns motores) e precisa ser pequena o bastante para
     nao ocupar espaco. 1px e' o valor da receita moderna, e nao ha "1px certo
     alternativo" -- ninguem escolhe isso, herda-se.
     Estava cravado como literal na 01-base.css e nao passava por regra
     nenhuma ate a Regra 11 (05/09/2026) -- exatamente o mesmo caso do
     `text-underline-offset:2px` que a Regra 10 obrigou a batizar. A saida e'
     a mesma de sempre: medida fora da grade se BATIZA no :root, nunca se
     isenta na propriedade. Excecao dentro do lint e' a porta por onde a regra
     e' desligada. */
  --uc-oculto-ponto:1px;

  /* Elevacao real e discreta: opacidade individual nunca passa de .05,
     como no sistema do Notion. Cartao NAO leva sombra (regra do Airbnb:
     a densidade vem do ritmo do texto, nao de moldura em volta de tudo). */
  --uc-elev-1:0 1px 2px rgba(15,20,25,.04);
  --uc-elev-2:0 2px 8px rgba(15,20,25,.05);

  /* --- movimento ---
     Referencia GitHub Primer: separa "realce" de "deslocamento" e nada mais. */
  --uc-ease:cubic-bezier(.23,1,.32,1);
  --uc-dur-1:.12s;  /* realce: cor, hover */
  --uc-dur-2:.18s;  /* padrao: estado de controle */
  --uc-dur-3:.28s;  /* deslocamento: painel, barra que entra ou sai */
}
