/*
Theme Name: Teologia dos Videogames
Theme URI: https://teologiadosvideogames.com.br
Author: Ricardo Pereira
Description: Tema customizado para o blog Teologia dos Videogames — narrativa, pergunta e evangelho.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: tdv
*/

:root{
  --bg: #0B1626;
  --bg-panel: #10203A;
  --bg-elevated: #152A47;
  --hairline: #24324A;
  --text: #EDE7D6;
  --text-body: #D8D2C2;
  --text-muted: #8996AC;
  --text-faint: #566079;
  --gold: #C9A227;
  --gold-dim: #8C7A3C;
  --crimson: #8A5A46;
  --teal: #4E6D7D;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Inter', sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
ul{list-style:none;}
.wrap{max-width:720px; margin:0 auto; padding:0 28px;}
.wrap-wide{max-width:1080px; margin:0 auto; padding:0 28px;}

body::before{
  content:"";
  position:fixed; inset:0;
  background:radial-gradient(ellipse 80% 50% at 50% -10%, rgba(201,162,39,0.07), transparent 60%);
  pointer-events:none;
  z-index:0;
}

/* ===== NAV ===== */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(11,22,38,0.9);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--hairline);
}
header nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 28px;
}
.logo{display:flex; align-items:center; gap:10px;}
.logo img{width:28px; height:28px; object-fit:contain;}
.logo-text{font-family:'Spectral', serif; font-size:16px; letter-spacing:0.02em; font-weight:500; color:var(--text);}
.nav-links{display:none; gap:32px; font-size:13px; letter-spacing:0.06em; text-transform:uppercase; font-family:'IBM Plex Mono', monospace; color:var(--text-muted);}
.nav-links ul{display:flex; gap:32px;}
.nav-links a:hover{color:var(--gold);}
@media(min-width:720px){.nav-links{display:flex;}}
.back-link{font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.06em; color:var(--text-muted);}
.back-link:hover{color:var(--gold);}

.progress{position:fixed; top:0; left:0; height:2px; width:0%; background:var(--gold); z-index:100; transition:width 0.1s ease;}

/* ===== HERO (home) ===== */
.hero{padding:100px 28px 80px; position:relative; z-index:1; border-bottom:1px solid var(--hairline);}
.hero-logo{width:96px; height:96px; object-fit:contain; margin-bottom:32px;}
.eyebrow{font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.14em; color:var(--gold); display:flex; align-items:center; gap:10px; margin-bottom:28px; flex-wrap:wrap;}
.eyebrow .arrow{color:var(--text-faint);}
h1.hero-title{font-family:'Spectral', serif; font-weight:500; font-size:clamp(38px, 6vw, 68px); line-height:1.05; max-width:820px; letter-spacing:-0.01em;}
h1.hero-title em{font-style:italic; color:var(--gold); font-weight:400;}
.hero-sub{max-width:560px; margin-top:26px; color:var(--text-muted); font-size:17px; line-height:1.7;}
.hero-cta{display:flex; gap:16px; margin-top:40px; flex-wrap:wrap;}
.btn{padding:13px 24px; font-family:'IBM Plex Mono', monospace; font-size:13px; letter-spacing:0.05em; border:1px solid var(--gold-dim); color:var(--gold); transition:all 0.2s ease; display:inline-block;}
.btn:hover{background:var(--gold); color:#0B1626; border-color:var(--gold);}
.btn.ghost{border-color:var(--hairline); color:var(--text-muted);}
.btn.ghost:hover{border-color:var(--text-muted); background:transparent; color:var(--text);}

/* ===== SECTION HEADERS ===== */
.section{padding:72px 28px; position:relative; z-index:1;}
.section-head{display:flex; align-items:baseline; justify-content:space-between; margin-bottom:44px; gap:20px; flex-wrap:wrap; border-bottom:1px solid var(--hairline); padding-bottom:20px;}
.section-num{font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--text-faint); letter-spacing:0.1em;}
.section-title{font-family:'Spectral', serif; font-size:28px; font-weight:500;}
.section-desc{color:var(--text-muted); font-size:14px; max-width:340px;}

/* ===== LENSES ===== */
.lenses{display:grid; grid-template-columns:1fr; gap:1px; background:var(--hairline); border:1px solid var(--hairline);}
@media(min-width:720px){.lenses{grid-template-columns:repeat(3,1fr);}}
.lens{background:var(--bg-panel); padding:32px 26px; transition:background 0.2s ease;}
.lens:hover{background:var(--bg-elevated);}
.lens-icon{font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--gold); letter-spacing:0.1em; margin-bottom:16px;}
.lens h3{font-family:'Spectral', serif; font-size:20px; font-weight:500; margin-bottom:10px;}
.lens p{font-size:14px; color:var(--text-muted); line-height:1.6;}

