/*
Theme Name: Roads of Ash
Theme URI: https://roadsofash.com/
Author: Roads of Ash Development Team
Description: A custom one-page coming-soon theme for the Roads of Ash fantasy role-playing game.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: roads-of-ash
*/

:root {
    --roa-ink: #050403;
    --roa-charcoal: #0c0b09;
    --roa-panel: #14100d;
    --roa-panel-raised: #201810;
    --roa-parchment: #ead0a0;
    --roa-parchment-bright: #f8e5bf;
    --roa-muted: #b1a18f;
    --roa-copper: #7d4c2b;
    --roa-copper-bright: #d18a45;
    --roa-blood: #500704;
    --roa-blood-bright: #910c07;
    --roa-ember: #d61509;
    --roa-success: #749943;
    --roa-border: rgba(209, 138, 69, 0.52);
    --roa-shadow: rgba(0, 0, 0, 0.76);
    --roa-max: 1180px;
    --roa-display: "Cinzel", "Copperplate", "Copperplate Gothic Light", Georgia, serif;
    --roa-body: "Libre Baskerville", Baskerville, Georgia, serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--roa-parchment);
    background:
        linear-gradient(rgba(5, 4, 3, 0.92), rgba(5, 4, 3, 0.96)),
        url("assets/images/texture.webp") repeat;
    font-family: var(--roa-body);
    font-size: 17px;
    line-height: 1.75;
    overflow-x: hidden;
}
body.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .site-header { top: 46px; } }

