/* =========================================================
   MODO LIVRO — o guia digital como livro aberto na mesa.
   Guia visual: "B1 - os 4 quadros.png", quadro LIVRO NA MESA.
   ========================================================= */
/* A pagina e uma coluna com a altura REAL da tela: cabecalho, livro, controles.
   100vh no iPhone e a altura SEM a barra do navegador — estourava a tela e o
   cabecalho sumia depois do zoom. 100dvh acompanha a barra (o livro.js poe a
   altura em px nos navegadores sem dvh). Sem overflow:hidden no body: se algo
   rolar, a rolagem normal sempre traz o cabecalho de volta. */
body.pagina-livro{background:#0b0907;min-height:0;height:100vh;height:100dvh;display:flex;flex-direction:column;
  /* o iPhone deitado aumenta o texto sozinho: trilhos e paginas sairiam do tamanho medido */
  -webkit-text-size-adjust:100%;text-size-adjust:100%}
.pagina-livro .topo{position:relative;z-index:6;flex:none;background:rgba(10,8,6,.78);backdrop-filter:blur(3px)}
/* o selo "1.0" do logo (.logo-versao) vem do estilo.css: mesmo visual do index.html */
html.modo-foco .some-no-foco{display:none!important}
.pagina-livro [hidden]{display:none!important}

