/* ============================================================
   THE BROKEN TAVERN — site-new
   Dark fantasy, BAAL brand. Plain CSS, no framework, no build.
   ============================================================ */
@import url("/animations.css"); /* site-wide tasteful motion (additive) */
:root{
  --void:#060409;
  --ink:#0c0716;
  --ink-2:#120b1e;
  --line:rgba(201,162,39,.16);
  --line-strong:rgba(201,162,39,.42);
  --gold:#c9a227;
  --gold-lt:#e8c35a;
  --gold-dim:#8a6d1c;
  --ember:#ff5a1f;
  --crimson:#c1122f;
  --blood:#7a0e1f;
  --bone:#ece0c4;
  --parch:#cbbd97;
  --ash:#8f86a0;
  --dim:#5d5570;
  --ff-display:'Cinzel Decorative',serif;
  --ff-head:'Cinzel',serif;
  --ff-body:'Cormorant Garamond',serif;
  --r:8px;
  --shadow:0 18px 50px rgba(0,0,0,.65);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:17px}
body{
  background:var(--void);color:var(--parch);
  font-family:var(--ff-body);font-size:1.08rem;line-height:1.7;
  overflow-x:hidden;
  background-image:
    radial-gradient(1100px 500px at 50% -8%, rgba(255,90,31,.06), transparent 60%),
    radial-gradient(800px 600px at 100% 40%, rgba(122,14,31,.05), transparent 60%),
    radial-gradient(900px 700px at 0% 75%, rgba(201,162,39,.045), transparent 60%);
  background-attachment:fixed;
}
::selection{background:var(--crimson);color:#fff}
img{max-width:100%;display:block}
a{color:var(--gold-lt)}
.skip-link{position:absolute;left:-999px;top:0;z-index:2000;background:var(--gold);color:#000;
  padding:.7rem 1.2rem;font-family:var(--ff-head);font-weight:700;border-radius:0 0 8px 0;text-decoration:none}
.skip-link:focus{left:0}
.wrap{max-width:1180px;margin:0 auto;padding:0 1.4rem}

/* ---------- top nav ---------- */
#topnav{
  position:fixed;inset:0 0 auto 0;z-index:1000;height:60px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 1.6rem;
  background:rgba(6,4,9,.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
#topnav::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold) 30%,var(--ember) 50%,var(--gold) 70%,transparent);
  opacity:.55}
.brand{font-family:var(--ff-display);font-weight:700;font-size:1.02rem;letter-spacing:.06em;
  color:var(--gold);text-decoration:none;text-shadow:0 0 16px rgba(201,162,39,.4)}
.brand small{font-family:var(--ff-head);font-weight:400;font-size:.62rem;letter-spacing:.3em;
  color:var(--ash);display:block;line-height:1;margin-top:2px}
.nav-links{display:flex;gap:1.5rem;list-style:none;align-items:center}
.nav-links a{font-family:var(--ff-head);font-size:.72rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ash);text-decoration:none;padding:.4rem 0;
  border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.nav-links a:hover,.nav-links a.active{color:var(--gold-lt);border-bottom-color:var(--ember)}
.nav-cta{border:1px solid var(--line-strong)!important;border-radius:4px;padding:.5rem 1rem!important;color:var(--gold)!important}
.nav-cta:hover{background:rgba(201,162,39,.1);border-bottom-color:var(--line-strong)!important}
#navToggle{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:8px}
#navToggle span{width:26px;height:2px;background:var(--gold);border-radius:2px;transition:.3s}
#navToggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
#navToggle[aria-expanded="true"] span:nth-child(2){opacity:0}
#navToggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- hero ---------- */
#hero{position:relative;min-height:100svh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;padding:7rem 1.4rem 4rem;overflow:hidden}
#embers{position:absolute;inset:0;pointer-events:none}
.hero-eyebrow{font-family:var(--ff-head);font-size:.72rem;letter-spacing:.42em;text-transform:uppercase;
  color:var(--ember);margin-bottom:1.4rem}
.hero-title{font-family:var(--ff-display);font-weight:900;line-height:1.02;
  font-size:clamp(2.6rem,8.5vw,6.2rem);
  background:linear-gradient(175deg,var(--gold-lt) 10%,var(--gold) 45%,#9a7418 75%,var(--ember) 105%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 4px 26px rgba(201,162,39,.25));margin-bottom:1rem}
.hero-byline{font-family:var(--ff-head);font-size:.85rem;letter-spacing:.3em;color:var(--bone);
  text-transform:uppercase;margin-bottom:1.1rem}
.hero-tagline{font-size:clamp(1.05rem,2.4vw,1.35rem);font-style:italic;color:var(--ash);
  max-width:620px;margin:0 auto 2.4rem}
.hero-ctas{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;margin-bottom:3rem}
.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--ff-head);font-size:.74rem;
  font-weight:700;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;
  padding:.85rem 2rem;border-radius:var(--r);border:1px solid;cursor:pointer;
  transition:transform .2s,box-shadow .2s,background .2s,color .2s;white-space:nowrap}
.btn-solid{background:linear-gradient(135deg,#a33d12,var(--ember));border-color:var(--ember);color:#fff8ec;
  box-shadow:0 6px 24px rgba(255,90,31,.35)}
.btn-solid:hover{transform:translateY(-2px);box-shadow:0 10px 34px rgba(255,90,31,.55)}
.btn-ghost{border-color:var(--line-strong);color:var(--gold);background:rgba(201,162,39,.05)}
.btn-ghost:hover{transform:translateY(-2px);background:rgba(201,162,39,.12);box-shadow:0 8px 26px rgba(201,162,39,.2)}
.hero-stats{display:flex;gap:2.6rem;flex-wrap:wrap;justify-content:center;
  border-top:1px solid var(--line);padding-top:1.8rem;max-width:640px}
.hstat{text-align:center}
.hstat b{font-family:var(--ff-display);font-size:1.7rem;color:var(--gold);display:block;line-height:1.1}
.hstat span{font-family:var(--ff-head);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--dim)}
.scroll-hint{position:absolute;bottom:1.4rem;left:50%;transform:translateX(-50%);
  font-family:var(--ff-head);font-size:.6rem;letter-spacing:.34em;text-transform:uppercase;color:var(--dim);
  animation:bob 2.6s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}

/* ---------- chapters ---------- */
.chapter{padding:6.5rem 0 4.5rem;position:relative}
.chapter-head{text-align:center;margin-bottom:3rem}
.chapter-numeral{font-family:var(--ff-display);font-size:.8rem;letter-spacing:.5em;color:var(--crimson);
  text-transform:uppercase;margin-bottom:.6rem}
.chapter-title{font-family:var(--ff-display);font-weight:700;font-size:clamp(1.7rem,4.4vw,2.9rem);
  color:var(--bone);margin-bottom:.6rem}
.chapter-sub{font-style:italic;color:var(--ash);font-size:1.08rem;max-width:640px;margin:0 auto}
.rule{display:flex;align-items:center;gap:1rem;max-width:520px;margin:1.6rem auto 0}
.rule::before,.rule::after{content:'';flex:1;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold-dim),transparent)}
.rule i{width:9px;height:9px;background:var(--gold);transform:rotate(45deg);flex-shrink:0;
  box-shadow:0 0 10px rgba(201,162,39,.8)}

/* ---------- saga spread ---------- */
.saga-grid{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:start;max-width:1020px;margin:0 auto}
.saga-lede{font-size:1.25rem;line-height:1.8;color:var(--bone)}
.saga-lede::first-letter{font-family:var(--ff-display);font-size:3.4em;float:left;line-height:.86;
  padding:.06em .12em 0 0;color:var(--gold)}
.saga-col p{margin-bottom:1.3rem;color:var(--parch)}
.saga-col p em{color:var(--gold-lt)}
.pullquote{margin-top:2rem;padding:1.4rem 1.6rem;border-left:3px solid var(--ember);
  background:rgba(255,90,31,.05);font-style:italic;font-size:1.15rem;color:var(--bone);border-radius:0 var(--r) var(--r) 0}
.pullquote cite{display:block;margin-top:.6rem;font-style:normal;font-family:var(--ff-head);
  font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--dim)}

/* ---------- library ---------- */
.lib-tools{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;justify-content:space-between;
  margin-bottom:2.2rem}
.chips{display:flex;gap:.55rem;flex-wrap:wrap}
.chip{font-family:var(--ff-head);font-size:.66rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ash);background:transparent;border:1px solid var(--line);border-radius:20px;
  padding:.5rem 1.05rem;cursor:pointer;transition:.2s}
.chip:hover{color:var(--gold-lt);border-color:var(--line-strong)}
.chip.on{color:#0a0603;background:linear-gradient(135deg,var(--gold-lt),var(--gold));border-color:var(--gold);
  box-shadow:0 4px 16px rgba(201,162,39,.35)}
.searchbox{position:relative}
.searchbox input{background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:var(--r);
  color:var(--bone);font-family:var(--ff-body);font-size:1rem;padding:.6rem 1rem .6rem 2.6rem;width:250px;
  transition:border-color .2s}
.searchbox input:focus{outline:none;border-color:var(--gold)}
.searchbox input::placeholder{color:var(--dim);font-style:italic}
.searchbox::before{content:'❖';position:absolute;left:.9rem;top:50%;transform:translateY(-50%);color:var(--dim)}
.lib-group{margin-bottom:3.2rem}
.lib-group-head{display:flex;align-items:baseline;gap:1rem;margin-bottom:1.4rem;
  border-bottom:1px solid var(--line);padding-bottom:.7rem}
.lib-group-head h3{font-family:var(--ff-head);font-weight:700;font-size:1.05rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold)}
.lib-group-head span{font-family:var(--ff-head);font-size:.66rem;letter-spacing:.2em;color:var(--dim)}
.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:1.4rem}
.book-card{background:linear-gradient(165deg,var(--ink-2),var(--ink));border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;cursor:pointer;transition:transform .25s,box-shadow .25s,border-color .25s;
  position:relative}
.book-card:hover{transform:translateY(-8px);border-color:var(--line-strong);
  box-shadow:var(--shadow),0 0 30px rgba(201,162,39,.12)}
