@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;1,400&family=Poppins:wght@400;500;600;700&display=swap');

/* TEMA CLARO (por defeito) */
:root {
  --ink:#1a1a2e; --text:#1f1f22; --muted:#6a6a72; --faint:#9a9aa2;
  --rule:#e3e1da; --bg:#fbfaf7; --panel:#ffffff; --accent-soft:#eceaf2;
  --maxw:46rem;
}
/* TEMA ESCURO (escolha manual) */
:root[data-theme="dark"] {
  --ink:#b9b6e8; --text:#d8d7d2; --muted:#9a99a2; --faint:#6d6c76;
  --rule:#2a2a35; --bg:#16161d; --panel:#1e1e27; --accent-soft:#26263a;
}
/* Segue o sistema quando o leitor ainda nao escolheu */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --ink:#b9b6e8; --text:#d8d7d2; --muted:#9a99a2; --faint:#6d6c76;
    --rule:#2a2a35; --bg:#16161d; --panel:#1e1e27; --accent-soft:#26263a;
  }
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin:0; background:var(--bg); color:var(--text);
  font-family:'Lora',Georgia,'Times New Roman',serif;
  font-size:1.075rem; line-height:1.75; text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  transition:background-color .25s ease, color .25s ease;
}
.wrap { max-width:var(--maxw); margin:0 auto; padding:0 1.5rem; }

