:root {
    --am-ink: #17211d;
    --am-navy: #102d27;
    --am-blue: #087f6b;
    --am-blue-dark: #056456;
    --am-paper: #f4f1e8;
    --am-surface: #fffdf7;
    --am-surface-alt: #e8eee8;
    --am-surface-blue: #dcece6;
    --am-line: #c9d2c9;
    --am-muted: #52615b;
    --am-on-accent: #f8fffc;
    --af-gold: #c9942f;
    --af-gold-soft: #f2e3bd;
    --af-red: #a64737;
    --am-shadow: 0 24px 70px rgba(16, 45, 39, .14);
}

@media (prefers-color-scheme: dark) {
    :root {
        --am-ink: #edf5f0;
        --am-navy: #f4fbf7;
        --am-blue: #61d1bc;
        --am-blue-dark: #8de0cf;
        --am-paper: #0e1815;
        --am-surface: #14211d;
        --am-surface-alt: #192a25;
        --am-surface-blue: #17352e;
        --am-line: #365047;
        --am-muted: #b7c9c1;
        --am-on-accent: #071713;
        --af-gold: #e5b75c;
        --af-gold-soft: #44381f;
        --af-red: #ef9a89;
        --am-shadow: 0 24px 70px rgba(1, 7, 5, .4);
    }
}

.af-disclaimer {
    margin: 1.1rem 0 0;
    padding: .9rem 1rem;
    border-left: 3px solid var(--af-gold);
    color: var(--am-muted);
    background: color-mix(in srgb, var(--af-gold-soft) 58%, transparent);
    font-size: .88rem;
    line-height: 1.55;
}

.af-disclaimer strong {
    display: block;
    margin-bottom: .15rem;
    color: var(--am-navy);
}

.af-research-map {
    padding: clamp(4.5rem, 8vw, 8rem) 0;
    border-block: 1px solid var(--am-line);
    background: var(--am-surface);
}

.af-research-head {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(20rem, 1.1fr);
    gap: clamp(2rem, 6vw, 7rem);
    align-items: end;
    margin-bottom: 3.2rem;
}

.af-research-head p:last-child {
    margin: 0;
    color: var(--am-muted);
    font-size: 1.05rem;
}

.af-source-tier {
    display: grid;
    grid-template-columns: 12rem 1fr;
    gap: 1.5rem;
    padding: 1.7rem 0;
    border-top: 1px solid var(--am-line);
}

.af-source-tier:last-child {
    border-bottom: 1px solid var(--am-line);
}

.af-source-tier > header span {
    display: block;
    margin-bottom: .45rem;
    color: var(--am-blue);
    font: 800 .68rem/1 var(--am-display);
    letter-spacing: .11em;
    text-transform: uppercase;
}

.af-source-tier h3 {
    margin: 0;
    color: var(--am-navy);
    font: 800 1.05rem/1.3 var(--am-display);
}

.af-source-tier ul {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.af-source-tier li {
    min-width: 0;
}

.af-source-tier a {
    display: inline-block;
    color: var(--am-navy);
    text-decoration-color: color-mix(in srgb, var(--am-blue) 45%, transparent);
    text-underline-offset: .2em;
    font-weight: 800;
}

.af-source-tier small {
    display: block;
    margin-top: .3rem;
    color: var(--am-muted);
    line-height: 1.45;
}

.af-provenance-note {
    margin: 1.2rem 0 0;
    color: var(--am-muted);
    font-size: .82rem;
}

.af-loop .am-loop ol,
.af-loop ol {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.af-track-note {
    margin: 1.2rem 0 0;
    padding: 1rem 1.1rem;
    border: 1px solid color-mix(in srgb, var(--af-gold) 55%, var(--am-line));
    color: var(--am-muted);
    background: color-mix(in srgb, var(--af-gold-soft) 44%, transparent);
    font-size: .9rem;
}

.af-safety {
    position: relative;
    overflow: hidden;
    padding: clamp(4.5rem, 8vw, 8rem) 0;
    color: #f4fbf7;
    background: #102d27;
}

.af-safety::before {
    position: absolute;
    inset: 0;
    opacity: .16;
    background-image: linear-gradient(rgba(255, 255, 255, .18) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .18) 1px, transparent 1px);
    background-size: 42px 42px;
    content: "";
    pointer-events: none;
}

.af-safety-grid {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(22rem, 1.2fr);
    gap: clamp(2rem, 7vw, 8rem);
}

.af-safety .am-eyebrow,
.af-safety .am-section-title {
    color: #f4fbf7;
}

.af-safety-intro p:last-child {
    color: #c6d8d0;
}

.af-boundaries {
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: af-boundary;
}

.af-boundaries li {
    display: grid;
    grid-template-columns: 2.6rem 1fr;
    gap: .8rem;
    padding: 1.05rem 0;
    border-top: 1px solid rgba(255, 255, 255, .2);
    counter-increment: af-boundary;
}

.af-boundaries li::before {
    color: var(--af-gold);
    content: "0" counter(af-boundary);
    font: 800 .72rem/1.5 var(--am-display);
}

.af-boundaries strong {
    display: block;
    margin-bottom: .18rem;
    color: #fff;
}

.af-boundaries span {
    color: #c6d8d0;
    font-size: .93rem;
}

.af-source-group-label {
    display: inline-flex;
    margin-bottom: .45rem;
    padding: .25rem .45rem;
    color: var(--am-blue);
    border: 1px solid color-mix(in srgb, var(--am-blue) 45%, var(--am-line));
    font: 800 .62rem/1 var(--am-display);
    letter-spacing: .07em;
    text-transform: uppercase;
}

.am-source-group li span.af-source-relation {
    display: block;
    margin-top: .16rem;
    color: var(--am-blue);
    font-size: .74rem;
    font-weight: 800;
}

.af-capstone-tracks {
    display: grid;
    gap: .55rem;
    margin: 1.7rem 0 0;
    padding: 0;
    list-style: none;
}

.af-capstone-tracks li {
    display: grid;
    grid-template-columns: 1.7rem 1fr;
    gap: .55rem;
    align-items: start;
    color: var(--am-muted);
}

.af-capstone-tracks li::before {
    color: var(--am-blue);
    content: "↳";
    font-weight: 900;
}

.af-affiliation {
    padding: 1.15rem 0;
    border-top: 1px solid var(--am-line);
    color: var(--am-muted);
    font-size: .84rem;
}

.af-affiliation strong {
    color: var(--am-navy);
}

@media (max-width: 980px) {
    .af-research-head,
    .af-safety-grid {
        grid-template-columns: 1fr;
    }

    .af-source-tier ul {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .af-loop ol {
        grid-template-columns: 1fr;
    }

    .af-source-tier {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .af-source-tier ul {
        grid-template-columns: 1fr;
        gap: .85rem;
    }

    .af-safety-grid {
        gap: 2.4rem;
    }
}

@media (max-width: 760px) {
    body.ai-finance-page .cit-en-nav__links > a[href="/en/ai-finance-course.html"] {
        display: block !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .am-button {
        transition: none;
    }
}
