
/* Reviews page content only — header and footer are supplied by _Layout.cshtml. */
.reviews-page-shell {
    --ink: #071731;
    --blue: #4070b0;
    --blue2: #5080c0;
    --violet: #703090;
    --magenta: #a03080;
    --rose: #c03080;
    --gold: #f5b942;
    --paper: #f8faff;
    --muted: #65748c;
    --line: rgba(64,112,176,.15);
    --ease: cubic-bezier(.2,.75,.2,1);
    --shadow: 0 26px 78px rgba(20,49,93,.11)
}

/* Reviews page content only — header and footer are supplied by _Layout.cshtml. */
.reviews-page-shell {
    --rose: #c03080;
    --paper: #f8faff;
    --line: rgba(64,112,176,.15)
}

    .reviews-page-shell body.menu-open {
        overflow: hidden
    }

    .reviews-page-shell .split-hover {
        position: relative;
        z-index: 1;
        isolation: isolate;
        overflow: hidden;
        transform: none !important
    }

        .reviews-page-shell .split-hover:before,
        .reviews-page-shell .split-hover:after {
            content: "";
            position: absolute;
            z-index: -1;
            top: 0;
            width: 52%;
            height: 100%;
            background: linear-gradient(135deg,var(--magenta),var(--rose));
            transition: transform .45s var(--ease)
        }

        .reviews-page-shell .split-hover:before {
            right: 0;
            transform: translateX(105%)
        }

        .reviews-page-shell .split-hover:after {
            left: 0;
            transform: translateX(-105%)
        }

        .reviews-page-shell .split-hover:hover:before,
        .reviews-page-shell .split-hover:hover:after {
            transform: translateX(0)
        }

        .reviews-page-shell .split-hover:hover {
            transform: none !important
        }

    .reviews-page-shell .hero {
        position: relative;
        min-height: 690px;
        display: grid;
        align-items: center;
        isolation: isolate;
        overflow: hidden;
        background: linear-gradient(128deg,#071731,#12376c 58%,#46255f)
    }

        .reviews-page-shell .hero:before {
            content: "";
            position: absolute;
            z-index: -2;
            inset: 0;
            background: radial-gradient(circle at 14% 40%,rgba(160,48,128,.3),transparent 28%),radial-gradient(circle at 78% 16%,rgba(80,128,192,.34),transparent 31%),repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 1px,transparent 1px 78px);
            background-size: auto,auto,156px 100%;
            animation: heroGrid 18s linear infinite
        }

        .reviews-page-shell .hero:after {
            content: "";
            position: absolute;
            z-index: 0;
            right: -12%;
            left: -12%;
            bottom: -1px;
            height: 82px;
            background: var(--paper);
            clip-path: ellipse(60% 100% at 50% 100%)
        }

    .reviews-page-shell .hero-content {
        position: relative;
        z-index: 3;
        max-width: 690px;
        padding-top: 92px;
        color: #fff
    }

    .reviews-page-shell .hero-kicker {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 9px 14px;
        border-radius: 999px;
        border: 1px solid rgba(255,255,255,.18);
        background: rgba(255,255,255,.08);
        backdrop-filter: blur(12px);
        font-size: 13px;
        font-weight: 900
    }

        .reviews-page-shell .hero-kicker .material-symbols-rounded {
            font-size: 19px;
            color: #d8b9ea;
            animation: iconBreathe 2.8s ease-in-out infinite
        }

    .reviews-page-shell .hero h1 {
        font-size: clamp(45px,5.6vw,80px);
        line-height: 1.12;
        letter-spacing: -2.2px;
        margin: 19px 0 14px;
        text-shadow: 0 16px 40px rgba(0,0,0,.25)
    }

        .reviews-page-shell .hero h1 span {
            background: linear-gradient(100deg,#fff,#9bc4ff 33%,#d8b9ea 68%,#ffd1ec);
            background-size: 230% auto;
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
            animation: textShine 6s linear infinite
        }

    .reviews-page-shell .hero p {
        max-width: 620px;
        margin: 0;
        color: rgba(255,255,255,.78);
        font-size: 17px;
        line-height: 1.95
    }

    .reviews-page-shell .hero-proof {
        display: flex;
        flex-wrap: wrap;
        gap: 9px;
        margin-top: 22px
    }

        .reviews-page-shell .hero-proof span {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 8px 11px;
            border-radius: 12px;
            border: 1px solid rgba(255,255,255,.12);
            background: rgba(255,255,255,.07);
            color: rgba(255,255,255,.84);
            font-size: 12px;
            font-weight: 800
        }

        .reviews-page-shell .hero-proof .material-symbols-rounded {
            font-size: 18px;
            color: #a9caff
        }

    .reviews-page-shell .hero-visual {
        position: absolute;
        z-index: 2;
        left: 8%;
        top: 51%;
        width: 330px;
        height: 330px;
        transform: translateY(-47%);
        pointer-events: none
    }

    .reviews-page-shell .rating-core {
        position: absolute;
        inset: 50% auto auto 50%;
        width: 120px;
        height: 120px;
        transform: translate(-50%,-50%);
        display: grid;
        place-items: center;
        border-radius: 36px;
        background: linear-gradient(135deg,var(--blue2),var(--violet) 55%,var(--magenta));
        color: #fff;
        border: 1px solid rgba(255,255,255,.28);
        box-shadow: 0 35px 80px rgba(3,12,32,.46),inset 0 1px rgba(255,255,255,.24);
        animation: coreFloat 4.4s ease-in-out infinite
    }

        .reviews-page-shell .rating-core strong {
            font-size: 34px;
            line-height: 1
        }

        .reviews-page-shell .rating-core small {
            font-size: 11px
        }

        .reviews-page-shell .rating-core:before {
            content: "";
            position: absolute;
            inset: -15px;
            border: 1px solid rgba(255,255,255,.24);
            border-radius: 44px;
            animation: coreRing 2.6s ease-out infinite
        }

    .reviews-page-shell .rating-stars-orbit {
        position: absolute;
        inset: 22px;
        border: 1px solid rgba(255,255,255,.17);
        border-radius: 50%;
        animation: orbit 18s linear infinite
    }

        .reviews-page-shell .rating-stars-orbit:after {
            content: "★";
            position: absolute;
            right: 0;
            top: 29%;
            font-size: 25px;
            color: var(--gold);
            text-shadow: 0 0 20px rgba(245,185,66,.75)
        }

        .reviews-page-shell .rating-stars-orbit.inner {
            inset: 67px;
            border-style: dashed;
            animation-duration: 11s;
            animation-direction: reverse
        }

            .reviews-page-shell .rating-stars-orbit.inner:after {
                right: auto;
                left: -5px;
                top: 56%;
                font-size: 18px;
                color: #d8b9ea
            }

    .reviews-page-shell .rating-bubble {
        position: absolute;
        width: 60px;
        height: 60px;
        display: grid;
        place-items: center;
        border-radius: 19px;
        background: rgba(255,255,255,.11);
        border: 1px solid rgba(255,255,255,.21);
        color: #fff;
        box-shadow: 0 20px 45px rgba(2,12,31,.34);
        backdrop-filter: blur(12px);
        animation: satellite 4.2s ease-in-out infinite
    }

        .reviews-page-shell .rating-bubble .material-symbols-rounded {
            font-size: 28px;
            font-variation-settings: 'FILL' 1
        }

    .reviews-page-shell .bubble-heart {
        top: 3%;
        left: 38%;
        animation-delay: -.7s
    }

    .reviews-page-shell .bubble-chat {
        right: 1%;
        top: 43%;
        animation-delay: -1.6s
    }

    .reviews-page-shell .bubble-check {
        bottom: 2%;
        left: 35%;
        animation-delay: -2.5s
    }

    .reviews-page-shell .bubble-school {
        left: 0;
        top: 43%;
        animation-delay: -3.3s
    }

    .reviews-page-shell .summary-section {
        position: relative;
        padding: 82px 0 48px;
        background: radial-gradient(circle at 8% 16%,rgba(160,48,128,.08),transparent 23%),radial-gradient(circle at 93% 68%,rgba(64,112,176,.1),transparent 25%)
    }

    .reviews-page-shell .section-head {
        max-width: 760px;
        margin: 0 auto 34px;
        text-align: center
    }

    .reviews-page-shell .section-kicker {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        color: var(--blue);
        font-size: 13px;
        font-weight: 900
    }

        .reviews-page-shell .section-kicker .material-symbols-rounded {
            font-size: 20px;
            animation: iconBreathe 3s ease-in-out infinite
        }

    .reviews-page-shell .section-head h2 {
        font-size: clamp(33px,4vw,53px);
        line-height: 1.3;
        letter-spacing: -1.5px;
        margin: 11px 0 8px
    }

    .reviews-page-shell .section-head p {
        margin: 0;
        color: var(--muted);
        font-size: 15px;
        line-height: 1.9
    }

    .reviews-page-shell .summary-shell {
        display: grid;
        grid-template-columns: 320px 1fr;
        gap: 22px
    }

    .reviews-page-shell .average-card,
    .reviews-page-shell .distribution-card {
        position: relative;
        border-radius: 30px;
        background: rgba(255,255,255,.84);
        border: 1px solid var(--line);
        box-shadow: var(--shadow);
        backdrop-filter: blur(18px);
        overflow: hidden
    }

    .reviews-page-shell .average-card {
        display: grid;
        place-items: center;
        text-align: center;
        min-height: 310px;
        padding: 28px
    }

        .reviews-page-shell .average-card:before {
            content: "";
            position: absolute;
            inset: -80px auto auto -85px;
            width: 210px;
            height: 210px;
            border-radius: 50%;
            background: radial-gradient(circle,rgba(160,48,128,.2),transparent 67%);
            animation: ambient 8s ease-in-out infinite
        }

    .reviews-page-shell .average-ring {
        position: relative;
        width: 150px;
        height: 150px;
        display: grid;
        place-items: center;
        border-radius: 50%;
        background: conic-gradient(var(--gold) var(--score-angle,94%),#edf0f6 0);
        box-shadow: 0 20px 50px rgba(20,49,93,.12)
    }

        .reviews-page-shell .average-ring:before {
            content: "";
            position: absolute;
            inset: 9px;
            border-radius: 50%;
            background: #fff
        }

    .reviews-page-shell .average-number {
        position: relative;
        z-index: 1;
        font-size: 43px;
        font-weight: 900;
        line-height: 1;
        color: var(--ink)
    }

    .reviews-page-shell .average-stars {
        position: relative;
        z-index: 1;
        display: flex;
        gap: 2px;
        color: var(--gold);
        margin-top: 8px
    }

        .reviews-page-shell .average-stars .material-symbols-rounded {
            font-size: 17px;
            font-variation-settings: 'FILL' 1
        }

    .reviews-page-shell .average-card h3 {
        margin: 16px 0 4px;
        font-size: 18px
    }

    .reviews-page-shell .average-card p {
        margin: 0;
        color: var(--muted);
        font-size: 12px
    }

    .reviews-page-shell .distribution-card {
        padding: 27px
    }

        .reviews-page-shell .distribution-card h3 {
            display: flex;
            align-items: center;
            gap: 9px;
            margin: 0 0 22px;
            font-size: 21px
        }

            .reviews-page-shell .distribution-card h3 .material-symbols-rounded {
                width: 40px;
                height: 40px;
                display: grid;
                place-items: center;
                border-radius: 13px;
                background: linear-gradient(135deg,#edf3ff,#f8eefa);
                color: var(--violet);
                font-variation-settings: 'FILL' 1;
                animation: iconBreathe 3s ease-in-out infinite
            }

    .reviews-page-shell .distribution-list {
        display: grid;
        gap: 13px
    }

    .reviews-page-shell .distribution-row {
        display: grid;
        grid-template-columns: 52px 1fr 40px;
        align-items: center;
        gap: 11px
    }

        .reviews-page-shell .distribution-row > span:first-child {
            display: flex;
            align-items: center;
            gap: 4px;
            font-size: 12px;
            font-weight: 900
        }

            .reviews-page-shell .distribution-row > span:first-child .material-symbols-rounded {
                font-size: 16px;
                color: var(--gold);
                font-variation-settings: 'FILL' 1
            }

    .reviews-page-shell .distribution-track {
        height: 9px;
        border-radius: 999px;
        background: #edf0f6;
        overflow: hidden
    }

    .reviews-page-shell .distribution-fill {
        height: 100%;
        width: 0;
        border-radius: inherit;
        background: linear-gradient(90deg,var(--gold),#f18d5c,var(--magenta));
        transition: width .7s var(--ease)
    }

    .reviews-page-shell .distribution-count {
        font-size: 11px;
        color: var(--muted);
        font-weight: 800;
        text-align: left
    }

    .reviews-page-shell .summary-points {
        display: grid;
        grid-template-columns: repeat(3,1fr);
        gap: 10px;
        margin-top: 22px
    }

    .reviews-page-shell .summary-point {
        display: flex;
        align-items: center;
        gap: 9px;
        padding: 12px;
        border-radius: 17px;
        background: #f7f9fd;
        border: 1px solid var(--line)
    }

        .reviews-page-shell .summary-point .material-symbols-rounded {
            width: 36px;
            height: 36px;
            display: grid;
            place-items: center;
            flex: none;
            border-radius: 12px;
            background: #fff;
            color: var(--blue);
            font-size: 20px;
            animation: iconBreathe 3.4s ease-in-out infinite
        }

        .reviews-page-shell .summary-point strong,
        .reviews-page-shell .summary-point small {
            display: block
        }

        .reviews-page-shell .summary-point strong {
            font-size: 12px
        }

        .reviews-page-shell .summary-point small {
            margin-top: 3px;
            color: var(--muted);
            font-size: 9.5px
        }

    .reviews-page-shell .reviews-main {
        position: relative;
        padding: 42px 0 110px;
        background: linear-gradient(180deg,#f8faff,#fff 42%,#f7f9ff);
        overflow: clip
    }

        .reviews-page-shell .reviews-main:before {
            content: "";
            position: absolute;
            inset: 0;
            pointer-events: none;
            opacity: .55;
            background-image: linear-gradient(rgba(64,112,176,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(64,112,176,.035) 1px,transparent 1px);
            background-size: 48px 48px;
            mask-image: linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent);
            animation: gridMove 23s linear infinite
        }

    .reviews-page-shell .reviews-layout {
        position: relative;
        z-index: 2;
        display: grid;
        grid-template-columns: minmax(310px,390px) minmax(0,1fr);
        gap: 24px;
        align-items: start
    }

    .reviews-page-shell .review-form-card {
        position: sticky;
        top: 104px;
        padding: 27px;
        border-radius: 32px;
        background: linear-gradient(160deg,#071731,#173d75 62%,#703090 145%);
        color: #fff;
        border: 1px solid rgba(255,255,255,.14);
        box-shadow: 0 32px 90px rgba(8,29,66,.25);
        overflow: hidden
    }

        .reviews-page-shell .review-form-card:before {
            content: "";
            position: absolute;
            left: -70px;
            bottom: -90px;
            width: 240px;
            height: 240px;
            border-radius: 50%;
            background: radial-gradient(circle,rgba(192,48,128,.43),transparent 68%);
            animation: ambient 8s ease-in-out infinite
        }

    .reviews-page-shell .form-head {
        position: relative;
        z-index: 1
    }

        .reviews-page-shell .form-head .section-kicker {
            color: #bed7ff
        }

        .reviews-page-shell .form-head h2 {
            font-size: 29px;
            line-height: 1.4;
            margin: 11px 0 6px
        }

        .reviews-page-shell .form-head p {
            margin: 0;
            color: rgba(255,255,255,.7);
            font-size: 12.5px;
            line-height: 1.85
        }

    .reviews-page-shell .review-form {
        position: relative;
        z-index: 1;
        margin-top: 20px
    }

    .reviews-page-shell .field-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px
    }

    .reviews-page-shell .field {
        display: grid;
        gap: 6px
    }

        .reviews-page-shell .field.full {
            grid-column: 1/-1
        }

        .reviews-page-shell .field label {
            display: flex;
            align-items: center;
            gap: 6px;
            color: rgba(255,255,255,.86);
            font-size: 11.5px;
            font-weight: 800
        }

            .reviews-page-shell .field label .material-symbols-rounded {
                font-size: 16px;
                color: #c9dcff
            }

        .reviews-page-shell .field input,
        .reviews-page-shell .field select,
        .reviews-page-shell .field textarea {
            width: 100%;
            min-height: 47px;
            padding: 11px 12px;
            border: 1px solid rgba(255,255,255,.15);
            border-radius: 14px;
            background: rgba(255,255,255,.1);
            color: #fff;
            outline: none;
            transition: border-color .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease)
        }

            .reviews-page-shell .field input::placeholder,
            .reviews-page-shell .field textarea::placeholder {
                color: rgba(255,255,255,.48)
            }

            .reviews-page-shell .field select option {
                color: var(--ink);
                background: #fff
            }

        .reviews-page-shell .field textarea {
            min-height: 105px;
            resize: vertical;
            line-height: 1.8
        }

            .reviews-page-shell .field input:focus,
            .reviews-page-shell .field select:focus,
            .reviews-page-shell .field textarea:focus {
                background: rgba(255,255,255,.15);
                border-color: rgba(216,185,234,.75);
                box-shadow: 0 0 0 4px rgba(216,185,234,.1)
            }

    .reviews-page-shell .rating-group {
        margin-top: 13px;
        padding: 12px;
        border-radius: 16px;
        background: rgba(255,255,255,.075);
        border: 1px solid rgba(255,255,255,.11)
    }

    .reviews-page-shell .rating-group-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        margin-bottom: 7px
    }

        .reviews-page-shell .rating-group-head label {
            font-size: 11.5px;
            font-weight: 800
        }

    .reviews-page-shell .rating-value {
        font-size: 10px;
        color: #c9dcff;
        font-weight: 800
    }

    .reviews-page-shell .stars-input {
        display: flex;
        gap: 4px;
        direction: ltr;
        justify-content: flex-end
    }

    .reviews-page-shell .star-btn {
        width: 37px;
        height: 37px;
        display: grid;
        place-items: center;
        border: 0;
        border-radius: 11px;
        background: rgba(255,255,255,.08);
        color: rgba(255,255,255,.28);
        cursor: pointer;
        transition: color .25s var(--ease),background .25s var(--ease),box-shadow .25s var(--ease);
        transform: none !important
    }

        .reviews-page-shell .star-btn .material-symbols-rounded {
            font-size: 23px;
            font-variation-settings: 'FILL' 1
        }

        .reviews-page-shell .star-btn.is-active,
        .reviews-page-shell .star-btn:hover {
            color: var(--gold);
            background: rgba(245,185,66,.12);
            box-shadow: 0 8px 20px rgba(245,185,66,.09)
        }

    .reviews-page-shell .consent {
        display: flex;
        align-items: flex-start;
        gap: 8px;
        margin: 14px 0;
        color: rgba(255,255,255,.7);
        font-size: 10.5px;
        line-height: 1.7
    }

        .reviews-page-shell .consent input {
            margin-top: 5px;
            accent-color: var(--magenta)
        }

    .reviews-page-shell .submit-review {
        width: 100%;
        min-height: 52px;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        border: 0;
        border-radius: 15px;
        background: #fff;
        color: var(--blue);
        font-weight: 900;
        cursor: pointer;
        box-shadow: 0 16px 38px rgba(0,0,0,.17);
        transition: color .35s var(--ease),box-shadow .35s var(--ease);
        transform: none !important
    }

        .reviews-page-shell .submit-review:hover {
            color: #fff;
            box-shadow: 0 19px 45px rgba(160,48,128,.3)
        }

        .reviews-page-shell .submit-review > * {
            position: relative;
            z-index: 1
        }

    .reviews-page-shell .form-note {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        margin: 10px 0 0;
        color: rgba(255,255,255,.5);
        font-size: 9.5px
    }

        .reviews-page-shell .form-note .material-symbols-rounded {
            font-size: 14px
        }

    .reviews-page-shell .reviews-feed {
        min-width: 0
    }

    .reviews-page-shell .feed-head {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 18px;
        margin-bottom: 18px
    }

        .reviews-page-shell .feed-head h2 {
            font-size: clamp(28px,3vw,42px);
            line-height: 1.3;
            letter-spacing: -1px;
            margin: 8px 0 0
        }

    .reviews-page-shell .feed-controls {
        display: flex;
        align-items: center;
        gap: 8px
    }

    .reviews-page-shell .sort-select {
        min-height: 43px;
        padding: 0 12px;
        border: 1px solid var(--line);
        border-radius: 13px;
        background: #fff;
        color: #42536e;
        font-size: 11px;
        font-weight: 800;
        outline: none
    }

    .reviews-page-shell .filter-row {
        display: flex;
        gap: 7px;
        flex-wrap: wrap;
        margin-bottom: 18px
    }

    .reviews-page-shell .filter-btn {
        position: relative;
        isolation: isolate;
        overflow: hidden;
        min-height: 39px;
        display: flex;
        align-items: center;
        gap: 5px;
        padding: 0 12px;
        border: 1px solid var(--line);
        border-radius: 12px;
        background: #fff;
        color: #52627b;
        font-size: 11px;
        font-weight: 800;
        cursor: pointer;
        transition: color .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease);
        transform: none !important
    }

        .reviews-page-shell .filter-btn:before {
            content: "";
            position: absolute;
            z-index: -1;
            inset: 0;
            background: linear-gradient(135deg,var(--blue),var(--violet));
            transform: scaleX(0);
            transform-origin: right;
            transition: transform .35s var(--ease)
        }

        .reviews-page-shell .filter-btn:hover,
        .reviews-page-shell .filter-btn.active {
            color: #fff;
            border-color: transparent;
            box-shadow: 0 10px 25px rgba(64,112,176,.2)
        }

            .reviews-page-shell .filter-btn:hover:before,
            .reviews-page-shell .filter-btn.active:before {
                transform: scaleX(1)
            }

        .reviews-page-shell .filter-btn .material-symbols-rounded {
            font-size: 15px;
            color: var(--gold);
            font-variation-settings: 'FILL' 1
        }

    .reviews-page-shell .reviews-list {
        display: grid;
        gap: 14px
    }

    .reviews-page-shell .review-card {
        position: relative;
        padding: 21px;
        border-radius: 25px;
        background: rgba(255,255,255,.87);
        border: 1px solid var(--line);
        box-shadow: 0 19px 58px rgba(20,49,93,.075);
        backdrop-filter: blur(16px);
        overflow: hidden;
        transition: border-color .35s var(--ease),box-shadow .35s var(--ease),opacity .3s var(--ease);
        transform: none !important
    }

        .reviews-page-shell .review-card:before {
            content: "";
            position: absolute;
            inset: 0 auto 0 0;
            width: 4px;
            background: linear-gradient(180deg,var(--blue),var(--violet),var(--magenta));
            transform: scaleY(0);
            transform-origin: center;
            transition: transform .43s var(--ease)
        }

        .reviews-page-shell .review-card:hover {
            transform: none !important;
            border-color: rgba(112,48,144,.28);
            box-shadow: 0 27px 72px rgba(20,49,93,.13)
        }

            .reviews-page-shell .review-card:hover:before {
                transform: scaleY(1)
            }

    .reviews-page-shell .review-top {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px
    }

    .reviews-page-shell .reviewer {
        display: flex;
        align-items: center;
        gap: 11px;
        min-width: 0
    }

    .reviews-page-shell .avatar {
        width: 48px;
        height: 48px;
        display: grid;
        place-items: center;
        flex: none;
        border-radius: 16px;
        background: linear-gradient(135deg,#eaf1fd,#f7e9f7);
        color: var(--violet);
        font-size: 18px;
        font-weight: 900;
        box-shadow: 0 10px 24px rgba(20,49,93,.08);
        animation: iconBreathe 3.6s ease-in-out infinite
    }

    .reviews-page-shell .reviewer strong,
    .reviews-page-shell .reviewer small {
        display: block
    }

    .reviews-page-shell .reviewer strong {
        font-size: 14px
    }

    .reviews-page-shell .reviewer small {
        margin-top: 3px;
        color: var(--muted);
        font-size: 10px
    }

    .reviews-page-shell .verified-badge {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        margin-right: 5px;
        padding: 3px 6px;
        border-radius: 7px;
        background: #edf8f2;
        color: #27845b;
        font-size: 8px;
        font-weight: 900
    }

        .reviews-page-shell .verified-badge .material-symbols-rounded {
            font-size: 12px;
            font-variation-settings: 'FILL' 1
        }

    .reviews-page-shell .review-score {
        text-align: left;
        flex: none
    }

    .reviews-page-shell .card-stars {
        display: flex;
        direction: ltr;
        color: var(--gold)
    }

        .reviews-page-shell .card-stars .material-symbols-rounded {
            font-size: 18px;
            font-variation-settings: 'FILL' 1
        }

    .reviews-page-shell .review-score small {
        display: block;
        margin-top: 3px;
        color: var(--muted);
        font-size: 9px
    }

    .reviews-page-shell .review-text {
        margin: 16px 0 13px;
        color: #4f6079;
        font-size: 13.5px;
        line-height: 1.95
    }

    .reviews-page-shell .review-tags {
        display: flex;
        flex-wrap: wrap;
        gap: 7px
    }

        .reviews-page-shell .review-tags span {
            display: inline-flex;
            align-items: center;
            gap: 5px;
            padding: 6px 9px;
            border-radius: 9px;
            background: #f2f5fa;
            color: #67758b;
            font-size: 9.5px;
            font-weight: 800
        }

        .reviews-page-shell .review-tags .material-symbols-rounded {
            font-size: 14px;
            color: var(--blue)
        }

    .reviews-page-shell .criteria {
        display: grid;
        grid-template-columns: repeat(3,1fr);
        gap: 7px;
        margin-top: 13px;
        padding-top: 13px;
        border-top: 1px solid var(--line)
    }

    .reviews-page-shell .criterion {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 6px;
        padding: 7px 8px;
        border-radius: 10px;
        background: #fafbfe;
        font-size: 9.5px;
        color: #6d7990;
        font-weight: 800
    }

        .reviews-page-shell .criterion b {
            color: var(--violet)
        }

    .reviews-page-shell .empty-state {
        display: none;
        place-items: center;
        text-align: center;
        padding: 50px 22px;
        border-radius: 25px;
        border: 1px dashed rgba(64,112,176,.25);
        background: rgba(255,255,255,.68)
    }

        .reviews-page-shell .empty-state.show {
            display: grid
        }

        .reviews-page-shell .empty-state .material-symbols-rounded {
            font-size: 47px;
            color: var(--violet)
        }

        .reviews-page-shell .empty-state h3 {
            margin: 11px 0 4px
        }

        .reviews-page-shell .empty-state p {
            margin: 0;
            color: var(--muted);
            font-size: 12px
        }

    .reviews-page-shell .toast {
        position: fixed;
        z-index: 1200;
        left: 22px;
        bottom: 22px;
        display: flex;
        align-items: center;
        gap: 10px;
        max-width: min(390px,calc(100% - 44px));
        padding: 14px 16px;
        border-radius: 17px;
        background: #071731;
        color: #fff;
        box-shadow: 0 22px 60px rgba(7,23,49,.28);
        opacity: 0;
        visibility: hidden;
        transform: translateY(20px);
        transition: .35s var(--ease)
    }

        .reviews-page-shell .toast.show {
            opacity: 1;
            visibility: visible;
            transform: translateY(0)
        }

        .reviews-page-shell .toast .material-symbols-rounded {
            width: 36px;
            height: 36px;
            display: grid;
            place-items: center;
            border-radius: 12px;
            background: rgba(54,181,122,.17);
            color: #83e2b2;
            font-variation-settings: 'FILL' 1
        }

        .reviews-page-shell .toast strong,
        .reviews-page-shell .toast small {
            display: block
        }

        .reviews-page-shell .toast strong {
            font-size: 12px
        }

        .reviews-page-shell .toast small {
            margin-top: 2px;
            color: rgba(255,255,255,.65);
            font-size: 9.5px
        }

    .reviews-page-shell [data-reveal] {
        opacity: 0;
        transform: translateY(22px);
        transition: opacity .7s var(--ease),transform .7s var(--ease)
    }

        .reviews-page-shell [data-reveal].revealed {
            opacity: 1;
            transform: none
        }

@media(max-width:1080px) {
    .reviews-page-shell .hero-visual {
        left: 2%;
        transform: translateY(-47%) scale(.82)
    }

    .reviews-page-shell .summary-shell {
        grid-template-columns: 280px 1fr
    }

    .reviews-page-shell .reviews-layout {
        grid-template-columns: 340px minmax(0,1fr)
    }
}

@media(max-width:850px) {
    .reviews-page-shell .hero-visual {
        opacity: .35;
        left: -105px;
        transform: translateY(-47%) scale(.73)
    }

    .reviews-page-shell .summary-shell {
        grid-template-columns: 1fr
    }

    .reviews-page-shell .average-card {
        min-height: 270px
    }

    .reviews-page-shell .reviews-layout {
        grid-template-columns: 1fr
    }

    .reviews-page-shell .review-form-card {
        position: relative;
        top: auto
    }
}

@media(max-width:700px) {
    .reviews-page-shell .hero {
        min-height: 800px;
        align-items: start
    }

    .reviews-page-shell .hero-content {
        max-width: 100%;
        padding-top: 335px;
        text-align: center
    }

    .reviews-page-shell .hero-kicker {
        margin-inline: auto
    }

    .reviews-page-shell .hero h1 {
        max-width: 590px;
        margin: 18px auto 14px;
        font-size: clamp(37px,10vw,51px);
        line-height: 1.23;
        letter-spacing: -.9px;
        text-wrap: balance
    }

    .reviews-page-shell .hero p {
        max-width: 560px;
        margin-inline: auto;
        font-size: 14px
    }

    .reviews-page-shell .hero-proof {
        justify-content: center;
        gap: 7px
    }

        .reviews-page-shell .hero-proof span {
            font-size: 10.5px;
            padding: 8px
        }

    .reviews-page-shell .hero-visual {
        width: 205px;
        height: 205px;
        left: 50%;
        top: 108px;
        opacity: .97;
        transform: translateX(-50%);
        filter: drop-shadow(0 28px 45px rgba(3,12,32,.3))
    }

        .reviews-page-shell .hero-visual .rating-core {
            width: 84px;
            height: 84px;
            border-radius: 25px
        }

            .reviews-page-shell .hero-visual .rating-core strong {
                font-size: 25px
            }

            .reviews-page-shell .hero-visual .rating-core small {
                font-size: 8px
            }

        .reviews-page-shell .hero-visual .rating-stars-orbit {
            inset: 12px
        }

            .reviews-page-shell .hero-visual .rating-stars-orbit.inner {
                inset: 45px
            }

        .reviews-page-shell .hero-visual .rating-bubble {
            width: 45px;
            height: 45px;
            border-radius: 15px;
            background: rgba(255,255,255,.16);
            border-color: rgba(255,255,255,.3)
        }

            .reviews-page-shell .hero-visual .rating-bubble .material-symbols-rounded {
                font-size: 22px
            }

    .reviews-page-shell .summary-section {
        padding: 69px 0 38px
    }

    .reviews-page-shell .section-head {
        text-align: right;
        margin-bottom: 25px
    }

        .reviews-page-shell .section-head h2 {
            font-size: 34px
        }

    .reviews-page-shell .summary-points {
        grid-template-columns: 1fr
    }

    .reviews-page-shell .reviews-main {
        padding: 35px 0 78px
    }

    .reviews-page-shell .review-form-card {
        padding: 22px;
        border-radius: 26px
    }

    .reviews-page-shell .field-grid {
        grid-template-columns: 1fr
    }

    .reviews-page-shell .field.full {
        grid-column: auto
    }

    .reviews-page-shell .stars-input {
        justify-content: center
    }

    .reviews-page-shell .star-btn {
        width: 42px;
        height: 42px
    }

    .reviews-page-shell .feed-head {
        display: block
    }

    .reviews-page-shell .feed-controls {
        margin-top: 12px
    }

    .reviews-page-shell .sort-select {
        width: 100%
    }

    .reviews-page-shell .filter-row {
        display: grid;
        grid-template-columns: repeat(3,1fr)
    }

    .reviews-page-shell .filter-btn {
        justify-content: center
    }

        .reviews-page-shell .filter-btn:first-child {
            grid-column: 1/-1
        }

    .reviews-page-shell .review-card {
        padding: 18px;
        border-radius: 22px
    }

    .reviews-page-shell .review-top {
        align-items: flex-start
    }

    .reviews-page-shell .criteria {
        grid-template-columns: 1fr
    }

    .reviews-page-shell .toast {
        right: 12px;
        left: 12px;
        bottom: 12px;
        max-width: none
    }
}

@media(max-width:430px) {
    .reviews-page-shell .hero {
        min-height: 780px
    }

    .reviews-page-shell .hero-content {
        padding-top: 315px
    }

    .reviews-page-shell .hero-visual {
        top: 102px;
        width: 190px;
        height: 190px
    }

    .reviews-page-shell .hero-proof span {
        flex: 1 1 calc(50% - 7px);
        justify-content: center
    }

    .reviews-page-shell .summary-section {
        padding-top: 58px
    }

    .reviews-page-shell .average-card,
    .reviews-page-shell .distribution-card {
        border-radius: 25px;
        padding: 21px
    }

    .reviews-page-shell .distribution-row {
        grid-template-columns: 47px 1fr 32px
    }

    .reviews-page-shell .review-form-card {
        padding: 19px
    }

    .reviews-page-shell .filter-row {
        grid-template-columns: 1fr 1fr
    }

    .reviews-page-shell .filter-btn:first-child {
        grid-column: 1/-1
    }

    .reviews-page-shell .reviewer {
        align-items: flex-start
    }

    .reviews-page-shell .avatar {
        width: 43px;
        height: 43px;
        border-radius: 14px
    }

    .reviews-page-shell .verified-badge {
        display: flex;
        width: max-content;
        margin: 4px 0 0
    }

    .reviews-page-shell .review-text {
        font-size: 12.5px
    }
}

@media(prefers-reduced-motion:reduce) {
    .reviews-page-shell [data-reveal] {
        opacity: 1;
        transform: none
    }
}

@keyframes heroGrid {
    to {
        background-position: 0 0,0 0,156px 0
    }
}

@keyframes textShine {
    to {
        background-position: 230% center
    }
}

@keyframes orbit {
    to {
        transform: rotate(360deg)
    }
}

@keyframes coreFloat {
    0%,100% {
        transform: translate(-50%,-50%)
    }

    50% {
        transform: translate(-50%,calc(-50% - 10px))
    }
}

@keyframes coreRing {
    0% {
        opacity: .8;
        transform: scale(.9)
    }

    75%,100% {
        opacity: 0;
        transform: scale(1.18)
    }
}

@keyframes satellite {
    0%,100% {
        transform: translateY(0) rotate(0)
    }

    50% {
        transform: translateY(-9px) rotate(3deg)
    }
}

@keyframes iconBreathe {
    0%,100% {
        transform: translateY(0) scale(1)
    }

    50% {
        transform: translateY(-4px) scale(1.04)
    }
}

@keyframes ambient {
    0%,100% {
        transform: translate3d(0,0,0)
    }

    50% {
        transform: translate3d(0,-18px,0)
    }
}

@keyframes gridMove {
    to {
        background-position: 48px 48px,48px 48px
    }
}