.masthead { border-bottom:1px solid var(--rule); background:var(--panel); transition:background-color .25s ease,border-color .25s ease; }
.masthead .wrap { padding-top:1.1rem; padding-bottom:1.1rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.masthead .home { font-family:'Poppins',system-ui,sans-serif; font-weight:600; font-size:.82rem; letter-spacing:.02em; color:var(--ink); text-decoration:none; }
.masthead .home:hover { text-decoration:underline; }
.masthead .right { display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; row-gap:.55rem; justify-content:flex-end; }
.langbar { display:flex; gap:.1rem; font-family:'Poppins',system-ui,sans-serif; font-size:.78rem; }
.langbar a { color:var(--muted); text-decoration:none; padding:.2rem .55rem; border-radius:999px; }
.langbar a.active { color:var(--ink); font-weight:600; background:var(--accent-soft); }
.langbar a:hover { color:var(--ink); }

/* botao de tema */
.theme-toggle {
  appearance:none; -webkit-appearance:none; background:transparent; cursor:pointer;
  border:1px solid var(--rule); border-radius:999px; width:2rem; height:2rem; padding:0;
  display:inline-flex; align-items:center; justify-content:center; color:var(--ink);
  transition:border-color .15s ease,color .15s ease;
}
.theme-toggle:hover { border-color:var(--ink); }
.theme-toggle svg { width:1.05rem; height:1.05rem; display:block; }
.theme-toggle .icon-sun { display:none; }
.theme-toggle .icon-moon { display:block; }
:root[data-theme="dark"] .theme-toggle .icon-sun { display:block; }
:root[data-theme="dark"] .theme-toggle .icon-moon { display:none; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .theme-toggle .icon-sun { display:block; }
  :root:not([data-theme="light"]) .theme-toggle .icon-moon { display:none; }
}

.title-block { text-align:center; padding:4rem 0 2.5rem; }
.title-block .eyebrow { font-family:'Poppins',system-ui,sans-serif; font-size:.74rem; letter-spacing:.22em; text-transform:uppercase; color:var(--faint); margin:0 0 1.1rem; }
.title-block h1 { font-family:'Poppins',system-ui,sans-serif; font-weight:700; font-size:clamp(2rem,6vw,3rem); line-height:1.1; color:var(--ink); margin:0 0 .5rem; letter-spacing:-0.01em; }
.title-block .edition { font-family:'Poppins',system-ui,sans-serif; font-size:.78rem; color:var(--faint); letter-spacing:.02em; }
.title-rule { width:3.5rem; height:2px; background:var(--ink); border:0; margin:1.6rem auto 0; }

.part-head { text-align:center; margin:4.5rem 0 2.5rem; }
.part-head .label { font-family:'Poppins',system-ui,sans-serif; font-size:.74rem; letter-spacing:.22em; text-transform:uppercase; color:var(--faint); margin-bottom:.4rem; }
.part-head h2 { font-family:'Poppins',system-ui,sans-serif; font-weight:700; font-size:clamp(1.5rem,4.5vw,2rem); color:var(--ink); margin:0; }
.part-head .hair { width:2.5rem; height:1px; background:var(--rule); border:0; margin:1.2rem auto 0; }

.reading { padding-bottom:1rem; }
.reading .intro { color:var(--muted); font-size:1.02rem; margin:0 0 2rem; }
.reading p { margin:0 0 .85rem; }
.reading p.dialogue { padding-left:1.15rem; text-indent:0; }
.reading h3.case { font-family:'Poppins',system-ui,sans-serif; font-weight:600; font-size:.96rem; color:var(--ink); margin:2.2rem 0 .6rem; letter-spacing:.01em; }

.closing { margin:3rem 0 1rem; text-align:center; }
.closing .hair { width:2.5rem; height:1px; background:var(--rule); border:0; margin:0 auto 1.6rem; }
.closing p { color:var(--muted); font-size:1.02rem; margin:.5rem 0; }

.the-end { font-family:'Poppins',system-ui,sans-serif; font-weight:600; font-size:.8rem; letter-spacing:.2em; text-transform:uppercase; color:var(--faint); text-align:center; margin:3rem 0; }

.biblio { margin-top:2.5rem; border-top:1px solid var(--rule); padding-top:1.8rem; }
.biblio h3 { font-family:'Poppins',system-ui,sans-serif; font-weight:600; font-size:1.05rem; color:var(--ink); margin:0 0 1rem; }
.biblio ol { margin:0; padding:0; list-style:none; }
.biblio li { font-size:.92rem; color:var(--muted); margin:0 0 .5rem; line-height:1.55; }

.downloads { margin:3.5rem 0 1rem; padding:1.6rem 1.6rem 1.7rem; background:var(--panel); border:1px solid var(--rule); border-radius:12px; transition:background-color .25s ease,border-color .25s ease; }
.downloads h3 { font-family:'Poppins',system-ui,sans-serif; font-weight:600; font-size:.95rem; color:var(--ink); margin:0 0 .3rem; }
.downloads p { font-size:.9rem; color:var(--muted); margin:0 0 1.1rem; }
.dl-row { display:flex; gap:.7rem; flex-wrap:wrap; }
.dl-btn { font-family:'Poppins',system-ui,sans-serif; font-size:.85rem; font-weight:500; text-decoration:none; color:var(--ink); border:1px solid var(--ink); border-radius:8px; padding:.55rem 1.1rem; display:inline-flex; align-items:center; gap:.5rem; transition:background .15s ease,color .15s ease; }
.dl-btn:hover { background:var(--ink); color:var(--bg); }
.dl-btn .fmt { font-size:.72rem; color:var(--faint); }
.dl-btn:hover .fmt { color:var(--bg); opacity:.7; }

footer { border-top:1px solid var(--rule); margin-top:3.5rem; }
footer .wrap { padding:2rem 1.5rem 3rem; }
footer p { font-family:'Poppins',system-ui,sans-serif; font-size:.8rem; color:var(--faint); margin:.3rem 0; }
footer a { color:var(--muted); }

.landing { min-height:100vh; display:flex; flex-direction:column; }
.landing .topbar { display:flex; justify-content:flex-end; align-items:center; gap:.55rem; padding:1rem 1.5rem 0; }
.landing .hero { flex:1; display:flex; align-items:center; justify-content:center; text-align:center; padding:2rem 1.5rem 3rem; }
.landing .hero-inner { max-width:40rem; }
.landing .eyebrow { font-family:'Poppins',system-ui,sans-serif; font-size:.74rem; letter-spacing:.22em; text-transform:uppercase; color:var(--faint); margin:0 0 1.4rem; }
.landing h1 { font-family:'Poppins',system-ui,sans-serif; font-weight:700; font-size:clamp(2.2rem,7vw,3.4rem); line-height:1.08; color:var(--ink); margin:0 0 .4rem; letter-spacing:-0.015em; }
.landing .subtitle { font-style:italic; color:var(--muted); font-size:1.15rem; margin:.6rem 0 0; }
.landing .blurb { color:var(--text); font-size:1.05rem; line-height:1.7; margin:2.2rem auto 0; max-width:34rem; }
.landing .choose { font-family:'Poppins',system-ui,sans-serif; font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:var(--faint); margin:2.8rem 0 1rem; }
.lang-cards { display:flex; gap:.9rem; justify-content:center; flex-wrap:wrap; }
.lang-card { font-family:'Poppins',system-ui,sans-serif; text-decoration:none; border:1px solid var(--rule); border-radius:12px; background:var(--panel); padding:1.1rem 1.5rem; min-width:9.5rem; transition:border-color .15s ease,transform .15s ease,background-color .25s ease; }
.lang-card:hover { border-color:var(--ink); transform:translateY(-2px); }
.lang-card .lc-lang { display:block; font-weight:600; font-size:.95rem; color:var(--ink); }
.lang-card .lc-title { display:block; font-size:.8rem; color:var(--muted); margin-top:.25rem; font-style:normal; }
.landing footer { border:0; margin:0; }
.landing footer .wrap { padding:1.5rem; text-align:center; }

a:focus-visible, .lang-card:focus-visible, .dl-btn:focus-visible, .theme-toggle:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
@media (max-width:34rem) { body { font-size:1.02rem; } .title-block { padding-top:2.5rem; } .reading p.dialogue { padding-left:.7rem; } .masthead .wrap { justify-content:center; } .masthead .right { justify-content:center; } }

/* Rede de segurança: nunca permitir scroll horizontal */
html, body { overflow-x:hidden; }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior:auto; transition:none !important; } }

