/* METAPOLIS civic shell. City-specific mutations belong in their own stylesheets. */
:root {
    --mp-paper: #f0ede5;
    --mp-paper-deep: #e4dfd3;
    --mp-ink: #181a18;
    --mp-ink-soft: #53564f;
    --mp-line: #aaa79d;
    --mp-line-dark: #696b65;
    --mp-night: #1f2424;
    --mp-white: #fffef8;
    --mp-font-body: var(--gh-font-body, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
    --mp-font-heading: var(--gh-font-heading, Georgia, "Times New Roman", serif);
    --mp-font-label: "Arial Narrow", "Roboto Condensed", Arial, sans-serif;
    --mp-frame: min(100% - 2rem, 86rem);
    --mp-header-height: 4.5rem;
    --mp-space-section: clamp(4.5rem, 9vw, 9rem);
}

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

html {
    overflow-wrap: break-word;
    scroll-behavior: smooth;
}

body {
    min-width: 20rem;
    margin: 0;
    overflow-x: hidden;
    background: var(--mp-paper);
    color: var(--mp-ink);
    font-family: var(--mp-font-body);
    font-size: 1rem;
    line-height: 1.6;
    text-rendering: optimizeLegibility;
}

body::before {
    position: fixed;
    z-index: -1;
    inset: 0;
    background-image: linear-gradient(to right, rgba(24, 26, 24, 0.035) 1px, transparent 1px);
    background-size: clamp(4rem, 8vw, 8rem) 100%;
    content: "";
    pointer-events: none;
}

img, svg {
    display: block;
    max-width: 100%;
    height: auto;
}

a {
    color: inherit;
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.18em;
}

button, input, select, textarea { color: inherit; font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--mp-accent); outline-offset: 4px; }

.skip-link {
    position: fixed;
    z-index: 100;
    top: 0.75rem;
    left: 0.75rem;
    padding: 0.65rem 0.9rem;
    transform: translateY(-200%);
    background: var(--mp-ink);
    color: var(--mp-white);
}

.skip-link:focus { transform: translateY(0); }
.site-frame { width: var(--mp-frame); margin-inline: auto; }
.section { padding-block: var(--mp-space-section); border-top: 1px solid var(--mp-line); }

.eyebrow, .status-label, .section-index, .access-marker {
    margin: 0;
    font-family: var(--mp-font-label);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    line-height: 1.25;
    text-transform: uppercase;
}

.section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: clamp(2rem, 5vw, 4rem);
}

.section-heading h2 {
    max-width: 18ch;
    margin: 0.45rem 0 0;
    font-family: var(--mp-font-heading);
    font-size: clamp(2.1rem, 5vw, 4.75rem);
    font-weight: 400;
    letter-spacing: -0.035em;
    line-height: 0.98;
}

.section-index { color: var(--mp-ink-soft); font-size: clamp(2rem, 5vw, 4rem); }
.section-note { max-width: 24rem; margin: 0; color: var(--mp-ink-soft); }

.action-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.5rem;
}

.button {
    display: inline-flex;
    min-height: 3.25rem;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 1.15rem;
    border: 1px solid var(--mp-ink);
    font-family: var(--mp-font-label);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color 160ms ease, color 160ms ease;
}

.button--primary { background: var(--mp-ink); color: var(--mp-white); }
.button--primary:hover { background: var(--mp-accent); }
.button--quiet:hover { background: var(--mp-paper-deep); }

