/* Optional desktop enhancement. home.css remains the complete masonry fallback. */
.honors-track { --honor-helix-ready: 1; width: 100%; }
.honors-shell { max-width: var(--deck-shell); }
.honors-orbit, .honors-progress { display: none; }

@media (min-width:1121px) and (min-height:680px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
    /* No overflow/transform on sticky ancestors. Clip only inside the scene. */
    .deck-slide.honors-slide.is-helix { display: block; overflow: visible; }
    .honors-slide.is-helix .honors-atmosphere { inset-inline: 0; }
    .is-helix .honors-track { height: calc(var(--honor-stage-height) + var(--honor-travel)); }
    .is-helix .honors-shell {
        position: sticky; top: 88px; width: min(100%,1660px); max-width: 1660px;
        height: var(--honor-stage-height); display: grid;
        grid-template-columns: clamp(300px,29vw,418px) minmax(0,1fr);
        align-items: center; gap: clamp(20px,2vw,38px);
    }
    /* Copy follows the shared content edge; the wider photo scene stays independent. */
    .is-helix .honors-heading {
        display: block; position: absolute; z-index: 1;
        left: max(0px,calc((100% - var(--deck-shell)) / 2)); top: 50%;
        width: clamp(300px,29vw,418px); padding: 0 0 30px; transform: translateY(-50%);
    }
    .is-helix .honors-kicker { margin-bottom: 26px; gap: 14px; letter-spacing: .12em; flex-wrap: wrap; }
    .is-helix .honors-heading h2 { font-size: clamp(34px,3.3vw,54px); line-height: 1.35; overflow-wrap: anywhere; }
    .is-helix .honors-intro { margin-top: 28px; padding: 22px 0 0; border-top: 1px solid rgba(80,132,187,.22); }
    .is-helix .honors-intro .honors-label { font-size: 17px; letter-spacing: .04em; }
    .is-helix .honors-intro p { max-width: 310px; font-size: 14px; line-height: 1.9; }
    .is-helix .honors-viewport {
        position: relative; z-index: 2; grid-column: 2; min-width: 0; height: 100%; overflow: hidden;
        -webkit-mask-image: linear-gradient(180deg,transparent,#000 13%,#000 86%,transparent);
        mask-image: linear-gradient(180deg,transparent,#000 13%,#000 86%,transparent);
    }
    .is-helix .honors-gallery {
        position: absolute; inset: 0; margin: 0; padding: 0; width: 100%; height: 100%;
        column-count: auto; perspective: 1100px; perspective-origin: 50% 50%; transform-style: preserve-3d;
        /* Let the transformed photos receive hover, not the scene's flat plane. */
        pointer-events: none;
    }
    .honors-slide.is-helix .honors-item {
        display: block; position: absolute; left: 50%; top: 50%; margin: 0;
        transform-origin: 50% 50%; backface-visibility: hidden; pointer-events: auto;
    }
    .is-helix .honors-drift { transform: none; }
    .is-helix .honors-frame img { user-select: none; -webkit-user-drag: none; }
    .is-helix .honors-frame.has-image::after { opacity: .6; }
    .is-helix .honors-item:hover .honors-frame.has-image::after { opacity: 0; }
    .is-helix .honors-orbit { display: block; position: absolute; inset: 12% 8%; pointer-events: none; }
    .is-helix .honors-orbit::before { content: ""; position: absolute; inset: 0 -8%; background: radial-gradient(ellipse,rgba(105,175,238,.14),rgba(132,190,245,.05) 44%,transparent 70%); }
    .is-helix .honors-orbit i { position: absolute; top: 17%; left: 0; width: 100%; height: 62%; border: 1px solid rgba(111,160,208,.14); border-radius: 50%; transform: rotate(-26deg) scaleY(.65); }
    .is-helix .honors-orbit i:nth-child(2) { transform: rotate(-26deg) scaleY(.65) translateY(105px); }
    .is-helix .honors-orbit i:nth-child(3) { transform: rotate(-26deg) scaleY(.65) translateY(-105px); }
    .is-helix .honors-progress { display: block; position: absolute; z-index: 31; bottom: 20px; left: 38%; width: 24%; height: 2px; background: rgba(95,150,206,.18); overflow: hidden; }
    .is-helix .honors-progress span { display: block; width: 100%; height: 100%; background: #599bda; transform: scaleX(0); transform-origin: left; }
    .is-helix .honors-toggle, .is-helix .honors-footnote { display: none; }
}
