.alumni-home {
    background: #fafaf8;
    color: #17171a;
}
.alumni-display {
    font-family: Georgia, 'Times New Roman', serif;
    letter-spacing: -0.035em;
}
.alumni-shell {
    width: min(1280px, calc(100% - 32px));
    margin-inline: auto;
}
.alumni-home :is(a, button):focus-visible {
    outline: 2px solid #7a1f2a;
    outline-offset: 2px;
}
.alumni-home [data-slot='select-trigger']:focus-visible,
.alumni-home [data-slot='select-trigger']:focus {
    outline: none !important;
    border-color: #7a1f2a !important;
    box-shadow: 0 0 0 3px rgba(122, 31, 42, 0.12) !important;
}
.alumni-home input:focus,
.alumni-home select:focus {
    outline: none;
    border-color: #7a1f2a;
    box-shadow: 0 0 0 3px rgba(122, 31, 42, 0.12);
}
.alumni-home :is(button, input, select) {
    min-height: 44px;
}
/* Mobile-first: section titles are constrained so they don't overflow on small screens */
.alumni-home .section-title {
    font-size: clamp(1.25rem, 4vw, 2rem);
    line-height: 1.25;
    font-weight: 600;
}
/* Below-fold sections: defer paint to improve FCP/LCP */
.alumni-home section:nth-child(n + 3) {
    content-visibility: auto;
    contain-intrinsic-size: 0 400px;
}
@media (min-width: 768px) {
    .alumni-shell {
        width: min(1280px, calc(100% - 48px));
    }
}
@media (min-width: 1280px) {
    .alumni-shell {
        width: min(1280px, calc(100% - 64px));
    }
}
/* Native swipe and snap keep reading under the visitor's control. */
.alumni-stories-track {
    display: flex;
    flex-wrap: nowrap;
    gap: 16px;
    width: 100%;
    min-width: 0;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    padding-bottom: 16px;
    scrollbar-width: thin;
    scrollbar-color: #7a1f2a #e7e3df;
}
.alumni-stories-track > article {
    flex: 0 0 100%;
    scroll-snap-align: start;
    min-width: 0;
    overflow-wrap: anywhere;
}
@media (min-width: 768px) {
    .alumni-stories-track > article {
        flex-basis: calc((100% - 16px) / 2);
    }
}

.alumni-stories-track {
    cursor: default;
    user-select: none;
}
.alumni-stories-track:active {
    scroll-snap-type: none;
}
.alumni-stories-track a,
.alumni-stories-track button,
.alumni-stories-track [role='button'] {
    cursor: pointer !important;
}
.alumni-stories-track article {
    cursor: default;
}

/* Micro-animations & component interaction styles */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@media (prefers-reduced-motion: no-preference) {
    .anim-hero-1 {
        animation: fadeInUp 0.7s cubic-bezier(0.16, 1, 0.3, 1) both;
    }
    .anim-hero-2 {
        animation: fadeInUp 0.7s 0.1s cubic-bezier(0.16, 1, 0.3, 1) both;
    }
    .anim-hero-3 {
        animation: fadeInUp 0.7s 0.2s cubic-bezier(0.16, 1, 0.3, 1) both;
    }
    .anim-hero-4 {
        animation: fadeInUp 0.7s 0.3s cubic-bezier(0.16, 1, 0.3, 1) both;
    }
    .anim-hero-5 {
        animation: fadeInUp 0.7s 0.4s cubic-bezier(0.16, 1, 0.3, 1) both;
    }
}

.card-interactive {
    transition:
        transform 0.28s cubic-bezier(0.16, 1, 0.3, 1),
        box-shadow 0.28s cubic-bezier(0.16, 1, 0.3, 1),
        border-color 0.28s ease;
}
.card-interactive:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px -8px rgba(122, 31, 42, 0.12);
}

/* Scroll reveal animations */
.scroll-reveal {
    opacity: 0;
    transform: translateY(22px);
    transition:
        opacity 0.65s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.65s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform;
}

.scroll-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.delay-100 {
    transition-delay: 100ms;
}
.delay-150 {
    transition-delay: 150ms;
}
.delay-200 {
    transition-delay: 200ms;
}
.delay-300 {
    transition-delay: 300ms;
}
.delay-400 {
    transition-delay: 400ms;
}

@media (prefers-reduced-motion: reduce) {
    .scroll-reveal,
    .stagger-1,
    .stagger-2,
    .stagger-3,
    .stagger-4,
    .stagger-5,
    .stagger-6,
    .tab-content-enter {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
        animation: none !important;
    }
}

/* Staggered entrance animations for page loading */
@media (prefers-reduced-motion: no-preference) {
    .stagger-1 {
        animation: fadeInUp 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.04s both;
    }
    .stagger-2 {
        animation: fadeInUp 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.1s both;
    }
    .stagger-3 {
        animation: fadeInUp 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.16s both;
    }
    .stagger-4 {
        animation: fadeInUp 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.22s both;
    }
    .stagger-5 {
        animation: fadeInUp 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.28s both;
    }
    .stagger-6 {
        animation: fadeInUp 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.34s both;
    }

    .tab-content-enter {
        animation: tabContentFade 0.4s cubic-bezier(0.16, 1, 0.3, 1) both;
    }
}

