/* Student messages: compositor scrolling, paused offscreen; no backdrop filters. */
.jc-reviews{background:linear-gradient(180deg,var(--bg2),var(--bg));padding-block:clamp(56px,8vw,104px)}
.jc-rev-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:30px}
.jc-eyebrow{color:var(--gold-soft);font-size:.76rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:12px}
.jc-reviews h2{font-size:clamp(2rem,4.6vw,3.5rem);line-height:1.06;font-weight:800;letter-spacing:-.04em;color:var(--text)}
.jc-rev-lede{color:var(--dim);max-width:45ch;line-height:1.7;margin-top:16px}
.jc-controls{display:flex;align-items:center;gap:10px;flex-shrink:0}
.jc-pause{font:inherit;font-size:.82rem;min-height:44px;padding:10px 18px;border-radius:30px;border:1px solid var(--line2);background:var(--surf);color:var(--text);cursor:pointer}
.jc-pause[hidden]{display:none}.jc-pause:hover{border-color:var(--gold)}
.jc-rev-stage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}
.jc-rev-stage.is-live{height:640px;overflow:hidden;align-items:stretch;mask-image:linear-gradient(to bottom,transparent,#000 7%,#000 93%,transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 7%,#000 93%,transparent)}
.jc-rev-col{display:flex;flex-direction:column;gap:20px;padding-bottom:20px;min-width:0;animation:jc-rise var(--jc-duration,90s) linear infinite}
.jc-rev-col:nth-child(2){animation-name:jc-fall}
.jc-rev-stage:not(.is-offscreen) .jc-rev-col{will-change:transform}
.jc-rev-stage:is(.is-paused,.is-offscreen,.is-dialog-open) .jc-rev-col,.jc-rev-stage:focus-within .jc-rev-col{animation-play-state:paused}
@media(hover:hover){.jc-rev-stage:hover .jc-rev-col{animation-play-state:paused}}
@keyframes jc-rise{to{transform:translateY(-50%)}}
@keyframes jc-fall{from{transform:translateY(-50%)}to{transform:translateY(0)}}
.jc-glass{margin:0;min-width:0;flex-shrink:0;border:1px solid var(--line2);border-radius:22px;padding:10px;background:linear-gradient(145deg,var(--surf2),var(--surf));align-self:stretch}
.jc-open{display:flex;align-items:center;justify-content:center;height:330px;background:#0b0b0b;border-radius:14px;overflow:hidden;cursor:zoom-in;position:relative}
.jc-open picture{display:block;width:100%;height:100%}
.jc-open img{display:block;width:100%;height:100%;object-fit:contain}
.jc-rev-hint{font-size:.78rem;color:var(--dim);margin-top:14px}
.jc-reviews :is(a,button):focus-visible,.jc-rev-stage:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.jc-dialog{padding:14px;border:1px solid var(--line2);border-radius:22px;background:var(--surf);color:var(--text);max-width:min(960px,96vw);max-height:94vh;max-height:94svh;overflow:auto;margin:auto;box-sizing:border-box}
.jc-dialog::backdrop{background:rgba(0,0,0,.86)}
.jc-dialog-bar{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:12px;font-size:.82rem;color:var(--dim)}
.jc-close{min-height:44px;padding:8px 16px;border:1px solid var(--line2);border-radius:30px;background:var(--surf2);color:var(--text);font:inherit;cursor:pointer}
.jc-close span{font-size:1.2rem;margin-left:8px}
.jc-dialog>img{display:block;max-width:100%;max-height:76vh;max-height:76svh;width:auto;height:auto;margin:auto;border-radius:10px}
/* Keep the supplied photo's subject visible without image scaling on scroll. */
#about .about-photo .frame{aspect-ratio:3/4}
#about .about-photo .frame img{transform:none !important;will-change:auto;object-position:50% 75%}
@media(max-width:1099px){.jc-rev-stage{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:699px){.jc-rev-head{align-items:flex-start;flex-direction:column;gap:20px}.jc-reviews h2{font-size:clamp(1.9rem,8.2vw,2.5rem)}.jc-rev-stage{grid-template-columns:1fr;gap:14px;max-width:440px;margin-inline:auto}.jc-rev-stage.is-live{height:560px}.jc-rev-col{gap:14px;padding-bottom:14px}.jc-open{height:310px}.jc-controls{align-self:flex-end}.jc-rev-head{margin-bottom:18px}.jc-glass{border-radius:18px}.jc-rev-lede{font-size:.96rem}.jc-dialog{padding:10px;border-radius:16px}.jc-dialog-bar{gap:12px}}
@media(prefers-reduced-motion:reduce){.jc-reviews *{scroll-behavior:auto !important;transition:none !important}}

@media(prefers-reduced-motion:reduce){.jc-rev-col{animation:none;will-change:auto !important}.jc-rev-col>[aria-hidden=true]{display:none}.jc-rev-stage.is-live{height:auto;overflow:visible;mask-image:none;-webkit-mask-image:none}.jc-pause{display:none}}
