.page-home {
    --framework-primary: var(--brand-primary, #6e52b5);
}

.home-framework {
    --framework-primary: var(--brand-primary, #6e52b5);
    --framework-ink: var(--brand-ink, #292433);
    --framework-muted: var(--brand-muted, #756f80);
    background: var(--brand-paper, #fff);
    color: var(--framework-ink);
}

@media screen and (max-width: 1300px) and (min-width: 981px) {
    .page-home {
        overflow-x: clip;
    }

    .page-home .banner.home_lunbo,
    .page-home .banner.home_lunbo .swiper-container,
    .page-home .banner.home_lunbo .swiper-wrapper,
    .page-home .banner.home_lunbo .swiper-slide {
        min-width: 0;
        width: 100%;
    }

    .page-home .z_footer_top,
    .page-home .z_footer_btm {
        width: calc(100% - 48px) !important;
        max-width: none !important;
    }

    .page-home .news-quicknav-section .w1200 {
        width: calc(100% - 48px) !important;
        max-width: none !important;
    }

    .page-home .news-card {
        display: block !important;
        width: 100% !important;
    }

    .page-home .news-main {
        width: 100% !important;
        border-right: 0;
        padding-right: 0;
    }

    .page-home .news-sidebar {
        width: 100% !important;
        margin-top: 24px;
    }

    .page-home .sidebar-list {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.home-framework__section {
    padding: 78px 0;
    scroll-margin-top: 90px;
}

.home-framework__honors {
    background: #faf7f8;
}

.home-framework__heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 34px;
}

.home-framework__heading > div {
    position: relative;
    padding-left: 0;
}

.home-framework__heading > div > span {
    display: none;
}

.home-framework__heading p {
    margin: 0 0 5px;
    color: #9b9292;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .16em;
}

.home-framework__heading h2 {
    margin: 0;
    color: var(--framework-primary);
    font-size: 32px;
    font-weight: 750;
    line-height: 1.2;
}

.home-framework__heading > a {
    color: var(--framework-primary);
    font-size: 14px;
}

.page-home .test-tools-section .section-title h2 {
    color: var(--framework-primary) !important;
}

/* Open typographic treatment for the first visual; the image remains primary. */
.home-banner-copy {
    position: absolute;
    z-index: 12;
    top: 50%;
    left: 50%;
    width: min(980px, calc(100% - 48px));
    max-width: none;
    color: #fff;
    pointer-events: none;
    text-align: center;
    transform: translate(-50%, -50%);
    text-shadow: 0 4px 26px rgba(0, 0, 0, .64);
}

.home-banner-eyebrow {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 22px;
    color: var(--brand-highlight, #c8baff);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .32em;
    line-height: 1.4;
}

.home-banner-eyebrow::before {
    content: "";
    width: 44px;
    height: 2px;
    background: var(--brand-highlight, #c8baff);
}

.home-banner-copy h1 {
    margin: 0;
    color: #fff;
    font-size: clamp(46px, 5.2vw, 86px);
    font-weight: 800;
    letter-spacing: .04em;
    line-height: 1.06;
}

.home-banner-sub {
    margin: 20px 0 0;
    color: rgba(255, 255, 255, .94);
    font-size: clamp(19px, 1.8vw, 28px);
    font-weight: 500;
    letter-spacing: .1em;
    line-height: 1.5;
}

.home-banner-sub em {
    position: relative;
    color: var(--brand-highlight, #c8baff);
    font-style: normal;
    font-weight: 700;
}

.home-banner-sub em svg {
    position: absolute;
    left: -4%;
    bottom: -10px;
    width: 108%;
    height: 12px;
    overflow: visible;
}

.home-banner-sub em svg path {
    fill: none;
    stroke: var(--brand-highlight, #c8baff);
    stroke-width: 4;
    stroke-linecap: round;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    opacity: .95;
}

/* Entrance: lines rise in sequence, then the hand-drawn underline strokes on. */
.home-banner-eyebrow,
.home-banner-copy h1,
.home-banner-sub {
    opacity: 0;
    transform: translateY(26px);
}

.home-banner-eyebrow { animation: bannerCopyRise .7s .10s cubic-bezier(.22, 1, .36, 1) forwards; }
.home-banner-copy h1 { animation: bannerCopyRise .8s .28s cubic-bezier(.22, 1, .36, 1) forwards; }
.home-banner-sub { animation: bannerCopyRise .8s .52s cubic-bezier(.22, 1, .36, 1) forwards; }
.home-banner-sub em svg path { animation: bannerUnderlineDraw .9s 1.15s cubic-bezier(.5, 0, .3, 1) forwards; }

@keyframes bannerCopyRise {
    to { opacity: 1; transform: translateY(0); }
}

@keyframes bannerUnderlineDraw {
    to { stroke-dashoffset: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .home-banner-eyebrow,
    .home-banner-copy h1,
    .home-banner-sub {
        opacity: 1;
        transform: none;
        animation: none;
    }

    .home-banner-sub em svg path {
        stroke-dashoffset: 0;
        animation: none;
    }
}

.home_lunbo .swiper-slide::before {
    position: absolute;
    z-index: 2;
    inset: 0;
    background: linear-gradient(180deg, rgba(5, 8, 14, .28) 0%, rgba(5, 8, 14, .56) 100%);
    content: '';
    pointer-events: none;
}

.home-framework__mentor-rail,
.home-framework__tab-panel {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

/* The new mentor rail lives inside .home-framework__mentor-nav as a flex
   thumbnail strip. The rules below intentionally opt out of the grid
   treatment that the original (now-removed) mentor-card grid relied on. */
.home-framework__mentor-nav .home-framework__mentor-rail {
    display: flex;
    grid-template-columns: none;
    grid-auto-flow: initial;
    grid-auto-columns: auto;
    gap: 28px;
}

.home-framework__mentor-rail {
    overflow-x: auto;
    grid-auto-flow: column;
    grid-auto-columns: minmax(260px, 1fr);
    grid-template-columns: none;
    padding-bottom: 10px;
    scroll-snap-type: x proximity;
    scrollbar-color: rgba(var(--brand-primary-rgb), .42) #eeeae6;
    scrollbar-width: thin;
}

/* The new showcase rail is a flex strip, not a horizontal scroll-snap grid. */
.home-framework__mentor-nav .home-framework__mentor-rail {
    overflow-x: auto;
    grid-auto-flow: initial;
    grid-auto-columns: auto;
    grid-template-columns: none;
    padding-bottom: 12px;
    scroll-snap-type: none;
    scrollbar-color: rgba(118, 87, 217, .32) transparent;
}

.home-framework__mentor-card {
    scroll-snap-align: start;
}

.home-framework__mentor-card,
.home-framework__honor-card,
.home-framework__person-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #ebe7e3;
    border-radius: 18px;
    background: #fff;
}

.home-framework__mentor-card figure {
    height: 290px;
    margin: 0;
    overflow: hidden;
    background: #f0ece8;
}

.home-framework__mentor-card figure img,
.home-framework__person-card > img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center bottom;
}

.home-framework__mentor-card > div,
.home-framework__honor-card > div,
.home-framework__person-card > div {
    padding: 20px;
}

.home-framework__mentor-card small,
.home-framework__honor-card small,
.home-framework__person-card small {
    color: var(--framework-primary);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
}

.home-framework__mentor-card h3,
.home-framework__honor-card h3,
.home-framework__person-card h3 {
    margin: 8px 0 7px;
    font-size: 20px;
}

.home-framework__mentor-card p,
.home-framework__person-card p {
    min-height: 42px;
    margin: 0;
    color: var(--framework-muted);
    font-size: 14px;
    line-height: 1.6;
}

.home-framework__tabs {
    display: flex;
    gap: 30px;
    margin-bottom: 28px;
    border-bottom: 1px solid #ddd7d2;
}

.home-framework__tabs button {
    position: relative;
    padding: 0 2px 14px;
    border: 0;
    background: transparent;
    color: #877f7f;
    cursor: pointer;
    font: inherit;
}

.home-framework__tabs button.is-active {
    color: var(--framework-primary);
    font-weight: 700;
}

.home-framework__tabs button.is-active::after {
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 3px;
    background: var(--framework-primary);
    content: '';
}

.home-framework__tab-panel[hidden] {
    display: none;
}

.home-framework__tab-panel[data-framework-panel="people"] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.home-framework__honor-card > img {
    display: block;
    width: 100%;
    height: 210px;
    object-fit: contain;
    background: #f5f2ed;
}

.home-framework__person-card {
    display: grid;
    grid-template-columns: 42% 58%;
    min-height: 210px;
}

.home-framework__person-card > img {
    background: #f0ece8;
}

.home-framework__story-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 28px;
}

.home-framework__story-grid article {
    min-width: 0;
}

.home-framework__story-cover,
.home-framework__company-video video,
.home-framework__company-video img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 18px;
    background: #eee;
    object-fit: cover;
}

.home-framework__story-cover {
    position: relative;
    overflow: hidden;
    padding: 0;
    border: 0;
    cursor: pointer;
}

.home-framework__story-cover img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--motion-med) var(--ease-standard);
}

.home-framework__story-cover span,
.student-stories__cover span {
    position: absolute;
    top: 50%;
    left: 50%;
    display: grid;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: rgba(var(--brand-primary-rgb), .92);
    box-shadow: 0 10px 26px rgba(74, 17, 20, .22);
    color: #fff;
    font-size: 17px;
    place-items: center;
    transform: translate(-50%, -50%);
}

.home-framework__story-cover:hover img {
    transform: scale(1.025);
}

.home-framework__story-grid h3 {
    margin: 14px 0 0;
    font-size: 17px;
    line-height: 1.55;
}

.home-framework__story-grid .home-framework__story-description {
    display: -webkit-box;
    margin: 7px 0 0;
    overflow: hidden;
    color: #756f6b;
    font-size: 13px;
    line-height: 1.65;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.home-framework__company-grid {
    display: grid;
    grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
    align-items: center;
    gap: 64px;
}

.home-framework__company-copy p {
    margin: 0;
    font-size: 19px;
    line-height: 2;
}

.home-framework__metrics {
    padding: 50px 0;
    background: linear-gradient(100deg, var(--brand-primary-deep, #4c2c9a) 0%, var(--brand-primary, #7657d9) 55%, var(--brand-primary-deep, #4c2c9a) 100%);
    color: #fff;
    scroll-margin-top: 90px;
}

.home-framework__story-cover:focus-visible,
.home-framework__tabs button:focus-visible,
.story-video-modal__bar button:focus-visible {
    outline: 3px solid rgba(var(--brand-primary-rgb), .35);
    outline-offset: 4px;
}

.home-framework__metrics .w1200 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 28px;
}

.home-framework__metrics .w1200 > div {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
    padding-left: 28px;
}

.home-framework__metrics .w1200 > div::before {
    position: absolute;
    top: 2px;
    bottom: 2px;
    left: 0;
    width: 1px;
    background: rgba(255, 255, 255, .24);
    content: '';
}

.home-framework__metrics strong {
    display: flex;
    align-items: flex-end;
    gap: 5px;
    color: #fff;
    font-size: 48px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0;
}

.home-framework__metrics strong [data-home-counter] {
    color: inherit;
    font: inherit;
    line-height: inherit;
    letter-spacing: inherit;
}

.home-framework__metrics strong small {
    padding-bottom: 5px;
    color: rgba(255, 255, 255, .92);
    font-size: 19px;
    font-weight: 700;
    line-height: 1;
}

.home-framework__metrics .w1200 > div > span:last-child {
    color: rgba(255, 255, 255, .86);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.55;
}

.story-video-modal[hidden] {
    display: none;
}

.story-video-modal {
    position: fixed;
    z-index: 9999;
    inset: 0;
    display: grid;
    padding: 24px;
    background: rgba(20, 18, 18, .74);
    place-items: center;
}

.story-video-modal__dialog {
    width: min(960px, 100%);
    overflow: hidden;
    border-radius: 18px;
    background: #111;
    box-shadow: 0 28px 80px rgba(0, 0, 0, .35);
}

.story-video-modal__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 14px 18px;
    background: #fff;
}

.story-video-modal__bar strong {
    overflow: hidden;
    font-size: 15px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.story-video-modal__bar button {
    padding: 0;
    border: 0;
    background: transparent;
    color: #555;
    cursor: pointer;
    font-size: 28px;
    line-height: 1;
}

.story-video-modal video {
    display: block;
    width: 100%;
    max-height: 76vh;
    background: #000;
}

/* Vertical (9:16) playback: narrow phone-style dialog instead of the wide
   960px editorial frame, so portrait footage isn't letterboxed. */
.story-video-modal--vertical .story-video-modal__dialog {
    width: auto;
    max-width: min(420px, 100%);
}

.story-video-modal--vertical video {
    width: auto;
    max-width: 100%;
    height: min(82vh, 760px);
    max-height: 82vh;
    aspect-ratio: 9 / 16;
    margin: 0 auto;
    object-fit: cover;
}

body.story-video-open {
    overflow: hidden;
}

@media screen and (max-width: 980px) {
    .home-framework__section {
        padding: 56px 0;
    }

    .home-framework__tab-panel {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-framework__tab-panel[data-framework-panel="people"] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-framework__story-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-framework__company-grid {
        gap: 36px;
    }
}

@media screen and (max-width: 1240px) {
    .page-home .home-framework .w1200,
    .page-home .home-framework__metrics .w1200 {
        width: calc(100% - 48px) !important;
        max-width: none !important;
    }
}

@media screen and (max-width: 768px) {
    .home-framework__section {
        padding: 44px 0;
    }

    .home-framework__heading {
        align-items: flex-start;
        margin-bottom: 26px;
    }

    .home-framework__heading > div {
        padding-left: 0;
    }

    .home-framework__heading h2 {
        font-size: 25px;
    }

    .home-framework__heading > a {
        padding-top: 22px;
        font-size: 12px;
        white-space: nowrap;
    }

    .home-framework__mentor-rail {
        grid-auto-columns: 74vw;
    }

    .home-framework__mentor-card figure {
        height: 250px;
    }

    .home-framework__tab-panel,
    .home-framework__company-grid {
        grid-template-columns: 1fr;
    }

    .home-framework__tab-panel[data-framework-panel="people"] {
        grid-template-columns: 1fr;
    }

    .home-framework__story-grid {
        gap: 24px;
    }

    .home-framework__company-grid {
        gap: 24px;
    }

    .home-framework__company-copy p {
        font-size: 16px;
        line-height: 1.85;
    }

    .home-framework__metrics .w1200 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 28px 20px;
    }

    .home-framework__metrics strong {
        font-size: 34px;
    }

    .home-framework__metrics strong small {
        padding-bottom: 3px;
        font-size: 15px;
    }

    .home-framework__metrics .w1200 > div {
        gap: 9px;
        padding-left: 18px;
    }

    .home-framework__metrics .w1200 > div > span:last-child {
        font-size: 14px;
    }
}

/* Homepage polish: keep the fixed navigation clear of the first visual. */
.page-home .banner.home_lunbo {
    margin-top: 80px;
}

/* Media资讯: title on the left, quiet category controls on the right, and
   four editorial cards per category. */
.news-quicknav-section {
    padding: 62px 0 72px !important;
    background: #f7f4f3 !important;
}

.news-quicknav-section > .w1200 {
    width: min(1200px, calc(100% - 48px)) !important;
    max-width: 1200px !important;
    padding: 0 !important;
}

.news-tab-bar {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 30px;
    margin-bottom: 30px !important;
    padding: 0 !important;
}

.news-main-title {
    display: flex;
    align-items: baseline;
    gap: 9px;
    margin: 0 !important;
    color: var(--framework-primary) !important;
    font-size: 30px !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
}

.news-main-title-wrap { position: relative; padding-top: 18px; }
.news-main-title-wrap::before { content: ''; position: absolute; top: 0; left: 0; width: 30px; height: 3px; background: var(--framework-primary); }
.news-eyebrow { margin: 0 0 6px; color: var(--framework-primary); font-size: 11px; font-weight: 800; letter-spacing: .24em; text-transform: uppercase; }

.news-main-title strong {
    color: var(--framework-primary) !important;
    font-weight: 800;
}

.news-main-title span {
    color: #777176;
    font-size: 19px;
    font-weight: 400;
}

.news-main-title::after {
    display: none !important;
}

.news-tab-actions {
    min-width: 0;
}

.news-tabs {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 24px !important;
    max-width: 730px;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: auto !important;
    scrollbar-width: none;
}

.news-tabs::-webkit-scrollbar {
    display: none;
}

.news-tab-item {
    flex: 0 0 auto;
    min-height: 32px;
    padding: 6px 0 !important;
    border: 0 !important;
    border-radius: 20px;
    background: transparent !important;
    color: #a0a4ab !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.2;
    cursor: pointer;
    transition: color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), padding var(--motion-fast) var(--ease-standard);
}

.news-tab-item:hover,
.news-tab-item:focus-visible {
    color: var(--framework-primary) !important;
}

.news-tab-item.active {
    padding: 8px 18px !important;
    background: var(--framework-primary) !important;
    color: #fff !important;
    font-weight: 600 !important;
}

.news-tab-item.active::after {
    display: none !important;
}

.news-content {
    display: none !important;
    flex-direction: column;
}

.news-content.active {
    display: flex !important;
}

.news-content[hidden] {
    display: none !important;
}

.news-list {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px !important;
    width: 100% !important;
}

.news-item {
    display: block !important;
    min-width: 0;
    height: auto !important;
    padding: 0 !important;
    overflow: hidden;
    border: 1px solid #e7e2e0 !important;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(60, 38, 32, .055);
    transition: border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);
}

.news-image {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1.85;
    overflow: hidden;
    background: #e6e9ee;
}

button.news-image,
button.news-title {
    border: 0;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

button.news-image {
    padding: 0;
}

.news-image .news-video-play {
    position: absolute;
    right: 14px;
    bottom: 14px;
    display: grid;
    width: 38px;
    height: 38px;
    box-sizing: border-box;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 11px;
    background: rgba(var(--brand-conversion-rgb, 181,64,76), .94);
    box-shadow: 0 6px 16px rgba(93, 29, 37, .24);
    color: #fff;
    font-size: 0;
    transform: none;
    transition: transform var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);
}

.news-image.news-video-trigger:hover .news-video-play,
.news-image.news-video-trigger:focus-visible .news-video-play {
    background: var(--brand-conversion-deep, #8f2f3b);
    box-shadow: 0 8px 20px rgba(93, 29, 37, .32);
    transform: translateY(-2px);
}

.news-image .news-video-icon {
    display: block;
    width: 0 !important;
    height: 0 !important;
    transform: translateX(1px);
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 10px solid #fff;
}

.news-item .news-title.news-video-trigger {
    width: 100%;
    padding: 0;
    background: transparent;
}

.news-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--motion-med) var(--ease-standard);
}

.news-image span {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    color: #8b929c;
    font-size: 14px;
}

.news-item:hover .news-image img {
    transform: scale(1.035);
}

.news-item:hover {
    border-color: rgba(179, 33, 45, .34) !important;
    box-shadow: 0 16px 30px rgba(60, 38, 32, .11);
    transform: translateY(-5px);
}

.news-item__body {
    min-height: 112px;
    padding: 12px 14px 13px;
}

.news-item .news-title {
    display: -webkit-box !important;
    overflow: hidden !important;
    max-width: none !important;
    margin: 0 !important;
    color: #262a30 !important;
    font-size: 16px !important;
    font-weight: 650 !important;
    line-height: 1.45 !important;
    text-decoration: none;
    white-space: normal !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.news-item .news-title:hover {
    color: var(--framework-primary) !important;
}

.news-item__body p {
    display: -webkit-box;
    overflow: hidden;
    margin: 9px 0 0;
    color: #8a9098;
    font-size: 13px;
    line-height: 1.6;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.news-content .news-more-link {
    align-self: flex-end;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 22px;
    margin-right: 92px;
    padding: 0 0 6px;
    border: 0;
    border-bottom: 1px solid rgba(179, 33, 45, .5);
    border-radius: 0;
    color: var(--framework-primary) !important;
    font-size: 13px !important;
    line-height: 1.2;
    text-decoration: none;
}

.news-content .news-more-link::after {
    content: '→' !important;
    display: inline-block !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    border: 0 !important;
    transform: none !important;
    font-size: 16px !important;
    line-height: 1 !important;
    vertical-align: 0;
}

.news-content .news-more-link:hover {
    border-color: var(--framework-primary);
    color: var(--framework-primary) !important;
}

/* Brand credentials: a stepped certificate rail, with one clear control. */
.home-framework__honor-panel:not([hidden]) {
    display: block !important;
}

.home-framework__honor-stage {
    position: relative;
    height: 420px;
    margin: 0 46px;
    overflow: hidden;
}

.home-framework__honor-card {
    position: absolute;
    top: 18px;
    left: 50%;
    display: block;
    width: min(360px, 42%);
    min-height: 350px;
    border: 1px solid #e1e4e8;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 18px 38px rgba(37, 43, 52, .12);
    opacity: 0;
    pointer-events: none;
    transform: translateX(-50%) scale(.62);
    transition: left var(--motion-slow) var(--ease-standard), opacity var(--motion-slow) var(--ease-standard), transform var(--motion-slow) var(--ease-standard), filter var(--motion-slow) var(--ease-standard);
}

.home-framework__honor-card > img {
    width: 100%;
    height: 260px;
    border-radius: 10px 10px 0 0;
    object-fit: contain;
    background: #f4f5f6;
}

.home-framework__honor-card > div {
    padding: 15px 18px 17px;
}

.home-framework__honor-card small {
    color: var(--framework-primary);
    font-size: 10px;
    letter-spacing: .12em;
}

.home-framework__honor-card h3 {
    margin: 6px 0 0;
    color: #33383e;
    font-size: 15px;
    line-height: 1.45;
}

.home-framework__honor-card.is-active {
    z-index: 5;
    opacity: 1;
    pointer-events: auto;
    transform: translateX(-50%) scale(1);
}

.home-framework__honor-card.is-prev,
.home-framework__honor-card.is-next {
    z-index: 3;
    opacity: .7;
    pointer-events: auto;
    filter: saturate(.82);
    transform: translateX(-50%) scale(.78);
}

.home-framework__honor-card.is-prev { left: 22%; }
.home-framework__honor-card.is-next { left: 78%; }

.home-framework__honor-card.is-far-prev,
.home-framework__honor-card.is-far-next {
    z-index: 1;
    opacity: .38;
    transform: translateX(-50%) scale(.62);
}

.home-framework__honor-card.is-far-prev { left: 4%; }
.home-framework__honor-card.is-far-next { left: 96%; }

.home-framework__honor-arrow {
    position: absolute;
    z-index: 8;
    top: 50%;
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border: 1px solid #d8dde3;
    border-radius: 50%;
    background: rgba(255,255,255,.92);
    color: #646d78;
    cursor: pointer;
    font-size: 23px;
    line-height: 1;
    transform: translateY(-50%);
    transition: border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);
}

.home-framework__honor-arrow:hover,
.home-framework__honor-arrow:focus-visible {
    border-color: var(--framework-primary);
    color: var(--framework-primary);
    box-shadow: 0 7px 18px rgba(33, 38, 45, .12);
}

.home-framework__honor-arrow.is-prev { left: 0; }
.home-framework__honor-arrow.is-next { right: 0; }

@media screen and (max-width: 980px) {
    .page-home .banner.home_lunbo {
        margin-top: 55px;
    }

    .news-quicknav-section {
        padding: 48px 0 58px !important;
    }

    .news-tab-bar {
        align-items: flex-start !important;
        flex-direction: column;
        gap: 18px;
    }

    .news-tab-actions {
        width: 100%;
        max-width: 100%;
        overflow: hidden;
    }

    .news-tabs {
        justify-content: flex-start !important;
        max-width: 100%;
        width: 100%;
    }

    .news-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-framework__honor-stage {
        height: 390px;
        margin: 0 40px;
    }

    .home-framework__honor-card {
        width: min(330px, 58%);
    }

    .home-framework__honor-card.is-prev { left: 15%; }
    .home-framework__honor-card.is-next { left: 85%; }
}

@media screen and (max-width: 620px) {
    .news-main-title {
        font-size: 25px !important;
    }

    .news-main-title span {
        font-size: 16px;
    }

    .news-list {
        grid-template-columns: 1fr;
        gap: 14px !important;
    }

    .news-item {
        display: grid !important;
        grid-template-columns: 136px minmax(0, 1fr);
    }

    .news-image {
        aspect-ratio: auto;
        min-height: 126px;
        height: 100%;
    }

    .news-item__body {
        min-height: 0;
        padding: 14px;
    }

    .home-banner-copy {
        width: calc(100% - 32px);
    }

    .home-banner-eyebrow {
        margin-bottom: 14px;
        font-size: 10px;
        letter-spacing: .14em;
    }

    .home-banner-eyebrow::before {
        display: none;
    }

    .home-banner-copy h1 {
        font-size: clamp(40px, 11vw, 54px);
    }

    .home-banner-sub {
        margin-top: 14px;
        font-size: 16px;
        letter-spacing: .08em;
    }

    .news-content .news-more-link {
        margin-right: 58px;
    }

    .home-framework__honor-stage {
        height: 350px;
        margin: 0 10px;
    }

    .home-framework__honor-card {
        top: 8px;
        width: 82%;
        min-height: 300px;
    }

    .home-framework__honor-card > img {
        height: 210px;
    }

    .home-framework__honor-card > div {
        padding: 12px 14px;
    }

    .home-framework__honor-card.is-prev { left: 8%; }
    .home-framework__honor-card.is-next { left: 92%; }

    .home-framework__honor-arrow {
        width: 38px;
        height: 38px;
        font-size: 19px;
    }
}

/* Mentor showcase: a single large card with a thumbnail rail underneath.
   The pattern is adapted from the design reference at
   /Users/hope/Desktop/app/src/sections/MentorShowcase.tsx and tuned to the
   houbo123 warm-paper visual system. All colors come from existing tokens. */

.home-framework__mentor-stage {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 22px;
    isolation: isolate;
}

/* Soft atmospheric gradient behind the showcase.
   Avoids the red bg-mentor.jpg from the reference because the existing site
   uses a warm paper surface; this gradient preserves that. */
.home-framework__mentor-stage::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: -34px -8px 0;
    background: transparent;
    border-radius: 24px;
    pointer-events: none;
}

/* The featured card: photo on the left, info on the right. */
.home-framework__mentor-card {
    position: relative;
    display: grid;
    grid-template-columns: 36% minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    align-items: stretch;
    width: 100%;
    max-width: 1040px;
    height: 410px;
    min-height: 0;
    overflow: hidden;
    border: 1px solid var(--home-line);
    border-radius: 12px;
    background: var(--home-paper);
    box-shadow: 0 16px 40px rgba(74, 47, 36, .09);
    transition: box-shadow var(--motion-med) var(--ease-standard), border-color var(--motion-med) var(--ease-standard), transform var(--motion-med) var(--ease-standard);
}

.home-framework__mentor-card.is-fading {
    opacity: 0;
    transform: translateY(8px);
}

.home-framework__mentor-card:hover {
    border-color: rgba(var(--brand-accent-rgb), .28);
    box-shadow: 0 30px 60px rgba(109, 38, 34, .16);
}

.page-home .home-framework__mentor-stage { padding: 0; background: transparent; }
.page-home .home-framework__mentor-card { max-width: 1040px; }
.page-home .home-framework__mentor-photo { background: #f7f4f0; }
.page-home .home-framework__mentor-info { padding: 40px 36px; }
.page-home .home-framework__mentor-name { font-size: 34px; }
.page-home .home-framework__mentor-intro { font-size: 15px; line-height: 1.55; }

.home-framework__mentor-photo {
    position: relative;
    overflow: hidden;
    min-height: 0;
    min-width: 0;
    background:
        linear-gradient(160deg, rgba(118, 87, 217, .05), rgba(216, 162, 94, .08)),
        #f3eee7;
}

.home-framework__mentor-photo img {
    position: absolute;
    left: 50%;
    bottom: 0;
    display: block;
    width: auto;
    height: 82%;
    max-width: 92%;
    object-fit: contain;
    object-position: center bottom;
    transform: translateX(-50%);
    transform-origin: center bottom;
    transition: transform var(--motion-slow) var(--ease-standard);
}

.home-framework__mentor-photo img[hidden] {
    display: none !important;
}

.home-framework__mentor-card:hover .home-framework__mentor-photo img {
    transform: translateX(-50%);
}

.home-framework__mentor-photo .home-framework__mentor-photo-fallback {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    color: #c2a99c;
    font-size: 28px;
    font-weight: 800;
    letter-spacing: .35em;
    background: linear-gradient(160deg, #f3eee7 0%, #e7dccd 100%);
}

.home-framework__mentor-photo .home-framework__mentor-photo-fallback[hidden] {
    display: none;
}

.home-framework__mentor-watermark {
    position: absolute;
    z-index: 1;
    top: 18px;
    right: 26px;
    color: rgba(var(--brand-accent-rgb), .22);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 110px;
    font-weight: 800;
    line-height: 1;
    pointer-events: none;
    user-select: none;
    letter-spacing: -2px;
}

.home-framework__mentor-info {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
    min-width: 0;
    min-height: 0;
    padding: 44px 38px;
}

.home-framework__mentor-label {
    margin: 0;
    min-height: 0;
    color: var(--home-primary-bright);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .35em;
    text-transform: uppercase;
}

.home-framework__mentor-card .home-framework__mentor-label {
    min-height: 0;
}

.home-framework__mentor-name {
    margin: 2px 0 4px;
    color: var(--home-ink);
    font-size: 38px;
    font-weight: 750;
    line-height: 1.15;
    letter-spacing: .02em;
}

.home-framework__mentor-info .home-framework__mentor-name {
    margin: 2px 0 4px;
}

.home-framework__mentor-card .home-framework__mentor-title {
    display: block;
    max-width: 100%;
    min-height: 0;
    margin: -1px 0 3px;
    color: var(--home-primary);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .02em;
}

.home-framework__mentor-card .home-framework__mentor-title[hidden] {
    display: none;
}

.home-framework__mentor-badge {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    max-width: 100%;
    padding: 7px 18px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--home-primary) 0%, var(--home-primary-bright) 100%);
    box-shadow: 0 8px 18px rgba(118, 87, 217, .18);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .04em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.home-framework__mentor-divider {
    width: 44px;
    height: 3px;
    margin: 6px 0 4px;
    border-radius: 2px;
    background: linear-gradient(90deg, #d8a25e 0%, rgba(216, 162, 94, 0) 100%);
}

.home-framework__mentor-intro {
    margin: 0;
    color: #564e51;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.85;
    letter-spacing: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 16px;
    row-gap: 0;
    align-content: start;
    white-space: pre-line;
    overflow: visible;
    min-width: 0;
    min-height: 0;
}

.home-framework__mentor-card .home-framework__mentor-intro {
    min-height: 0;
    height: auto;
    max-height: 100%;
}

.home-framework__mentor-intro .mentor-intro-item {
    display: block;
    position: relative;
    padding-left: 16px;
    margin-bottom: 4px;
    min-width: 0;
}

.home-framework__mentor-intro .mentor-intro-item:last-child {
    margin-bottom: 0;
}

.home-framework__mentor-intro .mentor-intro-item--book {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 64px;
    column-gap: 6px;
    align-items: start;
    min-height: 62px;
    padding-right: 0;
}

.home-framework__mentor-intro .mentor-book-stack {
    position: absolute;
    z-index: 1;
    right: -8px;
    bottom: -3px;
    display: block;
    width: 72px;
    height: 88px;
    pointer-events: none;
}

.home-framework__mentor-intro .mentor-intro-copy {
    min-width: 0;
}

.home-framework__mentor-intro .mentor-book-thumb {
    position: absolute;
    display: block;
    object-fit: contain;
    object-position: center bottom;
    transform-origin: 75% 100%;
    pointer-events: none;
}

.home-framework__mentor-intro .mentor-book-thumb--back {
    right: 10px;
    bottom: 6px;
    width: 56px;
    height: 74px;
    opacity: .32;
    filter: saturate(.8) drop-shadow(0 4px 6px rgba(112, 54, 48, .12));
    transform: rotate(-9deg);
}

.home-framework__mentor-intro .mentor-book-thumb--front {
    right: 0;
    bottom: 0;
    width: 60px;
    height: 80px;
    filter: drop-shadow(0 6px 8px rgba(112, 54, 48, .18));
    transform: rotate(5deg);
}

.home-framework__mentor-intro .mentor-intro-item--nowrap {
    white-space: nowrap;
}

.home-framework__mentor-intro .mentor-intro-item::before {
    content: '';
    position: absolute;
    left: 0;
    top: .65em;
    width: 6px;
    height: 6px;
    border-radius: 2px;
    background: var(--home-primary);
}

/* Bottom navigation: prev arrow, thumbnail rail, next arrow. */
.home-framework__mentor-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    width: 100%;
    max-width: 900px;
}

.home-framework__mentor-rail {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 22px;
    flex: 1;
    min-width: 0;
    overflow-x: auto;
    padding: 4px 8px 8px;
    scrollbar-width: thin;
    scrollbar-color: rgba(118, 87, 217, .32) transparent;
    -webkit-overflow-scrolling: touch;
}

.home-framework__mentor-rail::-webkit-scrollbar {
    height: 6px;
}

.home-framework__mentor-rail::-webkit-scrollbar-thumb {
    background: rgba(118, 87, 217, .28);
    border-radius: 3px;
}

.home-framework__mentor-rail::-webkit-scrollbar-track {
    background: transparent;
}

.home-framework__mentor-thumb {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    min-width: 76px;
    padding: 4px 6px 5px;
    border: 0;
    background: transparent;
    color: #8d8486;
    cursor: pointer;
    font: inherit;
    transition: color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);
    background: transparent !important;
}

.home-framework__mentor-thumb-frame {
    display: block;
    width: 58px;
    height: 58px;
    overflow: hidden;
    border: 3px solid #fff;
    border-radius: 50%;
    background: transparent;
    box-shadow: none;
    transition: border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);
}

.home-framework__mentor-thumb-frame img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

.home-framework__mentor-thumb-name {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: .04em;
    white-space: nowrap;
    transition: color var(--motion-fast) var(--ease-standard), font-weight var(--motion-fast) var(--ease-standard);
}

.home-framework__mentor-thumb:hover .home-framework__mentor-thumb-frame {
    border-color: rgba(var(--brand-accent-rgb), .45);
    transform: translateY(-2px);
}

.home-framework__mentor-thumb:hover .home-framework__mentor-thumb-name {
    color: #4f4950;
}

.home-framework__mentor-thumb.is-active .home-framework__mentor-thumb-frame {
    border-color: var(--home-primary-bright);
    box-shadow: none;
    transform: scale(1.08);
}

.home-framework__mentor-thumb.is-active .home-framework__mentor-thumb-name {
    color: var(--home-primary);
    font-weight: 700;
}

.home-framework__mentor-thumb:focus-visible {
    outline: none;
}

.home-framework__mentor-thumb:focus-visible .home-framework__mentor-thumb-frame {
    outline: 3px solid rgba(var(--brand-accent-rgb), .35);
    outline-offset: 3px;
}

.home-framework__mentor-arrow {
    flex: 0 0 auto;
    display: grid;
    width: 44px;
    height: 44px;
    margin-top: 8px;
    place-items: center;
    border: 1px solid #ddd7d2;
    border-radius: 50%;
    background: rgba(255, 253, 249, .92);
    color: #877f7f;
    cursor: pointer;
    font: inherit;
    font-size: 20px;
    line-height: 1;
    transition: border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);
}

.home-framework__mentor-arrow:hover,
.home-framework__mentor-arrow:focus-visible {
    border-color: var(--home-primary-bright);
    color: var(--home-primary);
    background: #fff;
    box-shadow: 0 8px 18px rgba(74, 47, 36, .14);
    transform: translateY(-1px);
}

.home-framework__mentor-arrow:focus-visible {
    outline: 3px solid rgba(var(--brand-accent-rgb), .35);
    outline-offset: 2px;
}

.home-framework__mentor-arrow:disabled {
    cursor: not-allowed;
    opacity: .35;
    box-shadow: none;
    transform: none;
}

.home-framework__mentor-arrow.is-prev::before {
    content: "";
    display: block;
    width: 9px;
    height: 9px;
    border-top: 2px solid currentColor;
    border-left: 2px solid currentColor;
    transform: rotate(-45deg) translate(2px, 2px);
}

.home-framework__mentor-arrow.is-next::before {
    content: "";
    display: block;
    width: 9px;
    height: 9px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(45deg) translate(-2px, 2px);
}

.home-framework__mentor-fallback {
    width: 100%;
    max-width: 1080px;
    margin: 0 auto;
    padding: 64px 0;
    text-align: center;
    color: #8d8486;
    font-size: 15px;
}

/* Entrance animation for the showcase card when content switches. */
@keyframes home-framework-mentor-card-in {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.home-framework__mentor-card.mentor-card-in {
    animation: home-framework-mentor-card-in .42s ease both;
}

/* Reduced motion: disable transform-based animations but keep color/visibility. */
@media (prefers-reduced-motion: reduce) {
    .home-framework__mentor-card,
    .home-framework__mentor-thumb-frame,
    .home-framework__mentor-arrow,
    .home-framework__mentor-photo img {
        transition: none !important;
    }

    .home-framework__mentor-card.mentor-card-in {
        animation: none !important;
    }
}

/* Homepage student-story cards use the managed material title as their visible heading. */
.page-home #home-stories .home-framework__story-grid h3 {
    margin-top: 12px;
    color: var(--home-ink, #262224);
    font-size: 15px;
    font-weight: 650;
    line-height: 1.45;
    text-align: center;
}

/* Responsive: stack to single column under 980px, compress under 768px. */
@media screen and (max-width: 980px) {
    .home-framework__mentor-card {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
        max-width: 640px;
        height: auto;
    }

    .home-framework__mentor-intro .mentor-intro-item--nowrap {
        white-space: normal;
    }

    .home-framework__mentor-photo {
        min-height: 280px;
        max-height: 320px;
    }

    .home-framework__mentor-info {
        min-height: 0;
        padding: 32px 30px 36px;
    }

    .home-framework__mentor-intro {
        grid-template-columns: 1fr;
        max-height: 230px;
    }

    .home-framework__mentor-name {
        font-size: 30px;
    }

    .home-framework__mentor-watermark {
        top: 10px;
        right: 18px;
        font-size: 78px;
    }

    .home-framework__mentor-nav {
        gap: 14px;
    }

    .home-framework__mentor-rail {
        gap: 18px;
    }

    .home-framework__mentor-arrow {
        width: 38px;
        height: 38px;
        font-size: 17px;
    }
}

@media screen and (max-width: 768px) {
    .home-framework__mentor-stage {
        gap: 20px;
    }

    .home-framework__mentor-stage::before {
        inset: -18px -4px 0;
        border-radius: 18px;
    }

    .home-framework__mentor-card {
        border-radius: 10px;
    }

    .home-framework__mentor-photo {
        min-height: 240px;
        max-height: 280px;
    }

    .home-framework__mentor-info {
        gap: 10px;
        padding: 24px 22px 28px;
    }

    .home-framework__mentor-label {
        font-size: 11px;
        letter-spacing: .28em;
    }

    .home-framework__mentor-name {
        font-size: 24px;
    }

    .home-framework__mentor-card .home-framework__mentor-title {
        font-size: 12px;
    }

    .home-framework__mentor-badge {
        font-size: 12px;
        padding: 6px 14px;
    }

    .home-framework__mentor-intro {
        font-size: 14px;
        line-height: 1.6;
        max-height: 210px;
    }

    .home-framework__mentor-intro .mentor-intro-item--book {
        grid-template-columns: minmax(0, 1fr) 58px;
        min-height: 58px;
        padding-right: 0;
    }

    .home-framework__mentor-intro .mentor-book-stack {
        width: 66px;
        height: 80px;
    }

    .home-framework__mentor-intro .mentor-book-thumb--back {
        width: 50px;
        height: 66px;
    }

    .home-framework__mentor-intro .mentor-book-thumb--front {
        width: 54px;
        height: 72px;
    }

    .home-framework__mentor-watermark {
        font-size: 56px;
        top: 6px;
        right: 12px;
    }

    .home-framework__mentor-nav {
        gap: 8px;
    }

    .home-framework__mentor-rail {
        gap: 12px;
        padding: 4px 0 10px;
    }

    .home-framework__mentor-thumb-frame {
        width: 54px;
        height: 54px;
        border-width: 2px;
    }

    .home-framework__mentor-thumb-name {
        font-size: 12px;
    }

    .home-framework__mentor-arrow {
        width: 34px;
        height: 34px;
        margin-top: 10px;
    }
}

@media screen and (max-width: 620px) {
    .home-framework__mentor-stage {
        gap: 22px;
    }

    .home-framework__mentor-card {
        max-width: 100%;
    }

    .home-framework__mentor-photo {
        min-height: 220px;
    }

    .home-framework__mentor-name {
        font-size: 22px;
    }

    .home-framework__mentor-intro {
        font-size: 13px;
        max-height: 188px;
    }

    .home-framework__mentor-intro .mentor-intro-item--book {
        grid-template-columns: minmax(0, 1fr) 52px;
        min-height: 54px;
        padding-right: 0;
    }

    .home-framework__mentor-intro .mentor-book-stack {
        width: 60px;
        height: 73px;
    }

    .home-framework__mentor-intro .mentor-book-thumb--back {
        width: 45px;
        height: 59px;
    }

    .home-framework__mentor-intro .mentor-book-thumb--front {
        width: 49px;
        height: 65px;
    }

    .home-framework__mentor-watermark {
        font-size: 44px;
    }
}

/* Safari-only adjustment: prevent the rail from being clipped by the
   parent overflow in older WebKit builds. */
@supports (-webkit-touch-callout: none) {
    .home-framework__mentor-rail {
        padding-bottom: 14px;
    }
}

/* 2026-08 purple brand and compact mobile mentor showcase.
   The mobile card has a fixed composition so long mentor bios cannot push the
   thumbnail rail below the next viewport. The intro remains touch-scrollable
   inside its own bounded area, while the name, role and navigation stay visible. */
.page-home .home-framework__heading h2,
.page-home .home-framework__news-title,
.page-home .home-framework__mentor-card .home-framework__mentor-title {
    color: var(--home-primary, var(--framework-primary)) !important;
}

/* Match the legacy home-page selector's specificity so the new theme also
   reaches the media heading rendered by the shared stylesheet. */
body.page-home .news-main-title,
body.page-home .news-main-title strong {
    color: var(--home-primary, var(--framework-primary)) !important;
}

.home-framework__mentor-card {
    border-color: var(--home-line, var(--brand-line));
}

.home-framework__mentor-card:hover {
    border-color: color-mix(in srgb, var(--home-primary-bright, #8e73eb) 34%, transparent);
    box-shadow: 0 26px 54px rgba(76, 44, 154, .14);
}

@media screen and (max-width: 620px) {
    .page-home .home-framework__mentor-stage {
        gap: 12px;
    }

    .page-home .home-framework__mentor-card {
        height: 480px;
        grid-template-rows: 170px 310px;
        border-radius: 14px;
        box-shadow: 0 14px 34px rgba(76, 44, 154, .10);
    }

    .page-home .home-framework__mentor-photo {
        min-height: 0;
        max-height: none;
        background: linear-gradient(145deg, #f8f5ff 0%, #eee9ff 100%);
    }

    .page-home .home-framework__mentor-photo img {
        height: 94%;
        max-width: 84%;
    }

    .page-home .home-framework__mentor-watermark {
        top: 8px;
        right: 14px;
        color: rgba(118, 87, 217, .16);
        font-size: 38px;
    }

    .page-home .home-framework__mentor-info {
        height: 310px;
        padding: 18px 18px 20px;
        gap: 6px;
    }

    .page-home .home-framework__mentor-label {
        font-size: 9px;
        letter-spacing: .22em;
    }

    .page-home .home-framework__mentor-name {
        margin: 2px 0 1px;
        font-size: 22px;
        line-height: 1.16;
    }

    .page-home .home-framework__mentor-card .home-framework__mentor-title {
        margin: 0;
        font-size: 12px;
        line-height: 1.35;
    }

    .page-home .home-framework__mentor-divider {
        width: 32px;
        height: 2px;
        margin: 4px 0 2px;
        background: linear-gradient(90deg, var(--home-primary-bright), rgba(142, 115, 235, 0));
    }

    .page-home .home-framework__mentor-intro {
        flex: 0 0 128px;
        height: 128px;
        max-height: 128px;
        overflow-y: auto;
        padding-right: 3px;
        font-size: 12px;
        line-height: 1.45;
        scrollbar-width: thin;
        scrollbar-color: rgba(118, 87, 217, .28) transparent;
    }

    .page-home .home-framework__mentor-intro .mentor-intro-item {
        margin-bottom: 2px;
        padding-left: 11px;
    }

    .page-home .home-framework__mentor-intro .mentor-intro-item::before {
        top: .65em;
        width: 4px;
        height: 4px;
        border-radius: 50%;
        background: var(--home-primary-bright);
    }

    .page-home .home-framework__mentor-intro .mentor-intro-item--book,
    .page-home .home-framework__mentor-intro .mentor-book-stack {
        display: none;
    }

    .page-home .home-framework__mentor-nav {
        gap: 6px;
        min-height: 70px;
    }

    .page-home .home-framework__mentor-rail {
        gap: 8px;
        min-height: 68px;
        padding: 2px 0 6px;
        scrollbar-width: none;
        touch-action: pan-x;
    }

    .page-home .home-framework__mentor-rail::-webkit-scrollbar {
        display: none;
    }

    .page-home .home-framework__mentor-thumb {
        min-width: 58px;
        gap: 4px;
        padding: 2px 3px;
    }

    .page-home .home-framework__mentor-thumb-frame {
        width: 46px;
        height: 46px;
        border-width: 2px;
    }

    .page-home .home-framework__mentor-thumb-name {
        max-width: 58px;
        overflow: hidden;
        font-size: 10px;
        text-overflow: ellipsis;
    }

    .page-home .home-framework__mentor-arrow {
        width: 30px;
        height: 30px;
        margin-top: 0;
    }
}
.page-home {
    --home-surface: #faf8ff;
    --home-paper: #ffffff;
    --home-ink: #241f35;
    --home-muted: #756f84;
    --home-primary: var(--brand-primary, #7657d9);
    --home-primary-bright: var(--brand-primary-bright, #8e73eb);
    --home-line: #e6e0f2;
    --motion-fast: .22s;
    --motion-med: .35s;
    --motion-slow: .55s;
    --ease-standard: cubic-bezier(.4, 0, .2, 1);
    --ease-out-expo: cubic-bezier(.22, 1, .36, 1);
    background-color: var(--home-surface) !important;
    color: var(--home-ink);
}

.page-home .home-framework {
    background: transparent;
    color: var(--home-ink);
}

.page-home .home-framework__section,
.page-home .news-quicknav-section {
    position: relative;
    isolation: isolate;
    background-color: var(--home-surface) !important;
}

.page-home .news-quicknav-section {
    background-image:
        linear-gradient(rgba(118, 87, 217, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(118, 87, 217, .035) 1px, transparent 1px) !important;
    background-size: 34px 34px !important;
}

.page-home .home-framework__honors {
    background: var(--home-paper) !important;
    border-top: 1px solid rgba(118, 87, 217, .08);
    border-bottom: 1px solid rgba(118, 87, 217, .08);
}

.page-home .home-framework__heading {
    position: relative;
    margin-bottom: 30px;
}

.page-home .home-framework__heading > div::before {
    position: absolute;
    top: 3px;
    left: -18px;
    width: 4px;
    height: 43px;
    border-radius: 4px;
    background: var(--home-primary-bright);
    content: '';
}

.page-home .home-framework__heading p {
    color: #9a8580;
    letter-spacing: .19em;
}

.page-home .home-framework__heading h2,
.page-home .news-main-title,
.page-home .news-main-title strong {
    color: var(--home-primary) !important;
}

.page-home .home-framework__heading > a,
.page-home .news-content .news-more-link {
    color: var(--home-primary) !important;
}

.page-home .home-framework__mentor-card,
.page-home .home-framework__honor-card,
.page-home .news-item {
    border-color: var(--home-line) !important;
    background: var(--home-paper);
    box-shadow: 0 14px 30px rgba(74, 47, 36, .08);
}

.page-home .home-framework__mentor-card,
.page-home .home-framework__honor-card {
    border-radius: 12px;
}

.page-home .home-framework__mentor-card figure {
    background: #eee8e0;
}

.page-home .home-framework__mentor-card figure img {
    object-position: center bottom;
}

.page-home .home-framework__mentor-card:hover,
.page-home .home-framework__honor-card.is-active {
    border-color: rgba(var(--brand-accent-rgb), .46) !important;
    box-shadow: 0 20px 38px rgba(109, 38, 34, .14);
}

.page-home .home-framework__mentor-card small,
.page-home .home-framework__honor-card small {
    color: var(--home-primary-bright);
}

.page-home .home-framework__company-copy p {
    color: #3d3537;
}

.page-home .home-framework__company-video video,
.page-home .home-framework__company-video img {
    border: 1px solid var(--home-line);
    border-radius: 12px;
    box-shadow: 0 18px 34px rgba(60, 42, 32, .13);
}

.page-home .home-framework__metrics {
    background: var(--brand-primary-deep, #4c2c9a);
}

@media screen and (min-width: 981px) {
    .page-home .home-framework__mentor-rail:not(.home-framework__mentor-nav .home-framework__mentor-rail) {
        display: grid;
        grid-auto-flow: row;
        grid-auto-columns: auto;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        overflow: visible;
    }
}

@media screen and (max-width: 768px) {
    .page-home .home-framework__heading > div::before {
        left: -12px;
        height: 35px;
    }

    .page-home .home-framework__mentor-rail:not(.home-framework__mentor-nav .home-framework__mentor-rail) {
        margin-right: -24px;
        padding-right: 24px;
    }

    .page-home .home-framework__heading h2 {
        font-size: 26px;
    }
}

/* 2026-08 visual consolidation
   Keep the page on one continuous warm-neutral canvas. Red is reserved for
   hierarchy and actions instead of being used as a different section wall. */
.page-home {
    --home-canvas: var(--brand-cream, #faf8ff);
    --home-soft: var(--brand-primary-soft, #f0ecff);
    --home-white: var(--brand-paper, #ffffff);
    --home-ink: var(--brand-ink, #241f35);
    --home-muted: var(--brand-muted, #756f84);
    --home-primary: var(--brand-primary, #7657d9);
    --home-primary-bright: var(--brand-primary-bright, #8e73eb);
    --home-line: var(--brand-line, #e6e0f2);
    background: var(--home-canvas) !important;
}

.page-home .home-framework {
    background-color: var(--home-canvas) !important;
    background-image:
        radial-gradient(circle at 8% 18%, rgba(var(--brand-accent-rgb), .06), transparent 28%),
        radial-gradient(circle at 92% 42%, rgba(var(--brand-primary-rgb), .05), transparent 25%);
}

.page-home .news-quicknav-section,
.page-home .home-framework__mentors,
.page-home .home-framework__company,
.page-home .home-framework__honors,
.page-home .home-framework__stories {
    background: var(--home-canvas) !important;
    background-image: none !important;
}

.page-home .home-framework__section + .home-framework__section {
    border-top: 1px solid rgba(118, 87, 217, .08);
}

.page-home .home-framework__section {
    padding: 88px 0;
}

.page-home .home-framework__heading {
    align-items: flex-end;
    margin-bottom: 38px;
}

.page-home .home-framework__heading > div {
    padding-top: 15px;
}

.page-home .home-framework__heading > div::before {
    top: 0;
    left: 0;
    width: 32px;
    height: 3px;
    border-radius: 0;
    background: var(--home-primary-bright);
}

.page-home .home-framework__heading p {
    margin-bottom: 7px;
    color: var(--home-primary-bright);
    font-size: 11px;
    letter-spacing: .16em;
}

.page-home .home-framework__heading h2 {
    color: var(--home-primary) !important;
    font-size: 34px;
    font-weight: 760;
}

.page-home .home-framework__heading > a {
    padding-bottom: 5px;
    color: var(--home-primary) !important;
    font-size: 13px;
    text-decoration: none;
}

/* Hero: one fixed readable message over every banner image/video. */
.page-home .home-banner-copy {
    top: 48%;
    left: max(48px, calc((100% - 1200px) / 2));
    width: min(820px, calc(100% - 96px));
    text-align: left;
    transform: translateY(-50%);
    text-shadow: 0 4px 28px rgba(0, 0, 0, .72);
}

.page-home .home-banner-copy h1 {
    font-size: clamp(64px, 7vw, 110px);
    line-height: 1.06;
}

.page-home .home-banner-sub {
    margin-top: 20px;
    color: rgba(255, 255, 255, .96);
    font-size: clamp(20px, 1.9vw, 30px);
    letter-spacing: .12em;
}

.page-home .home_lunbo .swiper-slide::before {
    background: linear-gradient(90deg, rgba(12, 10, 18, .78) 0%, rgba(12, 10, 18, .42) 46%, rgba(12, 10, 18, .10) 100%);
}

/* News: remove the graph-paper wall and let content carry the section. */
.page-home .news-quicknav-section {
    padding: 82px 0 88px !important;
}

.page-home .news-tab-bar {
    margin-bottom: 34px !important;
}

.page-home .news-main-title {
    position: relative;
    padding-top: 15px;
    color: var(--home-primary) !important;
    font-size: 30px !important;
}

.page-home .news-main-title::before {
    position: absolute;
    top: 0;
    left: 0;
    display: block !important;
    width: 32px;
    height: 3px;
    background: var(--home-primary-bright);
    content: '';
}

.page-home .news-main-title strong {
    color: var(--home-primary) !important;
}

.page-home .news-tabs {
    gap: 20px !important;
}

.page-home .news-tab-item {
    border-radius: 6px;
    color: #8b8688 !important;
}

.page-home .news-tab-item.active {
    padding: 8px 16px !important;
    border-radius: 6px;
    background: var(--home-primary) !important;
    color: #fff !important;
}

.page-home .news-item {
    border: 1px solid var(--home-line) !important;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(45, 37, 35, .055);
}

.page-home .news-item:hover {
    border-color: rgba(var(--brand-primary-rgb), .32) !important;
    box-shadow: 0 14px 30px rgba(45, 37, 35, .1);
    transform: translateY(-4px);
}

.page-home .news-item__body {
    min-height: 108px;
    padding: 14px 15px 15px;
}

.page-home .news-item .news-title {
    color: var(--home-ink) !important;
    font-size: 15px !important;
}

.page-home .news-item__body p {
    color: #888386;
    font-size: 12px;
}

.page-home .news-content .news-more-link {
    margin-top: 24px;
    margin-right: 0;
}

/* Mentor: keep the rich interaction on the same white canvas. */
.page-home .home-framework__mentor-stage::before {
    inset: 0;
    border: 0;
    background: transparent;
}

.page-home .home-framework__mentor-card {
    max-width: 1040px;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 16px 38px rgba(45, 37, 35, .09);
}

.page-home .home-framework__mentor-photo {
    background: linear-gradient(145deg, #f7f3ff 0%, #eee8ff 100%);
}

.page-home .home-framework__mentor-info {
    padding: 44px 36px;
}

.page-home .home-framework__mentor-name {
    color: var(--home-ink);
}

.page-home .home-framework__mentor-arrow,
.page-home .home-framework__honor-arrow {
    background: #fff;
    box-shadow: 0 6px 16px rgba(45, 37, 35, .07);
}

/* Credentials and stories share one continuous band. */
.page-home .home-framework__tabs {
    border-color: #ded9d4;
}

.page-home .home-framework__tabs button {
    color: #7b7678;
}

.page-home .home-framework__honor-card {
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 16px 34px rgba(45, 37, 35, .09);
}

.page-home .home-framework__honor-stage {
    padding: 12px 0 8px;
}

.page-home .home-framework__honor-card > img {
    border-radius: 8px 8px 0 0;
    background: #f0efec;
}

.page-home .home-framework__honor-card small {
    color: var(--home-primary-bright);
    font-size: 10px;
    letter-spacing: .08em;
}

.page-home .home-framework__honor-card h3 {
    color: var(--home-ink);
    font-size: 16px;
    font-weight: 700;
}

.page-home .home-framework__honor-card small {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.page-home .home-framework__story-grid article {
    padding-bottom: 5px;
}

.page-home .home-framework__story-cover {
    border-radius: 8px;
    background: #edeae6;
    box-shadow: 0 10px 24px rgba(45, 37, 35, .08);
}

.page-home .home-framework__story-cover span {
    width: 48px;
    height: 48px;
    background: rgba(var(--brand-primary-rgb), .94);
}

.page-home .home-framework__story-grid h3 {
    color: var(--home-ink);
    font-size: 16px;
    font-weight: 650;
}

.page-home .home-framework__story-grid .home-framework__story-description {
    color: #766e6a;
    font-size: 13px;
    line-height: 1.65;
}

/* Company: editorial copy + a portrait poster card matching the managed cover. */
.page-home .home-framework__company-grid {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 56px;
    align-items: center;
}

.page-home .home-framework__company-copy {
    position: relative;
    padding-left: 24px;
}

.page-home .home-framework__company-copy::before {
    position: absolute;
    top: 5px;
    bottom: 5px;
    left: 0;
    width: 2px;
    background: rgba(var(--brand-primary-rgb), .34);
    content: '';
}

.page-home .home-framework__company-copy p {
    color: #3f3a3b;
    font-size: 18px;
    line-height: 2;
}

.page-home .home-framework__company-copy p + p {
    margin-top: 18px;
}

/* The current managed poster is 755 x 1049. Keep that ratio stable. */
.page-home .home-framework__company-video {
    display: flex;
    justify-content: center;
    align-items: center;
}

.page-home .home-framework__company-cover {
    position: relative;
    display: block;
    width: 100%;
    max-width: 300px;
    aspect-ratio: 755 / 1049;
    padding: 0;
    border: 0;
    border-radius: 20px;
    overflow: hidden;
    cursor: pointer;
    background: #171515;
    border: 1px solid rgba(var(--brand-primary-rgb), .1);
    box-shadow:
        0 22px 44px -20px rgba(60, 20, 25, .38),
        0 10px 20px -10px rgba(var(--brand-primary-rgb), .2);
    transition: transform var(--motion-med) var(--ease-standard), box-shadow var(--motion-med) var(--ease-standard);
    isolation: isolate;
}

.page-home .home-framework__company-cover:hover {
    transform: translateY(-4px);
    box-shadow:
        0 30px 60px -24px rgba(60, 20, 25, .48),
        0 14px 28px -10px rgba(var(--brand-primary-rgb), .26);
}

.page-home .home-framework__company-cover::after {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(180deg, rgba(17,13,14,.08) 0%, transparent 30%, transparent 55%, rgba(17,13,14,.32) 100%);
    content: '';
    pointer-events: none;
}

.page-home .home-framework__company-cover img {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 0;
    background: #171515;
    object-fit: cover;
    box-shadow: none;
    transition: transform var(--motion-slow) var(--ease-standard);
}

.page-home .home-framework__company-cover:hover img {
    transform: scale(1.03);
}

.page-home .home-framework__company-cover__tag {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 2;
    padding: 5px 11px;
    background: rgba(var(--brand-primary-rgb), .92);
    color: #fff;
    font-size: 11px;
    letter-spacing: 1.2px;
    border-radius: 999px;
    backdrop-filter: blur(4px);
}

.page-home .home-framework__company-cover__badge {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;
    display: grid;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: rgba(var(--brand-primary-rgb), .9);
    box-shadow: 0 10px 24px rgba(74, 17, 20, .25);
    color: #fff;
    place-items: center;
    transform: translate(-50%, -50%);
    transition: transform var(--motion-med) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard);
}

.page-home .home-framework__company-cover__badge svg {
    width: 22px;
    height: 22px;
    margin-left: 2px;
}

.page-home .home-framework__company-cover:hover .home-framework__company-cover__badge {
    transform: translate(-50%, -50%) scale(1.08);
    background: rgba(var(--brand-accent-rgb), .96);
}

.page-home .home-framework__company-video > img {
    display: block;
    max-width: 100%;
    border: 1px solid #e3dfda;
    border-radius: 10px;
    background: #171515;
    box-shadow: 0 16px 36px rgba(45, 37, 35, .12);
}

.page-home .home-framework__company-cover:focus-visible {
    outline: 3px solid rgba(var(--brand-primary-rgb), .35);
    outline-offset: 4px;
}

@media screen and (max-width: 980px) {
    .page-home .home-framework__company-grid {
        grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
        gap: 40px;
    }

    .page-home .home-framework__company-cover {
        max-width: 250px;
    }
}

@media screen and (max-width: 768px) {
    .page-home .home-framework__company-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .page-home .home-framework__company-cover {
        max-width: 230px;
        margin: 0 auto;
    }
}

.page-home .home-framework__metrics {
    background: var(--brand-primary-deep, #4c2c9a);
}

@media screen and (min-width: 981px) {
    .page-home .news-quicknav-section {
        padding-bottom: 64px !important;
    }

    .page-home .home-framework__mentors {
        padding-top: 68px;
    }
}

@media screen and (max-width: 980px) {
    .page-home .home-banner-copy {
        left: 32px;
        width: calc(100% - 64px);
    }

    .page-home .news-tab-bar {
        align-items: flex-start !important;
    }

    .page-home .home-framework__company-grid {
        gap: 38px;
    }

    .page-home .home-framework__mentor-card {
        height: 720px;
        box-sizing: border-box;
        grid-template-rows: 280px minmax(0, 1fr);
    }

    .page-home .home-framework__mentor-photo {
        min-height: 0;
        max-height: none;
    }

    .page-home .home-framework__mentor-info {
        height: auto;
        min-height: 0;
        box-sizing: border-box;
        overflow: hidden;
        padding: 32px 30px 36px;
    }

    .page-home .home-framework__mentor-intro {
        flex: 0 0 230px;
        height: 230px;
        max-height: none;
        overflow: auto;
        scrollbar-width: none;
    }

    .page-home .home-framework__mentor-intro::-webkit-scrollbar {
        display: none;
    }
}

@media screen and (max-width: 768px) {
    .page-home .home-framework__section {
        padding: 58px 0;
    }

    .page-home .home-framework__company-grid {
        grid-template-columns: 1fr;
    }

    .page-home .home-banner-copy {
        top: 52%;
        left: 22px;
        width: calc(100% - 44px);
    }

    .page-home .home-banner-eyebrow {
        margin-bottom: 14px;
        font-size: 10px;
        letter-spacing: .14em;
    }

    .page-home .home-banner-eyebrow::before {
        display: none;
    }

    .page-home .home-banner-copy h1 {
        font-size: clamp(40px, 11vw, 54px);
    }

    .page-home .home-banner-sub {
        margin-top: 14px;
        font-size: 16px;
        letter-spacing: .08em;
    }

    .page-home .news-quicknav-section {
        padding: 56px 0 62px !important;
    }

    .page-home .news-main-title {
        white-space: normal !important;
    }

    .page-home .home-framework__heading {
        margin-bottom: 30px;
    }

    .page-home .home-framework__heading h2 {
        font-size: 27px;
    }

.page-home .home-framework__mentor-stage::before {
        inset: 0;
        background: transparent;
    }

    .page-home .home-framework__mentor-card {
        border-radius: 8px;
        height: 650px;
        box-sizing: border-box;
        grid-template-rows: 260px minmax(0, 1fr);
    }

    .page-home .home-framework__mentor-photo {
        min-height: 0;
        max-height: none;
    }

    .page-home .home-framework__mentor-info {
        height: 390px;
        min-height: 0;
        box-sizing: border-box;
        overflow: hidden;
        padding: 28px 24px 32px;
    }

    .page-home .home-framework__mentor-intro {
        flex: 0 0 188px;
        height: 188px;
        max-height: none;
        overflow: auto;
        scrollbar-width: none;
    }

    .page-home .home-framework__mentor-intro::-webkit-scrollbar {
        display: none;
    }

    .page-home .home-framework__company-grid {
        gap: 28px;
    }

    .page-home .home-framework__honor-card h3 {
        font-size: 15px;
    }

    .page-home .home-framework__company-copy {
        padding-left: 18px;
    }

    .page-home .home-framework__company-copy p {
        font-size: 16px;
        line-height: 1.85;
    }
}

/* Homepage background doodles: a sparse, quiet layer that adds personality
   without introducing another image wall or taking space from the content. */
.page-home .home-framework {
    position: relative;
    overflow: hidden;
}

.page-home .home-background-doodles {
    position: absolute;
    z-index: 0;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    color: var(--home-primary);
    font-family: "Avenir Next Rounded", "Arial Rounded MT Bold", "Helvetica Neue", sans-serif;
}

.page-home .home-framework__section {
    z-index: 1;
    background-color: transparent !important;
    background-image: none !important;
}

.page-home .home-framework__metrics {
    position: relative;
    z-index: 1;
}

.page-home .home-background-doodles .home-doodle {
    position: absolute;
    display: block;
    user-select: none;
}

.page-home .home-doodle--word {
    top: 7%;
    left: 4%;
    color: rgba(var(--brand-primary-rgb), .075);
    font-size: clamp(38px, 5vw, 72px);
    font-weight: 800;
    letter-spacing: .16em;
    line-height: 1;
    transform: rotate(-8deg);
}

.page-home .home-doodle--phrase {
    color: rgba(var(--brand-primary-rgb), .085);
    font-size: 12px;
    font-weight: 750;
    letter-spacing: .18em;
    line-height: 1.2;
    white-space: nowrap;
}

.page-home .home-doodle--phrase-one {
    top: 30%;
    right: 5%;
    transform: rotate(7deg);
}

.page-home .home-doodle--phrase-two {
    top: 61%;
    left: 3%;
    transform: rotate(-4deg);
}

.page-home .home-doodle--letters {
    right: 10%;
    bottom: 12%;
    color: rgba(var(--brand-primary-rgb), .07);
    font-size: 17px;
    font-weight: 800;
    letter-spacing: .08em;
    transform: rotate(-9deg);
}

.page-home .home-doodle--spark {
    width: 19px;
    height: 19px;
    color: rgba(var(--brand-accent-rgb), .11);
    font-size: 24px;
    font-weight: 500;
    line-height: 17px;
}

.page-home .home-doodle--spark-one {
    top: 18%;
    right: 26%;
    transform: rotate(15deg);
}

.page-home .home-doodle--spark-two {
    bottom: 24%;
    left: 23%;
    transform: rotate(-12deg);
}

/* Minimal line-drawn graduation cap, kept at the edge of the canvas so it
   reads as a brand accent rather than an extra content illustration. */
.page-home .home-doodle--cap {
    top: 43%;
    right: 9%;
    width: 70px;
    height: 54px;
    color: rgba(var(--brand-primary-rgb), .09);
    transform: rotate(8deg);
}

.page-home .home-doodle--cap::before {
    position: absolute;
    top: 8px;
    left: 8px;
    width: 51px;
    height: 22px;
    border: 2px solid currentColor;
    border-radius: 4px 7px 3px 7px;
    content: '';
    transform: rotate(-12deg) skewX(-15deg);
}

.page-home .home-doodle--cap::after {
    position: absolute;
    top: 24px;
    left: 39px;
    width: 2px;
    height: 23px;
    background: currentColor;
    content: '';
    transform: rotate(7deg);
    transform-origin: top center;
}

.page-home .home-doodle--cap i {
    position: absolute;
    bottom: 3px;
    left: 17px;
    width: 40px;
    height: 10px;
    border-bottom: 2px solid currentColor;
    border-radius: 50%;
    content: '';
    transform: rotate(-9deg);
}

.page-home .home-doodle--cap b {
    position: absolute;
    top: 43px;
    left: 35px;
    width: 6px;
    height: 6px;
    border: 2px solid currentColor;
    border-radius: 50%;
    content: '';
}

@media screen and (max-width: 768px) {
    .page-home .home-doodle--word {
        top: 6%;
        left: -8%;
        font-size: 38px;
    }

    .page-home .home-doodle--phrase {
        font-size: 9px;
        letter-spacing: .12em;
    }

    .page-home .home-doodle--phrase-one {
        top: 34%;
        right: -8%;
    }

    .page-home .home-doodle--phrase-two {
        top: 66%;
        left: -12%;
    }

    .page-home .home-doodle--letters {
        right: 4%;
        bottom: 13%;
        font-size: 13px;
    }

    .page-home .home-doodle--cap {
        top: 47%;
        right: -2%;
        transform: scale(.78) rotate(8deg);
        transform-origin: right center;
    }

    .page-home .home-doodle--spark-one {
        top: 23%;
        right: 20%;
    }

    .page-home .home-doodle--spark-two {
        bottom: 27%;
        left: 14%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .page-home .home-background-doodles .home-doodle {
        transform: none;
    }
}

/* Brand honors motion polish. Panels share one grid row so a tab change does
   not make the page jump while the outgoing panel fades away. The rail cards
   enter as a group after their eager images have had a chance to settle. */
#home-honors .home-framework__honor-panels {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    overflow: hidden;
}

#home-honors {
    overflow-anchor: none;
}

#home-honors .home-framework__honor-panel {
    grid-area: 1 / 1;
    min-width: 0;
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition: opacity var(--motion-slow) var(--ease-out-expo), transform var(--motion-slow) var(--ease-out-expo);
    will-change: opacity, transform;
}

#home-honors .home-framework__honor-panel.is-honor-entering {
    opacity: 0;
    pointer-events: none;
    transform: translate3d(24px, 0, 0) scale(.985);
}

#home-honors .home-framework__honor-panel.is-honor-leaving {
    opacity: 0;
    pointer-events: none;
    transform: translate3d(-18px, 0, 0) scale(.985);
}

#home-honors .home-framework__tabs button {
    color: #7b7678;
    transition: color var(--motion-fast) var(--ease-standard), font-weight var(--motion-fast) var(--ease-standard);
}

#home-honors .home-framework__tabs button::after {
    right: 0;
    left: 0;
    opacity: 0;
    transform: scaleX(0);
    transform-origin: center;
    transition: opacity var(--motion-fast) var(--ease-standard), transform var(--motion-med) var(--ease-out-expo);
}

#home-honors .home-framework__tabs button.is-active {
    color: var(--home-primary, var(--framework-primary));
}

#home-honors .home-framework__tabs button.is-active::after {
    opacity: 1;
    transform: scaleX(1);
}

#home-honors .home-framework__honor-stage {
    will-change: contents;
}

#home-honors .home-framework__honor-card {
    will-change: left, opacity, transform, filter;
    transition-duration: var(--motion-slow);
    transition-timing-function: var(--ease-out-expo);
}

#home-honors .home-framework__honor-stage.is-honor-preparing .home-framework__honor-card {
    opacity: 0;
    transform: translate3d(-50%, 14px, 0) scale(.92);
}

#home-honors .home-framework__honor-card > img {
    opacity: 1;
    transform: scale(1);
    transition: transform var(--motion-slow) var(--ease-out-expo), opacity var(--motion-fast) var(--ease-standard);
}

#home-honors .home-framework__honor-stage.is-honor-ready .home-framework__honor-card.is-active > img {
    transform: scale(1.012);
}

#home-honors .home-framework__honor-card:hover > img,
#home-honors .home-framework__honor-card:focus-within > img {
    transform: scale(1.025);
}

@media (prefers-reduced-motion: reduce) {
    #home-honors .home-framework__honor-panel,
    #home-honors .home-framework__honor-card,
    #home-honors .home-framework__honor-card > img {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Final mobile mentor sizing override. This last cascade block keeps the
   card, readable bio window, and thumb rail in one predictable composition. */
@media screen and (max-width: 620px) {
    .page-home .home-framework__mentor-stage { gap: 12px; }
    .page-home .home-framework__mentor-card { height: 510px !important; grid-template-rows: 170px 340px !important; border-radius: 14px; }
    .page-home .home-framework__mentor-photo { min-height: 0; max-height: none; background: linear-gradient(145deg, #f8f5ff 0%, #eee9ff 100%); }
    .page-home .home-framework__mentor-photo img { height: 94%; max-width: 84%; }
    .page-home .home-framework__mentor-info { height: 340px !important; justify-content: flex-start !important; padding: 17px 18px 18px; gap: 5px; }
    .page-home .home-framework__mentor-label { font-size: 10px; letter-spacing: .18em; }
    .page-home .home-framework__mentor-name { margin: 2px 0 1px; font-size: 22px; line-height: 1.16; }
    .page-home .home-framework__mentor-card .home-framework__mentor-title { margin: 0; font-size: 13px; line-height: 1.35; }
    .page-home .home-framework__mentor-intro { flex: 0 0 160px !important; height: 160px !important; max-height: 160px !important; overflow-y: auto; padding: 0 4px 8px 0; font-size: 13px; line-height: 1.45; }
    .page-home .home-framework__mentor-intro .mentor-intro-item { margin-bottom: 3px; padding-left: 11px; }
    .page-home .home-framework__mentor-intro .mentor-intro-item--book { display: grid; grid-template-columns: minmax(0, 1fr) 48px; min-height: 60px; column-gap: 4px; }
    .page-home .home-framework__mentor-intro .mentor-book-stack { right: -2px; bottom: 0; display: block; width: 52px; height: 64px; }
    .page-home .home-framework__mentor-intro .mentor-book-thumb--back { right: 7px; bottom: 4px; width: 39px; height: 52px; }
    .page-home .home-framework__mentor-intro .mentor-book-thumb--front { width: 43px; height: 58px; }
    .page-home .home-framework__mentor-card.has-mentor-book .home-framework__mentor-intro { flex-basis: 100px !important; height: 100px !important; max-height: 100px !important; padding-bottom: 0; }
    .page-home .home-framework__mentor-card.has-mentor-book .mentor-intro-item--book {
        position: absolute;
        right: 18px;
        bottom: 13px;
        left: 18px;
        min-height: 62px;
        padding: 9px 50px 7px 11px;
        border-top: 1px solid color-mix(in srgb, var(--brand-line) 78%, transparent);
        background: linear-gradient(90deg, color-mix(in srgb, var(--brand-primary-soft) 62%, #fff), #fff 72%);
    }
    .page-home .home-framework__mentor-nav { gap: 6px; min-height: 70px; }
    .page-home .home-framework__mentor-rail { gap: 8px; min-height: 68px; padding: 2px 0 6px; scrollbar-width: none; touch-action: pan-x; }
    .page-home .home-framework__mentor-rail::-webkit-scrollbar { display: none; }
    .page-home .home-framework__mentor-thumb { min-width: 58px; gap: 4px; padding: 2px 3px; }
    .page-home .home-framework__mentor-thumb-frame { width: 46px; height: 46px; border-width: 2px; }
    .page-home .home-framework__mentor-thumb-name { max-width: 58px; overflow: hidden; font-size: 11px; text-overflow: ellipsis; }
    .page-home .home-framework__mentor-arrow { width: 30px; height: 30px; margin-top: 0; }
}

/* 2026-08-14 palette and media interaction pass. Purple carries hierarchy and
   interaction; the hero copy follows the same light-purple treatment. */
.page-home .home-framework__honor-card small {
    font-size: 12px;
    font-weight: 700;
}

.page-home .home-framework__story-card {
    cursor: pointer;
}

.page-home .home-framework__story-card:focus-visible {
    outline: 3px solid rgba(var(--brand-primary-rgb), .34);
    outline-offset: 5px;
}

.page-home .home-framework__story-card--article {
    display: block;
    color: inherit;
    text-decoration: none;
}

.page-home .home-framework__story-card--article .home-framework__story-cover {
    position: relative;
}

.page-home .home-framework__story-article-placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    background: linear-gradient(135deg, #f6e9e5, #ead4cf);
    color: #9a4a4d;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: .12em;
}

.page-home .home-framework__story-article-badge {
    position: absolute;
    right: 14px;
    bottom: 14px;
    padding: 7px 10px;
    border-radius: 8px;
    background: rgba(var(--brand-deep-rgb), .92);
    color: #fff;
    font-size: 12px;
    line-height: 1;
}

.page-home .home-framework__story-cover span {
    position: absolute;
    top: auto;
    right: 14px;
    bottom: 14px;
    left: auto;
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    box-sizing: border-box;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 11px;
    background: rgba(var(--brand-conversion-rgb, 114,87,184), .94);
    box-shadow: 0 6px 16px rgba(61, 42, 105, .24);
    transform: none;
    transition: transform var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard);
}

.page-home .home-framework__story-cover span::before {
    width: 0;
    height: 0;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 10px solid #fff;
    content: '';
    transform: translateX(1px);
}

.page-home .home-framework__story-card:hover .home-framework__story-cover span,
.page-home .home-framework__story-card:focus-visible .home-framework__story-cover span {
    background: var(--brand-conversion-deep, #5b418f);
    transform: translateY(-2px);
}

.page-home .home-framework__company-grid {
    display: block;
}

.page-home .home-framework__company-copy {
    max-width: 900px;
    margin: 0 auto;
    padding: 26px 32px 28px;
    border: 1px solid color-mix(in srgb, var(--brand-line) 78%, transparent);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(255,255,255,.82), color-mix(in srgb, var(--brand-primary-soft) 48%, #fff));
    box-shadow: 0 14px 34px rgba(58, 43, 84, .06);
}

.page-home .home-framework__company-copy::before {
    top: 28px;
    bottom: 28px;
    left: 18px;
}

.page-home .home-framework__company-copy p {
    font-size: 17px;
    line-height: 2;
}

.page-home .home-framework__company-copy p + p {
    margin-top: 12px;
}

.page-home .home-framework__company-videos {
    display: grid;
    margin-top: 34px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.page-home .home-framework__company-cover {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    max-width: none;
    aspect-ratio: 16 / 10;
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(var(--brand-primary-rgb), .14);
    border-radius: 12px;
    background: #151318;
    box-shadow: 0 16px 34px rgba(41, 31, 51, .12);
    cursor: pointer;
    isolation: isolate;
}

.page-home .home-framework__company-cover.is-featured {
    grid-row: auto;
}

.page-home .home-framework__company-cover::before {
    position: absolute;
    z-index: 0;
    inset: -18px;
    background: var(--company-poster) center / cover no-repeat;
    content: '';
    filter: blur(15px);
    opacity: .52;
    transform: scale(1.06);
}

.page-home .home-framework__company-cover img {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.page-home .home-framework__company-cover__shade {
    position: absolute;
    z-index: 2;
    inset: 0;
    background: linear-gradient(180deg, rgba(15, 12, 18, .06) 34%, rgba(15, 12, 18, .8) 100%);
    pointer-events: none;
}

.page-home .home-framework__company-cover__tag {
    z-index: 3;
    top: 16px;
    left: 16px;
    padding: 5px 10px;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 5px;
    background: rgba(var(--brand-primary-rgb), .86);
    font-size: 12px;
    letter-spacing: .08em;
}

.page-home .home-framework__company-cover__meta {
    position: absolute;
    z-index: 3;
    right: 62px;
    bottom: 16px;
    left: 16px;
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    color: #fff;
    text-align: left;
}

.page-home .home-framework__company-cover__meta small {
    color: rgba(255, 255, 255, .68);
    font-size: 11px;
    letter-spacing: .14em;
}

.page-home .home-framework__company-cover__meta strong {
    overflow: hidden;
    max-width: 100%;
    color: #fff;
    font-size: 17px;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.page-home .home-framework__company-cover__badge {
    z-index: 3;
    top: auto;
    right: 16px;
    bottom: 16px;
    left: auto;
    width: 42px;
    height: 42px;
    background: var(--brand-conversion, #7257b8);
    box-shadow: 0 8px 20px rgba(61, 42, 105, .28);
    transform: none;
}

.page-home .home-framework__company-cover__badge i {
    width: 0;
    height: 0;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-left: 9px solid #fff;
    transform: translateX(1px);
}

.page-home .home-framework__company-cover:hover .home-framework__company-cover__badge {
    background: var(--brand-conversion-deep, #5b418f);
    transform: scale(1.07);
}

@media screen and (max-width: 768px) {
    .page-home .home-framework__company-copy {
        padding: 22px 22px 24px 28px;
        border-radius: 14px;
    }

    .page-home .home-framework__company-copy::before {
        top: 24px;
        bottom: 24px;
        left: 14px;
    }

    .page-home .home-framework__company-copy p {
        font-size: 16px;
        line-height: 1.9;
    }

    .page-home .home-framework__company-videos {
        display: flex;
        width: calc(100% + 20px);
        margin-top: 30px;
        padding: 0 20px 12px 0;
        gap: 12px;
        overflow-x: auto;
        scroll-padding-inline: 0 20px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .page-home .home-framework__company-videos::-webkit-scrollbar {
        display: none;
    }

    .page-home .home-framework__company-cover,
    .page-home .home-framework__company-cover.is-featured {
        width: 82vw;
        max-width: 340px;
        min-width: min(82vw, 340px);
        grid-row: auto;
        aspect-ratio: 16 / 10;
        scroll-snap-align: start;
    }

    .page-home .home-framework__company-cover__meta strong,
    .page-home .home-framework__company-cover.is-featured .home-framework__company-cover__meta strong {
        font-size: 17px;
    }
}

.page-home .home-framework__metrics {
    background: color-mix(in srgb, var(--brand-primary-deep, #4d386f) 50%, var(--brand-primary, #6e52b5) 50%);
}

/* Keep the company editorial panel and its video row on one visual rail. */
.page-home .home-framework__company-copy,
.page-home .home-framework__company-videos {
    width: min(100%, 1080px);
    max-width: 1080px;
    margin-right: auto;
    margin-left: auto;
    box-sizing: border-box;
}

/* The mentor strip is part of the purple interaction system, including its
   native desktop scrollbar. Phones hide this scrollbar below. */
.page-home .home-framework__mentor-nav .home-framework__mentor-rail {
    scrollbar-color: rgba(var(--brand-primary-rgb), .42) transparent;
}

.page-home .home-framework__mentor-nav .home-framework__mentor-rail::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(var(--brand-primary-rgb), .38);
}

@media screen and (max-width: 768px) {
    .page-home .home-framework__company-copy,
    .page-home .home-framework__company-videos {
        width: 100%;
        max-width: none;
    }

    .page-home .home-framework__company-videos {
        margin-right: 0;
        margin-left: 0;
        padding-right: 0;
    }
}

/* Readability pass: increase only supporting type that previously fell below
   comfortable reading size while preserving the established card geometry. */
.page-home .home-framework__heading > div > p,
.page-home .news-eyebrow {
    font-size: 12px;
}

.page-home .home-framework__heading > a {
    font-size: 14px;
}

.page-home .home-framework__honor-card small {
    font-size: 13px;
}

.page-home .home-framework__story-grid .home-framework__story-description {
    font-size: 14px;
    line-height: 1.7;
}

/* Company video rail: editorial cards with one-card arrow stepping. */
.page-home .home-framework__company-carousel {
    position: relative;
    display: grid;
    width: min(100%, 1080px);
    max-width: 1080px;
    margin: 34px auto 0;
    padding: 0 4px 14px;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    align-items: center;
    gap: 14px;
    box-sizing: border-box;
}

.page-home .home-framework__company-viewport {
    min-width: 0;
    overflow: hidden;
}

.page-home .home-framework__company-videos {
    display: flex;
    width: 100%;
    max-width: none;
    margin: 0;
    gap: 18px;
    overflow: visible;
    scroll-snap-type: none;
    transition: transform .48s var(--ease-out-expo);
    will-change: transform;
}

.page-home .home-framework__company-cover,
.page-home .home-framework__company-cover.is-featured {
    flex: 0 0 calc((100% - 36px) / 3);
    width: auto;
    min-width: 0;
    max-width: none;
    grid-row: auto;
}

.page-home .home-framework__company-arrow {
    display: grid;
    width: 44px;
    height: 44px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(var(--brand-primary-rgb), .24);
    border-radius: 50%;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 8px 18px rgba(var(--brand-deep-rgb, 74, 17, 20), .12);
    color: var(--brand-primary);
    cursor: pointer;
    transition: background .22s ease, border-color .22s ease, color .22s ease, transform .22s ease, opacity .22s ease;
}

.page-home .home-framework__company-arrow svg {
    width: 20px;
    height: 20px;
}

.page-home .home-framework__company-arrow:hover:not(:disabled),
.page-home .home-framework__company-arrow:focus-visible {
    border-color: var(--brand-primary);
    background: var(--brand-primary);
    color: #fff;
    transform: translateY(-2px);
}

.page-home .home-framework__company-arrow:focus-visible {
    outline: 3px solid rgba(var(--brand-primary-rgb), .24);
    outline-offset: 3px;
}

.page-home .home-framework__company-arrow:disabled {
    opacity: .3;
    cursor: default;
}

@media screen and (max-width: 1100px) and (min-width: 769px) {
    .page-home .home-framework__company-cover,
    .page-home .home-framework__company-cover.is-featured {
        flex-basis: calc((100% - 18px) / 2);
    }
}

@media screen and (max-width: 768px) {
    .page-home .home-framework__company-carousel {
        width: 100%;
        max-width: none;
        margin-top: 28px;
        padding: 0;
        grid-template-columns: 36px minmax(0, 1fr) 36px;
        gap: 8px;
    }

    .page-home .home-framework__company-videos {
        width: 100%;
        margin: 0;
        gap: 12px;
        padding: 0;
    }

    .page-home .home-framework__company-cover,
    .page-home .home-framework__company-cover.is-featured {
        flex-basis: 100%;
        width: auto;
        min-width: 0;
        max-width: none;
        aspect-ratio: 16 / 10;
        scroll-snap-align: none;
    }

    .page-home .home-framework__company-arrow {
        width: 36px;
        height: 36px;
    }

    .page-home .home-framework__company-arrow svg {
        width: 17px;
        height: 17px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .page-home .home-framework__company-videos {
        transition: none;
    }

    .page-home .home-framework__company-arrow {
        transition: none;
    }
}
