/* ═════════════════════════════════════════════════════════════════════════
   Digirolla — editorial design layer (on top of Ghost Source, MIT)

   A light, serif-led, hairline-rule design language:
   masthead bar · serif headlines · sans kickers & bylines
   front-page grid · single-column article · boxed subscription module
   ═════════════════════════════════════════════════════════════════════════ */

:root,
html:root {
    --ghost-accent-color: #876abd !important;

    --dr-paper: #ffffff;
    --dr-ink: #121212;
    --dr-soft: #363636;
    --dr-muted: #5a5a5a;
    --dr-faint: #999999;
    --dr-rule: #dfdfdf;
    --dr-rule-dark: #121212;
    --dr-accent: #876abd;
    --dr-wash: #f7f7f7;

    --dr-serif: Georgia, "Times New Roman", Times, serif;
    --dr-sans: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, sans-serif;

    --background-color: var(--dr-paper) !important;
    --color-primary-text: var(--dr-ink);
    --color-darker-gray: var(--dr-ink);
    --color-secondary-text: var(--dr-muted);
    --color-border: var(--dr-rule);
    --color-dark-border: var(--dr-rule-dark);
    --color-lighter-gray: var(--dr-wash);
    --gh-font-heading: var(--dr-serif);
    --gh-font-body: var(--dr-sans);

    color-scheme: light;
}

html,
body,
.gh-viewport {
    background: var(--dr-paper);
    color: var(--dr-ink);
}

::selection {
    background: #e3ddf4;
    color: var(--dr-ink);
}

a {
    color: inherit;
}

/* kickers, bylines, datelines — small caps sans everywhere */
.dr-kicker,
.dr-byline,
.gh-card-meta,
.gh-container-title,
.dr-section-label,
.gh-article-tag,
.gh-article-meta,
.dr-date {
    font-family: var(--dr-sans);
}

/* ═════════════════════════════════════════════════════════════════════════
   1. Masthead navigation
   ═════════════════════════════════════════════════════════════════════════ */

.gh-navigation {
    height: auto;
    background-color: var(--dr-paper);
    color: var(--dr-ink);
    font-weight: 400;
}

.gh-navigation.is-stacked .gh-navigation-menu::before,
.gh-navigation.is-stacked .gh-navigation-menu::after {
    content: none;
}

@media (min-width: 768px) {
    .gh-navigation.is-stacked .gh-navigation-inner {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        grid-template-rows: auto auto;
        align-items: center;
        max-width: 1280px;
        padding: 0;
    }

    /* top bar: dateline left · search + account right */
    .gh-navigation.is-stacked .gh-navigation-actions {
        grid-row: 1;
        grid-column: 1 / -1;
        display: flex;
        align-items: center;
        gap: 20px;
        margin: 0;
        padding: 12px 0;
        background-color: transparent;
    }

    .dr-date {
        margin-right: auto;
        font-size: 1.25rem;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        color: var(--dr-muted);
    }

    /* masthead logotype, centered */
    .gh-navigation.is-stacked .gh-navigation-brand {
        grid-row: 1;
        grid-column: 2;
        display: flex;
        align-items: center;
        justify-content: center;
        height: auto;
        min-height: 0;
        padding: 10px 24px;
    }

    .gh-navigation-logo,
    .gh-navigation-logo.is-title {
        font-family: var(--dr-serif) !important;
        font-size: 3.2rem !important;
        font-weight: 700 !important;
        font-style: normal;
        letter-spacing: -0.01em;
        text-transform: none;
        line-height: 1;
        color: var(--dr-ink);
    }

    .gh-navigation-logo img {
        max-height: 32px;
        max-width: 180px;
    }

    /* section row */
    .gh-navigation.is-stacked .gh-navigation-menu {
        grid-row: 2;
        grid-column: 1 / -1;
        display: flex;
        align-items: stretch;
        justify-content: flex-start;
        width: auto;
        height: auto;
        margin: 0;
        padding: 0;
        border-top: 1px solid var(--dr-rule);
    }

    .gh-navigation.is-stacked .gh-navigation-menu .nav {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 0 26px;
        height: auto;
        margin: 0;
        line-height: 1;
    }

    .gh-navigation.is-stacked .gh-navigation-menu .nav > li {
        margin: 0;
    }

    .gh-navigation .nav a {
        display: inline-flex;
        align-items: center;
        padding: 14px 0;
        font-family: var(--dr-sans);
        font-size: 1.4rem;
        font-weight: 700;
        text-transform: none;
        letter-spacing: 0;
        color: var(--dr-ink);
        vertical-align: middle;
    }

    .gh-navigation .nav a:hover {
        opacity: 1;
        text-decoration: underline;
        text-underline-offset: 5px;
        text-decoration-thickness: 1px;
    }

    .dr-nav-utility {
        display: flex;
        align-items: center;
        margin-left: auto;
        padding-left: 24px;
    }

    .dr-nav-utility .nav {
        display: flex;
        gap: 18px;
        margin: 0;
    }

    .dr-nav-utility .nav a {
        padding: 14px 0;
        font-size: 1.3rem;
        font-weight: 550;
        color: var(--dr-muted);
    }

    .gh-search {
        color: var(--dr-ink);
    }
}

@media (max-width: 1199px) {
    .dr-nav-utility {
        display: none;
    }
}

.gh-navigation-members {
    display: flex;
    gap: 18px;
    align-items: center;
}

.gh-navigation-members a[data-portal="signin"],
.gh-navigation-members a[data-portal="account"] {
    font-family: var(--dr-sans);
    font-size: 1.35rem;
    font-weight: 500;
    color: var(--dr-ink);
}

.gh-navigation-members a[data-portal="signin"]:hover,
.gh-navigation-members a[data-portal="account"]:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}

.gh-navigation .gh-button,
.gh-button {
    padding: 9px 18px;
    font-family: var(--dr-sans);
    font-size: 1.35rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.2;
    color: #fff;
    cursor: pointer;
    background-color: var(--dr-accent);
    border: 0;
    border-radius: 2px;
}

.gh-button:hover {
    opacity: 1;
    background-color: #6f56a6;
}

@media (max-width: 767px) {
    .dr-date {
        display: none;
    }

    .gh-navigation {
        border-bottom: 1px solid var(--dr-rule);
    }

    #gh-navigation .gh-navigation-brand {
        padding-right: 8px;
    }

    #gh-navigation .gh-navigation-logo {
        font-family: var(--dr-serif) !important;
        font-size: 2.4rem !important;
        font-weight: 700 !important;
        text-transform: none;
    }
}

/* ═════════════════════════════════════════════════════════════════════════
   2. Front page (home.hbs) — editorial grid
   ═════════════════════════════════════════════════════════════════════════ */

.dr-front {
    padding-top: 12px;
    padding-bottom: 72px;
}

.dr-inner {
    max-width: 1280px;
}

.gh-inner.dr-inner {
    margin-inline: auto;
}

