/*
Theme Name: Zambezi Rain
Theme URI: https://zambezi-rain.example
Author: Zambezi Rain Productions
Description: Pre-production → festival → distribution website for the feature film "Zambezi Rain". Dark clay-and-gold palette with a storm accent that reveals on scroll. Includes custom post types for Characters, Gallery, and Press Kit assets, Customizer controls for all key copy, and a mailing-list capture that can be pointed at Mailchimp.
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: zambezi-rain
*/

:root{
  --ink:#1b140d;
  --clay:#4a3324;
  --clay-deep:#3a271b;
  --sand:#d9c9a3;
  --dust:#a58a63;
  --gold:#b8863b;
  --gold-bright:#d1a355;
  --storm:#3e5a66;
  --storm-bright:#6f97a4;
  --paper:#efe7d4;
  --paper-dim:#e4d9bf;
  --serif:'Petrona', Georgia, serif;
  --sans:'Karla', -apple-system, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--ink);
  color:var(--paper);
  font-family:var(--sans);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

a{color:inherit;}
:focus-visible{outline:2px solid var(--gold-bright); outline-offset:3px;}
img{max-width:100%;height:auto;}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;}
.wrap{max-width:1100px; margin:0 auto; padding:0 32px;}

/* ---------- WordPress nav ---------- */
nav.site-links ul{display:flex;gap:28px;list-style:none;margin:0;padding:0;}
nav.site-links ul li a{
  text-decoration:none;color:var(--dust);border-bottom:1px solid transparent;padding-bottom:2px;
  transition:color .2s ease, border-color .2s ease;
}
nav.site-links ul li a:hover, nav.site-links ul li.current-menu-item a{color:var(--sand); border-color:var(--gold);}

