/* ===================================================================
   dr-deeksha.css — the profile page for Dr. Deeksha Kapoor.

   A single long page: hero, credentials, education, global training,
   career, affiliations, vision, awards, academic roles, lectures,
   publications, book chapters, gallery, contact. Consumes the brand
   tokens from brand.css and the self-hosted faces from lp-fonts.css.
   Every class here is prefixed dk- so it never collides with the
   main site's stylesheets.
   =================================================================== */

:root {
    --dk-ink: var(--adv-ink);
    --dk-body: var(--adv-ink-body);
    --dk-muted: var(--adv-ink-muted);
    --dk-line: var(--adv-line);
    --dk-bg: #FCF8F6;
    --dk-card: #FFFFFF;
    --dk-brand: var(--adv-crimson-700);
    --dk-brand-deep: var(--adv-crimson-900);
    --dk-accent: var(--adv-warm-400);
    --dk-gold: #C9A24A;
    --dk-head: 'Manrope', 'Inter', system-ui, sans-serif;
    --dk-sans: 'Inter', system-ui, sans-serif;
    --dk-radius: 18px;
    --dk-radius-lg: 28px;
    --dk-shadow: 0 12px 30px -14px rgba(94, 16, 25, .22), 0 2px 6px -3px rgba(94, 16, 25, .08);
    --dk-shadow-lg: 0 30px 70px -28px rgba(94, 16, 25, .35), 0 10px 24px -12px rgba(94, 16, 25, .14);
    --dk-ease: cubic-bezier(.22, .61, .36, 1);
    --dk-wrap: 1180px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 140px;
}

body.dk {
    margin: 0;
    overflow-x: hidden;
    background: var(--dk-bg);
    color: var(--dk-body);
    font-family: var(--dk-sans);
    font-size: 1rem;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body.dk :where(h1, h2, h3, h4) {
    font-family: var(--dk-head);
    color: var(--dk-ink);
    line-height: 1.15;
    margin: 0;
    letter-spacing: -.01em;
}

body.dk p {
    margin: 0 0 1em;
}


body.dk a {
    text-decoration: none;
}

body.dk a:not([class]) {
    color: var(--dk-brand);
}

body.dk img {
    max-width: 100%;
    display: block;
}

.dk-wrap {
    min-width: 0;
    width: min(var(--dk-wrap), calc(100% - 40px));
    margin: 0 auto;
}

.dk-skip {
    position: absolute;
    top: -100px;
    left: 16px;
    padding: 12px 20px;
    border-radius: 0 0 14px 14px;
    background: var(--dk-brand-deep);
    color: #fff !important;
    font-family: var(--dk-head);
    font-weight: 700;
    z-index: 200;
}

.dk-skip:focus {
    top: 0;
}

/* ----------------------------- header ----------------------------- */
.dk-head {
    position: sticky;
    top: 0;
    z-index: 90;
    background: rgba(255, 255, 255, .9);
    -webkit-backdrop-filter: saturate(180%) blur(14px);
    backdrop-filter: saturate(180%) blur(14px);
    border-bottom: 1px solid var(--dk-line);
}

.dk-head-in {
    display: flex;
    align-items: center;
    gap: 18px;
    min-height: 82px;
}

.dk-logo img {
    height: 60px;
    width: auto;
}

.dk-head-name {
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .95rem;
    color: var(--dk-ink);
    padding-left: 18px;
    border-left: 1px solid var(--dk-line);
    margin-right: auto;
    line-height: 1.25;
}

.dk-head-name small {
    display: block;
    font-family: var(--dk-sans);
    font-weight: 500;
    font-size: .74rem;
    color: var(--dk-muted);
    letter-spacing: .04em;
    text-transform: uppercase;
}

.dk-head-acts {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* ----------------------------- buttons ---------------------------- */
.dk-btn {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 12px 20px;
    border-radius: 999px;
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .92rem;
    line-height: 1;
    border: 1.5px solid transparent;
    transition: transform .25s var(--dk-ease), box-shadow .25s var(--dk-ease), background .25s, color .25s;
    white-space: nowrap;
}

.dk-btn i {
    font-size: .95em;
}

.dk-btn:hover {
    transform: translateY(-2px);
}

.dk-btn-primary {
    background: var(--adv-grad-brand);
    color: #fff;
    box-shadow: 0 10px 22px -10px rgba(120, 12, 12, .55);
}

.dk-btn-primary:hover {
    box-shadow: 0 16px 30px -12px rgba(120, 12, 12, .6);
}

.dk-btn-ghost {
    background: #fff;
    color: var(--dk-brand);
    border-color: var(--dk-line);
}

.dk-btn-ghost:hover {
    border-color: var(--dk-brand);
}

.dk-btn-light {
    background: rgba(255, 255, 255, .12);
    color: #fff;
    border-color: rgba(255, 255, 255, .28);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

.dk-btn-light:hover {
    background: rgba(255, 255, 255, .2);
}

.dk-btn-white {
    background: #fff;
    color: var(--dk-brand-deep);
}

/* ------------------------------ hero ------------------------------ */
.dk-hero {
    position: relative;
    background: var(--adv-grad-deep);
    color: #fff;
    overflow: hidden;
    isolation: isolate;
}

.dk-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(60% 80% at 85% 20%, rgba(240, 144, 96, .28) 0%, transparent 60%),
        radial-gradient(40% 50% at 10% 90%, rgba(228, 108, 96, .22) 0%, transparent 60%);
    z-index: -1;
}

.dk-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
    background-size: 56px 56px;
    -webkit-mask-image: radial-gradient(70% 70% at 60% 40%, #000 20%, transparent 100%);
    mask-image: radial-gradient(70% 70% at 60% 40%, #000 20%, transparent 100%);
    z-index: -1;
}

.dk-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
    gap: clamp(28px, 5vw, 72px);
    align-items: center;
    padding: clamp(56px, 7vw, 96px) 0 clamp(48px, 6vw, 80px);
}

.dk-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .74rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--dk-accent);
}

.dk-eyebrow::before {
    content: "";
    width: 28px;
    height: 2px;
    background: currentColor;
    border-radius: 2px;
}

.dk-hero h1 {
    color: #fff;
    font-size: clamp(2.4rem, 5.2vw, 4rem);
    font-weight: 800;
    margin: 16px 0 12px;
}

.dk-hero h1 span {
    display: block;
    font-size: .42em;
    font-weight: 600;
    letter-spacing: .02em;
    color: rgba(255, 255, 255, .78);
    margin-top: 10px;
}

.dk-hero-sub {
    font-size: clamp(1.02rem, 1.4vw, 1.18rem);
    color: rgba(255, 255, 255, .84);
    max-width: 58ch;
    margin-bottom: 26px;
}

.dk-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 30px;
    padding: 0;
    list-style: none;
}

.dk-chips li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .18);
    font-size: .82rem;
    font-weight: 600;
    color: #fff;
}

.dk-chips li i {
    color: var(--dk-accent);
    font-size: .8em;
}

.dk-hero-acts {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.dk-hero-art {
    position: relative;
    justify-self: center;
    width: min(100%, 420px);
}

.dk-hero-frame {
    position: relative;
    border-radius: 32px;
    padding: 6px;
    background: linear-gradient(145deg, rgba(240, 144, 96, .9), rgba(255, 255, 255, .15) 45%, rgba(180, 60, 84, .8));
    box-shadow: var(--dk-shadow-lg);
}

.dk-hero-frame img {
    border-radius: 27px;
    width: 100%;
    aspect-ratio: 648 / 813;
    object-fit: cover;
    background: #3C0406;
}

.dk-float {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border-radius: 16px;
    background: #fff;
    color: var(--dk-ink);
    box-shadow: var(--dk-shadow-lg);
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .85rem;
    line-height: 1.2;
}

.dk-float small {
    display: block;
    font-family: var(--dk-sans);
    font-weight: 500;
    font-size: .72rem;
    color: var(--dk-muted);
    margin-top: 2px;
}

.dk-float i {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: var(--adv-warm-soft);
    color: var(--dk-brand);
    font-size: 1rem;
}

.dk-float-a {
    left: -28px;
    bottom: 64px;
}

.dk-float-b {
    right: -22px;
    top: 48px;
}

/* explore button under the portrait */
.dk-explore {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 22px auto 0;
    width: 100%;
    padding: 14px 22px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .28);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    color: #fff;
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .95rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    transition: background .25s, transform .25s var(--dk-ease), box-shadow .25s;
}

.dk-explore i {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--dk-accent);
    color: var(--dk-brand-deep);
    font-size: .8rem;
    animation: dk-bounce 1.8s var(--dk-ease) infinite;
}

.dk-explore:hover {
    background: rgba(255, 255, 255, .18);
    transform: translateY(-2px);
    box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .6);
}

@keyframes dk-bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(4px); }
}

@media (prefers-reduced-motion: reduce) {
    .dk-explore i { animation: none; }
}

/* stat strip */
.dk-stats {
    position: relative;
    z-index: 2;
    margin-top: -1px;
}

.dk-stats-in {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    background: #fff;
    border-radius: var(--dk-radius-lg);
    box-shadow: var(--dk-shadow-lg);
    transform: translateY(-44px);
    overflow: hidden;
}

.dk-stat {
    padding: 26px 24px;
    text-align: center;
    border-right: 1px solid var(--dk-line);
}

.dk-stat:last-child {
    border-right: 0;
}

.dk-stat b {
    display: block;
    font-family: var(--dk-head);
    font-size: clamp(1.7rem, 2.6vw, 2.3rem);
    font-weight: 800;
    color: var(--dk-brand);
    line-height: 1;
}

.dk-stat span {
    display: block;
    margin-top: 8px;
    font-size: .82rem;
    font-weight: 600;
    color: var(--dk-muted);
    letter-spacing: .02em;
}

/* ---------------------------- sub nav ----------------------------- */
.dk-subnav {
    position: sticky;
    top: 82px;
    z-index: 80;
    background: rgba(252, 248, 246, .92);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--dk-line);
}

.dk-subnav ul {
    display: flex;
    gap: 4px;
    list-style: none;
    margin: 0;
    padding: 8px 0;
    overflow-x: auto;
    scrollbar-width: none;
}

.dk-subnav ul::-webkit-scrollbar {
    display: none;
}

.dk-subnav a {
    display: block;
    padding: 8px 14px;
    border-radius: 999px;
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .8rem;
    color: var(--dk-body);
    white-space: nowrap;
    transition: background .2s, color .2s;
}

.dk-subnav a:hover,
.dk-subnav a.is-active {
    background: var(--dk-brand);
    color: #fff;
}

/* ----------------------------- sections --------------------------- */
.dk-sec {
    padding: clamp(56px, 6.5vw, 96px) 0;
}

.dk-sec-alt {
    background: #fff;
    border-top: 1px solid var(--dk-line);
    border-bottom: 1px solid var(--dk-line);
}

.dk-sec-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: end;
    margin-bottom: clamp(28px, 3.5vw, 48px);
}

.dk-sec-head .dk-eyebrow {
    color: var(--dk-brand);
}

.dk-sec-head h2 {
    font-size: clamp(1.7rem, 3.2vw, 2.5rem);
    font-weight: 800;
    margin-top: 12px;
}

.dk-sec-head h2 em {
    font-style: normal;
    background: var(--adv-grad-mark);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.dk-lede {
    max-width: 44ch;
    color: var(--dk-muted);
    font-size: .95rem;
    margin: 0;
    text-align: right;
}

/* ------------------------------ about ----------------------------- */
.dk-about {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
    gap: clamp(28px, 4vw, 56px);
    align-items: start;
}

.dk-about-copy p {
    font-size: 1.08rem;
    line-height: 1.75;
}

.dk-about-copy > p:first-of-type::first-letter {
    font-family: var(--dk-head);
    font-size: 3.4em;
    font-weight: 800;
    float: left;
    line-height: .85;
    padding: 6px 10px 0 0;
    color: var(--dk-brand);
}

.dk-comp {
    display: grid;
    gap: 14px;
    margin-top: 28px;
}

.dk-comp-item {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 18px 20px;
    border-radius: var(--dk-radius);
    background: #fff;
    border: 1px solid var(--dk-line);
    transition: transform .3s var(--dk-ease), box-shadow .3s var(--dk-ease);
}

.dk-comp-item:hover {
    transform: translateY(-3px);
    box-shadow: var(--dk-shadow);
}

.dk-comp-item i {
    flex: 0 0 46px;
    height: 46px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: var(--adv-grad-brand);
    color: #fff;
    font-size: 1.1rem;
}

.dk-comp-item h3 {
    font-size: 1.05rem;
    margin-bottom: 4px;
}

.dk-comp-item p {
    margin: 0;
    font-size: .9rem;
    color: var(--dk-muted);
}

.dk-appt {
    display: grid;
    gap: 16px;
}

.dk-appt-card {
    position: relative;
    padding: 24px;
    border-radius: var(--dk-radius-lg);
    background: #fff;
    border: 1px solid var(--dk-line);
    box-shadow: var(--dk-shadow);
    overflow: hidden;
}

.dk-appt-card.is-lead {
    background: var(--adv-grad-deep);
    color: rgba(255, 255, 255, .85);
    border: 0;
}

.dk-appt-card.is-lead h3,
.dk-appt-card.is-lead h4 {
    color: #fff;
}

.dk-appt-card.is-lead::after {
    content: "";
    position: absolute;
    right: -40px;
    top: -40px;
    width: 160px;
    height: 160px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(240, 144, 96, .45), transparent 70%);
}

.dk-tag {
    display: inline-block;
    padding: 5px 11px;
    border-radius: 999px;
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .68rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    background: var(--adv-warm-soft);
    color: var(--dk-brand);
    margin-bottom: 12px;
}

.is-lead .dk-tag {
    background: rgba(255, 255, 255, .14);
    color: var(--dk-accent);
}

.dk-appt-card h3 {
    font-size: 1.3rem;
}

.dk-appt-card h4 {
    font-size: .95rem;
    font-weight: 600;
    margin-top: 4px;
    color: var(--dk-brand);
}

.dk-appt-card p {
    margin: 10px 0 0;
    font-size: .92rem;
}

.dk-appt-logos {
    display: flex;
    gap: 14px;
    align-items: center;
    margin-top: 16px;
}

.dk-appt-logos img {
    height: 44px;
    width: auto;
    background: #fff;
    border-radius: 10px;
    padding: 6px;
}

/* ----------------------------- timeline --------------------------- */
.dk-timeline {
    position: relative;
    display: grid;
    gap: 18px;
    padding-left: 34px;
}

.dk-timeline::before {
    content: "";
    position: absolute;
    left: 10px;
    top: 10px;
    bottom: 10px;
    width: 2px;
    background: linear-gradient(var(--dk-brand), var(--dk-accent));
    border-radius: 2px;
}

.dk-tl {
    position: relative;
    padding: 22px 24px;
    border-radius: var(--dk-radius);
    background: #fff;
    border: 1px solid var(--dk-line);
    transition: transform .3s var(--dk-ease), box-shadow .3s var(--dk-ease);
}

.dk-tl:hover {
    transform: translateX(4px);
    box-shadow: var(--dk-shadow);
}

