/* ============================================================ tokens */
@font-face {
    font-display: swap;
    font-family: 'Roboto Deck';
    font-style: normal;
    font-weight: 500;
    src: url('/typeset/roboto-latin-500-normal.woff2') format('woff2');
}
@font-face {
    font-display: swap;
    font-family: 'Roboto Deck';
    font-style: normal;
    font-weight: 600 700;
    src: url('/typeset/roboto-latin-700-normal.woff2') format('woff2');
}
@font-face {
    font-display: swap;
    font-family: 'Sans Reader';
    font-style: normal;
    font-weight: 400;
    src: url('/typeset/open-sans-latin-400-normal.woff2') format('woff2');
}
@font-face {
    font-display: swap;
    font-family: 'Sans Reader';
    font-style: normal;
    font-weight: 600;
    src: url('/typeset/open-sans-latin-600-normal.woff2') format('woff2');
}
@font-face {
    font-display: swap;
    font-family: 'Sans Reader';
    font-style: normal;
    font-weight: 700;
    src: url('/typeset/open-sans-latin-700-normal.woff2') format('woff2');
}

:root {
    --bd-heavy: 6px;
    --bd-light: 1px;
    --bd-mid: 4px;
    --bz-in-out: cubic-bezier(0.37, 0.09, 0.48, 0.89);
    --bz-pop: cubic-bezier(0.43, 1.2, 0.61, 1.25);
    --bz-release: cubic-bezier(0.15, 0.85, 0.43, 0.99);
    --cont-inset-desktop: 48px;
    --cont-inset-mobile: 16px;
    --cont-narrow: 590px;
    --cont-pad-md: 24px;
    --cont-readable: 1040px;
    --cont-site: 1040px;
    --dep-step-0: none;
    --dep-step-1: none;
    --dep-step-2: none;
    --dep-step-3: 0 0 0 1px rgba(0, 0, 0, 0.32);
    --dep-step-4: 0 0 0 2px rgba(0, 0, 0, 0.38), 0 8px 24px rgba(0, 0, 0, 0.42);
    --dur-base: 190ms;
    --dur-brisk: 105ms;
    --dur-long: 329ms;
    --fnt-copy: 'Sans Reader', system-ui, -apple-system, sans-serif;
    --fnt-display: 'Roboto Deck', system-ui, -apple-system, sans-serif;
    --hd-height-mobile: 56px;
    --hd-size-desktop: 64px;
    --ink-blend-a: #fec182;
    --ink-core: #cb2801;
    --ink-edge: #332a26;
    --ink-fade-bottom: #ffa636;
    --ink-focus: #fe9a08;
    --ink-letters: #ffffff;
    --ink-raised: #1b1614;
    --ink-rg-banner: #bf1e2e;
    --ink-sheet: #0e0d0d;
    --ink-spot-deep: #d96e02;
    --ink-stroke-heavy: #4d3c34;
    --ink-subtle: #bdbdbd;
    --lh-normal: 1.7;
    --lh-roomy: 2;
    --lh-snug: 1.2;
    --logo-h: 60px;
    --ls-base: 0;
    --ls-open: 0.02em;
    --ls-tight: -0.01em;
    --rad-circle: 50%;
    --rad-lozenge: 9999px;
    --rad-step-0: 0;
    --rad-step-1: 0;
    --rad-step-2: 4px;
    --rad-step-3: 6px;
    --rad-step-4: 10px;
    --rad-step-5: 10px;
    --rad-step-6: 12px;
    --rad-step-7: 12px;
    --sec-y: 46px;
    --shell: calc(var(--cont-site) + 2 * var(--cont-inset-desktop));
    --st-step-0: 2px;
    --st-step-1: 6px;
    --st-step-2: 10px;
    --st-step-3: 16px;
    --st-step-4: 48px;
    --st-step-5: 80px;
    --st-step-6: 128px;
    --st-step-7: 200px;
    --ts-body: clamp(17px, 1.1vw, 19px);
    --ts-display-2: clamp(24px, 3vw, 36px);
    --ts-display-3: clamp(20px, 2vw, 26px);
    --ts-display-4: clamp(18px, 1.5vw, 21px);
    --ts-h5: 18px;
    --ts-micro-head: 16px;
    --ts-mini: 14px;
    --ts-small: 16px;
    --ts-title: clamp(28px, 4.2vw, 48px);
    --wt-base: 400;
    --wt-semi: 500;
    --wt-strong: 600;
}

@media (max-width: 860px) {
    :root {
        --cont-inset-desktop: 20px;
        --sec-y: 34px;
        --ts-body: 18px;
        --ts-display-2: 26px;
        --ts-display-3: 22px;
        --ts-display-4: 19px;
        --ts-h5: 17px;
        --ts-micro-head: 15px;
        --ts-mini: 13px;
        --ts-small: 15px;
        --ts-title: clamp(26px, 7vw, 32px);
    }
}

/* ============================================================ reset + base */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

html,
body {
    overflow-x: clip;
}

body {
    background: var(--ink-sheet);
    color: var(--ink-letters);
    display: flex;
    flex-direction: column;
    font-family: var(--fnt-copy);
    font-size: var(--ts-body);
    font-weight: var(--wt-base);
    line-height: var(--lh-roomy);
    margin: 0;
    min-height: 100vh;
}

img {
    max-width: 100%;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    overflow-wrap: anywhere;
    letter-spacing: var(--ls-tight);
    line-height: var(--lh-snug);
    margin: 0 0 var(--st-step-3);
}

h1 {
    font-family: var(--fnt-display);
    font-size: var(--ts-title);
    font-weight: var(--wt-strong);
}

h2 {
    font-family: var(--fnt-display);
    font-size: var(--ts-display-2);
    font-weight: var(--wt-strong);
}

h3 {
    font-family: var(--fnt-copy);
    font-size: var(--ts-display-3);
    font-weight: var(--wt-strong);
}

h4 {
    font-family: var(--fnt-copy);
    font-size: var(--ts-display-4);
    font-weight: var(--wt-strong);
}

