/* ============================================================
   rogeriomorais.org — Stylesheet V2.0.0 (Editorial)
   ============================================================ */

:root {
    --font-display: 'Cormorant Garamond', Georgia, serif;
    --font-body: 'Libre Franklin', sans-serif;
    --font-mono: 'Fira Code', monospace;
    --transition: 0.3s ease;
}
[data-theme="dark"] {
    --bg: #0b1628; --bg-alt: #0e1a2e; --bg-card: #111f36;
    --bg-card-hover: #152640; --tx: #d4cfc2; --tx-secondary: #9a9285;
    --tx-muted: #5e5849; --accent: #c4a24e; --accent-dim: rgba(196,162,78,0.12);
    --accent-hover: #d4b45e; --brd: rgba(196,162,78,0.12);
    --shadow: rgba(0,0,0,0.5); --overlay: rgba(11,22,40,0.88);
    --dispatch-bg: rgba(196,162,78,0.04); --section-overlay: rgba(11,22,40,0.92);
    --hero-fade: rgba(11,22,40,0.6);
    --danger: #ff4444; --danger-dim: rgba(255,68,68,0.1);
    --success: #44bb44; --success-dim: rgba(68,187,68,0.1);
}
[data-theme="light"] {
    --bg: #f2ece0; --bg-alt: #ebe4d6; --bg-card: #ffffff;
    --bg-card-hover: #fdfaf4; --tx: #1a1a2e; --tx-secondary: #4a4535;
    --tx-muted: #7a7265; --accent: #8b6d28; --accent-dim: rgba(139,109,40,0.10);
    --accent-hover: #705a20; --brd: rgba(139,109,40,0.15);
    --shadow: rgba(0,0,0,0.06); --overlay: rgba(242,236,224,0.90);
    --dispatch-bg: rgba(139,109,40,0.04); --section-overlay: rgba(242,236,224,0.92);
    --hero-fade: rgba(242,236,224,0.8);
    --danger: #cc0000; --danger-dim: rgba(204,0,0,0.05);
    --success: #228822; --success-dim: rgba(34,136,34,0.05);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--bg);color:var(--tx);line-height:1.7;transition:background var(--transition),color var(--transition);overflow-x:hidden}
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:rgba(196,162,78,0.3);border-radius:3px}

/* NAVBAR */
.navbar{position:fixed;top:0;left:0;right:0;height:62px;background:var(--overlay);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:0 1rem;border-bottom:1px solid var(--brd);transition:all var(--transition)}
.navbar.scrolled{box-shadow:0 4px 20px rgba(0,0,0,0.15)}
.nav-brand{font-family:var(--font-display);font-size:1.4rem;font-weight:600;color:var(--tx);text-decoration:none;letter-spacing:0.02em;cursor:pointer}
.nav-brand span{color:var(--accent);font-style:italic}
.nav-links{display:none;align-items:center;gap:0.25rem}
.nav-link{font-family:var(--font-mono);font-size:0.72rem;color:var(--tx-muted);text-decoration:none;padding:0.4rem 0.6rem;text-transform:uppercase;letter-spacing:0.1em;transition:color var(--transition);cursor:pointer;background:none;border:none}
.nav-link:hover{color:var(--accent)}
.nav-controls{display:flex;align-items:center;gap:0.35rem}
.btn-toggle{background:transparent;border:1px solid var(--brd);color:var(--tx-muted);padding:0.35rem 0.6rem;border-radius:3px;cursor:pointer;font-family:var(--font-mono);font-size:0.75rem;transition:all var(--transition);display:flex;align-items:center;gap:0.3rem}
.btn-toggle:hover{border-color:var(--accent);color:var(--accent)}
.btn-hamburger{display:flex;background:none;border:none;color:var(--tx-muted);cursor:pointer;padding:0.35rem;font-size:1.1rem;transition:color var(--transition)}
.btn-hamburger:hover{color:var(--accent)}

/* MOBILE MENU */
.mobile-menu{display:none;position:fixed;inset:0;z-index:999;background:var(--overlay);backdrop-filter:blur(20px);padding-top:62px;flex-direction:column;align-items:center;gap:0.25rem;padding-top:80px}
.mobile-menu.open{display:flex}
.mobile-menu .nav-link{font-size:0.9rem;padding:0.8rem 1.5rem;width:100%;text-align:center}

