/* App da Revista De Castro (/app/). Mesmas fontes e cores do portal: tinta, papel e ouro.
   Desenhado para celular primeiro; no computador vira uma coluna centralizada. */
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400 900;font-display:swap;src:url('/assets/fontes/playfair-var.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fontes/montserrat-var.woff2') format('woff2')}
:root{
  --tinta:#0B0B0C; --tinta-2:#151517; --tinta-3:#202024;
  --papel:#F2EDE4; --papel-2:#B9B3A8; --ouro:#C9A24A; --ouro-claro:#E3C77A;
  --linha:rgba(242,237,228,.12); --azul:#2F6BFF; --verde:#2BE07A;
  --display:'Playfair Display',Georgia,serif; --sans:'Montserrat','Helvetica Neue',Arial,sans-serif;
  --topo:calc(56px + env(safe-area-inset-top,0px)); --base:calc(64px + env(safe-area-inset-bottom,0px));
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--tinta)}
body{margin:0;min-height:100vh;background:var(--tinta);color:var(--papel);font-family:var(--sans);font-size:16px;line-height:1.5;
  padding:var(--topo) 0 var(--base);-webkit-tap-highlight-color:transparent}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--ouro);outline-offset:2px}
[hidden]{display:none!important}

/* topo fixo */
.ap-topo{position:fixed;inset:0 0 auto;z-index:20;height:var(--topo);padding:env(safe-area-inset-top,0px) 16px 0;
  display:flex;align-items:center;justify-content:space-between;background:rgba(11,11,12,.92);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--linha)}
.ap-marca img{height:32px;width:auto}
.ap-sino{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--linha);background:transparent;cursor:pointer}
.ap-sino.ligado{color:var(--ouro);border-color:var(--ouro)}

.ap-aviso-rede{position:sticky;top:var(--topo);z-index:15;margin:0;padding:8px 16px;background:var(--tinta-3);
  color:var(--ouro-claro);font-size:.82rem;text-align:center}

.ap-tela{max-width:640px;margin:0 auto;padding:12px 16px 24px;display:flex;flex-direction:column;gap:20px}