/* ============================================================
   Páginas de vídeo (fase 3) + ícone de player no cabeçalho
   ============================================================ */

/* Botão-ícone genérico no cabeçalho (voltar ao texto / ir para vídeo) */
.icon-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 2rem; height: 2rem; border-radius: 999px;
  border: 1px solid var(--rule); color: var(--ink);
  text-decoration: none;
  transition: border-color .15s ease, color .15s ease;
}
.icon-btn:hover { border-color: var(--ink); }
.icon-btn svg { width: 1.05rem; height: 1.05rem; display: block; }

/* Ícone de player no cabeçalho das páginas de texto */
.player-btn { color: var(--ink); }
.player-btn svg { width: 1.15rem; height: 1.15rem; }

/* Página de vídeo */
.video-main { padding-bottom: 2rem; }
.video-section { margin-top: 1rem; }
.video-heading {
  font-family: 'Poppins', system-ui, sans-serif;
  font-weight: 600; font-size: 1.15rem; color: var(--ink);
  text-align: center; margin: 0 0 .4rem;
}
.video-sub {
  text-align: center; color: var(--muted); font-size: .95rem;
  margin: 0 0 2rem;
}

/* Moldura 16:9 responsiva */
.video-frame {
  position: relative; width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 14px; overflow: hidden;
  background: var(--panel);
  border: 1px solid var(--rule);
}
/* Fallback para navegadores sem aspect-ratio */
@supports not (aspect-ratio: 16 / 9) {
  .video-frame { padding-top: 56.25%; height: 0; }
  .video-frame > * { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
}

/* Miniatura (facade) com botão de play */
.video-facade {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  cursor: pointer; border: 0;
  display: flex; align-items: center; justify-content: center;
}
.video-facade::after {
  content: ""; position: absolute; inset: 0;
  background: rgba(20,20,30,.28);
  transition: background .2s ease;
}
.video-facade:hover::after { background: rgba(20,20,30,.16); }
.video-facade:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }

