/* ==========================================================================
   Aurelia — SamaDesign
   1. Tokens   2. Base   3. Layout   4. Header   5. Buttons & forms
   6. Hero, marquee   7. Featured story   8. Carousel   9. Journal
   10. Covers (tag, author)   11. Article   12. Content (Koenig)
   13. Newsletter   14. Footer   15. Effects & misc
   ========================================================================== */

/* 1. Tokens
   ========================================================================== */

:root {
    --au-bg: #0b0b0d;
    --au-bg-2: #141210;
    --au-ink: #f3eee4;
    --au-muted: rgb(243 238 228 / 0.62);
    --au-line: rgb(243 238 228 / 0.12);
    --au-gold: #d4b67e;
    --au-gold-soft: #e6d3a8;
    --au-brown: #2b2118;
    --au-brown-2: #6b5236;
    --au-on-gold: #141210;
    --au-glass: rgb(43 33 24 / 0.42);
    --au-glass-border: rgb(230 211 168 / 0.22);
    --au-glass-shadow: inset 0 1px 0 rgb(255 255 255 / 0.18), 0 24px 60px rgb(0 0 0 / 0.45);
    --au-accent: var(--ghost-accent-color, #d4b67e);

    --au-font-heading: var(--gh-font-heading, "Cormorant Garamond", Georgia, serif);
    --au-font-body: var(--gh-font-body, "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif);

    --au-gutter: 16px;
    --au-container: 1360px;
    --au-content: 700px;
    --au-wide: 1040px;
    --au-radius: 22px;
    --au-header-h: 92px;
    --au-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
    --au-ease-out: cubic-bezier(0.16, 1, 0.3, 1);

    color-scheme: dark;
}

/* Ivory variant */
:root[data-scheme="light"] {
    --au-bg: #f3eee4;
    --au-bg-2: #ebe3d4;
    --au-ink: #141210;
    --au-muted: rgb(20 18 16 / 0.62);
    --au-line: rgb(20 18 16 / 0.12);
    --au-gold: #9a7b45;
    --au-gold-soft: #b8975c;
    --au-on-gold: #f8f4ec;
    --au-glass: rgb(248 244 236 / 0.62);
    --au-glass-border: rgb(154 123 69 / 0.28);
    --au-glass-shadow: inset 0 1px 0 rgb(255 255 255 / 0.6), 0 24px 60px rgb(43 33 24 / 0.12);

    color-scheme: light;
}

@media (min-width: 640px) {
    :root { --au-gutter: 28px; }
}

/* 2. Base
   ========================================================================== */

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

html {
    -webkit-text-size-adjust: 100%;
    scroll-padding-top: calc(var(--au-header-h) + 24px);
}

body {
    margin: 0;
    overflow-x: hidden;
    background: var(--au-bg);
    color: var(--au-ink);
    font-family: var(--au-font-body);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
    margin: 0;
    font-family: var(--au-font-heading);
    font-weight: 400;
    line-height: 1.05;
    letter-spacing: -0.02em;
}

h1 em, h2 em, h3 em { color: var(--au-gold); font-style: italic; }

p { margin: 0; }
a { color: inherit; text-decoration: none; }
img, video, svg { display: block; max-width: 100%; height: auto; }
button { font: inherit; color: inherit; }

:focus-visible {
    outline: 2px solid var(--au-gold);
    outline-offset: 3px;
    border-radius: 4px;
}

.au-visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.au-skip {
    position: absolute;
    top: -100px;
    left: 16px;
    z-index: 200;
    padding: 10px 16px;
    border-radius: 999px;
    background: var(--au-gold);
    color: var(--au-on-gold);
    font-weight: 600;
}

.au-skip:focus { top: 12px; }
.au-icon { flex-shrink: 0; }
.au-muted { color: var(--au-muted); }

.au-eyebrow {
    color: var(--au-gold);
    font-family: var(--au-font-body);
    font-size: 0.7rem;
    font-weight: 500;
    letter-spacing: 0.28em;
    text-transform: uppercase;
}

/* 3. Layout
   ========================================================================== */

.au-site { display: flex; flex-direction: column; min-height: 100vh; }
.au-main { flex-grow: 1; }

.au-container {
    width: 100%;
    max-width: calc(var(--au-container) + 2 * var(--au-gutter));
    margin-inline: auto;
    padding-inline: var(--au-gutter);
}

.au-narrow, .au-wide, .au-full { width: 100%; margin-inline: auto; padding-inline: var(--au-gutter); }
.au-narrow { max-width: calc(var(--au-content) + 2 * var(--au-gutter)); }
.au-wide { max-width: calc(var(--au-wide) + 200px + 2 * var(--au-gutter)); }
.au-full { padding-inline: 0; }
.au-center { text-align: center; }

.au-section { padding-top: 96px; }

@media (min-width: 1024px) {
    .au-section { padding-top: 130px; }
}

.au-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 40px;
}

.au-head-title {
    margin-top: 12px;
    font-weight: 300;
    font-size: clamp(2.6rem, 5vw, 4.5rem);
    line-height: 0.95;
    letter-spacing: -0.025em;
}

/* Glass surface (Liquid Glass signature) */
.au-glass {
    border: 1px solid var(--au-glass-border);
    background: var(--au-glass);
    box-shadow: var(--au-glass-shadow);
    backdrop-filter: blur(22px) saturate(170%);
    -webkit-backdrop-filter: blur(22px) saturate(170%);
}

/* Edition bar */
.au-edition {
    border-bottom: 1px solid var(--au-line);
    color: var(--au-muted);
    font-size: 0.68rem;
    letter-spacing: 0.24em;
    text-transform: uppercase;
}

.au-edition-inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 6px 16px;
    padding-block: 12px;
}

@media (max-width: 899px) {
    .au-edition-desc { display: none; }
}

/* 4. Header
   ========================================================================== */

.au-header {
    position: sticky;
    top: 14px;
    z-index: 50;
    margin-top: 14px;
    padding-inline: 12px;
}