/* ---------- header / nav ---------- */
header.site{
  position:absolute;
  top:0; left:0; right:0;
  z-index:5;
  padding:28px 32px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
a.mark{
  font-family:var(--serif);
  font-size:1.05rem;
  letter-spacing:.03em;
  color:var(--sand);
  text-decoration:none;
}
nav.site-links{
  display:flex;
  gap:28px;
  font-size:.92rem;
}
nav.site-links a{
  text-decoration:none;
  color:var(--dust);
  border-bottom:1px solid transparent;
  padding-bottom:2px;
  transition:color .2s ease, border-color .2s ease;
}
nav.site-links a:hover{ color:var(--sand); border-color:var(--gold); }

/* ---------- hero ---------- */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  padding:140px 24px 100px;
  overflow:hidden;
  background:
    radial-gradient(ellipse 70% 55% at 50% 18%, rgba(184,134,59,0.10), transparent 60%),
    linear-gradient(180deg, var(--ink) 0%, #241a10 55%, var(--ink) 100%);
}
.hero-illustration{width:min(760px, 92vw);height:auto;margin-bottom:14px;opacity:.95;}
h1.title{
  font-family:var(--serif);
  font-weight:600;
  font-size:clamp(3rem, 9vw, 6.4rem);
  letter-spacing:.01em;
  margin:0;
  color:var(--sand);
  line-height:1;
}
h1.title em{font-style:italic;font-weight:500;color:var(--gold-bright);}
.hero-crackline{width:min(420px, 60vw);margin:26px 0 22px;}
.logline{
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(1.1rem, 2.2vw, 1.4rem);
  color:var(--paper-dim);
  max-width:34ch;
  margin:0 0 6px;
}
.subline{font-size:.92rem;letter-spacing:.02em;color:var(--dust);margin:0 0 40px;}

.btn{
  display:inline-block;
  font-family:var(--sans);
  font-weight:600;
  font-size:.95rem;
  color:var(--ink);
  background:var(--gold-bright);
  padding:14px 30px;
  border-radius:2px;
  text-decoration:none;
  border:1px solid var(--gold-bright);
  cursor:pointer;
  transition:background .2s ease, color .2s ease, transform .15s ease;
}
.btn:hover{ background:transparent; color:var(--gold-bright); transform:translateY(-1px); }
.btn.ghost{background:transparent;color:var(--sand);border:1px solid var(--dust);}
.btn.ghost:hover{border-color:var(--gold-bright);color:var(--gold-bright);}

/* ---------- section shell ---------- */
section{padding:110px 0;}
.on-paper{background:var(--paper);color:var(--ink);}
.on-clay{background:var(--clay-deep);color:var(--paper-dim);}
.eyebrow{font-family:var(--serif);font-style:italic;font-size:1rem;color:var(--dust);margin:0 0 8px;}
.on-paper .eyebrow{color:var(--gold);}

/* ---------- page content (generic pages) ---------- */
.site-main{padding:140px 0 80px;}
.site-main .entry-content p{max-width:60ch;color:var(--paper-dim);font-size:1.02rem;}
.site-main h1,.site-main h2{font-family:var(--serif);color:var(--sand);font-weight:600;}
a.wp-block-button__link{background:var(--gold-bright);color:var(--ink);}

/* ---------- synopsis ---------- */
.synopsis-grid{display:grid;grid-template-columns:0.85fr 1.4fr;gap:60px;align-items:start;}
.synopsis-grid h2{font-family:var(--serif);font-weight:600;font-size:2rem;margin:0 0 10px;}
.synopsis-grid p{font-size:1.02rem;max-width:56ch;color:#3a2c1c;}
blockquote.prophecy{
  font-family:var(--serif);font-style:italic;font-size:1.5rem;line-height:1.5;color:var(--clay);
  border-left:2px solid var(--gold);padding-left:24px;margin:34px 0 0;max-width:34ch;
}
blockquote.prophecy cite{display:block;font-style:normal;font-family:var(--sans);font-size:.85rem;color:var(--dust);margin-top:12px;}
@media (max-width:760px){.synopsis-grid{grid-template-columns:1fr;gap:28px;}}

/* ---------- characters ---------- */
.cast-list{display:flex;flex-direction:column;}
.cast-row{display:flex;padding:34px 0;border-bottom:1px solid rgba(217,201,163,0.14);gap:40px;}
.cast-row:first-child{border-top:1px solid rgba(217,201,163,0.14);}
.cast-row.right{justify-content:flex-end;text-align:right;}
.cast-card{max-width:480px;}
.cast-row.right .cast-card{margin-left:auto;}
.cast-avatar{width:96px;height:96px;border-radius:50%;overflow:hidden;flex:0 0 96px;border:1px solid rgba(209,163,85,.4);}
.cast-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.cast-name{font-family:var(--serif);font-weight:600;font-size:1.6rem;color:var(--sand);margin:0 0 4px;}
.cast-role{font-size:.85rem;letter-spacing:.02em;color:var(--gold-bright);margin:0 0 12px;}
.cast-desc{font-size:.98rem;color:var(--paper-dim);margin:0;}
@media (max-width:700px){
  .cast-row,.cast-row.right{justify-content:flex-start;text-align:left;flex-direction:column;gap:16px;}
  .cast-row.right .cast-card{margin-left:0;}
}

/* ---------- mythology tablet ---------- */
.tablet{max-width:640px;margin:0 auto;text-align:center;}
.tablet h2{font-family:var(--serif);font-weight:600;font-size:1.9rem;margin:0 0 26px;color:var(--gold-bright);}
.tablet p{font-size:1.05rem;color:var(--paper-dim);margin:0 0 18px;}
.tablet .sig{font-family:var(--serif);font-style:italic;color:var(--dust);margin-top:30px;font-size:.95rem;}

/* ---------- gallery ---------- */
.gallery-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:44px;flex-wrap:wrap;gap:16px;}
.gallery-head h2{font-family:var(--serif);font-weight:600;font-size:2rem;margin:0;color:var(--ink);}
.gallery-note{font-size:.9rem;color:var(--dust);max-width:32ch;}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.plate{
  aspect-ratio:4/5;border:1px solid rgba(74,51,36,0.25);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
  background:repeating-linear-gradient(135deg, rgba(74,51,36,0.06) 0 2px, transparent 2px 14px), var(--paper-dim);
}
.plate span{font-family:var(--serif);font-style:italic;color:var(--dust);font-size:.9rem;}
.plate img{width:100%;height:100%;object-fit:cover;display:block;}
@media (max-width:700px){.gallery-grid{grid-template-columns:1fr 1fr;}}

/* ---------- signup / storm reveal ---------- */
.storm{
  position:relative;
  background:linear-gradient(180deg, var(--clay-deep) 0%, var(--ink) 100%);
  overflow:hidden;text-align:center;padding:130px 24px;
}
.storm-canvas{position:absolute;inset:0;pointer-events:none;}
.rain-line{
  position:absolute;top:-10%;width:1px;height:0%;
  background:linear-gradient(180deg, transparent, var(--storm-bright), transparent);
  opacity:0;transition:height 1.4s ease, opacity 1.4s ease;
}
.storm.revealed .rain-line{height:120%;opacity:.55;}
.storm-content{position:relative;z-index:2;}
.storm h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.8rem,4vw,2.6rem);color:var(--sand);margin:0 0 14px;}
.storm p{color:var(--paper-dim);max-width:44ch;margin:0 auto 34px;}
form.signup{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;max-width:460px;margin:0 auto;}
form.signup input[type="email"]{
  flex:1 1 240px;padding:14px 16px;background:transparent;border:1px solid var(--dust);
  color:var(--sand);font-family:var(--sans);font-size:.95rem;border-radius:2px;
}
form.signup input[type="email"]::placeholder{color:var(--dust);}
form.signup input[type="email"]:focus{border-color:var(--gold-bright);}
.signup-notice{color:var(--gold-bright);font-family:var(--serif);font-style:italic;margin-top:16px;}

/* ---------- press kit ---------- */
.press-assets{list-style:none;padding:0;margin:30px 0;}
.press-assets li{
  display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
  padding:18px 0;border-bottom:1px solid rgba(217,201,163,0.15);
}
.press-assets .asset-title{font-family:var(--serif);font-size:1.15rem;color:var(--sand);}
.press-assets .asset-desc{font-size:.9rem;color:var(--dust);margin:2px 0 0;}

/* ---------- footer ---------- */
footer{padding:50px 0 40px;background:var(--ink);color:var(--dust);font-size:.85rem;}
.footer-grid{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
footer a{text-decoration:none;color:var(--dust);}
footer a:hover{color:var(--sand);}
.footer-links{display:flex;gap:22px;}
