:root {
    --graphite: #242321;
    --graphite-soft: #34322f;
    --gold: #c4a05a;
    --cream: #f2ebdd;
    --paper: #f4f5f3;
    --field: #fff;
    --stone: #a79a89;
    --sage: #5b654f;
    --line: rgba(36, 35, 33, .2);
    --display: Georgia, "Times New Roman", serif;
    --sans: Arial, Helvetica, sans-serif;
    --page-pad: clamp(20px, 4vw, 64px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--graphite);
    background: var(--paper);
    font-family: var(--sans);
    font-size: 16px;
    line-height: 1.5;
}
button, input, textarea, select { font: inherit; }
a { color: inherit; }
img { display: block; max-width: 100%; }
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.skip-link {
    position: fixed;
    z-index: 999;
    top: 10px;
    left: 10px;
    padding: 10px 14px;
    color: var(--cream);
    background: var(--graphite);
    transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }

.site-header {
    position: relative;
    z-index: 200;
    min-height: 78px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    padding: 12px var(--page-pad);
    border-bottom: 1px solid rgba(242, 235, 221, .22);
    color: #f5f5f2;
    background: var(--graphite);
}
.brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
}
.brand img { width: 50px; height: 50px; object-fit: contain; filter: invert(1); }
.brand-copy { display: grid; gap: 3px; }
.brand-copy strong {
    font-family: var(--display);
    font-size: 22px;
    font-weight: 400;
    letter-spacing: -.035em;
    line-height: 1;
}
.brand-copy span {
    color: #bdb6ac;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1.2;
}
.site-nav { display: flex; align-items: center; justify-content: flex-end; gap: 22px; }
.site-nav a,
.site-nav-dropdown summary {
    position: relative;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    line-height: 1.3;
    text-decoration: none;
    text-transform: uppercase;
}
.site-nav-dropdown { position: relative; }
.site-nav-dropdown summary { gap: 6px; list-style: none; cursor: pointer; }
.site-nav-dropdown summary::-webkit-details-marker { display: none; }
.site-nav-dropdown summary::before {
    position: absolute;
    right: 0;
    bottom: -5px;
    left: 0;
    height: 1px;
    background: currentColor;
    content: "";
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 220ms ease;
}
.site-nav-dropdown summary:hover::before,
.site-nav-dropdown summary:focus-visible::before,
.site-nav-dropdown[open] summary::before {
    transform: scaleX(1);
    transform-origin: left;
}
.site-nav-dropdown-icon { font-size: 13px; line-height: 1; transform-origin: 50% 48%; transition: transform 180ms ease; }
.site-nav-dropdown[open] .site-nav-dropdown-icon { transform: rotate(180deg); }
.site-nav-submenu {
    position: absolute;
    z-index: 120;
    top: calc(100% - 1px);
    right: -14px;
    display: grid;
    width: min(360px, calc(100vw - 40px));
    padding: 10px;
    border: 1px solid var(--line);
    color: var(--graphite);
    background: var(--field);
    box-shadow: 0 18px 50px rgba(36, 35, 33, .14);
}
.site-nav-dropdown:not([open]) .site-nav-submenu { display: none; }
.site-nav .site-nav-submenu a,
.site-nav-submenu-placeholder {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 44px;
    padding: 12px 10px;
    border-bottom: 1px solid rgba(36, 35, 33, .14);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.35;
    text-transform: none;
}
.site-nav .site-nav-submenu a:last-of-type,
.site-nav-submenu-placeholder:last-child { border-bottom: 0; }
.site-nav .site-nav-submenu a::after { display: none; }
.site-nav .site-nav-submenu a:hover,
.site-nav .site-nav-submenu a:focus-visible { color: #936f2d; }
.site-header .site-nav-submenu :focus-visible { outline-color: #66501f; }
.site-nav-submenu-placeholder { color: #63543a; }
.site-nav-submenu-placeholder small {
    flex: 0 0 auto;
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.site-nav a::after {
    position: absolute;
    right: 0;
    bottom: -5px;
    left: 0;
    height: 1px;
    background: currentColor;
    content: "";
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 220ms ease;
}
.site-nav a:hover::after,
.site-nav a:focus-visible::after,
.site-nav a[aria-current="page"]::after {
    transform: scaleX(1);
    transform-origin: left;
}
.site-nav a:hover, .site-nav a:focus-visible { color: var(--gold); }
.site-nav .nav-accent { color: var(--gold); }
.site-nav .nav-author {
    min-height: 44px;
    padding: 0 16px;
    color: var(--graphite);
    background: var(--gold);
}
.site-nav .nav-author::after { display: none; }
.site-nav .nav-author:hover,
.site-nav .nav-author:focus-visible { color: var(--graphite); background: var(--cream); }
.site-header :focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }

.flash {
    position: fixed;
    z-index: 200;
    right: 24px;
    top: 104px;
    max-width: min(420px, calc(100vw - 40px));
    padding: 14px 18px;
    color: var(--cream);
    background: var(--sage);
    box-shadow: 0 14px 40px rgba(36, 35, 33, .2);
}
.flash--error { background: #8f3f37; }
.eyebrow {
    margin: 0 0 18px;
    color: #806126;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
}
:is(.featured-story, .journal-about, .auth-form, .site-footer) .eyebrow { color: var(--gold); }

.journal-hero {
    min-height: 520px;
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(280px, .5fr);
    align-items: end;
    gap: clamp(50px, 8vw, 130px);
    padding: clamp(58px, 7vw, 98px) var(--page-pad) clamp(58px, 7vw, 92px);
    border-bottom: 1px solid var(--line);
    background:
        radial-gradient(circle at 84% 17%, rgba(196, 160, 90, .06), transparent 24%),
        radial-gradient(circle at 8% 90%, rgba(114, 122, 104, .05), transparent 28%),
        var(--paper);
}
.journal-hero h1,
.journal-about h2,
.author-invite h2,
.article-header h1,
.auth-intro h1,
.studio-heading h1 {
    margin: 0;
    font-family: var(--display);
    font-weight: 400;
    letter-spacing: -.055em;
    line-height: .97;
}
.journal-hero h1 { max-width: 980px; font-size: clamp(50px, 5vw, 76px); }
.journal-hero h1 em,
.journal-about h2 em,
.auth-intro h1 em { color: var(--sage); font-weight: 400; }
.journal-hero-note { max-width: 390px; padding-bottom: 4px; }
.journal-hero-note p { margin: 0; font-size: clamp(16px, 1.2vw, 19px); line-height: 1.55; }
.journal-hero-note a { display: inline-flex; gap: 24px; margin-top: 32px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.category-filter {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 18px var(--page-pad);
    border-bottom: 1px solid var(--line);
    overflow-x: auto;
    scrollbar-width: none;
}
.category-filter::-webkit-scrollbar { display: none; }
.category-filter a {
    flex: 0 0 auto;
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    padding: 0 14px;
    border: 1px solid transparent;
    color: #74695c;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .05em;
    text-decoration: none;
    text-transform: uppercase;
}
.category-filter a:hover, .category-filter a:focus-visible { border-color: var(--stone); color: var(--graphite); }
.category-filter a.active { color: var(--cream); background: var(--graphite); }

.reader-strip,
.feed-controls,
.topic-follow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding-inline: var(--page-pad);
    border-bottom: 1px solid var(--line);
}
.reader-strip { min-height: 58px; color: var(--cream); background: var(--sage); font-size: 14px; }
.reader-strip p { margin: 0; }
.reader-strip form { margin: 0; }
.reader-strip button,
.topic-follow button {
    border: 0;
    padding: 10px 0;
    color: inherit;
    background: transparent;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-decoration: underline;
    text-underline-offset: 4px;
    text-transform: uppercase;
    cursor: pointer;
}
.feed-controls { min-height: 76px; background: var(--field); }
.feed-modes { display: flex; align-items: stretch; gap: 28px; align-self: stretch; }
.feed-modes a { position: relative; display: inline-flex; align-items: center; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.feed-modes a::after { position: absolute; right: 0; bottom: 0; left: 0; height: 3px; background: var(--gold); content: ""; transform: scaleX(0); }
.feed-modes a.active::after { transform: scaleX(1); }
.journal-search { display: flex; align-items: center; min-width: min(100%, 360px); border-bottom: 1px solid var(--graphite); }
.journal-search label { flex: 1; }
.journal-search input { width: 100%; min-height: 42px; border: 0; outline: 0; color: var(--graphite); background: transparent; }
.journal-search button { border: 0; color: var(--graphite); background: transparent; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.topic-follow { min-height: 60px; color: #514e47; background: var(--field); font-size: 14px; }
.topic-follow p { margin: 0; }
.topic-follow a { font-size: 12px; font-weight: 700; }

.featured-story {
    min-height: 380px;
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr) 70px;
    align-items: center;
    gap: clamp(26px, 5vw, 80px);
    padding: clamp(54px, 6vw, 86px) var(--page-pad);
    color: var(--cream);
    background: var(--graphite);
}
.featured-index { align-self: start; color: var(--gold); font-family: var(--display); font-size: 18px; }
.featured-story--with-cover { grid-template-columns: 90px minmax(300px, .75fr) minmax(0, 1fr) 70px; }
.featured-media { min-width: 0; align-self: stretch; overflow: hidden; }
.featured-media img { width: 100%; height: 100%; min-height: 360px; object-fit: cover; transition: transform .5s ease; }
.featured-media:hover img { transform: scale(1.025); }
.story-meta { margin: 0 0 14px; color: #655c50; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.featured-story .story-meta { color: var(--stone); }
.featured-copy h2 { max-width: 980px; margin: 0; font-family: var(--display); font-size: clamp(40px, 4.4vw, 66px); font-weight: 400; letter-spacing: -.05em; line-height: .98; overflow-wrap: anywhere; }
.featured-copy h2 a { text-decoration: none; }
.featured-copy > p:last-child { max-width: 720px; margin: 24px 0 0; color: #cfc4b5; font-size: 17px; }
.featured-copy .story-meta a { text-underline-offset: 3px; }
.circle-link {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(242, 235, 221, .5);
    border-radius: 50%;
    color: var(--cream);
    font-size: 22px;
    text-decoration: none;
}
.circle-link:hover { color: var(--graphite); background: var(--gold); border-color: var(--gold); }

.story-list { padding: clamp(60px, 7vw, 96px) var(--page-pad); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 42px; }
.section-heading h2 { margin: 0; font-family: var(--display); font-size: clamp(40px, 4vw, 60px); font-weight: 400; letter-spacing: -.05em; }
.story-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.story-card { --card-pad: clamp(26px, 3.2vw, 46px); min-height: 330px; display: flex; flex-direction: column; padding: var(--card-pad); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.story-number { color: #806126; font-family: var(--display); font-size: 18px; }
.story-cover { height: clamp(230px, 25vw, 410px); display: block; margin: 22px calc(var(--card-pad) * -1) 30px; overflow: hidden; }
.story-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.story-cover:hover img { transform: scale(1.025); }
.story-card .story-meta { margin-top: auto; }
.story-card--with-cover .story-meta { margin-top: 0; }
.story-card h3 { max-width: 620px; margin: 0; font-family: var(--display); font-size: clamp(30px, 2.7vw, 42px); font-weight: 400; letter-spacing: -.045em; line-height: 1; overflow-wrap: anywhere; }
.story-card h3 a { text-decoration: none; }
.story-card > p:not(.story-meta) { max-width: 600px; margin: 20px 0 0; color: #5a5349; font-size: 17px; }
.story-signals {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 18px;
    margin-top: 24px !important;
    color: #655f57 !important;
    font-size: 11px !important;
    font-weight: 700;
    letter-spacing: .045em;
    text-transform: uppercase;
}
.reaction-signal { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.reaction-signal svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.featured-story .story-signals { color: #b9ad9d !important; }
.story-author { display: flex; justify-content: space-between; gap: 20px; margin-top: 32px; padding-top: 18px; border-top: 1px solid var(--line); font-size: 13px; }
.author-identity { display: inline-flex; align-items: center; gap: 10px; }
.story-author .author-identity { text-decoration: none; }
.author-identity img, .author-initial { width: 34px; height: 34px; flex: 0 0 34px; border-radius: 50%; object-fit: cover; }
.author-initial { display: inline-grid; place-items: center; color: var(--cream); background: var(--sage); font-family: var(--display); font-size: 17px; }
.feed-pagination { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-top: 34px; }
.feed-pagination > a:not(.button-secondary) { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.journal-empty { padding: clamp(72px, 9vw, 140px) var(--page-pad); border-bottom: 1px solid var(--line); }
.journal-empty h2 { max-width: 900px; margin: 0 0 24px; font-family: var(--display); font-size: clamp(42px, 5vw, 76px); font-weight: 400; letter-spacing: -.045em; line-height: 1; }

.journal-about {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
    gap: clamp(60px, 10vw, 160px);
    padding: clamp(78px, 9vw, 140px) var(--page-pad);
    color: var(--cream);
    background: var(--graphite-soft);
}
.journal-about h2 { font-size: clamp(46px, 4.8vw, 68px); }
.journal-about h2 em { color: var(--gold); }
.about-copy { max-width: 620px; align-self: end; }
.about-copy p { margin: 0; color: #d2c7b8; font-family: var(--display); font-size: clamp(20px, 1.6vw, 25px); line-height: 1.4; }
.about-copy p + p { margin-top: 26px; padding-top: 26px; border-top: 1px solid rgba(242, 235, 221, .22); }

.author-invite { padding: clamp(80px, 10vw, 154px) var(--page-pad); text-align: center; }
.author-invite h2 { font-size: clamp(48px, 5vw, 72px); }
.author-invite > p:not(.eyebrow) { max-width: 650px; margin: 28px auto 0; font-size: 18px; }
.button-primary,
.button-secondary {
    min-height: 56px;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    border: 1px solid var(--graphite);
    padding: 0 22px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-decoration: none;
    text-transform: uppercase;
    cursor: pointer;
}
.button-primary { color: var(--cream); background: var(--graphite); }
.button-primary:hover, .button-primary:focus-visible { color: var(--graphite); background: var(--gold); }
.button-secondary { color: var(--graphite); background: transparent; }
.button-secondary:hover { background: rgba(196, 160, 90, .22); }
.author-invite .button-primary { margin-top: 38px; }

.site-footer {
    display: grid;
    gap: 28px;
    padding: 38px var(--page-pad) 28px;
    color: var(--stone);
    background: var(--graphite);
    border-top: 1px solid rgba(242, 235, 221, .16);
    font-size: 12px;
    letter-spacing: .055em;
    line-height: 1.55;
}
.site-footer p { margin: 0; }
.site-footer-primary {
    display: grid;
    grid-template-columns: minmax(160px, .65fr) minmax(300px, 1.2fr) auto;
    gap: clamp(24px, 4vw, 72px);
    align-items: end;
}
.site-footer-brand {
    color: var(--cream);
    font-family: var(--display);
    font-size: clamp(28px, 2.6vw, 38px);
    letter-spacing: -.04em;
    line-height: 1;
    text-decoration: none;
}
.site-footer-nav { display: flex; flex-wrap: wrap; gap: 10px clamp(18px, 2.4vw, 34px); }
.site-footer-nav a {
    color: var(--cream);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-decoration: none;
    text-transform: uppercase;
}
.site-footer-nav a:hover, .site-footer-nav a:focus-visible { color: var(--gold); }
.site-footer-meta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, auto) auto;
    gap: 12px 28px;
    align-items: end;
    padding-top: 20px;
    border-top: 1px solid rgba(242, 235, 221, .16);
}
.site-footer-requisites,
.site-footer-contacts,
.site-footer-legal { display: flex; flex-wrap: wrap; gap: 3px 18px; }
.site-footer-requisites span:not(:last-child)::after,
.site-footer-contacts a:not(:last-child)::after,
.site-footer-legal span:not(:last-child)::after {
    position: relative;
    left: 10px;
    color: var(--gold);
    content: "·";
}
.site-footer-contacts a { color: var(--cream); text-decoration: none; transition: color 180ms ease; }
.site-footer-contacts a:hover,
.site-footer-contacts a:focus-visible { color: var(--gold); }
.site-footer-legal { color: #8f867a; }
.site-footer-copyright { white-space: nowrap; }

/* Общая пластика журнала и переходов между разделами сайта. */
[data-motion] { opacity: 1; transform: none; }
.has-journal-motion [data-motion].motion-pending { opacity: 0; transform: translate3d(0, 28px, 0); }
.has-journal-motion [data-motion].motion-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition: opacity 680ms ease, transform 780ms cubic-bezier(.2, .72, .2, 1);
    transition-delay: calc(var(--motion-delay, 0) * 70ms);
}
.has-journal-motion [data-motion].motion-enter {
    animation: journal-content-enter 680ms cubic-bezier(.2, .72, .2, 1) both;
    animation-delay: calc(var(--motion-delay, 0) * 55ms);
}
@keyframes journal-content-enter {
    from { opacity: 0; transform: translate3d(0, 18px, 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.article-page { background: var(--paper); }
.article-header { padding: clamp(64px, 7vw, 104px) max(var(--page-pad), calc((100vw - 1220px) / 2)); border-bottom: 1px solid var(--line); }
.article-header h1 { max-width: 1100px; font-size: clamp(50px, 5.2vw, 76px); }
.article-lead { max-width: 760px; margin: 34px 0 0 clamp(0px, 10vw, 160px); font-family: var(--display); font-size: clamp(21px, 2vw, 30px); line-height: 1.4; }
.article-byline { display: flex; gap: 30px; margin: 38px 0 0 clamp(0px, 10vw, 160px); padding-top: 18px; border-top: 1px solid var(--line); font-size: 13px; text-transform: uppercase; letter-spacing: .08em; }
.article-cover { max-width: 1440px; margin: 0 auto; padding: clamp(34px, 5vw, 72px) var(--page-pad) 0; }
.article-cover img { width: 100%; height: clamp(230px, 55vw, 820px); object-fit: cover; }
.article-page,
.article-header,
.article-body,
.article-author-card,
.article-actions,
.article-end,
.comments-section,
.related-grid { min-width: 0; }
.article-body { max-width: 780px; margin: 0 auto; padding: clamp(70px, 9vw, 140px) 24px; font-family: var(--display); font-size: clamp(19px, 1.45vw, 23px); line-height: 1.66; overflow-wrap: anywhere; word-break: break-word; }
.article-body p { margin: 0 0 1.3em; }
.article-body :is(p, li, a, blockquote) { overflow-wrap: anywhere; word-break: break-word; }
.article-body h2 { margin: 2.2em 0 .7em; font-size: 1.9em; font-weight: 400; line-height: 1.08; letter-spacing: -.035em; }
.article-body h3 { margin: 1.8em 0 .6em; font-size: 1.38em; font-weight: 400; }
.article-body blockquote { margin: 2.2em -8vw; padding: 1.2em 0 1.2em 6vw; border-left: 3px solid var(--gold); color: var(--sage); font-size: 1.45em; font-style: italic; line-height: 1.3; }
.article-body a { color: #856522; }
.article-author-card { max-width: 980px; display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 30px; margin: 0 auto 70px; padding: 34px 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.article-author-card > img, .author-card-initial { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; }
.author-card-initial { display: grid; place-items: center; color: var(--cream); background: var(--sage); font-family: var(--display); font-size: 50px; }
.article-author-card .eyebrow { margin-bottom: 8px; }
.article-author-card h2 { margin: 0; font-family: var(--display); font-size: 36px; font-weight: 400; }
.article-author-card div > p { max-width: 650px; margin: 12px 0 0; color: #625a50; white-space: pre-line; }
.article-author-card .article-author-title { color: var(--sage); font-size: 15px; font-weight: 600; }
.article-author-profile-link { display: inline-block; margin-top: 18px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.article-end { max-width: 980px; display: flex; justify-content: space-between; gap: 30px; margin: 0 auto; padding: 34px 24px 70px; border-top: 1px solid var(--line); }
.article-end p { margin: 0; color: #6c6358; }

.article-actions {
    max-width: 980px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin: 0 auto 56px;
    padding: 22px 24px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}
.reaction-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.reaction-button {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 0 13px;
    color: var(--graphite);
    background: rgba(114, 122, 104, .1);
    cursor: pointer;
    transition: color 180ms ease, background 180ms ease, border-color 180ms ease, transform 180ms ease;
}
.reaction-button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.55; }
.reaction-button strong { min-width: 1ch; font-size: 12px; font-variant-numeric: tabular-nums; }
.reaction-button:hover { border-color: rgba(36, 35, 33, .18); background: rgba(196, 160, 90, .18); transform: translateY(-1px); }
.reaction-button:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.reaction-button.is-active { color: var(--cream); background: var(--sage); border-color: var(--sage); }
.reaction-button--down.is-active { background: var(--graphite-soft); border-color: var(--graphite-soft); }
.reaction-button:disabled { cursor: wait; opacity: .65; }
.share-menu { position: relative; margin-left: auto; }
.share-menu summary { width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 50%; list-style: none; color: var(--graphite); background: rgba(114, 122, 104, .1); cursor: pointer; transition: color 180ms ease, background 180ms ease, border-color 180ms ease, transform 180ms ease; }
.share-menu summary::-webkit-details-marker { display: none; }
.share-menu summary svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.share-menu summary:hover, .share-menu[open] summary { border-color: rgba(36, 35, 33, .18); color: #715d35; background: rgba(196, 160, 90, .2); transform: translateY(-1px); }
.share-menu summary:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.share-panel { position: absolute; z-index: 20; right: 0; bottom: calc(100% + 12px); width: 290px; max-height: min(70vh, 420px); overflow: auto; padding: 14px; border: 1px solid rgba(36, 35, 33, .12); border-radius: 18px; background: var(--field); box-shadow: 0 22px 60px rgba(36,35,33,.16); }
.share-panel .eyebrow { margin-bottom: 10px; font-size: 9px; }
.share-panel a, .share-panel button { width: 100%; min-height: 44px; display: flex; align-items: center; gap: 12px; border: 0; border-radius: 12px; padding: 0 10px; color: var(--graphite); background: transparent; font-size: 14px; text-align: left; text-decoration: none; cursor: pointer; }
.share-panel a:hover, .share-panel button:hover { color: #715d35; background: rgba(196, 160, 90, .12); }
.share-panel a:focus-visible, .share-panel button:focus-visible { outline: 2px solid var(--gold); outline-offset: -2px; color: #715d35; background: rgba(196, 160, 90, .12); }
.share-icon { width: 24px; height: 24px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 50%; color: #715d35; background: rgba(196,160,90,.17); font-size: 10px; font-weight: 700; }
.article-author-card h2 a { text-decoration: none; }
.follow-form { margin-top: 20px; }
.follow-form button {
    min-height: 42px;
    border: 1px solid var(--graphite);
    padding: 0 16px;
    color: var(--graphite);
    background: transparent;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    cursor: pointer;
}
.follow-form button:hover { color: var(--cream); background: var(--graphite); }
.follow-login { display: inline-block; margin-top: 20px; font-size: 13px; }

.comments-section { max-width: 980px; margin: 0 auto; padding: 34px 24px 80px; }
.comments-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .65fr); gap: 50px; align-items: end; padding-bottom: 32px; border-bottom: 1px solid var(--line); }
.comments-heading h2 { margin: 0; font-family: var(--display); font-size: clamp(38px, 4vw, 58px); font-weight: 400; letter-spacing: -.045em; }
.comments-heading h2 span { color: var(--gold); font-size: .55em; vertical-align: top; }
.comments-heading > p { margin: 0; color: #6c6358; }
.comment-form { display: grid; gap: 12px; padding: 34px 0; border-bottom: 1px solid var(--line); }
.comment-form label { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.comment-form textarea { width: 100%; resize: vertical; border: 1px solid var(--line); border-radius: 0; padding: 16px; color: var(--graphite); background: var(--field); line-height: 1.55; }
.comment-form .button-primary { justify-self: start; margin-top: 6px; }
.field-error { margin: 0; color: #8f2f28; font-size: 13px; }
.comment-login { display: flex; align-items: center; gap: 18px 28px; padding: 34px 0; border-bottom: 1px solid var(--line); }
.comment-login p { max-width: 470px; margin: 0 auto 0 0; }
.comment-login > a:last-child { font-size: 13px; }
.comment-list { display: grid; }
.comment-item { padding: 30px 0; border-bottom: 1px solid var(--line); }
.comment-item header, .comment-reply header { display: flex; justify-content: space-between; gap: 20px; font-size: 13px; }
.comment-item time, .comment-reply time { color: #807568; }
.comment-item > p, .comment-reply > p { margin: 12px 0 0; white-space: pre-line; }
.comment-reply { margin: 24px 0 0 8%; padding: 20px 0 0 24px; border-top: 1px solid var(--line); border-left: 2px solid var(--gold); }
.comment-actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px 18px; margin-top: 14px; }
.comment-actions > form button, .comment-actions summary, .comment-actions details button { border: 0; padding: 0; color: #756b5f; background: transparent; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-decoration: underline; text-underline-offset: 4px; text-transform: uppercase; cursor: pointer; }
.comment-actions details { position: relative; }
.comment-actions summary { list-style: none; }
.comment-actions summary::-webkit-details-marker { display: none; }
.comment-actions details form { position: relative; z-index: 2; width: min(430px, calc(100vw - 48px)); display: grid; gap: 10px; margin-top: 12px; padding: 16px; border: 1px solid var(--line); background: var(--paper); }
.comment-actions textarea { width: 100%; resize: vertical; border: 1px solid var(--line); padding: 12px; color: var(--graphite); background: var(--field); }
.comment-actions details button { justify-self: start; min-height: 36px; border: 1px solid var(--graphite); padding: 0 12px; color: var(--graphite); text-decoration: none; }
.comment-actions details button:hover { color: var(--cream); background: var(--graphite); }
.comments-empty { margin: 0; padding: 34px 0; color: #746b60; }

.related-stories, .author-publications { padding: clamp(64px, 8vw, 110px) var(--page-pad); border-top: 1px solid var(--line); }
.related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.related-grid > article { min-height: 280px; display: flex; flex-direction: column; padding: clamp(24px, 3vw, 40px); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.related-grid h3 { margin: 0; font-family: var(--display); font-size: clamp(28px, 2.5vw, 38px); font-weight: 400; letter-spacing: -.04em; line-height: 1.03; }
.related-grid h3 a { text-decoration: none; }
.related-grid article > p:not(.story-meta, .story-signals) { color: #665e54; }
.related-grid article > a:last-child { margin-top: auto; padding-top: 20px; font-size: 13px; }

.author-page-hero { min-height: 600px; display: grid; grid-template-columns: minmax(280px, .65fr) minmax(0, 1.35fr); border-bottom: 1px solid var(--line); background: var(--paper); }
.author-page-photo { min-height: 600px; display: grid; place-items: center; overflow: hidden; color: var(--cream); background: var(--sage); font-family: var(--display); font-size: 160px; }
.author-page-photo img { width: 100%; height: 100%; object-fit: cover; }
.author-page-copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(56px, 8vw, 120px) var(--page-pad); }
.author-page-copy h1 { max-width: 900px; margin: 0; font-family: var(--display); font-size: clamp(52px, 6vw, 88px); font-weight: 400; letter-spacing: -.055em; line-height: .95; }
.author-page-copy > p:not(.eyebrow) { max-width: 700px; margin: 30px 0 0; color: #61594f; font-family: var(--display); font-size: clamp(20px, 1.8vw, 27px); white-space: pre-line; }
.author-page-copy .author-page-title { margin-top: 20px; color: var(--sage); font-family: var(--sans); font-size: clamp(17px, 1.25vw, 20px); font-weight: 600; }
.author-page-copy .author-page-topics { margin-top: 20px; font-family: var(--sans); font-size: 15px; line-height: 1.55; }
.author-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.author-links a { padding: 10px 14px; border: 1px solid var(--line); font-size: 12px; font-weight: 700; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }
.author-links a:hover, .author-links a:focus-visible { color: var(--cream); background: var(--graphite); }
.author-page-copy .button-secondary { margin-top: 26px; }
.author-story-cover { height: 220px; margin: calc(clamp(24px, 3vw, 40px) * -1) calc(clamp(24px, 3vw, 40px) * -1) 28px; overflow: hidden; }
.author-story-cover img { width: 100%; height: 100%; object-fit: cover; }

.auth-layout {
    min-height: calc(100vh - 88px);
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr);
}
.auth-intro { display: flex; flex-direction: column; justify-content: center; padding: clamp(64px, 8vw, 130px) var(--page-pad); background: radial-gradient(circle at 92% 8%, rgba(196,160,90,.06), transparent 28%), var(--paper); }
.auth-intro h1 { font-size: clamp(50px, 5vw, 76px); }
.auth-intro > p:last-child { max-width: 590px; margin: 34px 0 0; font-size: 19px; }
.auth-form { display: flex; flex-direction: column; justify-content: center; gap: 22px; padding: clamp(52px, 7vw, 110px); color: var(--cream); background: var(--graphite); }
.auth-form h2 { margin: 0 0 18px; font-family: var(--display); font-size: 42px; font-weight: 400; }
.auth-form label:not(.check-row), .editor-sidebar label { display: grid; gap: 8px; }
.auth-form label > span { color: #c8bdaf; font-size: 13px; }
.editor-sidebar label > span { color: #5b5953; font-size: 13px; }
.auth-form input { min-height: 48px; border: 0; border-bottom: 1px solid rgba(242,235,221,.45); border-radius: 0; outline: 0; color: var(--cream); background: transparent; font-size: 18px; }
.auth-form input:focus { border-color: var(--gold); }
.check-row { display: flex; align-items: flex-start; gap: 10px; color: #c8bdaf; font-size: 14px; }
.check-row input { width: 18px; min-height: 18px; }
.auth-form .button-primary { width: 100%; color: var(--graphite); background: var(--gold); border-color: var(--gold); }
.auth-form .button-primary:hover { color: var(--cream); background: transparent; }
.form-errors { padding: 14px 16px; color: #6c2420; background: #f4d9d0; font-size: 14px; }
.form-errors p { margin: 0; }
.form-errors p + p { margin-top: 5px; }
.form-switch { margin: 0; color: var(--stone); font-size: 14px; }
.form-switch a { color: var(--cream); }

.studio-shell { min-height: 0; max-width: 1600px; margin: 0 auto; padding: clamp(30px, 4vw, 54px) var(--page-pad) 72px; background: var(--paper); }
.studio-heading { display: flex; justify-content: space-between; align-items: end; gap: 40px; }
.studio-heading h1 { font-size: clamp(34px, 3.5vw, 48px); }
.studio-heading > div > p:last-child { margin: 8px 0 0; color: #555650; font-size: 15px; line-height: 1.5; }
.studio-heading-actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.studio-create-actions { display: flex; align-items: center; gap: 10px; }
.studio-create-actions a { min-height: 54px; gap: 14px; white-space: nowrap; }
.notification-phone { position: relative; }
.notification-phone summary { position: relative; width: 54px; min-height: 54px; display: grid; place-items: center; border: 1px solid var(--graphite); color: var(--graphite); background: transparent; cursor: pointer; list-style: none; }
.notification-phone summary::-webkit-details-marker { display: none; }
.notification-phone summary svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.notification-phone summary b { position: absolute; top: -7px; right: -7px; min-width: 19px; height: 19px; display: grid; place-items: center; padding: 0 4px; border-radius: 50%; color: var(--cream); background: #a9433a; font-size: 10px; line-height: 1; }
.notification-phone.has-unread summary svg { color: #a9433a; animation: phone-ring 2.8s ease-in-out infinite; transform-origin: 50% 100%; }
.notification-phone summary:hover, .notification-phone summary:focus-visible { color: var(--cream); background: var(--graphite); }
.notification-phone summary:hover svg, .notification-phone summary:focus-visible svg { color: var(--gold); }
.notification-panel { position: absolute; z-index: 40; top: calc(100% + 10px); right: 0; width: min(420px, calc(100vw - (var(--page-pad) * 2))); padding: 22px; border: 1px solid var(--graphite); color: var(--graphite); background: var(--field); box-shadow: 0 22px 60px rgba(36, 35, 33, .22); }
.notification-panel-heading { display: flex; align-items: start; justify-content: space-between; gap: 18px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.notification-panel-heading .eyebrow { margin: 0 0 7px; font-size: 10px; }
.notification-panel-heading h2 { margin: 0; font-family: var(--display); font-size: 30px; font-weight: 400; letter-spacing: -.04em; }
.notification-panel-heading button { border: 0; padding: 0; color: #756b5f; background: transparent; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-decoration: underline; text-underline-offset: 4px; text-transform: uppercase; cursor: pointer; }
.notification-list { max-height: min(56vh, 480px); overflow: auto; }
.notification-item { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--line); color: #665d53; text-decoration: none; }
.notification-item:last-child { border-bottom: 0; }
.notification-item.is-unread { color: var(--graphite); }
.notification-item strong, .notification-item small { display: block; }
.notification-item strong { font-size: 14px; }
.notification-item small { margin-top: 4px; font-size: 12px; line-height: 1.45; }
.notification-icon { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; color: #8c6b2c; background: rgba(196,160,90,.17); font-family: var(--display); }
.notifications-empty { margin: 0; padding: 26px 0 6px; color: #746b60; }
@keyframes phone-ring { 0%, 7%, 14%, 100% { transform: rotate(0); } 3% { transform: rotate(-12deg); } 10% { transform: rotate(12deg); } }
.studio-navigation { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; margin-top: 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.studio-navigation-primary, .studio-navigation-secondary { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 24px; }
.studio-navigation-secondary { justify-content: flex-end; gap: 4px 18px; }
.studio-navigation a, .studio-navigation button { min-height: 48px; display: inline-flex; align-items: center; border: 0; border-bottom: 2px solid transparent; padding: 0; color: #555650; background: transparent; font-size: 13px; font-weight: 600; letter-spacing: 0; text-decoration: none; white-space: nowrap; }
.studio-navigation-primary a { font-size: 15px; }
.studio-navigation a[aria-current="page"] { border-bottom-color: var(--gold); color: var(--graphite); }
.studio-navigation a:hover, .studio-navigation button:hover { color: var(--graphite); }
.studio-navigation button { cursor: pointer; }
.studio-dashboard .studio-heading h1 { font-size: clamp(34px, 3.5vw, 48px); }
.studio-dashboard .studio-heading > div > p:last-child { margin-top: 12px; font-size: 16px; }
.studio-alert { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 28px; padding: 18px 22px; border-left: 3px solid var(--gold); background: rgba(196, 160, 90, .12); }
.studio-alert strong { font-family: var(--display); font-size: 24px; font-weight: 400; }
.studio-alert p { max-width: 730px; margin: 5px 0 0; color: #5d554c; }
.studio-alert form { flex: 0 0 auto; }
.studio-alert button { min-height: 42px; border: 1px solid var(--graphite); padding: 0 14px; color: var(--graphite); background: transparent; font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; cursor: pointer; }
.studio-alert button:hover { color: var(--cream); background: var(--graphite); }
.studio-alert--urgent { border-left-color: #a9433a; background: rgba(169, 67, 58, .09); }
.studio-hidden-alert .button-secondary { flex: 0 0 auto; min-height: 48px; font-size: 11px; }
.studio-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 28px 0 34px; }
.studio-summary div { min-height: 102px; display: flex; flex-direction: column; justify-content: space-between; padding: 17px 19px; border: 1px solid var(--line); background: var(--field); }
.studio-summary strong { font-family: var(--sans); font-size: 31px; font-weight: 600; letter-spacing: -.03em; }
.studio-summary span { color: #555650; font-size: 13px; line-height: 1.35; }
.studio-summary--compact { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 26px; }
.studio-quick-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 12px; margin-bottom: 26px; }
.studio-quick-links a { min-height: 90px; display: flex; flex-direction: column; justify-content: center; gap: 7px; border: 1px solid var(--line); padding: 16px 18px; color: var(--graphite); background: var(--field); text-decoration: none; }
.studio-quick-links a:hover, .studio-quick-links a:focus-visible { border-color: var(--graphite); background: rgba(196, 160, 90, .12); }
.studio-quick-links strong { font-size: 15px; }
.studio-quick-links span { color: #655c51; font-size: 13px; line-height: 1.4; }
.studio-home-next { display: flex; justify-content: space-between; align-items: center; gap: 30px; padding: 22px 24px; border: 1px solid var(--line); background: var(--field); }
.studio-home-next .eyebrow { margin: 0 0 10px; }
.studio-home-next h2 { margin: 0; font-family: var(--sans); font-size: clamp(20px, 2vw, 26px); font-weight: 600; letter-spacing: -.02em; }
.studio-home-next p:last-child { margin: 10px 0 0; color: #655c51; font-size: 14px; }
.studio-home-next .button-secondary { flex: 0 0 auto; text-decoration: none; }
.studio-recent, .publication-section { margin-top: 30px; }
.studio-section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 12px; }
.studio-section-heading h2 { margin: 0; }
.studio-section-heading a, .studio-text-link, .editorial-utility-link a { color: var(--graphite); font-size: 13px; font-weight: 700; text-underline-offset: 4px; }
.studio-section-heading > span { color: #655c51; font-size: 13px; }
.studio-context-note { margin: 28px 0 0; color: #655c51; font-size: 14px; line-height: 1.5; }
.studio-context-note a { color: var(--graphite); text-underline-offset: 4px; }
.studio-empty-note { margin: 0; padding: 22px 0; border-top: 1px solid var(--line); color: #655c51; font-size: 14px; }
.publication-groups { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
.publication-groups a { min-height: 46px; display: inline-flex; align-items: center; gap: 10px; border: 1px solid var(--line); padding: 0 16px; color: var(--graphite); background: var(--field); font-size: 14px; font-weight: 600; text-decoration: none; }
.publication-groups a:hover, .publication-groups a:focus-visible, .publication-groups a[aria-current="page"] { border-color: var(--graphite); }
.publication-groups a[aria-current="page"] { color: var(--field); background: var(--graphite); }
.publication-groups a[aria-current="page"] span { color: var(--cream); }
.publication-groups span { color: #555650; font-size: 13px; font-weight: 400; }
.publication-tools { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-top: 20px; }
.publication-tools form { display: grid; gap: 6px; width: min(100%, 520px); }
.publication-tools label { color: #555650; font-size: 13px; font-weight: 600; }
.publication-tools form > div { display: flex; }
.publication-tools input { min-width: 0; width: 100%; min-height: 46px; border: 1px solid var(--line); border-right: 0; padding: 0 14px; color: var(--graphite); background: var(--field); font-size: 15px; }
.publication-tools button { min-height: 46px; border: 1px solid var(--graphite); padding: 0 18px; color: var(--field); background: var(--graphite); font-size: 14px; font-weight: 600; cursor: pointer; }
.publication-tools > a { min-height: 46px; display: inline-flex; align-items: center; color: var(--graphite); font-size: 14px; font-weight: 600; text-underline-offset: 4px; white-space: nowrap; }
.publication-section { scroll-margin-top: 30px; }
.editorial-utility-link { margin: 18px 0 0; }
.editorial-jump-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 24px; }
.editorial-jump-links a { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid var(--graphite); padding: 10px 14px; color: var(--graphite); font-size: 12px; font-weight: 700; line-height: 1.35; text-decoration: none; }
.editorial-jump-links a:hover, .editorial-jump-links a:focus-visible { background: rgba(196, 160, 90, .18); }
.editorial-jump-links span { flex: 0 0 auto; color: #655c51; }
.article-table h2 { margin: 0 0 22px; font-family: var(--display); font-size: 36px; font-weight: 400; }
.publication-section .studio-section-heading h2, .studio-recent .studio-section-heading h2 { font-family: var(--sans); font-size: 21px; font-weight: 600; letter-spacing: -.02em; }
.article-row.studio-article-row { grid-template-columns: 146px minmax(0, 1fr) minmax(170px, auto); gap: 20px; min-height: 146px; padding: 16px; border: 1px solid var(--line); background: var(--field); }
.studio-article-row + .studio-article-row { margin-top: 10px; }
.studio-article-row .article-row-cover { width: 146px; height: 110px; display: grid; place-items: center; overflow: hidden; color: #5c5c56; background: #e8eae6; font-size: 13px; }
.studio-article-row .article-row-cover img { width: 100%; height: 100%; object-fit: cover; }
.studio-article-row .article-row-body { min-width: 0; }
.article-row.studio-article-row h3 { margin: 6px 0 0; font-family: var(--sans); font-size: clamp(18px, 1.7vw, 22px); font-weight: 600; line-height: 1.25; letter-spacing: -.02em; overflow-wrap: anywhere; }
.studio-article-row .article-category { color: #66645d; font-size: 12px; letter-spacing: .02em; text-transform: none; }
.article-row-excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; margin: 7px 0 0; color: #555650; font-size: 14px; line-height: 1.45; }
.article-row-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-top: 10px; }
.article-row-meta time { color: #555650; font-size: 13px; }
.article-row-side { min-width: 0; display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; gap: 12px; }
.article-row-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px 14px; }
.article-row-actions a { color: var(--graphite); font-size: 13px; font-weight: 600; text-underline-offset: 4px; }
.article-row-actions .draft-delete-link, .editor-heading .draft-delete-link, .draft-delete-link { color: #8a2424; }
.draft-delete-link { display: inline-flex; align-items: center; min-height: 44px; text-underline-offset: 4px; }
.draft-delete-link[hidden] { display: none; }
.draft-delete-confirm { max-width: 760px; }
.draft-delete-confirm h1 { font-family: var(--sans); font-size: clamp(26px, 4vw, 36px); line-height: 1.2; }
.draft-delete-confirm p { line-height: 1.6; overflow-wrap: anywhere; }
.draft-delete-title { font-weight: 600; }
.draft-delete-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.draft-delete-actions > * { min-height: 48px; max-width: 100%; white-space: normal; }
.studio-article-row .article-row-stats { justify-content: flex-end; font-size: 13px; }
.studio-event-list { margin-top: 30px; }
.studio-event-list h2 { margin: 0 0 14px; font-family: var(--sans); font-size: 21px; font-weight: 600; }
.studio-event-row { display: grid; grid-template-columns: 120px minmax(0, 1fr) minmax(170px, auto); gap: 20px; align-items: center; padding: 16px; border: 1px solid var(--line); background: var(--field); }
.studio-event-row + .studio-event-row { margin-top: 10px; }
.studio-event-cover { width: 120px; height: 84px; display: grid; place-items: center; overflow: hidden; color: #62645f; background: #e8ebe7; font-size: 11px; text-align: center; }
.studio-event-cover img { width: 100%; height: 100%; object-fit: cover; }
.studio-event-body { min-width: 0; }
.studio-event-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 7px 12px; color: #5b5c57; font-size: 12px; }
.studio-event-body h3 { margin: 8px 0 0; font-family: var(--sans); font-size: clamp(18px, 1.7vw, 22px); line-height: 1.25; }
.studio-event-body h3 a { color: var(--graphite); text-decoration: none; }
.studio-event-body h3 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.studio-event-body p { margin: 7px 0; color: #555650; font-size: 14px; line-height: 1.45; }
.studio-event-place { color: #555650; font-size: 13px; }
.studio-event-side { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; color: #555650; font-size: 13px; }
.studio-event-side a { min-height: 44px; display: inline-flex; align-items: center; color: var(--graphite); font-weight: 700; text-underline-offset: 4px; }
.studio-event-side .button-secondary { padding-inline: 14px; font-size: 11px; text-decoration: none; }
.article-row { display: grid; grid-template-columns: minmax(0, 1fr) 150px 100px 24px; align-items: center; gap: 24px; min-height: 112px; padding: 18px 0; border-top: 1px solid var(--line); text-decoration: none; }
.article-row:last-child { border-bottom: 1px solid var(--line); }
.article-row:hover h3 { color: #8e6b2a; }
.article-row h3 a { color: inherit; text-decoration: none; }
.article-row-open { color: var(--graphite); font-size: 22px; text-decoration: none; }
.article-category { color: #8b7d6d; font-size: 11px; letter-spacing: .09em; text-transform: uppercase; }
.article-row h3 { margin: 7px 0 0; font-family: var(--display); font-size: clamp(25px, 2.2vw, 34px); font-weight: 400; line-height: 1; }
.article-row-stats { display: flex; flex-wrap: wrap; gap: 4px 10px; margin: 0; color: #6d6459; font-size: 12px; }
.article-row-stats .reaction-signal svg { width: 15px; height: 15px; }
.status { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.status::before { content: ""; width: 7px; height: 7px; display: inline-block; margin-right: 8px; border-radius: 50%; background: var(--stone); }
.status-review::before { background: var(--gold); }
.status-published::before { background: var(--sage); }
.status-changes::before { background: #9b5c43; }
.status-hidden::before { background: #a9433a; }
.editor-note { padding: 16px 20px; border-left: 3px solid var(--gold); color: #5d554c; background: rgba(196, 160, 90, .13); }
.editor-note p { margin: 7px 0 0; white-space: pre-line; }
.editor-note--form { margin-bottom: 26px; }
.studio-hidden-article { padding: 24px 0 30px; border-top: 1px solid var(--line); }
.studio-hidden-article:last-child { border-bottom: 1px solid var(--line); }
.studio-hidden-article h3 { margin: 8px 0 18px; font-family: var(--display); font-size: clamp(26px, 2.4vw, 36px); font-weight: 400; }
.studio-hidden-article > p { margin: 18px 0 0; }
.studio-appeal-form { display: grid; gap: 10px; max-width: 680px; margin-top: 22px; }
.studio-appeal-form label, .studio-appeal-status strong { font-size: 13px; font-weight: 700; }
.studio-appeal-form textarea { width: 100%; min-height: 110px; padding: 12px; border: 1px solid var(--line); color: var(--graphite); background: var(--field); resize: vertical; }
.studio-appeal-form button { justify-self: start; }
.studio-appeal-status { max-width: 680px; margin-top: 22px; padding: 16px 20px; border: 1px solid var(--line); }
.studio-appeal-status p { margin: 8px 0 0; white-space: pre-line; }

.editorial-shell { min-height: 0; max-width: 1600px; margin: 0 auto; padding-top: clamp(34px, 4vw, 54px); padding-bottom: 72px; }
.editorial-shell .studio-heading h1 { font-size: clamp(38px, 3.2vw, 48px); }
.editorial-shell .studio-heading > div > p:last-child { max-width: 660px; margin-top: 10px; font-size: 14px; line-height: 1.5; }
.editorial-shell .studio-navigation { margin-top: 26px; }
.editorial-section { margin-top: 36px; scroll-margin-top: 24px; }
.editorial-section > header { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 0; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.editorial-section > header .eyebrow { margin-bottom: 5px; }
.editorial-section h2 { margin: 0; font-family: var(--sans); font-size: 18px; font-weight: 600; letter-spacing: -.01em; }
.editorial-count { min-width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: #665d53; font-size: 12px; font-weight: 700; }
.editorial-card { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr); gap: clamp(24px, 4vw, 54px); padding: 24px 0; border-bottom: 1px solid var(--line); }
.editorial-card h3 { margin: 5px 0 0; font-family: var(--display); font-size: clamp(25px, 2.2vw, 32px); font-weight: 400; line-height: 1.06; }
.editorial-card details { margin-top: 18px; }
.editorial-card summary { cursor: pointer; font-size: 13px; font-weight: 700; }
.editorial-article-body { max-height: 420px; margin-top: 20px; overflow: auto; padding: 20px; background: var(--field); }
.editorial-card form { display: grid; align-content: start; gap: 16px; }
.editorial-card form label { display: grid; gap: 8px; font-size: 13px; }
.editorial-card textarea { min-height: 96px; resize: vertical; border: 1px solid var(--line); padding: 12px; background: var(--field); }
.editorial-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.editorial-shell .button-primary, .editorial-shell .button-secondary { min-height: 38px; padding-inline: 13px; font-size: 10px; }
.editorial-shell .appeal-decision-form button, .editorial-shell .visibility-action-form button { min-height: 44px; font-size: 11px; }
.moderation-comment { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line); }
.moderation-comment form { display: flex; gap: 8px; }
.moderation-comment .button-primary, .moderation-comment .button-secondary { min-height: 38px; }
.report-reason { color: #6d4a3d; }
.users-list { border-top: 1px solid var(--line); }
.user-row { min-height: 94px; display: grid; grid-template-columns: 48px minmax(180px, 1.4fr) repeat(4, minmax(120px, .7fr)); gap: 18px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line); }
.user-avatar { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; color: var(--cream); background: var(--sage); font-family: var(--display); font-size: 22px; }
.user-row p { margin: 3px 0 0; color: #675f55; font-size: 13px; overflow-wrap: anywhere; }
.user-row > p, .user-row > time { margin: 0; color: var(--graphite); font-size: 13px; }
.user-row span { display: block; margin-bottom: 4px; color: #655c50; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.users-pagination { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-top: 28px; font-size: 12px; text-transform: uppercase; }
.users-pagination a { text-decoration: none; }
.users-pagination span { color: #655c50; }
.editorial-shell .empty-state { margin: 0; padding: 18px 0; border: 0; border-bottom: 1px solid var(--line); color: #756b5f; font-size: 14px; }
.empty-state p { margin: 0 0 14px; font-family: var(--display); font-size: 28px; }

.editor-shell { min-height: 760px; padding: 44px var(--page-pad) 0; background: var(--paper); }
.editor-heading { display: flex; justify-content: space-between; gap: 30px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.editor-heading a { color: #6b6257; font-size: 13px; text-decoration: none; }
.editor-heading .eyebrow { margin: 16px 0 0; }
.save-state { align-self: end; color: var(--sage); font-size: 12px; }
.editor-errors { margin-top: 20px; }
.editor-grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: clamp(40px, 6vw, 90px); max-width: 1500px; margin: 0 auto; padding: 46px 0 100px; }
.editor-main, .editor-sidebar { min-width: 0; }
.title-field { display: grid; gap: 12px; }
.title-field > span { color: #655c50; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.title-field textarea { width: 100%; resize: none; overflow: hidden; border: 0; outline: 0; color: var(--graphite); background: transparent; font-family: var(--display); font-size: clamp(40px, 4.2vw, 64px); line-height: .98; letter-spacing: -.05em; }
.title-field textarea::placeholder { color: #6d6961; }
.editor-toolbar { position: sticky; top: 0; z-index: 20; display: flex; flex-wrap: wrap; gap: 1px; margin-top: 38px; padding: 8px; border: 1px solid var(--line); background: rgba(244,245,243,.96); }
.editor-toolbar button { min-height: 38px; border: 0; padding: 0 12px; color: #514a42; background: transparent; cursor: pointer; }
.editor-toolbar button:hover, .editor-toolbar button:focus-visible { color: var(--cream); background: var(--graphite); }
.rich-editor { min-height: 520px; padding: 42px 4px; outline: 0; font-family: var(--display); font-size: 21px; line-height: 1.65; }
.rich-editor:empty::before { content: attr(data-placeholder); color: #6d6961; pointer-events: none; }
.rich-editor p { margin: 0 0 1.25em; }
.rich-editor h2 { margin: 2em 0 .65em; font-size: 1.9em; font-weight: 400; line-height: 1.08; }
.rich-editor h3 { margin: 1.7em 0 .6em; font-size: 1.35em; font-weight: 400; }
.rich-editor blockquote { margin: 1.8em 0; padding-left: 28px; border-left: 3px solid var(--gold); color: var(--sage); font-size: 1.3em; font-style: italic; }
.editor-sidebar { display: flex; flex-direction: column; gap: 28px; padding-top: 4px; }
.editor-sidebar select, .editor-sidebar input, .editor-sidebar textarea { width: 100%; border: 1px solid var(--line); border-radius: 0; padding: 13px; color: var(--graphite); background: var(--field); }
.event-editor .editor-sidebar label > span { color: #665c50; }
.event-editor .field-help { color: #655b50; }
.editorial-shell .event-moderation-actions .button-primary, .editorial-shell .event-moderation-actions .button-secondary { min-height: 44px; }
.editor-sidebar textarea { resize: vertical; line-height: 1.5; }
.editor-guide { margin-top: 12px; padding: 24px; color: var(--cream); background: var(--graphite); }
.editor-guide strong { font-family: var(--display); font-size: 23px; font-weight: 400; }
.editor-guide p { margin: 14px 0 0; color: #cfc4b5; font-size: 14px; }
.editor-actions { position: sticky; z-index: 30; bottom: 0; display: flex; justify-content: flex-end; gap: 14px; margin: 0 calc(var(--page-pad) * -1); padding: 14px var(--page-pad); border-top: 1px solid var(--line); background: rgba(244,245,243,.97); }
.editor-submit-note { max-width: 340px; margin: 0 auto 0 0; align-self: center; color: #8a443c; font-size: 12px; line-height: 1.45; }
.draft-recovery { max-width: 900px; margin: 22px 0 0; border-left: 3px solid var(--gold); padding: 18px 22px; background: rgba(196,160,90,.13); }
.draft-recovery[hidden], .draft-recovery-item textarea[hidden] { display: none; }
.draft-recovery h2 { margin: 0; font-family: var(--display); font-size: 27px; font-weight: 400; }
.draft-recovery > p, .draft-recovery-item p { margin: 8px 0 12px; color: #5d554c; font-size: 13px; line-height: 1.5; }
.draft-recovery-item { padding: 12px 0; border-top: 1px solid var(--line); }
.draft-recovery-item button { min-height: 44px; margin: 0 12px 8px 0; border: 1px solid var(--graphite); padding: 0 12px; color: var(--graphite); background: transparent; font-size: 11px; font-weight: 700; cursor: pointer; }
.draft-recovery-item button:hover { color: var(--cream); background: var(--graphite); }
.draft-recovery-item textarea { width: 100%; min-height: 180px; display: block; padding: 12px; border: 1px solid var(--line); color: var(--graphite); background: var(--field); font: 13px/1.5 var(--sans); }

.media-field { display: grid; gap: 12px; }
.field-label, .profile-form label > span { color: #746a5e; font-size: 13px; }
.editor-cover-preview, .upload-preview { width: 100%; max-height: 230px; border: 1px solid var(--line); object-fit: cover; }
.upload-preview[hidden] { display: none; }
.file-control { position: relative; min-height: 46px; align-items: center; justify-content: center; border: 1px solid var(--graphite); padding: 0 15px; color: var(--graphite); background: transparent; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.editor-sidebar label.file-control, .profile-form label.file-control { display: inline-flex; }
.profile-form .file-control > span { color: inherit; }
.file-control:hover { background: rgba(196, 160, 90, .2); }
.file-control:focus-within { outline: 2px solid var(--gold); outline-offset: 2px; }
.file-control input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.editor-sidebar label.remove-media, .profile-form label.remove-media { display: flex; align-items: center; gap: 9px; color: #756b5f; font-size: 13px; }
.remove-media input { width: 18px; height: 18px; }
.field-help { margin: 0; color: #817568; font-size: 12px; line-height: 1.5; }

/* Event editor: five editorial blocks following the public page. */
.event-editor-layout { width: 100%; max-width: 1240px; display: grid; grid-template-columns: minmax(0, 780px) minmax(280px, 320px); align-items: start; gap: clamp(36px, 6vw, 92px); margin: 0 auto; padding: 46px 0 110px; }
.event-editor-flow { min-width: 0; display: grid; gap: 24px; }
.event-form-section { min-width: 0; display: grid; gap: 24px; border: 1px solid var(--line); padding: clamp(24px, 4vw, 38px); background: #fff; }
.event-form-section > header { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 14px; align-items: start; border-bottom: 1px solid var(--line); padding-bottom: 20px; }
.event-form-step { width: 30px; height: 30px; display: grid; place-items: center; margin: 0; border-radius: 50%; color: var(--cream); background: var(--graphite); font-size: 13px; font-weight: 700; }
.event-form-section > header h2 { margin: 0; font-family: var(--display); font-size: clamp(22px, 2.2vw, 28px); font-weight: 400; line-height: 1.1; }
.event-form-section > header p:not(.event-form-step) { max-width: 58ch; margin: 7px 0 0; color: #625e57; font-size: 14px; line-height: 1.5; }
.event-form-section > label,
.event-field-grid > label,
.event-cover-controls > label { min-width: 0; display: grid; gap: 8px; color: var(--graphite); font-size: 14px; font-weight: 600; }
.event-form-section label > span { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 12px; }
.event-form-section label > span small { color: #746f67; font-size: 11px; font-weight: 500; }
.event-form-section :is(input:not([type="checkbox"]):not([type="file"]), select, textarea) { width: 100%; min-height: 48px; border: 1px solid var(--line); border-radius: 0; padding: 13px 14px; color: var(--graphite); background: var(--field); font-size: 16px; line-height: 1.5; }
.event-form-section textarea { resize: vertical; }
.event-summary-field textarea { min-height: 130px; }
.event-form-section .title-field textarea { min-height: 150px; border: 0; padding: 10px 0; background: transparent; font-family: var(--display); font-size: clamp(42px, 5vw, 62px); line-height: 1; }
.event-form-section .editor-toolbar { position: sticky; margin-top: 0; }
.event-form-section .event-rich-editor { min-height: 390px; padding: 24px 4px; }
.event-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.event-cover-fields { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(260px, .9fr); gap: 24px; align-items: start; }
.event-cover-editor-preview { min-width: 0; aspect-ratio: 3 / 2; display: grid; place-items: center; overflow: hidden; color: #615d56; background: #e8ebe7; font-size: 14px; text-align: center; }
.event-cover-editor-preview :is(.editor-cover-preview, .upload-preview) { grid-area: 1 / 1; width: 100%; height: 100%; max-height: none; border: 0; object-fit: contain; }
.event-cover-placeholder { padding: 20px; }
.event-cover-controls { min-width: 0; display: grid; gap: 14px; }
.event-form-section .file-control { width: 100%; min-height: 48px; }
.event-form-section .remove-media { display: flex; align-items: flex-start; gap: 10px; color: #5d5952; font-size: 14px; font-weight: 500; line-height: 1.45; }
.event-form-section .remove-media input { flex: 0 0 auto; width: 20px; height: 20px; margin-top: 1px; }
.event-form-section .field-help { color: #69645d; font-size: 14px; line-height: 1.5; }
.event-form-section .field-error { color: #943b31; font-size: 13px; line-height: 1.45; }
.character-count { justify-self: end; color: #746f67; font-size: 12px; font-weight: 500; }
.event-editor-status { min-width: 0; display: grid; gap: 16px; position: sticky; top: 18px; }
.event-status-card,
.event-checklist,
.event-card-preview { border: 1px solid var(--line); padding: 22px; background: #fff; }
.event-status-card .eyebrow { margin: 0 0 7px; }
.event-status-card h2,
.event-checklist h2 { margin: 0; font-family: var(--display); font-size: 24px; font-weight: 400; }
.event-status-card > p:last-child { margin: 10px 0 0; color: #625e57; font-size: 14px; line-height: 1.5; }
.event-checklist ul { margin: 15px 0 0; padding-left: 20px; color: #56524c; font-size: 13px; line-height: 1.55; }
.event-checklist li + li { margin-top: 6px; }
.event-card-preview { display: grid; gap: 8px; }
.event-card-preview-media { aspect-ratio: 3 / 2; display: grid; place-items: center; overflow: hidden; color: #625e57; background: #e8ebe7; font-size: 13px; }
.event-card-preview-media img { width: 100%; height: 100%; object-fit: contain; }
.event-card-preview p { margin: 4px 0 0; color: #765a20; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.event-card-preview strong { font-family: var(--display); font-size: 21px; font-weight: 400; line-height: 1.15; overflow-wrap: anywhere; }
.event-card-preview > span { color: #625e57; font-size: 13px; line-height: 1.45; }
.event-editor.is-readonly .event-form-section :is(input, select, textarea):disabled { opacity: 1; color: var(--graphite); background: #f4f5f3; }
.event-editor.is-readonly .event-rich-editor { min-height: 0; padding-bottom: 0; }

@media (max-width: 980px) {
    .event-editor-layout { grid-template-columns: 1fr; }
    .event-editor-status { position: static; grid-template-columns: repeat(3, minmax(0, 1fr)); order: -1; }
}

@media (max-width: 700px) {
    .event-editor-layout { gap: 22px; padding: 30px 0 56px; }
    .event-editor-status { grid-template-columns: 1fr; }
    .event-form-section { gap: 20px; padding: 22px 20px; }
    .event-form-section > header { grid-template-columns: 30px minmax(0, 1fr); gap: 11px; }
    .event-form-section > header h2 { font-size: 22px; }
    .event-form-section > header p:not(.event-form-step),
    .event-form-section .field-help { font-size: 13px; }
    .event-form-section .title-field textarea { min-height: 120px; font-size: clamp(38px, 11vw, 48px); }
    .event-form-section .event-rich-editor { min-height: 320px; font-size: 18px; }
    .event-field-grid,
    .event-cover-fields { grid-template-columns: 1fr; }
    .event-editor .editor-actions { gap: 10px; }
    .event-editor .editor-actions button { min-height: 50px; }
}

/* Shared public reading components for articles and author events. */
.featured-story { color: var(--graphite); background: #f4f0e8; border-top: 2px solid var(--gold); border-bottom: 1px solid var(--line); }
.featured-story .story-meta { color: #836426; }
.featured-story .story-signals { color: #655f57 !important; }
.featured-copy > p:not(.story-meta, .story-signals) { max-width: 720px; color: #59544b; font-size: 17px; }
.featured-story .circle-link { color: var(--graphite); border-color: #b89b65; }
.featured-story .featured-media { aspect-ratio: 4 / 3; align-self: center; background: #e7e1d5; }
.featured-story .featured-media img { min-height: 0; height: 100%; aspect-ratio: 4 / 3; }
.featured-story .featured-copy h2 { padding-top: 19px; border-top: 1px solid var(--gold); }
.featured-copy > .author-identity { margin-top: 20px; font-size: 14px; font-weight: 700; text-decoration: none; }
.featured-copy > .author-identity:hover, .author-identity:hover { text-decoration: underline; text-underline-offset: 4px; }
.featured-story .featured-copy .story-signals { margin-top: 17px !important; }
.brand-cover { background: #282b29; }
.brand-cover img { object-fit: contain !important; }
.brand-cover picture { display: block; width: 100%; height: 100%; }
.article-cover--brand img { object-fit: contain; background: #282b29; }
.story-signals > span { display: inline-flex; align-items: center; gap: 5px; }
.story-signals svg, .engagement-totals svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.engagement-totals { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; font-size: 13px; font-variant-numeric: tabular-nums; }
.engagement-totals > span, .engagement-totals > a { min-height: 44px; display: inline-flex; align-items: center; gap: 7px; color: var(--graphite); }
.engagement-totals > a { text-decoration: none; }
.engagement-totals > a:hover { text-decoration: underline; text-underline-offset: 4px; }
.public-engagement { flex-wrap: wrap; }
.event-byline { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 24px; color: #5d5a54; font-size: 13px; }
.event-byline .author-identity { text-decoration: none; font-weight: 700; }
.event-page .public-engagement { margin-top: 42px; }
.event-page .article-author-card { padding-inline: 0; }
.event-page .comments-section { padding-inline: 0; }
.event-author-photo > .author-identity { display: flex; width: 120px; flex-direction: column; align-items: flex-start; text-decoration: none; font-weight: 700; }
.event-author-photo .author-identity img, .event-author-photo .author-initial { width: 120px; height: 120px; flex-basis: 120px; border-radius: 50%; object-fit: cover; }
.event-author-photo .author-initial { font-size: 50px; }
.event-author-photo .author-identity > span:last-child { margin-top: 9px; font-size: 15px; line-height: 1.2; }
.related-grid .author-identity { margin-top: auto; padding-top: 16px; font-size: 13px; text-decoration: none; }
.related-grid .story-signals { margin-top: 12px !important; }
.back-to-top { position: fixed; z-index: 40; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid #a58b5a; border-radius: 50%; color: var(--graphite); background: var(--paper); box-shadow: 0 8px 28px rgba(36,35,33,.16); cursor: pointer; }
.back-to-top[hidden] { display: none; }
.back-to-top svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.back-to-top:hover { background: var(--gold); }
.back-to-top:focus-visible { outline: 2px solid var(--graphite); outline-offset: 3px; }
@media (max-width: 700px) {
    .featured-story { padding-top: 38px; }
    .featured-story .featured-media { aspect-ratio: 4 / 3; }
    .public-engagement { gap: 8px 12px; }
    .engagement-totals { width: 100%; justify-content: space-between; }
    .event-author-photo > .author-identity { width: 76px; }
    .event-author-photo .author-identity img, .event-author-photo .author-initial { width: 76px; height: 76px; flex-basis: 76px; font-size: 32px; }
    .comments-heading { grid-template-columns: 1fr; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .back-to-top, .public-engagement .reaction-button, .featured-media img { transition: none; }
}

.profile-shell { min-height: 760px; }
.profile-errors { margin-top: 34px; }
.profile-form { display: grid; grid-template-columns: minmax(260px, 360px) minmax(0, 650px); gap: clamp(48px, 8vw, 120px); padding: clamp(46px, 6vw, 86px) 0; }
.profile-photo-column, .profile-copy-column { display: flex; flex-direction: column; gap: 18px; }
.profile-avatar-preview { position: relative; isolation: isolate; width: min(100%, 320px); aspect-ratio: 1; display: grid; place-items: center; overflow: hidden; border-radius: 50%; color: var(--cream); background: var(--sage); font-family: var(--display); font-size: 100px; }
.profile-avatar-preview > img { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.profile-avatar-preview > img[hidden] { display: none; }
.profile-avatar-preview > span { position: relative; z-index: 0; }
.profile-copy-column label { display: grid; gap: 8px; }
.profile-copy-column input, .profile-copy-column textarea { width: 100%; border: 1px solid var(--line); border-radius: 0; padding: 14px; color: var(--graphite); background: var(--field); }
.profile-copy-column select { width: 100%; border: 1px solid var(--line); border-radius: 0; padding: 14px; color: var(--graphite); background: var(--field); }
.profile-copy-column textarea { resize: vertical; line-height: 1.55; }
.profile-links-fieldset { min-width: 0; margin: 8px 0 0; padding: 22px 0 0; border: 0; border-top: 1px solid var(--line); }
.profile-links-fieldset legend { padding: 0; font-family: var(--display); font-size: 28px; }
.profile-links-fieldset > .field-help { margin: 8px 0 16px; }
.profile-links-list { display: grid; gap: 10px; }
.profile-link-row { display: grid; grid-template-columns: minmax(130px, .38fr) minmax(0, 1fr) 42px; gap: 10px; }
.profile-link-remove { width: 42px; min-height: 46px; border: 1px solid var(--line); color: #746a5e; background: transparent; font-size: 24px; cursor: pointer; }
.profile-link-remove:hover, .profile-link-remove:focus-visible { color: var(--cream); background: var(--graphite); }
.profile-link-add { justify-self: start; margin-top: 14px; border: 0; padding: 8px 0; color: #8c6b2c; background: transparent; font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; cursor: pointer; }
.profile-email { margin: 0; color: #756b5f; font-size: 14px; overflow-wrap: anywhere; }
.profile-copy-column .button-primary { align-self: flex-start; margin-top: 8px; }

@media (max-width: 900px) {
    .site-header { align-items: stretch; flex-direction: column; gap: 10px; padding-block: 12px 10px; }
    .site-nav { flex-wrap: wrap; justify-content: space-between; gap: 6px 18px; padding-top: 7px; border-top: 1px solid rgba(242, 235, 221, .22); }
    .site-nav a, .site-nav-dropdown summary { min-height: 44px; }
    .site-nav-dropdown { position: static; }
    .site-nav-submenu { top: 100%; right: var(--page-pad); left: var(--page-pad); width: auto; }
    .journal-hero { min-height: 0; grid-template-columns: 1fr; align-items: start; }
    .journal-hero-note { max-width: 620px; }
    .featured-story { grid-template-columns: 70px minmax(0, 1fr) 58px; }
    .featured-story--with-cover { grid-template-columns: 60px minmax(250px, .7fr) minmax(0, 1fr) 58px; }
    .journal-about { grid-template-columns: 1fr; }
    .about-copy { max-width: 760px; }
    .auth-layout { grid-template-columns: 1fr; }
    .article-body blockquote { margin-left: 0; margin-right: 0; padding-left: 24px; }
    .auth-intro { min-height: 0; }
    .auth-form { padding: 70px var(--page-pad); }
    .editor-grid { grid-template-columns: 1fr; }
    .editor-sidebar { border-top: 1px solid var(--line); padding-top: 34px; }
    .profile-form { grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); }
    .related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .editorial-card { grid-template-columns: 1fr; }
}

@media (min-width: 701px) and (max-width: 900px) {
    .site-footer-primary { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
    .site-footer-contacts { grid-column: 1 / -1; }
    .site-footer-meta { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
    .site-nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
    .site-nav a, .site-nav-dropdown summary { min-height: 44px; justify-content: center; font-size: 12px; letter-spacing: .025em; white-space: nowrap; }
    .site-nav .nav-accent { grid-column: 1 / -1; justify-self: stretch; justify-content: center; border-top: 1px solid rgba(242, 235, 221, .22); }
    .site-nav .nav-login { grid-column: 1 / 3; justify-self: stretch; border-top: 1px solid rgba(242, 235, 221, .22); }
    .site-nav .nav-author { grid-column: 3 / 5; justify-self: stretch; justify-content: center; padding: 0 8px; }
    .journal-hero { padding-top: 64px; padding-bottom: 72px; gap: 34px; }
    .journal-hero h1 { font-size: clamp(39px, 10.5vw, 46px); overflow-wrap: anywhere; }
    .journal-hero-note p { font-size: 17px; }
    .featured-story { min-height: 0; grid-template-columns: 1fr 52px; gap: 28px 18px; padding-top: 58px; padding-bottom: 64px; }
    .featured-story--with-cover { grid-template-columns: 1fr 52px; }
    .featured-index { grid-column: 1 / -1; }
    .featured-media { grid-column: 1 / -1; min-height: 0; }
    .featured-media img { min-height: 0; aspect-ratio: 4 / 3; }
    .featured-copy h2 { font-size: clamp(36px, 9.8vw, 42px); }
    .section-heading { display: block; }
    .section-heading .eyebrow { margin-bottom: 12px; }
    .story-grid { grid-template-columns: 1fr; }
    .story-card { min-height: 330px; }
    .story-cover { height: auto; aspect-ratio: 4 / 3; }
    .story-author { flex-wrap: wrap; }
    .journal-about h2 { font-size: clamp(38px, 10vw, 44px); }
    .about-copy p { font-size: 20px; }
    .author-invite h2 { font-size: clamp(40px, 10.5vw, 46px); }
    .author-invite .button-primary { width: 100%; }
    .category-filter {
        -webkit-mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 38px), transparent 100%);
        mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 38px), transparent 100%);
    }
    .site-footer { gap: 24px; padding-block: 28px; }
    .site-footer-primary, .site-footer-meta { grid-template-columns: 1fr; align-items: start; }
    .site-footer-primary { gap: 22px; }
    .site-footer-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
    .site-footer-requisites,
    .site-footer-contacts,
    .site-footer-legal { flex-direction: column; gap: 2px; }
    .site-footer-requisites span::after,
    .site-footer-contacts a::after,
    .site-footer-legal span::after { display: none; }
    .article-header h1 { font-size: clamp(39px, 10.5vw, 46px); overflow-wrap: anywhere; }
    .article-lead, .article-byline { margin-left: 0; }
    .article-byline { align-items: center; flex-wrap: wrap; }
    .article-body { font-size: 19px; }
    .article-body blockquote { margin-left: 0; margin-right: 0; padding-left: 20px; }
    .article-end { display: grid; }
    .article-author-card { grid-template-columns: 76px minmax(0, 1fr); gap: 20px; }
    .article-author-card > img, .author-card-initial { width: 76px; height: 76px; }
    .author-card-initial { font-size: 34px; }
    .auth-intro h1 { font-size: clamp(40px, 10.5vw, 46px); }
    .studio-heading { display: grid; }
    .studio-heading-actions { justify-content: stretch; }
    .notification-panel { right: auto; left: 0; }
    .studio-heading .button-primary { flex: 1 1 auto; }
    .studio-navigation { grid-template-columns: 1fr; gap: 0; }
    .studio-navigation-primary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
    .studio-navigation-primary a { justify-content: center; padding-inline: 3px; font-size: 13px; letter-spacing: 0; }
    .studio-navigation-secondary { justify-content: flex-start; gap: 0 18px; border-top: 1px solid var(--line); }
    .studio-navigation-secondary a, .studio-navigation-secondary button { min-height: 44px; }
    .studio-home-next { align-items: stretch; flex-direction: column; gap: 18px; }
    .studio-home-next .button-secondary { align-self: flex-start; }
    .studio-section-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
    .publication-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .publication-groups a { justify-content: space-between; }
    .publication-groups a:last-child:nth-child(odd) { grid-column: 1 / -1; }
    .publication-tools { align-items: stretch; flex-direction: column; gap: 8px; }
    .publication-tools form { width: 100%; }
    .publication-tools > a { align-self: flex-start; }
    .studio-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .studio-summary--compact div:last-child { grid-column: 1 / -1; }
    .article-row { grid-template-columns: 1fr 24px; gap: 12px; padding: 22px 0; }
    .article-row .status, .article-row-stats { grid-column: 1; }
    .article-row > span:last-child { grid-column: 2; grid-row: 1 / 4; }
    .article-row.studio-article-row { grid-template-columns: 88px minmax(0, 1fr); align-items: start; gap: 12px; min-height: 0; padding: 12px; }
    .studio-article-row .article-row-cover { width: 88px; height: 88px; }
    .studio-article-row .article-row-body { grid-column: 2; }
    .article-row.studio-article-row h3 { font-size: 17px; }
    .studio-article-row .article-row-excerpt { font-size: 13px; }
    .studio-article-row .article-row-meta { gap: 4px 10px; }
    .studio-article-row .status { grid-column: auto; }
    .studio-article-row .article-row-side { grid-column: 1 / -1; align-items: flex-start; border-top: 1px solid var(--line); padding-top: 10px; }
    .studio-article-row .article-row-stats, .studio-article-row .article-row-actions { justify-content: flex-start; }
    .studio-shell:not(.studio-dashboard) .studio-heading-actions { display: flex; }
    .studio-shell:not(.studio-dashboard) .studio-heading-actions > a { width: 100%; justify-content: center; }
    .studio-event-row { grid-template-columns: 88px minmax(0, 1fr); gap: 12px; padding: 14px; }
    .studio-event-cover { width: 88px; height: 88px; }
    .studio-event-body h3 { font-size: 18px; }
    .studio-event-body p { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
    .studio-event-side { grid-column: 1 / -1; align-items: flex-start; border-top: 1px solid var(--line); padding-top: 10px; }
    .studio-event-side .button-secondary { width: 100%; justify-content: center; }
    .editor-shell { padding-top: 28px; }
    .editor-heading { display: grid; }
    .save-state { align-self: start; }
    .title-field textarea { font-size: 44px; }
    .title-field textarea { overflow-wrap: anywhere; }
    .editor-toolbar { width: calc(100% + (var(--page-pad) * 2)); max-width: 100vw; margin-left: calc(var(--page-pad) * -1); margin-right: calc(var(--page-pad) * -1); padding-inline: var(--page-pad); flex-wrap: wrap; }
    .editor-toolbar button { flex: 0 0 auto; padding-inline: 10px; }
    .rich-editor { min-height: 440px; font-size: 19px; }
    .editor-actions { position: static; display: grid; grid-template-columns: 1fr; }
    .editor-actions button { width: 100%; }
    .editor-submit-note { max-width: none; margin: 0; }
    .profile-form { grid-template-columns: 1fr; gap: 42px; }
    .profile-link-row { grid-template-columns: minmax(112px, .42fr) minmax(0, 1fr) 42px; }
    .profile-avatar-preview { width: min(78vw, 300px); }
    .profile-copy-column .button-primary { width: 100%; }
    .reader-strip, .topic-follow { align-items: flex-start; padding-block: 14px; }
    .feed-controls { align-items: stretch; flex-direction: column; padding-block: 16px; }
    .feed-modes { min-height: 44px; gap: 20px; }
    .journal-search { width: 100%; min-width: 0; }
    .story-signals { gap: 4px 12px; }
    .article-actions { align-items: stretch; flex-direction: column; }
    .share-menu { align-self: flex-start; margin-left: 0; }
    .share-panel { right: auto; left: 0; bottom: calc(100% + 10px); width: min(290px, calc(100vw - (var(--page-pad) * 2))); }
    .comments-heading { grid-template-columns: 1fr; gap: 18px; }
    .comment-login { align-items: stretch; flex-direction: column; }
    .comment-login p { margin: 0; }
    .related-grid { grid-template-columns: 1fr; }
    .author-page-hero { min-height: 0; grid-template-columns: 1fr; }
    .author-page-photo { min-height: 0; aspect-ratio: 4 / 3; }
    .author-page-copy { padding-block: 54px; }
    .author-page-copy h1 { font-size: clamp(44px, 12vw, 58px); }
    .editorial-section > header { display: flex; }
    .moderation-comment { grid-template-columns: 1fr; }
    .moderation-comment form { flex-wrap: wrap; }
    .user-row { grid-template-columns: 42px minmax(0, 1fr); gap: 12px 16px; padding: 20px 0; }
    .user-row > p, .user-row > time { grid-column: 2; }
    .studio-alert { align-items: stretch; flex-direction: column; gap: 14px; }
    .studio-alert form, .studio-alert button { width: 100%; }
    .studio-heading-actions { display: grid; grid-template-columns: 54px minmax(0, 1fr); align-items: start; }
    .studio-create-actions { display: grid; grid-template-columns: 1fr; }
    .studio-create-actions a, .studio-hidden-alert .button-secondary { width: 100%; min-width: 0; }
    .editorial-jump-links { grid-template-columns: 1fr; }
}

@media (max-width: 460px) {
    .brand { gap: 8px; }
    .brand img { width: 44px; height: 44px; }
    .brand-copy strong { font-size: 20px; }
    .brand-copy span { font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    [data-motion],
    .has-journal-motion [data-motion].motion-pending,
    .has-journal-motion [data-motion].motion-visible,
    .has-journal-motion [data-motion].motion-enter {
        opacity: 1;
        transform: none;
        animation: none;
        transition: none;
    }
    body > .site-header,
    body > main,
    body > .site-footer { animation: none; }
}

@media (prefers-reduced-motion: reduce) {
    .notification-phone.has-unread summary svg { animation: none; }
}

/* Safe rich video blocks shared by articles, events and their editors. */
.rich-video { width: 100%; margin: 2.2em 0; }
.rich-video-frame { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: #1f201f; }
.rich-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.rich-video figcaption { margin-top: 9px; color: #605d57; font-family: var(--sans); font-size: 13px; line-height: 1.45; }
.rich-video figcaption a { text-underline-offset: 4px; }
.rich-editor .rich-video { display: grid; gap: 12px; margin: 1.8em 0; padding: 20px; border: 1px solid var(--line); background: #e8ebe7; font-family: var(--sans); font-size: 14px; overflow-wrap: anywhere; }
.rich-editor .rich-video a { color: #765a20; }
.rich-editor .rich-video [data-remove-video] { width: fit-content; min-height: 44px; border: 1px solid var(--graphite); padding: 0 14px; color: var(--graphite); background: transparent; cursor: pointer; }

/* Public author event page: the same centered reading axis as an article. */
.event-page { width: 100%; margin: 0 auto; padding: 0 var(--page-pad) 80px; background: var(--paper); }
.event-breadcrumb,
.event-reading-column { width: 100%; max-width: 780px; margin-inline: auto; }
.event-breadcrumb { display: flex; align-items: center; gap: 10px; padding: 24px 0; color: #595955; font-size: 13px; overflow: hidden; }
.event-breadcrumb a { flex: 0 0 auto; text-underline-offset: 3px; }
.event-breadcrumb span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.event-header { padding: clamp(48px, 7vw, 86px) 0 clamp(34px, 5vw, 54px); border-bottom: 1px solid var(--line); }
.event-header .eyebrow { margin: 0 0 18px; }
.event-header h1 { margin: 0; font-family: var(--display); font-size: clamp(54px, 5vw, 68px); font-weight: 400; letter-spacing: -.045em; line-height: 1.02; overflow-wrap: break-word; }
.event-intro { margin: 28px 0 0; color: #504d48; font-family: var(--display); font-size: clamp(21px, 2vw, 27px); line-height: 1.42; overflow-wrap: anywhere; }
.event-view-count { margin: 18px 0 0; color: #5d5a54; font-size: 14px; line-height: 1.4; }
.event-cover { width: 100%; margin: clamp(34px, 5vw, 54px) 0 0; }
.event-cover img { display: block; width: 100%; height: auto; max-width: 100%; object-fit: contain; }
.event-no-photo { display: grid; place-items: center; width: 100%; min-height: 300px; aspect-ratio: 3 / 2; padding: 24px; color: #55534f; background: #e9ebe7; font-size: 14px; text-align: center; }
.event-facts { margin-top: 32px; border: 1px solid var(--line); padding: 26px; background: #fff; }
.event-facts h2 { margin: 0 0 18px; font-family: var(--display); font-size: 26px; font-weight: 400; }
.event-facts dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; margin: 0; }
.event-facts dl > div { min-width: 0; border-top: 1px solid var(--line); padding: 13px 0 15px; }
.event-facts dt { color: #686660; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.event-facts dd { min-width: 0; margin: 5px 0 0; font-size: 15px; line-height: 1.45; overflow-wrap: anywhere; }
.event-facts dd a { text-underline-offset: 3px; }
.event-registration { margin-top: 20px; border: 1px solid var(--line); padding: 22px 24px; background: #fff; }
.event-register-button { display: flex; width: 100%; min-height: 50px; align-items: center; justify-content: space-between; gap: 12px; text-align: left; }
.event-registration p { margin: 12px 0 0; color: #5d5b56; font-size: 14px; line-height: 1.5; }
.event-registration .event-registration-state { margin-top: 0; font-size: 16px; font-weight: 700; }
.event-main-copy { min-width: 0; padding: clamp(58px, 8vw, 100px) 0; }
.event-main-copy section + section { margin-top: 48px; border-top: 1px solid var(--line); padding-top: 40px; }
.event-main-copy .eyebrow { margin: 0 0 12px; }
.event-main-copy h2,
.event-description h2 { margin: 0 0 20px; font-family: var(--display); font-size: clamp(32px, 3.2vw, 43px); font-weight: 400; line-height: 1.12; }
.event-description h2 { margin-top: 1.9em; }
.event-description h3 { margin: 1.7em 0 .55em; font-family: var(--display); font-size: 1.38em; font-weight: 400; line-height: 1.2; }
.event-main-copy p,
.event-description { margin: 0; font-family: var(--display); font-size: clamp(19px, 1.45vw, 21px); line-height: 1.66; overflow-wrap: anywhere; }
.event-description p { margin: 0 0 1.25em; }
.event-description :is(ul, ol) { margin: 0 0 1.4em; padding-left: 1.35em; }
.event-description li { margin: .45em 0; }
.event-description blockquote { margin: 2em 0; border-left: 3px solid var(--gold); padding: 1em 0 1em 24px; color: var(--sage); font-size: 1.25em; line-height: 1.4; }
.event-description a { color: #765a20; text-underline-offset: 4px; }
.event-page-footer { border-top: 1px solid var(--line); padding-top: 24px; color: #5d5a54; font-size: 14px; line-height: 1.5; }
.event-page-footer p { margin: 0 0 16px; }
.event-page-footer div { display: flex; flex-wrap: wrap; gap: 14px 26px; }
.event-page-footer a { min-height: 44px; display: inline-flex; align-items: center; color: var(--graphite); font-weight: 700; text-underline-offset: 4px; }

@media (max-width: 700px) {
    .event-page { padding-bottom: 56px; }
    .event-breadcrumb { padding: 16px 0; }
    .event-header { padding: 42px 0 34px; }
    .event-header h1 { font-size: clamp(38px, 10.4vw, 45px); line-height: 1.04; }
    .event-intro { margin-top: 20px; font-size: 19px; }
    .event-no-photo { min-height: 0; }
    .event-facts { padding: 20px; }
    .event-facts dl { grid-template-columns: 1fr; }
    .event-facts dd { font-size: 16px; }
    .event-registration { padding: 20px; }
    .event-main-copy { padding: 54px 0; }
    .event-main-copy p,
    .event-description { font-size: 18px; }
    .event-description blockquote { padding-left: 18px; }
}