/* HERO */
.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:6rem 1.5rem 4rem;position:relative;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:url('https://d2xsxph8kpxj0f.cloudfront.net/310519663491850648/3yFJeHaWyWcALnkvp8NjUD/hero-bg-jUPbtJ2UDLvxh5zKstfG6n.webp') center/cover no-repeat}
.hero-overlay-1{position:absolute;inset:0;background:linear-gradient(to bottom,var(--overlay),var(--hero-fade),var(--bg))}
.hero-overlay-2{position:absolute;inset:0;background:radial-gradient(ellipse at 30% 40%,var(--accent-dim),transparent 60%)}
.hero-inner{max-width:920px;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;position:relative;opacity:0;animation:fadeInUp 0.8s ease 0.2s forwards}
.hero-dateline{font-family:var(--font-mono);font-size:0.75rem;color:var(--tx-muted);text-transform:uppercase;letter-spacing:0.15em;margin-bottom:1rem}
.hero h1{font-family:var(--font-display);font-size:clamp(3rem,7vw,4.5rem);font-weight:700;line-height:1.05;margin-bottom:1rem;letter-spacing:-0.02em}
.hero-tagline{font-family:var(--font-mono);font-size:0.9rem;color:var(--accent);margin-bottom:1.5rem;letter-spacing:-0.01em}
.hero-lead{font-family:var(--font-display);font-size:1.3rem;font-weight:400;font-style:italic;color:var(--tx-secondary);line-height:1.6}
.hero-right{display:flex;flex-direction:column;gap:1.5rem;border-left:2px solid var(--brd);padding-left:2rem}
.hero-stat-num{font-family:var(--font-display);font-size:3rem;font-weight:700;color:var(--accent);line-height:1}
.hero-stat-lbl{font-family:var(--font-mono);font-size:0.7rem;color:var(--tx-muted);text-transform:uppercase;letter-spacing:0.12em;margin-top:0.2rem}
.hero-links{display:flex;gap:0.8rem;flex-wrap:wrap;margin-top:0.5rem;padding-top:1.5rem;border-top:1px solid var(--brd)}
.hero-link{font-family:var(--font-mono);font-size:0.8rem;color:var(--tx-muted);text-decoration:none;display:flex;align-items:center;gap:0.3rem;transition:color var(--transition)}
.hero-link:hover{color:var(--accent)}
.scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);color:var(--tx-muted);font-size:1.2rem;opacity:0;animation:fadeInUp 0.8s ease 1.5s forwards,bounce 2.5s ease 2.3s infinite}

/* SECTIONS */
.section{padding:5rem 1.5rem;max-width:920px;margin:0 auto;position:relative}
.section-wide{max-width:1000px}
.section-alt{position:relative;background:url('https://d2xsxph8kpxj0f.cloudfront.net/310519663491850648/3yFJeHaWyWcALnkvp8NjUD/section-texture-crqNFT9fCwgQMCJsTGxKEU.webp') repeat;background-size:400px}
.section-alt::before{content:'';position:absolute;inset:0;background:var(--section-overlay);transition:background var(--transition)}
.section-alt>.section{position:relative;z-index:1}
.section-head{margin-bottom:2.5rem}
.section-head h2{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);font-weight:600;line-height:1.1;margin-bottom:0.5rem}
.section-head .rule{width:50px;height:1.5px;background:var(--accent);margin:1rem 0}
.section-head p{font-size:1rem;color:var(--tx-secondary);max-width:550px}
.section-num{position:absolute;top:2.5rem;right:1rem;font-family:var(--font-display);font-size:clamp(6rem,12vw,12rem);font-weight:700;color:var(--accent);opacity:0.04;line-height:1;pointer-events:none;user-select:none}

/* BIO */
.bio-col{column-count:2;column-gap:2.5rem;column-rule:1px solid var(--brd)}
.bio-col p{font-family:var(--font-display);font-size:1.15rem;line-height:1.8;color:var(--tx-secondary);margin-bottom:1.2rem;font-weight:400}
.bio-col p:first-of-type::first-letter{font-family:var(--font-display);font-size:4.5rem;float:left;line-height:0.8;padding:0.1rem 0.5rem 0 0;color:var(--accent);font-weight:700}
.bio-pullquote{column-span:all;text-align:center;padding:2rem 1rem;margin:1.5rem 0;border-top:1px solid var(--brd);border-bottom:1px solid var(--brd)}
.bio-pullquote blockquote{font-family:var(--font-display);font-size:1.5rem;font-style:italic;font-weight:500;color:var(--accent);line-height:1.5}