.au-bar {
    position: relative;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 16px;
    max-width: calc(var(--au-container) + 2 * var(--au-gutter));
    margin: 0 auto;
    padding: 10px 12px 10px 22px;
    border: 1px solid var(--au-glass-border);
    border-radius: 999px;
    box-shadow: var(--au-glass-shadow);
    isolation: isolate;
}

/* The glass blur lives on a pseudo-element: backdrop-filter on the bar itself would make it
   the containing block of the fixed mobile menu */
.au-bar::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    background: var(--au-glass);
    backdrop-filter: blur(22px) saturate(170%);
    -webkit-backdrop-filter: blur(22px) saturate(170%);
}

/* Moving reflection */
.au-bar::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: -1;
    width: 20%;
    background: linear-gradient(90deg, transparent, rgb(255 255 255 / 0.1), transparent);
    animation: au-shine 7s ease-in-out infinite;
    pointer-events: none;
}

.au-bar { overflow: hidden; }

@keyframes au-shine {
    0% { transform: translateX(-120%) skewX(-18deg); }
    60%, 100% { transform: translateX(560%) skewX(-18deg); }
}

.au-brand { display: inline-flex; justify-content: center; align-items: center; }

.au-wordmark {
    padding-left: 0.42em;
    font-family: var(--au-font-heading);
    font-size: 1.85rem;
    font-weight: 400;
    letter-spacing: 0.42em;
    text-transform: uppercase;
    white-space: nowrap;
}

.au-logo { max-height: 40px; width: auto; }
.au-logo-light { display: none; }
[data-scheme="light"] .au-logo-dark { display: none; }
[data-scheme="light"] .au-logo-light { display: block; }

.au-menu {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.au-menu > li { position: relative; }

.au-menu a,
.au-sub-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 14px;
    border: 0;
    border-radius: 999px;
    background: none;
    color: var(--au-muted);
    font-size: 0.88rem;
    cursor: pointer;
    transition: color 0.3s ease, background-color 0.3s ease;
}

.au-menu a:hover,
.au-menu .is-current > a,
.au-sub-toggle:hover { color: var(--au-ink); background: rgb(230 211 168 / 0.12); }

.au-sub-toggle::after {
    content: "";
    width: 6px;
    height: 6px;
    margin-top: -3px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
}

.au-sub-toggle[aria-expanded="true"]::after { transform: rotate(-135deg); margin-top: 3px; }

.au-submenu { margin: 0; padding: 6px; list-style: none; }
.au-nav-members { display: none; }

.au-tools { display: flex; justify-content: flex-end; align-items: center; gap: 8px; }

.au-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--au-line);
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
    transition: border-color 0.3s ease, color 0.3s ease;
}

.au-icon-btn:hover { border-color: var(--au-gold); color: var(--au-gold); }
.au-icon-btn .au-icon { width: 18px; height: 18px; }
.au-icon-btn-lg { width: 52px; height: 52px; }

.au-icon-moon { display: none; }
[data-scheme="light"] .au-icon-moon { display: block; }
[data-scheme="light"] .au-icon-sun { display: none; }

.au-link { padding: 0 8px; font-size: 0.88rem; }
.au-link:hover { color: var(--au-gold); }

.au-burger { display: none; flex-direction: column; gap: 6px; }
.au-burger span { display: block; width: 18px; height: 1.5px; background: currentColor; transition: transform 0.2s ease; }
.au-burger[aria-expanded="true"] span:first-child { transform: translateY(3.75px) rotate(45deg); }
.au-burger[aria-expanded="true"] span:last-child { transform: translateY(-3.75px) rotate(-45deg); }

@media (min-width: 1000px) {
    .au-submenu {
        position: absolute;
        top: calc(100% + 14px);
        left: 0;
        min-width: 210px;
        border: 1px solid var(--au-glass-border);
        border-radius: 18px;
        background: var(--au-bg-2);
        box-shadow: 0 24px 60px rgb(0 0 0 / 0.45);
        opacity: 0;
        visibility: hidden;
        transform: translateY(-4px);
        transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
    }

    .au-submenu.is-open { opacity: 1; visibility: visible; transform: none; }
    .au-submenu a { display: flex; width: 100%; border-radius: 12px; }

    /* The dropdown must escape the rounded bar */
    .au-bar { overflow: visible; }
    .au-bar::after { display: none; }
}

@media (max-width: 999px) {
    .au-bar { grid-template-columns: auto 1fr; padding-left: 18px; }
    .au-brand { justify-content: flex-start; grid-column: 1; grid-row: 1; }
    .au-wordmark { padding-left: 0; font-size: 1.3rem; letter-spacing: 0.3em; }
    .au-tools { grid-column: 2; grid-row: 1; }
    .au-burger { display: inline-flex; }
    .au-tools .au-hide-sm { display: none; } /* must beat .au-btn display, declared later */

    .au-nav {
        position: fixed;
        inset: 0;
        z-index: 49;
        padding: calc(var(--au-header-h) + 32px) var(--au-gutter) 32px;
        overflow-y: auto;
        background: var(--au-bg);
        visibility: hidden;
        opacity: 0;
        transition: opacity 0.25s ease, visibility 0.25s;
    }

    .au-nav.is-open { visibility: visible; opacity: 1; }
    .au-header { z-index: 60; }
    .au-bar { z-index: 2; }
    .au-menu { flex-direction: column; align-items: stretch; gap: 0; }
    .au-menu > li { border-bottom: 1px solid var(--au-line); }

    .au-menu a,
    .au-sub-toggle {
        width: 100%;
        justify-content: space-between;
        padding: 16px 4px;
        border-radius: 0;
        color: var(--au-ink);
        font-family: var(--au-font-heading);
        font-size: 2rem;
        font-weight: 300;
    }

    .au-menu a:hover, .au-menu .is-current > a, .au-sub-toggle:hover { background: none; color: var(--au-gold); }
    .au-submenu { display: none; padding: 0 0 12px 14px; }
    .au-submenu.is-open { display: block; }
    .au-submenu a { padding: 8px 4px; font-size: 1.35rem; }
    .au-nav-members { display: flex; gap: 10px; margin-top: 28px; }
    .au-nav-members .au-btn { flex: 1; }
    body.au-nav-open { overflow: hidden; }
}

