:root {
    color-scheme: dark;
    --paper: #0d0f0e;
    --paper-deep: #171814;
    --ink: #ebe7dc;
    --ink-soft: #97988f;
    --rule: rgba(235, 231, 220, 0.15);
    --rule-strong: rgba(235, 231, 220, 0.31);
    --night: #071018;
    --blue: #8ab9ce;
    --gold: #caa769;
    --red: #d26b5c;
    --ledger: #d5cebe;
    --ledger-ink: #1b1d1a;
    --ledger-muted: #50534c;
    --ledger-red: #963a31;
    --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
    --page-pad: clamp(0.9rem, 2.35vw, 2.8rem);
}

/* --------------------------------------------------------------------------
   Portrait landing page
   Scoped so the existing translated gateways remain intact until they are
   regenerated from the canonical English page.
   -------------------------------------------------------------------------- */

body[data-home-version="portrait"] {
    --landing-black: #080b0a;
    --landing-panel: #111714;
    --landing-ivory: #f0e8d4;
    --landing-muted: #9b9c92;
    --landing-gold: #d4b567;
    --landing-blue: #75b9d6;
    --landing-red: #e26c5b;
    --landing-rule: rgba(240, 232, 212, 0.18);
    --landing-pad: clamp(1rem, 2.5vw, 3rem);
    min-height: 100svh;
    color: var(--landing-ivory);
    background:
        radial-gradient(circle at 50% 45%, rgba(54, 77, 62, 0.34), transparent 34rem),
        #080b0a;
    font-family: "Avenir Next", "Helvetica Neue", "Yu Gothic", "PingFang TC", Arial, sans-serif;
}

body[data-home-version="portrait"]::before {
    z-index: 0;
    background:
        radial-gradient(circle at var(--landing-pointer-x, 50%) var(--landing-pointer-y, 42%), rgba(212, 181, 103, 0.085), transparent 23rem),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.018) 0 1px, transparent 1px 5px);
    opacity: 1;
}

body[data-home-version="portrait"] .skip-link {
    z-index: 1000;
    color: #070907;
    background: var(--landing-ivory);
}

body[data-home-version="portrait"] .gateway--portrait {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: none;
    min-height: 100svh;
    margin: 0;
    overflow: hidden;
    display: grid;
    grid-template-rows: auto 1fr auto;
    padding: 0 var(--landing-pad);
    background: transparent;
    box-shadow: none;
    isolation: isolate;
}

body[data-home-version="portrait"] .gateway--portrait::before {
    position: fixed;
    inset: 0;
    z-index: -3;
    content: "";
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(90, 153, 185, 0.055), transparent 26%, transparent 74%, rgba(169, 61, 49, 0.06)),
        repeating-linear-gradient(0deg, transparent 0 3px, rgba(255, 255, 255, 0.012) 3px 4px),
        #080b0a;
}

body[data-home-version="portrait"] .gateway--portrait::after {
    display: none;
}

.landing-header {
    position: relative;
    z-index: 30;
    min-height: clamp(4.5rem, 7.5vw, 6rem);
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1.25rem;
    border-bottom: 1px solid var(--landing-rule);
}

.landing-header::after {
    position: absolute;
    right: 0;
    bottom: -1px;
    width: clamp(4rem, 10vw, 9rem);
    height: 2px;
    background: var(--landing-gold);
    content: "";
}

.landing-identity {
    width: max-content;
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    color: inherit;
    text-decoration: none;
}

.landing-identity__mark {
    width: 2.55rem;
    height: 2.55rem;
    display: grid;
    place-items: center;
    filter: drop-shadow(0 0.25rem 0.3rem rgba(0, 0, 0, 0.65));
}

.landing-identity__mark svg,
.landing-portrait__monogram svg {
    width: 100%;
    height: 100%;
    overflow: visible;
}

.landing-identity__text {
    display: grid;
    gap: 0.18rem;
}

.landing-identity__text strong {
    font-family: "Arial Narrow", "Avenir Next Condensed", "Helvetica Neue Condensed", sans-serif;
    font-size: 0.93rem;
    font-weight: 900;
    letter-spacing: 0.24em;
    line-height: 1;
}

.landing-identity__text small,
.landing-header__status,
.landing-language,
.landing-footer,
.landing-meta {
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.landing-identity__text small {
    color: var(--landing-muted);
}

.landing-header__status {
    grid-column: 2;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.55rem;
    color: var(--landing-muted);
}

.landing-header__status span {
    width: 0.45rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background: #75ae70;
    box-shadow: 0 0 0.8rem rgba(117, 174, 112, 0.6);
}

.landing-language {
    position: relative;
    grid-column: 3;
    justify-self: end;
}

.landing-language summary {
    min-width: 3.5rem;
    min-height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
    color: var(--landing-ivory);
    cursor: pointer;
    list-style: none;
}

.landing-language summary::-webkit-details-marker {
    display: none;
}

.landing-language summary span {
    color: var(--landing-gold);
    font-size: 0.8rem;
    transition: rotate 200ms ease;
}

.landing-language[open] summary span {
    rotate: 45deg;
}

.landing-language__panel {
    position: absolute;
    top: calc(100% + 0.55rem);
    right: 0;
    z-index: 100;
    width: min(21rem, calc(100vw - (var(--landing-pad) * 2)));
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    padding: 0.55rem;
    border: 1px solid rgba(212, 181, 103, 0.52);
    background: #0b100d;
    box-shadow: 0 1.4rem 4rem rgba(0, 0, 0, 0.68);
}

.landing-language__panel a {
    padding: 0.7rem;
    color: var(--landing-muted);
    text-decoration: none;
}

.landing-language__panel a:hover,
.landing-language__panel a:focus-visible,
.landing-language__panel a[aria-current="page"] {
    color: var(--landing-ivory);
    background: rgba(212, 181, 103, 0.09);
}

.landing-main {
    min-width: 0;
}

.landing-hero {
    --portrait-x: 0px;
    --portrait-y: 0px;
    position: relative;
    min-height: max(43rem, calc(100svh - clamp(7.25rem, 11vw, 9.25rem)));
    overflow: hidden;
    border-right: 1px solid var(--landing-rule);
    border-left: 1px solid var(--landing-rule);
    background:
        radial-gradient(ellipse at 50% 80%, rgba(86, 116, 93, 0.24), transparent 34rem),
        linear-gradient(90deg, rgba(73, 135, 168, 0.04), transparent 29%, transparent 71%, rgba(185, 75, 61, 0.045));
    isolation: isolate;
}

.landing-hero::before,
.landing-hero::after {
    position: absolute;
    z-index: -1;
    content: "";
    pointer-events: none;
}

.landing-hero::before {
    inset: 1rem;
    border: 1px dashed rgba(212, 181, 103, 0.23);
}

.landing-hero::after {
    right: 50%;
    bottom: 0;
    width: 1px;
    height: 82%;
    background: linear-gradient(transparent, rgba(212, 181, 103, 0.38), transparent);
}

.landing-hero__mesh {
    position: absolute;
    inset: 0;
    z-index: -2;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(240, 232, 212, 0.028) 1px, transparent 1px),
        linear-gradient(90deg, rgba(240, 232, 212, 0.028) 1px, transparent 1px);
    background-position: center;
    background-size: clamp(3rem, 5vw, 5.4rem) clamp(3rem, 5vw, 5.4rem);
    mask-image: radial-gradient(ellipse at center, black 12%, transparent 75%);
}

.landing-title-block {
    position: absolute;
    top: clamp(1.6rem, 4.7vh, 3.6rem);
    left: 50%;
    z-index: 1;
    width: 100%;
    text-align: center;
    translate: -50% 0;
    pointer-events: none;
}

.landing-title-block > p:first-child,
.landing-title-block__prompt {
    margin: 0;
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: clamp(0.56rem, 0.7vw, 0.68rem);
    font-weight: 800;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.landing-title-block > p:first-child {
    color: var(--landing-muted);
}

.landing-title-block > p:first-child span {
    padding-inline: 0.35rem;
    color: var(--landing-gold);
}

.landing-title-block h1 {
    margin: clamp(0.8rem, 1.5vh, 1.2rem) 0 0;
    color: #dfd6bf;
    font-family: "Arial Narrow", "Avenir Next Condensed", "Helvetica Neue Condensed", sans-serif;
    font-size: clamp(8rem, 18vw, 21rem);
    font-stretch: condensed;
    font-weight: 950;
    letter-spacing: -0.07em;
    line-height: 0.72;
    text-indent: -0.03em;
    text-shadow:
        0 0.035em 0 #050706,
        0.008em 0 rgba(255, 255, 255, 0.35),
        0 0.075em 0.12em rgba(0, 0, 0, 0.62);
    opacity: 0.9;
}

.landing-title-block h1::after {
    position: absolute;
    top: 2.7rem;
    right: 3.8%;
    content: "PLAYER 01";
    color: var(--landing-gold);
    font: 800 0.48rem/1 ui-monospace, "SFMono-Regular", Consolas, monospace;
    letter-spacing: 0.15em;
}

.landing-title-block__prompt {
    width: max-content;
    margin: clamp(1.5rem, 3vh, 2.3rem) auto 0;
    padding: 0.58rem 0.82rem;
    border: 1px solid rgba(240, 232, 212, 0.25);
    color: var(--landing-ivory);
    background: rgba(8, 11, 10, 0.78);
    box-shadow: 0 0 0 3px rgba(8, 11, 10, 0.55);
}

.landing-portrait {
    position: absolute;
    bottom: -1.3rem;
    left: 50%;
    z-index: 5;
    width: min(39vw, 38rem);
    min-width: 23rem;
    aspect-ratio: 1;
    display: grid;
    place-items: end center;
    pointer-events: none;
    transform: translate3d(calc(-50% + var(--portrait-x)), var(--portrait-y), 0);
    transform-origin: 50% 100%;
    will-change: transform;
}

.landing-portrait::after {
    position: absolute;
    right: 8%;
    bottom: 0;
    left: 8%;
    z-index: -1;
    height: 12%;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.72);
    filter: blur(1.1rem);
    content: "";
}

.landing-portrait img {
    position: relative;
    z-index: 3;
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter:
        drop-shadow(0 0 1px rgba(240, 232, 212, 0.42))
        drop-shadow(0 1.5rem 1.2rem rgba(0, 0, 0, 0.72));
}

.landing-portrait__halo {
    position: absolute;
    inset: 12% 7% 3%;
    z-index: 0;
    border-radius: 50%;
    background:
        radial-gradient(circle at 50% 39%, rgba(117, 185, 214, 0.32), transparent 41%),
        radial-gradient(circle, rgba(212, 181, 103, 0.16), transparent 68%);
    filter: blur(0.2rem);
}

.landing-portrait__orbit {
    position: absolute;
    z-index: 1;
    border-radius: 50%;
    pointer-events: none;
}

.landing-portrait__orbit--outer {
    inset: 7%;
    border: 1px dashed rgba(212, 181, 103, 0.4);
}

.landing-portrait__orbit--inner {
    inset: 17%;
    border: 1px solid rgba(117, 185, 214, 0.24);
}

.landing-portrait__monogram {
    position: absolute;
    right: 3%;
    bottom: 9%;
    z-index: 6;
    width: clamp(4.5rem, 7vw, 7rem);
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    rotate: 5deg;
    filter: drop-shadow(0 0.55rem 0.4rem rgba(0, 0, 0, 0.68));
}

.game-switcher {
    position: absolute;
    inset: clamp(10rem, 21vh, 14rem) clamp(1.3rem, 3vw, 3.2rem) clamp(3.8rem, 7vh, 5.4rem);
    z-index: 3;
    display: grid;
    grid-template-columns: minmax(14rem, 1fr) minmax(20rem, 32vw) minmax(14rem, 1fr);
    align-items: center;
    gap: clamp(0.75rem, 1.5vw, 1.5rem);
}

.game-choice {
    --choice-accent: var(--landing-ivory);
    position: relative;
    min-width: 0;
    min-height: clamp(19rem, 45vh, 29rem);
    overflow: hidden;
    display: grid;
    grid-template-rows: auto 1fr auto;
    padding: clamp(1.15rem, 2.2vw, 2rem);
    border: 1px solid color-mix(in srgb, var(--choice-accent) 34%, transparent);
    color: var(--landing-ivory);
    text-decoration: none;
    box-shadow:
        0 0 0 4px #060806,
        0 1.5rem 3rem rgba(0, 0, 0, 0.42),
        inset 0 0 0 4px rgba(255, 255, 255, 0.018);
    transition:
        border-color 420ms ease,
        box-shadow 520ms ease,
        transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
    isolation: isolate;
}

.game-choice::before,
.game-choice::after {
    position: absolute;
    content: "";
    pointer-events: none;
}

.game-choice::before {
    inset: 0.55rem;
    z-index: -1;
    border: 1px dashed color-mix(in srgb, var(--choice-accent) 32%, transparent);
}

.game-choice::after {
    inset: 0;
    z-index: -2;
    background:
        linear-gradient(130deg, color-mix(in srgb, var(--choice-accent) 12%, transparent), transparent 48%),
        repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.025) 0 1px, transparent 1px 4px),
        #111714;
    transition: filter 420ms ease;
}

.game-choice--wmmt {
    --choice-accent: var(--landing-blue);
    grid-column: 1;
    padding-right: clamp(2rem, 5vw, 5rem);
}

.game-choice--idac {
    --choice-accent: var(--landing-red);
    grid-column: 3;
    padding-left: clamp(2rem, 5vw, 5rem);
    text-align: right;
}

.game-choice__index {
    position: relative;
    z-index: 2;
    width: 2.6rem;
    height: 2.6rem;
    display: grid;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--choice-accent) 55%, transparent);
    border-radius: 50%;
    color: var(--choice-accent);
    font: 800 0.58rem/1 ui-monospace, "SFMono-Regular", Consolas, monospace;
    letter-spacing: 0.08em;
}

.game-choice--idac .game-choice__index {
    justify-self: end;
}

.game-choice__copy {
    position: relative;
    z-index: 2;
    align-self: center;
    display: grid;
    gap: 0.28rem;
}