.dk-tl::before {
    content: "";
    position: absolute;
    left: -30px;
    top: 28px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #fff;
    border: 3px solid var(--dk-brand);
    box-shadow: 0 0 0 4px var(--dk-bg);
}

.dk-tl-top {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: baseline;
    flex-wrap: wrap;
}

.dk-tl h3 {
    font-size: 1.1rem;
}

.dk-tl-when {
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .78rem;
    letter-spacing: .06em;
    color: var(--dk-brand);
    white-space: nowrap;
}

.dk-tl-where {
    margin: 4px 0 0;
    font-weight: 600;
    color: var(--dk-ink-2, #3A2A2B);
    font-size: .95rem;
}

.dk-tl-note {
    margin: 4px 0 0;
    font-size: .88rem;
    color: var(--dk-muted);
}

.dk-tl-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 10px;
    padding: 6px 12px;
    border-radius: 999px;
    background: #FFF7E3;
    color: #8A6A1C;
    border: 1px solid #F0DFA8;
    font-size: .78rem;
    font-weight: 700;
}

.dk-tl-badge i {
    color: var(--dk-gold);
}

.dk-edu-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(24px, 3vw, 40px);
    align-items: start;
}

.dk-edu-side {
    display: grid;
    gap: 16px;
    position: sticky;
    top: 150px;
}

.dk-mini {
    padding: 20px 22px;
    border-radius: var(--dk-radius);
    background: #fff;
    border: 1px solid var(--dk-line);
}

.dk-mini h4 {
    font-size: .74rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--dk-muted);
    margin-bottom: 12px;
}

.dk-mini ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 10px;
}

.dk-mini li {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: .9rem;
}

.dk-mini li b {
    color: var(--dk-ink);
    font-weight: 600;
}

.dk-mini li span {
    color: var(--dk-muted);
    text-align: right;
    font-size: .82rem;
}

/* ------------------------- global exposure ------------------------- */
.dk-globe {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.dk-globe-card {
    position: relative;
    padding: 26px;
    border-radius: var(--dk-radius-lg);
    background: #fff;
    border: 1px solid var(--dk-line);
    overflow: hidden;
    transition: transform .3s var(--dk-ease), box-shadow .3s var(--dk-ease);
}

.dk-globe-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--dk-shadow-lg);
}

.dk-globe-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: var(--adv-grad-mark);
}

.dk-globe-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}

.dk-globe-place {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-family: var(--dk-head);
    font-weight: 800;
    font-size: 1.15rem;
    color: var(--dk-ink);
}

.dk-globe-place i {
    color: var(--dk-brand);
}

.dk-globe-when {
    font-size: .78rem;
    font-weight: 700;
    color: var(--dk-brand);
    background: var(--adv-warm-soft);
    padding: 5px 11px;
    border-radius: 999px;
    white-space: nowrap;
}

.dk-globe-card h3 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--dk-brand-deep);
    margin-bottom: 8px;
}

.dk-globe-card p {
    font-size: .92rem;
    margin: 0 0 12px;
}

.dk-globe-card p strong {
    color: var(--dk-ink);
}

.dk-focus {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-top: 12px;
    border-top: 1px dashed var(--dk-line);
    font-size: .86rem;
}

.dk-focus span {
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .68rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--dk-muted);
}

.dk-focus b {
    color: var(--dk-ink);
    font-weight: 600;
}

/* --------------------------- affiliations -------------------------- */
.dk-aff {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr);
    gap: 20px;
}

.dk-aff-card {
    padding: 28px;
    border-radius: var(--dk-radius-lg);
    background: #fff;
    border: 1px solid var(--dk-line);
}

.dk-aff-card.is-dark {
    background: var(--adv-grad-deep);
    color: rgba(255, 255, 255, .85);
    border: 0;
}

.dk-aff-card h3 {
    font-size: 1.15rem;
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.dk-aff-card.is-dark h3 {
    color: #fff;
}

.dk-aff-card h3 i {
    color: var(--dk-brand);
}

.dk-aff-card.is-dark h3 i {
    color: var(--dk-accent);
}

.dk-aff-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px;
}

.dk-aff-list li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 14px 16px;
    border-radius: 14px;
    background: var(--dk-bg);
    border: 1px solid var(--dk-line);
    font-size: .92rem;
    font-weight: 600;
    color: var(--dk-ink);
}

.dk-aff-list li i {
    color: var(--dk-brand);
    margin-top: 3px;
}

.dk-reg {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 12px;
}

.dk-reg li {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 14px 16px;
    border-radius: 14px;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .14);
    font-weight: 600;
    color: #fff;
    font-size: .92rem;
}

.dk-reg li i {
    color: #7CE0A6;
}

/* ------------------------------ vision ---------------------------- */
.dk-vision {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(28px, 4vw, 56px);
    align-items: center;
}

.dk-vision-art {
    position: relative;
}

.dk-vision-art img {
    border-radius: var(--dk-radius-lg);
    box-shadow: var(--dk-shadow-lg);
    width: 100%;
    aspect-ratio: 500 / 607;
    object-fit: cover;
}

.dk-quote {
    position: absolute;
    left: 20px;
    right: 20px;
    bottom: 20px;
    padding: 18px 20px;
    border-radius: 18px;
    background: rgba(255, 255, 255, .92);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    font-family: var(--dk-head);
    font-weight: 600;
    font-size: .9rem;
    color: var(--dk-ink);
    line-height: 1.45;
}

.dk-quote i {
    color: var(--dk-brand);
    margin-right: 6px;
}

.dk-vision-copy h3 {
    font-size: 1.25rem;
    margin-bottom: 10px;
}

.dk-vision-copy p strong {
    color: var(--dk-brand);
}

.dk-checks {
    list-style: none;
    margin: 18px 0 24px;
    padding: 0;
    display: grid;
    gap: 10px;
}

.dk-checks li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    font-size: .95rem;
}

.dk-checks li i {
    flex: 0 0 22px;
    height: 22px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--adv-warm-soft);
    color: var(--dk-brand);
    font-size: .68rem;
    margin-top: 2px;
}

.dk-vision-links {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

/* ------------------------------ awards ---------------------------- */
.dk-award-hero {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 24px;
    align-items: center;
    padding: 30px;
    border-radius: var(--dk-radius-lg);
    background: linear-gradient(120deg, #3C0406 0%, #6E0B0E 60%, #8E1B2E 100%);
    color: rgba(255, 255, 255, .85);
    margin-bottom: 20px;
    position: relative;
    overflow: hidden;
}

.dk-award-hero::after {
    content: "";
    position: absolute;
    right: -60px;
    bottom: -80px;
    width: 260px;
    height: 260px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(201, 162, 74, .45), transparent 70%);
}

.dk-medal {
    width: 84px;
    height: 84px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: radial-gradient(circle at 30% 30%, #F4DC9A, var(--dk-gold) 60%, #8A6A1C);
    color: #3C0406;
    font-size: 2rem;
    box-shadow: 0 10px 30px -10px rgba(201, 162, 74, .8);
}

.dk-award-hero h3 {
    color: #fff;
    font-size: 1.5rem;
}

.dk-award-hero .dk-tag {
    background: rgba(255, 255, 255, .12);
    color: var(--dk-gold);
}

.dk-award-hero p {
    margin: 8px 0 0;
    max-width: 62ch;
}

.dk-award-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.dk-award {
    padding: 22px;
    border-radius: var(--dk-radius);
    background: #fff;
    border: 1px solid var(--dk-line);
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: transform .3s var(--dk-ease), box-shadow .3s var(--dk-ease);
}

.dk-award:hover {
    transform: translateY(-3px);
    box-shadow: var(--dk-shadow);
}

.dk-award i {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: #FFF7E3;
    color: #B8892C;
    font-size: 1rem;
}

.dk-award h3 {
    font-size: 1rem;
}

.dk-award p {
    margin: 0;
    font-size: .86rem;
    color: var(--dk-muted);
}

.dk-award p strong {
    color: var(--dk-ink);
    font-weight: 600;
}

.dk-award-group {
    margin-top: 28px;
}

.dk-award-group h3 {
    font-size: .76rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--dk-muted);
    margin-bottom: 14px;
}

/* --------------------------- academic roles ------------------------ */
.dk-roles {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.dk-role {
    padding: 24px;
    border-radius: var(--dk-radius-lg);
    background: #fff;
    border: 1px solid var(--dk-line);
}

.dk-role i.dk-role-ic {
    width: 46px;
    height: 46px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: var(--adv-grad-brand);
    color: #fff;
    margin-bottom: 14px;
}

.dk-role h3 {
    font-size: 1.05rem;
    margin-bottom: 12px;
}

.dk-role ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 10px;
}

.dk-role li {
    font-size: .9rem;
}

.dk-role li b {
    display: block;
    color: var(--dk-ink);
    font-weight: 600;
}

.dk-role li span {
    color: var(--dk-muted);
    font-size: .84rem;
}

.dk-role p {
    font-size: .9rem;
    margin: 0 0 10px;
}

.dk-role-span {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

.dk-journals {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.dk-journals li {
    padding: 7px 13px;
    border-radius: 999px;
    background: var(--dk-bg);
    border: 1px solid var(--dk-line);
    font-size: .82rem;
    font-weight: 600;
    color: var(--dk-ink);
}

/* ----------------------------- lectures --------------------------- */
.dk-lect {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
    gap: 24px;
    align-items: start;
}

.dk-panel {
    padding: 26px;
    border-radius: var(--dk-radius-lg);
    background: #fff;
    border: 1px solid var(--dk-line);
}

.dk-panel > h3 {
    font-size: 1.15rem;
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.dk-panel > h3 i {
    color: var(--dk-brand);
}

.dk-panel > h3 small {
    margin-left: auto;
    font-family: var(--dk-sans);
    font-weight: 600;
    font-size: .74rem;
    color: var(--dk-muted);
    letter-spacing: .06em;
    text-transform: uppercase;
}

.dk-talks {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
}

.dk-talks li {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 2px;
    padding: 12px 0;
    border-bottom: 1px solid var(--dk-line);
}

.dk-talks li:last-child {
    border-bottom: 0;
}

.dk-talks b {
    color: var(--dk-ink);
    font-weight: 600;
    font-size: .95rem;
}

.dk-talks span {
    font-size: .82rem;
    color: var(--dk-muted);
}

.dk-talks-sub {
    margin: 18px 0 10px;
    font-size: .72rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--dk-muted);
}

.dk-conf {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.dk-conf li {
    padding: 7px 12px;
    border-radius: 10px;
    background: var(--dk-bg);
    border: 1px solid var(--dk-line);
    font-size: .8rem;
    color: var(--dk-ink);
}

.dk-conf li em {
    font-style: normal;
    color: var(--dk-brand);
    font-weight: 700;
}

.dk-pres {
    margin: 24px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px;
}

.dk-pres li {
    padding: 16px 18px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid var(--dk-line);
    font-size: .88rem;
}

.dk-pres li small {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    font-size: .72rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--dk-brand);
    font-weight: 700;
    margin-bottom: 6px;
}

.dk-pres li small span {
    color: var(--dk-muted);
    font-weight: 600;
    text-align: right;
}

.dk-pres li b {
    display: block;
    color: var(--dk-ink);
    font-weight: 600;
}

.dk-pres li span.dk-pres-at {
    display: block;
    color: var(--dk-muted);
    font-size: .82rem;
    margin-top: 4px;
}

/* --------------------------- publications ------------------------- */
.dk-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 24px;
}

.dk-filters button {
    font: inherit;
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .82rem;
    padding: 8px 16px;
    border-radius: 999px;
    border: 1.5px solid var(--dk-line);
    background: #fff;
    color: var(--dk-body);
    cursor: pointer;
    transition: all .2s;
}

.dk-filters button:hover {
    border-color: var(--dk-brand);
    color: var(--dk-brand);
}

.dk-filters button.is-on {
    background: var(--dk-brand);
    border-color: var(--dk-brand);
    color: #fff;
}

.dk-pubs {
    display: grid;
    gap: 14px;
}

.dk-pub {
    border-radius: var(--dk-radius);
    background: #fff;
    border: 1px solid var(--dk-line);
    transition: box-shadow .3s var(--dk-ease);
}

.dk-pub[hidden] {
    display: none;
}

.dk-pub:hover {
    box-shadow: var(--dk-shadow);
}

.dk-pub summary {
    list-style: none;
    cursor: pointer;
    padding: 20px 22px;
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    gap: 18px;
    align-items: start;
}

.dk-pub summary::-webkit-details-marker {
    display: none;
}

.dk-pub-year {
    font-family: var(--dk-head);
    font-weight: 800;
    font-size: 1.05rem;
    color: var(--dk-brand);
    padding-top: 2px;
}

.dk-pub-year small {
    display: block;
    font-family: var(--dk-sans);
    font-weight: 600;
    font-size: .66rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--dk-muted);
    margin-top: 2px;
}

.dk-pub h3 {
    overflow-wrap: anywhere;
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.35;
}

.dk-pub-meta {
    margin-top: 6px;
    font-size: .84rem;
    color: var(--dk-muted);
}

.dk-pub-meta em {
    font-style: normal;
    font-weight: 600;
    color: var(--dk-brand-deep);
}

.dk-pub-type {
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--adv-warm-soft);
    color: var(--dk-brand);
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .66rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    white-space: nowrap;
}

.dk-pub-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    font-size: .78rem;
    font-weight: 700;
    color: var(--dk-brand);
}

.dk-pub-toggle i {
    transition: transform .25s;
}

.dk-pub[open] .dk-pub-toggle i {
    transform: rotate(180deg);
}

.dk-pub-body {
    padding: 0 22px 22px 104px;
}

.dk-pub-body ol {
    margin: 0 0 14px;
    padding-left: 18px;
    font-size: .9rem;
    display: grid;
    gap: 6px;
}

.dk-pub-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.dk-pub-links a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 12px;
    border-radius: 999px;
    border: 1px solid var(--dk-line);
    font-size: .78rem;
    font-weight: 700;
    color: var(--dk-brand);
    transition: all .2s;
}

.dk-pub-links a:hover {
    background: var(--dk-brand);
    border-color: var(--dk-brand);
    color: #fff;
}

/* ----------------------------- chapters --------------------------- */
.dk-chapters {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.dk-chap {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 18px;
    padding: 22px;
    border-radius: var(--dk-radius);
    background: #fff;
    border: 1px solid var(--dk-line);
}

.dk-chap-year {
    font-family: var(--dk-head);
    font-weight: 800;
    color: var(--dk-brand);
    font-size: 1rem;
    padding-top: 2px;
}

.dk-chap h3 {
    font-size: 1rem;
    margin-bottom: 6px;
}

.dk-chap p {
    margin: 0;
    font-size: .86rem;
    color: var(--dk-muted);
}

.dk-chap p b {
    color: var(--dk-ink);
    font-weight: 600;
}

.dk-chap a {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    margin-top: 8px;
    font-size: .78rem;
    font-weight: 700;
}

/* ------------------------------ gallery --------------------------- */
.dk-gallery {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: 220px;
    gap: 14px;
}

.dk-gallery figure {
    margin: 0;
    border-radius: var(--dk-radius);
    overflow: hidden;
    position: relative;
}

.dk-gallery figure:first-child {
    grid-column: span 2;
    grid-row: span 2;
}

.dk-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s var(--dk-ease);
}