/* The fixed menu opens behind the brand and the tools, so the burger stays usable to close it */
@media (max-width: 999px) {
    .au-nav { z-index: 1; }
    .au-brand, .au-tools { position: relative; z-index: 2; }
}

/* 5. Buttons & forms
   ========================================================================== */

.au-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 44px;
    padding: 0 22px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: var(--au-gold);
    color: var(--au-on-gold);
    font-family: var(--au-font-body);
    font-size: 0.88rem;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    transition: transform 0.3s var(--au-ease), box-shadow 0.3s ease, background-color 0.3s ease;
}

.au-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgb(212 182 126 / 0.3); }

.au-btn-ghost { border-color: var(--au-line); background: transparent; color: var(--au-ink); }
.au-btn-ghost:hover { border-color: var(--au-gold); box-shadow: none; }
.au-btn-lg { min-height: 52px; padding: 0 30px; font-size: 0.95rem; }

.au-form-row { display: flex; flex-wrap: wrap; gap: 10px; }

.au-form-row input {
    flex: 1 1 220px;
    min-width: 0;
    height: 56px;
    padding: 0 24px;
    border: 1px solid rgb(255 255 255 / 0.2);
    border-radius: 999px;
    background: rgb(0 0 0 / 0.28);
    color: var(--au-ink);
    font: 0.95rem var(--au-font-body);
}

[data-scheme="light"] .au-form-row input { border-color: var(--au-line); background: rgb(255 255 255 / 0.6); }
.au-form-row input::placeholder { color: var(--au-muted); }
.au-form-row input:focus { outline: 2px solid var(--au-gold); outline-offset: 2px; }
.au-form-row .au-btn { min-height: 56px; padding: 0 30px; }

.au-form-loading, .au-form-success, .au-form-error { display: none; }
.au-form .au-btn { position: relative; }
.au-form.loading .au-form-label { visibility: hidden; }

.au-form.loading .au-form-loading {
    display: block;
    position: absolute;
    width: 18px;
    height: 18px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: au-spin 0.7s linear infinite;
}

.au-form.success .au-form-row { display: none; }
.au-form.success .au-form-success { display: block; font-weight: 600; }
.au-form.error .au-form-error { display: block; margin-top: 10px; font-size: 0.9rem; }

@keyframes au-spin { to { transform: rotate(360deg); } }

/* Shared bits: tags, meta, avatar, chips */
.au-tags { display: flex; flex-wrap: wrap; gap: 8px; }

.au-tag {
    color: var(--au-gold);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.au-tag + .au-tag::before { content: "·"; margin-right: 8px; color: var(--au-muted); }
.au-tag:hover { color: var(--au-gold-soft); }

.au-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 0;
    color: var(--au-muted);
    font-size: 0.82rem;
}

.au-meta > * { white-space: nowrap; }
/* The comments link is excluded: its count is filled by Ghost JS and may stay empty */
.au-meta > :not(.au-avatar) + :not(.au-avatar):not(.au-meta-comments)::before { content: "·"; margin-inline: 10px; }
.au-meta-author { color: var(--au-ink); font-weight: 500; }
.au-meta-author:hover { color: var(--au-gold); }

/* The comment count is filled by Ghost JS and stays empty at 0 */
.au-meta > .au-meta-comments::before { content: none; }
.au-count:not(:empty)::before { content: "·"; margin-inline: 10px; }

.au-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
    width: 28px;
    height: 28px;
    margin-right: 10px;
    border-radius: 50%;
    background: var(--au-brown-2);
    color: var(--au-ink);
    font-size: 0.75rem;
}

.au-avatar img { width: 100%; height: 100%; object-fit: cover; }
.au-avatar span { width: 1ch; overflow: hidden; font-weight: 600; white-space: nowrap; }

.au-chips { display: flex; flex-wrap: wrap; gap: 8px; }

.au-chip {
    padding: 9px 16px;
    border: 1px solid var(--au-line);
    border-radius: 999px;
    color: var(--au-muted);
    font-size: 0.82rem;
    transition: color 0.3s ease, border-color 0.3s ease;
}

.au-chip:hover { border-color: var(--au-gold); color: var(--au-ink); }

/* Images: shared media frame */
.au-media {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: var(--au-radius);
    background: var(--au-brown);
}

.au-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.6s var(--au-ease-out); }

/* 6. Hero & marquee
   ========================================================================== */

.au-hero { position: relative; padding-top: 96px; text-align: center; }

@media (min-width: 1024px) {
    .au-hero { padding-top: 120px; }
}

.au-hero-halo {
    position: absolute;
    left: 50%;
    top: 40px;
    width: min(900px, 100%);
    height: 520px;
    border-radius: 50%;
    background: radial-gradient(closest-side, rgb(107 82 54 / 0.55), transparent);
    filter: blur(30px);
    transform: translateX(-50%);
    pointer-events: none;
}

[data-scheme="light"] .au-hero-halo { background: radial-gradient(closest-side, rgb(212 182 126 / 0.4), transparent); }

.au-hero .au-container { position: relative; }

.au-hero-title {
    max-width: 1150px;
    margin: 28px auto 30px;
    font-weight: 300;
    font-size: clamp(3.2rem, 8.4vw, 8.3rem);
    line-height: 0.92;
    letter-spacing: -0.035em;
    text-wrap: balance;
}

.au-word { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: 0.06em; }
.au-word > span { display: inline-block; transform: translateY(105%); animation: au-rise 1.1s var(--au-ease-out) forwards; }

@keyframes au-rise { to { transform: none; } }

.au-hero-desc {
    max-width: 560px;
    margin: 0 auto 36px;
    color: var(--au-muted);
    font-size: 1.05rem;
    font-weight: 300;
    line-height: 1.75;
}