/* trending strip */
.dr-trending {
    display: flex;
    align-items: baseline;
    gap: 16px;
    padding: 12px 0 14px;
    border-bottom: 1px solid var(--dr-rule);
}

.dr-trending-label {
    font-family: var(--dr-sans);
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    color: var(--dr-ink);
}

.dr-trending-list {
    display: flex;
    gap: 24px;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
}

.dr-trending-list a {
    font-family: var(--dr-sans);
    font-size: 1.35rem;
    color: var(--dr-muted);
    flex-shrink: 0;
}

.dr-trending-list a:hover {
    color: var(--dr-ink);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* kickers + bylines (kept for rows/rail) */
.dr-kicker {
    display: inline-block;
    margin: 0 0 10px;
    font-size: 1.2rem;
    font-weight: 650;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--dr-muted);
}

a.dr-kicker:hover {
    color: var(--dr-ink);
}

.dr-byline {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 10px;
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.4;
    color: var(--dr-muted);
}

.dr-byline .dr-byline-author::before {
    content: "By ";
}

.dr-byline-author + time::before {
    content: "·";
    margin: 0 5px;
}

.dr-byline svg {
    width: 12px;
    height: 12px;
    flex: 0 0 auto;
    color: var(--dr-faint);
}

/* lead package: featured slider · top stories · opinions */
.dr-lead-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 0;
    padding: 26px 0 30px;
    border-bottom: 1px solid var(--dr-rule);
}

/* hero slider */
.dr-hero {
    min-width: 0;
    padding-right: 30px;
}

.dr-hero-slides {
    display: grid;
}

.dr-hero-slide {
    grid-area: 1 / 1;
    min-width: 0;
    opacity: 0;
    visibility: hidden;
    transform: translateX(14px);
    transition: opacity 0.55s ease, transform 0.55s ease, visibility 0s linear 0.55s;
    z-index: 0;
}

.dr-hero-slide.is-active {
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: opacity 0.55s ease, transform 0.55s ease;
    z-index: 1;
}

.dr-hero-media img {
    width: 100%;
    aspect-ratio: 2.2;
    object-fit: cover;
}

.dr-badge {
    display: inline-block;
    margin: 0 0 6px;
    padding: 4px 11px;
    font-family: var(--dr-sans);
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--dr-accent);
    border: 1px solid var(--dr-accent);
    border-radius: 2px;
    background: transparent;
}

.dr-hero-text .dr-badge {
    margin-top: 18px;
}

.dr-hero-text .dr-badge:first-child {
    margin-top: 16px;
}

.dr-hero-title {
    font-family: var(--dr-serif) !important;
    font-size: clamp(2.8rem, 2.6vw, 3.6rem) !important;
    font-weight: 700 !important;
    line-height: 1.12 !important;
    letter-spacing: -0.01em;
    margin: 8px 0 0;
}

.dr-hero-title a:hover {
    opacity: 1;
    color: var(--dr-accent);
}

.dr-hero-deck {
    margin: 14px 0 0;
    font-family: var(--dr-sans);
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 1.45;
    color: var(--dr-soft);
}

.dr-hero-text .dr-byline {
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid var(--dr-rule);
    max-width: none;
}

.dr-hero-controls {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 16px;
}

.dr-hero-dots {
    display: flex;
    gap: 9px;
}

.dr-hero-dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--dr-rule);
    cursor: pointer;
    transition: background 0.2s ease, transform 0.2s ease;
}

.dr-hero-dot:hover {
    background: var(--dr-muted);
}

.dr-hero-dot.is-active {
    background: var(--dr-accent);
}

/* side column */
.dr-side {
    padding-left: 26px;
    border-left: 1px solid var(--dr-rule);
    min-width: 0;
}

.dr-side-head {
    margin: 0 0 6px;
    padding-bottom: 10px;
    font-family: var(--dr-sans) !important;
    font-size: 1.35rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--dr-ink) !important;
    border-bottom: 2px solid var(--dr-rule-dark);
}

.dr-side-list + .dr-side-head {
    margin-top: 24px;
}

.dr-side-list {
    counter-reset: dr-story;
}

.dr-side-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 12px 0;
    counter-increment: dr-story;
}

.dr-side-item + .dr-side-item {
    border-top: 1px solid var(--dr-rule);
}

.dr-side-num {
    flex: 0 0 auto;
    font-family: var(--dr-serif);
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1;
    color: var(--dr-accent);
}

.dr-side-num::before {
    content: counter(dr-story);
}

.dr-side-title {
    font-family: var(--dr-serif) !important;
    font-size: 1.85rem !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    margin: 2px 0 0;
}

.dr-side-title a:hover,
.dr-side-op-title a:hover {
    opacity: 1;
    color: var(--dr-accent);
}

.dr-side-meta {
    margin: 6px 0 0;
    font-family: var(--dr-sans);
    font-size: 1.25rem;
    color: var(--dr-muted);
}

.dr-side-opinions {
    margin-bottom: 4px;
}

.dr-side-opinion + .dr-side-opinion {
    border-top: 1px solid var(--dr-rule);
    margin-top: 14px;
    padding-top: 14px;
}

.dr-side-op-name {
    margin: 0;
    font-family: var(--dr-sans);
    font-size: 1.25rem;
    font-weight: 550;
    color: var(--dr-muted);
}

.dr-side-op-title {
    font-family: var(--dr-serif) !important;
    font-size: 1.8rem !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    margin: 4px 0 0;
}

.dr-side-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 16px;
    font-family: var(--dr-sans);
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--dr-accent);
}

.dr-side-link:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* “The Brief” live briefing band */
.dr-seven {
    margin-top: 32px;
    padding: 26px 30px 18px;
    background: var(--dr-wash);
}

.dr-seven-head {
    display: flex;
    align-items: center;
    gap: 16px;
    padding-bottom: 20px;
}

.dr-seven-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--dr-sans) !important;
    font-size: 2.1rem !important;
    font-weight: 800 !important;
    color: var(--dr-ink) !important;
}

.dr-live {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px;
    font-size: 1.1rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.08em;
    color: var(--dr-accent) !important;
    border: 1px solid var(--dr-accent);
    border-radius: 3px;
}

.dr-live::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--dr-accent);
}

.dr-seven-sub {
    flex: 1;
    margin: 0;
    font-family: var(--dr-sans);
    font-size: 1.45rem;
    color: var(--dr-muted);
}

.dr-seven-arrows {
    display: flex;
    gap: 10px;
}

.dr-arrow-btn {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    line-height: 1;
    color: var(--dr-muted);
    cursor: pointer;
    background: var(--dr-paper);
    border: 1px solid var(--dr-rule);
    border-radius: 50%;
}

.dr-arrow-btn:hover {
    color: var(--dr-ink);
    border-color: var(--dr-muted);
}

.dr-arrow-btn.is-off {
    opacity: 0.3;
    cursor: default;
}

