/*
Theme Name: StormyRaynebow
Theme URI: https://linktr.ee/stormyraynebow
Author: StormyRaynebow
Author URI: https://linktr.ee/stormyraynebow
Description: A dark, fae-aesthetic WordPress theme for Rayne Potter / StormyRaynebow — audiobook narrator, possible fae, definitely feral.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: stormyraynebow
Tags: one-page, dark, custom-colors, custom-header, featured-images, full-width-template
*/

/* ─── Reset ─────────────────────────────────────────────────────────────── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}

/* ─── Variables ──────────────────────────────────────────────────────────── */
:root{
  --bg:#030806;--bg2:#07120a;
  --moss:#244f22;--glow:#88bb78;--moon:#d8eccc;
  --purple:#6a42a8;--gold:#b8952e;
  --text:#b4d0ac;--textdim:#5e8a58;
  --f1:'Cinzel Decorative',serif;
  --f2:'Cormorant Garamond',serif;
  --f3:'EB Garamond',serif;
}

/* ─── Base ───────────────────────────────────────────────────────────────── */
body{background:var(--bg);color:var(--text);font-family:var(--f3);overflow-x:hidden}
a{color:var(--glow);text-decoration:none}
img{max-width:100%;height:auto}

/* ─── Animations ─────────────────────────────────────────────────────────── */
@keyframes titleGlow{
  0%,100%{text-shadow:0 0 16px #88bb78,0 0 40px #3d6e38,0 0 80px #244f22}
  50%{text-shadow:0 0 28px #b0df94,0 0 60px #6aad5a,0 0 120px #3d6e38}
}
@keyframes fadeUp{from{opacity:0;transform:translateY(38px)}to{opacity:1;transform:translateY(0)}}
@keyframes fireflyPulse{
  0%,100%{opacity:0;transform:translate(0,0) scale(1)}
  30%{opacity:0}50%{opacity:1;transform:translate(var(--fx),var(--fy)) scale(1.7)}70%{opacity:0.9}
}
@keyframes scrollBob{0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(11px);opacity:0.25}}
@keyframes glowDot{0%,100%{box-shadow:0 0 4px var(--glow)}50%{box-shadow:0 0 12px var(--glow),0 0 24px var(--moss)}}
@keyframes navFade{from{opacity:0}to{opacity:1}}
@keyframes vineSway{
  0%,100%{transform:rotate(0deg) translateX(0px)}
  30%{transform:rotate(0.6deg) translateX(2px)}
  65%{transform:rotate(-0.4deg) translateX(-1px)}
}
@keyframes revealUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes revealL{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:translateX(0)}}
@keyframes revealR{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:translateX(0)}}
@keyframes accentSway{
  0%,100%{transform:rotate(0deg) scale(1)}
  40%{transform:rotate(2deg) scale(1.01)}
  70%{transform:rotate(-1.5deg) scale(0.99)}
}