.au-hero-ctas { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

.au-strip {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 14px;
    padding-top: 80px;
    overflow: hidden;
}

.au-strip-item { flex: 0 0 auto; margin: 0; overflow: hidden; border-radius: var(--au-radius); background: var(--au-brown); will-change: transform; }
.au-strip-item img { width: 100%; height: 100%; object-fit: cover; }
.au-strip-item:nth-child(1), .au-strip-item:nth-child(5) { width: 15vw; height: 22vw; min-width: 150px; min-height: 210px; }
.au-strip-item:nth-child(2), .au-strip-item:nth-child(4) { width: 19vw; height: 27vw; min-width: 180px; min-height: 250px; }
.au-strip-item:nth-child(3) { width: 24vw; height: 32vw; min-width: 220px; min-height: 300px; border-radius: 999px 999px var(--au-radius) var(--au-radius); }

@media (max-width: 899px) {
    .au-strip-item:nth-child(1), .au-strip-item:nth-child(5) { display: none; }
}

@media (max-width: 559px) {
    .au-strip { gap: 8px; }
    .au-strip-item:nth-child(2), .au-strip-item:nth-child(4) { min-width: 0; width: 26vw; height: 38vw; min-height: 0; }
    .au-strip-item:nth-child(3) { min-width: 0; width: 38vw; height: 54vw; min-height: 0; }
}

.au-marquee {
    margin-top: 90px;
    padding-block: 22px;
    overflow: hidden;
    border-block: 1px solid var(--au-line);
}

.au-marquee-track {
    display: flex;
    gap: 48px;
    width: max-content;
    font-family: var(--au-font-heading);
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    font-style: italic;
    white-space: nowrap;
    animation: au-marquee 40s linear infinite;
}

.au-marquee-copy { display: contents; }
.au-marquee-track b { align-self: center; color: var(--au-gold); font-size: 1.4rem; font-style: normal; font-weight: 400; }
.au-marquee-track a:hover { color: var(--au-gold); }
.au-marquee:hover .au-marquee-track { animation-play-state: paused; }

@keyframes au-marquee { to { transform: translateX(-50%); } }

/* 7. Featured story
   ========================================================================== */

.au-featured-media { height: clamp(420px, 58vw, 820px); }

.au-featured-num {
    position: absolute;
    top: 26px;
    left: 30px;
    color: #f3eee4;
    font-family: var(--au-font-heading);
    font-size: 1rem;
    letter-spacing: 0.2em;
    text-shadow: 0 1px 12px rgb(0 0 0 / 0.5);
}

.au-featured-body {
    display: grid;
    gap: 22px 28px;
    margin-top: 36px;
}

@media (min-width: 900px) {
    .au-featured-body { grid-template-columns: repeat(12, minmax(0, 1fr)); }
    .au-featured-main { grid-column: span 7; }
    .au-featured-side { grid-column: 9 / span 4; align-self: end; }
}

.au-featured-title {
    margin-top: 14px;
    font-weight: 300;
    font-size: clamp(2.5rem, 4.6vw, 4.8rem);
    line-height: 0.98;
    letter-spacing: -0.025em;
}

.au-featured-side { display: flex; flex-direction: column; gap: 22px; }
.au-featured-side p { color: var(--au-muted); font-size: 1.05rem; font-weight: 300; line-height: 1.75; }

/* Title underline that grows on hover */
.au-featured-title span,
.au-ccard-title span,
.au-post-title span {
    background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
    transition: background-size 0.7s var(--au-ease-out);
}

.au-featured article:hover .au-featured-title span,
.au-ccard:hover .au-ccard-title span,
.au-post:hover .au-post-title span,
.au-featured-title a:focus-visible span,
.au-ccard-title a:focus-visible span,
.au-post-title a:focus-visible span { background-size: 100% 1px; }

.au-featured article:hover .au-featured-media img { transform: scale(1.03); }

/* 8. Carousel
   ========================================================================== */

.au-carousel-ctrl { display: flex; gap: 10px; }
.au-carousel-ctrl[hidden] { display: none; }
.au-carousel-arrow[data-dir="-1"] .au-icon { transform: rotate(180deg); }

.au-carousel {
    display: flex;
    gap: 24px;
    padding: 0 var(--au-gutter) 10px max(var(--au-gutter), calc((100vw - var(--au-container)) / 2));
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-left: max(var(--au-gutter), calc((100vw - var(--au-container)) / 2));
    scrollbar-width: none;
    cursor: grab;
}

.au-carousel::-webkit-scrollbar { display: none; }
.au-carousel.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.au-carousel.is-dragging a { pointer-events: none; }

.au-ccard { display: flex; flex: 0 0 clamp(270px, 30vw, 430px); flex-direction: column; gap: 16px; scroll-snap-align: start; }
.au-ccard-media { height: clamp(360px, 40vw, 560px); }
.au-ccard:hover .au-ccard-media img { transform: scale(1.07); }

.au-ccard-idx {
    position: absolute;
    top: 18px;
    left: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--au-glass-border);
    border-radius: 50%;
    background: rgb(43 33 24 / 0.42);
    color: #f3eee4;
    font-family: var(--au-font-heading);
    font-size: 1.1rem;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.au-ccard-title { font-size: clamp(1.6rem, 2.3vw, 2.15rem); line-height: 1.08; }

.au-carousel-progress { position: relative; height: 1px; margin-top: 34px; background: var(--au-line); }
.au-carousel-progress i { position: absolute; top: -1px; left: 0; width: 20%; height: 3px; background: var(--au-gold); transition: width 0.2s linear; }

/* 9. Journal (staggered two columns)
   ========================================================================== */

.au-filters { display: flex; flex-wrap: wrap; gap: 6px; }

.au-filter {
    min-height: 42px;
    padding: 0 18px;
    border: 1px solid var(--au-line);
    border-radius: 999px;
    background: transparent;
    color: var(--au-muted);
    font-size: 0.88rem;
    cursor: pointer;
    transition: all 0.3s ease;
}

.au-filter:hover { color: var(--au-ink); }
.au-filter[aria-pressed="true"] { border-color: var(--au-ink); background: var(--au-ink); color: var(--au-bg); }

.au-journal { display: grid; grid-template-columns: 1fr; gap: 60px; }

@media (min-width: 900px) {
    .au-journal { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 80px 32px; }
    .au-journal:not(.au-journal-3) > .au-post:nth-child(even) { margin-top: 120px; }
    .au-journal-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 28px; }
}