.dr-arrow-btn.is-off:hover {
    color: var(--dr-muted);
    border-color: var(--dr-rule);
}

.dr-seven-scroller {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(250px, 1fr);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.dr-seven-scroller::-webkit-scrollbar {
    display: none;
}

.dr-seven-item {
    min-width: 0;
    scroll-snap-align: start;
    padding-inline: 20px;
    border-left: 1px solid var(--dr-rule);
}

.dr-seven-item:first-child {
    padding-left: 0;
    border-left: 0;
}

.dr-seven-meta {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 30px;
}

.dr-seven-meta img,
.dr-seven-avatar svg {
    width: 28px;
    height: 28px;
    object-fit: cover;
    border-radius: 50%;
}

.dr-seven-avatar {
    display: inline-flex;
    color: var(--dr-faint);
}

.dr-new {
    padding: 2px 8px;
    font-family: var(--dr-sans);
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--dr-paper);
    background: var(--dr-accent);
    border-radius: 3px;
}

.dr-seven-meta-row {
    display: flex;
    gap: 8px;
    align-items: center;
    font-family: var(--dr-sans);
    font-size: 1.25rem;
    white-space: nowrap;
    min-width: 0;
}

.dr-seven-author {
    font-weight: 600;
    color: var(--dr-ink);
    overflow: hidden;
    text-overflow: ellipsis;
}

.dr-seven-meta-row time {
    color: var(--dr-muted);
}

.dr-seven-kicker {
    margin: 14px 0 0;
    font-family: var(--dr-sans);
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--dr-accent);
}

.dr-seven-title {
    font-family: var(--dr-serif) !important;
    font-size: 2.2rem !important;
    font-weight: 700 !important;
    line-height: 1.22 !important;
    margin: 6px 0 0;
}

.dr-seven-title a:hover {
    opacity: 1;
    color: var(--dr-accent);
}

.dr-seven-excerpt {
    margin: 8px 0 0;
    font-family: var(--dr-sans);
    font-size: 1.45rem;
    line-height: 1.5;
    color: var(--dr-muted);
}

.dr-seven-more {
    display: flex;
    justify-content: flex-end;
    margin-top: 20px;
    padding-top: 14px;
    border-top: 1px solid var(--dr-rule);
}


.dr-more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--dr-sans);
    font-size: 1.4rem;
    font-weight: 650;
    color: var(--dr-ink);
    border-bottom: 1px solid var(--dr-ink);
    padding-bottom: 2px;
}

.dr-more:hover {
    color: var(--dr-accent);
    border-color: var(--dr-accent);
}

.dr-more svg {
    width: 16px;
    height: 16px;
}

/* topic / author header (tag.hbs, author.hbs) */
.dr-topic {
    padding: 36px 0 8px;
}

.gh-inner.dr-topic {
    max-width: 1200px;
    margin-inline: auto;
}

.dr-topic-meta {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 10px;
    margin-bottom: 24px;
    border-bottom: 3px solid var(--dr-rule-dark);
}

.dr-topic-kicker {
    font-family: var(--dr-sans);
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--dr-accent);
}

.dr-topic-count {
    font-family: var(--dr-sans);
    font-size: 1.3rem;
    color: var(--dr-muted);
}

.dr-topic-row {
    display: flex;
    align-items: center;
    gap: 22px;
}

.dr-topic-avatar {
    width: 88px;
    height: 88px;
    object-fit: cover;
    border-radius: 50%;
}

.dr-topic-title {
    font-family: var(--dr-serif) !important;
    font-size: clamp(4rem, 3vw + 2.6rem, 5.6rem) !important;
    font-weight: 700 !important;
    line-height: 1.04 !important;
    letter-spacing: -0.01em;
    margin: 0;
}

.dr-topic-desc {
    max-width: 680px;
    margin: 14px 0 0;
    font-family: var(--dr-serif);
    font-size: 2.1rem;
    line-height: 1.5;
    color: var(--dr-soft);
}

.dr-topic-loc {
    margin: 10px 0 0;
    font-family: var(--dr-sans);
    font-size: 1.4rem;
    color: var(--dr-muted);
}

.dr-topic-loc a {
    color: var(--dr-accent);
}

@media (max-width: 767px) {
    .dr-topic {
        padding-top: 24px;
    }

    .dr-topic-title {
        font-size: clamp(3.2rem, 9vw, 4.4rem) !important;
    }

    .dr-topic-avatar {
        width: 64px;
        height: 64px;
    }
}

/* ═════════════════════════════════════════════════════════════════════════
   3. Archive feeds (index / page N / tag / author) — editorial rows
   ═════════════════════════════════════════════════════════════════════════ */

.gh-container {
    margin-top: 32px;
}

.gh-container-title {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 4px;
    padding-bottom: 10px;
    font-family: var(--dr-sans) !important;
    font-size: 1.35rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--dr-ink);
    border-bottom: 1px solid var(--dr-rule-dark);
    width: 100%;
}

.gh-container.is-list .gh-feed {
    padding-top: 4px;
}

.gh-container.is-list .gh-card {
    padding: 22px 0 20px;
    border-top: 1px solid var(--dr-rule);
}

.gh-container.is-list .gh-card::before,
.gh-container.is-list .gh-card + .gh-card::before {
    display: none;
}

.gh-container.is-list .gh-card:first-child {
    border-top: 1px solid var(--dr-rule-dark);
}

.gh-container.is-list .gh-card-link {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 200px;
    gap: 28px;
    align-items: center;
}

.gh-container.is-list .gh-card:not(.no-image) .gh-card-wrapper {
    max-width: none;
}

.gh-container.is-list .no-image .gh-card-link {
    grid-template-columns: minmax(0, 1fr);
}

.gh-container.is-list .gh-card-image {
    order: 2;
    width: 200px;
    aspect-ratio: 1;
}

.gh-card-title {
    font-family: var(--dr-serif) !important;
    font-size: clamp(2.1rem, 1.6vw, 2.5rem) !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    line-height: 1.22 !important;
}

.gh-card-title-link:hover {
    opacity: 1;
    color: var(--dr-accent);
}

.gh-card-tag {
    display: none;
}