.dk-gallery figure:hover img {
    transform: scale(1.05);
}

/* ------------------------------ contact --------------------------- */
.dk-contact {
    background: var(--adv-grad-deep);
    color: rgba(255, 255, 255, .85);
    position: relative;
    overflow: hidden;
}

.dk-contact::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(50% 70% at 90% 10%, rgba(240, 144, 96, .3), transparent 60%);
}

.dk-contact-in {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
    gap: clamp(28px, 4vw, 56px);
    align-items: center;
}

.dk-contact h2 {
    color: #fff;
    font-size: clamp(1.7rem, 3.2vw, 2.5rem);
    font-weight: 800;
    margin: 12px 0 14px;
}

.dk-contact p {
    max-width: 52ch;
}

.dk-contact-cards {
    display: grid;
    gap: 12px;
}

.dk-contact-card {
    display: flex;
    gap: 16px;
    align-items: center;
    padding: 18px 20px;
    border-radius: 18px;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .14);
    color: #fff;
    transition: background .2s, transform .25s var(--dk-ease);
}

.dk-contact-card:hover {
    background: rgba(255, 255, 255, .14);
    transform: translateX(4px);
}

.dk-contact-card i {
    flex: 0 0 46px;
    height: 46px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, .12);
    color: var(--dk-accent);
    font-size: 1.1rem;
}

.dk-contact-card.is-wa i {
    background: rgba(37, 211, 102, .18);
    color: #7CE0A6;
}

.dk-contact-card b {
    overflow-wrap: anywhere;
    display: block;
    font-family: var(--dk-head);
    font-size: .95rem;
}

.dk-contact-card span {
    font-size: .8rem;
    color: rgba(255, 255, 255, .7);
}

/* ------------------------------ footer ---------------------------- */
.dk-foot {
    background: #2A0508;
    color: rgba(255, 255, 255, .72);
    padding: 44px 0 28px;
    font-size: .88rem;
}

.dk-foot-in {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.dk-foot-brand {
    display: flex;
    align-items: center;
    gap: 14px;
}

.dk-foot-brand img {
    height: 54px;
    width: auto;
    background: #fff;
    border-radius: 12px;
    padding: 6px;
}

.dk-foot-brand b {
    display: block;
    color: #fff;
    font-family: var(--dk-head);
}

.dk-foot-links {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
}

.dk-foot-links a {
    color: rgba(255, 255, 255, .78);
    font-weight: 600;
}

.dk-foot-links a:hover {
    color: #fff;
}

.dk-foot-copy {
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, .1);
    font-size: .8rem;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
}

/* --------------------------- sticky mobile ------------------------ */
.dk-sticky {
    display: none;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 95;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    background: rgba(255, 255, 255, .96);
    border-top: 1px solid var(--dk-line);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}

.dk-sticky-in {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.2fr);
    gap: 8px;
}

.dk-sticky a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 8px;
    border-radius: 12px;
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .84rem;
    color: #fff;
}

.dk-sticky .is-call {
    background: var(--dk-ink);
}

.dk-sticky .is-wa {
    background: var(--adv-wa-deep);
}

.dk-sticky .is-book {
    background: var(--adv-grad-brand);
}

/* ------------------------------ reveal ---------------------------- */
html.js .dk-reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .7s var(--dk-ease), transform .7s var(--dk-ease);
}

html.js .dk-reveal.is-in {
    opacity: 1;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    html.js .dk-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }

    html {
        scroll-behavior: auto;
    }
}

/* ----------------------------- responsive ------------------------- */
@media (max-width: 1080px) {
    .dk-award-grid,
    .dk-roles {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    .dk-float-a {
        left: -8px;
    }

    .dk-float-b {
        right: -8px;
    }
}

@media (max-width: 900px) {
    .dk-hero-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .dk-hero-art {
        order: -1;
        width: min(100%, 340px);
    }

    .dk-explore {
        margin-top: 16px;
    }

    .dk-stats-in {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        transform: translateY(-24px);
    }

    .dk-stat {
        border-bottom: 1px solid var(--dk-line);
    }

    .dk-stat:nth-child(2n) {
        border-right: 0;
    }

    .dk-stat:nth-last-child(-n+2) {
        border-bottom: 0;
    }

    .dk-about,
    .dk-edu-grid,
    .dk-globe,
    .dk-aff,
    .dk-vision,
    .dk-lect,
    .dk-chapters,
    .dk-contact-in {
        grid-template-columns: minmax(0, 1fr);
    }

    .dk-edu-side {
        position: static;
    }

    .dk-sec-head {
        grid-template-columns: minmax(0, 1fr);
    }

    .dk-lede {
        text-align: left;
    }

    .dk-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: 200px;
    }

    .dk-pres {
        grid-template-columns: minmax(0, 1fr);
    }

    .dk-role-span {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 720px) {
    .dk-head-name {
        display: none;
    }

    .dk-head-acts .dk-btn-ghost {
        display: none;
    }

    .dk-head-in {
        min-height: 70px;
    }

    .dk-logo img {
        height: 50px;
    }

    .dk-subnav {
        top: 70px;
    }

    html {
        scroll-padding-top: 124px;
    }

    .dk-award-grid,
    .dk-roles,
    .dk-aff-list {
        grid-template-columns: minmax(0, 1fr);
    }

    .dk-award-hero {
        grid-template-columns: minmax(0, 1fr);
    }

    .dk-pub summary {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .dk-pub-year {
        display: flex;
        gap: 8px;
        align-items: baseline;
    }

    .dk-pub-body {
        padding: 0 22px 22px;
    }

    .dk-pub-type {
        justify-self: start;
    }

    .dk-sticky {
        display: block;
    }

    body.dk {
        padding-bottom: 76px;
    }

    .dk-float {
        font-size: .78rem;
        padding: 10px 12px;
    }

    .dk-float-a {
        left: 0;
        bottom: 96px;
    }

    .dk-float-b {
        right: 0;
        top: 16px;
    }

    .dk-chap {
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
    }
}

@media (max-width: 480px) {
    .dk-stats-in {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    .dk-gallery {
        grid-template-columns: minmax(0, 1fr);
        grid-auto-rows: 240px;
    }

    .dk-gallery figure:first-child {
        grid-column: auto;
        grid-row: auto;
    }
}

/* ===================================================================
   Premium pass: numbered eyebrows, institution ribbon, quote band,
   featured paper, gallery captions, header scroll state, back-to-top,
   and softer card treatment.
   =================================================================== */

/* numbered eyebrow */
.dk-eyebrow b {
    font-weight: 800;
    color: var(--dk-accent);
    letter-spacing: 0;
}

.dk-sec-head .dk-eyebrow b {
    color: var(--dk-accent);
}

/* header: subtle lift once the page scrolls */
.dk-head {
    transition: box-shadow .3s, background .3s;
}

.dk-head.is-scrolled {
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 10px 30px -18px rgba(94, 16, 25, .35);
}

/* hero: name with a hairline underline flourish */
.dk-hero h1 {
    position: relative;
    text-shadow: 0 2px 30px rgba(0, 0, 0, .25);
}

.dk-hero-sub {
    border-left: 2px solid rgba(240, 144, 96, .55);
    padding-left: 16px;
}

.dk-hero-frame::after {
    content: "";
    position: absolute;
    inset: -18px;
    border-radius: 44px;
    border: 1px solid rgba(255, 255, 255, .08);
    pointer-events: none;
}

/* stats: tinted hairline and icon-less emphasis */
.dk-stats-in {
    border: 1px solid rgba(94, 16, 25, .06);
}

.dk-stat b {
    background: var(--adv-grad-mark);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* institution ribbon */
.dk-ribbon {
    overflow: hidden;
    border-bottom: 1px solid var(--dk-line);
    background: #fff;
    padding: 14px 0;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.dk-ribbon-track {
    display: flex;
    align-items: center;
    gap: 28px;
    width: max-content;
    animation: dk-marquee 60s linear infinite;
}

.dk-ribbon-track span {
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .78rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--dk-muted);
    white-space: nowrap;
}

.dk-ribbon-track i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--dk-accent);
    flex: none;
}

.dk-ribbon:hover .dk-ribbon-track {
    animation-play-state: paused;
}

@keyframes dk-marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

/* quote band */
.dk-quoteband {
    background: var(--adv-grad-deep);
    color: #fff;
    padding: clamp(48px, 6vw, 84px) 0;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.dk-quoteband::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(50% 80% at 50% 0%, rgba(240, 144, 96, .25), transparent 70%);
}

.dk-quoteband .dk-wrap {
    position: relative;
    max-width: 880px;
}

.dk-quoteband > .dk-wrap > i {
    display: inline-grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .2);
    color: var(--dk-accent);
    margin-bottom: 22px;
}

.dk-quoteband blockquote {
    margin: 0 0 18px;
    font-family: var(--dk-head);
    font-weight: 600;
    font-size: clamp(1.25rem, 2.4vw, 1.85rem);
    line-height: 1.4;
    letter-spacing: -.01em;
}

.dk-quoteband cite {
    font-style: normal;
    font-size: .82rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .7);
}

/* featured publication */
.dk-featured {
    position: relative;
    padding: 30px 32px;
    border-radius: var(--dk-radius-lg);
    background: linear-gradient(135deg, #fff 0%, #FBF3EF 100%);
    border: 1px solid var(--dk-line);
    box-shadow: var(--dk-shadow);
    margin-bottom: 28px;
    overflow: hidden;
}

.dk-featured::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 6px;
    background: var(--adv-grad-mark);
}

.dk-featured::after {
    content: "";
    position: absolute;
    right: -80px;
    top: -80px;
    width: 260px;
    height: 260px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(240, 144, 96, .18), transparent 70%);
}

.dk-featured-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--dk-brand);
    color: #fff;
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .68rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.dk-featured-tag i {
    color: #F4DC9A;
}

.dk-featured h3 {
    font-size: clamp(1.15rem, 1.8vw, 1.45rem);
    max-width: 52ch;
    margin-bottom: 10px;
}

.dk-featured p {
    max-width: 78ch;
    font-size: .95rem;
    margin-bottom: 16px;
}

.dk-featured-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
    font-size: .82rem;
    color: var(--dk-muted);
    align-items: center;
}

.dk-featured-meta i {
    color: var(--dk-brand);
    margin-right: 5px;
}

.dk-featured-meta a {
    display: inline-flex;
    align-items: center;
    padding: 6px 12px;
    border-radius: 999px;
    border: 1px solid var(--dk-line);
    background: #fff;
    font-weight: 700;
    color: var(--dk-brand);
    transition: all .2s;
}

.dk-featured-meta a:hover {
    background: var(--dk-brand);
    border-color: var(--dk-brand);
    color: #fff;
}

.dk-featured-meta a:hover i {
    color: #fff;
}

/* gallery captions */
.dk-gallery figcaption {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 34px 16px 14px;
    background: linear-gradient(180deg, transparent, rgba(36, 26, 27, .82));
    color: #fff;
    font-family: var(--dk-head);
    font-weight: 600;
    font-size: .82rem;
    letter-spacing: .02em;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .35s var(--dk-ease), transform .35s var(--dk-ease);
}

.dk-gallery figure:hover figcaption {
    opacity: 1;
    transform: none;
}

@media (pointer: coarse) {
    .dk-gallery figcaption {
        opacity: 1;
        transform: none;
    }
}

/* back to top */
.dk-top {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 96;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--adv-grad-brand);
    color: #fff;
    box-shadow: 0 14px 30px -12px rgba(94, 16, 25, .6);
    opacity: 0;
    transform: translateY(12px);
    pointer-events: none;
    transition: opacity .3s, transform .3s var(--dk-ease);
}

.dk-top.is-show {
    opacity: 1;
    transform: none;
    pointer-events: auto;
}

@media (max-width: 720px) {
    .dk-top {
        bottom: 88px;
        right: 14px;
        width: 42px;
        height: 42px;
    }
}

/* softer, more premium card treatment */
.dk-tl,
.dk-globe-card,
.dk-aff-card,
.dk-award,
.dk-role,
.dk-panel,
.dk-pub,
.dk-chap,
.dk-mini,
.dk-comp-item,
.dk-appt-card {
    border-color: rgba(94, 16, 25, .08);
}

.dk-tl,
.dk-globe-card,
.dk-award,
.dk-role,
.dk-chap,
.dk-pub {
    box-shadow: 0 1px 2px rgba(94, 16, 25, .04);
}

.dk-tl h3,
.dk-globe-card h3,
.dk-award h3,
.dk-role h3 {
    letter-spacing: -.005em;
}

/* section heads: a hairline rule under the header block */
.dk-sec-head {
    padding-bottom: 22px;
    border-bottom: 1px solid var(--dk-line);
}