.text-link {
    font-family: var(--mp-font-label);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Site header */
.site-header { position: relative; z-index: 20; border-bottom: 1px solid var(--mp-line); background: rgba(240, 237, 229, 0.97); }
.site-header__inner { display: flex; width: var(--mp-frame); min-height: var(--mp-header-height); align-items: stretch; justify-content: space-between; margin-inline: auto; }

.site-mark {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    font-family: var(--mp-font-label);
    font-weight: 800;
    letter-spacing: 0.12em;
    text-decoration: none;
}

.site-mark__index { padding-left: 0.75rem; border-left: 1px solid var(--mp-line); color: var(--mp-ink-soft); font-size: 0.65rem; }
.site-navigation { display: flex; align-items: stretch; }

.site-navigation a {
    display: flex;
    min-height: 2.75rem;
    align-items: center;
    padding-inline: clamp(0.65rem, 1.4vw, 1.25rem);
    border-left: 1px solid var(--mp-line);
    font-family: var(--mp-font-label);
    font-size: 0.69rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-decoration: none;
    text-transform: uppercase;
}

.site-navigation a:hover { background: var(--mp-paper-deep); }
.site-navigation__access { background: var(--mp-ink); color: var(--mp-white); }

.nav-toggle {
    display: none;
    min-width: 4.5rem;
    border: 0;
    border-left: 1px solid var(--mp-line);
    background: transparent;
    cursor: pointer;
    font-family: var(--mp-font-label);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.nav-toggle__mark, .nav-toggle__mark::before { display: block; width: 1.1rem; height: 1px; background: currentColor; content: ""; }
.nav-toggle__mark::before { transform: translateY(0.35rem); }

/* Front Gate */
.gate-hero { display: flex; min-height: calc(100svh - var(--mp-header-height)); align-items: stretch; }
.gate-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(8rem, 0.22fr); }
.gate-hero__copy { display: flex; align-items: flex-start; justify-content: center; flex-direction: column; padding: clamp(4rem, 10vw, 9rem) clamp(1rem, 7vw, 7rem) clamp(4rem, 8vw, 7rem) 0; }

.gate-hero h1 {
    max-width: 15ch;
    margin: 1.25rem 0;
    font-family: var(--mp-font-heading);
    font-size: clamp(3rem, 8.4vw, 8.75rem);
    font-weight: 400;
    letter-spacing: -0.055em;
    line-height: 0.87;
}

.gate-hero__proposition { max-width: 37rem; margin: 0 0 2.5rem; color: var(--mp-ink-soft); font-size: clamp(1.05rem, 1.8vw, 1.35rem); }
.gate-hero__register { display: flex; align-items: flex-start; justify-content: space-between; flex-direction: column; padding: 2rem 1.25rem; border-left: 1px solid var(--mp-line); color: var(--mp-ink-soft); font-family: var(--mp-font-label); font-size: 0.65rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; writing-mode: vertical-rl; }

/* Territory */
.territory-section { background: var(--mp-paper-deep); }
.territory-door { display: grid; min-height: 35rem; border: 1px solid var(--mp-line-dark); grid-template-columns: minmax(0, 1.3fr) minmax(19rem, 0.7fr); }
.territory-door__visual { min-height: 27rem; overflow: hidden; background: var(--mp-night); }
.territory-door__visual img { width: 100%; height: 100%; object-fit: cover; }

.territory-placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    min-height: inherit;
    align-content: space-between;
    padding: 2rem;
    overflow: hidden;
    background: radial-gradient(circle at 28% 35%, rgba(85, 113, 116, 0.75), transparent 0 20%, transparent 21%), linear-gradient(115deg, transparent 0 36%, rgba(240, 237, 229, 0.13) 36.2% 36.8%, transparent 37% 100%), repeating-linear-gradient(0deg, transparent 0 3.95rem, rgba(240, 237, 229, 0.11) 4rem), var(--mp-night);
    color: var(--mp-paper);
    font-family: var(--mp-font-label);
    font-size: 0.65rem;
    letter-spacing: 0.13em;
}

.territory-placeholder span:nth-child(2) { justify-self: center; }
.territory-placeholder span:last-child { justify-self: end; }
.territory-door__body { display: flex; align-items: flex-start; justify-content: center; flex-direction: column; padding: clamp(2rem, 5vw, 5rem); border-left: 1px solid var(--mp-line-dark); }

.territory-door h2 {
    margin: 1rem 0 0.25rem;
    font-family: var(--mp-font-heading);
    font-size: clamp(2.6rem, 5vw, 5.5rem);
    font-weight: 400;
    letter-spacing: -0.045em;
    line-height: 0.92;
}