.book-cover{aspect-ratio:2/3;overflow:hidden;background:#151022;position:relative}
.book-cover img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.book-card:hover .book-cover img{transform:scale(1.06)}
.cover-ph{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:1rem;gap:.7rem;
  background:
    radial-gradient(120% 90% at 50% 0%,rgba(193,18,47,.16),transparent 55%),
    linear-gradient(160deg,#171126 0%,#0d0918 70%)}
.cover-ph .mono{font-family:var(--ff-display);font-size:2rem;color:var(--gold);opacity:.85;
  border:1px solid var(--line-strong);width:64px;height:64px;display:flex;align-items:center;justify-content:center;
  transform:rotate(45deg)}
.cover-ph .mono b{transform:rotate(-45deg);font-weight:700}
.cover-ph .t{font-family:var(--ff-head);font-size:.68rem;color:var(--parch);line-height:1.45}
.book-tag{position:absolute;top:.55rem;left:.55rem;font-family:var(--ff-head);font-size:.56rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;padding:.22rem .55rem;border-radius:3px;z-index:2}
.tag-out{color:#ffd9a8;background:rgba(122,31,6,.92);border:1px solid var(--ember)}
.tag-soon{color:#0a0603;background:linear-gradient(135deg,var(--gold-lt),var(--gold));border:1px solid var(--gold)}
.book-meta{padding:.8rem .9rem}
.book-meta h4,.book-meta h3{font-family:var(--ff-head);font-size:.8rem;font-weight:700;color:var(--bone);line-height:1.4;margin-bottom:.25rem}
.book-meta p{font-size:.82rem;font-style:italic;color:var(--dim)}
.book-meta .rel{font-family:var(--ff-head);font-style:normal;font-size:.6rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--dim);margin-top:.35rem;display:block}
.book-meta .rel.soon{color:var(--ember)}

/* ---------- modal ---------- */
#overlay{position:fixed;inset:0;z-index:1500;display:flex;align-items:center;justify-content:center;
  padding:1.2rem;background:rgba(4,2,8,.9);backdrop-filter:blur(10px);
  opacity:0;visibility:hidden;transition:.3s}
#overlay.open{opacity:1;visibility:visible}
.modal{background:linear-gradient(160deg,#150e22,#0a0614);border:1px solid var(--line-strong);
  border-radius:10px;max-width:820px;width:100%;max-height:90vh;overflow-y:auto;position:relative;
  box-shadow:0 30px 100px rgba(0,0,0,.9);transform:translateY(24px);transition:.3s}
#overlay.open .modal{transform:none}
.modal::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,transparent,var(--gold),var(--ember),var(--gold),transparent)}
.modal-x{position:absolute;top:.9rem;right:.9rem;width:34px;height:34px;border-radius:50%;
  border:1px solid var(--line-strong);background:rgba(0,0,0,.4);color:var(--gold);font-size:1rem;
  cursor:pointer;z-index:2;transition:.2s;line-height:1}
.modal-x:hover{background:var(--crimson);border-color:var(--crimson);color:#fff;transform:rotate(90deg)}
.modal-grid{display:grid;grid-template-columns:240px 1fr;gap:2rem;padding:2.2rem}
.modal-cover{border-radius:6px;overflow:hidden;aspect-ratio:2/3;background:#151022;box-shadow:var(--shadow)}
.modal-cover img{width:100%;height:100%;object-fit:cover}
.modal-kicker{font-family:var(--ff-head);font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;
  color:var(--ember);margin-bottom:.5rem}
.modal-title{font-family:var(--ff-display);font-size:1.5rem;color:var(--gold);line-height:1.25;margin-bottom:.4rem}
.modal-rel{font-family:var(--ff-head);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--dim);margin-bottom:1rem}
.modal-blurb{color:var(--parch);margin-bottom:1.6rem}
.modal-buy{border-top:1px solid var(--line);padding-top:1.3rem}
.modal-buy h5{font-family:var(--ff-head);font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--dim);margin-bottom:.9rem}
.buy-row{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.buy-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--ff-head);
  font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;
  padding:.7rem .8rem;border-radius:6px;border:1px solid;transition:.2s}
.buy-btn small{display:block;font-size:.56rem;font-weight:400;letter-spacing:.06em;opacity:.7}
.bb-amz{border-color:#ff9900;color:#ff9900}.bb-amz:hover{background:#ff9900;color:#000}
.bb-wmt{border-color:#0071ce;color:#5eb2ff}.bb-wmt:hover{background:#0071ce;color:#fff}
.bb-bn{border-color:#a05a20;color:#d08a3e}.bb-bn:hover{background:#a05a20;color:#fff}
.bb-apl{border-color:#9aa0a6;color:#c9ced3}.bb-apl:hover{background:#9aa0a6;color:#000}
.buy-note{font-size:.8rem;font-style:italic;color:var(--dim);text-align:center;margin-top:.5rem}

/* ---------- games ---------- */
.games-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.3rem}
.game-card{display:block;text-decoration:none;background:linear-gradient(165deg,var(--ink-2),var(--ink));
  border:1px solid var(--line);border-radius:var(--r);padding:1.8rem 1.3rem;text-align:center;
  transition:.25s;position:relative;overflow:hidden}
.game-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--ember),transparent);opacity:0;transition:.25s}
.game-card:hover{transform:translateY(-8px);border-color:var(--line-strong);box-shadow:var(--shadow)}
.game-card:hover::before{opacity:1}
.game-glyph{width:58px;height:58px;margin:0 auto 1rem;border:1px solid var(--line-strong);border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-family:var(--ff-display);font-size:1.4rem;
  color:var(--gold);background:rgba(201,162,39,.06);transition:.25s}
.game-card:hover .game-glyph{background:rgba(255,90,31,.12);color:var(--ember);border-color:var(--ember);
  box-shadow:0 0 22px rgba(255,90,31,.35)}
.game-card h4,.game-card h3{font-family:var(--ff-head);font-size:.92rem;color:var(--bone);margin-bottom:.5rem}
.game-card p{font-size:.9rem;font-style:italic;color:var(--ash);line-height:1.55}
.game-go{display:inline-block;margin-top:1rem;font-family:var(--ff-head);font-size:.64rem;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--ember)}
.game-card:hover .game-go{color:var(--gold-lt)}
.game-flag{position:absolute;top:.7rem;right:.7rem;font-family:var(--ff-head);font-size:.56rem;
  letter-spacing:.14em;text-transform:uppercase;color:#ffd9a8;background:rgba(122,31,6,.9);
  border:1px solid var(--ember);padding:.2rem .5rem;border-radius:3px}

/* ---------- orbcast ---------- */
.orb-panel{max-width:820px;margin:0 auto;text-align:center;padding:3rem 2rem;border:1px solid var(--line-strong);
  border-radius:12px;position:relative;overflow:hidden;
  background:radial-gradient(80% 100% at 50% 0%,rgba(122,14,31,.14),transparent 60%),
  linear-gradient(160deg,#100a1c,#070410)}
.orb{width:88px;height:88px;margin:0 auto 1.5rem;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#ffe9a8 0%,var(--ember) 32%,var(--blood) 68%,#1a0512 100%);
  box-shadow:0 0 34px rgba(255,90,31,.55),0 0 90px rgba(193,18,47,.35),inset -8px -10px 20px rgba(0,0,0,.55);
  animation:orbPulse 4.5s ease-in-out infinite}
@keyframes orbPulse{0%,100%{box-shadow:0 0 34px rgba(255,90,31,.55),0 0 90px rgba(193,18,47,.35),inset -8px -10px 20px rgba(0,0,0,.55)}
  50%{box-shadow:0 0 52px rgba(255,90,31,.8),0 0 130px rgba(193,18,47,.5),inset -8px -10px 20px rgba(0,0,0,.55)}}
.orb-panel p{max-width:600px;margin:0 auto 2rem;font-size:1.12rem;color:var(--parch)}
.orb-panel p em{color:var(--gold-lt)}

/* ---------- author ---------- */
.author-grid{display:grid;grid-template-columns:320px 1fr;gap:3.5rem;align-items:start;max-width:1020px;margin:0 auto}
.portrait{border:1px solid var(--line-strong);border-radius:10px;overflow:hidden;box-shadow:var(--shadow);
  aspect-ratio:3/4;background:#151022}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:center top}
.nameplate{margin-top:1.1rem;text-align:center;border:1px solid var(--line);border-radius:var(--r);
  padding:.9rem;background:rgba(201,162,39,.05)}
.nameplate b{font-family:var(--ff-display);font-size:1.2rem;color:var(--gold);display:block}
.nameplate span{font-family:var(--ff-head);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--dim)}
.author-copy h3{font-family:var(--ff-display);font-size:1.7rem;color:var(--gold);margin-bottom:1.2rem}
.author-copy p{margin-bottom:1.15rem;color:var(--parch)}
.author-copy p em{color:var(--gold-lt)}
.email-line{margin:1.6rem 0;padding:1.1rem 1.3rem;border:1px solid var(--line-strong);border-left:3px solid var(--ember);
  border-radius:var(--r);background:rgba(255,90,31,.05);font-size:1.05rem}
.email-line .lbl{font-family:var(--ff-head);font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--dim);display:block;margin-bottom:.3rem}
.email-line a{font-family:var(--ff-head);font-size:1.02rem;letter-spacing:.04em;color:var(--gold-lt);text-decoration:none;
  border-bottom:1px dotted var(--gold-dim)}
.email-line a:hover{color:#fff;border-bottom-color:#fff}
.ingram{margin:1.4rem 0;padding:1.1rem 1.3rem;border:1px solid var(--line);border-radius:var(--r);
  background:rgba(201,162,39,.05);font-size:.98rem}
.ingram b{font-family:var(--ff-head);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold);display:block;margin-bottom:.3rem}
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem;margin-top:1.8rem}
.stat{border:1px solid var(--line);border-radius:var(--r);padding:1rem .5rem;text-align:center;
  background:rgba(255,255,255,.015);transition:.2s}
.stat:hover{border-color:var(--line-strong)}
.stat b{font-family:var(--ff-display);font-size:1.5rem;color:var(--gold);display:block}
.stat span{font-family:var(--ff-head);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}

/* ---------- storefronts + socials ---------- */
.store-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.3rem;max-width:960px;margin:0 auto}
.store-card{display:block;text-decoration:none;text-align:center;padding:2rem 1.3rem;
  background:linear-gradient(165deg,var(--ink-2),var(--ink));border:1px solid var(--line);
  border-radius:var(--r);transition:.25s}
