[hidden]{display:none!important}

/* Layout: portal de quatro mundos em arcos no topo, estante de capas logo abaixo; páginas internas em coluna de leitura. Dia em Creme rosado, noite em Ameixa. */
:root{
  --bg:#F7EEEB; --card:#FCF7F5; --fg:#3A1F37; --malva:#9C6A8E; --rose:#E7B9BB; --ouro:#D4A55A; --ouro-t:#8C6420;
  --line:#E6D3D0; --muted:#715A6D; --veil:rgba(58,31,55,.06);
  --f-disp:"Young Serif",Georgia,"Times New Roman",serif;
  --f-text:"Newsreader",Georgia,"Times New Roman",serif;
  --f-meta:"DM Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#3A1F37; --card:#4A2B45; --fg:#F7EEEB; --malva:#C79BBB; --rose:#E7B9BB; --ouro:#D4A55A; --ouro-t:#D4A55A;
  --line:#5A3654; --muted:#D2B8CB; --veil:rgba(247,238,235,.05); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#3A1F37; --card:#4A2B45; --fg:#F7EEEB; --malva:#C79BBB; --rose:#E7B9BB; --ouro:#D4A55A; --ouro-t:#D4A55A;
  --line:#5A3654; --muted:#D2B8CB; --veil:rgba(247,238,235,.05); color-scheme:dark}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--fg);font-family:var(--f-text);font-size:18px;line-height:1.6;transition:background .4s,color .4s}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
.wrap{max-width:1120px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.narrow{max-width:720px}
h1,h2,h3{font-family:var(--f-disp);font-weight:400;text-wrap:balance;margin:0;line-height:1.08}
p{margin:0}
a{color:inherit}
.meta{font-family:var(--f-meta);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.muted{color:var(--muted)}
svg.sp{fill:var(--ouro)}
:focus-visible{outline:2px solid var(--ouro);outline-offset:3px;border-radius:3px}


/* cabeçalho */
header.site{padding-block:22px;border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--fg);--g:var(--ouro)}
.brand svg{width:30px;height:30px}
.brand span{font-family:var(--f-disp);font-size:27px;line-height:1}
.brand small{font-family:var(--f-meta);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-left:2px;align-self:flex-end;padding-bottom:3px}
nav.main{display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px}
nav.main a{font-family:var(--f-meta);font-size:12px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;padding-block:4px;border-bottom:1px solid transparent}
nav.main a:hover,nav.main a[aria-current="page"]{border-color:var(--ouro)}
button.mode{font-family:var(--f-meta);font-size:11px;letter-spacing:.1em;text-transform:uppercase;background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:99px;padding:7px 13px;cursor:pointer;display:flex;gap:7px;align-items:center}
button.mode svg{width:11px;height:11px;fill:var(--ouro)}

main{min-height:60vh}
.view{animation:fade .45s ease}
@keyframes fade{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}

/* início: portal */
.hero{position:relative;padding-block:56px 40px;overflow:hidden}
.hero .dust{position:absolute;inset:0;pointer-events:none}
.hero .dust svg{position:absolute;fill:var(--ouro)}
.hero-top{display:grid;gap:14px;max-width:620px;position:relative}
.hero h1{font-size:clamp(36px,6.4vw,64px)}
.hero p.lead{font-size:20px;color:var(--muted);max-width:52ch}
.portals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:40px;position:relative}
@media (max-width:900px){.portals{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:460px){.portals{gap:12px}}
.portal{display:grid;justify-items:center;text-align:center;gap:10px;text-decoration:none;color:var(--fg);background:var(--card);border:1px solid var(--line);border-radius:999px 999px 10px 10px;padding:34px 16px 22px;min-width:0;position:relative;transition:transform .35s ease,border-color .35s,box-shadow .35s;--g:var(--ouro)}
.portal::before{content:"";position:absolute;inset:7px 7px auto 7px;height:58%;border-radius:999px 999px 0 0;background:radial-gradient(ellipse at 50% 30%,var(--veil),transparent 70%);pointer-events:none}
.portal:hover{transform:translateY(-6px);border-color:var(--ouro);box-shadow:0 14px 30px -18px rgba(58,31,55,.5)}
.portal svg.w{width:58px;height:58px;color:var(--malva);margin-top:6px}
.portal h2{font-size:clamp(19px,2.3vw,24px)}
.portal p{font-size:15px;line-height:1.4;color:var(--muted)}
.portal .ct{font-family:var(--f-meta);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ouro-t)}
@media (max-width:460px){.portal{padding:26px 10px 16px}.portal p{display:none}}

/* seções */
section.blk{padding-block:44px;border-top:1px solid var(--line)}
.blk-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 20px;margin-bottom:24px}
.blk-head h2{font-size:clamp(26px,3.6vw,34px);display:flex;align-items:center;gap:12px}
.blk-head h2 svg{width:14px;height:14px}
.blk-head a.more{font-family:var(--f-meta);font-size:12px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--line)}
.blk-head a.more:hover{border-color:var(--ouro)}