/* ===== SAVE SLOTS (article list) ===== */
.slot{display:grid; grid-template-columns:4px 1fr; gap:24px; padding:26px 0; border-bottom:1px solid var(--hairline); cursor:pointer; transition:padding-left 0.25s ease;}
.slot:hover{padding-left:8px;}
.slot:last-child{border-bottom:none;}
.slot-bar{background:var(--hairline); transition:background 0.2s ease;}
.slot.cat-personagem .slot-bar{background:var(--gold-dim);}
.slot.cat-cena .slot-bar{background:var(--teal);}
.slot.cat-simbolo .slot-bar{background:var(--crimson);}
.slot-meta{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-faint); display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:10px;}
.slot-meta .tag{color:var(--gold);}
.slot-meta .dot{color:var(--hairline);}
.slot h4{font-family:'Spectral', serif; font-size:22px; font-weight:500; margin-bottom:8px; max-width:640px;}
.slot p{color:var(--text-muted); font-size:14.5px; max-width:600px;}
.slot-arrow{font-family:'IBM Plex Mono', monospace; color:var(--text-faint); font-size:13px; margin-top:12px; display:inline-block; transition:transform 0.2s ease, color 0.2s ease;}
.slot:hover .slot-arrow{transform:translateX(4px); color:var(--gold);}

/* ===== BOOKS ===== */
.books{display:grid; grid-template-columns:1fr; gap:24px;}
@media(min-width:640px){.books{grid-template-columns:1fr 1fr;}}
.book-card{background:var(--bg-panel); border:1px solid var(--hairline); padding:30px; display:flex; gap:22px;}
.book-cover{width:76px; height:108px; flex-shrink:0; background:linear-gradient(160deg, var(--bg-elevated), var(--bg)); border:1px solid var(--hairline); position:relative;}
.book-cover .vol-label{font-family:'IBM Plex Mono', monospace; font-size:10px; color:var(--gold); letter-spacing:0.1em; position:absolute; top:8px; left:8px;}
.book-info .book-vol{font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--text-faint); letter-spacing:0.08em; margin-bottom:6px;}
.book-info h4{font-family:'Spectral', serif; font-size:19px; margin-bottom:8px;}
.book-info p{font-size:13.5px; color:var(--text-muted); line-height:1.6;}

/* ===== ABOUT ===== */
.about{display:grid; grid-template-columns:1fr; gap:40px;}
@media(min-width:720px){.about{grid-template-columns:200px 1fr;}}
.avatar{width:120px; height:120px; border:1px solid var(--hairline); background:var(--bg-panel); display:flex; align-items:center; justify-content:center; font-family:'Spectral', serif; font-size:38px; color:var(--gold); overflow:hidden;}
.avatar img{width:100%; height:100%; object-fit:cover;}
.about-text p{color:var(--text-muted); font-size:15px; line-height:1.8; max-width:620px; margin-bottom:14px;}
.about-text strong{color:var(--text); font-weight:500;}

/* ===== NEWSLETTER ===== */
.newsletter{background:var(--bg-panel); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); padding:64px 28px; text-align:center;}
.newsletter h3{font-family:'Spectral', serif; font-size:26px; margin-bottom:12px;}
.newsletter p{color:var(--text-muted); font-size:14.5px; max-width:440px; margin:0 auto 30px;}
.newsletter-form{display:flex; max-width:400px; margin:0 auto; border:1px solid var(--hairline);}
.newsletter-form input{flex:1; background:transparent; border:none; padding:14px 16px; color:var(--text); font-family:'IBM Plex Mono', monospace; font-size:13px;}
.newsletter-form input:focus{outline:none;}
.newsletter-form input::placeholder{color:var(--text-faint);}
.newsletter-form button{padding:14px 20px; background:var(--gold); color:#0B1626; border:none; font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.05em; cursor:pointer;}

/* ===== FOOTER ===== */
footer{padding:40px 28px; text-align:center;}
footer .verse{font-family:'Spectral', serif; font-style:italic; color:var(--text-muted); font-size:14px; max-width:440px; margin:0 auto 18px; line-height:1.7;}
footer .foot-meta{font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--text-faint); letter-spacing:0.05em;}