.store-card:hover{transform:translateY(-6px);border-color:var(--line-strong);box-shadow:var(--shadow)}
.store-card h4,.store-card h3{font-family:var(--ff-head);font-size:1rem;color:var(--gold);margin-bottom:.4rem}
.store-card h2{font-size:1.17em;font-weight:700;margin-bottom:.4rem}
.store-card p{font-size:.88rem;font-style:italic;color:var(--ash);margin-bottom:1.1rem}
.store-card .go{font-family:var(--ff-head);font-size:.64rem;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ember)}
.social-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;max-width:960px;margin:0 auto}
.soc{display:block;text-decoration:none;text-align:center;padding:1.3rem .8rem;border:1px solid var(--line);
  border-radius:var(--r);transition:.2s;background:rgba(255,255,255,.015)}
.soc:hover{border-color:var(--ember);transform:translateY(-4px);box-shadow:0 10px 26px rgba(0,0,0,.5)}
.soc b{font-family:var(--ff-head);font-size:.8rem;letter-spacing:.1em;color:var(--bone);display:block}
.soc span{font-size:.85rem;font-style:italic;color:var(--dim)}
.soc-row-label{text-align:center;font-family:var(--ff-head);font-size:.62rem;letter-spacing:.3em;
  text-transform:uppercase;color:var(--dim);margin:2.2rem 0 1.2rem}

/* ---------- shop ---------- */
.shop-hero{text-align:center;padding:8.5rem 1.4rem 3rem}
.shop-hero h1{font-family:var(--ff-display);font-weight:900;font-size:clamp(2.2rem,6vw,4rem);
  background:linear-gradient(175deg,var(--gold-lt),var(--gold) 55%,var(--ember));
  -webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:.8rem}
.shop-hero p{font-style:italic;color:var(--ash);font-size:1.1rem;max-width:620px;margin:0 auto}
.merch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.8rem;
  max-width:1080px;margin:0 auto;padding:1rem 1.4rem 2rem}
.merch-card{background:linear-gradient(165deg,var(--ink-2),var(--ink));border:1px solid var(--line);
  border-radius:12px;overflow:hidden;transition:.25s;display:flex;flex-direction:column}
.merch-card:hover{transform:translateY(-8px);border-color:var(--line-strong);box-shadow:var(--shadow)}
.merch-img{aspect-ratio:1/1;overflow:hidden;background:#141021}
.merch-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.merch-card:hover .merch-img img{transform:scale(1.05)}
.merch-body{padding:1.5rem;display:flex;flex-direction:column;flex:1}
.merch-body h3{font-family:var(--ff-head);font-size:1.02rem;color:var(--bone);margin-bottom:.3rem}
.merch-price{font-family:var(--ff-display);font-size:1.4rem;color:var(--gold);margin-bottom:.6rem}
.merch-desc{font-size:.95rem;color:var(--ash);font-style:italic;margin-bottom:1.2rem;flex:1}
.merch-meta{font-family:var(--ff-head);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dim);margin-bottom:1.1rem}
.shop-note{max-width:720px;margin:2.5rem auto 0;padding:1.4rem 1.6rem;border:1px dashed var(--line-strong);
  border-radius:var(--r);text-align:center;font-style:italic;color:var(--ash)}
#toast{position:fixed;bottom:1.6rem;left:50%;transform:translate(-50%,20px);z-index:1600;
  background:#1c1226;border:1px solid var(--ember);color:var(--bone);font-family:var(--ff-head);
  font-size:.78rem;letter-spacing:.06em;padding:.9rem 1.6rem;border-radius:8px;
  box-shadow:0 12px 40px rgba(0,0,0,.7);opacity:0;visibility:hidden;transition:.3s;max-width:90vw;text-align:center}
#toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);margin-top:4rem;padding:3rem 1.4rem 2.2rem;text-align:center;
  background:rgba(0,0,0,.35)}
footer .f-brand{font-family:var(--ff-display);font-size:1.3rem;color:var(--gold);margin-bottom:.4rem}
footer .f-tag{font-style:italic;color:var(--dim);font-size:.92rem;margin-bottom:1.4rem}
.f-links{display:flex;gap:1.3rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.2rem}
.f-links a{font-family:var(--ff-head);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--dim);text-decoration:none}
.f-links a:hover{color:var(--gold)}
.f-copy{font-family:var(--ff-head);font-size:.64rem;letter-spacing:.1em;color:#3d374e}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .saga-grid{grid-template-columns:1fr;gap:2rem}
  .author-grid{grid-template-columns:1fr;gap:2.2rem}
  .portrait{max-width:280px;margin:0 auto}
  .modal-grid{grid-template-columns:1fr}
  .modal-cover{max-width:200px;margin:0 auto}
  .stat-row{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  #navToggle{display:flex}
  .nav-links{position:fixed;top:60px;right:0;bottom:0;width:min(300px,80vw);flex-direction:column;
    align-items:stretch;gap:0;background:rgba(8,5,14,.97);border-left:1px solid var(--line-strong);
    padding:1.5rem;transform:translateX(100%);transition:transform .35s ease;backdrop-filter:blur(14px)}
  .nav-links.open{transform:none}
  .nav-links a{padding:.9rem .4rem;border-bottom:1px solid var(--line);font-size:.78rem}
  .nav-cta{margin-top:1rem;text-align:center}
  .chapter{padding:4.5rem 0 3rem}
  .buy-row{grid-template-columns:1fr}
  .hero-stats{gap:1.4rem}
}

/* ============================================================
   REVISION 2 — visual polish + four-world library (Oct 6, 2026)
   Appended overrides; later rules win at equal specificity.
   ============================================================ */

/* --- refined focus visibility --- */
a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--ember);outline-offset:3px;border-radius:4px}

/* --- nav: sliding gold-ember underline --- */
.nav-links a{position:relative;border-bottom:none;padding-bottom:.35rem}
.nav-links a::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:2px;
  background:linear-gradient(90deg,var(--gold),var(--ember));
  transform:scaleX(0);transform-origin:left;transition:transform .28s ease}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1)}
.nav-links a.nav-cta::after{display:none}
@media (max-width:760px){
  .nav-links a{border-bottom:1px solid var(--line)}
  .nav-links a::after{display:none}
}

/* --- hero: vignette, eyebrow rules, stat dividers --- */
#hero::before{content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(58% 42% at 50% 40%,rgba(255,90,31,.09),transparent 70%),
             radial-gradient(120% 90% at 50% 112%,rgba(0,0,0,.6),transparent 62%)}
#hero>*{position:relative;z-index:1}
#embers{z-index:0!important}
.hero-eyebrow{display:flex;align-items:center;justify-content:center;gap:1.1rem}
.hero-eyebrow::before,.hero-eyebrow::after{content:'';height:1px;width:min(110px,16vw);flex-shrink:0}
.hero-eyebrow::before{background:linear-gradient(90deg,transparent,rgba(255,90,31,.75))}
.hero-eyebrow::after{background:linear-gradient(90deg,rgba(255,90,31,.75),transparent)}
.hero-title{letter-spacing:.015em}
.hero-stats{gap:0}
.hstat{padding:.2rem 2.2rem;position:relative}
.hstat+.hstat::before{content:'';position:absolute;left:0;top:18%;bottom:18%;width:1px;
  background:linear-gradient(transparent,var(--line-strong),transparent)}

/* --- chapter rhythm + dividers with character --- */
.chapter-head{margin-bottom:3.6rem}
.chapter-title{letter-spacing:.045em}
.rule{margin:1.9rem auto 0}
.rule i{animation:diaPulse 3.4s ease-in-out infinite}
@keyframes diaPulse{
  0%,100%{box-shadow:0 0 10px rgba(201,162,39,.8)}
  50%{box-shadow:0 0 22px rgba(255,90,31,.95)}}

/* --- book cards: shine sweep, inner ring, refined meta --- */
.book-cover{box-shadow:inset 0 0 0 1px rgba(201,162,39,.14)}
.book-card:hover .book-cover{box-shadow:inset 0 0 0 1px rgba(201,162,39,.55)}
.book-cover::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 32%,rgba(255,240,200,.15) 48%,transparent 64%);
  transform:translateX(-130%);transition:transform .8s ease}
.book-card:hover .book-cover::after{transform:translateX(130%)}
.book-meta h4,.book-meta h3{font-size:.84rem;letter-spacing:.015em}
.book-meta p{margin-top:.15rem}
.book-meta .rel{margin-top:.45rem}

/* --- four-world library sections --- */
.lib-tools{margin-bottom:1.5rem}
.lib-jump{display:flex;align-items:center;justify-content:center;gap:.8rem;flex-wrap:wrap;
  margin:0 0 2.8rem;font-style:italic;color:var(--dim);font-size:.95rem}
.lib-jump b{font-family:var(--ff-head);font-style:normal;font-size:.62rem;font-weight:600;
  letter-spacing:.26em;text-transform:uppercase;color:var(--dim)}
.lib-jump a{font-family:var(--ff-head);font-style:normal;font-size:.7rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--gold);text-decoration:none;
  border-bottom:1px dotted var(--gold-dim);padding-bottom:2px;transition:color .2s,border-color .2s}
.lib-jump a:hover{color:var(--gold-lt);border-bottom-style:solid}
.lib-section{margin-bottom:4.2rem;scroll-margin-top:86px}
.lib-section:last-child{margin-bottom:1rem}
.lib-sec-head{text-align:center;margin-bottom:2.4rem;position:relative;padding-top:2.4rem}
.lib-sec-head::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:min(560px,88%);height:1px;opacity:.55;
  background:linear-gradient(90deg,transparent,var(--sec),transparent)}
.lib-sec-kicker{font-family:var(--ff-head);font-size:.64rem;font-weight:600;letter-spacing:.36em;
  text-transform:uppercase;color:var(--sec);margin-bottom:.8rem}
.sec-glyph{margin-right:.8em}
.lib-sec-head h3,.lib-sec-head h2{font-family:var(--ff-display);font-weight:700;
  font-size:clamp(1.6rem,4vw,2.5rem);letter-spacing:.03em;color:var(--bone);margin-bottom:.55rem;
  text-shadow:0 0 28px var(--sec-soft)}