img { display: block; max-width: 100%; height: auto; }
a { color: var(--roa-parchment-bright); text-decoration-thickness: 1px; text-underline-offset: 0.22em; }
a:hover, a:focus-visible { color: #fff3da; }
button, input, textarea, select { font: inherit; }
::selection { color: #fff; background: var(--roa-blood-bright); }

.screen-reader-text {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0,0,0,0);
    white-space: nowrap; border: 0;
}
.skip-link:focus {
    position: fixed !important;
    z-index: 99999;
    top: 12px; left: 12px;
    width: auto; height: auto;
    padding: 10px 14px;
    clip: auto;
    color: #fff;
    background: var(--roa-blood-bright);
}

.site-shell { min-height: 100vh; }
.roa-container { width: min(calc(100% - 40px), var(--roa-max)); margin-inline: auto; }
.roa-narrow { width: min(calc(100% - 40px), 820px); margin-inline: auto; }

.site-header {
    position: fixed;
    z-index: 1000;
    top: 0; left: 0; right: 0;
    background: linear-gradient(to bottom, rgba(5,4,3,0.97), rgba(5,4,3,0.72), transparent);
    transition: background 180ms ease, box-shadow 180ms ease;
}
.site-header.is-scrolled {
    background: rgba(5,4,3,0.95);
    box-shadow: 0 10px 28px rgba(0,0,0,0.42);
    backdrop-filter: blur(12px);
}
.header-inner {
    min-height: 82px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.site-mark {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    color: var(--roa-parchment-bright);
    text-decoration: none;
    font-family: var(--roa-display);
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    text-shadow: 0 2px 10px #000;
}
.site-mark-symbol { width: 20px; height: 34px; color: var(--roa-ember); filter: drop-shadow(0 0 8px rgba(214,21,9,0.35)); }
.site-mark-text { font-size: clamp(0.86rem, 1.4vw, 1.08rem); }
.custom-logo { max-height: 56px; width: auto; }

.site-nav { display: flex; align-items: center; gap: clamp(18px, 3vw, 34px); }
.site-nav a {
    color: var(--roa-parchment);
    text-decoration: none;
    font-family: var(--roa-display);
    font-size: 0.75rem;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    opacity: 0.9;
}
.site-nav a:hover, .site-nav a:focus-visible { color: #fff; opacity: 1; }
.nav-toggle {
    display: none;
    width: 44px; height: 44px;
    border: 1px solid var(--roa-border);
    color: var(--roa-parchment);
    background: rgba(0,0,0,0.45);
    cursor: pointer;
}
.nav-toggle span, .nav-toggle::before, .nav-toggle::after {
    display: block;
    width: 20px; height: 1px;
    margin: 5px auto;
    content: "";
    background: currentColor;
    transition: transform 180ms ease, opacity 180ms ease;
}
.nav-toggle[aria-expanded="true"] span { opacity: 0; }
.nav-toggle[aria-expanded="true"]::before { transform: translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"]::after { transform: translateY(-6px) rotate(-45deg); }

.hero {
    position: relative;
    min-height: 100svh;
    display: grid;
    align-items: end;
    isolation: isolate;
    overflow: hidden;
    background: #0a0806;
}
.hero-media, .hero-media::before, .hero-media::after { position: absolute; inset: 0; }
.hero-media { z-index: -3; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 54% center; filter: saturate(0.86) contrast(1.08) brightness(0.82); }
.hero-media::before {
    z-index: 1;
    content: "";
    background:
        linear-gradient(90deg, rgba(3,2,2,0.92) 0%, rgba(3,2,2,0.58) 39%, rgba(3,2,2,0.12) 72%),
        linear-gradient(0deg, var(--roa-ink) 0%, rgba(5,4,3,0.56) 22%, transparent 58%);
}
.hero-media::after {
    z-index: 2;
    content: "";
    background: radial-gradient(circle at 62% 35%, rgba(191,61,15,0.12), transparent 36%);
    mix-blend-mode: screen;
}
.hero-content { padding-top: 140px; padding-bottom: clamp(72px, 10vw, 132px); }
.hero-copy { width: min(720px, 100%); }
.status-pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border: 1px solid rgba(209,138,69,0.58);
    background: rgba(9,7,5,0.72);
    color: var(--roa-parchment-bright);
    font-family: var(--roa-display);
    font-size: 0.68rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    box-shadow: 0 10px 30px rgba(0,0,0,0.38);
}
.status-pill::before {
    width: 7px; height: 7px;
    content: "";
    border-radius: 50%;
    background: var(--roa-ember);
    box-shadow: 0 0 12px var(--roa-ember);
}
.wordmark { margin: 24px 0 18px; }
.wordmark-emblem {
    width: 34px; height: 58px;
    margin: 0 0 -42px 46%;
    color: var(--roa-ember);
    opacity: 0.58;
    filter: drop-shadow(0 0 12px rgba(214,21,9,0.36));
}
.wordmark h1 {
    position: relative;
    z-index: 2;
    margin: 0;
    color: var(--roa-parchment-bright);
    font-family: var(--roa-display);
    font-size: clamp(3.2rem, 9vw, 7.3rem);
    font-weight: 700;
    line-height: 0.92;
    letter-spacing: 0.055em;
    text-transform: uppercase;
    text-shadow: 0 5px 18px #000, 0 1px 0 #6e4829;
}
.hero-tagline {
    margin: 0 0 18px;
    color: var(--roa-parchment-bright);
    font-family: var(--roa-display);
    font-size: clamp(1.05rem, 2.5vw, 1.48rem);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.hero-intro { max-width: 650px; margin: 0 0 30px; color: #d4c4b0; font-size: clamp(1.02rem, 2vw, 1.2rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 13px; }

.roa-button {
    position: relative;
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 22px;
    border: 1px solid var(--roa-copper-bright);
    clip-path: polygon(9px 0, calc(100% - 9px) 0, 100% 9px, 100% calc(100% - 9px), calc(100% - 9px) 100%, 9px 100%, 0 calc(100% - 9px), 0 9px);
    color: var(--roa-parchment-bright);
    background: linear-gradient(#8f1009, #4c0503);
    box-shadow: 0 8px 28px rgba(0,0,0,0.42), inset 0 1px 0 rgba(255,255,255,0.08);
    font-family: var(--roa-display);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.11em;
    text-decoration: none;
    text-transform: uppercase;
    transition: transform 160ms ease, filter 160ms ease, box-shadow 160ms ease;
}
.roa-button:hover, .roa-button:focus-visible { color: #fff; transform: translateY(-2px); filter: brightness(1.12); box-shadow: 0 12px 34px rgba(0,0,0,0.55); }
.roa-button.secondary { background: rgba(6,5,4,0.72); border-color: rgba(209,138,69,0.65); }

.ember-drift { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.ember-drift i {
    position: absolute;
    bottom: -30px;
    width: 3px; height: 3px;
    border-radius: 50%;
    background: #ff6a24;
    box-shadow: 0 0 9px #ff3c0b;
    opacity: 0;
    animation: ember-rise linear infinite;
}
.ember-drift i:nth-child(1){left:8%;animation-duration:8s;animation-delay:0s}.ember-drift i:nth-child(2){left:18%;animation-duration:11s;animation-delay:3s}.ember-drift i:nth-child(3){left:31%;animation-duration:9s;animation-delay:1s}.ember-drift i:nth-child(4){left:46%;animation-duration:13s;animation-delay:5s}.ember-drift i:nth-child(5){left:63%;animation-duration:10s;animation-delay:2s}.ember-drift i:nth-child(6){left:78%;animation-duration:12s;animation-delay:6s}.ember-drift i:nth-child(7){left:91%;animation-duration:9s;animation-delay:4s}
@keyframes ember-rise { 0%{transform:translateY(0) translateX(0);opacity:0}10%{opacity:.8}70%{opacity:.45}100%{transform:translateY(-92vh) translateX(45px);opacity:0} }

.roa-section { position: relative; padding: clamp(78px, 10vw, 132px) 0; }
.roa-section + .roa-section { border-top: 1px solid rgba(125,76,43,0.18); }
.section-kicker {
    margin: 0 0 12px;
    color: var(--roa-copper-bright);
    font-family: var(--roa-display);
    font-size: 0.72rem;
    letter-spacing: 0.19em;
    text-transform: uppercase;
}
.section-title {
    margin: 0 0 22px;
    color: var(--roa-parchment-bright);
    font-family: var(--roa-display);
    font-size: clamp(2.1rem, 5vw, 4.4rem);
    line-height: 1.1;
    letter-spacing: 0.025em;
    text-transform: uppercase;
}
.section-lead { margin: 0; color: var(--roa-muted); font-size: clamp(1.05rem, 2.1vw, 1.28rem); }
.ornament {
    display: grid;
    grid-template-columns: 1fr 9px 1fr;
    align-items: center;
    gap: 10px;
    width: min(400px, 72%);
    margin: 32px auto 0;
}
.ornament::before, .ornament::after { height: 1px; content: ""; background: linear-gradient(90deg, transparent, var(--roa-copper)); }
.ornament::after { transform: rotate(180deg); }
.ornament span { width: 8px; height: 8px; transform: rotate(45deg); background: var(--roa-ember); }

.world-grid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(38px, 7vw, 92px); align-items: center; }
.world-art {
    position: relative;
    min-height: 620px;
    overflow: hidden;
    clip-path: polygon(18px 0, calc(100% - 18px) 0, 100% 18px, 100% calc(100% - 18px), calc(100% - 18px) 100%, 18px 100%, 0 calc(100% - 18px), 0 18px);
    border: 1px solid var(--roa-border);
    background: var(--roa-panel);
    box-shadow: 0 28px 70px rgba(0,0,0,0.55);
}
.world-art img { width: 100%; height: 100%; min-height: 620px; object-fit: cover; }
.world-art::after { position: absolute; inset: 0; content: ""; box-shadow: inset 0 0 0 5px rgba(5,4,3,0.56), inset 0 -140px 130px rgba(5,4,3,0.4); }
.world-copy p + p { margin-top: 18px; }

.feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 48px; }
.feature-card {
    position: relative;
    min-height: 260px;
    padding: 28px 24px;
    overflow: hidden;
    border: 1px solid rgba(125,76,43,0.68);
    clip-path: polygon(12px 0, calc(100% - 12px) 0, 100% 12px, 100% calc(100% - 12px), calc(100% - 12px) 100%, 12px 100%, 0 calc(100% - 12px), 0 12px);
    background: linear-gradient(145deg, rgba(32,24,16,0.94), rgba(7,6,5,0.97));
    box-shadow: 0 18px 50px rgba(0,0,0,0.28);
}
.feature-card::before { position: absolute; top: 0; left: 20px; right: 20px; height: 1px; content: ""; background: linear-gradient(90deg, transparent, var(--roa-copper-bright), transparent); }
.feature-icon { width: 38px; height: 38px; margin-bottom: 20px; color: var(--roa-ember); }
.feature-card h3 { margin: 0 0 12px; color: var(--roa-parchment-bright); font-family: var(--roa-display); font-size: 1.05rem; line-height: 1.3; letter-spacing: 0.06em; text-transform: uppercase; }
.feature-card p { margin: 0; color: var(--roa-muted); font-size: 0.92rem; line-height: 1.65; }

.journey-band {
    position: relative;
    min-height: 660px;
    display: grid;
    align-items: center;
    overflow: hidden;
    isolation: isolate;
    border-block: 1px solid rgba(125,76,43,0.32);
}
.journey-band > img { position: absolute; z-index: -3; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(0.65) brightness(0.57); }
.journey-band::before { position: absolute; z-index: -2; inset: 0; content: ""; background: linear-gradient(90deg, rgba(5,4,3,0.94), rgba(5,4,3,0.68) 52%, rgba(5,4,3,0.36)), linear-gradient(0deg, #050403, transparent 20%, transparent 75%, #050403); }
.journey-quote { width: min(700px, 100%); }
.journey-quote blockquote { margin: 0; color: var(--roa-parchment-bright); font-family: var(--roa-display); font-size: clamp(2rem, 5vw, 4.2rem); line-height: 1.18; text-transform: uppercase; text-shadow: 0 3px 16px #000; }
.journey-quote p { max-width: 620px; margin: 24px 0 0; color: #d0c0ad; font-size: 1.08rem; }

.credits-grid { display: grid; grid-template-columns: 0.92fr 1.08fr; gap: clamp(38px, 7vw, 94px); align-items: center; }
.credit-panel {
    position: relative;
    padding: clamp(28px, 5vw, 54px);
    border: 1px solid var(--roa-border);
    clip-path: polygon(15px 0, calc(100% - 15px) 0, 100% 15px, 100% calc(100% - 15px), calc(100% - 15px) 100%, 15px 100%, 0 calc(100% - 15px), 0 15px);
    background: linear-gradient(145deg, rgba(32,24,16,0.97), rgba(8,6,5,0.98));
    box-shadow: 0 24px 65px rgba(0,0,0,0.43);
}
.credit-panel dl { margin: 0; }
.credit-panel dt { margin-top: 23px; color: var(--roa-copper-bright); font-family: var(--roa-display); font-size: 0.68rem; letter-spacing: 0.15em; text-transform: uppercase; }
.credit-panel dt:first-child { margin-top: 0; }
.credit-panel dd { margin: 3px 0 0; color: var(--roa-parchment-bright); font-family: var(--roa-display); font-size: clamp(1.15rem, 2vw, 1.5rem); letter-spacing: 0.03em; }
.mcdh-mark { margin: 0 0 14px; color: var(--roa-parchment-bright); font-family: var(--roa-display); font-size: clamp(3rem, 8vw, 6.4rem); font-weight: 700; line-height: 1; letter-spacing: 0.14em; text-transform: uppercase; text-shadow: 0 4px 18px #000; }
.music-note { color: var(--roa-muted); font-size: 1.06rem; }

.coming-soon { text-align: center; background: radial-gradient(circle at center, rgba(80,7,4,0.28), transparent 58%); }
.platforms { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.platform-chip { display: inline-flex; align-items: center; gap: 9px; padding: 10px 15px; border: 1px solid rgba(125,76,43,0.52); color: var(--roa-parchment); background: rgba(0,0,0,0.35); font-family: var(--roa-display); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; }
.platform-chip svg { width: 18px; height: 18px; color: var(--roa-copper-bright); }

.site-footer { padding: 30px 0 42px; border-top: 1px solid rgba(125,76,43,0.28); color: #8e8173; background: rgba(0,0,0,0.3); font-size: 0.82rem; }
.footer-inner { display: flex; justify-content: space-between; align-items: center; gap: 22px; }
.footer-links { display: flex; flex-wrap: wrap; gap: 18px; }
.footer-links a { color: #ad9d8b; }
.footer-menu { display: flex; flex-wrap: wrap; gap: 18px; margin: 0; padding: 0; list-style: none; }

.content-page { padding: 140px 0 90px; min-height: 75vh; }
.content-page article { padding: clamp(26px, 5vw, 52px); border: 1px solid rgba(125,76,43,0.45); background: rgba(20,16,13,0.88); box-shadow: 0 25px 70px rgba(0,0,0,0.35); }
.entry-title { margin: 0 0 25px; color: var(--roa-parchment-bright); font-family: var(--roa-display); font-size: clamp(2rem, 5vw, 3.7rem); text-transform: uppercase; }
.entry-content h2, .entry-content h3 { color: var(--roa-parchment-bright); font-family: var(--roa-display); }
.entry-content p, .entry-content li { color: #cabaa7; }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity 650ms ease, transform 650ms ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 980px) {
    .feature-grid { grid-template-columns: repeat(2, 1fr); }
    .world-grid, .credits-grid { grid-template-columns: 1fr; }
    .world-art { min-height: 520px; order: 2; }
    .world-art img { min-height: 520px; }
}
@media (max-width: 760px) {
    body { font-size: 16px; }
    .header-inner { min-height: 70px; }
    .nav-toggle { display: block; }
    .site-nav {
        position: absolute;
        top: 100%; left: 20px; right: 20px;
        display: none;
        align-items: stretch;
        flex-direction: column;
        gap: 0;
        padding: 8px;
        border: 1px solid rgba(125,76,43,0.6);
        background: rgba(5,4,3,0.98);
        box-shadow: 0 20px 60px rgba(0,0,0,0.55);
    }
    .site-nav.is-open { display: flex; }
    .site-nav a { padding: 13px 12px; }
    .hero-content { padding-top: 128px; }
    .hero-media img { object-position: 62% center; }
    .hero-media::before { background: linear-gradient(0deg, var(--roa-ink) 0%, rgba(5,4,3,0.5) 45%, rgba(5,4,3,0.2)), linear-gradient(90deg, rgba(3,2,2,0.72), rgba(3,2,2,0.16)); }
    .wordmark h1 { font-size: clamp(3rem, 16vw, 5.6rem); }
    .feature-grid { grid-template-columns: 1fr; }
    .feature-card { min-height: auto; }
    .journey-band { min-height: 580px; }
    .footer-inner { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 460px) {
    .roa-container, .roa-narrow { width: min(calc(100% - 28px), var(--roa-max)); }
    .site-mark-text { letter-spacing: 0.08em; }
    .hero-actions { align-items: stretch; flex-direction: column; }
    .roa-button { width: 100%; }
    .world-art, .world-art img { min-height: 440px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
    .reveal { opacity: 1; transform: none; }
}
