/* RestfulPicks: shared styles for every page (tokens, chrome, components). Design idea: "quiet nights" —
   a dim bedroom at night used with restraint: a midnight sky on the hero and footer, light lavender reading
   surfaces, white cards, moon-gold only for small highlights. Prefix rp-, BEM. Article components live in
   assets/article.css, index/hub/static ones in assets/listing.css, page-only styles in assets/pages/<page>.css.
   Every text pair is checked by _review/contrast.mjs (WCAG AA). */
:root{
  --ground:#f7f6fd; --lav:#ece9fb; --lav-2:#ddd8f8; --lilac:#b9b0f5; --lilac-2:#8f84e8; --surface:#fff;
  --ink:#1c1a33; --text:#3b3858; --muted:#5c5878; --line:#e6e2f6; --line-2:#d3cdf2;
  --night:#2e2a6e; --night-deep:#1b1846; --night-2:#3b3689; --night-line:#4f49a0; --night-text:#f3f1ff; --night-muted:#cdc8f4;
  --act:#4a43a8; --act-hover:#3b3592; --act-tint:#e7e5fb;
  --moon:#e8b84a; --moon-soft:#fbefc9; --moon-text:#7d5300;
  --chip-text:#3f3796; --block-tint:#e4e6f6;
  --ok:#16794a; --ok-tint:#e3f4ea; --bad:#b4233c; --bad-tint:#fde9ec; --warn-tint:#fdf3d6;
  --display:'Urbanist','Segoe UI',system-ui,sans-serif; --body:'DM Sans','Segoe UI',system-ui,sans-serif;
  --shell:75rem; --gut:clamp(1rem,.5rem + 2.2vw,2rem); --sec:clamp(3.25rem,2rem + 4vw,5.75rem);
  --r-s:12px; --r-m:18px; --r-l:26px; --r-xl:34px;
  --sh-1:0 1px 2px rgb(28 26 51/.05),0 14px 30px -18px rgb(46 42 110/.35);
  --sh-2:0 2px 8px rgb(28 26 51/.06),0 30px 60px -28px rgb(46 42 110/.5);
  --stars:radial-gradient(1.4px 1.4px at 8% 18%,#fff 60%,transparent 62%),radial-gradient(1px 1px at 22% 62%,#e7e3ff 60%,transparent 62%),radial-gradient(1.6px 1.6px at 37% 12%,#fff 60%,transparent 62%),radial-gradient(1px 1px at 48% 44%,#d9d4ff 60%,transparent 62%),radial-gradient(1.2px 1.2px at 61% 22%,#fff 60%,transparent 62%),radial-gradient(1px 1px at 72% 70%,#e7e3ff 60%,transparent 62%),radial-gradient(1.5px 1.5px at 86% 30%,#fff 60%,transparent 62%),radial-gradient(1px 1px at 94% 58%,#d9d4ff 60%,transparent 62%),radial-gradient(1.2px 1.2px at 14% 84%,#fff 60%,transparent 62%),radial-gradient(1px 1px at 55% 88%,#e7e3ff 60%,transparent 62%),radial-gradient(1.3px 1.3px at 30% 36%,#f7e3a8 60%,transparent 62%),radial-gradient(1px 1px at 80% 8%,#f7e3a8 60%,transparent 62%);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:5.5rem}
body{margin:0;background:var(--ground);color:var(--text);font:400 1rem/1.65 var(--body);overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:var(--act)}
h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
h1,h2,h3,h4{font-family:var(--display);color:var(--ink);font-weight:700;letter-spacing:-.012em;line-height:1.15;text-wrap:balance}
.rp-nowrap{white-space:nowrap}
:focus-visible{outline:3px solid var(--act);outline-offset:2px;border-radius:8px}
.rp-wrap{max-width:var(--shell);margin-inline:auto;padding-inline:var(--gut)}
.rp-vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rp-ic{width:1.25rem;height:1.25rem;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rp-ic--sm{width:1rem;height:1rem}.rp-ic--lg{width:1.6rem;height:1.6rem}
.rp-phase{width:1.5rem;height:1.5rem;flex:none}
.rp-yr{font-style:normal}

/* ---------- buttons, pills, chips, links ---------- */
.rp-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.75rem;padding:.6rem 1.2rem;border-radius:999px;border:1.5px solid transparent;font:700 .95rem/1.1 var(--body);text-decoration:none;cursor:pointer;transition:background .2s,transform .2s,box-shadow .2s,border-color .2s}
.rp-btn--act{background:var(--act);color:#fff;box-shadow:0 12px 24px -14px rgb(74 67 168/.9)}
.rp-btn--act:hover{background:var(--act-hover);transform:translateY(-1px)}
.rp-btn--line{background:#fff;border-color:var(--line-2);color:var(--ink)}
.rp-btn--line:hover{border-color:var(--act);color:var(--act)}
.rp-btn--moon{background:var(--moon);color:var(--ink);box-shadow:0 12px 26px -14px rgb(232 184 74/.9)}
.rp-btn--moon:hover{background:#f0c766;transform:translateY(-1px)}
.rp-btn--night{background:transparent;border-color:rgb(243 241 255/.45);color:var(--night-text)}
.rp-btn--night:hover{border-color:var(--night-text);background:rgb(255 255 255/.06)}
.rp-btn--sm{min-height:2.5rem;padding:.45rem 1rem;font-size:.875rem}
.rp-btn--block{width:100%}
@media (max-width:767px){.rp-btn--sm{min-height:2.75rem}}
.rp-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.32rem .8rem;border-radius:999px;background:var(--lav);color:var(--chip-text);font-size:.84rem;font-weight:700;line-height:1.3}
.rp-pill--moon{background:var(--moon-soft);color:var(--moon-text)}
.rp-pill--white{background:#fff;color:var(--chip-text);box-shadow:0 6px 16px -10px rgb(28 26 51/.45)}
.rp-pill--night{background:rgb(255 255 255/.1);color:var(--night-text);border:1px solid rgb(205 200 244/.3)}
.rp-more{display:inline-flex;align-items:center;gap:.25rem;color:var(--act);font-weight:700;font-size:.95rem;text-decoration:none;white-space:nowrap;min-height:1.75rem}
.rp-more:hover{text-decoration:underline;text-underline-offset:3px}
/* article kind label: Top list / Review / Comparison / How-to / Explainer / Gift guide */
.rp-kind{align-self:flex-start;width:max-content;max-width:100%;display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .6rem;border-radius:8px;background:var(--lav);color:var(--chip-text);font:700 .8rem/1.4 var(--body)}
.rp-kind--review{background:var(--moon-soft);color:var(--moon-text)}
.rp-kind--vs{background:var(--block-tint);color:var(--night)}
.rp-kind--how{background:var(--ok-tint);color:var(--ok)}
.rp-kind--gift{background:var(--bad-tint);color:var(--bad)}
/* feature chips on product and list cards: comfort / blocking (light) / noise */
.rp-feats{display:flex;flex-wrap:wrap;gap:.4rem}
.rp-feat{display:inline-flex;align-items:center;gap:.35rem;padding:.24rem .6rem .24rem .3rem;border-radius:999px;font:600 .8rem/1.35 var(--body);background:var(--lav);color:var(--chip-text)}
.rp-feat .rp-ic{width:1.35rem;height:1.35rem;padding:.2rem;border-radius:999px;background:#fff;stroke-width:2.2}
.rp-feat--block{background:var(--block-tint);color:var(--night)}
.rp-feat--noise{background:var(--moon-soft);color:var(--moon-text)}
.rp-feat--comfort{background:var(--lav);color:var(--chip-text)}
/* maker spec chip: always names the maker */
.rp-spec{display:inline-flex;align-items:center;gap:.3rem;font:600 .8rem/1.35 var(--body);color:var(--muted)}
.rp-spec b{color:var(--ink);font-weight:700}
/* freshness badge, removed by mockup.js once its quarter is over */
.rp-fresh{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:999px;background:var(--moon-soft);color:var(--moon-text);font:700 .8rem/1.35 var(--body);white-space:nowrap}
.rp-fresh--new{background:var(--ok-tint);color:var(--ok)}
.rp-fresh--onphoto{background:#fff;color:var(--moon-text);box-shadow:0 6px 14px -8px rgb(28 26 51/.5)}
/* read time */
.rp-rt{display:inline-flex;align-items:center;gap:.3rem;color:var(--muted);font-size:.875rem}
/* the team byline */
.rp-byline{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .8rem;color:var(--muted);font-size:.9rem}
.rp-byline__by{display:inline-flex;align-items:center;gap:.45rem}
.rp-byline__by svg{width:1.6rem;height:1.6rem;border-radius:8px;flex:none}
.rp-byline b{color:var(--ink)}
/* disclosure line: must sit before the first sponsored link of a page */
.rp-disclose{display:flex;align-items:flex-start;gap:.45rem;font-size:.875rem;color:var(--muted)}
.rp-disclose .rp-ic{margin-top:.2rem;color:var(--moon-text)}
.rp-disclose a{font-weight:700}
.rp-disclose--night{color:var(--night-muted)}
.rp-disclose--night .rp-ic{color:var(--moon)}
.rp-disclose--night a{color:#fff}

/* ---------- moon-phase rank marker ---------- */
.rp-rank{display:inline-flex;align-items:center;gap:.35rem;flex:none}
.rp-rank svg{width:2rem;height:2rem;flex:none;filter:drop-shadow(0 4px 8px rgb(46 42 110/.25))}
.rp-rank__no{font:800 1.35rem/1 var(--display);color:var(--ink);min-width:.8em}
.rp-rank--lg svg{width:2.75rem;height:2.75rem}
.rp-rank--lg .rp-rank__no{font-size:1.9rem}
.rp-rank--night .rp-rank__no{color:#fff}
/* a guide's pick count drawn as a row of moon phases */
.rp-phases{display:inline-flex;align-items:center;gap:.15rem}
.rp-phases svg{width:1rem;height:1rem}

/* ---------- verdict seals (in words: never stars or scores) ---------- */
.rp-verdict{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .8rem .35rem .4rem;border-radius:999px;font:800 .875rem/1.2 var(--display);letter-spacing:.005em;background:#fff;color:var(--ink);box-shadow:0 8px 18px -10px rgb(28 26 51/.45)}
.rp-verdict .rp-ic{width:1.5rem;height:1.5rem;padding:.25rem;border-radius:999px;color:#fff;stroke-width:2.6}
.rp-verdict--yes .rp-ic{background:var(--ok)}
.rp-verdict--catch .rp-ic{background:var(--moon-text)}
.rp-verdict--no .rp-ic{background:var(--bad)}
.rp-verdict--soon{color:var(--muted)}
.rp-verdict--soon .rp-ic{background:var(--lilac-2)}

/* ---------- section heads ---------- */
.rp-sec{padding-block:var(--sec)}
.rp-sec--tight{padding-block:calc(var(--sec) * .6)}
.rp-sec--lav{background:var(--lav)}
.rp-sec--white{background:#fff}
.rp-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem 2rem;margin-bottom:clamp(1.5rem,1rem + 1.4vw,2.25rem)}
.rp-head__main{display:flex;gap:.9rem;align-items:flex-start;max-width:52rem}
.rp-head__ico{display:grid;place-items:center;width:3rem;height:3rem;border-radius:16px;flex:none;background:#fff;color:var(--act);box-shadow:var(--sh-1)}
@media (max-width:639px){.rp-head__ico{width:2.5rem;height:2.5rem;border-radius:13px}.rp-head__ico .rp-ic--lg{width:1.3rem;height:1.3rem}}
.rp-sec--white .rp-head__ico{background:var(--lav)}
.rp-head h2{font-size:clamp(1.65rem,1.2rem + 1.6vw,2.45rem)}
.rp-head__lede{margin-top:.35rem;color:var(--muted);font-size:1.02rem}
.rp-head--center{justify-content:center;text-align:center}
.rp-head--center .rp-head__main{flex-direction:column;align-items:center}
.rp-head--night h2{color:#fff}
.rp-head--night .rp-head__lede{color:var(--night-muted)}
.rp-head--night .rp-head__ico{background:rgb(255 255 255/.08);color:var(--moon);box-shadow:none;border:1px solid rgb(205 200 244/.25)}
.rp-head--night .rp-more{color:var(--moon)}
/* soft wave / cloud dividers between bands (fill = currentColor) */
.rp-wave{display:block;width:100%;height:clamp(28px,4vw,64px);color:var(--lav)}
.rp-wave--night{color:var(--night)}
.rp-wave--white{color:#fff}
.rp-wave--ground{color:var(--ground)}
.rp-wave--flip{transform:scale(-1,-1)}
svg.rp-wave{margin-block:-1px}
.rp-band+svg.rp-wave{margin-top:-3px;position:relative}

/* ---------- mockup strip + SEO notes ---------- */
.mock{background:#fff6d4;color:#4a3800;font-size:.85rem;border-bottom:1px solid #f0dc95}
.mock .rp-wrap{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:center;justify-content:space-between;padding-block:.45rem}
.mock a{color:#4a3800}
.mock button{font:700 .8rem var(--body);border:1px solid #c9a52a;background:#fff;color:#4a3800;border-radius:999px;padding:.32rem .85rem;min-height:2rem;cursor:pointer}
[data-seo]{position:relative}
html.notes [data-seo]{outline:2px dashed #c9a52a;outline-offset:-2px}
html.notes .rp-mast[data-seo]::before{left:auto;right:.4rem}
@media (max-width:639px){html.notes .rp-topbar[data-seo]::before{display:none}}
html.notes [data-seo]::before{content:attr(data-seo);position:absolute;z-index:70;top:.4rem;left:.4rem;max-width:min(30rem,calc(100% - .8rem));padding:.45rem .65rem;border-radius:10px;background:#fff3b0;color:#3d2e00;font:600 .78rem/1.45 var(--body);letter-spacing:0;text-transform:none;text-align:left;box-shadow:0 6px 18px rgb(0 0 0/.2);pointer-events:none}
/* Mockup-only chip (e.g. "Mockup: nothing was sent"). Always with data-mock. Sample quotes carry no chip: only the hidden data-sample-quote marker. */
.sample-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.14rem .55rem;border-radius:999px;border:1px dashed #c9a52a;background:#fff6d4;color:#5c4700;font:700 .75rem/1.35 var(--body);white-space:nowrap;vertical-align:middle}
.sample-chip::before{content:"";width:.4rem;height:.4rem;border-radius:999px;background:#c9a52a}
.rp-early{position:absolute;z-index:3;top:.6rem;left:.6rem;padding:.2rem .55rem;border-radius:8px;background:#fff6d4;color:#4a3800;border:1px dashed #c9a52a;font:700 .75rem/1.35 var(--body)}

/* ---------- top bar + masthead ---------- */
.rp-topbar{background:var(--lav);color:var(--ink);font-size:.85rem;border-bottom:1px solid var(--line)}
.rp-topbar .rp-wrap{display:flex;gap:1rem;align-items:center;justify-content:space-between;min-height:2.35rem}
.rp-topbar__fresh{font-weight:600;padding-block:.35rem}
.rp-topbar__fresh .rp-ic{color:var(--moon-text);vertical-align:-.15em;margin-right:.35rem}
.rp-topbar__fresh a{color:var(--chip-text);font-weight:700;text-underline-offset:2px}
.rp-topbar__long{display:none}
.rp-topbar__side{display:none;gap:1.4rem}
.rp-topbar__side a{color:var(--chip-text);font-weight:700;text-decoration:none}
.rp-topbar__side a:hover{text-decoration:underline}
.rp-mast{position:sticky;top:0;z-index:50;background:rgb(255 255 255/.97);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);box-shadow:0 10px 30px -28px rgb(46 42 110/.6)}
.rp-mast__bar{position:relative;display:flex;align-items:center;gap:.75rem;min-height:4.25rem}
.rp-brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;flex:none;min-height:2.75rem}
.rp-brand__mark{width:2.5rem;height:2.5rem;flex:none}
.rp-brand__name{font:800 1.35rem/1 var(--display);color:var(--ink);letter-spacing:-.02em}
.rp-brand__name b{color:var(--act);font-weight:800}
.rp-brand--night .rp-brand__name{color:#fff}
.rp-brand--night .rp-brand__name b{color:var(--moon)}
.rp-nav{display:none}
.rp-nav>ul{display:flex;align-items:center;gap:.15rem}
.rp-nav__top{display:inline-flex;align-items:center;gap:.3rem;padding:.55rem .8rem;border-radius:999px;color:var(--ink);font-weight:700;font-size:.95rem;text-decoration:none;white-space:nowrap}
.rp-nav__top:hover,.rp-nav__item:focus-within>.rp-nav__top{background:var(--lav)}
.rp-nav__top[aria-current="page"]{background:var(--act-tint);color:var(--act)}
.rp-nav__top .rp-ic{transition:transform .2s}
.rp-nav__item:hover>.rp-nav__top .rp-ic{transform:rotate(180deg)}
/* mega panel: hangs from the masthead bar; the ::before bridges the gap so moving the pointer down from the
   menu item never closes it, and closing waits .25 s (visibility delay), proved with _tools/probe-hover.mjs */
.rp-mega{position:absolute;top:calc(100% - .2rem);left:50%;z-index:60;display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) 12.5rem;gap:1rem 1.25rem;width:min(62rem,calc(100% - 2 * var(--gut)));padding:1.25rem;border-radius:var(--r-l);background:#fff;box-shadow:var(--sh-2);border:1px solid var(--line);visibility:hidden;opacity:0;transform:translate(-50%,8px);transition:opacity .18s ease,transform .18s ease,visibility 0s linear .25s}
.rp-mega::before{content:"";position:absolute;left:0;right:0;top:-1.6rem;height:1.6rem}
.rp-nav__item:hover>.rp-mega,.rp-nav__item:focus-within>.rp-mega{visibility:visible;opacity:1;transform:translate(-50%,0);transition-delay:0s}
@media (prefers-reduced-motion:reduce){.rp-mega{transition:visibility 0s linear .25s}}
.rp-mega__head{display:flex;align-items:center;gap:.4rem;font:700 .85rem var(--body);color:var(--muted);margin:0 .5rem .45rem}
.rp-mega__head .rp-ic{color:var(--moon-text)}
.rp-mega li a{display:flex;align-items:center;gap:.6rem;padding:.5rem;border-radius:12px;text-decoration:none;color:var(--ink);font-weight:700;font-size:.92rem;line-height:1.25}
.rp-mega li a:hover{background:var(--ground)}
.rp-mega li small{display:block;color:var(--muted);font-weight:500;font-size:.8rem;margin-top:.1rem}
.rp-mega__ico{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:12px;background:var(--lav);color:var(--act);flex:none}
.rp-mega__promo{position:relative;border-radius:var(--r-m);overflow:hidden;background:var(--night);color:#fff;text-decoration:none;display:flex;align-items:flex-end;min-height:13rem}
.rp-mega__promo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.rp-mega__promo>span{position:relative;display:block;padding:.9rem;font:700 1.02rem/1.25 var(--display)}
.rp-mega__promo-txt .rp-ic{display:block;margin-bottom:.4rem}
.rp-mega__promo-txt b{display:block;font-weight:800}
.rp-mega__promo-txt small{display:block;margin-top:.15rem;font:500 .85rem/1.35 var(--body);color:var(--night-text)}
.rp-mega__promo .rp-ic{color:var(--moon)}
.rp-mega__foot{grid-column:1 / -1;display:flex;justify-content:flex-end;padding-top:.6rem;border-top:1px dashed var(--line-2)}
.rp-nav__item:has(.rp-mega--list){position:relative}
.rp-mega--list{display:block;width:20rem;padding:.9rem}
.rp-mega--list ul{display:grid;gap:.1rem;margin-bottom:.5rem}
.rp-mega--list li a>.rp-mega__ico{width:2rem;height:2rem;border-radius:10px}
.rp-mega--list .rp-more{margin:.2rem .5rem}
.rp-mast__actions{display:flex;align-items:center;gap:.45rem;margin-left:auto}
.rp-iconbtn{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:999px;border:1px solid var(--line-2);background:#fff;color:var(--ink);cursor:pointer;list-style:none}
.rp-iconbtn::-webkit-details-marker{display:none}
.rp-iconbtn:hover{border-color:var(--act);color:var(--act)}
details[open]>.rp-iconbtn{background:var(--lav);border-color:var(--lilac)}
.rp-mast__cta{display:none}
.rp-qsearch,.rp-burger{position:static}
.rp-qsearch:not([open])>.rp-qsearch__panel,.rp-burger:not([open])>.rp-burger__panel{display:none}
.rp-qsearch__panel,.rp-burger__panel{position:absolute;right:var(--gut);top:calc(100% + .4rem);z-index:60;border-radius:var(--r-m);background:#fff;box-shadow:var(--sh-2);border:1px solid var(--line)}
.rp-qsearch__panel{z-index:61;width:min(30rem,calc(100% - 2 * var(--gut)));padding:.6rem}
.rp-burger__panel{width:min(21rem,calc(100% - 2 * var(--gut)));max-height:calc(100vh - 13.5rem);max-height:calc(100dvh - 13.5rem);overflow:auto;overscroll-behavior:contain;padding:.6rem .7rem}
.rp-burger__panel>a{display:flex;align-items:center;gap:.6rem;min-height:2.75rem;padding:.45rem .6rem;border-radius:12px;color:var(--ink);font-weight:700;text-decoration:none}
.rp-burger__panel>a .rp-ic{color:var(--act)}
.rp-burger__panel a:hover{background:var(--ground)}
.rp-burger__head{font:700 .82rem var(--body);color:var(--muted);padding:.7rem .6rem .25rem}
.rp-burger__grid{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;padding:.2rem .1rem}
.rp-burger__grid a{display:flex;align-items:center;min-height:2.75rem;padding:.4rem .65rem;border-radius:12px;background:var(--lav);color:var(--chip-text);font-weight:700;font-size:.9rem;text-decoration:none;line-height:1.2}
/* search field (header panel, hero, search page) */
.rp-finder{display:flex;align-items:center;gap:.5rem;padding:.35rem .35rem .35rem .9rem;border-radius:999px;background:#fff;border:1.5px solid var(--line-2)}
.rp-finder:focus-within{border-color:var(--act)}
.rp-finder>.rp-ic{color:var(--muted)}
.rp-finder input{flex:1;min-width:0;min-height:2.5rem;border:0;background:transparent;font:500 1rem var(--body);color:var(--ink);outline:none}
.rp-finder input::placeholder{color:var(--muted)}
@media (min-width:640px){.rp-topbar__long{display:inline}}
@media (min-width:900px){.rp-topbar__side{display:flex}}
@media (min-width:1024px){.rp-nav{display:block;margin-left:1rem}.rp-burger{display:none}}
@media (min-width:1240px){.rp-mast__cta{display:inline-flex}}

/* ---------- footer ---------- */
.rp-foot{margin-top:0;color:var(--night-muted)}
.rp-foot__wave{display:block;width:100%;height:clamp(36px,5vw,80px)}
.rp-foot__sky{position:relative;background-color:#221f5a;padding:clamp(2rem,1.5rem + 2vw,3.25rem) 0 1.5rem;overflow:hidden}
.rp-foot__sky::before{content:"";position:absolute;inset:0;background-image:var(--stars);background-size:520px 260px;opacity:.55;pointer-events:none}
.rp-foot__top,.rp-foot__base{position:relative}
.rp-foot__top{display:grid;gap:2rem}
.rp-foot__about p{margin-top:.8rem;max-width:22rem;font-size:.95rem}
.rp-foot__own{display:flex;gap:.5rem;align-items:flex-start;padding:.7rem .85rem;border-radius:14px;background:rgb(255 255 255/.06);border:1px solid rgb(205 200 244/.2)}
.rp-foot__own .rp-ic{color:var(--moon);margin-top:.2rem}
.rp-foot__own a,.rp-foot a{color:#fff}
.rp-foot__cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.rp-foot__head{font:700 1rem var(--display);color:#fff;margin-bottom:.5rem}
.rp-foot__cols a{display:inline-flex;align-items:center;gap:.3em;min-height:2rem;color:var(--night-muted);text-decoration:none;font-size:.94rem}
.rp-foot__cols a:hover{color:#fff;text-decoration:underline}
.rp-foot__base{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:space-between;margin-top:2rem;padding-top:1.25rem;font-size:.875rem}
.rp-foot__base::before{content:"";position:absolute;top:0;left:var(--gut);right:var(--gut);border-top:1px solid rgb(205 200 244/.2)}
.rp-foot__legal{display:flex;gap:1.1rem}
.rp-foot__legal a{display:inline-flex;align-items:center;min-height:1.75rem;color:var(--night-muted)}
@media (min-width:768px){.rp-foot__cols{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1024px){.rp-foot__top{grid-template-columns:20rem 1fr;gap:3rem}}

/* ---------- cards (shared by home, index, hub, blog and search pages) ---------- */
.rp-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--sh-1);overflow:hidden;transition:transform .2s,box-shadow .2s}
.rp-card:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.rp-card__media{position:relative;overflow:hidden;background:var(--lav)}
.rp-card__media img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .5s}
.rp-card:hover .rp-card__media img{transform:scale(1.04)}
.rp-card__tags{position:absolute;left:.75rem;top:.75rem;right:.75rem;display:flex;flex-wrap:wrap;gap:.4rem;justify-content:space-between;align-items:flex-start}
.rp-card__media>.rp-fresh,.rp-cover__media>.rp-fresh{position:absolute;left:.75rem;bottom:.75rem}
.rp-card__body{display:flex;flex-direction:column;gap:.7rem;flex:1;padding:1.1rem 1.15rem 1.15rem}
.rp-card__title{font-size:1.2rem;line-height:1.25}
.rp-card__title a{color:var(--ink);text-decoration:none}
.rp-card__title a::after{content:"";position:absolute;inset:0;z-index:1}
.rp-card__title a:hover{color:var(--act)}
.rp-card__dek{color:var(--muted);font-size:.95rem}
.rp-card__foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:auto;padding-top:.8rem;border-top:1px dashed var(--line-2);font-size:.875rem;color:var(--muted)}
.rp-card__foot .rp-more,.rp-card .rp-btn{position:relative;z-index:2}
.rp-card--flat{box-shadow:none}
/* grids */
.rp-grid{display:grid;gap:clamp(1rem,.7rem + 1vw,1.5rem)}
@media (min-width:640px){.rp-grid--2,.rp-grid--3,.rp-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.rp-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.rp-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* tablets: an odd last card of a 3-up grid spans the row and lies on its side, so no card sits alone */
@media (min-width:640px) and (max-width:1023px){
  .rp-grid--3>:last-child:nth-child(odd){grid-column:1 / -1}
  .rp-grid--3>.rp-card:last-child:nth-child(odd){flex-direction:row}
  .rp-grid--3>.rp-card:last-child:nth-child(odd)>.rp-card__media{flex:0 0 46%;min-height:15rem}
  .rp-grid--3>.rp-card:last-child:nth-child(odd)>.rp-card__media img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}
  .rp-grid--3>.rp-card:last-child:nth-child(odd) .rp-duel__names{margin-top:0}
  .rp-grid--3>.rp-card:last-child:nth-child(odd)>.rp-card__body{justify-content:center}
}
/* phones: rp-grid--snap turns a row of cards into a swipe rail inside its own box */
@media (max-width:639px){
  .rp-grid--snap{grid-auto-flow:column;grid-auto-columns:82%;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--gut) * -1);padding:.2rem var(--gut) 1rem;scroll-padding-inline:var(--gut);scrollbar-width:thin}
  .rp-grid--snap>*{scroll-snap-align:start}
  .rp-grid--snap>.rp-card:hover{transform:none}
}
/* review card: verdict seal on the photo */
.rp-rv .rp-card__media img{aspect-ratio:4/3}
.rp-rv .rp-verdict{position:absolute;left:.75rem;bottom:.75rem}
/* comparison card: one photo, a moon "vs" between two names */
.rp-duel .rp-card__media img{aspect-ratio:16/9}
.rp-duel__names{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;margin-top:-2.4rem;position:relative;z-index:2}
.rp-duel__side{display:flex;align-items:center;justify-content:center;gap:.3rem;min-height:2.6rem;padding:.4rem .55rem;white-space:nowrap;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1);font:700 .9rem/1.2 var(--display);color:var(--ink);text-align:center}
.rp-duel__side .rp-ic{color:var(--act)}
@media (max-width:1199px){.rp-duel__side{font-size:.84rem}.rp-duel__side .rp-ic{display:none}}
.rp-duel__vs{display:grid;place-items:center;width:3rem;height:3rem;border-radius:999px;background:radial-gradient(circle at 35% 32%,#fff7dc,var(--moon) 62%,#d9a43a);color:var(--ink);font:800 .95rem var(--display);box-shadow:0 0 0 5px #fff,0 10px 24px -10px rgb(232 184 74/.9)}
/* post card (blog, how-to, explainer) */
.rp-post .rp-card__media img{aspect-ratio:3/2}
.rp-post--row{flex-direction:row;align-items:stretch}
.rp-post--row .rp-card__media{flex:0 0 7.5rem;min-height:7.5rem}
.rp-post--row .rp-card__media img{position:absolute;inset:0;width:100%;height:100%;min-height:0;aspect-ratio:auto}
.rp-post--row .rp-card__body{padding:.85rem 1rem;gap:.45rem}
.rp-post--row .rp-card__title{font-size:1.02rem}
/* category tile: an arched photo like a bedroom window */
.rp-cat{position:relative;display:flex;flex-direction:column;gap:.7rem;text-decoration:none;color:var(--ink)}
.rp-cat__media{position:relative;border-radius:999px 999px var(--r-m) var(--r-m);overflow:hidden;background:var(--lav);box-shadow:var(--sh-1);outline:1px solid rgb(185 176 245/.6);outline-offset:5px;transition:transform .25s}
.rp-cat__media img{width:100%;aspect-ratio:9/10;object-fit:cover}
.rp-cat:hover .rp-cat__media{transform:translateY(-4px)}
.rp-cat__need{position:absolute;left:50%;bottom:.7rem;transform:translateX(-50%);white-space:nowrap}
.rp-cat__name{display:block;font:700 1.08rem/1.25 var(--display);text-align:center}
.rp-cat__name .rp-ic{color:var(--act);transition:transform .2s;vertical-align:-.15em;margin-left:.15rem}
.rp-cat:hover .rp-cat__name .rp-ic{transform:translateX(3px)}
.rp-cat__count{margin-top:-.45rem;text-align:center;color:var(--muted);font-size:.875rem}
.rp-cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem 1rem}
.rp-cats--keeps{gap:1.25rem .8rem;padding:.2rem .2rem .3rem}
.rp-cats--keeps .rp-cat{gap:.55rem}
.rp-cats--keeps .rp-cat__media{outline-offset:4px}
.rp-cats--keeps .rp-cat__media img{aspect-ratio:9/10}
.rp-cats--keeps .rp-cat__name{font-size:1rem}
.rp-cats--keeps .rp-cat__count{margin-top:-.35rem;font-size:.84rem;line-height:1.3}
.rp-cats--keeps .rp-cat__need{bottom:.5rem;font-size:.78rem;padding:.25rem .6rem}
@media (min-width:640px){.rp-cats.rp-cats--keeps{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem 1rem}}
@media (min-width:1100px){.rp-cats.rp-cats--keeps{grid-template-columns:repeat(8,minmax(0,1fr));gap:1rem .9rem}.rp-cats--keeps .rp-cat__name{font-size:.95rem}}
@media (min-width:768px){.rp-cats{grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem 1.5rem}}
/* blog block: a lead post and a side column of rows */
.rp-blog{display:grid;gap:1.25rem}
.rp-blog__side{display:grid;gap:.9rem;align-content:start}
.rp-post--lead .rp-card__title{font-size:clamp(1.3rem,1.1rem + .8vw,1.7rem)}
@media (min-width:768px){.rp-blog{grid-template-columns:1fr 1fr;gap:1.25rem}.rp-blog>.rp-post--lead{align-self:start}}
@media (min-width:1024px){.rp-blog{grid-template-columns:1.1fr .9fr;gap:1.5rem}}
.rp-topics{display:flex;flex-wrap:wrap;gap:.45rem;padding:1rem;border-radius:var(--r-m);background:var(--lav)}
.rp-topics a{display:inline-flex;align-items:center;min-height:2.25rem;padding:.3rem .8rem;border-radius:999px;background:#fff;color:var(--chip-text);font-weight:700;font-size:.875rem;text-decoration:none;border:1px solid var(--line)}
.rp-topics a:hover{border-color:var(--act);color:var(--act)}
/* icon card */
.rp-icard{display:flex;flex-direction:column;gap:.6rem;padding:1.2rem;border-radius:var(--r-l);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1);color:var(--text);text-decoration:none}
.rp-icard__ico{display:grid;place-items:center;width:3rem;height:3rem;border-radius:16px;background:var(--lav);color:var(--act)}
.rp-icard h3{font-size:1.1rem}
a.rp-icard:hover{border-color:var(--lilac)}

/* ---------- show more (native details, no script) ---------- */
.rp-showmore{margin-top:1.25rem}
.rp-showmore>summary{list-style:none;display:flex;justify-content:center;cursor:pointer}
.rp-showmore>summary::-webkit-details-marker{display:none}
.rp-showmore>summary>span{display:inline-flex;align-items:center;gap:.45rem;min-height:2.75rem;padding:.55rem 1.3rem;border-radius:999px;border:1.5px solid var(--line-2);background:#fff;color:var(--ink);font-weight:700}
.rp-showmore>summary:hover>span{border-color:var(--act);color:var(--act)}
.rp-showmore .rp-when-open,.rp-showmore[open] .rp-when-closed{display:none}
.rp-showmore[open] .rp-when-open{display:inline}
.rp-showmore[open]>summary .rp-ic{transform:rotate(180deg)}
.rp-showmore__body{margin-top:1.25rem}
.rp-showmore[open]>summary{order:2}
.rp-showmore[open]{display:flex;flex-direction:column}
.rp-showmore[open]>.rp-showmore__body{margin:0 0 1.25rem}

/* ---------- FAQ (home, articles, hubs) ---------- */
.rp-faq{display:grid;gap:.65rem}
.rp-faq details{border-radius:var(--r-m);background:#fff;border:1px solid var(--line);box-shadow:0 8px 20px -18px rgb(46 42 110/.5)}
.rp-faq summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.25rem;padding:.85rem 1.1rem;cursor:pointer;list-style:none;font:700 1.04rem/1.35 var(--display);color:var(--ink)}
.rp-faq summary::-webkit-details-marker{display:none}
.rp-faq summary .rp-ic{flex:none;width:1.9rem;height:1.9rem;padding:.35rem;border-radius:999px;background:var(--lav);color:var(--act);transition:transform .2s}
.rp-faq details[open]{border-color:var(--lilac)}
.rp-faq details[open] summary .rp-ic{transform:rotate(45deg);background:var(--act);color:#fff}
.rp-faq__a{padding:0 1.1rem 1.05rem;color:var(--text)}
.rp-faq__a p+p{margin-top:.6rem}
.rp-faq__src{display:block;margin-top:.5rem;font-size:.85rem;color:var(--muted)}

/* ---------- quote card (owner words) ---------- */
.rp-say{position:relative;display:flex;flex-direction:column;gap:.8rem;padding:1.35rem;border-radius:var(--r-l);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1)}
.rp-say__mark{width:2rem;height:2rem;color:var(--lilac)}
.rp-say blockquote{font:600 1.08rem/1.5 var(--display);color:var(--ink)}
.rp-say__who{display:flex;align-items:center;gap:.6rem;margin-top:auto;font-size:.875rem;color:var(--muted)}
.rp-say__av{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:999px;background:var(--lav);color:var(--act);flex:none}
.rp-say__who b{display:block;color:var(--ink)}
.rp-band .rp-say{background:var(--night-2);border-color:rgb(205 200 244/.18);box-shadow:none}
.rp-band .rp-say blockquote{color:#fff}
.rp-band .rp-say__mark{color:var(--moon)}
.rp-band .rp-say__who{color:var(--night-muted)}
.rp-band .rp-say__who b{color:#fff}
.rp-band .rp-say__av{background:rgb(255 255 255/.1);color:var(--moon)}
.rp-band .rp-say a{color:#fff}

/* ---------- night band (quotes, CTA) ---------- */
.rp-band{position:relative;background-color:var(--night);color:var(--night-muted);overflow:hidden}
.rp-band::before{content:"";position:absolute;inset:0;background-image:var(--stars);background-size:560px 300px;opacity:.6;pointer-events:none}
.rp-band>*{position:relative}

/* ---------- homepage: night-sky hero ---------- */
.rp-sky{position:relative;background-color:var(--night);color:var(--night-muted);overflow:hidden;padding-top:clamp(2rem,1.2rem + 3vw,4rem)}
.rp-sky__art{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#1b1846 0%,rgb(46 42 110/0) 60%),var(--stars);background-size:auto,600px 320px}
.rp-sky__grid{position:relative;display:grid;gap:2.25rem;align-items:center;padding-bottom:clamp(2.5rem,1.5rem + 3vw,4.5rem)}
.rp-sky h1{margin-top:1rem;color:#fff;font-size:clamp(2.05rem,1.4rem + 2.4vw,3.15rem);line-height:1.1;letter-spacing:-.022em;max-width:36rem}
.rp-sky__lede{margin-top:1rem;max-width:34rem;font-size:clamp(1.02rem,.95rem + .35vw,1.2rem);color:var(--night-muted)}
.rp-sky__meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem}
.rp-sky .rp-disclose{margin-top:1.25rem}
.rp-sky__media{position:relative;justify-self:center;width:min(100%,27rem)}
.rp-arch{position:relative;border-radius:999px 999px var(--r-l) var(--r-l);overflow:hidden;outline:1px solid rgb(232 184 74/.45);outline-offset:9px;box-shadow:0 40px 80px -40px rgb(0 0 0/.6)}
.rp-arch img{width:100%;aspect-ratio:5/4;object-fit:cover}
.rp-moon{position:absolute;z-index:2;top:-1.2rem;right:-.4rem;width:clamp(4rem,3rem + 4vw,6.5rem);aspect-ratio:1;border-radius:999px;background:radial-gradient(circle at 36% 34%,#fff8de 0%,#f6dc95 34%,var(--moon) 66%,#d4a03a 100%);box-shadow:0 0 0 10px rgb(232 184 74/.08),0 0 70px 18px rgb(232 184 74/.35)}
.rp-moon::after{content:"";position:absolute;width:22%;aspect-ratio:1;left:56%;top:52%;border-radius:999px;background:rgb(212 160 58/.35)}
.rp-sky__note{position:absolute;z-index:2;left:-.25rem;bottom:1.2rem;display:flex;align-items:center;gap:.5rem;max-width:15rem;padding:.6rem .8rem;border-radius:16px;background:#fff;color:var(--ink);font:700 .875rem/1.3 var(--body);box-shadow:var(--sh-2)}
.rp-sky__note .rp-ic{color:var(--act)}
.rp-sky__star{position:absolute;color:var(--moon);width:1.1rem;height:1.1rem;fill:var(--moon);stroke:none}
.rp-sky__dot{position:absolute;z-index:1;width:.55rem;height:.55rem;border-radius:999px;background:#f7e3a8;box-shadow:0 0 0 4px rgb(232 184 74/.12),0 0 16px 4px rgb(232 184 74/.45)}
.rp-sky__dot--sm{width:.35rem;height:.35rem}
.rp-sky__base{position:relative;margin-top:clamp(2rem,1rem + 3vw,3.5rem)}
.rp-sky__wave{display:block;width:100%;height:clamp(60px,9vw,130px);color:var(--ground);margin-top:-1px;transform:translateY(2px)}
@media (min-width:640px){.rp-arch img{aspect-ratio:4/3.4}}
@media (min-width:1024px){.rp-sky__grid{grid-template-columns:1.08fr .92fr;gap:3rem}.rp-arch img{aspect-ratio:4/4.3}.rp-sky__note{left:-2rem}}

/* "What keeps you up?" selector: overlaps the hero's wave */
.rp-keeps{position:relative;z-index:3;margin-top:calc(clamp(60px,9vw,130px) * -1 - 1.5rem);padding:1.2rem;border-radius:var(--r-xl);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-2)}
.rp-keeps__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.4rem 1rem;margin:.2rem .3rem 1rem}
.rp-keeps__title{display:flex;align-items:center;gap:.6rem;font:800 clamp(1.3rem,1.1rem + .8vw,1.65rem)/1.2 var(--display);color:var(--ink)}
.rp-keeps__title .rp-ic{color:var(--moon-text)}
.rp-keeps__hint{color:var(--muted);font-size:.95rem}
.rp-keeps__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.rp-keep{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;min-height:100%;padding:.9rem;border-radius:var(--r-m);background:var(--ground);border:1px solid var(--line);color:var(--ink);text-decoration:none;transition:background .2s,transform .2s,border-color .2s}
.rp-keep:hover{background:var(--lav);border-color:var(--lilac);transform:translateY(-2px)}
.rp-keep__ico{display:grid;place-items:center;width:2.9rem;height:2.9rem;border-radius:999px;background:#fff;color:var(--act);box-shadow:0 8px 18px -12px rgb(74 67 168/.7)}
.rp-keep:nth-child(3n+2) .rp-keep__ico{color:var(--moon-text)}
.rp-keep:nth-child(3n) .rp-keep__ico{color:var(--night)}
.rp-keep__name{display:block;font:700 1.02rem/1.25 var(--display)}
.rp-keep__name .rp-ic{position:absolute;right:.85rem;top:1rem;width:1.6rem;height:1.6rem;padding:.3rem;border-radius:999px;background:#fff;color:var(--act);transition:transform .2s}
.rp-keep:hover .rp-keep__name .rp-ic{transform:translateX(2px)}
.rp-keep__to{font-size:.84rem;color:var(--muted);line-height:1.35}
@media (min-width:640px){.rp-keeps{padding:1.5rem}.rp-keeps__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1100px){.rp-keeps__grid{grid-template-columns:repeat(6,minmax(0,1fr))}}

/* counters */
.rp-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1.5rem}
.rp-stat{display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem;border-radius:var(--r-m);background:transparent}
.rp-stat__ico{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:14px;background:var(--lav);color:var(--act);flex:none}
.rp-stat:nth-child(2) .rp-stat__ico{background:var(--moon-soft);color:var(--moon-text)}
.rp-stat:nth-child(3) .rp-stat__ico{background:var(--block-tint);color:var(--night)}
.rp-stat:nth-child(4) .rp-stat__ico{background:var(--ok-tint);color:var(--ok)}
.rp-stat dd,.rp-stat__num{display:block;font:800 clamp(1.45rem,1.2rem + 1vw,1.95rem)/1 var(--display);color:var(--ink)}
.rp-stat dt,.rp-stat__label{display:block;font-size:.875rem;color:var(--muted);line-height:1.3;margin-top:.2rem}
@media (max-width:399px){.rp-stats{grid-template-columns:1fr;gap:.25rem}.rp-stat{padding:.55rem .6rem}.rp-stat>span:last-child{display:flex;align-items:baseline;gap:.5rem}.rp-stat dt,.rp-stat__label{margin-top:0}}
@media (min-width:900px){.rp-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.rp-stat+.rp-stat{border-left:1px dashed var(--line-2);border-radius:0}}

/* featured top list + fresh list */
.rp-front{display:grid;gap:1.5rem}

.rp-cover{display:grid;grid-template-rows:auto 1fr;background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-1);overflow:hidden}
.rp-cover__media{position:relative}
.rp-cover__media img{width:100%;aspect-ratio:16/9;object-fit:cover}
.rp-cover__body{display:flex;flex-direction:column;gap:.9rem;padding:clamp(1.1rem,.8rem + 1.2vw,1.75rem)}
.rp-cover h2,.rp-cover h3.rp-cover__title{font-size:clamp(1.45rem,1.15rem + 1.2vw,2.1rem);line-height:1.15}
.rp-cover__title a{color:var(--ink);text-decoration:none}
.rp-cover__title a:hover{color:var(--act)}
.rp-cover__dek{color:var(--muted)}
@media (min-width:768px) and (max-width:1023px){.rp-cover__media img{aspect-ratio:2/1}}
/* ranked rows (cover, quick picks, hub teasers) */
.rp-picks{display:grid;gap:.55rem;counter-reset:none}
.rp-pickrow{display:grid;grid-template-columns:auto 3.25rem minmax(0,1fr);align-items:center;gap:.4rem .75rem;padding:.6rem .7rem;border-radius:var(--r-m);background:var(--ground);border:1px solid var(--line)}
.rp-pickrow img{width:3.25rem;height:3.25rem;border-radius:14px;object-fit:cover}
/* drawn product-type thumbnail (when no product photo may be shown) */
.rp-thumb{display:grid;place-items:center;width:3.25rem;height:3.25rem;border-radius:14px;background:linear-gradient(145deg,#fff,var(--lav));border:1px solid var(--line-2);color:var(--act)}
.rp-thumb .rp-ic{width:1.7rem;height:1.7rem;stroke-width:1.8}
.rp-pickrow--top .rp-thumb{background:linear-gradient(145deg,#fff,var(--moon-soft));border-color:#f1dc9f;color:var(--moon-text)}
.rp-pickrow__name{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.rp-pickrow__name a{align-self:flex-start;display:inline-flex;align-items:center;min-height:1.6rem;font:700 1.02rem/1.25 var(--display);color:var(--ink);text-decoration:none}
.rp-pickrow__name a:hover{color:var(--act);text-decoration:underline}
.rp-pickrow__name small{color:var(--muted);font-size:.84rem;line-height:1.3}
.rp-pickrow .rp-btn{grid-column:1 / -1}
.rp-pickrow--top{background:linear-gradient(90deg,var(--moon-soft),#fff 70%);border-color:#f1dc9f}
@media (min-width:480px){.rp-pickrow{grid-template-columns:auto 3.25rem minmax(0,1fr) auto}.rp-pickrow .rp-btn{grid-column:auto}}
/* fresh list */
.rp-freshbox{padding:1.2rem;border-radius:var(--r-xl);background:var(--lav);border:1px solid var(--line)}
.rp-freshbox__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 .2rem .9rem}
.rp-freshbox__head h2{display:flex;align-items:center;gap:.5rem;font-size:1.4rem}
.rp-freshbox__head h2 .rp-ic{color:var(--moon-text)}
.rp-freshlist{display:grid;gap:.6rem}
.rp-fl{position:relative;display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:.8rem;align-items:center;padding:.6rem;border-radius:var(--r-m);background:#fff;border:1px solid var(--line);transition:transform .2s,border-color .2s}
.rp-fl:hover{transform:translateX(3px);border-color:var(--lilac)}
.rp-fl img{width:4.5rem;height:4.5rem;border-radius:14px;object-fit:cover}
.rp-fl__meta{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.3rem}
.rp-fl h3{font-size:1rem;line-height:1.3}
.rp-fl h3 a{color:var(--ink);text-decoration:none}
.rp-fl h3 a::after{content:"";position:absolute;inset:0}
.rp-fl h3 a:hover{color:var(--act)}
.rp-freshbox .rp-showall{display:flex;justify-content:center;margin-top:.9rem}
@media (min-width:1024px){.rp-front{grid-template-columns:1.25fr .75fr;align-items:stretch}.rp-cover__media img{aspect-ratio:2/1}.rp-front>.rp-freshbox{display:flex;flex-direction:column}.rp-front .rp-freshlist{flex:1;grid-auto-rows:1fr}}
/* bedside note: one attributed fact under the fresh list */
.rp-tipcard{position:relative;display:flex;gap:.8rem;align-items:flex-start;margin-top:auto;padding:1rem 1.1rem;border-radius:var(--r-m);background-color:var(--night);color:var(--night-muted);overflow:hidden}
.rp-freshbox .rp-tipcard{margin-top:1rem}

.rp-tipcard::before{content:"";position:absolute;inset:0;background-image:var(--stars);background-size:300px 160px;opacity:.6}
.rp-tipcard>*{position:relative}
.rp-tipcard__ico{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:999px;background:rgb(232 184 74/.16);color:var(--moon);flex:none}
.rp-tipcard b{display:block;color:#fff;font:700 1rem/1.3 var(--display);margin-bottom:.2rem}
.rp-tipcard p{font-size:.92rem}
.rp-tipcard a{color:#fff;font-weight:700}

/* homepage front block: tonight's featured list as an arch split, then a rail of small night cards */
.rp-tonight{display:grid;gap:1.75rem;align-items:center;padding:clamp(1.1rem,.8rem + 1.4vw,2rem);border-radius:var(--r-xl);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1)}
.rp-tonight__media{position:relative;justify-self:center;align-self:start;width:min(100%,28rem);padding-bottom:1rem}
.rp-tonight__media img{width:100%;aspect-ratio:5/4.4;object-fit:cover;object-position:58% 70%;border-radius:999px 999px var(--r-l) var(--r-l);outline:1px solid rgb(185 176 245/.7);outline-offset:7px;background:var(--night)}
.rp-tonight__badge{position:absolute;left:50%;bottom:0;transform:translateX(-50%);display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .9rem .45rem .5rem;border-radius:999px;background:#fff;box-shadow:var(--sh-2);font:700 .9rem/1.2 var(--body);color:var(--ink);white-space:nowrap}
.rp-tonight__badge svg{width:1.8rem;height:1.8rem}
.rp-tonight__body{display:flex;flex-direction:column;gap:.9rem;min-width:0}
.rp-tonight__tags{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}
.rp-tonight h2,.rp-tonight__title{font-size:clamp(1.45rem,1.15rem + 1.2vw,2.15rem);line-height:1.15}
.rp-tonight h2 a,.rp-tonight__title a{color:var(--ink);text-decoration:none}
.rp-tonight h2 a:hover,.rp-tonight__title a:hover{color:var(--act)}
.rp-tonight__dek{color:var(--muted)}
.rp-tonight .rp-card__foot{margin-top:.2rem}
@media (min-width:900px){.rp-tonight{grid-template-columns:.78fr 1.22fr;gap:2.75rem}}
.rp-rail{margin-top:clamp(1.75rem,1.2rem + 2vw,2.75rem)}
.rp-rail__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;margin-bottom:.9rem}
.rp-rail__head h2{display:flex;align-items:center;gap:.55rem;font-size:clamp(1.3rem,1.1rem + .8vw,1.7rem)}
.rp-rail__head h2 .rp-ic{color:var(--moon-text)}
.rp-rail__track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(13.5rem,76%);gap:.9rem;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--gut) * -1);padding:.2rem var(--gut) 1rem;scroll-padding-inline:var(--gut);scrollbar-width:thin}
.rp-rail__track>*{scroll-snap-align:start}
@media (min-width:640px){.rp-rail__track{grid-auto-columns:minmax(13.5rem,42%)}}
@media (min-width:1024px){.rp-rail__track{grid-auto-flow:row;grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible;margin-inline:0;padding:0}}
/* night card: a small dark card for fresh or featured reads */
.rp-nc{position:relative;display:flex;flex-direction:column;border-radius:var(--r-l);background-color:var(--night);color:var(--night-muted);overflow:hidden;box-shadow:var(--sh-1);transition:transform .2s,box-shadow .2s}
.rp-nc:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.rp-nc__media{position:relative;background:var(--night-2)}
.rp-nc__media img{width:100%;aspect-ratio:16/10;object-fit:cover;opacity:.92}
.rp-nc__media .rp-fresh{position:absolute;left:.6rem;bottom:.6rem}
.rp-nc__body{display:flex;flex-direction:column;gap:.5rem;flex:1;padding:.85rem .95rem 1rem}
.rp-nc h3{font-size:1rem;line-height:1.3;color:#fff}
.rp-nc h3 a{color:#fff;text-decoration:none}
.rp-nc h3 a::after{content:"";position:absolute;inset:0}
.rp-nc h3 a:hover{text-decoration:underline;text-underline-offset:3px}
.rp-nc__more{display:inline-flex;align-items:center;gap:.25rem;margin-top:auto;color:var(--moon);font-weight:700;font-size:.875rem}

/* tonight's top list as a moon-phase strip (night band): #1 full moon down to #6 */
.rp-band .rp-byline{color:var(--night-muted)}
.rp-band .rp-byline b{color:#fff}
.rp-band .rp-rt{color:var(--night-muted)}
.rp-strip__pick .rp-spec{justify-content:center;flex-wrap:wrap;text-align:center;line-height:1.35}
.rp-strip__pick .rp-spec .rp-ic{display:none}
.rp-band .rp-spec{color:var(--night-muted)}
.rp-band .rp-spec b{color:#fff}
.rp-strip__head{display:grid;gap:1.5rem;align-items:center;margin-bottom:clamp(1.5rem,1rem + 1.5vw,2.25rem)}
.rp-strip__intro{display:flex;flex-direction:column;gap:.8rem;max-width:44rem}
.rp-strip__tags{display:flex;flex-wrap:wrap;gap:.45rem}
.rp-strip__intro h2{font-size:clamp(1.5rem,1.15rem + 1.4vw,2.3rem);line-height:1.15}
.rp-strip__intro h2 a{color:#fff;text-decoration:none}
.rp-strip__intro h2 a:hover{text-decoration:underline;text-underline-offset:4px}
.rp-strip__dek{font-size:1.02rem}
.rp-strip__art{display:none}
.rp-strip__art img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:999px 999px var(--r-l) var(--r-l);outline:1px solid rgb(232 184 74/.4);outline-offset:7px}
@media (min-width:1024px){.rp-strip__head{grid-template-columns:1.3fr .7fr;gap:3rem}.rp-strip__art{display:block}}
/* below 1024 px the band's night drawing shows as a short crop under the intro, not hidden */
@media (max-width:1023px){.rp-strip__art{display:block}.rp-strip__art img{height:clamp(8.5rem,6rem + 10vw,11rem);aspect-ratio:auto;object-position:50% 82%}}
.rp-strip__picks{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(12.5rem,70%);gap:.9rem;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--gut) * -1);padding:.4rem var(--gut) 1rem;scroll-padding-inline:var(--gut);scrollbar-width:thin}
.rp-strip__pick{position:relative;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:.45rem;padding:1.1rem .9rem 1rem;border-radius:var(--r-l);background:var(--night-2);border:1px solid rgb(205 200 244/.2);text-align:center}
.rp-strip__pick--top{background:#443e97;border-color:rgb(232 184 74/.55);box-shadow:0 0 0 4px rgb(232 184 74/.12)}
.rp-strip__moon{position:relative;display:grid;place-items:center;width:4.25rem;height:4.25rem}
.rp-strip__moon svg{width:100%;height:100%;filter:drop-shadow(0 0 14px rgb(232 184 74/.35))}
.rp-strip__no{position:absolute;right:-.55rem;bottom:-.2rem;display:grid;place-items:center;min-width:1.7rem;height:1.7rem;padding:0 .35rem;border-radius:999px;background:#fff;color:var(--ink);font:800 .95rem/1 var(--display);box-shadow:0 4px 10px -4px rgb(0 0 0/.5)}
.rp-strip__type{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .55rem;border-radius:999px;background:rgb(255 255 255/.08);color:var(--night-muted);font:600 .8rem/1.4 var(--body)}
.rp-strip__type .rp-ic{color:var(--moon)}
.rp-strip__name{font-size:1.08rem;line-height:1.25}
.rp-strip__name a{color:#fff;text-decoration:none}
.rp-strip__name a:hover{text-decoration:underline;text-underline-offset:3px}
.rp-strip__for{font-size:.88rem;color:var(--night-muted);line-height:1.35}
.rp-strip__pick .rp-btn{margin-top:auto;width:100%}
.rp-strip__foot{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;margin-top:1.25rem}
.rp-strip__foot p{font-size:.9rem}
/* tablets and small laptops: a 3 x 2 grid, so no card is cut at the edge of a rail with no scroll cue */
@media (min-width:640px) and (max-width:1099px){.rp-strip__picks{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;margin-inline:0;padding:.4rem 0 0}}
@media (min-width:1100px){
  .rp-strip__picks{grid-auto-flow:row;grid-template-columns:repeat(6,minmax(0,1fr));overflow:visible;margin-inline:0;padding:.4rem 0 0}
  .rp-strip__picks::before{content:"";position:absolute;left:8%;right:8%;top:calc(.4rem + 3.2rem);border-top:2px dotted rgb(185 176 245/.45)}
}
/* reviews and comparisons share one band: review cards left, comparison rows right */
.rp-pair{display:grid;gap:2.25rem}
.rp-pair .rp-head{margin-bottom:1.25rem}
.rp-pair .rp-head h2{font-size:clamp(1.45rem,1.15rem + 1vw,1.95rem)}
@media (min-width:1100px){.rp-pair{grid-template-columns:1.45fr 1fr;gap:2.5rem;align-items:start}.rp-pair__side{position:sticky;top:6rem}}
.rp-duelrows{display:grid;gap:.75rem;margin-bottom:1rem}
.rp-duelrow{position:relative;display:grid;grid-template-columns:6rem minmax(0,1fr);gap:.9rem;align-items:center;padding:.65rem;border-radius:var(--r-l);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1);transition:transform .2s,border-color .2s}
.rp-duelrow:hover{transform:translateX(3px);border-color:var(--lilac)}
.rp-duelrow img{width:6rem;height:6rem;border-radius:16px;object-fit:cover}
.rp-duelrow__body{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.rp-duelrow__names{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;font:700 .84rem/1.3 var(--display);color:var(--chip-text)}
.rp-duelrow__names>span:not(.rp-duelrow__vs){padding:.12rem .5rem;border-radius:8px;background:var(--lav)}
.rp-duelrow__vs{display:grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:999px;background:radial-gradient(circle at 35% 32%,#fff7dc,var(--moon) 62%,#d9a43a);color:var(--ink);font:800 .7rem var(--display)}
.rp-duelrow h3{font-size:1rem;line-height:1.3}
.rp-duelrow h3 a{color:var(--ink);text-decoration:none}
.rp-duelrow h3 a::after{content:"";position:absolute;inset:0}
.rp-duelrow h3 a:hover{color:var(--act)}
.rp-duelrow__dek{font-size:.86rem;color:var(--muted);line-height:1.4}

/* bedtime routine timeline */
.rp-routine{position:relative;display:grid;gap:1rem}
.rp-routine::before{content:"";position:absolute;left:calc(1.6rem - 2px);top:1.5rem;bottom:1.5rem;width:4px;border-radius:4px;background:linear-gradient(180deg,var(--lilac) 0%,var(--night) 45%,var(--night) 70%,var(--moon) 100%)}
.rp-step{position:relative;display:grid;grid-template-columns:3.2rem minmax(0,1fr);gap:.9rem;align-items:start;align-content:start}
.rp-step__node{position:relative;z-index:1;display:grid;place-items:center;width:3.2rem;height:3.2rem;border-radius:999px;background:#fff;border:2px solid var(--lilac);color:var(--act);box-shadow:0 10px 20px -12px rgb(46 42 110/.6)}
.rp-step--night .rp-step__node{background:var(--night);border-color:var(--night-line);color:var(--moon)}
.rp-step--dawn .rp-step__node{background:var(--moon-soft);border-color:var(--moon);color:var(--moon-text)}
.rp-step__card{padding:.9rem 1rem;border-radius:var(--r-m);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1)}
.rp-step__time{display:inline-flex;align-items:center;gap:.3rem;font:800 .9rem/1.2 var(--display);color:var(--chip-text)}
.rp-step__card h3{margin-top:.3rem;font-size:1.1rem}
.rp-step__card p{margin-top:.3rem;font-size:.92rem;color:var(--muted)}
.rp-step__links{display:flex;flex-wrap:wrap;gap:.35rem .9rem;margin-top:.5rem}
@media (min-width:1024px){
  .rp-routine{grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}
  .rp-routine::before{left:8%;right:8%;top:calc(1.6rem - 2px);bottom:auto;width:auto;height:4px;background:linear-gradient(90deg,var(--lilac) 0%,var(--night) 40%,var(--night) 72%,var(--moon) 100%)}
  .rp-step{grid-template-columns:1fr;justify-items:center;text-align:center}
  .rp-step__card{width:100%}
  .rp-step__links{justify-content:center}
}

/* seasonal banners */
.rp-promos{display:grid;gap:1.25rem}
@media (min-width:900px){.rp-promos{grid-template-columns:1fr 1fr}}
.rp-promo{position:relative;display:grid;grid-template-rows:auto 1fr;border-radius:var(--r-xl);overflow:hidden;background:var(--moon-soft);color:var(--text);box-shadow:var(--sh-1)}
.rp-promo__media img{width:100%;aspect-ratio:16/8;object-fit:cover}
.rp-promo__body{display:flex;flex-direction:column;align-items:flex-start;gap:.65rem;padding:1.3rem 1.4rem 1.5rem}
.rp-promo h2,.rp-promo h3{font-size:clamp(1.35rem,1.1rem + 1vw,1.85rem)}
.rp-promo--night{background:var(--night);color:var(--night-muted)}
.rp-promo--night h2,.rp-promo--night h3{color:#fff}
@media (min-width:640px){.rp-promo{grid-template-rows:none;grid-template-columns:.9fr 1.1fr}.rp-promo__media img{height:100%;aspect-ratio:auto}}

/* how we pick + ownership */
.rp-method{display:grid;gap:2rem;align-items:start}
@media (min-width:1024px){.rp-method{grid-template-columns:.9fr 1.1fr;gap:3.5rem}}
.rp-method__media{position:relative}
@media (min-width:1024px){.rp-method__media{position:sticky;top:6rem}}
.rp-method__media img{width:100%;aspect-ratio:4/3.3;object-fit:cover;border-radius:var(--r-xl) var(--r-xl) var(--r-xl) 120px}
.rp-method__badge{position:absolute;right:-.5rem;bottom:1.25rem;display:flex;align-items:center;gap:.6rem;padding:.75rem .9rem;border-radius:18px;background:#fff;box-shadow:var(--sh-2);font:700 .9rem/1.3 var(--body);color:var(--ink);max-width:15rem}
.rp-method__badge svg{width:2.4rem;height:2.4rem;flex:none}
.rp-method h2{font-size:clamp(1.65rem,1.2rem + 1.6vw,2.45rem)}
.rp-how3{display:grid;gap:.75rem;margin-top:1.5rem}
.rp-how3 li{display:grid;grid-template-columns:2.9rem minmax(0,1fr);gap:.85rem;align-items:start;padding:.85rem 1rem;border-radius:var(--r-m);background:#fff;border:1px solid var(--line)}
.rp-how3__ico{display:grid;place-items:center;width:2.9rem;height:2.9rem;border-radius:14px;background:var(--lav);color:var(--act)}
.rp-how3 h3{font-size:1.06rem}
.rp-how3 p{font-size:.93rem;color:var(--muted);margin-top:.15rem}
.rp-links{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin-top:1.25rem}

/* FAQ layout */
.rp-faqwrap{display:grid;gap:1.75rem}
@media (min-width:1024px){.rp-faqwrap{grid-template-columns:.75fr 1.25fr;gap:3rem;align-items:start}.rp-faqside{padding-bottom:4rem}}
.rp-faqside{padding:1.6rem;border-radius:var(--r-xl);background:var(--night);color:var(--night-muted);position:relative;overflow:hidden}
.rp-faqside::before{content:"";position:absolute;inset:0;background-image:var(--stars);background-size:420px 240px;opacity:.6}
.rp-faqside>*{position:relative}
.rp-faqside h2{color:#fff;font-size:clamp(1.6rem,1.2rem + 1.4vw,2.3rem)}
.rp-faqside p{margin-top:.6rem}
.rp-faqside .rp-btn{margin-top:1.1rem}
.rp-faqside__moon{position:absolute;right:-2.2rem;bottom:-2.2rem;width:7.5rem;height:7.5rem;border-radius:999px;background:radial-gradient(circle at 36% 34%,#fff8de,var(--moon) 62%,#d4a03a);opacity:.9;box-shadow:0 0 60px 12px rgb(232 184 74/.3)}

/* CTA band */
.rp-cta{position:relative;display:grid;gap:1.25rem;align-items:center;padding:clamp(1.6rem,1rem + 2.5vw,3rem);border-radius:var(--r-xl);background-color:var(--night-2);color:var(--night-muted);overflow:hidden}
.rp-cta::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 120% at 100% 0%,rgb(74 67 168/.9),transparent 60%),var(--stars);background-size:auto,480px 260px;pointer-events:none}
.rp-cta>*{position:relative}
.rp-cta h2{color:#fff;font-size:clamp(1.6rem,1.2rem + 1.5vw,2.4rem)}
.rp-cta p{margin-top:.5rem;max-width:34rem}
.rp-cta__actions{display:flex;flex-wrap:wrap;gap:.6rem}
.rp-cta__clouds{position:absolute;right:0;bottom:-1px;width:min(55%,30rem);height:auto;color:rgb(255 255 255/.07);pointer-events:none}
@media (min-width:900px){.rp-cta{grid-template-columns:1.3fr auto}}

/* reduced motion */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