/* ===== ARTICLE (single post) ===== */
.art-header{padding:64px 28px 40px; text-align:left;}
.breadcrumb{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; color:var(--text-faint); margin-bottom:24px; text-transform:uppercase;}
.breadcrumb a:hover{color:var(--gold);}
.cat-tag{display:inline-block; font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.1em; color:var(--gold); border:1px solid var(--gold-dim); padding:5px 12px; margin-bottom:22px; text-transform:uppercase;}
h1.art-title{font-family:'Spectral', serif; font-weight:500; font-size:clamp(32px,5.5vw,50px); line-height:1.12; letter-spacing:-0.01em; max-width:640px;}
.art-dek{font-family:'Spectral', serif; font-style:italic; font-weight:300; font-size:19px; color:var(--text-muted); margin-top:20px; max-width:560px; line-height:1.6;}
.art-meta{display:flex; gap:18px; align-items:center; flex-wrap:wrap; margin-top:32px; padding-top:24px; border-top:1px solid var(--hairline); font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--text-faint);}
.art-meta .author{color:var(--text-muted);}
.art-meta .dot{color:var(--hairline);}

.art-body{padding:20px 28px 0;}
.entry-content{max-width:640px;}
.entry-content p{font-size:18px; line-height:1.85; color:var(--text-body); margin-bottom:26px;}
.entry-content > p:first-of-type::first-letter{font-family:'Spectral', serif; font-size:64px; font-weight:500; color:var(--gold); float:left; line-height:0.8; padding-right:12px; padding-top:8px;}

/* Movement markers: any H2 in the article body becomes a NARRATIVA/PERGUNTA/EVANGELHO divider */
.entry-content{counter-reset: movement;}
.entry-content h2{
  counter-increment: movement;
  display:flex; align-items:center; gap:14px;
  margin:56px 0 28px;
  font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.14em;
  color:var(--gold); text-transform:uppercase; font-weight:400;
}
.entry-content h2::before{
  content: "0" counter(movement);
  font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--gold-dim);
}
.entry-content h2::after{content:""; flex:1; height:1px; background:var(--hairline);}

/* Scripture / pull quotes */
.entry-content blockquote{margin:44px 0; padding:8px 0 8px 28px; border-left:2px solid var(--gold-dim); max-width:600px;}
.entry-content blockquote p{font-family:'Spectral', serif; font-style:italic; font-size:22px; color:var(--text); line-height:1.6; margin-bottom:10px;}
.entry-content blockquote cite{font-family:'IBM Plex Mono', monospace; font-style:normal; font-size:12px; letter-spacing:0.06em; color:var(--text-faint); text-transform:uppercase;}

/* Callout box: [callout label="No jogo"]...[/callout] */
.callout{background:var(--bg-panel); border:1px solid var(--hairline); padding:24px 26px; margin:36px 0; max-width:640px;}
.callout .callout-label{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; color:var(--teal); text-transform:uppercase; margin-bottom:10px;}
.callout p{font-size:15.5px; color:var(--text-muted); margin-bottom:0 !important; line-height:1.7;}

.end-mark{display:flex; justify-content:center; margin:60px 0 40px;}
.end-mark img{width:34px; height:34px; opacity:0.5;}

/* Author card */
.author-card{max-width:640px; margin:0 auto 28px; display:flex; gap:20px; align-items:center; background:var(--bg-panel); border:1px solid var(--hairline); padding:26px;}
.author-card h5{font-family:'Spectral', serif; font-size:16px; margin-bottom:4px;}
.author-card p{font-size:13.5px; color:var(--text-muted); line-height:1.5;}

/* Related posts */
.related{padding:64px 28px 80px; border-top:1px solid var(--hairline); margin-top:40px;}
.related-head{font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.08em; color:var(--text-faint); text-transform:uppercase; margin-bottom:28px;}
.related-grid{display:grid; grid-template-columns:1fr; gap:1px; background:var(--hairline); border:1px solid var(--hairline);}
@media(min-width:680px){.related-grid{grid-template-columns:1fr 1fr;}}
.related-card{background:var(--bg-panel); padding:26px; transition:background 0.2s ease; display:block;}
.related-card:hover{background:var(--bg-elevated);}
.related-tag{font-family:'IBM Plex Mono', monospace; font-size:10.5px; color:var(--gold); letter-spacing:0.08em; margin-bottom:10px; text-transform:uppercase;}
.related-card h4{font-family:'Spectral', serif; font-size:18px; margin-bottom:8px; line-height:1.3;}
.related-card p{font-size:13.5px; color:var(--text-muted); line-height:1.6;}

/* Generic page content (about, static pages) */
.page-content{padding:60px 28px; max-width:720px; margin:0 auto;}
.page-content p{font-size:17px; line-height:1.8; color:var(--text-body); margin-bottom:22px;}
.page-content h1{font-family:'Spectral', serif; font-size:36px; margin-bottom:30px;}

@media (prefers-reduced-motion: reduce){ *{transition:none !important;} }