/* convite para instalar */
.ap-instalar{position:relative;overflow:hidden;border-radius:22px;padding:24px 20px 22px;color:#fff;
  background:linear-gradient(140deg,#6A1BFF 0%,#B517E8 52%,#FF2E93 100%);box-shadow:0 18px 40px rgba(0,0,0,.45)}
.ap-instalar h1{margin:0 0 8px;font-family:var(--display);font-style:italic;font-weight:700;font-size:1.85rem;line-height:1.1;text-wrap:balance}
.ap-instalar__txt{margin:0 0 16px;font-size:1rem;line-height:1.5;opacity:.95}
.ap-sobre{margin:0 0 8px;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;opacity:.85}
.ap-instalar__fone{display:flex;align-items:center;gap:12px;margin:0 0 18px;padding:10px 12px;border-radius:16px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22)}
.ap-instalar__fone img{width:44px;height:44px;border-radius:11px}
.ap-instalar__bolha{display:flex;flex-direction:column;font-size:.82rem;line-height:1.3}
.ap-instalar__bolha b{font-size:.86rem}
.ap-passos{display:flex;flex-direction:column;gap:10px;margin:0 0 16px}
.ap-passo{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:rgba(0,0,0,.18);font-size:.95rem;line-height:1.4}
.ap-passo b{flex:0 0 26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#5B12C9;font-size:.85rem}
.ap-passo svg{vertical-align:-4px}

.ap-bt{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 22px;border-radius:999px;
  border:1px solid rgba(255,255,255,.5);background:transparent;font-weight:700;font-size:1rem;cursor:pointer;text-decoration:none}
.ap-bt--forte{background:#fff;color:#5B12C9;border-color:#fff;box-shadow:0 8px 20px rgba(0,0,0,.25)}
.ap-instalar .ap-bt{width:100%;margin-top:8px}

/* avisos (notificação) */
.ap-avisos{display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:18px;background:var(--tinta-2);border:1px solid var(--ouro)}
.ap-avisos h2{margin:0 0 4px;font-family:var(--display);font-size:1.3rem;line-height:1.2}
.ap-avisos p{margin:0;color:var(--papel-2);font-size:.95rem}
.ap-avisos .ap-bt--forte{background:var(--ouro);border-color:var(--ouro);color:var(--tinta)}
.ap-avisos .ap-bt{border-color:var(--linha)}

/* abas de editoria */
.ap-abas{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:2px 16px 4px}
.ap-abas::-webkit-scrollbar{display:none}
.ap-aba{flex:0 0 auto;min-height:36px;padding:6px 14px;border-radius:999px;border:1px solid var(--linha);background:transparent;
  font-size:.82rem;font-weight:600;letter-spacing:.02em;cursor:pointer;white-space:nowrap}
.ap-aba[aria-pressed="true"]{background:var(--papel);color:var(--tinta);border-color:var(--papel)}

/* manchete */
.ap-manchete{position:relative;display:block;text-decoration:none;border-radius:18px;overflow:hidden;background:var(--tinta-2)}
.ap-manchete__foto{aspect-ratio:3/4;max-height:72vh;width:100%;object-fit:cover}
.ap-manchete__txt{position:absolute;inset:auto 0 0;padding:60px 18px 18px;background:linear-gradient(to top,rgba(11,11,12,.96) 30%,rgba(11,11,12,0))}
.ap-manchete h2{margin:6px 0 0;font-family:var(--display);font-weight:700;font-size:1.7rem;line-height:1.12;text-wrap:balance}

.ap-rotulo{margin:4px 0 -6px;font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ouro)}
.ap-ed{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ouro)}
.ap-nova{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:999px;background:var(--ouro);color:var(--tinta);font-size:.62rem;letter-spacing:.08em}

/* lista de matérias */
.ap-lista{display:flex;flex-direction:column}
.ap-item{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px 0;border-bottom:1px solid var(--linha)}
.ap-item__foto{width:96px;aspect-ratio:3/4;object-fit:cover;border-radius:10px;background:var(--tinta-3)}
.ap-item a{text-decoration:none;display:flex;flex-direction:column;gap:4px;min-width:0}
.ap-item h3{margin:0;font-family:var(--display);font-weight:600;font-size:1.08rem;line-height:1.25;text-wrap:pretty}
.ap-item p{margin:0;font-size:.82rem;color:var(--papel-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ap-quando{font-size:.74rem;color:var(--papel-2)}
.ap-salvar{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--linha);background:transparent;cursor:pointer;color:var(--papel-2)}
.ap-salvar[aria-pressed="true"]{color:var(--ouro);border-color:var(--ouro)}
.ap-vazio,.ap-nota{margin:0;color:var(--papel-2);font-size:.92rem}
.ap-mais{margin:18px auto 0}

/* menu de baixo */
.ap-base{position:fixed;inset:auto 0 0;z-index:20;height:var(--base);padding:0 8px env(safe-area-inset-bottom,0px);
  display:grid;grid-template-columns:repeat(4,1fr);background:rgba(11,11,12,.95);backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);border-top:1px solid var(--linha)}
.ap-base button,.ap-base a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;background:transparent;
  font-size:.7rem;font-weight:600;color:var(--papel-2);text-decoration:none;cursor:pointer}
.ap-base [aria-current="page"]{color:var(--ouro)}

@media (min-width:760px){
  .ap-manchete__foto{aspect-ratio:16/10}
  .ap-item{grid-template-columns:120px minmax(0,1fr) auto}
  .ap-item__foto{width:120px}
}
@media (prefers-reduced-motion:no-preference){
  .ap-item,.ap-manchete{animation:ap-entra .35s ease-out both}
  @keyframes ap-entra{from{opacity:.001;transform:translateY(6px)}to{opacity:1;transform:none}}
}