.gh-card-excerpt {
    display: -webkit-box;
    margin-top: 8px;
    font-family: var(--dr-serif);
    font-size: 1.6rem;
    line-height: 1.55;
    color: var(--dr-muted);
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.gh-card-meta {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 10px;
    font-family: var(--dr-sans);
    font-size: 1.25rem;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
    color: var(--dr-muted);
}

.gh-card-meta svg {
    width: 12px;
    height: 12px;
    color: var(--dr-faint);
}

.gh-card-author + .gh-card-date::before {
    content: "·";
    margin-left: 5px;
}

.gh-container.is-list .gh-card-meta {
    margin-top: 8px;
}

.gh-more {
    margin-top: 32px;
    font-family: var(--dr-sans) !important;
    font-size: 1.4rem !important;
    font-weight: 650;
    letter-spacing: 0;
}

.gh-more a:hover {
    color: var(--dr-accent);
}

.gh-more svg {
    width: 15px;
    height: 15px;
}

/* tag / author archive headers */
.gh-archive {
    padding: 40px 0 28px;
    border-top: 1px solid var(--dr-rule-dark);
    text-align: center;
}

.gh-main.gh-outer {
    padding-inline: max(4vmin, 20px);
}

.gh-main.gh-outer .gh-archive,
.gh-main.gh-outer .gh-container-inner {
    max-width: 1200px;
    margin-inline: auto;
}

/* archive lists: full width under the topic/author header */
.tag-template .gh-container.is-list:not(.has-sidebar) :is(.gh-container-title, .gh-main, .gh-more),
.author-template .gh-container.is-list:not(.has-sidebar) :is(.gh-container-title, .gh-main, .gh-more) {
    grid-column: 1 / -1;
}

.gh-archive .gh-article-title {
    font-family: var(--dr-serif) !important;
    font-size: clamp(3.2rem, 3.8vw, 4.4rem) !important;
    font-weight: 700 !important;
    margin: 0;
}

.gh-archive .gh-article-excerpt {
    max-width: 640px;
    margin: 12px auto 0;
    font-family: var(--dr-serif);
    font-size: 1.9rem;
    line-height: 1.5;
    color: var(--dr-muted);
}

.gh-archive .gh-article-image {
    max-width: 860px;
    margin: 24px auto 0;
}

.gh-author-meta {
    margin-top: 16px;
}

.gh-author-social {
    display: flex;
    justify-content: center;
    gap: 18px;
}

.gh-author-social-link {
    color: var(--dr-muted);
}

.gh-author-social-link:hover {
    color: var(--dr-ink);
}

.gh-author-social-link svg {
    width: 16px;
    height: 16px;
}

.gh-author-location {
    margin-top: 10px;
    font-family: var(--dr-sans);
    font-size: 1.25rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--dr-faint);
}

/* ═════════════════════════════════════════════════════════════════════════
   4. Article & static pages — centered column
   ═════════════════════════════════════════════════════════════════════════ */

.gh-article {
    --content-width: 660px;
}

.gh-article-header {
    margin-top: 36px;
}

body .gh-article-title {
    font-family: var(--dr-serif) !important;
    font-size: clamp(3.4rem, 4vw, 4.8rem) !important;
    font-weight: 700 !important;
    line-height: 1.08 !important;
    letter-spacing: -0.005em !important;
    text-transform: none !important;
    color: var(--dr-ink) !important;
}

body .gh-article-excerpt {
    max-width: 660px;
    font-family: var(--dr-serif) !important;
    font-size: clamp(1.8rem, 1.5vw, 2.1rem) !important;
    line-height: 1.5 !important;
    font-weight: 400 !important;
    color: var(--dr-muted) !important;
}

.gh-article-tag {
    display: inline-block;
    font-size: 1.2rem;
    font-weight: 650;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--dr-accent);
    margin-bottom: 10px;
}

.gh-article-tag:hover {
    opacity: 1;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.gh-meta-share {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 22px;
    padding: 0;
    max-width: 660px;
    border-top: 1px solid var(--dr-rule);
    border-bottom: 1px solid var(--dr-rule);
}

.gh-article-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
}

.gh-article-author-image {
    height: auto;
    margin: 0;
    padding: 0;
}

.gh-article-author-image img,
.gh-article-author-image .author-profile-image {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
}

.gh-article-author-image svg {
    width: 40px;
    height: 40px;
}

.gh-article-author-name {
    font-family: var(--dr-sans) !important;
    font-size: 1.45rem !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    color: var(--dr-ink) !important;
}

.gh-article-meta-content {
    display: flex;
    gap: 8px;
    font-family: var(--dr-sans);
    font-size: 1.3rem;
    color: var(--dr-muted);
}

.gh-article-meta-date {
    letter-spacing: 0.02em;
}

.gh-article-meta-length .bull {
    margin: 0;
}

.gh-meta-share .gh-button,
.gh-button-share {
    padding: 8px 16px;
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--dr-ink);
    background-color: transparent;
    border: 1px solid var(--dr-muted);
    border-radius: 2px;
}

.gh-meta-share .gh-button:hover {
    background-color: var(--dr-ink);
    border-color: var(--dr-ink);
    color: #fff;
}

.gh-article-image {
    margin: 24px 0 0;
}

.gh-article-image img {
    width: 100%;
}

.gh-article-image figcaption,
.kg-image-card figcaption,
.kg-image-card.kg-width-wide figcaption {
    padding-top: 8px;
    font-family: var(--dr-sans);
    font-size: 1.25rem;
    line-height: 1.45;
    color: var(--dr-muted);
}

/* body text — set in imperial proportions */
.gh-content {
    font-family: var(--dr-serif);
    font-size: 2rem;
    line-height: 1.66;
    color: var(--dr-ink);
}

.gh-content p {
    margin: 0 0 1.4em;
}

.gh-content h2,
.gh-content h3,
.gh-content h4 {
    font-family: var(--dr-serif) !important;
    font-weight: 700 !important;
    letter-spacing: -0.002em;
    color: var(--dr-ink);
    margin: 1.6em 0 0.55em;
}

.gh-content h2 {
    font-size: 2.9rem;
}

.gh-content h3 {
    font-size: 2.4rem;
}

.gh-content a {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: rgb(18 18 18 / 0.35);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}

.gh-content a:hover {
    opacity: 1;
    color: var(--dr-accent);
    text-decoration-color: currentColor;
}

.gh-content blockquote:not([class]) {
    margin: 1.6em 0;
    padding-left: 22px;
    border-left: 3px solid var(--dr-rule-dark);
    font-size: 2.05rem;
    line-height: 1.6;
    font-style: italic;
}

.gh-content ul,
.gh-content ol {
    padding-left: 1.2em;
    margin: 0 0 1.4em;
}

.gh-content li {
    margin-bottom: 0.45em;
}

.gh-content li::marker {
    color: var(--dr-muted);
}

.gh-content hr {
    margin: 2.4em 0;
    border: 0;
    border-top: 1px solid var(--dr-rule);
}

.gh-content code {
    padding: 2px 5px;
    font-family: var(--font-mono, Menlo, Consolas, monospace);
    font-size: 0.78em;
    background: var(--dr-wash);
    border: 0;
}

.gh-content pre {
    margin: 1.8em 0;
    padding: 18px 20px;
    background: var(--dr-wash);
    border: 1px solid var(--dr-rule);
    overflow-x: auto;
}

.gh-content pre code {
    padding: 0;
    font-size: 1.45rem;
    background: transparent;
    border: 0;
}

.gh-content .kg-image-card {
    margin: 2.2em auto;
    width: auto;
    max-width: 100%;
    text-align: center;
}

.gh-content .kg-image-card img {
    margin: 0 auto;
}