/* PHOTO BREAK */
.photo-break{position:relative;width:100%;height:280px;overflow:hidden}
.photo-break-img{position:absolute;inset:0;background-size:cover;background-position:center}
.photo-break-fade{position:absolute;inset:0;background:linear-gradient(to bottom,var(--bg),transparent 30%,transparent 70%,var(--bg))}

/* DISPATCH LOG */
.dispatch-entry{display:grid;grid-template-columns:140px 1fr;gap:0;border-bottom:1px solid var(--brd);transition:background var(--transition)}
.dispatch-entry:hover{background:var(--dispatch-bg)}
.dispatch-entry:first-child{border-top:1px solid var(--brd)}
.dispatch-date{font-family:var(--font-mono);font-size:0.8rem;font-weight:500;color:var(--accent);padding:1.2rem 1rem 1.2rem 0;border-right:2px solid var(--accent-dim);display:flex;flex-direction:column;gap:0.15rem}
.dispatch-flag{font-size:0.95rem}
.dispatch-body{padding:1.2rem 0 1.2rem 1.5rem}
.dispatch-title{font-family:var(--font-display);font-size:1.1rem;font-weight:600;margin-bottom:0.2rem}
.dispatch-desc{font-size:0.88rem;color:var(--tx-secondary);line-height:1.5}

/* SKILLS */
.masthead{display:flex;flex-wrap:wrap;gap:0.6rem;justify-content:center}
.masthead-tag{font-family:var(--font-mono);font-size:0.82rem;color:var(--tx-secondary);padding:0.5rem 1rem;border:1px solid var(--brd);border-radius:3px;transition:all var(--transition);letter-spacing:-0.01em}
.masthead-tag:hover{border-color:var(--accent);color:var(--accent)}

/* PROJECTS */
.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
@media (min-width:900px){.project-grid{grid-template-columns:repeat(3,1fr)}}
.proj-card{background:var(--bg-card);border:1px solid var(--brd);border-radius:8px;padding:1.5rem;text-decoration:none;color:var(--tx);transition:all var(--transition);display:flex;flex-direction:column;gap:0.5rem}
.proj-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 25px var(--shadow)}
.proj-card-top{display:flex;align-items:center;gap:0.6rem}
.proj-card-icon{font-size:1.3rem}
.proj-card h3{font-family:var(--font-display);font-size:1.15rem;font-weight:600;transition:color var(--transition)}
.proj-card:hover h3{color:var(--accent)}
.proj-card p{font-size:0.88rem;color:var(--tx-secondary);line-height:1.5}
.proj-card-url{font-family:var(--font-mono);font-size:0.75rem;color:var(--tx-muted);margin-top:auto;padding-top:0.3rem;opacity:0.6}

