/* Glow redesign (pilot). Loaded after Base.css only on pages with <body class="glow">.
   Dark plum canvas with a slowly drifting grape and mango light, white reading surfaces on top.
   Homepage: hero + featured cards + newest list with sidebar. Articles: title band with photo,
   one wide sheet (jump bar, batch-time bars, pick cards, prose), sticky top-pick bar. */
.glow{
  --void:#0f0820;
  --plum-line:#34245a;
  --on-void:#f3eefc;
  --on-void-2:#bdb3d3;
  --ink:#15121b;
  --ink-2:#4b4559;
  --line:#e8e3f0;
  --grape-ink:#5a1fc0;
  --mango-hi:#ffc94d;
  --wide:1320px;
  background:var(--void);
  color:var(--on-void);
  overflow-x:hidden;
}
.glow ::selection{background:var(--mango);color:var(--black)}

/* ambient light: three blurred blobs drifting behind everything */
.aurora{position:fixed;inset:-20vmax;z-index:-1;pointer-events:none;overflow:hidden}
.aurora i{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55}
.aurora i:nth-child(1){width:60vmax;height:60vmax;left:5%;top:0;background:radial-gradient(circle,#6d28d9 0,transparent 65%);animation:glow-a 38s ease-in-out infinite alternate}
.aurora i:nth-child(2){width:46vmax;height:46vmax;right:0;top:10%;background:radial-gradient(circle,#ff9d00 0,transparent 62%);opacity:.32;animation:glow-b 46s ease-in-out infinite alternate}
.aurora i:nth-child(3){width:50vmax;height:50vmax;left:30%;bottom:-10%;background:radial-gradient(circle,#c026d3 0,transparent 60%);opacity:.25;animation:glow-a 52s ease-in-out infinite alternate-reverse}
@keyframes glow-a{to{transform:translate(18vmax,10vmax) scale(1.15)}}
@keyframes glow-b{to{transform:translate(-16vmax,14vmax) scale(.9)}}

/* ---------- header ---------- */
.glow .masthead{background:transparent;border-bottom:0}
.glow .masthead-inner{max-width:var(--wide);padding-block:16px 6px}
.glow .brand{display:flex;align-items:center;color:#fff;text-decoration:none;font-family:var(--display);font-weight:800;font-size:clamp(24px,1.2rem + 1vw,31px);letter-spacing:-.03em;line-height:1}
.glow .brand img{width:clamp(38px,2rem + 1vw,48px);height:auto;margin:0 -2px 0 1px;transform:translateY(1px)}
.glow .brand:hover{color:#fff}
.glow .search-btn{background:rgba(255,255,255,.1);border:0;color:#fff;min-height:44px;padding:0 18px}
.glow .search-btn:hover{background:rgba(255,255,255,.18);color:#fff}
.glow .topnav{background:transparent;border-bottom:1px solid rgba(255,255,255,.08)}
.glow .topnav ul{max-width:var(--wide);padding:4px calc(var(--gap) - 14px) 10px;gap:4px}
.glow .topnav a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:0;border-radius:999px;color:var(--on-void-2);font-weight:600}
.glow .topnav a:hover{color:#fff;background:rgba(255,255,255,.08)}
.glow .topnav a[aria-current=page]{color:#fff;box-shadow:inset 0 0 0 1.5px var(--mango)}

/* ---------- shared pieces ---------- */
.glow a.buy,.glow button.buy{display:inline-flex;align-items:center;justify-content:center;max-width:100%;min-height:52px;padding:8px 22px;line-height:1.2;text-align:center;border:0;border-radius:14px;background:var(--mango);color:#140e00;box-shadow:none;font-size:17px;white-space:nowrap;position:relative;overflow:hidden;transition:transform .15s,background .15s}
.glow a.buy:hover{background:var(--mango-hi);color:#140e00;box-shadow:none;transform:translateY(-1px)}
.glow a.buy:active{transform:translateY(1px);box-shadow:none}
.glow a.buy:after{margin-left:6px}
.glow a.buy::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);transform:translateX(-100%);pointer-events:none}
.glow a.buy:hover::before{transform:translateX(100%);transition:transform .6s}
.glow .site-footer{background:rgba(0,0,0,.35);border-top:1px solid rgba(255,255,255,.08);margin-top:0}
.glow .sidebar{gap:20px}
.glow .side-block{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:var(--on-void);border-radius:18px}
.glow .side-block h2{color:#fff}
.glow .side-block li+li{border-top-color:rgba(255,255,255,.1)}
.glow .side-block a{color:#fff;min-height:44px;display:flex;align-items:center;padding:6px 0}
.glow .side-block a:hover{color:var(--mango)}
.glow .side-picks{box-shadow:none;border:1px solid rgba(255,176,0,.45);background:rgba(255,176,0,.08)}
.glow .side-picks li+li{border-top-color:rgba(255,176,0,.2)}
.glow .side-picks a:before{color:var(--mango)}
.glow .side-cats a{justify-content:space-between}
.glow .side-cats span{color:var(--on-void-2)}
.glow .block-title{color:#fff}

/* ---------- homepage ---------- */
.glow .hero{background:transparent}
.glow .hero-inner{max-width:var(--wide);grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(24px,4vw,56px);padding-block:clamp(28px,4vw,56px) 24px}
.glow .hero h1{max-width:13ch;font-size:clamp(2.4rem,1.4rem + 3vw,4.2rem);letter-spacing:-.04em;line-height:1}
.glow .hero p{font-family:var(--text);font-size:clamp(1.05rem,1rem + .3vw,1.25rem);color:var(--on-void-2);max-width:34ch}
.glow .hero-links a{display:inline-flex;align-items:center;min-height:50px;padding:0 22px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#fff}
.glow .hero-links a:hover{background:var(--mango);border-color:var(--mango);color:#140e00}
.glow .lead-card{grid-template-columns:minmax(0,.85fr) minmax(0,1fr);border:0;box-shadow:0 30px 80px -24px rgba(109,40,217,.7);border-radius:22px}
.glow .lead-card:hover{box-shadow:0 30px 80px -18px rgba(255,157,0,.45)}
.glow .lead-img{border-right:0;padding:16px}
.glow .lead-img img{max-height:360px}
.glow .lead-body{background:#fbf9fe;padding:clamp(20px,2.4vw,30px)}
.glow .lead-title{font-size:clamp(1.4rem,1rem + 1vw,1.85rem);line-height:1.1}
.glow .lead-cta{background:#0c0a10;padding:13px 20px;border-radius:12px}

.glow .featured{max-width:var(--wide);margin:0 auto;padding:24px var(--gap) 0}
.glow .sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:0 0 18px}
.glow .sec-head .block-title{margin:0}
.glow .sec-head a{color:var(--mango);font-weight:700;text-decoration:none;padding:10px 0}
.glow .sec-head a:hover{color:var(--mango-hi);text-decoration:underline}
.glow .featured .review-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;background:none;border:0;border-radius:0}
.glow .featured .row{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;background:#fff;color:var(--ink);border-radius:18px;overflow:hidden;border:0;transition:transform .2s,box-shadow .2s}
.glow .featured .row+.row{border-top:0}
.glow .featured .row:hover{transform:translateY(-3px);box-shadow:0 20px 50px -20px rgba(123,47,242,.8)}
.glow .featured .row-img{border-radius:0;border-bottom:1.5px solid var(--line);position:relative;aspect-ratio:16/10}
.glow .featured .row-img img{position:absolute;inset:14px;width:calc(100% - 28px);height:calc(100% - 28px);aspect-ratio:auto}
.glow .featured .row-body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:6px;flex:1}
.glow .featured .row h3{font-size:1.3rem;line-height:1.18;letter-spacing:-.015em}
.glow .featured .row p{color:var(--ink-2)}
.glow .featured .row-meta{margin-top:auto;padding-top:6px}

.glow .layout{max-width:var(--wide)}
.glow.is-home .layout{padding-top:44px}
.glow .review-list{border:0;border-radius:18px;overflow:hidden}
.glow .row{color:var(--ink)}
.glow .row h3 a{color:#0c0a10}
.glow .row h3 a:hover{color:var(--grape-ink)}
.glow .row p{color:var(--ink-2)}
.glow .row .row-meta{color:var(--ink-2)}

/* ---------- article ---------- */
.glow-main{display:block;min-width:0}
.art-band{max-width:var(--wide);margin:0 auto;padding:clamp(24px,3vw,40px) 0 110px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(24px,4vw,48px);align-items:center}
.art-band .crumbs ol{color:var(--on-void-2);margin-bottom:10px}
.art-band .crumbs a{color:var(--on-void-2);display:inline-block;padding:8px 0}
.art-band .crumbs a:hover{color:#fff}
.art-band .crumbs li:not(:last-child):after{color:rgba(255,255,255,.35)}
.art-band .crumbs li[aria-current]{display:none}
.art-band .crumbs li:nth-last-child(2):after{content:none}
.art-band .crumbs a{text-decoration-color:rgba(255,255,255,.35)}
.art-band .chips{margin-bottom:14px}
.art-band .chips a{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;background:rgba(255,255,255,.1);color:#fff}
.art-band .chips a:hover{background:var(--mango);color:#140e00}
.art-band h1{color:#fff;font-size:clamp(2.1rem,1.3rem + 2.6vw,3.6rem);line-height:1.02;letter-spacing:-.035em;font-weight:800;margin:0 0 18px;text-wrap:balance}
.art-band .meta{color:var(--on-void-2);margin-bottom:10px}
.art-band .aff-note{color:var(--on-void-2);background:none;border:0;padding:0;margin:0;font-size:.9rem}
.art-band .aff-note a{color:var(--mango-hi)}
.art-band>figure{margin:0;border-radius:24px;overflow:hidden;aspect-ratio:3/2;box-shadow:0 30px 80px -20px rgba(123,47,242,.6),0 0 0 1px rgba(255,255,255,.12)}
.art-band>figure img{width:100%;height:100%;object-fit:cover}

.glow .sheet.wide{max-width:1120px;margin:-70px auto 0;padding:0 0 clamp(36px,5vw,64px);border:0;border-radius:26px;color:var(--ink);box-shadow:0 40px 120px -40px rgba(0,0,0,.8);position:relative}
.jump{position:sticky;top:0;z-index:5;display:flex;gap:8px;padding:14px clamp(16px,4vw,48px);background:rgba(255,255,255,.95);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1.5px solid var(--line);border-radius:26px 26px 0 0;overflow-x:auto;scrollbar-width:none}
.jump::-webkit-scrollbar{display:none}
.jump a{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;background:#f4f0fb;color:var(--grape-ink);font-weight:700;font-size:.95rem;text-decoration:none}
.jump a:hover{background:var(--grape-ink);color:#fff}
.jump a.on{background:var(--ink);color:#fff}
.sheet-inner{padding:36px clamp(16px,4vw,64px) 0}
.sheet-inner [id]{scroll-margin-top:90px}

.race{position:relative;overflow:hidden;border-radius:20px;background:var(--void);color:var(--on-void);padding:26px 28px 22px;margin:0 0 36px}
.race::before{content:"";position:absolute;inset:auto -10% -60% 40%;height:120%;background:radial-gradient(circle,rgba(255,176,0,.25),transparent 60%);pointer-events:none}
.race h2{margin:0 0 4px;font-size:1.5rem;letter-spacing:-.02em;color:#fff}
.race>p{margin:0 0 18px;color:var(--on-void-2);font-size:.95rem}
.lane{position:relative;display:grid;grid-template-columns:200px minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:10px 0}
.lane+.lane{border-top:1px solid var(--plum-line)}
.lane b{display:block;color:#fff;font-size:1.05rem;line-height:1.25}
.lane small{display:block;color:var(--on-void-2);font-size:.875rem}
.track{height:18px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden}
.fill{display:block;height:100%;width:var(--w);border-radius:999px;background:linear-gradient(90deg,#8b5cf6,#c084fc);transform-origin:0 50%;animation:glow-grow 1.4s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d,0s)}
.lane.win .fill{background:linear-gradient(90deg,#ffb000,#ffd166)}
@keyframes glow-grow{from{transform:scaleX(0)}}
.mins{font-variant-numeric:tabular-nums;font-weight:800;font-size:1.25rem;min-width:5.5ch;text-align:right;color:#fff;font-family:var(--display)}
.lane a.buy{min-height:44px;font-size:15px;padding:0 16px}

.pick-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:0 0 44px;padding:0;list-style:none}
.pick-card{display:flex;flex-direction:column;gap:10px;height:100%;border:1.5px solid var(--line);border-radius:18px;padding:18px;background:#fff;transition:box-shadow .2s,border-color .2s}
.pick-card:hover{border-color:#cdbcf3;box-shadow:0 14px 40px -18px rgba(123,47,242,.45)}
.pick-card.win{border-color:var(--mango);box-shadow:0 0 0 3px #fff3d1}
.pick-card img{aspect-ratio:3/2;object-fit:contain;width:100%;margin:0}
.pick-card .tag{align-self:flex-start;font-size:.875rem;font-weight:800;padding:4px 10px;border-radius:999px;background:#f4f0fb;color:var(--grape-ink)}
.pick-card.win .tag{background:var(--mango);color:#1a1200}
.pick-card h3{margin:0;font-size:1.25rem;line-height:1.2;letter-spacing:-.01em}
.pick-card h3 a{color:var(--black);text-decoration:none}
.pick-card h3 a:hover{color:var(--grape-ink);text-decoration:underline}
.pick-card p{margin:0;font-size:.95rem;color:var(--ink-2);line-height:1.45}
.pick-card a.buy{margin-top:auto}

.glow .sheet.wide .prose{max-width:680px;margin:0 auto;color:var(--ink);font-size:clamp(1.0625rem,1rem + .35vw,1.25rem);font-weight:430;line-height:1.7}
.glow .sheet.wide .prose h2{font-size:clamp(1.6rem,1.2rem + 1.2vw,2.1rem);letter-spacing:-.03em;line-height:1.1;font-weight:800}
.glow .sheet.wide .prose h2:before{display:none}
.glow .sheet.wide .prose strong{font-weight:650}
.glow .sheet.wide .prose a:not(.buy){color:var(--grape-ink)}
.glow .sheet.wide .prose figure.media img{max-height:360px;width:auto;max-width:100%}

/* sticky top-pick bar, shown by glow.js once the reader scrolls past the pick cards */
.buybar{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:15;width:min(760px,calc(100% - 24px));display:flex;align-items:center;gap:14px;padding:10px 10px 10px 12px;border-radius:20px;background:rgba(20,12,40,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--plum-line);box-shadow:0 20px 50px -10px rgba(0,0,0,.6);transform:translate(-50%,160%);visibility:hidden;transition:transform .45s cubic-bezier(.2,.8,.2,1),visibility 0s .45s}
.buybar.show{transform:translate(-50%,0);visibility:visible;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.buybar img{width:52px;height:52px;object-fit:contain;background:#fff;border-radius:12px;padding:3px;margin:0}
.buybar div{flex:1;min-width:0;line-height:1.25;font-family:var(--display)}
.buybar b{display:block;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.buybar span{font-size:.875rem;color:var(--on-void-2)}
.progress{position:fixed;top:0;left:0;height:4px;width:100%;transform-origin:0 50%;transform:scaleX(var(--p,0));background:linear-gradient(90deg,var(--mango),#ff7a00);z-index:20;pointer-events:none}

.glow .related{max-width:1120px;margin:40px auto 0;padding:0}
.glow .related h2{color:#fff}
.glow .related a{border:0;border-radius:16px}
.glow .related a:hover{box-shadow:0 14px 40px -16px rgba(255,157,0,.5)}
.glow .related-title{color:var(--black)}
.glow .more-reads{max-width:1120px;margin:0 auto;padding:36px 0 64px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.glow-article .layout{display:block;padding-top:0;padding-bottom:0}

/* ---------- site-wide article pieces ---------- */
.art-band.no-media{grid-template-columns:minmax(0,1fr);padding-bottom:100px}
.art-band.no-media h1{max-width:24ch}
.band-media{margin:0;min-width:0}
.band-media figure,.band-media .wp-block-image{margin:0}
.band-media [data-align]{float:none;max-width:100%;margin:0}
.band-media a{display:block}
.band-media img{width:100%;height:auto;aspect-ratio:3/2;object-fit:scale-down;background:#fff;border-radius:24px;margin:0;box-shadow:0 30px 80px -20px rgba(123,47,242,.6),0 0 0 1px rgba(255,255,255,.12)}
.band-media figcaption{color:var(--on-void-2);text-align:center;font-size:.9rem;margin-top:10px}
.band-media figcaption a{color:var(--mango-hi);display:inline}
.jump a{max-width:28ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;line-height:44px}
.sheet.wide:not(:has(.jump)) .sheet-inner{padding-top:clamp(28px,4vw,48px)}
.sheet-inner>.verdict{margin:0 auto 36px;max-width:860px}

/* where to buy: the article's Amazon picks, near the top */
.wtb{position:relative;overflow:hidden;max-width:860px;margin:0 auto 36px;border-radius:20px;background:var(--void);color:var(--on-void);padding:20px 24px 14px}
.wtb::before{content:"";position:absolute;inset:auto -10% -70% 45%;height:130%;background:radial-gradient(circle,rgba(255,176,0,.22),transparent 60%);pointer-events:none}
.wtb h2{position:relative;margin:0 0 6px;font-size:1.2rem;letter-spacing:-.01em;color:#fff}
.wtb ul{position:relative;list-style:none;margin:0;padding:0}
.wtb li{display:flex;align-items:center;gap:16px;padding:10px 0}
.wtb li+li{border-top:1px solid var(--plum-line)}
.wtb img{flex:none;width:56px;height:56px;object-fit:contain;background:#fff;border-radius:12px;padding:3px;margin:0}
.wtb b{flex:1;min-width:0;color:#fff;font-size:1.05rem;line-height:1.3}
.wtb a.buy{flex:none;min-height:46px;font-size:15px;padding:6px 18px}

/* other pages on the glow */
.glow .crumbs ol{color:var(--on-void-2)}
.glow .crumbs a{color:var(--on-void-2)}
.glow .crumbs a:hover{color:#fff}
.glow .crumbs li:not(:last-child):after{color:rgba(255,255,255,.35)}
.glow .page-head h1{color:#fff}
.glow .page-head p{color:var(--on-void-2)}
.glow .sheet{border:0;overflow-wrap:break-word}
.glow .sheet:not(.wide){color:var(--ink)}

@media (width<=980px){
  .art-band{grid-template-columns:1fr;padding-bottom:90px}
  .art-band>figure,.band-media{max-width:560px}
  .glow .hero-inner{grid-template-columns:1fr}
  .glow .featured .review-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pick-cards{grid-template-columns:1fr}
  .glow .more-reads{grid-template-columns:1fr}
  .lane{grid-template-columns:1fr auto}
  .lane .track{grid-column:1/-1;grid-row:2}
  .lane a.buy{grid-column:1/-1;grid-row:3;justify-self:start}
}
@media (width<=720px){
  .glow .lead-card{grid-template-columns:1fr}
  .glow .lead-img{border-bottom:1.5px solid #e8e3f0}
  .glow .lead-img img{max-height:300px}
}
@media (width<=600px){
  .glow .featured .review-list{grid-template-columns:1fr}
  .glow .sheet.wide{border-radius:18px;margin-top:-60px}
  .jump{border-radius:18px 18px 0 0;padding-inline:12px}
  .race{padding:20px 18px 16px}
  .glow a.buy{white-space:normal}
  .buybar a.buy{white-space:nowrap}
  .buybar span{display:none}
  .wtb{padding:18px 16px 10px}
  .wtb li{flex-wrap:wrap;gap:10px 14px}
  .wtb a.buy{width:100%}
  .buybar b{font-size:.9rem}
  .buybar a.buy{padding:0 14px;font-size:15px}
  .glow .featured,.glow .layout{padding-inline:12px}
}
@media (prefers-reduced-motion:reduce){
  .aurora i,.fill{animation:none!important}
  .glow a.buy::before{display:none}
  .glow *{transition:none!important}
}