.lib-sec-sub{font-style:italic;color:var(--ash);font-size:1.05rem;max-width:620px;margin:0 auto .8rem}
.lib-sec-count{display:inline-block;font-family:var(--ff-head);font-size:.6rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--sec);
  border:1px solid var(--sec);border-radius:20px;padding:.34rem 1rem;opacity:.92}
.lib-sub{margin-bottom:2.8rem}
.lib-sub:last-child{margin-bottom:0}
.lib-sub-head{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;margin-bottom:1.3rem}
.lib-sub-head h4,.lib-sub-head h3{font-family:var(--ff-head);font-weight:700;font-size:.92rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--bone);display:flex;align-items:center;gap:.75rem}
.lib-sub-head h4::before,.lib-sub-head h3::before{content:'';width:24px;height:2px;background:var(--sec);flex-shrink:0;
  box-shadow:0 0 8px var(--sec-soft)}
.lib-sub-head span{font-family:var(--ff-head);font-size:.62rem;letter-spacing:.16em;color:var(--dim)}
/* per-world accents */
.sec-tavern{--sec:var(--gold);--sec-soft:rgba(201,162,39,.4)}
.sec-novels{--sec:var(--ember);--sec-soft:rgba(255,90,31,.4)}
.sec-codex{--sec:#9a7ff0;--sec-soft:rgba(154,127,240,.4)}
.sec-other{--sec:#7fa8c9;--sec-soft:rgba(127,168,201,.4)}
/* flagship: richest presentation */
.sec-tavern{background:linear-gradient(180deg,rgba(201,162,39,.055),transparent 34%);
  border:1px solid var(--line);border-radius:16px;padding:0 1.7rem 2.6rem}
.sec-tavern .lib-sec-head h3,.sec-tavern .lib-sec-head h2{font-size:clamp(1.9rem,4.6vw,2.9rem)}
.sec-tavern .book-grid{grid-template-columns:repeat(auto-fill,minmax(188px,1fr));gap:1.6rem}
.sec-tavern .book-card:hover{box-shadow:var(--shadow),0 0 36px rgba(201,162,39,.22)}

/* --- buttons: inset highlight --- */
.btn-solid{box-shadow:0 6px 24px rgba(255,90,31,.35),inset 0 1px 0 rgba(255,255,255,.22)}
.btn-ghost{box-shadow:inset 0 1px 0 rgba(201,162,39,.14)}

/* --- games: glyph flourish --- */
.game-glyph{transition:transform .3s,background .25s,color .25s,border-color .25s,box-shadow .25s}
.game-card:hover .game-glyph{transform:rotate(-8deg) scale(1.07)}

/* --- modal: airier --- */
.modal-grid{grid-template-columns:260px 1fr;padding:2.5rem}

/* --- shop polish --- */
.shop-hero h1{letter-spacing:.02em}
.merch-card{position:relative}
.merch-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;z-index:2;
  background:linear-gradient(90deg,transparent,var(--ember),var(--gold),transparent);
  opacity:0;transition:opacity .3s}
.merch-card:hover::before{opacity:1}
.merch-price{background:linear-gradient(120deg,var(--gold-lt),var(--gold));
  -webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block}
.merch-body .btn{justify-content:center}
.merch-desc{line-height:1.6}

/* --- mobile refinements --- */
@media (max-width:760px){
  .hstat{padding:.4rem 1rem}
  .hero-stats{gap:.6rem 0}
  .lib-jump{justify-content:flex-start;margin-bottom:2.2rem}
  .sec-tavern{padding:0 1rem 2.2rem}
  .lib-sec-head{padding-top:2rem}
  .modal-grid{padding:1.8rem}
}

/* ============================================================
   REVISION 3 — section art backgrounds (art/seg-*.jpg)
   Covers are wired per-title in catalog.js; this block only
   dresses the segments. Dark overlays keep text readable.
   ============================================================ */

/* --- hero: the tavern exterior at night --- */
#hero{background:#060409 url('./art/seg-hero.jpg') center 32%/cover no-repeat}
#hero::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(6,4,9,.74),rgba(6,4,9,.34) 42%,rgba(6,4,9,.5) 74%,#060409 100%)}

/* --- library section headers: one world per section --- */
.lib-sec-head{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  padding:3.2rem 1.5rem 2.6rem;margin-bottom:2.6rem}
.sec-tavern .lib-sec-head{background:linear-gradient(180deg,rgba(6,4,9,.82),rgba(6,4,9,.58)),url('./art/seg-volumes.jpg') center 38%/cover no-repeat}
.sec-novels .lib-sec-head{background:linear-gradient(180deg,rgba(6,4,9,.82),rgba(6,4,9,.58)),url('./art/seg-novels.jpg') center 42%/cover no-repeat}
.sec-codex .lib-sec-head{background:linear-gradient(180deg,rgba(6,4,9,.82),rgba(6,4,9,.58)),url('./art/seg-codices.jpg') center 40%/cover no-repeat}
.sec-other .lib-sec-head{background:linear-gradient(180deg,rgba(6,4,9,.82),rgba(6,4,9,.58)),url('./art/seg-otherworlds.jpg') center 42%/cover no-repeat}

/* --- game room: the gaming table --- */
#games{background:linear-gradient(180deg,rgba(6,4,9,.92),rgba(6,4,9,.68) 55%,rgba(6,4,9,.92)),url('./art/seg-games.jpg') center 46%/cover no-repeat;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* --- shop page hero: the merchant stall --- */
.shop-hero{background:linear-gradient(180deg,rgba(6,4,9,.84),rgba(6,4,9,.42) 62%,#060409),url('./art/seg-shop.jpg') center 40%/cover no-repeat;
  border-bottom:1px solid var(--line)}

/* ============================================================
   REVISION 4 — homepage chapter backgrounds (art/seg-*.jpg)
   Dark overlays keep text readable. Follows the Revision 3 pattern.
   ============================================================ */

/* --- Chapter I: The Saga --- */
#saga{background:linear-gradient(180deg,rgba(6,4,9,.9),rgba(6,4,9,.62) 50%,rgba(6,4,9,.9)),url('./art/seg-saga.jpg') center 42%/cover no-repeat;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* --- Chapter II: The Library --- */
#library{background:linear-gradient(180deg,rgba(6,4,9,.93),rgba(6,4,9,.78) 50%,rgba(6,4,9,.93)),url('./art/seg-library.jpg') center 40%/cover no-repeat;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* --- Chapter IV: The Orb-Cast --- */
#orbcast{background:linear-gradient(180deg,rgba(6,4,9,.9),rgba(6,4,9,.64) 50%,rgba(6,4,9,.9)),url('./art/seg-orbcast.jpg') center 44%/cover no-repeat;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* --- Chapter V: The Author --- */
#author{background:linear-gradient(180deg,rgba(6,4,9,.9),rgba(6,4,9,.62) 50%,rgba(6,4,9,.9)),url('./art/seg-author.jpg') center 40%/cover no-repeat;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* --- Chapter VI: Storefronts + Find the Author --- */
#storefronts{background:linear-gradient(180deg,rgba(6,4,9,.92),rgba(6,4,9,.72) 50%,rgba(6,4,9,.92)),url('./art/seg-findauthor.jpg') center 42%/cover no-repeat;
  border-top:1px solid var(--line)}

/* --- shop pages: shared cart drawer --- */
.cart-btn{position:relative;display:inline-flex;align-items:center;gap:.4rem}
.cart-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.4rem;height:1.4rem;
  padding:0 .35rem;border-radius:999px;background:var(--ember);color:#0a0503;font-size:.75rem;font-weight:700}
.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:min(430px,94vw);z-index:200;
  background:linear-gradient(180deg,#0d0906,#060409);border-left:1px solid var(--line-strong);
  transform:translateX(105%);transition:transform .32s ease;display:flex;flex-direction:column}
.cart-drawer.open{transform:none}
.cart-scrim{position:fixed;inset:0;z-index:190;background:rgba(0,0,0,.6);opacity:0;pointer-events:none;transition:opacity .3s}
.cart-scrim.open{opacity:1;pointer-events:auto}
.cart-head{display:flex;align-items:center;justify-content:space-between;padding:1.2rem 1.4rem;border-bottom:1px solid var(--line)}
.cart-head h3{font-family:var(--ff-display);font-size:1.15rem;color:var(--gold);margin:0}
.cart-close{background:none;border:1px solid var(--line);color:var(--bone);border-radius:8px;width:2.2rem;height:2.2rem;cursor:pointer;font-size:1.1rem}
.cart-items{flex:1;overflow-y:auto;padding:1rem 1.4rem;display:flex;flex-direction:column;gap:.9rem}
.cart-item{display:grid;grid-template-columns:56px 1fr auto;gap:.8rem;align-items:center;
  border:1px solid var(--line);border-radius:10px;padding:.6rem;background:rgba(255,255,255,.02)}
.cart-item img{width:56px;height:84px;object-fit:cover;border-radius:6px}
.cart-item .ci-t{font-weight:600;font-size:.92rem;color:var(--bone);line-height:1.3}
.cart-item .ci-s{font-size:.78rem;color:var(--dim)}
.qty{display:inline-flex;align-items:center;gap:.5rem;margin-top:.35rem}
.qty button{width:1.7rem;height:1.7rem;border:1px solid var(--line-strong);background:none;color:var(--bone);
  border-radius:6px;cursor:pointer;font-size:1rem;line-height:1}
.qty button:hover{border-color:var(--ember);color:var(--ember)}
.ci-rm{background:none;border:none;color:var(--dim);cursor:pointer;font-size:.8rem;text-decoration:underline;padding:0}
.ci-rm:hover{color:var(--crimson)}
.cart-foot{padding:1.2rem 1.4rem;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.7rem}
.cart-empty{text-align:center;color:var(--dim);font-style:italic;padding:2.4rem 1rem}
.retailer-pick{display:flex;flex-direction:column;gap:.6rem}
.retailer-btn{display:flex;align-items:center;justify-content:space-between;gap:.8rem;text-align:left;
  border:1px solid var(--line-strong);border-radius:10px;padding:.85rem 1rem;background:rgba(255,255,255,.02);
  color:var(--bone);cursor:pointer;font-size:1rem}
.retailer-btn:hover{border-color:var(--gold);box-shadow:0 0 18px rgba(201,162,39,.18)}
.retailer-btn small{color:var(--dim);font-size:.78rem}
.region-row{display:flex;align-items:center;gap:.6rem;font-size:.85rem;color:var(--dim);flex-wrap:wrap}
.region-row select{background:#0d0906;color:var(--bone);border:1px solid var(--line-strong);border-radius:8px;padding:.4rem .6rem}
.checkout-links{display:flex;flex-direction:column;gap:.55rem;margin-top:.4rem}
.co-link{display:flex;align-items:center;gap:.8rem;border:1px solid var(--line);border-radius:10px;
  padding:.6rem .8rem;text-decoration:none;color:var(--bone)}
.co-link:hover{border-color:var(--gold)}
.co-link img{width:40px;height:60px;object-fit:cover;border-radius:5px;flex:none}
.co-link .co-t{flex:1;font-size:.88rem;line-height:1.35}
.co-link .co-go{color:var(--ember);font-size:.85rem;white-space:nowrap}
.popup-warn{font-size:.8rem;color:var(--dim);font-style:italic}

/* --- book shop grid --- */
.bshop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1.4rem}
.bshop-card{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:linear-gradient(165deg,var(--ink-2),var(--ink));
  display:flex;flex-direction:column;transition:.25s}
.bshop-card:hover{transform:translateY(-6px);border-color:var(--line-strong);box-shadow:var(--shadow)}
.bshop-cover{aspect-ratio:2/3;overflow:hidden;background:#0a0705;display:flex;align-items:center;justify-content:center}
.bshop-cover img{width:100%;height:100%;object-fit:cover}
.bshop-body{padding:1rem 1rem 1.2rem;display:flex;flex-direction:column;gap:.45rem;flex:1}
.bshop-body h4,.bshop-body h3{font-size:1rem;color:var(--bone);line-height:1.35;margin:0}
.bshop-body .bs-label{font-size:.78rem;color:var(--gold);letter-spacing:.06em;text-transform:uppercase}
.bshop-body .bs-rel{font-size:.8rem;color:var(--dim)}
.bshop-body .bs-note{font-size:.78rem;color:var(--dim);font-style:italic}
.add-cart{margin-top:auto;background:linear-gradient(180deg,var(--ember),#d63d0e);border:none;color:#140a04;
  font-weight:700;padding:.7rem;border-radius:10px;cursor:pointer;font-size:.95rem}
.add-cart:hover{filter:brightness(1.1)}
.add-cart.added{background:linear-gradient(180deg,#3fae5a,#2c7a3f);color:#04140a}

/* --- music shop --- */
.mshop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.6rem}
.mshop-card{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:linear-gradient(165deg,var(--ink-2),var(--ink))}
.mshop-top{display:grid;grid-template-columns:130px 1fr;gap:1rem;padding:1.2rem}
.mshop-top img{width:130px;height:130px;object-fit:cover;border-radius:10px}
.mshop-top h4,.mshop-top h2{font-size:1.12rem;color:var(--bone);margin:.1rem 0 .3rem;line-height:1.3}
.mshop-top .ms-meta{font-size:.82rem;color:var(--gold);letter-spacing:.05em;text-transform:uppercase}
.mshop-btns{display:flex;flex-wrap:wrap;gap:.5rem;padding:0 1.2rem 1rem}
.mbtn{flex:1 1 auto;text-align:center;border:1px solid var(--line-strong);border-radius:9px;padding:.55rem .7rem;
  color:var(--bone);text-decoration:none;font-size:.85rem;background:rgba(255,255,255,.02)}
.mbtn:hover{border-color:var(--ember);color:var(--ember)}
.track-toggle{width:100%;background:none;border:none;border-top:1px solid var(--line);color:var(--dim);
  padding:.7rem;cursor:pointer;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}
.track-toggle:hover{color:var(--gold)}
.track-list{display:none;list-style:none;margin:0;padding:.4rem 1.2rem 1.2rem;columns:1}
.track-list.open{display:block}
.track-list li{font-size:.88rem;color:var(--ash);padding:.28rem 0;border-bottom:1px dotted rgba(255,255,255,.07)}
.track-list li span{color:var(--dim);font-size:.78rem;margin-right:.5rem}

/* --- shop page hero reuse --- */
.page-hero{padding:5.5rem 0 3.5rem;text-align:center}
.page-hero h1{font-family:var(--ff-display);font-size:clamp(2rem,5vw,3.2rem);color:var(--bone);margin:.4rem 0 .8rem}
.page-hero .eyebrow{font-size:.8rem;letter-spacing:.42em;color:var(--crimson);text-transform:uppercase}
.page-hero p.sub{font-style:italic;color:var(--ash);max-width:620px;margin:0 auto}
.bshop-hero{background:linear-gradient(180deg,rgba(6,4,9,.84),rgba(6,4,9,.42) 62%,#060409),url('./art/seg-library.jpg') center 40%/cover no-repeat;
  border-bottom:1px solid var(--line)}
.mshop-hero{background:linear-gradient(180deg,rgba(6,4,9,.84),rgba(6,4,9,.42) 62%,#060409),url('./art/seg-orbcast.jpg') center 40%/cover no-repeat;
  border-bottom:1px solid var(--line)}

@media (max-width:640px){
  .mshop-top{grid-template-columns:96px 1fr}
  .mshop-top img{width:96px;height:96px}
}

/* --- cart monogram thumb (Revision 4) --- */
.ci-ph{width:56px;height:84px;border-radius:6px;flex:none;display:flex;align-items:center;justify-content:center;
  font-family:var(--ff-display);font-size:1.5rem;color:var(--gold);
  background:radial-gradient(circle at 50% 35%,rgba(201,162,39,.16),rgba(6,4,9,.9) 75%);
  border:1px solid var(--line)}

/* ================================================================
   REVISION 6 — legal pages, cookie consent, ad slots (Oct 6, 2026)
   ================================================================ */

/* --- legal docs --- */
.legal-doc{max-width:760px;margin:0 auto;padding:1rem 0 3rem;color:var(--ink-soft,#cfc6b8)}
.legal-doc h2{font-family:var(--ff-display);color:var(--gold);font-size:1.25rem;margin:2.2rem 0 .8rem;letter-spacing:.04em}
.legal-doc p{line-height:1.75;margin:.7rem 0}
.legal-doc ul{margin:.7rem 0 .7rem 1.4rem;line-height:1.7}
.legal-doc a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.legal-note{font-size:.85rem;opacity:.65;border-top:1px solid var(--line);padding-top:1rem;margin-top:2rem}

/* --- footer legal row --- */
.f-legal{margin-top:.4rem;font-size:.82rem;opacity:.85}
.f-legal a{cursor:pointer}

/* --- cookie consent banner --- */
#consentBanner{position:fixed;left:0;right:0;bottom:0;z-index:1200;
  transform:translateY(110%);transition:transform .45s ease;
  background:linear-gradient(180deg,rgba(14,10,8,.97),rgba(8,6,5,.98));
  border-top:1px solid var(--line-strong);box-shadow:0 -12px 40px rgba(0,0,0,.6)}
#consentBanner.show{transform:none}
.consent-inner{max-width:1100px;margin:0 auto;padding:1rem 1.4rem;display:flex;gap:1.2rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.consent-inner p{margin:0;font-size:.88rem;line-height:1.6;color:var(--ink-soft,#cfc6b8);flex:1 1 420px}
.consent-inner p a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.consent-btns{display:flex;gap:.7rem;flex:0 0 auto}
.btn-consent{font-family:var(--ff-display);letter-spacing:.06em;font-size:.82rem;
  padding:.65rem 1.5rem;border-radius:999px;cursor:pointer;transition:.25s;border:1px solid var(--line-strong)}
.btn-consent.accept{background:linear-gradient(180deg,#e8c35a,#b98a1f);color:#1a1206;border-color:#e8c35a}
.btn-consent.accept:hover{filter:brightness(1.1);box-shadow:0 0 18px rgba(232,195,90,.4)}
.btn-consent.decline{background:transparent;color:var(--ink-soft,#cfc6b8)}
.btn-consent.decline:hover{border-color:var(--gold);color:var(--gold)}

/* --- ad slots: quiet, labeled, never shout --- */
.ad-slot{max-width:1100px;margin:2.2rem auto;padding:0 1.4rem;min-height:0}
.ad-slot .adsbygoogle{display:block;background:rgba(255,255,255,.015);
  border:1px solid rgba(201,162,39,.14);border-radius:10px;overflow:hidden}
.ad-slot::before{content:"Advertisement";display:block;text-align:center;
  font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;
  color:rgba(207,198,184,.34);margin-bottom:.45rem;font-family:var(--ff-display)}
@media (max-width:640px){
  .consent-inner{flex-direction:column;align-items:stretch;text-align:center}
  .consent-btns{justify-content:center}
}

/* Revision 8 — book detail links on shop cards + book pages */
a.bshop-cover{display:flex;text-decoration:none}
.bshop-title-link{color:inherit;text-decoration:none}
.bshop-title-link:hover{color:var(--gold)}

/* ============ HERO MERCH PANELS (Revision 9) ============ */
.hero-merch{position:absolute;z-index:2;width:min(228px,21vw)}
.hm-tl{left:clamp(.9rem,3.5vw,3.6rem);top:34%;transform:translateY(-50%)}
.hm-tr{right:clamp(.9rem,3.5vw,3.6rem);top:34%;transform:translateY(-50%)}
.hm-bl{left:clamp(.9rem,3.5vw,3.6rem);bottom:7%}
.hm-br{right:clamp(.9rem,3.5vw,3.6rem);bottom:7%}
.hm-il{left:50%;top:50%;transform:translate(calc(-100% - clamp(235px,26vw,385px)),-50%)}
.hm-ir{left:50%;top:50%;transform:translate(clamp(235px,26vw,385px),-50%)}
.hm-tag-rot{background:linear-gradient(135deg,#ff7a3c,var(--ember))}
.hm-card{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease,opacity .8s ease}
.hm-card.hm-fade{opacity:0;transform:translateY(10px) scale(.97)}
@keyframes hmIn{
  0%{opacity:0;transform:translateY(16px) scale(.94);filter:brightness(1.8) saturate(1.25);
     box-shadow:0 0 0 rgba(201,162,39,0)}
  45%{opacity:1;filter:brightness(1.12);
     box-shadow:0 0 42px rgba(255,150,60,.35)}
  100%{opacity:1;transform:none;filter:none}
}
.hm-card.hm-appear{animation:hmIn 1.15s ease both}
.hm-card{position:relative;display:flex;flex-direction:column;gap:.4rem;background:rgba(12,7,4,.78);
  border:1px solid rgba(201,162,39,.38);border-radius:14px;padding:.85rem .85rem 1rem;text-decoration:none;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  box-shadow:0 14px 44px rgba(0,0,0,.55),inset 0 0 30px rgba(255,90,31,.05);
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.hm-card:hover{transform:translateY(-5px);border-color:var(--gold);
  box-shadow:0 20px 55px rgba(0,0,0,.6),0 0 26px rgba(201,162,39,.22)}
.hm-tag{position:absolute;top:.55rem;left:.55rem;z-index:1;font-family:var(--ff-head);font-size:.6rem;
  letter-spacing:.22em;text-transform:uppercase;color:#0a0603;background:linear-gradient(135deg,var(--gold-lt),var(--gold));
  padding:.28rem .6rem;border-radius:99px;box-shadow:0 4px 14px rgba(201,162,39,.4)}
.hm-card img{width:100%;aspect-ratio:5/6;object-fit:cover;border-radius:9px;border:1px solid rgba(201,162,39,.2)}
.hm-name{font-family:var(--ff-head);font-size:.92rem;color:var(--bone);letter-spacing:.02em;line-height:1.25}
.hm-price{font-family:var(--ff-display);font-weight:700;font-size:1.15rem;color:var(--gold)}
.hm-cta{font-family:var(--ff-head);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ember)}
.hm-card:hover .hm-cta{color:var(--gold-lt)}
.hero-merch-note{margin:1.6rem auto 0;max-width:640px;font-size:.82rem;color:var(--dim);font-style:italic}
.hero-merch-note a{color:var(--gold);text-decoration:none;border-bottom:1px dotted rgba(201,162,39,.5)}
.hero-merch-note a:hover{color:var(--gold-lt)}
.hm-pair{display:contents}
@media (max-width:1150px){
  .hm-pair{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;width:min(720px,94vw);margin:1.4rem auto 0}
  .hero-merch{position:static;transform:none;width:auto;margin:0;flex:1 1 230px;max-width:330px}
  .hm-card img{aspect-ratio:16/10}
}

/* ============ REVISION 12 — gap-fill: newsletter, back-to-top, faq/contact, shop hub ============ */
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* footer newsletter */
.f-news{margin:1.6rem auto 1.4rem;max-width:420px;text-align:center}
.f-news-title{font-family:var(--ff-head);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:.7rem}
.f-news-form{display:flex;gap:.5rem;justify-content:center}
.f-news-form input[type=email]{flex:1;min-width:0;background:rgba(255,255,255,.05);border:1px solid rgba(201,162,39,.35);
  border-radius:8px;color:var(--bone);padding:.65rem .9rem;font-family:var(--ff-body);font-size:.9rem}
.f-news-form input[type=email]:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 2px rgba(201,162,39,.25)}
.f-news-form input[type=email]::placeholder{color:#6b6280}
.f-news-form button{background:linear-gradient(135deg,var(--gold-lt),var(--gold));border:none;border-radius:8px;
  color:#0a0603;font-family:var(--ff-head);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;
  padding:.65rem 1.2rem;cursor:pointer;transition:filter .2s}
.f-news-form button:hover{filter:brightness(1.12)}
.f-news-note{font-size:.75rem;color:#6b6280;font-style:italic;margin-top:.5rem}
.f-honey{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

/* homepage newsletter band */
.nl-band{border-top:1px solid rgba(201,162,39,.18);border-bottom:1px solid rgba(201,162,39,.18);
  background:radial-gradient(60% 120% at 50% 0%,rgba(255,90,31,.07),transparent 70%);padding:3.4rem 1.4rem;text-align:center}
.nl-band h2{font-family:var(--ff-display);font-size:clamp(1.4rem,3.4vw,2.1rem);color:var(--gold);margin-bottom:.6rem}
.nl-band p{color:var(--ash);font-style:italic;max-width:52ch;margin:0 auto 1.4rem}
.nl-band .f-news-form{max-width:440px;margin:0 auto}

/* back to top */
#toTop{position:fixed;right:1.2rem;bottom:1.2rem;z-index:900;width:46px;height:46px;border-radius:50%;
  border:1px solid rgba(201,162,39,.5);background:rgba(12,7,4,.85);color:var(--gold);font-size:1.2rem;line-height:1;
  cursor:pointer;opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .3s,transform .3s;
  backdrop-filter:blur(6px);box-shadow:0 8px 24px rgba(0,0,0,.5)}
#toTop.show{opacity:1;pointer-events:auto;transform:none}
#toTop:hover{border-color:var(--gold);color:var(--gold-lt);box-shadow:0 8px 24px rgba(0,0,0,.5),0 0 18px rgba(201,162,39,.3)}

/* faq page */
.faq-wrap{max-width:760px;margin:0 auto;padding:3rem 1.4rem 4rem}
.faq-item{border:1px solid rgba(201,162,39,.22);border-radius:12px;margin-bottom:.9rem;background:rgba(12,7,4,.6);overflow:hidden}
.faq-q{width:100%;text-align:left;background:none;border:none;color:var(--bone);font-family:var(--ff-head);
  font-size:1rem;letter-spacing:.02em;padding:1.1rem 1.3rem;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq-q:hover{color:var(--gold-lt)}
.faq-q .fx{color:var(--ember);font-size:1.3rem;flex-shrink:0;transition:transform .25s}
.faq-item.open .faq-q .fx{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq-a p{padding:0 1.3rem 1.2rem;color:var(--ash);line-height:1.75}
.faq-a a{color:var(--gold)}

/* contact page */
.contact-wrap{max-width:640px;margin:0 auto;padding:3rem 1.4rem 4rem}
.contact-wrap .lede{color:var(--ash);font-style:italic;margin-bottom:1.8rem;text-align:center}
.c-form label{display:block;font-family:var(--ff-head);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold);margin:1.1rem 0 .45rem}
.c-form input[type=text],.c-form input[type=email],.c-form textarea{width:100%;background:rgba(255,255,255,.05);
  border:1px solid rgba(201,162,39,.35);border-radius:8px;color:var(--bone);padding:.8rem 1rem;
  font-family:var(--ff-body);font-size:1rem}
.c-form input:focus,.c-form textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 2px rgba(201,162,39,.25)}
.c-form textarea{min-height:160px;resize:vertical}
.c-form button{margin-top:1.4rem}
.contact-alt{margin-top:2.2rem;text-align:center;color:var(--ash);font-style:italic}
.contact-alt a{color:var(--gold)}

/* shop hub */
.store-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1.4rem;max-width:1000px;margin:0 auto 3rem;padding:0 1.4rem}
.store-card{border:1px solid rgba(201,162,39,.3);border-radius:14px;background:rgba(12,7,4,.7);padding:1.8rem 1.6rem;
  text-align:center;transition:transform .25s,border-color .25s,box-shadow .25s}
.store-card:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:0 18px 44px rgba(0,0,0,.5),0 0 24px rgba(201,162,39,.15)}
.store-card h3{font-family:var(--ff-head);color:var(--gold);letter-spacing:.06em;margin-bottom:.5rem;font-size:1.15rem}
.store-card p{color:var(--ash);font-size:.92rem;line-height:1.65;margin-bottom:1.2rem}
.store-card .sells{font-style:italic;color:var(--dim);font-size:.85rem;display:block;margin-bottom:1.2rem}
.hub-gallery{max-width:1000px;margin:0 auto;padding:0 1.4rem 3rem}
.hub-gallery h2{font-family:var(--ff-display);color:var(--gold);text-align:center;margin-bottom:1.6rem;font-size:clamp(1.3rem,3vw,1.8rem)}
.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}
.hub-item{border:1px solid rgba(201,162,39,.2);border-radius:10px;overflow:hidden;background:rgba(12,7,4,.6);
  text-decoration:none;transition:border-color .25s,transform .25s}
.hub-item:hover{border-color:var(--gold);transform:translateY(-3px)}
.hub-item img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.hub-item span{display:block;padding:.6rem .7rem;font-family:var(--ff-head);font-size:.75rem;color:var(--bone);letter-spacing:.04em}
.hub-item small{display:block;padding:0 .7rem .7rem;color:var(--dim);font-size:.72rem;font-style:italic}
.shop-note{color:var(--dim);font-style:italic;text-align:center;font-size:.85rem}

/* ============ KIT NEWSLETTER EMBED (Revision 13) ============ */
.kit-embed{max-width:420px;margin:0 auto}
.kit-embed .formkit-form{margin:0 auto}

/* ============================================================
   REVISION 15 — visual overhaul (Oct 7, 2026)
   Elevates the ember/gold dark-fantasy identity from good to
   premium. Appended overrides; later rules win at equal
   specificity. Nothing structural changes — pure presentation.
   ============================================================ */

/* --- new tokens --- */
:root{
  --ease-out:cubic-bezier(.22,.9,.28,1);
  --ease-spring:cubic-bezier(.34,1.35,.4,1);
  --shadow-lg:0 26px 70px rgba(0,0,0,.72);
  --glow-gold:0 0 26px rgba(201,162,39,.35);
  --glow-ember:0 0 30px rgba(255,90,31,.38);
  --card-bg:linear-gradient(168deg,#151122 0%,#0b0716 58%,#070410 100%);
  --card-border:rgba(201,162,39,.2);
  --r-lg:14px;
}

/* --- film grain over everything (subtle, non-interactive) --- */
body::after{content:'';position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.055;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>")}
@media (prefers-reduced-motion:reduce){body::after{display:none}}

/* --- page enter --- */
@keyframes pageIn{from{opacity:0}to{opacity:1}}
body{animation:pageIn .55s ease both}
@media (prefers-reduced-motion:reduce){body{animation:none}}

/* --- custom scrollbar --- */
html{scrollbar-width:thin;scrollbar-color:#7a5f1a #08060d}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:#08060d}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#8a6d1c,#54430f);
  border-radius:8px;border:2px solid #08060d}
::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#c9a227,#8a6d1c)}

/* --- typography: gradient chapter titles, balanced headlines --- */
.chapter-title,.page-hero h1{
  background:linear-gradient(175deg,#f6ead0 6%,var(--gold-lt) 38%,var(--gold) 68%,#8a6d1c 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-wrap:balance}
.shop-hero h1{text-wrap:balance}
@media (prefers-reduced-motion:no-preference){
  .hero-title{background-size:220% auto;animation:titleShimmer 11s linear infinite}
  @keyframes titleShimmer{to{background-position:220% center}}}
.sec-title{font-family:var(--ff-display);font-weight:700;font-size:clamp(1.35rem,3.2vw,1.9rem);
  letter-spacing:.05em;color:var(--bone);text-align:center;margin:0 0 1.8rem;text-wrap:balance}
.sec-title::after{content:'';display:block;width:120px;height:1px;margin:1rem auto 0;
  background:linear-gradient(90deg,transparent,var(--gold),transparent)}

/* --- nav: shadow on scroll --- */
#topnav{transition:box-shadow .3s,background .3s}
#topnav.scrolled{background:rgba(6,4,9,.95);box-shadow:0 12px 34px rgba(0,0,0,.6)}

/* --- buttons: tactile, sheen, press --- */
.btn{position:relative;overflow:hidden}
.btn:active{transform:translateY(1px) scale(.985)}
.btn-solid::after{content:'';position:absolute;top:0;left:-90%;width:55%;height:100%;pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.38),transparent);
  transform:skewX(-20deg);transition:left .65s var(--ease-out)}
.btn-solid:hover::after{left:140%}
@media (prefers-reduced-motion:reduce){.btn-solid::after{display:none}}
.btn-ghost:hover{border-color:var(--gold)}
.add-cart{position:relative;overflow:hidden;box-shadow:0 6px 20px rgba(255,90,31,.28),inset 0 1px 0 rgba(255,255,255,.25);
  transition:transform .18s var(--ease-out),filter .18s,box-shadow .18s}
.add-cart:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(255,90,31,.42),inset 0 1px 0 rgba(255,255,255,.25)}
.add-cart:active{transform:translateY(1px)}
.buy-btn{position:relative;overflow:hidden}
.buy-btn:hover{box-shadow:0 0 18px currentColor}
.mbtn{transition:border-color .2s,color .2s,box-shadow .2s,transform .2s}
.mbtn:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.5)}
.retailer-btn{transition:border-color .2s,box-shadow .2s,transform .2s}
.retailer-btn:hover{transform:translateX(3px)}
.sh-btn{transition:border-color .2s,background .2s,transform .2s,box-shadow .2s}
.sh-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.5)}

/* --- unified premium cards --- */
.book-card,.bshop-card,.merch-card,.store-card,.mshop-card,.soc,.stat,.hub-item{
  background:var(--card-bg);border:1px solid var(--card-border);
  box-shadow:0 12px 32px rgba(0,0,0,.5),inset 0 1px 0 rgba(232,195,90,.08)}
.book-card:hover,.bshop-card:hover,.merch-card:hover,.store-card:hover,
.mshop-card:hover,.soc:hover,.hub-item:hover{
  transform:translateY(-8px);border-color:rgba(201,162,39,.55);
  box-shadow:var(--shadow-lg),0 0 36px rgba(201,162,39,.15),inset 0 1px 0 rgba(232,195,90,.14)}
.game-card{background:var(--card-bg);border:1px solid var(--card-border);
  box-shadow:0 12px 32px rgba(0,0,0,.5),inset 0 1px 0 rgba(232,195,90,.08)}
.game-card:hover{transform:translateY(-8px) scale(1.015);border-color:rgba(255,90,31,.55);
  box-shadow:var(--shadow-lg),var(--glow-ember)}
/* image zoom everywhere */
.hub-item img,.mshop-top img{transition:transform .55s var(--ease-out)}
.hub-item:hover img,.mshop-card:hover .mshop-top img{transform:scale(1.07)}
.mshop-top img{border:1px solid var(--card-border);box-shadow:0 8px 24px rgba(0,0,0,.5)}
/* stat tiles */
.stat:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(0,0,0,.5),var(--glow-gold)}

/* --- inputs: deeper, glowing focus --- */
.searchbox input,.c-form input[type=text],.c-form input[type=email],.c-form textarea,
.f-news-form input[type=email]{
  background:rgba(10,7,4,.65);transition:border-color .2s,box-shadow .2s}
.searchbox input:focus,.c-form input:focus,.c-form textarea:focus,.f-news-form input[type=email]:focus{
  border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.18),0 0 20px rgba(201,162,39,.12)}

/* --- reveal: smoother + stagger hooks --- */
.reveal{transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}
.rv-d1{transition-delay:.08s}.rv-d2{transition-delay:.16s}.rv-d3{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){.rv-d1,.rv-d2,.rv-d3{transition-delay:0s}}

/* --- hero refinements --- */
.hero-ctas .btn{padding:1rem 2.4rem}
.hero-merch-note{border-top:1px solid rgba(201,162,39,.14);padding-top:1.2rem}
.hm-card:hover{box-shadow:0 20px 55px rgba(0,0,0,.65),0 0 30px rgba(201,162,39,.28)}

/* --- chapter head ornament --- */
.chapter-head{position:relative}
.chapter-sub{font-size:1.14rem}

/* --- library section heads: lift --- */
.lib-sec-head{box-shadow:0 18px 50px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.06)}
.lib-sub-head h4,.lib-sub-head h3{letter-spacing:.14em}

/* --- modal: cover glow --- */
.modal{box-shadow:0 30px 110px rgba(0,0,0,.92),0 0 60px rgba(201,162,39,.08)}
.modal-cover{box-shadow:var(--shadow),0 0 30px rgba(201,162,39,.12);border:1px solid rgba(201,162,39,.3)}

/* --- orb panel: presence --- */
.orb-panel{box-shadow:0 24px 70px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.06)}

/* --- cart drawer polish --- */
.cart-drawer{box-shadow:-34px 0 90px rgba(0,0,0,.75)}
.cart-head{background:rgba(201,162,39,.05)}
.cart-head h3{letter-spacing:.06em}
.cart-item{transition:border-color .2s,background .2s}
.cart-item:hover{border-color:rgba(201,162,39,.45);background:rgba(201,162,39,.04)}
.cart-close{transition:.2s}
.cart-close:hover{background:var(--crimson);border-color:var(--crimson);color:#fff;transform:rotate(90deg)}
.qty button{transition:.18s}
.qty button:hover{transform:scale(1.12)}

/* --- footer: layered, glowing brand --- */
footer{position:relative;background:linear-gradient(180deg,rgba(10,6,4,0),rgba(0,0,0,.55) 40%),rgba(0,0,0,.35)}
footer::before{content:'';position:absolute;top:-1px;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold) 28%,var(--ember) 50%,var(--gold) 72%,transparent);
  opacity:.65}
footer .f-brand{text-shadow:0 0 20px rgba(201,162,39,.5);font-size:1.45rem}
.f-links a{transition:color .2s,text-shadow .2s}
.f-links a:hover{text-shadow:0 0 12px rgba(201,162,39,.6)}
.f-news{background:rgba(12,7,4,.55);border:1px solid var(--card-border);border-radius:var(--r-lg);
  padding:1.6rem 1.2rem;box-shadow:inset 0 1px 0 rgba(232,195,90,.07)}
.f-news-note{margin-bottom:0}

/* --- newsletter band --- */
.nl-band{background:radial-gradient(60% 130% at 50% 0%,rgba(255,90,31,.09),transparent 70%),
  linear-gradient(180deg,rgba(6,4,9,.4),rgba(6,4,9,.1));
  box-shadow:inset 0 1px 0 rgba(201,162,39,.12),inset 0 -1px 0 rgba(201,162,39,.12)}
.nl-band h2{text-shadow:0 0 24px rgba(201,162,39,.3)}

/* --- shop hub --- */
.store-card .sells{color:var(--gold-dim)}
.hub-gallery h2{text-shadow:0 0 24px rgba(201,162,39,.3)}
.hub-item span{transition:color .2s}
.hub-item:hover span{color:var(--gold-lt)}

/* --- music shop --- */
.mshop-card{transition:transform .25s var(--ease-out),border-color .25s,box-shadow .25s}
.track-toggle{transition:color .2s,background .2s}
.track-toggle:hover{background:rgba(201,162,39,.06)}
.track-list li{transition:color .15s}
.track-list li:hover{color:var(--bone)}

/* --- book shop cards --- */
.bshop-body h4,.bshop-body h3{font-family:var(--ff-head)}
.bs-label{color:var(--gold-lt)}

/* --- book detail pages (gen-books template classes) --- */
.book-detail .book-cover{position:relative}
.book-detail .book-cover img{transition:transform .5s var(--ease-out),box-shadow .35s}
.book-detail .book-cover:hover img{transform:scale(1.02);
  box-shadow:0 20px 60px rgba(0,0,0,.7),0 0 44px rgba(201,162,39,.16)}
.bd-buy{background:rgba(201,162,39,.045);border:1px solid var(--card-border);
  border-radius:var(--r-lg);padding:1.5rem;box-shadow:inset 0 1px 0 rgba(232,195,90,.08)}
.bd-blurb::first-letter{font-family:var(--ff-display);font-size:2.7em;float:left;line-height:.88;
  padding:.06em .12em 0 0;color:var(--gold);text-shadow:0 0 16px rgba(201,162,39,.4)}
.bd-status{color:var(--ash)}
.rel-card{border:1px solid transparent;border-radius:10px;padding:.6rem;transition:.25s}
.rel-card:hover{border-color:var(--card-border);background:rgba(201,162,39,.04);
  transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,.55)}
.rel-card .rc-cover img{transition:transform .5s var(--ease-out)}
.rel-card:hover .rc-cover img{transform:scale(1.05)}

/* --- faq / contact / legal polish --- */
.faq-item{transition:border-color .25s,box-shadow .25s}
.faq-item:hover{border-color:rgba(201,162,39,.45)}
.faq-item.open{border-color:rgba(201,162,39,.5);box-shadow:0 14px 36px rgba(0,0,0,.5)}
.email-line,.ingram{box-shadow:inset 0 1px 0 rgba(232,195,90,.08)}
.legal-doc h2{text-shadow:0 0 18px rgba(201,162,39,.25)}

/* --- consent banner buttons --- */
.btn-consent{transition:.25s}
.btn-consent:active{transform:translateY(1px)}

/* --- toast --- */
#toast{border-color:rgba(255,90,31,.7);box-shadow:0 12px 40px rgba(0,0,0,.7),0 0 24px rgba(255,90,31,.18)}

/* --- back to top --- */
#toTop{transition:opacity .3s,transform .3s,box-shadow .3s,border-color .3s,color .3s}

/* --- storefront + social cards --- */
.store-card .go,.soc b{transition:color .2s}
.soc:hover{box-shadow:0 14px 34px rgba(0,0,0,.55),0 0 22px rgba(255,90,31,.14)}

/* --- pullquote --- */
.pullquote{box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 10px 30px rgba(0,0,0,.35)}

/* --- portrait / nameplate --- */
.portrait{box-shadow:var(--shadow-lg),0 0 40px rgba(201,162,39,.1);border-color:rgba(201,162,39,.4)}
.nameplate{box-shadow:inset 0 1px 0 rgba(232,195,90,.1)}

/* --- mobile: soften the heaviest shadows --- */
@media (max-width:760px){
  .book-card:hover,.bshop-card:hover,.merch-card:hover,.store-card:hover,
  .mshop-card:hover,.soc:hover,.hub-item:hover{transform:translateY(-5px)}
  body::after{opacity:.04}
}

/* ============ REVISION 17: newsletter popup + granular consent ============ */
.consent-custom{display:grid;gap:.55rem;margin-top:.8rem;padding-top:.8rem;border-top:1px solid var(--line,rgba(212,175,55,.25))}
.consent-custom label{display:flex;gap:.6rem;align-items:flex-start;font-size:.92rem;cursor:pointer;color:var(--ink,#f3e9d2)}
.consent-custom small{color:var(--dim,#b8a67e)}
.consent-custom input[type=checkbox]{width:1.05rem;height:1.05rem;margin-top:.15rem;accent-color:#d4af37}
#newsPopup{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;transition:opacity .35s ease}
#newsPopup.show{opacity:1}
.np-backdrop{position:absolute;inset:0;background:rgba(5,3,2,.78);backdrop-filter:blur(3px)}
.np-card{position:relative;max-width:430px;width:100%;background:linear-gradient(160deg,#1d130b,#120c07 60%,#0d0906);border:1px solid rgba(212,175,55,.4);border-radius:14px;padding:2rem 1.6rem 1.4rem;box-shadow:0 24px 70px rgba(0,0,0,.7),0 0 42px rgba(212,175,55,.14);text-align:center;transform:translateY(14px) scale(.98);transition:transform .35s ease}
#newsPopup.show .np-card{transform:none}
.np-card h2{font-family:Cinzel,serif;color:#f0d98c;margin:.4rem 0 .5rem;font-size:1.45rem}
.np-eyebrow{color:#d4af37;letter-spacing:.22em;font-size:.72rem;text-transform:uppercase;margin:0}
.np-sub{color:#cbb98f;font-size:.95rem;margin:0 0 1rem}
.np-card .kit-embed{margin:0 auto 1rem}
.np-x{position:absolute;top:.55rem;right:.7rem;background:none;border:none;color:#a68d55;font-size:1.15rem;cursor:pointer;padding:.4rem;line-height:1;border-radius:8px}
.np-x:hover{color:#f0d98c;background:rgba(212,175,55,.12)}
.np-no{background:none;border:none;color:#8d7a52;font-size:.85rem;cursor:pointer;text-decoration:underline;padding:.3rem}
.np-no:hover{color:#cbb98f}
@media (max-width:480px){.np-card{padding:1.6rem 1.1rem 1.1rem}}

/* ============ REVISION 18: live stream popup ============ */
#liveBtn{position:fixed;right:1.1rem;bottom:5.2rem;z-index:80;display:flex;align-items:center;gap:.5rem;background:linear-gradient(160deg,#a31621,#6d0d14);color:#fff;border:1px solid rgba(255,120,120,.5);border-radius:999px;padding:.65rem 1.05rem;font-family:Cinzel,serif;font-weight:700;font-size:.85rem;letter-spacing:.08em;cursor:pointer;box-shadow:0 8px 28px rgba(163,22,33,.5);animation:livePulse 1.6s ease-in-out infinite}
#liveBtn:hover{transform:scale(1.05)}
.live-dot{width:.65rem;height:.65rem;border-radius:50%;background:#ff4d4d;box-shadow:0 0 10px #ff4d4d;display:inline-block}
@keyframes livePulse{0%,100%{box-shadow:0 8px 28px rgba(163,22,33,.5)}50%{box-shadow:0 8px 36px rgba(255,60,60,.8)}}
#livePopup{position:fixed;inset:0;z-index:95;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;transition:opacity .3s ease}
#livePopup.show{opacity:1}
.lp-backdrop{position:absolute;inset:0;background:rgba(5,3,2,.85);backdrop-filter:blur(4px)}
.lp-card{position:relative;max-width:1060px;width:100%;max-height:92vh;overflow:auto;background:linear-gradient(160deg,#1d130b,#0d0906);border:1px solid rgba(212,175,55,.4);border-radius:14px;padding:1.6rem;box-shadow:0 24px 70px rgba(0,0,0,.7)}
.lp-eyebrow{color:#ff6b6b;letter-spacing:.2em;font-size:.75rem;text-transform:uppercase;margin:0 0 1rem;display:flex;align-items:center;gap:.5rem;justify-content:center}
.lp-players{display:flex;gap:1.2rem;justify-content:center;align-items:flex-start;flex-wrap:wrap}
.lp-player .lp-label{color:#d4af37;font-family:Cinzel,serif;font-size:.85rem;letter-spacing:.1em;margin:0 0 .5rem;text-align:center}
.lp-yt{flex:1 1 480px;max-width:640px}
.lp-yt iframe{width:100%;aspect-ratio:16/9;border-radius:10px;border:1px solid rgba(212,175,55,.3)}
.lp-fb{flex:0 1 360px}
.lp-fb iframe{border-radius:10px;border:1px solid rgba(212,175,55,.3)}
.lp-note{text-align:center;color:#8d7a52;font-size:.85rem;margin:1rem 0 0}
.lp-x{position:absolute;top:.6rem;right:.8rem;background:none;border:none;color:#a68d55;font-size:1.2rem;cursor:pointer;padding:.4rem;border-radius:8px}
.lp-x:hover{color:#f0d98c;background:rgba(212,175,55,.12)}
@media (prefers-reduced-motion:reduce){#liveBtn{animation:none}}

/* ============================================================
   REVISION 19 — site chrome overhaul, Worker A (Oct 7, 2026)
   Polish pass, no rebrand: tap targets, consent buttons, mobile
   hero-merch, small-screen grids, reduced-motion hygiene.
   Appended overrides; later rules win at equal specificity.
   ============================================================ */

/* --- consent banner: style the button variants the markup actually uses --- */
.consent-btns{flex-wrap:wrap}
.btn-consent.essential{background:transparent;color:var(--parch,#ece0c4)}
.btn-consent.essential:hover{border-color:var(--gold);color:var(--gold-lt)}
.btn-consent.customize{background:transparent;color:var(--dim,#b8a67e);border-style:dashed}
.btn-consent.customize:hover{border-color:var(--gold-dim);color:var(--gold)}
.btn-consent.save-custom{background:linear-gradient(180deg,#e8c35a,#b98a1f);color:#1a1206;border-color:#e8c35a}
.btn-consent.save-custom:hover{filter:brightness(1.1);box-shadow:0 0 18px rgba(232,195,90,.4)}

/* --- chips: 44px tap targets --- */
.chip{min-height:2.75rem;display:inline-flex;align-items:center;justify-content:center}

/* --- footer links: 44px tap targets --- */
.f-links a{padding:.55rem .35rem;display:inline-block}

/* --- small screens: search goes full width, grids stay 2-up --- */
@media (max-width:560px){
  .lib-tools{flex-direction:column;align-items:stretch}
  .searchbox{width:100%}
  .searchbox input{width:100%}
  .chips{justify-content:center}
}
@media (max-width:480px){
  .book-grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:1rem}
  .sec-tavern .book-grid{grid-template-columns:repeat(auto-fill,minmax(156px,1fr));gap:1.1rem}
  .book-meta{padding:.7rem .75rem}
  .book-meta h4,.book-meta h3{font-size:.78rem}
  .games-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}
  .game-card{padding:1.4rem 1rem}
  .social-grid{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:.8rem}
  .stat-row{gap:.7rem}
}

/* --- mobile hero merch: one swipeable row instead of a six-card tower --- */
@media (max-width:760px){
  .hm-pair{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:.9rem;justify-content:flex-start;
    width:100%;margin:1.3rem calc(-1 * 1.4rem) 0;padding:.4rem 1.4rem 1rem;
    scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    scrollbar-width:none}
  .hm-pair::-webkit-scrollbar{display:none}
  .hero-merch{position:static;transform:none;flex:0 0 min(230px,68vw);max-width:none;width:auto;margin:0;
    scroll-snap-align:center}
  .hm-card img{aspect-ratio:5/6}
  #hero{padding-bottom:3rem}
}

/* --- reduced motion: merch entrance animation off --- */
@media (prefers-reduced-motion:reduce){
  .hm-card.hm-appear{animation:none}
  .rule i{animation:none}
}

/* --- live button: guaranteed touch size --- */
#liveBtn{min-height:44px}

/* --- cart badge: keep it legible at 2+ digits --- */
.cart-count{font-variant-numeric:tabular-nums}

/* --- modal buy row: keep buttons readable on narrow screens --- */
@media (max-width:420px){
  .buy-btn{font-size:.62rem;padding:.65rem .6rem}
  .modal-grid{padding:1.5rem 1.2rem}
}

/* --- skip link: visible treatment matches the gold identity --- */
.skip-link:focus{box-shadow:0 0 0 3px rgba(201,162,39,.5)}

/* --- newsletter popup / live popup: consistent focus rings --- */
.np-x:focus-visible,.lp-x:focus-visible,.cart-close:focus-visible{
  outline:2px solid var(--ember);outline-offset:2px}