/* CREW */
.crew-row{display:flex;flex-wrap:wrap;justify-content:center;gap:0.6rem}
.crew-pill{display:flex;align-items:center;gap:0.25rem;font-size:0.82rem;color:var(--tx-muted);padding:0.35rem 0.7rem;border:1px solid var(--brd);border-radius:3px;transition:all var(--transition)}
.crew-pill:hover{border-color:var(--accent);color:var(--accent)}
.crew-pill-emoji{font-size:1rem}
.crew-cta{text-align:center;margin-top:1.5rem}
.crew-cta a{font-family:var(--font-mono);font-size:0.85rem;color:var(--accent);text-decoration:none;padding:0.5rem 1.5rem;border:1px solid var(--accent);border-radius:3px;transition:all var(--transition);display:inline-flex;align-items:center;gap:0.4rem}
.crew-cta a:hover{background:var(--accent);color:#fff}

/* CONTACT */
.contact-box{max-width:480px;margin:0 auto;text-align:center;padding:2.5rem;border:1px solid var(--brd);border-radius:8px;background:var(--bg-card)}
.contact-box p{font-family:var(--font-display);font-size:1.15rem;font-style:italic;color:var(--tx-secondary);margin-bottom:1.5rem;line-height:1.6}
.contact-btn{display:inline-flex;align-items:center;gap:0.5rem;color:#fff;background:var(--accent);text-decoration:none;font-weight:500;padding:0.7rem 2rem;border-radius:3px;transition:all var(--transition);font-size:0.95rem}
.contact-btn:hover{background:var(--accent-hover);transform:translateY(-1px)}

/* FOOTER */
.footer{text-align:center;padding:2.5rem 1.5rem;border-top:1px solid var(--brd);color:var(--tx-muted);font-size:0.82rem}
.footer a{color:var(--accent);text-decoration:none}
.footer a:hover{text-decoration:underline}

/* ============================================================
   CAPTAIN'S LOG — Blog Cards (editorial style)
   ============================================================ */
.blog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
@media (min-width:900px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
.blog-card{background:var(--bg-card);border:1px solid var(--brd);border-radius:8px;padding:0;text-decoration:none;color:var(--tx);transition:all var(--transition);display:flex;flex-direction:column;overflow:hidden}
.blog-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 25px var(--shadow)}
.blog-card-image{width:100%;height:180px;object-fit:cover;transition:opacity var(--transition)}
.blog-card:hover .blog-card-image{opacity:0.9}
.blog-card-body{padding:1.5rem;display:flex;flex-direction:column;flex:1}
.blog-card-meta{font-family:var(--font-mono);font-size:0.7rem;color:var(--accent);text-transform:uppercase;letter-spacing:0.1em;margin-bottom:0.6rem}
.blog-card h3{font-family:var(--font-display);font-weight:600;font-size:1.2rem;margin-bottom:0.5rem;line-height:1.3;transition:color var(--transition)}
.blog-card:hover h3{color:var(--accent)}
.blog-card .excerpt{font-size:0.88rem;color:var(--tx-secondary);line-height:1.5;flex:1;margin-bottom:1rem}
.blog-card .read-more{font-family:var(--font-mono);font-size:0.72rem;color:var(--accent);text-transform:uppercase;letter-spacing:0.1em}

.view-all-link{display:inline-flex;align-items:center;gap:0.4rem;font-family:var(--font-mono);font-size:0.85rem;color:var(--accent);text-decoration:none;padding:0.5rem 1.5rem;border:1px solid var(--accent);border-radius:3px;transition:all var(--transition)}
.view-all-link:hover{background:var(--accent);color:#fff}

/* BLOG POST PAGE */
.post-hero{padding-top:100px;padding-bottom:2rem;max-width:760px;margin:0 auto;padding-left:1.5rem;padding-right:1.5rem}
.post-meta{font-family:var(--font-mono);font-size:0.72rem;color:var(--accent);text-transform:uppercase;letter-spacing:0.15em;margin-bottom:0.8rem}
.post-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.2rem);font-weight:700;line-height:1.1;margin-bottom:1.5rem;letter-spacing:-0.02em}
.post-featured-img{width:100%;max-height:450px;object-fit:cover;border-radius:8px;margin-bottom:2rem}
.post-content{max-width:760px;margin:0 auto;padding:0 1.5rem 5rem;font-family:var(--font-display);font-size:1.15rem;line-height:1.8;color:var(--tx-secondary)}
.post-content p{margin-bottom:1.2rem}
.post-content strong{color:var(--tx)}
.post-content pre{background:var(--bg-alt);border:1px solid var(--brd);padding:1.5rem;overflow-x:auto;margin:1.5rem 0;font-family:var(--font-mono);font-size:0.85rem;border-radius:6px}
.post-content code{font-family:var(--font-mono);font-size:0.85em}
.post-content img{max-width:100%;height:auto;border-radius:6px}
.post-back{font-family:var(--font-mono);font-size:0.8rem;color:var(--tx-muted);text-decoration:none;transition:color var(--transition)}
.post-back:hover{color:var(--accent)}

/* BLOG LISTING */
.blog-listing-header{padding-top:100px;max-width:1000px;margin:0 auto;padding-left:1.5rem;padding-right:1.5rem}
.pagination{display:flex;justify-content:center;gap:0.5rem;margin-top:2rem;padding-bottom:3rem}
.pagination a,.pagination span{font-family:var(--font-mono);font-size:0.8rem;padding:0.5rem 1rem;border:1px solid var(--brd);border-radius:3px;text-decoration:none;color:var(--tx-muted);transition:all var(--transition)}
.pagination a:hover{border-color:var(--accent);color:var(--accent)}
.pagination .current{background:var(--accent);color:#fff;border-color:var(--accent)}

/* ANIMATIONS */
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeInLeft{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}
@keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(8px)}}
.reveal{opacity:0;transform:translateY(20px);transition:opacity 0.6s ease,transform 0.6s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-left{opacity:0;transform:translateX(-20px);transition:opacity 0.5s ease,transform 0.5s ease}
.reveal-left.visible{opacity:1;transform:translateX(0)}

/* RESPONSIVE */
@media (min-width:768px){
    .navbar{padding:0 2rem}
    .nav-links{display:flex}
    .btn-hamburger{display:none}
    .section{padding:5rem 2rem}
    .photo-break{height:400px}
}
@media (max-width:767px){
    .hero{padding:5rem 1.5rem 3rem}
    .hero-inner{grid-template-columns:1fr;gap:2rem}
    .hero-right{border-left:none;padding-left:0;border-top:1px solid var(--brd);padding-top:1.5rem;flex-direction:row;flex-wrap:wrap;gap:1.5rem}
    .bio-col{column-count:1}
    .bio-col p:first-of-type::first-letter{font-size:3.5rem}
    .dispatch-entry{grid-template-columns:100px 1fr}
    .dispatch-date{font-size:0.72rem;padding:1rem 0.5rem 1rem 0}
    .dispatch-body{padding-left:1rem}
    .project-grid,.blog-grid{grid-template-columns:1fr}
}
@media (max-width:480px){
    .btn-toggle .label-text{display:none}
    .hero h1{font-size:2.5rem}
    .hero-right{flex-direction:column}
}

/* LANGUAGE */
[data-lang="en"] .pt{display:none}
[data-lang="pt"] .en{display:none}

/* ============================================================
   Markdown content (rendered by parseMarkdown into <div class="md">)
   Added V1.4.0/V2.x — replaces the inline styles that used to live in markdown.php.
   ============================================================ */
.md { color: var(--tx); line-height: 1.7; }

.md h1, .md h2, .md h3, .md h4, .md h5, .md h6 {
    font-family: var(--font-display);
    margin: 2rem 0 0.6rem;
    line-height: 1.25;
}
.md h1 { font-size: 2.2rem; }
.md h2 { font-size: 1.8rem; }
.md h3 { font-size: 1.4rem; }
.md h4 { font-size: 1.15rem; }
.md h5 { font-size: 1rem; text-transform: uppercase; letter-spacing: 0.05em; }
.md h6 { font-size: 0.9rem; color: var(--tx-secondary, var(--tx-muted, inherit)); }

.md p { margin: 0 0 1.2rem; }
.md a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s;
}
.md a:hover { border-bottom-color: var(--accent); }

