/* ==========================================================================
   site.css  ·  Forlegacy
   Layout e componentes. Não contém nenhum valor literal de cor ou de fonte:
   tudo vem de tokens.css. Escrito com propriedades lógicas (inline-start,
   block-end) para que a versão em árabe funcione com dir="rtl" sem CSS extra.
   ========================================================================== */

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--c-bg);scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto} *{animation:none!important;transition:none!important}}

body{
  margin:0;background:var(--c-bg);color:var(--c-ink);
  font-family:var(--f-body);font-size:var(--fs-base);line-height:var(--lh-normal);
  font-synthesis-weight:none;text-rendering:optimizeLegibility;
}

.wrap{max-inline-size:var(--w-page);margin-inline:auto;padding-inline:2rem;padding-block:var(--sp-6) var(--sp-7)}
.wrap::after{content:"";display:block;clear:both}

.skip{position:absolute;inset-inline-start:-9999px}
.skip:focus{position:fixed;inset-block-start:1rem;inset-inline-start:1rem;background:var(--c-ink);color:var(--c-inverse);padding:.5rem .75rem;z-index:99}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--c-focus);outline-offset:3px}

a{color:var(--c-accent);text-underline-offset:.18em;text-decoration-thickness:from-font}
a:hover{color:var(--c-accent-hover)}

/* --- rótulos em monoespaçada: o vocabulário visual do site ---------------- */
.label{
  font-family:var(--f-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-micro);
  text-transform:uppercase;color:var(--c-muted);font-weight:var(--fw-body);
}
.label b{color:var(--c-signal);font-weight:var(--fw-semi)}

/* --- barra de topo -------------------------------------------------------- */
.topbar{border-block-end:1px solid var(--c-rule)}
.topbar .inner{
  max-inline-size:var(--w-page);margin-inline:auto;padding:1rem 2rem;
  display:flex;gap:1.5rem;align-items:baseline;flex-wrap:wrap;
}
.brand{
  font-family:var(--f-display);font-weight:var(--fw-bold);font-size:1.05rem;
  letter-spacing:var(--ls-display);color:var(--c-ink);text-decoration:none;margin-inline-end:auto;
}
.brand span{color:var(--c-signal)}
.topbar nav{display:flex;gap:1.2rem}
.topbar nav a{font-family:var(--f-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-micro);text-transform:uppercase;text-decoration:none}

/* seletor de idioma */
.langbar{display:flex;gap:.4rem;flex-wrap:wrap}
.langbar button{
  font-family:var(--f-mono);font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;
  background:none;border:1px solid var(--c-rule);color:var(--c-muted);
  padding:.25rem .5rem;border-radius:var(--radius);cursor:pointer;
}
.langbar button[aria-pressed="true"]{border-color:var(--c-signal);color:var(--c-signal)}

/* --- página inicial ------------------------------------------------------- */
.hero{padding-block:var(--sp-6) var(--sp-5);border-block-end:1px solid var(--c-rule)}
.hero h1{
  font-family:var(--f-display);font-size:var(--fs-hero);line-height:var(--lh-tight);
  font-weight:var(--fw-bold);letter-spacing:var(--ls-display);
  margin:var(--sp-3) 0 var(--sp-3);max-inline-size:24ch;text-wrap:balance;
}
.hero p.lede{font-size:1.22rem;line-height:1.5;max-inline-size:50ch;color:var(--c-ink);margin:0}

.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:var(--sp-4);margin-block-start:var(--sp-5)}
.card{border-block-start:2px solid var(--c-signal);padding-block-start:var(--sp-2)}
.card h3{font-family:var(--f-display);font-size:1.05rem;font-weight:var(--fw-semi);margin:.4rem 0 .5rem;line-height:1.25}
.card p{font-size:var(--fs-small);color:var(--c-muted);margin:0;line-height:1.55}

.paperlist{list-style:none;padding:0;margin:var(--sp-4) 0 0}
.paperlist li{border-block-start:1px solid var(--c-rule);padding-block:var(--sp-3)}
.paperlist .meta{font-family:var(--f-mono);font-size:var(--fs-micro);letter-spacing:.08em;color:var(--c-muted);text-transform:uppercase}
.paperlist h3{font-family:var(--f-display);font-size:1.3rem;font-weight:var(--fw-semi);line-height:1.22;margin:.5rem 0 .5rem;max-inline-size:52ch}
.paperlist h3 a{text-decoration:none;color:var(--c-ink)}
.paperlist h3 a:hover{color:var(--c-signal)}
.paperlist p{margin:0;max-inline-size:62ch;color:var(--c-muted);font-size:.98rem}

/* --- artigo --------------------------------------------------------------- */
.eyebrow{margin:0 0 var(--sp-4);padding-block-end:var(--sp-2);border-block-end:1px solid var(--c-rule)}

article h1{
  font-family:var(--f-display);font-size:var(--fs-h1);line-height:var(--lh-tight);
  font-weight:var(--fw-bold);letter-spacing:var(--ls-display);
  margin:0 0 var(--sp-3);max-inline-size:52rem;text-wrap:balance;
}
.pubdate{font-family:var(--f-mono);font-size:var(--fs-micro);color:var(--c-muted);margin:0 0 var(--sp-5)}

