body[data-evidence-deck] {
    --somfy-surface: #efe4d6;
    --somfy-panel: #f7f0e5;
    --somfy-green: #104c2c;
    --rsv-surface: #174da9;
    --rsv-deep: #0a2f72;
    --rsv-black: #07162d;
    --rsv-green: #0d5b3a;
    --rsv-ease: cubic-bezier(.2, .72, .18, 1);
    --product-on-light: color-mix(in srgb, var(--channel-1) 75%, var(--ink));
    --evidence-safe-height: 100vh;
    --evidence-full-height: 100vh;
    overflow-x: clip;
}

@supports (height: 100svh) {
    body[data-evidence-deck] {
        --evidence-safe-height: 100svh;
        --evidence-full-height: 100lvh;
    }
}

.case-directory {
    position: relative;
    z-index: 2;
    display: grid;
    min-height: 100svh;
    gap: clamp(2.5rem, 5vw, 5rem);
    align-content: center;
    margin-top: calc(-1 * var(--story-overlap));
    padding: clamp(5.5rem, 9vw, 9rem) clamp(1.25rem, 5vw, 5rem) clamp(4rem, 8vw, 8rem) calc(var(--signal-spine-x) + 6rem);
    background: var(--paper);
    color: var(--ink);
}

.case-directory-header {
    display: grid;
    max-width: 64rem;
    grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .85fr);
    gap: clamp(2.5rem, 3.6vw, 4rem) clamp(2rem, 6vw, 7rem);
    align-items: end;
}