/* section rhythm on very wide screens */
@media (min-width: 1400px) {
    :root {
        --dk-wrap: 1240px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dk-ribbon-track {
        animation: none;
    }
}

/* ===================================================================
   Light editorial hero — replaces the dark crimson hero. Ivory ground,
   charcoal type, arched portrait on a blush field, crimson accents.
   =================================================================== */

.dk-hero {
    background: linear-gradient(180deg, #FFFFFF 0%, #FBF4F1 100%);
    color: var(--dk-ink);
    border-bottom: 1px solid var(--dk-line);
}

.dk-hero::before {
    background:
        radial-gradient(48% 70% at 78% 30%, rgba(240, 144, 96, .22) 0%, transparent 62%),
        radial-gradient(36% 50% at 10% 95%, rgba(180, 60, 84, .10) 0%, transparent 60%);
}

.dk-hero::after {
    background-image:
        linear-gradient(rgba(94, 16, 25, .05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(94, 16, 25, .05) 1px, transparent 1px);
    background-size: 64px 64px;
    -webkit-mask-image: radial-gradient(70% 80% at 30% 40%, #000 10%, transparent 100%);
    mask-image: radial-gradient(70% 80% at 30% 40%, #000 10%, transparent 100%);
}

.dk-hero .dk-eyebrow {
    color: var(--dk-brand);
}

.dk-hero h1 {
    color: var(--dk-ink);
    text-shadow: none;
    font-size: clamp(2.6rem, 5.6vw, 4.4rem);
    letter-spacing: -.025em;
}

.dk-hero h1 span {
    color: var(--dk-brand);
    font-weight: 600;
    font-size: .38em;
    letter-spacing: .01em;
}

.dk-hero-sub {
    color: var(--dk-body);
    border-left-color: var(--dk-accent);
}

.dk-chips li {
    background: #fff;
    border: 1px solid var(--dk-line);
    color: var(--dk-ink);
    box-shadow: 0 1px 2px rgba(94, 16, 25, .05);
}

.dk-chips li i {
    color: var(--dk-brand);
}

.dk-hero .dk-btn-white {
    background: var(--adv-grad-brand);
    color: #fff;
    box-shadow: 0 12px 26px -12px rgba(120, 12, 12, .55);
}

.dk-hero .dk-btn-light {
    background: #fff;
    color: var(--dk-brand);
    border-color: var(--dk-line);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

.dk-hero .dk-btn-light:hover {
    border-color: var(--dk-brand);
    background: #fff;
}

/* portrait: arched top on a blush field, no gradient border */
.dk-hero-art {
    width: min(100%, 440px);
    padding-top: 24px;
}

.dk-hero-art::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    width: 118%;
    height: 118%;
    transform: translateX(-50%);
    border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
    background: radial-gradient(60% 60% at 50% 40%, rgba(240, 144, 96, .28), rgba(180, 60, 84, .08) 60%, transparent 75%);
    z-index: -1;
    pointer-events: none;
}

.dk-hero-frame {
    padding: 0;
    background: none;
    box-shadow: none;
    border-radius: 220px 220px 32px 32px;
}

.dk-hero-frame::after {
    inset: -14px;
    border-radius: 236px 236px 44px 44px;
    border: 1px solid rgba(142, 27, 46, .18);
}

.dk-hero-frame img {
    border-radius: 220px 220px 32px 32px;
    background: linear-gradient(180deg, #F7DCC9 0%, #FBF4F1 100%);
    box-shadow: var(--dk-shadow-lg);
}

.dk-float {
    border: 1px solid var(--dk-line);
}

.dk-float-b {
    top: 34px;
    right: -30px;
}

.dk-float-a {
    bottom: 110px;
    left: -36px;
}

/* explore button: solid ink on the light ground */
.dk-explore {
    background: var(--dk-ink);
    border-color: var(--dk-ink);
    color: #fff;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: 0 14px 30px -14px rgba(36, 26, 27, .5);
}

.dk-explore:hover {
    background: var(--dk-brand-deep);
    border-color: var(--dk-brand-deep);
}

/* stats: sit flush under the hero as a bordered strip, not floating */
.dk-stats {
    margin-top: 0;
}

.dk-stats-in {
    transform: translateY(0);
    margin: 40px 0 -1px;
    border-radius: var(--dk-radius-lg) var(--dk-radius-lg) 0 0;
    box-shadow: 0 -10px 30px -20px rgba(94, 16, 25, .25);
    border: 1px solid var(--dk-line);
    border-bottom: 0;
}

/* sub nav sits directly under the ribbon; tone it warmer */
.dk-subnav {
    background: rgba(255, 255, 255, .94);
}

/* header: match the light hero exactly */
.dk-head {
    background: rgba(255, 255, 255, .96);
}

@media (max-width: 900px) {
    .dk-hero-art {
        width: min(100%, 360px);
        padding-top: 16px;
    }

    .dk-float-b {
        right: -6px;
        top: 20px;
    }

    .dk-float-a {
        left: -6px;
        bottom: 100px;
    }

    .dk-stats-in {
        transform: translateY(0);
        margin-top: 28px;
    }
}

@media (max-width: 720px) {
    .dk-float-a {
        left: 0;
        bottom: 96px;
    }

    .dk-float-b {
        right: 0;
        top: 12px;
    }
}

/* ===================================================================
   Editorial hero (v7). Supersedes the two earlier hero treatments:
   serif display name, credential grid instead of pills, cut-out
   portrait on a deep crimson panel with an offset hairline frame,
   vertical specialty line, inline stats with serif numerals.
   =================================================================== */

@font-face {
    font-family: 'Cormorant Garamond';
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url('../assets/fonts/cormorant-garamond-variable.woff2') format('woff2');
}

:root {
    --dk-serif: 'Cormorant Garamond', 'Times New Roman', Georgia, serif;
    --dk-ivory: #FBF7F2;
}

.dk-hero.dk-ed {
    background: var(--dk-ivory);
    border-bottom: 1px solid var(--dk-line);
}

.dk-hero.dk-ed::before {
    background: radial-gradient(40% 60% at 85% 35%, rgba(240, 144, 96, .14), transparent 70%);
}

.dk-hero.dk-ed::after {
    display: none;
}

.dk-ed-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
    gap: clamp(32px, 6vw, 96px);
    align-items: center;
    padding: clamp(56px, 6.5vw, 96px) 0 clamp(40px, 4.5vw, 64px);
}

/* ---- copy ---- */
.dk-ed-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 22px !important;
    padding: 7px 14px 7px 12px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--dk-line);
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .74rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--dk-brand);
}

.dk-ed-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #2FB36B;
    box-shadow: 0 0 0 4px rgba(47, 179, 107, .16);
}

.dk-hero .dk-ed-name {
    font-family: var(--dk-serif);
    font-weight: 600;
    font-size: clamp(3.2rem, 7.4vw, 6.2rem);
    line-height: .95;
    letter-spacing: -.02em;
    color: var(--dk-ink);
    margin: 0 0 20px;
    text-shadow: none;
}

.dk-hero .dk-ed-name small {
    display: block;
    font-family: var(--dk-head);
    font-size: .2em;
    font-weight: 700;
    letter-spacing: .3em;
    text-transform: uppercase;
    color: var(--dk-muted);
    margin: 0 0 12px 4px;
}

.dk-hero .dk-ed-name em {
    font-style: italic;
    font-weight: 500;
    color: var(--dk-brand);
}

.dk-ed-role {
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: clamp(1rem, 1.35vw, 1.15rem);
    color: var(--dk-ink);
    margin: 0 0 8px !important;
}

.dk-ed-role span {
    color: var(--dk-accent);
    margin: 0 6px;
}

.dk-ed-quals {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 12px;
    font-size: .84rem;
    font-weight: 600;
    letter-spacing: .04em;
    color: var(--dk-muted);
    margin: 0 0 24px !important;
}

.dk-ed-quals i {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--dk-accent);
}

.dk-ed-lede {
    max-width: 54ch;
    font-size: 1.06rem;
    line-height: 1.75;
    color: var(--dk-body);
    margin: 0 0 30px !important;
}

.dk-ed-acts {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px 26px;
    margin-bottom: 40px;
}

.dk-ed-acts .dk-btn {
    padding: 15px 26px;
}

.dk-ed-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .92rem;
    color: var(--dk-ink) !important;
    padding-bottom: 4px;
    border-bottom: 1.5px solid var(--dk-ink);
    transition: color .2s, border-color .2s, gap .25s var(--dk-ease);
}

.dk-ed-link:hover {
    color: var(--dk-brand) !important;
    border-color: var(--dk-brand);
    gap: 14px;
}

.dk-ed-creds {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
    border-top: 1px solid var(--dk-line);
}

.dk-ed-creds > div {
    padding: 20px 20px 0 0;
}

.dk-ed-creds > div + div {
    padding-left: 20px;
    border-left: 1px solid var(--dk-line);
}

.dk-ed-creds dt {
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .66rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--dk-brand);
    margin-bottom: 8px;
}

.dk-ed-creds dd {
    margin: 0;
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .95rem;
    line-height: 1.3;
    color: var(--dk-ink);
}

.dk-ed-creds dd span {
    display: block;
    margin-top: 4px;
    font-family: var(--dk-sans);
    font-weight: 500;
    font-size: .8rem;
    color: var(--dk-muted);
}

/* ---- portrait ---- */
.dk-ed-art {
    position: relative;
    width: min(100%, 460px);
    justify-self: end;
    padding: 0 0 0 36px;
}

.dk-ed-photo {
    position: relative;
    z-index: 2;
    margin: 0;
    aspect-ratio: 4 / 5;
    border-radius: 6px;
    overflow: hidden;
    background:
        radial-gradient(70% 55% at 55% 30%, rgba(240, 144, 96, .45), transparent 70%),
        linear-gradient(170deg, #8E1B2E 0%, #5E1019 55%, #3C0406 100%);
    box-shadow: 0 40px 80px -36px rgba(60, 4, 6, .6), 0 14px 30px -18px rgba(60, 4, 6, .35);
}

.dk-ed-photo::after {
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    height: 30%;
    background: linear-gradient(180deg, transparent, rgba(36, 6, 8, .35));
    pointer-events: none;
}

.dk-ed-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 12%;
}

.dk-ed-outline {
    position: absolute;
    z-index: 1;
    top: -22px;
    right: -22px;
    bottom: 110px;
    left: 58px;
    border: 1px solid rgba(142, 27, 46, .35);
    border-radius: 6px;
}

.dk-ed-vert {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 110px;
    display: flex;
    align-items: center;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .66rem;
    letter-spacing: .32em;
    text-transform: uppercase;
    color: var(--dk-muted);
    white-space: nowrap;
}

.dk-ed-card {
    position: absolute;
    z-index: 3;
    left: 0;
    bottom: 128px;
    display: flex;
    align-items: center;
    gap: 12px;
    max-width: 290px;
    padding: 12px 16px 12px 12px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid var(--dk-line);
    box-shadow: 0 24px 50px -24px rgba(60, 4, 6, .45);
}

.dk-ed-card img {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: var(--dk-ivory);
    padding: 3px;
    flex: none;
}

.dk-ed-card b {
    display: block;
    font-family: var(--dk-head);
    font-size: .84rem;
    line-height: 1.25;
    color: var(--dk-ink);
}

.dk-ed-card span {
    display: block;
    font-size: .74rem;
    color: var(--dk-muted);
    margin-top: 2px;
}

.dk-ed-art .dk-explore {
    position: relative;
    z-index: 2;
    margin-top: 22px;
    border-radius: 6px;
    background: var(--dk-ink);
    border-color: var(--dk-ink);
    color: #fff;
    letter-spacing: .14em;
    font-size: .82rem;
    padding: 17px 22px;
}

.dk-ed-art .dk-explore i {
    background: var(--dk-accent);
    color: var(--dk-ink);
}

.dk-ed-art .dk-explore:hover {
    background: var(--dk-brand-deep);
    border-color: var(--dk-brand-deep);
}

/* ---- stats ---- */
.dk-ed-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--dk-line);
    padding: 28px 0 34px;
}

.dk-ed-stats > div {
    padding: 0 24px;
    border-left: 1px solid var(--dk-line);
}

.dk-ed-stats > div:first-child {
    padding-left: 0;
    border-left: 0;
}

.dk-ed-stats b {
    display: block;
    font-family: var(--dk-serif);
    font-weight: 600;
    font-size: clamp(2.4rem, 4vw, 3.4rem);
    line-height: 1;
    color: var(--dk-brand);
}

.dk-ed-stats span {
    display: block;
    margin-top: 8px;
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--dk-muted);
}

/* serif for section display headings too, so the page reads as one piece */
.dk-sec-head h2,
.dk-contact h2 {
    font-family: var(--dk-serif);
    font-weight: 600;
    font-size: clamp(2.1rem, 4vw, 3.2rem);
    letter-spacing: -.01em;
    line-height: 1.05;
}

.dk-sec-head h2 em {
    font-style: italic;
    font-weight: 500;
}

.dk-quoteband blockquote {
    font-family: var(--dk-serif);
    font-style: italic;
    font-weight: 500;
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    line-height: 1.3;
}

/* ---- responsive ---- */
@media (max-width: 1000px) {
    .dk-ed-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .dk-ed-art {
        justify-self: center;
        width: min(100%, 440px);
    }
}

@media (max-width: 720px) {
    .dk-ed-creds {
        grid-template-columns: minmax(0, 1fr);
    }

    .dk-ed-creds > div,
    .dk-ed-creds > div + div {
        padding: 16px 0;
        border-left: 0;
        border-bottom: 1px solid var(--dk-line);
    }

    .dk-ed-art {
        padding-left: 28px;
    }

    .dk-ed-outline {
        top: -14px;
        right: -10px;
        left: 44px;
    }

    .dk-ed-card {
        max-width: 250px;
        bottom: 118px;
    }

    .dk-ed-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 24px;
    }

    .dk-ed-stats > div:nth-child(3) {
        padding-left: 0;
        border-left: 0;
    }
}

/* lining figures for serif numerals; wider credential card */
.dk-ed-stats b,
.dk-ed-name {
    font-variant-numeric: lining-nums;
    font-feature-settings: "lnum" 1;
}

.dk-ed-card {
    max-width: 330px;
    bottom: 140px;
    left: -8px;
}

/* no italics anywhere: accent words stay upright and bold */
.dk-hero .dk-ed-name em,
.dk-sec-head h2 em,
.dk-quoteband blockquote {
    font-style: normal;
    font-weight: 700;
}

.dk-hero .dk-ed-name,
.dk-sec-head h2,
.dk-contact h2 {
    font-weight: 700;
}


/* enlarge only the person inside the panel; panel size unchanged */
.dk-ed-photo img {
    transform: scale(1.16);
    transform-origin: 50% 100%;
}

/* credential card moves to the empty top-left corner so it never covers her */
.dk-ed-card {
    top: 36px;
    bottom: auto;
    left: 0;
    max-width: 250px;
    padding: 10px 14px 10px 10px;
}

.dk-ed-card b {
    font-size: .8rem;
}

.dk-ed-card span {
    font-size: .7rem;
}

.dk-ed-card img {
    width: 38px;
    height: 38px;
}

@media (max-width: 720px) {
    .dk-ed-card {
        top: 22px;
        bottom: auto;
        max-width: 210px;
    }
}

.dk-ed-card {
    max-width: 196px;
    top: 28px;
}

/* fill the panel: push the photo's rounded bottom edge out of frame,
   anchor the zoom on her face so the head stays inside */
.dk-ed-photo img {
    transform: scale(1.25);
    transform-origin: 52% 24%;
}

/* pop-out portrait: she grows past the top of the crimson panel while the
   panel keeps its size. Sides and bottom stay clipped to the panel. */
.dk-ed-photo {
    overflow: visible;
    clip-path: inset(-30% 0 0 0 round 0 0 6px 6px);
}

.dk-ed-photo img {
    transform: scale(1.24);
    transform-origin: 50% 85%;
}

.dk-ed-card {
    z-index: 4;
}

/* card sits over the panel's top-left corner, clear of her face */
.dk-ed-card {
    top: -52px;
    left: -14px;
    max-width: 188px;
}

@media (max-width: 720px) {
    .dk-ed-card {
        top: -46px;
        left: -8px;
        max-width: 180px;
    }
}

@media (max-width: 1000px) {
    .dk-ed-art {
        margin-top: 20px;
    }
}

/* specialty chips floating around the portrait */
.dk-spec {
    position: absolute;
    z-index: 4;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px 10px 10px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid var(--dk-line);
    box-shadow: 0 18px 40px -18px rgba(60, 4, 6, .45);
    animation: dk-float 5s ease-in-out infinite;
}

.dk-spec b {
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .8rem;
    line-height: 1.25;
    color: var(--dk-ink);
    white-space: nowrap;
}

.dk-spec-ic {
    flex: none;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #A40A0A;
}

.dk-spec-ic img {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

.dk-spec-1 {
    left: 0;
    top: 30%;
}

.dk-spec-2 {
    right: -26px;
    top: 7%;
    animation-delay: -1.6s;
}

.dk-spec-3 {
    right: -26px;
    top: 50%;
    animation-delay: -3.2s;
}

@keyframes dk-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}