/* ─── Navigation ─────────────────────────────────────────────────────────── */
.sr-nav{
  position:fixed;top:0;left:0;right:0;z-index:300;
  padding:1.1rem 2.5rem;display:flex;justify-content:space-between;align-items:center;
  background:linear-gradient(to bottom,rgba(2,6,3,0.94) 0%,transparent 100%);
  backdrop-filter:blur(5px);animation:navFade 1s ease-out forwards;
}
.sr-nav-logo{font-family:var(--f1);font-size:0.95rem;color:var(--glow);letter-spacing:0.06em;cursor:pointer;text-decoration:none}
.sr-nav-logo:hover{color:var(--moon)}
.sr-nav-links{display:flex;gap:2.2rem;list-style:none}
.sr-nav-links a{font-family:var(--f2);font-size:0.88rem;color:var(--textdim);text-decoration:none;letter-spacing:0.14em;text-transform:uppercase;transition:color 0.25s}
.sr-nav-links a:hover{color:var(--glow)}
/* WP menu overrides */
#site-navigation ul{list-style:none;margin:0;padding:0;display:flex;gap:2.2rem}
#site-navigation ul li a{font-family:var(--f2);font-size:0.88rem;color:var(--textdim);text-decoration:none;letter-spacing:0.14em;text-transform:uppercase;transition:color 0.25s}
#site-navigation ul li a:hover{color:var(--glow)}
#site-navigation ul ul{display:none} /* hide sub-menus */
@media(max-width:620px){.sr-nav-links,#site-navigation{display:none}}

/* ─── Vine Panels ────────────────────────────────────────────────────────── */
.sr-vine-panel{
  position:fixed;top:0;width:160px;height:100vh;
  background-size:160px auto;background-repeat:repeat-y;
  pointer-events:none;z-index:10;
  animation:vineSway 14s ease-in-out infinite;
  transform-origin:top center;opacity:0.92;
}
.sr-vine-left{left:0;transform-origin:top left}
.sr-vine-right{right:0;transform:scaleX(-1);transform-origin:top right;animation-direction:reverse}

/* ─── Fireflies ──────────────────────────────────────────────────────────── */
#firefly-layer{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden;mix-blend-mode:screen}
.sr-firefly{
  position:absolute;width:2.5px;height:2.5px;border-radius:50%;
  background:#b8eca0;box-shadow:0 0 5px #b8eca0,0 0 10px #7ec858;
  animation:fireflyPulse var(--dur,4s) ease-in-out infinite var(--delay,0s);
}

/* ─── Hero ───────────────────────────────────────────────────────────────── */
.sr-hero{
  min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  position:relative;overflow:hidden;padding:2rem 200px;text-align:center;
  background:radial-gradient(ellipse at 25% 40%,#0b1e10 0%,#040c06 48%,#030a0c 100%);
}
@media(max-width:700px){.sr-hero{padding:2rem 1.5rem}}
.sr-hero-aurora{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse at 15% 75%,rgba(22,52,18,0.45) 0%,transparent 52%),
    radial-gradient(ellipse at 85% 15%,rgba(25,16,55,0.5) 0%,transparent 52%),
    radial-gradient(ellipse at 50% 90%,rgba(12,35,18,0.35) 0%,transparent 45%);
}
.sr-hero-title{
  font-family:var(--f1);font-size:clamp(2rem,5.5vw,5rem);font-weight:900;
  letter-spacing:0.05em;color:#e5f2d8;line-height:1.1;
  animation:titleGlow 5s ease-in-out infinite,fadeUp 1.4s ease-out forwards;
  position:relative;z-index:3;
}
.sr-hero-tagline{
  font-family:var(--f2);font-size:clamp(0.95rem,1.8vw,1.35rem);color:var(--glow);margin-top:1rem;
  opacity:0;animation:fadeUp 1s ease-out 0.9s forwards;position:relative;z-index:3;letter-spacing:0.04em;
}
.sr-hero-sub{
  font-family:var(--f2);font-size:clamp(0.88rem,1.5vw,1.1rem);font-style:italic;color:var(--textdim);margin-top:0.5rem;
  opacity:0;animation:fadeUp 1s ease-out 1.3s forwards;position:relative;z-index:3;
}
.sr-hero-cta{margin-top:2.5rem;opacity:0;animation:fadeUp 1s ease-out 1.8s forwards;position:relative;z-index:3}
.sr-scroll-hint{
  position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:0.55rem;
  opacity:0;animation:fadeUp 1s ease-out 2.4s forwards;z-index:3;
}
.sr-scroll-text{font-family:var(--f2);font-size:0.75rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--textdim)}
.sr-scroll-line{width:1.5px;height:40px;background:linear-gradient(to bottom,var(--glow),transparent);animation:scrollBob 2.2s ease-in-out infinite}
.sr-fog{
  position:absolute;bottom:-10px;left:0;right:0;height:300px;
  pointer-events:none;z-index:2;
  background:
    radial-gradient(ellipse 55% 60% at 18% 100%,rgba(62,115,50,0.52) 0%,rgba(30,72,28,0.22) 45%,transparent 70%),
    radial-gradient(ellipse 60% 55% at 50% 100%,rgba(48,98,40,0.38) 0%,rgba(20,60,20,0.16) 50%,transparent 72%),
    radial-gradient(ellipse 55% 60% at 82% 100%,rgba(62,115,50,0.52) 0%,rgba(30,72,28,0.22) 45%,transparent 70%),
    radial-gradient(ellipse 40% 40% at 35% 90%,rgba(38,85,34,0.2) 0%,transparent 60%),
    radial-gradient(ellipse 40% 40% at 65% 90%,rgba(38,85,34,0.2) 0%,transparent 60%);
  transition:opacity 0.3s;
}
.sr-accent{pointer-events:none;position:absolute;opacity:0.22;animation:accentSway 12s ease-in-out infinite}

