/* reviews.html (contra-02). Uses system.css tokens only. */
.rvp{padding-top:var(--hdr)}
.rv-hero{padding-top:clamp(48px,10vh,120px);padding-bottom:clamp(56px,10vh,120px)}
.rv-hero__k{color:var(--sign);margin-bottom:18px}
.rv-hero h1{margin-left:-.04em}
.rv-hero__grid{display:grid;grid-template-columns:1fr;gap:48px;margin-top:clamp(32px,6vh,72px)}
.rv-score__n{font-size:clamp(6rem,22vw,17rem);line-height:.8;color:var(--sign);margin:0 0 .12em;letter-spacing:-.04em}
.rv-score__t{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:22px}
.stars--big{--s:26px;gap:5px}
.hist{margin:0;align-self:end}
.hist__rows{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:clamp(12px,1.6vh,18px)}
.hist__rows li{display:grid;grid-template-columns:3.2em 1fr 2.6em;align-items:center;gap:14px}
.hist__rows b{text-align:right;font-stretch:125%;font-weight:800;font-size:clamp(1.1rem,1.6vw,1.6rem)}
.hist__rows li > .label{font-size:.9375rem}
.hist__bar{position:relative;height:clamp(26px,3.4vh,40px);border-block:3px solid var(--line-d)}
.hist__bar i{position:absolute;inset:0 auto 0 0;width:var(--w);background:var(--sign);-webkit-mask:var(--tread) 0 0/12px 12px;mask:var(--tread) 0 0/12px 12px;
  transform-origin:left;transform:scaleX(calc(.15 + .85 * min(1, var(--p,1) * 2.4)))}
.hist__bar i::after{content:"";position:absolute;inset:0;background:var(--sign);opacity:.55}
.no-js .hist__bar i{transform:none}

/* jump nav */
.rv-jump{padding-bottom:28px;border-bottom:1px solid var(--line-d)}
.rv-jump > p{margin-bottom:10px}
.rv-jump ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 4px}
.rv-jump a{display:inline-flex;align-items:baseline;gap:8px;min-height:44px;padding:10px 14px 6px 0;text-decoration:none}
.rv-jump a .display{font-size:clamp(1rem,1.5vw,1.35rem);line-height:1}
.rv-jump a b{color:var(--steel)}
.rv-jump a:hover .display{color:var(--sign)}

/* filter tools (JS only) */
.rv-tools{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;padding-block:12px;background:var(--ink);border-bottom:1px solid var(--line-d);transition:top .6s var(--ease-ramp)}
.rv-tools[hidden]{display:none}
.rv-tools{box-shadow:0 0 0 100vmax var(--ink);clip-path:inset(0 -100vmax 0 -100vmax)}
.hdr:not(.is-hidden) ~ main .rv-tools{top:var(--hdr)}
.rv-tools__in{display:flex;flex-wrap:wrap;gap:6px}
.rv-tools button{min-height:44px;padding:0 16px;background:transparent;border:0;box-shadow:inset 0 0 0 1px var(--line-d);color:var(--brick);cursor:pointer;font-size:.875rem}
.rv-tools button b{color:var(--steel);margin-left:4px;font-weight:650}
.rv-tools button:hover{box-shadow:inset 0 0 0 1px var(--brick)}
.rv-tools button[aria-pressed=true]{background:var(--sign);color:var(--ink);box-shadow:none}
.rv-tools button[aria-pressed=true] b{color:var(--ink)}

/* chapters */
.ch{padding-block:clamp(72px,12vh,160px)}
.ch[hidden]{display:none}
.ch__in{row-gap:40px;align-items:start}
.ch__hd{grid-column:1/-1;position:relative}
.ch__n{color:var(--sign);margin-bottom:12px}
.light .ch__n{color:var(--fascia)}
.ch__c{margin-top:14px}
.ch__rail{display:block;height:3px;margin-top:20px;background:var(--line-d);position:relative;overflow:hidden}
.ch__rail::after{content:"";position:absolute;inset:0;background:var(--sign);transform-origin:left;transform:scaleX(var(--p,1))}
.light .ch__rail{background:var(--line-l)} .light .ch__rail::after{background:var(--fascia)}
.ch__list{grid-column:1/-1;display:flex;flex-direction:column}

/* one review */
.rv{position:relative;padding-block:clamp(28px,4.2vh,48px);border-top:1px solid var(--line-d)}
.light .rv{border-top-color:var(--line-l)}
.rv[hidden]{display:none}
.rv__meta{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.rv__q{margin:0;font-family:var(--f-voice);font-style:italic;font-weight:380;letter-spacing:-.005em}
.rv__q p{margin:0 0 .5em}.rv__q p:last-child{margin:0}
.rv--s .rv__q{font-size:var(--t-quote);line-height:1.08;font-variation-settings:"opsz" 144;text-wrap:balance;max-width:20ch}
.rv--m .rv__q{font-size:clamp(1.35rem,2.3vw,2.15rem);line-height:1.22;font-variation-settings:"opsz" 72;max-width:32ch}
.rv--l .rv__q{font-size:clamp(1.125rem,1.45vw,1.4rem);line-height:1.5;font-variation-settings:"opsz" 24;max-width:58ch}
.rv--l .rv__q p:first-child::first-line{font-weight:500}
.rv__by{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin:20px 0 0}
.rv__by cite{font-style:normal;font-size:.9375rem;color:var(--brick)}
.light .rv__by cite{color:var(--ink)}
.rv__by cite::before{content:"";display:inline-block;width:28px;height:3px;background:var(--sign);vertical-align:middle;margin-right:12px;transform:translateY(-2px)}
.light .rv__by cite::before{background:var(--fascia)}

/* star-only roll */
.rv-only{padding-top:clamp(28px,4vh,48px);border-top:1px solid var(--line-d)}
.light .rv-only{border-top-color:var(--line-l)}
.rv-only[hidden]{display:none}
.rv-only__h{margin:0 0 14px;font-weight:650}
.rv-only__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:0 var(--gutter)}
.rv--o{display:grid;grid-template-columns:1fr auto;grid-template-areas:"n s" "d d";gap:2px 12px;padding:14px 0;border-top:1px solid var(--line-d)}
.light .rv--o{border-top-color:var(--line-l)}
.rv--o cite{grid-area:n;font-style:normal;color:inherit;font-size:.9375rem}
.rv--o .stars{grid-area:s;--s:13px}
.rv--o > .label.muted{grid-area:d}

/* end */
.rv-end{padding-block:var(--sp-scene)}
.rv-end .rail{margin-bottom:clamp(40px,7vh,80px)}
.rv-end h2{margin-bottom:28px}
.rv-end p{display:flex;flex-wrap:wrap;gap:12px}

@media (min-width:768px){
  .rv-hero__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gutter);align-items:end}
  .rv:nth-child(even of .rv:not(.rv--o)){padding-left:clamp(0px,10vw,180px)}
}
@media (min-width:1100px){
  .rv-hero__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
  .ch__hd{grid-column:1/span 3;position:sticky;top:calc(var(--hdr) + 92px)}
  .ch__list{grid-column:4/span 9}
  .rv--s .rv__q{max-width:18ch}
}
@media (max-width:767px){
  .rv--s .rv__q{font-size:clamp(1.85rem,8.4vw,2.6rem)}
  .rv-tools{position:static}
}