@media (prefers-reduced-motion: reduce) {
    .dk-spec { animation: none; }
}

@media (max-width: 720px) {
    .dk-spec {
        gap: 8px;
        padding: 7px 10px 7px 7px;
        border-radius: 11px;
    }

    .dk-spec b {
        font-size: .68rem;
    }

    .dk-spec-ic {
        width: 32px;
        height: 32px;
    }

    .dk-spec-ic img {
        width: 18px;
        height: 18px;
    }

    .dk-spec-1 { left: 0; top: 34%; }
    .dk-spec-2 { right: -6px; top: 5%; }
    .dk-spec-3 { right: -6px; top: 54%; }
}

/* two chips stacked on the empty left side, one on the right over the coat */
.dk-spec-2 {
    left: 0;
    right: auto;
    top: 9%;
}

.dk-spec-1 {
    top: 29%;
}

@media (max-width: 720px) {
    .dk-spec-2 { left: 0; right: auto; top: 8%; }
    .dk-spec-1 { top: 27%; }
}

/* ---------------- decoration around the portrait ---------------- */
.dk-deco {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

/* concentric rings behind the panel, centred on her head */
.dk-deco-ring {
    position: absolute;
    left: 58%;
    top: 34%;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    border: 1px solid rgba(142, 27, 46, .16);
    animation: dk-ring 6s ease-in-out infinite;
}

.dk-deco-ring.r1 { width: 118%; aspect-ratio: 1; }
.dk-deco-ring.r2 { width: 142%; aspect-ratio: 1; border-color: rgba(240, 144, 96, .22); animation-delay: -2s; }
.dk-deco-ring.r3 { width: 168%; aspect-ratio: 1; border-style: dashed; border-color: rgba(142, 27, 46, .12); animation-delay: -4s; }

@keyframes dk-ring {
    0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
    50% { transform: translate(-50%, -50%) scale(1.025); opacity: .7; }
}

/* dotted patch, bottom-left behind the panel */
.dk-deco-dots {
    position: absolute;
    left: -10px;
    bottom: 60px;
    width: 140px;
    height: 140px;
    background-image: radial-gradient(rgba(142, 27, 46, .32) 1.6px, transparent 1.8px);
    background-size: 14px 14px;
    -webkit-mask-image: radial-gradient(circle at 30% 70%, #000 40%, transparent 72%);
    mask-image: radial-gradient(circle at 30% 70%, #000 40%, transparent 72%);
}

/* small accent dots */
.dk-deco-dot {
    position: absolute;
    border-radius: 50%;
    animation: dk-float 5s ease-in-out infinite;
}

.dk-deco-dot.d1 { width: 14px; height: 14px; right: -34px; top: 22%; background: var(--dk-accent); box-shadow: 0 0 0 6px rgba(240, 144, 96, .18); }
.dk-deco-dot.d2 { width: 9px; height: 9px; left: 14px; top: 2%; background: var(--dk-brand); animation-delay: -2s; }
.dk-deco-dot.d3 { width: 20px; height: 20px; right: -18px; bottom: 120px; background: transparent; border: 2px solid var(--dk-accent); animation-delay: -3.5s; }

/* medical plus marks */
.dk-deco-plus {
    position: absolute;
    width: 18px;
    height: 18px;
    opacity: .55;
}

.dk-deco-plus::before,
.dk-deco-plus::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    background: var(--dk-brand);
    border-radius: 2px;
    transform: translate(-50%, -50%);
}

.dk-deco-plus::before { width: 100%; height: 3px; }
.dk-deco-plus::after { width: 3px; height: 100%; }

.dk-deco-plus.p1 { right: -40px; top: 64%; }
.dk-deco-plus.p2 { left: 4px; bottom: 26px; width: 13px; height: 13px; opacity: .4; }

/* the outline frame and panel sit above the rings */
.dk-ed-outline { z-index: 1; }

/* ---------------- chip finishing ---------------- */
.dk-spec {
    padding: 10px 18px 10px 10px;
    border: 1px solid rgba(142, 27, 46, .12);
    background:
        linear-gradient(#fff, #fff) padding-box,
        linear-gradient(120deg, rgba(240, 144, 96, .55), rgba(142, 27, 46, .25) 60%, rgba(255, 255, 255, 0)) border-box;
    border: 1.5px solid transparent;
}

.dk-spec::before {
    content: "";
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: -1.5px;
    height: 2px;
    border-radius: 2px;
    background: var(--adv-grad-mark);
    opacity: .7;
}

.dk-spec-ic {
    background: radial-gradient(circle at 30% 30%, #C2272D, #A40A0A 55%, #6E0B0E);
    box-shadow: 0 0 0 4px rgba(164, 10, 10, .1), 0 6px 14px -6px rgba(164, 10, 10, .6);
}

@media (prefers-reduced-motion: reduce) {
    .dk-deco-ring,
    .dk-deco-dot {
        animation: none;
    }
}

@media (max-width: 720px) {
    .dk-deco-ring.r3 { display: none; }
    .dk-deco-dot.d1 { right: -10px; }
    .dk-deco-plus.p1 { right: -14px; }
    .dk-deco-dot.d3 { right: -8px; }
    .dk-spec-ic { box-shadow: 0 0 0 3px rgba(164, 10, 10, .1); }
}

/* ===================================================================
   Premium finishing (v30): curated lists with show-all, organ icons on
   competencies, rich footer, calmer section rhythm.
   =================================================================== */

/* ---- show all / show fewer ---- */
.dk-collapse:not(.is-open):not(.is-filtered) .is-extra {
    display: none;
}

.dk-more {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 18px;
    padding: 11px 20px;
    border-radius: 999px;
    border: 1.5px solid var(--dk-line);
    background: #fff;
    font: inherit;
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .84rem;
    color: var(--dk-brand);
    cursor: pointer;
    transition: border-color .2s, background .2s, color .2s;
}

.dk-more:hover {
    border-color: var(--dk-brand);
    background: var(--dk-brand);
    color: #fff;
}

.dk-more i {
    font-size: .75rem;
    transition: transform .25s;
}

.dk-more .dk-more-hide,
.is-open > .dk-more .dk-more-show,
.is-open .dk-more .dk-more-show {
    display: none;
}

.is-open > .dk-more .dk-more-hide,
.is-open .dk-more .dk-more-hide {
    display: inline;
}

.is-open > .dk-more i,
.is-open .dk-more i {
    transform: rotate(180deg);
}

.dk-more-row {
    display: flex;
    justify-content: center;
}

.dk-more-row[hidden] {
    display: none;
}

/* the publications list's button lives outside the box, so read state from it */
#dk-pubs.is-open + .dk-more-row .dk-more-show { display: none; }
#dk-pubs.is-open + .dk-more-row .dk-more-hide { display: inline; }
#dk-pubs.is-open + .dk-more-row .dk-more i { transform: rotate(180deg); }

/* ---- competency icons: original organ marks ---- */
.dk-comp-ic {
    flex: 0 0 50px;
    height: 50px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: radial-gradient(circle at 30% 30%, #C2272D, #A40A0A 55%, #6E0B0E);
    box-shadow: 0 0 0 5px rgba(164, 10, 10, .08), 0 8px 18px -8px rgba(164, 10, 10, .55);
    color: #fff;
}

.dk-comp-ic img {
    width: 26px;
    height: 26px;
}

.dk-comp-item {
    align-items: center;
    padding: 20px 22px;
}

/* ---- section rhythm: tighter, calmer ---- */
.dk-sec {
    padding: clamp(64px, 7vw, 104px) 0;
}

.dk-sec-head {
    margin-bottom: clamp(32px, 4vw, 52px);
}

.dk-sec-alt {
    background: #fff;
}

/* ---- cards: one consistent radius and hover ---- */
.dk-tl,
.dk-globe-card,
.dk-award,
.dk-role,
.dk-chap,
.dk-panel,
.dk-comp-item,
.dk-appt-card,
.dk-aff-card,
.dk-mini {
    border-radius: 14px;
}

.dk-panel {
    padding: 30px;
}

/* ---- footer ---- */
.dk-foot {
    background: #1E0507;
    padding: 64px 0 28px;
}

.dk-foot-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr));
    gap: 40px;
    padding-bottom: 40px;
}

.dk-foot-col {
    display: flex;
    flex-direction: column;
    gap: 11px;
}

.dk-foot-col h4 {
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .74rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--dk-accent);
    margin: 0 0 6px;
}

.dk-foot-col a {
    color: rgba(255, 255, 255, .74);
    font-size: .9rem;
    overflow-wrap: anywhere;
    transition: color .2s;
}

.dk-foot-col a i {
    width: 18px;
    color: var(--dk-accent);
}

.dk-foot-col a:hover {
    color: #fff;
}

.dk-foot-about p {
    margin: 4px 0 6px;
    font-size: .9rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, .62);
    max-width: 42ch;
}

.dk-foot-brand {
    display: flex;
    align-items: center;
    gap: 14px;
}

.dk-foot-brand b {
    display: block;
    font-family: var(--dk-serif);
    font-weight: 700;
    font-size: 1.45rem;
    color: #fff;
    line-height: 1.1;
}

.dk-foot-brand span {
    display: block;
    font-size: .78rem;
    color: rgba(255, 255, 255, .6);
    margin-top: 4px;
}

.dk-foot-social {
    display: flex;
    gap: 10px;
}

.dk-foot-social a {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .16);
    color: #fff;
    transition: background .2s, border-color .2s;
}

.dk-foot-social a i {
    width: auto;
    color: inherit;
}

.dk-foot-social a:hover {
    background: var(--dk-brand);
    border-color: var(--dk-brand);
}

.dk-foot-cta {
    align-self: flex-start;
    margin-top: 6px;
    padding: 10px 16px;
    border-radius: 999px;
    background: var(--adv-grad-brand);
    color: #fff !important;
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .84rem !important;
}

.dk-foot-cta i {
    color: #fff !important;
    width: auto !important;
}

.dk-foot-copy {
    border-top: 1px solid rgba(255, 255, 255, .1);
    color: rgba(255, 255, 255, .5);
}

.dk-foot-copy a {
    color: rgba(255, 255, 255, .7);
}

@media (max-width: 900px) {
    .dk-foot-grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    .dk-foot-about {
        grid-column: 1 / -1;
    }
}

@media (max-width: 520px) {
    .dk-foot-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* hero: without the vertical line the art needs no left gutter */
.dk-ed-art {
    padding-left: 24px;
}

/* footer links: beat the generic body link colour */
body.dk .dk-foot-col a:not(.dk-foot-cta) {
    color: rgba(255, 255, 255, .74);
}

body.dk .dk-foot-col a:not(.dk-foot-cta):hover {
    color: #fff;
}

body.dk .dk-foot-copy a {
    color: rgba(255, 255, 255, .72);
}

body.dk .dk-foot-social a {
    color: #fff;
}

/* hero credential lines */
.dk-ed-creds-list {
    list-style: none;
    margin: 0 0 24px;
    padding: 18px 0 0;
    border-top: 1px solid var(--dk-line);
    display: grid;
    gap: 10px;
}

.dk-ed-creds-list li {
    position: relative;
    padding-left: 26px;
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: clamp(.98rem, 1.25vw, 1.08rem);
    line-height: 1.4;
    color: var(--dk-ink);
}

.dk-ed-creds-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .45em;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--dk-brand);
    box-shadow: 0 0 0 4px rgba(142, 27, 46, .12);
}

.dk-ed-creds-list li:first-child {
    color: var(--dk-brand);
}

.dk-hero .dk-ed-lede {
    max-width: 60ch;
    font-size: 1.02rem;
    line-height: 1.8;
}

.dk-ed-acts {
    margin-bottom: 0;
}

/* ===================================================================
   Hero choreography. One sequence on load, then calm ambient motion.
   =================================================================== */
@property --dk-spin {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}

:root {
    --dk-ease-out: cubic-bezier(.16, 1, .3, 1);
}

/* text column */
.dk-ed-kicker {
    animation: dk-fade-up .9s var(--dk-ease-out) .1s backwards;
}

.dk-hero .dk-ed-name {
    animation: dk-wipe 1.2s var(--dk-ease-out) .25s backwards;
}

@keyframes dk-wipe {
    from { clip-path: inset(0 100% 0 0); opacity: .2; translate: -12px 0; }
    to { clip-path: inset(0 0 0 0); opacity: 1; translate: 0 0; }
}

.dk-ed-creds-list li {
    animation: dk-slide-in .8s var(--dk-ease-out) backwards;
}

.dk-ed-creds-list li:nth-child(1) { animation-delay: .7s; }
.dk-ed-creds-list li:nth-child(2) { animation-delay: .82s; }
.dk-ed-creds-list li:nth-child(3) { animation-delay: .94s; }

.dk-ed-creds-list {
    animation: dk-rule 1s var(--dk-ease-out) .6s backwards;
}

@keyframes dk-rule {
    from { border-top-color: transparent; }
    to { border-top-color: var(--dk-line); }
}

@keyframes dk-slide-in {
    from { opacity: 0; translate: -24px 0; }
    to { opacity: 1; translate: 0 0; }
}

.dk-hero .dk-ed-lede {
    animation: dk-fade-up 1s var(--dk-ease-out) 1.1s backwards;
}

.dk-ed-acts {
    animation: dk-fade-up 1s var(--dk-ease-out) 1.3s backwards;
}

@keyframes dk-fade-up {
    from { opacity: 0; translate: 0 22px; }
    to { opacity: 1; translate: 0 0; }
}

/* portrait */
.dk-ed-photo {
    animation: dk-portrait-in 1.4s var(--dk-ease-out) .35s backwards;
}

@keyframes dk-portrait-in {
    from { opacity: 0; translate: 60px 0; clip-path: inset(0 0 0 100% round 0 0 6px 6px); }
    to { opacity: 1; translate: 0 0; clip-path: inset(-30% 0 0 0 round 0 0 6px 6px); }
}

.dk-ed-photo img {
    animation: dk-kenburns 16s ease-in-out 1.8s infinite alternate;
}

@keyframes dk-kenburns {
    from { scale: 1; }
    to { scale: 1.045; }
}

.dk-ed-outline {
    animation: dk-fade-in 1.2s var(--dk-ease-out) 1s backwards;
}

@keyframes dk-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

.dk-ed-art .dk-explore {
    animation: dk-fade-up 1s var(--dk-ease-out) 1.5s backwards;
}

/* slow rotating crimson-gold glow behind the panel */
.dk-ed-art::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 2%;
    left: 30px;
    right: 6px;
    bottom: 96px;
    border-radius: 18px;
    background: conic-gradient(from var(--dk-spin), rgba(142, 27, 46, .55), rgba(240, 144, 96, .5), rgba(201, 162, 74, .35), rgba(142, 27, 46, .55));
    filter: blur(34px);
    opacity: .55;
    animation:
        dk-fade-in 1.6s ease 1.2s backwards,
        dk-spin 14s linear 1.2s infinite;
    pointer-events: none;
}

@keyframes dk-spin {
    to { --dk-spin: 360deg; }
}

/* stats rise in last */
.dk-ed-stats > div {
    animation: dk-fade-up .9s var(--dk-ease-out) backwards;
}