p {
    margin: 0 0 var(--st-step-3);
}

a {
    color: var(--ink-focus);
}

a:hover {
    color: var(--ink-blend-a);
}

blockquote {
    margin: 0;
}

.page-main {
    display: block;
    flex: 1 0 auto;
}

.page-main [id] {
    scroll-margin-top: 150px;
}

.page-main:has(> .sanctuaire-profond) {
    display: flex;
    flex-direction: column;
}

.skip-jump {
    background: var(--ink-focus);
    border-radius: var(--rad-step-2);
    color: var(--ink-sheet);
    left: 12px;
    padding: 10px 16px;
    position: absolute;
    top: 12px;
    z-index: 200;
}

.skip-jump:not(:focus) {
    top: -200px !important;
}

.sr-only {
    clip: rect(0 0 0 0);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

[data-onview] {
    filter: blur(6px);
    opacity: 0;
    transform: translateY(28px);
    transition: opacity var(--dur-long) var(--bz-release), transform var(--dur-long) var(--bz-release), filter var(--dur-long) var(--bz-release);
}

[data-onview].is-visible {
    filter: blur(0);
    opacity: 1;
    transform: none;
}

/* ============================================================ colonnade-raffine (CTA-08) */
.colonnade-raffine {
    background: var(--ink-core);
    color: var(--ink-letters);
    margin-inline: calc(50% - 50vw);
    padding-block: calc(var(--sec-y) + 10px);
    width: 100vw;
}

.colonnade-raffine-guts {
    margin-inline: auto;
    max-width: var(--shell);
    padding-inline: var(--cont-inset-desktop);
    text-align: center;
}

.colonnade-raffine-lede {
    background: var(--ink-core);
    color: var(--ink-letters);
    font-size: var(--ts-title);
    letter-spacing: var(--ls-tight);
    margin-bottom: var(--st-step-3);
    text-transform: uppercase;
}

.colonnade-raffine-prose {
    background: var(--ink-core);
    color: var(--ink-letters);
    font-size: var(--ts-h5);
    line-height: var(--lh-normal);
    margin-inline: auto;
    max-width: var(--cont-narrow);
}

.colonnade-raffine-push {
    background: var(--ink-sheet);
    border: var(--bd-light) solid var(--ink-letters);
    color: var(--ink-letters);
    display: inline-flex;
    align-items: center;
    font-family: var(--fnt-display);
    font-weight: var(--wt-semi);
    margin-top: var(--st-step-3);
    min-height: 56px;
    padding-inline: var(--st-step-4);
    text-decoration: none;
    transition: outline-color var(--dur-base) var(--bz-release);
    outline: 2px solid transparent;
    outline-offset: 3px;
}

.colonnade-raffine-push:hover {
    background: var(--ink-sheet);
    color: var(--ink-letters);
    outline-color: var(--ink-focus);
}

.colonnade-raffine-tag {
    background: var(--ink-core);
    color: var(--ink-letters);
    display: block;
    font-size: var(--ts-mini);
    line-height: var(--lh-normal);
    margin-inline: auto;
    margin-top: var(--st-step-3);
    max-width: var(--cont-narrow);
}

.colonnade-raffine-hop {
    background: var(--ink-core);
    color: var(--ink-letters);
    text-underline-offset: 3px;
}

.colonnade-raffine-hop:hover {
    background: var(--ink-core);
    color: var(--ink-letters);
    text-decoration-thickness: 3px;
}

/* ============================================================ credence-austere (REV-05) */
.credence-austere {
    padding-block: var(--sec-y);
}

.credence-austere-guts {
    margin-inline: auto;
    max-width: var(--shell);
    padding-inline: var(--cont-inset-desktop);
}

.credence-austere-lede {
    margin-bottom: var(--st-step-4);
}

.credence-austere-queue {
    border-left: var(--bd-light) solid var(--ink-focus);
    list-style: none;
    margin: 0;
    padding: 0 0 0 var(--st-step-4);
}

.credence-austere-one {
    margin-bottom: var(--st-step-4);
    padding-left: var(--st-step-3);
    position: relative;
}

.credence-austere-one:last-child {
    margin-bottom: 0;
}

.credence-austere-dot {
    background: var(--ink-focus);
    border-radius: var(--rad-circle);
    height: 16px;
    left: calc(-1 * var(--st-step-4) - 8px);
    position: absolute;
    top: 10px;
    width: 16px;
}

.credence-austere-head {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: var(--st-step-2);
    justify-content: space-between;
}

.credence-austere-who {
    background: var(--ink-sheet);
    color: var(--ink-subtle);
    font-size: var(--ts-small);
    font-weight: var(--wt-strong);
}

.credence-austere-stars {
    background: var(--ink-sheet);
    color: var(--ink-focus);
    font-size: var(--ts-small);
    letter-spacing: 2px;
}

.credence-austere-score {
    background: var(--ink-sheet);
    color: var(--ink-subtle);
    font-size: var(--ts-mini);
    margin-left: var(--st-step-1);
}

.credence-austere-quote {
    background: var(--ink-sheet);
    color: var(--ink-letters);
    font-size: var(--ts-body);
    line-height: var(--lh-normal);
    margin-top: var(--st-step-2);
}

/* ============================================================ dais-vaste (TABLE-07) */
.dais-vaste {
    padding-block: var(--sec-y);
}

.dais-vaste-guts {
    margin-inline: auto;
    max-width: var(--shell);
    padding-inline: var(--cont-inset-desktop);
}

.dais-vaste-lede {
    margin-bottom: var(--st-step-4);
}

.dais-vaste-scroll {
    overflow-x: auto;
}

.dais-vaste-board {
    border-collapse: collapse;
    min-width: 640px;
    width: 100%;
}

.dais-vaste-board th {
    background: var(--ink-core);
    color: var(--ink-letters);
    font-family: var(--fnt-display);
    font-size: var(--ts-small);
    letter-spacing: var(--ls-open);
    padding: var(--st-step-3);
    text-align: left;
}

.dais-vaste-board td {
    background: var(--ink-sheet);
    border-bottom: var(--bd-light) solid var(--ink-edge);
    color: var(--ink-letters);
    font-size: var(--ts-small);
    hyphens: none;
    line-height: var(--lh-normal);
    overflow-wrap: break-word;
    padding: var(--st-step-3);
    word-break: normal;
}

.dais-vaste-board td:nth-child(even) {
    background: #17110f;
    color: var(--ink-letters);
}

/* ============================================================ ecrin-dense (FOOT-04 + RG-07) */
.ecrin-dense {
    background: var(--ink-sheet);
    border-top: var(--bd-light) solid var(--ink-edge);
    color: var(--ink-subtle);
    position: relative;
}

.ecrin-dense-rg {
    background: var(--ink-sheet);
    border-bottom: var(--bd-light) solid var(--ink-rg-banner);
    color: var(--ink-subtle);
    display: block;
    font-size: var(--ts-mini);
    line-height: var(--lh-normal);
    margin-inline: auto;
    max-width: var(--shell);
    padding: var(--st-step-2) var(--cont-inset-desktop);
    text-align: center;
}

.ecrin-dense-badge {
    background: var(--ink-rg-banner);
    border-radius: var(--rad-step-2);
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    font-weight: var(--wt-strong);
    margin-right: var(--st-step-1);
    padding: 1px 7px;
}

.ecrin-dense-prose {
    background: var(--ink-sheet);
    color: var(--ink-subtle);
}

.ecrin-dense-guts {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: var(--st-step-2);
    justify-content: space-between;
    margin-inline: auto;
    max-width: var(--shell);
    min-height: 64px;
    padding: var(--st-step-2) var(--cont-inset-desktop);
}

.ecrin-dense-note {
    background: var(--ink-sheet);
    color: var(--ink-subtle);
    font-size: 13px;
    min-width: 0;
}

.ecrin-dense-nav {
    display: block;
}

.ecrin-dense-queue {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.ecrin-dense-one + .ecrin-dense-one {
    border-left: var(--bd-light) solid var(--ink-edge);
    padding-left: 8px;
}

.ecrin-dense-hop {
    background: var(--ink-sheet);
    color: var(--ink-subtle);
    font-size: 13px;
    letter-spacing: var(--ls-open);
    text-decoration: none;
    text-transform: uppercase;
}

.ecrin-dense-hop:hover {
    background: var(--ink-sheet);
    color: var(--ink-letters);
}

/* ============================================================ ecrin-etroit (HERO-07) */
.ecrin-etroit {
    display: block;
}

.ecrin-etroit-figure {
    display: block;
    margin: 0;
    position: relative;
}

.ecrin-etroit-figure::after {
    background: linear-gradient(180deg, rgba(14, 13, 13, 0) 40%, var(--ink-sheet) 100%);
    content: '';
    inset: 0;
    position: absolute;
}

.ecrin-etroit-figure img {
    display: block;
    height: 400px;
    object-fit: cover;
    object-position: center 42%;
    width: 100%;
}

.ecrin-etroit-guts {
    margin-inline: auto;
    max-width: var(--shell);
    padding-block: var(--sec-y);
    padding-inline: var(--cont-inset-desktop);
}

.ecrin-etroit-meat {
    display: block;
}

.ecrin-etroit-subtitle {
    color: var(--ink-subtle);
    font-size: var(--ts-h5);
    line-height: var(--lh-normal);
    max-width: var(--cont-narrow);
}

.ecrin-etroit-deck {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: var(--st-step-3);
    margin-top: var(--st-step-3);
}

.ecrin-etroit-tag {
    color: var(--ink-subtle);
    font-size: var(--ts-mini);
    line-height: var(--lh-normal);
    max-width: var(--cont-narrow);
}

/* ============================================================ ecrin-fluide (HEAD-CENTER) */
.ecrin-fluide {
    background: var(--ink-sheet);
    color: var(--ink-letters);
    position: sticky;
    top: 0;
    z-index: 60;
    transition: padding-block var(--dur-base) var(--bz-release);
}

.ecrin-fluide-crown {
    align-items: center;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    margin-inline: auto;
    max-width: var(--shell);
    min-height: 76px;
    padding-inline: 32px;
}

.ecrin-fluide-mark {
    display: inline-flex;
    flex-shrink: 0;
    grid-column: 2;
    justify-self: center;
}

.ecrin-fluide-mark img {
    display: block;
    flex-shrink: 0;
    height: var(--logo-h);
    width: auto;
}

.ecrin-fluide.is-shrunk {
    --logo-h: 42px;
}

.ecrin-fluide.is-shrunk .ecrin-fluide-crown {
    min-height: 58px;
}

.ecrin-fluide-void {
    display: block;
    grid-column: 3;
}

.ecrin-fluide-menu-switch {
    align-items: center;
    background: var(--ink-raised);
    border: 0;
    color: var(--ink-letters);
    cursor: pointer;
    display: none;
    font-family: var(--fnt-display);
    font-size: var(--ts-mini);
    gap: 8px;
    grid-column: 1;
    justify-self: start;
    min-height: 44px;
    padding: 0 12px;
}

.ecrin-fluide-lines {
    background: var(--ink-letters);
    display: block;
    height: 2px;
    position: relative;
    width: 18px;
}

.ecrin-fluide-lines::before,
.ecrin-fluide-lines::after {
    background: var(--ink-letters);
    content: '';
    height: 2px;
    left: 0;
    position: absolute;
    width: 18px;
}

.ecrin-fluide-lines::before {
    top: -6px;
}

.ecrin-fluide-lines::after {
    top: 6px;
}

.ecrin-fluide-word {
    background: var(--ink-raised);
    color: var(--ink-letters);
    white-space: nowrap;
}

.ecrin-fluide-file {
    margin-inline: auto;
    max-width: var(--shell);
    min-height: 64px;
    padding-inline: 32px;
}

.ecrin-fluide-nav {
    display: block;
}

.ecrin-fluide-queue {
    align-items: stretch;
    display: flex;
    flex-wrap: nowrap;
    gap: var(--st-step-3);
    justify-content: center;
    list-style: none;
    margin: 0;
    min-height: 64px;
    padding: 0;
}

.ecrin-fluide-one {
    display: flex;
    flex: 0 0 auto;
}

.ecrin-fluide-one[hidden] {
    display: none;
}

.ecrin-fluide-hop {
    align-items: center;
    background: var(--ink-sheet);
    border-top: 3px solid transparent;
    color: var(--ink-letters);
    display: inline-flex;
    font-family: var(--fnt-copy);
    font-size: 16px;
    font-variant-caps: small-caps;
    font-weight: 400;
    min-height: 44px;
    text-decoration: none;
    white-space: nowrap;
}

.ecrin-fluide-hop:hover {
    background: var(--ink-sheet);
    color: var(--ink-focus);
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 6px;
}

.ecrin-fluide-hop[aria-current] {
    background: var(--ink-sheet);
    border-top-color: var(--ink-focus);
    color: var(--ink-focus);
}

.ecrin-fluide-more {
    position: relative;
}

.ecrin-fluide-more-switch {
    align-items: center;
    background: var(--ink-sheet);
    border: 0;
    border-top: 3px solid transparent;
    color: var(--ink-letters);
    cursor: pointer;
    display: inline-flex;
    font-family: var(--fnt-copy);
    font-size: 16px;
    font-variant-caps: small-caps;
    font-weight: 400;
    gap: 6px;
    min-height: 44px;
    white-space: nowrap;
}

.ecrin-fluide-more-switch::after {
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid currentColor;
    content: '';
    display: inline-block;
}

.ecrin-fluide-more-switch:hover {
    background: var(--ink-sheet);
    color: var(--ink-focus);
}

.ecrin-fluide-more-pane {
    background: var(--ink-raised);
    border: var(--bd-light) solid var(--ink-stroke-heavy);
    display: none;
    list-style: none;
    margin: 0;
    max-height: 70vh;
    min-width: 200px;
    overflow-y: auto;
    padding: var(--st-step-1);
    position: absolute;
    right: 0;
    top: 100%;
    z-index: 70;
}

.ecrin-fluide-more-pane.is-open {
    display: block;
}

.ecrin-fluide-more-pane .ecrin-fluide-one {
    display: block;
}

.ecrin-fluide-more-pane .ecrin-fluide-hop {
    background: var(--ink-raised);
    border-top-color: transparent;
    color: var(--ink-letters);
    display: flex;
    padding: 0 var(--st-step-2);
    width: 100%;
}

.ecrin-fluide-more-pane .ecrin-fluide-hop:hover {
    background: var(--ink-raised);
    color: var(--ink-focus);
}

.ecrin-fluide-pane {
    background: var(--ink-raised);
    display: none;
    inset-inline: 0;
    max-height: 72vh;
    overflow-y: auto;
    padding: var(--st-step-2) 0;
    position: absolute;
    top: 100%;
    z-index: 65;
}

.ecrin-fluide-pane.is-open {
    display: block;
}

.ecrin-fluide-pane-queue {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ecrin-fluide-pane-one {
    display: block;
}

.ecrin-fluide-pane-hop {
    align-items: center;
    background: var(--ink-raised);
    border-bottom: var(--bd-light) solid var(--ink-edge);
    color: var(--ink-letters);
    display: flex;
    font-size: var(--ts-small);
    font-variant-caps: small-caps;
    min-height: 48px;
    padding: 0 20px;
    text-decoration: none;
}

.ecrin-fluide-pane-hop[aria-current] {
    background: var(--ink-raised);
    color: var(--ink-focus);
}

.ecrin-fluide-scrim {
    background: rgba(0, 0, 0, 0.5);
    display: none;
    inset: 0;
    pointer-events: none;
    position: fixed;
    z-index: 55;
}

.ecrin-fluide-scrim.is-open {
    display: block;
}

/* ============================================================ enceinte-mince (FAQ-06) */
.enceinte-mince {
    padding-block: var(--sec-y);
}

.enceinte-mince-guts {
    margin-inline: auto;
    max-width: var(--shell);
    padding-inline: var(--cont-inset-desktop);
}

.enceinte-mince-lede {
    margin-bottom: var(--st-step-4);
}

.enceinte-mince-toc {
    background: #1a100e;
    border-radius: var(--rad-step-3);
    display: block;
    margin-bottom: var(--st-step-4);
    padding: var(--st-step-4);
}

.enceinte-mince-queue {
    display: block;
    margin: 0;
    padding-left: var(--st-step-3);
}

.enceinte-mince-one {
    margin-bottom: var(--st-step-1);
}

.enceinte-mince-hop {
    background: #1a100e;
    color: var(--ink-subtle);
    font-size: var(--ts-body);
    text-decoration: none;
}

.enceinte-mince-hop:hover {
    background: #1a100e;
    color: var(--ink-letters);
    text-decoration: underline;
    text-decoration-thickness: 2px;
}

.enceinte-mince-board {
    display: block;
}

.enceinte-mince-tile {
    background: var(--ink-raised);
    border-bottom: var(--bd-light) solid var(--ink-edge);
    color: var(--ink-letters);
    padding: var(--st-step-3) var(--st-step-3) var(--st-step-3);
    scroll-margin-top: 150px;
}

.enceinte-mince-sum {
    align-items: center;
    cursor: pointer;
    display: flex;
    gap: var(--st-step-2);
    justify-content: space-between;
    list-style: none;
}

.enceinte-mince-sum::-webkit-details-marker {
    display: none;
}

.enceinte-mince-hdr {
    margin: 0;
}

.enceinte-mince-sign {
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 7px solid var(--ink-focus);
    flex-shrink: 0;
    height: 0;
    transition: transform var(--dur-base) var(--bz-in-out);
    width: 0;
}

.enceinte-mince-tile[open] .enceinte-mince-sign {
    transform: rotate(180deg);
}

.enceinte-mince-meat {
    color: var(--ink-subtle);
    line-height: var(--lh-normal);
    overflow: hidden;
    padding-top: var(--st-step-2);
}

/* ============================================================ estafette-leger (LEGAL-02) */
.estafette-leger {
    padding-block: var(--sec-y);
}

.estafette-leger-guts {
    margin-inline: auto;
    max-width: var(--shell);
    padding-inline: var(--cont-inset-desktop);
}

.estafette-leger-lead {
    color: var(--ink-subtle);
    font-size: calc(var(--ts-body) * 1.1);
    line-height: var(--lh-normal);
}

.estafette-leger-meat {
    counter-reset: legal-section;
    display: block;
}

.estafette-leger-one {
    counter-increment: legal-section;
    margin-top: var(--st-step-4);
}

.estafette-leger-one .estafette-leger-hdr::before {
    color: var(--ink-focus);
    content: counter(legal-section) '. ';
    font-family: var(--fnt-display);
    font-weight: var(--wt-strong);
    margin-right: var(--st-step-1);
}

.estafette-leger-hdr {
    margin-bottom: var(--st-step-2);
}

.estafette-leger-one p {
    line-height: var(--lh-normal);
    padding-left: var(--st-step-3);
}

.estafette-leger-aside {
    border-top: var(--bd-light) solid var(--ink-edge);
    margin-top: var(--st-step-4);
    padding-top: var(--st-step-3);
}

.estafette-leger-queue {
    line-height: var(--lh-normal);
    margin: 0;
    padding-left: var(--st-step-3);
}

.estafette-leger-note {
    color: var(--ink-subtle);
    font-size: var(--ts-small);
    line-height: var(--lh-normal);
    margin-top: var(--st-step-4);
}

/* ============================================================ fondement-sombre (COOK-06) */
.fondement-sombre {
    background: var(--ink-raised);
    border-top: var(--bd-mid) solid var(--ink-core);
    bottom: 0;
    clip-path: inset(0 100% 0 0);
    color: var(--ink-letters);
    inset-inline: 0;
    position: fixed;
    transition: clip-path var(--dur-long) var(--bz-release);
    z-index: 120;
}

.fondement-sombre.is-open {
    clip-path: inset(0 0 0 0);
}

.fondement-sombre.is-gone {
    clip-path: inset(0 0 0 100%);
}

.fondement-sombre-guts {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: var(--st-step-3);
    justify-content: space-between;
    margin-inline: auto;
    max-width: var(--shell);
    padding: var(--st-step-3) var(--cont-inset-desktop);
}

.fondement-sombre-note {
    background: var(--ink-raised);
    color: var(--ink-subtle);
    flex: 1 1 320px;
    font-size: var(--ts-small);
    line-height: var(--lh-normal);
    margin: 0;
}

.fondement-sombre-deck {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: var(--st-step-2);
}

.fondement-sombre-hop {
    align-items: center;
    background: var(--ink-raised);
    color: var(--ink-focus);
    display: inline-flex;
    font-size: var(--ts-mini);
    min-height: 40px;
    padding: 0 6px;
}

.fondement-sombre-decline {
    background: var(--ink-raised);
    border: var(--bd-light) solid var(--ink-stroke-heavy);
    color: var(--ink-letters);
    cursor: pointer;
    font-family: var(--fnt-display);
    font-size: var(--ts-mini);
    min-height: 44px;
    padding: 0 18px;
    white-space: nowrap;
}

.fondement-sombre-accept {
    background: var(--ink-focus);
    border: 0;
    color: var(--ink-sheet);
    cursor: pointer;
    font-family: var(--fnt-display);
    font-size: var(--ts-mini);
    font-weight: var(--wt-semi);
    min-height: 44px;
    padding: 0 18px;
    white-space: nowrap;
}

.fondement-sombre-accept:hover {
    background: var(--ink-blend-a);
    color: var(--ink-sheet);
}

/* ============================================================ guéridon-mince (PROSE-20) */
.guéridon-mince {
    padding-block: var(--sec-y);
}

.guéridon-mince-guts {
    margin-inline: auto;
    max-width: var(--shell);
    padding-inline: var(--cont-inset-desktop);
}

.guéridon-mince-meat {
    display: block;
}

.guéridon-mince-meat + .guéridon-mince-meat {
    margin-top: 56px;
}

.guéridon-mince-hdr {
    font-family: var(--fnt-display);
    font-weight: var(--wt-strong);
    margin-block-start: 36px;
    margin-bottom: var(--st-step-3);
}

.guéridon-mince-meat > h2.guéridon-mince-hdr:first-child {
    margin-block-start: 0;
}

.guéridon-mince-meat p {
    line-height: var(--lh-roomy);
    margin-bottom: var(--st-step-3);
}

.guéridon-mince-lead {
    color: var(--ink-blend-a);
    font-size: calc(var(--ts-body) * 1.25);
    line-height: var(--lh-normal);
}

.guéridon-mince-queue {
    line-height: var(--lh-normal);
    margin: 0 0 var(--st-step-3);
    padding-left: var(--st-step-4);
}

.guéridon-mince-queue li {
    margin-bottom: var(--st-step-2);
}

.guéridon-mince-meat p a,
.guéridon-mince-queue a {
    color: var(--ink-focus);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: text-decoration-thickness var(--dur-brisk) var(--bz-release);
}

.guéridon-mince-meat p a:hover,
.guéridon-mince-queue a:hover {
    color: var(--ink-blend-a);
    text-decoration-thickness: 3px;
}

.guéridon-mince-hop {
    color: var(--ink-focus);
}

.guéridon-mince-figure {
    display: block;
    margin: 0 0 var(--st-step-3);
}

.guéridon-mince-figure img {
    aspect-ratio: 3 / 2;
    border: var(--bd-light) solid var(--ink-edge);
    display: block;
    height: auto;
    max-height: 420px;
    object-fit: cover;
    width: 100%;
}

.guéridon-mince-gallery {
    display: grid;
    gap: var(--st-step-3);
    grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
    margin-top: var(--st-step-4);
}

.guéridon-mince-push {
    align-items: center;
    background: #17110f;
    border-left: var(--bd-mid) solid var(--ink-focus);
    display: flex;
    flex-wrap: wrap;
    gap: var(--st-step-3);
    margin-block: var(--st-step-4);
    padding: var(--st-step-3) var(--st-step-3);
}

.guéridon-mince-tag {
    background: #17110f;
    color: var(--ink-subtle);
    flex: 1 1 260px;
    font-size: var(--ts-mini);
    line-height: var(--lh-normal);
}

/* ============================================================ lampadaire-vif (FORM-03) */
.lampadaire-vif {
    padding-block: var(--sec-y);
}

.lampadaire-vif-guts {
    margin-inline: auto;
    max-width: var(--shell);
    padding-inline: var(--cont-inset-desktop);
}

.lampadaire-vif-lede {
    margin-bottom: var(--st-step-3);
}

.lampadaire-vif-board {
    display: block;
}

.lampadaire-vif-box {
    display: block;
    margin-bottom: var(--st-step-3);
}

.lampadaire-vif-cue {
    color: var(--ink-subtle);
    display: block;
    font-size: var(--ts-small);
    margin-bottom: var(--st-step-1);
}

.lampadaire-vif-board input,
.lampadaire-vif-board textarea {
    background: var(--ink-raised);
    border: var(--bd-light) solid var(--ink-stroke-heavy);
    color: var(--ink-letters);
    font-family: var(--fnt-copy);
    font-size: var(--ts-small);
    min-height: 48px;
    padding: 10px 14px;
    width: 100%;
}

.lampadaire-vif-board textarea {
    min-height: 140px;
}

.lampadaire-vif-tap {
    background: var(--ink-focus);
    border: 0;
    color: var(--ink-sheet);
    cursor: pointer;
    font-family: var(--fnt-display);
    font-size: var(--ts-small);
    font-weight: var(--wt-semi);
    height: 52px;
    width: 100%;
}

.lampadaire-vif-tap:hover {
    background: var(--ink-blend-a);
    color: var(--ink-sheet);
}

.lampadaire-vif-note {
    background: var(--ink-raised);
    border-left: var(--bd-mid) solid var(--ink-focus);
    color: var(--ink-letters);
    margin-top: var(--st-step-3);
    padding: var(--st-step-3);
}

/* ============================================================ reliquaire-brut (AUTH-01) */
.reliquaire-brut {
    padding-block: var(--sec-y);
}

.reliquaire-brut-guts {
    margin-inline: auto;
    max-width: var(--shell);
    padding-inline: var(--cont-inset-desktop);
}

.reliquaire-brut-tile {
    background: var(--ink-raised);
    border-radius: var(--rad-step-4);
    color: var(--ink-letters);
    display: grid;
    gap: var(--st-step-4);
    grid-template-columns: 160px 1fr;
    padding: var(--st-step-4) var(--st-step-4);
}

.reliquaire-brut-pic {
    border-radius: var(--rad-circle);
    height: 160px;
    overflow: hidden;
    width: 160px;
}

.reliquaire-brut-pic img {
    display: block;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center top;
    width: 100%;
}

.reliquaire-brut-meat {
    display: flex;
    flex-direction: column;
    gap: var(--st-step-3);
}

.reliquaire-brut-role {
    background: var(--ink-raised);
    color: var(--ink-focus);
    font-family: var(--fnt-copy);
    font-size: var(--ts-small);
    font-weight: var(--wt-semi);
    letter-spacing: var(--ls-open);
    text-transform: uppercase;
}

.reliquaire-brut-hdr {
    font-family: var(--fnt-display);
    font-size: var(--ts-display-2);
    font-weight: var(--wt-strong);
    margin: 0;
}

.reliquaire-brut-prose {
    background: var(--ink-raised);
    color: var(--ink-subtle);
    line-height: var(--lh-roomy);
}

.reliquaire-brut-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--st-step-1);
}

.reliquaire-brut-badge {
    background: var(--ink-core);
    border-radius: var(--rad-lozenge);
    color: var(--ink-letters);
    font-size: var(--ts-mini);
    letter-spacing: var(--ls-open);
    padding: var(--st-step-0) var(--st-step-2);
    text-transform: uppercase;
}

.reliquaire-brut-articles {
    margin-top: var(--st-step-4);
}

.reliquaire-brut-articles-hdr {
    margin-bottom: var(--st-step-2);
}

.reliquaire-brut-articles-queue {
    display: grid;
    gap: var(--st-step-2);
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.reliquaire-brut-articles-one {
    border-bottom: var(--bd-light) solid var(--ink-edge);
    padding-bottom: var(--st-step-2);
}

.reliquaire-brut-hop {
    background: var(--ink-sheet);
    color: var(--ink-focus);
    font-size: var(--ts-small);
    text-decoration: none;
}

.reliquaire-brut-hop:hover {
    background: var(--ink-sheet);
    color: var(--ink-blend-a);
    text-decoration: underline;
    text-decoration-thickness: 2px;
}

/* ============================================================ sanctuaire-profond (ERR-06) */
.sanctuaire-profond {
    display: flex;
    flex: 1 0 auto;
    flex-direction: column;
    justify-content: center;
    padding-block: var(--sec-y);
}

.sanctuaire-profond-guts {
    margin-inline: auto;
    max-width: var(--shell);
    padding-inline: var(--cont-inset-desktop);
    width: 100%;
}

.sanctuaire-profond-tile {
    align-items: center;
    background: var(--ink-raised);
    border: 2px solid var(--ink-focus);
    border-radius: var(--rad-step-4);
    box-shadow: var(--dep-step-3);
    color: var(--ink-letters);
    display: flex;
    flex-direction: column;
    gap: var(--st-step-3);
    margin-inline: auto;
    max-width: var(--cont-narrow);
    padding: var(--st-step-4);
    text-align: center;
}

.sanctuaire-profond-glyph {
    background: var(--ink-raised);
    color: var(--ink-core);
    font-family: var(--fnt-display);
    font-size: 16vw;
    font-weight: var(--wt-strong);
    line-height: 1;
    max-width: 100%;
    overflow: hidden;
}

.sanctuaire-profond-lede {
    font-size: var(--ts-display-2);
    margin: 0;
    max-width: var(--cont-narrow);
}

.sanctuaire-profond-prose {
    background: var(--ink-raised);
    color: var(--ink-subtle);
    line-height: var(--lh-normal);
    margin: 0;
}

.sanctuaire-profond-tap {
    background: var(--ink-focus);
    color: var(--ink-sheet);
    display: inline-flex;
    align-items: center;
    font-family: var(--fnt-display);
    font-weight: var(--wt-semi);
    min-height: 48px;
    padding-inline: var(--st-step-4);
    text-decoration: none;
}

.sanctuaire-profond-tap:hover {
    background: var(--ink-blend-a);
    color: var(--ink-sheet);
}

/* ============================================================ veilleur-secret (PHEAD-05) */
.veilleur-secret {
    padding-block: var(--sec-y);
}

.veilleur-secret-guts {
    margin-inline: auto;
    max-width: var(--shell);
    padding-inline: var(--cont-inset-desktop);
}

.veilleur-secret-crumbs {
    color: var(--ink-subtle);
    display: block;
    font-size: var(--ts-mini);
    letter-spacing: var(--ls-open);
    margin-bottom: var(--st-step-2);
    text-transform: uppercase;
}

.veilleur-secret-hop {
    background: var(--ink-sheet);
    color: var(--ink-subtle);
    text-decoration: none;
}

.veilleur-secret-hop:hover {
    background: var(--ink-sheet);
    color: var(--ink-focus);
}

.veilleur-secret-lede {
    margin-bottom: var(--st-step-2);
}

.veilleur-secret-prose {
    color: var(--ink-subtle);
    line-height: var(--lh-normal);
}

/* ============================================================ veilleuse-raffine (BYLINE-02) */
.veilleuse-raffine {
    display: block;
    padding-block: var(--st-step-4);
}

.veilleuse-raffine-tile {
    background: var(--ink-raised);
    border: var(--bd-light) solid var(--ink-stroke-heavy);
    border-radius: var(--rad-step-3);
    color: var(--ink-letters);
    display: flex;
    gap: var(--st-step-3);
    margin-inline: auto;
    max-width: var(--cont-narrow);
    padding: var(--st-step-4);
}

.veilleuse-raffine-pic {
    display: block;
    flex-shrink: 0;
    height: 64px;
    width: 64px;
}

.veilleuse-raffine-pic img {
    border-radius: var(--rad-circle);
    display: block;
    height: 64px;
    max-width: none;
    object-fit: cover;
    object-position: center top;
    width: 64px;
}

.veilleuse-raffine-meat {
    display: block;
}

.veilleuse-raffine-badge {
    background: var(--ink-raised);
    color: var(--ink-subtle);
    display: block;
    font-size: var(--ts-mini);
    letter-spacing: var(--ls-open);
    text-transform: uppercase;
}

.veilleuse-raffine-hdr {
    font-family: var(--fnt-display);
    font-size: var(--ts-display-4);
    font-weight: var(--wt-strong);
    margin: var(--st-step-0) 0 var(--st-step-1);
}

.veilleuse-raffine-hop {
    background: var(--ink-raised);
    color: var(--ink-letters);
    text-decoration: none;
}

.veilleuse-raffine-hop:hover {
    background: var(--ink-raised);
    color: var(--ink-focus);
    text-decoration: underline;
    text-decoration-thickness: 2px;
}

.veilleuse-raffine-role {
    background: var(--ink-raised);
    color: var(--ink-subtle);
    font-size: var(--ts-small);
}

.veilleuse-raffine-prose {
    background: var(--ink-raised);
    color: var(--ink-letters);
    line-height: var(--lh-normal);
    margin-top: var(--st-step-2);
}

/* ============================================================ vigile-bas (GRID-08) */
.vigile-bas {
    padding-block: var(--sec-y);
}

.vigile-bas-guts {
    margin-inline: auto;
    max-width: var(--shell);
    padding-inline: var(--cont-inset-desktop);
}

.vigile-bas-lede {
    margin-bottom: var(--st-step-4);
}

.vigile-bas-queue {
    display: grid;
    gap: var(--st-step-3);
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.vigile-bas-tile {
    background: var(--ink-raised);
    border-radius: 0 0 var(--rad-step-3) var(--rad-step-3);
    border-top: var(--bd-mid) solid var(--ink-focus);
    box-shadow: var(--dep-step-2);
    color: var(--ink-letters);
    display: block;
    overflow: hidden;
    padding: var(--st-step-4) var(--st-step-3);
}

.vigile-bas-orb {
    align-items: center;
    background: #2b1610;
    border: var(--bd-light) solid var(--ink-stroke-heavy);
    border-radius: var(--rad-circle);
    color: var(--ink-focus);
    display: inline-flex;
    height: 38px;
    justify-content: center;
    margin-bottom: var(--st-step-2);
    transition: transform var(--dur-base) var(--bz-pop);
    width: 38px;
}

.vigile-bas-tile:hover .vigile-bas-orb {
    transform: scale(1.055);
}

.vigile-bas-sign {
    display: block;
    fill: currentColor;
    height: 21px;
    width: 21px;
}

.vigile-bas-hdr {
    font-size: var(--ts-display-4);
    margin-bottom: var(--st-step-2);
}

.vigile-bas-prose {
    background: var(--ink-raised);
    color: var(--ink-subtle);
    font-size: var(--ts-small);
    line-height: var(--lh-normal);
}

.vigile-bas-hop {
    background: var(--ink-raised);
    color: var(--ink-focus);
    display: inline-block;
    font-size: var(--ts-small);
    margin-top: var(--st-step-2);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.vigile-bas-hop:hover {
    background: var(--ink-raised);
    color: var(--ink-blend-a);
    text-decoration-thickness: 3px;
}

.vigile-bas-push {
    align-items: center;
    background: #17110f;
    border-top: var(--bd-mid) solid var(--ink-core);
    display: flex;
    flex-direction: column;
    gap: var(--st-step-2);
    justify-content: center;
    padding: var(--st-step-4) var(--st-step-3);
    text-align: center;
}

.vigile-bas-shout {
    background: #17110f;
    color: var(--ink-letters);
    font-family: var(--fnt-display);
    font-size: var(--ts-display-4);
    font-weight: var(--wt-strong);
    line-height: var(--lh-snug);
}

/* ============================================================ responsive */
@media (max-width: 1160px) {
    .vigile-bas-queue {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 899px) {
    .ecrin-fluide-crown {
        min-height: 56px;
        padding-inline: 16px;
    }

    .ecrin-fluide-file {
        display: none;
    }

    .ecrin-fluide-menu-switch {
        display: inline-flex;
    }

    .ecrin-fluide {
        --logo-h: 44px;
    }

    .ecrin-fluide.is-shrunk {
        --logo-h: 38px;
    }

    .ecrin-etroit-figure img {
        height: 220px;
    }

    .reliquaire-brut-tile {
        gap: var(--st-step-3);
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
    }

    .reliquaire-brut-pic {
        height: 120px;
        width: 120px;
    }

    .reliquaire-brut-tags {
        justify-content: center;
    }

    .credence-austere-queue {
        padding-left: var(--st-step-3);
    }

    .credence-austere-dot {
        left: calc(-1 * var(--st-step-3) - 8px);
    }

    .ecrin-dense-guts {
        flex-direction: column;
        justify-content: center;
        min-height: 80px;
        text-align: center;
    }
}

@media (min-width: 900px) {
    .ecrin-fluide-pane,
    .ecrin-fluide-scrim {
        display: none !important;
    }
}

@media (max-width: 720px) {
    .fondement-sombre,
    .fondement-sombre-guts {
        font-size: 13px !important;
        gap: 8px !important;
        line-height: 1.35 !important;
        padding: 12px 14px !important;
    }

    .fondement-sombre-guts {
        flex-direction: column;
        align-items: stretch;
    }

    .fondement-sombre-note {
        flex: 0 0 auto;
    }

    .fondement-sombre-deck {
        justify-content: flex-end;
    }

    .fondement-sombre-accept,
    .fondement-sombre-decline {
        font-size: 12px !important;
        min-height: 40px !important;
        padding: 8px 14px !important;
    }

    .vigile-bas-queue {
        grid-template-columns: minmax(0, 1fr);
    }

    .guéridon-mince-gallery {
        grid-template-columns: minmax(0, 1fr);
    }

    .sanctuaire-profond-glyph {
        font-size: 84px;
    }

    .veilleuse-raffine-tile {
        flex-direction: column;
    }
}

@media (max-width: 430px) {
    .fondement-sombre-accept,
    .fondement-sombre-decline {
        flex: 1 1 auto;
        white-space: normal;
    }

    .fondement-sombre-hop {
        flex: 1 1 100%;
    }

    .ecrin-fluide-word {
        display: none;
    }

    .ecrin-dense-one + .ecrin-dense-one {
        border-left: 0;
        padding-left: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }

    [data-onview] {
        filter: none;
        opacity: 1;
        transform: none;
    }
}

/* ============================================================ offer button (scripts/cta-style.mjs) */
.netoka-dive{display:inline-flex;align-items:center;justify-content:center;padding:0 var(--st-step-4);min-height:56px;border-radius:4px;border:var(--bd-light) solid var(--ink-letters);font-weight:var(--wt-semi)}
.netoka-dive{position:relative;
  background:#0D9488;color:#0E0D0D;text-decoration:none;
  transition:background 0.26s ease-out,box-shadow 0.26s ease-out;}
.netoka-dive.netoka-dive{color:#0E0D0D;text-decoration:none;}
.netoka-dive:hover{background:#0F766E;color:#FFFFFF;animation:none}
.netoka-dive.netoka-dive:hover{color:#FFFFFF;text-decoration:none}
.netoka-dive:hover::after{animation:none}
.netoka-dive:active{background:#115E59;color:#FFFFFF}
.netoka-dive:focus-visible{outline:3px solid #0E0D0D;outline-offset:3px}
.netoka-dive{overflow:hidden;animation:netoka-beat 2.14s linear infinite}
.netoka-dive::after{content:"";position:absolute;inset:0;width:100%;pointer-events:none;background:linear-gradient(100deg,transparent 0%,rgba(255,255,255,.42) 50%,transparent 100%);background-size:280% 100%;background-position:150% 0;transform:none;animation:netoka-beat-2 2.14s ease-in-out infinite}
@keyframes netoka-beat{0%{transform:scale(1);animation-timing-function:cubic-bezier(.25,.8,.35,1)}15.421%{transform:scale(1.06);animation-timing-function:cubic-bezier(.45,.05,.55,.95)}48.598%,100%{transform:scale(1)}}
@keyframes netoka-beat-2{0%,5.607%{background-position:150% 0}41.589%,100%{background-position:-50% 0}}
@media (prefers-reduced-motion:reduce){.netoka-dive,.netoka-dive::after{animation:none!important;transition:none!important}}

@media (max-width: 924px) {
  .ecrin-fluide-file,
  .ecrin-fluide-nav,
  .ecrin-fluide-queue,
  .ecrin-fluide-hop { display: none !important; }
  .ecrin-fluide-menu-switch { display: flex !important; }
}

/* nojs guard 28.09.2026: без JS контент виден */
html.no-js [data-onview]{opacity:1!important;transform:none!important;visibility:visible!important;clip-path:none!important}