.gh-content .btn-good,
.kg-bookmark-card {
    font-family: var(--dr-sans);
}

.kg-bookmark-card {
    margin: 2em 0;
    border: 1px solid var(--dr-rule);
}

.kg-bookmark-container {
    color: inherit;
    text-decoration: none !important;
}

.gh-comments {
    margin-top: 40px;
}

/* ═════════════════════════════════════════════════════════════════════════
   5. Subscription module + forms
   ═════════════════════════════════════════════════════════════════════════ */

.gh-cta {
    margin-top: 48px;
}

.gh-cta-inner {
    max-width: 760px;
    margin-inline: auto;
    padding: 40px 32px;
    background-color: var(--dr-wash);
    border: 1px solid var(--dr-rule);
    text-align: center;
}

body .gh-cta-title {
    font-family: var(--dr-serif) !important;
    font-size: clamp(2.8rem, 3vw, 3.8rem) !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
}

.gh-cta-description {
    font-family: var(--dr-sans);
    font-size: 1.5rem;
    color: var(--dr-muted);
}

.gh-cta .gh-form,
.gh-header .gh-form {
    margin-inline: auto;
}

.gh-form {
    max-width: 560px;
    height: 48px;
    background: var(--dr-paper);
    border: 1px solid var(--dr-faint);
    border-radius: 0;
}

.gh-form:hover {
    background: var(--dr-paper);
    border-color: var(--dr-ink);
}

.gh-form-input {
    font-family: var(--dr-sans);
    font-size: 1.5rem;
    color: var(--dr-ink);
    border-radius: 0;
}

.gh-form-input::placeholder,
button.gh-form-input {
    color: var(--dr-faint);
}

.gh-form .gh-button {
    min-width: 128px;
    margin-inline-end: 4px;
    height: 40px;
}

/* ═════════════════════════════════════════════════════════════════════════
   6. Footer
   ═════════════════════════════════════════════════════════════════════════ */

.gh-footer {
    margin-top: 72px;
    padding: 0;
    background: var(--dr-paper);
    color: var(--dr-ink);
    border-top: 1px solid var(--dr-rule);
}

.gh-footer-inner {
    padding-bottom: 0;
}

.gh-footer-signup {
    max-width: 560px;
    margin: 0 auto;
    padding: 48px 0 40px;
    text-align: center;
    border-bottom: 1px solid var(--dr-rule);
}

body .gh-footer-signup-header {
    font-family: var(--dr-serif) !important;
    font-size: clamp(3rem, 3.4vw, 4rem) !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
}

.gh-footer-signup-subhead {
    margin: 10px 0 18px;
    font-family: var(--dr-sans);
    font-size: 1.5rem;
    color: var(--dr-muted);
}

.gh-footer .gh-form {
    max-width: 480px;
    margin-inline: auto;
}

.gh-social-links {
    display: flex;
    justify-content: center;
    gap: 24px;
    padding: 28px 0;
    border-bottom: 1px solid var(--dr-rule);
}

.gh-social-links a {
    color: var(--dr-muted);
}

.gh-social-links a:hover {
    color: var(--dr-ink);
    opacity: 1;
}

.gh-social-links svg,
.gh-social-links span {
    width: 18px;
    height: 18px;
    font-family: var(--dr-sans);
    font-size: 1.3rem;
}

.gh-footer-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 28px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px 0 40px;
    border: 0;
}

.gh-footer-logo,
.gh-footer-logo.is-title {
    font-family: var(--dr-serif) !important;
    font-size: 2.2rem !important;
    font-weight: 700 !important;
    text-transform: none !important;
    color: var(--dr-ink) !important;
}

.gh-footer-logo img {
    max-height: 32px;
}

.gh-footer-menu {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 20px;
    margin-inline: auto;
}