/* ---------- a mesa (fundo fixo, atras de tudo) ---------- */
.fundo-mesa{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;
  background:
    radial-gradient(ellipse 60% 50% at 12% 18%, rgba(255,176,60,.16), transparent 62%),
    radial-gradient(ellipse 90% 70% at 50% 60%, rgba(120,70,30,.14), transparent 70%),
    repeating-linear-gradient(97deg, #140f0a 0 7px, #171009 7px 15px, #110c07 15px 23px),
    #0D0D0D;
  background-size:cover;background-position:center}
.com-arte .fundo-mesa{background-color:#0b0907;background-repeat:no-repeat}
/* vinheta: escurece as bordas e deixa o centro (a leitura) em primeiro plano */
.fundo-mesa::after{content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 75% 80% at 50% 50%, transparent 55%, rgba(0,0,0,.45) 100%)}
.luz-mesa{position:absolute;left:-10%;top:-12%;width:70%;height:80%;
  background:radial-gradient(ellipse at 22% 30%, rgba(255,170,70,.13), transparent 60%);
  animation:luzMesa 5.2s ease-in-out infinite;mix-blend-mode:screen}
@keyframes luzMesa{0%,100%{opacity:.75}38%{opacity:1}52%{opacity:.82}70%{opacity:.96}}

/* ---------- efeitos vivos sobre a arte ---------- */
.fx{position:absolute;inset:0;display:none}
.com-fx .fx{display:block}
.fx > *{position:absolute;pointer-events:none}
.fx-luz{border-radius:50%;transform:translate(-50%,-50%);mix-blend-mode:screen;
  background:radial-gradient(closest-side, rgba(255,160,60,.20), rgba(255,140,40,.07) 55%, transparent);
  animation:fxLuz 3.4s ease-in-out infinite}
@keyframes fxLuz{0%,100%{opacity:.8;transform:translate(-50%,-50%) scale(1)}30%{opacity:1;transform:translate(-50%,-50%) scale(1.03)}
  55%{opacity:.86}75%{opacity:.98;transform:translate(-50%,-50%) scale(1.015)}}
.fx-halo{border-radius:50%;transform:translate(-50%,-50%);mix-blend-mode:screen;
  background:radial-gradient(closest-side, rgba(255,214,140,.55), rgba(255,170,60,.18) 45%, transparent);
  animation:fxHalo 1.9s ease-in-out infinite}
@keyframes fxHalo{0%,100%{opacity:.7}20%{opacity:.95}45%{opacity:.62}70%{opacity:1}85%{opacity:.78}}
.fx-chama{transform:translate(-50%,-62%);mix-blend-mode:screen;filter:blur(.6px);overflow:visible}
.fx-chama .lingua{transform-box:fill-box;transform-origin:50% 100%}
.fx-chama .l1{animation:lingua 1.3s ease-in-out infinite;opacity:.75}
.fx-chama .l2{animation:lingua 1s ease-in-out infinite reverse}
@keyframes lingua{0%,100%{transform:scale(1,1) skewX(0)}25%{transform:scale(.92,1.08) skewX(-3deg)}
  50%{transform:scale(1.05,.94) skewX(2deg)}75%{transform:scale(.96,1.05) skewX(-1.5deg)}}
.fx-agulha{transform:translate(-50%,-50%);opacity:.8}
.agulha-viva{transform-origin:50% 50%;transform-box:view-box;animation:agulha 7s ease-in-out infinite}
.fx-caneta{transform-origin:0 0;height:3px;border-radius:2px;overflow:hidden;opacity:.9}
.fx-caneta i{position:absolute;top:0;bottom:0;width:30%;left:-30%;
  background:linear-gradient(90deg,transparent,rgba(255,226,170,.75),transparent);
  animation:brilhoCaneta 6.5s ease-in-out infinite}
@keyframes brilhoCaneta{0%,62%{left:-30%}88%,100%{left:105%}}
.fx-livrinho{transform:translate(-50%,-50%)}
.fx-livrinho .remendo{position:absolute;inset:-20% -26%;border-radius:46%;
  /* couro: granulado por cima do tom da capa, com a borda sumindo na arte */
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='90' height='90'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.6' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .5  0 0 0 0 .48  0 0 0 0 .45  0 0 0 .13 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"), #0c0b09;
  -webkit-mask:radial-gradient(closest-side, #000 70%, rgba(0,0,0,.8) 84%, transparent);
  mask:radial-gradient(closest-side, #000 70%, rgba(0,0,0,.8) 84%, transparent)}
.fx-livrinho img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
  filter:sepia(1) saturate(3.4) hue-rotate(-30deg) brightness(.92) drop-shadow(0 0 5px rgba(255,110,40,.55));
  opacity:.9;transform:rotate(-3deg);animation:gravado 4.6s ease-in-out infinite}
@keyframes gravado{0%,100%{opacity:.82}50%{opacity:.98}}

/* objetos CSS (fallback) — nos cantos da mesa, como na arte B1 */
.objeto{position:absolute;z-index:1}
.lamparina{left:2.5%;top:9%;width:clamp(110px,11vw,180px)}
.bussola{right:3%;top:11%;width:clamp(90px,8.5vw,140px)}
.caderno{right:2.5%;bottom:14%;width:clamp(110px,11vw,180px)}
.com-fx .objeto{display:none}
.chama{transform-origin:50% 100%;animation:chama 1.6s ease-in-out infinite}
@keyframes chama{0%,100%{transform:scale(1,1) translateX(0)}25%{transform:scale(.94,1.1) translateX(-.7px)}
  50%{transform:scale(1.05,.95) translateX(.6px)}75%{transform:scale(.97,1.06) translateX(-.4px)}}
.halo{animation:halo 4.2s ease-in-out infinite;transform-origin:center}
@keyframes halo{0%,100%{opacity:.55}50%{opacity:.95}}
.agulha{transform-origin:50% 50%;animation:agulha 7s ease-in-out infinite}
@keyframes agulha{0%,100%{transform:rotate(-7deg)}30%{transform:rotate(5deg)}55%{transform:rotate(-3deg)}80%{transform:rotate(2deg)}}
.caneta{transform-origin:85% 85%;animation:caneta 9s ease-in-out infinite}
@keyframes caneta{0%,100%{transform:rotate(0)}50%{transform:rotate(-1.4deg) translateY(-1px)}}

/* ---------- area do livro ---------- */
/* o livro ocupa o que sobra entre o cabecalho e os controles; o livro.js mede
   esta caixa (nao a janela) pra decidir o tamanho das paginas */
.mesa-wrap{position:relative;z-index:2;flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column}
.mesa{position:relative;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  padding-top:6px;transition:transform .3s ease}
.fraio-topo{height:30px;width:auto;margin:0 0 4px;opacity:.78;
  filter:drop-shadow(0 0 8px rgba(255,170,50,.45));animation:fraioPulso 4.8s ease-in-out infinite}
@keyframes fraioPulso{0%,100%{opacity:.62;filter:drop-shadow(0 0 5px rgba(255,170,50,.30))}
  50%{opacity:.9;filter:drop-shadow(0 0 12px rgba(255,170,50,.55))}}

/* o livro: capa de couro, blocos de folhas nas bordas, sombra na mesa */
.livro{position:relative;padding:var(--moldura,14px);border-radius:8px;
  background:linear-gradient(180deg,#2a1d12,#1a120b 60%,#140e08);
  box-shadow:0 40px 70px rgba(0,0,0,.8), 0 12px 24px rgba(0,0,0,.55), 0 0 110px rgba(255,150,50,.08),
    inset 0 1px 0 rgba(255,210,150,.12), inset 0 0 0 1px #3a2a19}
.livro::before,.livro::after{content:'';position:absolute;top:calc(var(--moldura,14px) + 3px);bottom:calc(var(--moldura,14px) - 5px);width:7px;
  background:repeating-linear-gradient(180deg,#3d2f20 0 1px,#2a2016 1px 3px);border-radius:2px;z-index:0}
.livro::before{left:calc(var(--moldura,14px) - 6px)}
.livro::after{right:calc(var(--moldura,14px) - 6px)}

.folhas{position:relative;z-index:1;perspective:2600px;transform-style:preserve-3d}
.pag{position:absolute;top:0;width:var(--W);height:var(--H)}
#pEsq{left:0}
#pDir{left:var(--W)}
.folhas.uma #pEsq{display:none}
.folhas.uma #pDir{left:0}
.lombada{position:absolute;top:0;bottom:0;left:var(--W);width:64px;transform:translateX(-50%) translateZ(0.5px);
  background:linear-gradient(90deg,transparent,rgba(0,0,0,.38) 38%,rgba(0,0,0,.62) 50%,rgba(0,0,0,.38) 62%,transparent);
  pointer-events:none;z-index:4}
.folhas.uma .lombada{left:0;width:26px;transform:none;
  background:linear-gradient(90deg,rgba(0,0,0,.55),transparent)}

/* ---------- o papel ---------- */
.papel{position:absolute;inset:0;overflow:hidden;color:#E3DCCB;border-radius:2px;
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .62  0 0 0 0 .5  0 0 0 0 .34  0 0 0 .10 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"),
    radial-gradient(ellipse 120% 90% at 50% 40%, #1d1812, #15110c 70%, #110d09);
  box-shadow:inset 0 0 40px rgba(0,0,0,.35)}
.papel.esq{box-shadow:inset -26px 0 38px -18px rgba(0,0,0,.75), inset 0 0 40px rgba(0,0,0,.3)}
.papel.dir{box-shadow:inset 26px 0 38px -18px rgba(0,0,0,.75), inset 0 0 40px rgba(0,0,0,.3)}
.papel .janela{position:absolute;overflow:hidden}
.papel .cabeca{position:absolute;top:11px;left:0;right:0;text-align:center;font-family:var(--mono);
  font-size:9px;letter-spacing:.2em;color:#6f6454;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 30px}
.papel .folio{position:absolute;bottom:9px;left:0;right:0;text-align:center;font-family:var(--mono);
  font-size:10px;color:#6f6454;letter-spacing:.14em}
.papel.branco .marca{position:absolute;inset:0;background:url("F-Raio/f-raio-marca-dagua-700.png") center/46% no-repeat;opacity:.05}
.papel.borrao .linhas{position:absolute;opacity:.22;
  background:repeating-linear-gradient(180deg,#b8a98d 0 2px,transparent 2px 13px);
  -webkit-mask:linear-gradient(90deg,#000 0 70%,transparent 96%);mask:linear-gradient(90deg,#000 0 70%,transparent 96%)}
.papel.cadeado .tranca{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;text-align:center;padding:30px}
.tranca .cad{font-size:54px;filter:grayscale(.3) drop-shadow(0 0 14px rgba(92,200,240,.35))}
.tranca .q{font-family:Anton,Impact,sans-serif;font-size:44px;letter-spacing:.1em;color:#5CC8F0}
.tranca .msg{font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:#8a857b;text-transform:uppercase}

/* ---------- a folha virando ---------- */
.folha{position:absolute;top:0;width:var(--W);height:var(--H);transform-style:preserve-3d;pointer-events:none;z-index:6}
.folha.dir{left:var(--W);transform-origin:0 50%}
.folhas.uma .folha.dir{left:0}
.folha.esq{left:0;transform-origin:100% 50%}
.folha .face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;
  box-shadow:0 0 18px rgba(0,0,0,.45)}
.folha .verso{transform:rotateY(180deg)}
.folha .face .luz{position:absolute;inset:0;opacity:0;pointer-events:none}
.folha.dir .frente .luz,.folha.esq .verso .luz{background:linear-gradient(90deg,rgba(0,0,0,.65),rgba(0,0,0,.15) 40%,rgba(255,220,170,.06) 85%,rgba(0,0,0,.2))}
.folha.esq .frente .luz,.folha.dir .verso .luz{background:linear-gradient(270deg,rgba(0,0,0,.65),rgba(0,0,0,.15) 40%,rgba(255,220,170,.06) 85%,rgba(0,0,0,.2))}
.folha .papel.costas{background:radial-gradient(ellipse at 50% 40%,#1d1812,#120e0a)}
.sombra-chao{position:absolute;top:0;width:var(--W);height:var(--H);pointer-events:none;z-index:5;opacity:0}
.sombra-chao.dir{left:var(--W);background:linear-gradient(90deg,rgba(0,0,0,.7),rgba(0,0,0,.2) 55%,transparent)}
.sombra-chao.esq{left:0;background:linear-gradient(270deg,rgba(0,0,0,.7),rgba(0,0,0,.2) 55%,transparent)}
.folhas.uma .sombra-chao.dir{left:0}

/* ---------- tipografia das paginas ---------- */
.fluxo{column-fill:auto;color:#E3DCCB;line-height:1.58;box-sizing:border-box}
.fluxo h1,.fluxo h2,.fluxo h3{font-family:Anton,Impact,sans-serif;text-transform:uppercase;
  letter-spacing:.02em;line-height:1.1;color:#FFF3DF;break-after:avoid;margin:.9em 0 .4em}
.fluxo h1{font-size:1.5em}
.fluxo h1.abre-fase{font-size:1.85em;color:var(--am);border-bottom:1px solid #332718;padding-bottom:.25em;margin-top:.2em}
.fluxo h2{font-size:1.14em}.fluxo h3{font-size:1em;color:#E8DCC2}
.fluxo p{margin:.55em 0}
/* link sem espaco (@impulsoconsciente.fbk) com zoom alto: quebra em vez de vazar pra pagina do lado */
.fluxo a{color:#FF8A4A;overflow-wrap:anywhere}
.fluxo strong{color:#FFF3DF}
.fluxo ul,.fluxo ol{padding-left:1.15em;margin:.5em 0}
.fluxo li{margin:.25em 0}
.fluxo code,.fluxo pre{font-family:var(--mono);font-size:.84em;background:#100c07;
  border:1px solid #2e2419;border-radius:4px;color:#DCC9A4}
.fluxo code{padding:1px 4px}
.fluxo pre code{border:0;padding:0;background:none;font-size:1em}
.fluxo pre{padding:9px;white-space:pre-wrap;word-break:break-word;overflow:hidden;position:relative}
.fluxo pre.codigo{padding-top:26px}
.fluxo pre.prompt{border-left:3px solid var(--lar);padding:26px 10px 10px;font-family:Inter,sans-serif}
.fluxo pre.prompt::before{content:"▸ PROMPT · COPIE, AJUSTE OS [COLCHETES] E COLE";position:absolute;top:7px;left:10px;
  font-family:var(--mono);font-size:.62em;letter-spacing:.07em;color:var(--lar);max-width:calc(100% - 90px);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fluxo blockquote{margin:.7em 0;padding:8px 11px;background:rgba(16,12,7,.8);border-left:3px solid var(--lar);color:#E3DCCB}
.fluxo table{border-collapse:collapse;width:100%;font-size:.82em}
.fluxo th,.fluxo td{border:1px solid #30261b;padding:5px 6px;text-align:left}
/* pagina estreita (celular deitado): tabela e codigo quebram a palavra em vez de
   vazar pra coluna do lado, que e a pagina seguinte */
.fluxo th,.fluxo td,.fluxo code{overflow-wrap:anywhere}
/* a 1a coluna costuma ser um nome curto (Notion, Gmail, skill-creator): nao parte a palavra, as outras encolhem */
.fluxo td:first-child,.fluxo th:first-child,.fluxo td:first-child code{overflow-wrap:normal}
.fluxo hr{border:0;border-top:1px solid #30261b;margin:1.1em 0}
.fluxo img{max-width:100%;height:auto;border-radius:4px;display:block;margin:.6em auto}
.fluxo img.pagina-abertura{max-height:100%;width:auto;object-fit:contain;margin:0 auto;break-after:column}
.fluxo p.nav-fase{font-family:var(--mono);font-size:.7em;letter-spacing:.1em;color:#7a6e5c}
.fluxo .url{word-break:break-all;color:#FFB07A}
/* trecho sendo narrado (Ouvir): so fundo e sombra, que nao mexem no tamanho — a paginacao fica igual */
.fluxo .lendo{background:rgba(234,179,8,.11);box-shadow:0 0 0 3px rgba(234,179,8,.11);border-radius:3px;transition:background .3s}

/* ---------- botoes de copiar ---------- */
.copiar{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.05em;line-height:1.4;
  background:rgba(255,138,74,.07);color:#cfae80;border:1px solid #3d2e1d;border-radius:5px;
  padding:2px 7px;cursor:pointer;opacity:.78;transition:opacity .15s,border-color .15s,color .15s;text-transform:none}
.copiar:hover{opacity:1;border-color:var(--lar);color:#FFD9B0}
.copiar.ok{color:#3FD6C4;border-color:#2c6f66;opacity:1}
pre > .copiar{position:absolute;top:5px;right:6px;z-index:2}
.copiar.mini{display:inline-block;margin:0 0 0 5px;padding:0 5px;font-size:8.5px;vertical-align:1px;white-space:nowrap}

/* ---------- area de medicao (invisivel) ---------- */
/* overflow:hidden: as colunas de um capitulo longo nao criam rolagem na pagina enquanto sao medidas */
.medidor{position:absolute;left:-30000px;top:0;width:1px;height:1px;overflow:hidden;visibility:hidden;pointer-events:none}

/* ---------- aviso ---------- */
.aviso{position:fixed;left:50%;bottom:calc(var(--alt-ctl,58px) + 26px);transform:translateX(-50%) translateY(20px);z-index:20;
  background:#16120d;border:1px solid #4a3822;color:var(--creme);font-family:var(--mono);font-size:12px;
  letter-spacing:.06em;padding:10px 16px;border-radius:10px;opacity:0;pointer-events:none;
  transition:opacity .25s,transform .25s;box-shadow:0 10px 30px rgba(0,0,0,.6);max-width:calc(100vw - 32px);text-align:center}
.aviso.on{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---------- controles ---------- */
.controles{position:relative;flex:none;z-index:8;background:rgba(10,8,6,.92);backdrop-filter:blur(4px);
  border-top:1px solid var(--line);padding:9px 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.controles .bt{font-family:var(--mono);font-size:12px;background:#1b1b18;color:var(--creme);
  border:1px solid var(--line);border-radius:8px;padding:8px 14px;cursor:pointer;white-space:nowrap}
.controles .bt:hover{border-color:var(--lar)}
.controles .bt:disabled{opacity:.35;cursor:default}
.controles .conta{font-family:var(--mono);font-size:11.5px;color:var(--muted);letter-spacing:.1em;white-space:nowrap}
.controles select{width:auto;max-width:340px;flex:1 1 200px;min-width:0;box-sizing:border-box}
.controles select option:disabled{color:#6f6a62}
.controles .zoom,.controles .ouvir{display:inline-flex;align-items:center;gap:6px}
.controles .ouvir .bt.on{border-color:var(--am);color:var(--am)}
.controles .vel{padding-left:9px;padding-right:9px;min-width:52px}
.controles .voz{padding-left:10px;padding-right:10px}
.controles .voz[aria-expanded="true"]{border-color:var(--am);color:var(--am)}

/* ---------- painel de voz e volume do Ouvir (flutua acima do botao 🗣) ---------- */
.painel-voz{position:fixed;z-index:20;width:232px;max-width:calc(100vw - 16px);box-sizing:border-box;
  background:#0D0D0D;border:1px solid #4a3822;border-radius:12px;padding:12px 12px 10px;color:var(--creme);
  box-shadow:0 14px 40px rgba(0,0,0,.65),0 0 0 1px rgba(245,183,0,.05)}
.painel-voz .pv-rot{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 7px;
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.painel-voz .pv-rot b{color:#F5B700;font-weight:600;letter-spacing:.06em}
.painel-voz .pv-vozes{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.painel-voz .pv-op{font-family:var(--mono);font-size:12px;letter-spacing:.04em;text-align:left;background:#1b1b18;color:var(--creme);
  border:1px solid var(--line);border-radius:8px;padding:8px 10px;cursor:pointer}
.painel-voz .pv-op::before{content:'○';display:inline-block;width:1.4em;color:var(--muted)}
.painel-voz .pv-op:hover{border-color:#FF5A2A}
.painel-voz .pv-op[aria-checked="true"]{border-color:#F5B700;color:#F5B700;background:rgba(245,183,0,.07)}
.painel-voz .pv-op[aria-checked="true"]::before{content:'●';color:#F5B700}
.painel-voz .pv-vol{display:block;width:100%;margin:2px 0 0;accent-color:#F5B700;cursor:pointer}
/* indicador e dica nunca quebram linha: a altura da barra fica estavel e a
   paginacao (que desconta essa altura) nao muda quando o texto muda */
#indLeitura{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis}
.dica{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-family:var(--mono);font-size:10px;color:#5f5a52;letter-spacing:.1em}
@media(max-width:1500px){.dica{display:none}}

/* ---------- barrinha da tela cheia ---------- */
.barra-foco{display:none;position:fixed;left:50%;bottom:10px;transform:translateX(-50%);z-index:9;gap:6px;align-items:center;
  background:rgba(10,8,6,.74);backdrop-filter:blur(4px);border:1px solid rgba(237,231,218,.10);border-radius:99px;padding:5px;
  opacity:.62;transition:opacity .2s}
.barra-foco:hover,.barra-foco:focus-within{opacity:1}
.barra-foco .bt{font-family:var(--mono);font-size:12px;letter-spacing:.06em;background:#1b1b18;color:var(--creme);
  border:1px solid var(--line);border-radius:99px;padding:8px 13px;min-width:42px;cursor:pointer;white-space:nowrap}
.barra-foco .bt:disabled{opacity:.35;cursor:default}
html.modo-foco .barra-foco{display:flex}
html.modo-foco .mesa-wrap{padding-bottom:54px}

/* iOS amplia a pagina sozinho ao tocar num select com letra menor que 16px — era o "zoom que prende" */
@media(pointer:coarse){ .controles select{font-size:16px} }

@media(max-width:860px){
  .objeto{display:none}
  .dica{display:none}
}

/* ---------- tablet deitado (e janela larga de 760 a 1339 px) ----------
   15/10, relato do Kaue (tablet Android deitado): entre 760 e 1339 px de largura o
   cabecalho do Livro (logo + 10 botoes = 1320 px) quebrava em 2 linhas (3 em 1024 px)
   e comia ~40 px da altura do livro, justo onde a altura e o recurso escasso. Aqui os
   botoes ficam so um pouco mais justos (so na horizontal: a altura deles nao muda) e o
   cabecalho cabe numa linha de 1180 px pra cima (iPad, tablet Android de 1280 px).
   Nao vale pro celular deitado (altura ate 520 px, tem o trilho proprio, abaixo) nem
   pra tela em pe; PC com 1340 px ou mais de largura nao muda. */
@media(orientation:landscape) and (min-width:760px) and (max-width:1339px) and (min-height:521px){
  .pagina-livro .topo{padding-left:14px;padding-right:14px;column-gap:10px}
  .pagina-livro .logo{font-size:22px}
  .pagina-livro .modos{gap:5px}
  .pagina-livro .modos > a,.pagina-livro .modos > button{letter-spacing:.05em;padding-left:9px;padding-right:9px}
  .pagina-livro .modos #btInsights,.pagina-livro .modos .nn-grupo .nn-bt-fone{letter-spacing:.05em;padding-left:8px;padding-right:8px}
}

/* ---------- celular em pe ----------
   (nao vale pro celular deitado de tela estreita: esse usa os trilhos laterais, abaixo) */
@media(max-width:759px) and (orientation:portrait), (max-width:759px) and (min-height:521px){
  .pagina-livro .topo{padding:8px 10px;gap:6px 8px}
  .pagina-livro .logo{font-size:17px}
  .pagina-livro .modos{gap:4px;flex-wrap:wrap}   /* 09/10: em 375px os botoes do fim (idioma, app, tour) saiam da tela */
  .pagina-livro .modos a,.pagina-livro .modos button{font-size:10px;letter-spacing:.03em;padding:6px 8px}
  .pagina-livro .topo .btn-tela-cheia .tc-rot{display:none}
  /* 3 linhas fixas: capitulo + ouvir · setas, paginas e zoom · progresso */
  .controles{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;
    grid-template-areas:"sel sel sel sel" "ant prox conta zoom" "ind ind ind ind";gap:6px;padding:7px 8px 6px}
  .controles.tem-ouvir{grid-template-areas:"sel sel sel ouvir" "ant prox conta zoom" "ind ind ind ind"}
  .controles .bt{padding:7px 10px;font-size:11px}
  .controles .rot-longo{display:none}
  #bAnt{grid-area:ant;min-width:46px}#bProx{grid-area:prox;min-width:46px}
  .controles select{grid-area:sel;max-width:none;width:100%;padding:7px 9px}
  #conta{grid-area:conta;text-align:center;font-size:10px;letter-spacing:.06em;overflow:hidden;text-overflow:ellipsis}
  .controles .zoom{grid-area:zoom;gap:4px}
  .controles .zoom .bt{padding:7px 11px}
  #zv{font-size:10px;letter-spacing:.02em}
  .controles .ouvir{grid-area:ouvir;gap:4px}
  .controles .vel{min-width:0;padding-left:7px;padding-right:7px}
  .controles .voz{padding-left:8px;padding-right:8px}
  .controles .rot-voz{display:none}
  #indLeitura{grid-area:ind;font-size:10px;letter-spacing:.05em;line-height:1.2}
  .fraio-topo{height:22px;margin-bottom:2px}
  .mesa{margin:auto 0}   /* sobra de altura vai pra cima e pra baixo, nao so pra baixo */
  .luz-mesa{width:120%;height:60%}
}

/* ---------- celular deitado ----------
   A altura e o recurso escasso: cabecalho vira um trilho fino na esquerda e os
   controles um trilho na direita, e o livro aberto (2 paginas) fica com a
   altura inteira. As larguras dos trilhos sao fixas: texto mudando nao mexe
   no espaco do livro (e portanto na paginacao). */
@media(orientation:landscape) and (max-height:520px){
  body.pagina-livro{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:minmax(0,1fr)}
  .pagina-livro .topo{grid-column:1;grid-row:1;width:108px;flex-direction:column;flex-wrap:nowrap;align-items:stretch;
    justify-content:flex-start;gap:12px;padding:12px 8px;border-bottom:0;border-right:1px solid var(--line);overflow-y:auto}
  .pagina-livro .logo{font-size:16px;white-space:normal;line-height:1.08;text-align:center}
  .pagina-livro .modos{flex-direction:column;gap:5px}
  .pagina-livro .modos a,.pagina-livro .modos button{font-size:9.5px;letter-spacing:.05em;padding:6px 4px;text-align:center}
  .mesa-wrap{grid-column:2;grid-row:1}
  .fraio-topo{display:none}
  .mesa{margin:auto 0;padding-top:0}
  .controles{grid-column:3;grid-row:1;width:136px;display:grid;grid-template-columns:1fr 1fr;align-content:center;
    grid-template-areas:"sel sel" "ant prox" "conta conta" "zoom zoom" "ouvir ouvir" "ind ind";
    gap:7px 6px;padding:10px 8px;border-top:0;border-left:1px solid var(--line);overflow-y:auto}
  .controles .bt{padding:7px 6px;font-size:11px}
  .controles .rot-longo{display:none}
  #bAnt{grid-area:ant}#bProx{grid-area:prox}
  .controles select{grid-area:sel;max-width:none;width:100%;padding:6px 7px;font-size:11px}
  #conta{grid-area:conta;text-align:center;font-size:9.5px;letter-spacing:.04em;white-space:normal}
  .controles .zoom{grid-area:zoom;justify-content:space-between;gap:4px}
  .controles .zoom .bt{flex:1}
  #zv{font-size:9.5px;letter-spacing:0}
  /* trilho de 136px: Ouvir numa linha, velocidade e voz embaixo, meio a meio */
  .controles .ouvir{grid-area:ouvir;gap:4px;flex-wrap:wrap}
  .controles .ouvir #bOuvir{flex:1 1 100%}
  .controles .vel{min-width:0;padding-left:5px;padding-right:5px;flex:1}
  .controles .voz{padding-left:5px;padding-right:5px;flex:1}
  .controles .rot-voz{display:none}
  #indLeitura{grid-area:ind;font-size:9.5px;letter-spacing:.03em;line-height:1.35;white-space:normal;text-align:center;
    display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}
  .dica{display:none}
  .aviso{bottom:14px}
  html.modo-foco .mesa-wrap{padding:0 58px}
  .barra-foco{left:auto;right:8px;bottom:auto;top:50%;transform:translateY(-50%);flex-direction:column}
}
@media(orientation:landscape) and (max-height:520px) and (pointer:coarse){ .controles select{font-size:16px} }
@media(prefers-reduced-motion:reduce){
  .chama,.halo,.agulha,.caneta,.luz-mesa,.fx-luz,.fx-halo,.fx-chama .lingua,.agulha-viva,.fx-caneta i,.fx-livrinho img,.fraio-topo{animation:none}
}

/* =========================================================
   ESTANTE (estante.js) — os livros do player em cima da mesma mesa.
   A camada e translucida de proposito: a arte da mesa continua atras.
   ========================================================= */
.est-camada{position:fixed;inset:0;z-index:70;display:flex;align-items:flex-start;justify-content:center;
  background:rgba(8,6,4,.72);backdrop-filter:blur(4px);overflow:auto;
  padding:calc(16px + env(safe-area-inset-top,0px)) calc(14px + env(safe-area-inset-right,0px))
          calc(16px + env(safe-area-inset-bottom,0px)) calc(14px + env(safe-area-inset-left,0px))}
.est-camada[hidden]{display:none!important}
/* com a estante aberta, o recado do Livro sobe pra cima da camada */
html.estante-aberta .aviso{z-index:130;bottom:24px}
/* a camada e modal: o livro atras nao rola nem recebe o dedo */
html.estante-aberta body.pagina-livro{overflow:hidden}

.est-painel{width:100%;max-width:980px;background:linear-gradient(180deg,#16110c,#100c08);
  border:1px solid #4a3822;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.65);
  padding:16px 16px 18px;margin:auto}
.est-topo{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.est-topo h2{margin:0;font-family:Anton,Impact,sans-serif;font-size:22px;letter-spacing:.04em;color:var(--creme)}
.est-x{flex:none;width:34px;height:34px;border-radius:99px;border:1px solid var(--line);background:none;
  color:var(--creme);font-size:15px;cursor:pointer}
.est-x:hover{border-color:var(--lar)}
.est-nota{margin:6px 0 0;font-size:12.5px;line-height:1.5;color:var(--muted)}
.est-nota.est-breve{color:#c9ab6f}

/* a prateleira */
.est-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin:14px 0 4px}
.est-livro{display:flex;gap:12px;background:#120e0a;border:1px solid #33281b;border-radius:12px;padding:12px;min-width:0}
.est-livro.trancado{border-style:dashed;opacity:.9}
.est-capa{position:relative;flex:none;width:62px;height:88px;border-radius:4px 7px 7px 4px;overflow:hidden;
  display:flex;align-items:center;justify-content:center;text-align:center;
  background:linear-gradient(135deg,#2a1f14,#1a130c);border:1px solid #5c4529;
  box-shadow:inset 3px 0 0 rgba(0,0,0,.45)}
.est-capa img{width:72%;height:auto;opacity:.95}
.est-capa-nome{font-family:var(--mono);font-size:8.5px;line-height:1.3;letter-spacing:.04em;color:#c9ab6f;
  padding:4px;overflow:hidden;overflow-wrap:anywhere;word-break:break-word;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6}
.est-selo{position:absolute;top:3px;right:3px;font-size:12px;line-height:1;filter:drop-shadow(0 1px 2px #000)}
.est-corpo{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}
.est-corpo h3{margin:0;font-size:14px;line-height:1.25;color:var(--creme);overflow-wrap:anywhere}
.est-sub{margin:0;font-size:11.5px;color:var(--muted);overflow-wrap:anywhere}
.est-falta{margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:#c9ab6f}
.est-acoes{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}
.est-bt{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;background:none;color:var(--creme);
  border:1px solid var(--line);border-radius:99px;padding:6px 11px;cursor:pointer}
.est-bt:hover{border-color:var(--lar)}
.est-bt.forte{background:var(--lar);border-color:var(--lar);color:#0D0D0D;font-weight:700}
.est-livro.trancado .est-bt{cursor:default;color:var(--muted)}

/* pe: adicionar, espaco e os avisos */
.est-pe{border-top:1px solid #2a2118;margin-top:12px;padding-top:12px}
.est-add{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.est-espaco{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--muted)}

/* leitor do PDF e caderninho: ocupam a camada inteira, a mesa segue atras */
.est-leitor{position:fixed;inset:0;z-index:2;display:flex;flex-direction:column;
  background:#0c0906;
  padding:calc(8px + env(safe-area-inset-top,0px)) calc(8px + env(safe-area-inset-right,0px))
          calc(8px + env(safe-area-inset-bottom,0px)) calc(8px + env(safe-area-inset-left,0px))}
.est-leitor-topo{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;
  padding:6px 4px 8px;border-bottom:1px solid #2a2118}
.est-leitor-topo strong{font-size:13px;color:var(--creme);overflow-wrap:anywhere}
.est-leitor-bts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.est-leitor-bts select{font-family:var(--mono);font-size:11px;background:#16120d;color:var(--creme);
  border:1px solid var(--line);border-radius:8px;padding:5px 7px;max-width:150px}
.est-leitor iframe{flex:1;width:100%;min-height:0;border:1px solid #33281b;border-radius:8px;margin-top:8px;background:#1a1a1a}
.est-notas-corpo{flex:1;display:flex;flex-direction:column;min-height:0;padding-top:8px}
.est-notas-corpo textarea{flex:1;min-height:140px;resize:none;background:#15110c;color:var(--creme);
  border:1px solid #33281b;border-radius:10px;padding:12px;font:15px/1.6 Inter,system-ui,sans-serif}
.est-notas-corpo .est-nota{flex:none}

@media(max-width:560px){
  .est-painel{padding:12px 12px 14px;border-radius:12px}
  .est-topo h2{font-size:18px}
  .est-grade{grid-template-columns:1fr;gap:10px}
  .est-capa{width:52px;height:74px}
}
/* celular deitado: a camada e baixinha — o painel rola e o leitor usa a altura toda */
@media(orientation:landscape) and (max-height:520px){
  .est-camada{padding:8px;align-items:stretch}
  .est-painel{margin:0;max-height:none}
  .est-topo h2{font-size:16px}
  .est-grade{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));margin:10px 0 4px}
  .est-capa{width:46px;height:66px}
  .est-notas-corpo textarea{min-height:90px}
}

/* =========================================================
   CARREGANDO no Livro (carregando.js + secao CARREGANDO do estilo.css)
   ========================================================= */
/* a mesa tem arte, luz e folhas em camadas proprias: a espera do Livro cobre
   so a area do livro (.mesa-wrap), deixando o cabecalho e os controles vivos */
.mesa-wrap > .carregando--dentro{z-index:7}
/* o fundo da mesa aparece por tras do #0A0A0A? nao: a espera e opaca de
   proposito, pra ninguem ver a paginacao se montando aos pedaços */
/* na estante o leitor de PDF e position:fixed (z-index 2 dentro da camada):
   a espera dele mora na propria camada e fica por cima do painel */
.est-camada > .carregando--dentro{z-index:5}