.au-post { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.au-post[hidden] { display: none; }
.au-post-media { height: clamp(340px, 36vw, 560px); }
.au-journal-3 .au-post-media { height: clamp(300px, 26vw, 420px); }
.au-post:hover .au-post-media img { transform: scale(1.06); }
.is-members .au-post-media img { filter: saturate(0.7) brightness(0.85); }

.au-post-title { font-weight: 300; font-size: clamp(2rem, 3.2vw, 3.1rem); line-height: 1.02; }
.au-journal-3 .au-post-title { font-size: clamp(1.6rem, 2.2vw, 2.1rem); }
.au-post-excerpt { max-width: 560px; color: var(--au-muted); font-weight: 300; line-height: 1.7; }

.au-lock {
    position: absolute;
    top: 18px;
    right: 18px;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 15px;
    border: 1px solid var(--au-glass-border);
    border-radius: 999px;
    background: rgb(43 33 24 / 0.42);
    color: #f3eee4;
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.2);
    backdrop-filter: blur(16px) saturate(160%);
    -webkit-backdrop-filter: blur(16px) saturate(160%);
}

.au-lock .au-icon { width: 13px; height: 13px; color: #d4b67e; }

.au-empty { color: var(--au-muted); }

/* Pagination & load more */
.au-pagination { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 64px; }
.au-pagination[hidden] { display: none; }
.au-page-number { color: var(--au-muted); font-size: 0.88rem; }
.au-load-more-wrap { display: flex; justify-content: center; margin-top: 90px; }
.au-load-more { min-height: 56px; padding: 0 34px; font-size: 0.95rem; }
.au-load-more[hidden] { display: none; }
.au-load-more.is-loading { opacity: 0.6; pointer-events: none; }

/* 10. Covers (tag and author pages)
   ========================================================================== */

.au-cover { padding-top: 48px; }

.au-cover-inner {
    position: relative;
    display: flex;
    align-items: flex-end;
    min-height: 380px;
    overflow: hidden;
    border-radius: var(--au-radius);
    background:
        radial-gradient(120% 140% at 100% 0%, rgb(212 182 126 / 0.28) 0%, transparent 55%),
        linear-gradient(135deg, #2b2118, #141210);
    color: #f3eee4;
    isolation: isolate;
}

@media (min-width: 1024px) {
    .au-cover-inner { min-height: 520px; }
    .au-cover-inner:not(.has-image) { min-height: 400px; }
}

.au-cover-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }

.au-cover-inner.has-image::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(to top, rgb(11 11 13 / 0.85) 0%, rgb(11 11 13 / 0.35) 45%, rgb(11 11 13 / 0.1) 75%),
        linear-gradient(to right, rgb(11 11 13 / 0.45) 0%, rgb(11 11 13 / 0) 60%);
}

/* No image: the name as a giant gold outline */
.au-cover-watermark {
    position: absolute;
    right: -0.04em;
    bottom: -0.18em;
    z-index: -1;
    font-family: var(--au-font-heading);
    font-size: clamp(7rem, 22vw, 20rem);
    font-weight: 300;
    line-height: 1;
    white-space: nowrap;
    color: transparent;
    -webkit-text-stroke: 1px rgb(212 182 126 / 0.4);
    pointer-events: none;
    user-select: none;
}

.au-cover-body { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; max-width: 760px; padding: 28px 22px; }

@media (min-width: 1024px) {
    .au-cover-body { padding: 60px; }
}

.au-cover-kicker {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #d4b67e;
    font-size: 0.7rem;
    font-weight: 500;
    letter-spacing: 0.28em;
    text-transform: uppercase;
}

.au-cover-kicker::before { content: ""; width: 40px; height: 1px; background: currentColor; }
.au-cover-title { font-weight: 300; font-size: clamp(3rem, 8vw, 6.4rem); line-height: 0.92; letter-spacing: -0.035em; }
.au-cover-desc { max-width: 560px; font-size: clamp(1.02rem, 1.6vw, 1.18rem); font-weight: 300; line-height: 1.6; opacity: 0.85; }
.au-cover-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 6px; font-size: 0.85rem; }
.au-cover-meta > span:not(.au-cover-pill) { opacity: 0.8; white-space: nowrap; }