.dk-ed-stats > div:nth-child(1) { animation-delay: 1.5s; }
.dk-ed-stats > div:nth-child(2) { animation-delay: 1.6s; }
.dk-ed-stats > div:nth-child(3) { animation-delay: 1.7s; }
.dk-ed-stats > div:nth-child(4) { animation-delay: 1.8s; }

@media (prefers-reduced-motion: reduce) {
    .dk-ed-kicker,
    .dk-hero .dk-ed-name,
    .dk-ed-creds-list,
    .dk-ed-creds-list li,
    .dk-hero .dk-ed-lede,
    .dk-ed-acts,
    .dk-ed-photo,
    .dk-ed-photo img,
    .dk-ed-outline,
    .dk-ed-art .dk-explore,
    .dk-ed-art::before,
    .dk-ed-stats > div {
        animation: none;
    }
}

/* header logo 110px; the bar keeps its 82px height and the logo hangs
   below it as a white tab */
.dk-logo {
    position: relative;
    z-index: 2;
    align-self: flex-start;
    margin-bottom: -42px;
    padding: 6px 10px 8px;
    background: #fff;
    border-radius: 0 0 16px 16px;
    box-shadow: 0 16px 30px -18px rgba(94, 16, 25, .45);
}

.dk-logo img {
    height: 110px;
}

/* keep the sticky section links clear of the hanging tab */
@media (min-width: 721px) {
    .dk-subnav ul {
        padding-left: 160px;
    }
}

@media (max-width: 720px) {
    .dk-logo {
        align-self: center;
        margin-bottom: 0;
        padding: 0;
        background: none;
        box-shadow: none;
    }

    .dk-logo img {
        height: 62px;
    }
}

/* plain logo: no tab, no shadow; drop the header rule it would cut through */
.dk-logo {
    padding: 0;
    background: none;
    border-radius: 0;
    box-shadow: none;
    margin-top: 4px;
    margin-bottom: -32px;
}

.dk-head {
    border-bottom: 0;
}

/* header matches the hero ivory so the logo sits on one ground */
.dk-head,
.dk-head.is-scrolled {
    background: rgba(251, 247, 242, .97);
}

/* gallery: every photo gets a frame close to its own shape */
.dk-gallery.dk-gallery-v2 {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) minmax(0, 1fr);
    grid-template-rows: 250px 250px;
    grid-auto-rows: auto;
}

.dk-gallery.dk-gallery-v2 > figure {
    background: #2A0508;
    grid-row: auto;
    grid-column: auto;
}

.dk-gallery.dk-gallery-v2 > figure:nth-child(1) { grid-column: 1; grid-row: 1 / 3; }
.dk-gallery.dk-gallery-v2 > figure:nth-child(2) { grid-column: 2; grid-row: 1; }
.dk-gallery.dk-gallery-v2 > figure:nth-child(3) { grid-column: 3; grid-row: 1 / 3; }
.dk-gallery.dk-gallery-v2 > figure:nth-child(4) { grid-column: 2; grid-row: 2; }

@media (max-width: 900px) {
    .dk-gallery.dk-gallery-v2 {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        grid-template-rows: none;
    }

    .dk-gallery.dk-gallery-v2 > figure:nth-child(n) {
        grid-row: auto;
        grid-column: auto;
    }

    .dk-gallery.dk-gallery-v2 > figure.g-tall {
        aspect-ratio: 3 / 4;
    }

    .dk-gallery.dk-gallery-v2 > figure.g-wide {
        grid-column: 1 / -1;
        aspect-ratio: 16 / 10;
    }
}

@media (max-width: 480px) {
    .dk-gallery.dk-gallery-v2 {
        grid-template-columns: minmax(0, 1fr);
    }

    .dk-gallery.dk-gallery-v2 > figure.g-tall {
        aspect-ratio: 4 / 5;
    }
}

/* small screens: the two portraits pair up, landscapes follow full width */
@media (max-width: 900px) {
    .dk-gallery.dk-gallery-v2 > figure:nth-child(1) { order: 1; }
    .dk-gallery.dk-gallery-v2 > figure:nth-child(3) { order: 2; }
    .dk-gallery.dk-gallery-v2 > figure:nth-child(2) { order: 3; }
    .dk-gallery.dk-gallery-v2 > figure:nth-child(4) { order: 4; }
}

/* no button under the portrait: glow and frame follow the panel alone */
.dk-ed-art::before {
    bottom: 0;
}

.dk-ed-outline {
    bottom: 22px;
}

/* hero quick links: Education, Global Exposure, Experience */
.dk-quick {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 32px;
    max-width: 560px;
    animation: dk-fade-up 1s var(--dk-ease-out) 1.45s backwards;
}

body.dk .dk-quick a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 14px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid var(--dk-line);
    box-shadow: 0 1px 2px rgba(94, 16, 25, .04);
    color: var(--dk-ink);
    transition: transform .3s var(--dk-ease), box-shadow .3s var(--dk-ease), border-color .3s;
}

body.dk .dk-quick a:hover {
    transform: translateY(-3px);
    border-color: rgba(142, 27, 46, .25);
    box-shadow: 0 16px 30px -18px rgba(94, 16, 25, .45);
}

.dk-quick-ic {
    flex: none;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: #FBEDEE;
    color: var(--dk-brand);
    font-size: 1.05rem;
    transition: background .3s, color .3s;
}

body.dk .dk-quick a:hover .dk-quick-ic {
    background: var(--dk-brand);
    color: #fff;
}

.dk-quick b {
    font-family: var(--dk-head);
    font-weight: 800;
    font-size: .74rem;
    letter-spacing: .08em;
    line-height: 1.35;
    text-transform: uppercase;
}

@media (max-width: 520px) {
    .dk-quick {
        gap: 8px;
    }

    body.dk .dk-quick a {
        flex-direction: column;
        text-align: center;
        gap: 8px;
        padding: 12px 6px;
    }

    .dk-quick b {
        font-size: .66rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dk-quick {
        animation: none;
    }
}

/* ---------------- education & credentials ---------------- */
.dk-edu2 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.dk-edu-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 26px 24px 24px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid rgba(94, 16, 25, .09);
    box-shadow: 0 1px 2px rgba(94, 16, 25, .04);
    overflow: hidden;
    transition: transform .35s var(--dk-ease), box-shadow .35s var(--dk-ease), border-color .35s;
}

.dk-edu-card::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    background: var(--adv-grad-mark);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .5s var(--dk-ease);
}

.dk-edu-card:hover {
    transform: translateY(-4px);
    border-color: rgba(142, 27, 46, .2);
    box-shadow: 0 24px 44px -26px rgba(94, 16, 25, .45);
}

.dk-edu-card:hover::before {
    transform: scaleX(1);
}

/* the first card, the TMH fellowship, leads */
.dk-edu-card:first-child {
    grid-column: span 2;
    background: linear-gradient(135deg, #fff 0%, #FBF1EE 100%);
}

.dk-edu-card:first-child h3 {
    font-size: 1.35rem;
}

.dk-edu-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 6px;
}

.dk-edu-ic {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: #FBEDEE;
    color: var(--dk-brand);
    font-size: 1.05rem;
}

.dk-edu-when {
    font-family: var(--dk-serif);
    font-weight: 700;
    font-size: 1.25rem;
    color: var(--dk-brand);
    font-variant-numeric: lining-nums;
    font-feature-settings: "lnum" 1;
    white-space: nowrap;
}

.dk-edu-tag {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    padding: 5px 11px;
    border-radius: 999px;
    background: var(--dk-brand);
    color: #fff;
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .68rem;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.dk-edu-card h3 {
    font-size: 1.12rem;
    font-weight: 800;
    line-height: 1.3;
}

.dk-edu-where,
.dk-edu-note {
    display: flex;
    gap: 9px;
    align-items: flex-start;
    margin: 0 !important;
    font-size: .9rem;
    color: var(--dk-body);
    font-weight: 600;
}

.dk-edu-note {
    font-weight: 500;
    color: var(--dk-muted);
}

.dk-edu-where i,
.dk-edu-note i {
    margin-top: 4px;
    color: var(--dk-accent);
    font-size: .82rem;
}

.dk-edu-gold {
    display: flex;
    gap: 9px;
    align-items: flex-start;
    margin: 8px 0 0 !important;
    padding: 10px 12px;
    border-radius: 10px;
    background: #FFF7E3;
    border: 1px solid #F0DFA8;
    color: #7A5B14;
    font-size: .82rem;
    font-weight: 700;
    line-height: 1.45;
}

.dk-edu-gold i {
    margin-top: 2px;
    color: #C9A24A;
}

/* early foundation strip */
.dk-early {
    margin-top: 18px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 28px;
    padding: 22px 26px;
    border-radius: 16px;
    background: var(--dk-ivory, #FBF7F2);
    border: 1px dashed rgba(142, 27, 46, .22);
}

.dk-early h3 {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--dk-muted);
    white-space: nowrap;
}

.dk-early h3 i {
    color: var(--dk-brand);
    font-size: 1rem;
}

.dk-early-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.dk-early-row > div {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 12px;
    padding-left: 20px;
    border-left: 1px solid var(--dk-line);
}

.dk-early-row .dk-edu-when {
    font-size: 1.05rem;
}

.dk-early-row b {
    font-family: var(--dk-head);
    font-weight: 700;
    color: var(--dk-ink);
    font-size: .95rem;
}

.dk-early-note {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border-radius: 999px;
    background: #FFF7E3;
    color: #7A5B14;
    font-size: .74rem;
    font-weight: 700;
}

.dk-early-note i {
    color: #C9A24A;
}

@media (max-width: 1000px) {
    .dk-edu2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .dk-edu2 {
        grid-template-columns: minmax(0, 1fr);
    }

    .dk-edu-card:first-child {
        grid-column: auto;
    }

    .dk-early {
        grid-template-columns: minmax(0, 1fr);
        gap: 14px;
    }

    .dk-early-row {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }
}

/* ---------------- global exposure cards ---------------- */
.dk-globe2 {
    padding: 28px 28px 24px 30px;
    border-radius: 16px;
    display: flex;
    flex-direction: column;
}

.dk-globe2 .dk-globe-top {
    position: relative;
    margin-bottom: 16px;
}

.dk-globe2 .dk-globe-when {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.dk-globe2 h3 {
    position: relative;
    font-size: 1.12rem;
    font-weight: 800;
    color: var(--dk-brand);
    margin-bottom: 10px;
}

.dk-globe2 p {
    position: relative;
    flex: 1;
    font-size: .94rem;
    line-height: 1.7;
    margin-bottom: 18px !important;
}

.dk-globe2 .dk-focus {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border: 0;
    border-radius: 12px;
    background: #FBF1EE;
}

.dk-globe2 .dk-focus > i {
    color: var(--dk-brand);
    font-size: .9rem;
}

.dk-globe2 .dk-focus span {
    white-space: nowrap;
}

.dk-globe2 .dk-focus b {
    font-size: .9rem;
}

/* ---------------- experience: timeline + appointments aside ---------------- */
.dk-exp-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: clamp(24px, 3vw, 40px);
    align-items: start;
}

.dk-exp-side {
    position: sticky;
    top: 150px;
    display: grid;
    gap: 16px;
}

.dk-exp-side .dk-appt {
    display: grid;
    gap: 16px;
}

.dk-exp-side .dk-appt-card p + p {
    margin-top: 8px;
}

.dk-kc h3 {
    margin-bottom: 14px;
}

.dk-kc-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}

.dk-kc-list li {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px 12px;
    border-radius: 12px;
    background: #FBF7F2;
    border: 1px solid var(--dk-line);
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .92rem;
    color: var(--dk-ink);
}

.dk-kc-list .dk-comp-ic {
    flex: 0 0 40px;
    height: 40px;
}

.dk-kc-list .dk-comp-ic img {
    width: 22px;
    height: 22px;
}

@media (max-width: 1000px) {
    .dk-exp-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .dk-exp-side {
        position: static;
    }
}

/* ---------------- affiliations and memberships ---------------- */
.dk-aff {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    align-items: stretch;
}

.dk-aff-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.dk-aff-head h3 {
    margin: 0 !important;
}

.dk-aff-sub {
    padding: 5px 12px;
    border-radius: 999px;
    background: #FBEDEE;
    color: var(--dk-brand);
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .7rem;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.dk-aff-list2 li {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 18px;
    transition: border-color .3s, transform .3s var(--dk-ease), box-shadow .3s var(--dk-ease);
}

.dk-aff-list2 li:hover {
    transform: translateY(-3px);
    border-color: rgba(142, 27, 46, .25);
    box-shadow: 0 16px 30px -20px rgba(94, 16, 25, .45);
}

.dk-aff-abbr {
    display: inline-flex;
    padding: 6px 12px;
    border-radius: 8px;
    background: var(--adv-grad-brand);
    color: #fff;
    font-family: var(--dk-head);
    font-weight: 800;
    font-size: .8rem;
    letter-spacing: .08em;
}

.dk-aff-name {
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .95rem;
    line-height: 1.35;
    color: var(--dk-ink);
}

.dk-aff-verified {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
    border-radius: 999px;
    background: rgba(124, 224, 166, .14);
    border: 1px solid rgba(124, 224, 166, .35);
    color: #9BE8BB;
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .7rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.dk-reg2 li {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding: 14px 16px;
}

.dk-reg-no {
    font-family: var(--dk-serif);
    font-weight: 700;
    font-size: 1.35rem;
    letter-spacing: .02em;
    color: #F4DC9A;
    font-variant-numeric: lining-nums;
    font-feature-settings: "lnum" 1;
}

.dk-reg2 li > span:last-child {
    color: rgba(255, 255, 255, .85);
    font-weight: 600;
    font-size: .9rem;
}

.dk-reg2 li.is-lic {
    flex-direction: row;
    align-items: center;
    gap: 10px;
}

.dk-reg2 li.is-lic > span:last-child {
    color: #fff;
}

@media (max-width: 900px) {
    .dk-aff {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ---------------- present engagement ---------------- */
.dk-vision {
    align-items: start;
}

.dk-vision-art {
    position: sticky;
    top: 150px;
}

.dk-vision-copy {
    display: grid;
    gap: 16px;
}

.dk-vis-card {
    padding: 26px 28px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid rgba(94, 16, 25, .09);
    box-shadow: 0 1px 2px rgba(94, 16, 25, .04);
}

.dk-vis-card p {
    font-size: .98rem;
    line-height: 1.75;
}

.dk-vis-card p strong {
    color: var(--dk-brand);
}

.dk-vis-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 16px;
}

.dk-vision-copy .dk-vis-head h3 {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 800;
}

.dk-vis-ic {
    flex: none;
    width: 48px;
    height: 48px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: var(--adv-grad-brand);
    color: #fff;
    font-size: 1.1rem;
}

.dk-vis-role {
    display: block;
    margin-top: 3px;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--dk-accent);
}

.dk-vis-lead {
    margin: 4px 0 12px !important;
    font-family: var(--dk-head);
    font-weight: 700;
    color: var(--dk-ink);
}

.dk-checks2 {
    margin: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 18px;
}

.dk-checks2 li {
    font-size: .9rem;
    line-height: 1.5;
}

.dk-vis-card.is-pc {
    background: linear-gradient(135deg, #fff 0%, #FBF1EE 100%);
    border-left: 4px solid var(--dk-brand);
}

.dk-pc-logo {
    height: 40px;
    width: auto;
    padding-right: 14px;
    border-right: 1px solid var(--dk-line);
}

@media (max-width: 900px) {
    .dk-vision-art {
        position: relative;
        top: auto;
    }
}

@media (max-width: 620px) {
    .dk-checks2 {
        grid-template-columns: minmax(0, 1fr);
    }

    .dk-vis-card {
        padding: 22px 20px;
    }
}

/* ---------------- lectures: IHPBA label, photo mosaic, talks by year ---------------- */
.dk-ihpba-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 16px;
}

.dk-ihpba-head span {
    padding: 6px 14px;
    border-radius: 999px;
    background: var(--adv-grad-brand);
    color: #fff;
    font-family: var(--dk-head);
    font-weight: 800;
    font-size: .74rem;
    letter-spacing: .14em;
}

.dk-ihpba-head::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--dk-line);
}