/* assinatura visual: a banda de normalidade entre os limiares LT e UT */
.abstract{position:relative;background:var(--c-band);border-block:1px dashed var(--c-rule);padding:var(--sp-4) 2rem var(--sp-3);margin:0 0 var(--sp-4)}
.abstract::before,.abstract::after{
  position:absolute;inset-inline-end:.7rem;font-family:var(--f-mono);font-size:.62rem;
  letter-spacing:.1em;color:var(--c-muted);background:var(--c-bg);padding-inline:.4rem;
}
.abstract::before{content:"UT";inset-block-start:-.62rem}
.abstract::after{content:"LT";inset-block-end:-.62rem}
.abstract h2{margin:0 0 var(--sp-2)}
.abstract p{margin:0;font-size:1.05rem;max-inline-size:54rem}

.kw{font-family:var(--f-mono);font-size:.78rem;color:var(--c-muted);margin:0 0 var(--sp-6);line-height:var(--lh-loose)}
.kw span{color:var(--c-ink)}

article h2{
  font-family:var(--f-display);font-size:var(--fs-h2);line-height:1.2;font-weight:var(--fw-semi);
  letter-spacing:-.012em;margin:var(--sp-6) 0 var(--sp-3);max-inline-size:var(--w-measure);
  text-wrap:balance;clear:both;
}
article h2 .num{font-family:var(--f-mono);font-size:var(--fs-micro);color:var(--c-signal);display:block;margin-block-end:.45rem;letter-spacing:.1em}
article p{margin:0 0 var(--sp-3);max-inline-size:var(--w-measure)}
strong{font-weight:var(--fw-semi)}

sup.ref{font-family:var(--f-mono);font-size:.7rem;line-height:0}
sup.ref a{text-decoration:none;padding-inline:.05em}

.sig{font-family:var(--f-mono);font-size:.82em;letter-spacing:.04em;background:var(--c-band);padding:.1em .4em;border-radius:var(--radius);white-space:nowrap}
.sig .c{color:var(--c-accent);font-weight:var(--fw-bold)}
.sig .d{color:var(--c-signal);font-weight:var(--fw-bold)}

/* nota lateral: ocupa a margem sem estreitar a coluna de leitura */
.plain{
  float:inline-end;inline-size:var(--w-note);margin-inline-start:2.5rem;margin-block:.4rem var(--sp-3);
  border-block-start:2px solid var(--c-accent);padding-block-start:var(--sp-2);
}
.plain h3{font-family:var(--f-mono);font-size:.66rem;letter-spacing:var(--ls-micro);text-transform:uppercase;color:var(--c-accent);margin:0 0 .5rem;font-weight:var(--fw-semi)}
.plain p{font-size:.92rem;line-height:1.5;margin:0;max-inline-size:none}

.eq{font-size:1.15rem;margin-block:var(--sp-3);padding-inline-start:1.2rem;border-inline-start:2px solid var(--c-rule)}
.eq var{font-style:italic}

figure{margin:var(--sp-5) 0;clear:both}
figure img,figure svg{inline-size:100%;block-size:auto;display:block;border:1px solid var(--c-rule)}
figcaption{font-family:var(--f-mono);font-size:.7rem;line-height:1.55;color:var(--c-muted);margin-block-start:var(--sp-2);max-inline-size:52rem}
figcaption b{color:var(--c-ink);font-weight:var(--fw-semi)}

ol.roadmap{font-size:1rem;padding-inline-start:1.5rem;margin:var(--sp-3) 0 0;max-inline-size:52rem;columns:2;column-gap:3rem}
ol.roadmap li{margin-block-end:.6rem;break-inside:avoid}
ol.roadmap li::marker{font-family:var(--f-mono);font-size:.8rem;color:var(--c-signal)}

/* referências */
.refs{margin-block-start:var(--sp-6);border-block-start:1px solid var(--c-rule);padding-block-start:var(--sp-4);clear:both}
.refs h2{margin:0 0 var(--sp-3)}
.refs ol{padding:0;margin:0;list-style:none;counter-reset:r;columns:2;column-gap:3.5rem}
.refs li{counter-increment:r;position:relative;padding-inline-start:2.4rem;margin-block-end:.8rem;font-size:.85rem;line-height:1.48;break-inside:avoid}
.refs li::before{content:"[" counter(r) "]";position:absolute;inset-inline-start:0;font-family:var(--f-mono);font-size:.72rem;color:var(--c-muted)}
.refs li:target{background:var(--c-band);outline:.35rem solid var(--c-band)}

footer.colophon{margin-block-start:var(--sp-5);padding-block-start:var(--sp-3);border-block-start:1px solid var(--c-rule);font-family:var(--f-mono);font-size:.7rem;line-height:1.65;color:var(--c-muted);max-inline-size:52rem}

/* --- alternância de idioma na página inicial ------------------------------ */
[data-lang]{display:none}
[data-lang].is-active{display:block}

/* --- responsivo ----------------------------------------------------------- */
@media (max-width:60rem){
  body{font-size:1.0625rem}
  .wrap,.topbar .inner{padding-inline:1.3rem}
  .wrap{padding-block:var(--sp-5) var(--sp-6)}
  .plain{float:none;inline-size:auto;margin-inline:0;border-block-start:none;border-inline-start:3px solid var(--c-accent);padding:0;padding-inline-start:1.1rem}
  .abstract{padding-inline:1.2rem}
  .refs ol,ol.roadmap{columns:1}
  .topbar .inner{gap:.8rem}
}

@media print{
  :root{--c-band:#f2f2f2}
  body{font-size:10.5pt}
  .wrap{max-inline-size:none;padding:0}
  .topbar,.langbar,.skip{display:none}
  a{color:#000;text-decoration:none}
  figure,.refs li{break-inside:avoid}
}
