/* Self-hosted fonts (latin subset, SIL OFL 1.1, see fonts/LICENSES.txt) */
@font-face{font-family:"Cinzel";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/cinzel-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Cinzel";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/cinzel-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Cinzel";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/cinzel-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/cormorant-garamond-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/cormorant-garamond-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/cormorant-garamond-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:500;font-display:swap;src:url(fonts/cormorant-garamond-latin-500-italic.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/jost-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/jost-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Pinyon Script";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/pinyon-script-latin-400-normal.woff2) format("woff2")}
/* Maelana Nightingale — site styles
   Layout: velvet-black ground, gold-leaf hairlines, covers as the hero of every view.
   One deliberate dark look (the brand is black and gold). */
:root{
  --ink:#09080a; --ink-2:#100d11; --panel:#161218; --panel-2:#1d181f;
  --line:rgba(201,164,92,.16); --line-2:rgba(201,164,92,.34);
  --gold:#c9a45c; --gold-hi:#f1d99c; --gold-deep:#8a7140;
  --cream:#ece3d3; --cream-2:#d6cab3; --muted:#a2978a; --wine:#6e1f33;
  --flag:#e3b24e;
  --display:"Cinzel","Trajan Pro",Georgia,serif;
  --body:"Cormorant Garamond","EB Garamond",Georgia,serif;
  --ui:"Jost","Avenir Next","Segoe UI",system-ui,sans-serif;
  --script:"Pinyon Script","Snell Roundhand",cursive;
  --w:1180px;
  --world:#c9a45c;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--cream);font-family:var(--body);font-size:19px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--ink)}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold-hi);text-decoration-color:rgba(241,217,156,.4);text-underline-offset:3px}
a:hover{text-decoration-color:var(--gold-hi)}
:focus-visible{outline:2px solid var(--gold-hi);outline-offset:3px}
::selection{background:rgba(201,164,92,.35)}
.wrap{max-width:var(--w);margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:.04em;text-wrap:balance;margin:0;line-height:1.12}
h1{font-size:clamp(34px,5.2vw,60px);color:var(--gold-hi)}
h2{font-size:clamp(25px,3.2vw,36px);color:var(--gold)}
h3{font-size:clamp(19px,2vw,22px);color:var(--gold-hi)}
p{margin:0 0 14px;max-width:66ch}
.kicker{font-family:var(--ui);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.lede{font-size:clamp(20px,2.1vw,23px);color:var(--cream)}
.muted{color:var(--muted)}
.ital{font-style:italic}
.sig{font-family:var(--script);font-size:38px;color:var(--gold-hi);line-height:1.1}
.rule{height:1px;background:linear-gradient(90deg,transparent,var(--line-2) 20%,var(--line-2) 80%,transparent);border:0;margin:0}
section{padding-block:clamp(48px,7vw,96px)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:28px}
.sec-head .kicker{display:block;margin-bottom:8px}

/* preview ribbon */
.ribbon{background:#1a1407;border-bottom:1px solid rgba(227,178,78,.35);font-family:var(--ui);font-size:12.5px;color:var(--flag)}
.ribbon .wrap{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-block:7px}
.ribbon button{font:inherit;color:var(--ink);background:var(--flag);border:0;padding:4px 10px;cursor:pointer;letter-spacing:.04em}
.flag{font-family:var(--ui);font-size:11px;letter-spacing:.06em;color:var(--flag);border:1px dashed rgba(227,178,78,.7);padding:1px 7px;white-space:nowrap;display:inline-block;vertical-align:middle}

/* header */
.site-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(9,8,10,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-block:12px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--gold-hi)}
.brand img{height:34px;width:auto}
.brand span{font-family:var(--display);font-size:15px;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
.nav{display:flex;gap:26px;font-family:var(--ui);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase}
.nav a,.nav .nav-dd-btn{color:var(--cream-2);text-decoration:none;position:relative;padding-block:6px}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.nav a:hover,.nav a[aria-current="page"]{color:var(--gold-hi)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.head-cta{display:flex;align-items:center;gap:10px}
.burger{display:none;background:none;border:1px solid var(--line-2);width:42px;height:38px;cursor:pointer;place-items:center}
.burger i{display:block;width:18px;height:1px;background:var(--gold-hi);margin:4px auto;transition:transform .3s}
.menu-open .burger i:nth-child(1){transform:translateY(5px) rotate(45deg)}
.menu-open .burger i:nth-child(2){opacity:0}
.menu-open .burger i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
.mnav{display:none}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--ui);font-size:12.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:13px 20px;border:1px solid var(--gold);background:var(--gold);color:var(--ink);text-decoration:none;cursor:pointer;position:relative;overflow:hidden;transition:background .3s,color .3s,border-color .3s}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s ease}
.btn:hover::after{transform:translateX(120%)}
.btn:hover{background:var(--gold-hi);border-color:var(--gold-hi)}
.btn.ghost{background:transparent;color:var(--gold-hi);border-color:var(--line-2)}
.btn.ghost:hover{border-color:var(--gold);background:rgba(201,164,92,.08)}
.btn.sm{padding:9px 14px;font-size:11.5px}
.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
.btns{display:flex;flex-wrap:wrap;gap:10px}

/* covers */
.cover{position:relative;aspect-ratio:287/447;background:#000;box-shadow:0 22px 40px -18px rgba(0,0,0,.95),0 0 0 1px rgba(255,255,255,.05);transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s;transform-style:preserve-3d;overflow:hidden}
.cover img{width:100%;height:100%;object-fit:cover}
.cover::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.14) 48%,transparent 60%);transform:translateX(-100%);transition:transform .9s ease;pointer-events:none}
a:hover .cover::after,.cover:hover::after{transform:translateX(100%)}
a:hover>.cover,.cover-link:hover .cover{transform:translateY(-8px);box-shadow:0 34px 50px -20px rgba(0,0,0,1),0 0 0 1px rgba(241,217,156,.35),0 0 40px -10px var(--world)}
.cover.type{display:flex;flex-direction:column;justify-content:space-between;text-align:center;padding:14% 10%;background:radial-gradient(70% 45% at 50% 45%,color-mix(in srgb,var(--world) 55%,transparent),transparent 70%),linear-gradient(170deg,#141015,#060507)}
.cover.type b{font-family:var(--display);color:var(--gold-hi);font-size:clamp(14px,1.6vw,20px);line-height:1.15;letter-spacing:.05em}
.cover.type small{font-family:var(--ui);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--cream-2)}
.num{position:absolute;top:8px;left:8px;font-family:var(--ui);font-size:10.5px;letter-spacing:.1em;background:rgba(9,8,10,.82);color:var(--gold-hi);padding:3px 7px;border:1px solid var(--line-2);z-index:2}
.cover-link{text-decoration:none;color:inherit;display:grid;gap:10px}
.cover-link .t{font-family:var(--body);font-weight:600;font-size:17px;line-height:1.25;color:var(--cream)}
.cover-link .s{font-family:var(--ui);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* hero */
.hero{position:relative;overflow:hidden;padding-block:clamp(40px,6vw,84px) clamp(56px,7vw,100px);
  background:radial-gradient(55% 75% at 76% 42%,rgba(201,164,92,.14),transparent 70%),radial-gradient(40% 60% at 10% 100%,rgba(110,31,51,.32),transparent 70%)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,64px);align-items:center;position:relative;z-index:2}
.hero .wrap>*{min-width:0}
.hero h1{margin:14px 0 10px}
.hero .tag{font-style:italic;font-size:clamp(20px,2.2vw,24px);color:var(--cream-2);margin-bottom:18px}
.sparks{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.stage{position:relative;display:flex;justify-content:center;align-items:flex-end;perspective:1100px;min-height:300px}
.stage .cover{width:min(250px,42vw)}
.stage .side{width:min(190px,30vw);margin:0 -46px;filter:brightness(.7)}
.stage .side.l{transform:rotateY(22deg) translateZ(-60px)}
.stage .side.r{transform:rotateY(-22deg) translateZ(-60px)}
.stage .main{z-index:2;animation:float 7s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{font-family:var(--ui);font-size:11.5px;letter-spacing:.06em;padding:4px 10px;border:1px solid var(--line-2);color:var(--cream-2);background:rgba(255,255,255,.015)}
.badge{display:inline-flex;align-items:center;gap:8px;font-family:var(--ui);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-hi)}
.badge::before{content:"";width:22px;height:1px;background:var(--gold)}

/* intro */
.intro{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,5vw,72px);align-items:start}
.intro>*{min-width:0}
.intro h2{font-size:clamp(26px,3.4vw,40px);line-height:1.15}

/* worlds */
.worlds{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.world{--world:var(--gold);position:relative;display:grid;grid-template-rows:auto 1fr;border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.02),transparent 60%);text-decoration:none;color:inherit;overflow:hidden;transition:border-color .4s,transform .4s}
.world::before{content:"";position:absolute;inset:-40% -20% auto;height:70%;background:radial-gradient(closest-side,color-mix(in srgb,var(--world) 45%,transparent),transparent);opacity:.35;transition:opacity .5s;pointer-events:none}
.world:hover{border-color:var(--line-2);transform:translateY(-4px)}
.world:hover::before{opacity:.75}
.fan{position:relative;height:200px;display:flex;justify-content:center;align-items:flex-end;padding-top:22px}
.fan .cover{width:104px;position:absolute;bottom:0;transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.fan .cover:nth-child(1){transform:translateX(-62px) rotate(-8deg)}
.fan .cover:nth-child(2){transform:translateX(0) translateY(-6px);z-index:2}
.fan .cover:nth-child(3){transform:translateX(62px) rotate(8deg)}
.fan .cover:nth-child(4){display:none}
.fan.n1 .cover:nth-child(1){transform:none}
.fan.n2 .cover:nth-child(1){transform:translateX(-36px) rotate(-5deg)}
.fan.n2 .cover:nth-child(2){transform:translateX(36px) rotate(5deg)}
.world:hover .fan .cover:nth-child(1){transform:translateX(-80px) rotate(-12deg)}
.world:hover .fan .cover:nth-child(3){transform:translateX(80px) rotate(12deg)}
.world:hover .fan .cover:nth-child(2){transform:translateY(-14px)}
.world:hover .fan.n2 .cover:nth-child(1){transform:translateX(-48px) rotate(-8deg)}
.world:hover .fan.n2 .cover:nth-child(2){transform:translateX(48px) rotate(8deg)}
.world:hover .fan.n1 .cover:nth-child(1){transform:translateY(-10px)}
.world .body{padding:20px 22px 22px;display:grid;gap:8px;align-content:start;position:relative}
.world .body p{font-size:16.5px;margin:0;color:var(--cream-2)}
.world .meta{font-family:var(--ui);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* reading paths */
.paths{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.path{display:grid;grid-template-columns:96px 1fr;gap:18px;align-items:center;padding:18px;border:1px solid var(--line);text-decoration:none;color:inherit;transition:border-color .3s,background .3s}
.path:hover{border-color:var(--line-2);background:rgba(201,164,92,.04)}
.path>*{min-width:0}
.path .q{font-style:italic;font-size:19px;color:var(--cream);line-height:1.3;margin-bottom:8px}
.path .a{font-family:var(--ui);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}

/* coming soon */
.soon{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.soon .card{border:1px solid var(--line);padding:18px;display:grid;gap:10px;align-content:start;background:var(--ink-2)}
.soon .card .cover{width:100%}
.soon .when{font-family:var(--ui);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.soon p{font-size:16px;margin:0;color:var(--cream-2)}

/* shop strip */
.shopband{background:linear-gradient(180deg,var(--ink-2),var(--ink));border-block:1px solid var(--line)}
.shelf{display:flex;gap:16px;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--gold-deep) transparent}
.shelf>*{flex:none;width:132px;scroll-snap-align:start}

/* events */
.events{display:grid;gap:0;border-top:1px solid var(--line)}
.ev{display:grid;grid-template-columns:110px 1fr auto;gap:22px;align-items:center;padding:18px 4px;border-bottom:1px solid var(--line)}
.ev>*{min-width:0}
.ev .d{font-family:var(--display);color:var(--gold-hi);line-height:1.05}
.ev .d b{display:block;font-size:30px;font-weight:600}
.ev .d span{font-family:var(--ui);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.ev h3{font-size:18px;margin-bottom:4px}
.ev .where{font-family:var(--ui);font-size:13.5px;color:var(--muted);line-height:1.5}
.ev .links{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.ev.past{opacity:.45}
.ev.past .links{display:none}

/* quote */
.quote{text-align:left;display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,4vw,56px);align-items:center}
.quote img{width:clamp(110px,14vw,170px);opacity:.9}
.quote blockquote{margin:0;font-size:clamp(23px,2.8vw,32px);line-height:1.35;font-style:italic;color:var(--cream);max-width:30ch}

/* charity */
.charity{display:grid;grid-template-columns:200px 1fr;gap:clamp(20px,4vw,48px);align-items:center;border:1px solid var(--line-2);padding:clamp(20px,4vw,36px);background:radial-gradient(60% 100% at 0% 50%,rgba(122,74,160,.18),transparent 70%)}
.charity>*{min-width:0}

/* page header */
.phead{padding-block:clamp(40px,6vw,72px) clamp(24px,4vw,40px);position:relative;overflow:hidden;background:radial-gradient(60% 120% at 80% 0%,color-mix(in srgb,var(--world) 22%,transparent),transparent 70%)}
.phead h1{margin-top:10px}
.crumbs{font-family:var(--ui);font-size:12px;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--gold-hi)}

/* books index */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.filters button{font-family:var(--ui);font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding:8px 14px;border:1px solid var(--line-2);background:transparent;color:var(--cream-2);cursor:pointer;transition:all .25s}
.filters button:hover{border-color:var(--gold);color:var(--gold-hi)}
.filters button[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.series-row{display:grid;grid-template-columns:260px 1fr;gap:clamp(18px,3vw,40px);padding-block:30px;border-top:1px solid var(--line)}
.series-row>*{min-width:0}
.series-row h2{font-size:clamp(21px,2.4vw,26px);margin-bottom:6px}
.series-row h2 a{color:inherit;text-decoration:none}
.series-row h2 a:hover{color:var(--gold-hi)}
.series-row .meta{font-family:var(--ui);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:grid;gap:4px;margin-bottom:12px}
.series-row p{font-size:16.5px;color:var(--cream-2)}
.covers{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:18px}
.start{position:absolute;bottom:0;left:0;right:0;font-family:var(--ui);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;text-align:center;background:var(--gold);color:var(--ink);padding:5px;z-index:2}
.hide{display:none!important}

/* book page */
.book{display:grid;grid-template-columns:minmax(220px,340px) 1fr;gap:clamp(28px,5vw,72px);align-items:start}
.book>*{min-width:0}
.book .art{position:sticky;top:96px;perspective:1000px}
.book .art .cover{width:100%}
.book h1{font-size:clamp(34px,4.6vw,54px);margin:10px 0 6px}
.blurb p:first-child{font-size:clamp(21px,2.2vw,24px);font-style:italic;color:var(--cream)}
.buy{border:1px solid var(--line-2);padding:20px;margin-block:22px;display:grid;gap:14px;background:var(--ink-2)}
.buy .row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.buy .note{font-family:var(--ui);font-size:12.5px;color:var(--muted)}
details.acc{border-top:1px solid var(--line)}
details.acc:last-of-type{border-bottom:1px solid var(--line)}
details.acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 2px;font-family:var(--ui);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-hi)}
details.acc summary::-webkit-details-marker{display:none}
details.acc summary::after{content:"";width:9px;height:9px;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);transform:rotate(45deg);transition:transform .3s;margin-right:6px}
details.acc[open] summary::after{transform:rotate(-135deg)}
details.acc .in{padding:0 2px 18px;font-size:17.5px;color:var(--cream-2)}
.order{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:14px;margin-top:14px}
.order .cur .cover{box-shadow:0 0 0 2px var(--gold),0 18px 30px -14px #000}
.connect{display:grid;gap:10px}
.connect a{display:flex;gap:14px;align-items:center;text-decoration:none;color:var(--cream);padding:10px;border:1px solid var(--line)}
.connect a:hover{border-color:var(--line-2)}
.connect .cover{width:44px;flex:none}
.connect span{font-size:16px;line-height:1.3}
.connect small{display:block;font-family:var(--ui);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

/* series page */
.blist{display:grid;gap:40px}
.bitem{display:grid;grid-template-columns:180px 1fr;gap:clamp(18px,3vw,36px);align-items:start}
.bitem>*{min-width:0}
.bitem p{font-size:17.5px;color:var(--cream-2)}
.planned{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.planned div{border:1px solid var(--line);padding:16px 18px;background:var(--ink-2)}
.planned b{font-family:var(--display);font-weight:600;color:var(--gold-hi);font-size:17px;display:block;letter-spacing:.03em}
.planned small{font-family:var(--ui);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.planned p{font-size:15.5px;margin:6px 0 0;color:var(--cream-2)}
.wiki{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.wiki div{border:1px solid var(--line);padding:16px;display:grid;gap:6px;background:linear-gradient(160deg,rgba(47,107,99,.12),transparent)}
.wiki b{font-family:var(--display);font-weight:600;color:var(--gold-hi);font-size:15.5px;letter-spacing:.04em}

/* shop */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:24px}
.prod{display:grid;gap:10px;text-decoration:none;color:inherit}
.prod .img{aspect-ratio:1;background:radial-gradient(60% 60% at 50% 45%,color-mix(in srgb,var(--world) 30%,transparent),transparent 75%),var(--panel);border:1px solid var(--line);display:grid;place-items:center;position:relative;overflow:hidden;transition:border-color .3s}
.prod:hover .img{border-color:var(--line-2)}
.prod .img.photo{background:#0b0a0c}
.prod .img.photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.prod:hover .img.photo img{transform:scale(1.05)}
.prod .img .cover{width:48%}
.prod .img .tag{position:absolute;top:10px;left:10px;font-family:var(--ui);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;background:var(--wine);color:#fff;padding:3px 8px}
.prod h3{font-family:var(--body);font-size:18px;letter-spacing:0;color:var(--cream);font-weight:600}
.prod .pr{font-family:var(--ui);font-size:12.5px;color:var(--gold)}
.slot{border:1px dashed var(--line-2);padding:28px;display:grid;gap:10px;place-items:start;background:var(--ink-2)}

/* prose pages */
.prose{max-width:720px}
.prose p{font-size:19.5px}
.prose h2{margin:44px 0 14px;font-size:clamp(23px,2.6vw,30px)}
.prose h3{margin:28px 0 8px}
.side-layout{display:grid;grid-template-columns:230px 1fr;gap:clamp(24px,5vw,72px);align-items:start}
.side-layout>*{min-width:0}
.toc{position:sticky;top:100px;display:grid;gap:4px;font-family:var(--ui);font-size:13px;letter-spacing:.04em}
.toc a{color:var(--muted);text-decoration:none;padding:6px 0 6px 12px;border-left:1px solid var(--line)}
.toc a:hover{color:var(--gold-hi);border-left-color:var(--gold)}
.cw-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:10px}
.cw-list a{display:flex;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);text-decoration:none;color:var(--cream);font-size:16px}
.cw-list a:hover{border-color:var(--line-2)}
.cw-list .cover{width:38px;flex:none}
.roles{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.roles div{border:1px solid var(--line);padding:22px;background:var(--ink-2)}
.roles h3{margin-bottom:10px}
.roles ul{margin:0;padding-left:18px;display:grid;gap:8px;font-size:17px;color:var(--cream-2)}
.roles li::marker{color:var(--gold)}

/* footer */
.foot{border-top:1px solid var(--line);background:var(--ink-2);padding-block:56px 40px;margin-top:40px}
.news{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,56px);align-items:center;padding-bottom:44px;border-bottom:1px solid var(--line)}
.news>*{min-width:0}
.nform{display:flex;gap:0;min-width:0}
.nform input{flex:1;min-width:0;font-family:var(--ui);font-size:15px;color:var(--cream);background:var(--ink);border:1px solid var(--line-2);border-right:0;padding:13px 14px}
.nform input::placeholder{color:#7d7366}
.nform input:focus{outline:none;border-color:var(--gold)}
.fcols{display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:28px;padding-block:40px}
.fcols>*{min-width:0}
.fcols h2.fh,.fcols h4{font-family:var(--ui);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:12px;font-weight:500}
.fcols ul{list-style:none;margin:0;padding:0;display:grid;gap:7px;font-family:var(--ui);font-size:14px}
.fcols ul a{color:var(--cream-2);text-decoration:none}
.fcols ul a:hover{color:var(--gold-hi)}
.fcols .biz{font-family:var(--ui);font-size:13.5px;color:var(--muted);line-height:1.7}
.socials{display:flex;flex-wrap:wrap;gap:6px 16px;font-family:var(--ui);font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.socials a{color:var(--cream-2);text-decoration:none}
.socials a:hover{color:var(--gold-hi)}
.fine{font-family:var(--ui);font-size:12.5px;color:var(--muted);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:22px}
.copyable{user-select:all;color:var(--cream-2)}

/* drawer + toast */
.drawer{position:fixed;inset:0 0 0 auto;width:min(440px,100%);background:var(--panel);border-left:1px solid var(--line-2);z-index:80;transform:translateX(102%);transition:transform .45s cubic-bezier(.2,.7,.2,1);display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top,0px) + 18px) max(20px,env(safe-area-inset-right,0px)) 20px 22px}
.drawer.open{transform:none}
.drawer header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.drawer ol{overflow:auto;margin:0;padding-left:20px;display:grid;gap:12px;font-family:var(--ui);font-size:14px;line-height:1.5;color:var(--cream-2)}
.drawer ol li::marker{color:var(--flag)}
.drawer ol b{color:var(--cream);font-weight:500}
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:70;opacity:0;pointer-events:none;transition:opacity .4s}
.scrim.on{opacity:1;pointer-events:auto}
.x{background:none;border:1px solid var(--line-2);color:var(--gold-hi);font-family:var(--ui);font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding:6px 10px;cursor:pointer}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,150%);background:var(--panel-2);border:1px solid var(--gold);color:var(--cream);font-family:var(--ui);font-size:14px;padding:12px 18px;z-index:90;transition:transform .45s cubic-bezier(.2,.7,.2,1);max-width:calc(100% - 32px)}
.toast{visibility:hidden;transition:transform .45s cubic-bezier(.2,.7,.2,1),visibility 0s .45s}
.toast.on{transform:translate(-50%,0);visibility:visible;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.fan .cover.type b{font-size:13px}
.fan .cover.type small{font-size:8.5px}

/* foggy "coming soon" cover */
.stage .side.fog{filter:brightness(.92)}
.cover{container-type:inline-size}
.cover.fog{background:radial-gradient(80% 55% at 50% 42%,color-mix(in srgb,var(--world) 38%,#1d2a28),#0f1415 62%,#070909)}
.cover.fog .mist{position:absolute;inset:-30%;pointer-events:none;mix-blend-mode:screen;filter:blur(14px)}
.cover.fog .m1{background:radial-gradient(40% 22% at 30% 40%,rgba(200,214,210,.55),transparent 70%),radial-gradient(35% 18% at 70% 62%,rgba(170,190,186,.45),transparent 70%);animation:drift1 16s ease-in-out infinite alternate}
.cover.fog .m2{background:radial-gradient(45% 20% at 60% 30%,rgba(210,220,216,.45),transparent 70%),radial-gradient(30% 16% at 25% 75%,rgba(190,205,200,.5),transparent 70%);animation:drift2 21s ease-in-out infinite alternate}
.cover.fog .m3{background:linear-gradient(0deg,rgba(205,215,212,.5),transparent 55%);inset:0;filter:blur(6px);animation:breathe 9s ease-in-out infinite}
@keyframes drift1{from{transform:translate(-12%,-4%)}to{transform:translate(12%,5%)}}
@keyframes drift2{from{transform:translate(10%,6%)}to{transform:translate(-12%,-6%)}}
@keyframes breathe{0%,100%{opacity:.55}50%{opacity:1}}
.cover.fog .fog-txt{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center;padding:13% 8% 9%;z-index:2}
.cover.fog small{font-family:var(--display);font-size:8px;font-size:max(6.5px,6cqw);letter-spacing:.16em;text-transform:uppercase;color:rgba(232,226,214,.75)}
.cover.fog b{font-family:var(--display);font-weight:600;font-size:18px;font-size:12cqw;line-height:1.1;letter-spacing:.08em;color:#e8e2d6;text-shadow:0 0 18px rgba(200,220,215,.55);opacity:.88}
.cover.fog .by{font-size:8px;font-size:max(6.5px,5.6cqw);color:#d9cdb5}
.cover.fog .num,.cover.fog .start{z-index:3}
.cover.fog .num~.fog-txt{padding-top:24%}

/* reveal: content is visible at rest; motion only nudges it */
.rv{transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.rv.pre{transform:translateY(22px)}

@media (max-width:980px){
  .nav,.head-cta .btn{display:none}
  .burger{display:grid}
  .mnav{display:block;position:fixed;inset:0;top:calc(env(safe-area-inset-top,0px) + 62px);background:var(--ink);z-index:45;padding:28px max(24px,env(safe-area-inset-left,0px));transform:translateY(-8px);opacity:0;pointer-events:none;transition:opacity .35s,transform .35s}
  .menu-open .mnav{opacity:1;transform:none;pointer-events:auto}
  .mnav a{display:block;font-family:var(--display);font-size:24px;letter-spacing:.1em;color:var(--gold-hi);text-decoration:none;padding:14px 0;border-bottom:1px solid var(--line)}
  .mnav small{display:block;margin-top:18px;font-family:var(--ui);font-size:12px;letter-spacing:.1em;color:var(--muted)}
  .mnav small a{display:inline;font:inherit;border:0;padding:0;color:var(--cream-2)}
  .hero .wrap{grid-template-columns:1fr}
  .hero .stage{order:-1}
  .intro,.worlds,.paths,.side-layout,.news{grid-template-columns:1fr}
  .soon{grid-template-columns:repeat(2,1fr)}
  .worlds{grid-template-columns:repeat(2,1fr)}
  .fcols{grid-template-columns:1fr 1fr}
  .toc{position:static;grid-auto-flow:column;overflow-x:auto;grid-auto-columns:max-content}
  .series-row{grid-template-columns:1fr}
  .book{grid-template-columns:1fr}
  .book .art{position:static;max-width:280px;margin:0 auto}
}
@media (max-width:640px){
  body{font-size:18px}
  .worlds,.soon,.roles{grid-template-columns:1fr}
  .brand span{font-size:12.5px;letter-spacing:.12em}
  .ev{grid-template-columns:72px 1fr}
  .ev .links{grid-column:2;justify-content:flex-start}
  .ev .d b{font-size:24px}
  .bitem{grid-template-columns:110px 1fr}
  .charity{grid-template-columns:1fr}
  .charity .cover{max-width:180px}
  .quote{grid-template-columns:1fr}
  .stage .side{display:none}
  .fcols{grid-template-columns:1fr}
  .path{grid-template-columns:72px 1fr}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .rv.pre{transform:none}
}

/* upcoming and planned books sit back so released titles lead */
.cover-link.later{transform:scale(.9);transform-origin:50% 100%;transition:transform .35s}
.cover-link.later>:not(.t):not(.s){opacity:.6;transition:opacity .35s}
.cover-link.later:hover>:not(.t):not(.s){opacity:.95}
.order .later .cover{box-shadow:0 12px 24px -14px #000}

/* hero: five-book stage. Released books lead; planned books trail into the fog */
.stage.five{gap:0;align-items:flex-end;min-height:0;padding-bottom:6px}
.stage.five .lead{display:block;position:relative;z-index:3;text-decoration:none}
.stage.five .lead .cover{width:min(200px,23vw)}
.stage.five .lead.l{transform:rotateY(12deg);margin-right:-18px;z-index:2}
.stage.five .lead.l .cover{box-shadow:0 26px 44px -18px #000}
.stage.five .lead.r{animation:float 7s ease-in-out infinite}
.stage.five .lead.r .cover{width:min(224px,26vw)}
.stage.five .lead:hover .cover{transform:translateY(-8px)}
.stage.five .trail{display:flex;align-items:flex-end;margin-left:-14px;position:relative;z-index:1}
.stage.five .trail .cover{opacity:.72;filter:brightness(.88);transform:rotateY(-20deg);box-shadow:0 16px 28px -14px #000}
.stage.five .trail .cover:nth-child(1){width:min(118px,13vw);z-index:3}
.stage.five .trail .cover:nth-child(2){width:min(102px,11.5vw);margin-left:-40px;z-index:2;opacity:.6;margin-bottom:6px}
.stage.five .trail .cover:nth-child(3){width:min(88px,10vw);margin-left:-36px;z-index:1;opacity:.48;margin-bottom:12px}
@media (max-width:980px){
  .stage.five .lead .cover{width:min(170px,34vw)}
  .stage.five .lead.r .cover{width:min(190px,38vw)}
  .stage.five .trail .cover:nth-child(1){width:min(96px,19vw)}
  .stage.five .trail .cover:nth-child(2){width:min(84px,17vw);margin-left:-30px}
  .stage.five .trail .cover:nth-child(3){width:min(72px,15vw);margin-left:-28px}
}
@media (max-width:640px){
  .stage.five{flex-wrap:wrap;justify-content:center}
  .stage.five .lead .cover{width:36vw}
  .stage.five .lead.r .cover{width:40vw}
  .stage.five .trail{width:100%;justify-content:center;gap:10px;margin:16px 0 0}
  .stage.five .trail .cover{transform:none}
  .stage.five .trail .cover:nth-child(n){width:20vw;margin:0}
}

/* ===== November additions ===== */
:root{--chili:#d8452f;--warn:#e0534a}
/* last-call bar */
.lastcall{background:linear-gradient(90deg,#3a0f1b,#2a0b14 60%,#3a0f1b);border-bottom:1px solid rgba(201,164,92,.25);font-family:var(--ui);font-size:13px;color:var(--cream)}
.lastcall .wrap{display:flex;justify-content:center;align-items:center;gap:8px 18px;flex-wrap:wrap;padding-block:8px;text-align:center}
.lastcall b{color:var(--gold-hi);font-weight:500;letter-spacing:.06em;text-transform:uppercase;font-size:11.5px;margin-right:4px}
.lastcall .days{color:var(--gold-hi)}
.lastcall a{color:var(--gold-hi);letter-spacing:.08em;text-transform:uppercase;font-size:11.5px;white-space:nowrap}
.lastcall-card{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;border:1px solid rgba(216,69,47,.45);background:radial-gradient(60% 140% at 0% 50%,rgba(110,31,51,.4),transparent 70%),var(--ink-2);padding:clamp(18px,3vw,28px);margin:12px 0 40px}
.lastcall-card h2{margin:6px 0 8px}
.lastcall-card p{margin:0;color:var(--cream-2)}
.days-big{color:var(--gold-hi);font-weight:600}

/* meters */
.meter{display:inline-flex;gap:3px;vertical-align:middle}
.meter i{display:inline-block;width:18px;height:18px;opacity:.22;filter:grayscale(1)}
.meter i.on{opacity:1;filter:none}
.meter svg{width:100%;height:100%;display:block}
.meter.spice svg path{fill:var(--chili)}
.meter.cw svg path{fill:var(--warn)}
.meter.cw svg path.cut{fill:var(--ink)}
.meter.dots i{width:10px;height:10px;border-radius:50%;background:currentColor}
.meter.dots.spice{color:var(--chili)} .meter.dots.cw{color:var(--warn)}
.taglist{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 4px}
.taglist span{font-family:var(--ui);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:4px 9px;background:rgba(201,164,92,.12);color:var(--gold-hi)}
.ratings{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 6px}
.ratings a{display:grid;gap:6px;padding:12px 14px;border:1px solid var(--line);text-decoration:none;color:inherit;transition:border-color .3s}
.ratings a:hover{border-color:var(--line-2)}
.ratings .lbl{font-family:var(--ui);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.ratings .lg{font-size:15.5px;color:var(--cream-2);line-height:1.35}
.cwlevel{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.cwlevel span{font-size:17px}

/* quiz */
.quiz{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(20px,4vw,48px);border:1px solid var(--line-2);padding:clamp(18px,3vw,32px);background:radial-gradient(70% 90% at 100% 0%,rgba(201,164,92,.08),transparent 70%),var(--ink-2)}
.quiz>*{min-width:0}
.qs{display:grid;gap:22px;align-content:start}
.q{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:baseline}
.qn{grid-row:span 2;font-family:var(--display);color:var(--gold);font-size:22px;width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line-2)}
.q h3{font-size:18px;color:var(--cream)}
.q h3 small{font-family:var(--ui);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-left:6px}
.opts{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px}
.opt{font-family:var(--ui);font-size:13px;letter-spacing:.04em;padding:9px 14px;border:1px solid var(--line-2);background:transparent;color:var(--cream-2);cursor:pointer;transition:all .25s}
.opt:hover{border-color:var(--gold);color:var(--gold-hi)}
.opt[aria-pressed="true"]{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.qreset{justify-self:start;background:transparent;color:var(--muted);border-color:var(--line)}
.qresult{min-height:300px;display:grid;align-content:start}
.qempty{display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:center;color:var(--muted)}
.qempty .cover{width:120px}
.qresult.pop .match{animation:pop .6s cubic-bezier(.2,.7,.2,1)}
@keyframes pop{from{transform:translateY(10px) scale(.98)}to{transform:none}}
.match{display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:start}
.match>*{min-width:0}
.mcover .cover{width:150px}
.match h3{font-size:clamp(22px,2.4vw,28px);margin:6px 0 8px}
.mhook{font-style:italic;font-size:18px;color:var(--cream)}
.mrate{display:flex;gap:18px;flex-wrap:wrap;font-family:var(--ui);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:10px 0}
.mrate span{display:inline-flex;gap:8px;align-items:center}
.mfans{font-size:15.5px;color:var(--muted)}
.alts{display:grid;gap:10px;margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}
.alts a{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:center;text-decoration:none;color:var(--cream)}
.alts .cover{width:44px}
.alts b{display:block;font-size:16px}
.alts small{font-family:var(--ui);font-size:11px;letter-spacing:.06em;color:var(--muted)}
.quizcta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;justify-content:space-between;border:1px solid var(--line-2);padding:14px 18px;margin:0 0 20px;text-decoration:none;color:var(--gold-hi);font-family:var(--ui);font-size:13px;letter-spacing:.1em;text-transform:uppercase}
.quizcta span{font-family:var(--display);font-size:20px;letter-spacing:.04em;text-transform:none;color:var(--cream)}
.quizcta:hover{border-color:var(--gold)}
.sbook{display:grid;gap:4px;align-content:start}
.sbook .taglist{margin:0}
.sbook .taglist span{font-size:9.5px;padding:3px 6px}

/* services hook & instagram */
.services-hook{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:clamp(20px,3vw,32px);border:1px solid var(--line-2);text-decoration:none;color:inherit;background:linear-gradient(110deg,rgba(74,116,208,.12),transparent 60%)}
.services-hook h2{margin:6px 0 8px}
.services-hook p{margin:0;color:var(--cream-2)}
.services-hook:hover{border-color:var(--gold)}
.ig-row{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.ig-tile{aspect-ratio:4/5;border:1px solid var(--line);position:relative;overflow:hidden;background:linear-gradient(160deg,rgba(201,164,92,.10),rgba(110,31,51,.18))}
.ig-tile span{position:absolute;inset:0;margin:auto;width:30%;aspect-ratio:1;border:2px solid rgba(241,217,156,.35);border-radius:28%}
.ig-tile span::after{content:"";position:absolute;inset:26%;border:2px solid rgba(241,217,156,.35);border-radius:50%}
.ig-tile:hover{border-color:var(--line-2)}

/* shop additions */
.prod .img.bundle{display:flex;justify-content:center;align-items:center}
.prod .img.bundle .cover{width:34%;margin:0 -7%;box-shadow:0 10px 22px -8px #000}
.prod .img.bundle .cover:nth-child(2){z-index:2;transform:translateY(-6px)}
.prod:hover .img.bundle .cover:nth-child(1){transform:rotate(-6deg)}
.prod:hover .img.bundle .cover:last-child:not(:nth-child(1)){transform:rotate(6deg)}
.blind{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(20px,4vw,48px);align-items:center;margin-top:64px;padding:clamp(18px,3vw,32px);border:1px solid var(--line-2);background:var(--ink-2)}
.bcard img{width:100%;box-shadow:0 26px 40px -20px #000;transform:rotate(-2deg);transition:transform .5s}
.bcard:hover img{transform:rotate(0) scale(1.02)}
.tiers{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0 12px}
.tier{display:grid;gap:4px;padding:16px;border:1px solid var(--line-2);text-decoration:none;color:inherit;transition:border-color .3s,background .3s}
.tier:hover{border-color:var(--gold);background:rgba(201,164,92,.06)}
.tier b{font-family:var(--display);font-size:34px;color:var(--gold-hi);font-weight:600;line-height:1}
.tier span{font-size:17px}
.tier small{font-family:var(--ui);font-size:12px;color:var(--muted)}

/* scales on reader notes */
.scale{display:grid;gap:0;border-top:1px solid var(--line);margin:14px 0 8px}
.lvl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--line);align-items:center}
.lh p{font-size:16.5px;margin:6px 0 0;color:var(--cream-2)}
.lb{display:flex;flex-wrap:wrap;gap:6px}
.lb .cover{width:42px}
.voice{border:1px solid var(--line);padding:clamp(16px,3vw,24px);margin-top:12px;background:var(--ink-2)}
.voice p{font-size:18px}
.ends{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;font-family:var(--ui);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.ends i{height:2px;background:linear-gradient(90deg,var(--gold-deep),var(--gold-hi))}

/* wiki */
.wikihook{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;align-items:center;margin-top:56px;border:1px solid var(--line-2);padding:16px;text-decoration:none;color:inherit;background:var(--ink-2)}
.wikihook img{width:100%;transition:transform .8s}
.wikihook:hover img{transform:scale(1.02)}
.wikihook h2{margin:6px 0 10px}
.wbody{display:grid;gap:12px;min-width:0}
.wsec{padding-block:28px;border-bottom:1px solid var(--line);scroll-margin-top:90px}
.wsec h2{margin-bottom:14px}
.wsec p{font-size:18px}
.poem{text-align:center;font-style:italic;font-size:clamp(19px,2vw,22px);line-height:1.7;color:var(--cream);padding:clamp(16px,3vw,28px);border:1px solid var(--line);background:radial-gradient(60% 80% at 50% 0%,rgba(63,143,132,.16),transparent 70%)}
.poem p{max-width:none;margin:0 0 18px}
.wgrid{display:grid;gap:18px}
.wfig{margin:0}
.wfig img{width:100%;border:1px solid var(--line)}
.wfig.tree img{background:#fff}
.wfig figcaption{font-family:var(--ui);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-top:8px}
.wfig figcaption span{color:var(--muted);text-transform:none;letter-spacing:0}
.tbl{overflow-x:auto;border:1px solid var(--line)}
.tbl table{width:100%;border-collapse:collapse;font-family:var(--ui);font-size:14px;font-variant-numeric:tabular-nums}
.tbl th{text-align:left;font-weight:500;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);background:var(--panel);padding:10px 12px}
.tbl td{padding:8px 12px;border-top:1px solid var(--line);color:var(--cream-2)}
.tbl tr.chk td{background:rgba(227,178,78,.07)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.two>*{min-width:0}
.births{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.births li{display:grid;grid-template-columns:76px 1fr;gap:10px;padding:10px 12px;border:1px solid var(--line);font-size:16.5px}
.births b{font-family:var(--ui);font-size:12.5px;font-weight:500;color:var(--gold);letter-spacing:.06em}
.births small{display:block;font-family:var(--ui);font-size:11.5px;color:var(--muted)}
.judges{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-bottom:16px}
.judge{padding:16px;border:1px solid var(--line);display:grid;gap:4px;background:linear-gradient(160deg,rgba(63,143,132,.12),transparent)}
.judge b{font-family:var(--display);font-size:19px;color:var(--gold-hi);font-weight:600}
.judge span{font-size:15.5px;color:var(--cream-2)}
.lead-in{font-family:var(--display);color:var(--gold-hi);font-size:20px!important;margin-top:20px}

/* forms */
.card-form{display:grid;gap:16px;border:1px solid var(--line-2);padding:clamp(18px,3vw,30px);background:var(--ink-2);max-width:760px}
.card-form label{display:grid;gap:6px;font-family:var(--ui);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.card-form label small{text-transform:none;letter-spacing:0;color:var(--muted);font-size:12px}
.card-form input[type=text],.card-form input[type=email],.card-form select,.card-form textarea{font-family:var(--ui);font-size:15px;letter-spacing:0;text-transform:none;color:var(--cream);background:var(--ink);border:1px solid var(--line-2);padding:11px 12px;width:100%}
.card-form input:focus,.card-form select:focus,.card-form textarea:focus{outline:none;border-color:var(--gold)}
.card-form .check{display:flex;gap:10px;align-items:center;text-transform:none;letter-spacing:0;font-size:14.5px;color:var(--cream-2)}
.card-form .check input{accent-color:var(--gold);width:16px;height:16px}
.card-form fieldset{border:1px solid var(--line);padding:12px 14px;display:flex;flex-wrap:wrap;gap:10px 22px}
.card-form legend{font-family:var(--ui);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);padding:0 6px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.row2>*{min-width:0}
.askside img{width:min(200px,60%);opacity:.9;margin-bottom:12px}
.svcs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.svc{border:1px solid var(--line-2);padding:22px;display:grid;gap:8px;align-content:start;background:var(--ink-2)}
.svc h3{font-size:22px}
.svc p{font-size:17px;margin:0;color:var(--cream-2)}

@media (max-width:980px){
  .quiz{grid-template-columns:1fr}
  .ig-row{grid-template-columns:repeat(3,1fr)}
  .blind,.wikihook,.two,.svcs{grid-template-columns:1fr}
}
@media (max-width:640px){
  .ratings,.row2,.tiers{grid-template-columns:1fr}
  .lvl{grid-template-columns:1fr}
  .match{grid-template-columns:100px 1fr}
  .mcover .cover{width:100px}
  .qempty{grid-template-columns:84px 1fr}
  .qempty .cover{width:84px}
  .qresult{min-height:0}
  .lastcall .wrap{font-size:12px}
}

/* Nov 4 additions */
.prod .img.bundle{position:relative}
.prod .img.bundle .more{position:absolute;right:10px;bottom:10px;font-family:var(--ui);font-size:12px;background:var(--ink);border:1px solid var(--line-2);color:var(--gold-hi);padding:3px 8px;z-index:3}
a.svc{text-decoration:none;color:inherit;transition:border-color .3s,transform .3s}
a.svc:hover{border-color:var(--gold);transform:translateY(-3px)}
.svc .price{font-family:var(--ui);font-size:13px;letter-spacing:.06em;color:var(--gold-hi)}
.svc .more,.pick .more{font-family:var(--ui);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.svc.other{border-style:dashed}
.steps{margin:20px 0 0;padding-left:22px;display:grid;gap:10px;font-size:17px;color:var(--cream-2)}
.steps li::marker{font-family:var(--display);color:var(--gold)}
.steps b{color:var(--cream);font-weight:600}
.tiers2{display:grid!important;grid-template-columns:1fr 1fr;gap:12px}
.tierpick{display:grid!important;gap:4px;padding:14px;border:1px solid var(--line-2);cursor:pointer;text-transform:none!important;letter-spacing:0!important;color:var(--cream)!important}
.tierpick input{position:absolute;opacity:0;pointer-events:none}
.tierpick b{font-family:var(--display);font-size:30px;color:var(--gold-hi);line-height:1}
.tierpick span{font-family:var(--body);font-size:16.5px}
.tierpick:has(input:checked){border-color:var(--gold);background:rgba(201,164,92,.1)}
.tierpick:has(input:focus-visible){outline:2px solid var(--gold-hi);outline-offset:2px}
.disclose{font-family:var(--ui);font-size:13px;color:var(--muted);border-left:2px solid var(--gold-deep);padding:4px 0 4px 12px;max-width:none}
.picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.pick{display:grid;gap:8px;align-content:start;padding:20px;border:1px solid var(--line-2);background:var(--ink-2);text-decoration:none;color:inherit;transition:border-color .3s,transform .3s}
.pick:hover{border-color:var(--gold);transform:translateY(-3px)}
.pick h3{font-size:21px}
.pick p{font-size:16.5px;margin:0;color:var(--cream-2)}
.ptag{font-family:var(--ui);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
@media (max-width:640px){.tiers2{grid-template-columns:1fr}}

[hidden]{display:none!important}
.gated{position:relative;outline:1px dashed rgba(227,178,78,.6);outline-offset:6px}
.gated::before{content:attr(data-gate);position:absolute;top:-30px;right:0;font-family:var(--ui);font-size:11px;letter-spacing:.06em;color:var(--flag);border:1px dashed rgba(227,178,78,.7);padding:1px 7px;background:var(--ink)}

/* blind date layout fix */
.bdmain{display:grid;gap:36px;min-width:0;align-content:start}
.bdmain .card-form{max-width:none}
.card-form fieldset.cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px 20px}
.card-form fieldset.cols .check{align-items:flex-start;line-height:1.35}
.card-form fieldset.cols .check input{margin-top:2px;flex:none}
.gated{outline-offset:10px}
.gated::before{top:-34px}

.bd-intro{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(20px,4vw,48px);align-items:center;margin-bottom:40px}
.bd-card{margin:0}
.bd-card img{width:100%;max-width:720px;border-radius:6px;box-shadow:0 30px 50px -24px #000}
.bd-card figcaption{font-family:var(--ui);font-size:12.5px;color:var(--muted);margin-top:10px}
.bd-intro .steps{font-size:19px;gap:16px;margin:0}
.bdmain{max-width:900px}
@media (max-width:820px){.bd-intro{grid-template-columns:1fr}}

/* Nov 4 round 2 */
.gr{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--cream-2);font-family:var(--ui);font-size:13px;margin-top:6px;flex-wrap:wrap}
.gr b{color:var(--gold-hi);font-weight:500}
.gr span:last-child{color:var(--muted);font-size:12px}
.gr.sm{font-size:11.5px;gap:5px;margin-top:4px}
.gr.sm span:last-child{font-size:10.5px}
.stars{position:relative;display:inline-flex;line-height:0}
.stars>span{display:inline-flex;gap:1px}
.stars svg{width:14px;height:14px;flex:none}
.gr.sm .stars svg{width:11px;height:11px}
.stars .bg svg path{fill:rgba(201,164,92,.22)}
.stars .fg{position:absolute;inset:0;width:var(--pct);overflow:hidden}
.stars .fg svg path{fill:var(--gold)}
.bk{display:grid;align-content:start}
.srat{margin:10px 0 12px}
.bestseller{display:flex;gap:14px;align-items:center;margin:16px 0 8px;padding:14px 16px;border:1px solid var(--gold);background:linear-gradient(135deg,rgba(201,164,92,.16),rgba(201,164,92,.02));max-width:560px}
.bestseller .trophy{width:34px;height:34px;flex:none}
.bestseller .trophy path{fill:var(--gold-hi)}
.bestseller b{display:block;font-family:var(--display);font-weight:600;font-size:18px;color:var(--gold-hi);letter-spacing:.06em}
.bestseller .mc{display:block;font-family:var(--ui);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:2px 0 4px}
.bestseller .cats{display:block;font-size:14.5px;color:var(--cream-2);line-height:1.4}
.bestseller.sm{padding:10px 12px;gap:10px;margin:10px 0}
.bestseller.sm .trophy{width:24px;height:24px}
.bestseller.sm b{font-size:14px}
.bestseller.sm .cats{font-size:12.5px}
.audio{display:flex;gap:10px;align-items:center;margin:8px 0;font-family:var(--ui);font-size:13.5px;color:var(--cream);max-width:560px}
.audio svg{width:22px;height:22px;flex:none}
.audio svg path{fill:var(--gold)}
.cameos{margin-top:40px;padding:20px 22px;border:1px dashed var(--line-2);background:var(--ink-2)}
.cameos h3{margin:6px 0 8px}
.cameos p{font-size:17px;margin:0 0 6px;color:var(--cream-2)}
details.sub{border:1px solid var(--line);margin:10px 0}
details.sub summary{cursor:pointer;padding:10px 14px;font-family:var(--ui);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-hi);list-style:none}
details.sub summary::-webkit-details-marker{display:none}
details.sub summary::before{content:"+ ";color:var(--gold)}
details.sub[open] summary::before{content:"− "}
details.sub>div{padding:0 16px 10px}
details.sub p{font-size:17px}
.cwh{font-family:var(--ui);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:18px 0 8px;font-weight:500}
.cwlist{list-style:none;margin:0;padding:0;columns:3 200px;column-gap:20px;font-family:var(--ui);font-size:13.5px;color:var(--cream-2)}
.cwlist li{break-inside:avoid;padding:3px 0 3px 12px;position:relative}
.cwlist li::before{content:"";position:absolute;left:0;top:11px;width:5px;height:5px;background:var(--warn,#b04a4a);border-radius:50%}
.cwnote{font-size:16.5px;color:var(--cream-2)}
.cwsec .cwhead{display:grid;grid-template-columns:70px 1fr;gap:16px;align-items:center;margin-bottom:10px}
.cwsec .cwhead .cover{width:70px}
.cwsec h2{margin:0 0 4px}
.cwlevel{display:flex;gap:10px;align-items:center;font-family:var(--ui);font-size:13px;color:var(--muted);margin:0}
.logos{display:flex;flex-wrap:wrap;gap:20px;align-items:center;margin:16px 0 8px}
.logos img{height:90px;width:auto;background:#fff;padding:6px;border-radius:4px}
.logos img.ag{height:56px;padding:10px 14px}
.memb{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.memb img{height:30px;width:auto;border-radius:3px}
.memb img.ag{height:22px;background:#fff;padding:4px 6px}
.socials{gap:8px!important;margin-top:14px}
.socials a{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line-2);border-radius:50%;transition:all .25s}
.socials a:hover{border-color:var(--gold);background:rgba(201,164,92,.1)}
.socials svg{width:17px;height:17px}
.socials svg path{fill:var(--cream-2);transition:fill .25s}
.socials a:hover svg path{fill:var(--gold-hi)}
.nscale img,.narr img{width:100%;max-width:420px;border:1px solid var(--line)}
.narr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start;margin:14px 0 20px}
.nlevels{margin:0;padding-left:24px;display:grid;gap:12px}
.nlevels li::marker{font-family:var(--display);color:var(--gold)}
.nlevels b{display:block;font-family:var(--display);color:var(--gold-hi);font-weight:600;font-size:18px;letter-spacing:.04em}
.nlevels span{font-size:16.5px;color:var(--cream-2)}
.wikihook.small{grid-template-columns:1fr;margin-top:14px}
.terms{display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:10px 18px;margin:12px 0 20px}
.terms dt{font-family:var(--display);font-weight:600;color:var(--gold-hi);font-size:16px}
.terms dd{margin:0;font-size:16.5px;color:var(--cream-2)}
.prose.wide{max-width:900px}
.myths{display:grid;gap:10px;margin:12px 0 20px}
.myth{border-left:2px solid var(--gold-deep,#8a6d35);padding:6px 0 6px 14px}
.myth p{margin:0 0 4px;font-size:16.5px}
.myth b{font-family:var(--ui);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.inv{margin:8px 0 40px}
.invgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:22px;margin-top:18px}
.invcard{margin:0;display:grid;gap:10px}
.invcard img{width:100%;border-radius:6px;box-shadow:0 20px 30px -18px #000;transition:transform .4s}
.invcard:hover img{transform:translateY(-4px) rotate(-.5deg)}
.invcard figcaption{display:flex;justify-content:space-between;align-items:center;gap:10px;font-family:var(--ui);font-size:13px;color:var(--gold-hi)}
.surprise{padding-top:28px;border-top:1px solid var(--line);margin-bottom:20px}
@media (max-width:820px){.narr{grid-template-columns:1fr}.terms{grid-template-columns:1fr;gap:2px}.terms dd{margin-bottom:10px}}
.gr i{font-style:normal}
.charities{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(460px,100%),1fr));gap:22px}
.charities .charity{grid-template-columns:140px 1fr;background:radial-gradient(60% 100% at 0% 50%,color-mix(in srgb,var(--world) 22%,transparent),transparent 70%)}
.charities .charity h2{font-size:clamp(26px,3vw,34px)}
.charities .charity p{font-size:17px}
@media (max-width:560px){.charities .charity{grid-template-columns:1fr}.charities .charity .cover{width:150px}}

/* ===== Audiobook celebration ===== */
@keyframes abShine{0%{background-position:200% 50%}100%{background-position:-200% 50%}}
@keyframes abBar{0%,100%{transform:scaleY(.25)}50%{transform:scaleY(1)}}
@keyframes abPulse{0%,100%{box-shadow:0 0 0 0 rgba(241,217,156,.45)}50%{box-shadow:0 0 0 14px rgba(241,217,156,0)}}
@keyframes abFloat{0%,100%{transform:translateY(0) rotate(var(--r,0deg))}50%{transform:translateY(-8px) rotate(var(--r,0deg))}}
.audiohero{position:relative;overflow:hidden;padding:clamp(48px,7vw,90px) 0;border-block:1px solid rgba(201,164,92,.45);
  background:radial-gradient(60% 120% at 85% 40%,rgba(122,74,160,.35),transparent 60%),radial-gradient(50% 100% at 10% 80%,rgba(46,139,87,.22),transparent 60%),radial-gradient(40% 80% at 50% 0%,rgba(201,164,92,.18),transparent 70%),#0b0a0d}
.audiohero::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 46px,rgba(201,164,92,.05) 46px 47px);pointer-events:none}
.ab-in{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center}
.ab-kick{display:inline-flex;align-items:center;gap:10px;padding:8px 14px 8px 10px;border:1px solid var(--gold);border-radius:999px;font-family:var(--ui);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-hi);background:rgba(201,164,92,.1);animation:abPulse 2.6s ease-in-out infinite}
.ab-kick svg{width:20px;height:20px}.ab-kick svg path{fill:var(--gold-hi)}
.ab-h{font-family:var(--display);font-size:clamp(40px,6.4vw,84px);line-height:.98;margin:18px 0 14px;letter-spacing:.01em;
  background:linear-gradient(100deg,#f1d99c 0%,#fff6dc 18%,#c9a45c 36%,#f1d99c 50%,#fff6dc 68%,#c9a45c 86%,#f1d99c 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:abShine 6s linear infinite}
.ab-h em{font-style:italic}
.ab-sub{font-size:clamp(19px,2.2vw,24px);color:var(--cream);margin:0 0 6px}
.ab-sub b{color:var(--gold-hi);font-weight:600}
.wave{display:flex;align-items:center;gap:5px;height:56px;margin:20px 0 22px}
.wave i{flex:1;max-width:7px;height:var(--h);border-radius:4px;background:linear-gradient(#f1d99c,#c9a45c 60%,#7a4aa0);transform-origin:center;animation:abBar 1.15s ease-in-out infinite;animation-delay:calc(var(--d) * -1.15s)}
.ab-cta-l{font-family:var(--ui);font-size:14.5px;color:var(--cream-2);margin:0 0 12px}
.ab-btn{box-shadow:0 0 30px -6px rgba(241,217,156,.7)}
.ab-covers{position:relative;height:clamp(300px,34vw,420px)}
.ab-cov{position:absolute;width:44%;top:12%;transition:transform .4s}
.ab-cov:nth-child(1){left:2%;--r:-9deg;animation:abFloat 6s ease-in-out infinite}
.ab-cov:nth-child(2){left:28%;top:2%;z-index:2;width:48%;--r:0deg;animation:abFloat 6s ease-in-out -2s infinite}
.ab-cov:nth-child(3){left:54%;--r:9deg;animation:abFloat 6s ease-in-out -4s infinite}
.ab-cov .cover{width:100%;box-shadow:0 30px 50px -18px #000,0 0 40px -12px rgba(241,217,156,.45)}
.ab-badge{position:absolute;right:2%;bottom:0;z-index:3;display:grid;place-items:center;width:118px;height:118px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3cf,#c9a45c 55%,#8a6a2c);color:#1a1209;text-align:center;box-shadow:0 18px 40px -10px #000;transform:rotate(-10deg);animation:abPulse 2.6s ease-in-out infinite}
.ab-badge b{font-family:var(--display);font-size:34px;line-height:1;display:block}
.ab-badge small{font-family:var(--ui);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:600}
.audiobadge{display:inline-flex;align-items:center;gap:12px;margin:10px 0 6px;padding:10px 16px 10px 12px;border:1px solid var(--gold);border-radius:999px;text-decoration:none;color:var(--cream);background:linear-gradient(100deg,rgba(201,164,92,.22),rgba(122,74,160,.22));animation:abPulse 2.6s ease-in-out infinite}
.audiobadge>svg{width:24px;height:24px;flex:none}.audiobadge>svg path{fill:var(--gold-hi)}
.audiobadge b{display:block;font-family:var(--display);font-weight:600;color:var(--gold-hi);font-size:17px;letter-spacing:.03em}
.audiobadge small{display:block;font-family:var(--ui);font-size:11.5px;color:var(--cream-2);letter-spacing:.06em}
.audiobadge.sm{padding:7px 12px 7px 9px;gap:8px;margin:2px 0 10px}
.audiobadge.sm b{font-size:13.5px}.audiobadge.sm small{font-size:10px}.audiobadge.sm>svg{width:18px;height:18px}
.mini-wave{display:inline-flex;align-items:center;gap:3px;height:20px}
.mini-wave i{width:3px;height:100%;border-radius:2px;background:var(--gold-hi);transform-origin:center;animation:abBar 1s ease-in-out infinite}
.mini-wave i:nth-child(2){animation-delay:-.2s}.mini-wave i:nth-child(3){animation-delay:-.45s}.mini-wave i:nth-child(4){animation-delay:-.7s}.mini-wave i:nth-child(5){animation-delay:-.1s}
.nl-audio{display:flex;gap:10px;align-items:center;margin:0 0 16px;padding:10px 14px;border:1px solid rgba(201,164,92,.55);border-radius:10px;background:rgba(201,164,92,.08);color:var(--cream-2);text-decoration:none;font-size:15.5px;max-width:520px}
.nl-audio svg{width:22px;height:22px;flex:none}.nl-audio svg path{fill:var(--gold-hi)}
.nl-audio b{color:var(--gold-hi);font-weight:600}
@media (max-width:860px){.ab-in{grid-template-columns:1fr}.ab-covers{height:clamp(260px,70vw,380px);max-width:460px;margin-inline:auto;width:100%}.ab-badge{width:96px;height:96px}.ab-badge b{font-size:28px}}
@media (prefers-reduced-motion:reduce){.ab-h,.wave i,.mini-wave i,.ab-kick,.ab-badge,.audiobadge,.ab-cov{animation:none!important}}

.bd-why{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:14px;margin-top:22px;max-width:820px}
.bd-why>div{padding:14px 16px;border:1px solid var(--line-2);border-left:3px solid var(--gold);background:rgba(201,164,92,.06)}
.bd-why b{display:block;font-family:var(--display);color:var(--gold-hi);font-size:20px;margin-bottom:4px}
.bd-why span{font-size:16.5px;color:var(--cream-2)}
.forwho{display:flex;gap:18px;flex-wrap:wrap;border:0;padding:0;margin:0}

.ab-early{display:grid;gap:3px;margin-top:22px;padding:14px 18px;border:1px dashed var(--gold);border-radius:10px;background:rgba(201,164,92,.08);text-decoration:none;color:var(--cream-2);max-width:560px;transition:background .25s}
.ab-early:hover{background:rgba(201,164,92,.16)}
.ab-early-k{font-family:var(--ui);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.ab-early b{font-family:var(--display);color:var(--gold-hi);font-size:20px;font-weight:600}
.ab-early span:last-child{font-size:15px}

/* audio banner: compact version */
.audiohero{padding:clamp(26px,3.5vw,44px) 0}
.ab-in{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(20px,3vw,40px)}
.ab-kick{font-size:10.5px;padding:6px 12px 6px 8px;gap:8px}
.ab-kick svg{width:16px;height:16px}
.ab-h{font-size:clamp(28px,3.4vw,44px);margin:12px 0 8px;line-height:1.05}
.ab-sub{font-size:clamp(16px,1.6vw,19px)}
.wave{height:30px;margin:12px 0 14px;gap:4px}
.wave i{max-width:5px}
.ab-cta-l{font-size:13.5px;margin-bottom:10px}
.ab-early{margin-top:14px;padding:10px 14px}
.ab-early b{font-size:16.5px}
.ab-early span:last-child{font-size:13.5px}
.ab-covers{height:clamp(190px,19vw,250px);max-width:380px;margin-left:auto;width:100%}
.ab-badge{width:92px;height:92px;padding:8px}
.ab-badge b{font-size:26px}
.ab-badge small{font-size:9px;letter-spacing:.06em;line-height:1.1;display:block;max-width:64px;margin:2px auto 0}
@media (max-width:860px){.ab-covers{height:clamp(180px,50vw,240px);max-width:320px;margin-inline:auto}.ab-badge{width:84px;height:84px}.ab-badge b{font-size:24px}}
@media (max-width:860px){.ab-in{grid-template-columns:1fr}.ab-covers{order:-1;height:190px;max-width:280px}.ab-badge{width:76px;height:76px}.ab-badge b{font-size:21px}}

.bs-pill{display:inline-block;margin-top:6px;padding:3px 9px;border:1px solid var(--gold);border-radius:999px;font-family:var(--ui);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-hi);background:rgba(201,164,92,.12);white-space:nowrap;justify-self:start}

/* ===== Coming-to-audio sticker ===== */
.world-wrap{position:relative;display:grid}
.world-wrap>.world{height:100%}
.stk,.bk{position:relative}
.ab-sticker{position:absolute;z-index:6;top:-14px;right:-12px;display:grid;place-items:center;align-content:center;gap:1px;width:96px;height:96px;border-radius:50%;text-align:center;text-decoration:none;color:#1a1209;
  background:radial-gradient(circle at 35% 30%,#fff3cf,#e6c779 45%,#b58a3a 100%);box-shadow:0 10px 24px -8px rgba(0,0,0,.9),0 0 0 3px rgba(26,18,9,.85),0 0 0 4px rgba(241,217,156,.6);transform:rotate(12deg);transition:transform .3s}
.ab-sticker:hover{transform:rotate(4deg) scale(1.06)}
.ab-sticker svg{width:18px;height:18px}.ab-sticker svg path{fill:#1a1209}
.ab-sticker b{font-family:var(--ui);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;line-height:1.15;max-width:70px;font-weight:700}
.ab-sticker small{font-family:var(--display);font-size:19px;font-weight:700;line-height:1}
.ab-sticker.sm{width:76px;height:76px;top:-10px;right:-14px}
.ab-sticker.sm svg{width:14px;height:14px}.ab-sticker.sm b{font-size:8px;max-width:58px}.ab-sticker.sm small{font-size:15px}
.book .art .ab-sticker{top:-16px;right:-16px;width:108px;height:108px}
@media (prefers-reduced-motion:no-preference){.ab-sticker{animation:stkWob 4s ease-in-out infinite}}
@keyframes stkWob{0%,100%{transform:rotate(12deg)}50%{transform:rotate(7deg) scale(1.04)}}
.ab-badge>span{display:grid;place-items:center}

/* ===== Roll For Love page ===== */
.rfl-hero{position:relative;overflow:hidden;padding:clamp(30px,5vw,64px) 0 clamp(36px,5vw,64px);border-bottom:1px solid rgba(201,164,92,.45);
  background:radial-gradient(60% 120% at 85% 40%,rgba(107,75,216,.35),transparent 60%),radial-gradient(50% 100% at 10% 90%,rgba(46,139,87,.18),transparent 60%),radial-gradient(40% 80% at 50% 0%,rgba(201,164,92,.16),transparent 70%),#0b0a0d}
.rh-in{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center}
.rh-copy .crumbs{margin-bottom:16px}
.rh-h{font-size:clamp(46px,7vw,92px);line-height:.95;margin:16px 0 12px;background:linear-gradient(100deg,#f1d99c 0%,#fff6dc 18%,#c9a45c 36%,#f1d99c 50%,#fff6dc 68%,#c9a45c 86%,#f1d99c 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:abShine 6s linear infinite}
.rh-ann{font-size:clamp(19px,2.2vw,24px);color:var(--cream);max-width:560px;margin:0}
.rh-ann em{color:var(--gold-hi)}.rh-ann b{color:var(--gold-hi);font-weight:600}
.rfl-hero .ab-covers{height:clamp(260px,30vw,380px);max-width:none}
.rfl-hero .ab-badge{width:108px;height:108px}.rfl-hero .ab-badge b{font-size:30px}
.rfl section{padding-block:clamp(34px,5vw,56px);border-bottom:1px solid var(--line)}
.rfl section:last-child{border-bottom:0}
.rfl h2{margin:6px 0 18px}
.rfl-about{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(20px,4vw,48px);align-items:start}
.rfl-side .bestseller{margin-top:0}
.party{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.pc{padding:18px 16px;border:1px solid color-mix(in srgb,var(--c) 55%,transparent);background:linear-gradient(160deg,color-mix(in srgb,var(--c) 18%,transparent),transparent 70%);border-radius:10px}
.pc .die{display:inline-grid;place-items:center;width:44px;height:44px}
.pc .die svg{width:40px;height:40px;filter:drop-shadow(0 0 10px var(--c))}.pc .die svg path{fill:var(--c)}
.pc h3{margin:8px 0 6px;font-size:22px;color:var(--cream)}
.pc p{margin:0;font-size:15.5px;color:var(--cream-2)}
.rfl-books{display:grid;gap:26px}
.rfl-book{display:grid;grid-template-columns:150px 1fr;gap:clamp(16px,3vw,32px);align-items:start}
.rfl-book h3{margin:4px 0 6px;font-size:28px}.rfl-book h3 a{color:inherit;text-decoration:none}
.rfl-book .hook{font-style:italic;font-size:19px;color:var(--cream);margin:12px 0 6px}
.rfl-book p{font-size:16.5px;color:var(--cream-2);max-width:720px}
.rfl-book .btns{margin-top:12px}
@media (max-width:980px){.party{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}}
@media (max-width:860px){.rh-in,.rfl-about{grid-template-columns:1fr}.rfl-hero .ab-covers{order:-1;height:220px;max-width:320px;margin-inline:auto;width:100%}.rfl-book{grid-template-columns:100px 1fr}.ab-sticker{width:84px;height:84px}.book .art .ab-sticker{width:92px;height:92px;top:-10px;right:-8px}}
@media (prefers-reduced-motion:reduce){.rh-h{animation:none}}

/* ===== Last call ticker ===== */
.lastcall.ticker{overflow:hidden;white-space:nowrap;position:relative}
.lastcall.ticker::before,.lastcall.ticker::after{content:"";position:absolute;top:0;bottom:0;width:60px;z-index:2;pointer-events:none}
.lastcall.ticker::before{left:0;background:linear-gradient(90deg,#3a0f1b,transparent)}
.lastcall.ticker::after{right:0;background:linear-gradient(-90deg,#3a0f1b,transparent)}
.tk-track{display:inline-flex;width:max-content;padding-block:8px;animation:tkScroll 70s linear infinite}
.lastcall.ticker:hover .tk-track,.lastcall.ticker:focus-within .tk-track{animation-play-state:paused}
.tk-item{display:inline-flex;align-items:center;gap:6px;padding-right:28px}
.tk-item a{margin-left:10px}
.tk-sep{color:var(--gold);margin-left:28px}
@keyframes tkScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.tk-track{animation:none}.lastcall.ticker{white-space:normal}.tk-item:not(:first-child){display:none}.lastcall.ticker .tk-track{width:auto;display:flex;justify-content:center}}

/* ===== Audiobooks nav tab ===== */
.nav-audio{display:inline-flex!important;align-items:center;gap:7px;padding:6px 12px!important;border:1px solid var(--gold);border-radius:999px;color:var(--gold-hi)!important;background:linear-gradient(100deg,rgba(201,164,92,.18),rgba(107,75,216,.22));position:relative;animation:abPulse 2.6s ease-in-out infinite}
.nav-audio svg{width:15px;height:15px;flex:none}.nav-audio svg path{fill:var(--gold-hi)}
.nav-audio::after{display:none!important}
.nav-audio .new{font-style:normal;font-size:8.5px;letter-spacing:.12em;padding:2px 5px;border-radius:4px;background:var(--gold);color:#1a1209;font-weight:700}
.nav-audio:hover{background:linear-gradient(100deg,rgba(201,164,92,.32),rgba(107,75,216,.32))}
.mnav .nav-audio{margin-top:6px;justify-content:center}
@media (prefers-reduced-motion:reduce){.nav-audio{animation:none}}

/* ===== Sticker: clearly clickable ===== */
.ab-sticker{cursor:pointer;width:104px;height:104px}
.ab-sticker::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid rgba(241,217,156,.75);animation:stkRing 2.2s ease-out infinite;pointer-events:none}
@keyframes stkRing{0%{transform:scale(.92);opacity:.9}100%{transform:scale(1.25);opacity:0}}
.ab-sticker em{font-style:normal;font-family:var(--ui);font-size:8.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-top:2px;padding:2px 6px;border-radius:999px;background:#1a1209;color:var(--gold-hi)}
.ab-sticker:hover em{background:#3a0f1b}
.ab-sticker.sm{width:84px;height:84px}
.ab-sticker.sm em{font-size:7px;padding:1px 5px}
.book .art .ab-sticker{width:116px;height:116px}
.book .art .ab-sticker em{font-size:9.5px}
@media (prefers-reduced-motion:reduce){.ab-sticker::after{animation:none;opacity:0}}
.nav a,.nav .nav-dd-btn{white-space:nowrap}
.nav-audio .short{display:none}
@media (max-width:1180px){.nav-audio .full{display:none}.nav-audio .short{display:inline}.nav-audio .new{display:none}.nav{gap:clamp(14px,2vw,28px)!important}}
.mnav .nav-audio .full{display:inline}.mnav .nav-audio .short{display:none}
@media (max-width:600px){.world-wrap .ab-sticker{right:-2px;top:-10px;width:88px;height:88px}}
@media (max-width:1180px){.brand span{font-size:13px;letter-spacing:.1em}.nav{gap:18px!important}.nav a,.nav .nav-dd-btn{font-size:12px}}
@media (max-width:1060px){.brand span{display:none}}

/* ===== Blind date options & card deck ===== */
.bd-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:22px;margin:8px 0 44px}
.bd-opt{border:1px solid var(--line-2);padding:22px;background:linear-gradient(160deg,rgba(201,164,92,.08),transparent 60%)}
.bd-opt h2{margin:6px 0 8px}
.bd-opt .tiers{margin:14px 0}
.invgrid{display:flex!important;justify-content:center;padding:40px 0 70px;margin-top:6px}
.invcard{position:relative;flex:0 0 auto;width:min(260px,30vw);margin:0 0 0 -120px;transform:rotate(var(--r));transform-origin:50% 120%;transition:transform .35s cubic-bezier(.2,.7,.2,1),z-index 0s .1s;z-index:calc(1 + var(--i));cursor:zoom-in;outline:none}
.invcard:first-child{margin-left:0}
.invcard img{box-shadow:0 18px 30px -14px #000;border-radius:6px;transition:box-shadow .35s}
.invcard figcaption{opacity:0;transition:opacity .25s}
.invcard:hover,.invcard:focus,.invcard:focus-within{z-index:50;transform:rotate(0) translateY(-26px) scale(1.6);transition:transform .35s cubic-bezier(.2,.7,.2,1),z-index 0s}
.invcard:hover img,.invcard:focus img,.invcard:focus-within img{box-shadow:0 30px 60px -10px #000,0 0 0 2px var(--gold)}
.invcard:hover figcaption,.invcard:focus figcaption,.invcard:focus-within figcaption{opacity:1}
.invcard figcaption{font-size:9px}.invcard figcaption .btn{font-size:8px;padding:5px 9px}
@media (max-width:820px){
  .invgrid{justify-content:flex-start;overflow-x:auto;scroll-snap-type:x mandatory;padding:20px 4px 30px;gap:14px}
  .invcard{margin:0;width:78vw;transform:none;scroll-snap-align:center;cursor:default}
  .invcard:hover,.invcard:focus,.invcard:focus-within{transform:translateY(-4px)}
  .invcard figcaption{opacity:1;font-size:13px}.invcard figcaption .btn{font-size:11px;padding:8px 12px}
}
@media (prefers-reduced-motion:reduce){.invcard{transition:none}}
@media (min-width:821px){
  .invcard{width:min(240px,26vw);margin-left:-120px}
  .invcard figcaption{position:absolute;left:50%;bottom:-30px;transform:translateX(-50%);display:flex;gap:8px;align-items:center;white-space:nowrap;background:rgba(10,9,12,.92);border:1px solid var(--gold);padding:4px 6px 4px 10px;border-radius:999px;color:var(--gold-hi)}
}

/* blind date reading panel */
.inv-stage{max-width:937px;margin:22px auto 0;display:grid;gap:12px;justify-items:center}
.inv-stage img{width:100%;height:auto;border-radius:10px;box-shadow:0 30px 60px -20px #000,0 0 0 2px var(--gold)}
.inv-stage img.swap{animation:invIn .35s ease-out}
@keyframes invIn{from{opacity:.35;transform:scale(.985)}to{opacity:1;transform:none}}
.inv-cap{display:flex;gap:14px;align-items:center;flex-wrap:wrap;justify-content:center}
.inv-cap b{font-family:var(--display);font-size:22px;color:var(--gold-hi)}
.invgrid{padding:46px 0 30px!important}
.invcard:hover,.invcard:focus,.invcard:focus-within{transform:rotate(0) translateY(-18px) scale(1.12)!important}
.invcard.on img{box-shadow:0 18px 30px -14px #000,0 0 0 3px var(--gold)}
.invcard figcaption{display:none!important}
.invcard{cursor:pointer}
@media (max-width:820px){.invcard{width:62vw}.invcard:hover,.invcard:focus,.invcard:focus-within{transform:none!important}}
@media (prefers-reduced-motion:reduce){.inv-stage img.swap{animation:none}}
.inv>p.muted:last-child{margin:0 auto;max-width:620px}

.inv-deck{margin-top:34px;padding-top:26px;border-top:1px solid var(--line)}
.inv-deck:first-of-type{border-top:0;padding-top:6px}
.deck-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;justify-content:center;text-align:center;margin:0 0 6px;font-size:26px}
.deck-h b{font-family:var(--display);font-size:40px;color:var(--gold-hi)}
.deck-h span{display:block;width:100%;font-family:var(--body,inherit);font-weight:400;font-size:17px;color:var(--cream-2)}

/* ===== Blind date tiers ===== */
.tier-jump{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.bd-tier{margin-top:44px;padding:clamp(20px,3vw,34px);border:1px solid var(--line-2);background:linear-gradient(170deg,rgba(201,164,92,.07),transparent 45%);scroll-margin-top:90px}
#tier-40{background:linear-gradient(170deg,rgba(122,74,160,.12),transparent 45%)}
.tier-head{display:flex;gap:20px;align-items:center;margin-bottom:18px}
.tier-price{display:grid;place-items:center;flex:none;width:96px;height:96px;border-radius:50%;font-family:var(--display);font-size:34px;color:#1a1209;background:radial-gradient(circle at 35% 30%,#fff3cf,#e6c779 45%,#b58a3a);box-shadow:0 10px 24px -8px #000}
.tier-head h2{margin:0 0 4px}.tier-head p{margin:0;color:var(--cream-2);font-size:17px}
.opt-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:6px 0 18px}
.opt-tabs button{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 12px;border:1px solid var(--line-2);background:rgba(255,255,255,.02);color:var(--cream-2);font-family:var(--ui);font-size:13px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .2s}
.opt-tabs button .on{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--gold);color:var(--gold-hi);font-size:12px}
.opt-tabs button:hover{border-color:var(--gold);color:var(--gold-hi)}
.opt-tabs button[aria-selected="true"]{background:var(--gold);border-color:var(--gold);color:#1a1209}
.opt-tabs button[aria-selected="true"] .on{background:#1a1209;color:var(--gold-hi);border-color:#1a1209}
.opt-panel>.muted{text-align:center;margin:0 auto 6px;max-width:640px}
.match-box{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:22px;border:1px dashed var(--gold)}
.match-box h3{margin:0 0 6px}.match-box p{margin:0;color:var(--cream-2)}
.roll-box{display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:clamp(20px,4vw,48px);align-items:center}
.roll-left{display:grid;justify-items:center;gap:14px;text-align:center}
.d20{position:relative;width:170px;height:170px;border:0;background:none;cursor:pointer;padding:0}
.d20 svg{width:100%;height:100%;filter:drop-shadow(0 14px 22px rgba(0,0,0,.8)) drop-shadow(0 0 18px rgba(201,164,92,.35))}
.d20-o{fill:#2a1a3d;stroke:#c9a45c;stroke-width:2.2}
.d20-f{fill:#3b2557;stroke:#c9a45c;stroke-width:2.2}
.d20-l{stroke:rgba(201,164,92,.75);stroke-width:1.6;fill:none}
.d20-n{position:absolute;left:0;right:0;top:46%;font-family:var(--display);font-weight:700;font-size:34px;color:var(--gold-hi);pointer-events:none}
.d20.rolling svg{animation:d20spin .35s linear infinite}
@keyframes d20spin{to{transform:rotate(360deg)}}
.d20:hover svg{filter:drop-shadow(0 14px 22px rgba(0,0,0,.8)) drop-shadow(0 0 26px rgba(241,217,156,.6))}
.roll-out{margin:0;color:var(--cream-2);font-size:16.5px;min-height:3em}
.roll-out b{color:var(--gold-hi)}
.roll-right h3{margin:0 0 10px}
.ranges{list-style:none;margin:0 0 16px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.ranges li{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line-2);font-family:var(--ui);font-size:13px;color:var(--cream-2);transition:all .25s}
.ranges li b{font-family:var(--display);font-size:20px;color:var(--gold-hi);min-width:58px}
.ranges li.hit{border-color:var(--gold);background:rgba(201,164,92,.16);color:var(--cream)}
.ranges li.rr{border-style:dashed;color:var(--muted)}
.ranges li.rr b{color:var(--cream-2)}
.rr-note{font-size:14px;margin:-6px 0 14px}
.roll-card{width:100%;max-width:560px;border-radius:8px;box-shadow:0 20px 40px -14px #000,0 0 0 2px var(--gold)}
.inv-tick{position:absolute;top:-10px;right:-10px;z-index:3;display:none;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--gold);color:#1a1209;font-weight:700;box-shadow:0 6px 14px -4px #000}
.invcard.in-cart .inv-tick{display:grid}
.invcard.in-cart img{box-shadow:0 18px 30px -14px #000,0 0 0 3px #3fb56b}
/* cart bar */
.bd-cart{position:fixed;left:0;right:0;bottom:0;z-index:60;background:rgba(12,10,14,.96);border-top:1px solid var(--gold);box-shadow:0 -14px 30px -10px #000;backdrop-filter:blur(6px)}
.bd-cart .wrap{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding-block:12px}
.bd-cart-l b{display:block;font-family:var(--display);color:var(--gold-hi);font-size:18px}
.bd-cart-items{font-family:var(--ui);font-size:13px;color:var(--cream-2)}
.bd-cart-r{display:flex;align-items:center;gap:10px}
.bd-cart-total{font-family:var(--ui);font-size:14px;color:var(--cream)}
body.has-bd-cart .foot{padding-bottom:90px}
@media (max-width:820px){.opt-tabs{grid-template-columns:1fr}.match-box,.roll-box{grid-template-columns:1fr}.tier-price{width:72px;height:72px;font-size:26px}}
@media (prefers-reduced-motion:reduce){.d20.rolling svg{animation:none}}

.bdcovers{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))!important}
.bdcov img{width:100%;height:auto;border-radius:6px;box-shadow:0 14px 26px -12px #000;transition:transform .3s}
.bdcov:hover img{transform:translateY(-4px)}
.bdcov .s{font-size:12px;line-height:1.35}

@media (max-width:1640px){.nav{gap:20px!important}.nav a,.nav .nav-dd-btn{font-size:12px}.nav-audio .full{display:none}.nav-audio .short{display:inline}.nav-audio .new{display:none}.brand span{font-size:13px;letter-spacing:.1em}}
@media (max-width:1240px){.brand span{display:none}}
/* header always compact now that it has 7 links */
.brand{flex:none}
.nav{gap:20px!important;flex-wrap:nowrap}
.nav a,.nav .nav-dd-btn{font-size:12px}
.nav-audio .full{display:none}.nav-audio .short{display:inline}
.brand span{font-size:13px;letter-spacing:.1em}
.mnav .nav-audio .full{display:inline}.mnav .nav-audio .short{display:none}
.ev-note{margin:6px 0 0;font-size:15.5px;color:var(--cream-2);max-width:620px}
html{overflow-x:clip}
/* wholesale */
.ws-terms{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin:6px 0 34px}
.ws-term{border:1px solid var(--line-2);padding:18px 20px;background:var(--ink-2)}
.ws-term h3{font-size:19px;margin:0 0 6px;color:var(--gold-hi)}
.ws-term p{margin:0;font-size:16px;color:var(--cream-2)}
.ws-form{max-width:none}
.ws-group{margin-top:8px;padding-block:0}
.ws-gh{font-family:var(--ui);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:14px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.ws-row{display:grid;grid-template-columns:64px 1fr 190px;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.ws-row.picked{background:linear-gradient(90deg,rgba(201,164,92,.08),transparent)}
.ws-cov img{width:64px;height:auto;display:block;box-shadow:0 6px 16px rgba(0,0,0,.45)}
.ws-info h3{font-size:19px;margin:0}
.ws-info h3 a{color:var(--cream);text-decoration:none}
.ws-fmt{font-family:var(--ui);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);border:1px solid var(--line-2);padding:2px 7px;margin-left:6px;vertical-align:middle}
.ws-meta{margin:3px 0 6px;font-family:var(--ui);font-size:12.5px;color:var(--muted)}
.ws-tiers{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.ws-tiers li{white-space:nowrap;font-family:var(--ui);font-size:12.5px;border:1px solid var(--line);padding:3px 9px;color:var(--cream-2);transition:all .2s}
.ws-tiers li b{color:var(--gold-hi);font-weight:600}
.ws-tiers li.on{border-color:var(--gold);background:rgba(201,164,92,.16);color:var(--cream)}
.card-form .ws-qty label{gap:4px}
.card-form .ws-qty input[type=number]{font-family:var(--ui);font-size:16px;color:var(--cream);background:var(--ink);border:1px solid var(--line-2);padding:9px 10px;width:100%}
.card-form .ws-qty input:focus{outline:none;border-color:var(--gold)}
.ws-line{display:block;font-family:var(--ui);font-size:12.5px;color:var(--gold-hi);margin-top:5px;min-height:1em}
.ws-line.warn{color:var(--flag)}
.ws-total{position:sticky;bottom:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;border:1px solid var(--gold);background:rgba(18,10,20,.96);backdrop-filter:blur(6px)}
.ws-total b{display:block;font-family:var(--ui);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.ws-sum-note{font-size:14px;color:var(--muted)}
.ws-sum{font-family:var(--display);font-size:32px;color:var(--gold-hi);white-space:nowrap}
.ws-err{margin:0;font-family:var(--ui);font-size:14px;color:var(--flag)}
.ws-step{margin:10px 0 0;font-size:22px}
.card-form .ws-other{flex:1 1 220px}
.card-form input[type=file]{font-family:var(--ui);font-size:14px;color:var(--cream-2);text-transform:none;letter-spacing:0}
.card-form .ws-agree{font-size:15px}
.ws-more{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px;margin-top:40px}
.ws-more h2{font-size:24px;margin:0 0 8px;scroll-margin-top:90px}
.ws-more p{font-size:17px;margin:0;color:var(--cream-2)}
@media (max-width:640px){
  .ws-row{grid-template-columns:52px 1fr;gap:10px 12px}
  .ws-cov img{width:52px}
  .ws-qty{grid-column:2}
  .ws-total{flex-direction:column;align-items:flex-start;gap:4px}
}
/* blind date cart chips + repeat-book dialog */
.bd-cart-items{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.bd-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);padding:3px 4px 3px 10px;font-family:var(--ui);font-size:13px;color:var(--cream-2)}
.bd-chip-x{background:none;border:0;color:var(--gold-hi);font-size:17px;line-height:1;cursor:pointer;padding:0 6px}
.bd-chip-x:hover,.bd-chip-x:focus-visible{color:var(--cream)}
.bd-modal{position:fixed;inset:0;z-index:200;background:rgba(5,4,7,.78);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px}
.bd-modal[hidden]{display:none}
body.bd-modal-open{overflow:hidden}
.bd-modal-box{background:var(--ink-2);border:1px solid var(--gold);max-width:760px;width:100%;max-height:calc(100vh - 32px);overflow:auto;padding:clamp(18px,3vw,30px);box-shadow:0 30px 60px -20px #000}
.bd-modal-box h2{margin:0 0 8px;font-size:clamp(22px,3vw,28px);color:var(--gold-hi)}
.bd-modal-p{margin:0 0 16px;font-size:17px;color:var(--cream-2)}
.bd-modal-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:18px}
.bd-modal-cards figure{margin:0}
.bd-modal-cards img{width:100%;height:auto;display:block;border-radius:6px;box-shadow:0 10px 22px -10px #000}
.bd-modal-cards figcaption{display:flex;justify-content:space-between;gap:8px;margin-top:6px;font-family:var(--ui);font-size:13px}
.bd-modal-cards figcaption b{color:var(--cream)}
.bd-modal-cards figcaption span{color:var(--gold)}
.bd-modal-btns{display:flex;flex-wrap:wrap;gap:10px}
/* blind date matcher */
.match-intro h3{margin:0 0 6px}
.match-intro p{margin:0 0 16px;color:var(--cream-2)}
.bd-quiz{max-width:none}
.card-form fieldset.tiers3{display:flex;flex-wrap:wrap;gap:10px 22px}
.bdq-more summary{cursor:pointer;font-family:var(--ui);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);padding:6px 0}
.bdq-more fieldset{margin-top:8px}
.card-form .sr{position:absolute;left:-9999px}
.bdq-privacy{font-family:var(--ui);font-size:12.5px;margin:0}
.bdq-results{border-top:1px solid var(--line-2);padding-top:16px;display:grid;gap:14px}
.bdq-results h3{margin:0;font-size:24px;color:var(--gold-hi)}
.bdq-pick{display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:18px;align-items:start;border:1px solid var(--line-2);padding:14px;background:var(--ink)}
.bdq-pick img{width:100%;height:auto;border-radius:6px;box-shadow:0 10px 22px -10px #000}
.bdq-tag{font-family:var(--ui);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.bdq-pick h4{margin:4px 0 8px;font-size:21px;color:var(--cream)}
.bdq-pct{font-family:var(--ui);font-size:13px;font-weight:600;color:#1a1209;background:var(--gold);padding:2px 8px;margin-left:6px;vertical-align:middle;white-space:nowrap}
.bdq-pick ul{margin:0 0 10px;padding-left:18px;font-size:16.5px;color:var(--cream-2)}
.bdq-note{font-family:var(--ui);font-size:13.5px;color:var(--flag);margin:0 0 10px}
.bdq-none{color:var(--cream-2);margin:0}
.bdq-skipped summary{cursor:pointer;font-family:var(--ui);font-size:13px;color:var(--muted)}
.bdq-skipped ul{font-family:var(--ui);font-size:13px;color:var(--muted);margin:6px 0 0}
.bdq-send{border-top:1px solid var(--line-2);padding-top:16px;display:grid;gap:12px}
.bdq-send h3{margin:0}
@media (max-width:640px){ .bdq-pick{grid-template-columns:1fr} }
.bdq-readers{display:flex;flex-wrap:wrap;align-items:center;gap:8px;border:1px solid var(--line-2);padding:10px 12px;font-family:var(--ui);font-size:13px}
.bdq-readers b{color:var(--gold);letter-spacing:.1em;text-transform:uppercase;font-size:11px;margin-right:4px}
.bdq-readers .bd-chip{padding:3px 10px}
.bdq-now{color:var(--cream);margin-left:auto}
.bdq-sent{font-family:var(--ui);font-size:13px;color:var(--gold-hi);margin:8px 0 0}
.bdq-summary summary{cursor:pointer;font-family:var(--ui);font-size:13px;color:var(--gold)}
.bdq-summary pre{white-space:pre-wrap;font-family:var(--ui);font-size:13px;color:var(--cream-2);background:var(--ink);border:1px solid var(--line);padding:10px 12px;margin:8px 0 0}
.bdq-after{display:grid;gap:8px;border-top:1px solid var(--line-2);padding-top:14px}
.bdq-after a{color:var(--gold-hi)}
/* 3D d20 */
.d3-tray{position:relative;height:330px;perspective:900px;perspective-origin:50% 35%;overflow:visible}
.d3-pos{position:absolute;left:50%;top:62%;width:0;height:0;transform-style:preserve-3d;will-change:transform}
.d3-die{position:absolute;left:0;top:0;width:0;height:0;transform-style:preserve-3d;will-change:transform}
.d3-face{position:absolute;left:0;top:0;transform-origin:0 0;clip-path:polygon(50% 0,100% 100%,0 100%);backface-visibility:hidden;
  background:
    radial-gradient(circle at 50% 66%, rgba(255,255,255,calc(var(--s,0)*.85)) 0, rgba(255,255,255,0) 55%),
    linear-gradient(160deg, hsl(274 52% calc(var(--l,.6)*40% + 4%)), hsl(268 58% calc(var(--l,.6)*26% + 3%)));
  outline:1px solid transparent}
.d3-face span{position:absolute;left:50%;top:64%;transform:translate(-50%,-50%);font-family:var(--display);font-weight:700;line-height:1;letter-spacing:-.02em;
  color:hsl(42 70% calc(var(--l,.6)*45% + 38%));text-shadow:0 1px 0 rgba(0,0,0,.55),0 0 6px rgba(0,0,0,.35)}
.d3-shadow{position:absolute;left:50%;top:calc(46% + 92px);width:150px;height:26px;margin-left:-75px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(0,0,0,.75),rgba(0,0,0,0) 70%);will-change:transform,opacity}
.d3-tray::before{content:"";position:absolute;left:50%;top:62%;width:240px;height:240px;margin:-120px 0 0 -120px;border-radius:50%;background:radial-gradient(circle,rgba(241,217,156,.45),rgba(241,217,156,0) 65%);opacity:0;pointer-events:none}
.d3-tray.landed::before{animation:d3land .7s ease-out}
@keyframes d3land{0%{opacity:0}30%{opacity:1}100%{opacity:0}}
/* blind date: start here + three ways */
.bd-start{margin-top:30px;padding:clamp(20px,3vw,32px);border:1px solid var(--gold);background:linear-gradient(170deg,rgba(201,164,92,.12),transparent 55%)}
.bd-start h2{margin:6px 0 6px}
.bd-start>p{margin:0 0 18px;max-width:720px}
.ways{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.way{display:flex;gap:14px;align-items:flex-start;padding:16px;border:1px solid var(--line-2);background:rgba(255,255,255,.02);text-decoration:none;color:var(--cream);transition:border-color .2s,background .2s}
.way:hover,.way:focus-visible{border-color:var(--gold);background:rgba(201,164,92,.08)}
.way b{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--gold);color:#1a1209;font-family:var(--display);font-size:20px}
.way strong{display:block;font-family:var(--display);font-size:20px;color:var(--gold-hi);margin-bottom:2px}
.way em{font-style:normal;font-size:16px;color:var(--cream-2)}
.bd-way{margin-top:44px;padding:clamp(20px,3vw,34px);border:1px solid var(--line-2);background:linear-gradient(170deg,rgba(201,164,92,.06),transparent 45%);scroll-margin-top:90px}
.way-head{display:flex;gap:18px;align-items:flex-start;margin-bottom:18px}
.way-n{flex:none;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:1px solid var(--gold);color:var(--gold-hi);font-family:var(--display);font-size:26px}
.way-head h2{margin:2px 0 6px}
.way-head p{margin:0;font-size:17.5px;color:var(--cream-2);max-width:820px}
.way-head p strong{color:var(--gold);font-weight:600}
.price-switch{display:inline-grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--gold);margin:0 0 18px;max-width:100%}
.price-switch button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 18px;border:0;background:transparent;color:var(--cream-2);cursor:pointer;text-align:left;font-family:var(--ui)}
.price-switch button b{font-family:var(--display);font-size:22px;color:var(--gold-hi);line-height:1.1}
.price-switch button span{font-size:12px;letter-spacing:.06em}
.price-switch button[aria-checked="true"]{background:var(--gold);color:#1a1209}
.price-switch button[aria-checked="true"] b{color:#1a1209}
.price-switch button:focus-visible{outline:2px solid var(--gold-hi);outline-offset:2px}
.deck-blurb{margin:0 0 14px;color:var(--cream-2);font-size:17px}
.deck-blurb b{color:var(--gold-hi)}
.way-start{margin:0}
.d3-host{width:100%;max-width:340px;margin:0 auto;cursor:pointer}
.roll-left{text-align:center}
.roll-box{grid-template-columns:minmax(0,360px) 1fr}
@media (max-width:820px){.ways{grid-template-columns:1fr}.way-head{gap:12px}.way-n{width:42px;height:42px;font-size:21px}}

/* ===== Site cart ===== */
.linkish{background:none;border:0;padding:0;font:inherit;color:var(--gold-hi);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.linkish:hover,.linkish:focus-visible{color:var(--cream)}
.toast .linkish{margin-left:6px}
.cart-btn{position:relative;display:inline-grid;place-items:center;width:40px;height:40px;background:none;border:1px solid var(--line-2);color:var(--gold-hi);cursor:pointer;margin-right:8px;transition:border-color .2s,color .2s}
.cart-btn:hover,.cart-btn:focus-visible{border-color:var(--gold);color:var(--cream)}
.cart-btn svg{width:19px;height:19px;fill:currentColor}
.cart-n{position:absolute;top:-7px;right:-7px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--wine);color:#fff;font-family:var(--ui);font-size:11px;line-height:19px;text-align:center}
.cart-n[hidden]{display:none}
.addgrp{display:inline-flex;align-items:stretch;gap:0;max-width:100%}
.addgrp select{background:var(--ink-2);color:var(--cream);border:1px solid var(--line-2);border-right:0;font-family:var(--ui);font-size:13.5px;padding:0 30px 0 10px;min-width:0;appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);background-position:calc(100% - 15px) 50%,calc(100% - 10px) 50%;background-size:5px 5px;background-repeat:no-repeat;cursor:pointer}
.addgrp select:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
.addgrp .btn{white-space:nowrap}
[data-add].in-cart::after{content:" ✓";color:#7fd69a}
.prod{align-content:start}
.prod h3 a{color:inherit;text-decoration:none}
.prod h3 a:hover{color:var(--gold-hi)}
.prod a.img{text-decoration:none}
.prod>.btn,.prod>.addgrp{justify-self:start;margin-top:2px}
.shelf-item{display:grid;gap:8px;align-content:start}
.shelf-item .addgrp{display:grid;grid-template-columns:1fr}
.shelf-item .addgrp select{border-right:1px solid var(--line-2);border-bottom:0;padding-block:7px;font-size:12.5px}
.shelf-item .btn{justify-content:center;width:100%}
.buy .addgrp select{font-size:14.5px}
.cart-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;background:rgba(12,10,14,.96);border-top:1px solid var(--gold);box-shadow:0 -14px 30px -10px #000;backdrop-filter:blur(6px)}
.cart-bar[hidden]{display:none}
.cart-bar .wrap{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-block:10px}
.cart-bar-l{background:none;border:0;padding:0;text-align:left;cursor:pointer;color:inherit}
.cart-bar-l b{display:block;font-family:var(--display);color:var(--gold-hi);font-size:17px}
.cart-bar-sum{font-family:var(--ui);font-size:13.5px;color:var(--cream-2)}
.cart-bar-r{display:flex;gap:8px;flex-wrap:wrap}
body.has-cart .foot{padding-bottom:84px}
body.has-cart .toast{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
.cart-panel{position:fixed;inset:0;z-index:150;background:rgba(5,4,7,.72);backdrop-filter:blur(4px);display:flex;justify-content:flex-end}
.cart-panel[hidden]{display:none}
.cart-box{background:var(--ink-2);border-left:1px solid var(--gold);width:min(460px,100%);height:100%;display:flex;flex-direction:column;box-shadow:-30px 0 60px -20px #000;animation:cartIn .35s cubic-bezier(.2,.7,.2,1)}
@keyframes cartIn{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.cart-box{animation:none}}
.cart-box header{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}
.cart-box h2{margin:0;font-size:24px;color:var(--gold-hi)}
.cart-box .x{background:none;border:1px solid var(--line-2);color:var(--cream-2);font-family:var(--ui);font-size:13px;padding:6px 12px;cursor:pointer}
.cart-box .x:hover,.cart-box .x:focus-visible{border-color:var(--gold);color:var(--cream)}
.cart-list{flex:1;overflow:auto;padding:6px 20px}
.cart-empty{color:var(--cream-2);padding:20px 0}
.cart-row{display:grid;grid-template-columns:64px 1fr auto;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);align-items:start}
.cart-img{display:block;width:64px}
.cart-img img{width:100%;height:auto;display:block;box-shadow:0 8px 16px -8px #000}
.cart-img.card img{border-radius:4px}
.cart-info{display:grid;gap:2px;font-family:var(--ui);font-size:13px;color:var(--cream-2);min-width:0}
.cart-info a{text-decoration:none;color:inherit}
.cart-info b{font-family:var(--body);font-size:17px;color:var(--cream);font-weight:600;line-height:1.25}
.cart-info .each{color:var(--gold)}
.qty{display:inline-flex;align-items:center;margin-top:8px;border:1px solid var(--line-2);width:max-content}
.qty button{background:none;border:0;color:var(--gold-hi);width:34px;height:32px;font-size:18px;cursor:pointer}
.qty button:hover,.qty button:focus-visible{background:var(--panel);color:var(--cream)}
.qty output{min-width:28px;text-align:center;font-family:var(--ui);font-size:14px;color:var(--cream)}
.cart-r{display:grid;justify-items:end;gap:8px;font-family:var(--ui);font-size:14px}
.cart-r b{color:var(--cream);font-weight:500}
.cart-r .linkish{font-size:12.5px}
.cart-foot{padding:16px 20px 20px;border-top:1px solid var(--line);display:grid;gap:12px}
.cart-foot[hidden]{display:none}
.cart-sub{display:flex;justify-content:space-between;font-family:var(--ui);font-size:15px;color:var(--cream-2)}
.cart-sub b{font-family:var(--display);font-size:22px;color:var(--gold-hi);font-weight:600}
.cart-note{margin:0;font-family:var(--ui);font-size:12.5px;color:var(--cream-2);line-height:1.5}
.cart-foot .btns{margin:0}
.cart-clear{justify-self:start;font-family:var(--ui);font-size:12.5px}
.bd-modal-cards.single{grid-template-columns:minmax(0,320px)}
.bd-modal-cards figure.is-item img{width:auto;max-width:100%;max-height:220px;border-radius:0}
.bd-modal-cards figcaption{flex-wrap:wrap}
.roll-offer{margin-top:10px;padding:12px 14px;border:1px solid var(--line-2);background:var(--panel)}
.roll-offer p{margin:0 0 8px}
.roll-offer .btns{margin:0}
@media (max-width:560px){.head-cta .btn.sm{display:none}.cart-bar-r .btn.ghost{display:none}.cart-row{grid-template-columns:52px 1fr auto;gap:10px}.cart-img{width:52px}}
.cart-foot .btns{display:flex;gap:8px;flex-wrap:nowrap}
.cart-foot .btns .btn{flex:1;justify-content:center;padding-inline:12px}
.addgrp.need select{outline:2px solid var(--wine);outline-offset:1px}
.shelf-item .addgrp select{font-size:11.5px;padding-left:7px;padding-right:22px;background-position:calc(100% - 12px) 50%,calc(100% - 7px) 50%}

/* ===== Bestseller sash on covers ===== */
.cover{container-type:inline-size}
.bs-rib{position:absolute;z-index:4;top:20%;left:80%;width:120%;transform:translate(-50%,-50%) rotate(45deg);text-align:center;font-family:var(--ui);font-weight:500;font-size:clamp(7px,5.4cqi,12.5px);letter-spacing:.12em;font-weight:600;text-transform:uppercase;line-height:1;padding:5px 0 4px;color:#1a1206;background:linear-gradient(180deg,#f3dc9b,#c9a45c 55%,#a8843f);box-shadow:0 3px 8px -2px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.5);pointer-events:none}
.bs-rib::before{content:"★ "}
.bs-rib.ser{top:23%;left:77%;font-size:clamp(6px,4.2cqi,10.5px);letter-spacing:.06em;padding:4px 0 3px}
@container (max-width:139px){.bs-rib{display:none}}
.bs-pill.ser{background:rgba(201,164,92,.06);border-color:var(--line-2)}
.pgrid>*{min-width:0}
.prod>.addgrp{display:grid;grid-template-columns:1fr;width:100%;max-width:240px}
.prod>.addgrp select{border-right:1px solid var(--line-2);border-bottom:0}
.prod>.addgrp select{padding-block:8px}
.prod .bs-pill,.shelf-item .bs-pill{margin-top:0}
.shelf-item .bs-pill{font-size:9.5px;padding:3px 7px;white-space:normal;text-align:center;justify-self:stretch}
/* where the round "Coming to audio" sticker sits top-right, the sash moves to the top-left corner */
*:has(> .ab-sticker) .num{z-index:5}
.prod .bs-pill{white-space:normal;max-width:100%}
/* six-book bundles: two fanned rows of three */
.prod .img.bundle.two{flex-direction:column;justify-content:center;gap:0;padding:6% 0}
.prod .img.bundle.two .brow{display:flex;justify-content:center;align-items:center;width:100%}
.prod .img.bundle.two .cover{width:23%;margin:0 -3%;box-shadow:0 8px 18px -8px #000;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.prod .img.bundle.two .brow+.brow{margin-top:3%}
.prod .img.bundle.two .cover:nth-child(1){transform:rotate(-6deg) translateY(4px)}
.prod .img.bundle.two .cover:nth-child(2){z-index:2;transform:translateY(-4px)}
.prod .img.bundle.two .cover:nth-child(3){transform:rotate(6deg) translateY(4px)}
.prod:hover .img.bundle.two .cover:nth-child(1){transform:rotate(-10deg) translate(-4px,4px)}
.prod:hover .img.bundle.two .cover:nth-child(3){transform:rotate(10deg) translate(4px,4px)}

/* ===== Author Services (Fated Love Publishing) ===== */
.flp-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(20px,4vw,56px);align-items:center}
.flp-logo{display:block;width:clamp(180px,22vw,300px)}
.flp-logo img{width:100%;height:auto;display:block;filter:drop-shadow(0 18px 30px rgba(0,0,0,.7)) drop-shadow(0 0 40px rgba(232,197,71,.18))}
.fs-jump{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:8px 0 0}
.fs-jump a{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line-2);text-decoration:none;background:var(--ink-2);transition:border-color .25s}
.fs-jump a:hover,.fs-jump a:focus-visible{border-color:var(--gold)}
.fs-jump b{font-family:var(--body);font-size:15.5px;color:var(--cream);font-weight:600;line-height:1.25}
.fs-jump span{font-family:var(--ui);font-size:12px;color:var(--gold)}
.flp-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}
.flp-facts>div{border-left:2px solid #e8c547;padding:4px 0 4px 16px}
.flp-facts h4{font-family:var(--ui);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-hi);margin:0 0 6px}
.flp-facts p{margin:0;font-size:16px;color:var(--cream-2)}
.fsvcs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.fsvc{border:1px solid var(--line-2);background:var(--ink-2);padding:clamp(18px,2.4vw,26px);display:grid;gap:12px;align-content:start;scroll-margin-top:90px}
.fsvc.other{border-style:dashed}
.fsvc header{display:flex;gap:14px;align-items:flex-start}
.fs-n{font-family:var(--ui);font-size:12px;letter-spacing:.1em;color:#1a1206;background:#e8c547;padding:4px 7px;line-height:1;margin-top:5px}
.fsvc h3{margin:0;font-size:24px}
.fsvc .price{display:block;font-family:var(--ui);font-size:13px;letter-spacing:.06em;color:var(--gold-hi);margin-top:3px}
.fs-pitch{margin:0;font-size:17px;color:var(--cream-2)}
.fs-prices{width:100%;border-collapse:collapse;font-family:var(--ui);font-size:13.5px}
.fs-prices caption{text-align:left;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);padding-bottom:6px}
.fs-prices th,.fs-prices td{padding:7px 0;border-top:1px solid var(--line);text-align:left;font-weight:400;color:var(--cream-2)}
.fs-prices td{text-align:right;color:var(--cream);white-space:nowrap;padding-left:12px}
.fs-more{border-top:1px solid var(--line);padding-top:4px}
.fs-more summary{cursor:pointer;font-family:var(--ui);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-hi);padding:8px 0;list-style:none}
.fs-more summary::-webkit-details-marker{display:none}
.fs-more summary::after{content:" +"}
.fs-more[open] summary::after{content:" −"}
.fs-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:4px}
.fs-cols h4{font-family:var(--ui);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 6px}
.fs-cols ul{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:15px;color:var(--cream-2);line-height:1.4}
.fs-cols li{padding-left:18px;position:relative}
.fs-cols .yes li::before{content:"✓";position:absolute;left:0;color:#7fd69a}
.fs-cols .no li::before{content:"×";position:absolute;left:1px;color:#d77a8f}
.fs-note{margin:12px 0 0;font-size:15px;color:var(--cream-2);font-style:italic}
.fsvc .btns{margin:4px 0 0}
.flp-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:st}
.flp-steps li{counter-increment:st;border:1px solid var(--line-2);padding:18px;display:grid;gap:6px;align-content:start;background:var(--ink-2)}
.flp-steps li::before{content:counter(st);font-family:var(--display);font-size:30px;color:#e8c547;line-height:1}
.flp-steps b{font-family:var(--body);font-size:18px;color:var(--cream)}
.flp-steps span{font-size:15.5px;color:var(--cream-2)}
.flp-about{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:28px;align-items:start}
.flp-about p{font-size:17.5px}
.flp-imprints{display:grid;gap:14px}
.imp{border:1px solid var(--line-2);padding:18px;background:var(--ink-2)}
.imp h3{margin:6px 0 4px;font-size:22px}
.imp p{margin:0 0 6px;font-family:var(--ui);font-size:13px;color:var(--cream-2)}
.imp a{font-family:var(--ui);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-hi);text-decoration:none}
.imp.soon{border-style:dashed;opacity:.85}
.flp-contact{margin-top:64px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(20px,4vw,48px);align-items:center;border:1px solid #e8c547;padding:clamp(20px,3vw,36px);background:radial-gradient(70% 120% at 0% 50%,rgba(232,197,71,.12),transparent 70%),var(--ink-2)}
.flp-contact img{width:clamp(130px,16vw,200px);height:auto}
.flp-contact h2{margin:6px 0 14px}
.flp-contact ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:16.5px}
.flp-contact li{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;color:var(--cream-2);overflow-wrap:anywhere}
.flp-contact li span{font-family:var(--ui);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);padding-top:4px}
.flp-contact a{color:var(--gold-hi)}
.foot .biz a.copyable{text-decoration:none}
.foot .biz a.copyable:hover{color:var(--gold-hi)}
@media (max-width:980px){.flp-steps{grid-template-columns:1fr 1fr}.fsvcs,.flp-about{grid-template-columns:1fr}}
@media (max-width:720px){.flp-hero{grid-template-columns:1fr}.flp-logo{order:-1;width:170px}.flp-facts{grid-template-columns:1fr}.fs-cols{grid-template-columns:1fr}.flp-contact{grid-template-columns:1fr;justify-items:start}.flp-contact li{grid-template-columns:1fr;gap:0}}
@media (max-width:520px){.flp-steps{grid-template-columns:1fr}}
/* header: nine tabs need the full width */
.site-head .wrap{max-width:none;padding-inline:clamp(16px,2.4vw,40px);gap:clamp(12px,1.6vw,24px)}
.nav{gap:clamp(12px,1.25vw,22px)!important}
@media (max-width:1760px){.head-cta .btn.sm{display:none}}
@media (max-width:1560px){.brand span{display:none}}
@media (max-width:1320px){.nav a,.nav .nav-dd-btn{font-size:11.5px;letter-spacing:.12em}}
@media (max-width:1180px){
  .nav,.head-cta .btn{display:none}
  .burger{display:grid}
  .mnav{display:block;position:fixed;inset:0;top:calc(env(safe-area-inset-top,0px) + 62px);background:var(--ink);z-index:45;padding:28px max(24px,env(safe-area-inset-left,0px));opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .3s,transform .3s;overflow:auto}
  .menu-open .mnav{opacity:1;transform:none;pointer-events:auto}
  .mnav a{display:block;font-family:var(--display);font-size:24px;letter-spacing:.1em;color:var(--gold-hi);text-decoration:none;padding:14px 0;border-bottom:1px solid var(--line)}
  .mnav small{display:block;margin-top:18px;font-family:var(--ui);font-size:12px;letter-spacing:.1em;color:var(--muted)}
  .mnav small a{display:inline;font:inherit;border:0;padding:0;color:var(--cream-2)}
  .brand span{display:inline}
}
.foot .biz{overflow-wrap:normal}
/* About: author photo */
.about-layout{grid-template-columns:minmax(0,340px) 1fr}
.author-photo{margin:0;position:sticky;top:100px}
.author-photo>img{width:100%;height:auto;display:block;border:1px solid var(--gold);box-shadow:0 30px 50px -24px #000,0 0 0 6px rgba(201,164,92,.08)}
.author-photo figcaption{display:flex;align-items:center;gap:10px;margin-top:12px;font-family:var(--display);font-size:18px;letter-spacing:.06em;color:var(--gold-hi)}
.author-photo figcaption img{width:34px;height:auto}
@media (max-width:980px){.about-layout{grid-template-columns:1fr}.author-photo{position:static;max-width:380px}}
.rh-deal{font-family:var(--ui);font-size:13px;letter-spacing:.02em;color:var(--cream-2);margin:6px 0 0;max-width:46ch}

/* Roll For Love party: each card opens a character sheet */
button.pc{display:block;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .35s}
button.pc:hover,button.pc:focus-visible{border-color:var(--c);box-shadow:0 18px 40px -22px var(--c),inset 0 0 30px -18px var(--c);transform:translateY(-4px)}
button.pc:focus-visible{outline:2px solid var(--c);outline-offset:3px}
.pc .pc-name{display:block;font-family:var(--display);font-weight:600;letter-spacing:.04em;margin:8px 0 6px;font-size:22px;color:var(--cream)}
.pc .pc-t{display:block;font-size:15.5px;color:var(--cream-2);line-height:1.5}
.pc .pc-open{display:inline-block;margin-top:12px;font-family:var(--ui);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--c);filter:brightness(1.35)}
dialog.pc-sheet{padding:0;border:0;background:transparent;color:var(--cream);max-width:min(640px,calc(100vw - 24px));width:100%;max-height:min(88vh,860px);overflow:visible}
dialog.pc-sheet::backdrop{background:rgba(5,4,6,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
dialog.pc-sheet[open] .ps-in{animation:psIn .45s cubic-bezier(.2,.7,.2,1)}
@keyframes psIn{from{opacity:0;transform:translateY(18px) scale(.97)}}
.ps-in{position:relative;max-height:min(88vh,860px);overflow:auto;padding:28px clamp(18px,4vw,34px) 22px;border:1px solid color-mix(in srgb,var(--c) 60%,transparent);border-radius:14px;
  background:radial-gradient(90% 60% at 0% 0%,color-mix(in srgb,var(--c) 26%,transparent),transparent 70%),linear-gradient(180deg,#151117,#0c0a0d);box-shadow:0 40px 80px -30px #000,0 0 60px -30px var(--c)}
.ps-x{position:absolute;top:10px;right:12px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line-2);background:rgba(0,0,0,.35);color:var(--cream);font-size:22px;line-height:1;cursor:pointer}
.ps-x:hover{border-color:var(--c)}
.ps-head{display:flex;gap:14px;align-items:center;margin-bottom:16px;padding-right:40px}
.ps-head .die svg{width:52px;height:52px;filter:drop-shadow(0 0 12px var(--c))}.ps-head .die svg path{fill:var(--c)}
.ps-head h3{font-size:clamp(28px,4vw,36px);margin:2px 0 4px;color:var(--cream)}
.ps-head .kicker{color:var(--c);filter:brightness(1.4)}
.ps-tag{margin:0;font-style:italic;color:var(--cream-2);font-size:17px}
.ps-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 18px}
.ps-stats>div{border:1px solid color-mix(in srgb,var(--c) 40%,transparent);border-radius:8px;padding:10px 12px;background:rgba(0,0,0,.25)}
.ps-stats dt{font-family:var(--ui);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.ps-stats dd{margin:3px 0 0;font-size:16.5px;line-height:1.35}
.pc-sheet h4{font-family:var(--ui);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--c);filter:brightness(1.4);margin:16px 0 8px;font-weight:500}
.ps-traits{margin:0;padding-left:18px;display:grid;gap:6px;font-size:17px;color:var(--cream-2)}
.ps-traits li::marker{color:var(--c)}
.ps-quotes{display:grid;gap:8px}
.ps-quotes blockquote{margin:0;padding:10px 14px;border-left:3px solid var(--c);background:rgba(255,255,255,.03);font-style:italic;font-size:18.5px;color:var(--cream)}
.ps-detail{margin:16px 0 0;padding:12px 14px;border:1px dashed color-mix(in srgb,var(--c) 50%,transparent);border-radius:8px;font-size:16.5px;color:var(--cream-2)}
.ps-detail b{color:var(--cream);font-weight:600}
.ps-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:20px;flex-wrap:wrap}
.ps-note{font-family:var(--ui);font-size:11.5px;letter-spacing:.06em;color:var(--muted)}
@media (max-width:520px){.ps-stats{grid-template-columns:1fr}.ps-note{order:3;width:100%;text-align:center}}

/* audio sticker: bestseller sash stays top-right on every cover; the sticker sits on its own */
.book .art .ab-sticker{right:auto;left:-20px}
@media (max-width:860px){.book .art .ab-sticker{right:auto;left:-10px}}
.ab-sticker.solo{position:relative;top:auto;right:auto;left:auto;margin:0}
.bk-audio{display:grid;place-items:center;align-self:center;min-height:120px}
.bk-audio .ab-sticker.solo{width:104px;height:104px}

/* Tools / Fun Things: section jump links, intros, compact cards, multi-link cards */
.pick-jump{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.pick-jump a{font-family:var(--ui);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--cream-2);text-decoration:none;border:1px solid var(--line-2);padding:7px 12px;transition:border-color .25s,color .25s}
.pick-jump a:hover{border-color:var(--gold);color:var(--gold-hi)}
.pick-sec{scroll-margin-top:90px;padding-block:0}
.pick-intro{max-width:72ch;color:var(--cream-2);font-style:italic;margin:6px 0 18px}
.picks:has(.pick.min){grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.pick.min{padding:16px 18px;gap:6px}
.pick.min h3{font-size:19px}
.pick .more.multi{display:flex;flex-wrap:wrap;gap:6px 16px}
.pick .more.multi a{color:var(--gold);text-decoration:none}
.pick .more.multi a:hover{color:var(--gold-hi);text-decoration:underline;text-underline-offset:3px}
.foot .aff{font-family:var(--ui);font-size:12.5px;color:var(--muted);margin:14px 0 0;max-width:none;text-align:left}
.fcols .biz-inq{font-family:var(--ui);font-size:13px;color:var(--muted);line-height:1.6;margin-top:10px;overflow-wrap:anywhere}
.fcols .biz-inq a{color:var(--cream-2)}

/* Home: standalones & anthologies */
.sa-home{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px)}
.sa-grp h3{font-family:var(--display);font-size:17px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:0 0 14px}
.sa-row{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,22px);align-items:start}
@media (max-width:900px){.sa-home{grid-template-columns:1fr}}
@media (max-width:520px){.sa-row{gap:10px}.sa-row .cover-link .t{font-size:13px}}

/* Mini-Wiki card on Vyrdanor book pages */
.wikihook.inbook{grid-template-columns:minmax(0,190px) minmax(0,1fr);gap:18px;margin:26px 0 8px;padding:14px}
.wikihook.inbook h3{font-family:var(--display);font-size:22px;margin:4px 0 6px;color:var(--gold-hi)}
.wikihook.inbook p{font-size:16px;margin:0 0 8px;color:var(--cream-2)}
.wikihook.inbook .more{font-family:var(--ui);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
@media (max-width:560px){.wikihook.inbook{grid-template-columns:1fr}}

/* Favorites dropdown in the top bar */
.nav-dd{position:relative;display:flex;align-items:center}
.nav-dd-btn{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--cream-2);transition:color .25s}
.nav-dd-btn svg{width:9px;height:6px;transition:transform .25s}
.nav-dd-btn:hover,.nav-dd-btn[aria-current],.nav-dd:focus-within .nav-dd-btn{color:var(--gold-hi)}
.nav-dd-btn:focus-visible{outline:1px solid var(--gold);outline-offset:4px}
.nav-dd-menu{position:absolute;top:calc(100% + 14px);left:50%;transform:translate(-50%,-6px);min-width:220px;display:grid;padding:8px;background:rgba(14,12,16,.97);border:1px solid var(--line-2);box-shadow:0 18px 40px rgba(0,0,0,.5);opacity:0;visibility:hidden;transition:opacity .2s,transform .2s,visibility .2s;z-index:60}
.nav-dd-menu::before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}
.nav-dd-menu a{padding:10px 12px;white-space:nowrap;text-decoration:none}
.nav-dd-menu a:hover,.nav-dd-menu a[aria-current]{background:rgba(201,164,92,.08);color:var(--gold-hi)}
.nav-dd:hover .nav-dd-menu,.nav-dd:focus-within .nav-dd-menu,.nav-dd.open .nav-dd-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
.nav-dd:hover .nav-dd-btn svg,.nav-dd.open .nav-dd-btn svg{transform:rotate(180deg)}
.nav-dd-menu a::after{display:none}

/* Event status flags */
.ev-flag{display:inline-block;font-family:var(--ui);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:5px 10px;margin:0 8px 8px 0}
.ev-flag.sold{background:#8f1d2c;color:#fff1f1;border:1px solid #c0394b;transform:rotate(-1.5deg)}
.ev-flag.fomo{color:#ffd7a0;border:1px solid rgba(255,190,110,.55);background:rgba(255,150,60,.10);animation:evPulse 2.4s ease-in-out infinite}
@keyframes evPulse{50%{box-shadow:0 0 0 4px rgba(255,170,90,.12)}}
@media (prefers-reduced-motion:reduce){.ev-flag.fomo{animation:none}}
.nav-dd-btn{padding-block:6px;line-height:inherit}

/* Instagram tiles once the live feed fills them */
.ig-tile.has-img{background:#111}
.ig-tile.has-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.ig-tile.has-img:hover img{transform:scale(1.04)}
.ig-type{position:absolute;top:8px;right:8px;width:20px;height:20px;border-radius:5px;background:rgba(9,8,10,.6) center/14px no-repeat}
.ig-type.reel,.ig-type.video{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f1d99c'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E")}
.ig-type.carousel{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f1d99c' stroke-width='2'%3E%3Crect x='7' y='7' width='13' height='13' rx='2'/%3E%3Cpath d='M4 16V5a1 1 0 0 1 1-1h11'/%3E%3C/svg%3E")}
.ig-tile span.ig-type{inset:auto;top:8px;right:8px;margin:0;width:22px;height:22px;aspect-ratio:auto;border:0;border-radius:5px;background-color:rgba(9,8,10,.65)}
.ig-tile span.ig-type::after{content:none}

/* visually hidden text for screen readers and search engines (e.g. which event a 'More info' link is for) */
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ===== Home: welcome (first screen) ===== */
.welcome{position:relative;overflow:hidden;padding-block:clamp(30px,4.5vw,72px) clamp(64px,7vw,104px);
  background:radial-gradient(60% 70% at 78% 40%,rgba(201,164,92,.12),transparent 70%),radial-gradient(45% 60% at 12% 20%,rgba(192,57,75,.14),transparent 70%),radial-gradient(40% 50% at 30% 95%,rgba(63,143,132,.12),transparent 70%)}
.welcome .sparks{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.welcome .wrap{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,72px);align-items:center}
.welcome .wrap>*{min-width:0}
.w-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-family:var(--ui);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.w-kicker i{font-style:normal;font-size:9px;color:var(--gold-hi);opacity:.7}
.w-h{font-size:clamp(22px,2.3vw,33px);line-height:1.04;letter-spacing:.02em;color:#f3e6c4;margin:18px 0 18px;text-wrap:balance}
.w-h em{font-style:normal;position:relative;display:inline-block}
.w-lede{font-size:clamp(20px,2.1vw,25px);line-height:1.5;color:var(--cream);max-width:36em}
.w-more{color:var(--cream-2);max-width:40em;margin-top:12px}
.welcome .btns{margin-top:26px}
.w-proof{list-style:none;padding:0;margin:30px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.w-proof li{display:flex;align-items:center;gap:8px;font-family:var(--ui);font-size:12.5px;letter-spacing:.04em;color:var(--cream-2);padding:7px 12px;border:1px solid var(--line-2);border-radius:999px;background:rgba(12,10,14,.55)}
.w-proof b{color:var(--gold-hi);font-weight:500}
.w-proof a{color:inherit;text-decoration:none}.w-proof a:hover{color:var(--gold-hi)}
.w-proof .gr{margin:0}
/* the fan of covers */
.w-fan{position:relative;aspect-ratio:1/.72;max-width:560px;margin-inline:auto;width:100%}
.nw{white-space:nowrap}
.w-bk{position:absolute;left:50%;bottom:6%;width:31%;transform-origin:50% 110%;transition:transform .5s cubic-bezier(.2,.7,.2,1),filter .5s;filter:brightness(.82) saturate(.9)}
.w-bk .cover{box-shadow:0 26px 50px -18px rgba(0,0,0,.85),0 0 0 1px rgba(201,164,92,.25)}
.w-bk.w0{transform:translateX(-50%) translateX(-112%) rotate(-16deg) translateY(8%)}
.w-bk.w1{transform:translateX(-50%) translateX(-60%) rotate(-8deg) translateY(2%)}
.w-bk.w2{transform:translateX(-50%) translateY(-6%);z-index:3;filter:none;width:36%}
.w-bk.w3{transform:translateX(-50%) translateX(60%) rotate(8deg) translateY(2%);z-index:2}
.w-bk.w4{transform:translateX(-50%) translateX(112%) rotate(16deg) translateY(8%);z-index:1}
.w-bk.w1{z-index:2}
.w-fan:hover .w-bk{filter:brightness(.7) saturate(.85)}
.w-fan .w-bk:hover,.w-fan .w-bk:focus-visible{filter:none;z-index:5}
.w-fan .w-bk.w0:hover{transform:translateX(-50%) translateX(-112%) rotate(-12deg) translateY(-2%)}
.w-fan .w-bk.w1:hover{transform:translateX(-50%) translateX(-60%) rotate(-5deg) translateY(-8%)}
.w-fan .w-bk.w2:hover{transform:translateX(-50%) translateY(-12%)}
.w-fan .w-bk.w3:hover{transform:translateX(-50%) translateX(60%) rotate(5deg) translateY(-8%)}
.w-fan .w-bk.w4:hover{transform:translateX(-50%) translateX(112%) rotate(12deg) translateY(-2%)}
.w-fan::before{content:"";position:absolute;left:8%;right:8%;bottom:0;height:18%;background:radial-gradient(closest-side,rgba(201,164,92,.28),transparent);filter:blur(6px)}
.w-down{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:2px;font-family:var(--ui);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);text-decoration:none;opacity:.85}
.w-down svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;animation:wNudge 2.4s ease-in-out infinite}
@keyframes wNudge{50%{transform:translateY(4px)}}
@media (max-width:900px){
  .welcome .wrap{grid-template-columns:1fr}
  .w-fan{order:2;max-width:min(400px,86vw)}
  .w-down{display:none}
}
@media (max-width:520px){.w-more{display:none}.w-kicker{font-size:10.5px;letter-spacing:.16em}.w-proof li{font-size:11.5px}}
/* Featured (the spotlight book, below the welcome) */
.hero.featured{border-top:1px solid var(--line);background:linear-gradient(180deg,rgba(12,10,14,.0),rgba(12,10,14,.35))}
.feat-label{display:inline-flex;align-items:center;gap:8px;font-family:var(--ui);font-size:11.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:#1a0f0a;background:linear-gradient(120deg,#f1d99c,#c9a45c);padding:6px 14px 6px 10px;border-radius:999px;box-shadow:0 0 22px rgba(201,164,92,.3)}
.feat-label svg{width:13px;height:13px;fill:currentColor}
.feat-h{font-size:clamp(22px,2.5vw,32px);line-height:1.05;color:var(--gold-hi);margin:10px 0 12px}
.nav .nav-dd-btn{display:inline-block}
.nav .nav-dd-btn svg{display:inline-block;vertical-align:middle;margin:-2px 0 0 6px}
.nav .nav-dd{display:block}
/* footer: the business column is wide enough to keep the full email address on one line */
.fcols{grid-template-columns:1.15fr .85fr 1fr minmax(min(100%,320px),1.25fr)}
.fcols .biz a.copyable{white-space:nowrap;overflow-wrap:normal;word-break:normal}
@media (max-width:980px){.fcols{grid-template-columns:1fr 1fr}.fcols>div:last-child{grid-column:1/-1}}
@media (max-width:620px){.fcols{grid-template-columns:1fr}}
@media (max-width:380px){.fcols .biz a.copyable{font-size:12.5px;letter-spacing:-.01em}}

/* --- the three words act out what they say --- */
/* bleeds: crimson ink that seeps down through the letters and drips */
.w-bleed{color:#e05a6c;background:linear-gradient(180deg,#f07a88 0%,#e05a6c 45%,#8f1d2c 100%);background-size:100% 220%;background-position:0 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 0 12px rgba(224,90,108,.35));animation:wSeep 6s ease-in-out infinite}
@keyframes wSeep{0%,100%{background-position:0 0}50%{background-position:0 100%}}
.w-bleed::before,.w-bleed::after{content:"";position:absolute;top:84%;width:.11em;height:0;border-radius:0 0 .08em .08em;background:linear-gradient(#b52a3e,#e05a6c);opacity:0;animation:wDrip 4.8s cubic-bezier(.55,0,.9,.4) infinite}
.w-bleed::before{left:22%;animation-delay:.6s}
.w-bleed::after{left:71%;animation-delay:2.9s}
@keyframes wDrip{0%{height:0;opacity:0;transform:translateY(0)}12%{opacity:1}55%{height:.38em;opacity:1;transform:translateY(0)}80%{height:.22em;opacity:.9;transform:translateY(.55em)}100%{height:.12em;opacity:0;transform:translateY(1em)}}
/* breathes: a slow inhale and exhale */
.w-breathe{color:#7fd6c6;transform-origin:50% 60%;animation:wBreathe 5.2s ease-in-out infinite}
@keyframes wBreathe{0%,100%{transform:scale(1);letter-spacing:.02em;text-shadow:0 0 10px rgba(127,214,198,.22)}45%,55%{transform:scale(1.06);letter-spacing:.07em;text-shadow:0 0 26px rgba(127,214,198,.6)}}
/* burns: flickering flame colours, a wavering glow and embers drifting up */
.w-burn{color:#ff9a3c;background:linear-gradient(0deg,#e8552b 0%,#ff9a3c 45%,#ffd27a 80%,#fff1c2 100%);background-size:100% 200%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  animation:wFlame 2.6s steps(1,end) infinite,wHeat 3.4s ease-in-out infinite}
@keyframes wFlame{0%{filter:drop-shadow(0 0 10px rgba(255,140,60,.45))}17%{filter:drop-shadow(0 0 16px rgba(255,120,40,.65))}31%{filter:drop-shadow(0 0 8px rgba(255,160,70,.4))}48%{filter:drop-shadow(0 0 18px rgba(255,110,30,.7))}66%{filter:drop-shadow(0 0 11px rgba(255,150,60,.5))}83%{filter:drop-shadow(0 0 15px rgba(255,130,50,.6))}}
@keyframes wHeat{0%,100%{background-position:0 100%}50%{background-position:0 40%}}
.w-burn::before,.w-burn::after{content:"";position:absolute;bottom:55%;width:.09em;height:.09em;border-radius:50%;background:#ffcf7a;box-shadow:0 0 6px 2px rgba(255,150,60,.8);opacity:0;animation:wEmber 3.2s ease-out infinite}
.w-burn::before{left:30%}
.w-burn::after{left:68%;animation-delay:1.6s}
@keyframes wEmber{0%{opacity:0;transform:translate(0,0) scale(1)}15%{opacity:1}100%{opacity:0;transform:translate(.25em,-1.4em) scale(.4)}}
@media (prefers-reduced-motion:reduce){.w-bleed,.w-breathe,.w-burn,.w-down svg{animation:none}.w-bleed::before,.w-bleed::after,.w-burn::before,.w-burn::after{display:none}}
.mn-still .w-bleed,.mn-still .w-breathe,.mn-still .w-burn,.mn-still .w-down svg{animation:none}.mn-still .w-bleed::before,.mn-still .w-bleed::after,.mn-still .w-burn::before,.mn-still .w-burn::after{display:none}

/* --- Featured: a gold border with light travelling around it --- */
@property --fang{syntax:"<angle>";inherits:false;initial-value:0deg}
.hero.featured>.wrap{border-radius:18px;padding:clamp(22px,3.5vw,44px)}
.hero.featured>.wrap::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;z-index:-1;
  background:conic-gradient(from var(--fang),rgba(201,164,92,.35) 0deg,#f1d99c 30deg,#fff4d0 45deg,#c9a45c 60deg,rgba(201,164,92,.35) 120deg,rgba(201,164,92,.35) 180deg,#f1d99c 210deg,#fff4d0 225deg,#c9a45c 240deg,rgba(201,164,92,.35) 300deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
  animation:fSpin 9s linear infinite}
.hero.featured>.wrap::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-2;box-shadow:0 0 40px rgba(201,164,92,.12),inset 0 0 60px rgba(201,164,92,.06);background:rgba(12,10,14,.35)}
@keyframes fSpin{to{--fang:360deg}}
@media (prefers-reduced-motion:reduce){.hero.featured>.wrap::before{animation:none}}
.mn-still .hero.featured>.wrap::before{animation:none}
/* keep the featured book stage inside its gold frame */
.hero.featured .stage.five .lead .cover{width:min(176px,18vw)}
.hero.featured .stage.five .lead.r .cover{width:min(196px,20vw)}
.hero.featured .stage.five .trail .cover:nth-child(1){width:min(100px,10vw)}
.hero.featured .stage.five .trail .cover:nth-child(2){width:min(88px,9vw)}
.hero.featured .stage.five .trail .cover:nth-child(3){width:min(76px,8vw)}
@media (max-width:900px){.hero.featured .stage.five .lead .cover{width:min(150px,32vw)}.hero.featured .stage.five .lead.r .cover{width:min(168px,36vw)}}
@media (max-width:900px){.hero.featured>.wrap{margin-inline:12px;padding:20px 16px}}

/* headline: one line across the whole welcome section, so each word plays on its own */
.welcome .wrap{grid-template-areas:"h h" "c f";grid-template-columns:1.1fr .9fr}
.welcome .w-h{grid-area:h;white-space:nowrap;margin:0 0 4px;font-size:clamp(22px,3.1vw,44px);letter-spacing:.03em}
.welcome .w-copy{grid-area:c}.welcome .w-fan{grid-area:f}
.w-defs{position:absolute;width:0;height:0;overflow:hidden}
.w-h .nw{margin-right:.08em}
@media (max-width:900px){.welcome .wrap{grid-template-areas:"h" "c" "f";grid-template-columns:1fr}.welcome .w-h{font-size:clamp(15px,4.6vw,30px);letter-spacing:.01em}}
/* burns: solid flame-coloured letters with real fire licking up off them */
.w-burn{background:none;-webkit-text-fill-color:currentColor;color:#ffe2a0;
  animation:wFire 1.6s ease-in-out infinite alternate;isolation:isolate}
@keyframes wFire{
  0%{text-shadow:0 0 4px #fff3c4,0 -2px 6px #ffd35a,0 -5px 12px #ff9a2e,0 -10px 20px #ff5a1a,0 -16px 30px rgba(200,40,10,.6)}
  25%{text-shadow:0 0 3px #fff3c4,-1px -3px 7px #ffd35a,1px -7px 14px #ff9a2e,-2px -12px 22px #ff5a1a,1px -20px 34px rgba(200,40,10,.55)}
  50%{text-shadow:0 0 5px #fff3c4,1px -2px 5px #ffd35a,-1px -6px 11px #ff9a2e,2px -9px 18px #ff5a1a,-1px -15px 28px rgba(200,40,10,.65)}
  75%{text-shadow:0 0 3px #fff3c4,0 -4px 8px #ffd35a,0 -8px 16px #ff9a2e,-1px -14px 24px #ff5a1a,2px -22px 36px rgba(200,40,10,.5)}
  100%{text-shadow:0 0 4px #fff3c4,-1px -3px 6px #ffd35a,1px -6px 13px #ff9a2e,0 -11px 21px #ff5a1a,0 -18px 32px rgba(200,40,10,.6)}}
.w-burn::before{content:attr(data-t);position:absolute;left:0;top:0;width:100%;z-index:-1;color:#ff7a1a;text-shadow:none;-webkit-text-fill-color:#ff7a1a;
  filter:url(#mnFire) blur(1.5px);opacity:.85;transform-origin:50% 100%;animation:wTongues 1.1s ease-in-out infinite alternate;pointer-events:none;
  background:none;width:auto;height:auto;border-radius:0;box-shadow:none;bottom:auto}
@keyframes wTongues{0%{transform:translateY(-6%) scaleY(1.18) skewX(-2deg);opacity:.75}50%{transform:translateY(-12%) scaleY(1.32) skewX(2deg);opacity:.95}100%{transform:translateY(-8%) scaleY(1.24) skewX(-1deg);opacity:.8}}
.w-burn::after{left:15%;bottom:60%;width:.08em;height:.08em;
  box-shadow:0 0 5px 2px rgba(255,150,60,.85),.35em .1em 0 -1px #ffcf7a,.7em -.05em 0 -1px #ffb347,1.1em .12em 0 -1px #ffd27a,1.45em 0 0 -1px #ff9a3c;
  animation:wSparks 2.2s ease-out infinite}
@keyframes wSparks{0%{opacity:0;transform:translateY(0)}20%{opacity:1}100%{opacity:0;transform:translate(.2em,-1.6em)}}
@media (prefers-reduced-motion:reduce){.w-burn{text-shadow:0 0 4px #fff3c4,0 -3px 8px #ffd35a,0 -7px 16px #ff9a2e,0 -12px 24px #ff5a1a}.w-burn::before{animation:none}}
.mn-still .w-burn::before{animation:none}
@media (max-width:600px){.welcome .w-h{white-space:normal;font-size:clamp(22px,6.6vw,30px);text-wrap:balance}}
@media (min-width:601px) and (max-width:900px){.welcome .w-h{font-size:3.85vw}}
@media (max-width:600px){.welcome .w-h{line-height:1.32}}
/* flames: smear the copy into licking tongues of fire so it never reads as a second word */
.w-burn::before{color:#ff6a10;-webkit-text-fill-color:#ff6a10;filter:url(#mnFire) blur(2.6px);opacity:.9;
  -webkit-mask-image:linear-gradient(to top,#000 25%,rgba(0,0,0,.55) 55%,transparent 92%);mask-image:linear-gradient(to top,#000 25%,rgba(0,0,0,.55) 55%,transparent 92%);
  animation:wTongues .9s ease-in-out infinite alternate}
@keyframes wTongues{0%{transform:translateY(-14%) scaleY(1.55) scaleX(.96) skewX(-3deg);opacity:.75}50%{transform:translateY(-22%) scaleY(1.85) scaleX(1.02) skewX(3deg);opacity:.95}100%{transform:translateY(-17%) scaleY(1.65) scaleX(.98) skewX(-1deg);opacity:.82}}
.welcome .wrap{row-gap:clamp(14px,2vw,26px)}
/* Featured: Goodreads ratings + Amazon bestseller badge */
.feat-proof{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;margin:4px 0 14px}
.feat-proof .gr{margin:0}
.hero.featured .bestseller.feat-bs{margin:0 0 18px;max-width:560px}

/* Narrow phones (Nov 6 live test): keep the menu button on screen */
@media (max-width:400px){
  .site-head .brand{gap:8px;min-width:0}
  .site-head .brand img{height:30px}
  .site-head .brand span{font-size:11px;letter-spacing:.08em}
  .site-head .cart-btn{margin-right:4px}
  .site-head .head-cta{gap:6px;flex:none}
}
@media (max-width:350px){ .site-head .brand span{font-size:9.5px;letter-spacing:.05em} }
@media (max-width:300px){ .site-head .brand span{display:none} }
/* Phones: format picker stacks above "Add signed copy" so the pair never spills out of the box */
@media (max-width:440px){
  .buy .addgrp,.hero .addgrp{display:grid;grid-template-columns:1fr;width:100%}
  .buy .addgrp select,.hero .addgrp select{border-right:1px solid var(--line-2);border-bottom:0;padding-block:11px}
  .buy .addgrp .btn,.hero .addgrp .btn{width:100%;justify-content:center;text-align:center}
}
.nav-dd.shut .nav-dd-menu{opacity:0;visibility:hidden;transform:translate(-50%,-6px)}
.nav-dd.shut .nav-dd-btn svg{transform:none}
/* Keyboard: skip straight past the header */
.skip-link{position:absolute;left:12px;top:-60px;z-index:1000;background:var(--gold);color:#120d08;padding:10px 16px;font-family:var(--ui);font-size:13px;letter-spacing:.08em;text-decoration:none;transition:top .15s}
.skip-link:focus{top:12px;outline:2px solid var(--gold-hi);outline-offset:2px}
/* Very narrow phones (320px class) */
@media (max-width:380px){
  .rfl-book{grid-template-columns:1fr}
  .rfl-book>:first-child{max-width:170px}
}
@media (max-width:340px){
  .wrap{padding-left:max(14px,env(safe-area-inset-left,0px));padding-right:max(14px,env(safe-area-inset-right,0px))}
  .bs-pill{white-space:normal}
  main h1{overflow-wrap:anywhere}
  main .btn{max-width:100%;white-space:normal}
  .fsvc td{white-space:normal}
}
main:focus{outline:none}
@media (max-width:340px){ .insta .sec-head{flex-wrap:wrap} .insta .sec-head>div{min-width:0} .insta .sec-head h2{overflow-wrap:anywhere;font-size:24px} }
/* Live stock: sold-out items and claimed blind dates */
[data-add].sold-out,[data-add]:disabled{opacity:.55;cursor:not-allowed}
.invcard.taken img{filter:grayscale(1) brightness(.55)}
.invcard.taken::after{content:"Claimed";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-8deg);padding:4px 10px;border:1px solid var(--gold);background:rgba(14,12,16,.85);color:var(--gold-hi);font-family:var(--ui);font-size:11px;letter-spacing:.14em;text-transform:uppercase;pointer-events:none}
.cart-row.gone{opacity:.7}.cart-row.gone .gone-note{color:var(--wine,#c0587e)}
.cart-go.disabled{opacity:.5;pointer-events:none}
/* Events: older past events tucked into a history panel */
.ev-history{margin-top:18px;border:1px solid var(--line-2);background:var(--ink-2)}
.ev-history>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 18px;font-family:var(--ui);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-hi)}
.ev-history>summary::-webkit-details-marker{display:none}
.ev-history>summary::after{content:"";width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .25s}
.ev-history[open]>summary::after{transform:rotate(-135deg) translateY(-2px)}
.ev-history>summary small{color:var(--muted);letter-spacing:.06em;text-transform:none;font-size:12px}
.ev-history>summary:hover,.ev-history>summary:focus-visible{background:rgba(201,164,92,.08)}
.ev-history .eh-close,.ev-history[open] .eh-open{display:none}.ev-history[open] .eh-close{display:inline}
.eh-body{padding:4px 18px 18px;border-top:1px solid var(--line)}
.ev-yh{font-family:var(--display);font-size:18px;color:var(--gold);margin:18px 0 8px;letter-spacing:.08em}
.eh-body .ev{padding-block:10px}.eh-body .ev h3{font-size:17px}.eh-body .ev .d b{font-size:24px}
/* Year divider on the events list: gold rule, foil-shine year, twinkling sparks */
.yr-div{display:flex;align-items:center;gap:18px;margin:34px 0 14px;padding:0 4px}
.yr-line{flex:1;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,rgba(201,164,92,.35) 30%,#f0d79c 92%,#fff6dc);box-shadow:0 0 10px rgba(240,215,156,.35)}
.yr-line.r{background:linear-gradient(270deg,transparent,rgba(201,164,92,.35) 30%,#f0d79c 92%,#fff6dc)}
.yr-badge{position:relative;display:inline-flex;align-items:center;padding:6px 20px;border:1px solid rgba(240,215,156,.55);border-radius:999px;background:radial-gradient(120% 140% at 50% 0%,rgba(240,215,156,.16),rgba(14,12,16,.92) 60%);box-shadow:0 0 0 4px rgba(14,12,16,.9),0 0 26px rgba(240,215,156,.22),inset 0 0 14px rgba(240,215,156,.12)}
.yr-num{font-family:var(--display);font-size:clamp(30px,4.4vw,44px);font-weight:700;letter-spacing:.14em;line-height:1.05;padding-left:.14em;
  background:linear-gradient(100deg,#8a6a2c 0%,#c9a45c 22%,#fff3cf 38%,#e8c97e 46%,#a8843e 60%,#f6e3ae 78%,#8a6a2c 100%);background-size:250% 100%;background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 8px rgba(240,215,156,.35))}
.yr-sp{position:absolute;width:12px;height:12px;color:#fff3cf;opacity:0;pointer-events:none}
.yr-sp svg{width:100%;height:100%;fill:currentColor;filter:drop-shadow(0 0 4px rgba(255,236,190,.9))}
.yr-sp.s1{left:-6px;top:-5px}.yr-sp.s2{right:4px;top:-7px;width:9px;height:9px}.yr-sp.s3{right:-7px;bottom:-4px;width:14px;height:14px}
@media (prefers-reduced-motion:no-preference){
  html:not(.mn-still) .yr-num{animation:yrShine 5.5s ease-in-out infinite}
  html:not(.mn-still) .yr-sp{animation:yrTwinkle 3.2s ease-in-out infinite}
  html:not(.mn-still) .yr-sp.s2{animation-delay:1.1s}html:not(.mn-still) .yr-sp.s3{animation-delay:2.1s}
}
html.mn-still .yr-sp{opacity:.7}
@media (prefers-reduced-motion:reduce){.yr-sp{opacity:.7}}
@keyframes yrShine{0%,18%{background-position:100% 0}62%,100%{background-position:0 0}}
@keyframes yrTwinkle{0%,100%{opacity:0;transform:scale(.4) rotate(0)}45%{opacity:1;transform:scale(1) rotate(45deg)}70%{opacity:.25;transform:scale(.7) rotate(70deg)}}
@media (max-width:600px){.yr-div{gap:10px;margin:26px 0 8px}.yr-badge{padding:5px 14px}}
.socials{display:grid!important;grid-template-columns:repeat(7,36px)}
