/* Student stories: the reference's editorial mosaic, with genuine supplied copy. */
.reviews-section { position: relative; isolation: isolate; overflow: clip; padding-block: 1.5rem 2rem; }
.reviews-shell { position: relative; }
.reviews-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto 10rem; align-items: center; gap: clamp(1.25rem, 2vw, 1.75rem); margin-bottom: 1.625rem; }
.reviews-heading > .reviews-all-link { justify-self: end; }
.reviews-heading h2 { min-width: 0; font: 500 clamp(2.5rem, 4.5vw, 4.125rem)/.99 var(--font-display); letter-spacing: -.045em; color: var(--wine-deep); white-space: normal; }
.reviews-heading h2 em { color: var(--rose); font-weight: 500; }
/* The decoration owns a real grid column; its drawing cannot enter the copy. */
.reviews-decoration { position: relative; display: grid; grid-template-rows: min-content minmax(0, 1fr); row-gap: 1rem; min-width: 0; width: 100%; height: 13.75rem; padding-top: 0.4375rem; overflow: clip; isolation: isolate; pointer-events: none; }
.reviews-decoration img { position: relative; justify-self: end; align-self: end; width: 100%; height: 6.875rem; object-fit: contain; }
.reviews-handnote { position: relative; justify-self: start; margin-left: 0.5rem; z-index: 1; transform: rotate(-8deg); color: var(--rose); font: 400 1.0625rem/1.02 var(--font-hand, var(--font-display)); letter-spacing: .025em; text-align: center; }
.reviews-spark { position: absolute; color: var(--rose); font: 3rem/.7 var(--font-display); }
.reviews-spark--one { top: 0.1875rem; right: 0.5rem; }
.reviews-spark--two { bottom: 0.5rem; left: 0.25rem; font-size: 2rem; }
.review-filters { display: flex; align-items: center; gap: 0.5625rem; overflow-x: auto; scrollbar-width: none; padding-block: 0.3125rem 1.125rem; }
.review-filters::-webkit-scrollbar { display: none; }
.review-filter { flex: 0 0 auto; min-height: 2.5rem; padding: 0.5rem 1.4375rem; background: transparent; border: 0.0625rem solid var(--line); border-radius: 6.1875rem; color: var(--wine); font-size: 0.6875rem; font-weight: 600; line-height: 1.3; transition: background 250ms, border-color 250ms, color 250ms; }
.review-filter.is-active { background: var(--wine); border-color: var(--wine); color: var(--surface); }
.reviews-board { display: grid; grid-template-columns: 1fr .495fr .505fr; grid-template-rows: 1fr 1.07fr; gap: 0.5625rem 0.75rem; align-items: stretch; }
.review-card { min-width: 0; border: 0.0625rem solid var(--line); border-radius: 0.625rem; }
.review-card--feature { position: relative; overflow: hidden; grid-row: span 2; padding: 1.3125rem 1.8125rem 1.1875rem; background: #f9e9eb; border-color: transparent; }
.review-person-row { display: flex; align-items: center; gap: 0.6875rem; }
.review-avatar { display: block; overflow: hidden; flex: 0 0 auto; width: 2.6875rem; height: 2.6875rem; border-radius: 50%; background: #dfc2c3; }
.review-avatar--anya { background: #cebbae; }
.review-avatar--masha { background: #d6bdaf; }
.review-avatar--kirill { background: #cec8bd; }
.review-avatar--polina { background: #dfc7b6; }
.review-person h3 { font-family: var(--font-body); font-size: 0.625rem; font-weight: 700; letter-spacing: -.025em; line-height: 1.4; white-space: nowrap; }
.review-person p { font-size: 0.5625rem; line-height: 1.7; color: var(--muted); }
.review-source { display: inline-flex; align-items: center; gap: 0.3125rem; flex: 0 0 auto; margin-left: auto; color: var(--rose); font-size: 0.5rem; line-height: 1.8; text-decoration-thickness: 0.0625rem; text-underline-offset: 0.1875rem; }
.review-source span { font-size: 0.9375rem; line-height: 1; }
.review-card--feature .review-avatar { width: 4.0625rem; height: 4.0625rem; font-size: 2.3125rem; }
.review-card--feature .review-person h3 { font-family: var(--font-display); font-size: 1.1875rem; font-weight: 500; }
.review-card--feature .review-person p { font-size: 0.75rem; }
.review-card--feature .review-source { font-size: 0.6875rem; align-self: flex-start; margin-top: 0.3125rem; }
.review-feature-copy { position: relative; z-index: 1; width: calc(100% - 7.75rem); padding-top: 1.25rem; }
.review-feature-copy blockquote { position: relative; margin: 0 0 0.875rem; font: italic 500 clamp(1.25rem, 1.65vw, 1.5625rem)/1.2 var(--font-display); color: var(--wine); letter-spacing: -.025em; }
.review-feature-copy blockquote::before { content: '“'; position: absolute; left: -1.5625rem; top: -0.625rem; font: 3.75rem/1 var(--font-display); color: #d595a8; }
.review-feature-copy > p { color: var(--muted); font-size: 0.75rem; line-height: 1.7; }
.review-read { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.6875rem; min-width: 13.4375rem; min-height: 2.875rem; margin-top: 1.125rem; padding: 0.3125rem 0.375rem 0.3125rem 1.4375rem; border: 0.0625rem solid var(--wine); border-radius: 6.1875rem; background: transparent; color: var(--wine); font-size: 0.6875rem; font-weight: 600; }
.review-read > span { display: grid; place-items: center; width: 2.125rem; height: 2.125rem; background: var(--wine); color: var(--surface); border-radius: 50%; font-size: 1.25rem; transition: transform 300ms ease; }
.review-notebook { position: absolute; right: -0.125rem; top: 5.6875rem; width: 9.25rem; height: 17rem; transform: rotate(6deg); }
.review-notebook .review-notebook-photo { position: relative; inset: auto; width: 100%; height: 12.3125rem; color: inherit; filter: drop-shadow(-0.3125rem 0.5rem 0.5rem #774b5824); transform: rotate(-5deg); }
.review-notebook-tape { position: absolute; left: 2.5rem; top: -0.625rem; z-index: 2; width: 3.3125rem; height: 1.375rem; background: #efd5d1c9; transform: rotate(7deg); }
.review-notebook-caption { display: block; position: relative; top: -0.5rem; margin: 0 0.1875rem; padding: 0.75rem 0.375rem 0.9375rem; background: #fcecef; color: var(--rose); text-align: center; font: italic 1.1875rem/1.05 var(--font-display); box-shadow: 0.25rem 0.4375rem 0.8125rem #774b5812; }
.review-heart { position: absolute; top: -1.875rem; left: -2.0625rem; color: var(--rose); font: 2.125rem/1 var(--font-display); transform: rotate(-12deg); }
.review-notebook > svg:not(.review-notebook-photo) { position: absolute; bottom: -2.0625rem; left: -2.375rem; width: 5.625rem; color: var(--rose); }
.review-card--small { padding: 0.875rem 1.125rem 0.75rem; background: #fffdfa80; }
.review-card--small blockquote { margin: 0.8125rem 0 0; font: 400 0.75rem/1.45 var(--font-body); color: var(--muted); }
.review-feedback { min-width: 0; display: flex; flex-direction: column; padding: 0.75rem 0.875rem; text-align: left; background: #f9e9eb; border: 0; border-radius: 0.625rem; color: var(--wine); }
.review-feedback-heading { display: flex; align-items: center; gap: 0.75rem; width: 100%; font-size: 0.6875rem; line-height: 1.4; font-weight: 600; }
.review-feedback-heading > svg { width: 1.3125rem; height: 1.625rem; flex-shrink: 0; color: var(--rose); }
.review-feedback-heading > i { display: grid; place-items: center; width: 1.875rem; height: 1.875rem; flex-shrink: 0; margin-left: auto; border: 0.0625rem solid var(--line); border-radius: 50%; font: normal 1.25rem/1 var(--font-display); }
.essay-preview { display: grid; grid-template-columns: 1.3fr 1fr; gap: 0.4375rem; flex: 1; margin-top: 0.75rem; padding: 0.5rem; border-radius: 0.5rem; background: #fffcf5a1; }
.essay-preview-text { display: block; color: #78716d; font: 0.625rem/1.65 Georgia, serif; padding: 0.25rem; }
.essay-preview-text mark { color: inherit; padding-block: 0.125rem; }
.essay-mark--rose { background: #f3cad5; }
.essay-mark--green { background: #dce8cd; }
.essay-preview-lines { display: block; height: 0.75rem; margin-top: 0.375rem; background: repeating-linear-gradient(0deg, transparent 0 0.3125rem, #ede9e3 0.3125rem 0.375rem); }
.essay-comments { display: flex; flex-direction: column; gap: 0.5rem; }
.essay-comments > span { position: relative; display: block; padding: 0.5rem 0.25rem 0.4375rem 0.875rem; background: #f8f2ec; color: #776c68; font-size: 0.4375rem; line-height: 1.5; border-radius: 0.25rem; }
.essay-comments > span::before { content: ''; position: absolute; left: 0.1875rem; top: 0.625rem; width: 0.4375rem; height: 0.4375rem; border-radius: 50%; background: #edc45e; }
.essay-comments > span + span::before { background: #77b472; }
.essay-comments b { display: block; margin-bottom: 0.1875rem; color: var(--wine); font-size: 0.4375rem; }
.reviews-all-link { display: inline-flex; justify-content: space-between; align-items: center; gap: 1.3125rem; min-height: 3.1875rem; padding: 0.3125rem 0.4375rem 0.3125rem 1.5625rem; border-radius: 6.1875rem; background: var(--wine); color: var(--surface); font-size: 0.6875rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.reviews-all-link > span { display: grid; place-items: center; width: 2.4375rem; height: 2.4375rem; border-radius: 50%; background: var(--surface); color: var(--wine); font: 1.75rem/1 var(--font-display); }
.reviews-board.is-filtered { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; align-items: start; }
.reviews-board.is-filtered .review-card--feature { grid-row: auto; }
.reviews-board.is-filtered .review-card--small { min-height: 14.375rem; padding: 1.5625rem; }
.reviews-board.is-filtered .review-card--small blockquote { max-width: 32.5rem; font-size: 0.9375rem; line-height: 1.65; }
.reviews-board.is-filtered .review-feedback { min-height: 20.3125rem; }
.review-dialog { width: min(calc(100% - 2rem), 45rem); max-height: calc(100dvh - 2.5rem); overflow-y: auto; border: 0.0625rem solid var(--line); border-radius: 1.125rem; padding: clamp(1.5625rem, 5vw, 3.125rem); background: var(--surface); color: var(--ink); box-shadow: 0 1.875rem 6.25rem #35152633; }
.review-dialog::backdrop { background: #35152680; backdrop-filter: blur(0.3125rem); }
.review-dialog-close { position: absolute; right: 0.75rem; top: 0.625rem; display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: transparent; border: 0.0625rem solid var(--line); color: var(--wine); font-size: 1.6875rem; line-height: 1; }
.review-dialog h2 { padding-right: 1.875rem; font: 500 2.5rem/1.1 var(--font-display); color: var(--wine); margin-bottom: 0.875rem; }
.review-dialog .review-dialog-course { margin-bottom: 1.5rem; color: var(--rose); font-size: 0.8125rem; }
.review-dialog blockquote { margin: 0 0 1.25rem; color: var(--wine); font: italic 1.625rem/1.3 var(--font-display); }
.review-dialog p { font-size: 0.875rem; line-height: 1.75; color: var(--muted); }
.review-dialog .essay-preview { font-size: 1.125rem; }
.review-dialog .essay-preview-text { font-size: 1.125rem; }
.review-dialog .essay-comments > span { padding: 1.125rem 0.875rem 1.125rem 1.625rem; font-size: 0.75rem; }
.review-dialog .essay-comments b { font-size: 0.75rem; }
.review-dialog .essay-comments > span::before { top: 1.4375rem; left: 0.625rem; }
@media (hover: hover) and (pointer: fine) {
    .review-filter:not(.is-active):hover { background: #f8e9ec; border-color: #dcb8c4; }
    .review-read:hover > span { transform: rotate(45deg); }
    .review-source:hover { color: var(--wine); }
    .reviews-all-link:hover { background: var(--wine-deep); }
    .review-feedback:hover .review-feedback-heading > i { background: #fff9f6; }
}
@media (max-width: 900px) {
    .reviews-handnote { font-size: 1rem; }
    .reviews-board { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
    .review-card--feature { grid-column: 1; grid-row: span 2; }
    .review-card--masha, .review-card--kirill { grid-column: 2; }
    .review-card--polina { grid-column: 1; }
    .review-feedback { grid-column: 2; }
    .review-feature-copy { width: calc(100% - 5.9375rem); }
    .review-notebook { right: -0.9375rem; width: 8rem; }
    .review-card--feature .review-person-row { flex-wrap: wrap; }
    .review-card--feature .review-source { margin-top: 0; }
    .reviews-all-link { justify-self: end; }
    .reviews-board.is-filtered > * { grid-column: auto; grid-row: auto; }
}
@media (max-width: 900px) {
    .reviews-heading { grid-template-columns: minmax(0, 1fr) 11.25rem; row-gap: 1rem; }
    .reviews-heading h2 { grid-column: 1; font-size: clamp(2.5rem, 5.4vw, 3.375rem); }
    .reviews-heading > .reviews-all-link { grid-column: 1; grid-row: 2; justify-self: start; }
    .reviews-decoration { grid-column: 2; grid-row: 1 / 3; align-self: center; }
}
@media (max-width: 760px) {
    .reviews-heading { display: block; margin-bottom: 1.0625rem; }
    .reviews-heading h2 { font-size: clamp(2.3125rem, 6.8vw, 3.25rem); white-space: normal; text-wrap: initial; }
    .reviews-heading > .reviews-all-link { margin-top: 1.5rem; }
    .reviews-decoration { display: none; }
    .reviews-board { grid-template-columns: 1fr 1fr; }
    .review-card--feature { grid-column: 1 / -1; grid-row: auto; min-height: 24.375rem; }
    .review-card--masha, .review-card--kirill, .review-card--polina, .review-feedback { grid-column: auto; }
    .review-card--feature .review-person-row { flex-wrap: nowrap; }
    .review-card--small .review-person-row { gap: 0.5rem; flex-wrap: wrap; }
    .review-card--small .review-source { margin-left: 0; margin-top: 0; }
    .review-feature-copy { width: calc(100% - 9.0625rem); }
    .review-feature-copy blockquote { font-size: 1.4375rem; }
    .review-notebook { top: 7.125rem; right: 0.375rem; width: 9.25rem; }
    .reviews-board.is-filtered { grid-template-columns: 1fr; }
    .reviews-board.is-filtered .review-card--small { min-height: 0; }
    .reviews-board.is-filtered .review-feedback { min-height: 16.25rem; }
}
@media (max-width: 520px) {
    .reviews-section { padding-block: 2.25rem 2rem; }
    .reviews-section .eyebrow { font-size: 0.5625rem; margin-bottom: 1.25rem; }
    .reviews-heading h2 { font-size: clamp(2.0625rem, 8.5vw, 2.75rem); line-height: 1.03; }
    .review-filters { margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); padding-bottom: 1.125rem; }
    .review-filter { font-size: 0.6875rem; min-height: 2.625rem; padding-inline: 1.125rem; }
    .reviews-board { display: flex; flex-direction: column; gap: 0.75rem; }
    .review-card--feature { padding: 1.3125rem 1.4375rem 1.5rem; min-height: 0; }
    .review-card--feature .review-person-row { flex-wrap: wrap; gap: 0.625rem; }
    .review-card--feature .review-avatar { width: 3.0625rem; height: 3.0625rem; font-size: 1.75rem; }
    .review-card--feature .review-person h3 { font-size: 1.25rem; }
    .review-card--feature .review-source { font-size: 0.5625rem; margin-left: auto; }
    .review-feature-copy { width: 100%; padding-top: 1.4375rem; }
    .review-feature-copy blockquote { padding-left: 0; font-size: 1.5rem; }
    .review-feature-copy blockquote::before { left: -1.0625rem; top: -0.5rem; font-size: 2.8125rem; }
    .review-feature-copy > p { font-size: 0.8125rem; }
    .review-notebook { display: none; }
    .review-card--small { padding: 1.1875rem; }
    .review-card--small .review-person-row { flex-wrap: nowrap; }
    .review-card--small .review-source { margin-left: auto; font-size: 0.5rem; }
    .review-person h3 { font-size: 0.6875rem; }
    .review-person p { font-size: 0.625rem; }
    .review-card--small blockquote { margin-top: 0.9375rem; font-size: 0.8125rem; line-height: 1.6; }
    .review-feedback { width: 100%; padding: 1.125rem; min-height: 14.6875rem; }
    .review-feedback-heading { font-size: 0.75rem; }
    .essay-preview-text { font-size: 0.75rem; }
    .essay-comments > span, .essay-comments b { font-size: 0.5625rem; }
    .essay-comments > span { padding-left: 1.0625rem; }
    .essay-comments > span::before { left: 0.25rem; }
    .reviews-all-link { justify-self: stretch; margin-top: 0.125rem; min-height: 3.375rem; font-size: 0.75rem; }
    .review-dialog h2 { font-size: 2.125rem; }
    .review-dialog .essay-preview { display: flex; flex-direction: column; }
    .review-dialog .essay-preview-text { font-size: 1rem; }
    .review-dialog .essay-comments { flex-direction: row; }
    .review-dialog .essay-comments > span { flex: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .review-filter, .review-read > span { transition: none; }
}