.au-cover-pill {
    padding: 7px 14px;
    border: 1px solid rgb(230 211 168 / 0.3);
    border-radius: 999px;
    background: rgb(43 33 24 / 0.42);
    font-weight: 600;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.au-cover-link { color: #d4b67e; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

.au-cover .au-cover-avatar {
    width: 96px;
    height: 96px;
    margin: 0 0 6px;
    border: 2px solid rgb(212 182 126 / 0.7);
    font-size: 2rem;
}

.au-cover-author .au-cover-title { font-size: clamp(2.6rem, 6.5vw, 5rem); }
.au-cover-social { display: flex; flex-wrap: wrap; gap: 6px; }
.au-cover-social:empty { display: none; }

.au-cover-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgb(230 211 168 / 0.3);
    border-radius: 50%;
    background: rgb(43 33 24 / 0.42);
}

.au-cover-social a:hover { border-color: #d4b67e; color: #d4b67e; }
.au-cover-social .au-icon { width: 16px; height: 16px; }

.au-topics {
    display: flex;
    gap: 8px;
    margin-top: 20px;
    padding-bottom: 4px;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 40px), transparent);
    mask-image: linear-gradient(to right, #000 calc(100% - 40px), transparent);
}

.au-topics::-webkit-scrollbar { display: none; }

.au-topic {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    gap: 8px;
    min-height: 42px;
    padding: 6px 8px 6px 16px;
    border: 1px solid var(--au-line);
    border-radius: 999px;
    color: var(--au-muted);
    font-size: 0.88rem;
    white-space: nowrap;
    transition: color 0.3s ease, border-color 0.3s ease;
}

.au-topic:hover { border-color: var(--au-gold); color: var(--au-ink); }

.au-topic-count {
    min-width: 24px;
    padding: 2px 7px;
    border-radius: 999px;
    background: var(--au-line);
    font-size: 0.72rem;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.au-topic.nav-current { border-color: var(--au-gold); background: var(--au-gold); color: var(--au-on-gold); }
.au-topic.nav-current .au-topic-count { background: rgb(0 0 0 / 0.14); }
.au-topic-author { padding-left: 5px; }
.au-topics .au-topic-avatar { width: 30px; height: 30px; margin: 0; }

.au-cover + .au-journal-section { padding-top: 64px; }

/* 11. Article
   ========================================================================== */

.au-progress { position: fixed; top: 0; left: 0; right: 0; z-index: 70; height: 2px; pointer-events: none; }
.au-progress-bar { display: block; height: 100%; background: var(--au-gold); transform: scaleX(0); transform-origin: left; }

.au-article-head { padding-top: 72px; padding-bottom: 40px; text-align: center; }

@media (min-width: 1024px) {
    .au-article-head { padding-top: 110px; }
}

.au-article-head .au-tags { justify-content: center; margin-bottom: 24px; }

.au-article-title {
    font-weight: 300;
    font-size: clamp(2.8rem, 6.5vw, 5.4rem);
    line-height: 0.98;
    letter-spacing: -0.03em;
    text-wrap: balance;
}

.au-article-excerpt {
    max-width: 620px;
    margin: 24px auto 0;
    color: var(--au-muted);
    font-size: clamp(1.08rem, 2vw, 1.25rem);
    font-weight: 300;
    line-height: 1.6;
}

.au-article-byline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px 14px;
    margin-top: 32px;
    font-size: 0.9rem;
}

.au-avatars { display: flex; }
.au-avatars .au-avatar { width: 40px; height: 40px; margin-right: 0; border: 2px solid var(--au-bg); }
.au-avatars .au-avatar + .au-avatar { margin-left: -12px; }
.au-article-by em { color: var(--au-ink); font-family: var(--au-font-heading); font-size: 1.15rem; }
.au-article-by a:hover { color: var(--au-gold); }
.au-article-byline .au-meta::before { content: "·"; margin-right: 14px; }

.au-article-image { margin: 0 auto; }
.au-article-image img { width: 100%; border-radius: var(--au-radius); }
.au-full.au-article-image img { border-radius: 0; }

.au-article-image figcaption,
.au-content figcaption { margin-top: 12px; padding-inline: var(--au-gutter); color: var(--au-muted); font-size: 0.82rem; text-align: center; }
.au-article-image figcaption a, .au-content figcaption a { text-decoration: underline; }

.au-article-body { position: relative; padding-top: 56px; }

/* Table of contents */
.au-toc { width: 100%; max-width: calc(var(--au-content) + 2 * var(--au-gutter)); margin: 0 auto 40px; padding-inline: var(--au-gutter); }
.au-toc-box { border-radius: var(--au-radius); border: 1px solid var(--au-glass-border); background: var(--au-glass); }
.au-toc-summary { display: flex; align-items: center; gap: 10px; padding: 16px 22px; cursor: pointer; list-style: none; user-select: none; }
.au-toc-summary::-webkit-details-marker { display: none; }

.au-toc-summary::after {
    content: "";
    width: 7px;
    height: 7px;
    margin-left: auto;
    border-right: 1.5px solid var(--au-muted);
    border-bottom: 1.5px solid var(--au-muted);
    transform: translateY(-2px) rotate(45deg);
    transition: transform 0.2s ease;
}

.au-toc-box[open] .au-toc-summary::after { transform: translateY(2px) rotate(-135deg); }
.au-toc-title { color: var(--au-gold); font-size: 0.7rem; font-weight: 500; letter-spacing: 0.28em; text-transform: uppercase; }
.au-toc-count { padding: 2px 8px; border-radius: 999px; background: var(--au-line); color: var(--au-muted); font-size: 0.72rem; }
.au-toc-box nav { padding: 0 22px 16px; }
.au-toc-list { margin: 0; padding: 0; list-style: none; counter-reset: toc; }
.au-toc-list li { counter-increment: toc; }

.au-toc-list a {
    display: flex;
    gap: 10px;
    padding: 7px 0 7px 14px;
    border-left: 1px solid var(--au-line);
    color: var(--au-muted);
    font-size: 0.9rem;
    line-height: 1.4;
    transition: color 0.2s ease, border-color 0.2s ease;
}

.au-toc-list a::before { content: counter(toc, decimal-leading-zero); flex-shrink: 0; font-family: var(--au-font-heading); font-size: 1rem; line-height: 1.3; }
.au-toc-list a:hover { color: var(--au-ink); }
.au-toc-list a.is-read { border-left-color: rgb(212 182 126 / 0.4); }
.au-toc-list a.is-active { border-left: 2px solid var(--au-gold); color: var(--au-ink); }
.au-toc-list a.is-read::before, .au-toc-list a.is-active::before { color: var(--au-gold); }

@media (min-width: 1500px) {
    .au-toc { position: absolute; top: 56px; bottom: 0; left: calc(50% - var(--au-content) / 2 - 100px - 250px); width: 220px; margin: 0; padding: 0; }
    .au-toc-box { position: sticky; top: calc(var(--au-header-h) + 40px); border: 0; background: none; }
    .au-toc-summary { padding: 0 0 14px; cursor: default; pointer-events: none; }
    .au-toc-summary::after { display: none; }
    .au-toc-box nav { padding: 0; }
}

.au-article-foot { display: flex; flex-direction: column; gap: 28px; padding-top: 56px; padding-bottom: 24px; }
.au-article-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.au-article-tags .au-chip { color: var(--au-ink); }

.au-share { display: flex; align-items: center; gap: 6px; padding-block: 18px; border-block: 1px solid var(--au-line); }
.au-share-label { margin-right: 8px; color: var(--au-gold); font-size: 0.7rem; font-weight: 500; letter-spacing: 0.28em; text-transform: uppercase; }
.au-share .au-icon { width: 16px; height: 16px; }
.au-copy.is-copied { border-color: var(--au-gold); color: var(--au-gold); }

.au-author-card { display: flex; gap: 18px; padding: 26px; border-radius: var(--au-radius); border: 1px solid var(--au-glass-border); background: var(--au-glass); }
.au-author-card .au-avatar-lg { width: 68px; height: 68px; margin: 0; }
.au-author-card-body { display: flex; flex-direction: column; gap: 8px; }
.au-author-card-name { font-family: var(--au-font-heading); font-size: 1.5rem; }
.au-author-card-name a:hover { color: var(--au-gold); }
.au-author-card-bio { color: var(--au-muted); font-size: 0.95rem; font-weight: 300; }

.au-comments { padding-block: 32px; }
.au-related { margin-top: 40px; }

/* Social links */
.au-social { display: flex; flex-wrap: wrap; gap: 6px; }

.au-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--au-line);
    border-radius: 50%;
    color: var(--au-muted);
    transition: color 0.3s ease, border-color 0.3s ease;
}

