/* Year in review (review.js): a story of cards, one highlight per card. Uses the dashboard's colours (light and dark). */
.rv-story{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.rv-card{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:26px 28px;box-shadow:var(--shadow);min-width:0}
.rv-card.rv-cover,.rv-card.rv-hero,.rv-card.rv-rhythm,.rv-card.rv-sys,.rv-card.rv-share-c{grid-column:1/-1}
.rv-card.rv-sm{grid-column:auto}
.rv-eyebrow{display:flex;align-items:center;gap:8px;color:var(--accent);font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:14px}
.rv-cover{background:radial-gradient(120% 140% at 100% 0%,var(--accent-soft) 0%,transparent 60%),var(--surface);padding:34px 32px}
.rv-year{font-family:var(--font-display);font-weight:600;font-size:clamp(64px,12vw,128px);line-height:.95;letter-spacing:-.02em;color:var(--fg)}
.rv-cover-t{font-family:var(--font-display);font-size:clamp(20px,3vw,28px);margin:8px 0 6px;color:var(--fg-2)}
.rv-hero{background:linear-gradient(135deg,var(--accent-soft),transparent 70%),var(--surface)}
.rv-big{font-family:var(--font-display);font-weight:600;font-size:clamp(48px,9vw,96px);line-height:1;letter-spacing:-.02em;color:var(--accent);font-variant-numeric:tabular-nums}
.rv-big-l{font-size:17px;color:var(--fg-2);margin:6px 0 18px}
.rv-stats{display:flex;flex-wrap:wrap;gap:14px 34px}
.rv-stats>div{display:flex;flex-direction:column;min-width:0}
.rv-stats b{font-size:22px;font-weight:600;color:var(--fg);font-variant-numeric:tabular-nums}
.rv-stats>div>span{font-size:13px;color:var(--muted)}
.rv-stats.big b{font-family:var(--font-display);font-size:clamp(28px,5vw,44px);line-height:1.1}
.rv-lead{font-size:17px;color:var(--fg-2);margin-bottom:14px}
.rv-lead b{color:var(--fg);font-family:var(--font-display);font-size:22px}
.rv-top{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.rv-top li{display:flex;align-items:flex-start;gap:14px;min-width:0}
.rv-top b{overflow-wrap:anywhere}
.rv-rank{flex:none;width:30px;font-family:var(--font-display);font-size:24px;font-weight:600;line-height:1.1;color:var(--accent);text-align:right}
.rv-top li:first-child .rv-rank{font-size:30px}
.rv-months{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;align-items:end;height:130px;margin:4px 0 20px}
.rv-m{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:6px}
.rv-m i{display:block;width:100%;max-width:34px;height:3%;border-radius:6px 6px 2px 2px;background:var(--line-strong);transition:height .9s cubic-bezier(.2,.8,.2,1)}
.rv-m.best i{background:var(--accent)}
.rv-m span{font-size:11.5px;color:var(--muted)}
.rv-m.best span{color:var(--accent);font-weight:600}
.rv-pv{vertical-align:middle;font-size:12px;font-family:var(--font-body)}
.rv-banner{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:linear-gradient(90deg,var(--accent-soft),var(--surface) 70%)}
.rv-banner>.row{align-items:center;gap:12px}
.rv-banner>.row>.ic{color:var(--accent)}
.rv-links{display:flex;flex-direction:column;gap:8px;margin:12px 0;max-height:52vh;overflow:auto}
.rv-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}
.rv-link select{max-width:55%}
.rv-sg{display:block;margin-top:2px}
.rv-sugg{display:flex;align-items:center;gap:10px;margin:10px 0}
.rv-share{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start;margin:12px 0}
.rv-prev{background:var(--sunk);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px;display:flex;justify-content:center}
.rv-prev canvas{display:block;width:100%;max-width:320px;height:auto;border-radius:8px;box-shadow:var(--shadow)}
.rv-opts{display:flex;flex-direction:column;gap:12px;min-width:0}
/* Reveal while scrolling (only when animations are allowed, see review.js) */
.rv-anim .rv-card{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
.rv-anim .rv-card.in{opacity:1;transform:none}
.rv-anim .rv-card:not(.in) .rv-m i{height:3%!important}
@media (prefers-reduced-motion:reduce){.rv-anim .rv-card{opacity:1;transform:none;transition:none}.rv-m i{transition:none}}
@media (max-width:760px){
  .rv-story{grid-template-columns:minmax(0,1fr)}
  .rv-card{padding:20px}
  .rv-share{grid-template-columns:minmax(0,1fr)}
  .rv-months{gap:3px;height:110px}
  .rv-link{flex-direction:column;align-items:stretch}.rv-link select{max-width:none}
  .rv-sugg{flex-wrap:wrap}
}