.game-choice__copy small,
.game-choice__copy > span,
.game-choice__action {
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-weight: 750;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.game-choice__copy small {
    color: var(--choice-accent);
    font-size: clamp(0.53rem, 0.65vw, 0.64rem);
}

.game-choice__copy strong {
    color: var(--landing-ivory);
    font-family: "Arial Narrow", "Avenir Next Condensed", "Helvetica Neue Condensed", sans-serif;
    font-size: clamp(3.4rem, 6.5vw, 7.3rem);
    font-stretch: condensed;
    font-weight: 950;
    letter-spacing: -0.055em;
    line-height: 0.85;
    text-shadow:
        0 0.045em 0 #050706,
        0.012em 0 rgba(255, 255, 255, 0.24),
        0 0.12em 0.16em rgba(0, 0, 0, 0.5);
}

.game-choice--idac .game-choice__copy strong {
    max-width: 100%;
    font-size: clamp(1.85rem, 3.65vw, 4.15rem);
    letter-spacing: -0.06em;
    white-space: nowrap;
}

.game-choice__copy > span {
    color: var(--landing-muted);
    font-size: 0.57rem;
}

.game-choice__route {
    position: absolute;
    top: 50%;
    z-index: 0;
    width: min(67%, 17rem);
    aspect-ratio: 23 / 17;
    opacity: 0.37;
    translate: 0 -50%;
    transition: opacity 500ms ease, transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
}

.game-choice--wmmt .game-choice__route {
    right: -8%;
}

.game-choice--idac .game-choice__route {
    left: -8%;
}

.game-choice__route svg {
    width: 100%;
    height: 100%;
    overflow: visible;
    transform-origin: center;
}

.game-choice--wmmt .game-choice__route svg {
    transform: scale(1.45);
}

.game-choice__route path {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.game-choice__route-shadow {
    stroke: #040605;
    stroke-width: var(--featured-route-shadow, 12);
}

.game-choice__route-thread {
    stroke: var(--choice-accent);
    stroke-width: var(--featured-route-thread, 5);
    stroke-dasharray: 0.014 0.006;
    filter:
        drop-shadow(0 1px 0 rgba(255, 255, 255, 0.24))
        drop-shadow(0 3px 2px rgba(0, 0, 0, 0.7));
}

.game-choice--wmmt {
    --featured-route-shadow: 21;
    --featured-route-thread: 9;
}

.game-choice--idac {
    --featured-route-shadow: 28;
    --featured-route-thread: 12;
}

.game-choice__action {
    position: relative;
    z-index: 2;
    align-self: end;
    width: max-content;
    padding-bottom: 0.4rem;
    border-bottom: 1px solid var(--choice-accent);
    color: var(--landing-ivory);
    font-size: 0.6rem;
}

.game-choice--idac .game-choice__action {
    justify-self: end;
}

.game-choice__action b {
    display: inline-block;
    margin-left: 0.5rem;
    color: var(--choice-accent);
    font-size: 0.85rem;
    transition: transform 300ms ease;
}

.game-choice:hover,
.game-choice:focus-visible {
    border-color: color-mix(in srgb, var(--choice-accent) 78%, transparent);
    box-shadow:
        0 0 0 4px #060806,
        0 1.8rem 4rem rgba(0, 0, 0, 0.54),
        inset 0 0 2.8rem color-mix(in srgb, var(--choice-accent) 8%, transparent);
    transform: translateY(-0.38rem);
}

.game-choice:focus-visible {
    outline: 3px solid var(--choice-accent);
    outline-offset: 6px;
}

.game-choice:hover::after,
.game-choice:focus-visible::after {
    filter: brightness(1.12);
}

.game-choice:hover .game-choice__route,
.game-choice:focus-visible .game-choice__route {
    opacity: 0.68;
    transform: scale(1.035);
}

.game-choice:hover .game-choice__action b,
.game-choice:focus-visible .game-choice__action b {
    transform: translate(0.2rem, -0.2rem);
}

.landing-meta {
    position: absolute;
    bottom: 1.05rem;
    left: 50%;
    z-index: 7;
    width: min(25rem, 32vw);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    color: var(--landing-muted);
    background: rgba(240, 232, 212, 0.13);
    translate: -50% 0;
}

.landing-meta p {
    margin: 0;
    min-width: 0;
    display: grid;
    gap: 0.1rem;
    padding: 0.5rem 0.6rem;
    text-align: center;
    background: rgba(7, 10, 8, 0.9);
}

.landing-meta span {
    font-size: 0.45rem;
}

.landing-meta strong {
    overflow: hidden;
    color: var(--landing-ivory);
    font-size: 0.57rem;
    text-overflow: ellipsis;
}

.landing-footer {
    min-height: clamp(2.75rem, 4vw, 3.4rem);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-top: 1px solid var(--landing-rule);
    color: var(--landing-muted);
}

.landing-footer p {
    margin: 0;
}

.landing-footer span {
    padding-inline: 0.3rem;
    color: var(--landing-gold);
}

.landing-identity:focus-visible,
.landing-language summary:focus-visible,
.landing-language__panel a:focus-visible {
    outline: 2px solid var(--landing-gold);
    outline-offset: 4px;
}

.js body[data-home-version="portrait"] .landing-header,
.js body[data-home-version="portrait"] .landing-title-block > p:first-child,
.js body[data-home-version="portrait"] .landing-title-block h1,
.js body[data-home-version="portrait"] .landing-title-block__prompt,
.js body[data-home-version="portrait"] .landing-portrait,
.js body[data-home-version="portrait"] .game-choice,
.js body[data-home-version="portrait"] .landing-meta,
.js body[data-home-version="portrait"] .landing-footer {
    opacity: 0;
}

.js body[data-home-version="portrait"].is-ready .landing-header,
.js body[data-home-version="portrait"].is-ready .landing-title-block > p:first-child,
.js body[data-home-version="portrait"].is-ready .landing-title-block h1,
.js body[data-home-version="portrait"].is-ready .landing-title-block__prompt,
.js body[data-home-version="portrait"].is-ready .landing-portrait,
.js body[data-home-version="portrait"].is-ready .game-choice,
.js body[data-home-version="portrait"].is-ready .landing-meta,
.js body[data-home-version="portrait"].is-ready .landing-footer {
    opacity: 1;
}

@media (prefers-reduced-motion: no-preference) {
    .js body[data-home-version="portrait"].is-ready .landing-header {
        animation: landing-reveal-down 700ms 40ms cubic-bezier(0.22, 1, 0.36, 1) both;
    }

    .js body[data-home-version="portrait"].is-ready .landing-title-block > p:first-child {
        animation: landing-reveal-up 700ms 120ms cubic-bezier(0.22, 1, 0.36, 1) both;
    }

    .js body[data-home-version="portrait"].is-ready .landing-title-block h1 {
        animation: landing-title-reveal 1100ms 150ms cubic-bezier(0.16, 1, 0.3, 1) both;
    }

    .js body[data-home-version="portrait"].is-ready .landing-title-block__prompt {
        animation: landing-reveal-up 700ms 460ms cubic-bezier(0.22, 1, 0.36, 1) both;
    }

    .js body[data-home-version="portrait"].is-ready .landing-portrait {
        animation: landing-portrait-reveal 1250ms 260ms cubic-bezier(0.16, 1, 0.3, 1) both;
    }

    .js body[data-home-version="portrait"].is-ready .game-choice--wmmt {
        animation: landing-card-left 900ms 520ms cubic-bezier(0.16, 1, 0.3, 1) both;
    }

    .js body[data-home-version="portrait"].is-ready .game-choice--idac {
        animation: landing-card-right 900ms 600ms cubic-bezier(0.16, 1, 0.3, 1) both;
    }

    .js body[data-home-version="portrait"].is-ready .landing-meta,
    .js body[data-home-version="portrait"].is-ready .landing-footer {
        animation: landing-reveal-up 700ms 760ms cubic-bezier(0.22, 1, 0.36, 1) both;
    }

    .landing-portrait__orbit--outer {
        animation: landing-orbit 34s linear infinite;
    }

    .landing-portrait__orbit--inner {
        animation: landing-orbit 24s linear reverse infinite;
    }

    .game-choice__route-thread {
        animation: landing-route-stitch 8s cubic-bezier(0.65, 0, 0.35, 1) infinite;
    }

    .game-choice--idac .game-choice__route-thread {
        animation-delay: -4s;
    }

    .landing-header__status span {
        animation: landing-status-pulse 2.8s ease-in-out infinite;
    }
}

@keyframes landing-reveal-down {
    from { opacity: 0; transform: translateY(-1rem); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes landing-reveal-up {
    from { opacity: 0; transform: translateY(1.2rem); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes landing-title-reveal {
    from { opacity: 0; filter: blur(0.45rem); transform: scaleX(0.88); }
    to { opacity: 0.9; filter: blur(0); transform: scaleX(1); }
}

@keyframes landing-portrait-reveal {
    from { opacity: 0; filter: blur(0.65rem); transform: translate3d(calc(-50% + var(--portrait-x)), calc(var(--portrait-y) + 3.5rem), 0) scale(0.91); }
    to { opacity: 1; filter: blur(0); transform: translate3d(calc(-50% + var(--portrait-x)), var(--portrait-y), 0) scale(1); }
}

@keyframes landing-card-left {
    from { opacity: 0; transform: translateX(-3rem); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes landing-card-right {
    from { opacity: 0; transform: translateX(3rem); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes landing-orbit {
    to { rotate: 1turn; }
}

@keyframes landing-route-stitch {
    0% { stroke-dasharray: 0 1; stroke-dashoffset: 0; opacity: 0; }
    8% { opacity: 1; }
    58%, 82% { stroke-dasharray: 1 0; stroke-dashoffset: 0; opacity: 1; }
    100% { stroke-dasharray: 0 1; stroke-dashoffset: -1; opacity: 0; }
}

@keyframes landing-status-pulse {
    0%, 100% { opacity: 0.58; transform: scale(0.85); }
    50% { opacity: 1; transform: scale(1); }
}

@media (max-width: 1050px) {
    .game-switcher {
        grid-template-columns: minmax(13.5rem, 1fr) minmax(17rem, 28vw) minmax(13.5rem, 1fr);
    }

    .game-choice--wmmt {
        padding-right: 2rem;
    }

    .game-choice--idac {
        padding-left: 2rem;
    }

    .landing-meta {
        width: 22rem;
    }
}

@media (max-width: 820px) {
    body[data-home-version="portrait"] .gateway--portrait {
        overflow: visible;
    }

    .landing-header {
        grid-template-columns: 1fr auto;
    }

    .landing-header__status {
        display: none;
    }

    .landing-language {
        grid-column: 2;
    }

    .landing-hero {
        min-height: auto;
        overflow: hidden;
        padding: 2.4rem 1rem 1.4rem;
    }

    .landing-hero::after {
        display: none;
    }

    .landing-title-block {
        position: relative;
        top: auto;
        left: auto;
        translate: 0;
    }

    .landing-title-block h1 {
        font-size: clamp(6rem, 25vw, 11rem);
    }

    .landing-title-block h1::after {
        top: 1.8rem;
    }

    .landing-title-block__prompt {
        margin-top: 1.7rem;
    }

    .landing-portrait {
        position: relative;
        bottom: auto;
        left: auto;
        width: min(72vw, 28rem);
        min-width: 0;
        margin: -0.35rem auto -2.5rem;
        transform: translate3d(var(--portrait-x), var(--portrait-y), 0);
    }

    .game-switcher {
        position: relative;
        inset: auto;
        z-index: 8;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.8rem;
    }

    .game-choice,
    .game-choice--wmmt,
    .game-choice--idac {
        grid-column: auto;
        min-height: 18rem;
        padding: 1.2rem;
    }

    .game-choice__copy strong,
    .game-choice--idac .game-choice__copy strong {
        font-size: clamp(2.8rem, 10vw, 5.2rem);
    }

    .game-choice--idac .game-choice__copy strong {
        font-size: clamp(1.75rem, 5.5vw, 2.8rem);
    }

    .game-choice__route {
        width: 70%;
    }

    .landing-meta {
        position: relative;
        bottom: auto;
        left: auto;
        width: min(100%, 28rem);
        margin: 1.2rem auto 0;
        translate: 0;
    }

    @keyframes landing-portrait-reveal {
        from { opacity: 0; filter: blur(0.65rem); transform: translate3d(var(--portrait-x), calc(var(--portrait-y) + 3rem), 0) scale(0.92); }
        to { opacity: 1; filter: blur(0); transform: translate3d(var(--portrait-x), var(--portrait-y), 0) scale(1); }
    }
}

@media (max-width: 520px) {
    .landing-header {
        min-height: 4.5rem;
    }

    .landing-identity__text small {
        display: none;
    }

    .landing-title-block h1 {
        font-size: clamp(4.5rem, 19vw, 6.4rem);
        letter-spacing: -0.075em;
    }

    .landing-title-block h1::after,
    .landing-portrait__monogram {
        display: none;
    }

    .landing-portrait {
        width: min(70vw, 22rem);
        margin: -0.2rem auto -1.15rem;
    }

    .game-switcher {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.55rem;
    }

    .game-choice,
    .game-choice--wmmt,
    .game-choice--idac {
        min-height: 12.5rem;
        padding: 0.8rem;
        text-align: left;
    }

    .game-choice::before {
        inset: 0.38rem;
    }

    .game-choice__index {
        width: 2rem;
        height: 2rem;
        font-size: 0.48rem;
    }

    .game-choice--idac .game-choice__index,
    .game-choice--idac .game-choice__action {
        justify-self: start;
    }

    .game-choice--idac .game-choice__route {
        right: -8%;
        left: auto;
    }

    .game-choice__copy strong,
    .game-choice--idac .game-choice__copy strong {
        font-size: clamp(2.05rem, 10.5vw, 3rem);
    }

    .game-choice--idac .game-choice__copy strong {
        font-size: clamp(1.05rem, 5.1vw, 1.55rem);
    }

    .game-choice__copy small {
        min-height: 2.4em;
        font-size: 0.43rem;
        line-height: 1.2;
    }

    .game-choice__copy > span,
    .game-choice__action {
        font-size: 0.46rem;
    }

    .game-choice__route {
        width: 92%;
        opacity: 0.25;
    }

    .game-choice__action b {
        margin-left: 0.2rem;
    }

    .landing-footer {
        justify-content: center;
        text-align: center;
    }

    .landing-footer p:first-child {
        display: none;
    }
}

@media (max-height: 760px) and (min-width: 821px) {
    .landing-hero {
        min-height: 39rem;
    }

    .landing-title-block {
        top: 1.5rem;
    }

    .landing-title-block h1 {
        font-size: clamp(7.5rem, 17vw, 16rem);
    }

    .game-switcher {
        inset-block: 9.5rem 3.7rem;
    }

    .game-choice {
        min-height: 17rem;
    }

    .landing-portrait {
        width: min(35vw, 30rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    body[data-home-version="portrait"] *,
    body[data-home-version="portrait"] *::before,
    body[data-home-version="portrait"] *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .game-choice__route-thread {
        stroke-dasharray: 1 0;
        opacity: 1;
    }
}

@view-transition {
    navigation: auto;
}

::view-transition-old(root) {
    animation: gateway-page-out 240ms cubic-bezier(0.4, 0, 1, 1) both;
}

::view-transition-new(root) {
    animation: gateway-page-in 480ms var(--ease-out) both;
}

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

html {
    min-width: 320px;
    color-scheme: dark;
    background: var(--paper);
    scroll-behavior: smooth;
}

body {
    min-width: 320px;
    min-height: 100%;
    margin: 0;
    overflow-x: hidden;
    color: var(--ink);
    background-color: var(--paper);
    background-image:
        linear-gradient(rgba(235, 231, 220, 0.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(235, 231, 220, 0.025) 1px, transparent 1px);
    background-size: 4.25rem 4.25rem;
    font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Yu Gothic", "PingFang TC", "Microsoft JhengHei", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body::before {
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    content: "";
    background-image: repeating-linear-gradient(
        90deg,
        transparent 0,
        transparent calc(25vw - 1px),
        rgba(235, 231, 220, 0.045) calc(25vw - 1px),
        rgba(235, 231, 220, 0.045) 25vw
    );
}

a {
    color: inherit;
}

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

button,
a {
    -webkit-tap-highlight-color: transparent;
}

::selection {
    color: var(--paper);
    background: var(--red);
}

.skip-link {
    position: fixed;
    top: 0.75rem;
    left: 0.75rem;
    z-index: 500;
    padding: 0.75rem 1rem;
    color: var(--paper);
    background: var(--ink);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
    transform: translateY(-180%);
    transition: transform 180ms ease;
}

.skip-link:focus {
    transform: translateY(0);
}

.gateway {
    --page-progress: 0;
    position: relative;
    width: min(100%, 1920px);
    min-height: 100svh;
    margin-inline: auto;
    display: grid;
    grid-template-rows: auto 1fr auto;
    padding-inline: var(--page-pad);
    transition: opacity 300ms ease, transform 480ms var(--ease-out);
}

.gateway::after {
    position: fixed;
    top: 0;
    right: var(--page-pad);
    z-index: 80;
    width: 1px;
    height: 100svh;
    content: "";
    background: var(--gold);
    pointer-events: none;
    transform: scaleY(var(--page-progress));
    transform-origin: top;
}

.masthead {
    position: relative;
    z-index: 10;
    min-height: 68px;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1rem;
    border-bottom: 1px solid var(--rule-strong);
}

.masthead::before,
.masthead::after {
    position: absolute;
    bottom: -4px;
    width: 7px;
    height: 7px;
    border: 1px solid var(--rule-strong);
    background: var(--paper);
    content: "";
}

.masthead::before {
    left: 0;
    translate: -50% 0;
}

.masthead::after {
    right: 0;
    translate: 50% 0;
}

.identity {
    width: max-content;
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    text-decoration: none;
}

.identity strong {
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.24em;
}

.identity > span:not(.identity__crest),
.edition,
.language-switcher {
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.identity > span:not(.identity__crest),
.edition,
.language-switcher {
    color: var(--ink-soft);
}

.edition {
    grid-column: 2;
    margin: 0;
}

.edition span {
    padding-inline: 0.3rem;
}

.language-switcher {
    grid-column: 3;
    justify-self: end;
    display: flex;
    align-items: center;
    gap: clamp(0.45rem, 1vw, 0.8rem);
}

.language-switcher > span {
    color: var(--rule-strong);
    font-weight: 400;
}

.language {
    padding-block: 0.4rem;
    border-bottom: 1px solid transparent;
    text-decoration: none;
    transition: color 180ms ease;
}

.language[aria-current="page"] {
    border-color: currentColor;
    color: var(--ink);
}

.language:hover {
    color: var(--red);
}

.language:focus-visible,
.identity:focus-visible {
    outline: 2px solid var(--red);
    outline-offset: 5px;
}

.language-picker {
    position: relative;
    color: var(--ink-soft);
    text-transform: none;
}

.language-picker summary {
    min-height: 2.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.35rem 0;
    color: inherit;
    cursor: pointer;
    list-style: none;
}

.language-picker summary::-webkit-details-marker {
    display: none;
}

.language-picker summary::after {
    width: 0.42rem;
    height: 0.42rem;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    content: "";
    rotate: 45deg;
    translate: 0 -0.14rem;
    transition: rotate 180ms ease, translate 180ms ease;
}

.language-picker[open] summary::after {
    rotate: 225deg;
    translate: 0 0.14rem;
}

.language-picker summary strong {
    color: var(--ink);
    font-size: 0.625rem;
    font-weight: 750;
    letter-spacing: 0.14em;
}

.language-picker summary:focus-visible,
.language-picker__link:focus-visible {
    outline: 2px solid var(--red);
    outline-offset: 4px;
}

.language-picker__panel {
    position: absolute;
    top: calc(100% + 0.65rem);
    right: 0;
    z-index: 120;
    width: min(24rem, calc(100vw - (var(--page-pad) * 2)));
    padding: 0.8rem;
    border: 1px solid var(--rule-strong);
    background: #111311;
    box-shadow: 0 1.1rem 3rem rgba(0, 0, 0, 0.4);
}

.language-picker__note {
    margin: 0 0 0.75rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--rule);
    color: var(--ink-soft);
    font-size: 0.625rem;
    letter-spacing: 0.08em;
    line-height: 1.45;
}

.language-picker__links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.language-picker__link {
    min-height: 2.75rem;
    display: flex;
    align-items: center;
    padding: 0.5rem 0.62rem;
    border-bottom: 1px solid var(--rule);
    color: var(--ink-soft);
    font-size: 0.64rem;
    letter-spacing: 0.02em;
    line-height: 1.35;
    text-decoration: none;
    transition: color 160ms ease, background-color 160ms ease;
}

.language-picker__link:nth-last-child(-n + 2) {
    border-bottom: 0;
}

.language-picker__link:hover {
    color: var(--ink);
    background: rgba(235, 231, 220, 0.045);
}

.language-picker__link[aria-current="page"] {
    color: var(--ink);
}

.language-picker__link[aria-current="page"]::before {
    margin-right: 0.45rem;
    color: var(--red);
    content: "■";
    font-size: 0.42rem;
}

html[lang="th"] body,
html[lang="th"] .statement h1 {
    font-family: Tahoma, "Leelawadee UI", "Noto Sans Thai", sans-serif;
}

html[lang="vi"] body,
html[lang="vi"] .statement h1 {
    font-family: "Helvetica Neue", Arial, "Noto Sans", sans-serif;
}

html[lang="my"] body,
html[lang="my"] .statement h1 {
    font-family: "Myanmar Sangam MN", "Noto Sans Myanmar", Padauk, sans-serif;
}

html[lang="km"] body,
html[lang="km"] .statement h1 {
    font-family: "Khmer Sangam MN", "Noto Sans Khmer", "Khmer UI", sans-serif;
}

html[lang="lo"] body,
html[lang="lo"] .statement h1 {
    font-family: "Lao Sangam MN", "Noto Sans Lao", "Phetsarath OT", sans-serif;
}

.gateway main {
    min-height: 0;
}

.statement {
    position: relative;
    min-height: min(790px, calc(100svh - 68px));
    max-height: 920px;
    overflow: hidden;
    display: grid;
    grid-template-columns: repeat(16, minmax(0, 1fr));
    grid-template-rows: repeat(14, minmax(0, 1fr));
    background:
        linear-gradient(90deg, rgba(6, 17, 25, 0.98), rgba(13, 15, 14, 0.94) 49.9%, rgba(21, 14, 13, 0.95) 50.1%, rgba(12, 13, 11, 0.98)),
        var(--paper);
    border-bottom: 1px solid var(--rule-strong);
    isolation: isolate;
}

.statement::before {
    position: absolute;
    top: clamp(2rem, 7vh, 5.5rem);
    right: 6.25%;
    bottom: clamp(2rem, 7vh, 5.5rem);
    left: 6.25%;
    z-index: 1;
    border: 1px solid rgba(235, 231, 220, 0.13);
    background:
        radial-gradient(circle at 18% 38%, rgba(80, 188, 235, 0.1), transparent 30%),
        radial-gradient(circle at 82% 66%, rgba(210, 107, 92, 0.1), transparent 32%);
    content: "";
    pointer-events: none;
}

.statement::after {
    position: absolute;
    bottom: clamp(2rem, 7vh, 5.5rem);
    left: 6.25%;
    z-index: 3;
    width: 7.5rem;
    height: 3px;
    background: linear-gradient(90deg, var(--blue), var(--red));
    box-shadow: 0 0 1.2rem rgba(138, 185, 206, 0.34);
    content: "";
}

.statement-cinema {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}

.statement-cinema::before,
.statement-cinema::after {
    position: absolute;
    inset: -18%;
    content: "";
    opacity: 0.48;
    will-change: transform, opacity;
}

.statement-cinema::before {
    background: conic-gradient(
        from 210deg at 50% 55%,
        transparent,
        rgba(61, 166, 214, 0.13),
        transparent 27%,
        rgba(196, 69, 59, 0.1),
        transparent 58%
    );
    animation: gateway-hero-aurora 17s linear infinite;
}

.statement-cinema::after {
    background-image:
        linear-gradient(rgba(235, 231, 220, 0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(235, 231, 220, 0.03) 1px, transparent 1px);
    background-size: 3.5rem 3.5rem;
    opacity: 0.34;
    transform: perspective(650px) rotateX(62deg) scale(1.25) translateY(18%);
    transform-origin: center bottom;
    animation: gateway-hero-grid 10s linear infinite;
}

.statement-cinema__word {
    position: absolute;
    top: 50%;
    left: 50%;
    margin: 0;
    color: transparent;
    font: 800 clamp(9rem, 27vw, 31rem)/0.72 "Arial Narrow", "Helvetica Neue", sans-serif;
    letter-spacing: -0.09em;
    opacity: 0.075;
    -webkit-text-stroke: 1px rgba(235, 231, 220, 0.78);
    transform: translate3d(-51%, -45%, 0) scaleX(0.86);
    white-space: nowrap;
    animation: gateway-hero-word 9s ease-in-out infinite;
}

.statement-cinema__horizon {
    position: absolute;
    top: 54%;
    right: 5%;
    left: 5%;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--blue), rgba(235, 231, 220, 0.5), var(--red), transparent);
    box-shadow: 0 0 1.4rem rgba(177, 200, 209, 0.28);
}

.statement-cinema__horizon i {
    position: absolute;
    bottom: 0;
    left: calc(var(--light-index, 0) * 12.5%);
    width: 1px;
    height: clamp(1.5rem, 7vh, 4.5rem);
    background: linear-gradient(transparent, currentColor);
    color: var(--blue);
    opacity: 0.36;
    transform-origin: bottom;
    animation: gateway-skyline-pulse 3.8s ease-in-out infinite;
}

.statement-cinema__horizon i:nth-child(1) { --light-index: 0.5; animation-delay: -0.4s; }
.statement-cinema__horizon i:nth-child(2) { --light-index: 1.5; height: 8vh; animation-delay: -1.8s; }
.statement-cinema__horizon i:nth-child(3) { --light-index: 2.7; animation-delay: -2.5s; }
.statement-cinema__horizon i:nth-child(4) { --light-index: 3.8; height: 10vh; animation-delay: -0.9s; }
.statement-cinema__horizon i:nth-child(5) { --light-index: 4.4; color: var(--red); animation-delay: -3.1s; }
.statement-cinema__horizon i:nth-child(6) { --light-index: 5.5; height: 6vh; color: var(--red); animation-delay: -1.3s; }
.statement-cinema__horizon i:nth-child(7) { --light-index: 6.5; color: var(--red); animation-delay: -2.2s; }
.statement-cinema__horizon i:nth-child(8) { --light-index: 7.4; height: 9vh; color: var(--red); animation-delay: -0.2s; }

.statement-cinema__telemetry {
    position: absolute;
    right: 7%;
    bottom: 8%;
    left: 7%;
    display: flex;
    justify-content: space-between;
    margin: 0;
    color: rgba(235, 231, 220, 0.42);
    font: 600 0.56rem/1.2 ui-monospace, "SFMono-Regular", Consolas, monospace;
    letter-spacing: 0.18em;
}

.statement-index {
    position: relative;
    z-index: 3;
    grid-column: 1 / 3;
    grid-row: 2 / 14;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    color: #777a73;
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: 0.625rem;
    letter-spacing: 0.08em;
}

.statement-index::before {
    align-self: flex-start;
    width: 3rem;
    height: 1px;
    margin-top: 3.8rem;
    background: var(--red);
    content: "";
}

.statement-copy {
    --red: #df7162;
    position: relative;
    z-index: 2;
    grid-column: 3 / 15;
    grid-row: 3 / 13;
    align-self: center;
    width: min(100%, 1180px);
    min-height: clamp(430px, 54vh, 540px);
    margin-inline: auto;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 3.8fr) minmax(10.5rem, 1fr);
    grid-template-rows: auto 1fr auto;
    gap: clamp(1rem, 2vw, 2.25rem);
    padding: clamp(1.6rem, 3.6vw, 3.6rem);
    color: #f0eee7;
    background:
        linear-gradient(115deg, rgba(15, 36, 49, 0.88), rgba(13, 16, 16, 0.82) 48%, rgba(36, 17, 15, 0.78)),
        repeating-linear-gradient(
            0deg,
            transparent 0,
            transparent 2.05rem,
            rgba(235, 231, 220, 0.045) 2.05rem,
            rgba(235, 231, 220, 0.045) calc(2.05rem + 1px)
        );
    border: 1px solid rgba(235, 231, 220, 0.19);
    box-shadow:
        0 2.5rem 7rem rgba(0, 0, 0, 0.42),
        inset 0 1px rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(18px) saturate(1.2);
    clip-path: polygon(0 0, calc(100% - 2.8rem) 0, 100% 2.8rem, 100% 100%, 0 100%);
}

.statement-copy::before {
    position: absolute;
    top: 0;
    right: 2.8rem;
    bottom: 0;
    width: 1px;
    background: linear-gradient(var(--blue), rgba(235, 231, 220, 0.12), var(--red));
    content: "";
}

.statement-copy::after {
    position: absolute;
    right: 1.05rem;
    bottom: 1.05rem;
    width: 1.25rem;
    height: 1.25rem;
    border: 1px solid rgba(235, 231, 220, 0.48);
    box-shadow: 0 0 1rem rgba(210, 107, 92, 0.22);
    content: "";
}

.eyebrow {
    grid-column: 1 / -1;
    margin: 0;
    padding: 0 0 0.65rem;
    border-bottom: 1px solid rgba(235, 231, 220, 0.2);
    color: rgba(235, 231, 220, 0.68);
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.eyebrow span {
    padding-inline: 0.45rem;
    color: var(--red);
}

.statement h1,
body[data-locale="ja"] .statement h1 {
    grid-column: 1;
    align-self: center;
    max-width: 14ch;
    margin: 0;
    font-family: "Arial Narrow", "Helvetica Neue", "Yu Gothic", "PingFang TC", sans-serif;
    font-size: clamp(3rem, 5.25vw, 6.4rem);
    font-stretch: condensed;
    font-weight: 600;
    letter-spacing: -0.055em;
    line-height: 0.93;
    text-wrap: balance;
}

.statement h1::before {
    width: clamp(3.8rem, 5vw, 5.6rem);
    height: 0.62rem;
    margin: 0 0 clamp(0.85rem, 1.8vw, 1.5rem);
    display: block;
    background: linear-gradient(
        90deg,
        var(--red) 0 0.62rem,
        transparent 0.62rem 1rem,
        var(--red) 1rem 100%
    );
    content: "";
}

.statement h1 span,
.statement h1 em {
    display: block;
}

.statement h1 span {
    margin-bottom: 0.16em;
    color: #9dd4ea;
    font-size: 0.72em;
    font-weight: 500;
    letter-spacing: -0.035em;
    line-height: 1;
    text-shadow: 0 0 2.4rem rgba(81, 178, 219, 0.28);
}

.statement h1 em,
body[data-locale="en"] .statement h1 em {
    max-width: none;
    margin: 0;
    color: #f1eee6;
    background: linear-gradient(108deg, #f4f2eb 4%, #d9e8eb 48%, #ed8b7e 102%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-size: 1em;
    font-style: normal;
    line-height: inherit;
}

.statement h1 em::before {
    display: none;
}

body[data-locale="ja"] .statement h1,
body[data-locale^="zh"] .statement h1 {
    max-width: none;
    word-break: keep-all;
    line-break: strict;
}

body[data-locale="ja"] .statement h1 span,
body[data-locale="ja"] .statement h1 em,
body[data-locale^="zh"] .statement h1 span,
body[data-locale^="zh"] .statement h1 em {
    display: block;
}

.mobile-break {
    display: none;
}

.lede {
    grid-column: 1;
    width: min(42ch, 100%);
    margin: 0;
    padding: 0.8rem 3rem 0 0;
    border-top: 1px solid rgba(235, 231, 220, 0.2);
    color: rgba(235, 231, 220, 0.62);
    font-size: clamp(0.7rem, 0.84vw, 0.86rem);
    line-height: 1.55;
}

.statement-register {
    grid-column: 2;
    grid-row: 2 / 4;
    align-self: stretch;
    min-width: 0;
    margin: 0;
    display: grid;
    grid-template-rows: repeat(2, minmax(0, 1fr));
    border-left: 1px solid rgba(235, 231, 220, 0.2);
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
}

.statement-register > div {
    min-width: 0;
    display: grid;
    grid-template-rows: auto 1fr;
    padding: 0.3rem 0 1rem clamp(1rem, 2vw, 2rem);
}

.statement-register > div + div {
    padding-top: 1rem;
    border-top: 1px solid rgba(235, 231, 220, 0.2);
}

.statement-register dt,
.statement-register dd {
    margin: 0;
}

.statement-register dt {
    color: var(--blue);
    font-size: 0.625rem;
    font-weight: 750;
    letter-spacing: 0.16em;
}

.statement-register > div:last-child dt {
    color: var(--red);
}

.statement-register dd {
    align-self: end;
    min-width: 0;
    display: grid;
    gap: 0.35rem;
}

.statement-register strong,
.statement-register span {
    display: block;
}

.statement-register strong {
    font-family: "Arial Narrow", "Helvetica Neue", sans-serif;
    font-size: clamp(1.8rem, 2.7vw, 3.2rem);
    font-stretch: condensed;
    font-weight: 600;
    letter-spacing: -0.055em;
    line-height: 0.9;
    text-shadow: 0 0 1.6rem rgba(235, 231, 220, 0.12);
}

.statement-register span {
    color: rgba(235, 231, 220, 0.52);
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.4;
}

.statement-mark {
    position: relative;
    z-index: 3;
    grid-column: 14 / 16;
    grid-row: 11 / 13;
    align-self: end;
    justify-self: center;
    width: 3.25rem;
    height: 3.25rem;
    margin: 0;
    display: grid;
    place-items: center;
    border: 1px solid rgba(210, 107, 92, 0.9);
    color: #ed887a;
    background: rgba(13, 15, 14, 0.68);
    box-shadow: 0 0 2rem rgba(210, 107, 92, 0.12);
    backdrop-filter: blur(8px);
    font-family: "Yu Mincho", "Hiragino Mincho ProN", "Songti TC", serif;
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    line-height: 1.2;
    writing-mode: vertical-rl;
}

.statement-cue {
    --red: #e27b6d;
    grid-column: 7 / 11;
    grid-row: 12 / 13;
    z-index: 2;
    align-self: end;
    justify-self: center;
    display: inline-flex;
    align-items: center;
    gap: 0.8rem;
    padding: 0.7rem 0.95rem 0.55rem;
    border-top: 1px solid rgba(235, 231, 220, 0.3);
    color: rgba(235, 231, 220, 0.8);
    background: rgba(8, 11, 11, 0.42);
    backdrop-filter: blur(8px);
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    line-height: 1;
    text-decoration: none;
}

.statement-cue span:last-child {
    color: var(--red);
    font-size: 0.9rem;
    transition: transform 180ms var(--ease-out);
}

.statement-cue:hover span:last-child,
.statement-cue:focus-visible span:last-child {
    transform: translateY(0.22rem);
}

.statement-cue:focus-visible {
    outline: 2px solid var(--red);
    outline-offset: 5px;
}

.route-selection {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
}

.route-selection::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    z-index: 5;
    width: 1px;
    background: repeating-linear-gradient(
        to bottom,
        var(--rule-strong) 0 5px,
        transparent 5px 11px
    );
    content: "";
    pointer-events: none;
}

.route {
    --route-art-x: 0px;
    --route-art-y: 0px;
    --route-pointer-x: 50%;
    --route-pointer-y: 50%;
    --course-bag-progress: 0.04;
    position: relative;
    width: 100%;
    min-width: 0;
    min-height: clamp(620px, 82svh, 900px);
    overflow: hidden;
    display: grid;
    grid-template-columns: repeat(16, minmax(0, 1fr));
    grid-template-rows: auto 1fr auto;
    gap: 0;
    padding: clamp(1.4rem, 3vw, 3.4rem);
    border-top: 1px solid var(--rule-strong);
    text-decoration: none;
    isolation: isolate;
}

.route + .route {
    border-top: 1px solid var(--rule-strong);
    border-left: 1px solid var(--rule-strong);
}

.route::before {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 4;
    width: 8px;
    height: 100%;
    background: currentColor;
    content: "";
    transform: scaleY(0.12);
    transform-origin: top;
    transition: transform 700ms var(--ease-out);
}

.route::after {
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image:
        linear-gradient(90deg, transparent calc(25% - 1px), currentColor 25%, transparent calc(25% + 1px)),
        linear-gradient(90deg, transparent calc(75% - 1px), currentColor 75%, transparent calc(75% + 1px));
    opacity: 0.045;
    content: "";
}

.route-selection::after {
    position: absolute;
    inset: 0;
    z-index: 6;
    background: linear-gradient(
        106deg,
        transparent 0 42%,
        rgba(255, 255, 255, 0.06) 48%,
        transparent 54% 100%
    );
    content: "";
    opacity: 0;
    pointer-events: none;
    transform: translate3d(-80%, 0, 0);
    will-change: transform, opacity;
    animation: gateway-cinematic-sweep 12s cubic-bezier(0.22, 1, 0.36, 1) 2s infinite;
}

.route:hover::before,
.route:focus-visible::before {
    transform: scaleY(1);
}

.route:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: -2px;
}

.route--wmmt {
    color: #edf3f5;
    background-color: var(--night);
    background-image: repeating-linear-gradient(
        0deg,
        transparent 0,
        transparent 3.2rem,
        rgba(138, 185, 206, 0.045) 3.2rem,
        rgba(138, 185, 206, 0.045) calc(3.2rem + 1px)
    );
}

.route--wmmt .route-art {
    background:
        radial-gradient(circle at 34% 42%, rgba(45, 153, 208, 0.12), transparent 30%),
        linear-gradient(128deg, transparent 0 52%, rgba(138, 185, 206, 0.045) 52.2%, transparent 53%);
}

.route--wmmt::before {
    color: var(--blue);
}

.route--idac {
    color: #eeeae1;
    background-color: var(--paper-deep);
    background-image: repeating-linear-gradient(
        0deg,
        transparent 0,
        transparent 3.2rem,
        rgba(235, 231, 220, 0.035) 3.2rem,
        rgba(235, 231, 220, 0.035) calc(3.2rem + 1px)
    );
    transition: background-color 900ms ease, box-shadow 900ms ease;
}

.route--idac .route-art {
    background:
        radial-gradient(circle at 67% 47%, rgba(210, 107, 92, 0.11), transparent 33%),
        linear-gradient(48deg, transparent 0 47%, rgba(210, 107, 92, 0.04) 47.2%, transparent 48%);
}

.route--idac[data-weather="rain"] {
    background-color: #07141a;
    box-shadow: inset 0 0 8rem rgba(24, 119, 158, 0.13);
}

.route--idac[data-weather="snow"] {
    background-color: #101719;
    box-shadow: inset 0 0 8rem rgba(202, 235, 246, 0.1);
}

.route--idac[data-weather="rain"] .idac-course-readout {
    color: #71ddff;
    border-color: rgba(113, 221, 255, 0.56);
}

.route--idac[data-weather="snow"] .idac-course-readout {
    color: #e9faff;
    border-color: rgba(233, 250, 255, 0.62);
}

.route--idac::before {
    right: 0;
    left: auto;
    color: var(--red);
    transform-origin: bottom;
}

.route-number {
    grid-column: 1 / 2;
    grid-row: 1;
    z-index: 3;
    width: 3.5rem;
    height: 3.5rem;
    display: grid;
    place-items: center;
    border: 1px solid currentColor;
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: 0.625rem;
    letter-spacing: 0.15em;
    transform-origin: center;
    transition:
        color 260ms ease,
        background-color 260ms ease,
        transform 520ms var(--ease-out);
}

.route--wmmt .route-number,
.route--wmmt .route-heading p {
    color: var(--blue);
}

.route--idac .route-number,
.route--idac .route-heading p {
    color: var(--red);
}

.route--idac .route-number {
    grid-column: 16;
    justify-self: end;
}

.route-heading {
    grid-column: 2 / 9;
    grid-row: 1;
    z-index: 2;
    align-self: start;
    padding-left: clamp(0.8rem, 1.8vw, 2rem);
}

.route--idac .route-heading {
    grid-column: 9 / 16;
    padding-right: clamp(0.8rem, 1.8vw, 2rem);
    padding-left: 0;
    text-align: right;
}

.route-heading p {
    margin: 0 0 0.4rem;
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: 0.625rem;
    font-weight: 500;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.route-heading h2 {
    margin: 0;
    font-family: "Arial Narrow", "Helvetica Neue", sans-serif;
    font-size: clamp(3.8rem, 7.3vw, 8.4rem);
    font-stretch: condensed;
    font-weight: 600;
    letter-spacing: -0.06em;
    line-height: 0.86;
    transform-origin: left center;
    transition:
        letter-spacing 620ms var(--ease-out),
        transform 620ms var(--ease-out);
}

.route--idac .route-heading h2 {
    transform-origin: right center;
}

.route-heading h2::after {
    display: inline-block;
    width: clamp(2.5rem, 5vw, 5rem);
    height: 0.5em;
    margin-left: 0.6rem;
    border-top: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    opacity: 0.36;
    content: "";
}

.route--idac .route-heading h2::after {
    margin-right: 0.6rem;
    margin-left: 0;
    transform: rotate(180deg);
}

.route-art {
    position: absolute;
    inset: 10% 0 9%;
    z-index: -1;
    pointer-events: none;
}

.route-art::before {
    position: absolute;
    inset: -12%;
    z-index: -1;
    content: "";
    opacity: 0;
    filter: blur(18px);
    transition: opacity 520ms ease;
}

.route-art::after {
    position: absolute;
    top: -22%;
    bottom: -22%;
    left: -30%;
    z-index: 3;
    width: 22%;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 0.02) 24%,
        rgba(255, 255, 255, 0.2) 50%,
        rgba(255, 255, 255, 0.03) 76%,
        transparent
    );
    content: "";
    opacity: 0;
    pointer-events: none;
    transform: translate3d(-180%, 0, 0) skewX(-12deg);
    will-change: transform, opacity;
}

.route--wmmt .route-art::before {
    background: radial-gradient(
        circle at var(--route-pointer-x) var(--route-pointer-y),
        rgba(138, 185, 206, 0.16),
        transparent 36%
    );
}

.route--idac .route-art::before {
    background: radial-gradient(
        circle at var(--route-pointer-x) var(--route-pointer-y),
        rgba(210, 107, 92, 0.13),
        transparent 38%
    );
}

.route:hover .route-art::before,
.route:focus-visible .route-art::before {
    opacity: 1;
}

@media (min-width: 901px) {
    .route {
        min-height: clamp(680px, 82svh, 920px);
        padding: clamp(1.35rem, 2.25vw, 2.8rem);
    }

    .route-heading h2 {
        font-size: clamp(3.5rem, 5.3vw, 6.8rem);
    }

    .route-heading h2::after {
        width: clamp(1.8rem, 3.1vw, 3.8rem);
    }

    .route-map--wmmt {
        left: -7%;
        width: 82%;
    }

    .route-art--car img {
        right: -24%;
        bottom: 1%;
        width: min(102%, 920px);
    }

    .idac-course-plates {
        height: 100%;
        grid-template-columns: 1fr;
        align-content: center;
    }

    .idac-course-plate {
        width: 72%;
        padding: 0;
        border-right: 0;
        opacity: 0.78;
        transform: translate3d(0, 0, 0) rotate(-1.25deg);
        transform-origin: center;
        transition:
            opacity 520ms ease,
            transform 760ms var(--ease-out);
    }

    .idac-course-plate:nth-child(1) {
        justify-self: start;
    }

    .idac-course-plate:nth-child(2) {
        justify-self: end;
        margin-top: -20%;
        transform: translate3d(0, 0, 0) rotate(1.5deg);
    }

    .idac-course-plate:nth-child(3) {
        justify-self: start;
        margin-top: -20%;
        transform: translate3d(0, 0, 0) rotate(-0.75deg);
    }

    .route--idac:is(:hover, :focus-visible) .idac-course-plate {
        opacity: 0.98;
        transform: translate3d(3%, -1%, 0) rotate(0deg) scale(1.025);
    }

    .route--idac:is(:hover, :focus-visible) .idac-course-plate:nth-child(2) {
        transform: translate3d(-3%, 0, 0) rotate(0deg) scale(1.035);
    }
}

.route-map {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
}

.route-map path {
    fill: none;
    vector-effect: non-scaling-stroke;
}

.route-map .track-base path {
    stroke-width: 1;
}

.route-map--wmmt {
    right: auto;
    left: 1%;
    width: 61%;
    opacity: 0.95;
    translate: var(--route-art-x) var(--route-art-y);
    transition: translate 520ms var(--ease-out);
}

.js .route-map--wmmt:not([data-route-ready="true"]) {
    opacity: 0;
}

.route-map--wmmt .track-base path {
    stroke: rgba(138, 185, 206, 0.28);
}

.route-map .track-progress path {
    stroke-dasharray: 1;
    stroke-dashoffset: var(--track-offset, 1);
    stroke-width: 1.65;
}

.js .route-map--wmmt.is-course-drawing .track-progress path {
    animation: gateway-course-draw var(--course-draw-duration, 3s) var(--ease-out) both;
}

.route-map--wmmt .track-progress path {
    stroke: rgba(138, 185, 206, 0.92);
}

.route-map--wmmt .track-progress path:first-child {
    stroke: rgba(138, 185, 206, 0.92);
}

.route-map--wmmt .track-progress path:last-child {
    stroke: rgba(202, 167, 105, 0.68);
}

.route-map .track-flow path {
    opacity: 0;
    stroke: var(--gold);
    stroke-dasharray: 0.045 0.04;
    stroke-dashoffset: 0;
    stroke-width: 1.9;
    transition: opacity 180ms ease;
}

.route--wmmt .track-flow path {
    opacity: 0.38;
    animation: gateway-track-flow 5.2s linear infinite;
}

.route--wmmt:hover .track-flow path,
.route--wmmt:focus-visible .track-flow path {
    opacity: 0.86;
    animation-duration: 2.2s;
}

.route-map--wmmt:is([data-course="hiroshima"], [data-course="tokyo"], [data-course="kanagawa"]) .track-flow path {
    opacity: 0.28;
    stroke-dasharray: 0.035 0.07;
    animation: none;
}

.gateway-track-marker {
    opacity: var(--track-marker-opacity, 0);
    pointer-events: none;
}

.gateway-track-marker[hidden] {
    display: none;
}

.gateway-track-motion-path {
    opacity: 0;
    pointer-events: none;
}

.gateway-track-marker__halo {
    fill: var(--night);
    stroke: var(--gold);
    stroke-width: 1.2;
    vector-effect: non-scaling-stroke;
    animation: gateway-marker-pulse 2.4s ease-in-out infinite;
}

.route-map .gateway-track-marker__needle {
    fill: #edf3f5;
    stroke: none;
}

/* Shared autonomous traveler: JS owns only translate/rotate and opacity variables. */
.course-traveler {
    opacity: var(--traveler-opacity, 0);
    pointer-events: none;
    transform-box: fill-box;
    transform-origin: center;
    will-change: transform, opacity;
}

.course-traveler__wake {
    fill: rgba(7, 16, 24, 0.78);
    stroke: currentColor;
    stroke-width: 1.25;
    vector-effect: non-scaling-stroke;
    animation: gateway-traveler-wake 1.35s ease-in-out infinite;
}

.course-traveler__triangle {
    fill: currentColor !important;
    stroke: rgba(255, 255, 255, 0.92);
    stroke-width: 0.72;
    vector-effect: non-scaling-stroke;
    filter: drop-shadow(0 0 4px currentColor) drop-shadow(0 0 11px currentColor);
}

.course-traveler__core {
    fill: #fff;
    stroke: none;
    filter: drop-shadow(0 0 3px #fff);
}

.course-traveler--wmmt {
    color: #8edcff;
}

.course-traveler--idac {
    color: #ff806f;
}

.route-art--car img {
    position: absolute;
    right: -2%;
    bottom: -2%;
    width: min(69%, 1080px);
    height: auto;
    object-fit: contain;
    opacity: 0.78;
    translate: var(--route-art-x) var(--route-art-y);
    transform: translate3d(0, 0, 0);
    transition: opacity 520ms ease, transform 900ms var(--ease-out), translate 620ms var(--ease-out);
}

.route--wmmt:hover .route-art--car img,
.route--wmmt:focus-visible .route-art--car img {
    opacity: 0.94;
    transform: translate3d(0.8%, -0.5%, 0);
}

.wmmt-course-readout {
    position: absolute;
    top: 55%;
    left: clamp(1.4rem, 3vw, 3.4rem);
    z-index: 2;
    width: min(22rem, 48%);
    padding: 0.55rem 0 0 0.9rem;
    border-top: 1px solid rgba(138, 185, 206, 0.42);
    color: var(--blue);
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: clamp(0.56rem, 0.72vw, 0.68rem);
    font-weight: 700;
    letter-spacing: 0.11em;
    line-height: 1.45;
    text-transform: uppercase;
    text-shadow: 0 0 1rem rgba(138, 185, 206, 0.3);
    transition: color 260ms ease, letter-spacing 520ms var(--ease-out);
}

.idac-course-readout {
    position: absolute;
    top: 55%;
    right: clamp(1.4rem, 3vw, 3.4rem);
    z-index: 2;
    width: min(27rem, 58%);
    padding: 0.55rem 0.9rem 0 0;
    border-top: 1px solid rgba(210, 107, 92, 0.46);
    color: var(--red);
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: clamp(0.54rem, 0.7vw, 0.66rem);
    font-weight: 700;
    letter-spacing: 0.09em;
    line-height: 1.5;
    text-align: right;
    text-transform: uppercase;
    text-shadow: 0 0 1rem rgba(210, 107, 92, 0.28);
    transition: color 260ms ease, letter-spacing 520ms var(--ease-out);
}

.course-readout {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: end;
    gap: 0.08rem 0.7rem;
}

.course-readout::after {
    grid-column: 1 / -1;
    width: calc(var(--course-bag-progress) * 100%);
    height: 2px;
    margin-top: 0.38rem;
    background: currentColor;
    box-shadow: 0 0 0.8rem currentColor;
    content: "";
    opacity: 0.72;
    transition: width 1.1s var(--ease-out);
}

.course-readout__signal {
    grid-column: 1 / -1;
    opacity: 0.67;
    font-size: 0.52rem;
    letter-spacing: 0.19em;
}

.course-readout__signal::before {
    display: inline-block;
    width: 0.42rem;
    height: 0.42rem;
    margin-right: 0.45rem;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 0.7rem currentColor;
    content: "";
    animation: gateway-live-signal 1.8s ease-in-out infinite;
}

.course-readout__name {
    min-width: 0;
    overflow: hidden;
    font-size: 0.68rem;
    letter-spacing: 0.12em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.course-readout__meta {
    justify-self: end;
    opacity: 0.66;
    font-size: 0.5rem;
    letter-spacing: 0.08em;
    white-space: nowrap;
}

.idac-course-readout .course-readout__name {
    grid-column: 1 / -1;
    justify-self: end;
    max-width: 100%;
}

.idac-course-readout .course-readout__meta {
    grid-column: 1 / -1;
}

.idac-course-readout::before {
    position: absolute;
    top: -3px;
    right: 0;
    width: 6px;
    height: 6px;
    background: currentColor;
    box-shadow: 0 0 0.8rem currentColor;
    content: "";
}

.route--idac:is(:hover, :focus-visible) .idac-course-readout {
    color: #f4aaa0;
    letter-spacing: 0.12em;
}

.wmmt-course-readout::before {
    position: absolute;
    top: -3px;
    left: 0;
    width: 6px;
    height: 6px;
    background: currentColor;
    box-shadow: 0 0 0.8rem currentColor;
    content: "";
}

.route--wmmt:is(:hover, :focus-visible) .wmmt-course-readout {
    color: #d9f2ff;
    letter-spacing: 0.14em;
}

.route-art--seasons {
    inset: 13% 0 10%;
    display: grid;
    align-items: center;
    justify-items: stretch;
}

/* IDAC climate contract: route[data-weather] selects only the relevant layer. */
.idac-weather-system,
.idac-weather-layer,
.idac-weather-haze {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.idac-weather-system {
    z-index: 0;
    opacity: 0;
    transition: opacity 720ms ease;
}

.idac-weather-layer {
    opacity: 0;
    transition: opacity 720ms ease;
}

.idac-weather-haze {
    background: radial-gradient(circle at 64% 52%, rgba(220, 228, 226, 0.13), transparent 46%);
    mix-blend-mode: screen;
    opacity: 0;
    transform: scale(1.08);
}

.route--idac:is([data-weather="rain"], [data-weather="snow"]) .idac-weather-system {
    opacity: 1;
}

.route--idac[data-weather="rain"] .idac-weather-layer--rain,
.route--idac[data-weather="snow"] .idac-weather-layer--snow {
    opacity: 1;
}

.route--idac[data-weather="rain"] .idac-weather-haze {
    background:
        linear-gradient(112deg, transparent 0 46%, rgba(84, 194, 231, 0.12) 50%, transparent 54%),
        radial-gradient(circle at 66% 54%, rgba(51, 137, 177, 0.18), transparent 48%);
    opacity: 0.78;
    animation: gateway-weather-breathe 3.2s ease-in-out infinite;
}

.route--idac[data-weather="snow"] .idac-weather-haze {
    background:
        conic-gradient(from 45deg at 67% 50%, transparent, rgba(227, 246, 255, 0.11), transparent 18%),
        radial-gradient(circle at 68% 50%, rgba(219, 240, 245, 0.2), transparent 50%);
    opacity: 0.84;
    animation: gateway-snow-prism 7s linear infinite;
}

.idac-weather-particle {
    position: absolute;
    top: -18%;
    left: var(--weather-x);
    display: block;
    pointer-events: none;
    will-change: transform, opacity;
}

.idac-weather-particle--rain {
    width: 1px;
    height: clamp(2.4rem, 8vh, 5.8rem);
    background: linear-gradient(transparent, rgba(158, 223, 255, 0.88));
    box-shadow: 0 0 0.4rem rgba(91, 195, 242, 0.46);
    opacity: 0;
    rotate: 12deg;
    animation: gateway-rain-fall var(--weather-duration) linear var(--weather-delay) infinite;
}

.idac-weather-particle--snow {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #f4fbff;
    box-shadow:
        0 0 0.45rem rgba(222, 246, 255, 0.9),
        0 0 1.2rem rgba(182, 225, 244, 0.55);
    opacity: 0;
    scale: var(--weather-scale);
    animation: gateway-snow-fall var(--weather-duration) linear var(--weather-delay) infinite;
}

/* Only the selected climate receives compositor time after its particles are created. */
.idac-weather-particle {
    animation-play-state: paused;
}

.route--idac[data-weather="rain"] .idac-weather-layer--rain .idac-weather-particle,
.route--idac[data-weather="snow"] .idac-weather-layer--snow .idac-weather-particle {
    animation-play-state: running;
}

.idac-course-plates {
    position: relative;
    z-index: 1;
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: center;
    translate: var(--route-art-x) var(--route-art-y);
    transition: translate 620ms var(--ease-out);
}

.idac-course-plate {
    --course-offset: 1;
    --course-runner-offset: 0;
    --course-marker-opacity: 0;
    width: 100%;
    height: auto;
    aspect-ratio: 533 / 400;
    overflow: visible;
    padding: clamp(0.5rem, 1.5vw, 1.75rem);
    border-right: 1px solid rgba(235, 231, 220, 0.1);
    opacity: 0.84;
}

.idac-course-plate:last-child {
    border-right: 0;
}

.idac-course-plates[data-course-cycle="true"] {
    grid-template-columns: minmax(0, 1fr);
    place-items: center;
}

.idac-course-plates[data-course-cycle="true"] .idac-course-plate {
    justify-self: center;
    width: min(88%, 760px);
    margin: 0;
    padding: clamp(0.35rem, 1vw, 1rem);
    border-right: 0;
    opacity: 0.9;
    transform: translate3d(0, 0, 0) rotate(-0.45deg);
    transform-origin: center;
    transition: opacity 520ms ease, transform 760ms var(--ease-out);
}

.route--idac:is(:hover, :focus-visible)
    .idac-course-plates[data-course-cycle="true"] .idac-course-plate {
    opacity: 1;
    transform: translate3d(-1%, -0.5%, 0) rotate(0deg) scale(1.025);
}

.idac-course-line {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}

.idac-course-line--base {
    stroke: rgba(235, 231, 220, 0.2);
    stroke-width: 1;
}

.idac-course-line--draw,
.idac-course-line--runner {
    stroke: var(--red);
    stroke-width: 1.7;
    stroke-dasharray: 1;
    stroke-dashoffset: 0;
}

.idac-course-line--runner {
    opacity: 0.52;
    stroke: #eeeae1;
    stroke-width: 2.5;
    stroke-dasharray: 0.035 0.965;
}

.js .idac-course-line--draw {
    stroke-dashoffset: var(--course-offset);
}

.js .idac-course-plate.is-course-drawing .idac-course-line--draw {
    animation: gateway-course-draw var(--course-draw-duration, 3s) var(--ease-out) both;
}

.route.is-course-cycle-paused,
.route.is-course-cycle-paused *,
.route.is-course-cycle-paused::before,
.route.is-course-cycle-paused::after,
.route.is-course-cycle-paused *::before,
.route.is-course-cycle-paused *::after {
    animation-play-state: paused !important;
}

.js .idac-course-line--runner {
    opacity: 0.52;
    stroke-dashoffset: var(--course-runner-offset);
    transition: opacity 360ms ease;
}

.route--idac:hover .idac-course-line--runner,
.route--idac:focus-visible .idac-course-line--runner {
    opacity: 0.95;
}

.route--idac[data-weather="rain"] .idac-course-line--base {
    stroke: rgba(83, 183, 222, 0.32);
}

.route--idac[data-weather="rain"] .idac-course-line--draw {
    stroke: #62d6ff;
    stroke-width: 2;
    filter: drop-shadow(0 0 4px rgba(82, 210, 255, 0.88));
}

.route--idac[data-weather="rain"] .idac-course-line--runner {
    opacity: 0.9;
    stroke: #eefcff;
    stroke-width: 3.2;
    stroke-dasharray: 0.024 0.976;
    filter: drop-shadow(0 0 4px #7bddff);
}

.route--idac[data-weather="rain"] .course-traveler--idac {
    color: #6ee1ff;
}

.route--idac[data-weather="snow"] .idac-course-line--base {
    stroke: rgba(225, 243, 250, 0.34);
    stroke-dasharray: 0.02 0.014;
}

.route--idac[data-weather="snow"] .idac-course-line--draw {
    stroke: #e8f8ff;
    stroke-width: 2.05;
    filter: drop-shadow(0 0 5px rgba(201, 238, 255, 0.78));
}

.route--idac[data-weather="snow"] .idac-course-line--runner {
    opacity: 0.76;
    stroke: #fff;
    stroke-dasharray: 0.018 0.018 0.004 0.96;
}

.route--idac[data-weather="snow"] .course-traveler--idac {
    color: #ecfbff;
}

.idac-course-marker {
    opacity: var(--course-marker-opacity);
    pointer-events: none;
}

.idac-course-marker__ring {
    fill: var(--paper-deep);
    stroke: var(--red);
    stroke-width: 1.6;
    vector-effect: non-scaling-stroke;
}

.idac-course-marker__core {
    fill: #eeeae1;
}

.idac-course-marker__needle {
    fill: #eeeae1;
}

.idac-course-marker__ring {
    animation: gateway-marker-pulse 2.4s ease-in-out infinite;
}

.js .idac-course-plate.is-route-static .idac-course-line--draw {
    stroke-dashoffset: 0;
}

.js .idac-course-plate.is-route-static .idac-course-line--runner,
.js .idac-course-plate.is-route-static .idac-course-marker {
    display: none;
}

.route-record {
    position: relative;
    grid-column: 2 / 8;
    grid-row: 3;
    z-index: 2;
    align-self: end;
    width: 100%;
    padding: 1rem 1rem 0 0;
    border-top: 1px solid currentColor;
}

.route-record::before {
    position: absolute;
    top: -3px;
    left: 0;
    width: 6px;
    height: 6px;
    background: currentColor;
    content: "";
}

.route--idac .route-record {
    grid-column: 10 / 16;
    padding-right: 0;
    padding-left: 1rem;
    text-align: right;
}

.route--idac .route-record::before {
    right: 0;
    left: auto;
}

.route-record p,
.route-record strong,
.route-record > span {
    display: block;
}

.route-record p {
    margin: 0 0 0.4rem;
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: clamp(0.7rem, 0.8vw, 0.82rem);
}

.route-record p span {
    padding-inline: 0.25rem;
    color: var(--gold);
}

.route-record strong {
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: clamp(0.92rem, 1.12vw, 1.12rem);
    letter-spacing: 0.03em;
}

.route-record > span {
    margin-top: 0.2rem;
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.route--wmmt .route-record {
    border-color: rgba(237, 243, 245, 0.32);
}

.route--wmmt .route-record::before {
    color: var(--blue);
}

.route--wmmt .route-record > span {
    color: var(--blue);
}

.route--idac .route-record {
    border-color: rgba(238, 234, 225, 0.28);
}

.route--idac .route-record::before {
    color: var(--red);
}

.route--idac .route-record > span {
    color: var(--red);
}

.route-enter {
    grid-column: 13 / 17;
    grid-row: 3;
    z-index: 2;
    align-self: end;
    justify-self: end;
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.8rem 0 0.35rem;
    border-top: 1px solid currentColor;
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.route--idac .route-enter {
    grid-column: 1 / 5;
    justify-self: start;
}

.route-enter b {
    font-size: 1rem;
    font-weight: 400;
    transition: transform 360ms var(--ease-out);
}

.route:hover .route-enter b,
.route:focus-visible .route-enter b {
    transform: translate3d(0.25rem, -0.25rem, 0);
}

@media (prefers-reduced-motion: no-preference) {
    .route::after {
        background-size: 100% 100%, 100% 100%, 180% 100%;
        animation: gateway-grid-breathe 8s ease-in-out infinite;
    }

    .route-heading h2 {
        animation: gateway-title-charge 6.4s ease-in-out infinite;
    }

    .route--idac .route-heading h2 {
        animation-delay: -2.8s;
    }

    .route-heading h2::after {
        animation: gateway-telemetry-bars 3.8s steps(5, end) infinite;
    }

    .route-art[data-course-stage] {
        animation: gateway-stage-breathe 7.5s ease-in-out infinite;
    }

    .route--idac .route-art[data-course-stage] {
        animation-delay: -3.2s;
    }

    .route-art--car img {
        animation: gateway-car-lighting 6s ease-in-out infinite;
    }

    .route:is(:hover, :focus-visible) .route-number {
        transform: rotate(-7deg) scale(1.08);
    }

    .route--wmmt:is(:hover, :focus-visible) .route-number {
        color: var(--night);
        background: var(--blue);
    }

    .route--idac:is(:hover, :focus-visible) .route-number {
        color: var(--paper);
        background: var(--red);
        transform: rotate(7deg) scale(1.08);
    }

    .route:is(:hover, :focus-visible) .route-heading h2 {
        letter-spacing: -0.075em;
        transform: translate3d(0.18rem, -0.16rem, 0) scale(1.018);
    }

    .route--idac:is(:hover, :focus-visible) .route-heading h2 {
        transform: translate3d(-0.18rem, -0.16rem, 0) scale(1.018);
    }

    .route:is(:hover, :focus-visible) .route-art::after {
        animation: gateway-light-sweep 1.15s var(--ease-out) both;
    }

    .route:is(:hover, :focus-visible) .route-record strong {
        animation: gateway-record-surge 720ms var(--ease-out) both;
    }

    .route:is(:hover, :focus-visible) .route-enter {
        animation: gateway-enter-pulse 1.5s ease-in-out 420ms infinite;
    }
}

.gateway-footer {
    min-height: 74px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-top: 1px solid var(--rule-strong);
    color: var(--ink-soft);
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.gateway-footer p {
    margin: 0;
}

.gateway-map-credit a {
    color: inherit;
    text-underline-offset: 0.2em;
}

.gateway-map-credit a:hover,
.gateway-map-credit a:focus-visible {
    color: var(--ink);
}

.gateway-footer span {
    padding-inline: 0.3rem;
    color: var(--red);
}

.js .masthead,
.js .statement-index,
.js .statement-mark,
.js .statement .eyebrow,
.js .statement h1,
.js .statement .lede,
.js .statement .statement-register,
.js .statement .statement-cue,
.js .route .route-number,
.js .route .route-heading,
.js .route .route-art,
.js .route .route-record,
.js .route .route-enter,
.js .gateway-footer {
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.js body.is-ready .masthead,
.js body.is-ready .statement-index,
.js body.is-ready .statement-mark,
.js body.is-ready .statement .eyebrow,
.js body.is-ready .statement h1,
.js body.is-ready .statement .lede,
.js body.is-ready .statement .statement-register,
.js body.is-ready .statement .statement-cue,
.js .route.is-scroll-visible .route-number,
.js .route.is-scroll-visible .route-heading,
.js .route.is-scroll-visible .route-art,
.js .route.is-scroll-visible .route-record,
.js .route.is-scroll-visible .route-enter,
.js .gateway-footer.is-scroll-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition: opacity 620ms ease, transform 820ms var(--ease-out);
}

.js body.is-ready .statement .eyebrow {
    transition-delay: 80ms;
}

.js body.is-ready .statement h1 {
    transition-delay: 150ms;
}

.js body.is-ready .statement .lede {
    transition-delay: 240ms;
}

.js body.is-ready .statement .statement-register {
    transition-delay: 290ms;
}

.js body.is-ready .statement .statement-cue {
    transition-delay: 340ms;
}

.js body.is-ready .statement-index,
.js body.is-ready .statement-mark {
    transition-delay: 310ms;
}

.js body.is-ready .statement-mark {
    animation: gateway-mark-pulse 5.8s ease-in-out 1.1s infinite;
}

.js .route.is-scroll-visible .route-heading {
    transition-delay: 70ms;
}

.js .route.is-scroll-visible .route-art {
    transition-delay: 140ms;
}

.js .route.is-scroll-visible .route-record {
    transition-delay: 210ms;
}

.js .route.is-scroll-visible .route-enter {
    transition-delay: 270ms;
}

@keyframes gateway-page-out {
    to {
        opacity: 0;
        transform: translate3d(0, -0.75rem, 0) scale(0.995);
    }
}

@keyframes gateway-page-in {
    from {
        opacity: 0;
        transform: translate3d(0, 0.9rem, 0) scale(1.004);
    }
}

@keyframes gateway-track-flow {
    to { stroke-dashoffset: -1; }
}

@keyframes gateway-course-draw {
    0% {
        opacity: 0.08;
        stroke-dashoffset: 1;
    }
    12% {
        opacity: 1;
    }
    100% {
        opacity: 1;
        stroke-dashoffset: 0;
    }
}

@keyframes gateway-cinematic-sweep {
    0%, 72% {
        opacity: 0;
        transform: translate3d(-80%, 0, 0);
    }
    78% {
        opacity: 0.65;
    }
    91%, 100% {
        opacity: 0;
        transform: translate3d(80%, 0, 0);
    }
}

@keyframes gateway-hero-aurora {
    to { transform: rotate(360deg) scale(1.08); }
}

@keyframes gateway-hero-grid {
    from { background-position: 0 0, 0 0; }
    to { background-position: 0 3.5rem, 3.5rem 0; }
}

@keyframes gateway-hero-word {
    0%, 100% { opacity: 0.045; transform: translate3d(-51%, -45%, 0) scaleX(0.86); }
    50% { opacity: 0.095; transform: translate3d(-49%, -45%, 0) scaleX(0.89); }
}

@keyframes gateway-skyline-pulse {
    0%, 100% { opacity: 0.18; transform: scaleY(0.35); }
    48% { opacity: 0.72; transform: scaleY(1); }
}

@keyframes gateway-grid-breathe {
    0%, 100% { opacity: 0.035; }
    50% { opacity: 0.075; }
}

@keyframes gateway-title-charge {
    0%, 100% { text-shadow: 0 0 0 transparent; }
    50% { text-shadow: 0 0 2.2rem color-mix(in srgb, currentColor 22%, transparent); }
}

@keyframes gateway-telemetry-bars {
    0%, 100% { opacity: 0.22; }
    38% { opacity: 0.62; }
    44% { opacity: 0.3; }
    58% { opacity: 0.52; }
}

@keyframes gateway-stage-breathe {
    0%, 100% { filter: saturate(0.96) brightness(0.96); }
    50% { filter: saturate(1.08) brightness(1.045); }
}

@keyframes gateway-car-lighting {
    0%, 100% { filter: brightness(0.83) contrast(1.08); }
    52% { filter: brightness(1.04) contrast(1.13) drop-shadow(0 1rem 2rem rgba(0, 0, 0, 0.42)); }
}

@keyframes gateway-live-signal {
    0%, 100% { opacity: 0.35; transform: scale(0.72); }
    50% { opacity: 1; transform: scale(1); }
}

@keyframes gateway-traveler-wake {
    0%, 100% { opacity: 0.28; stroke-width: 0.8; }
    50% { opacity: 0.9; stroke-width: 1.65; }
}

@keyframes gateway-rain-fall {
    0% { opacity: 0; transform: translate3d(0, -12vh, 0); }
    14% { opacity: 0.72; }
    100% { opacity: 0; transform: translate3d(var(--weather-drift), 116vh, 0); }
}

@keyframes gateway-snow-fall {
    0% { opacity: 0; transform: translate3d(0, -10vh, 0) rotate(0deg); }
    12%, 82% { opacity: 0.86; }
    100% { opacity: 0; transform: translate3d(var(--weather-drift), 108vh, 0) rotate(540deg); }
}

@keyframes gateway-weather-breathe {
    0%, 100% { opacity: 0.45; transform: scale(1.03) translate3d(-1%, 0, 0); }
    50% { opacity: 0.9; transform: scale(1.12) translate3d(1%, -1%, 0); }
}

@keyframes gateway-snow-prism {
    to { transform: scale(1.08) rotate(360deg); }
}

@keyframes gateway-marker-pulse {
    0%, 100% { stroke-opacity: 1; }
    50% { stroke-opacity: 0.34; }
}

@keyframes gateway-mark-pulse {
    0%, 76%, 100% {
        border-color: var(--red);
        box-shadow: 0 0 0 0 rgba(210, 107, 92, 0);
    }
    88% {
        border-color: #e09a8f;
        box-shadow: 0 0 0 0.45rem rgba(210, 107, 92, 0.08);
    }
}

@keyframes gateway-light-sweep {
    0% {
        opacity: 0;
        transform: translate3d(-180%, 0, 0) skewX(-12deg);
    }
    20% {
        opacity: 0.62;
    }
    100% {
        opacity: 0;
        transform: translate3d(760%, 0, 0) skewX(-12deg);
    }
}

@keyframes gateway-record-surge {
    0% { transform: translate3d(0, 0.3rem, 0); }
    48% { transform: translate3d(0, -0.13rem, 0); }
    100% { transform: none; }
}

@keyframes gateway-enter-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.64; }
}

.not-found-page {
    min-height: 100svh;
    display: grid;
    place-items: center;
    padding: var(--page-pad);
}

.not-found {
    width: min(100%, 64rem);
    display: grid;
    grid-template-columns: minmax(4rem, 2fr) minmax(0, 7fr);
    gap: clamp(1.5rem, 5vw, 5rem);
    padding-block: clamp(3rem, 10vw, 8rem);
    border-top: 1px solid var(--ink);
    border-bottom: 1px solid var(--ink);
}

.not-found__code {
    margin: 0;
    color: var(--red);
    font: 700 clamp(2rem, 5vw, 4rem)/1 ui-monospace, "SFMono-Regular", Consolas, monospace;
    letter-spacing: -0.04em;
}

.not-found__copy h1 {
    max-width: 10ch;
    margin: 0;
    font: 600 clamp(2.8rem, 7vw, 6rem)/0.92 "Arial Narrow", "Helvetica Neue", sans-serif;
    letter-spacing: -0.06em;
}

.not-found__copy p {
    max-width: 42rem;
    margin: 1.5rem 0 0;
    color: var(--ink-soft);
}

.not-found__copy a {
    width: max-content;
    display: inline-block;
    margin-top: 2.5rem;
    padding-bottom: 0.25rem;
    border-bottom: 1px solid currentColor;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-decoration: none;
    text-transform: uppercase;
}

.not-found__copy a:focus-visible {
    outline: 2px solid var(--red);
    outline-offset: 5px;
}

@media (max-width: 900px) {
    .route-selection {
        display: block;
    }

    .route + .route {
        border-left: 0;
    }

    .statement {
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }

    .statement-index {
        grid-column: 1 / 2;
    }

    .statement-copy {
        grid-column: 2 / 12;
        grid-template-columns: minmax(0, 3fr) minmax(9.5rem, 1fr);
    }

    .statement-mark {
        grid-column: 11 / 13;
    }

    .statement-cue {
        grid-column: 5 / 9;
        grid-row: 12 / 13;
        margin-bottom: 0.35rem;
    }

    .route {
        min-height: max(650px, 80svh);
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }

    .route-heading {
        grid-column: 2 / 8;
    }

    .route--idac .route-number {
        grid-column: 12;
    }

    .route--idac .route-heading {
        grid-column: 6 / 12;
    }

    .route-record {
        grid-column: 2 / 7;
    }

    .route--idac .route-record {
        grid-column: 7 / 12;
    }

    .route-enter {
        grid-column: 10 / 13;
    }

    .route--idac .route-enter {
        grid-column: 1 / 4;
    }

    .route-map--wmmt {
        width: 68%;
    }

    .wmmt-course-readout {
        top: 54%;
        width: min(21rem, 50%);
    }

    .route-art--car img {
        width: 79%;
    }
}

@media (max-width: 600px) {
    :root {
        --page-pad: 0.8rem;
    }

    body {
        background-size: 3rem 3rem;
    }

    body::before {
        background-image: repeating-linear-gradient(
            90deg,
            transparent 0,
            transparent calc(50vw - 1px),
            rgba(235, 231, 220, 0.04) calc(50vw - 1px),
            rgba(235, 231, 220, 0.04) 50vw
        );
    }

    .masthead {
        min-height: 62px;
        display: flex;
        justify-content: space-between;
    }

    .identity {
        min-width: 0;
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        grid-template-rows: auto auto;
        flex: 0 1 auto;
        gap: 0 0.65rem;
    }

    .identity__crest {
        grid-column: 1;
        grid-row: 1 / 3;
    }

    .identity strong,
    .identity > span:not(.identity__crest) {
        grid-column: 2;
    }

    .identity > span:not(.identity__crest) {
        max-width: 10ch;
        font-size: 0.625rem;
        line-height: 1.25;
    }

    .edition {
        display: none;
    }

    .language-switcher {
        flex: 0 0 auto;
        gap: 0.42rem;
        font-size: 0.625rem;
    }

    .language-picker__label {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }

    .language-picker__panel {
        top: calc(100% + 0.45rem);
        width: min(21rem, calc(100vw - 1.6rem));
        padding: 0.65rem;
    }

    .language-picker__link {
        min-height: 2.35rem;
        padding-inline: 0.5rem;
        font-size: 0.625rem;
    }

    .statement {
        min-height: max(740px, calc(100svh - 62px));
        max-height: none;
        grid-template-columns: repeat(8, minmax(0, 1fr));
        grid-template-rows: repeat(12, minmax(0, 1fr));
    }

    .statement::before {
        top: 2.1rem;
        right: 0.7rem;
        bottom: 2.1rem;
        left: 0.7rem;
    }

    .statement::after {
        bottom: 2.1rem;
        left: 0.7rem;
    }

    .statement-cinema__word {
        top: 43%;
        font-size: clamp(7rem, 42vw, 12rem);
        opacity: 0.065;
        transform: translate3d(-52%, -50%, 0) rotate(-90deg) scaleX(0.82);
    }

    .statement-cinema__horizon {
        top: 58%;
        right: 0.7rem;
        left: 0.7rem;
    }

    .statement-cinema__telemetry {
        right: 1.4rem;
        bottom: 3rem;
        left: 1.4rem;
        font-size: 0.44rem;
        letter-spacing: 0.1em;
    }

    .statement-index {
        position: absolute;
        top: 3rem;
        bottom: 3rem;
        left: 0;
        font-size: 0.625rem;
        writing-mode: vertical-rl;
    }

    .statement-index::before {
        display: none;
    }

    .statement-copy {
        grid-column: 1 / 9;
        grid-row: 2 / 12;
        width: auto;
        min-height: 540px;
        grid-template-columns: 1fr;
        grid-template-rows: auto 1fr auto auto;
        gap: 1.25rem;
        margin-inline: 1.35rem;
        padding: 1.35rem 2.2rem 1.35rem 1.35rem;
        clip-path: polygon(0 0, calc(100% - 1.8rem) 0, 100% 1.8rem, 100% 100%, 0 100%);
    }

    .statement-copy::before {
        right: 1.8rem;
    }

    .statement-copy::after {
        right: 0.7rem;
        bottom: 0.7rem;
        width: 0.8rem;
        height: 0.8rem;
    }

    .eyebrow {
        grid-column: 1;
        font-size: 0.625rem;
    }

    .statement h1,
    body[data-locale="en"] .statement h1,
    body[data-locale="ja"] .statement h1 {
        grid-column: 1;
        max-width: 12ch;
        font-size: clamp(2.15rem, 9.4vw, 3.1rem);
        line-height: 0.98;
    }

    body[data-locale="ja"] .statement h1,
    body[data-locale^="zh"] .statement h1 {
        font-size: clamp(1.9rem, 8.15vw, 2.5rem);
        line-height: 1.04;
    }

    .statement h1::before {
        width: 3.7rem;
        height: 0.5rem;
        margin-bottom: 0.7rem;
        background: linear-gradient(
            90deg,
            var(--red) 0 0.5rem,
            transparent 0.5rem 0.8rem,
            var(--red) 0.8rem 100%
        );
    }

    .statement h1 em {
        width: auto;
        margin: 0;
        font-size: 1em;
    }

    body[data-locale="ja"] .statement h1::before,
    body[data-locale^="zh"] .statement h1::before {
        display: block;
        margin: 0 0 0.7rem;
    }

    .statement h1 br:not(.mobile-break) {
        display: block;
    }

    .lede {
        grid-column: 1;
        width: 100%;
        margin: 0;
        padding-right: 0;
        font-size: 0.68rem;
    }

    .statement-register {
        grid-column: 1;
        grid-row: 4;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: 1fr;
        border-top: 1px solid rgba(235, 231, 220, 0.2);
        border-left: 0;
    }

    .statement-register > div {
        padding: 0.85rem 0.7rem 0 0;
    }

    .statement-register > div + div {
        padding: 0.85rem 0 0 0.7rem;
        border-top: 0;
        border-left: 1px solid rgba(235, 231, 220, 0.2);
    }

    .statement-register strong {
        font-size: clamp(1.55rem, 7.5vw, 2rem);
    }

    .statement-register span {
        font-size: 0.625rem;
        letter-spacing: 0.055em;
    }

    .statement-mark {
        position: absolute;
        top: auto;
        right: 0;
        bottom: 1.1rem;
        width: 2.7rem;
        height: 2.7rem;
        translate: 0;
    }

    .statement-cue {
        --red: #e27b6d;
        grid-column: 3 / 7;
        margin-bottom: 0.45rem;
        border-top-color: rgba(235, 231, 220, 0.3);
        color: rgba(235, 231, 220, 0.76);
    }

    .route-selection::before {
        left: 1rem;
    }

    .route {
        min-height: max(610px, 82svh);
        grid-template-columns: repeat(8, minmax(0, 1fr));
        padding: 1rem;
    }

    .route::before {
        width: 4px;
    }

    .route-number {
        grid-column: 1 / 2;
        width: 2.65rem;
        height: 2.65rem;
        font-size: 0.625rem;
    }

    .route--idac .route-number {
        grid-column: 8;
    }

    .route-heading {
        grid-column: 2 / 9;
        padding-left: 0.65rem;
    }

    .route--idac .route-heading {
        grid-column: 2 / 8;
        padding-right: 0.65rem;
    }

    .route-heading p {
        font-size: 0.625rem;
        letter-spacing: 0.12em;
    }

    .route-heading h2 {
        font-size: clamp(2.75rem, 13vw, 4rem);
    }

    .route-heading h2::after {
        width: 2rem;
    }

    .route-art {
        inset: 14% 0;
    }

    .route-map--wmmt {
        top: 2%;
        left: -15%;
        width: 89%;
        height: 83%;
    }

    .wmmt-course-readout {
        top: 53%;
        left: 1rem;
        width: 58%;
        padding-left: 0.65rem;
        font-size: 0.54rem;
    }

    .idac-course-readout {
        top: 54%;
        right: 1rem;
        width: 68%;
        padding-right: 0.65rem;
        font-size: 0.52rem;
    }

    .course-readout__signal {
        font-size: 0.45rem;
    }

    .course-readout__name {
        font-size: 0.57rem;
    }

    .course-readout__meta {
        max-width: 100%;
        font-size: 0.43rem;
        line-height: 1.35;
        white-space: normal;
    }

    .route-art--car img {
        right: -31%;
        bottom: 3%;
        width: 128%;
    }

    .route-art--seasons {
        inset: 18% -4% 20%;
    }

    .idac-course-plates {
        grid-template-columns: 1fr;
        height: 100%;
    }

    .idac-course-plate {
        min-height: 0;
        padding: 0;
        border-right: 0;
        opacity: 0.73;
    }

    .idac-course-plate:nth-child(1) {
        justify-self: start;
        width: 71%;
    }

    .idac-course-plate:nth-child(2) {
        justify-self: end;
        width: 71%;
        margin-top: -18%;
    }

    .idac-course-plate:nth-child(3) {
        justify-self: start;
        width: 71%;
        margin-top: -18%;
    }

    .idac-course-plates[data-course-cycle="true"] .idac-course-plate {
        justify-self: center;
        width: 90%;
        margin: 0;
    }

    .route-record {
        grid-column: 2 / 8;
        padding-right: 3rem;
    }

    .route--idac .route-record {
        grid-column: 2 / 8;
        padding-right: 0;
        padding-left: 3rem;
    }

    .route-record p {
        font-size: 0.625rem;
    }

    .route-record strong {
        font-size: 0.78rem;
    }

    .route-record > span {
        font-size: 0.625rem;
    }

    .route-enter,
    .route--idac .route-enter {
        position: absolute;
        right: 1rem;
        bottom: 1rem;
        left: auto;
        width: max-content;
        padding: 0.45rem 0;
        border: 0;
    }

    .route--idac .route-enter {
        right: auto;
        left: 1rem;
    }

    .gateway-footer {
        min-height: 64px;
    }

    .gateway-footer p:last-child {
        display: none;
    }

    .not-found {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 420px) {
    .route--idac .route-record {
        margin-bottom: 3.25rem;
        padding-left: 0;
    }

    .route--idac .route-record > span {
        display: none;
    }
}

@media (max-height: 700px) and (min-width: 901px) {
    .statement {
        min-height: 630px;
    }

    .statement-copy {
        min-height: 400px;
    }

    .route {
        min-height: 620px;
    }
}

@media (prefers-reduced-motion: reduce) {
    ::view-transition-old(root),
    ::view-transition-new(root) {
        animation: none !important;
    }

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation: none !important;
        transition: none !important;
    }

    .js .masthead,
    .js .statement-index,
    .js .statement-mark,
    .js .statement .eyebrow,
    .js .statement h1,
    .js .statement .lede,
    .js .statement .statement-register,
    .js .statement .statement-cue,
    .js .route .route-number,
    .js .route .route-heading,
    .js .route .route-art,
    .js .route .route-record,
    .js .route .route-enter,
    .js .gateway-footer {
        opacity: 1;
        transform: none;
    }

    .gateway::after {
        display: none;
    }

    .route::before {
        transform: scaleY(1);
    }

    .route-map .track-progress path,
    .js .idac-course-line--draw {
        stroke-dashoffset: 0 !important;
    }

    .idac-course-line--runner,
    .idac-course-marker,
    .gateway-track-marker,
    .course-traveler,
    .idac-weather-system,
    .route-selection::after {
        display: none;
    }

    .route-art--car img {
        transform: none !important;
    }
}

/* Embroidered racing archive — tactile jacket, woven label, and patch system. */
:root {
    color-scheme: dark;
    --paper: #101713;
    --paper-deep: #182019;
    --ink: #f1e8d3;
    --ink-soft: #b7af9d;
    --rule: rgba(241, 232, 211, 0.13);
    --rule-strong: rgba(217, 188, 120, 0.38);
    --night: #0b1820;
    --blue: #83bdd0;
    --gold: #d8b96f;
    --red: #cf5649;
    --canvas: #b99d68;
    --canvas-deep: #8e7448;
    --indigo: #142d3b;
    --indigo-deep: #091a24;
    --bone: #f1e8d3;
    --sumi: #101713;
    --moss: #546b52;
    --thread-shadow: rgba(2, 7, 5, 0.72);
    --ease-textile: cubic-bezier(0.2, 0.82, 0.25, 1);
    --ease-japandi: var(--ease-textile);
}

html,
body {
    color-scheme: dark;
    background: var(--paper);
}

body {
    color: var(--ink);
    background-image:
        radial-gradient(circle at 78% 8%, rgba(207, 86, 73, 0.08), transparent 28rem),
        repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.018) 0 1px, transparent 1px 4px),
        repeating-linear-gradient(90deg, rgba(0, 0, 0, 0.13) 0 1px, transparent 1px 5px),
        linear-gradient(135deg, #141c17, #0d130f 70%);
}

body::before {
    z-index: 0;
    background-image:
        repeating-linear-gradient(94deg, transparent 0 6.8rem, rgba(241, 232, 211, 0.025) 6.82rem, transparent 6.86rem),
        linear-gradient(90deg, rgba(0, 0, 0, 0.25), transparent 12%, transparent 88%, rgba(0, 0, 0, 0.25));
    opacity: 0.82;
}

::selection {
    color: var(--bone);
    background: var(--red);
}

.gateway {
    width: min(100%, 1600px);
    z-index: 1;
    background: rgba(8, 14, 10, 0.36);
    box-shadow: 0 0 8rem rgba(0, 0, 0, 0.42);
}

.gateway::after {
    right: auto;
    left: var(--page-pad);
    width: 2px;
    background: repeating-linear-gradient(to bottom, var(--gold) 0 5px, transparent 5px 9px);
    opacity: 0.74;
}

.masthead {
    min-height: 84px;
    border: 0;
    border-bottom: 8px solid #070d09;
    background:
        repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.025) 0 1px, transparent 1px 5px),
        #151e18;
    box-shadow:
        inset 0 -1px rgba(216, 185, 111, 0.6),
        0 0.3rem 0 #222d24,
        0 0.65rem 1.5rem rgba(0, 0, 0, 0.38);
}

.masthead::before,
.masthead::after {
    bottom: -7px;
    width: 42%;
    height: 5px;
    display: block;
    border: 0;
    background: repeating-linear-gradient(90deg, var(--gold) 0 3px, #775f30 3px 6px);
    clip-path: none;
    opacity: 0.72;
}

.masthead::before { left: 0; translate: 0; }
.masthead::after { right: 0; translate: 0; }

.identity {
    min-height: 2.8rem;
    align-items: center;
    gap: 0.8rem;
}

.identity__crest {
    width: 2.35rem;
    height: 2.65rem;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    filter:
        drop-shadow(0 1px 0 rgba(255, 247, 220, 0.34))
        drop-shadow(0 4px 3px rgba(0, 0, 0, 0.68));
}

.identity__crest svg {
    width: 100%;
    height: 100%;
    display: block;
    overflow: visible;
}

.identity strong {
    color: var(--bone);
    font-family: "Arial Narrow", "Helvetica Neue Condensed", "Yu Gothic", sans-serif;
    font-size: 0.92rem;
    font-weight: 900;
    letter-spacing: 0.22em;
    line-height: 1;
    text-shadow: 0 1px #000, 1px 0 rgba(255, 255, 255, 0.2);
}

.identity > span:not(.identity__crest),
.edition,
.language-switcher {
    color: var(--ink-soft);
}

.language-picker summary strong,
.language-picker__link[aria-current="page"] {
    color: var(--ink);
}

.language-picker__panel {
    border-color: var(--rule-strong);
    border-radius: 0.2rem;
    background:
        repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.025) 0 1px, transparent 1px 4px),
        #18221b;
    box-shadow:
        0 0 0 3px #080d09,
        0 1.5rem 4rem rgba(0, 0, 0, 0.48);
}

.language-picker__link:hover {
    color: var(--ink);
    background: rgba(216, 185, 111, 0.08);
}

.statement {
    min-height: min(790px, calc(100svh - 84px));
    max-height: 980px;
    display: grid;
    grid-template-columns: repeat(16, minmax(0, 1fr));
    grid-template-rows: 1fr auto;
    border: 0;
    border-bottom: 10px solid #070c09;
    background:
        radial-gradient(circle at 76% 42%, rgba(216, 185, 111, 0.09), transparent 24rem),
        linear-gradient(112deg, rgba(255, 255, 255, 0.025), transparent 28%, rgba(0, 0, 0, 0.18) 70%),
        repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.018) 0 1px, transparent 1px 4px),
        repeating-linear-gradient(90deg, rgba(0, 0, 0, 0.16) 0 1px, transparent 1px 5px),
        #172019;
    isolation: isolate;
}

.statement::before {
    inset: clamp(1rem, 2.4vw, 2.3rem);
    z-index: 0;
    width: auto;
    aspect-ratio: auto;
    border: 1px dashed rgba(216, 185, 111, 0.48);
    border-radius: 0.35rem;
    background:
        linear-gradient(90deg, transparent 60%, rgba(0, 0, 0, 0.11) 60%),
        repeating-linear-gradient(90deg, transparent 0 11px, rgba(241, 232, 211, 0.022) 11px 12px);
    box-shadow:
        0 0 0 4px rgba(5, 10, 7, 0.48),
        inset 0 0 0 4px rgba(241, 232, 211, 0.025);
    opacity: 1;
    translate: 0 var(--hero-wash-y, 0px);
}

.statement::after {
    top: clamp(2.2rem, 5vw, 4.5rem);
    bottom: clamp(2.2rem, 5vw, 4.5rem);
    left: 60%;
    z-index: 1;
    width: 3px;
    height: auto;
    background: repeating-linear-gradient(to bottom, rgba(216, 185, 111, 0.8) 0 5px, transparent 5px 10px);
    box-shadow: 1px 0 rgba(0, 0, 0, 0.5);
}

.statement-cinema,
.statement-index,
.statement-mark {
    display: none !important;
}

.statement-copy {
    position: relative;
    z-index: 2;
    grid-column: 2 / 10;
    grid-row: 1;
    align-self: center;
    width: min(100%, 54rem);
    min-height: 0;
    margin: 0;
    overflow: visible;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(12.5rem, 0.58fr);
    grid-template-rows: auto 1fr auto;
    gap: clamp(1.2rem, 2vw, 2rem) clamp(1.2rem, 2.6vw, 2.6rem);
    padding: clamp(3.2rem, 5vw, 5rem) clamp(1rem, 3.6vw, 3.6rem);
    color: var(--ink);
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    clip-path: none;
    translate: 0 var(--parallax-y, 0px);
}

.statement-copy::before,
.statement-copy::after {
    display: none;
}

.statement .eyebrow {
    grid-column: 1 / -1;
    width: max-content;
    max-width: 100%;
    margin: 0 0 clamp(1.25rem, 3vw, 2.4rem);
    padding: 0.62rem 0.9rem 0.58rem;
    border: 1px dashed rgba(241, 232, 211, 0.44);
    color: var(--bone);
    background: #263329;
    box-shadow:
        0 0 0 3px #0d140f,
        0 5px 10px rgba(0, 0, 0, 0.32),
        inset 0 1px rgba(255, 255, 255, 0.06);
    letter-spacing: 0.18em;
}

.statement .eyebrow span { color: var(--gold); }

.statement h1,
body[data-locale="en"] .statement h1,
body[data-locale="ja"] .statement h1,
body[data-locale^="zh"] .statement h1 {
    max-width: 10ch;
    margin: 0;
    color: var(--bone);
    font-family: "Arial Narrow", "Helvetica Neue Condensed", "Yu Gothic", "PingFang TC", sans-serif;
    font-size: clamp(3.2rem, 5.7vw, 6.5rem);
    font-stretch: condensed;
    font-weight: 900;
    letter-spacing: -0.045em;
    line-height: 0.88;
    text-wrap: balance;
}

.statement h1::before {
    width: clamp(4rem, 8vw, 7.5rem);
    height: 7px;
    margin-bottom: 1.2rem;
    border-top: 2px solid var(--red);
    border-bottom: 2px dashed rgba(241, 232, 211, 0.48);
    background: transparent;
    filter: drop-shadow(0 2px 0 rgba(0, 0, 0, 0.65));
}

.statement h1 span {
    margin-bottom: 0.18em;
    color: var(--blue);
    font-size: 0.56em;
    font-weight: 850;
    letter-spacing: 0.015em;
    text-shadow:
        0 2px 0 #071016,
        1px 0 rgba(232, 250, 255, 0.26),
        -1px 0 #071016,
        0 5px 10px rgba(0, 0, 0, 0.4);
}

.statement h1 em,
body[data-locale="en"] .statement h1 em {
    max-width: 10ch;
    color: var(--bone);
    background: none;
    font-size: 1em;
    font-style: normal;
    -webkit-text-fill-color: currentColor;
    -webkit-text-stroke: 0.4px rgba(255, 255, 255, 0.28);
    text-shadow:
        0 3px 0 #070b08,
        2px 1px 0 rgba(216, 185, 111, 0.25),
        -1px 0 #070b08,
        0 8px 16px rgba(0, 0, 0, 0.44);
}

.lede {
    width: min(100%, 34rem);
    margin: clamp(1.6rem, 3vw, 2.5rem) 0 0;
    padding: 0.75rem 1rem 0.75rem 1.2rem;
    border-left: 4px double var(--gold);
    color: var(--ink-soft);
    background: linear-gradient(90deg, rgba(216, 185, 111, 0.075), transparent);
    font-family: "Helvetica Neue", "Yu Gothic", sans-serif;
    font-size: clamp(0.9rem, 1.3vw, 1.06rem);
    font-weight: 500;
    line-height: 1.65;
}

.statement-cue {
    grid-column: 2 / 16;
    grid-row: 2;
    justify-self: end;
    width: min(14.5rem, 52vw);
    margin: 0 clamp(2.2rem, 5vw, 4.8rem) clamp(2.2rem, 5vw, 4rem);
    padding: 0.85rem 1rem 0.78rem;
    border: 1px dashed rgba(35, 28, 14, 0.7);
    color: #1a1a13;
    background:
        repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.08) 0 1px, transparent 1px 3px),
        var(--gold);
    box-shadow:
        0 0 0 3px #080d09,
        0 5px 12px rgba(0, 0, 0, 0.42);
    backdrop-filter: none;
}

.statement-cue:hover,
.statement-cue:focus-visible {
    color: #050805;
    background-color: #e6c97e;
}

.statement-emblem {
    position: relative;
    z-index: 2;
    grid-column: 11 / 16;
    grid-row: 1;
    align-self: center;
    justify-self: center;
    width: min(100%, 25rem);
    display: grid;
    justify-items: center;
    padding: clamp(2.6rem, 4vw, 4.5rem) 1rem;
    translate: 0 var(--parallax-y, 0px);
}

.statement-emblem::before,
.statement-emblem::after {
    position: absolute;
    z-index: -1;
    content: "";
    pointer-events: none;
}

.statement-emblem::before {
    inset: 8% -5% 4%;
    border-radius: 49% 49% 46% 46%;
    background: radial-gradient(ellipse, rgba(0, 0, 0, 0.44), transparent 68%);
    filter: blur(8px);
}

.statement-emblem::after {
    top: 9%;
    left: 50%;
    width: 72%;
    aspect-ratio: 1;
    border: 1px dashed rgba(241, 232, 211, 0.16);
    border-radius: 50%;
    translate: -50% 0;
}

.statement-emblem__portrait-patch {
    position: relative;
    width: min(100%, 21rem);
    aspect-ratio: 1;
    display: grid;
    place-items: end center;
    border: 9px solid #050806;
    border-radius: 28% 28% 20% 20% / 22% 22% 30% 30%;
    background:
        radial-gradient(circle at 50% 38%, rgba(63, 104, 126, 0.34), transparent 54%),
        repeating-linear-gradient(120deg, rgba(255, 255, 255, 0.04) 0 1px, transparent 1px 4px),
        var(--indigo);
    box-shadow:
        0 0 0 3px var(--gold),
        0 0 0 6px #050806,
        0 1.4rem 1.8rem rgba(0, 0, 0, 0.55),
        inset 0 0 0 2px rgba(241, 232, 211, 0.18);
    transform: rotate(-1.5deg);
    transform-origin: center;
    transition: transform 700ms var(--ease-textile), filter 700ms ease;
}

.statement-emblem__portrait-patch::before {
    position: absolute;
    inset: 0.35rem;
    z-index: 2;
    border: 2px dashed rgba(241, 232, 211, 0.56);
    border-radius: 25% 25% 17% 17% / 19% 19% 27% 27%;
    content: "";
    pointer-events: none;
}

.statement-emblem__portrait {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}

.statement-emblem__crest {
    position: absolute;
    right: -1.7rem;
    bottom: -1.25rem;
    z-index: 4;
    width: clamp(8.7rem, 13vw, 11.5rem);
    aspect-ratio: 8 / 9;
    display: grid;
    place-items: center;
    rotate: 4deg;
    filter:
        drop-shadow(0 2px 0 rgba(255, 246, 214, 0.24))
        drop-shadow(0 0.95rem 0.75rem rgba(0, 0, 0, 0.65));
}

.statement-emblem__crest svg {
    width: 100%;
    height: 100%;
    display: block;
    overflow: visible;
}

.horus-crest__shield-underlay,
.horus-crest__shield-merrow,
.horus-crest__shield-field,
.horus-crest__field-stitch,
.horus-crest__flight-panel,
.horus-crest__bird-underlay,
.horus-crest__bird,
.horus-crest__bird-highlight,
.horus-crest__wing,
.horus-crest__wing-highlight,
.horus-crest__beak,
.horus-crest__beak-stitch,
.horus-crest__brow,
.horus-crest__feather,
.horus-crest__h-underlay,
.horus-crest__h-stitch,
.horus-crest__flight-stitch,
.horus-crest__cross-stitch {
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}

.horus-crest__shield-underlay {
    fill: #050806;
    stroke: #030504;
    stroke-width: 11;
}

.horus-crest__shield-merrow {
    fill: none;
    stroke: #d8b96f;
    stroke-width: 7.5;
    stroke-dasharray: 0.011 0.005;
    filter:
        drop-shadow(0 2px 0 #684f24)
        drop-shadow(0 -1px 0 rgba(255, 242, 191, 0.45));
}

.horus-crest__shield-field {
    fill: #102c3a;
    stroke: #ead9a8;
    stroke-width: 3.2;
}

.statement-emblem__crest .horus-crest__shield-field {
    fill: url(#horus-crest-field-thread);
}

.horus-crest__field-stitch {
    fill: none;
    stroke: rgba(241, 232, 211, 0.62);
    stroke-width: 1.35;
    stroke-dasharray: 0.008 0.008;
}

.horus-crest__flight-panel {
    fill: #d8b96f;
    stroke: #5f4922;
    stroke-width: 1.8;
    opacity: 0.84;
}

.horus-crest__flight-stitch {
    fill: none;
    stroke: #f4df9f;
    stroke-width: 1.25;
    stroke-dasharray: 2.8 1.4;
    opacity: 0.72;
}

.horus-crest__bird-underlay {
    fill: #050806;
    stroke: #050806;
    stroke-width: 10;
}

.horus-crest__bird {
    fill: var(--bone);
    stroke: #6d634e;
    stroke-width: 2.3;
}

.statement-emblem__crest .horus-crest__bird {
    fill: url(#horus-crest-bird-thread);
}

.horus-crest__bird-highlight {
    fill: none;
    stroke: #fffaf0;
    stroke-width: 2;
    opacity: 0.74;
}

.horus-crest__wing {
    fill: #173e46;
    stroke: #081c21;
    stroke-width: 2.8;
}

.statement-emblem__crest .horus-crest__wing {
    fill: url(#horus-crest-wing-thread);
}

.horus-crest__wing-highlight {
    fill: none;
    stroke: #3e7177;
    stroke-width: 1.8;
    opacity: 0.82;
}

.horus-crest__beak {
    fill: #d8b96f;
    stroke: #4d391b;
    stroke-width: 3;
}

.horus-crest__beak-stitch {
    fill: none;
    stroke: #f8e5ad;
    stroke-width: 1.35;
    stroke-dasharray: 2.6 1.4;
}

.horus-crest__brow {
    fill: #102c3a;
    stroke: #071217;
    stroke-width: 2.2;
}

.horus-crest__eye-ring {
    fill: #bd4338;
    stroke: #080c0a;
    stroke-width: 1.8;
    vector-effect: non-scaling-stroke;
}

.horus-crest__eye {
    fill: #0a0d0b;
    stroke: #fff6d7;
    stroke-width: 0.65;
    vector-effect: non-scaling-stroke;
}

.horus-crest__feather {
    fill: none;
    stroke: #d8b96f;
    stroke-width: 2;
    stroke-dasharray: 3.2 1.25;
}

.horus-crest__feather--shadow {
    stroke: #07191d;
    stroke-width: 5;
    stroke-dasharray: none;
    opacity: 0.72;
}

.horus-crest__h-underlay {
    fill: #050806;
    stroke: #070a08;
    stroke-width: 5;
    stroke-linecap: butt;
    stroke-linejoin: bevel;
}

.horus-crest__h-stitch {
    fill: #d8b96f;
    stroke: #d8b96f;
    stroke-width: 1.5;
    stroke-linecap: butt;
    stroke-linejoin: bevel;
    filter: drop-shadow(0 1px 0 #5f4922);
}

.statement-emblem__crest .horus-crest__h-stitch {
    fill: url(#horus-crest-h-thread);
}

.horus-crest__cross-stitch {
    fill: none;
    stroke: #e7d4a1;
    stroke-width: 1.35;
}

.identity__crest .horus-crest__shield-underlay {
    stroke-width: 5.5;
}

.identity__crest .horus-crest__shield-field {
    stroke: #d8b96f;
    stroke-width: 2;
}

.identity__crest .horus-crest__bird-underlay {
    stroke-width: 4.5;
}

.identity__crest .horus-crest__bird {
    stroke-width: 1.15;
}

.identity__crest .horus-crest__flight-panel {
    stroke-width: 0.8;
}

.identity__crest .horus-crest__wing {
    stroke-width: 1.2;
}

.identity__crest .horus-crest__beak {
    stroke-width: 1.5;
}

.identity__crest .horus-crest__feather {
    stroke-width: 1.6;
    stroke-dasharray: none;
}

.identity__crest .horus-crest__h-stitch {
    stroke-width: 0.75;
}

.statement-emblem__word {
    position: relative;
    margin-top: 0.65rem;
    color: var(--bone);
    font-family: "Arial Narrow", "Helvetica Neue Condensed", sans-serif;
    font-size: clamp(2rem, 3.7vw, 3.8rem);
    font-stretch: condensed;
    font-weight: 950;
    letter-spacing: 0.16em;
    line-height: 1;
    text-indent: 0.16em;
    text-shadow:
        0 3px 0 #070b08,
        1px 0 rgba(255, 255, 255, 0.25),
        -1px 0 #070b08,
        0 7px 10px rgba(0, 0, 0, 0.5);
}

.statement-emblem__word::after {
    position: absolute;
    right: 0.16em;
    bottom: -0.58rem;
    left: 0;
    height: 3px;
    background: repeating-linear-gradient(90deg, var(--red) 0 7px, transparent 7px 11px);
    content: "";
}

.statement-emblem__serial {
    margin-top: 1.25rem;
    color: var(--gold);
    font: 800 0.56rem/1.2 ui-monospace, "SFMono-Regular", Consolas, monospace;
    letter-spacing: 0.2em;
}

.statement-register {
    grid-column: 2;
    grid-row: 2 / 4;
    align-self: end;
    width: 100%;
    margin: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: repeat(2, auto);
    border: 1px dashed rgba(241, 232, 211, 0.28);
    background: rgba(6, 11, 8, 0.32);
    box-shadow: 0 0 0 3px rgba(6, 11, 8, 0.5);
    font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
}

.statement-register > div {
    min-width: 0;
    padding: 0.7rem 0.85rem 0.75rem;
}

.statement-register > div + div {
    border-top: 1px dashed rgba(216, 185, 111, 0.36);
    border-left: 0;
}

.statement-register dt,
.statement-register dd {
    margin: 0;
}

.statement-register dt {
    margin-bottom: 0.2rem;
    color: var(--blue);
    font-size: 0.56rem;
    font-weight: 800;
    letter-spacing: 0.15em;
}

.statement-register > div:last-child dt { color: #e48272; }

.statement-register dd {
    display: grid;
    gap: 0.15rem;
}

.statement-register strong {
    color: var(--bone);
    font-size: clamp(1.2rem, 2vw, 1.8rem);
    letter-spacing: -0.04em;
    line-height: 1;
}

.statement-register span {
    overflow: hidden;
    color: var(--ink-soft);
    font-size: 0.5rem;
    letter-spacing: 0.04em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .statement-emblem:hover .statement-emblem__portrait-patch {
        filter: brightness(1.04);
        transform: rotate(0deg) translateY(-0.3rem);
    }
}

.route-selection {
    gap: clamp(0.9rem, 1.5vw, 1.5rem);
    padding: clamp(1rem, 1.8vw, 1.8rem);
    background:
        repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.018) 0 1px, transparent 1px 5px),
        #0a110d;
}

.route-selection::after {
    display: none;
}

.route-selection::before {
    top: 1rem;
    bottom: 1rem;
    left: 50%;
    z-index: 8;
    width: 7px;
    display: block;
    background:
        repeating-linear-gradient(135deg, #d8b96f 0 3px, #70592e 3px 6px),
        var(--gold);
    box-shadow:
        -2px 0 #050805,
        2px 0 #050805,
        0 0 1rem rgba(0, 0, 0, 0.52);
    translate: -50% 0;
}

.route {
    min-height: clamp(700px, 82svh, 880px);
    padding: clamp(1.5rem, 2.8vw, 2.8rem);
    border: 1px solid rgba(241, 232, 211, 0.12);
    border-radius: 0.35rem;
    color: var(--bone);
    box-shadow:
        0 0 0 4px #050906,
        0 1rem 2.4rem rgba(0, 0, 0, 0.42),
        inset 0 0 0 5px rgba(255, 255, 255, 0.022);
}

.route + .route {
    border: 1px solid rgba(241, 232, 211, 0.12);
}

.route::before {
    top: clamp(1.5rem, 2.8vw, 2.8rem);
    right: auto;
    bottom: auto;
    left: clamp(1.5rem, 2.8vw, 2.8rem);
    width: clamp(3.2rem, 6vw, 6rem);
    height: 4px;
    background: repeating-linear-gradient(90deg, currentColor 0 6px, transparent 6px 9px);
    filter: drop-shadow(0 2px 0 rgba(0, 0, 0, 0.62));
    transform: scaleX(var(--course-bag-progress));
    transform-origin: left;
    transition: transform 850ms var(--ease-textile);
}

.route--idac::before {
    right: clamp(1.5rem, 2.8vw, 2.8rem);
    left: auto;
    transform-origin: right;
}

.route::after {
    z-index: -1;
    display: block;
    background-image:
        linear-gradient(90deg, transparent 49.85%, rgba(255, 255, 255, 0.035) 50%, transparent 50.15%),
        repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.018) 0 1px, transparent 1px 4px),
        repeating-linear-gradient(90deg, rgba(0, 0, 0, 0.12) 0 1px, transparent 1px 5px);
    background-size: 100% 100%, auto, auto;
    opacity: 0.8;
    animation: none;
}

.route--wmmt,
.route--wmmt[data-weather] {
    color: var(--bone);
    background-color: var(--indigo-deep);
    background-image:
        radial-gradient(circle at 31% 45%, rgba(131, 189, 208, 0.13), transparent 28rem),
        linear-gradient(128deg, rgba(31, 68, 87, 0.34), transparent 54%);
}

.route--idac,
.route--idac[data-weather="rain"],
.route--idac[data-weather="snow"] {
    color: #201b13;
    background-color: var(--canvas);
    background-image:
        radial-gradient(circle at 67% 45%, rgba(104, 31, 24, 0.15), transparent 27rem),
        linear-gradient(128deg, rgba(255, 245, 213, 0.17), transparent 55%);
    box-shadow:
        0 0 0 4px #050906,
        0 1rem 2.4rem rgba(0, 0, 0, 0.42),
        inset 0 0 0 5px rgba(255, 255, 255, 0.08);
}

.route--wmmt .route-art,
.route--idac .route-art {
    background: none;
}

.route-number {
    width: 3.3rem;
    height: 3.3rem;
    border: 4px solid currentColor;
    border-radius: 50%;
    color: var(--ink-soft);
    background: rgba(6, 11, 8, 0.84);
    box-shadow:
        0 0 0 2px #050805,
        0 0 0 3px rgba(241, 232, 211, 0.3),
        0 5px 8px rgba(0, 0, 0, 0.42),
        inset 0 1px rgba(255, 255, 255, 0.12);
    font-weight: 900;
}

.route--wmmt .route-number,
.route--wmmt .route-heading p {
    color: var(--blue);
}

.route--idac .route-number,
.route--idac .route-heading p {
    color: #8b2822;
}

.route--idac .route-number {
    background: #e7d8b5;
    box-shadow:
        0 0 0 2px #3a2b1c,
        0 0 0 3px rgba(255, 248, 220, 0.45),
        0 5px 8px rgba(49, 32, 17, 0.36),
        inset 0 1px rgba(255, 255, 255, 0.4);
}

.route-heading h2 {
    color: var(--bone);
    font-family: "Arial Narrow", "Helvetica Neue Condensed", "Yu Gothic", sans-serif;
    font-size: clamp(3.7rem, 6vw, 6.8rem);
    font-stretch: condensed;
    font-weight: 950;
    letter-spacing: -0.035em;
    text-shadow:
        0 3px 0 #040807,
        2px 1px 0 rgba(131, 189, 208, 0.23),
        -1px 0 #040807,
        0 8px 12px rgba(0, 0, 0, 0.45);
}

.route--idac .route-heading h2 {
    color: #f2e6c7;
    text-shadow:
        0 3px 0 #42231c,
        2px 1px 0 rgba(255, 255, 255, 0.3),
        -1px 0 #42231c,
        0 8px 12px rgba(55, 33, 18, 0.36);
}

.route-heading h2::after {
    height: 0.2em;
    border-top: 2px solid currentColor;
    border-bottom: 2px dashed currentColor;
    opacity: 0.42;
    filter: drop-shadow(0 2px 0 rgba(0, 0, 0, 0.45));
}

.route-art {
    inset: 11% 2% 13%;
    z-index: 0;
    animation: none;
    translate: 0 var(--parallax-y, 0px);
}

.route-art::after {
    display: none;
}

.route-art::before {
    inset: 4% 8% 3%;
    z-index: -1;
    display: block;
    border: 9px solid #050906;
    border-radius: 46% 46% 43% 43% / 31% 31% 58% 58%;
    background:
        repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.045) 0 1px, transparent 1px 4px),
        rgba(7, 17, 22, 0.64);
    box-shadow:
        0 0 0 3px var(--gold),
        0 0 0 6px #050906,
        0 1.4rem 2.4rem rgba(0, 0, 0, 0.42),
        inset 0 0 0 2px rgba(241, 232, 211, 0.2);
    content: "";
    opacity: 0.9;
    filter: none;
}

.route--idac .route-art::before {
    border-color: #3d2718;
    background:
        repeating-linear-gradient(65deg, rgba(255, 255, 255, 0.06) 0 1px, transparent 1px 4px),
        rgba(111, 38, 29, 0.78);
    box-shadow:
        0 0 0 3px #e6d3a6,
        0 0 0 6px #3d2718,
        0 1.4rem 2.4rem rgba(49, 29, 16, 0.36),
        inset 0 0 0 2px rgba(255, 242, 207, 0.32);
}

.route:is(:hover, :focus-visible) .route-art::before {
    opacity: 1;
}

.route-map--wmmt {
    top: -1%;
    left: 0;
    z-index: 2;
    width: 82%;
    opacity: 1;
    filter: drop-shadow(0 8px 8px rgba(0, 0, 0, 0.52));
}

.route-map--wmmt .track-base path {
    stroke: #020605;
    stroke-width: 7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.route-map--wmmt .track-progress path {
    stroke: var(--blue) !important;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
    filter:
        drop-shadow(1px 0 rgba(227, 248, 255, 0.54))
        drop-shadow(0 2px 0 #214959)
        drop-shadow(0 4px 3px rgba(0, 0, 0, 0.5));
}

.route-map--wmmt .track-progress path:last-child {
    stroke: var(--gold) !important;
    filter:
        drop-shadow(1px 0 rgba(255, 244, 204, 0.5))
        drop-shadow(0 2px 0 #70572a)
        drop-shadow(0 4px 3px rgba(0, 0, 0, 0.5));
}

.route-map--wmmt .track-flow path {
    opacity: 0.76;
    stroke: var(--bone);
    stroke-width: 1.6;
    stroke-dasharray: 0.012 0.018;
    filter: drop-shadow(0 1px 0 #163441);
}

.route-art--car img {
    right: -19%;
    bottom: 3%;
    width: min(83%, 760px);
    opacity: 0.2;
    filter: grayscale(1) sepia(0.25) contrast(1.15) brightness(0.72);
    mix-blend-mode: screen;
    -webkit-mask-image: linear-gradient(105deg, transparent 0, #000 22%, #000 72%, transparent 98%);
    mask-image: linear-gradient(105deg, transparent 0, #000 22%, #000 72%, transparent 98%);
    animation: none;
}

.idac-course-plate {
    width: min(84%, 690px);
    opacity: 1;
    filter: drop-shadow(0 9px 8px rgba(43, 24, 12, 0.4));
}

.idac-course-line--base,
.route--idac[data-weather="rain"] .idac-course-line--base,
.route--idac[data-weather="snow"] .idac-course-line--base {
    stroke: #3c2019;
    stroke-width: 8;
    stroke-dasharray: none;
    filter: drop-shadow(0 4px 3px rgba(49, 24, 14, 0.42));
}

.idac-course-line--draw,
.route--idac[data-weather="rain"] .idac-course-line--draw,
.route--idac[data-weather="snow"] .idac-course-line--draw {
    stroke: #d75a4d;
    stroke-width: 4.2;
    filter:
        drop-shadow(1px 0 rgba(255, 218, 194, 0.6))
        drop-shadow(0 2px 0 #812d28)
        drop-shadow(0 4px 3px rgba(55, 27, 16, 0.45));
}

.idac-course-line--runner,
.route--idac[data-weather="rain"] .idac-course-line--runner,
.route--idac[data-weather="snow"] .idac-course-line--runner {
    opacity: 0.92;
    stroke: #ffe3a1;
    stroke-width: 2.2;
    stroke-dasharray: 0.01 0.018;
    filter: drop-shadow(0 1px 0 #782f27);
}

.course-traveler__wake {
    fill: rgba(4, 8, 6, 0.86);
    stroke-width: 2;
    animation: none;
}

.course-traveler__triangle {
    fill: #d9d6ca !important;
    stroke: #fff8e6;
    stroke-width: 1;
    filter:
        drop-shadow(0 2px 0 rgba(0, 0, 0, 0.8))
        drop-shadow(0 0 5px currentColor);
}

.course-traveler__core {
    fill: var(--red);
    filter: drop-shadow(0 0 3px currentColor);
}

.course-traveler--wmmt { color: var(--blue); }
.course-traveler--idac,
.route--idac[data-weather="rain"] .course-traveler--idac,
.route--idac[data-weather="snow"] .course-traveler--idac { color: #d75a4d; }

.course-readout {
    padding: 0.7rem 0.8rem 0.62rem;
    border: 1px dashed rgba(241, 232, 211, 0.32);
    color: var(--ink-soft);
    background: rgba(4, 10, 12, 0.78);
    box-shadow:
        0 0 0 3px rgba(3, 7, 6, 0.68),
        0 6px 12px rgba(0, 0, 0, 0.28);
    text-shadow: none;
}

.wmmt-course-readout {
    top: 58%;
    left: clamp(1.5rem, 2.8vw, 2.8rem);
    width: min(22rem, 49%);
    border-top: 1px dashed rgba(241, 232, 211, 0.32);
    color: var(--blue);
}

.idac-course-readout {
    top: 58%;
    right: clamp(1.5rem, 2.8vw, 2.8rem);
    width: min(26rem, 58%);
    border-top: 1px dashed rgba(54, 30, 19, 0.52);
    color: #fff0c8;
    background: rgba(83, 32, 25, 0.86);
    box-shadow:
        0 0 0 3px rgba(55, 29, 18, 0.7),
        0 6px 12px rgba(55, 28, 17, 0.26);
}

.course-readout::after {
    height: 3px;
    background: repeating-linear-gradient(90deg, currentColor 0 6px, transparent 6px 9px);
    box-shadow: none;
}

.course-readout__signal::before {
    border-radius: 0;
    box-shadow: 0 0 0 2px rgba(4, 8, 6, 0.72);
    rotate: 45deg;
    animation: none;
}

.route--idac[data-weather="rain"] .idac-course-readout {
    color: #d7f0e9;
    border-color: rgba(41, 77, 70, 0.68);
    background: rgba(36, 67, 61, 0.9);
}

.route--idac[data-weather="snow"] .idac-course-readout {
    color: #172329;
    border-color: rgba(65, 85, 91, 0.62);
    background: rgba(222, 226, 215, 0.92);
}

.route-record,
.route--wmmt .route-record,
.route--idac .route-record {
    z-index: 3;
    padding: 0.8rem 0.9rem;
    border: 1px dashed rgba(241, 232, 211, 0.34);
    color: var(--ink-soft);
    background: rgba(5, 10, 8, 0.72);
    box-shadow:
        0 0 0 3px rgba(3, 7, 5, 0.58),
        0 5px 10px rgba(0, 0, 0, 0.24);
}

.route--idac .route-record {
    color: #4b3524;
    border-color: rgba(67, 39, 22, 0.48);
    background: rgba(241, 224, 183, 0.82);
    box-shadow:
        0 0 0 3px rgba(77, 46, 25, 0.42),
        0 5px 10px rgba(61, 34, 17, 0.2);
}

.route-record::before,
.route--wmmt .route-record::before,
.route--idac .route-record::before {
    background: var(--rule-strong);
}

.route-record strong,
.route-enter {
    color: var(--ink);
}

.route--idac .route-record strong { color: #28180f; }

.route-enter,
.route--idac .route-enter {
    z-index: 4;
    min-height: 2.75rem;
    padding: 0.65rem 0.85rem;
    border: 1px dashed currentColor;
    background: rgba(6, 11, 8, 0.76);
    box-shadow: 0 0 0 3px rgba(4, 8, 6, 0.54);
}

.route--idac .route-enter {
    color: #f4e4bf;
    background: #742e27;
    box-shadow: 0 0 0 3px rgba(68, 35, 21, 0.65);
}

.route:is(:hover, :focus-visible) .route-heading h2,
.route--idac:is(:hover, :focus-visible) .route-heading h2,
.route--idac:is(:hover, :focus-visible) .idac-course-plate {
    letter-spacing: -0.025em;
    transform: translateY(-0.12rem) scale(1.008);
}

.route:is(:hover, :focus-visible) .route-record strong,
.route:is(:hover, :focus-visible) .route-enter {
    animation: none;
}

.route:focus-visible {
    outline: 3px dashed var(--bone);
    outline-offset: -0.8rem;
}

.route--idac:focus-visible { outline-color: #4e281d; }

.route:is(:hover, :focus-visible) .route-art::before {
    transform: translateY(-0.2rem);
    transition: opacity 320ms ease, transform 600ms var(--ease-textile), filter 600ms ease;
    filter: brightness(1.06);
}

.route--idac:is([data-weather="rain"], [data-weather="snow"]) .idac-weather-system {
    opacity: 0.22;
    mix-blend-mode: soft-light;
}

.js .route-map--wmmt.is-course-drawing .track-progress path,
.js .idac-course-plate.is-course-drawing .idac-course-line--draw {
    animation-timing-function: steps(72, end);
}

.route--wmmt .track-flow path {
    animation-timing-function: steps(42, end);
}

.gateway-footer {
    min-height: 100px;
    padding-inline: clamp(0.8rem, 1.6vw, 1.5rem);
    border-top: 7px solid #050906;
    color: var(--ink-soft);
    background:
        repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.02) 0 1px, transparent 1px 5px),
        #151e18;
    box-shadow: inset 0 1px var(--rule-strong);
}

.gateway-map-credit a:hover,
.gateway-map-credit a:focus-visible {
    color: var(--ink);
}

[data-parallax] {
    will-change: translate;
}

.js .route .route-number,
.js .route .route-heading,
.js .route .route-art,
.js .route .route-record,
.js .route .route-enter {
    opacity: 1 !important;
    transform: none !important;
}

.js .route,
.js .gateway-footer {
    opacity: 0;
    transform: translate3d(0, 1.75rem, 0);
    transition:
        opacity 620ms ease,
        transform 860ms var(--ease-textile);
}

.js .route.is-scroll-visible,
.js .route:focus-within,
.js .gateway-footer.is-scroll-visible,
.js .gateway-footer:focus-within {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

@media (max-width: 900px) {
    .route-selection {
        display: block;
        padding: 1rem;
    }

    .route + .route {
        margin-top: 1.25rem;
    }

    .statement {
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }

    .statement-copy {
        grid-column: 1 / 8;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto 1fr auto auto;
        padding-right: 1.4rem;
    }

    .statement-register {
        grid-column: 1;
        grid-row: 4;
        align-self: auto;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: auto;
        margin-top: 0;
    }

    .statement-register > div + div {
        border-top: 0;
        border-left: 1px dashed rgba(216, 185, 111, 0.36);
    }

    .statement-emblem {
        grid-column: 8 / 13;
        width: min(100%, 21rem);
        padding-inline: 0.5rem;
    }

    .statement-cue { grid-column: 1 / 13; }

    .statement::after { left: 58.4%; }

    .route-selection::before {
        top: 0;
        bottom: 0;
        left: 0.6rem;
        width: 5px;
    }
}

@media (max-width: 600px) {
    .masthead {
        min-height: 74px;
    }

    .identity__crest {
        width: 1.9rem;
        height: 2.15rem;
    }

    .identity > span:not(.identity__crest) { display: none; }

    .statement {
        min-height: max(860px, calc(100svh - 74px));
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto auto;
    }

    .statement::before {
        inset: 0.8rem;
        width: auto;
    }

    .statement::after {
        display: none;
    }

    .statement-copy {
        grid-column: 1;
        grid-row: 1;
        width: 100%;
        min-height: 0;
        margin: 0;
        padding: 4.2rem 2rem 1rem 2.15rem;
    }

    .statement .eyebrow {
        margin-bottom: 1.2rem;
        padding: 0.5rem 0.65rem;
        font-size: 0.55rem;
    }

    .statement h1,
    body[data-locale="en"] .statement h1,
    body[data-locale="ja"] .statement h1,
    body[data-locale^="zh"] .statement h1 {
        max-width: 10ch;
        font-size: clamp(2.65rem, 13vw, 4.1rem);
        line-height: 0.91;
    }

    body[data-locale="ja"] .statement h1,
    body[data-locale^="zh"] .statement h1 {
        font-size: clamp(2.3rem, 10.7vw, 3.5rem);
        line-height: 1;
    }

    .lede {
        margin-top: 1.3rem;
        font-size: 0.86rem;
    }

    .statement-register {
        margin-top: 1rem;
    }

    .statement-register > div {
        padding: 0.6rem;
    }

    .statement-register strong { font-size: 1.15rem; }

    .statement-register span { display: none; }

    .statement-emblem {
        grid-column: 1;
        grid-row: 2;
        width: 14rem;
        padding: 0 1rem 2.2rem;
    }

    .statement-emblem__portrait-patch {
        width: 10.5rem;
        border-width: 6px;
    }

    .statement-emblem__crest {
        right: -1rem;
        bottom: -0.75rem;
        width: 6rem;
    }

    .statement-emblem__word {
        margin-top: 0.5rem;
        font-size: 2rem;
    }

    .statement-emblem__serial {
        margin-top: 1rem;
        font-size: 0.48rem;
    }

    .statement-cue {
        grid-column: 1;
        grid-row: 3;
        justify-self: stretch;
        width: auto;
        max-width: none;
        margin: 0 1.5rem 1.6rem 2rem;
    }

    .route {
        min-height: max(650px, 82svh);
        padding: 1.25rem;
    }

    .route-heading h2 {
        font-size: clamp(3rem, 14vw, 4.5rem);
    }

    .route--wmmt .route-art {
        inset: 15% 0 15%;
    }

    .route-art::before {
        inset: 5% 4% 4%;
        border-width: 7px;
    }

    .route-map--wmmt {
        top: 0;
        left: -8%;
        width: 94%;
        height: 84%;
    }

    .route-art--car img {
        right: -34%;
        width: 122%;
        opacity: 0.14;
    }

    .wmmt-course-readout,
    .idac-course-readout {
        top: 58%;
        width: 68%;
    }

    .route-record,
    .route--idac .route-record {
        padding: 0.65rem 0.72rem;
    }

    .gateway-footer {
        min-height: 86px;
        flex-wrap: wrap;
        padding-block: 0.85rem;
        line-height: 1.55;
    }

    .gateway-map-credit {
        width: 100%;
        order: 3;
    }
}

@media (prefers-reduced-motion: reduce) {
    [data-parallax] {
        translate: none !important;
        will-change: auto;
    }

    .statement::before {
        translate: none;
    }

    .statement-emblem__portrait-patch,
    .route-art::before {
        transform: none !important;
        filter: none;
    }

    .js .route,
    .js .gateway-footer {
        opacity: 1;
        transform: none;
    }
}

/* Archive-purpose label and final responsive composition refinements. */
.archive-purpose {
    width: min(100%, 43rem);
    margin: 1.15rem 0 0;
    padding: 0.2rem 0 0.2rem 1rem;
    border-left: 2px solid var(--red);
    color: var(--ink);
    font-family: "Iowan Old Style", "Baskerville", Georgia, serif;
    font-size: clamp(1rem, 1.45vw, 1.2rem);
    line-height: 1.55;
}

/* Textile gateway composition. */
.gateway > main,
.statement,
.route-selection {
    min-width: 0;
    width: 100%;
}

.statement h1 {
    grid-column: 1;
    grid-row: 2;
}

.statement .lede {
    min-width: 0;
    max-width: 100%;
    grid-column: 1;
    grid-row: 3;
}

.statement .archive-purpose {
    min-width: 0;
    max-width: 34rem;
    grid-column: 1;
    grid-row: 4;
    margin: 0.55rem 0 0;
    padding: 0.72rem 1rem;
    border: 1px dashed rgba(241, 232, 211, 0.34);
    border-left: 4px solid var(--red);
    color: var(--ink-soft);
    background:
        repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.018) 0 1px, transparent 1px 4px),
        rgba(7, 13, 9, 0.42);
    box-shadow: 0 0 0 3px rgba(5, 10, 7, 0.34);
    font-family: "Helvetica Neue", "Yu Gothic", sans-serif;
    font-size: clamp(0.82rem, 1.05vw, 0.96rem);
    font-weight: 500;
    line-height: 1.55;
}

.statement .statement-register {
    grid-row: 2 / 5;
}

.route--idac .route-number,
.route--idac .route-heading p {
    color: #382018;
}

.route--idac .route-heading h2 {
    color: #211812;
    -webkit-text-stroke: 0.35px rgba(255, 244, 213, 0.28);
    text-shadow:
        0 2px 0 rgba(255, 242, 205, 0.52),
        1px 0 rgba(255, 248, 222, 0.34),
        -1px 0 #624431,
        0 7px 10px rgba(55, 33, 18, 0.28);
}

@media (max-width: 900px) {
    .statement-copy {
        min-width: 0;
        grid-template-rows: auto auto auto auto auto;
    }

    .statement .statement-register {
        grid-row: 5;
    }

}

@media (max-width: 600px) {
    .statement-copy,
    .statement .lede,
    .statement .archive-purpose {
        min-width: 0;
        max-width: 100%;
    }

    .statement .archive-purpose {
        margin-top: 0.4rem;
        padding: 0.65rem 0.75rem;
        font-size: 0.8rem;
    }

}

/* Satin-letter titles: real text remains selectable, translatable, and legible. */
:is(
    .identity strong,
    .statement h1 span,
    .statement h1 em,
    .statement-emblem__word,
    .route-heading h2,
    .route-record strong
) {
    --title-thread: #eee5d0;
    --title-thread-highlight: #fffaf0;
    --title-thread-low: #afa17e;
    --title-thread-edge: #050806;
    color: var(--title-thread);
    background-color: var(--title-thread);
    background-image:
        repeating-linear-gradient(
            108deg,
            rgba(255, 255, 255, 0.68) 0 0.7px,
            rgba(255, 255, 255, 0.08) 0.7px 1.5px,
            rgba(0, 0, 0, 0.18) 1.5px 2.25px,
            transparent 2.25px 3.25px
        ),
        linear-gradient(
            180deg,
            var(--title-thread-highlight) 0%,
            var(--title-thread) 46%,
            var(--title-thread-low) 100%
        );
    background-blend-mode: screen, normal;
    background-size: 4px 4px, 100% 100%;
    -webkit-text-stroke: 0.58px var(--title-thread-edge);
    paint-order: stroke fill;
    text-shadow:
        0 1px 0 rgba(255, 250, 233, 0.42),
        0 2px 0 var(--title-thread-edge),
        1px 3px 0 rgba(2, 6, 4, 0.76),
        0 7px 10px rgba(0, 0, 0, 0.46);
}

.statement h1 span {
    --title-thread: #a8dcea;
    --title-thread-highlight: #f2fcff;
    --title-thread-low: #669daf;
    --title-thread-edge: #061219;
}

.route--wmmt .route-heading h2 {
    --title-thread: #dbeaf0;
    --title-thread-highlight: #f5fcff;
    --title-thread-low: #789aaa;
    --title-thread-edge: #061219;
}

.route--idac .route-heading h2,
.route--idac .route-record strong {
    --title-thread: #ead9af;
    --title-thread-highlight: #fff2cf;
    --title-thread-low: #96764d;
    --title-thread-edge: #3f2419;
}

.masthead .identity strong,
.statement .statement-emblem__word {
    letter-spacing: 0.18em;
    text-shadow:
        0 1px 0 rgba(255, 250, 233, 0.55),
        0 2px 0 var(--title-thread-edge),
        0 4px 6px rgba(0, 0, 0, 0.42);
}

.statement .eyebrow,
.route-heading p {
    text-shadow:
        0 1px 0 rgba(255, 255, 255, 0.2),
        0 2px 0 rgba(2, 6, 4, 0.72),
        0 4px 7px rgba(0, 0, 0, 0.34);
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
    :is(
        .identity strong,
        .statement h1 span,
        .statement h1 em,
        .statement-emblem__word,
        .route-heading h2,
        .route-record strong
    ) {
        background-clip: text;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
    }
}

@media (max-width: 600px) {
    :is(
        .identity strong,
        .statement h1 span,
        .statement h1 em,
        .statement-emblem__word,
        .route-heading h2,
        .route-record strong
    ) {
        background-size: 5px 5px, 100% 100%;
        -webkit-text-stroke-width: 0.42px;
        text-shadow:
            0 1px 0 rgba(255, 250, 233, 0.34),
            0 2px 0 var(--title-thread-edge),
            0 5px 7px rgba(0, 0, 0, 0.4);
    }
}

@media (forced-colors: active) {
    :is(
        .identity strong,
        .statement h1 span,
        .statement h1 em,
        .statement-emblem__word,
        .route-heading h2,
        .route-record strong
    ) {
        color: CanvasText;
        background: none;
        -webkit-text-fill-color: currentColor;
        -webkit-text-stroke: 0;
        filter: none;
        text-shadow: none;
    }

    .identity__crest,
    .statement-emblem__crest {
        forced-color-adjust: auto;
    }
}

/* Static embroidered maps: the course geometry never draws or flows; only the
   directional triangle receives compositor motion. */
[data-map-motion="traveler-only"] .track-flow,
[data-map-motion="traveler-only"] .idac-course-line--runner,
[data-map-motion="traveler-only"] .course-traveler__wake,
[data-map-motion="traveler-only"] .course-traveler__core {
    display: none !important;
}

[data-map-motion="traveler-only"] .track-flow path,
[data-map-motion="traveler-only"] .idac-course-line--runner {
    stroke-dasharray: none !important;
    stroke-dashoffset: 0 !important;
    animation: none !important;
}

[data-map-motion="traveler-only"] .track-progress path,
[data-map-motion="traveler-only"] .idac-course-line--draw {
    stroke-dasharray: none !important;
    stroke-dashoffset: 0 !important;
    animation: none !important;
}

[data-map-motion="traveler-only"].route-art,
[data-map-motion="traveler-only"].route-map--wmmt,
[data-map-motion="traveler-only"].idac-course-plate,
.route[data-map-motion="traveler-only"] .route-art,
.route[data-map-motion="traveler-only"] .route-map--wmmt,
.route[data-map-motion="traveler-only"] .idac-course-plate {
    translate: none !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
}

/* Keep both archive entrances visible together. The pair is a bounded grid on
   wide screens and returns to the existing vertical stack below 900px. */
@media (min-width: 901px) {
    .route-selection {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-flow: row;
        grid-auto-columns: auto;
        justify-content: stretch;
        overflow: visible;
        scroll-snap-type: none;
    }

    .route-selection::before {
        top: 1rem;
        right: auto;
        bottom: 1rem;
        left: 50%;
        width: 7px;
        height: auto;
        background:
            repeating-linear-gradient(135deg, #d8b96f 0 3px, #70592e 3px 6px),
            var(--gold);
        box-shadow:
            -2px 0 #050805,
            2px 0 #050805,
            0 0 1rem rgba(0, 0, 0, 0.52);
        translate: -50% 0;
    }

    .route-selection > .route {
        width: 100%;
        min-width: 0;
        min-height: clamp(42rem, 76svh, 52rem);
    }

    .route--idac .route-art--seasons::before {
        width: min(82%, 32rem);
    }

    .route--idac .idac-course-plates {
        width: min(76%, 29rem);
    }

    .route--idac .idac-course-readout {
        width: min(70%, 24rem);
    }
}

/* The gateway IDAC map follows the compact proportions of the archive hero
   patch. The stitched field stays fixed for a complete lap; gateway.js swaps
   its authored course only when the triangle returns to the start. */
.route--idac .route-art--seasons {
    inset: 11% 0 13%;
    place-items: center;
}

.route--idac .route-art--seasons::before {
    inset: auto;
    top: 49%;
    left: 50%;
    width: min(82%, 32rem);
    aspect-ratio: 1.04;
    border-width: clamp(0.45rem, 0.7vw, 0.65rem);
    border-radius: 48% 48% 42% 42% / 46% 46% 54% 54%;
    translate: -50% -50%;
}

.route--idac .idac-course-plates {
    width: min(76%, 29rem);
    height: auto;
    grid-template-columns: minmax(0, 1fr);
    place-items: center;
}

.route--idac .idac-course-plate {
    width: 100%;
    margin: 0;
    padding: clamp(0.7rem, 1.4vw, 1.35rem);
    border: 0;
}

.route--idac .idac-course-readout {
    top: 63%;
    right: 50%;
    width: min(70%, 24rem);
    translate: 50% 0;
}

@media (max-width: 900px) {
    .route--idac .route-art--seasons::before {
        width: min(82%, 31rem);
    }

    .route--idac .idac-course-plates {
        width: min(76%, 28rem);
    }

    .route--idac .idac-course-readout {
        top: 62%;
        width: min(72%, 25rem);
    }
}

@media (max-width: 600px) {
    .route--idac .route-art--seasons::before {
        width: min(90%, 24rem);
    }

    .route--idac .idac-course-plates {
        width: min(84%, 21rem);
    }

    .route--idac .idac-course-readout {
        top: 61%;
        width: min(80%, 21rem);
    }
}

/* HORUS hand monogram: a minimal H built from two wrist-like uprights and a
   linked, rounded finger stroke. The three passes mimic patch underlay,
   satin thread and a narrow thread highlight without adding a crest shell. */
.horus-handmark__underlay,
.horus-handmark__thread,
.horus-handmark__highlight {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.horus-handmark__underlay {
    stroke: #050806;
    stroke-width: 25;
}

.horus-handmark__thread {
    stroke: #d8b96f;
    stroke-width: 15;
    filter:
        drop-shadow(0 2px 0 #6d5225)
        drop-shadow(0 -1px 0 rgba(255, 242, 194, 0.5));
}

.horus-handmark__highlight {
    stroke: #fff0bd;
    stroke-width: 2.25;
    stroke-dasharray: 0.012 0.009;
    opacity: 0.86;
}

.identity__crest {
    width: 2.65rem;
    height: 2.65rem;
    filter:
        drop-shadow(0 1px 0 rgba(255, 247, 220, 0.34))
        drop-shadow(0 4px 3px rgba(0, 0, 0, 0.68));
}

.statement-emblem__crest {
    right: -1.05rem;
    bottom: -1.15rem;
    width: clamp(7rem, 10vw, 9.25rem);
    aspect-ratio: 1;
    rotate: -2deg;
    filter:
        drop-shadow(0 2px 0 rgba(255, 246, 214, 0.24))
        drop-shadow(0 0.95rem 0.75rem rgba(0, 0, 0, 0.65));
}

@media (max-width: 600px) {
    .identity__crest {
        width: 2.15rem;
        height: 2.15rem;
    }

    .statement-emblem__crest {
        right: -0.7rem;
        bottom: -0.85rem;
        width: 5.4rem;
    }

    .route-record,
    .route--idac .route-record {
        margin-bottom: 4rem;
    }
}