.gh-footer-menu .nav {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.gh-footer-menu a {
    font-family: var(--dr-sans);
    font-size: 1.3rem;
    color: var(--dr-muted);
}

.gh-footer-menu a:hover {
    opacity: 1;
    color: var(--dr-ink);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.gh-footer-copyright {
    font-family: var(--dr-sans);
    font-size: 1.25rem;
    color: var(--dr-faint);
}

/* ═════════════════════════════════════════════════════════════════════════
   7. Responsive behaviour
   ═════════════════════════════════════════════════════════════════════════ */

@media (max-width: 991px) {
    .dr-lead-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 30px;
        padding-top: 24px;
    }

    .dr-hero {
        padding-right: 0;
    }

    .dr-side {
        padding-left: 0;
        border-left: 0;
        border-top: 1px solid var(--dr-rule);
        padding-top: 26px;
    }

    .dr-seven-scroller {
        grid-auto-columns: 252px;
    }
}

@media (max-width: 767px) {
    .dr-front {
        padding-bottom: 48px;
    }

    .dr-trending-list {
        overflow-x: auto;
        mask-image: linear-gradient(to right, #000 85%, transparent);
    }

    .dr-lead-grid {
        display: flex;
        flex-direction: column;
        gap: 26px;
        padding-bottom: 24px;
    }

    .dr-side {
        padding-top: 24px;
    }

    .dr-seven {
        margin-top: 24px;
        padding: 20px 18px 14px;
    }

    .dr-seven-scroller {
        grid-auto-columns: minmax(230px, 240px);
    }

    .dr-list-item {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
        padding: 18px 0 16px;
    }

    .dr-list-image {
        order: -1;
    }

    .dr-list-image img {
        width: 100%;
        aspect-ratio: 16 / 9;
    }

    .dr-list-excerpt {
        display: none;
    }

    .gh-container.is-list .gh-card-link {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .gh-container.is-list .gh-card-image {
        order: -1;
        width: 100%;
        aspect-ratio: 16 / 9;
    }

    .gh-container.is-list .gh-card-excerpt,
    .gh-card-excerpt {
        display: -webkit-box;
    }

    .gh-card-title {
        font-size: 2rem !important;
    }

    .gh-meta-share {
        flex-direction: column;
        align-items: flex-start;
    }

    .gh-footer-bar {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .gh-footer-menu {
        margin-inline: 0;
    }
}

@media (min-width: 992px) and (max-width: 1199px) {
    .dr-list-image img,
    .gh-container.is-list .gh-card-image {
        width: 160px;
    }

    .dr-list-item {
        gap: 20px;
    }

    .gh-container.is-list .gh-card-link {
        gap: 20px;
    }
}

/* Topic pages: expansive masthead, landscape lead, and an editorial grid. */
.dr-tag-page {
    padding-block: 26px 40px;
}

.dr-tag-inner.gh-inner {
    max-width: 1280px;
    margin-inline: auto;
}

.dr-tag-topline,
.dr-tag-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    font-family: var(--dr-sans);
    font-size: 1.2rem;
}

.dr-tag-topline {
    color: var(--dr-muted);
}

.dr-tag-back span {
    margin-inline: 12px;
    color: #b3aabd;
}

.dr-tag-rss {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.dr-tag-rss svg {
    width: 13px;
    height: 13px;
}

.dr-tag-intro {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 28px 0 30px;
    border-bottom: 1px solid var(--dr-ink);
}

.dr-tag-eyebrow {
    margin: 0 0 14px;
    font: 600 1.1rem/1.4 var(--dr-sans);
    letter-spacing: .13em;
    text-transform: uppercase;
    color: var(--dr-muted);
}

.dr-tag-title {
    margin: 0;
    font-family: var(--dr-sans);
    font-size: clamp(3.4rem, 4vw, 5rem);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -.04em;
    overflow-wrap: anywhere;
}

.dr-tag-title > span {
    color: var(--dr-accent);
}

.dr-tag-description {
    max-width: 640px;
    margin: 0;
    font: 400 1.6rem/1.6 var(--dr-sans);
    color: var(--dr-soft);
}

.dr-tag-section-head {
    padding-block: 24px;
}

.dr-tag-section-head h2 {
    margin: 0;
    font: 650 1.2rem/1.4 var(--dr-sans);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.dr-tag-section-head > span {
    color: var(--dr-muted);
}

.dr-tag-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 36px 30px;
}

.dr-tag-card {
    min-width: 0;
    display: flex;
    flex-direction: column;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--dr-rule);
}

.dr-tag-image {
    display: block;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    background: #eeeaf4;
}

.dr-tag-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}

.dr-tag-image:hover img {
    transform: scale(1.025);
}

.dr-tag-card-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    padding-top: 20px;
}

.dr-tag-card-kicker {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
    font: 700 1.05rem/1.4 var(--dr-sans);
    letter-spacing: .09em;
    text-transform: uppercase;
    color: #70529f;
}

.dr-tag-card-kicker > span {
    padding-left: 12px;
    border-left: 1px solid #cfc6dd;
    color: var(--dr-muted);
}

.dr-tag-card h3 {
    margin: 0;
    font: 700 clamp(2.2rem, 2vw, 2.8rem)/1.15 var(--dr-serif);
    letter-spacing: -.025em;
}

.dr-tag-card h3 a:hover,
.dr-tag-back:hover,
.dr-tag-rss:hover,
.dr-tag-read:hover {
    color: #70529f;
}

.dr-tag-excerpt {
    margin: 12px 0 18px;
    font: 400 1.45rem/1.6 var(--dr-sans);
    color: var(--dr-muted);
}

.dr-tag-card .dr-byline {
    flex-wrap: wrap;
    margin: auto 0 0;
    font-size: 1.1rem;
    line-height: 1.5;
}

.dr-tag-read {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-top: 20px;
    font: 650 1.2rem/1.4 var(--dr-sans);
}

.dr-tag-read svg {
    width: 18px;
    height: 18px;
}

.dr-tag-lead {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    padding: 0;
    border: 0;
    background: #f4f1f7;
}

.dr-tag-lead .dr-tag-image {
    aspect-ratio: auto;
    min-height: 350px;
}

.dr-tag-lead .dr-tag-card-content {
    padding: clamp(26px, 3.2vw, 46px);
}

.dr-tag-lead h3 {
    font-size: clamp(2.8rem, 3vw, 4.2rem);
    line-height: 1.08;
}

.dr-tag-lead .dr-tag-excerpt {
    font-size: 1.55rem;
    margin-bottom: 26px;
}


.dr-tag-empty {
    grid-column: 1 / -1;
    padding: 50px 0;
    color: var(--dr-muted);
}

.dr-tag-pagination {
    margin-top: 36px;
    font: 500 1.4rem/1.5 var(--dr-sans);
}

.dr-tag-pagination .pagination {
    display: flex;
    justify-content: center;
    gap: 24px;
}

.dr-tag-page a:focus-visible {
    outline: 2px solid var(--dr-accent);
    outline-offset: 5px;
}

@media (max-width: 991px) {
    .dr-tag-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dr-tag-lead { grid-template-columns: 1fr 1fr; }
    .dr-tag-lead .dr-tag-image { min-height: 320px; }
}

@media (max-width: 600px) {
    .dr-tag-page { padding-top: 22px; }
    .dr-tag-intro { gap: 10px; padding-block: 24px; }
    .dr-tag-title { font-size: 3.6rem; }
    .dr-tag-description { max-width: 100%; font-size: 1.5rem; }
    .dr-tag-grid { grid-template-columns: 1fr; gap: 28px; }
    .dr-tag-lead { display: flex; }
    .dr-tag-lead .dr-tag-image { min-height: 0; aspect-ratio: 16 / 9; }
    .dr-tag-lead .dr-tag-card-content { padding: 24px; }
    .dr-tag-lead h3 { font-size: 2.9rem; }
}

@media (prefers-reduced-motion: reduce) {
    .dr-tag-image img { transition: none; }
}

/* Homepage polish: compact masthead, aligned columns and resilient small screens. */
.dr-trending-list {
    overflow-x: auto;
    scrollbar-width: none;
    mask-image: linear-gradient(to right, #000 94%, transparent);
}
.dr-trending-list::-webkit-scrollbar { display: none; }
.dr-trending-label { color: #b83232; font-size: 1.15rem; text-transform: uppercase; letter-spacing: .06em; }
.dr-hero-media a { display: block; }
.dr-hero .dr-byline { flex-wrap: wrap; }
.dr-hero-dot { width: 10px; height: 10px; }
.dr-front button:focus-visible,
.dr-front a:focus-visible { outline: 2px solid var(--dr-accent); outline-offset: 4px; }
.dr-seven-brand { margin: 0; }
.dr-seven-meta-row { flex-wrap: wrap; gap: 5px 8px; white-space: normal; }
.dr-seven-item:last-child { padding-right: 0; }
@media (min-width: 768px) and (max-width: 1050px) {
    .dr-date { visibility: hidden; }
    .gh-navigation.is-stacked .gh-navigation-menu .nav { gap: 0 20px; }
}
@media (min-width: 601px) and (max-width: 991px) {
    .dr-front .dr-side { display: grid; grid-template-columns: 1fr 1fr; column-gap: 30px; align-content: start; }
    .dr-side > .dr-side-head:first-child { grid-column: 1; grid-row: 1; }
    .dr-side-list { grid-column: 1; grid-row: 2 / 4; }
    .dr-side-list + .dr-side-head { grid-column: 2; grid-row: 1; margin-top: 0; }
    .dr-side-opinions { grid-column: 2; grid-row: 2; }
    .dr-side-link { grid-column: 2; grid-row: 3; }
}
@media (max-width: 767px) {
    #gh-navigation .gh-navigation-logo { font-size: 2.6rem !important; }
    #gh-navigation .gh-navigation-logo img { max-width: 150px; max-height: 28px; }
    .dr-hero-media img { aspect-ratio: 16 / 9; }
    .dr-hero-title { font-size: 2.8rem !important; }
    .dr-hero-deck { font-size: 1.5rem; }
    .dr-seven-head { flex-wrap: wrap; gap: 12px; }
    .dr-seven-brand { flex: 1; }
    .dr-seven-sub { flex: 0 0 100%; order: 3; font-size: 1.3rem; }
    .dr-seven-arrows { margin-left: auto; }
    .dr-seven-item { padding-inline: 16px; }
    .dr-trending { gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .dr-hero-slide, .dr-hero-slide.is-active { transform: none; transition: none; }
}

/* Article experience: split cover and a focused reading column. */
.dr-post { padding-top: 22px; }
.dr-post-header { background: #f5f3f7; padding-bottom: 36px; }
.dr-post-header-inner.gh-inner,
.dr-post-related .gh-inner { max-width: 1280px; }
.dr-post-breadcrumb { display: flex; align-items: center; gap: 12px; padding-block: 22px 28px; color: var(--dr-muted); font: 400 1.2rem/1.4 var(--dr-sans); }
.dr-post-breadcrumb > span { color: #b4a9c4; }
.dr-post-cover { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: center; }
.dr-post-heading { padding-block: 12px; min-width: 0; }
.dr-post-label { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; margin-bottom: 20px; font: 650 1.1rem/1.5 var(--dr-sans); letter-spacing: .08em; text-transform: uppercase; }
.dr-post-label a { color: #70529f; }
.dr-post-label > span { color: var(--dr-muted); font-weight: 400; letter-spacing: 0; text-transform: none; }
.dr-post-heading h1 { margin: 0; font: 750 clamp(3.4rem, 4.1vw, 5.8rem)/1.04 var(--dr-sans); letter-spacing: -.045em; overflow-wrap: break-word; }
.dr-post-deck { max-width: 580px; margin: 22px 0 0; font: 400 clamp(1.7rem, 1.6vw, 2rem)/1.5 var(--dr-serif); color: var(--dr-soft); }
.dr-post-byline { display: flex; gap: 12px; align-items: center; margin-top: 28px; font-family: var(--dr-sans); }
.dr-post-avatars { display: flex; flex-shrink: 0; }
.dr-post-avatars a + a { margin-left: -8px; }
.dr-post-avatars img, .dr-post-avatars svg { display: block; width: 36px; height: 36px; border-radius: 50%; object-fit: cover; border: 2px solid #f5f3f7; background: #ddd4e8; }
.dr-post-byline p { margin: 0 0 3px; font-size: 1.2rem; font-weight: 650; line-height: 1.4; }
.dr-post-byline time { font-size: 1.1rem; color: var(--dr-muted); }
.dr-post-cover-image { margin: 0; min-width: 0; }
.dr-post-cover-image > img { width: 100%; aspect-ratio: 16 / 9; object-fit: contain; background: #ede8f1; }
.dr-post-cover-image figcaption { font: 400 1.1rem/1.5 var(--dr-sans); color: var(--dr-muted); padding-top: 10px; }
.dr-post-cover-text { grid-template-columns: 1fr; max-width: 900px; }
.dr-post-reading-wrap { position: relative; max-width: 1280px; margin: 56px auto 0; }
.dr-post-body { --content-width: 680px; --container-width: 1040px; font-size: 1.9rem; line-height: 1.75; }
.dr-post-body > p { margin-top: 0; margin-bottom: 1.25em; }
.dr-post-body > p:first-child { font-size: 2.25rem; line-height: 1.55; color: var(--dr-soft); }
.dr-post-body > h2 { margin-top: 24px !important; margin-bottom: 16px; font: 700 2.8rem/1.2 var(--dr-sans) !important; letter-spacing: -.025em; scroll-margin-top: 30px; }
.dr-post-body > h3 { font: 650 2.2rem/1.3 var(--dr-sans) !important; }
.dr-post-body > blockquote { margin-block: 24px; padding: 14px 0 14px 24px; border-left: 3px solid var(--dr-accent); font: italic 400 2.4rem/1.5 var(--dr-serif); color: #59466e; }
.dr-post-body > blockquote p { margin: 0; }
.dr-post-rail { position: absolute; top: 0; bottom: 0; left: 30px; width: 160px; }
.dr-post-rail-inner { position: sticky; top: 30px; }
.dr-post-toc h2 { margin: 0 0 20px; font: 650 1.05rem/1.4 var(--dr-sans); letter-spacing: .1em; text-transform: uppercase; }
.dr-post-toc ol { list-style: none; padding: 0 0 0 14px; margin: 0; border-left: 1px solid #d9d0e3; }
.dr-post-toc li + li { margin-top: 16px; }
.dr-post-toc a { display: block; font: 400 1.2rem/1.6 var(--dr-sans); color: var(--dr-muted); }
.dr-post-toc a:hover { color: #70529f; }
.dr-post-back-top { display: inline-flex; gap: 8px; margin-top: 28px; font: 500 1.1rem/1.5 var(--dr-sans); color: var(--dr-muted); }
.dr-post-end { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; max-width: 680px; margin: 36px auto 0; padding-block: 24px; border-block: 1px solid var(--dr-rule); font: 500 1.1rem/1.5 var(--dr-sans); }
.dr-post-end > span:first-child { color: var(--dr-muted); }
.dr-post-end > div { display: flex; flex-wrap: wrap; gap: 8px; }
.dr-post-end > div a { padding: 5px 10px; background: #f3eff7; color: #70529f; }
.dr-post-copy { margin-left: auto; padding: 8px 0; border: 0; background: transparent; font: 600 1.15rem/1.5 var(--dr-sans); cursor: pointer; }
.dr-post-copy[hidden], .dr-post-toc[hidden] { display: none; }
.dr-post-copy-status:not(:empty) { flex-basis: 100%; color: #70529f; }
.dr-post-comments { --content-width: 680px; }
.dr-post-related { margin-top: 72px; padding-top: 36px; border-top: 1px solid var(--dr-rule); }
.dr-post-related-head { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
.dr-post-related-head h2 { margin: 0; font: 700 3.2rem/1.15 var(--dr-sans); letter-spacing: -.04em; }
.dr-post-related-head h2 > span { color: var(--dr-accent); }
.dr-post-related-head > a { display: inline-flex; align-items: center; gap: 8px; font: 600 1.2rem/1.5 var(--dr-sans); }
.dr-post-related-head svg { width: 16px; height: 16px; }
.dr-post a:focus-visible, .dr-post button:focus-visible { outline: 2px solid var(--dr-accent); outline-offset: 4px; }
@media (max-width: 1150px) {
    .dr-post-rail { display: none; }
    .dr-post-cover { gap: 30px; }
}
@media (max-width: 767px) {
    .dr-post { padding-top: 0; }
    .dr-post-header { padding-bottom: 24px; }
    .dr-post-breadcrumb { padding-block: 20px; }
    .dr-post-cover { grid-template-columns: 1fr; gap: 26px; }
    .dr-post-heading { padding: 0; }
    .dr-post-heading h1 { font-size: clamp(3.3rem, 8.5vw, 5rem); }
    .dr-post-label { margin-bottom: 14px; }
    .dr-post-deck { margin-top: 18px; font-size: 1.8rem; }
    .dr-post-byline { margin-top: 22px; }
    .dr-post-cover-image > img { aspect-ratio: 16 / 9; }
    .dr-post-reading-wrap { margin-top: 32px; }
    .dr-post-body { --container-gap: 20px; font-size: 1.8rem; line-height: 1.7; }
    .dr-post-body > p:first-child { font-size: 2.05rem; }
    .dr-post-body > h2 { font-size: 2.5rem !important; }
    .dr-post-body > blockquote { font-size: 2.2rem; }
    .dr-post-end { margin-inline: 20px; }
    .dr-post-related { margin-top: 44px; padding-top: 28px; }
    .dr-post-related-head h2 { font-size: 2.7rem; }
}

.dr-post-reading-wrap:has(.kg-width-wide, .kg-width-full) .dr-post-rail { display: none; }
.dr-post-body.gh-content > blockquote:not([class]) {
    margin-block: 20px 32px !important;
    padding: 12px 0 12px 24px;
    border-left: 3px solid var(--dr-accent);
    font: italic 400 2.4rem/1.5 var(--dr-serif);
    color: #59466e;
}
@media (max-width: 767px) {
    .dr-post-body.gh-content > blockquote:not([class]) { font-size: 2.2rem; }
}

/* Photo-free stories get an editorial cover with the same image proportions. */
.dr-tag-fallback {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    padding: clamp(20px, 2.5vw, 32px);
    isolation: isolate;
    color: #57416e;
    background: #efeaf5;
}
.dr-tag-fallback::before {
    content: "";
    position: absolute;
    z-index: -1;
    width: 72%;
    aspect-ratio: 1;
    right: -16%;
    top: -26%;
    border: 1px solid #c7b7db;
    border-radius: 50%;
    box-shadow: 0 0 0 24px #efeaf5, 0 0 0 25px #d4c8e3, 0 0 0 49px #efeaf5, 0 0 0 50px #dfd5e9;
}
.dr-tag-fallback::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(90deg, #efeaf5 5%, transparent 75%);
}
.dr-tag-fallback-brand {
    font: 700 1.6rem/1 var(--dr-serif);
    letter-spacing: -.04em;
}
.dr-tag-fallback-brand > span { color: var(--dr-accent); }
.dr-tag-fallback-topic {
    max-width: 85%;
    font: 600 clamp(2.4rem, 3vw, 3.8rem)/1.1 var(--dr-sans);
    letter-spacing: -.045em;
}
.dr-tag-fallback-arrow {
    position: absolute;
    right: 24px;
    bottom: 24px;
}
.dr-tag-fallback-arrow svg { width: 24px; height: 24px; }
.dr-tag-fallback:hover { color: #70529f; }
@media (max-width: 600px) {
    .dr-tag-fallback-topic { font-size: 3.2rem; }
}

.dr-tag-topline { justify-content: flex-start; gap: 12px; }
.dr-tag-topline > span { color: var(--dr-muted); }
.dr-tag-topline > span[aria-hidden] { color: #b3aabd; }
.dr-tag-rss { margin-left: auto; }

/* Homepage continuation: an archive shelf and a browseable topic directory. */
.dr-home-more, .dr-home-topics { margin-top: 56px; }
.dr-home-section-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 26px; }
.dr-home-eyebrow { margin: 0 0 10px; font: 650 1.05rem/1.4 var(--dr-sans); text-transform: uppercase; letter-spacing: .1em; color: #70529f; }
.dr-home-section-head h2 { margin: 0; font: 700 3.2rem/1.15 var(--dr-sans); letter-spacing: -.04em; }
.dr-home-section-head .dr-more { flex-shrink: 0; font-size: 1.2rem; }
.dr-home-topics { padding: 32px; background: #f5f3f7; }
.dr-home-topic-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 30px; }
.dr-home-topic { display: flex; gap: 14px; align-items: baseline; padding: 24px 0; border-top: 1px solid #ddd6e5; }
.dr-home-topic-number { flex-shrink: 0; font: 500 1.05rem/1.5 var(--dr-sans); color: #8e7c9e; }
.dr-home-topic-text { flex: 1; min-width: 0; }
.dr-home-topic h3 { margin: 0; font: 650 2rem/1.2 var(--dr-sans); letter-spacing: -.025em; }
.dr-home-topic p { margin: 10px 0 0; font: 400 1.3rem/1.6 var(--dr-sans); color: var(--dr-muted); }
.dr-home-topic > svg { flex-shrink: 0; width: 18px; height: 18px; color: #70529f; }
.dr-home-topic:hover h3 { color: #70529f; }
@media (max-width: 991px) {
    .dr-home-topic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .dr-home-more, .dr-home-topics { margin-top: 36px; }
    .dr-home-section-head { gap: 14px; align-items: center; }
    .dr-home-section-head h2 { font-size: 2.6rem; }
    .dr-home-topics { padding: 24px 20px 8px; }
    .dr-home-topic-grid { grid-template-columns: 1fr; }
    .dr-home-topic { padding-block: 20px; }
}

/* Trending ticker: seamless motion with manual and interaction pauses. */
.dr-trending { align-items: center; }
.dr-trending-label { flex-shrink: 0; }
.dr-trending-list { display: block; }
.dr-trending-track { display: flex; width: max-content; }
.dr-trending-group { display: flex; align-items: center; gap: 24px; padding-right: 24px; flex-shrink: 0; }
.dr-trending-group a { display: inline-flex; align-items: center; gap: 24px; }
.dr-trending-group a::after { content: ""; width: 3px; height: 3px; border-radius: 50%; background: #ca6565; flex-shrink: 0; }
.dr-trending-group[aria-hidden] { display: none; }
.dr-trending.is-moving .dr-trending-list { overflow: hidden; }
.dr-trending.is-moving .dr-trending-group[aria-hidden] { display: flex; }
.dr-trending.is-moving .dr-trending-track { animation: dr-ticker var(--ticker-duration, 60s) linear infinite; }
.dr-trending-list:hover .dr-trending-track { animation-play-state: paused; }
.dr-trending.is-moving .dr-trending-list:focus-within { overflow-x: auto; }
.dr-trending-list:focus-within .dr-trending-track { animation: none; }
@keyframes dr-ticker { to { transform: translateX(var(--ticker-distance)); } }
@media (prefers-reduced-motion: reduce) {
    .dr-trending.is-moving .dr-trending-track { animation: none; }
    .dr-trending.is-moving .dr-trending-list { overflow-x: auto; }
    .dr-trending.is-moving .dr-trending-group[aria-hidden] { display: none; }
}

.dr-trending-list a:hover { color: #b83232; }
.dr-trending a:focus-visible { outline-color: #b83232; }