@keyframes tabContentFade {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Cursor hover interactions */
.hover-lift {
    transition:
        transform 0.28s cubic-bezier(0.16, 1, 0.3, 1),
        box-shadow 0.28s cubic-bezier(0.16, 1, 0.3, 1),
        border-color 0.28s ease;
}
.hover-lift:hover {
    transform: translateY(-4px);
    box-shadow:
        0 10px 24px -6px rgba(122, 31, 42, 0.08),
        0 2px 6px -1px rgba(0, 0, 0, 0.04);
    border-color: #d7d1cc;
}

.hover-zoom-img {
    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.group:hover .hover-zoom-img {
    transform: scale(1.04);
}

.hover-slide-arrow {
    transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
.group:hover .hover-slide-arrow {
    transform: translateX(4px);
}

.activity-submit {
    background: #fafaf8;
    color: #17171a;
}
.activity-submit-header {
    padding: 48px 0 36px;
    border-bottom: 1px solid #e7e3df;
}
.activity-submit-header nav {
    font-size: 13px;
    color: #666;
    margin-bottom: 24px;
}
.activity-submit-header h1 {
    font:
        400 clamp(32px, 4vw, 48px)/1.15 Georgia,
        serif;
    letter-spacing: -0.035em;
    max-width: 700px;
}
.activity-submit-header p {
    color: #626168;
    max-width: 640px;
    margin-top: 16px;
    line-height: 1.8;
}
.activity-submit-grid {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 64px;
    padding-block: 40px 64px;
    align-items: start;
}
.activity-submit-guide h2 {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 16px;
}
.activity-submit-guide p {
    color: #626168;
    font-size: 14px;
    line-height: 1.8;
    margin-bottom: 20px;
}
.activity-submit-guide a {
    color: #7a1f2a;
    text-decoration: underline;
    text-underline-offset: 4px;
}
.activity-submit-form {
    background: white;
    border: 1px solid #e7e3df;
    border-radius: 10px;
    padding: 32px;
    min-width: 0;
}
.activity-submit-form fieldset {
    border: 0;
    padding: 0;
    margin: 0 0 28px;
    min-width: 0;
}
.activity-submit-form legend {
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 20px;
}
.activity-submit-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}
.activity-submit-field {
    display: grid;
    gap: 8px;
    margin-bottom: 20px;
    min-width: 0;
}
.activity-submit-field label {
    font-size: 14px;
    font-weight: 600;
}
.activity-submit-field :is(input, textarea, select) {
    background: white;
    width: 100%;
    min-width: 0;
    border: 1px solid #d7d1cc;
    padding: 10px 12px;
    border-radius: 6px;
    min-height: 44px;
    font-size: 15px;
}
.activity-submit-field textarea {
    resize: vertical;
}
.activity-submit-field small {
    color: #626168;
    font-size: 12px;
    line-height: 1.6;
}
.activity-submit :is(input, textarea, select):focus {
    border-color: #7a1f2a;
    outline: 1px solid #7a1f2a;
    outline-offset: 0;
    box-shadow: none;
}
.activity-submit :is(a, button):focus-visible {
    outline: 2px solid #7a1f2a;
    outline-offset: 2px;
}
.activity-submit button {
    min-height: 44px;
    padding: 10px 18px;
    border-radius: 6px;
    background: #7a1f2a;
    color: white;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}
.activity-submit button:hover {
    background: #601822;
}
.activity-submit button:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}
.activity-submit input[type='file'],
.activity-submit input::file-selector-button {
    cursor: pointer;
}
.activity-submit input::file-selector-button {
    padding: 6px 10px;
    margin-right: 10px;
    background: #f5f1ec;
    border: 1px solid #e7e3df;
    border-radius: 4px;
}
.activity-npm-row {
    display: flex;
    gap: 10px;
}
.activity-npm-row button {
    white-space: nowrap;
}
.activity-submit-notice {
    padding: 16px;
    background: #f6f2ee;
    border-left: 3px solid #7a1f2a;
    margin-bottom: 24px;
    font-size: 14px;
    line-height: 1.7;
}
.activity-submit-error {
    color: #a12535;
    font-size: 13px;
}
.activity-submit-preview {
    max-height: 220px;
    max-width: 100%;
    object-fit: contain;
    border-radius: 6px;
}
.activity-submit-footer {
    border-top: 1px solid #e7e3df;
    padding-top: 24px;
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}
.activity-submit-footer p {
    font-size: 13px;
    color: #626168;
    flex: 1;
    min-width: 180px;
}
@media (max-width: 800px) {
    .activity-submit-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .activity-submit-guide {
        max-width: 620px;
    }
}
@media (max-width: 520px) {
    .activity-submit-form {
        padding: 22px 16px;
    }
    .activity-submit-fields {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .activity-npm-row {
        flex-direction: column;
    }
}
@media (prefers-reduced-motion: no-preference) {
    .activity-submit-header,
    .activity-submit-form {
        animation: fadeInUp 0.3s ease-out both;
    }
}


.unified-news { background: #faf9f7; padding: 0 0 64px; color: #282427; }
.unified-news-heading { background: white; border-bottom: 1px solid #e7e3df; }
.unified-news-heading-inner { display: flex; justify-content: space-between; align-items: center; gap: 32px; padding-block: 56px; }
.unified-news-heading-inner > div { max-width: 680px; }
.unified-news-heading .unified-news-eyebrow { color: #87630e; font-size: 12px; font-weight: 600; letter-spacing: .14em; margin: 0 0 8px; }
.unified-news-heading .unified-news-intro { font-size: 15px; max-width: 620px; margin-top: 14px; }
.unified-news-contribute { display: inline-flex; align-items: center; gap: 10px; flex-shrink: 0; background: #7a1f2a; color: white; border-radius: 5px; padding: 13px 18px; font-size: 14px; font-weight: 600; transition: background .15s; }
.unified-news-contribute:hover { background: #621923; }
.unified-news-content { padding-top: 32px; }
.unified-news-heading h1 { font-family: Georgia, serif; font-size: clamp(30px, 4vw, 42px); font-weight: 700; line-height: 1.2; }
.unified-news-heading p { color: #665e62; margin-top: 10px; line-height: 1.6; }
.unified-news-tools { display: flex; align-items: end; gap: 16px; background: white; border: 1px solid #e2dcd8; padding: 20px; border-radius: 8px; }
.unified-news-tools > div:first-child { flex: 1; }
.unified-news-tools label { display: block; font-size: 13px; margin-bottom: 7px; font-weight: 600; }
.unified-news-tools input, .unified-news-tools select { width: 100%; min-height: 44px; border: 1px solid #cfc6c3; border-radius: 4px; padding: 8px 12px; background: white; }
.unified-news-tools > button { background: #7a1f2a; color: white; min-height: 44px; padding: 8px 22px; border-radius: 4px; }

.unified-news-count { font-size: 13px; color: #665e62; margin: 24px 0 16px; }
.unified-news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.unified-news-card { background: white; border: 1px solid #e2dcd8; border-radius: 8px; overflow: hidden; }
.unified-news-card > img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.unified-news-body { padding: 20px; }
.unified-news-meta { display: flex; flex-wrap: wrap; gap: 8px 14px; font-size: 12px; color: #665e62; }
.unified-news-meta > span { color: #7a1f2a; font-weight: 600; }
.unified-news-body h2 { font-size: 20px; line-height: 1.35; font-weight: 700; margin-top: 12px; overflow-wrap: anywhere; }
.unified-news-body h2 a:hover { color: #7a1f2a; text-decoration: underline; }
.unified-news-body > p { font-size: 14px; line-height: 1.65; color: #665e62; margin-top: 10px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.unified-news-empty { padding: 48px 0; }
.unified-news-pagination { display: flex; justify-content: center; gap: 24px; margin-top: 32px; }
.unified-news :is(a, button, input, select):focus-visible { outline: 2px solid #7a1f2a; outline-offset: 3px; }
@media (max-width: 900px) { .unified-news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .unified-news-tools { flex-wrap: wrap; } }
@media (max-width: 560px) { .unified-news-grid { grid-template-columns: 1fr; } .unified-news-tools > div { flex-basis: 100%; }  }

.unified-news-tools > button { display: inline-flex; gap: 8px; align-items: center; justify-content: center; }
.unified-news-category { min-width: 240px; }
.unified-news-tools .unified-news-category-trigger { width: 100%; height: 44px; background: #faf9f7; border: 1px solid #cfc6c3; border-radius: 5px; padding: 10px 14px; color: #282427; box-shadow: none; }
.unified-news-category-trigger[data-state="open"] { border-color: #7a1f2a; }
.unified-news-category-menu { background: white; color: #282427; border: 1px solid #e2dcd8; border-radius: 7px; padding: 4px; min-width: var(--radix-select-trigger-width); box-shadow: 0 8px 24px #28242714; }
.unified-news-category-menu [role="option"] { min-height: 40px; padding-left: 12px; border-radius: 4px; font-size: 14px; cursor: pointer; }
.unified-news-category-menu [role="option"][data-highlighted], .unified-news-category-menu [role="option"][data-state="checked"] { background: #f8eeef; color: #7a1f2a; }
@media (max-width: 760px) { .unified-news-heading-inner { align-items: flex-start; flex-direction: column; padding-block: 40px; gap: 22px; } .unified-news-category { min-width: 0; } }

.directory-filter-panel { background: white; border: 1px solid #ded7d3; border-radius: 8px; padding: 22px; }
.directory-filter-actions { display: flex; justify-content: flex-end; margin-top: 16px; }
.directory-filter-panel [data-slot="select-trigger"] { border-radius: 5px; }
@media (max-width: 560px) { .directory-filter-panel { padding: 16px; } }