.au-social a:hover { border-color: var(--au-gold); color: var(--au-gold); }
.au-social .au-icon { width: 16px; height: 16px; }
.au-social-sm a { width: 32px; height: 32px; }
.au-social-sm .au-icon { width: 14px; height: 14px; }
.au-social-fallback { font-size: 0.65rem; font-weight: 600; }

/* 12. Content (Koenig editor)
   ========================================================================== */

.au-content {
    display: grid;
    grid-template-columns:
        [full-start] minmax(var(--au-gutter), 1fr)
        [wide-start] minmax(0, 170px)
        [main-start] min(var(--au-content), calc(100% - 2 * var(--au-gutter)))
        [main-end] minmax(0, 170px)
        [wide-end] minmax(var(--au-gutter), 1fr)
        [full-end];
    font-size: 1.1rem;
    font-weight: 300;
    line-height: 1.85;
    overflow-wrap: break-word;
}

.au-content-wide {
    grid-template-columns:
        [full-start] minmax(var(--au-gutter), 1fr)
        [wide-start main-start] min(calc(var(--au-wide) + 200px), calc(100% - 2 * var(--au-gutter)))
        [main-end wide-end] minmax(var(--au-gutter), 1fr)
        [full-end];
}

.au-content > * { grid-column: main; }
.au-content > .kg-width-wide { grid-column: wide; }
.au-content > .kg-width-full { grid-column: full; }
.au-content > * + * { margin-top: 1.5em; margin-bottom: 0; }
.au-content > :first-child { margin-top: 0; }

/* Gold drop cap on posts */
.au-article:not(.au-page) .au-content > p:first-child::first-letter {
    float: left;
    margin: 0.08em 0.12em 0 0;
    color: var(--au-gold);
    font-family: var(--au-font-heading);
    font-size: 4.6em;
    font-weight: 300;
    line-height: 0.78;
}

.au-content > h2 { margin-top: 2em; font-weight: 300; font-size: 2.5rem; }
.au-content > h3 { margin-top: 1.75em; font-size: 1.8rem; }
.au-content > h4 { margin-top: 1.5em; font-size: 1.4rem; }
.au-content > h2 + *, .au-content > h3 + *, .au-content > h4 + * { margin-top: 0.75em; }
.au-content strong { font-weight: 600; color: var(--au-ink); }