.video-play {
  position: relative; z-index: 1;
  width: 68px; height: 48px;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,.35));
  transition: transform .15s ease;
}
.video-facade:hover .video-play { transform: scale(1.06); }
.video-play svg { width: 100%; height: 100%; display: block; }
.video-play .pl-bg { fill: #cc2b2b; opacity: .94; }
.video-facade:hover .video-play .pl-bg { fill: #e53935; opacity: 1; }

/* Iframe carregado após clique */
.video-iframe {
  position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
}

.video-back {
  text-align: center; margin: 1.6rem 0 0;
  font-family: 'Poppins', system-ui, sans-serif; font-size: .85rem;
}
.video-back a { color: var(--muted); text-decoration: none; }
.video-back a:hover { color: var(--ink); text-decoration: underline; }

@media (max-width: 34rem) {
  .video-frame { border-radius: 10px; }
  .video-play { width: 56px; height: 40px; }
}

/* ---------- Leitor de áudio ---------- */
.audio-box {
  background: var(--panel);
  border: 1px solid var(--rule);
  border-radius: 14px;
  padding: 1.6rem 1.4rem 1.1rem;
}
.audio-box audio { width: 100%; display: block; }
.audio-dl {
  text-align: center; margin: 1rem 0 0;
  font-family: 'Poppins', system-ui, sans-serif; font-size: .85rem;
}
.audio-dl a { color: var(--muted); text-decoration: none; }
.audio-dl a:hover { color: var(--ink); text-decoration: underline; }
@media (max-width: 34rem) {
  .audio-box { border-radius: 10px; padding: 1.1rem .9rem .8rem; }
}

/* ---------- Página de Links Externos ---------- */
.ext-section { margin: 2.6rem 0; }
.ext-heading {
  font-family: 'Poppins', system-ui, sans-serif;
  font-size: 1.05rem; font-weight: 600; color: var(--ink);
  margin: 0 0 1rem; letter-spacing: .01em;
}
.ext-heading .ext-tr { font-weight: 400; color: var(--faint); font-size: .85rem; }
.ext-list { display: flex; flex-direction: column; gap: .8rem; }
.ext-item {
  display: block; position: relative;
  background: var(--panel); border: 1px solid var(--rule); border-radius: 12px;
  padding: 1.05rem 3rem 1.05rem 1.15rem;
  text-decoration: none; color: inherit;
  transition: border-color .15s ease;
}
a.ext-item:hover { border-color: var(--ink); }
.ext-name {
  display: block; font-family: 'Poppins', system-ui, sans-serif;
  font-weight: 600; font-size: .98rem; color: var(--ink); margin-bottom: .2rem;
}
.ext-note { display: block; font-size: .84rem; color: var(--muted); line-height: 1.55; }
.ext-arrow {
  position: absolute; top: 1.15rem; right: 1.05rem;
  width: 1rem; height: 1rem; color: var(--faint);
}
a.ext-item:hover .ext-arrow { color: var(--ink); }
.ext-langs { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .7rem; }
.ext-langs a {
  font-family: 'Poppins', system-ui, sans-serif; font-size: .8rem;
  color: var(--ink); text-decoration: none;
  border: 1px solid var(--rule); border-radius: 999px;
  padding: .3rem .85rem; transition: border-color .15s ease;
}
.ext-langs a:hover { border-color: var(--ink); }

/* ---------- Percurso ---------- */
.trail-note {
  background: var(--panel); border: 1px solid var(--rule);
  border-left: 3px solid var(--ink);
  border-radius: 10px; padding: 1rem 1.2rem; margin: 1.8rem 0;
  font-size: .9rem;
}
.trail-note p { margin: 0 0 .5rem; }
.trail-note p:last-child { margin: 0; }
.trail-note .trail-start {
  font-family: 'Poppins', system-ui, sans-serif; font-weight: 600;
  font-size: .85rem; color: var(--ink); text-decoration: none;
}
.trail-note .trail-start:hover { text-decoration: underline; }
.trail-note-end { margin-top: 2.4rem; }
.trail-source { font-size: .84rem; color: var(--muted); margin: 2.2rem 0; text-align: center; }
.trail-source a { color: var(--ink); }
.trail-nav {
  display: flex; justify-content: space-between; gap: 1rem;
  margin: 2.6rem 0 1rem; flex-wrap: wrap;
}
.trail-nav a {
  flex: 1 1 16rem; display: block; text-decoration: none;
  background: var(--panel); border: 1px solid var(--rule); border-radius: 12px;
  padding: .9rem 1.1rem; transition: border-color .15s ease;
}
.trail-nav a:hover { border-color: var(--ink); }
.trail-nav .trail-next { text-align: right; margin-left: auto; }
.trail-dir {
  display: block; font-family: 'Poppins', system-ui, sans-serif;
  font-size: .72rem; letter-spacing: .06em; text-transform: uppercase;
  color: var(--faint); margin-bottom: .25rem;
}
.trail-t { display: block; font-family: 'Poppins', system-ui, sans-serif;
  font-weight: 600; font-size: .92rem; color: var(--ink); }

/* ---------- Página de contacto ---------- */
.contact-intro { text-align: center; }
.contact-cta { text-align: center; margin: 2.4rem 0 .8rem; }
.contact-btn {
  display: inline-block;
  font-family: 'Poppins', system-ui, sans-serif;
  font-weight: 600; font-size: .95rem;
  color: var(--ink); text-decoration: none;
  border: 1px solid var(--ink); border-radius: 999px;
  padding: .75rem 1.9rem;
  transition: opacity .15s ease;
}
.contact-btn:hover { opacity: .75; }
.contact-note {
  text-align: center; font-size: .8rem; color: var(--faint); margin: 0 0 2rem;
}