/* estante */
.shelf-scroll{overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}
.shelf{display:flex;gap:18px;align-items:flex-end;padding:18px 4px 0;border-bottom:6px solid var(--fg);min-width:max-content;position:relative}
.shelf::after{content:"";position:absolute;left:0;right:0;bottom:-14px;height:8px;background:linear-gradient(var(--veil),transparent)}
.grid-covers{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:28px 20px}
.book{display:grid;gap:8px;text-decoration:none;color:var(--fg);width:124px;min-width:0}
.grid-covers .book{width:auto}
.cover{aspect-ratio:2/3;max-width:100%;border-radius:2px 5px 5px 2px;padding:12px 11px 11px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;box-shadow:inset 6px 0 0 rgba(0,0,0,.12),0 8px 16px -10px rgba(58,31,55,.6),0 0 0 1px var(--line);transition:transform .3s ease}
.book:hover .cover{transform:translateY(-8px) rotate(-1deg)}
.cover .t{font-family:var(--f-disp);font-size:15.5px;line-height:1.1;text-wrap:balance}
.cover .a{font-family:var(--f-meta);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;opacity:.85}
.cover svg.ic{position:absolute;right:9px;top:50%;width:34px;height:34px;opacity:.35;transform:translateY(-50%)}
.book .cap{font-family:var(--f-meta);font-size:10.5px;letter-spacing:.06em;color:var(--muted);line-height:1.35;min-height:2.7em}
.cv-futuros{background:#3A1F37;color:#F2D49B}
.cv-encantadas{background:#9C6A8E;color:#FCF7F5}
.cv-reais{background:#E6D3D0;color:#3A1F37}
.cv-reinos{background:#E7B9BB;color:#3A1F37}
.cv-futuros svg.ic,.cv-encantadas svg.ic{color:currentColor}

/* última travessia */
.feature{display:grid;grid-template-columns:150px minmax(0,1fr);gap:28px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:26px}
@media (max-width:600px){.feature{grid-template-columns:96px minmax(0,1fr);gap:18px;padding:18px}}
.feature .book{width:100%}
.feature h3{font-size:clamp(24px,3.4vw,32px);margin:6px 0 8px}
.feature .ph{font-style:italic;color:var(--muted)}
.btn{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-family:var(--f-meta);font-size:12px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;background:var(--fg);color:var(--bg);padding:10px 16px;border-radius:99px}
.btn svg{width:10px;height:10px;fill:var(--ouro)}

/* brilhos */
.rating{display:inline-flex;gap:4px;align-items:center}
.rating svg{width:15px;height:15px}
.rating .on{fill:var(--ouro)}
.rating .empty{fill:none;stroke:var(--malva);stroke-width:.09}
.rating .off{fill:var(--line)}

/* página de mundo */
.world-head{padding-block:48px 34px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 26px;align-items:center}
.world-head svg.w{width:84px;height:84px;color:var(--malva);grid-row:span 3;--g:var(--ouro)}
.world-head h1{font-size:clamp(34px,6vw,56px)}
.world-head p{font-size:19px;color:var(--muted);max-width:56ch}
@media (max-width:560px){.world-head{grid-template-columns:minmax(0,1fr)}.world-head svg.w{grid-row:auto;width:64px;height:64px}}
.crumb{font-family:var(--f-meta);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 8px;padding-top:28px}
.crumb a{text-decoration:none;border-bottom:1px solid var(--line)}
.crumb a:hover{border-color:var(--ouro)}
.worlds-mini{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.chip{font-family:var(--f-meta);font-size:11px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border:1px solid var(--line);border-radius:99px;padding:6px 12px;display:inline-flex;gap:6px;align-items:center;background:var(--card)}
.chip:hover,.chip[aria-current="page"]{border-color:var(--ouro)}

/* resenha */
.review-head{display:grid;grid-template-columns:180px minmax(0,1fr);gap:34px;align-items:end;padding-block:30px 36px}
@media (max-width:620px){.review-head{grid-template-columns:110px minmax(0,1fr);gap:18px}}
.review-head .book{width:100%;pointer-events:none}
.review-head .no{font-family:var(--f-meta);font-size:12px;letter-spacing:.18em;color:var(--ouro-t)}
.review-head h1{font-size:clamp(34px,6vw,58px);margin:8px 0 6px}
.review-head .by{font-size:19px;color:var(--muted)}
.facts{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:14px;font-family:var(--f-meta);font-size:11.5px;letter-spacing:.06em;color:var(--muted)}
.facts b{color:var(--fg);font-weight:500}
.verdict{border-block:1px solid var(--line);padding-block:22px;margin-bottom:34px;display:grid;gap:10px}
.verdict .q{font-family:var(--f-disp);font-size:clamp(21px,3vw,27px);line-height:1.3}
.slot{font-style:italic;color:var(--muted);background:var(--veil);border:1px dashed var(--line);border-radius:6px;padding:12px 14px}
article.rv{display:grid;gap:30px;padding-bottom:20px}
article.rv h2{font-size:24px;display:flex;align-items:center;gap:10px;margin-bottom:10px}
article.rv h2 svg{width:11px;height:11px}
blockquote{margin:0;padding:6px 0 6px 20px;border-left:2px solid var(--ouro);font-style:italic}
.end{display:grid;justify-items:center;gap:10px;padding-block:40px 20px;text-align:center}
.end .div{display:flex;align-items:center;gap:12px;width:min(320px,100%)}
.end .div i{flex:1;height:1px;background:var(--line)}
.end .div svg{width:12px;height:12px}
.end span{font-family:var(--f-disp);font-size:20px}
.next{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}
@media (max-width:560px){.next{grid-template-columns:minmax(0,1fr)}}
.next a{display:grid;gap:3px;text-decoration:none;border:1px solid var(--line);border-radius:8px;padding:14px 16px;background:var(--card)}
.next a:hover{border-color:var(--ouro)}
.next b{font-family:var(--f-disp);font-weight:400;font-size:19px}

/* diário */
.log{display:grid;border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:16px;align-items:center;padding-block:14px;border-bottom:1px solid var(--line);text-decoration:none}
.row .mini{aspect-ratio:2/3;width:52px;border-radius:2px 4px 4px 2px;box-shadow:inset 3px 0 0 rgba(0,0,0,.12)}
.row h3{font-size:20px;line-height:1.2}
.row .sub{font-size:15px;color:var(--muted)}
.row .st{display:grid;justify-items:end;gap:5px}
.tag{font-family:var(--f-meta);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;border-radius:99px;padding:4px 10px;border:1px solid var(--line);white-space:nowrap}
.tag.lido{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.tag.ab{color:var(--muted)}
@media (max-width:520px){.row{grid-template-columns:42px minmax(0,1fr)}.row .mini{width:42px}.row .st{grid-column:2;justify-items:start;grid-auto-flow:column;justify-content:start;gap:10px}}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.filters button{font-family:var(--f-meta);font-size:11px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);border-radius:99px;padding:6px 12px;background:var(--card);color:var(--fg);cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}

/* rotas */
.route{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:26px;display:grid;gap:16px}
.route h2{font-size:clamp(23px,3vw,29px)}
.steps{display:flex;flex-wrap:wrap;align-items:center;gap:10px 8px}
.steps a{display:flex;gap:10px;align-items:center;text-decoration:none;border:1px solid var(--line);border-radius:8px;padding:8px 12px 8px 8px;background:var(--bg)}
.steps a:hover{border-color:var(--ouro)}
.steps .mini{width:30px;aspect-ratio:2/3;border-radius:2px}
.steps b{font-family:var(--f-disp);font-weight:400;font-size:16px;line-height:1.2}
.steps .arr{width:10px;height:10px}
.stack{display:grid;gap:18px}

/* sobre */
.about{display:grid;gap:18px;padding-block:20px 40px}
.about p{font-size:19px;max-width:60ch}


/* mapa */
:root{--land:#E6D3D0;--sea:#FCF7F5}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--land:#5A3654;--sea:#432640}}
:root[data-theme="dark"]{--land:#5A3654;--sea:#432640}
.map-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--sea)}
.map{position:relative;min-width:680px}
.map svg.geo{display:block;width:100%;height:auto}
.map .land{fill:var(--land)}
.map .trail{fill:none;stroke:var(--ouro);stroke-width:1.4;stroke-dasharray:2 5;stroke-linecap:round}
.map .dust use{fill:var(--ouro);opacity:.45}
.pin{position:absolute;width:24px;height:24px;margin:-12px 0 0 -12px;border:0;background:none;padding:0;cursor:pointer;display:grid;place-items:center}
.pin::before{content:"";position:absolute;inset:3px;border-radius:50%;background:radial-gradient(circle,rgba(212,165,90,.55),rgba(212,165,90,0) 70%);animation:glow 2.8s ease-in-out infinite}
.pin svg{width:16px;height:16px;fill:var(--ouro);position:relative;transition:transform .25s}
.pin:hover svg,.pin[aria-expanded="true"] svg{transform:scale(1.45) rotate(45deg)}
@keyframes glow{50%{transform:scale(1.5);opacity:.4}}
.tip{position:absolute;z-index:5;width:260px;background:var(--card);border:1px solid var(--ouro);border-radius:10px;padding:14px;display:grid;grid-template-columns:62px minmax(0,1fr);gap:12px;box-shadow:0 16px 34px -18px rgba(58,31,55,.7)}
.tip .cover{padding:6px;box-shadow:inset 3px 0 0 rgba(0,0,0,.12)}
.tip .cover .t{font-size:9.5px}.tip .cover .a,.tip .cover svg.ic{display:none}
.tip h3{font-size:19px;line-height:1.15}
.tip p{font-size:14.5px;line-height:1.35;color:var(--muted)}
.tip .where{font-family:var(--f-meta);font-size:10.5px;letter-spacing:.06em;color:var(--ouro-t);margin-top:6px;line-height:1.4}
.tip a{grid-column:1/-1;font-family:var(--f-meta);font-size:11px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;text-align:center;background:var(--fg);color:var(--bg);border-radius:99px;padding:8px}
.map-hint{font-family:var(--f-meta);font-size:11px;letter-spacing:.06em;color:var(--muted);margin-top:10px}
.beyond{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.beyond a{display:grid;grid-template-columns:56px minmax(0,1fr);gap:14px;align-items:center;text-decoration:none;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px}
.beyond a:hover{border-color:var(--ouro)}
.beyond .cover{padding:5px}.beyond .cover .t{font-size:9px}.beyond .cover .a,.beyond .cover svg.ic{display:none}
.beyond b{font-family:var(--f-disp);font-weight:400;font-size:19px;display:block}
.places{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.places button{cursor:pointer;color:var(--fg)}
@media (max-width:700px){.tip{position:fixed;left:max(16px,env(safe-area-inset-left,0px))!important;right:max(16px,env(safe-area-inset-right,0px));top:auto!important;bottom:calc(16px + env(safe-area-inset-bottom,0px));width:auto;z-index:20}}

footer.site{border-top:1px solid var(--line);margin-top:40px}
footer.site .wrap{padding-block:30px 44px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;align-items:center}
footer.site .brand span{font-size:21px}
footer.site .brand svg{width:22px;height:22px}

/* site real */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg)}
.cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cover.has-img .t,.cover.has-img .a,.cover.has-img svg.ic{display:none}
.rv .txt{display:grid;gap:14px;max-width:64ch}
.rv .txt p{margin:0}
.empty-note{font-style:italic;color:var(--muted)}
.tag.lendo{border-color:var(--ouro);color:var(--ouro-t)}
.year{font-family:var(--f-disp);font-size:26px;margin:30px 0 8px}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:16px;z-index:30;background:var(--card);padding:8px 12px}