.case-directory-header > p {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    grid-column: 1 / -1;
    justify-self: start;
    min-width: 11.5rem;
    margin: 0;
    padding-bottom: .55rem;
    border-bottom: 1px solid currentColor;
    color: color-mix(in srgb, var(--ink) 58%, transparent);
    font: 700 .72rem/1 var(--mono);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.case-directory-header > p > span {
    font-size: 1rem;
    line-height: .65;
}

.case-directory-header h2 {
    margin: 0;
    font: 400 clamp(3.4rem, 6vw, 6.8rem)/.86 var(--serif);
    letter-spacing: -.065em;
}

.case-directory-header > span {
    max-width: 31rem;
    padding-bottom: .35rem;
    color: color-mix(in srgb, var(--ink) 72%, transparent);
    font-size: clamp(.85rem, 1.15vw, 1.05rem);
    font-weight: 620;
    line-height: 1.4;
}

.case-directory-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.case-directory-card {
    --directory-bg: var(--ink);
    --directory-copy: var(--paper);
    --directory-accent: var(--channel-3);
    position: relative;
    display: grid;
    min-height: clamp(27rem, 47vw, 40rem);
    grid-template-rows: auto auto 1fr auto;
    gap: 1.2rem;
    overflow: clip;
    padding: clamp(1.25rem, 2.6vw, 2.35rem);
    background: var(--directory-bg);
    color: var(--directory-copy);
}

.case-directory-card[data-directory-case="theorem"] {
    background:
        linear-gradient(112deg, transparent 0 73%, color-mix(in srgb, var(--channel-2) 12%, transparent) 73% 80%, transparent 80%),
        var(--ink);
}

.case-directory-card[data-directory-case="somfy"] {
    --directory-bg: var(--somfy-surface);
    --directory-copy: var(--ink);
    --directory-accent: var(--channel-1);
    background:
        radial-gradient(circle at 84% 72%, color-mix(in srgb, var(--channel-2) 16%, transparent) 0 .42rem, transparent .46rem),
        radial-gradient(circle at 92% 72%, color-mix(in srgb, #104c2c 14%, transparent) 0 .42rem, transparent .46rem),
        radial-gradient(circle at 88% 80%, color-mix(in srgb, var(--channel-3) 18%, transparent) 0 .42rem, transparent .46rem),
        linear-gradient(112deg, #f7f0e5 0 76%, #ecd8cf 76%);
    background-size: 3rem 3.2rem, 3rem 3.2rem, 3rem 3.2rem, auto;
}

.case-directory-card[data-directory-case="ready-set-van"] {
    --directory-bg: var(--rsv-deep);
    --directory-copy: var(--paper);
    --directory-accent: var(--channel-3);
    grid-column: 1 / -1;
    min-height: clamp(22rem, 34vw, 32rem);
    background:
        linear-gradient(color-mix(in srgb, var(--channel-2) 27%, transparent) 1px, transparent 1px),
        linear-gradient(90deg, color-mix(in srgb, var(--channel-2) 27%, transparent) 1px, transparent 1px),
        linear-gradient(120deg, var(--rsv-deep), var(--rsv-black));
    background-size: 3.5rem 3.5rem, 3.5rem 3.5rem, auto;
}

.case-directory-card-top {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.case-directory-card-top > p {
    max-width: 32rem;
    margin: 0;
    color: color-mix(in srgb, var(--directory-copy) 72%, transparent);
    font: .54rem/1.35 var(--mono);
    letter-spacing: .06em;
    text-transform: uppercase;
}

.case-directory-card-top > p span {
    margin-right: .65rem;
    color: var(--directory-accent);
}

.case-directory-motion {
    display: flex;
    flex: 0 0 auto;
    gap: .18rem;
    align-items: flex-end;
    height: 1.25rem;
}

.case-directory-motion i {
    display: block;
    width: .22rem;
    height: .34rem;
    background: color-mix(in srgb, var(--directory-copy) 25%, transparent);
    transform: skewY(-9deg);
}

.case-directory-motion i:nth-child(2n) { height: .66rem; }
.case-directory-motion i:nth-child(3n) { height: 1.05rem; background: var(--directory-accent); }

.case-directory-card h3 {
    position: relative;
    z-index: 2;
    max-width: 10ch;
    margin: 0;
    color: var(--directory-copy);
    font: 400 clamp(3rem, 5vw, 5.6rem)/.84 var(--serif);
    letter-spacing: -.065em;
}

.case-directory-card[data-directory-case="theorem"] h3::first-line { color: var(--paper); }
.case-directory-card[data-directory-case="ready-set-van"] h3 { max-width: 12ch; }

.case-directory-summary {
    position: relative;
    z-index: 2;
    max-width: 38rem;
    align-self: end;
    margin: 0;
    color: color-mix(in srgb, var(--directory-copy) 78%, transparent);
    font-size: clamp(.82rem, 1.05vw, .98rem);
    font-weight: 620;
    line-height: 1.42;
}

.case-directory-card[data-directory-case="ready-set-van"] .case-directory-summary { max-width: 49rem; }

.case-directory-actions {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: .55rem;
    margin-top: .65rem;
}

.case-directory-actions a {
    min-width: 0;
    text-decoration: none;
    transition: transform 180ms ease, background 180ms ease, border-color 180ms ease;
}

.case-directory-read {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    align-items: center;
    align-self: center;
    margin-inline: .2rem;
    padding: .62rem .15rem .48rem;
    border-bottom: 1px solid color-mix(in srgb, var(--directory-copy) 46%, transparent);
    color: var(--directory-copy);
    font-size: .61rem;
    font-weight: 720;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.case-directory-experience {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .22rem .6rem;
    padding: .82rem .9rem;
    background: var(--directory-accent);
    color: var(--ink);
}

.case-directory-experience > span { font-size: .69rem; font-weight: 790; }
.case-directory-experience small { grid-column: 1; color: color-mix(in srgb, var(--ink) 64%, transparent); font: .47rem/1.2 var(--mono); letter-spacing: .05em; text-transform: uppercase; }
.case-directory-experience > i { grid-column: 2; grid-row: 1 / 3; align-self: center; font-size: 1rem; font-style: normal; }
.case-directory-actions a:hover { transform: translateY(-2px); }
.case-directory-experience:hover { background: color-mix(in srgb, var(--directory-accent) 88%, white); }
.case-directory-read:hover { border-color: var(--directory-copy); }

body[data-evidence-deck] .builds {
    z-index: auto !important;
    isolation: auto !important;
    background: transparent;
}

/* Let the fixed identity header keep its own stacking level over the chooser.
   The shared hero isolates its children by default, which otherwise traps the
   header beneath directory cards once they reach the top of the viewport. */
body[data-evidence-deck] .story-panel {
    isolation: auto !important;
}

/* Keep one immutable paint order across forward and reverse scroll: the
   chooser sits below the living signal, and the selected story owns the layer
   above both. This removes the one-frame jump caused by state-switched z-indexes. */
body[data-evidence-deck] .animated-cases {
    position: relative;
    z-index: 4 !important;
    margin-top: 0 !important;
}

body[data-evidence-deck] .animated-cases[hidden],
body[data-evidence-deck] .animated-cases .core-case[hidden],
body[data-evidence-deck] .animated-cases .case-interstitial[hidden] {
    display: none !important;
}

body[data-evidence-deck] .work-signal-run {
    z-index: 3;
}

body[data-evidence-deck] .core-case.evidence-source-case {
    position: relative;
    z-index: auto !important;
    display: block !important;
    min-height: 0;
    padding: 0 !important;
    overflow: visible !important;
    border-top: 0;
    background: var(--case-surface, var(--ink)) !important;
}

.evidence-source-case[data-evidence-variant="company"] { --case-surface: var(--ink); --case-copy: var(--paper); --case-accent: var(--channel-3); --company-proof-gap: clamp(1rem, 2.8svh, 1.75rem); }
.evidence-source-case[data-evidence-variant="system"] { --case-surface: var(--somfy-surface); --case-copy: var(--ink); --case-accent: var(--channel-1); }
.evidence-source-case[data-evidence-variant="model"] { --case-surface: var(--rsv-black); --case-copy: var(--paper); --case-accent: var(--channel-3); }

body[data-evidence-deck] .core-case.evidence-source-case > .core-case-header,
body[data-evidence-deck] .core-case.evidence-source-case > .core-case-body { display: none !important; }

body[data-evidence-active="true"] .landing-header {
    --header-surface: var(--ink);
    color: var(--paper);
}

body[data-evidence-active="true"][data-evidence-variant="system"] .landing-header {
    --header-surface: var(--somfy-surface);
    color: var(--ink);
}

body[data-evidence-active="true"][data-evidence-variant="model"] .landing-header {
    --header-surface: var(--rsv-black);
    color: var(--paper);
}

.evidence-stage {
    position: relative;
    height: 290svh;
}

.evidence-source-case[data-evidence-variant="company"] .evidence-stage {
    height: 300svh;
}

.evidence-source-case[data-evidence-variant="model"] .evidence-stage {
    height: 340svh;
}

.evidence-sticky {
    position: sticky;
    top: 0;
    height: var(--evidence-safe-height);
    overflow: visible;
    isolation: isolate;
    background: var(--case-surface, var(--ink));
    color: var(--case-copy, var(--paper));
}

.evidence-source-case[data-evidence-variant="company"] .evidence-sticky { background: var(--paper); }

/* Keep the composition sized to Safari's safe viewport while its surface and
   wave continue through the browser's full-height viewport. */
.evidence-sticky::before {
    position: absolute;
    z-index: 0;
    top: 0;
    right: 0;
    left: 0;
    height: var(--evidence-full-height);
    background: inherit;
    content: "";
    pointer-events: none;
}

.evidence-field {
    position: absolute;
    z-index: 0;
    top: 0;
    right: 0;
    left: 0;
    height: var(--evidence-full-height);
    background: var(--case-surface, var(--ink));
    transform: translate3d(var(--evidence-field-x, 100%), 0, 0);
    will-change: transform;
}

.evidence-wave-layer {
    position: absolute;
    z-index: 2;
    top: 0;
    right: 0;
    left: 0;
    width: 100%;
    height: var(--evidence-full-height);
    opacity: .88;
    pointer-events: none;
}

.evidence-source-case[data-evidence-variant="system"] .evidence-wave-layer { opacity: .82; mix-blend-mode: multiply; }
.evidence-source-case[data-evidence-variant="model"] .evidence-wave-layer { opacity: .72; mix-blend-mode: screen; }

.evidence-content {
    position: relative;
    height: 100%;
    min-height: 0;
    overflow: clip;
}

.evidence-intro {
    position: absolute;
    z-index: 4;
    top: max(4.5rem, env(safe-area-inset-top));
    left: 1rem;
    display: flex;
    max-width: calc(100% - 2rem);
    flex-direction: column;
    align-items: flex-start;
    color: var(--case-copy, var(--paper));
    transform: translate3d(0, var(--evidence-exit-y, 0), 0);
    will-change: transform;
}

.evidence-kicker {
    max-width: 88vw;
    margin: 0 0 .55rem;
    color: var(--case-accent, var(--channel-3));
    opacity: var(--evidence-title-opacity, 0);
    font: .52rem/1.25 var(--mono);
    letter-spacing: .075em;
    text-transform: uppercase;
    transform: translate3d(0, var(--evidence-title-y, 2rem), 0);
}

.evidence-title {
    max-width: 100%;
    margin: 0;
    color: var(--case-copy, var(--paper));
    opacity: var(--evidence-title-opacity, 0);
    font: 400 clamp(3rem, 15.5vw, 4.5rem)/.82 var(--serif);
    letter-spacing: -.066em;
    transform: translate3d(0, var(--evidence-title-y, 2rem), 0);
    will-change: transform, opacity;
}

.evidence-title span {
    display: block;
    white-space: nowrap;
}

.evidence-case-link {
    position: relative;
    z-index: 3;
    align-self: flex-start;
    display: inline-flex;
    gap: .7rem;
    align-items: center;
    margin-top: clamp(.55rem, 1.8svh, 1rem);
    padding: .35rem 0;
    border-bottom: 1px solid currentColor;
    color: var(--case-copy, var(--paper));
    opacity: var(--evidence-title-opacity, 0);
    font-size: .67rem;
    font-weight: 780;
    letter-spacing: .075em;
    text-decoration: none;
    text-transform: uppercase;
    transform: translate3d(0, var(--evidence-title-y, 2rem), 0);
}

.evidence-case-link span { transition: transform 160ms ease; }
.evidence-case-link:hover span { transform: translateX(.3rem); }
.evidence-case-link:focus-visible { outline: 2px solid currentColor; outline-offset: .35rem; }

.evidence-return {
    position: absolute;
    z-index: 18;
    top: max(.75rem, env(safe-area-inset-top));
    left: 50%;
    display: inline-flex;
    min-height: 1.8rem;
    gap: .42em;
    align-items: center;
    justify-content: center;
    padding: .4rem .5rem .34rem;
    border: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--case-copy) 38%, transparent);
    background: color-mix(in srgb, var(--case-surface) 68%, transparent);
    box-shadow: none;
    color: color-mix(in srgb, var(--case-copy) 78%, transparent);
    font: 680 .54rem/1 var(--mono);
    letter-spacing: .055em;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    transform: translateX(-50%);
    transition: border-color 160ms ease, color 160ms ease, transform 160ms ease;
    white-space: nowrap;
    backdrop-filter: blur(8px);
}

.evidence-return:hover {
    border-color: var(--case-accent);
    color: var(--case-copy);
    transform: translate(-50%, -.1rem);
}

.evidence-return:active {
    transform: translate(-50%, .08rem);
}

.evidence-return:focus-visible {
    outline: 2px solid var(--case-accent);
    outline-offset: .22rem;
}

.evidence-guide {
    position: absolute;
    z-index: 12;
    top: 50%;
    left: clamp(.45rem, 1.2vw, 1rem);
    display: none;
    width: 2.7rem;
    gap: .42rem;
    justify-items: center;
    padding: .3rem .22rem;
    border: 0;
    background: transparent;
    color: var(--case-copy);
    transform: translateY(-50%);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

body[data-evidence-guided="true"] .evidence-guide { display: grid; }

.evidence-guide-meta { display: none; }
.evidence-guide-meta > span {
    color: color-mix(in srgb, var(--case-copy) 68%, transparent);
    font: .48rem/1.3 var(--mono);
    letter-spacing: .035em;
    text-transform: uppercase;
}
.evidence-guide ol {
    display: grid;
    width: .24rem;
    grid-template-rows: repeat(var(--guide-count, 7), .34rem);
    gap: .15rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.evidence-guide li {
    width: .18rem;
    height: .34rem;
    justify-self: center;
    background: color-mix(in srgb, var(--case-copy) 22%, transparent);
    transition: background 180ms ease, transform 180ms ease;
}
.evidence-guide li[data-active="true"] { background: var(--case-accent); transform: scaleX(1.7); }
.evidence-guide-controls {
    display: grid;
    grid-template-rows: 2.25rem auto 2.25rem;
    gap: .18rem;
    justify-items: center;
    align-items: center;
}
.evidence-guide button {
    display: grid;
    width: 2.25rem;
    height: 2.25rem;
    place-items: center;
    padding: 0;
    border: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--case-copy) 38%, transparent);
    border-radius: 0;
    background: transparent;
    color: color-mix(in srgb, var(--case-copy) 78%, transparent);
    cursor: pointer;
    font: .85rem/1 var(--sans);
    transition: border-color 160ms ease, color 160ms ease, transform 160ms ease;
}
.evidence-guide button:hover { border-color: var(--case-accent); color: var(--case-copy); transform: translateY(-.08rem); }
.evidence-guide button:active { transform: translateY(.06rem); }
.evidence-guide button:focus-visible { outline: 2px solid var(--case-accent); outline-offset: .1rem; }
.evidence-guide [data-evidence-previous]:disabled {
    visibility: hidden;
    pointer-events: none;
}
.evidence-guide output { color: color-mix(in srgb, var(--case-copy) 72%, transparent); font: .52rem/1 var(--mono); text-align: center; }

/* Case 01 — company capability as a monumental evidence deck. */
.evidence-source-case[data-evidence-variant="company"] .evidence-intro {
    top: max(4.35rem, env(safe-area-inset-top));
    bottom: calc(54% + var(--company-proof-gap));
    justify-content: end;
}

.evidence-source-case[data-evidence-variant="company"] .evidence-title span:nth-child(2) { margin-left: 14%; }
.evidence-source-case[data-evidence-variant="company"] .evidence-title span:nth-child(3) { color: var(--channel-3); }

.evidence-proofs {
    position: absolute;
    z-index: 4;
    right: 0;
    bottom: max(.25rem, env(safe-area-inset-bottom));
    left: 0;
    display: grid;
    height: 54%;
    min-height: 0;
    grid-template-rows: minmax(0, .72fr) minmax(0, .88fr) minmax(0, 1fr) minmax(0, 1.28fr);
    overflow: clip;
    opacity: var(--evidence-story-opacity, 1);
    transform: translate3d(0, var(--evidence-exit-y, 0), 0);
    will-change: transform, opacity;
}

.evidence-proof {
    display: grid;
    min-width: 0;
    min-height: 0;
    grid-template-columns: minmax(5.2rem, .8fr) minmax(0, 1.2fr);
    gap: clamp(.6rem, 3.5vw, 1rem);
    align-items: center;
    padding: clamp(.35rem, 1svh, .65rem) 1rem;
    border-top: 2px solid var(--ink);
    border-bottom: 0;
    color: var(--ink);
    opacity: var(--evidence-proof-opacity, 0);
    transform: translate3d(var(--evidence-proof-x, 0), var(--evidence-proof-y, 110%), 0) scale(var(--evidence-proof-scale, .94));
    transform-origin: left bottom;
    will-change: transform, opacity;
}

.evidence-proof:nth-child(1) { --evidence-proof-x: var(--evidence-proof-1-x, 0); --evidence-proof-y: var(--evidence-proof-1-y, 110%); --evidence-proof-opacity: var(--evidence-proof-1-opacity, 0); --evidence-proof-scale: var(--evidence-proof-1-scale, .94); margin-right: 3rem; background: var(--channel-3); }
.evidence-proof:nth-child(2) { --evidence-proof-x: var(--evidence-proof-2-x, 0); --evidence-proof-y: var(--evidence-proof-2-y, 110%); --evidence-proof-opacity: var(--evidence-proof-2-opacity, 0); --evidence-proof-scale: var(--evidence-proof-2-scale, .92); margin-right: 2rem; background: var(--paper); }
.evidence-proof:nth-child(3) { --evidence-proof-x: var(--evidence-proof-3-x, 0); --evidence-proof-y: var(--evidence-proof-3-y, 110%); --evidence-proof-opacity: var(--evidence-proof-3-opacity, 0); --evidence-proof-scale: var(--evidence-proof-3-scale, .9); margin-right: 1rem; background: var(--channel-1); color: var(--ink); }
.evidence-proof:nth-child(4) { --evidence-proof-x: var(--evidence-proof-4-x, 0); --evidence-proof-y: var(--evidence-proof-4-y, 110%); --evidence-proof-opacity: var(--evidence-proof-4-opacity, 0); --evidence-proof-scale: var(--evidence-proof-4-scale, .88); background: var(--channel-2); color: var(--paper); transform-origin: center bottom; }
.evidence-proof:last-child { border-bottom: 2px solid var(--ink); }

.evidence-proof-heading {
    display: grid;
    min-width: 0;
    gap: .25rem;
}

.evidence-proof-heading small {
    font: 500 .52rem/1 var(--mono);
    letter-spacing: .08em;
}

.evidence-proof-heading strong {
    min-width: 0;
    font: 700 clamp(1.35rem, 6.7vw, 1.9rem)/.86 var(--serif);
    letter-spacing: -.055em;
    overflow-wrap: anywhere;
}

.evidence-proof:nth-child(4) .evidence-proof-heading strong { font-size: clamp(1.6rem, 7.6vw, 2.2rem); }

.evidence-proof span {
    min-width: 0;
    font-size: clamp(.62rem, 2.4vw, .74rem);
    font-weight: 690;
    line-height: 1.16;
    overflow-wrap: anywhere;
}

@media (max-width: 48rem) {
    .evidence-proof:nth-child(2) .evidence-proof-heading strong {
        font-size: clamp(1.2rem, 5.8vw, 1.65rem);
    }
}

@media (max-width: 30rem) {
    .evidence-proof:nth-child(2),
    .evidence-proof:nth-child(3) {
        grid-template-columns: minmax(6.9rem, .95fr) minmax(0, 1.05fr);
    }

    .evidence-proof:nth-child(2) .evidence-proof-heading strong,
    .evidence-proof:nth-child(3) .evidence-proof-heading strong {
        font-size: clamp(1rem, 4.5vw, 1.2rem);
        line-height: .92;
        overflow-wrap: normal;
    }
}

/* Case 02 — field evidence becoming a connected Product and delivery system. */
.evidence-source-case[data-evidence-variant="system"] .evidence-kicker { color: var(--product-on-light); }
.evidence-source-case[data-evidence-variant="system"] .evidence-title span:nth-child(2) { margin-left: 9%; }
.evidence-source-case[data-evidence-variant="system"] .evidence-title span:nth-child(3) { margin-left: 19%; color: var(--channel-1); }
.evidence-source-case[data-evidence-variant="system"] .evidence-case-link { color: var(--ink); }

.system-scape {
    position: absolute;
    z-index: 4;
    right: 1rem;
    bottom: max(.7rem, env(safe-area-inset-bottom));
    left: 1rem;
    height: 51%;
    opacity: var(--evidence-story-opacity, 1);
    transform: translate3d(0, var(--evidence-exit-y, 0), 0);
    will-change: transform, opacity;
}

.system-connectors {
    position: absolute;
    z-index: 1;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
}

.system-path {
    fill: none;
    stroke: var(--channel-1);
    stroke-linecap: square;
    stroke-linejoin: miter;
    stroke-width: 3;
    vector-effect: non-scaling-stroke;
    opacity: 0;
    stroke-dasharray: 100;
    stroke-dashoffset: 100;
}

.system-path-desktop { display: none; }

.system-node {
    position: absolute;
    z-index: 3;
    display: flex;
    width: 47%;
    height: 43%;
    min-width: 0;
    min-height: 0;
    flex-direction: column;
    padding: clamp(.55rem, 2vw, .8rem);
    border: 1px solid color-mix(in srgb, var(--ink) 56%, transparent);
    background: var(--somfy-panel);
    color: var(--ink);
    opacity: var(--system-node-opacity, 0);
    transform: translate3d(var(--system-node-x, 0), var(--system-node-y, 0), 0) rotate(var(--system-node-rotate, 0deg)) scale(var(--system-node-scale, .98));
    transform-origin: center;
    will-change: transform, opacity;
}

.system-node:nth-of-type(1) {
    --system-node-x: var(--system-node-1-x, -18px);
    --system-node-y: var(--system-node-1-y, 16px);
    --system-node-rotate: var(--system-node-1-rotate, 0deg);
    --system-node-opacity: var(--system-node-1-opacity, 0);
    --system-node-scale: var(--system-node-1-scale, .98);
    top: 3%;
    left: 0;
    border-color: var(--ink);
    background: var(--ink);
    color: var(--paper);
}

.system-node:nth-of-type(2) {
    --system-node-x: var(--system-node-2-x, 18px);
    --system-node-y: var(--system-node-2-y, -14px);
    --system-node-rotate: var(--system-node-2-rotate, 0deg);
    --system-node-opacity: var(--system-node-2-opacity, 0);
    --system-node-scale: var(--system-node-2-scale, .98);
    top: 3%;
    right: 0;
    border-color: var(--ink);
    background: var(--channel-1);
    color: var(--ink);
}

.system-node:nth-of-type(3) {
    --system-node-x: var(--system-node-3-x, -18px);
    --system-node-y: var(--system-node-3-y, 16px);
    --system-node-rotate: var(--system-node-3-rotate, 0deg);
    --system-node-opacity: var(--system-node-3-opacity, 0);
    --system-node-scale: var(--system-node-3-scale, .98);
    bottom: 3%;
    left: 0;
    border-color: var(--ink);
    background: var(--somfy-panel);
    color: var(--ink);
}

.system-node:nth-of-type(4) {
    --system-node-x: var(--system-node-4-x, 18px);
    --system-node-y: var(--system-node-4-y, -14px);
    --system-node-rotate: var(--system-node-4-rotate, 0deg);
    --system-node-opacity: var(--system-node-4-opacity, 0);
    --system-node-scale: var(--system-node-4-scale, .98);
    right: 0;
    bottom: 3%;
    border-color: var(--ink);
    background: var(--channel-3);
    color: var(--ink);
}

.system-node > div {
    display: flex;
    gap: .45rem;
    justify-content: space-between;
    align-items: baseline;
    padding-bottom: .35rem;
    border-bottom: 1px solid currentColor;
    font: .525rem/1 var(--mono);
    letter-spacing: .055em;
    text-transform: uppercase;
}

.system-node > div span { color: var(--channel-1); }
.system-node:nth-of-type(1) > div span { color: var(--channel-3); }
.system-node:nth-of-type(2) > div span,
.system-node:nth-of-type(4) > div span { color: inherit; }
.system-node small { font: inherit; text-align: right; }

.system-node strong {
    margin-top: auto;
    font: 700 clamp(1.25rem, 6vw, 1.9rem)/.86 var(--serif);
    letter-spacing: -.05em;
}

.system-node p {
    margin: .3rem 0 0;
    font-size: clamp(.58rem, 2.05vw, .68rem);
    font-weight: 720;
    line-height: 1.15;
}

.system-node em {
    margin-top: .22rem;
    color: color-mix(in srgb, currentColor 70%, transparent);
    font-size: clamp(.55rem, 1.8vw, .61rem);
    font-style: normal;
    line-height: 1.2;
}

/* Somfy — one expert becoming distributed commercial reach. */
.evidence-source-case[data-evidence-variant="system"] .evidence-field {
    background:
        linear-gradient(104deg, color-mix(in srgb, var(--channel-1) 9%, var(--somfy-surface)) 0 18%, transparent 18%),
        radial-gradient(circle at 77% 72%, color-mix(in srgb, var(--channel-3) 13%, transparent), transparent 29%),
        var(--somfy-surface);
}

.evidence-source-case[data-evidence-variant="system"] .somfy-story-intro {
    z-index: 7;
    top: max(4.15rem, env(safe-area-inset-top));
    right: .9rem;
    bottom: 43%;
    left: calc(var(--signal-spine-x) + 3rem);
    display: block;
    max-width: none;
    color: var(--ink);
    opacity: var(--evidence-title-opacity, 0);
    pointer-events: none;
    transform: translate3d(0, var(--evidence-exit-y, 0), 0);
    will-change: transform, opacity;
}

.somfy-story-beat {
    position: absolute;
    inset: 0;
    display: grid;
    align-content: start;
    justify-items: end;
    isolation: isolate;
    color: var(--ink);
    opacity: var(--somfy-beat-opacity, 0);
    text-align: right;
    transform: translate3d(0, var(--somfy-beat-y, 0), 0);
    will-change: transform, opacity;
}

.somfy-story-beat::before {
    content: none;
}

.somfy-story-beat:nth-child(1) { --somfy-beat-opacity: var(--somfy-beat-1-opacity, 0); --somfy-beat-y: var(--somfy-beat-1-y, 0); }
.somfy-story-beat:nth-child(2) { --somfy-beat-opacity: var(--somfy-beat-2-opacity, 0); --somfy-beat-y: var(--somfy-beat-2-y, 0); }
.somfy-story-beat:nth-child(3) { --somfy-beat-opacity: var(--somfy-beat-3-opacity, 0); --somfy-beat-y: var(--somfy-beat-3-y, 0); }
.somfy-story-beat:nth-child(4) { --somfy-beat-opacity: var(--somfy-beat-4-opacity, 0); --somfy-beat-y: var(--somfy-beat-4-y, 0); }
.somfy-story-beat:nth-child(5) { --somfy-beat-opacity: var(--somfy-beat-5-opacity, 0); --somfy-beat-y: var(--somfy-beat-5-y, 0); }
.somfy-story-beat:nth-child(6) { --somfy-beat-opacity: var(--somfy-beat-6-opacity, 0); --somfy-beat-y: var(--somfy-beat-6-y, 0); }

.somfy-story-kicker {
    max-width: calc(100% - 2rem);
    margin: 0 0 .5rem;
    color: var(--product-on-light);
    font: .52rem/1.25 var(--mono);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.somfy-story-heading {
    max-width: 10.8ch;
    margin: 0;
    font: 400 clamp(2.25rem, 9.8vw, 3.85rem)/.88 var(--serif);
    letter-spacing: -.058em;
    text-wrap: balance;
}

.somfy-story-beat:first-child .somfy-story-heading { max-width: 11.4ch; }
.somfy-story-heading em { color: var(--channel-1); font-style: normal; }

.somfy-story-support {
    max-width: 29rem;
    margin: .65rem 0 0;
    color: color-mix(in srgb, var(--ink) 90%, transparent);
    font-size: clamp(.92rem, 3.65vw, 1.08rem);
    font-weight: 620;
    line-height: 1.32;
    text-wrap: pretty;
}

.somfy-story-beat .evidence-case-link {
    align-self: auto;
    margin-top: clamp(.55rem, 1.5svh, .9rem);
    color: var(--ink);
    opacity: 1;
    pointer-events: none;
    transform: none;
}

.evidence-source-case[data-evidence-variant="system"][data-somfy-beat="5"] .somfy-story-beat:last-child .evidence-case-link {
    pointer-events: auto;
}

.somfy-reach {
    position: absolute;
    z-index: 4;
    inset: 0;
    overflow: clip;
    opacity: var(--evidence-story-opacity, 1);
    transform: translate3d(0, var(--evidence-exit-y, 0), 0);
    will-change: transform, opacity;
}

.somfy-reach::after {
    content: none;
}

.somfy-crowd {
    position: absolute;
    z-index: 2;
    inset: 3.6rem 1.4rem .2rem calc(var(--signal-spine-x) + 1.15rem);
    display: grid;
    grid-template-columns: repeat(15, minmax(0, 1fr));
    grid-template-rows: repeat(12, minmax(0, 1fr));
    gap: .05rem clamp(0rem, .22vw, .22rem);
    align-items: end;
    justify-items: center;
    /* Soften people behind the copy, but never erase the growing crowd. */
    -webkit-mask-image: radial-gradient(ellipse 84% 54% at 82% 18%, rgb(0 0 0 / .28) 0 66%, rgb(0 0 0 / .55) 80%, #000 96%);
    mask-image: radial-gradient(ellipse 84% 54% at 82% 18%, rgb(0 0 0 / .28) 0 66%, rgb(0 0 0 / .55) 80%, #000 96%);
    pointer-events: none;
}

@media (max-width: 64rem) {
    .somfy-crowd {
        -webkit-mask-image: linear-gradient(to bottom, rgb(0 0 0 / .16) 0 40%, rgb(0 0 0 / .68) 50%, #000 58%);
        mask-image: linear-gradient(to bottom, rgb(0 0 0 / .16) 0 40%, rgb(0 0 0 / .68) 50%, #000 58%);
    }
}

.somfy-crowd-person {
    position: relative;
    display: block;
    width: calc(clamp(1.35rem, 3.8vw, 3.25rem) * var(--person-depth));
    height: calc(clamp(1.95rem, 5.35vw, 4.65rem) * var(--person-depth));
    align-self: end;
    color: var(--channel-2);
    filter: drop-shadow(0 .18rem 0 color-mix(in srgb, var(--ink) 9%, transparent));
    opacity: var(--somfy-person-opacity, 0);
    transform: translate3d(0, var(--somfy-person-y, .85rem), 0) scale(var(--somfy-person-scale, .82));
    transition:
        opacity 360ms ease var(--person-delay),
        transform 480ms cubic-bezier(.2, .72, .2, 1) var(--person-delay);
    will-change: transform, opacity;
}

.somfy-crowd-stage-2 { --somfy-person-opacity: var(--somfy-crowd-2-opacity, 0); --somfy-person-y: var(--somfy-crowd-2-y, 14px); --somfy-person-scale: var(--somfy-crowd-2-scale, .82); }
.somfy-crowd-stage-3 { --somfy-person-opacity: var(--somfy-crowd-3-opacity, 0); --somfy-person-y: var(--somfy-crowd-3-y, 14px); --somfy-person-scale: var(--somfy-crowd-3-scale, .82); }
.somfy-crowd-stage-4 { --somfy-person-opacity: var(--somfy-crowd-4-opacity, 0); --somfy-person-y: var(--somfy-crowd-4-y, 14px); --somfy-person-scale: var(--somfy-crowd-4-scale, .82); }
.somfy-crowd-stage-5 { --somfy-person-opacity: var(--somfy-crowd-5-opacity, 0); --somfy-person-y: var(--somfy-crowd-5-y, 14px); --somfy-person-scale: var(--somfy-crowd-5-scale, .82); }

.somfy-crowd-person::before {
    position: absolute;
    top: 0;
    left: 50%;
    width: 42%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: currentColor;
    content: "";
    transform: translateX(-50%);
}

.somfy-crowd-person::after {
    position: absolute;
    right: 3%;
    bottom: 0;
    left: 3%;
    height: 69%;
    border-radius: 48% 48% 10% 10%;
    background: currentColor;
    content: "";
}

.somfy-crowd-yellow { color: color-mix(in srgb, var(--channel-3) 82%, var(--ink)); }
.somfy-crowd-blue { color: var(--channel-2); }
.somfy-crowd-green { color: var(--somfy-green); }

.somfy-origin {
    position: absolute;
    z-index: 5;
    top: var(--somfy-origin-y, 76%);
    left: var(--somfy-origin-x, 35%);
    width: clamp(4.8rem, 6.4vw, 6.5rem);
    height: clamp(6.8rem, 9.2vw, 9.3rem);
    color: var(--channel-1);
    filter: drop-shadow(0 .55rem 0 color-mix(in srgb, var(--ink) 12%, transparent));
    opacity: var(--somfy-origin-opacity, 0);
    transform: translate(-50%, -50%) scale(var(--somfy-origin-scale, 1));
    transform-origin: center bottom;
    transition: opacity 320ms ease, transform 480ms cubic-bezier(.2, .72, .2, 1), top 480ms ease, left 480ms ease;
    will-change: transform, opacity;
}

.somfy-origin::before {
    position: absolute;
    z-index: -2;
    inset: -38%;
    border-radius: 50%;
    background: radial-gradient(circle, color-mix(in srgb, var(--somfy-surface) 82%, transparent) 0 34%, color-mix(in srgb, var(--channel-1) 15%, transparent) 35% 52%, transparent 70%);
    content: "";
}

.somfy-origin-cape {
    position: absolute;
    z-index: -1;
    top: 22%;
    right: -27%;
    width: 76%;
    height: 76%;
    background: var(--channel-2);
    clip-path: polygon(0 0, 78% 10%, 100% 100%, 12% 82%);
    transform: rotate(-7deg);
    transform-origin: 0 0;
}

.somfy-origin i { position: absolute; inset: 0; }

.somfy-origin i::before {
    position: absolute;
    top: 0;
    left: 50%;
    width: 43%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: currentColor;
    content: "";
    transform: translateX(-50%);
}

.somfy-origin i::after {
    position: absolute;
    right: 2%;
    bottom: 0;
    left: 2%;
    height: 70%;
    border-radius: 48% 48% 9% 9%;
    background: currentColor;
    content: "";
}

.somfy-origin-emblem {
    position: absolute;
    z-index: 2;
    top: 42%;
    left: 50%;
    width: 19%;
    aspect-ratio: 1;
    border: max(1px, .08em) solid color-mix(in srgb, var(--paper) 88%, transparent);
    background: var(--channel-3);
    transform: translate(-50%, -50%) rotate(45deg);
}

body[data-evidence-snapshot="true"] .somfy-crowd-person,
body[data-evidence-snapshot="true"] .somfy-origin {
    transition: none;
}

/* Case 03 — one production agenda governing cross-functional manufacturing work. */
.evidence-source-case[data-evidence-variant="model"] .evidence-field {
    background:
        radial-gradient(circle at 78% 15%, color-mix(in srgb, var(--rsv-surface) 44%, transparent), transparent 33%),
        linear-gradient(122deg, transparent 0 58%, color-mix(in srgb, var(--paper) 3%, transparent) 58% 59%, transparent 59%),
        var(--rsv-black);
}

.evidence-source-case[data-evidence-variant="model"] .rsv-story-intro {
    z-index: 7;
    top: max(4.15rem, env(safe-area-inset-top));
    right: .9rem;
    bottom: calc(46% + .8rem);
    left: calc(var(--signal-spine-x) + 2.7rem);
    display: block;
    max-width: none;
    color: var(--paper);
    opacity: var(--evidence-title-opacity, 0);
    pointer-events: none;
    transform: translate3d(0, var(--evidence-exit-y, 0), 0);
    will-change: transform, opacity;
}

.rsv-story-beat {
    position: absolute;
    inset: 0;
    display: grid;
    align-content: start;
    justify-items: end;
    color: var(--paper);
    opacity: var(--rsv-beat-opacity, 0);
    text-align: right;
    transform: translate3d(0, var(--rsv-beat-y, 0), 0);
    will-change: transform, opacity;
}

.rsv-story-beat:nth-child(1) { --rsv-beat-opacity: var(--rsv-beat-1-opacity, 0); --rsv-beat-y: var(--rsv-beat-1-y, 0); }
.rsv-story-beat:nth-child(2) { --rsv-beat-opacity: var(--rsv-beat-2-opacity, 0); --rsv-beat-y: var(--rsv-beat-2-y, 0); }
.rsv-story-beat:nth-child(3) { --rsv-beat-opacity: var(--rsv-beat-3-opacity, 0); --rsv-beat-y: var(--rsv-beat-3-y, 0); }
.rsv-story-beat:nth-child(4) { --rsv-beat-opacity: var(--rsv-beat-4-opacity, 0); --rsv-beat-y: var(--rsv-beat-4-y, 0); }
.rsv-story-beat:nth-child(5) { --rsv-beat-opacity: var(--rsv-beat-5-opacity, 0); --rsv-beat-y: var(--rsv-beat-5-y, 0); }
.rsv-story-beat:nth-child(6) { --rsv-beat-opacity: var(--rsv-beat-6-opacity, 0); --rsv-beat-y: var(--rsv-beat-6-y, 0); }
.rsv-story-beat:nth-child(7) { --rsv-beat-opacity: var(--rsv-beat-7-opacity, 0); --rsv-beat-y: var(--rsv-beat-7-y, 0); }

.rsv-story-kicker {
    max-width: calc(100% - 2rem);
    margin: 0 0 .5rem;
    color: var(--channel-3);
    font: .52rem/1.25 var(--mono);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.rsv-story-heading {
    max-width: 10.8ch;
    margin: 0;
    font: 400 clamp(2.2rem, 10vw, 3.65rem)/.86 var(--serif);
    letter-spacing: -.06em;
    text-wrap: balance;
}

.rsv-story-beat:first-child .rsv-story-heading { max-width: 11.5ch; }
.rsv-story-heading em { color: var(--channel-3); font-style: normal; }

.rsv-story-support {
    max-width: 30rem;
    margin: .65rem 0 0;
    color: color-mix(in srgb, var(--paper) 88%, transparent);
    font-size: clamp(.92rem, 3.65vw, 1.08rem);
    font-weight: 590;
    line-height: 1.32;
    text-wrap: pretty;
}

.rsv-story-beat .evidence-case-link {
    align-self: auto;
    margin-top: clamp(.55rem, 1.5svh, .9rem);
    color: var(--paper);
    opacity: 1;
    pointer-events: none;
    transform: none;
}

.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="6"] .rsv-story-beat:last-child .evidence-case-link {
    pointer-events: auto;
}

.model-scape {
    --model-content-inset: 0px;
    position: absolute;
    z-index: 3;
    right: 0;
    bottom: 0;
    left: 0;
    height: 46%;
    overflow: clip;
    border-top: 1px solid color-mix(in srgb, var(--paper) 14%, transparent);
    background: color-mix(in srgb, var(--rsv-deep) 88%, transparent);
    opacity: var(--evidence-story-opacity, 1);
    transform: translate3d(0, var(--evidence-exit-y, 0), 0);
    will-change: transform, opacity;
}

.rsv-field-grid {
    position: absolute;
    inset: 0;
    opacity: var(--rsv-grid-opacity, .42);
    background-image:
        linear-gradient(color-mix(in srgb, var(--rsv-surface) 78%, var(--paper)) 1px, transparent 1px),
        linear-gradient(90deg, color-mix(in srgb, var(--rsv-surface) 78%, var(--paper)) 1px, transparent 1px);
    background-size: 2.8rem 2.8rem;
}

.rsv-agenda-system,
.rsv-help-loop,
.rsv-component-system,
.rsv-reprint-system,
.rsv-conclusion-system {
    position: absolute;
    inset: 0;
    pointer-events: none;
    will-change: transform, opacity;
}

.rsv-agenda-system {
    opacity: var(--rsv-agenda-opacity, 1);
    transform: scale(var(--rsv-agenda-scale, 1));
}

.rsv-agenda-rail { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.rsv-rail-shadow,
.rsv-rail-line { fill: none; vector-effect: non-scaling-stroke; }
.rsv-rail-shadow { stroke: color-mix(in srgb, var(--ink) 58%, transparent); stroke-width: 15; opacity: var(--rsv-rail-opacity, 1); }
.rsv-rail-line {
    stroke: color-mix(in srgb, var(--paper) 78%, transparent);
    stroke-width: 2;
    stroke-dasharray: 100;
    stroke-dashoffset: var(--rsv-rail-offset, 0);
    opacity: var(--rsv-rail-opacity, 1);
}

.rsv-work-field { position: absolute; inset: 0; }
.rsv-work-piece {
    position: absolute;
    display: grid;
    width: clamp(.65rem, 1.25vw, 1.1rem);
    height: clamp(.65rem, 1.25vw, 1.1rem);
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--paper) 45%, transparent);
    color: var(--ink);
    font: .42rem/1 var(--mono);
    letter-spacing: .04em;
    transform: translate(-50%, -50%) rotate(var(--rsv-piece-rotate, 0deg)) scale(var(--rsv-piece-scale, 1));
    box-shadow: 0 .45rem 1.1rem color-mix(in srgb, var(--ink) 38%, transparent);
    will-change: left, top, transform;
}

.rsv-work-piece.is-labeled { width: clamp(3rem, 7vw, 6rem); height: clamp(1.05rem, 2.15vw, 1.8rem); }
.rsv-tone-red { background: var(--channel-1); }
.rsv-tone-blue { background: var(--channel-2); color: var(--paper); }
.rsv-tone-yellow { background: var(--channel-3); }
.rsv-tone-paper { background: var(--paper); }

.rsv-help-loop,
.rsv-component-system,
.rsv-reprint-system,
.rsv-conclusion-system {
    opacity: var(--rsv-layer-opacity, 0);
}

.rsv-help-loop { --rsv-layer-opacity: var(--rsv-help-opacity, 0); transform: translateY(var(--rsv-help-y, 1.25rem)); }
.rsv-component-system { --rsv-layer-opacity: var(--rsv-component-opacity, 0); transform: translateY(var(--rsv-component-y, 1.25rem)); }
.rsv-reprint-system { --rsv-layer-opacity: var(--rsv-reprint-opacity, 0); transform: translateY(var(--rsv-reprint-y, 1.25rem)); }
.rsv-conclusion-system { --rsv-layer-opacity: var(--rsv-conclusion-opacity, 0); transform: translateY(var(--rsv-conclusion-y, 1.25rem)); }

.rsv-help-loop svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.rsv-help-path,
.rsv-help-return { fill: none; vector-effect: non-scaling-stroke; stroke-linecap: round; stroke-linejoin: round; }
.rsv-help-path { stroke: var(--channel-3); stroke-width: 5; stroke-dasharray: 100; stroke-dashoffset: var(--rsv-help-draw, 100); }
.rsv-help-return { stroke: color-mix(in srgb, var(--paper) 60%, transparent); stroke-width: 2; stroke-dasharray: 4 7; }
.rsv-help-problems {
    position: absolute;
    top: 58%;
    left: 7%;
    display: flex;
    gap: clamp(.35rem, 1.2vw, .8rem);
    align-items: center;
}
.rsv-help-problems i {
    width: clamp(.7rem, 1.4vw, 1.2rem);
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--channel-1);
    box-shadow: 0 0 0 .35rem color-mix(in srgb, var(--channel-1) 12%, transparent);
}
.rsv-help-problems i:nth-child(2) { scale: .72; opacity: .78; }
.rsv-help-problems i:nth-child(3) { scale: .48; opacity: .58; }
.rsv-help-hub {
    position: absolute;
    top: 15%;
    left: 50%;
    display: grid;
    width: clamp(3.4rem, 8vw, 6.4rem);
    aspect-ratio: 1;
    place-items: center;
    border: 2px solid color-mix(in srgb, var(--paper) 65%, transparent);
    border-radius: 50%;
    background: var(--channel-3);
    color: var(--ink);
    font: 400 clamp(2.4rem, 5.5vw, 4.6rem)/1 var(--serif);
    transform: translateX(-50%);
    box-shadow: 0 0 0 .8rem color-mix(in srgb, var(--channel-3) 10%, transparent), 0 0 3rem color-mix(in srgb, var(--channel-3) 30%, transparent);
}
.rsv-help-resolutions {
    position: absolute;
    top: 57%;
    right: 7%;
    display: grid;
    grid-template-columns: repeat(3, clamp(.7rem, 1.4vw, 1.2rem));
    gap: clamp(.35rem, 1.2vw, .8rem);
}
.rsv-help-resolutions i { aspect-ratio: 1; background: var(--channel-2); box-shadow: .25rem .25rem 0 color-mix(in srgb, var(--paper) 18%, transparent); }
.rsv-help-resolutions i:nth-child(2) { background: var(--channel-3); }
.rsv-help-resolutions i:nth-child(3) { background: var(--paper); }

.rsv-component-system {
    display: grid;
    grid-template-columns: .88fr 1.12fr;
    gap: clamp(.75rem, 4vw, 2.25rem);
    align-items: center;
    padding: clamp(.85rem, 2.5vw, 1.5rem);
}
.rsv-scan-subject {
    position: relative;
    display: grid;
    min-width: 0;
    min-height: clamp(9rem, 26vw, 14rem);
    place-items: center;
}
.rsv-scan-part { position: absolute; inset: 8% 2% 4%; width: 96%; height: 88%; overflow: visible; }
.rsv-scan-part path { fill: color-mix(in srgb, var(--rsv-surface) 50%, transparent); stroke: color-mix(in srgb, var(--paper) 38%, transparent); stroke-width: 3; }
.rsv-qr-tag {
    position: relative;
    z-index: 2;
    width: clamp(4.4rem, 18vw, 8rem);
    aspect-ratio: 1;
    padding: clamp(.35rem, 1.1vw, .65rem);
    background: var(--paper);
    color: var(--ink);
    box-shadow: .45rem .45rem 0 color-mix(in srgb, var(--channel-3) 88%, transparent);
}
.rsv-qr-tag svg { display: block; width: 100%; height: 100%; }
.rsv-qr-tag path { fill: currentColor; }
.rsv-scan-frame {
    position: absolute;
    z-index: 3;
    top: 50%;
    left: 50%;
    width: clamp(5.25rem, 21.5vw, 9.5rem);
    aspect-ratio: 1;
    border: 2px solid color-mix(in srgb, var(--channel-3) 86%, transparent);
    opacity: var(--rsv-scan-frame-opacity, .42);
    transform: translate(-50%, -50%);
    box-shadow: 0 0 1.8rem color-mix(in srgb, var(--channel-3) 25%, transparent);
}
.rsv-scan-beam {
    position: absolute;
    z-index: 4;
    top: var(--rsv-scan-beam-y, 24%);
    left: 50%;
    width: clamp(5.25rem, 21.5vw, 9.5rem);
    height: 2px;
    background: var(--channel-1);
    transform: translateX(-50%);
    box-shadow: 0 0 .7rem var(--channel-1);
}
.rsv-scan-result {
    display: grid;
    align-content: center;
    min-height: clamp(9rem, 26vw, 14rem);
    padding: clamp(.75rem, 2.3vw, 1.5rem);
    border-left: 2px solid var(--channel-3);
    background: color-mix(in srgb, var(--rsv-black) 82%, transparent);
    opacity: var(--rsv-component-enter, 0);
    transform: translateX(var(--rsv-scan-result-x, 1rem));
}
.rsv-scan-result > span { color: var(--channel-3); font: .45rem/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.rsv-scan-result > strong { margin-top: .42rem; color: var(--paper); font: 400 clamp(1.9rem, 7.5vw, 3.4rem)/.82 var(--serif); letter-spacing: -.055em; }
.rsv-scan-result dl { display: grid; gap: .28rem; margin: .65rem 0 0; }
.rsv-scan-result dl div { display: grid; grid-template-columns: .72fr 1fr; gap: .4rem; padding-top: .28rem; border-top: 1px solid color-mix(in srgb, var(--paper) 20%, transparent); }
.rsv-scan-result dt { color: color-mix(in srgb, var(--paper) 56%, transparent); font: .4rem/1 var(--mono); text-transform: uppercase; }
.rsv-scan-result dd { margin: 0; color: var(--paper); font-size: .54rem; font-weight: 760; text-transform: uppercase; }

.rsv-reprint-system {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: .45rem;
    align-items: center;
    padding: .65rem .7rem 1.2rem;
}
.rsv-reprint-drawing { position: relative; min-width: 0; }
.rsv-reprint-drawing svg { display: block; width: 100%; max-height: 12rem; overflow: visible; }
.rsv-part-outline { fill: color-mix(in srgb, var(--rsv-surface) 32%, transparent); stroke: color-mix(in srgb, var(--paper) 30%, transparent); stroke-width: 1.5; }
.rsv-cut-before { fill: none; stroke: color-mix(in srgb, var(--channel-1) 44%, transparent); stroke-width: 8; stroke-linecap: round; stroke-dasharray: 2 2.5; opacity: var(--rsv-cut-before-opacity, 1); }
.rsv-cut-after { fill: none; stroke: var(--channel-3); stroke-width: 5; stroke-linejoin: round; stroke-dasharray: 100; stroke-dashoffset: var(--rsv-cut-after-offset, 100); filter: drop-shadow(0 0 .65rem color-mix(in srgb, var(--channel-3) 48%, transparent)); }
.rsv-proof-metric { display: grid; align-content: center; justify-items: start; opacity: var(--rsv-reprint-enter, 0); }
.rsv-proof-metric strong { color: var(--channel-3); font: 400 clamp(3.2rem, 16vw, 4.5rem)/.74 var(--serif); letter-spacing: -.07em; }
.rsv-proof-metric span { margin-top: .65rem; color: var(--paper); font-size: .6rem; font-weight: 780; line-height: 1.04; text-transform: uppercase; }
.rsv-proof-metric small { max-width: 18rem; margin-top: .6rem; color: color-mix(in srgb, var(--paper) 66%, transparent); font: .5rem/1.35 var(--mono); letter-spacing: .04em; text-transform: uppercase; }
.rsv-conclusion-system svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}
.rsv-conclusion-input,
.rsv-conclusion-route { fill: none; vector-effect: non-scaling-stroke; stroke-linecap: round; }
.rsv-conclusion-input { stroke-width: 6; opacity: var(--rsv-conclusion-input-opacity, .45); }
.rsv-conclusion-input-red { stroke: var(--channel-1); }
.rsv-conclusion-input-blue { stroke: var(--channel-2); }
.rsv-conclusion-input-paper { stroke: color-mix(in srgb, var(--paper) 74%, transparent); }
.rsv-conclusion-input-yellow { stroke: var(--channel-3); }
.rsv-conclusion-route {
    stroke: var(--channel-3);
    stroke-width: 12;
    stroke-dasharray: 100;
    stroke-dashoffset: var(--rsv-conclusion-route-offset, 100);
    filter: drop-shadow(0 0 .8rem color-mix(in srgb, var(--channel-3) 46%, transparent));
}
.rsv-conclusion-node {
    position: absolute;
    top: 49.5%;
    left: 46.2%;
    width: clamp(1.15rem, 2.4vw, 2rem);
    aspect-ratio: 1;
    border: 3px solid var(--paper);
    border-radius: 50%;
    background: var(--channel-3);
    opacity: var(--rsv-conclusion-enter, 0);
    transform: translate(-50%, -50%) scale(var(--rsv-conclusion-node-scale, .7));
    box-shadow: 0 0 1.8rem color-mix(in srgb, var(--channel-3) 55%, transparent);
}

/* Approved Ready.Set.Van sequence — one persistent van carries the story from
   personalization through shop priority, Help, component identity, and reprint. */
.rsv-van-scene {
    position: absolute;
    z-index: 2;
    inset: 0;
    left: var(--model-content-inset);
    display: block;
    width: calc(100% - var(--model-content-inset));
    height: 100%;
    overflow: visible;
}

.rsv-van-scene .van-build,
.rsv-van-scene .van-shell,
.rsv-van-scene .van-cavity,
.rsv-van-scene .van-windshield,
.rsv-van-scene .van-door-line,
.rsv-van-scene .van-side-trim,
.rsv-van-scene .van-mirror,
.rsv-van-scene .van-headlight,
.rsv-van-scene .van-grille,
.rsv-van-scene .decision-spine,
.rsv-van-scene .priority-bracket,
.rsv-van-scene .help-link,
.rsv-van-scene .issue-marker,
.rsv-van-scene .shop-worker,
.rsv-van-scene .resolved-mark,
.rsv-van-scene .part-reprint-ui,
.rsv-van-scene .component-focus-object,
.rsv-van-scene .module-qr,
.rsv-van-scene .focus-qr,
.rsv-van-scene .focus-scan,
.rsv-van-scene .focus-cut,
.rsv-identity-card,
.rsv-van-proof-metric {
    transition:
        opacity 520ms ease,
        transform 720ms var(--rsv-ease),
        filter 520ms ease;
}

.rsv-van-scene .van-build {
    transform-box: view-box;
    transform-origin: center;
}

.rsv-van-scene .van-ground { fill: color-mix(in srgb, var(--ink) 52%, transparent); }
.rsv-van-scene .van-shell { fill: color-mix(in srgb, var(--paper) 96%, transparent); stroke: var(--paper); stroke-width: 3; }
.rsv-van-scene .van-cavity { fill: color-mix(in srgb, var(--rsv-black) 93%, transparent); stroke: color-mix(in srgb, var(--paper) 26%, transparent); stroke-width: 2; }
.rsv-van-scene .van-windshield { fill: color-mix(in srgb, var(--rsv-surface) 58%, var(--rsv-black)); stroke: color-mix(in srgb, var(--paper) 38%, transparent); stroke-width: 2; }
.rsv-van-scene .van-door-line { fill: none; stroke: color-mix(in srgb, var(--ink) 45%, transparent); stroke-width: 3; }
.rsv-van-scene .van-side-trim { fill: none; stroke: var(--ink); stroke-width: 10; stroke-linecap: round; }
.rsv-van-scene .van-mirror { fill: var(--ink); stroke: var(--paper); stroke-width: 2; }
.rsv-van-scene .van-headlight { fill: var(--channel-3); stroke: var(--ink); stroke-width: 2; }
.rsv-van-scene .van-grille { fill: color-mix(in srgb, var(--ink) 88%, transparent); stroke: var(--ink); stroke-width: 5; }
.rsv-van-scene .van-bumper { fill: none; stroke: var(--paper); stroke-width: 6; stroke-linecap: square; }
.rsv-van-scene .van-wheel circle:first-child { fill: var(--ink); stroke: var(--paper); stroke-width: 5; }
.rsv-van-scene .van-wheel circle:last-child { fill: var(--rsv-surface); stroke: color-mix(in srgb, var(--paper) 54%, transparent); stroke-width: 3; }

.rsv-van-scene .van-module {
    color: var(--ink);
    transform-box: fill-box;
    transform-origin: center;
    transition:
        opacity 520ms ease,
        transform 820ms var(--rsv-ease),
        filter 520ms ease;
}
.rsv-van-scene .van-module > rect,
.rsv-van-scene .van-module > path { fill: var(--module-fill); stroke: var(--module-ink); stroke-width: 3; }
.rsv-van-scene .van-module .module-detail { fill: none; stroke: var(--module-ink); stroke-width: 2; }
.rsv-van-scene .van-module .module-detail-fill { fill: var(--module-ink); stroke: none; }
.rsv-van-scene .module-ceiling { --module-fill: var(--paper); --module-ink: var(--ink); }
.rsv-van-scene .module-bed { --module-fill: var(--rsv-surface); --module-ink: var(--paper); }
.rsv-van-scene .module-storage { --module-fill: var(--channel-3); --module-ink: var(--ink); }
.rsv-van-scene .module-electrical { --module-fill: var(--channel-2); --module-ink: var(--ink); }
.rsv-van-scene .module-cabinet { --module-fill: var(--channel-3); --module-ink: var(--ink); }
.rsv-van-scene .module-galley { --module-fill: var(--paper); --module-ink: var(--ink); }

.rsv-van-scene .module-qr {
    opacity: 0;
    filter: drop-shadow(0 1px 1px color-mix(in srgb, var(--ink) 55%, transparent));
}
.rsv-van-scene .module-qr rect { fill: white; stroke: var(--ink); stroke-width: 1.25; }
.rsv-van-scene .module-qr path { fill: var(--ink); stroke: none; }

.rsv-van-scene .decision-spine { opacity: .78; }
.rsv-van-scene .decision-spine path {
    fill: none;
    stroke: var(--channel-3);
    stroke-width: 6;
    stroke-linecap: round;
    stroke-dasharray: 100;
    vector-effect: non-scaling-stroke;
}
.rsv-van-scene .decision-spine circle { fill: var(--channel-3); stroke: var(--rsv-black); stroke-width: 3; }

.rsv-van-scene .priority-bracket,
.rsv-van-scene .help-link,
.rsv-van-scene .issue-marker,
.rsv-van-scene .shop-worker,
.rsv-van-scene .resolved-mark,
.rsv-van-scene .part-reprint-ui,
.rsv-van-scene .component-focus-object,
.rsv-identity-card,
.rsv-van-proof-metric { opacity: 0; }

.rsv-van-scene .priority-bracket { transform: translateY(.8rem); }
.rsv-van-scene .priority-bracket path { fill: none; stroke: var(--channel-3); stroke-width: 5; stroke-linecap: square; }
.rsv-van-scene .priority-bracket circle { fill: var(--channel-3); stroke: var(--ink); stroke-width: 2; }
.rsv-van-scene .priority-bracket text { fill: var(--ink); font: 700 16px var(--mono); letter-spacing: .05em; }
.rsv-van-scene .priority-bracket text:last-child { fill: var(--channel-3); font-size: 14px; }

.rsv-van-scene .help-link {
    fill: none;
    stroke: var(--channel-3);
    stroke-width: 5;
    stroke-dasharray: 8 10;
    stroke-linecap: round;
}
.rsv-van-scene .issue-marker circle { fill: var(--channel-2); stroke: var(--paper); stroke-width: 4; }
.rsv-van-scene .issue-marker text { fill: var(--paper); font: 800 26px var(--sans); }
.rsv-van-scene .shop-worker .worker-head,
.rsv-van-scene .shop-worker .worker-body,
.rsv-van-scene .shop-worker .worker-hand { fill: var(--paper); stroke: var(--rsv-black); stroke-width: 5; }
.rsv-van-scene .shop-worker .worker-arm-outline,
.rsv-van-scene .shop-worker .worker-arm { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.rsv-van-scene .shop-worker .worker-arm-outline { stroke: var(--rsv-black); stroke-width: 25; }
.rsv-van-scene .shop-worker .worker-arm { stroke: var(--paper); stroke-width: 15; }
.rsv-van-scene .shop-worker rect { fill: var(--channel-3); stroke: var(--ink); stroke-width: 2; }
.rsv-van-scene .shop-worker text { fill: var(--ink); font: 800 15px var(--mono); letter-spacing: .08em; }
.rsv-van-scene .resolved-mark circle { fill: var(--rsv-green); stroke: var(--paper); stroke-width: 4; }
.rsv-van-scene .resolved-mark path { fill: none; stroke: var(--paper); stroke-width: 6; stroke-linecap: round; stroke-linejoin: round; }

.rsv-van-scene .part-reprint-ui {
    transform: translateY(12px);
    transform-box: view-box;
    transform-origin: center;
    filter: drop-shadow(0 18px 25px color-mix(in srgb, var(--ink) 45%, transparent));
}
.rsv-van-scene .reprint-window { fill: #f5f5f3; stroke: color-mix(in srgb, var(--paper) 80%, transparent); stroke-width: 2; }
.rsv-van-scene .reprint-nav { fill: #0c0d0d; }
.rsv-van-scene .reprint-brand { fill: #f5f1e8; font: 700 16px var(--serif); }
.rsv-van-scene .reprint-nav-label { fill: #f5f1e8; font: 700 9px var(--mono); letter-spacing: .12em; }
.rsv-van-scene .reprint-pane,
.rsv-van-scene .reprint-canvas { fill: white; stroke: #d4d8de; stroke-width: 1.5; }
.rsv-van-scene .reprint-dots { fill: url(#rsv-reprint-dot-grid); color: #cfd6df; opacity: .62; }
.rsv-van-scene #rsv-reprint-dot-grid circle { fill: #cbd2dc; }
.rsv-van-scene .reprint-eyebrow { fill: #656a70; font: 700 8px var(--mono); letter-spacing: .12em; }
.rsv-van-scene .reprint-title { fill: #11130f; font: 400 25px var(--serif); letter-spacing: -.03em; }
.rsv-van-scene .reprint-copy { fill: #202225; font: 650 10px var(--sans); }
.rsv-van-scene .reprint-field,
.rsv-van-scene .reprint-row,
.rsv-van-scene .reprint-file-banner { fill: #f8f9fb; stroke: #cbd2dc; stroke-width: 1.25; }
.rsv-van-scene .reprint-field-text,
.rsv-van-scene .reprint-row-title,
.rsv-van-scene .reprint-file-name { fill: #17191c; font: 650 9px var(--sans); }
.rsv-van-scene .reprint-row-meta { fill: #6d737a; font: 8px var(--sans); }
.rsv-van-scene .reprint-thumb { fill: #dfe5eb; stroke: #adb6c1; stroke-width: 1; }
.rsv-van-scene .reprint-thumb-active { fill: #f5f7f9; }
.rsv-van-scene .reprint-thumb-lines { fill: none; stroke: #9ba5b0; stroke-width: 1; }
.rsv-van-scene .reprint-button,
.rsv-van-scene .reprint-request { fill: #0f1010; }
.rsv-van-scene .reprint-button-text,
.rsv-van-scene .reprint-request-text { fill: white; font: 750 8px var(--sans); letter-spacing: .06em; }
.rsv-van-scene .reprint-geometry path { fill: none; stroke-width: 2.8; stroke-linejoin: round; }
.rsv-van-scene .geometry-brown { stroke: #95502f; }
.rsv-van-scene .geometry-green { stroke: #087f5b; }
.rsv-van-scene .geometry-teal { stroke: #087f8e; }
.rsv-van-scene .geometry-purple { stroke: #845ef7; stroke-width: 4 !important; }
.rsv-van-scene .reprint-selection-box { fill: color-mix(in srgb, var(--rsv-surface) 4%, transparent); stroke: var(--rsv-surface); stroke-width: 1.5; }
.rsv-van-scene .reprint-selection circle { fill: var(--rsv-surface); stroke: white; stroke-width: 1.2; }
.rsv-van-scene .reprint-selected-part { fill: color-mix(in srgb, #ee6b1b 10%, transparent); stroke: #ee6b1b; stroke-width: 6; stroke-linejoin: round; }
.rsv-van-scene .reprint-selected-detail { fill: none; stroke: #ee6b1b; stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; }
.rsv-van-scene .reprint-selected-chip { fill: #ee6b1b; }
.rsv-van-scene .reprint-selected-label { fill: white; font: 800 7px var(--mono); letter-spacing: .06em; }

.rsv-van-scene .component-focus-object {
    transform-box: view-box;
    transform-origin: 0 0;
    transform: translate(420px, 188px);
}
.rsv-van-scene .focus-panel { fill: var(--paper); stroke: var(--channel-3); stroke-width: 5; }
.rsv-van-scene .focus-detail { fill: none; stroke: var(--ink); stroke-width: 3; }
.rsv-van-scene .focus-qr rect { fill: var(--paper); stroke: var(--ink); stroke-width: .7; }
.rsv-van-scene .focus-qr path { fill: var(--ink); }
.rsv-van-scene .focus-scan { opacity: 0; }
.rsv-van-scene .focus-scan path { fill: none; stroke-linecap: square; }
.rsv-van-scene .scan-frame { stroke: var(--rsv-surface); stroke-width: 3; }
.rsv-van-scene .scan-beam { stroke: var(--channel-2); stroke-width: 2.5; filter: drop-shadow(0 0 4px var(--channel-2)); }
.rsv-van-scene .focus-cut {
    opacity: 0;
    fill: none;
    stroke: var(--channel-3);
    stroke-width: 5;
    stroke-linejoin: round;
    stroke-dasharray: 100;
    stroke-dashoffset: 100;
}

.rsv-identity-card,
.rsv-van-proof-metric {
    position: absolute;
    z-index: 5;
    right: clamp(1rem, 5vw, 5rem);
    transform: translateY(1rem);
}

.rsv-identity-card {
    top: 18%;
    display: grid;
    width: min(31%, 23rem);
    min-width: 16rem;
    padding: 1rem 1.1rem;
    border: 1px solid var(--channel-3);
    background: color-mix(in srgb, var(--rsv-black) 93%, transparent);
    box-shadow: .7rem .7rem 0 color-mix(in srgb, var(--rsv-surface) 52%, transparent);
}
.rsv-identity-card > span { color: var(--channel-3); font: .55rem/1 var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.rsv-identity-card > strong { margin-top: .35rem; color: var(--paper); font: 400 clamp(1.8rem, 3vw, 3rem)/.9 var(--serif); letter-spacing: -.045em; }
.rsv-identity-card dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: .55rem; margin: .9rem 0 0; }
.rsv-identity-card dl div { display: grid; gap: .2rem; padding-top: .38rem; border-top: 1px solid color-mix(in srgb, var(--paper) 32%, transparent); }
.rsv-identity-card dt { color: color-mix(in srgb, var(--paper) 60%, transparent); font: .5rem/1 var(--mono); text-transform: uppercase; }
.rsv-identity-card dd { margin: 0; color: var(--paper); font-size: .68rem; font-weight: 760; }

.rsv-van-proof-metric {
    top: 17%;
    display: grid;
    width: min(29%, 20rem);
    align-content: center;
    justify-items: start;
}
.rsv-van-proof-metric strong { color: var(--channel-3); font: 400 clamp(4.5rem, 8.7vw, 8.5rem)/.74 var(--serif); letter-spacing: -.07em; }
.rsv-van-proof-metric span { margin-top: .65rem; color: var(--paper); font-size: clamp(.78rem, 1.35vw, 1.1rem); font-weight: 780; line-height: 1.04; text-transform: uppercase; }

.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="0"] .rsv-van-scene .resolved-mark { opacity: 1; }

.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="1"] .rsv-van-scene .decision-spine,
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="1"] .rsv-van-scene .resolved-mark { opacity: 0; }
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="1"] .rsv-van-scene .van-shell { opacity: .3; }
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="1"] .rsv-van-scene .van-cavity,
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="1"] .rsv-van-scene .van-windshield { opacity: .43; }
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="1"] .rsv-van-scene .van-module {
    transform: translate(var(--explode-x), var(--explode-y)) rotate(var(--explode-r));
    filter: drop-shadow(0 16px 16px color-mix(in srgb, var(--ink) 46%, transparent));
}

.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="2"] .rsv-van-scene .van-module:not(.module-cabinet) { opacity: .42; }
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="2"] .rsv-van-scene .priority-bracket { opacity: 1; transform: none; }
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="2"] .rsv-van-scene .decision-spine path { animation: rsv-draw-spine 760ms var(--rsv-ease) both; }

.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="3"] .rsv-van-scene .decision-spine { opacity: .22; }
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="3"] .rsv-van-scene .van-module:not(.module-cabinet) { opacity: .48; }
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="3"] .rsv-van-scene .module-cabinet { filter: drop-shadow(0 0 13px color-mix(in srgb, var(--channel-2) 72%, transparent)); }
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="3"] .rsv-van-scene .help-link,
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="3"] .rsv-van-scene .issue-marker,
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="3"] .rsv-van-scene .shop-worker { opacity: 1; }
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="3"] .rsv-van-scene .help-link { animation: rsv-pulse-help 1200ms ease-in-out infinite alternate; }

.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="4"] .rsv-van-scene .van-build { opacity: .13; transform: scale(.985); filter: blur(1px); }
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="4"] .rsv-van-scene .component-focus-object {
    opacity: 1;
    transform: translate(205px, 92px) scale(1.82);
    filter: drop-shadow(0 20px 25px color-mix(in srgb, var(--ink) 52%, transparent));
}
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="4"] .rsv-van-scene .focus-qr,
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="4"] .rsv-van-scene .focus-scan,
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="4"] .rsv-identity-card { opacity: 1; }
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="4"] .rsv-van-scene .scan-beam { animation: rsv-scan-component 1100ms ease-in-out infinite alternate; }
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="4"] .rsv-identity-card { transform: none; }

.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="5"] .rsv-van-scene .van-build { opacity: 0; transform: scale(.985); }
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="5"] .rsv-van-scene .part-reprint-ui { opacity: 1; transform: none; }
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="5"] .rsv-van-proof-metric { opacity: 1; transform: none; }

.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="6"] .rsv-van-scene .decision-spine { opacity: 1; }
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="6"] .rsv-van-scene .decision-spine path { animation: rsv-draw-spine 760ms var(--rsv-ease) both; }
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="6"] .rsv-van-scene .van-build { filter: drop-shadow(0 18px 24px color-mix(in srgb, var(--ink) 38%, transparent)); }
.evidence-source-case[data-evidence-variant="model"][data-rsv-beat="6"] .rsv-van-scene .module-qr { opacity: 1; }

@keyframes rsv-draw-spine {
    from { stroke-dashoffset: 100; }
    to { stroke-dashoffset: 0; }
}

@keyframes rsv-pulse-help {
    from { stroke-dashoffset: 0; }
    to { stroke-dashoffset: -18; }
}

@keyframes rsv-scan-component {
    from { transform: translateY(-22px); }
    to { transform: translateY(22px); }
}

.case-interstitial {
    --interstitial-accent: var(--channel-1);
    --interstitial-block-gutter: clamp(1rem, 2.4svh, 1.75rem);
    --interstitial-inline-gutter: clamp(.75rem, 2vw, 1.5rem);
    position: relative;
    z-index: 1;
    display: grid;
    height: clamp(14rem, 33svh, 24rem);
    min-height: 0;
    align-items: center;
    isolation: auto;
    overflow: clip;
    padding: clamp(2rem, 4vw, 4rem) clamp(1.25rem, 6vw, 7rem) clamp(2rem, 4vw, 4rem) calc(var(--signal-spine-x) + 7rem);
    background: transparent;
    color: var(--paper);
}

.case-interstitial::before {
    position: absolute;
    z-index: 0;
    inset: var(--interstitial-block-gutter) 0;
    background: var(--ink);
    clip-path: polygon(0 .85rem, 100% 0, 100% calc(100% - .85rem), 0 100%);
    content: "";
    pointer-events: none;
}

.case-interstitial-wave {
    position: absolute;
    z-index: 1;
    inset: var(--interstitial-block-gutter) 0;
    display: block;
    width: 100%;
    height: calc(100% - var(--interstitial-block-gutter) * 2);
    clip-path: polygon(0 .85rem, 100% 0, 100% calc(100% - .85rem), 0 100%);
    filter: invert(1) hue-rotate(8deg) saturate(1.22);
    opacity: .94;
    pointer-events: none;
}

.case-interstitial::after {
    position: absolute;
    z-index: 2;
    inset: calc(var(--interstitial-block-gutter) + .55rem) var(--interstitial-inline-gutter);
    border-top: 1px solid color-mix(in srgb, var(--paper) 42%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--paper) 42%, transparent);
    clip-path: polygon(0 .42rem, 100% 0, 100% calc(100% - .42rem), 0 100%);
    content: "";
    pointer-events: none;
}

.case-interstitial[data-interstitial-tone="field"] {
    --interstitial-accent: var(--channel-3);
}

.case-interstitial[data-interstitial-tone="model"] {
    --interstitial-accent: var(--paper);
}

.case-interstitial[data-interstitial-tone="history"] {
    --interstitial-accent: var(--channel-3);
}

.case-interstitial-copy {
    position: relative;
    z-index: 3;
    max-width: 68rem;
}

.case-interstitial-copy h2 {
    max-width: 14ch;
    margin: 0;
    font: 400 clamp(3rem, 5.8vw, 6.4rem)/.82 var(--serif);
    letter-spacing: -.065em;
}

.case-interstitial-copy h2 span,
.case-interstitial-copy h2 em {
    display: block;
}

.case-interstitial-copy h2 em {
    margin-left: clamp(1.25rem, 7vw, 7rem);
    color: var(--interstitial-accent);
    font-style: normal;
}

.case-interstitial-register {
    position: absolute;
    z-index: 2;
    right: clamp(1.25rem, 5vw, 5rem);
    bottom: clamp(.8rem, 2vw, 1.5rem);
    display: grid;
    width: min(22rem, 28vw);
    height: .34rem;
    grid-template-columns: repeat(3, 1fr);
    transform: rotate(-2deg);
    transform-origin: right center;
}

.case-interstitial-register span:nth-child(1) { background: var(--channel-1); }
.case-interstitial-register span:nth-child(2) { background: var(--channel-2); }
.case-interstitial-register span:nth-child(3) { background: var(--channel-3); }

@media (max-width: 48rem) {
    body[data-evidence-deck] .case-interstitial {
        --interstitial-block-gutter: clamp(.9rem, 2.2svh, 1.15rem);
        --interstitial-inline-gutter: .65rem;
        height: clamp(14rem, 33svh, 18rem);
        min-height: 0;
        padding: 2rem .85rem 2rem calc(var(--signal-spine-x) + 3.1rem);
        background: transparent;
    }

    body[data-evidence-deck] .case-interstitial-copy h2 { max-width: 11ch; font-size: clamp(2.2rem, 10.5vw, 3.2rem); }
    body[data-evidence-deck] .case-interstitial-copy h2 em { margin-left: clamp(.75rem, 6vw, 1.75rem); }
    body[data-evidence-deck] .case-interstitial-register { right: 1.15rem; bottom: calc(var(--interstitial-block-gutter) + .55rem); width: 36vw; height: .25rem; }
}

@media (min-width: 48.0625rem) {
    .case-interstitial-copy { transform: translateY(clamp(.5rem, 1vh, .8rem)); }

    .evidence-stage {
        height: 290vh;
    }

    .evidence-source-case[data-evidence-variant="company"] .evidence-stage {
        height: 300vh;
    }

    .evidence-source-case[data-evidence-variant="model"] .evidence-stage {
        height: 340vh;
    }

    .evidence-intro {
        top: clamp(4.75rem, 8vh, 7rem);
        left: clamp(3rem, 6vw, 7rem);
        max-width: calc(100% - clamp(6rem, 12vw, 14rem));
    }

    .evidence-kicker {
        margin-bottom: .8rem;
        font-size: .6rem;
    }

    .evidence-title {
        max-width: 11ch;
        font-size: clamp(5rem, 7.25vw, 8rem);
    }

    .evidence-case-link {
        margin-top: 1.05rem;
        font-size: .76rem;
    }

    .evidence-source-case[data-evidence-variant="system"] .somfy-story-intro {
        top: clamp(3.75rem, 6vh, 5.5rem);
        right: clamp(1.5rem, 4vw, 4rem);
        bottom: 40%;
        left: calc(var(--signal-spine-x) + 6rem);
    }

    .somfy-story-kicker { margin-bottom: .75rem; font-size: .6rem; }
    .somfy-story-heading { max-width: 14ch; font-size: clamp(3rem, 5.8vw, 6.35rem); }
    .somfy-story-beat:first-child .somfy-story-heading { max-width: 14.6ch; }
    .somfy-story-support { max-width: 42rem; margin-top: .9rem; font-size: clamp(1.05rem, 1.35vw, 1.28rem); }
    .somfy-story-beat .evidence-case-link { font-size: .76rem; }

    .evidence-source-case[data-evidence-variant="company"] .evidence-intro {
        top: clamp(4.75rem, 8vh, 7rem);
        bottom: calc(48% + var(--company-proof-gap));
    }

    .evidence-source-case[data-evidence-variant="company"] .evidence-title {
        max-width: 9ch;
        font-size: clamp(5.75rem, 8.4vw, 8.75rem);
    }

    .evidence-source-case[data-evidence-variant="company"] .evidence-title span:nth-child(2) { margin-left: 18%; }

    .evidence-proofs {
        right: clamp(2rem, 4vw, 5rem);
        bottom: clamp(2rem, 4vh, 3.5rem);
        left: clamp(2rem, 4vw, 5rem);
        height: 44%;
        grid-template-columns: repeat(12, minmax(0, 1fr));
        grid-template-rows: repeat(6, minmax(0, 1fr));
    }

    .evidence-proof {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto 1fr;
        gap: .75rem;
        align-content: space-between;
        align-items: start;
        margin-right: 0;
        padding: clamp(.8rem, 1.45vw, 1.35rem);
        border: 2px solid var(--ink);
        isolation: isolate;
    }

    .evidence-proof:nth-child(1) { z-index: 4; grid-column: 1 / 4; grid-row: 3 / 7; }
    .evidence-proof:nth-child(2) { z-index: 3; grid-column: 1 / 7; grid-row: 2 / 7; padding-left: calc(50% + clamp(.8rem, 1.45vw, 1.35rem)); }
    .evidence-proof:nth-child(3) { z-index: 2; grid-column: 1 / 10; grid-row: 1 / 7; padding-left: calc(66.666% + clamp(.8rem, 1.45vw, 1.35rem)); }
    .evidence-proof:nth-child(4) { z-index: 1; grid-column: 1 / 13; grid-row: 1 / 7; padding-left: calc(75% + clamp(.8rem, 1.45vw, 1.35rem)); }

    .evidence-proof-heading strong { font-size: clamp(1.55rem, 2.45vw, 2.7rem); }
    .evidence-proof:nth-child(4) .evidence-proof-heading strong { font-size: clamp(2rem, 3.15vw, 3.5rem); }
    .evidence-proof-heading small { font-size: clamp(.5rem, .56vw, .62rem); }

    .evidence-proof span {
        align-self: end;
        max-width: 26ch;
        font-size: clamp(.66rem, .84vw, .82rem);
    }

    .evidence-source-case[data-evidence-variant="system"] .evidence-title { max-width: 13.5ch; font-size: clamp(4.8rem, 6.7vw, 7.25rem); }
    .evidence-source-case[data-evidence-variant="system"] .evidence-title span:nth-child(2) { margin-left: 14%; }
    .evidence-source-case[data-evidence-variant="system"] .evidence-title span:nth-child(3) { margin-left: 27%; }

    .system-scape {
        right: clamp(3rem, 5vw, 6rem);
        bottom: clamp(2.5rem, 5vh, 4.5rem);
        left: clamp(3rem, 5vw, 6rem);
        height: 47%;
    }

    .system-path-desktop { display: block; }
    .system-path-mobile { display: none; }

    .system-node {
        width: 22%;
        height: 47%;
        padding: clamp(.85rem, 1.25vw, 1.25rem);
    }

    .system-node:nth-of-type(1) { top: 47%; left: 0; }
    .system-node:nth-of-type(2) { top: 4%; right: auto; left: 24%; }
    .system-node:nth-of-type(3) { top: 47%; right: auto; bottom: auto; left: 50%; }
    .system-node:nth-of-type(4) { top: 4%; right: 0; bottom: auto; }
    .system-node > div { font-size: .58rem; }
    .system-node strong { font-size: clamp(1.75rem, 2.7vw, 3.15rem); }
    .system-node p { font-size: clamp(.7rem, .82vw, .82rem); }
    .system-node em { font-size: clamp(.64rem, .74vw, .74rem); line-height: 1.25; }

    .evidence-source-case[data-evidence-variant="model"] .rsv-story-intro {
        top: clamp(3.75rem, 6vh, 5.5rem);
        right: clamp(1.5rem, 4vw, 4rem);
        bottom: calc(49% + 1rem);
        left: calc(var(--signal-spine-x) + 6rem);
    }

    .rsv-story-kicker { margin-bottom: .75rem; font-size: .6rem; }
    .rsv-story-heading { max-width: 13ch; font-size: clamp(3.45rem, 6.05vw, 6.5rem); }
    .rsv-story-beat:first-child .rsv-story-heading { max-width: 13.5ch; }
    .rsv-story-support { max-width: 46rem; margin-top: .9rem; font-size: clamp(1.05rem, 1.35vw, 1.28rem); }
    .rsv-story-beat .evidence-case-link { font-size: .76rem; }

    .model-scape { --model-content-inset: max(4rem, 4vw); left: 0; height: 49%; }
    .rsv-field-grid { background-size: 4rem 4rem; }
    .rsv-component-system { grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 6rem); padding: 1.5rem clamp(2rem, 7vw, 7rem); }
    .rsv-scan-subject,
    .rsv-scan-result { min-height: 14rem; }
    .rsv-scan-result { padding: clamp(1.2rem, 2.5vw, 2.25rem); }
    .rsv-scan-result > span { font-size: .56rem; }
    .rsv-scan-result > strong { font-size: clamp(3rem, 4.8vw, 5.25rem); }
    .rsv-scan-result dl { grid-template-columns: repeat(3, 1fr); gap: .65rem; margin-top: 1rem; }
    .rsv-scan-result dl div { grid-template-columns: 1fr; gap: .25rem; padding-top: .45rem; }
    .rsv-scan-result dt { font-size: .46rem; }
    .rsv-scan-result dd { font-size: .62rem; }

    .rsv-reprint-system { grid-template-columns: 1.35fr .65fr; gap: 1rem; padding: 1rem clamp(1.5rem, 5vw, 5rem); }
    .rsv-reprint-drawing svg { max-height: 15.5rem; }
    .rsv-proof-metric strong { font-size: clamp(4.4rem, 9vw, 9rem); }
    .rsv-proof-metric span { font-size: clamp(.78rem, 1.35vw, 1.1rem); }
}

@media (min-width: 48.0625rem) and (max-width: 64rem) {
    .evidence-proof:nth-child(2) .evidence-proof-heading strong {
        font-size: clamp(1.1rem, 2.45vw, 1.6rem);
    }

    .evidence-proof:nth-child(3) .evidence-proof-heading strong {
        font-size: clamp(1.05rem, 2.1vw, 1.3rem);
        line-height: .9;
        overflow-wrap: normal;
    }

    .system-scape { height: 50%; }
    .system-path-desktop { display: none; }
    .system-path-mobile { display: block; }

    .system-node {
        width: 47%;
        height: 39%;
        padding: .85rem 1rem;
    }

    .system-node:nth-of-type(1) { top: 0; left: 0; }
    .system-node:nth-of-type(2) { top: 0; right: 0; left: auto; }
    .system-node:nth-of-type(3) { top: 43%; bottom: auto; left: 0; }
    .system-node:nth-of-type(4) { top: 43%; right: 0; bottom: auto; }
    .system-node strong { font-size: clamp(1.55rem, 3.4vw, 2.2rem); }
    .system-node p { font-size: .72rem; }
    .system-node em { font-size: .66rem; }

    .evidence-source-case[data-evidence-variant="system"] .somfy-story-intro {
        right: 2rem;
        left: calc(var(--signal-spine-x) + 4rem);
    }

    .somfy-story-heading { font-size: clamp(2.85rem, 5.1vw, 4rem); }

    .evidence-source-case[data-evidence-variant="model"] .rsv-story-intro {
        left: calc(var(--signal-spine-x) + 4rem);
        right: 2rem;
    }

    .rsv-story-heading { font-size: clamp(3rem, 5.35vw, 4.35rem); }
    .rsv-component-system { gap: 2rem; padding-inline: 3rem; }
    .rsv-van-proof-metric { width: min(24%, 15rem); }
}

@media (min-width: 48.0625rem) and (max-height: 43.75rem) {
    .evidence-source-case[data-evidence-variant="company"] .evidence-intro {
        top: 4.25rem;
        bottom: calc(43% + var(--company-proof-gap));
    }

    .evidence-source-case[data-evidence-variant="company"] .evidence-title {
        font-size: clamp(4.35rem, 6vw, 5.4rem);
    }

    .evidence-proofs {
        bottom: 1.25rem;
        height: 39%;
    }

    .evidence-proof { gap: .45rem; padding-top: .55rem; padding-bottom: .55rem; }
    .evidence-proof-heading strong { font-size: clamp(1.35rem, 2.4vw, 2rem); }
    .evidence-proof:nth-child(4) .evidence-proof-heading strong { font-size: clamp(1.7rem, 3vw, 2.5rem); }
    .evidence-proof span { font-size: clamp(.58rem, .78vw, .7rem); line-height: 1.12; }

    .evidence-source-case[data-evidence-variant="system"] .evidence-title {
        font-size: clamp(4.25rem, 5.8vw, 5.25rem);
    }

    .system-scape {
        bottom: 1.5rem;
        height: 40%;
    }

    .system-node { padding: .45rem .65rem; }
    .system-node > div { padding-bottom: .2rem; }
    .system-node strong { font-size: clamp(1.45rem, 2.25vw, 2.4rem); }
    .system-node p { margin-top: .2rem; font-size: .66rem; line-height: 1.08; }
    .system-node em { margin-top: .12rem; font-size: .58rem; line-height: 1.08; }

    .evidence-source-case[data-evidence-variant="system"] .somfy-story-intro {
        top: 3.65rem;
        bottom: 36%;
    }

    .somfy-story-heading { font-size: clamp(2.65rem, 4.8vw, 4.5rem); }
    .somfy-story-support { max-width: 40rem; margin-top: .55rem; font-size: clamp(.9rem, 1.05vw, 1rem); line-height: 1.27; }

    .evidence-source-case[data-evidence-variant="model"] .rsv-story-intro {
        top: 3.65rem;
        bottom: calc(49% + .65rem);
    }
    .rsv-story-heading { font-size: clamp(2.75rem, 5vw, 4.35rem); }
    .rsv-story-support { margin-top: .55rem; font-size: clamp(.9rem, 1.05vw, 1rem); line-height: 1.27; }
}

@media (max-width: 48rem) and (max-height: 43.75rem) {
    .evidence-intro { top: max(4.35rem, env(safe-area-inset-top)); }
    .evidence-title { font-size: clamp(2.7rem, 13.8vw, 3.65rem); }
    .evidence-kicker { margin-bottom: .35rem; font-size: .5rem; }
    .evidence-case-link { margin-top: .35rem; padding: .25rem 0; font-size: .6rem; }

    .evidence-source-case[data-evidence-variant="company"] .evidence-intro {
        top: max(4.35rem, env(safe-area-inset-top));
        bottom: calc(56% + var(--company-proof-gap));
    }

    .evidence-proofs { height: 56%; }
    .evidence-proof { padding-top: .25rem; padding-bottom: .25rem; }
    .evidence-proof-heading strong { font-size: clamp(1.1rem, 5.4vw, 1.55rem); }
    .evidence-proof:nth-child(4) .evidence-proof-heading strong { font-size: clamp(1.25rem, 6vw, 1.75rem); }
    .evidence-proof span { font-size: clamp(.625rem, 2.3vw, .68rem); }

    .system-scape { height: 53%; }
    .system-node { padding: .3rem .45rem; }
    .system-node > div { padding-bottom: .2rem; font-size: .525rem; }
    .system-node strong { font-size: clamp(1.1rem, 5.3vw, 1.55rem); }
    .system-node p { margin-top: .2rem; font-size: clamp(.6rem, 1.9vw, .64rem); line-height: 1.08; }
    .system-node em { margin-top: .12rem; font-size: clamp(.53rem, 1.7vw, .58rem); line-height: 1.05; }

    .evidence-source-case[data-evidence-variant="system"] .somfy-story-intro {
        top: max(4.35rem, env(safe-area-inset-top));
        bottom: 38%;
    }

    .somfy-story-kicker { margin-bottom: .35rem; font-size: .48rem; }
    .somfy-story-heading { font-size: clamp(2.05rem, 9.6vw, 2.85rem); }
    .somfy-story-support { margin-top: .45rem; font-size: clamp(.82rem, 3.1vw, .9rem); line-height: 1.26; }
    .somfy-story-beat .evidence-case-link { margin-top: .35rem; padding: .25rem 0; font-size: .6rem; }

    .evidence-source-case[data-evidence-variant="model"] .rsv-story-intro {
        top: max(4.35rem, env(safe-area-inset-top));
        bottom: calc(48% + .55rem);
    }
    .rsv-story-kicker { margin-bottom: .35rem; font-size: .48rem; }
    .rsv-story-heading { font-size: clamp(1.95rem, 9vw, 2.7rem); }
    .rsv-story-support { margin-top: .42rem; font-size: clamp(.82rem, 3.1vw, .9rem); line-height: 1.26; }
    .rsv-story-beat .evidence-case-link { margin-top: .35rem; padding: .25rem 0; font-size: .6rem; }
    .model-scape { height: 48%; }
    .rsv-reprint-system { padding-bottom: 1rem; }
}

@media (max-width: 30rem) {
    .evidence-source-case[data-evidence-variant="system"] .evidence-title {
        font-size: clamp(2.45rem, 12.5vw, 3.15rem);
    }

    .somfy-origin { width: 3.4rem; height: 4.8rem; }
}

@media (max-width: 30rem) and (max-height: 43.75rem) {
    .evidence-source-case[data-evidence-variant="system"] .evidence-title {
        font-size: clamp(2.25rem, 10.5vw, 2.7rem);
    }
}

/* Case 01 — one mandate widening from individual craft into company capability. */
.evidence-source-case[data-evidence-variant="company"] .evidence-field {
    background:
        radial-gradient(circle at 77% 9%, color-mix(in srgb, var(--channel-2) 12%, transparent), transparent 30%),
        linear-gradient(120deg, transparent 0 58%, color-mix(in srgb, var(--paper) 2%, transparent) 58% 59%, transparent 59%),
        var(--ink);
}

.evidence-source-case[data-evidence-variant="company"] .company-story-intro {
    top: max(4.15rem, env(safe-area-inset-top));
    right: .9rem;
    bottom: calc(49% + var(--company-proof-gap));
    left: .9rem;
    display: block;
    max-width: none;
    color: var(--paper);
    opacity: var(--evidence-title-opacity, 0);
    pointer-events: none;
    transform: translate3d(0, var(--evidence-exit-y, 0), 0);
    will-change: transform, opacity;
}

.company-story-beat {
    position: absolute;
    inset: 0;
    display: grid;
    align-content: center;
    justify-items: end;
    color: var(--paper);
    opacity: var(--company-beat-opacity, 0);
    text-align: right;
    transform: translate3d(0, var(--company-beat-y, 0), 0);
    will-change: transform, opacity;
}

.company-story-beat:nth-child(1) { --company-beat-opacity: var(--company-beat-1-opacity, 0); --company-beat-y: var(--company-beat-1-y, 0); }
.company-story-beat:nth-child(2) { --company-beat-opacity: var(--company-beat-2-opacity, 0); --company-beat-y: var(--company-beat-2-y, 0); }
.company-story-beat:nth-child(3) { --company-beat-opacity: var(--company-beat-3-opacity, 0); --company-beat-y: var(--company-beat-3-y, 0); }
.company-story-beat:nth-child(4) { --company-beat-opacity: var(--company-beat-4-opacity, 0); --company-beat-y: var(--company-beat-4-y, 0); }
.company-story-beat:nth-child(5) { --company-beat-opacity: var(--company-beat-5-opacity, 0); --company-beat-y: var(--company-beat-5-y, 0); }
.company-story-beat:nth-child(6) { --company-beat-opacity: var(--company-beat-6-opacity, 0); --company-beat-y: var(--company-beat-6-y, 0); }

.company-story-kicker {
    max-width: calc(100% - 5rem);
    margin: 0 0 .45rem;
    color: var(--channel-3);
    font: .52rem/1.25 var(--mono);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.company-story-heading {
    max-width: 9.6ch;
    margin: 0;
    font: 400 clamp(2.45rem, 10.6vw, 4rem)/.84 var(--serif);
    letter-spacing: -.062em;
    text-wrap: balance;
}

.company-story-beat:first-child .company-story-heading { max-width: 10.6ch; }
.company-story-beat:last-child .company-story-heading { max-width: 13.5ch; }
.company-story-heading em { color: var(--channel-3); font-style: normal; }

.company-story-support {
    max-width: 29rem;
    margin: .65rem 0 0;
    color: color-mix(in srgb, var(--paper) 88%, transparent);
    font-size: clamp(.92rem, 3.65vw, 1.08rem);
    line-height: 1.32;
    text-wrap: pretty;
}

.company-story-beat .evidence-case-link {
    align-self: auto;
    margin-top: clamp(.55rem, 1.5svh, .9rem);
    color: var(--paper);
    opacity: 1;
    pointer-events: none;
    transform: none;
}

.evidence-source-case[data-evidence-variant="company"][data-company-beat="5"] .company-story-beat:last-child .evidence-case-link {
    pointer-events: auto;
}

.company-mandate {
    position: absolute;
    z-index: 4;
    right: 0;
    bottom: max(.25rem, env(safe-area-inset-bottom));
    left: 0;
    height: 49%;
    overflow: clip;
    opacity: var(--evidence-story-opacity, 1);
    transform: translate3d(0, var(--evidence-exit-y, 0), 0);
    will-change: transform, opacity;
}

.company-mandate-ribbon {
    position: absolute;
    top: .6rem;
    right: .75rem;
    bottom: .45rem;
    left: calc(var(--signal-spine-x) + 2.25rem);
    display: grid;
    grid-template-rows: .72fr .9fr 1.25fr 1fr;
    align-items: stretch;
}

.company-mandate-segment {
    position: relative;
    display: grid;
    min-width: 0;
    min-height: 0;
    grid-template-columns: minmax(5.8rem, .86fr) minmax(0, 1.14fr);
    gap: .18rem .55rem;
    align-content: center;
    padding: .42rem .55rem;
    color: var(--ink);
    opacity: var(--company-segment-opacity, 0);
    clip-path: polygon(2% 0, 100% 0, 98% 100%, 0 100%);
    transform: translate3d(var(--company-segment-x, 0), var(--company-segment-y, 100%), 0) scale(var(--company-segment-scale, .9));
    transform-origin: left bottom;
    will-change: transform, opacity;
}

.company-mandate-segment + .company-mandate-segment { margin-top: -1px; }
.company-mandate-segment-1 { --company-segment-x: var(--company-segment-1-x, 0); --company-segment-y: var(--company-segment-1-y, 100%); --company-segment-opacity: var(--company-segment-1-opacity, 0); --company-segment-scale: var(--company-segment-1-scale, .94); background: var(--channel-3); }
.company-mandate-segment-2 { --company-segment-x: var(--company-segment-2-x, 0); --company-segment-y: var(--company-segment-2-y, 100%); --company-segment-opacity: var(--company-segment-2-opacity, 0); --company-segment-scale: var(--company-segment-2-scale, .92); background: var(--paper); }
.company-mandate-segment-3 { --company-segment-x: var(--company-segment-3-x, 0); --company-segment-y: var(--company-segment-3-y, 100%); --company-segment-opacity: var(--company-segment-3-opacity, 0); --company-segment-scale: var(--company-segment-3-scale, .9); background: var(--channel-1); }
.company-mandate-segment-4 { --company-segment-x: var(--company-segment-4-x, 0); --company-segment-y: var(--company-segment-4-y, 100%); --company-segment-opacity: var(--company-segment-4-opacity, 0); --company-segment-scale: var(--company-segment-4-scale, .88); background: var(--channel-2); color: var(--paper); }

.company-mandate-segment small {
    grid-column: 1;
    font: .53rem/1.15 var(--mono);
    letter-spacing: .045em;
    text-transform: uppercase;
}

.company-mandate-segment strong {
    grid-column: 1;
    max-width: 11ch;
    font: 700 clamp(.96rem, 4.65vw, 1.3rem)/.9 var(--serif);
    letter-spacing: -.045em;
}

.company-mandate-segment span,
.company-mandate-segment em {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    max-width: 28ch;
    font-size: .59rem;
    font-weight: 680;
    line-height: 1.18;
}

.company-mandate-segment em {
    grid-row: 3;
    margin-top: .12rem;
    font-family: var(--mono);
    font-style: normal;
    font-weight: 500;
}

.company-combination-seam {
    position: absolute;
    z-index: 6;
    top: 75%;
    right: .55rem;
    left: calc(var(--signal-spine-x) + 1.8rem);
    height: 2px;
    background: var(--paper);
    opacity: var(--company-seam-opacity, 0);
}

.company-combination-seam span { display: none; }

@media (min-width: 48.0625rem) {
    .evidence-source-case[data-evidence-variant="company"] .company-story-intro {
        top: clamp(4.75rem, 8vh, 7rem);
        right: clamp(3rem, 6vw, 7rem);
        bottom: calc(47% + var(--company-proof-gap));
        left: clamp(3rem, 6vw, 7rem);
    }

    .company-story-kicker { margin-bottom: .75rem; font-size: .6rem; }
    .company-story-heading {
        max-width: 11.5ch;
        font-size: clamp(3.55rem, 5.4vw, 6.1rem);
    }
    .company-story-beat:first-child .company-story-heading { max-width: 12.8ch; }
    .company-story-beat:last-child .company-story-heading { max-width: 15ch; }
    .company-story-support { max-width: 42rem; margin-top: .9rem; font-size: clamp(1.05rem, 1.35vw, 1.28rem); }
    .company-story-beat .evidence-case-link { font-size: .76rem; }

    .company-mandate { bottom: 0; height: 47%; }
    .company-mandate-ribbon {
        top: .8rem;
        right: clamp(1.5rem, 4vw, 4rem);
        bottom: 1.4rem;
        left: max(4rem, 4vw);
        height: auto;
        grid-template-columns: .62fr .88fr 1.55fr 1fr;
        grid-template-rows: 1fr;
        align-items: end;
    }

    .company-mandate-segment {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto 1fr auto;
        gap: .4rem;
        align-content: end;
        height: var(--company-segment-height);
        padding: clamp(.7rem, 1.4vw, 1.2rem);
        clip-path: polygon(0 5%, 100% 0, 100% 100%, 0 100%);
    }

    .company-mandate-segment + .company-mandate-segment { margin-top: 0; margin-left: -1px; }
    .company-mandate-segment-1 { --company-segment-height: 42%; }
    .company-mandate-segment-2 { --company-segment-height: 59%; }
    .company-mandate-segment-3 { --company-segment-height: 88%; }
    .company-mandate-segment-4 { --company-segment-height: 72%; }
    .company-mandate-segment small,
    .company-mandate-segment strong,
    .company-mandate-segment span,
    .company-mandate-segment em { grid-column: 1; grid-row: auto; }
    .company-mandate-segment small { margin-top: clamp(.65rem, 1.15vw, 1.1rem); font-size: clamp(.48rem, .52vw, .58rem); }
    .company-mandate-segment strong { font-size: clamp(1rem, 2.1vw, 2.05rem); }
    .company-mandate-segment span { align-self: end; font-size: clamp(.58rem, .75vw, .72rem); }
    .company-mandate-segment em { align-self: auto; font-size: clamp(.6rem, .9vw, .82rem); }

    .company-combination-seam {
        top: 12%;
        right: auto;
        bottom: 1.2rem;
        left: calc(75.3% - clamp(.75rem, 2.1vw, 2rem));
        width: 2px;
        height: auto;
    }

    .company-mandate-segment-3 small { margin-top: clamp(1.05rem, 1.65vw, 1.5rem); }

    .company-combination-seam span {
        position: absolute;
        top: 0;
        left: .55rem;
        display: block;
        color: var(--paper);
        font: .48rem/1 var(--mono);
        letter-spacing: .05em;
    }
}

@media (min-width: 30.0625rem) and (max-width: 48rem) and (min-height: 43.8125rem) {
    .company-story-heading,
    .somfy-story-heading,
    .rsv-story-heading {
        font-size: clamp(3rem, 8vw, 3.4rem);
    }
}

@media (min-width: 48.0625rem) and (max-height: 43.75rem) {
    .evidence-source-case[data-evidence-variant="company"] .company-story-intro {
        top: 4.15rem;
        bottom: calc(43% + var(--company-proof-gap));
    }
    .company-story-heading { font-size: clamp(3.35rem, 5.25vw, 5.1rem); }
    .company-story-support { margin-top: .6rem; font-size: clamp(.9rem, 1.05vw, 1rem); line-height: 1.27; }
    .company-mandate { height: 43%; }
    .company-mandate-ribbon { bottom: .8rem; }
}

@media (max-width: 48rem) and (max-height: 43.75rem) {
    .evidence-source-case[data-evidence-variant="company"] .company-story-intro {
        top: max(4.35rem, env(safe-area-inset-top));
        bottom: calc(52% + .65rem);
    }
    .company-story-kicker { margin-bottom: .28rem; font-size: .48rem; }
    .company-story-heading { font-size: clamp(2.25rem, 9.8vw, 3.15rem); }
    .company-story-support { margin-top: .42rem; font-size: clamp(.82rem, 3.1vw, .9rem); line-height: 1.26; }
    .company-story-beat .evidence-case-link { margin-top: .32rem; padding-block: .2rem; font-size: .58rem; }
    .company-mandate { height: 52%; }
    .company-mandate-ribbon { top: .45rem; bottom: .25rem; }
    .company-mandate-segment { padding: .28rem .45rem; }
    .company-mandate-segment strong { font-size: clamp(.88rem, 4.15vw, 1.08rem); }
    .company-mandate-segment span,
    .company-mandate-segment em { font-size: .575rem; line-height: 1.12; }
}

@media (max-width: 48rem) {
    body[data-evidence-active="true"] .landing-header-main > span { opacity: 0; }

    .evidence-sticky {
        --evidence-mobile-rail-edge: calc(var(--signal-spine-x) + .25rem);
    }

    .evidence-source-case[data-evidence-variant="company"] .company-story-intro {
        left: var(--evidence-mobile-rail-edge);
    }

    .evidence-source-case[data-evidence-variant="model"] .model-scape {
        --model-content-inset: var(--evidence-mobile-rail-edge);
        left: 0;
    }

    .rsv-identity-card,
    .rsv-van-proof-metric { right: .65rem; }

    .rsv-identity-card {
        top: .7rem;
        width: 10.4rem;
        min-width: 0;
        padding: .68rem .72rem;
        box-shadow: .35rem .35rem 0 color-mix(in srgb, var(--rsv-surface) 52%, transparent);
    }
    .rsv-identity-card > span { font-size: .42rem; }
    .rsv-identity-card > strong { font-size: 1.55rem; }
    .rsv-identity-card dl { grid-template-columns: 1fr; gap: .22rem; margin-top: .52rem; }
    .rsv-identity-card dl div { grid-template-columns: .68fr 1fr; gap: .25rem; padding-top: .2rem; }
    .rsv-identity-card dt { font-size: .4rem; }
    .rsv-identity-card dd { font-size: .55rem; }

    .rsv-van-proof-metric { top: 1rem; width: 7.25rem; }
    .rsv-van-proof-metric strong { font-size: 3.7rem; }
    .rsv-van-proof-metric span { margin-top: .35rem; font-size: .58rem; }

    .evidence-source-case[data-evidence-variant="model"][data-rsv-beat="4"] .rsv-van-scene .component-focus-object {
        transform: translate(155px, 120px) scale(1.55);
    }
    .evidence-source-case[data-evidence-variant="model"][data-rsv-beat="1"] .rsv-van-scene .van-module { filter: none; }

    .evidence-return {
        top: calc(env(safe-area-inset-top) + .35rem);
        width: auto;
        min-height: 1.45rem;
        flex-direction: row;
        gap: .35em;
        padding: .27rem .38rem .22rem;
        box-shadow: none;
        font-size: .5rem;
        letter-spacing: .045em;
        line-height: 1;
        white-space: nowrap;
    }

    .case-directory {
        min-height: auto;
        gap: 2.2rem;
        padding: 5.25rem .75rem 3.5rem calc(var(--signal-spine-x) + 3rem);
    }

    .case-directory-header {
        display: block;
    }

    .case-directory-header > p { min-width: 10.75rem; margin-top: 1.75rem; font-size: .64rem; }
    .case-directory-header h2 { max-width: 8.5ch; font-size: clamp(2.65rem, 12.2vw, 3.8rem); }
    .case-directory-header > span { display: block; margin-top: 1rem; padding: 0; font-size: .76rem; line-height: 1.35; }
    .case-directory-grid { grid-template-columns: 1fr; gap: .65rem; }
    .case-directory-card,
    .case-directory-card[data-directory-case="ready-set-van"] {
        grid-column: 1;
        min-height: 27rem;
        padding: 1rem;
    }
    .case-directory-card-top > p { font-size: .47rem; }
    .case-directory-card h3 { max-width: 9ch; font-size: clamp(2.7rem, 12.5vw, 3.75rem); }
    .case-directory-card[data-directory-case="ready-set-van"] h3 { max-width: 10ch; }
    .case-directory-summary { font-size: .72rem; line-height: 1.35; }
    .case-directory-actions { grid-template-columns: 1fr; }
    .case-directory-read { margin-inline: 0; padding: .55rem .08rem .42rem; font-size: .58rem; }
    .case-directory-experience { padding: .75rem .8rem; }
    .case-directory-experience > span { font-size: .64rem; }

    body[data-evidence-guided="true"] .evidence-source-case { touch-action: pinch-zoom; }
    .evidence-guide {
        top: 50%;
        right: auto;
        bottom: auto;
        left: .25rem;
        width: 2.9rem;
        grid-template-columns: 1fr;
        gap: .35rem;
        padding: .26rem .12rem;
        transform: translateY(-50%);
    }
    .evidence-guide ol { grid-template-rows: repeat(var(--guide-count, 7), .3rem); gap: .13rem; }
    .evidence-guide-controls { grid-template-columns: 1fr; grid-template-rows: 2.65rem auto 2.65rem; gap: .12rem; }
    .evidence-guide button { width: 2.65rem; height: 2.65rem; }
    .evidence-guide output { font-size: .48rem; }
}

@media (max-width: 22rem) {
    body[data-evidence-active="true"] .landing-header-main > strong { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .company-story-intro,
    .company-story-beat,
    .company-mandate,
    .company-mandate-segment { transition: none !important; }
}

/* The selected contact-wall direction: sustained signal pressure against a fixed black boundary. */
body[data-evidence-deck] .contact-footer {
    position: relative;
    isolation: isolate;
    overflow: clip;
    border-top: 0;
    border-image: none;
}

.contact-impact-canvas {
    position: absolute;
    z-index: 0;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: .94;
    pointer-events: none;
}

body[data-evidence-deck] .contact-footer > .contact-intro,
body[data-evidence-deck] .contact-footer > form,
body[data-evidence-deck] .contact-footer > nav {
    position: relative;
    z-index: 2;
}

body[data-evidence-deck] .contact-intro h2 {
    text-shadow: 0 2px 26px color-mix(in srgb, var(--ink) 78%, transparent);
}

body[data-evidence-deck] .contact-footer button {
    border-color: var(--channel-3);
    background: var(--channel-3);
    color: var(--ink);
}

body[data-evidence-deck] .contact-footer button:hover {
    background: var(--channel-3);
    color: var(--ink);
}

@media (max-width: 48rem) {
    .contact-impact-canvas { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    body[data-evidence-deck] .core-case.evidence-source-case { min-height: 0; }
    .evidence-stage { height: auto !important; min-height: 100svh; }
    .evidence-sticky { position: relative; top: auto; height: 100svh; min-height: 100svh; }

    .evidence-field,
    .evidence-intro,
    .evidence-proofs,
    .evidence-title,
    .evidence-kicker,
    .evidence-case-link,
    .evidence-proof,
    .system-scape,
    .system-node,
    .somfy-story-intro,
    .somfy-story-beat,
    .somfy-reach,
    .somfy-crowd-person,
    .somfy-origin,
    .model-scape,
    .rsv-story-intro,
    .rsv-story-beat,
    .rsv-agenda-system,
    .rsv-help-loop,
    .rsv-component-system,
    .rsv-reprint-system,
    .rsv-conclusion-system {
        transition: none !important;
        transform: none !important;
    }

    .rsv-van-scene,
    .rsv-van-scene *,
    .rsv-identity-card,
    .rsv-van-proof-metric {
        animation: none !important;
        transition: none !important;
    }

    .evidence-title,
    .evidence-kicker,
    .evidence-case-link { opacity: 1 !important; }

    .evidence-proof,
    .system-node { opacity: 1 !important; clip-path: none !important; }

    .system-path { opacity: 1 !important; stroke-dashoffset: 0 !important; }
    .evidence-guide { display: none !important; }
}