.au-content a { color: var(--au-gold); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.au-content a:hover { color: var(--au-gold-soft); }
.au-content ul, .au-content ol { padding-left: 1.4em; }
.au-content li + li { margin-top: 0.4em; }
.au-content li::marker { color: var(--au-gold); }

.au-content blockquote:not([class]) {
    margin-inline: 0;
    padding-left: 28px;
    border-left: 1px solid var(--au-gold);
    font-family: var(--au-font-heading);
    font-size: 1.6rem;
    font-style: italic;
    font-weight: 300;
    line-height: 1.45;
}

.au-content blockquote.kg-blockquote-alt {
    margin-inline: 0;
    padding: 0.5em 1em;
    color: var(--au-gold);
    font-family: var(--au-font-heading);
    font-size: 2.2rem;
    font-style: italic;
    font-weight: 300;
    line-height: 1.25;
    text-align: center;
}

.au-content hr {
    width: 100%;
    height: 20px;
    margin-block: 3em;
    border: 0;
    /* A gold star between two lines */
    background:
        center / 14px 14px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.2 7.8L22 12l-7.8 2.2L12 22l-2.2-7.8L2 12l7.8-2.2z' fill='%23d4b67e'/%3E%3C/svg%3E"),
        linear-gradient(var(--au-line), var(--au-line)) left center / calc(50% - 22px) 1px no-repeat,
        linear-gradient(var(--au-line), var(--au-line)) right center / calc(50% - 22px) 1px no-repeat;
}

.au-content code:not(pre code) { padding: 0.15em 0.4em; border-radius: 6px; background: var(--au-line); font-size: 0.88em; }
.au-content pre { overflow-x: auto; padding: 20px; border: 1px solid var(--au-line); border-radius: var(--au-radius); background: #141210; color: #f3eee4; font-size: 0.9rem; line-height: 1.6; }
.au-content table { display: block; overflow-x: auto; border-collapse: collapse; font-size: 0.95rem; }
.au-content th, .au-content td { padding: 10px 14px; border-bottom: 1px solid var(--au-line); text-align: left; }
.au-content figure { margin-inline: 0; }
.au-content .kg-image-card img { border-radius: var(--au-radius); }
.au-content .kg-width-full img { border-radius: 0; }
.au-content .kg-gallery-image img { border-radius: 12px; }
.au-content .kg-callout-card, .au-content .kg-toggle-card { border-radius: var(--au-radius); }
.au-content .kg-bookmark-container { border-radius: var(--au-radius); color: var(--au-ink); text-decoration: none; }
.au-content .kg-btn-accent { color: var(--au-on-gold); text-decoration: none; }
.au-content .gh-post-upgrade-cta-content { border-radius: var(--au-radius); }

.au-content > .kg-width-full + .kg-width-full:not(.kg-card-hascaption + .kg-width-full) { margin-top: 0; }
.au-page .au-content { padding-bottom: 72px; }
.au-page .au-article-image { margin-bottom: 56px; }
.au-page:not(:has(.au-article-head)) .au-content > .kg-width-full:first-child { margin-top: 0; }
.au-page .au-content > .kg-width-full:last-child:not(.kg-card-hascaption) { margin-bottom: -72px; }

/* 13. Newsletter (full-bleed photo + glass card)
   ========================================================================== */

.au-news {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: clamp(560px, 52vw, 760px);
    margin-top: 150px;
    padding: 48px 16px;
    overflow: hidden;
    background: radial-gradient(80% 80% at 50% 40%, var(--au-brown-2), var(--au-brown) 60%, #0b0b0d);
}

.au-news-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.au-news.has-image::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgb(11 11 13 / 0.2), rgb(11 11 13 / 0.65)); }

.au-news-card {
    position: relative;
    z-index: 2;
    width: min(680px, 100%);
    padding: 48px 26px;
    border-radius: 34px;
    background: rgb(43 33 24 / 0.36);
    color: #f3eee4;
    text-align: center;
}

@media (min-width: 640px) {
    .au-news-card { padding: 58px 52px; }
}

.au-news-card .au-eyebrow { color: #d4b67e; }
.au-news-title { margin: 16px 0 14px; font-weight: 300; font-size: clamp(2.4rem, 4.6vw, 4rem); line-height: 1; letter-spacing: -0.025em; }
.au-news-title em { color: #d4b67e; }
.au-news-text { max-width: 460px; margin: 0 auto 30px; color: rgb(243 238 228 / 0.72); line-height: 1.7; }
.au-news .au-form-row { max-width: 520px; margin: 0 auto; }
.au-news .au-form-row input { border-color: rgb(255 255 255 / 0.2); background: rgb(0 0 0 / 0.28); color: #f3eee4; }
.au-news .au-form-row input::placeholder { color: rgb(243 238 228 / 0.6); }
.au-news .au-btn { background: #d4b67e; color: #141210; }

/* 14. Footer
   ========================================================================== */

.au-footer { padding-top: 110px; border-top: 1px solid var(--au-line); }

.au-footer-cols { display: grid; grid-template-columns: 1fr; gap: 48px; }

@media (min-width: 900px) {
    .au-footer-cols { grid-template-columns: 1.4fr 1fr 1fr; }
}

.au-footer-heading {
    margin-bottom: 22px;
    color: var(--au-gold);
    font-family: var(--au-font-body);
    font-size: 0.7rem;
    font-weight: 500;
    letter-spacing: 0.28em;
    text-transform: uppercase;
}

.au-footer-posts { display: flex; flex-direction: column; gap: 18px; }
.au-footer-post { display: flex; align-items: center; gap: 16px; }
.au-footer-thumb { flex: 0 0 auto; width: 72px; height: 72px; overflow: hidden; border-radius: 14px; background: var(--au-brown); }
.au-footer-thumb img { width: 100%; height: 100%; object-fit: cover; }
.au-footer-post-title { font-family: var(--au-font-heading); font-size: 1.35rem; line-height: 1.15; }
.au-footer-post:hover .au-footer-post-title { color: var(--au-gold); }

.au-footer-menu { display: flex; flex-direction: column; gap: 12px; margin: 0 0 24px; padding: 0; list-style: none; color: var(--au-muted); }
.au-footer-menu a:hover { color: var(--au-ink); }

.au-footer-wordmark {
    margin-top: 100px;
    overflow: hidden;
    font-family: var(--au-font-heading);
    font-size: 21vw;
    font-weight: 300;
    line-height: 0.78;
    letter-spacing: -0.04em;
    text-align: center;
    text-transform: uppercase;
    white-space: nowrap;
    color: transparent;
    -webkit-text-stroke: 1px rgb(212 182 126 / 0.35);
    user-select: none;
}

.au-footer-legal {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 16px;
    padding: 26px 0 34px;
    border-top: 1px solid var(--au-line);
    color: var(--au-muted);
    font-size: 0.82rem;
}

.au-footer-legal a { text-decoration: underline; text-underline-offset: 2px; }

/* 15. Effects & misc
   ========================================================================== */

/* Film grain */
.au-grain::after {
    content: "";
    position: fixed;
    inset: -50%;
    z-index: 100;
    opacity: 0.07;
    pointer-events: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
    animation: au-grain 1.2s steps(6) infinite;
}

[data-scheme="light"] .au-grain::after { opacity: 0.05; }

@keyframes au-grain {
    0% { transform: translate(0, 0); }
    20% { transform: translate(-3%, 2%); }
    40% { transform: translate(2%, -3%); }
    60% { transform: translate(-2%, -1%); }
    80% { transform: translate(3%, 3%); }
    100% { transform: translate(0, 0); }
}

/* Images revealed on scroll (armed by main.js, so content stays visible without JS) */
.au-reveal.is-armed { clip-path: inset(12% 6% 12% 6% round var(--au-radius)); transition: clip-path 1.4s var(--au-ease-out); }
.au-reveal.is-armed img { transform: scale(1.18); transition: transform 1.8s var(--au-ease-out); }
.au-reveal.is-armed.is-in { clip-path: inset(0 0 0 0 round var(--au-radius)); }
.au-reveal.is-armed.is-in img { transform: scale(1); }

/* Glass "Read" cursor */
.au-cursor {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 90;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 96px;
    height: 96px;
    margin: -48px 0 0 -48px;
    border: 1px solid var(--au-glass-border);
    border-radius: 50%;
    background: rgb(43 33 24 / 0.35);
    color: #f3eee4;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    pointer-events: none;
    transform: scale(0);
    transition: transform 0.35s var(--au-ease-out);
    backdrop-filter: blur(14px) saturate(170%);
    -webkit-backdrop-filter: blur(14px) saturate(170%);
}

.au-cursor.is-on { transform: scale(1); }

@media (hover: none), (pointer: coarse) {
    .au-cursor { display: none; }
}

.au-error { padding-block: 110px 40px; text-align: center; }
.au-error-code { color: var(--au-gold); font-family: var(--au-font-heading); font-size: clamp(6rem, 20vw, 11rem); font-style: italic; font-weight: 300; line-height: 1; }
.au-error-title { margin: 16px 0 12px; font-weight: 300; font-size: clamp(1.9rem, 4vw, 3rem); }
.au-error .au-btn { margin-top: 28px; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    .au-grain::after, .au-bar::after { display: none; }
    .au-word > span { transform: none; }
}