#lectures .dk-gallery-v2 {
    margin-bottom: 28px;
}

.dk-talk-yr {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 12px;
    padding: 6px 0;
    border-bottom: 1px dashed var(--dk-line);
}

.dk-talk-year {
    font-family: var(--dk-serif);
    font-weight: 700;
    font-size: 1.35rem;
    color: var(--dk-brand);
    padding-top: 8px;
    font-variant-numeric: lining-nums;
    font-feature-settings: "lnum" 1;
}

.dk-talk-yr .dk-talks li:last-child {
    border-bottom: 0;
}

.dk-collapse:not(.is-open):not(.is-filtered) .dk-talk-yr.is-extra {
    display: none;
}

@media (max-width: 720px) {
    .dk-talk-yr {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }
}

/* ---------------- awards & distinctions ---------------- */
.dk-award-sub {
    margin: 6px 0 10px !important;
    font-family: var(--dk-head);
    font-weight: 700;
    color: #F4DC9A;
    font-size: .95rem;
}

.dk-award-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 4px;
}

.dk-award-when {
    font-family: var(--dk-serif);
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--dk-brand);
    font-variant-numeric: lining-nums;
    font-feature-settings: "lnum" 1;
    white-space: nowrap;
}

.dk-award-rank {
    display: inline-grid;
    place-items: center;
    min-width: 34px;
    height: 26px;
    padding: 0 9px;
    border-radius: 999px;
    background: #FFF7E3;
    border: 1px solid #F0DFA8;
    color: #8A6A1C;
    font-family: var(--dk-head);
    font-weight: 800;
    font-size: .74rem;
}

.dk-award-where {
    margin: 0 !important;
    font-weight: 600;
    color: var(--dk-body);
    font-size: .88rem;
}

.dk-award-topic {
    margin: 6px 0 0 !important;
    font-size: .84rem;
    color: var(--dk-muted);
    line-height: 1.55;
}

.dk-award-topic span {
    font-family: var(--dk-head);
    font-weight: 700;
    color: var(--dk-brand);
}

/* academic foundation */
.dk-acad {
    margin-top: 28px;
    padding: 26px 28px;
    border-radius: 16px;
    background: var(--dk-ivory, #FBF7F2);
    border: 1px dashed rgba(142, 27, 46, .22);
}

.dk-acad > h3 {
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--dk-muted);
    margin-bottom: 18px;
}

.dk-acad-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.dk-acad-card h4 {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 1rem;
    font-weight: 800;
    margin-bottom: 12px;
}

.dk-acad-card h4 i {
    color: var(--dk-brand);
}

.dk-acad-card ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 8px;
}

.dk-acad-card li {
    position: relative;
    padding-left: 20px;
    font-size: .92rem;
    color: var(--dk-body);
}

.dk-acad-card li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .55em;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--dk-accent);
}

@media (max-width: 720px) {
    .dk-acad-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* group label rule must not reach the card titles inside it */
.dk-award-group > h3 {
    font-size: .76rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--dk-muted);
    margin-bottom: 14px;
}

.dk-award-grid .dk-award h3 {
    font-size: 1.02rem;
    font-weight: 800;
    letter-spacing: -.005em;
    text-transform: none;
    color: var(--dk-ink);
    margin-bottom: 6px;
}

/* ---------------- book chapters ---------------- */
.dk-chap2 {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 16px;
    padding: 24px;
    transition: transform .3s var(--dk-ease), box-shadow .3s var(--dk-ease), border-color .3s;
}

.dk-chap2:hover {
    transform: translateY(-3px);
    border-color: rgba(142, 27, 46, .2);
    box-shadow: 0 20px 38px -24px rgba(94, 16, 25, .45);
}

.dk-chap-ic {
    flex: none;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: #FBEDEE;
    color: var(--dk-brand);
    font-size: 1.05rem;
}

.dk-chapters .dk-chap2 h3 {
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.35;
    margin-bottom: 10px;
}

.dk-chap-in,
.dk-chap-line {
    margin: 0 0 4px !important;
    font-size: .88rem;
    line-height: 1.55;
    color: var(--dk-muted);
}

.dk-chap-in {
    color: var(--dk-body);
    font-weight: 600;
}

.dk-chap-in span,
.dk-chap-line span {
    font-family: var(--dk-head);
    font-weight: 700;
    color: var(--dk-brand);
}

@media (max-width: 720px) {
    .dk-chap2 {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }
}

/* ===================================================================
   Navbar: crimson topline, monogram wordmark, centred pill menu,
   Contact Me button. Replaces the old header + sticky section menu.
   =================================================================== */
.dk-topline {
    height: 6px;
    background: var(--adv-grad-brand);
}

.dk-head,
.dk-head.is-scrolled {
    background: rgba(255, 255, 255, .97);
    border-bottom: 1px solid var(--dk-line);
}

.dk-head-in {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-height: 74px;
}

/* wordmark */
.dk-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    flex: none;
}

.dk-brand img {
    width: 34px;
    height: auto;
}

body.dk .dk-brand span {
    font-family: var(--dk-serif);
    font-weight: 700;
    font-size: clamp(1.25rem, 1.8vw, 1.6rem);
    letter-spacing: -.01em;
    color: var(--dk-brand);
    white-space: nowrap;
}

/* pill menu */
.dk-nav ul {
    display: flex;
    align-items: center;
    gap: 2px;
    margin: 0;
    padding: 5px;
    list-style: none;
    border-radius: 999px;
    background: #FFF8F6;
    border: 1px solid var(--dk-line);
    overflow-x: auto;
    scrollbar-width: none;
    max-width: 100%;
}

.dk-nav ul::-webkit-scrollbar {
    display: none;
}

body.dk .dk-nav a {
    position: relative;
    display: block;
    padding: 9px 16px;
    border-radius: 999px;
    font-family: var(--dk-sans);
    font-weight: 600;
    font-size: .92rem;
    color: var(--dk-ink);
    white-space: nowrap;
    transition: background .25s, color .25s;
}

body.dk .dk-nav a:hover {
    color: var(--dk-brand);
}

body.dk .dk-nav a.is-active {
    background: #FBEDEE;
    color: var(--dk-brand);
}

body.dk .dk-nav a.is-active::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 3px;
    width: 4px;
    height: 4px;
    margin-left: -2px;
    border-radius: 50%;
    background: var(--dk-brand);
}

/* contact button */
body.dk .dk-contact-btn {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 12px 22px;
    border-radius: 999px;
    background: var(--adv-grad-brand);
    color: #fff;
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .92rem;
    box-shadow: 0 10px 22px -12px rgba(120, 12, 12, .6);
    transition: transform .25s var(--dk-ease), box-shadow .25s;
}

body.dk .dk-contact-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 28px -14px rgba(120, 12, 12, .7);
}

/* anchor offsets follow the single bar */
html {
    scroll-padding-top: 100px;
}

@media (max-width: 1180px) {
    body.dk .dk-nav a {
        padding: 9px 12px;
        font-size: .86rem;
    }

    body.dk .dk-brand span {
        font-size: 1.2rem;
    }
}

@media (max-width: 980px) {
    .dk-head-in {
        flex-wrap: wrap;
        gap: 10px;
        padding-bottom: 10px;
    }

    .dk-nav {
        order: 3;
        width: 100%;
    }

    .dk-nav ul {
        justify-content: flex-start;
    }

    html {
        scroll-padding-top: 150px;
    }
}

@media (max-width: 520px) {
    body.dk .dk-brand span {
        font-size: 1.05rem;
    }

    body.dk .dk-contact-btn {
        padding: 10px 16px;
        font-size: .84rem;
    }
}

/* ===================================================================
   Footer: gold topline, maroon ground, monogram wordmark, gold serif
   headings, bulleted nav, visits pill and gold back-to-top.
   =================================================================== */
.dk-foot {
    position: relative;
    background: #3A0007;
    border-top: 6px solid #FFD600;
    padding: 56px 0 0;
}

.dk-foot-grid {
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 40px;
    padding-bottom: 44px;
}

.dk-foot-mark {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #fff;
    flex: none;
}

.dk-foot-mark img {
    width: 24px;
    height: auto;
}

.dk-foot-brand b {
    font-family: var(--dk-head);
    font-weight: 800;
    font-size: 1.22rem;
    letter-spacing: -.01em;
}

.dk-foot-brand span {
    color: #FFD600;
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .72rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    margin-top: 3px;
}

.dk-foot-about p {
    margin-top: 18px;
    color: rgba(255, 255, 255, .72);
}

.dk-foot-col h4 {
    font-family: var(--dk-serif);
    font-weight: 700;
    font-size: 1.35rem;
    letter-spacing: 0;
    text-transform: none;
    color: #FFD600;
    margin-bottom: 18px;
}

.dk-foot-nav {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 22px;
}

.dk-foot-nav li {
    position: relative;
    padding-left: 16px;
}

.dk-foot-nav li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .55em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #D9A441;
}

body.dk .dk-foot-mail {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: rgba(255, 255, 255, .82);
    font-size: .92rem;
    overflow-wrap: anywhere;
}

body.dk .dk-foot-mail i {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    flex: none;
}

body.dk .dk-foot-mail:hover {
    color: #fff;
}

.dk-foot-copy {
    margin-top: 0;
    padding: 20px 0 24px;
    border-top: 1px solid rgba(255, 255, 255, .08);
    align-items: center;
}

.dk-visits {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 8px 16px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .35);
    border: 1px solid rgba(255, 255, 255, .1);
    color: rgba(255, 255, 255, .7);
    font-size: .78rem;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.dk-visits i {
    color: #FFD600;
}

.dk-visits b {
    color: #fff;
    font-size: .95rem;
    letter-spacing: 0;
}

/* back to top: gold ring, sits by the footer bar */
.dk-top {
    background: #4A0A10;
    border: 2px solid #FFD600;
    color: #FFD600;
    box-shadow: 0 14px 30px -12px rgba(0, 0, 0, .6);
}

@media (max-width: 900px) {
    .dk-foot-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 30px;
    }

    .dk-foot-about {
        grid-column: auto;
    }
}