/* ─── Buttons ────────────────────────────────────────────────────────────── */
.sr-btn{
  display:inline-block;padding:0.85rem 2.2rem;border:1px solid var(--glow);color:var(--glow);
  font-family:var(--f2);font-size:1rem;letter-spacing:0.18em;text-transform:uppercase;
  text-decoration:none;transition:all 0.35s ease;position:relative;overflow:hidden;background:transparent;cursor:pointer;
}
.sr-btn::before{content:'';position:absolute;inset:0;background:var(--glow);transform:translateX(-101%);transition:transform 0.35s ease}
.sr-btn:hover{color:#030806}
.sr-btn:hover::before{transform:translateX(0)}
.sr-btn span{position:relative;z-index:1}
.sr-btn.purple{border-color:#a888ff;color:#a888ff}
.sr-btn.purple::before{background:#a888ff}
.sr-btn.purple:hover{color:#030806}

/* ─── Sections ───────────────────────────────────────────────────────────── */
.sr-section{position:relative;padding:6rem 2rem;overflow:hidden}
.sr-section-inner{max-width:1020px;margin:0 auto;position:relative;z-index:2;padding:0 1.5rem}
.sr-title{font-family:var(--f1);font-size:clamp(1.5rem,3.2vw,2.6rem);color:var(--moon);letter-spacing:0.03em}
.sr-divider{width:68px;height:1px;background:linear-gradient(to right,transparent,var(--glow),transparent);margin:0.9rem 0 2.6rem}

/* ─── About ──────────────────────────────────────────────────────────────── */
.sr-about{background:linear-gradient(180deg,#040c06 0%,#081410 55%,#050b07 100%)}
.sr-about-grid{display:grid;grid-template-columns:1fr 2fr;gap:3.8rem;align-items:center}
@media(max-width:760px){.sr-about-grid{grid-template-columns:1fr;gap:2rem}}
.sr-portrait{
  aspect-ratio:3/4;border:1px solid rgba(62,110,58,0.35);
  background:radial-gradient(ellipse at center,#0b1d0e 0%,#040908 100%);
  display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;
}
.sr-portrait::before{content:'';position:absolute;inset:9px;border:1px solid rgba(62,110,58,0.15)}
.sr-portrait img{width:100%;height:100%;object-fit:cover;position:relative;z-index:1}
.sr-portrait-letter{font-family:var(--f1);font-size:5rem;color:rgba(62,110,58,0.3)}
.sr-about-text p{font-family:var(--f3);font-size:clamp(1rem,1.35vw,1.15rem);line-height:1.88;color:var(--text);margin-bottom:1.35rem}
.sr-about-text em{color:var(--glow);font-style:italic}
.sr-about-text strong{color:var(--moon);font-weight:500}

/* ─── Work Cards ─────────────────────────────────────────────────────────── */
.sr-work{background:linear-gradient(180deg,#050b07 0%,#0a1812 55%,#060f08 100%)}
.sr-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:1.7rem}
.sr-card{
  background:linear-gradient(145deg,rgba(7,15,9,0.94) 0%,rgba(11,22,14,0.94) 100%);
  border:1px solid rgba(62,110,58,0.24);padding:1.9rem;text-decoration:none;
  display:block;color:var(--text);transition:all 0.38s ease;position:relative;overflow:hidden;
}
.sr-card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(to right,transparent,var(--glow),transparent);opacity:0;transition:opacity 0.3s}
.sr-card:hover{border-color:rgba(136,187,120,0.5);transform:translateY(-6px);box-shadow:0 20px 50px rgba(36,79,34,0.24),0 0 0 1px rgba(136,187,120,0.14)}
.sr-card:hover::before{opacity:1}
.sr-card-icon{font-size:1.8rem;margin-bottom:0.85rem;display:block}
.sr-card-title{font-family:var(--f2);font-size:1.3rem;color:var(--moon);margin-bottom:0.6rem;font-weight:600}
.sr-card-text{font-family:var(--f3);font-size:0.96rem;line-height:1.65;color:var(--textdim)}
.sr-card-link{margin-top:1.3rem;font-family:var(--f2);font-size:0.85rem;color:var(--glow);letter-spacing:0.12em;text-transform:uppercase;display:inline-block}

/* ─── Featured ───────────────────────────────────────────────────────────── */
.sr-featured{background:linear-gradient(180deg,#060f08 0%,#0c1320 55%,#090b16 100%)}
.sr-feat-inner{
  display:grid;grid-template-columns:175px 1fr;gap:3rem;align-items:center;
  background:linear-gradient(140deg,rgba(10,20,14,0.96) 0%,rgba(18,14,38,0.92) 100%);
  border:1px solid rgba(100,58,155,0.32);padding:2.8rem;position:relative;overflow:hidden;
}
@media(max-width:680px){.sr-feat-inner{grid-template-columns:1fr;gap:1.5rem}}
.sr-feat-inner::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 88% 50%,rgba(100,58,155,0.1) 0%,transparent 58%);pointer-events:none}
.sr-book{
  aspect-ratio:2/3;background:linear-gradient(145deg,#140a28 0%,#261440 50%,#380e28 100%);
  border:1px solid rgba(100,58,155,0.42);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;
}
.sr-book::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 32% 32%,rgba(170,130,255,0.2) 0%,transparent 50%),radial-gradient(ellipse at 68% 68%,rgba(80,45,140,0.28) 0%,transparent 50%)}
.sr-book img{width:100%;height:100%;object-fit:cover;position:relative;z-index:1}
.sr-book-inner{font-family:var(--f1);font-size:0.68rem;color:rgba(185,160,255,0.9);text-align:center;padding:0.9rem;line-height:1.6;position:relative;z-index:1;text-shadow:0 0 16px rgba(170,130,255,0.8)}
.sr-feat-title{font-family:var(--f1);font-size:clamp(1.3rem,2.6vw,1.95rem);color:#b8a0ff;margin-bottom:0.4rem}
.sr-feat-author{font-family:var(--f2);font-size:1.05rem;color:var(--textdim);font-style:italic;margin-bottom:1.25rem}
.sr-feat-desc{font-family:var(--f3);font-size:1.03rem;line-height:1.84;color:var(--text);margin-bottom:1.75rem}
.sr-tags{display:flex;flex-wrap:wrap;gap:0.55rem;margin-bottom:1.75rem}
.sr-tag{font-family:var(--f2);font-size:0.8rem;color:rgba(170,148,255,0.75);border:1px solid rgba(100,58,155,0.35);padding:0.22rem 0.7rem;letter-spacing:0.08em}

/* ─── News / Radio ───────────────────────────────────────────────────────── */
.sr-news-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.7rem}
.sr-news-card{border-left:2px solid var(--moss);padding:1.4rem;background:rgba(7,14,9,0.5);transition:all 0.3s ease;text-decoration:none;display:block;color:var(--text)}
.sr-news-card:hover{border-color:var(--glow);background:rgba(11,24,14,0.8);transform:translateX(7px)}
.sr-news-type{font-family:var(--f2);font-size:0.8rem;color:var(--glow);letter-spacing:0.22em;text-transform:uppercase;margin-bottom:0.6rem}
.sr-news-title{font-family:var(--f2);font-size:1.2rem;color:var(--moon);margin-bottom:0.6rem;font-style:italic;line-height:1.4}
.sr-news-desc{font-family:var(--f3);font-size:0.95rem;line-height:1.6;color:var(--textdim)}

/* ─── Support ────────────────────────────────────────────────────────────── */
.sr-support{background:linear-gradient(180deg,#060e08 0%,#07080e 100%)}
.sr-sup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:1.7rem}
.sr-sup-card{background:rgba(12,12,24,0.6);border:1px solid rgba(100,58,155,0.22);padding:1.9rem;text-align:center;text-decoration:none;display:block;color:var(--text);transition:all 0.3s ease}
.sr-sup-card:hover{border-color:rgba(168,135,255,0.55);background:rgba(20,15,38,0.8);transform:translateY(-5px);box-shadow:0 10px 40px rgba(100,58,155,0.24)}
.sr-sup-icon{font-size:1.75rem;margin-bottom:0.85rem;display:block}
.sr-sup-title{font-family:var(--f2);font-size:1.25rem;color:#b8a0ff;margin-bottom:0.6rem}
.sr-sup-text{font-family:var(--f3);font-size:0.93rem;line-height:1.62;color:var(--textdim)}

/* ─── Connect ────────────────────────────────────────────────────────────── */
.sr-connect{background:linear-gradient(180deg,#07080e 0%,#060e08 100%)}
.sr-social{display:flex;flex-wrap:wrap;gap:1.2rem;justify-content:center}
.sr-social-link{display:flex;align-items:center;gap:0.75rem;padding:0.95rem 1.7rem;border:1px solid rgba(62,110,58,0.23);color:var(--text);text-decoration:none;font-family:var(--f2);font-size:1.05rem;letter-spacing:0.06em;background:rgba(3,8,4,0.5);transition:all 0.3s ease}
.sr-social-link:hover{border-color:var(--glow);color:var(--moon);background:rgba(11,24,14,0.8);box-shadow:0 0 26px rgba(62,110,58,0.18)}
.sr-social-dot{width:6px;height:6px;border-radius:50%;background:var(--glow);flex-shrink:0;animation:glowDot 2.2s ease-in-out infinite}

/* ─── Footer ─────────────────────────────────────────────────────────────── */
.sr-footer{background:#020504;border-top:1px solid rgba(36,79,34,0.14);padding:3.5rem 2rem;text-align:center}
.sr-foot-title{font-family:var(--f1);font-size:1.35rem;color:var(--glow);margin-bottom:0.4rem}
.sr-foot-tagline{font-family:var(--f2);font-style:italic;color:var(--textdim);margin-bottom:1.5rem;font-size:0.98rem}
.sr-foot-copy{font-family:var(--f3);font-size:0.8rem;color:rgba(80,120,78,0.38)}
.sr-foot-copy a{color:rgba(80,120,78,0.5);text-decoration:none}
.sr-foot-copy a:hover{color:var(--glow)}

/* ─── Reveal Animations ──────────────────────────────────────────────────── */
.reveal{opacity:0;transition:opacity 0.1s}
.reveal.active{animation:revealUp 0.9s ease-out forwards}
.reveal-l{opacity:0}
.reveal-l.active{animation:revealL 0.9s ease-out forwards}
.reveal-r{opacity:0}
.reveal-r.active{animation:revealR 0.9s ease-out forwards}

/* ─── WP Block / Content Styles ──────────────────────────────────────────── */
.entry-content h1,.entry-content h2,.entry-content h3{font-family:var(--f1);color:var(--moon);margin-bottom:1rem}
.entry-content p{font-family:var(--f3);font-size:1.05rem;line-height:1.85;color:var(--text);margin-bottom:1.2rem}
.entry-content a{color:var(--glow)}
.entry-content a:hover{color:var(--moon)}
.entry-content ul,.entry-content ol{font-family:var(--f3);color:var(--text);margin:1rem 0 1rem 1.5rem;line-height:1.8}
.wp-block-image{margin:2rem 0}
.aligncenter{text-align:center}
.alignleft{float:left;margin:0 1.5rem 1rem 0}
.alignright{float:right;margin:0 0 1rem 1.5rem}
.wp-caption-text{font-family:var(--f2);font-size:0.85rem;color:var(--textdim);text-align:center;margin-top:0.4rem;font-style:italic}

/* ─── Admin bar offset ───────────────────────────────────────────────────── */
.admin-bar .sr-nav{top:32px}
@media(max-width:782px){.admin-bar .sr-nav{top:46px}}

/* ─── Customizer controls ────────────────────────────────────────────────── */
.sr-hero-title,
.sr-hero-tagline,
.sr-hero-sub{
  /* These text values can be overridden via Customizer */
}