.territory-door__type { margin: 0; color: var(--mp-ink-soft); font-family: var(--mp-font-label); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.territory-door__question { max-width: 28rem; margin: 2.5rem 0; font-family: var(--mp-font-heading); font-size: clamp(1.3rem, 2vw, 1.7rem); line-height: 1.3; }

/* Signals and institution doors */
.signal-grid { display: grid; border-top: 1px solid var(--mp-line-dark); border-left: 1px solid var(--mp-line); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.artifact-card { display: flex; min-width: 0; flex-direction: column; border-right: 1px solid var(--mp-line); border-bottom: 1px solid var(--mp-line-dark); background: rgba(255, 254, 248, 0.18); }
.artifact-card__image { display: block; overflow: hidden; border-bottom: 1px solid var(--mp-line); aspect-ratio: 16 / 9; }
.artifact-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 350ms ease; }
.artifact-card__image:hover img { transform: scale(1.02); }
.artifact-card__body { display: flex; min-height: 100%; flex: 1; flex-direction: column; padding: clamp(1.35rem, 3vw, 2.25rem); }
.artifact-card__classification { display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; color: var(--mp-ink-soft); font-family: var(--mp-font-label); font-size: 0.64rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.artifact-card__place { margin-top: 1.5rem !important; color: var(--mp-ink) !important; font-family: var(--mp-font-label); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.11em; text-transform: uppercase; }
.artifact-card__system { min-height: 1.2em; margin-top: 0.2rem !important; color: var(--mp-ink-soft); font-family: var(--mp-font-label); font-size: 0.65rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.artifact-card__system:empty { visibility: hidden; }
.artifact-card h2 { margin: 1.75rem 0 1rem; font-family: var(--mp-font-heading); font-size: clamp(1.5rem, 2.5vw, 2.35rem); font-weight: 400; letter-spacing: -0.025em; line-height: 1.05; }
.artifact-card h2 a { text-decoration: none; }
.artifact-card h2 a:hover { text-decoration: underline; }
.artifact-card__excerpt { margin: 0; color: var(--mp-ink-soft); }
.artifact-card__footer { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: 2rem; }
.artifact-card__footer time { color: var(--mp-ink-soft); font-family: var(--mp-font-label); font-size: 0.65rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.empty-state { padding: clamp(2rem, 5vw, 4rem); border: 1px solid var(--mp-line); color: var(--mp-ink-soft); }
.empty-state__label { margin: 0 0 2rem; font-family: var(--mp-font-label); font-size: 0.65rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.empty-state h2 { max-width: 22ch; margin: 0 0 1rem; color: var(--mp-ink); font-family: var(--mp-font-heading); font-size: clamp(1.8rem, 3vw, 3rem); font-weight: 400; line-height: 1; }
.empty-state > p:not(.empty-state__label) { max-width: 36rem; }
.empty-state .text-link { display: inline-block; margin-top: 1rem; }

.institutions-section { background: var(--mp-night); color: var(--mp-paper); }
.institutions-section .eyebrow, .institutions-section .section-note { color: #bdbdb5; }
.institution-grid { border-top: 1px solid #555b59; }
.institution-door { display: grid; min-height: 8.5rem; align-items: center; padding: 1.5rem 0; border-bottom: 1px solid #555b59; grid-template-columns: 4rem minmax(0, 1fr) 3rem; text-decoration: none; }
.institution-door:hover { color: #d3c197; }
.institution-door__index { color: #909591; font-family: var(--mp-font-label); font-size: 0.68rem; letter-spacing: 0.12em; }
.institution-door__body { display: grid; align-items: baseline; gap: 0.5rem 2rem; grid-template-columns: minmax(10rem, 0.5fr) minmax(0, 1fr); }
.institution-door__body strong { font-family: var(--mp-font-heading); font-size: clamp(1.8rem, 3.5vw, 3.5rem); font-weight: 400; letter-spacing: -0.03em; line-height: 1; }
.institution-door__body span { max-width: 38rem; color: #bdbdb5; }
.institution-door__arrow { justify-self: end; font-size: 1.5rem; }

/* Membership threshold */
.threshold-section { background: var(--mp-accent); color: var(--mp-white); }
.threshold-section__grid { display: grid; gap: clamp(3rem, 8vw, 8rem); grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.9fr); }
.threshold-section h2 { max-width: 19ch; margin: 1rem 0 0; font-family: var(--mp-font-heading); font-size: clamp(2.4rem, 5vw, 5rem); font-weight: 400; letter-spacing: -0.04em; line-height: 0.98; }
.threshold-section__access { align-self: end; padding-top: 2rem; border-top: 1px solid currentColor; }
.threshold-section__access p { margin: 0.35rem 0; }
.threshold-section .action-row { margin-top: 2rem; }
.threshold-section .button--primary { border-color: var(--mp-white); background: var(--mp-white); color: var(--mp-ink); }

/* Shared access and long-form primitives */
.access-marker { display: inline-flex; align-items: center; min-height: 1.75rem; padding: 0.2rem 0.5rem; border: 1px solid currentColor; }
.access-marker--paid, .access-marker--restricted { background: var(--mp-ink); color: var(--mp-white); }
.kg-width-wide { width: min(100%, 72rem); }
.kg-width-full { width: 100%; }
.kg-width-wide, .kg-width-full { margin-inline: auto; }

/* Membership doors and restricted-content CTA */
.member-door {
    display: grid;
    border: 1px solid var(--mp-line-dark);
    background: var(--mp-paper-deep);
    grid-template-columns: minmax(0, 0.8fr) minmax(20rem, 1.2fr);
}

.member-door__heading,
.member-door__record {
    padding: clamp(2rem, 5vw, 5rem);
}

.member-door__record { border-left: 1px solid var(--mp-line-dark); }
.member-door h2 { max-width: 10ch; margin: 1rem 0; font-family: var(--mp-font-heading); font-size: clamp(3rem, 6vw, 6rem); font-weight: 400; letter-spacing: -0.055em; line-height: 0.86; }
.member-door__heading > p:last-child { max-width: 25rem; color: var(--mp-ink-soft); font-size: 1.1rem; }
.member-door__label { margin: 0; font-family: var(--mp-font-label); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.member-door ul { display: grid; margin: 2rem 0; padding: 0; border-top: 1px solid var(--mp-line); grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; }
.member-door li { padding: 0.7rem 0.75rem 0.7rem 0; border-bottom: 1px solid var(--mp-line); font-size: 0.9rem; }
.member-door li:nth-child(odd) { border-right: 1px solid var(--mp-line); }
.member-door li:nth-child(even) { padding-left: 0.75rem; }
.member-door__signin, .content-cta__signin { margin-top: 1.5rem; color: var(--mp-ink-soft); font-size: 0.9rem; }

.content-cta {
    max-width: 52rem;
    margin: clamp(3rem, 8vw, 8rem) auto;
    padding: clamp(2rem, 6vw, 5rem);
    border: 1px solid var(--mp-line-dark);
    background: var(--mp-paper-deep);
}

.content-cta h2 { max-width: 16ch; margin: 1rem 0 1.5rem; font-family: var(--mp-font-heading); font-size: clamp(2.4rem, 5vw, 4.5rem); font-weight: 400; letter-spacing: -0.045em; line-height: 0.95; }
.content-cta > p:not(.eyebrow) { max-width: 37rem; }
.content-cta__state { margin-block: 2rem !important; padding-top: 1.5rem; border-top: 1px solid var(--mp-line); }

/* Member access surface */
.member-access__header { padding-block: clamp(5rem, 11vw, 10rem); border-bottom: 1px solid var(--mp-line-dark); }
.member-access__header--open { background: var(--mp-night); color: var(--mp-paper); }
.member-access__header-grid { display: grid; align-items: end; gap: clamp(3rem, 9vw, 9rem); grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr); }
.member-access__header h1 { max-width: 12ch; margin: 0.8rem 0 0; font-family: var(--mp-font-heading); font-size: clamp(3.5rem, 9vw, 8.5rem); font-weight: 400; letter-spacing: -0.06em; line-height: 0.84; }
.member-access__header-grid > p { max-width: 32rem; margin: 0; padding-top: 1.5rem; border-top: 1px solid currentColor; color: var(--mp-ink-soft); font-size: 1.1rem; }
.member-access__header--open .member-access__header-grid > p { color: #c4c5bd; }
.access-section { padding-block: clamp(4.5rem, 9vw, 8rem); border-bottom: 1px solid var(--mp-line); }
.access-section__heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2.5rem; }
.access-section__heading h2, .account-section h2, .observer-door h2, .logged-out-door h2 { max-width: 18ch; margin: 0.6rem 0 0; font-family: var(--mp-font-heading); font-size: clamp(2rem, 4vw, 4rem); font-weight: 400; letter-spacing: -0.04em; line-height: 0.95; }
.territory-access-list { border-top: 1px solid var(--mp-line-dark); }
.territory-access-list a, .territory-access-list > div { display: flex; min-height: 5rem; align-items: center; justify-content: space-between; gap: 2rem; padding: 1rem 0; border-bottom: 1px solid var(--mp-line); text-decoration: none; }
.territory-access-list span { font-family: var(--mp-font-heading); font-size: clamp(1.5rem, 3vw, 2.75rem); }
.territory-access-list strong { font-family: var(--mp-font-label); font-size: 0.68rem; letter-spacing: 0.1em; text-align: right; text-transform: uppercase; }
.dossier-file { display: grid; align-items: center; margin-bottom: 2rem; padding: 1.5rem; border: 1px solid var(--mp-line-dark); grid-template-columns: minmax(8rem, 0.35fr) minmax(0, 1fr) auto; text-decoration: none; }
.dossier-file span { font-family: var(--mp-font-label); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.dossier-file strong { font-family: var(--mp-font-heading); font-size: clamp(1.25rem, 2.5vw, 2rem); font-weight: 400; }
.member-record-grid { display: grid; border-top: 1px solid var(--mp-line-dark); border-left: 1px solid var(--mp-line); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.member-record-grid .empty-state { grid-column: 1 / -1; border-top: 0; border-left: 0; }
.member-record-grid--single { grid-template-columns: 1fr; }
.access-section--dark { background: var(--mp-night); color: var(--mp-paper); }
.access-section--dark .eyebrow, .access-section--dark .artifact-card__classification, .access-section--dark .artifact-card__system, .access-section--dark .artifact-card__excerpt, .access-section--dark .artifact-card__footer time { color: #bdbdb5; }
.access-section--dark .artifact-card__place, .access-section--dark .empty-state h2 { color: var(--mp-paper) !important; }
.access-section--dark .artifact-card, .access-section--dark .empty-state { border-color: #5c605d; background: rgba(255, 255, 255, 0.025); color: var(--mp-paper); }
.access-section--dark .access-marker { color: var(--mp-paper); }
.access-section__split { display: grid; gap: clamp(3rem, 7vw, 7rem); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.account-section__grid { display: grid; align-items: end; gap: clamp(3rem, 9vw, 9rem); grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.7fr); }
.account-section__grid > div:last-child { padding-top: 1.5rem; border-top: 1px solid var(--mp-line-dark); }
.account-section__grid .button { margin-top: 1rem; }
.observer-door__grid, .logged-out-door__grid { display: grid; border: 1px solid var(--mp-line-dark); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.observer-door__grid > div, .logged-out-door__grid > div { padding: clamp(2rem, 5vw, 5rem); }
.observer-door__grid > div + div, .logged-out-door__grid > div + div { border-left: 1px solid var(--mp-line-dark); background: var(--mp-paper-deep); }
.observer-door__grid p:not(.eyebrow), .logged-out-door__grid p { max-width: 31rem; color: var(--mp-ink-soft); }
.observer-door__grid .button, .logged-out-door__grid .button { margin-top: 1rem; }

/* Broken Fountain Protocol */
.mission-shell { --mission-line: #5a5e5d; --mission-paper: #e9e3d7; --mission-alert: #b77a48; }
.broken-fountain { min-height: 70vh; background: #181b1f; color: var(--mission-paper); }
.mission-header { padding-block: clamp(5rem, 11vw, 10rem); border-bottom: 1px solid var(--mission-line); background: radial-gradient(circle at 82% 25%, rgba(85, 113, 116, 0.38), transparent 0 17%, transparent 18%), #181b1f; }
.mission-header__grid { display: grid; align-items: end; gap: clamp(3rem, 8vw, 8rem); grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr); }
.mission-header h1 { max-width: 12ch; margin: 0.8rem 0 0; font-family: var(--mp-font-heading); font-size: clamp(3.7rem, 10vw, 9.5rem); font-weight: 400; letter-spacing: -0.065em; line-height: 0.8; }
.mission-header__brief { max-width: 35rem; padding-top: 1.5rem; border-top: 1px solid var(--mission-line); color: #c2c3bc; }
.fixture-label { margin: 0 0 1rem; color: var(--mission-alert); font-family: var(--mp-font-label); font-size: 0.65rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.mission-loop { margin-top: 2rem; color: var(--mission-paper); font-family: var(--mp-font-label); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }

.mission-progress { position: sticky; z-index: 14; top: 0; overflow-x: auto; border-bottom: 1px solid var(--mission-line); background: rgba(24, 27, 31, 0.97); }
.mission-progress ol { display: flex; width: max-content; min-width: var(--mp-frame); margin-block: 0; padding-left: 0; list-style: none; }
.mission-progress li { display: flex; min-height: 3.5rem; align-items: center; gap: 0.6rem; padding-inline: clamp(0.8rem, 2vw, 1.4rem); border-right: 1px solid var(--mission-line); color: #858a87; font-family: var(--mp-font-label); font-size: 0.66rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; white-space: nowrap; }
.mission-progress li.is-current { background: var(--mission-paper); color: #181b1f; }
.mission-progress li.is-complete { color: var(--mission-paper); }
.mission-progress li.is-complete span::after { content: "✓"; margin-left: 0.25rem; }

.mission-section { padding-block: clamp(4.5rem, 9vw, 8rem); border-bottom: 1px solid var(--mission-line); }
.mission-split { display: grid; align-items: start; gap: clamp(3rem, 8vw, 8rem); grid-template-columns: minmax(0, 0.9fr) minmax(18rem, 1.1fr); }
.mission-section h2 { max-width: 15ch; margin: 0.75rem 0 1.5rem; font-family: var(--mp-font-heading); font-size: clamp(2.5rem, 6vw, 5.75rem); font-weight: 400; letter-spacing: -0.05em; line-height: 0.92; }
.mission-section p { color: #c2c3bc; }
.mission-editorial-content { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--mission-line); }
.mission-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: clamp(2rem, 5vw, 4rem); }
.evidence-count { margin: 0; font-family: var(--mp-font-label); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.evidence-count strong { color: var(--mission-paper); font-size: 1.2rem; }

.evidence-grid { display: grid; border-top: 1px solid var(--mission-line); border-left: 1px solid var(--mission-line); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.evidence-card { min-width: 0; border-right: 1px solid var(--mission-line); border-bottom: 1px solid var(--mission-line); }
.evidence-card details { height: 100%; }
.evidence-card summary { display: grid; min-height: 8rem; align-items: center; padding: 1.25rem; cursor: pointer; grid-template-columns: 3rem minmax(0, 1fr) auto; list-style: none; }
.evidence-card summary::-webkit-details-marker { display: none; }
.evidence-card summary:hover, .evidence-card summary:focus-visible { background: rgba(238, 232, 220, 0.07); }
.evidence-card__index, .evidence-card__type, .evidence-card__action { font-family: var(--mp-font-label); font-size: 0.62rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.evidence-card__index, .evidence-card__type { color: #969b98; }
.evidence-card__heading { display: grid; gap: 0.25rem; }
.evidence-card__heading strong { font-family: var(--mp-font-heading); font-size: clamp(1.35rem, 2.4vw, 2.15rem); font-weight: 400; line-height: 1; }
.evidence-card__action { padding: 0.35rem 0.5rem; border: 1px solid var(--mission-line); color: var(--mission-paper); }
.evidence-card__content { padding: 1.25rem 1.25rem 2rem 4.25rem; border-top: 1px solid var(--mission-line); }
.evidence-card__content > p:not(.fixture-label) { max-width: 35rem; margin: 0; color: var(--mission-paper); font-family: var(--mp-font-heading); font-size: clamp(1.2rem, 2.2vw, 1.8rem); line-height: 1.25; }
.evidence-card__content .evidence-card__note { margin-top: 1.5rem !important; color: #969b98 !important; font-family: var(--mp-font-body) !important; font-size: 0.82rem !important; }
.evidence-card.is-viewed .evidence-card__index { color: var(--mission-alert); }
.evidence-card.is-viewed .evidence-card__index::after { content: " / VIEWED"; }

.mission-compare { background: var(--mission-paper); color: #1c1f20; }
.mission-compare p { color: #535750; }
.contradiction-form fieldset { display: grid; margin: 0 0 2rem; padding: 0; border: 0; gap: 0; }
.contradiction-form legend { width: 100%; padding-bottom: 1rem; }
.contradiction-form label { display: grid; min-height: 4.5rem; align-items: center; padding: 1rem 0; border-top: 1px solid #929087; cursor: pointer; grid-template-columns: 2rem minmax(0, 1fr); }
.contradiction-form label:last-of-type { border-bottom: 1px solid #929087; }
.contradiction-form input { width: 1.15rem; height: 1.15rem; margin: 0; accent-color: var(--mp-accent); }
.contradiction-form input:focus-visible { outline-offset: 3px; }
.contradiction-form .button:disabled { cursor: not-allowed; opacity: 0.45; }

.mission-reveal { background: #263437; }
.evidence-grid--reveal { max-width: 50rem; grid-template-columns: 1fr; }
.mission-next { max-width: 50rem; margin: 2rem 0 0; padding-top: 2rem; border-top: 1px solid var(--mission-line); }
[data-mission].is-enhanced[data-stage="1"] [data-compare],
[data-mission].is-enhanced:not([data-stage="3"]) [data-reveal] { display: none; }

.mission-controls { padding-block: 1.5rem; background: #101214; }
.mission-controls__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.mission-controls p { margin: 0; color: #9da19e; font-size: 0.8rem; }
.text-button { min-height: 2.75rem; padding: 0.5rem 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--mission-paper); cursor: pointer; font-family: var(--mp-font-label); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.no-js-mission { padding-block: 1.5rem; color: var(--mission-paper); }
.mission-gate { padding-block: clamp(4rem, 10vw, 10rem); }
.mission-gate .member-door { color: var(--mp-ink); }

/* Canonical transmission and institution registers */
.records-header,
.institution-header {
    padding-block: clamp(5rem, 11vw, 10rem);
}

.records-header__grid,
.institution-header__grid {
    display: grid;
    align-items: end;
    gap: clamp(3rem, 9vw, 9rem);
    grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr);
}

.records-header h1,
.institution-header h1 {
    margin: 0.8rem 0 0;
    font-family: var(--mp-font-heading);
    font-size: clamp(4rem, 11vw, 10rem);
    font-weight: 400;
    letter-spacing: -0.065em;
    line-height: 0.8;
}

.records-header__grid > div:last-child,
.institution-header__brief {
    max-width: 34rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--mp-line-dark);
    color: var(--mp-ink-soft);
}

.records-header__rule {
    margin-top: 2rem;
    font-family: var(--mp-font-label);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.institution-header {
    background: var(--mp-night);
    color: var(--mp-paper);
}

.institution-header .eyebrow,
.institution-header__brief {
    color: #bdbdb5;
}

.institution-header__brief { border-color: #686c69; }
.institution-header__question { margin: 0; color: var(--mp-paper); font-family: var(--mp-font-heading); font-size: clamp(1.5rem, 2.6vw, 2.4rem); line-height: 1.2; }
.institution-header__brief > p:last-child:not(:first-child) { margin: 1.5rem 0 0; }
.institution--archive .institution-header { background: #34322d; }
.institution--workshop .institution-header { background: #343832; }
.institution--academy .institution-header { background: #3d3932; }
.institution--field-office .institution-header { background: #2d3939; }
.institution--underlayer .institution-header { background: #17191d; }
.records-register { background: var(--mp-paper-deep); }
.record-grid { display: grid; border-top: 1px solid var(--mp-line-dark); border-left: 1px solid var(--mp-line); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.record-grid .empty-state { grid-column: 1 / -1; border-top: 0; border-left: 0; }
.pagination-wrap:empty { display: none; }
.pagination-wrap { margin-top: 3rem; }
.pagination { display: grid; align-items: center; grid-template-columns: 1fr auto 1fr; font-family: var(--mp-font-label); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; }
.pagination .older-posts { justify-self: end; }
.pagination .newer-posts { justify-self: start; }
.pagination .page-number { grid-column: 2; }

/* Atlas */
.atlas-header {
    padding-block: clamp(5rem, 12vw, 11rem);
}

.atlas-header h1 {
    max-width: 10ch;
    margin: 1rem 0;
    font-family: var(--mp-font-heading);
    font-size: clamp(4rem, 12vw, 11rem);
    font-weight: 400;
    letter-spacing: -0.06em;
    line-height: 0.82;
}

.atlas-header__intro,
.atlas-introduction {
    max-width: 42rem;
    color: var(--mp-ink-soft);
    font-size: clamp(1.05rem, 1.8vw, 1.3rem);
}

.atlas-introduction {
    margin-top: calc(var(--mp-space-section) * -0.5);
    margin-bottom: var(--mp-space-section);
}

.atlas-territories { background: var(--mp-paper-deep); }
.city-grid { display: grid; grid-template-columns: minmax(0, 1fr); }
.city-card { border: 1px solid var(--mp-line-dark); }
.city-card__link { display: grid; min-height: 36rem; grid-template-columns: minmax(0, 1.3fr) minmax(19rem, 0.7fr); text-decoration: none; }
.city-card__visual { min-height: 24rem; overflow: hidden; background: var(--mp-night); }
.city-card__visual img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms ease; }
.city-card__link:hover .city-card__visual img { transform: scale(1.015); }
.city-card__placeholder { display: flex; height: 100%; align-items: flex-end; justify-content: space-between; padding: 2rem; background: radial-gradient(circle at 30% 35%, rgba(85, 113, 116, 0.8), transparent 0 18%, transparent 19%), repeating-linear-gradient(90deg, transparent 0 4.9rem, rgba(255, 255, 255, 0.08) 5rem), var(--mp-night); color: var(--mp-paper); font-family: var(--mp-font-label); font-size: clamp(2rem, 7vw, 7rem); font-weight: 700; letter-spacing: -0.05em; }
.city-card__body { display: flex; align-items: flex-start; justify-content: center; flex-direction: column; padding: clamp(2rem, 5vw, 5rem); border-left: 1px solid var(--mp-line-dark); }
.city-card__body h3 { margin: 1rem 0; font-family: var(--mp-font-heading); font-size: clamp(2.7rem, 6vw, 6rem); font-weight: 400; letter-spacing: -0.05em; line-height: 0.9; }
.city-card__body p { max-width: 28rem; margin: 0; color: var(--mp-ink-soft); font-size: 1.1rem; }
.city-card__system { margin-top: 2rem; color: var(--mp-ink-soft); font-family: var(--mp-font-label); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.12em; }
.city-card__enter { margin-top: 2.5rem; padding-bottom: 0.25rem; border-bottom: 1px solid; font-family: var(--mp-font-label); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }

/* Footer */
.site-footer { padding-block: 3rem; border-top: 1px solid #555b59; background: var(--mp-night); color: var(--mp-paper); }
.site-footer__inner { display: grid; width: var(--mp-frame); align-items: end; gap: 2.5rem; margin-inline: auto; grid-template-columns: minmax(0, 1fr) minmax(17rem, 0.7fr) auto; }
.site-mark--footer { font-size: 1.2rem; }
.site-footer p { max-width: 24rem; margin: 0.6rem 0 0; color: #bdbdb5; }
.site-footer__nav { display: grid; gap: 0.4rem 1.5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.site-footer__nav a, .site-footer small { color: #bdbdb5; font-family: var(--mp-font-label); font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; }

@media (max-width: 64rem) {
    .site-header__inner { position: relative; flex-wrap: wrap; }
    .site-navigation { width: 100%; order: 3; flex-wrap: wrap; border-top: 1px solid var(--mp-line); }
    .site-navigation a { flex: 1 1 auto; border-bottom: 1px solid var(--mp-line); }
    .js .nav-toggle { display: flex; align-items: center; justify-content: center; gap: 0.6rem; }
    .js .site-header__inner { flex-wrap: nowrap; }
    .js .site-navigation { position: absolute; top: 100%; right: 0; left: 0; display: none; border: 1px solid var(--mp-line); background: var(--mp-paper); }
    .js .site-header[data-nav-open="true"] .site-navigation { display: flex; }
    .js .site-navigation a { width: 50%; min-height: 3.5rem; border-bottom: 1px solid var(--mp-line); }
    .territory-door { grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.8fr); }
    .site-footer__inner { grid-template-columns: 1fr 1fr; }
    .site-footer small { grid-column: 1 / -1; }
    .record-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .member-record-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .member-record-grid--single { grid-template-columns: 1fr; }
    .evidence-grid { grid-template-columns: 1fr; }
}

@media (max-width: 48rem) {
    :root { --mp-frame: min(100% - 1.25rem, 86rem); --mp-space-section: 4.5rem; }
    .section-heading { align-items: flex-start; flex-direction: column; gap: 1rem; }
    .gate-hero { min-height: auto; }
    .gate-hero__grid { display: block; }
    .gate-hero__copy { min-height: calc(100svh - var(--mp-header-height)); padding: 4rem 0; }
    .gate-hero h1 { font-size: clamp(3.3rem, 14vw, 6rem); }
    .gate-hero__register { display: none; }
    .territory-door { min-height: 0; grid-template-columns: 1fr; }
    .territory-door__visual { min-height: 22rem; }
    .territory-door__body { padding: 2rem 1.25rem 2.5rem; border-top: 1px solid var(--mp-line-dark); border-left: 0; }
    .signal-grid { grid-template-columns: 1fr; }
    .institution-door__body { align-items: start; grid-template-columns: 1fr; }
    .threshold-section__grid, .site-footer__inner { grid-template-columns: 1fr; }
    .site-footer small { grid-column: auto; }
    .site-navigation a { width: 50%; flex-grow: 0; }
    .city-card__link { min-height: 0; grid-template-columns: 1fr; }
    .city-card__visual { min-height: 22rem; }
    .city-card__body { padding: 2rem 1.25rem 2.5rem; border-top: 1px solid var(--mp-line-dark); border-left: 0; }
    .records-header__grid, .institution-header__grid { align-items: start; grid-template-columns: 1fr; }
    .record-grid { grid-template-columns: 1fr; }
    .member-door { grid-template-columns: 1fr; }
    .member-door__record { border-top: 1px solid var(--mp-line-dark); border-left: 0; }
    .member-access__header-grid, .account-section__grid, .access-section__split { grid-template-columns: 1fr; }
    .member-record-grid { grid-template-columns: 1fr; }
    .observer-door__grid, .logged-out-door__grid { grid-template-columns: 1fr; }
    .observer-door__grid > div + div, .logged-out-door__grid > div + div { border-top: 1px solid var(--mp-line-dark); border-left: 0; }
    .mission-header__grid, .mission-split { grid-template-columns: 1fr; }
    .mission-section-heading { align-items: flex-start; flex-direction: column; }
    .mission-controls__inner { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 30rem) {
    .site-mark__index { display: none; }
    .site-navigation a, .js .site-navigation a { width: 100%; }
    .action-row { align-items: stretch; flex-direction: column; }
    .action-row .button, .action-row .text-link { width: 100%; }
    .action-row .text-link { padding-block: 0.75rem; }
    .territory-door__visual { min-height: 18rem; }
    .institution-door { grid-template-columns: 2.25rem minmax(0, 1fr) 1.5rem; }
    .site-footer__nav { grid-template-columns: 1fr; }
    .member-door ul { grid-template-columns: 1fr; }
    .member-door li:nth-child(odd) { border-right: 0; }
    .member-door li:nth-child(even) { padding-left: 0; }
    .dossier-file { align-items: start; gap: 0.75rem; grid-template-columns: 1fr auto; }
    .dossier-file strong { grid-column: 1 / -1; grid-row: 2; }
    .territory-access-list a, .territory-access-list > div { align-items: flex-start; flex-direction: column; gap: 0.5rem; }
    .territory-access-list strong { text-align: left; }
    .evidence-card summary { min-height: 7rem; grid-template-columns: 2.25rem minmax(0, 1fr); }
    .evidence-card__action { grid-column: 2; justify-self: start; margin-top: 0.75rem; }
    .evidence-card__content { padding-left: 3.5rem; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
    .artifact-card__image img { transition: none; }
}
