/*
Theme Name: F&F Lore Atlas (WP)
Theme URI: https://example.com/
Author: You
Author URI: https://example.com/
Description: A lightweight WordPress theme to power a FOREST＆FORTUNE lore site with CPT, tags, related entries, and modal details.
Version: 1.0.0
License: MIT
Text Domain: fflore
*/
:root{
  --bg:#0a0f0e;           /* deep forest background */
  --card:#0f1413;         /* dark card */
  --ink:#e5e7eb;          /* light ink */
  --muted:#94a3b8;        /* muted ink */
  --line:#1f2937;         /* subtle borders */
  --accent:#d4af37;       /* gold accent */
  --accent-2:#8a6d1d;     /* deep gold */
  --forest-1:#0b1f19;
  --forest-2:#0f2b22;
  --forest-3:#15382c;
}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(180deg,var(--forest-1),var(--forest-2) 40%,var(--forest-3));color:var(--ink);font-family:system-ui, -apple-system, Segoe UI, Roboto, sans-serif;line-height:1.6}
a{color:inherit;text-decoration:none}
.container{max-width:1100px;margin:0 auto;padding:1rem}
.site-header{position:sticky;top:0;background:rgba(11,16,16,.7);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);z-index:10}
.site-brand{display:flex;align-items:center;gap:.5rem;font-weight:700}
.badge{display:inline-flex;align-items:center;border:1px solid rgba(212,175,55,.35)border-radius:999px;padding:.15rem .5rem;font-size:.75rem;color:#e2e8f0;background:rgba(212,175,55,.08)backdrop-filter:blur(2px)}
.badge.type-creature{background:rgba(16,185,129,.1);color:#86efac;border-color:rgba(16,185,129,.35)}
.badge.type-artifact{background:rgba(212,175,55,.12);color:#f3e8c1;border-color:rgba(212,175,55,.45)}
.badge.type-location{background:rgba(59,130,246,.10);color:#93c5fd;border-color:rgba(59,130,246,.35)}
.badge.type-faction{background:rgba(139,92,246,.10);color:#c4b5fd;border-color:rgba(139,92,246,.35)}
.badge.type-story{background:rgba(244,63,94,.10);color:#fda4af;border-color:rgba(244,63,94,.35)}
.badge.type-term{background:rgba(148,163,184,.12);color:#e2e8f0;border-color:rgba(148,163,184,.35)}
.grid{display:grid;gap:1rem}
@media(min-width:640px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1024px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 1px 6px rgba(0,0,0,.04);display:flex;flex-direction:column}
.card-thumb{aspect-ratio:16/9;background:#e2e8f0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.card-thumb img{width:100%;height:100%;object-fit:cover}
.card-body{padding:1rem;display:flex;flex-direction:column;gap:.35rem}
.card-title{font-weight:700;line-height:1.35}
.card-meta{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--muted)}
.tags{display:flex;flex-wrap:wrap;gap:.35rem}
.tag{border:1px solid var(--line);background:#f8fafc;border-radius:999px;padding:.1rem .45rem;font-size:.7rem;color:#e2e8f0}
.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin:.5rem 0 1rem}
.filters input[type='search'], .filters select{padding:.55rem .7rem;border:1px solid var(--line);border-radius:10px;background:#0c1211}
.filters button{padding:.55rem .8rem;border:1px solid rgba(212,175,55,.3);border-radius:10px;background:rgba(212,175,55,.06);cursor:pointer;color:#e5e7eb}
.filters .primary{border-color:var(--accent);background:rgba(212,175,55,.12)}
.site-footer{border-top:1px solid var(--line);background:#0c1211;color:var(--muted);font-size:.85rem}
/* Modal */
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none}
.modal{position:fixed;top:0;right:0;bottom:0;width:min(700px,100%);background:#0c1211;transform:translateX(100%);transition:transform .25s ease;display:flex;flex-direction:column}
.modal.open ~ .modal-backdrop{display:block}
.modal.open{transform:none}
.modal-header{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid var(--line);position:sticky;top:0;background:#0c1211;z-index:1}
.modal-body{padding:1rem;overflow:auto}
.related-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.related-item{display:flex;gap:.75rem;padding:.6rem;border-top:1px solid var(--line);background:#0c1211}
.related-item:first-child{border-top:none}
.related-thumb{width:72px;height:44px;border-radius:8px;background:#e2e8f0;overflow:hidden}
.related-thumb img{width:100%;height:100%;object-fit:cover}
.button{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--line);background:#0c1211;border-radius:10px;padding:.5rem .7rem;cursor:pointer}
.button.icon{padding:.4rem}
.hr{height:1px;background:var(--line);margin:1rem 0}
figure{margin:0}
figcaption{font-size:.8rem;color:var(--muted);margin-top:.25rem}


.nav-list{display:flex;gap:.8rem;list-style:none;margin:0;padding:0}
.nav-list a{padding:.4rem .7rem;border-radius:10px}
.nav-list a:hover{background:#f1f5f9}
.hero{position:relative;border-radius:20px;overflow:hidden;background:#0b1020;color:#e2e8f0;padding:3.2rem 1.5rem}
.hero .inner{max-width:1000px;margin:0 auto;display:grid;gap:1.2rem}
.hero h1{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.2;margin:0}
.hero p{max-width:60ch;color:#cbd5e1;margin:0}
.hero .search{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}
.hero input[type='search']{flex:1;min-width:240px;border:1px solid var(--line);border-radius:12px;padding:.7rem .9rem;background:#0c1211}
.hero button{border:1px solid #1f2937;background:#111827;color:#fff;border-radius:12px;padding:.7rem 1rem;cursor:pointer}
.home-sect{margin:1.2rem 0}
.home-head{display:flex;align-items:center;justify-content:space-between;margin:.3rem 0 .7rem}
.home-head h2{font-size:1.2rem;margin:0}
.link-more{font-size:.9rem;color:#64748b}
.btn-chip{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:.35rem .7rem;margin:.2rem .25rem;background:#0c1211}
.hero-tags{display:flex;flex-wrap:wrap;margin-top:.4rem}

/* Gold utilities and hero visuals */
.gold { color: var(--accent); }
.u-underline-gold { position:relative; }
.u-underline-gold::after{ content:''; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:linear-gradient(90deg, transparent, var(--accent), transparent); opacity:.7 }
.hero{background:radial-gradient(1200px 500px at 90% -10%, rgba(212,175,55,.15), transparent 60%), linear-gradient(180deg, rgba(0,0,0,.0), rgba(0,0,0,.25)), linear-gradient(180deg,var(--forest-1),var(--forest-2) 50%,var(--forest-3)); position:relative; overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:url('assets/hero-forest.jpg') center/cover no-repeat;opacity:.18;mix-blend-mode:soft-light;filter:contrast(105%) saturate(95%)}
.hero::after{content:'';position:absolute;inset:auto 0 0 0;height:2px;background:linear-gradient(90deg, transparent, var(--accent), transparent);opacity:.8}
.hero .inner{position:relative}
a.button{border-color:rgba(212,175,55,.5)!important;background:rgba(212,175,55,.08)!important;color:#f8fafc!important}
a.button:hover{background:rgba(212,175,55,.14)!important}
.card-thumb{background:linear-gradient(180deg,rgba(212,175,55,.06),rgba(212,175,55,.0)), #111518}
.related-list{border-color:rgba(212,175,55,.25)}
.related-item{background:rgba(10,15,14,.6)}
.modal{background:#0c1110;border-left:1px solid rgba(212,175,55,.25)}
.modal-header{border-bottom:1px solid rgba(212,175,55,.25)}
.content p{color:#dbeafe}


/* Sleek typography & spacing */
body{letter-spacing:.1px}
.card-title{font-weight:650}
.hero--parallax{position:relative; border-radius:22px; overflow:hidden; padding:4.2rem 1.5rem}
.hero--parallax .inner{position:relative; z-index:5; max-width:1100px; margin:0 auto; display:grid; gap:1.1rem}
.hero-layer{position:absolute; inset:0; background-position:center; background-size:cover; will-change:transform; transition:transform .1s linear}
.hero-bg{opacity:.28; mix-blend-mode:soft-light; filter:saturate(95%) contrast(102%)}
.hero-mist{background:radial-gradient(100% 60% at 50% 20%, rgba(255,255,255,.05), transparent 60%), radial-gradient(120% 80% at 70% 10%, rgba(212,175,55,.10), transparent 55%); opacity:.9}
.hero-tree{opacity:.20}
.hero-kobold{opacity:.18; background-position:75% 100%; background-size:contain; background-repeat:no-repeat}
@media (max-width: 768px){
  .hero--parallax{padding:3rem 1rem}
  .hero-kobold{opacity:.16; background-position:90% 100%;}
}
/* Parallax safety for reduced motion */
@media (prefers-reduced-motion: reduce){
  .hero-layer{transform:none !important}
}
/* Gold edge lines */
.edge-gold{height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.7}
.home-sect .home-head h2{position:relative}
.home-sect .home-head h2::after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.5}
/* Chips: slimmer */
.btn-chip{border-color:rgba(212,175,55,.28);background:rgba(212,175,55,.05)}
.btn-chip:hover{background:rgba(212,175,55,.10)}
/* Inputs: glassy */
.hero input[type='search']{background:rgba(12,18,17,.65);backdrop-filter:blur(6px);border-color:rgba(212,175,55,.25);color:#e5e7eb}
.hero input::placeholder{color:#9aa6b2}
.hero button{border-color:rgba(212,175,55,.5);background:rgba(212,175,55,.10)}
.hero button:hover{background:rgba(212,175,55,.16)}


.hero--parallax{border-radius:28px; padding:4rem 1.6rem; background:linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,.58)); backdrop-filter: blur(10px); border:1px solid rgba(255,255,255,.4); box-shadow:0 1px 6px rgba(0,0,0,.04);}
.hero-bg{opacity:.20; mix-blend-mode:multiply; filter:saturate(105%) contrast(102%)}
.hero-mist{background:radial-gradient(100% 60% at 50% 20%, rgba(255,255,255,.45), transparent 60%), radial-gradient(120% 80% at 70% 10%, rgba(109,124,255,.20), transparent 55%); opacity:.9}
.hero-tree{opacity:.16}
.hero-kobold{opacity:.14; background-position:75% 100%; background-size:contain; background-repeat:no-repeat}
.hero h1{font-weight:800; letter-spacing:.1px; background:linear-gradient(90deg, var(--ink), #2b2d42); -webkit-background-clip:text; color:transparent}
a.button{border-color:rgba(109,124,255,.5)!important;background:linear-gradient(90deg, rgba(109,124,255,.12), rgba(34,211,238,.12))!important;color:#0f172a!important}
a.button:hover{background:linear-gradient(90deg, rgba(109,124,255,.18), rgba(34,211,238,.18))!important}
.edge-gold{background:linear-gradient(90deg, transparent, var(--accent), var(--accent-2), transparent)}
.nav-list a:hover{background:linear-gradient(90deg, rgba(109,124,255,.10), rgba(34,211,238,.10))}