@media (max-width: 520px) {
    .dk-foot-nav {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* footer monogram: fill the white disc instead of floating small inside it */
.dk-foot-mark {
    width: 54px;
    height: 54px;
    padding: 7px;
    box-shadow: 0 0 0 2px rgba(255, 214, 0, .35);
}

.dk-foot-mark img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* navbar monogram a touch larger to match the wordmark */
.dk-brand img {
    width: 40px;
}

/* ===================================================================
   One voice for headings: the serif used for her name now carries every
   heading and card title on the page. Body copy, labels, buttons and
   small caps stay in the sans faces, which read better at small sizes.
   =================================================================== */
body.dk h1,
body.dk h2,
body.dk h3,
body.dk h4,
body.dk .dk-sec-head h2,
body.dk .dk-edu-card h3,
body.dk .dk-globe2 h3,
body.dk .dk-award h3,
body.dk .dk-role h3,
body.dk .dk-chapters .dk-chap2 h3,
body.dk .dk-pub h3,
body.dk .dk-panel > h3,
body.dk .dk-vis-card h3,
body.dk .dk-acad-card h4,
body.dk .dk-tl h3,
body.dk .dk-appt-card h3,
body.dk .dk-foot-brand b {
    font-family: var(--dk-serif);
    letter-spacing: -.005em;
}

/* the serif runs lighter than Manrope, so headings gain a little weight
   and size to hold the same presence */
body.dk .dk-edu-card h3,
body.dk .dk-globe2 h3,
body.dk .dk-award h3,
body.dk .dk-role h3,
body.dk .dk-chapters .dk-chap2 h3,
body.dk .dk-pub h3,
body.dk .dk-vis-card h3,
body.dk .dk-tl h3,
body.dk .dk-appt-card h3 {
    font-weight: 700;
    font-size: 1.22rem;
    line-height: 1.25;
}

body.dk .dk-panel > h3,
body.dk .dk-acad-card h4 {
    font-weight: 700;
    font-size: 1.3rem;
}

body.dk .dk-foot-brand b {
    font-size: 1.4rem;
}

/* numerals inside serif headings stay aligned rather than old-style */
body.dk h1,
body.dk h2,
body.dk h3,
body.dk h4 {
    font-variant-numeric: lining-nums;
    font-feature-settings: "lnum" 1;
}

/* ===================================================================
   Whole page in the serif. Everything, body copy, labels, buttons and
   navigation included, uses Cormorant Garamond. The face runs light
   and small for its point size, so body text is stepped up and small
   uppercase labels keep a heavier weight to stay legible.
   =================================================================== */
body.dk,
body.dk button,
body.dk input,
body.dk select,
body.dk textarea {
    font-family: var(--dk-serif);
}

body.dk {
    font-size: 1.16rem;
    line-height: 1.6;
    font-variant-numeric: lining-nums;
    font-feature-settings: "lnum" 1;
}

/* anything that was set in the sans faces by name */
body.dk [class^="dk-"],
body.dk [class*=" dk-"],
body.dk .dk-btn,
body.dk .dk-nav a,
body.dk .dk-contact-btn,
body.dk .dk-more,
body.dk .dk-quick b,
body.dk .dk-ed-creds-list li,
body.dk .dk-ed-role,
body.dk .dk-lede,
body.dk .dk-hero .dk-ed-lede {
    font-family: var(--dk-serif);
}

/* body copy: the serif needs more size and weight than Inter did */
body.dk p,
body.dk li,
body.dk dd,
body.dk .dk-lede,
body.dk .dk-hero .dk-ed-lede,
body.dk .dk-edu-where,
body.dk .dk-edu-note,
body.dk .dk-globe2 p,
body.dk .dk-vis-card p,
body.dk .dk-chap-in,
body.dk .dk-chap-line,
body.dk .dk-award-where,
body.dk .dk-award-topic,
body.dk .dk-pub-meta,
body.dk .dk-talks span,
body.dk .dk-foot-about p {
    font-size: 1.08rem;
    line-height: 1.62;
    font-weight: 500;
}

body.dk .dk-hero .dk-ed-lede {
    font-size: 1.24rem;
}

/* small uppercase labels: heavier and wider, or the serif disappears */
body.dk .dk-tag,
body.dk .dk-edu-tag,
body.dk .dk-quick b,
body.dk .dk-aff-sub,
body.dk .dk-aff-verified,
body.dk .dk-visits,
body.dk .dk-foot-brand span,
body.dk .dk-award-group > h3,
body.dk .dk-acad > h3,
body.dk .dk-early h3,
body.dk .dk-talks-sub,
body.dk .dk-pub-type,
body.dk .dk-focus span,
body.dk .dk-ed-stats span,
body.dk .dk-chap-in span,
body.dk .dk-chap-line span,
body.dk .dk-ribbon-track span {
    font-weight: 700;
    letter-spacing: .1em;
}

/* buttons and links that act like buttons */
body.dk .dk-btn,
body.dk .dk-contact-btn,
body.dk .dk-more,
body.dk .dk-ed-link,
body.dk .dk-nav a,
body.dk .dk-sticky a,
body.dk .dk-foot-mail,
body.dk .dk-pub-links a,
body.dk .dk-featured-meta a {
    font-weight: 700;
    font-size: 1.02rem;
}

body.dk .dk-nav a {
    font-size: 1.05rem;
}

/* credential lines and card body in the hero */
body.dk .dk-ed-creds-list li {
    font-size: 1.14rem;
    font-weight: 700;
}

/* ===================================================================
   Legibility pass for the serif. The face is light by design, so the
   page needs more weight, a darker ink and a little more size before it
   reads as cleanly as the sans did.
   =================================================================== */
:root {
    --dk-body: #3A2A2B;
    --dk-muted: #5C4D4E;
}

body.dk {
    font-size: 1.22rem;
    line-height: 1.65;
    font-weight: 500;
    color: var(--dk-body);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body.dk p,
body.dk li,
body.dk dd,
body.dk .dk-lede,
body.dk .dk-edu-where,
body.dk .dk-edu-note,
body.dk .dk-globe2 p,
body.dk .dk-vis-card p,
body.dk .dk-chap-in,
body.dk .dk-chap-line,
body.dk .dk-award-where,
body.dk .dk-award-topic,
body.dk .dk-pub-meta,
body.dk .dk-talks span,
body.dk .dk-pres li span.dk-pres-at,
body.dk .dk-foot-about p {
    font-size: 1.14rem;
    line-height: 1.62;
    font-weight: 600;
    color: var(--dk-body);
}

body.dk .dk-hero .dk-ed-lede {
    font-size: 1.3rem;
    font-weight: 600;
}

/* secondary lines keep their lighter tone, but not so light that the
   thin serif strokes disappear */
body.dk .dk-edu-note,
body.dk .dk-award-topic,
body.dk .dk-pub-meta,
body.dk .dk-talks span,
body.dk .dk-chap-line {
    color: var(--dk-muted);
    font-weight: 600;
}

/* card titles and headings gain weight to match */
body.dk h1,
body.dk h2,
body.dk h3,
body.dk h4 {
    font-weight: 700;
}

body.dk .dk-edu-card h3,
body.dk .dk-globe2 h3,
body.dk .dk-award h3,
body.dk .dk-role h3,
body.dk .dk-chapters .dk-chap2 h3,
body.dk .dk-pub h3,
body.dk .dk-vis-card h3,
body.dk .dk-tl h3,
body.dk .dk-appt-card h3 {
    font-size: 1.3rem;
}

body.dk .dk-talks b,
body.dk .dk-pres li b,
body.dk .dk-aff-name,
body.dk .dk-kc-list li,
body.dk .dk-early-row b,
body.dk .dk-acad-card li,
body.dk .dk-ed-creds-list li {
    font-weight: 700;
    font-size: 1.16rem;
}

/* small uppercase labels: the serif needs the extra weight at this size */
body.dk .dk-tag,
body.dk .dk-edu-tag,
body.dk .dk-quick b,
body.dk .dk-aff-sub,
body.dk .dk-aff-verified,
body.dk .dk-visits,
body.dk .dk-foot-brand span,
body.dk .dk-award-group > h3,
body.dk .dk-acad > h3,
body.dk .dk-early h3,
body.dk .dk-talks-sub,
body.dk .dk-pub-type,
body.dk .dk-focus span,
body.dk .dk-ed-stats span,
body.dk .dk-ribbon-track span,
body.dk .dk-panel > h3 small {
    font-weight: 700;
    font-size: .92rem;
}

/* navigation and buttons */
body.dk .dk-nav a,
body.dk .dk-contact-btn,
body.dk .dk-btn,
body.dk .dk-more,
body.dk .dk-ed-link,
body.dk .dk-foot-col a,
body.dk .dk-foot-mail,
body.dk .dk-pub-links a {
    font-weight: 700;
    font-size: 1.08rem;
}

body.dk .dk-foot-col a,
body.dk .dk-foot-about p {
    color: rgba(255, 255, 255, .86);
}

/* publication summary: one paragraph, so no list marker */
body.dk .dk-pub-sum {
    margin: 0 0 14px !important;
    font-size: 1.1rem;
    line-height: 1.62;
    font-weight: 600;
    color: var(--dk-body);
}

/* ===================================================================
   Sharpness. Three things were softening the text:

     1. -webkit-font-smoothing: antialiased thins every stroke on macOS,
        which reads as blur on an already light serif. Back to the
        browser's own subpixel rendering.
     2. The navbar's backdrop blur puts the whole bar on its own
        composited layer, and text on such a layer is resampled. The bar
        is opaque enough not to need it.
     3. The hero's pop-out portrait and the marquee keep their own
        layers, so they are given explicit backface/rendering hints
        rather than dragging text layers with them.
   =================================================================== */
body.dk {
    -webkit-font-smoothing: auto;
    -moz-osx-font-smoothing: auto;
    text-rendering: optimizeLegibility;
}

.dk-head,
.dk-head.is-scrolled {
    background: #FBF7F2;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

/* keep whole-pixel positions: half-pixel offsets blur glyph edges */
.dk-wrap,
.dk-sec,
.dk-edu-card,
.dk-globe-card,
.dk-award,
.dk-role,
.dk-panel,
.dk-pub,
.dk-chap,
.dk-vis-card,
.dk-tl,
.dk-appt-card {
    transform: none;
}

/* the animated layers name themselves, so the browser does not promote
   their text-bearing neighbours */
.dk-ed-photo img,
.dk-ribbon-track {
    will-change: transform;
    backface-visibility: hidden;
}

/* ===================================================================
   Back to the site's own voice: Inter for reading text, Manrope for
   labels and buttons, exactly as the rest of advityahealthcares.com.
   The serif is kept for her name and the section headings only, where
   a display face belongs.
   =================================================================== */
body.dk,
body.dk p,
body.dk li,
body.dk dd,
body.dk dt,
body.dk span,
body.dk b,
body.dk strong,
body.dk small,
body.dk a,
body.dk button,
body.dk input,
body.dk select,
body.dk textarea,
body.dk figcaption,
body.dk blockquote cite {
    font-family: var(--dk-sans);
}

body.dk {
    font-size: 1rem;
    line-height: 1.65;
    font-weight: 400;
    color: var(--dk-body);
}

/* reading text */
body.dk p,
body.dk li,
body.dk dd,
body.dk .dk-lede,
body.dk .dk-pub-sum,
body.dk .dk-edu-where,
body.dk .dk-edu-note,
body.dk .dk-globe2 p,
body.dk .dk-vis-card p,
body.dk .dk-chap-in,
body.dk .dk-chap-line,
body.dk .dk-award-where,
body.dk .dk-award-topic,
body.dk .dk-pub-meta,
body.dk .dk-talks span,
body.dk .dk-pres li span.dk-pres-at,
body.dk .dk-foot-about p {
    font-size: .96rem;
    line-height: 1.7;
    font-weight: 400;
}

body.dk .dk-hero .dk-ed-lede {
    font-size: 1.06rem;
    font-weight: 400;
    line-height: 1.75;
}

/* card titles and sub-headings: Manrope, the site's heading sans */
body.dk .dk-edu-card h3,
body.dk .dk-globe2 h3,
body.dk .dk-award h3,
body.dk .dk-role h3,
body.dk .dk-chapters .dk-chap2 h3,
body.dk .dk-pub h3,
body.dk .dk-vis-card h3,
body.dk .dk-tl h3,
body.dk .dk-appt-card h3,
body.dk .dk-panel > h3,
body.dk .dk-acad-card h4,
body.dk .dk-foot-col h4,
body.dk .dk-foot-brand b,
body.dk .dk-ed-creds-list li,
body.dk .dk-talks b,
body.dk .dk-pres li b,
body.dk .dk-aff-name,
body.dk .dk-kc-list li,
body.dk .dk-early-row b,
body.dk .dk-acad-card li {
    font-family: var(--dk-head);
    font-weight: 700;
}

body.dk .dk-edu-card h3,
body.dk .dk-globe2 h3,
body.dk .dk-award h3,
body.dk .dk-role h3,
body.dk .dk-chapters .dk-chap2 h3,
body.dk .dk-pub h3,
body.dk .dk-vis-card h3,
body.dk .dk-tl h3,
body.dk .dk-appt-card h3 {
    font-size: 1.06rem;
    line-height: 1.35;
}

body.dk .dk-panel > h3,
body.dk .dk-acad-card h4 {
    font-size: 1.1rem;
}

body.dk .dk-ed-creds-list li,
body.dk .dk-talks b,
body.dk .dk-pres li b,
body.dk .dk-aff-name,
body.dk .dk-kc-list li,
body.dk .dk-early-row b,
body.dk .dk-acad-card li {
    font-size: .96rem;
    font-weight: 600;
}

body.dk .dk-acad-card li {
    font-weight: 400;
}

/* small uppercase labels */
body.dk .dk-tag,
body.dk .dk-edu-tag,
body.dk .dk-quick b,
body.dk .dk-aff-sub,
body.dk .dk-aff-verified,
body.dk .dk-visits,
body.dk .dk-foot-brand span,
body.dk .dk-award-group > h3,
body.dk .dk-acad > h3,
body.dk .dk-early h3,
body.dk .dk-talks-sub,
body.dk .dk-pub-type,
body.dk .dk-focus span,
body.dk .dk-ed-stats span,
body.dk .dk-ribbon-track span,
body.dk .dk-panel > h3 small {
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .72rem;
    letter-spacing: .12em;
}

/* buttons, navigation and links */
body.dk .dk-nav a,
body.dk .dk-contact-btn,
body.dk .dk-btn,
body.dk .dk-more,
body.dk .dk-ed-link,
body.dk .dk-foot-col a,
body.dk .dk-foot-mail,
body.dk .dk-pub-links a,
body.dk .dk-quick b,
body.dk .dk-sticky a {
    font-family: var(--dk-head);
    font-weight: 700;
    font-size: .92rem;
}

body.dk .dk-nav a {
    font-size: .93rem;
}

/* the display face stays where it earns its place */
body.dk .dk-ed-name,
body.dk .dk-sec-head h2,
body.dk .dk-contact h2,
body.dk .dk-quoteband blockquote,
body.dk .dk-ed-stats b,
body.dk .dk-edu-when,
body.dk .dk-reg-no,
body.dk .dk-brand span,
body.dk .dk-award-when,
body.dk .dk-chap-year,
body.dk .dk-pub-year {
    font-family: var(--dk-serif);
}

/* the earlier blanket rule on [class^="dk-"] outranks plain element
   selectors, so the sans is re-asserted at the same strength here */
body.dk [class^="dk-"],
body.dk [class*=" dk-"] {
    font-family: var(--dk-sans);
}

/* Manrope for headings, labels, buttons */
body.dk [class^="dk-"]:is(h1, h2, h3, h4),
body.dk [class*=" dk-"]:is(h1, h2, h3, h4),
body.dk .dk-tag,
body.dk .dk-edu-tag,
body.dk .dk-quick b,
body.dk .dk-aff-sub,
body.dk .dk-aff-verified,
body.dk .dk-visits,
body.dk .dk-foot-brand b,
body.dk .dk-foot-brand span,
body.dk .dk-award-group > h3,
body.dk .dk-acad > h3,
body.dk .dk-early h3,
body.dk .dk-talks-sub,
body.dk .dk-pub-type,
body.dk .dk-focus span,
body.dk .dk-ed-stats span,
body.dk .dk-ribbon-track span,
body.dk .dk-nav a,
body.dk .dk-contact-btn,
body.dk .dk-btn,
body.dk .dk-more,
body.dk .dk-ed-link,
body.dk .dk-foot-col a,
body.dk .dk-foot-mail,
body.dk .dk-pub-links a,
body.dk .dk-sticky a,
body.dk .dk-ed-creds-list li,
body.dk .dk-talks b,
body.dk .dk-pres li b,
body.dk .dk-aff-name,
body.dk .dk-kc-list li,
body.dk .dk-early-row b {
    font-family: var(--dk-head);
}

/* and the display serif only on the pieces that carry the page's voice */
body.dk .dk-ed-name,
body.dk .dk-sec-head h2,
body.dk .dk-contact h2,
body.dk .dk-quoteband blockquote,
body.dk .dk-ed-stats b,
body.dk .dk-edu-when,
body.dk .dk-reg-no,
body.dk .dk-brand span,
body.dk .dk-award-when,
body.dk .dk-chap-year,
body.dk .dk-pub-year,
body.dk .dk-foot-col h4 {
    font-family: var(--dk-serif);
}

/* her name stays the display serif, and the hero paragraph reads in the
   body sans: both need to outrank the rules above */
body.dk h1.dk-ed-name,
body.dk h1.dk-ed-name em,
body.dk .dk-hero h1.dk-ed-name {
    font-family: var(--dk-serif);
}

body.dk h1.dk-ed-name small {
    font-family: var(--dk-head);
}

body.dk .dk-hero p.dk-ed-lede,
body.dk .dk-hero .dk-ed-copy p {
    font-family: var(--dk-sans);
}

/* ===================================================================
   Dark panels: text colour
   The legibility pass sets `body.dk p` to the dark body ink, and that
   selector outranks the panel rules written earlier in this file. On the
   two crimson cards — the gold medal and the present appointment — the
   copy was therefore dark ink on a near-black red and read as a shadow.
   These rules put the light tone back where the panel is dark.
   =================================================================== */
body.dk .dk-award-hero p,
body.dk .dk-award-hero li,
body.dk .dk-appt-card.is-lead p,
body.dk .dk-appt-card.is-lead li {
    color: rgba(255, 255, 255, .92);
}

/* the sub-line keeps its gold, one step brighter than the medal itself */
body.dk .dk-award-hero .dk-award-sub {
    color: #F6E2A6;
}

/* the eyebrow tag on a dark panel: gold on near-black needs the lighter
   end of the ramp to clear 4.5:1 */
body.dk .dk-award-hero .dk-tag,
body.dk .dk-appt-card.is-lead .dk-tag {
    color: #F4DC9A;
    background: rgba(255, 255, 255, .16);
}
