
@import url('https://fonts.googleapis.com/css2?family=Fraunces:wght@700;900&family=Inter:wght@400;600;800&display=swap');

:root{
  --bg:#070b14;
  --panel:#0d1322;
  --cream:#fff7e8;
  --muted:#cfc2a8;
  --gold:#ffd36b;
  --border:rgba(255,211,107,.24);
  --amber:#d99a27;
  --sapphire:#2d7cff;
  --emerald:#39c56f;
  --ruby:#e34343;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:Inter,system-ui,sans-serif;
  color:var(--cream);
  background:
    radial-gradient(circle at 10% 0%,rgba(217,154,39,.18),transparent 26%),
    radial-gradient(circle at 88% 8%,rgba(45,124,255,.16),transparent 32%),
    radial-gradient(circle at 90% 90%,rgba(227,67,67,.13),transparent 28%),
    var(--bg);
  line-height:1.75;
}
a{text-decoration:none;color:inherit}
img{width:100%;display:block}

.nav{
  position:sticky;top:0;z-index:50;
  background:rgba(7,11,20,.9);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);
}
.nav-inner{
  max-width:1200px;margin:auto;padding:15px 22px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
}
.logo strong{
  display:block;font-family:Fraunces,Georgia,serif;
  color:var(--gold);letter-spacing:5px;font-size:15px;
}
.logo span{display:block;color:var(--muted);font-size:10px;letter-spacing:3px}
.links{display:flex;gap:15px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.links a:hover,.links a.active{color:var(--gold)}
.menu-button{
  display:none;border:1px solid var(--border);background:rgba(255,255,255,.05);
  color:var(--gold);border-radius:10px;padding:8px 11px;cursor:pointer;
}

.section{max-width:1200px;margin:auto;padding:78px 22px}
.hero{
  max-width:1200px;margin:auto;padding:82px 22px;
  min-height:calc(100vh - 64px);
  display:grid;grid-template-columns:1.04fr .96fr;gap:54px;align-items:center;
}
.page-hero{
  max-width:1200px;margin:auto;padding:96px 22px 64px;text-align:center;
}
.eyebrow{
  color:var(--gold);font-weight:800;letter-spacing:4px;text-transform:uppercase;
  font-size:12px;margin-bottom:16px;
}
h1,h2,.section-title{
  font-family:Fraunces,Georgia,serif;font-weight:900;
  font-size:clamp(50px,8vw,104px);line-height:.9;letter-spacing:-2px;
}
h2,.section-title{font-size:clamp(40px,6vw,72px);margin-bottom:24px}
.lead,.hero p,.page-hero p{color:var(--muted);font-size:18px;max-width:780px}
.hero .lead{color:var(--cream);font-size:20px;margin:25px 0 14px}
.buttons{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
.btn{
  display:inline-flex;border:1px solid var(--border);border-radius:999px;
  padding:13px 19px;background:rgba(255,255,255,.055);font-weight:800;
}
.btn.primary{background:linear-gradient(135deg,var(--gold),#fff0a6);color:#16100a}

/* Poster now fits nicely without awkward crop */
.poster-frame{
  border:1px solid var(--border);
  border-radius:28px;
  overflow:hidden;
  background:rgba(255,255,255,.04);
  box-shadow:0 30px 90px rgba(0,0,0,.46);
  padding:16px;
}
.poster-frame img{
  width:100%;
  height:auto;
  max-height:78vh;
  object-fit:contain;
  border-radius:18px;
  background:#050812;
}
.poster-caption{
  color:var(--gold);
  font-family:Fraunces,Georgia,serif;
  font-size:22px;
  padding:14px 6px 4px;
}

.wide-poster{
  max-width:980px;
  margin:30px auto 0;
  border:1px solid var(--border);
  border-radius:28px;
  padding:16px;
  background:rgba(255,255,255,.04);
}
.wide-poster img{height:auto;object-fit:contain;border-radius:18px}

.panel,.card,.profile{
  background:linear-gradient(180deg,rgba(13,19,34,.96),rgba(7,11,20,.96));
  border:1px solid var(--border);
  border-radius:30px;
  box-shadow:0 30px 80px rgba(0,0,0,.34);
}
.panel{padding:clamp(30px,5vw,58px)}
.panel p+p{margin-top:14px}
blockquote{
  margin-top:28px;color:var(--gold);font-family:Fraunces,Georgia,serif;
  font-size:clamp(28px,4vw,44px);line-height:1.15;
  border-left:4px solid var(--gold);padding-left:20px;
}
.grid{display:grid;gap:22px}
.four{grid-template-columns:repeat(4,1fr)}
.two{grid-template-columns:repeat(2,1fr)}
.three{grid-template-columns:repeat(3,1fr)}
.card,.profile{padding:26px}
.card h3,.profile h3{
  color:var(--gold);font-family:Fraunces,Georgia,serif;
  font-size:30px;line-height:1.05;margin-bottom:8px;
}
.card h4,.profile h4{
  color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:2px;margin-bottom:14px;
}
.card p,.profile p,.timeline div,.panel li{color:var(--muted);font-size:15px}
.panel ul{padding-left:22px;margin-top:14px}
.amber{box-shadow:inset 0 0 80px rgba(217,154,39,.14)}
.sapphire{box-shadow:inset 0 0 80px rgba(45,124,255,.14)}
.emerald{box-shadow:inset 0 0 80px rgba(57,197,111,.14)}
.ruby{box-shadow:inset 0 0 80px rgba(227,67,67,.14)}
.profile img,.portrait{
  height:300px;object-fit:cover;border-radius:20px;border:1px solid var(--border);margin-bottom:16px;
}
.timeline{display:grid;gap:16px;margin-top:22px}
.timeline div{
  border-left:3px solid var(--gold);padding:15px 18px;
  background:rgba(255,255,255,.04);border-radius:0 18px 18px 0;
}
.gallery{columns:3 280px;column-gap:18px}
.gallery img{margin-bottom:18px;border-radius:22px;border:1px solid var(--border);break-inside:avoid}
.author-box{display:grid;grid-template-columns:230px 1fr;gap:34px;align-items:center}
footer{text-align:center;color:var(--muted);padding:54px 22px;border-top:1px solid var(--border)}
footer strong{color:var(--cream);letter-spacing:3px}
.reveal{opacity:0;transform:translateY(22px);transition:.7s ease}
.reveal.show{opacity:1;transform:none}

@media(max-width:1000px){
  .hero,.author-box{grid-template-columns:1fr}
  .four,.three{grid-template-columns:repeat(2,1fr)}
  .poster-frame img{max-height:none}
}
@media(max-width:720px){
  .links{display:none;width:100%;padding-top:14px}
  .links.open{display:grid;grid-template-columns:1fr 1fr}
  .menu-button{display:block}
  .nav-inner{flex-wrap:wrap}
  .section,.hero,.page-hero{padding-left:18px;padding-right:18px}
  h1,h2,.section-title{letter-spacing:-1px}
}
@media(max-width:560px){
  .four,.three,.two{grid-template-columns:1fr}
}


/* Expanded lore pages */
.lore-block{
  margin-top:22px;
  padding-top:20px;
  border-top:1px solid var(--border);
}
.lore-block h3{
  color:var(--gold);
  font-family:Fraunces,Georgia,serif;
  font-size:32px;
  line-height:1.1;
  margin-bottom:10px;
}
.lore-list{
  display:grid;
  gap:12px;
  margin-top:18px;
}
.lore-list div{
  background:rgba(255,255,255,.04);
  border:1px solid var(--border);
  border-radius:18px;
  padding:16px 18px;
  color:var(--muted);
}
.family-tree{
  display:grid;
  gap:22px;
}
.family-tree .card{
  min-height:100%;
}
.problem-card{
  border-left:4px solid var(--gold);
}