.md img {
    max-width: 100%;
    height: auto;
    border: 1px solid var(--brd);
    margin: 1.2rem 0;
    border-radius: 4px;
}

.md hr {
    border: none;
    border-top: 1px solid var(--brd);
    margin: 2rem 0;
}

.md blockquote {
    border-left: 3px solid var(--accent);
    padding: 0.5rem 1rem;
    margin: 1rem 0;
    color: var(--tx-secondary, var(--tx-muted, inherit));
    font-style: italic;
}

.md ul, .md ol { margin: 1rem 0; padding-left: 1.5rem; }
.md li { margin-bottom: 0.3rem; }
.md li > p { margin-bottom: 0.3rem; }

.md code {
    font-family: var(--font-mono);
    background: var(--accent-dim, var(--accent-glow, rgba(128,128,128,0.12)));
    color: var(--accent);
    padding: 0.1rem 0.4rem;
    border-radius: 3px;
    font-size: 0.9em;
}

.md pre {
    background: var(--bg-alt, var(--bg-card, var(--bg-section-alt, rgba(0,0,0,0.25))));
    border: 1px solid var(--brd);
    padding: 1rem;
    overflow-x: auto;
    margin: 1.2rem 0;
    border-radius: 4px;
    line-height: 1.5;
}
.md pre code {
    background: none;
    color: var(--tx);
    padding: 0;
    font-size: 0.85rem;
    border-radius: 0;
}

.md strong { font-weight: 700; }
.md em { font-style: italic; }
