/*
 * K28 Manifesto × INTERFACE X
 * Isolated adapter layer: the original selectors remain functional underneath.
 */

:root {
    --ix-charcoal: #242424;
    --ix-charcoal-soft: #30302f;
    --ix-charcoal-light: #3b3b39;
    --ix-ink: #171717;
    --ix-paper: #eeeeea;
    --ix-muted: #a7a7a3;
    --ix-pink: #e781f2;
    --ix-blue: #56afdd;
    --ix-white: #ffffff;
    --ix-rail-artist-a: #b8e96a;
    --ix-rail-artist-b: #a2d957;
    --ix-rail-artist-c: #cdf18d;
    --ix-rail-manifesto-a: #f4a259;
    --ix-rail-manifesto-b: #ffc172;
    --ix-rail-manifesto-c: #dc843f;
    --ix-rail-imac-a: #a88cff;
    --ix-rail-imac-b: #c09fff;
    --ix-rail-imac-c: #8d73df;
    --ix-border-dark: rgba(23, 23, 23, 0.35);
    --ix-border-light: rgba(238, 238, 234, 0.2);
    --ix-mono: 'IBM Plex Mono', 'Geist Mono', 'SFMono-Regular', Consolas, monospace;
    --ix-terminal-height: 360px;
    --ix-compact-height: 40px;
    --ix-compact-tray-height: 190px;
    --ix-compact-open-height: 230px;
    --ix-compact-open-width: 316px;
    --ix-navigator-text: var(--ix-charcoal-soft);
}

html.ix-booting body {
    background: var(--ix-charcoal);
}

html.ix-booting body > #app > header nav {
    visibility: hidden;
}

html.ix-booting body > #app > main {
    visibility: hidden;
}

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

body.ix-ready {
    --bg-color: var(--ix-charcoal);
    --text-primary: var(--ix-paper);
    --text-secondary: var(--ix-muted);
    --border-color: rgba(238, 238, 234, 0.16);
    --accent-color: var(--ix-paper);
    --accent-hover: var(--ix-white);
    --nav-height: 58px;
    background: var(--ix-charcoal);
    color: var(--ix-paper);
    font-family: var(--ix-mono);
    font-size: 16px;
}

body.ix-ready::selection,
body.ix-ready *::selection {
    color: var(--ix-ink);
    background: var(--ix-pink);
}

body.ix-ready a,
body.ix-ready button,
body.ix-ready input,
body.ix-ready textarea {
    font-family: inherit;
}

body.ix-ready :focus-visible {
    outline: 2px solid var(--ix-pink);
    outline-offset: 3px;
}

body.ix-ready .grain-overlay {
    display: none !important;
    opacity: 0;
    background: none !important;
}

body.ix-ready > #app {
    position: relative;
    z-index: 2;
    min-height: 100vh;
    padding-bottom: calc(var(--ix-terminal-height) + 30px);
}

body.ix-ready.ix-terminal-collapsed > #app {
    padding-bottom: 88px;
}

body.ix-ready.ix-fit {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100dvh;
    overflow: auto;
    overscroll-behavior: contain;
}

body.ix-ready > #app > header {
    position: sticky;
    top: 0;
    z-index: 100;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    height: var(--nav-height);
    min-height: var(--nav-height);
    padding: 0 clamp(18px, 3vw, 42px);
    border: 0;
    border-bottom: 1px solid var(--ix-border-light);
    background: rgba(36, 36, 36, 0.96);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

body.ix-ready > #app > header::after {
    content: 'K28 / LIVING ARCHIVE / LOCAL SYSTEM';
    color: var(--ix-muted);
    font: 300 0.68rem/1 var(--ix-mono);
    letter-spacing: 0.09em;
}

body.ix-ready > #app > header .logo {
    width: fit-content;
    color: var(--ix-paper);
    font: 500 0.88rem/1 var(--ix-mono);
    letter-spacing: 0.05em;
    cursor: pointer;
}

body.ix-ready > #app > header .logo .dot {
    color: var(--ix-pink);
}

body.ix-ready > #app > header .logo .subtitle {
    color: var(--ix-muted);
    font: 300 0.67rem/1.2 var(--ix-mono);
    letter-spacing: 0.07em;
}

/* The original buttons are moved into the terminal. Keep the empty nav as the
   first top-level nav/header contract for the legacy runtime. */
body.ix-ready > #app > header > nav {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    pointer-events: none;
    opacity: 0;
}

body.ix-ready > #app > main {
    position: relative;
    z-index: 2;
    width: min(100%, 1580px);
    max-width: 1580px;
    margin: 0 auto;
    padding: clamp(24px, 4vw, 60px);
}

body.ix-ready .view.ix-adapted-view {
    min-width: 0;
}

body.ix-ready .view.ix-adapted-view::before {
    content: attr(data-ix-section);
    display: block;
    width: fit-content;
    margin: 0 0 18px;
    padding: 7px 10px;
    border: 1px solid var(--ix-border-light);
    background: var(--ix-charcoal);
    color: var(--ix-paper);
    font: 500 0.69rem/1 var(--ix-mono);
    letter-spacing: 0.08em;
}

/* ==========================
   AMBIENT INTERFACE X FIELD
   ========================== */

#interface-x-shell {
    display: contents;
}

.ix-visual-field {
    position: fixed;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
    background: var(--ix-charcoal);
}

.ix-flock {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0.64;
}

.ix-infinite-field {
    position: absolute;
    inset: 0;
    opacity: 0.52;
}

.ix-infinite-window {
    position: absolute;
    inset: var(--ix-window-inset);
    overflow: hidden;
    border: 1px solid rgba(238, 238, 234, calc(0.13 - var(--ix-window-index) * 0.006));
    border-radius: 4px;
    transform: translate3d(
        calc((var(--ix-window-index) - 3.5) * 0.35vw),
        calc((var(--ix-window-index) - 3.5) * -0.22vh),
        0
    );
    animation: ix-infinite-drift 12s cubic-bezier(0.65, 0, 0.35, 1) infinite alternate;
    animation-delay: calc(var(--ix-window-index) * -0.7s);
}

.ix-infinite-window::before {
    content: '●  ●  ●     K28 SCREEN / LOCAL';
    position: absolute;
    inset: 0 0 auto;
    height: 24px;
    padding: 7px 12px 0;
    border-bottom: 1px solid rgba(238, 238, 234, 0.1);
    color: rgba(238, 238, 234, 0.34);
    font: 500 clamp(0.4rem, 0.5vw, 0.54rem)/1 var(--ix-mono);
    letter-spacing: 0.08em;
    white-space: nowrap;
}

.ix-screen-copy {
    position: absolute;
    top: 40px;
    right: 14px;
    left: 14px;
    display: grid;
    gap: 6px;
}

.ix-screen-line {
    display: block;
    width: 0;
    max-width: 100%;
    overflow: hidden;
    border-right: 1px solid currentColor;
    color: rgba(238, 238, 234, 0.28);
    font: 400 clamp(0.38rem, 0.48vw, 0.52rem)/1.4 var(--ix-mono);
    letter-spacing: 0.06em;
    white-space: nowrap;
    animation: ix-screen-type 3.2s steps(var(--ix-type-steps), end) infinite;
    animation-delay: var(--ix-type-delay);
}

body.ix-window-pulse .ix-infinite-window {
    animation: ix-infinite-open 4.2s cubic-bezier(0.76, 0, 0.24, 1) both;
    animation-delay: calc(var(--ix-window-order) * 110ms);
}

.ix-chromatic {
    position: absolute;
    display: block;
    opacity: 0;
    background: var(--ix-block-color);
    animation: ix-solid-color-cycle 12s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}

.ix-chromatic-pink {
    --ix-block-color: var(--ix-pink);
    top: 13%;
    left: -3%;
    width: clamp(180px, 28vw, 520px);
    height: clamp(38px, 6vw, 92px);
}

.ix-chromatic-blue {
    --ix-block-color: var(--ix-blue);
    top: 39%;
    right: -4%;
    width: clamp(220px, 34vw, 620px);
    height: clamp(54px, 8vw, 124px);
    animation-delay: -3.7s;
}

.ix-chromatic-white {
    --ix-block-color: var(--ix-white);
    bottom: 14%;
    left: 27%;
    width: clamp(180px, 30vw, 560px);
    height: clamp(32px, 5vw, 76px);
    animation-delay: -7.2s;
}

@keyframes ix-infinite-drift {
    from { opacity: 0.18; transform: scale(0.97) translate3d(-1.4vw, 1.2vh, 0); }
    to { opacity: 0.55; transform: scale(1.025) translate3d(1.4vw, -1.2vh, 0); }
}

@keyframes ix-infinite-open {
    0% {
        opacity: 0;
        clip-path: inset(18% 14%);
        transform: scale(0.82);
    }
    20% {
        opacity: 0.62;
        clip-path: inset(12% 9%);
        transform: scale(0.87);
    }
    56% {
        opacity: 0.58;
        clip-path: inset(2%);
        transform: scale(0.97);
    }
    100% {
        opacity: 0.16;
        clip-path: inset(0);
        transform: scale(1.06);
    }
}

@keyframes ix-screen-type {
    0%, 8% { width: 0; opacity: 0; }
    12% { width: 0; opacity: 0.72; }
    48%, 64% { width: var(--ix-type-width); opacity: 0.72; }
    78%, 100% { width: 0; opacity: 0; }
}

@keyframes ix-solid-color-cycle {
    0%, 18%, 100% { background: var(--ix-block-color); opacity: 0; }
    34%, 72% { background: var(--ix-block-color); opacity: 0.7; }
    88% { background: var(--ix-block-color); opacity: 0.12; }
}

/* ==========================
   MANIFESTO STRUCTURE
   ========================== */

body.ix-ready .manifesto-content {
    max-width: none;
}

body.ix-ready .artist-intro {
    position: relative;
    display: grid;
    grid-template-columns: minmax(180px, 290px) minmax(0, 1fr);
    align-items: stretch;
    gap: 0;
    max-width: none;
    margin: 0 0 1px;
    padding: 0;
    border: 0;
    background: var(--ix-paper);
    color: var(--ix-ink);
    overflow: hidden;
}

body.ix-ready .artist-intro::before {
    content: 'K28 / ARTIST SYSTEM / 2026';
    position: absolute;
    top: 16px;
    right: 18px;
    z-index: 4;
    color: rgba(23, 23, 23, 0.62);
    font-size: 0.66rem;
    letter-spacing: 0.08em;
}

body.ix-ready .artist-photo-wrap {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: clamp(240px, 26vw, 380px);
    overflow: hidden;
    background: var(--ix-muted);
}

body.ix-ready .artist-photo-shape {
    position: absolute;
    inset: 0;
    display: block;
    overflow: hidden;
    background: rgba(238, 238, 234, 0.5);
    clip-path: none;
    animation: none;
    transform: translateZ(0);
    will-change: clip-path;
}

body.ix-ready .artist-photo-wrap::before {
    display: none;
}

body.ix-ready .artist-photo {
    width: 100%;
    height: 100%;
    min-height: inherit;
    border-radius: 0;
    clip-path: none;
    filter: grayscale(100%) contrast(1.08);
    animation: ix-photo-window 14.4s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}

body.ix-ready .artist-photo-shape > .artist-photo {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
}

body.ix-ready .artist-photo-wrap:hover .artist-photo {
    filter: grayscale(0%) contrast(1);
}

body.ix-ready .artist-bio {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-width: 0;
    padding: clamp(34px, 5vw, 76px);
    color: var(--ix-ink);
}

body.ix-ready .bio-line,
body.ix-ready .bio-tagline,
body.ix-ready .bio-links a {
    color: var(--ix-ink);
    font-family: var(--ix-mono);
}

body.ix-ready .bio-line {
    max-width: 56ch;
    font-size: clamp(0.92rem, 1.25vw, 1.12rem);
}

body.ix-ready .bio-tagline {
    font-size: clamp(0.82rem, 1.1vw, 1rem);
}

body.ix-ready .bio-links {
    gap: 7px 14px;
    margin-top: 10px;
}

body.ix-ready .bio-links a {
    position: relative;
    padding: 2px 0 3px;
    border: 0;
    border-radius: 0;
    font-size: 0.7rem;
    background: none;
    transition: color 240ms ease, transform 320ms cubic-bezier(0.16, 1, 0.3, 1);
}

body.ix-ready .bio-links a::after {
    content: '';
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 1px;
    background: currentColor;
    transform: scaleX(0.18);
    transform-origin: left;
    transition: transform 360ms cubic-bezier(0.16, 1, 0.3, 1), background-color 240ms ease;
}

body.ix-ready .bio-links a:hover {
    color: var(--ix-ink);
    border-color: transparent;
    background: none;
    transform: translateX(3px);
}

body.ix-ready .bio-links a:hover::after,
body.ix-ready .bio-links a:focus-visible::after {
    background: var(--ix-pink);
    transform: scaleX(1);
}

body.ix-ready .hero-area {
    position: relative;
    max-width: none;
    margin: 0 0 1px;
    padding: clamp(34px, 6vw, 92px);
    color: var(--ix-ink);
    background: var(--ix-pink);
}

body.ix-ready .hero-area::after {
    content: none;
}

body.ix-ready .hero-title {
    max-width: 17ch;
    margin: 0;
    color: var(--ix-ink);
    font-family: var(--ix-mono);
    font-size: clamp(2.25rem, 6.2vw, 7.3rem);
    font-weight: 500;
    line-height: 0.96;
    letter-spacing: -0.065em;
}

body.ix-ready .hxm-link::after {
    height: 4px;
    background: var(--ix-ink);
}

body.ix-ready .hxm-link:hover {
    color: var(--ix-white);
}

body.ix-ready .mouse-hint rect,
body.ix-ready .mouse-hint line {
    stroke: var(--ix-ink);
}

body.ix-ready .intro-prose {
    max-width: none;
    margin: 0 0 1px;
    padding: clamp(34px, 5vw, 78px);
    background: var(--ix-paper);
    color: var(--ix-ink);
}

body.ix-ready .intro-prose > p {
    max-width: 82ch;
    color: rgba(23, 23, 23, 0.78);
    font-family: var(--ix-mono);
    font-size: clamp(1rem, 1.45vw, 1.32rem);
}

body.ix-ready .intro-prose .intro {
    max-width: 74ch;
    color: var(--ix-ink) !important;
    font-size: clamp(1.12rem, 1.9vw, 1.65rem) !important;
    line-height: 1.65;
}

body.ix-ready .manifesto-copy-stage {
    --ix-copy-size: clamp(268px, 25vw, 340px);
    --ix-copy-half: calc(var(--ix-copy-size) / 2);
    --ix-cubie-gap: 3px;
    --ix-cubie-step: calc(var(--ix-copy-size) / 3);
    --ix-cubie-size: calc(var(--ix-cubie-step) - var(--ix-cubie-gap));
    --ix-cubie-half: calc(var(--ix-cubie-size) / 2);
    --ix-copy-front: #0a0b0b;
    --ix-copy-back: #030404;
    --ix-copy-right: #111515;
    --ix-copy-left: #060707;
    --ix-copy-top: #242727;
    --ix-copy-bottom: #020303;
    position: relative;
    z-index: 0;
    display: grid;
    place-items: center;
    max-width: none;
    min-height: calc(var(--ix-copy-size) + 220px);
    margin: 0 0 clamp(22px, 2.8vw, 38px);
    padding-block: 110px;
    perspective: 1150px;
    -webkit-perspective: 1150px;
    perspective-origin: 50% 42%;
    -webkit-perspective-origin: 50% 42%;
    isolation: isolate;
}

body.ix-ready .manifesto-copy-stage::after {
    content: '';
    position: absolute;
    z-index: 0;
    left: 50%;
    bottom: 30px;
    width: min(54%, 280px);
    height: clamp(32px, 4vw, 58px);
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.52);
    filter: blur(18px);
    transform: translateX(-50%) scaleX(0.82);
    transform-origin: center;
    animation: ix-manifesto-cube-shadow 20s cubic-bezier(0.76, 0, 0.24, 1) infinite;
    pointer-events: none;
}

body.ix-ready .manifesto-copy-cube {
    position: relative;
    z-index: 1;
    width: var(--ix-copy-size);
    height: var(--ix-copy-size);
    transform-style: preserve-3d;
    -webkit-transform-style: preserve-3d;
    transform-origin: 50% 50% 0;
    animation: ix-manifesto-text-cube 20s cubic-bezier(0.76, 0, 0.24, 1) infinite;
    animation-play-state: paused;
    will-change: auto;
}

body.ix-ready .manifesto-copy-stage.is-cube-visible .manifesto-copy-cube {
    animation-play-state: running;
    will-change: transform;
}

/* The authored cube remains the exact solved/accessible object. During a
   self-running cycle this visual-only 26-piece mechanism takes over, turns
   six real 3x3 layers, then yields only after the inverse sequence is done. */
body.ix-ready .manifesto-copy-cube.has-rubik-system > .manifesto-copy-face {
    opacity: 1;
    visibility: visible;
    transition: none;
}

body.ix-ready .manifesto-rubik-core {
    position: absolute;
    z-index: 2;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 1;
    visibility: hidden;
    transform-style: preserve-3d;
    -webkit-transform-style: preserve-3d;
    pointer-events: none;
    transition: none;
}

body.ix-ready .manifesto-copy-cube.is-rubik-active > .manifesto-copy-face {
    opacity: 1;
    visibility: hidden;
}

body.ix-ready .manifesto-copy-cube.is-rubik-active > .manifesto-rubik-core {
    opacity: 1;
    visibility: visible;
}

body.ix-ready .manifesto-rubik-cubie {
    position: absolute;
    top: 50%;
    left: 50%;
    width: var(--ix-cubie-size);
    height: var(--ix-cubie-size);
    margin: calc(var(--ix-cubie-size) / -2) 0 0 calc(var(--ix-cubie-size) / -2);
    transform-style: preserve-3d;
    -webkit-transform-style: preserve-3d;
    transform-origin: 50% 50% 0;
}

body.ix-ready .manifesto-rubik-face {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    box-sizing: border-box;
    border: 1px solid rgba(238, 238, 234, 0.055);
    background: var(--ix-copy-back);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.42);
}

body.ix-ready .manifesto-rubik-face--front {
    transform: translateZ(var(--ix-cubie-half));
}

body.ix-ready .manifesto-rubik-face--back {
    transform: rotateY(180deg) translateZ(var(--ix-cubie-half));
}

body.ix-ready .manifesto-rubik-face--right {
    transform: rotateY(90deg) translateZ(var(--ix-cubie-half));
}

body.ix-ready .manifesto-rubik-face--left {
    transform: rotateY(-90deg) translateZ(var(--ix-cubie-half));
}

body.ix-ready .manifesto-rubik-face--top {
    transform: rotateX(90deg) translateZ(var(--ix-cubie-half));
}

body.ix-ready .manifesto-rubik-face--bottom {
    transform: rotateX(-90deg) translateZ(var(--ix-cubie-half));
}

body.ix-ready .manifesto-rubik-face--front.is-surface { background: var(--ix-copy-front); }
body.ix-ready .manifesto-rubik-face--back.is-surface { background: var(--ix-copy-back); }
body.ix-ready .manifesto-rubik-face--right.is-surface { background: var(--ix-copy-right); }
body.ix-ready .manifesto-rubik-face--left.is-surface { background: var(--ix-copy-left); }
body.ix-ready .manifesto-rubik-face--top.is-surface { background: var(--ix-copy-top); }
body.ix-ready .manifesto-rubik-face--bottom.is-surface { background: var(--ix-copy-bottom); }

body.ix-ready .manifesto-rubik-surface-copy {
    position: absolute;
    top: var(--rubik-surface-y);
    left: var(--rubik-surface-x);
    width: var(--ix-copy-size);
    height: var(--ix-copy-size);
    box-sizing: border-box;
    margin: 0;
    contain: layout paint style;
    pointer-events: none;
}

body.ix-ready .manifesto-rubik-surface-copy--front {
    display: flex;
    align-items: center;
    max-width: none !important;
    max-height: none !important;
    padding: clamp(16px, 1.7vw, 24px);
    background: var(--ix-copy-front);
    color: rgba(238, 238, 234, 0.9) !important;
    font-family: var(--ix-mono);
    font-size: clamp(0.8rem, 0.9vw, 0.9rem) !important;
    line-height: 1.4 !important;
    text-align: justify;
    text-align-last: left;
    text-justify: inter-word;
    hyphens: auto;
}

body.ix-ready .manifesto-rubik-surface-copy--front .token-word {
    color: rgba(238, 238, 234, 0.58);
}

body.ix-ready .manifesto-rubik-surface-copy--front .token-word.token-seen,
body.ix-ready .manifesto-rubik-surface-copy--front .token-word.token-active {
    color: rgba(255, 255, 255, 0.96);
}

body.ix-ready .manifesto-rubik-surface-copy--back {
    display: grid;
    place-content: center;
    gap: 9px;
    padding: clamp(16px, 1.7vw, 24px);
    background: var(--ix-copy-back);
    color: var(--ix-paper);
    text-align: center;
}

body.ix-ready .manifesto-rubik-surface-copy--back small {
    font: 400 0.58rem/1.2 var(--ix-mono);
    letter-spacing: 0.12em;
}

body.ix-ready .manifesto-rubik-surface-copy--back strong {
    font: 500 clamp(0.9rem, 1.5vw, 1.35rem)/1.2 var(--ix-mono);
    letter-spacing: 0.08em;
}

body.ix-ready .manifesto-copy-face {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    overflow: hidden;
    border: 0;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    box-shadow: none;
    pointer-events: none;
}

body.ix-ready .manifesto-copy-face--front {
    display: flex;
    align-items: center;
    padding: clamp(16px, 1.7vw, 24px);
    background: var(--ix-copy-front);
    color: rgba(238, 238, 234, 0.9);
    transform: translateZ(var(--ix-copy-half));
    pointer-events: auto;
}

body.ix-ready .manifesto-copy-face--back {
    display: grid;
    place-content: center;
    gap: 9px;
    padding: clamp(16px, 1.7vw, 24px);
    background: var(--ix-copy-back);
    color: var(--ix-paper);
    text-align: center;
    transform: rotateY(180deg) translateZ(var(--ix-copy-half));
}

body.ix-ready .manifesto-copy-face--back small {
    font: 400 0.58rem/1.2 var(--ix-mono);
    letter-spacing: 0.12em;
}

body.ix-ready .manifesto-copy-face--back strong {
    font: 500 clamp(0.9rem, 1.5vw, 1.35rem)/1.2 var(--ix-mono);
    letter-spacing: 0.08em;
}

body.ix-ready[data-ix-view="manifesto"] .intro-prose .manifesto-copy-face--front .intro {
    max-height: 100%;
    color: rgba(238, 238, 234, 0.9) !important;
    font-size: clamp(0.8rem, 0.9vw, 0.9rem) !important;
    line-height: 1.4 !important;
}

body.ix-ready[data-ix-view="manifesto"] .intro-prose .manifesto-copy-face--front .token-word {
    color: rgba(238, 238, 234, 0.58);
}

body.ix-ready[data-ix-view="manifesto"] .intro-prose .manifesto-copy-face--front .token-word.token-seen,
body.ix-ready[data-ix-view="manifesto"] .intro-prose .manifesto-copy-face--front .token-word.token-active {
    color: rgba(255, 255, 255, 0.96);
}

body.ix-ready .manifesto-copy-face--right {
    background: var(--ix-copy-right);
    transform: rotateY(90deg) translateZ(var(--ix-copy-half));
}

body.ix-ready .manifesto-copy-face--left {
    background: var(--ix-copy-left);
    transform: rotateY(-90deg) translateZ(var(--ix-copy-half));
}

body.ix-ready .manifesto-copy-face--top {
    background: var(--ix-copy-top);
    transform: rotateX(90deg) translateZ(var(--ix-copy-half));
}

body.ix-ready .manifesto-copy-face--bottom {
    background: var(--ix-copy-bottom);
    transform: rotateX(-90deg) translateZ(var(--ix-copy-half));
}

body.ix-ready #token-highlight-text {
    max-width: none;
    margin: 0;
    text-align: justify;
    text-align-last: left;
    text-justify: inter-word;
    hyphens: auto;
}

@keyframes ix-manifesto-text-cube {
    0%, 18% {
        transform: translate3d(0, -24px, 0) rotateX(-28deg) rotateY(156deg);
    }
    26% {
        transform: translate3d(0, -44px, 48px) rotateX(-40deg) rotateY(112deg);
    }
    34% {
        transform: translate3d(0, -56px, 76px) rotateX(-42deg) rotateY(58deg);
    }
    40%, 64% {
        transform: translate3d(0, -60px, 84px) rotateX(-28deg) rotateY(-24deg);
    }
    70% {
        transform: translate3d(0, -56px, 76px) rotateX(-42deg) rotateY(34deg);
    }
    78% {
        transform: translate3d(0, -44px, 48px) rotateX(-42deg) rotateY(88deg);
    }
    86%, 100% {
        transform: translate3d(0, -24px, 0) rotateX(-28deg) rotateY(156deg);
    }
}

@keyframes ix-manifesto-cube-shadow {
    0%, 18%, 86%, 100% {
        opacity: 0.72;
        transform: translateX(-50%) scaleX(0.82);
    }
    40%, 64% {
        opacity: 0.38;
        transform: translateX(-50%) scaleX(1.08);
    }
}

body.ix-ready .token-word {
    color: rgba(23, 23, 23, 0.42);
}

body.ix-ready .token-word.token-seen,
body.ix-ready .token-word.token-active {
    color: var(--ix-ink);
}

body.ix-ready .token-word.token-active::before {
    background: var(--ix-blue);
    border-color: var(--ix-ink);
    border-radius: 0;
}

body.ix-ready .highlight-text {
    color: var(--ix-ink) !important;
    font-family: var(--ix-mono);
    font-size: clamp(1.55rem, 3vw, 3.4rem) !important;
    letter-spacing: -0.04em;
}

body.ix-ready .desk-row {
    align-items: stretch;
    justify-content: stretch;
    gap: 1px;
    max-width: none;
    margin: 46px 0 0;
    padding: 1px;
    background: var(--ix-ink);
}

body.ix-ready .mood-terminal {
    max-width: none;
    min-height: 220px;
    border: 0;
    border-radius: 0;
    background: var(--ix-charcoal);
    font-family: var(--ix-mono);
}

body.ix-ready .term-dot {
    appearance: none;
    padding: 0;
    border: 0;
}

body.ix-ready .term-header,
body.ix-ready .mini-terminal .mini-term-header {
    background: var(--ix-charcoal-light);
}

body.ix-ready .term-body {
    padding: clamp(20px, 3vw, 38px);
}

body.ix-ready .term-line,
body.ix-ready .term-input,
body.ix-ready .term-response {
    font-family: var(--ix-mono);
    font-size: 0.86rem;
}

body.ix-ready .term-caret,
body.ix-ready .term-response {
    color: var(--ix-blue);
}

body.ix-ready .imac {
    width: clamp(230px, 30vw, 390px);
    justify-content: center;
    padding: clamp(24px, 4vw, 54px);
    background: var(--ix-blue);
}

body.ix-ready .imac-screen,
body.ix-ready .imac-chin {
    width: min(100%, 240px);
}

body.ix-ready .imac-screen {
    height: auto;
    aspect-ratio: 200 / 130;
    border: 2px solid rgba(238, 238, 234, 0.52);
    border-bottom: 0;
    border-radius: 8px 8px 0 0;
    background: var(--ix-charcoal);
    box-shadow: none;
}

body.ix-ready .imac-chin {
    position: relative;
    height: 16px;
    border: 2px solid rgba(238, 238, 234, 0.52);
    border-top: 0;
    border-radius: 0 0 8px 8px;
    background: var(--ix-charcoal);
}

body.ix-ready .imac-chin::after {
    width: 22px;
    height: 3px;
    border-radius: 2px;
    background: var(--ix-charcoal-light);
}

body.ix-ready .imac-stand {
    width: 58px;
    height: 24px;
}

body.ix-ready .imac-stand::before {
    border: 0;
    background: rgba(238, 238, 234, 0.38);
    clip-path: polygon(0 0, 100% 0, 68% 100%, 32% 100%);
    box-shadow: none;
}

body.ix-ready .imac-base {
    width: 78px;
    height: 5px;
    border: 1px solid rgba(238, 238, 234, 0.52);
    border-top: 0;
    border-radius: 0 0 5px 5px;
    background: transparent;
}

@keyframes ix-photo-window {
    0%, 12%, 94%, 100% {
        object-position: center 24%;
        transform: scale(1.08) translate3d(0, 0, 0);
    }
    24%, 34% {
        object-position: center 22%;
        transform: scale(1.16) translate3d(0, 2.5%, 0);
    }
    46%, 56% {
        object-position: center 25%;
        transform: scale(1.04) translate3d(0, 0, 0);
    }
    70%, 82% {
        object-position: center 23%;
        transform: scale(1.11) translate3d(0, 1%, 0);
    }
}

/* Circle -> triangle -> square -> polygon -> circle. Matching vertex counts
   keep the complete frame and its image crop fluid throughout the cycle. */
@keyframes ix-photo-frame-morph {
    0%, 12%, 94%, 100% {
        clip-path: polygon(50% 0%, 100% 0%, 100% 0%, 100% 50%, 100% 100%, 100% 100%, 50% 100%, 0% 100%, 0% 100%, 0% 50%, 0% 0%, 0% 0%);
        border-radius: 50%;
    }
    24%, 34% {
        clip-path: polygon(50% 0%, 58% 17%, 67% 33%, 75% 50%, 83% 67%, 92% 83%, 100% 100%, 75% 100%, 50% 100%, 25% 100%, 0% 100%, 8% 83%);
        border-radius: 0;
    }
    46%, 56% {
        clip-path: polygon(0% 0%, 25% 0%, 50% 0%, 75% 0%, 100% 0%, 100% 25%, 100% 50%, 100% 75%, 100% 100%, 75% 100%, 50% 100%, 25% 100%);
        border-radius: 0;
    }
    70%, 82% {
        clip-path: polygon(50% 0%, 75% 0%, 100% 25%, 100% 50%, 100% 75%, 75% 100%, 50% 100%, 25% 100%, 0% 75%, 0% 50%, 0% 25%, 25% 0%);
        border-radius: 0;
    }
}

body.ix-ready .ix-window-entry:not(.anim-poster),
body.ix-ready .poster-card.anim-poster.visible {
    animation: ix-window-entry 820ms cubic-bezier(0.16, 1, 0.3, 1) backwards;
    animation-delay: calc(var(--ix-card-index, 0) * 55ms);
}

/* Morph the complete portrait frame, including its background and click area.
   The image now simply fills this changing outer silhouette. */
body.ix-ready .artist-photo-wrap.anim-fade-up.ix-window-entry {
    opacity: 1;
    clip-path: polygon(50% 0%, 100% 0%, 100% 0%, 100% 50%, 100% 100%, 100% 100%, 50% 100%, 0% 100%, 0% 100%, 0% 50%, 0% 0%, 0% 0%);
    transform: none;
    border-radius: 50%;
    animation: ix-photo-frame-morph 14.4s cubic-bezier(0.65, 0, 0.35, 1) infinite !important;
    will-change: clip-path, border-radius;
}

@keyframes ix-window-entry {
    0% {
        opacity: 0;
        clip-path: inset(48% 48% 48% 48%);
        transform: translateY(24px) scale(0.96);
    }
    42% {
        opacity: 1;
        clip-path: inset(46% 4% 46% 4%);
    }
    100% {
        opacity: 1;
        clip-path: inset(0);
        transform: translateY(0) scale(1);
    }
}

/* Manifesto cards retain their canvas behavior and text, but enter as a
   staggered rectangular window field. */
body.ix-ready .poster-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin: 0 0 1px;
    background: var(--ix-ink);
}

body.ix-ready .poster-card {
    aspect-ratio: 0.78;
    border: 0;
    background: var(--ix-charcoal);
    box-shadow: none;
}

body.ix-ready .poster-card:nth-child(3n + 1) {
    background: var(--ix-pink);
}

body.ix-ready .poster-card:nth-child(3n + 2) {
    background: var(--ix-blue);
}

body.ix-ready .poster-card:nth-child(3n + 3) {
    background: var(--ix-paper);
}

body.ix-ready .poster-card::after {
    content: attr(data-ix-card) ' / MANIFESTO';
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 6;
    color: var(--ix-ink);
    font-size: 0.64rem;
    letter-spacing: 0.08em;
}

body.ix-ready .poster-card:nth-child(3n + 1) .poster-label,
body.ix-ready .poster-card:nth-child(3n + 1) .poster-heading,
body.ix-ready .poster-card:nth-child(3n + 2) .poster-label,
body.ix-ready .poster-card:nth-child(3n + 2) .poster-heading,
body.ix-ready .poster-card:nth-child(3n + 3) .poster-label,
body.ix-ready .poster-card:nth-child(3n + 3) .poster-heading {
    color: var(--ix-ink);
}

body.ix-ready .poster-card .poster-heading {
    font-family: var(--ix-mono);
    font-size: clamp(1.6rem, 3.4vw, 3.7rem);
}

body.ix-ready .poster-canvas {
    opacity: 0.78;
    mix-blend-mode: difference;
}

body.ix-ready .poster-card .poster-text-overlay {
    border: 0;
    border-top: 1px solid var(--ix-paper);
    border-radius: 0;
    background: rgba(36, 36, 36, 0.97);
}

body.ix-ready .poster-card:hover {
    border: 0;
    box-shadow: none;
}

body.ix-ready .poster-card:hover::after {
    color: var(--ix-white);
}

body.ix-ready .manifesto-footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 20px;
    margin: 0;
    padding: 28px;
    border: 0;
    background: var(--ix-white);
    color: var(--ix-ink);
    text-align: left;
}

body.ix-ready .manifesto-footer .warning-text {
    margin: 0;
    color: var(--ix-ink) !important;
    font-family: var(--ix-mono);
}

body.ix-ready .cta-btn {
    margin: 0;
    border: 1px solid var(--ix-ink);
    border-radius: 0;
    background: var(--ix-ink);
    color: var(--ix-white);
    font-family: var(--ix-mono);
    font-size: 0.78rem;
}

body.ix-ready .cta-btn:hover {
    background: var(--ix-pink);
    color: var(--ix-ink);
}

/* ==========================
   ARCHIVE / PROTOTYPE VIEWS
   ========================== */

body.ix-ready .gallery-header {
    margin: 0 0 1px;
    padding: clamp(32px, 5vw, 74px);
    background: var(--ix-paper);
    color: var(--ix-ink);
}

body.ix-ready .gallery-header h2 {
    color: var(--ix-ink);
    font-family: var(--ix-mono);
    font-size: clamp(2.5rem, 7vw, 7.5rem);
    font-weight: 500;
    letter-spacing: -0.075em;
    line-height: 0.9;
}

body.ix-ready .gallery-header p {
    max-width: 64ch;
    margin-top: 24px;
    color: rgba(23, 23, 23, 0.72);
    font-family: var(--ix-mono);
    font-size: clamp(0.9rem, 1.3vw, 1.08rem);
}

body.ix-ready .prototype-grid,
body.ix-ready .artwork-grid {
    gap: 1px;
    padding: 1px;
    background: var(--ix-ink);
}

body.ix-ready .proto-card,
body.ix-ready .art-card {
    border: 0;
    border-radius: 0;
    background: var(--ix-paper);
    color: var(--ix-ink);
    box-shadow: none;
}

body.ix-ready .proto-card:nth-child(4n + 1),
body.ix-ready .art-card:nth-child(9n + 1) {
    background: var(--ix-pink);
}

body.ix-ready .proto-card:nth-child(4n + 2),
body.ix-ready .art-card:nth-child(9n + 4) {
    background: var(--ix-blue);
}

body.ix-ready .proto-card:nth-child(4n + 3) {
    background: var(--ix-charcoal-light);
    color: var(--ix-paper);
}

body.ix-ready .proto-info,
body.ix-ready .art-card {
    font-family: var(--ix-mono);
}

body.ix-ready .proto-name,
body.ix-ready .art-title {
    font-family: var(--ix-mono);
    letter-spacing: -0.04em;
}

body.ix-ready .proto-card:not(:nth-child(4n + 3)) .proto-name,
body.ix-ready .proto-card:not(:nth-child(4n + 3)) .proto-desc,
body.ix-ready .proto-card:not(:nth-child(4n + 3)) .proto-tag,
body.ix-ready .proto-card:not(:nth-child(4n + 3)) .proto-launch {
    color: var(--ix-ink);
}

body.ix-ready .art-card .art-title,
body.ix-ready .art-card .art-desc,
body.ix-ready .art-card .art-action,
body.ix-ready .art-card .art-number {
    color: var(--ix-ink);
    font-family: var(--ix-mono);
}

body.ix-ready .art-card .art-action {
    border-color: rgba(23, 23, 23, 0.24);
}

body.ix-ready .proto-launch {
    border-radius: 0;
}

body.ix-ready .proto-card:hover,
body.ix-ready .art-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 0 rgba(0, 0, 0, 0.22);
}

/* Cinema keeps its film language but is framed as one of the system windows. */
body.ix-ready #cinema.ix-adapted-view {
    margin: 0;
    padding: 1px;
    background: var(--ix-paper);
}

body.ix-ready .cinema-stage,
body.ix-ready .cinema-card {
    border-radius: 0;
}

body.ix-ready .cinema-headline,
body.ix-ready .cinema-sub,
body.ix-ready .cinema-values,
body.ix-ready .cinema-gallery {
    font-family: var(--ix-mono);
}

/* Existing full-bleed iframe worlds stay fixed. The terminal remains above
   them and can collapse, so navigation is never trapped. */
body.ix-ready .ai-product-design-view.active,
body.ix-ready .atelier-view.active,
body.ix-ready .metaspace-view.active {
    inset: var(--nav-height) 0 0;
    z-index: 50;
}

body.ix-ready .k28os-view.active {
    z-index: 50;
}

body.ix-ready .ai-product-design-view.active::before,
body.ix-ready .atelier-view.active::before,
body.ix-ready .k28os-view.active::before,
body.ix-ready .metaspace-view.active::before {
    display: none;
}

body.ix-ready.galleria-active > #app > main {
    width: 100%;
    max-width: none;
    padding: 0;
}

body.ix-ready .galleria-view {
    margin: 0;
}

body.ix-ready #galleria.ix-adapted-view::before {
    display: none;
}

/* ==========================
   TERMINAL NAVIGATION
   ========================== */

.ix-terminal {
    position: fixed;
    z-index: 8200;
    left: clamp(10px, 2vw, 28px);
    right: clamp(92px, 9vw, 138px);
    bottom: clamp(10px, 2vw, 28px);
    height: min(var(--ix-terminal-height), calc(100vh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));
    height: min(var(--ix-terminal-height), calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));
    max-height: calc(100vh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    max-height: calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(238, 238, 234, 0.34);
    background: rgba(23, 23, 23, 0.72);
    color: var(--ix-paper);
    box-shadow: 12px 12px 0 rgba(0, 0, 0, 0.28);
    transition: height 420ms cubic-bezier(0.76, 0, 0.24, 1),
        width 420ms cubic-bezier(0.76, 0, 0.24, 1),
        left 900ms cubic-bezier(0.76, 0, 0.24, 1),
        right 420ms cubic-bezier(0.76, 0, 0.24, 1),
        top 420ms cubic-bezier(0.76, 0, 0.24, 1),
        bottom 420ms cubic-bezier(0.76, 0, 0.24, 1),
        opacity 420ms ease,
        transform 900ms cubic-bezier(0.76, 0, 0.24, 1),
        background-color 620ms linear,
        backdrop-filter 620ms ease;
}

.ix-terminal-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 42px;
    border-bottom: 1px solid var(--ix-border-light);
    transition: height 900ms cubic-bezier(0.76, 0, 0.24, 1), opacity 360ms ease, border-color 360ms ease;
}

.ix-terminal-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 0 14px;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    white-space: nowrap;
}

.ix-terminal-version {
    color: var(--ix-muted);
    font-weight: 300;
}

.ix-terminal-actions {
    display: flex;
    align-self: stretch;
}

.ix-terminal-actions button,
.ix-terminal-collapsed-copy button {
    border: 0;
    border-left: 1px solid var(--ix-border-light);
    background: transparent;
    color: var(--ix-paper);
    padding: 0 12px;
    font-size: 0.64rem;
    letter-spacing: 0.06em;
    cursor: pointer;
}

.ix-terminal-actions button:hover,
.ix-terminal-collapsed-copy button:hover {
    background: var(--ix-paper);
    color: var(--ix-ink);
}

.ix-terminal-actions [data-ix-action="layout"] {
    color: var(--ix-blue);
}

.ix-terminal-actions [data-ix-action="layout"][data-mode="rail"] {
    color: var(--ix-paper);
    box-shadow: inset 0 -2px 0 var(--ix-blue);
}

.ix-terminal-actions [data-ix-action="layout"][data-mode="ghost"] {
    color: var(--ix-pink);
    box-shadow: inset 0 -2px 0 var(--ix-pink);
}

.ix-layout-switcher {
    position: fixed;
    z-index: 8300;
    top: 12px;
    right: 18px;
    width: 116px;
    height: 34px;
    border: 1px solid rgba(238, 238, 234, 0.3);
    border-radius: 0;
    background: rgba(23, 23, 23, 0.58);
    color: var(--ix-blue);
    font: 300 0.6rem/1 var(--ix-mono);
    letter-spacing: 0.06em;
    cursor: pointer;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    transition: opacity 260ms ease, visibility 0s linear 0s, color 260ms ease,
        border-color 260ms ease, background-color 260ms ease;
}

.ix-layout-switcher[data-mode="rail"] {
    color: var(--ix-paper);
    border-bottom-color: var(--ix-blue);
}

.ix-layout-switcher[data-mode="ghost"] {
    color: var(--ix-pink);
    border-bottom-color: var(--ix-pink);
}

.ix-terminal-actions [data-ix-action="layout"],
.ix-layout-switcher {
    --ix-layout-text-base: var(--ix-blue);
    --ix-layout-text-flash: var(--ix-paper);
    animation: ix-layout-text-blink 3.4s steps(1, end) infinite;
}

.ix-terminal-actions [data-ix-action="layout"][data-mode="rail"],
.ix-layout-switcher[data-mode="rail"] {
    --ix-layout-text-base: var(--ix-paper);
    --ix-layout-text-flash: var(--ix-blue);
}

.ix-terminal-actions [data-ix-action="layout"][data-mode="ghost"],
.ix-layout-switcher[data-mode="ghost"] {
    --ix-layout-text-base: var(--ix-pink);
    --ix-layout-text-flash: var(--ix-paper);
}

@keyframes ix-layout-text-blink {
    0%, 54%, 66%, 78%, 100% {
        color: var(--ix-layout-text-base);
    }
    60%, 72% {
        color: var(--ix-layout-text-flash);
    }
}

.ix-layout-switcher:hover {
    background: var(--ix-paper);
    color: var(--ix-ink);
}

.ix-terminal-actions [data-ix-action="layout"]:hover,
.ix-layout-switcher:hover {
    animation: none;
    color: var(--ix-ink);
}

body.ix-ready:not([data-ix-view="manifesto"]) .ix-layout-switcher {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.ix-terminal-body {
    display: grid;
    grid-template-columns: minmax(260px, 0.72fr) minmax(360px, 1.28fr);
    min-width: 0;
    height: calc(100% - 42px);
}

.ix-terminal-index,
.ix-terminal-console {
    min-width: 0;
    min-height: 0;
}

.ix-terminal-index {
    display: flex;
    flex-direction: column;
    border-right: 1px solid var(--ix-border-light);
}

.ix-terminal-kicker {
    padding: 11px 13px;
    border-bottom: 1px solid var(--ix-border-light);
    color: var(--ix-muted);
    font-size: 0.62rem;
    letter-spacing: 0.06em;
}

.ix-terminal-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    row-gap: 0;
    width: auto;
    justify-content: stretch;
    min-height: 0;
    overflow: auto;
}

.ix-terminal-tab.nav-btn {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    align-items: center;
    gap: 7px;
    width: 100%;
    min-width: 0;
    min-height: 50px;
    padding: 10px 12px;
    border: 0;
    border-right: 1px solid rgba(238, 238, 234, 0.1);
    border-bottom: 1px solid rgba(238, 238, 234, 0.1);
    background: transparent;
    color: var(--ix-muted);
    font: 300 0.7rem/1.28 var(--ix-mono);
    letter-spacing: 0.035em;
    text-align: left;
    text-transform: uppercase;
    white-space: normal;
    overflow: hidden;
}

.ix-terminal-tab.nav-btn::after {
    display: none;
}

.ix-terminal-tab .ix-tab-number {
    color: rgba(238, 238, 234, 0.42);
    font-size: 0.6rem;
}

.ix-terminal-tab.nav-btn:hover {
    background: var(--ix-charcoal-light);
    color: var(--ix-paper);
}

.ix-terminal-tab.nav-btn.is-active,
.ix-terminal-tab.nav-btn.active {
    background: var(--ix-paper);
    color: var(--ix-ink);
}

.ix-terminal-tab.nav-btn.is-active .ix-tab-number,
.ix-terminal-tab.nav-btn.active .ix-tab-number {
    color: rgba(23, 23, 23, 0.56);
}

.ix-terminal-tab.nav-btn.breathing,
.ix-terminal-tab.nav-btn.breathing.active,
.ix-terminal-tab .k28os-char,
.ix-terminal-tab .k28os-cursor,
.ix-terminal-tab .atelier-mark {
    animation: none;
}

.ix-terminal-tab .k28os-nav-label,
.ix-terminal-tab .atelier-nav-label {
    display: inline;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
}

.ix-terminal .ix-terminal-tab.nav-btn.cinema-nav-btn .cinema-nav-label,
.ix-terminal .ix-terminal-tab.nav-btn.atelier-nav-btn .atelier-nav-label,
.ix-terminal .ix-terminal-tab.nav-btn.atelier-nav-btn .atelier-word,
.ix-terminal .ix-terminal-tab.nav-btn.k28os-nav-btn .k28os-nav-label,
.ix-terminal .ix-terminal-tab.nav-btn.metaspace-nav-btn .metaspace-nav-label,
.ix-terminal .ix-terminal-tab.nav-btn #proto-xlab-text,
.ix-terminal .ix-terminal-tab.nav-btn .proto-xlab-highlight {
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
    text-shadow: none !important;
    letter-spacing: inherit !important;
    animation: none !important;
}

.ix-terminal .ix-terminal-tab.nav-btn .metaspace-dot,
.ix-terminal .ix-terminal-tab.nav-btn .k28os-dot,
.ix-terminal .ix-terminal-tab.nav-btn .atelier-mark {
    color: inherit !important;
    animation: none !important;
}

.ix-terminal .ix-terminal-tab.nav-btn.k28os-nav-btn .k28os-char,
.ix-terminal .ix-terminal-tab.nav-btn.k28os-nav-btn .k28os-cursor {
    color: inherit !important;
    opacity: 1 !important;
    transform: none !important;
    text-shadow: none !important;
    animation: none !important;
}

.ix-terminal-console {
    display: grid;
    grid-template-rows: 34px minmax(0, 1fr) 46px;
}

.ix-console-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 13px;
    border-bottom: 1px solid var(--ix-border-light);
    color: rgba(238, 238, 234, 0.78);
    font-size: 0.62rem;
    letter-spacing: 0.06em;
}

.ix-console-heading strong {
    color: var(--ix-paper);
    font-weight: 400;
}

.ix-terminal-transcript {
    min-width: 0;
    min-height: 0;
    overflow: auto;
    padding: 12px 14px;
    scrollbar-color: rgba(238, 238, 234, 0.24) transparent;
}

.ix-terminal-entry {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 5px;
    margin-bottom: 7px;
}

.ix-terminal-entry.is-output,
.ix-terminal-entry.is-system,
.ix-terminal-entry.is-error {
    grid-template-columns: 1fr;
}

.ix-terminal-entry p {
    margin: 0;
    color: rgba(255, 255, 255, 0.94);
    font: 400 0.72rem/1.5 var(--ix-mono);
    white-space: pre-wrap;
}

.ix-terminal-entry.is-system p {
    color: rgba(126, 205, 244, 0.98);
}

.ix-terminal-entry.is-error p {
    color: rgba(243, 171, 250, 0.98);
}

.ix-terminal-form {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr) auto;
    align-items: center;
    gap: 7px;
    padding: 0 12px;
    border-top: 1px solid var(--ix-border-light);
}

.ix-prompt {
    font-size: 0.9rem;
}

.ix-terminal-form input {
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--ix-paper);
    font: 300 0.8rem/1 var(--ix-mono);
}

.ix-terminal-form input::placeholder {
    color: rgba(238, 238, 234, 0.72);
}

.ix-terminal-form button {
    align-self: stretch;
    border: 0;
    border-left: 1px solid var(--ix-border-light);
    background: transparent;
    color: var(--ix-paper);
    padding: 0 13px;
    font-size: 0.64rem;
    cursor: pointer;
}

.ix-terminal-form button:hover {
    background: var(--ix-blue);
    color: var(--ix-ink);
}

.ix-terminal-collapsed-copy {
    display: none;
    overflow: hidden;
    overflow: clip;
    contain: paint;
}

.ix-terminal-collapsed-copy::before {
    content: '';
    position: absolute;
    z-index: 0;
    inset: -46% -16%;
    pointer-events: none;
    background: radial-gradient(
        ellipse at center,
        color-mix(in srgb, var(--ix-active-route-color, var(--ix-pink)) 82%, transparent) 0%,
        color-mix(in srgb, var(--ix-active-route-color, var(--ix-pink)) 42%, transparent) 38%,
        transparent 72%
    );
    opacity: 0.04;
    transform: translate3d(-5%, 0, 0) scaleX(0.78) scaleY(0.72);
    transform-origin: center;
    filter: saturate(1.12);
    animation: ix-compact-navigator-color 6.4s cubic-bezier(0.45, 0, 0.2, 1) infinite;
    will-change: opacity, transform;
}

.ix-terminal-collapsed-copy > * {
    position: relative;
    z-index: 1;
}

.ix-terminal.is-discovery-ping .ix-terminal-collapsed-copy::before,
.ix-terminal.is-compact-open .ix-terminal-collapsed-copy::before {
    animation: none;
    opacity: 0.14;
    transform: translate3d(0, 0, 0) scale(1);
}

.ix-compact-routes {
    display: none;
    box-sizing: border-box;
    gap: 0;
    overflow: hidden;
}

.ix-terminal.is-collapsed {
    left: auto;
    right: clamp(92px, 9vw, 138px);
    width: min(var(--ix-compact-width, 228px), calc(100vw - 108px));
    height: var(--ix-compact-height);
    max-height: var(--ix-compact-height);
    border-color: rgba(23, 23, 23, 0.72);
    background: var(--ix-muted);
    color: var(--ix-navigator-text);
    cursor: pointer;
}

.ix-terminal.is-collapsed::before {
    content: '';
    position: absolute;
    z-index: 0;
    inset: -80% -18%;
    pointer-events: none;
    opacity: 0;
    background: radial-gradient(circle at 66% 50%, color-mix(in srgb, var(--ix-active-route-color, var(--ix-pink)) 72%, transparent) 0 4%, transparent 52%);
    transform: scale(0.2);
}

.ix-terminal.is-collapsed.is-discovery-ping {
    animation: ix-compact-discovery-ping 3.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.ix-terminal.is-collapsed.is-discovery-ping::before {
    animation: ix-compact-discovery-halo 3.2s ease-out;
}

.ix-terminal.is-collapsed .ix-terminal-bar,
.ix-terminal.is-collapsed .ix-terminal-body {
    display: none;
}

.ix-terminal.is-collapsed .ix-terminal-collapsed-copy {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 14px minmax(78px, 1fr) 66px auto;
    align-items: center;
    height: var(--ix-compact-height);
    padding-left: 9px;
    color: var(--ix-navigator-text);
    font-size: 0.56rem;
    letter-spacing: 0.05em;
    isolation: isolate;
}

.ix-terminal.is-collapsed .ix-terminal-collapsed-copy button {
    align-self: stretch;
    height: var(--ix-compact-height);
    padding: 0 8px;
    color: var(--ix-navigator-text);
    border-left-color: rgba(23, 23, 23, 0.35);
    font-size: 0.54rem;
}

.ix-terminal.is-collapsed .ix-terminal-collapsed-copy button:hover {
    background: rgba(238, 238, 234, 0.34);
    color: var(--ix-navigator-text);
}

.ix-compact-discover {
    position: relative;
    min-width: 66px;
    overflow: hidden;
}

.ix-compact-discover-label,
.ix-compact-discover-prompt {
    display: block;
    white-space: nowrap;
    transition: opacity 220ms ease, transform 420ms cubic-bezier(0.16, 1, 0.3, 1);
}

.ix-compact-discover-prompt {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    opacity: 0;
    transform: translateY(120%) skewY(6deg);
    font-size: 0.46rem;
    letter-spacing: 0.025em;
}

.ix-compact-discover > i {
    position: absolute;
    top: 7px;
    right: 7px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--ix-active-route-color, var(--ix-pink));
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--ix-active-route-color, var(--ix-pink)) 72%, transparent);
}

.ix-terminal.is-discovery-ping .ix-compact-discover-label {
    opacity: 0;
    transform: translateY(-120%) skewY(-6deg);
}

.ix-terminal.is-discovery-ping .ix-compact-discover-prompt {
    opacity: 1;
    transform: translateY(0) skewY(0);
}

.ix-terminal.is-discovery-ping .ix-compact-discover > i {
    animation: ix-compact-discovery-dot 900ms ease-out 3;
}

.ix-compact-route-copy {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: baseline;
    gap: 5px;
    min-width: 0;
    white-space: nowrap;
}

.ix-compact-route-copy small {
    color: var(--ix-navigator-text);
    font-size: 0.5rem;
}

.ix-compact-route-copy strong {
    overflow: visible;
    color: var(--ix-navigator-text);
    font-size: 0.56rem;
    font-weight: 500;
    text-overflow: clip;
}

.ix-terminal.is-collapsed .ix-compact-routes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(5, minmax(0, 1fr));
    height: var(--ix-compact-tray-height);
    border-top: 1px solid rgba(59, 59, 57, 0.18);
    background: rgba(238, 238, 234, 0.92);
    opacity: 0;
    transform: translateY(-12px) scaleY(0.92);
    transform-origin: top;
    visibility: hidden;
    pointer-events: none;
    cursor: default;
    transition: opacity 240ms ease, transform 360ms cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 360ms;
}

.ix-terminal.is-collapsed.is-compact-open {
    width: min(var(--ix-compact-open-width), calc(100vw - 24px));
    height: var(--ix-compact-open-height);
    max-height: min(var(--ix-compact-open-height), calc(100dvh - 24px));
}

.ix-terminal.is-collapsed.is-compact-open .ix-compact-routes {
    opacity: 1;
    transform: translateY(0) scaleY(1);
    visibility: visible;
    pointer-events: auto;
    transition-delay: 80ms, 0ms, 0ms;
}

.ix-compact-routes button {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr) 7px;
    align-items: center;
    gap: 5px;
    min-width: 0;
    min-height: 0;
    padding: 5px 7px;
    border: 0;
    border-right: 1px solid rgba(59, 59, 57, 0.14);
    border-bottom: 1px solid rgba(59, 59, 57, 0.14);
    background: transparent;
    color: var(--ix-navigator-text);
    font: 400 0.58rem/1.2 var(--ix-mono);
    text-align: left;
    cursor: pointer;
}

.ix-compact-routes button[data-ix-route="atelier"] strong {
    font-style: italic;
}

.ix-compact-routes button span {
    color: var(--ix-navigator-text);
    font-size: 0.5rem;
}

.ix-compact-routes button strong {
    justify-self: start;
    overflow: visible;
    margin: -2px -4px;
    padding: 2px 4px;
    background: transparent;
    color: var(--ix-navigator-text);
    font-size: inherit;
    font-weight: 400;
    text-overflow: clip;
    white-space: nowrap;
    transition: background-color 180ms ease, color 180ms ease, box-shadow 240ms ease;
}

.ix-route-signal {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--ix-route-color, var(--ix-paper));
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--ix-route-color, var(--ix-paper)) 68%, transparent);
}

.ix-compact-routes button:hover,
.ix-compact-routes button:focus-visible {
    background: color-mix(in srgb, var(--ix-route-color, var(--ix-paper)) 18%, var(--ix-paper));
    color: var(--ix-navigator-text);
}

.ix-compact-routes button.is-active {
    background: color-mix(in srgb, var(--ix-route-color, var(--ix-paper)) 8%, var(--ix-paper));
    color: var(--ix-navigator-text);
}

.ix-compact-routes button:hover span,
.ix-compact-routes button:focus-visible span,
.ix-compact-routes button.is-active span {
    color: var(--ix-navigator-text);
}

.ix-compact-routes button:hover strong,
.ix-compact-routes button:focus-visible strong {
    background: var(--ix-route-color, var(--ix-paper));
    color: var(--ix-ink);
    box-shadow: 0 0 14px color-mix(in srgb, var(--ix-route-color, var(--ix-paper)) 42%, transparent);
}

@keyframes ix-compact-navigator-color {
    0%, 100% {
        opacity: 0.04;
        transform: translate3d(-5%, 0, 0) scaleX(0.78) scaleY(0.72);
    }
    22% {
        opacity: 0.72;
        transform: translate3d(-1%, 0, 0) scaleX(1.02) scaleY(1.06);
    }
    38% {
        opacity: 0.18;
        transform: translate3d(2%, 0, 0) scaleX(0.91) scaleY(0.9);
    }
    63% {
        opacity: 0.54;
        transform: translate3d(5%, 0, 0) scaleX(1.08) scaleY(1.12);
    }
    82% {
        opacity: 0.12;
        transform: translate3d(1%, 0, 0) scaleX(0.88) scaleY(0.82);
    }
}

@keyframes ix-compact-discovery-ping {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
    5% { transform: translate3d(-4px, 0, 0) scaleX(0.96) scaleY(1.05); }
    9% { transform: translate3d(4px, 0, 0) scaleX(1.04) scaleY(0.96); }
    13% { transform: translate3d(-2px, 0, 0) scaleX(0.985) scaleY(1.02); }
    18%, 48% { transform: translate3d(0, 0, 0) scale(1); }
    54% { transform: translate3d(0, -2px, 0) scaleX(1.035) scaleY(0.95); }
    61% { transform: translate3d(0, 1px, 0) scaleX(0.98) scaleY(1.04); }
    70% { transform: translate3d(0, 0, 0) scale(1.01); }
}

@keyframes ix-compact-discovery-halo {
    0%, 100% { opacity: 0; transform: scale(0.2); }
    12% { opacity: 0.7; transform: scale(0.7); }
    34% { opacity: 0; transform: scale(1.5); }
    52% { opacity: 0; transform: scale(0.35); }
    66% { opacity: 0.54; transform: scale(0.84); }
    88% { opacity: 0; transform: scale(1.62); }
}

@keyframes ix-compact-discovery-dot {
    0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--ix-active-route-color, var(--ix-pink)) 72%, transparent); transform: scale(0.7); }
    55% { box-shadow: 0 0 0 9px transparent; transform: scale(1.6); }
    100% { box-shadow: 0 0 0 14px transparent; transform: scale(0.7); }
}

/* Ghost navigation stays borderless and unfilled. Each route breathes in its
   own signal color so the compact tray remains legible without becoming a
   second block-based interface. */
body.ix-ready[data-ix-layout="ghost"] .ix-terminal.is-collapsed {
    border: 0;
    background: rgba(238, 238, 234, 0.8);
    color: var(--ix-navigator-text);
    box-shadow: none;
    backdrop-filter: blur(14px) saturate(1.12);
    -webkit-backdrop-filter: blur(14px) saturate(1.12);
}

body.ix-ready[data-ix-layout="ghost"] .ix-terminal.is-collapsed.is-discovery-ping {
    animation: ix-compact-discovery-ping 3.2s cubic-bezier(0.16, 1, 0.3, 1);
}

body.ix-ready[data-ix-layout="ghost"] .ix-terminal.is-collapsed .ix-terminal-collapsed-copy button {
    border: 0;
}

body.ix-ready[data-ix-layout="ghost"] .ix-terminal.is-collapsed .ix-compact-routes {
    border: 0;
    background: rgba(238, 238, 234, 0.78);
    box-shadow: none;
    backdrop-filter: blur(18px) saturate(1.12);
    -webkit-backdrop-filter: blur(18px) saturate(1.12);
}

body.ix-ready[data-ix-layout="ghost"] .ix-compact-routes button {
    border: 0;
    background: transparent;
    color: var(--ix-navigator-text);
    animation: ix-ghost-route-breathe 4.8s ease-in-out infinite;
    animation-delay: calc(var(--ix-route-order) * -240ms);
}

body.ix-ready[data-ix-layout="ghost"] .ix-compact-routes button:hover,
body.ix-ready[data-ix-layout="ghost"] .ix-compact-routes button:focus-visible {
    background: color-mix(in srgb, var(--ix-route-color, var(--ix-paper)) 18%, rgba(238, 238, 234, 0.4));
    animation: none;
    opacity: 1;
    filter: brightness(1.08);
    text-shadow: 0 0 15px color-mix(in srgb, var(--ix-route-color, var(--ix-paper)) 68%, transparent);
}

body.ix-ready[data-ix-layout="ghost"] .ix-compact-routes button.is-active {
    background: transparent;
}

body.ix-ready[data-ix-layout="ghost"] .ix-compact-routes button:focus-visible {
    outline: 0;
}

body.ix-ready[data-ix-layout="ghost"] .ix-compact-routes button:focus-visible strong {
    text-decoration: underline;
    text-decoration-color: var(--ix-route-color, var(--ix-paper));
    text-decoration-thickness: 1px;
    text-underline-offset: 5px;
}

body.ix-ready[data-ix-layout="ghost"] .ix-compact-routes button span {
    color: var(--ix-navigator-text);
}

body.ix-ready[data-ix-layout="ghost"] .ix-route-signal {
    animation: ix-ghost-route-signal 2.4s ease-out infinite;
    animation-delay: calc(var(--ix-route-order) * -180ms);
}

@keyframes ix-ghost-route-breathe {
    0%, 100% { opacity: 0.8; filter: brightness(0.92); text-shadow: 0 0 0 transparent; }
    46% { opacity: 1; filter: brightness(1.24); text-shadow: 0 0 14px color-mix(in srgb, var(--ix-route-color, var(--ix-paper)) 62%, transparent); }
    62% { opacity: 0.76; filter: brightness(1.04); text-shadow: 0 0 5px color-mix(in srgb, var(--ix-route-color, var(--ix-paper)) 34%, transparent); }
}

@keyframes ix-ghost-route-signal {
    0%, 100% { opacity: 0.38; transform: scale(0.65); box-shadow: 0 0 0 0 color-mix(in srgb, var(--ix-route-color, var(--ix-paper)) 50%, transparent); }
    48% { opacity: 1; transform: scale(1.22); box-shadow: 0 0 0 6px transparent; }
}

.ix-color-star {
    display: inline-block;
    color: var(--ix-pink);
    animation: ix-star-color 4.8s steps(1, end) infinite;
}

@keyframes ix-star-color {
    0%, 100% { color: var(--ix-pink); }
    34% { color: var(--ix-blue); }
    67% { color: var(--ix-white); }
}

/* ==========================
   KARATE MARKS
   ========================== */

.ix-karate-lab {
    position: fixed;
    z-index: 4;
    right: clamp(12px, 2.5vw, 40px);
    bottom: calc(var(--ix-terminal-height) + 50px);
    display: grid;
    grid-template-columns: 42px 24px 42px;
    align-items: center;
    justify-items: center;
    width: 122px;
    height: 74px;
    border: 1px solid var(--ix-border-light);
    background: rgba(36, 36, 36, 0.82);
    color: var(--ix-paper);
    pointer-events: none;
    transition: left 900ms cubic-bezier(0.76, 0, 0.24, 1), right 900ms cubic-bezier(0.76, 0, 0.24, 1),
        top 900ms cubic-bezier(0.76, 0, 0.24, 1), bottom 900ms cubic-bezier(0.76, 0, 0.24, 1),
        width 900ms cubic-bezier(0.76, 0, 0.24, 1), height 900ms cubic-bezier(0.76, 0, 0.24, 1),
        opacity 320ms ease, background-color 620ms ease;
}

.ix-karate-label {
    position: absolute;
    top: 5px;
    left: 7px;
    color: var(--ix-muted);
    font-size: 0.48rem;
    letter-spacing: 0.05em;
}

.ix-fighter {
    display: block;
    margin-top: 12px;
    font: 300 2.1rem/1 var(--ix-mono);
    transform-origin: center;
}

.ix-fighter-left {
    color: var(--ix-pink);
    animation: ix-left-feint 2.1s ease-in-out infinite;
}

.ix-fighter-right {
    color: var(--ix-blue);
    animation: ix-right-feint 2.1s ease-in-out infinite;
}

.ix-duel-impact {
    width: 4px;
    height: 4px;
    margin-top: 12px;
    border-radius: 50%;
    background: var(--ix-white);
    opacity: 0.3;
    animation: ix-impact-idle 2.1s ease-in-out infinite;
}

body.ix-karate-burst .ix-fighter-left {
    animation: ix-left-combo 1.45s cubic-bezier(0.65, 0, 0.35, 1);
}

body.ix-karate-burst .ix-fighter-right {
    animation: ix-right-combo 1.45s cubic-bezier(0.65, 0, 0.35, 1);
}

body.ix-karate-burst .ix-duel-impact {
    animation: ix-impact-burst 1.45s ease-out;
}

body.ix-terminal-collapsed .ix-karate-lab {
    bottom: 72px;
}

@keyframes ix-left-feint {
    0%, 100% { transform: translateX(-3px) rotate(-8deg); }
    45% { transform: translateX(7px) rotate(18deg) scale(1.08); }
    62% { transform: translateX(2px) rotate(-18deg); }
}

@keyframes ix-right-feint {
    0%, 100% { transform: translateX(3px) rotate(8deg); }
    45% { transform: translateX(-7px) rotate(-18deg) scale(1.08); }
    62% { transform: translateX(-2px) rotate(18deg); }
}

@keyframes ix-impact-idle {
    0%, 100% { opacity: 0.1; transform: scale(0.5); }
    46% { opacity: 0.9; transform: scale(1.5); }
    62% { opacity: 0.18; transform: scale(0.7); }
}

@keyframes ix-left-combo {
    0%, 100% { transform: translateX(-4px) rotate(-10deg); }
    18% { transform: translateX(18px) translateY(-8px) rotate(68deg) scale(1.2); }
    38% { transform: translateX(8px) translateY(7px) rotate(-42deg); }
    58% { transform: translateX(22px) rotate(92deg) scale(1.25); }
    78% { transform: translateX(2px) translateY(-4px) rotate(-20deg); }
}

@keyframes ix-right-combo {
    0%, 100% { transform: translateX(4px) rotate(10deg); }
    18% { transform: translateX(-18px) translateY(8px) rotate(-68deg) scale(1.2); }
    38% { transform: translateX(-8px) translateY(-7px) rotate(42deg); }
    58% { transform: translateX(-22px) rotate(-92deg) scale(1.25); }
    78% { transform: translateX(-2px) translateY(4px) rotate(20deg); }
}

@keyframes ix-impact-burst {
    0%, 12%, 100% { opacity: 0; transform: scale(0.4); box-shadow: 0 0 0 transparent; }
    22%, 62% { opacity: 1; transform: scale(2.4); box-shadow: 0 0 18px var(--ix-white); }
    40%, 80% { opacity: 0.25; transform: scale(0.8); }
}

/* ==========================
   MOMENTUM / WEBLLM
   ========================== */

.momentum-launcher {
    position: fixed;
    z-index: 8250;
    right: clamp(10px, 2vw, 28px);
    bottom: clamp(10px, 2vw, 28px);
    display: grid;
    grid-template-columns: 22px 1fr;
    grid-template-rows: 1fr 1fr;
    width: clamp(76px, 7vw, 104px);
    height: 64px;
    padding: 8px;
    border: 1px solid var(--ix-ink);
    border-radius: 0;
    background: var(--ix-paper);
    color: var(--ix-ink);
    cursor: pointer;
    text-align: left;
    transition: opacity 260ms ease, transform 900ms cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 0s,
        left 900ms cubic-bezier(0.76, 0, 0.24, 1), right 900ms cubic-bezier(0.76, 0, 0.24, 1),
        top 900ms cubic-bezier(0.76, 0, 0.24, 1), bottom 900ms cubic-bezier(0.76, 0, 0.24, 1),
        width 900ms cubic-bezier(0.76, 0, 0.24, 1), height 900ms cubic-bezier(0.76, 0, 0.24, 1),
        background-color 620ms ease;
}

.momentum-launcher:hover {
    background: var(--ix-pink);
}

.momentum-launcher:disabled {
    cursor: wait;
}

.momentum-launcher-star {
    grid-row: 1 / 3;
    align-self: center;
    font-size: 1.6rem;
}

.momentum-launcher-label {
    align-self: end;
    font-size: 0.72rem;
    letter-spacing: 0.04em;
}

.momentum-launcher-state {
    color: rgba(23, 23, 23, 0.58);
    font-size: 0.6rem;
}

.momentum-layer {
    position: fixed;
    z-index: 8800;
    inset: 0;
    display: grid;
    place-items: end;
    padding: clamp(10px, 2vw, 28px);
    pointer-events: none;
    background: rgba(23, 23, 23, 0.16);
}

.momentum-layer.is-hidden {
    display: none;
}

.momentum-panel {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    width: min(620px, calc(100vw - 20px));
    height: min(760px, calc(100vh - 20px));
    height: min(760px, calc(100dvh - 20px));
    min-height: 0;
    border: 1px solid var(--ix-ink);
    background: var(--ix-paper);
    color: var(--ix-ink);
    pointer-events: auto;
    box-shadow: 0 30px 100px rgba(0, 0, 0, 0.44);
}

.momentum-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    border-bottom: 1px solid var(--ix-ink);
}

.momentum-heading {
    min-width: 0;
    padding: 16px 18px;
}

.momentum-kicker {
    margin: 0 0 5px;
    color: rgba(23, 23, 23, 0.62);
    font-size: 0.68rem;
    letter-spacing: 0.08em;
}

.momentum-title {
    margin: 0;
    font: 500 clamp(1.5rem, 4vw, 2.4rem)/1 var(--ix-mono);
    letter-spacing: -0.05em;
}

.momentum-close {
    width: 58px;
    border: 0;
    border-left: 1px solid var(--ix-ink);
    background: transparent;
    color: var(--ix-ink);
    font-size: 1.2rem;
    cursor: pointer;
}

.momentum-close:hover {
    background: var(--ix-ink);
    color: var(--ix-paper);
}

.momentum-body {
    min-height: 0;
    overflow: auto;
}

.momentum-onboarding,
.momentum-loading,
.momentum-compatibility,
.momentum-error {
    padding: clamp(24px, 5vw, 52px);
}

.momentum-onboarding h3,
.momentum-compatibility h3,
.momentum-error h3 {
    max-width: 16ch;
    margin: 0 0 18px;
    font: 500 clamp(1.65rem, 5vw, 3.3rem)/0.98 var(--ix-mono);
    letter-spacing: -0.06em;
}

.momentum-onboarding p,
.momentum-compatibility p,
.momentum-error p {
    max-width: 54ch;
    font-size: 0.88rem;
    line-height: 1.65;
}

.momentum-privacy-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin: 28px 0;
    background: var(--ix-ink);
    border: 1px solid var(--ix-ink);
}

.momentum-privacy-grid span {
    min-height: 82px;
    padding: 12px;
    background: var(--ix-white);
    font-size: 0.72rem;
    line-height: 1.45;
}

.momentum-privacy-grid span:nth-child(2) {
    background: var(--ix-blue);
}

.momentum-privacy-grid span:nth-child(3) {
    background: var(--ix-pink);
}

.momentum-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1px;
    margin-top: 22px;
    background: var(--ix-ink);
    border: 1px solid var(--ix-ink);
}

.momentum-actions button,
.momentum-primary,
.momentum-secondary {
    min-height: 44px;
    border: 0;
    border-radius: 0;
    background: var(--ix-ink);
    color: var(--ix-paper);
    padding: 10px 14px;
    font-size: 0.74rem;
    letter-spacing: 0.05em;
    cursor: pointer;
}

.momentum-actions button:hover,
.momentum-primary:hover,
.momentum-secondary:hover {
    background: var(--ix-blue);
    color: var(--ix-ink);
}

.momentum-art-path-preview {
    position: relative;
    display: grid;
    grid-template-columns: minmax(112px, 0.42fr) minmax(0, 1fr);
    gap: 5px 18px;
    width: 100%;
    min-height: 104px;
    margin: 22px 0 0;
    padding: 17px 18px;
    overflow: hidden;
    border: 1px solid rgba(238, 238, 234, 0.18);
    border-radius: 0;
    background:
        linear-gradient(108deg, rgba(231, 129, 242, 0.16), transparent 48%),
        rgba(238, 238, 234, 0.055);
    color: rgba(255, 255, 255, 0.94);
    text-align: left;
    cursor: pointer;
    isolation: isolate;
}

.momentum-art-path-preview::before,
.momentum-path-tools button::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(100deg, transparent 0 30%, rgba(86, 175, 221, 0.32) 48%, rgba(231, 129, 242, 0.24) 58%, transparent 76%);
    transform: translateX(-110%);
    animation: momentum-art-launch-pulse 4.8s cubic-bezier(0.76, 0, 0.24, 1) infinite;
    pointer-events: none;
}

.momentum-art-path-preview > span {
    grid-row: 1 / span 2;
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-right: 1px solid rgba(238, 238, 234, 0.15);
    padding-right: 18px;
    color: var(--ix-pink);
    font: 500 0.9rem/1 var(--ix-mono);
    letter-spacing: 0.06em;
}

.momentum-art-path-preview > span i {
    color: var(--ix-blue);
    font-size: 1.5rem;
    font-style: normal;
}

.momentum-art-path-preview strong {
    align-self: end;
    font: 500 0.72rem/1.3 var(--ix-mono);
    letter-spacing: 0.04em;
}

.momentum-art-path-preview small {
    color: rgba(238, 238, 234, 0.62);
    font-size: 0.64rem;
    line-height: 1.4;
}

.momentum-art-path-preview:hover,
.momentum-art-path-preview:focus-visible {
    border-color: rgba(231, 129, 242, 0.64);
    background:
        linear-gradient(108deg, rgba(231, 129, 242, 0.24), rgba(86, 175, 221, 0.1)),
        rgba(238, 238, 234, 0.07);
    outline: 0;
}

.momentum-secondary {
    background: var(--ix-white);
    color: var(--ix-ink);
}

.momentum-progress {
    height: 6px;
    margin: 22px 0 12px;
    background: rgba(23, 23, 23, 0.18);
}

.momentum-model-meta {
    max-width: 72ch;
    margin: 18px 0 0;
    color: var(--ix-blue);
    font: 600 0.66rem/1.55 var(--ix-mono);
    letter-spacing: 0.075em;
    text-transform: uppercase;
}

.momentum-progress span {
    display: block;
    width: var(--momentum-progress, 0%);
    height: 100%;
    background: var(--ix-blue);
    transition: width 180ms linear;
}

.momentum-messages {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-height: 100%;
    padding: 1px;
    background: var(--ix-ink);
}

.momentum-message {
    position: relative;
    padding: 16px 18px;
    background: var(--ix-white);
    color: var(--ix-ink);
}

.momentum-message.is-user {
    margin-left: 16%;
    background: var(--ix-blue);
}

.momentum-message.is-assistant {
    min-height: 98px;
    padding-left: 104px;
    background: var(--ix-paper);
}

.momentum-message-author {
    display: block;
    margin-bottom: 7px;
    font-size: 0.7rem;
    letter-spacing: 0.08em;
}

.momentum-message-copy {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.62;
    white-space: pre-wrap;
}

.momentum-message.is-assistant::before {
    content: '*';
    position: absolute;
    left: 18px;
    top: 17px;
    display: grid;
    place-items: center;
    width: 66px;
    height: 66px;
    border: 1px solid var(--ix-ink);
    border-radius: 50%;
    background: conic-gradient(
        var(--ix-ink) 0 2deg,
        transparent 2deg 38deg,
        var(--ix-ink) 38deg 40deg,
        transparent 40deg 88deg,
        var(--ix-ink) 88deg 90deg,
        transparent 90deg 142deg,
        var(--ix-ink) 142deg 144deg,
        transparent 144deg 204deg,
        var(--ix-ink) 204deg 206deg,
        transparent 206deg 270deg,
        var(--ix-ink) 270deg 272deg,
        transparent 272deg 326deg,
        var(--ix-ink) 326deg 328deg,
        transparent 328deg 360deg
    );
    color: var(--ix-pink);
    font-size: 1.25rem;
    animation: momentum-output-disc-open 900ms cubic-bezier(0.76, 0, 0.24, 1) both;
}

.momentum-message.is-new-output .momentum-message-copy {
    animation: momentum-output-copy-reveal 720ms 160ms ease both;
}

.momentum-message[data-streaming="true"]::before {
    animation: momentum-output-disc-open 700ms ease both,
        momentum-output-stream 4s 700ms linear infinite;
}

.momentum-compose {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    border-top: 1px solid var(--ix-ink);
    background: var(--ix-white);
}

.momentum-compose textarea {
    min-height: 72px;
    max-height: 180px;
    resize: vertical;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--ix-ink);
    padding: 14px;
    font: 300 0.88rem/1.5 var(--ix-mono);
}

.momentum-compose button {
    width: 88px;
    border: 0;
    border-left: 1px solid var(--ix-ink);
    background: var(--ix-pink);
    color: var(--ix-ink);
    font-size: 0.75rem;
    cursor: pointer;
}

.momentum-compose button:hover {
    background: var(--ix-blue);
}

.momentum-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 9px;
    padding: 9px 13px calc(9px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--ix-ink);
    background: var(--ix-paper);
    color: rgba(23, 23, 23, 0.68);
    font-size: 0.7rem;
}

.momentum-footer button {
    border: 0;
    background: transparent;
    color: var(--ix-ink);
    font-size: 0.7rem;
    text-decoration: underline;
    cursor: pointer;
}

/* Momentum uses one continuous dark-glass material so its full local-chat
   interface belongs to the Ghost workstation instead of reading as paper UI. */
.momentum-launcher {
    overflow: visible;
}

.momentum-launcher-label,
.momentum-launcher-state {
    display: block;
    min-width: 0;
    overflow: visible;
    line-height: 1.25;
    white-space: nowrap;
}

.momentum-launcher-label {
    padding-block: 2px;
    font-weight: 500;
}

.momentum-layer {
    background: rgba(7, 7, 9, 0.28);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.momentum-panel {
    border-color: rgba(238, 238, 234, 0.18);
    background: rgba(13, 13, 15, 0.74);
    color: var(--ix-paper);
    box-shadow: 0 30px 100px rgba(0, 0, 0, 0.48);
    backdrop-filter: blur(22px) saturate(116%);
    -webkit-backdrop-filter: blur(22px) saturate(116%);
}

.momentum-header {
    border-bottom-color: rgba(238, 238, 234, 0.16);
    background: rgba(7, 7, 9, 0.3);
}

.momentum-heading {
    overflow: visible;
}

.momentum-kicker {
    color: rgba(238, 238, 234, 0.68);
}

.momentum-title {
    overflow: visible;
    padding-bottom: 0.08em;
    color: rgba(255, 255, 255, 0.96);
    line-height: 1.14;
}

.momentum-close {
    border-left-color: rgba(238, 238, 234, 0.16);
    background: rgba(7, 7, 9, 0.18);
    color: var(--ix-paper);
}

.momentum-close:hover {
    background: var(--ix-pink);
    color: var(--ix-ink);
}

.momentum-body,
.momentum-onboarding p,
.momentum-compatibility p,
.momentum-error p {
    color: rgba(238, 238, 234, 0.86);
}

.momentum-onboarding h3,
.momentum-compatibility h3,
.momentum-error h3 {
    color: rgba(255, 255, 255, 0.96);
}

.momentum-privacy-grid,
.momentum-actions {
    border-color: rgba(238, 238, 234, 0.12);
    background: rgba(238, 238, 234, 0.08);
}

.momentum-privacy-grid span {
    background: rgba(238, 238, 234, 0.06);
    color: rgba(238, 238, 234, 0.88);
}

.momentum-privacy-grid span:nth-child(2) {
    background: rgba(86, 175, 221, 0.18);
}

.momentum-privacy-grid span:nth-child(3) {
    background: rgba(231, 129, 242, 0.18);
}

.momentum-actions button,
.momentum-primary,
.momentum-secondary {
    background: rgba(238, 238, 234, 0.1);
    color: var(--ix-paper);
}

.momentum-actions button:hover,
.momentum-primary:hover,
.momentum-secondary:hover {
    background: var(--ix-blue);
    color: var(--ix-ink);
}

.momentum-progress {
    background: rgba(238, 238, 234, 0.1);
}

.momentum-messages {
    background: transparent;
}

.momentum-message {
    background: rgba(238, 238, 234, 0.07);
    color: rgba(255, 255, 255, 0.92);
}

.momentum-message.is-user {
    background: rgba(86, 175, 221, 0.22);
}

.momentum-message.is-assistant {
    background: rgba(10, 10, 12, 0.52);
}

.momentum-message-author {
    color: rgba(238, 238, 234, 0.68);
}

.momentum-message.is-assistant::before {
    border-color: rgba(238, 238, 234, 0.24);
    background: conic-gradient(
        rgba(238, 238, 234, 0.62) 0 2deg,
        transparent 2deg 38deg,
        rgba(238, 238, 234, 0.62) 38deg 40deg,
        transparent 40deg 88deg,
        rgba(238, 238, 234, 0.62) 88deg 90deg,
        transparent 90deg 142deg,
        rgba(238, 238, 234, 0.62) 142deg 144deg,
        transparent 144deg 204deg,
        rgba(238, 238, 234, 0.62) 204deg 206deg,
        transparent 206deg 270deg,
        rgba(238, 238, 234, 0.62) 270deg 272deg,
        transparent 272deg 326deg,
        rgba(238, 238, 234, 0.62) 326deg 328deg,
        transparent 328deg 360deg
    );
}

.momentum-compose {
    border-top-color: rgba(238, 238, 234, 0.16);
    background: rgba(7, 7, 9, 0.46);
}

.momentum-compose textarea {
    color: rgba(255, 255, 255, 0.94);
}

.momentum-compose textarea::placeholder {
    color: rgba(238, 238, 234, 0.54);
}

.momentum-compose button {
    border-left-color: rgba(238, 238, 234, 0.16);
    background: rgba(231, 129, 242, 0.82);
}

.momentum-footer {
    border-top-color: rgba(238, 238, 234, 0.16);
    background: rgba(7, 7, 9, 0.56);
    color: rgba(238, 238, 234, 0.68);
}

.momentum-footer button {
    color: rgba(255, 255, 255, 0.9);
}

.momentum-composer-wrap {
    min-width: 0;
    background: rgba(7, 7, 9, 0.62);
}

.momentum-path-tools {
    display: grid;
    grid-template-columns: minmax(132px, 0.38fr) minmax(0, 1fr);
    align-items: stretch;
    min-height: 44px;
    border-top: 1px solid rgba(238, 238, 234, 0.16);
    background: rgba(7, 7, 9, 0.68);
}

.momentum-path-tools > button {
    position: relative;
    min-height: 44px;
    overflow: hidden;
    border: 0;
    border-right: 1px solid rgba(238, 238, 234, 0.16);
    border-radius: 0;
    background: rgba(231, 129, 242, 0.13);
    color: rgba(255, 255, 255, 0.96);
    font: 500 0.68rem/1 var(--ix-mono);
    letter-spacing: 0.07em;
    cursor: pointer;
    isolation: isolate;
}

.momentum-path-tools > button > span {
    color: var(--ix-pink);
    font-size: 1rem;
}

.momentum-path-tools > button:hover,
.momentum-path-tools > button:focus-visible,
.momentum-path-tools > button[aria-expanded="true"] {
    background: rgba(231, 129, 242, 0.28);
    color: #fff;
    outline: 0;
}

.momentum-path-tools > span {
    display: flex;
    align-items: center;
    padding: 8px 12px;
    color: rgba(238, 238, 234, 0.58);
    font-size: 0.58rem;
    line-height: 1.35;
    letter-spacing: 0.06em;
}

.momentum-art-builder[hidden] {
    display: none;
}

.momentum-art-builder {
    max-height: min(390px, 52dvh);
    padding: 16px;
    overflow: auto;
    border-top: 1px solid rgba(238, 238, 234, 0.14);
    background:
        linear-gradient(145deg, rgba(86, 175, 221, 0.09), transparent 42%),
        rgba(10, 10, 12, 0.96);
    color: rgba(255, 255, 255, 0.92);
    box-shadow: inset 0 12px 30px rgba(0, 0, 0, 0.26);
}

.momentum-art-builder form {
    display: grid;
    gap: 13px;
}

.momentum-art-builder-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44px;
    gap: 12px;
}

.momentum-art-builder-head p,
.momentum-art-builder-head h3,
.momentum-art-builder-copy {
    margin: 0;
}

.momentum-art-builder-head p {
    color: var(--ix-blue);
    font-size: 0.58rem;
    letter-spacing: 0.08em;
}

.momentum-art-builder-head h3 {
    margin-top: 5px;
    color: #fff;
    font: 500 1.18rem/1 var(--ix-mono);
    letter-spacing: -0.045em;
}

.momentum-art-builder-head > button {
    min-width: 44px;
    min-height: 44px;
    border: 1px solid rgba(238, 238, 234, 0.18);
    border-radius: 0;
    background: rgba(238, 238, 234, 0.05);
    color: #fff;
    font-size: 1rem;
    cursor: pointer;
}

.momentum-art-builder-copy {
    max-width: 68ch;
    color: rgba(238, 238, 234, 0.68);
    font-size: 0.68rem;
    line-height: 1.5;
}

.momentum-art-builder-groups {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.momentum-art-builder fieldset {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.momentum-art-builder legend {
    grid-column: 1 / -1;
    width: 100%;
    margin-bottom: 5px;
    color: rgba(238, 238, 234, 0.58);
    font-size: 0.55rem;
    letter-spacing: 0.08em;
}

.momentum-art-builder fieldset label {
    position: relative;
    min-width: 0;
}

.momentum-art-builder fieldset input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.momentum-art-builder fieldset span {
    display: grid;
    place-items: center;
    min-height: 40px;
    padding: 6px 4px;
    border: 1px solid rgba(238, 238, 234, 0.13);
    background: rgba(238, 238, 234, 0.04);
    color: rgba(238, 238, 234, 0.7);
    font-size: 0.52rem;
    line-height: 1.1;
    text-align: center;
    cursor: pointer;
}

.momentum-art-builder fieldset input:checked + span {
    border-color: rgba(231, 129, 242, 0.74);
    background: rgba(231, 129, 242, 0.19);
    color: #fff;
}

.momentum-art-builder fieldset input:focus-visible + span,
.momentum-art-builder-head > button:focus-visible,
.momentum-art-builder-submit button:focus-visible {
    outline: 2px solid var(--ix-blue);
    outline-offset: 2px;
}

.momentum-art-builder-camera {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 2px 9px;
    align-items: center;
    min-height: 48px;
    padding: 9px 11px;
    border: 1px solid rgba(238, 238, 234, 0.12);
    background: rgba(238, 238, 234, 0.035);
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.58rem;
    letter-spacing: 0.04em;
    cursor: pointer;
}

.momentum-art-builder-camera input {
    grid-row: 1 / span 2;
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--ix-pink);
}

.momentum-art-builder-camera small {
    color: rgba(238, 238, 234, 0.5);
    font-size: 0.54rem;
    line-height: 1.35;
    letter-spacing: 0;
}

.momentum-art-builder-submit {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
}

.momentum-art-builder-submit > span {
    color: rgba(238, 238, 234, 0.5);
    font-size: 0.53rem;
    line-height: 1.4;
    letter-spacing: 0.05em;
}

.momentum-art-builder-submit button {
    min-height: 44px;
    border: 1px solid rgba(231, 129, 242, 0.62);
    border-radius: 0;
    background: rgba(231, 129, 242, 0.84);
    color: var(--ix-ink);
    padding: 9px 13px;
    font: 500 0.62rem/1.2 var(--ix-mono);
    letter-spacing: 0.04em;
    cursor: pointer;
}

.momentum-art-builder-submit button:hover,
.momentum-art-builder-head > button:hover {
    border-color: var(--ix-blue);
    background: var(--ix-blue);
    color: var(--ix-ink);
}

@keyframes momentum-art-launch-pulse {
    0%, 62% { transform: translateX(-110%); opacity: 0; }
    70% { opacity: 1; }
    100% { transform: translateX(110%); opacity: 0; }
}

/* Momentum Art Path — a deterministic, on-device creative-wellbeing route.
   The cards use fixed K28 catalogue links; no model-generated URL is rendered. */
.momentum-message.is-art-path {
    min-height: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(231, 129, 242, 0.3);
    background:
        linear-gradient(145deg, rgba(86, 175, 221, 0.12), transparent 46%),
        rgba(8, 8, 10, 0.78);
}

.momentum-message.is-art-path::before {
    display: none;
}

.momentum-message.is-art-path .momentum-message-author {
    margin: 0;
    padding: 11px 14px;
    border-bottom: 1px solid rgba(238, 238, 234, 0.13);
    background: rgba(231, 129, 242, 0.12);
    color: rgba(255, 255, 255, 0.88);
}

.momentum-art-path {
    --momentum-path-accent: var(--ix-pink);
    display: grid;
    gap: 18px;
    padding: 18px;
    animation: momentum-art-path-arrive 760ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.momentum-art-path-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: start;
}

.momentum-art-path-kicker,
.momentum-art-card-meta,
.momentum-art-path-profile,
.momentum-art-path-local,
.momentum-art-schedule-time {
    margin: 0;
    color: rgba(238, 238, 234, 0.62);
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.momentum-art-path-profile {
    margin: 10px 0 4px;
    color: var(--ix-blue);
    font-size: 0.59rem;
    line-height: 1.4;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.momentum-art-path-title {
    max-width: 18ch;
    margin: 4px 0 8px;
    font: 500 clamp(1.28rem, 4vw, 2rem)/1 var(--ix-mono);
    letter-spacing: -0.05em;
    color: rgba(255, 255, 255, 0.98);
}

.momentum-art-path-intro {
    max-width: 58ch;
    margin: 0;
    color: rgba(238, 238, 234, 0.82);
    font-size: 0.76rem;
    line-height: 1.58;
}

.momentum-art-path-duration {
    display: grid;
    place-items: center;
    min-width: 70px;
    min-height: 70px;
    padding: 8px;
    border: 1px solid rgba(238, 238, 234, 0.2);
    border-radius: 50%;
    color: var(--momentum-path-accent);
    font: 500 0.8rem/1.15 var(--ix-mono);
    text-align: center;
    animation: momentum-art-orbit 12s linear infinite;
}

.momentum-art-timer {
    display: grid;
    gap: 10px;
    padding: 13px;
    border: 1px solid rgba(238, 238, 234, 0.14);
    background: rgba(238, 238, 234, 0.035);
}

.momentum-art-timer-readout {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
}

.momentum-art-timer-clock {
    color: rgba(255, 255, 255, 0.98);
    font: 500 1.1rem/1 var(--ix-mono);
    letter-spacing: -0.04em;
}

.momentum-art-timer-step {
    overflow: hidden;
    color: rgba(238, 238, 234, 0.74);
    font-size: 0.65rem;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.momentum-art-timer-state {
    color: var(--momentum-path-accent);
    font-size: 0.58rem;
    letter-spacing: 0.08em;
}

.momentum-art-progress {
    height: 3px;
    overflow: hidden;
    background: rgba(238, 238, 234, 0.12);
}

.momentum-art-progress > span {
    display: block;
    width: var(--momentum-art-progress, 0%);
    height: 100%;
    background: linear-gradient(90deg, var(--ix-blue), var(--momentum-path-accent));
    transition: width 450ms linear;
}

.momentum-art-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.momentum-art-controls button,
.momentum-art-card-open {
    min-height: 34px;
    border: 1px solid rgba(238, 238, 234, 0.18);
    border-radius: 0;
    background: rgba(238, 238, 234, 0.075);
    color: rgba(255, 255, 255, 0.92);
    padding: 7px 10px;
    font: 500 0.62rem/1 var(--ix-mono);
    letter-spacing: 0.05em;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}

.momentum-art-controls button:hover,
.momentum-art-controls button:focus-visible,
.momentum-art-card-open:hover,
.momentum-art-card-open:focus-visible {
    border-color: var(--momentum-path-accent);
    background: var(--momentum-path-accent);
    color: var(--ix-ink);
    outline: 0;
}

.momentum-art-controls button:disabled {
    opacity: 0.38;
    cursor: default;
}

.momentum-art-controls button:disabled:hover {
    border-color: rgba(238, 238, 234, 0.18);
    background: rgba(238, 238, 234, 0.075);
    color: rgba(255, 255, 255, 0.92);
}

.momentum-art-path-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
}

.momentum-art-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 190px;
    padding: 12px;
    overflow: hidden;
    border: 1px solid rgba(238, 238, 234, 0.14);
    background: rgba(238, 238, 234, 0.045);
    animation: momentum-art-card-reveal 640ms var(--momentum-card-delay, 80ms) cubic-bezier(0.16, 1, 0.3, 1) both;
}

.momentum-art-card::after {
    content: '';
    position: absolute;
    inset: auto 0 0;
    height: 3px;
    background: var(--momentum-card-color, var(--ix-blue));
    transform: scaleX(0.24);
    transform-origin: left;
    transition: transform 420ms cubic-bezier(0.16, 1, 0.3, 1);
}

.momentum-art-card:hover::after,
.momentum-art-card.is-active::after {
    transform: scaleX(1);
}

.momentum-art-card.is-active {
    border-color: var(--momentum-card-color, var(--ix-blue));
    background: rgba(86, 175, 221, 0.1);
}

.momentum-art-card h4 {
    margin: 9px 0 8px;
    color: rgba(255, 255, 255, 0.98);
    font: 500 0.88rem/1.05 var(--ix-mono);
    letter-spacing: -0.035em;
}

.momentum-art-card-prompt {
    flex: 1;
    margin: 0 0 12px;
    color: rgba(238, 238, 234, 0.74);
    font-size: 0.66rem;
    line-height: 1.48;
}

.momentum-art-card-permission {
    display: block;
    margin-bottom: 8px;
    color: rgba(238, 238, 234, 0.54);
    font-size: 0.56rem;
    line-height: 1.35;
    text-transform: uppercase;
}

.momentum-art-card-open {
    align-self: flex-start;
}

.momentum-art-schedule {
    display: grid;
    gap: 1px;
    margin: 0;
    padding: 0;
    list-style: none;
    background: rgba(238, 238, 234, 0.08);
}

.momentum-art-schedule-step {
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 10px;
    padding: 9px 10px;
    background: rgba(8, 8, 10, 0.9);
    color: rgba(238, 238, 234, 0.72);
    font-size: 0.65rem;
    line-height: 1.4;
    transition: background-color 180ms ease, color 180ms ease;
}

.momentum-art-schedule-step.is-active {
    background: rgba(231, 129, 242, 0.14);
    color: rgba(255, 255, 255, 0.96);
}

.momentum-art-schedule-time {
    color: var(--momentum-path-accent);
}

.momentum-art-path-disclaimer {
    margin: 0;
    color: rgba(238, 238, 234, 0.6);
    font-size: 0.62rem;
    line-height: 1.55;
}

.momentum-art-path-research {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 12px;
    padding-top: 2px;
    color: rgba(238, 238, 234, 0.5);
    font-size: 0.57rem;
    line-height: 1.45;
}

.momentum-art-path-research a {
    color: rgba(238, 238, 234, 0.75);
    text-underline-offset: 3px;
}

.momentum-art-path-research a:hover,
.momentum-art-path-research a:focus-visible {
    color: var(--momentum-path-accent);
}

@keyframes momentum-art-path-arrive {
    from { opacity: 0; transform: translateY(16px); clip-path: inset(0 0 100%); }
    to { opacity: 1; transform: translateY(0); clip-path: inset(0); }
}

@keyframes momentum-art-card-reveal {
    from { opacity: 0; transform: translateY(15px) rotateX(-12deg); }
    to { opacity: 1; transform: translateY(0) rotateX(0); }
}

@keyframes momentum-art-orbit {
    0%, 100% { transform: scale(1); border-color: rgba(238, 238, 234, 0.2); box-shadow: inset 0 0 0 rgba(86, 175, 221, 0); }
    50% { transform: scale(0.94); border-color: rgba(86, 175, 221, 0.48); box-shadow: inset 0 0 20px rgba(86, 175, 221, 0.1); }
}

@keyframes momentum-output-disc-open {
    from { opacity: 0; clip-path: circle(4%); transform: scale(0.35) rotate(-100deg); }
    to { opacity: 1; clip-path: circle(55%); transform: scale(1) rotate(0); }
}

@keyframes momentum-output-copy-reveal {
    from { opacity: 0; transform: translateY(12px); clip-path: inset(0 0 100% 0); }
    to { opacity: 1; transform: translateY(0); clip-path: inset(0); }
}

@keyframes momentum-output-stream {
    to { transform: rotate(360deg); }
}

@keyframes ix-rail-artist-color {
    0%, 100% { background-color: var(--ix-rail-artist-a); }
    34% { background-color: var(--ix-rail-artist-b); }
    68% { background-color: var(--ix-rail-artist-c); }
}

@keyframes ix-rail-manifesto-color {
    0%, 100% { background-color: var(--ix-rail-manifesto-a); }
    38% { background-color: var(--ix-rail-manifesto-b); }
    72% { background-color: var(--ix-rail-manifesto-c); }
}

@keyframes ix-rail-imac-color {
    0%, 100% { background-color: var(--ix-rail-imac-a); }
    31% { background-color: var(--ix-rail-imac-b); }
    67% { background-color: var(--ix-rail-imac-c); }
}

/* ==========================
   MANIFESTO OPENING WORKSTATION
   Wide screens follow the reference composition: authored content stays in
   the left field while the existing fixed systems form a right control rail.
   No runtime node is moved, so every legacy listener and PIP target survives.
   ========================== */

@media (min-width: 1100px) and (min-height: 680px) and (hover: hover) and (pointer: fine) {
    body.ix-ready > #app > header::after {
        margin-right: 126px;
    }

    :root {
        --ix-opening-gap: clamp(18px, 1.7vw, 30px);
        --ix-opening-rail: clamp(400px, 48vw, 720px);
        --ix-opening-term-h: clamp(360px, 52vh, 620px);
        --ix-opening-term-h: clamp(360px, 52dvh, 620px);
        --ix-opening-karate-h: clamp(112px, 14vh, 164px);
        --ix-opening-karate-h: clamp(112px, 14dvh, 164px);
    }

    body.ix-ready[data-ix-view="manifesto"] > #app,
    body.ix-ready[data-ix-view="manifesto"].ix-terminal-collapsed > #app {
        padding-bottom: 30px;
    }

    body.ix-ready[data-ix-view="manifesto"] > #app > main {
        width: 100%;
        max-width: none;
        margin: 0;
        padding: var(--ix-opening-gap);
        padding-right: calc(var(--ix-opening-rail) + var(--ix-opening-gap) + var(--ix-opening-gap));
    }

    body.ix-ready[data-ix-view="manifesto"] #manifesto .manifesto-content {
        width: 100%;
        max-width: 1040px;
        margin: 0;
    }

    body.ix-ready[data-ix-view="manifesto"] #manifesto.ix-adapted-view::before {
        margin-bottom: 10px;
        background: rgba(36, 36, 36, 0.82);
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
    }

    body.ix-ready[data-ix-view="manifesto"] .artist-intro {
        --ix-artist-row: clamp(160px, 10.5vw, 188px);
        --ix-portrait-size: clamp(136px, 8.2vw, 158px);
        grid-template-columns: var(--ix-portrait-size) minmax(0, 1fr);
        width: 100%;
        height: var(--ix-artist-row);
        min-height: var(--ix-artist-row);
        margin: 12px 0 1px;
    }

    body.ix-ready[data-ix-view="manifesto"] .artist-photo-wrap {
        width: var(--ix-portrait-size);
        height: var(--ix-portrait-size);
        min-height: var(--ix-portrait-size);
        max-height: var(--ix-portrait-size);
        align-self: center;
        justify-self: start;
    }

    body.ix-ready[data-ix-view="manifesto"] .artist-photo {
        height: 100%;
        min-height: 0;
        max-height: 100%;
    }

    body.ix-ready[data-ix-view="manifesto"] .artist-photo {
        object-fit: cover;
        object-position: center 26%;
    }

    body.ix-ready[data-ix-view="manifesto"] .artist-intro::before {
        top: auto;
        right: auto;
        bottom: 8px;
        left: 10px;
        color: rgba(238, 238, 234, 0.68);
        font-size: 0.48rem;
    }

    body.ix-ready[data-ix-view="manifesto"] .artist-bio {
        justify-content: center;
        padding: 12px 14px;
    }

    body.ix-ready[data-ix-view="manifesto"] .bio-line {
        font-size: clamp(0.84rem, 0.95vw, 1rem);
    }

    body.ix-ready[data-ix-view="manifesto"] .bio-tagline {
        font-size: clamp(0.76rem, 0.82vw, 0.92rem);
    }

    body.ix-ready[data-ix-view="manifesto"] .bio-links {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 5px 12px;
        width: 100%;
        margin-top: 8px;
    }

    body.ix-ready[data-ix-view="manifesto"] .bio-links a {
        padding: 2px 0 3px;
        font-size: 0.66rem;
        white-space: nowrap;
    }

    body.ix-ready[data-ix-view="manifesto"] .hero-area {
        --ix-copy-inset: clamp(30px, 3.2vw, 54px);
        display: flex;
        align-items: center;
        min-height: clamp(220px, 28vh, 360px);
        padding: clamp(24px, 2vw, 34px) var(--ix-copy-inset);
        overflow: hidden;
    }

    body.ix-ready[data-ix-view="manifesto"] .hero-title {
        max-width: none;
        width: 100%;
        font-size: clamp(1.05rem, 1.7vw, 1.95rem);
        line-height: 1.08;
        letter-spacing: -0.035em;
        word-spacing: 0.06em;
    }

    body.ix-ready[data-ix-view="manifesto"] .hero-line {
        overflow: visible;
        white-space: nowrap;
    }

    body.ix-ready[data-ix-view="manifesto"] .intro-prose {
        padding: clamp(30px, 3.2vw, 54px);
    }

    body.ix-ready[data-ix-view="manifesto"] .intro-prose .intro {
        font-size: clamp(0.98rem, 1.18vw, 1.22rem) !important;
        line-height: 1.54;
    }

    body.ix-ready[data-ix-view="manifesto"] .highlight-text {
        font-size: clamp(1.45rem, 2.3vw, 2.9rem) !important;
    }

    body.ix-ready[data-ix-view="manifesto"] .desk-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) clamp(190px, 18vw, 280px);
        align-items: stretch;
    }

    body.ix-ready[data-ix-view="manifesto"] .mood-terminal {
        min-width: 0;
        min-height: 220px;
    }

    body.ix-ready[data-ix-view="manifesto"] .imac {
        width: auto;
        min-width: 0;
        padding: clamp(14px, 1.3vw, 20px);
    }

    body.ix-ready[data-ix-view="manifesto"] .imac-screen {
        height: auto;
        aspect-ratio: 200 / 130;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .artist-intro,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .intro-prose,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .imac {
        background: none;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .artist-intro {
        background-color: var(--ix-rail-artist-a);
        animation: ix-rail-artist-color 13.6s ease-in-out infinite;
        animation-delay: -1.2s;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .artist-intro::before {
        color: rgba(23, 23, 23, 0.68);
    }

    /* The identity plate is deliberately mode-invariant: Rail keeps the same
       neutral glass treatment and bright typography as Ghost. */
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .hero-area {
        background: rgba(23, 23, 23, 0.14);
        color: var(--ix-paper);
        animation: none;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .hero-title,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .hxm-link {
        color: var(--ix-paper);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .hxm-link::after {
        background: var(--ix-paper);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .mouse-hint rect,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .mouse-hint line {
        stroke: var(--ix-paper);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .intro-prose {
        background-color: var(--ix-rail-manifesto-a);
        animation: ix-rail-manifesto-color 16.4s ease-in-out infinite;
        animation-delay: -5.7s;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .imac {
        background-color: var(--ix-rail-imac-a);
        animation: ix-rail-imac-color 14.8s ease-in-out infinite;
        animation-delay: -9.4s;
    }

    body.ix-ready[data-ix-view="manifesto"] .poster-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.ix-ready[data-ix-view="manifesto"] .ix-terminal {
        left: auto;
        right: var(--ix-opening-gap);
        top: calc(var(--nav-height) + var(--ix-opening-gap));
        bottom: auto;
        width: var(--ix-opening-rail);
        height: var(--ix-opening-term-h);
        max-height: var(--ix-opening-term-h);
        border-color: rgba(238, 238, 234, 0.28);
        background: rgba(23, 23, 23, 0.5);
        box-shadow: none;
        backdrop-filter: blur(3px) saturate(108%);
        -webkit-backdrop-filter: blur(3px) saturate(108%);
    }

    body.ix-ready[data-ix-view="manifesto"] .ix-terminal-body {
        grid-template-columns: minmax(210px, 0.78fr) minmax(0, 1.22fr);
        grid-template-rows: minmax(0, 1fr);
    }

    body.ix-ready[data-ix-view="manifesto"] .ix-terminal-tabs {
        grid-template-columns: 1fr;
    }

    body.ix-ready[data-ix-view="manifesto"] .ix-terminal-tab.nav-btn {
        min-height: 42px;
        padding: 7px 10px;
        font-size: 0.64rem;
    }

    body.ix-ready[data-ix-view="manifesto"] .ix-terminal.is-collapsed {
        left: auto;
        right: var(--ix-opening-gap);
        top: calc(var(--nav-height) + var(--ix-opening-gap));
        bottom: auto;
        width: min(var(--ix-compact-width, 228px), calc(100vw - 24px));
        height: var(--ix-compact-height);
        max-height: var(--ix-compact-height);
    }

    body.ix-ready[data-ix-view="manifesto"] .ix-terminal.is-collapsed.is-compact-open {
        width: min(var(--ix-compact-open-width), calc(100vw - 24px));
        height: var(--ix-compact-open-height);
        max-height: min(var(--ix-compact-open-height), calc(100dvh - 24px));
    }

    body.ix-ready[data-ix-view="manifesto"] .ix-karate-lab {
        left: auto;
        right: var(--ix-opening-gap);
        top: calc(var(--nav-height) + var(--ix-opening-gap) + var(--ix-opening-term-h) + var(--ix-opening-gap));
        bottom: auto;
        grid-template-columns: minmax(0, 1fr) 34px minmax(0, 1fr);
        width: var(--ix-opening-rail);
        height: var(--ix-opening-karate-h);
        border-color: rgba(238, 238, 234, 0.28);
        background: rgba(23, 23, 23, 0.36);
        backdrop-filter: blur(2px);
        -webkit-backdrop-filter: blur(2px);
    }

    body.ix-ready[data-ix-view="manifesto"] .ix-karate-lab::after {
        content: 'K28 / PINK KATA × BLUE KATA';
        position: absolute;
        right: 10px;
        bottom: 7px;
        color: rgba(238, 238, 234, 0.46);
        font-size: 0.55rem;
        letter-spacing: 0.08em;
    }

    body.ix-ready[data-ix-view="manifesto"] .ix-karate-label {
        top: 8px;
        left: 10px;
        font-size: 0.62rem;
    }

    body.ix-ready[data-ix-view="manifesto"] .ix-fighter {
        margin-top: 12px;
        font-size: clamp(3.2rem, 5vw, 5.3rem);
    }

    body.ix-ready[data-ix-view="manifesto"] .ix-duel-impact {
        width: 6px;
        height: 6px;
    }

    body.ix-ready[data-ix-view="manifesto"] .momentum-launcher {
        left: auto;
        right: var(--ix-opening-gap);
        top: calc(var(--nav-height) + var(--ix-opening-gap) + var(--ix-opening-term-h) + var(--ix-opening-gap) + var(--ix-opening-karate-h) + var(--ix-opening-gap));
        bottom: auto;
        grid-template-columns: 34px minmax(0, 1fr) auto;
        grid-template-rows: 1fr;
        align-items: center;
        width: var(--ix-opening-rail);
        height: 64px;
        padding: 0 14px;
        border-color: rgba(238, 238, 234, 0.28);
        background: rgba(23, 23, 23, 0.5);
        color: var(--ix-paper);
        backdrop-filter: blur(2px);
        -webkit-backdrop-filter: blur(2px);
    }

    body.ix-ready[data-ix-view="manifesto"] .momentum-launcher:hover {
        background: var(--ix-pink);
        color: var(--ix-ink);
    }

    body.ix-ready[data-ix-view="manifesto"] .momentum-launcher-star {
        grid-row: auto;
    }

    body.ix-ready[data-ix-view="manifesto"] .momentum-launcher-label {
        align-self: center;
        font-size: 0.78rem;
    }

    body.ix-ready[data-ix-view="manifesto"] .momentum-launcher-state {
        color: inherit;
        font-size: 0.64rem;
        text-align: right;
    }

    body.ix-ready[data-ix-view="manifesto"] .momentum-layer {
        place-items: start end;
        padding: calc(var(--nav-height) + var(--ix-opening-gap)) var(--ix-opening-gap) var(--ix-opening-gap);
        background: rgba(23, 23, 23, 0.16);
    }

    body.ix-ready[data-ix-view="manifesto"] .momentum-panel {
        width: var(--ix-opening-rail);
        height: calc(100vh - var(--nav-height) - var(--ix-opening-gap) - var(--ix-opening-gap));
        height: calc(100dvh - var(--nav-height) - var(--ix-opening-gap) - var(--ix-opening-gap));
    }

    body.ix-ready[data-ix-view="manifesto"].ix-terminal-collapsed .ix-karate-lab {
        top: calc(var(--nav-height) + var(--ix-opening-gap) + var(--ix-compact-height) + var(--ix-opening-gap));
    }

    body.ix-ready[data-ix-view="manifesto"].ix-terminal-collapsed .momentum-launcher {
        top: calc(var(--nav-height) + var(--ix-opening-gap) + var(--ix-compact-height) + var(--ix-opening-gap) + var(--ix-opening-karate-h) + var(--ix-opening-gap));
    }
}

@media (min-width: 1100px) and (max-width: 1350px) and (min-height: 680px) and (hover: hover) and (pointer: fine) {
    body.ix-ready[data-ix-view="manifesto"] .ix-terminal-version {
        display: none;
    }

    body.ix-ready[data-ix-view="manifesto"] .ix-terminal-brand {
        gap: 6px;
        padding: 0 9px;
        font-size: 0.68rem;
    }

    body.ix-ready[data-ix-view="manifesto"] .ix-terminal-actions button {
        padding: 0 7px;
        font-size: 0.58rem;
    }
}

/* GHOST is a borderless, translucent skin for the existing workstation.
   Its geometry deliberately inherits RAIL so AUTO can transform the visual
   language without moving any authored section or utility. */
@media (min-width: 1100px) and (min-height: 680px) and (hover: hover) and (pointer: fine) {
    body.ix-ready[data-ix-view="manifesto"] > #app > main,
    body.ix-ready[data-ix-view="manifesto"] .artist-intro,
    body.ix-ready[data-ix-view="manifesto"] .artist-photo-wrap,
    body.ix-ready[data-ix-view="manifesto"] .hero-area,
    body.ix-ready[data-ix-view="manifesto"] .intro-prose,
    body.ix-ready[data-ix-view="manifesto"] .desk-row {
        transition: width 900ms cubic-bezier(0.76, 0, 0.24, 1),
            max-width 900ms cubic-bezier(0.76, 0, 0.24, 1),
            height 900ms cubic-bezier(0.76, 0, 0.24, 1),
            min-height 900ms cubic-bezier(0.76, 0, 0.24, 1),
            margin 900ms cubic-bezier(0.76, 0, 0.24, 1),
            padding 900ms cubic-bezier(0.76, 0, 0.24, 1),
            background-color 720ms ease, color 720ms ease;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .artist-intro {
        background-color: rgba(23, 23, 23, 0.18);
        color: var(--ix-paper);
        animation: none;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .artist-bio,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .bio-line,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .bio-tagline,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .bio-links a {
        color: rgba(238, 238, 234, 0.86);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .artist-intro::before {
        color: rgba(238, 238, 234, 0.7);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .hero-area {
        background-color: rgba(23, 23, 23, 0.14);
        color: var(--ix-paper);
        animation: none;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .hero-title {
        color: var(--ix-paper);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .intro-prose {
        background-color: rgba(23, 23, 23, 0.12);
        color: rgba(238, 238, 234, 0.82);
        animation: none;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .manifesto-copy-stage {
        --ix-copy-front: #0a0b0b;
        --ix-copy-back: #030404;
        --ix-copy-right: #0d1010;
        --ix-copy-left: #060707;
        --ix-copy-top: #202323;
        --ix-copy-bottom: #020303;
        --ix-copy-edge: transparent;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .manifesto-copy-face {
        box-shadow: none;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .intro-prose .intro,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .highlight-text {
        color: rgba(238, 238, 234, 0.86) !important;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .token-word {
        color: rgba(238, 238, 234, 0.56);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .token-word.token-seen,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .token-word.token-active {
        color: rgba(238, 238, 234, 0.94);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .desk-row {
        background: rgba(23, 23, 23, 0.2);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .imac {
        background-color: rgba(23, 23, 23, 0.18);
        animation: none;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-terminal:not(.is-collapsed) {
        border: 0;
        background: rgba(23, 23, 23, 0.2);
        opacity: 0.86;
        box-shadow: none;
        backdrop-filter: blur(1px);
        -webkit-backdrop-filter: blur(1px);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-terminal-body {
        grid-template-columns: 1fr;
        height: 100%;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-terminal-bar {
        height: 0;
        overflow: hidden;
        border: 0;
        opacity: 0;
        pointer-events: none;
    }

    /* The full Ghost terminal has no bar or tab index, so surface its existing
       compact navigator as a glass overlay instead of cloning a second menu. */
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-terminal:not(.is-collapsed) .ix-terminal-collapsed-copy {
        position: absolute;
        top: 0;
        right: 0;
        z-index: 7;
        display: grid;
        grid-template-columns: 14px minmax(78px, 1fr) 66px;
        align-items: center;
        width: min(var(--ix-compact-width, 228px), 100%);
        height: var(--ix-compact-height);
        padding-left: 9px;
        background: rgba(238, 238, 234, 0.84);
        color: var(--ix-navigator-text);
        font-size: 0.56rem;
        letter-spacing: 0.05em;
        isolation: isolate;
        cursor: pointer;
        pointer-events: auto;
        backdrop-filter: blur(14px) saturate(1.08);
        -webkit-backdrop-filter: blur(14px) saturate(1.08);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-terminal:not(.is-collapsed) .ix-terminal-collapsed-copy button {
        align-self: stretch;
        height: var(--ix-compact-height);
        padding: 0 8px;
        border: 0;
        background: transparent;
        color: var(--ix-navigator-text);
        font-size: 0.54rem;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-terminal:not(.is-collapsed) [data-ix-open-terminal] {
        display: none;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-terminal:not(.is-collapsed) .ix-compact-routes {
        position: absolute;
        top: var(--ix-compact-height);
        right: 0;
        z-index: 6;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: repeat(5, minmax(0, 1fr));
        width: min(var(--ix-compact-open-width), 100%);
        height: var(--ix-compact-tray-height);
        border: 0;
        background: rgba(238, 238, 234, 0.82);
        opacity: 0;
        transform: translateY(-10px) scaleY(0.94);
        transform-origin: top;
        visibility: hidden;
        pointer-events: none;
        backdrop-filter: blur(18px) saturate(1.1);
        -webkit-backdrop-filter: blur(18px) saturate(1.1);
        transition: opacity 240ms ease, transform 360ms cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 360ms;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-terminal:not(.is-collapsed).is-compact-open .ix-compact-routes {
        opacity: 1;
        transform: translateY(0) scaleY(1);
        visibility: visible;
        pointer-events: auto;
        transition-delay: 80ms, 0ms, 0ms;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-terminal-index {
        display: none;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-terminal-console {
        grid-template-rows: 34px minmax(0, 1fr) 46px;
        box-sizing: border-box;
        padding-top: calc(var(--ix-compact-height) + 6px);
        opacity: 0.74;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-console-heading,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-terminal-form {
        border-color: transparent;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-karate-lab {
        background: rgba(23, 23, 23, 0.18);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .momentum-launcher {
        background: rgba(23, 23, 23, 0.28);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] :is(
        .artist-intro,
        .artist-photo-wrap,
        .artist-bio,
        .hero-area,
        .intro-prose,
        .desk-row,
        .mood-terminal,
        .imac,
        .imac-screen,
        .poster-card,
        .manifesto-footer,
        .closing-statement,
        .ix-terminal,
        .ix-terminal-bar,
        .ix-terminal-index,
        .ix-terminal-tab,
        .ix-terminal-console,
        .ix-console-heading,
        .ix-terminal-transcript,
        .ix-terminal-form,
        .ix-karate-lab,
        .momentum-launcher,
        .momentum-panel,
        .ix-layout-switcher
    ) {
        border: 0 !important;
        outline: 0 !important;
        box-shadow: none !important;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] > #app > header,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] #manifesto .manifesto-content > *,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-terminal *,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .momentum-panel > *,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .momentum-body > *,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .momentum-composer-wrap > *,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .momentum-privacy-grid > * {
        border-color: transparent !important;
        box-shadow: none !important;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] :is(
        .momentum-header,
        .momentum-close,
        .momentum-privacy-grid,
        .momentum-actions,
        .momentum-compose,
        .momentum-compose button,
        .momentum-footer
    ),
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .momentum-message.is-assistant::before {
        border: 0 !important;
        box-shadow: none !important;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] #manifesto.ix-adapted-view::before {
        border: 1px solid transparent !important;
        box-shadow: none !important;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] > #app > header .logo-token {
        border-color: transparent !important;
        box-shadow: none !important;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-chromatic {
        display: none !important;
        opacity: 0 !important;
        animation: none !important;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-infinite-field {
        opacity: 0.78;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-infinite-window {
        border: 1px solid rgba(238, 238, 234, 0.12);
        border-radius: 6px;
        overflow: hidden;
        background: transparent;
        box-shadow: none;
        animation: ix-ghost-screen-drift 12s cubic-bezier(0.65, 0, 0.35, 1) infinite alternate;
        animation-delay: calc(var(--ix-window-index) * -0.7s);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-infinite-window::before {
        content: '●  ●  ●     K28 SCREEN / LOCAL';
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        height: 24px;
        padding: 7px 12px 0;
        border-bottom: 1px solid rgba(238, 238, 234, 0.1);
        background: transparent;
        color: rgba(238, 238, 234, 0.42);
        font: 500 clamp(0.42rem, 0.52vw, 0.56rem)/1 var(--ix-mono);
        letter-spacing: 0.08em;
        white-space: nowrap;
    }

    body.ix-window-pulse.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-infinite-window {
        animation: ix-ghost-screen-open 4.2s cubic-bezier(0.76, 0, 0.24, 1) both;
        animation-delay: calc(var(--ix-window-order) * 110ms);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .poster-grid,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .poster-card,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .poster-card:nth-child(3n + 1),
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .poster-card:nth-child(3n + 2),
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .poster-card:nth-child(3n + 3),
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .manifesto-footer {
        background: transparent !important;
        color: rgba(238, 238, 234, 0.86) !important;
        box-shadow: none !important;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .poster-canvas {
        opacity: 0.2;
        filter: grayscale(1);
        mix-blend-mode: screen;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .poster-card :is(.poster-label, .poster-heading),
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .poster-card::after,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .manifesto-footer .warning-text {
        color: rgba(238, 238, 234, 0.82) !important;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .poster-dot {
        color: rgba(238, 238, 234, 0.72);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .poster-card .poster-text-overlay {
        border: 0;
        background: rgba(23, 23, 23, 0.88);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .manifesto-footer .cta-btn {
        border: 0;
        background: rgba(238, 238, 234, 0.1);
        color: rgba(238, 238, 234, 0.9);
    }

    @keyframes ix-ghost-screen-drift {
        from { opacity: 0.42; transform: scale(0.97) translate3d(-1.4vw, 1.2vh, 0); }
        to { opacity: 0.72; transform: scale(1.025) translate3d(1.4vw, -1.2vh, 0); }
    }

    @keyframes ix-ghost-screen-open {
        0% { opacity: 0; clip-path: inset(18% 14%); transform: scale(0.82); }
        20% { opacity: 0.68; clip-path: inset(12% 9%); transform: scale(0.87); }
        56% { opacity: 0.74; clip-path: inset(2%); transform: scale(0.97); }
        100% { opacity: 0.48; clip-path: inset(0); transform: scale(1.04); }
    }
}

/* Momentum / Neuroarts language field ------------------------------------ */
.momentum-neuro-intro {
    display: grid;
    gap: 10px;
    max-width: 66ch;
}

.momentum-neuro-intro > *,
.momentum-neuro-principles > article,
.momentum-neuro-research,
.momentum-onboarding > .momentum-art-path-preview,
.momentum-onboarding > .momentum-actions {
    animation: momentum-neuro-copy-in 680ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.momentum-neuro-intro > span {
    color: #7dcff5;
    font-size: 0.66rem;
    letter-spacing: 0.13em;
}

.momentum-neuro-intro h3 {
    max-width: 18ch;
    margin-bottom: 4px;
    text-wrap: balance;
}

.momentum-neuro-intro p {
    margin: 0;
}

.momentum-neuro-intro > :nth-child(2) { animation-delay: 90ms; }
.momentum-neuro-intro > :nth-child(3) { animation-delay: 160ms; }
.momentum-neuro-intro > :nth-child(4) { animation-delay: 230ms; }

.momentum-neuro-principles {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    margin: 28px 0 18px;
    border-top: 1px solid rgba(238, 238, 234, 0.2);
    border-bottom: 1px solid rgba(238, 238, 234, 0.2);
}

.momentum-neuro-principles article {
    --momentum-neuro-tone: #7dcff5;
    position: relative;
    display: grid;
    min-width: 0;
    align-content: start;
    gap: 7px;
    padding: 13px 11px 16px;
    overflow: hidden;
}

.momentum-neuro-principles article + article {
    border-left: 1px solid rgba(238, 238, 234, 0.14);
}

.momentum-neuro-principles article::after {
    content: '';
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 3px;
    background: var(--momentum-neuro-tone);
    transform: scaleX(0.18);
    transform-origin: left;
    animation: momentum-neuro-rule-grow 4.8s ease-in-out infinite alternate;
}

.momentum-neuro-principles article:nth-child(1) {
    --momentum-neuro-tone: #7dcff5;
    animation-delay: 280ms;
}

.momentum-neuro-principles article:nth-child(2) {
    --momentum-neuro-tone: #f091fb;
    animation-delay: 350ms;
}

.momentum-neuro-principles article:nth-child(3) {
    --momentum-neuro-tone: #e8bf62;
    animation-delay: 420ms;
}

.momentum-neuro-principles article > span {
    color: var(--momentum-neuro-tone);
    font-size: 0.66rem;
    letter-spacing: 0.12em;
    animation: momentum-neuro-label-shift 7.2s steps(1, end) infinite;
}

.momentum-neuro-principles strong {
    color: rgba(255, 255, 255, 0.96);
    font-size: 0.7rem;
    letter-spacing: 0.05em;
}

.momentum-neuro-principles p {
    margin: 0;
    color: rgba(238, 238, 234, 0.66);
    font-size: 0.68rem;
    line-height: 1.5;
}

.momentum-neuro-research {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px 14px;
    width: 100%;
    animation-delay: 490ms;
}

.momentum-neuro-research span,
.momentum-neuro-research a {
    font-size: 0.64rem;
    letter-spacing: 0.055em;
}

.momentum-neuro-research span {
    color: rgba(238, 238, 234, 0.54);
}

.momentum-neuro-research a {
    color: #7dcff5;
    text-underline-offset: 3px;
}

.momentum-neuro-research a:nth-of-type(2) {
    color: #f091fb;
}

.momentum-onboarding > .momentum-art-path-preview { animation-delay: 550ms; }
.momentum-onboarding > .momentum-actions { animation-delay: 620ms; }

.momentum-text-choreography {
    position: relative;
    z-index: 1;
    margin-top: 13px;
    overflow: hidden;
    border: 0;
    background: rgba(238, 238, 234, 0.035);
    color: rgba(255, 255, 255, 0.94);
}

.momentum-text-choreography > summary {
    display: flex;
    min-height: 36px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 10px;
    color: rgba(238, 238, 234, 0.72);
    list-style: none;
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    cursor: pointer;
    user-select: none;
    animation: momentum-neuro-label-shift 8.4s steps(1, end) infinite;
}

.momentum-text-choreography > summary::-webkit-details-marker {
    display: none;
}

.momentum-text-choreography > summary::before {
    content: '+';
    display: grid;
    width: 19px;
    height: 19px;
    flex: 0 0 auto;
    place-items: center;
    background: rgba(238, 238, 234, 0.08);
    color: rgba(238, 238, 234, 0.78);
    font-size: 0.72rem;
    line-height: 1;
}

.momentum-text-choreography[open] > summary::before {
    content: '−';
}

.momentum-text-choreography > summary > span {
    margin-left: auto;
    color: rgba(238, 238, 234, 0.48);
    font-size: 0.58rem;
    letter-spacing: 0.06em;
}

.momentum-text-choreography > summary:hover,
.momentum-text-choreography > summary:focus-visible {
    background: rgba(238, 238, 234, 0.08);
}

.momentum-text-choreography > summary:focus-visible {
    outline: 0;
    background: rgba(238, 238, 234, 0.1);
}

.momentum-text-choreography:not([open]) .momentum-text-field {
    display: none;
}

.momentum-message.is-new-output .momentum-text-choreography[open] {
    animation: momentum-neuro-field-open 760ms 420ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.momentum-text-field {
    position: relative;
    width: 100%;
    min-height: 158px;
    max-height: 210px;
    aspect-ratio: 16 / 7;
    overflow: clip;
    border: 0;
    background: rgba(238, 238, 234, 0.018);
    contain: layout paint;
    isolation: isolate;
}

.momentum-text-field::before,
.momentum-text-field::after {
    content: none;
    position: absolute;
    top: 50%;
    z-index: -1;
    width: 46%;
    height: 1px;
    background: rgba(238, 238, 234, 0.1);
    transform-origin: center;
}

.momentum-text-field::before { left: 4%; transform: rotate(16deg); }
.momentum-text-field::after { right: 4%; transform: rotate(-16deg); }

.momentum-text-field-axis {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 0;
    background: rgba(238, 238, 234, 0.07);
    color: rgba(238, 238, 234, 0.82);
    font-size: 0.9rem;
    line-height: 1;
    transform: translate(-50%, -50%);
    animation: momentum-neuro-axis 5.2s ease-in-out infinite alternate;
}

.momentum-text-node {
    position: absolute;
    top: var(--y);
    left: var(--x);
    z-index: 1;
    color: rgba(238, 238, 234, 0.66);
    white-space: nowrap;
    pointer-events: none;
    user-select: none;
    transform: translate(-50%, -50%) rotate(var(--rotation)) scale(var(--scale));
    transform-origin: center;
    animation: momentum-neuro-node-arrive 820ms var(--delay) cubic-bezier(0.16, 1, 0.3, 1) both;
}

.momentum-text-node > i {
    display: block;
    font-size: clamp(0.52rem, 0.85vw, 0.7rem);
    font-style: normal;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.04em;
    animation: momentum-neuro-node-drift 4.6s calc(var(--delay) + 850ms) ease-in-out infinite alternate;
}

.momentum-text-node::after {
    display: none;
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: -1;
    width: var(--link-length);
    height: 1px;
    background: currentColor;
    opacity: 0.18;
    transform: rotate(var(--link-angle));
    transform-origin: left;
}

.momentum-text-choreography[data-pattern="butterfly"] .group-0 > i { animation-name: momentum-neuro-wing-left; }
.momentum-text-choreography[data-pattern="butterfly"] .group-1 > i { animation-name: momentum-neuro-wing-right; }
.momentum-text-choreography[data-pattern="floral"] .momentum-text-node > i { animation-name: momentum-neuro-petal; }
.momentum-text-choreography[data-pattern="orbit"] .momentum-text-node > i { animation-name: momentum-neuro-orbit; }
.momentum-text-choreography[data-pattern="orbit"] .group-1 > i { animation-direction: alternate-reverse; }
.momentum-text-choreography[data-pattern="spiral"] .momentum-text-node > i { animation-name: momentum-neuro-spiral; }
.momentum-text-choreography[data-pattern="wave"] .momentum-text-node > i { animation-name: momentum-neuro-wave; }

.momentum-text-choreography[data-pattern="constellation"] .momentum-text-node::after {
    display: block;
    animation: momentum-neuro-link 3.8s calc(var(--delay) + 900ms) ease-in-out infinite alternate;
}

.momentum-text-choreography[data-pattern="constellation"] .momentum-text-node > i {
    animation-name: momentum-neuro-twinkle;
}

.momentum-message:not(.is-new-output) .momentum-text-choreography > summary,
.momentum-message:not(.is-new-output) .momentum-text-field-axis,
.momentum-message:not(.is-new-output) .momentum-text-node::after,
.momentum-message:not(.is-new-output) .momentum-text-node > i {
    animation: none;
}

.momentum-message:not(.is-new-output) .momentum-text-node {
    opacity: 0.9;
    animation: none;
    transform: translate(-50%, -50%) rotate(var(--rotation)) scale(var(--scale));
}

.momentum-text-field-caption {
    position: absolute;
    right: 9px;
    bottom: 8px;
    color: rgba(238, 238, 234, 0.42);
    font-size: 0.56rem;
    letter-spacing: 0.08em;
}

.momentum-text-choreography[data-palette="graphite"] .tone-0 { color: rgba(238, 238, 234, 0.88); }
.momentum-text-choreography[data-palette="graphite"] .tone-1 { color: rgba(238, 238, 234, 0.68); }
.momentum-text-choreography[data-palette="graphite"] .tone-2 { color: rgba(238, 238, 234, 0.5); }
.momentum-text-choreography[data-palette="graphite"] .tone-3 { color: rgba(238, 238, 234, 0.36); }

@keyframes momentum-neuro-copy-in {
    from { opacity: 0; letter-spacing: 0.035em; transform: translateY(9px) skewY(1deg); }
    to { opacity: 1; transform: translateY(0) skewY(0); }
}

@keyframes momentum-neuro-rule-grow {
    0% { opacity: 0.48; transform: scaleX(0.18); }
    55% { opacity: 1; transform: scaleX(1); }
    100% { opacity: 0.68; transform: scaleX(0.46); }
}

@keyframes momentum-neuro-label-shift {
    0%, 100% { color: rgba(238, 238, 234, 0.52); opacity: 0.68; }
    50% { color: rgba(238, 238, 234, 0.86); opacity: 1; }
}

@keyframes momentum-neuro-field-open {
    from { opacity: 0; clip-path: inset(0 0 100%); transform: translateY(8px); }
    to { opacity: 1; clip-path: inset(0); transform: translateY(0); }
}

@keyframes momentum-neuro-node-arrive {
    0% { opacity: 0; transform: translate(-50%, -50%) translate(var(--from-x), var(--from-y)) rotate(0) scale(0.12); }
    72% { opacity: 1; }
    100% { opacity: 0.9; transform: translate(-50%, -50%) rotate(var(--rotation)) scale(var(--scale)); }
}

@keyframes momentum-neuro-node-drift {
    from { opacity: 0.7; transform: translate(0, 0); }
    to { opacity: 1; transform: translate(var(--drift-x), var(--drift-y)); }
}

@keyframes momentum-neuro-wing-left {
    from { opacity: 0.72; transform: translate(1px, -1px) rotate(1.6deg); }
    to { opacity: 1; transform: translate(-3px, 2px) rotate(-2.8deg); }
}

@keyframes momentum-neuro-wing-right {
    from { opacity: 0.72; transform: translate(-1px, -1px) rotate(-1.6deg); }
    to { opacity: 1; transform: translate(3px, 2px) rotate(2.8deg); }
}

@keyframes momentum-neuro-petal {
    from { opacity: 0.7; transform: translateY(-2px) rotate(-2deg) scale(0.96); }
    to { opacity: 1; transform: translateY(2px) rotate(3deg) scale(1.04); }
}

@keyframes momentum-neuro-orbit {
    from { opacity: 0.58; transform: translate(-3px, 1px) rotate(-3deg); }
    to { opacity: 1; transform: translate(3px, -1px) rotate(4deg); }
}

@keyframes momentum-neuro-spiral {
    from { opacity: 0.52; transform: translate(-2px, 2px) rotate(-5deg) scale(0.94); }
    to { opacity: 1; transform: translate(2px, -2px) rotate(6deg) scale(1.06); }
}

@keyframes momentum-neuro-wave {
    from { opacity: 0.6; transform: translateY(-4px) rotate(-2deg); }
    to { opacity: 1; transform: translateY(4px) rotate(2deg); }
}

@keyframes momentum-neuro-twinkle {
    from { opacity: 0.52; transform: scale(0.9); }
    to { opacity: 1; transform: scale(1.08); }
}

@keyframes momentum-neuro-link {
    from { opacity: 0.06; transform: rotate(var(--link-angle)) scaleX(0.35); }
    to { opacity: 0.22; transform: rotate(var(--link-angle)) scaleX(1); }
}

@keyframes momentum-neuro-axis {
    from { transform: translate(-50%, -50%) rotate(-8deg) scale(0.92); }
    to { transform: translate(-50%, -50%) rotate(8deg) scale(1.05); }
}

@media (max-width: 620px) {
    .momentum-neuro-principles {
        grid-template-columns: 1fr;
    }

    .momentum-neuro-principles article + article {
        border-top: 1px solid rgba(238, 238, 234, 0.14);
        border-left: 0;
    }

    .momentum-text-field {
        min-height: 180px;
        max-height: 220px;
        aspect-ratio: 4 / 3;
    }

}

@media (max-width: 1099px), (max-height: 679px), (hover: none) and (pointer: coarse) {
    .ix-layout-switcher {
        display: none;
    }
}

/* ==========================
   RESPONSIVE / ACCESSIBILITY
   ========================== */

@media (max-width: 980px) {
    :root {
        --ix-terminal-height: 420px;
    }

    body.ix-ready > #app > main {
        padding: 24px;
    }

    body.ix-ready .poster-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ix-terminal {
        right: 96px;
    }

    .ix-terminal-body {
        grid-template-columns: minmax(220px, 0.85fr) minmax(310px, 1.15fr);
    }

    .ix-terminal-tabs {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    body.ix-ready .manifesto-copy-stage {
        --ix-copy-size: clamp(248px, 78vw, 320px);
        --ix-copy-half: calc(var(--ix-copy-size) / 2);
        min-height: calc(var(--ix-copy-size) + 150px);
        padding-block: 75px;
        perspective: 900px;
        -webkit-perspective: 900px;
    }

    body.ix-ready .manifesto-copy-stage::after {
        bottom: 30px;
    }

    :root {
        --ix-terminal-height: min(58dvh, 500px);
    }

    body.ix-ready {
        font-size: 15px;
    }

    body.ix-ready > #app {
        padding-bottom: calc(var(--ix-terminal-height) + 18px);
    }

    body.ix-ready > #app > header {
        grid-template-columns: 1fr;
        padding: 0 16px;
    }

    body.ix-ready > #app > header::after,
    body.ix-ready > #app > header .logo .subtitle {
        display: none;
    }

    body.ix-ready > #app > main {
        width: 100%;
        padding: 12px;
    }

    body.ix-ready .artist-intro {
        grid-template-columns: 1fr;
    }

    body.ix-ready .artist-photo-wrap {
        min-height: 68vw;
    }

    body.ix-ready .hero-area,
    body.ix-ready .intro-prose,
    body.ix-ready .gallery-header {
        padding: 28px 20px;
    }

    body.ix-ready .hero-title {
        min-height: 0;
        margin-bottom: 0;
        font-size: clamp(2.2rem, 12vw, 4.8rem) !important;
        line-height: 0.98;
    }

    body.ix-ready .hero-line {
        min-height: 0;
    }

    body.ix-ready .bio-tagline {
        height: auto;
        overflow: visible;
        white-space: normal;
    }

    body.ix-ready .bio-links {
        height: auto;
        overflow: visible;
        justify-content: flex-start;
    }

    body.ix-ready .desk-row {
        flex-direction: column;
    }

    body.ix-ready .imac {
        width: 100%;
    }

    body.ix-ready .poster-grid {
        grid-template-columns: 1fr;
    }

    body.ix-ready .manifesto-footer {
        grid-template-columns: 1fr;
    }

    .ix-terminal {
        left: calc(6px + env(safe-area-inset-left));
        right: calc(6px + env(safe-area-inset-right));
        bottom: calc(6px + env(safe-area-inset-bottom));
    }

    .ix-terminal.is-collapsed {
        right: calc(92px + env(safe-area-inset-right));
    }

    .ix-terminal.is-input-focused:not(.is-collapsed) {
        height: calc(100vh - 12px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
        height: calc(100dvh - 12px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
        max-height: calc(100vh - 12px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
        max-height: calc(100dvh - 12px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    }

    .ix-terminal.is-input-focused:not(.is-collapsed) .ix-terminal-body {
        grid-template-rows: minmax(0, 1fr);
    }

    .ix-terminal.is-input-focused:not(.is-collapsed) .ix-terminal-index {
        display: none;
    }

    .ix-terminal-bar {
        height: 46px;
    }

    .ix-terminal-brand {
        padding: 0 10px;
    }

    .ix-terminal-version,
    .ix-terminal-actions [data-ix-action="window"],
    .ix-terminal-actions [data-ix-action="fullscreen"] {
        display: none;
    }

    .ix-terminal-body {
        grid-template-columns: 1fr;
        grid-template-rows: 142px minmax(0, 1fr);
        height: calc(100% - 46px);
    }

    .ix-terminal-index {
        border-right: 0;
        border-bottom: 1px solid var(--ix-border-light);
    }

    .ix-terminal-kicker {
        display: none;
    }

    .ix-terminal-tabs {
        grid-template-columns: repeat(4, minmax(112px, 1fr));
        grid-auto-flow: column;
        overflow-x: auto;
    }

    .ix-terminal-tab.nav-btn {
        min-height: 70px;
    }

    .ix-terminal-form input,
    .momentum-compose textarea {
        font-size: 1rem;
    }

    .ix-karate-lab {
        display: none;
    }

    .momentum-launcher {
        right: calc(6px + env(safe-area-inset-right));
        bottom: calc(6px + env(safe-area-inset-bottom));
        width: 80px;
        height: 44px;
        grid-template-columns: 18px 1fr;
        padding: 5px;
    }

    .momentum-launcher-star {
        font-size: 1.2rem;
    }

    .momentum-launcher-state {
        display: none;
    }

    .momentum-layer {
        padding: 0;
    }

    .momentum-panel {
        width: 100%;
        height: 100vh;
        height: 100dvh;
        max-height: none;
        border: 0;
    }

    .momentum-privacy-grid {
        grid-template-columns: 1fr;
    }

    .momentum-art-path-preview {
        grid-template-columns: minmax(96px, 0.36fr) minmax(0, 1fr);
        min-height: 92px;
        padding: 13px;
    }

    .momentum-art-path-preview > span {
        padding-right: 12px;
    }

    .momentum-art-builder {
        max-height: 54dvh;
        padding: 13px;
    }

    .momentum-art-builder-groups {
        grid-template-columns: 1fr;
    }

    .momentum-art-builder-submit {
        grid-template-columns: 1fr;
    }

    .momentum-art-builder-submit button {
        width: 100%;
    }

    .momentum-art-path-grid {
        grid-template-columns: 1fr;
    }

    .momentum-art-card {
        min-height: 0;
    }
}

@media (max-width: 420px) {
    .ix-terminal-actions [data-ix-action="pause"] {
        display: none;
    }

    .ix-terminal-tab.nav-btn {
        grid-template-columns: 22px minmax(0, 1fr);
        padding: 8px;
        font-size: 0.72rem;
    }

    .momentum-message.is-user {
        margin-left: 8%;
    }

    .momentum-message.is-assistant {
        min-height: 86px;
        padding-left: 86px;
    }

    .momentum-message.is-assistant::before {
        left: 12px;
        width: 56px;
        height: 56px;
    }

    .momentum-message.is-art-path {
        padding-left: 0;
    }

    .momentum-art-path {
        padding: 14px;
    }

    .momentum-art-path-header {
        grid-template-columns: 1fr;
    }

    .momentum-art-path-duration {
        min-width: 0;
        min-height: 0;
        width: max-content;
        border-radius: 0;
        animation: none;
    }

    .momentum-art-timer-readout {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .momentum-art-timer-state {
        grid-column: 1 / -1;
    }

    .momentum-art-schedule-step {
        grid-template-columns: 66px minmax(0, 1fr);
    }

    .momentum-path-tools {
        grid-template-columns: 128px minmax(0, 1fr);
    }

    .momentum-path-tools > span {
        font-size: 0.52rem;
    }

    .momentum-art-builder fieldset span {
        min-height: 44px;
    }
}

@media (max-height: 560px) and (orientation: landscape) {
    .ix-terminal {
        bottom: 6px;
        height: calc(100dvh - 12px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
        max-height: calc(100dvh - 12px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    }

    .ix-terminal-body {
        grid-template-rows: minmax(96px, 36%) minmax(0, 1fr);
    }

    .ix-terminal-tab.nav-btn {
        min-height: 58px;
    }
}

@media (min-width: 721px) and (max-height: 560px) and (orientation: landscape) {
    .ix-terminal-body {
        grid-template-rows: minmax(0, 1fr);
    }
}

/* Every world outside the opening Manifesto gets the small section navigator.
   The navigator now occupies the existing header rail instead of floating over
   the active work. Desktop keeps a 40px rail; touch layouts inherit the 46px
   compact control height, so the tab switcher stays easy to reach. */
body.ix-ready:not([data-ix-view="manifesto"]) {
    --nav-height: var(--ix-compact-height);
}

body.ix-ready:not([data-ix-view="manifesto"]).ix-terminal-collapsed > #app {
    padding-bottom: 30px;
}

body.ix-ready:not([data-ix-view="manifesto"]) > #app > header {
    transform: none;
    padding-inline: 12px;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

body.ix-ready:not([data-ix-view="manifesto"]) > #app > header::after {
    display: none;
}

body.ix-ready:not([data-ix-view="manifesto"]) > #app > header .logo .subtitle {
    display: none;
}

body.ix-ready:not([data-ix-view="manifesto"]) .ix-terminal.is-collapsed {
    left: auto;
    right: 12px;
    top: 0;
    bottom: auto;
    width: min(var(--ix-compact-width, 228px), calc(100vw - 24px));
    height: var(--ix-compact-height);
    max-height: var(--ix-compact-height);
    border-top: 0;
    border-bottom: 0;
    box-shadow: none;
}

body.ix-ready:not([data-ix-view="manifesto"]) .ix-terminal.is-collapsed.is-compact-open {
    width: min(var(--ix-compact-open-width), calc(100vw - 24px));
    height: var(--ix-compact-open-height);
    max-height: min(var(--ix-compact-open-height), calc(100dvh - 12px - env(safe-area-inset-bottom)));
    border-bottom: 1px solid rgba(23, 23, 23, 0.72);
}

/* K28.OS used to pull the whole header off-canvas. Keep the same compact rail
   contract there so its desktop is never covered and navigation is not trapped. */
body.ix-ready[data-ix-view="k28os"].k28os-immersive > #app > header {
    transform: none;
}

body.ix-ready[data-ix-view="k28os"].k28os-immersive .k28os-view.active {
    inset: var(--nav-height) 0 0;
}

body.ix-ready[data-ix-view="k28os"].k28os-immersive .k28os-hover-zone {
    display: none;
}

body.ix-ready:not([data-ix-view="manifesto"]) .ix-karate-lab {
    opacity: 0;
    visibility: hidden;
}

/* About is a reading mode: every fixed system panel and companion surface
   yields immediately so the biography is the only active dialog. */
body.ix-ready:has(.about-overlay.active) .ix-terminal,
body.ix-ready:has(.about-overlay.active) .ix-karate-lab,
body.ix-ready:has(.about-overlay.active) .momentum-launcher,
body.ix-ready:has(.about-overlay.active) .momentum-layer,
body.ix-ready:has(.about-overlay.active) .ix-layout-switcher,
body.ix-ready:has(.about-overlay.active) #pip-root {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

@media (max-width: 720px) {
    body.ix-ready:not([data-ix-view="manifesto"]) {
        --nav-height: calc(var(--ix-compact-height) + env(safe-area-inset-top));
    }

    body.ix-ready:not([data-ix-view="manifesto"]) > #app > header {
        padding-top: env(safe-area-inset-top);
    }

    body.ix-ready:not([data-ix-view="manifesto"]) .ix-terminal.is-collapsed {
        right: calc(6px + env(safe-area-inset-right));
        top: env(safe-area-inset-top);
        width: min(var(--ix-compact-width, 228px), calc(100vw - 12px - env(safe-area-inset-left) - env(safe-area-inset-right)));
    }

    .ix-terminal.is-collapsed .ix-terminal-collapsed-copy {
        grid-template-columns: 14px minmax(78px, 1fr) 62px auto;
        padding-left: 7px;
    }

    .ix-terminal.is-collapsed .ix-terminal-collapsed-copy button {
        padding: 0 6px;
        font-size: 0.52rem;
    }
}

@media (max-width: 620px) {
    body.ix-ready:not([data-ix-view="manifesto"]) > #app > header .logo {
        display: none;
    }
}

/* ==========================
   MOMENTUM / BORDERLESS SITE-SYNCHRONIZED SKIN
   ========================== */

/* Momentum follows the live RAIL / GHOST phase. AUTO already drives the same
   data attribute, so the chat changes material without maintaining a second
   theme state. */
.momentum-layer,
.momentum-panel,
.momentum-launcher {
    --momentum-bg: rgba(13, 13, 15, 0.82);
    --momentum-chrome: rgba(7, 7, 9, 0.58);
    --momentum-surface: rgba(238, 238, 234, 0.07);
    --momentum-surface-active: rgba(238, 238, 234, 0.14);
    --momentum-text: rgba(255, 255, 255, 0.95);
    --momentum-muted: rgba(238, 238, 234, 0.62);
    --momentum-signal: var(--ix-blue);
    --momentum-signal-alt: var(--ix-pink);
    --momentum-signal-warm: var(--ix-rail-manifesto-a);
    --momentum-glow-a: rgba(86, 175, 221, 0.3);
    --momentum-glow-b: rgba(231, 129, 242, 0.26);
    --momentum-glow-c: rgba(244, 162, 89, 0.2);
}

body.ix-ready[data-ix-layout="rail"] :is(.momentum-layer, .momentum-panel, .momentum-launcher) {
    --momentum-bg: rgba(13, 13, 15, 0.88);
    --momentum-chrome: rgba(23, 23, 23, 0.82);
    --momentum-surface: rgba(238, 238, 234, 0.085);
    --momentum-surface-active: rgba(238, 238, 234, 0.16);
}

body.ix-ready[data-ix-layout="ghost"] :is(.momentum-layer, .momentum-panel, .momentum-launcher) {
    --momentum-bg: rgba(13, 13, 15, 0.64);
    --momentum-chrome: rgba(7, 7, 9, 0.32);
    --momentum-surface: rgba(238, 238, 234, 0.045);
    --momentum-surface-active: rgba(238, 238, 234, 0.1);
    --momentum-glow-a: rgba(86, 175, 221, 0.2);
    --momentum-glow-b: rgba(231, 129, 242, 0.18);
    --momentum-glow-c: rgba(238, 238, 234, 0.12);
}

/* IBM Plex Mono Light is the only type voice inside Momentum. Important
   longhands intentionally override the older component font shorthands. */
.momentum-launcher,
.momentum-launcher *,
.momentum-launcher *::before,
.momentum-launcher *::after,
.momentum-panel,
.momentum-panel *,
.momentum-panel *::before,
.momentum-panel *::after,
.momentum-panel :is(input, textarea)::placeholder {
    font-family: 'IBM Plex Mono', monospace !important;
    font-style: normal !important;
    font-weight: 300 !important;
    font-synthesis: none;
}

/* One inherited atmosphere animates every visible text state without
   replacing the authored transform animations on cards, words or formations. */
.momentum-launcher,
.momentum-panel {
    animation: momentum-all-text-atmosphere 10.8s ease-in-out infinite;
}

.momentum-launcher *,
.momentum-panel *,
.momentum-panel :is(input, textarea)::placeholder {
    text-shadow: inherit;
}

.momentum-launcher {
    animation-delay: -4.2s;
}

@keyframes momentum-all-text-atmosphere {
    0%, 100% { text-shadow: 0 0 0 rgba(0, 0, 0, 0); }
    28% { text-shadow: 0 0 7px var(--momentum-glow-a); }
    58% { text-shadow: 0 0 9px var(--momentum-glow-b); }
    82% { text-shadow: 0 0 6px var(--momentum-glow-c); }
}

/* Borderless means the nested applications, cards and controls do not rebuild
   a ruled UI inside the glass panel. Forced Colors restores boundaries below. */
.momentum-launcher,
.momentum-panel,
.momentum-panel *,
.momentum-panel *::before,
.momentum-panel *::after {
    border: 0 !important;
    border-color: transparent !important;
}

.momentum-panel *,
.momentum-panel *::before,
.momentum-panel *::after {
    box-shadow: none !important;
}

.momentum-panel :is(a, button) {
    text-decoration: none !important;
}

.momentum-neuro-principles article::after,
.momentum-art-card::after,
.momentum-text-field::before,
.momentum-text-field::after,
.momentum-text-node::after {
    content: none !important;
    display: none !important;
}

.momentum-layer {
    background: rgba(7, 7, 9, 0.24);
}

.momentum-panel {
    background: var(--momentum-bg);
    color: var(--momentum-text);
    box-shadow: 0 30px 100px rgba(0, 0, 0, 0.4);
}

.momentum-header,
.momentum-footer,
.momentum-composer-wrap,
.momentum-path-tools,
.momentum-compose {
    background: transparent;
}

.momentum-header {
    padding: 5px;
}

.momentum-body,
.momentum-onboarding p,
.momentum-compatibility p,
.momentum-error p,
.momentum-art-builder-copy,
.momentum-art-path-intro,
.momentum-art-card-prompt,
.momentum-art-path-disclaimer {
    color: var(--momentum-text);
}

.momentum-kicker,
.momentum-message-author,
.momentum-path-tools > span,
.momentum-art-builder legend,
.momentum-art-builder-camera small,
.momentum-art-builder-submit > span,
.momentum-art-path-kicker,
.momentum-art-card-meta,
.momentum-art-path-local,
.momentum-art-schedule-time,
.momentum-art-card-permission,
.momentum-art-path-research,
.momentum-neuro-research span,
.momentum-text-field-caption {
    color: var(--momentum-muted);
}

.momentum-title,
.momentum-onboarding h3,
.momentum-compatibility h3,
.momentum-error h3,
.momentum-art-builder-head h3,
.momentum-art-path-title,
.momentum-art-card h4,
.momentum-art-timer-clock {
    color: var(--momentum-text);
}

/* Whitespace replaces every 1px separator grid. */
.momentum-privacy-grid,
.momentum-actions,
.momentum-messages,
.momentum-path-tools,
.momentum-art-schedule,
.momentum-neuro-principles {
    background: transparent !important;
}

.momentum-privacy-grid,
.momentum-actions,
.momentum-messages,
.momentum-path-tools,
.momentum-art-schedule,
.momentum-neuro-principles,
.momentum-art-path-grid {
    gap: 8px;
}

.momentum-messages {
    padding: 8px 0;
}

.momentum-path-tools {
    padding: 8px 8px 0;
}

.momentum-art-schedule {
    gap: 6px;
}

.momentum-neuro-principles {
    padding-block: 8px;
}

.momentum-privacy-grid span,
.momentum-message,
.momentum-art-timer,
.momentum-art-card,
.momentum-art-schedule-step,
.momentum-art-builder-camera,
.momentum-text-choreography,
.momentum-art-builder fieldset span {
    background: var(--momentum-surface);
    color: var(--momentum-text);
}

.momentum-message.is-user,
.momentum-message.is-assistant,
.momentum-message.is-art-path,
.momentum-message.is-art-path .momentum-message-author {
    background: var(--momentum-surface);
}

.momentum-art-builder {
    background:
        radial-gradient(circle at 12% 10%, color-mix(in srgb, var(--momentum-signal) 12%, transparent), transparent 34%),
        var(--momentum-chrome);
}

.momentum-art-path-preview {
    background:
        linear-gradient(108deg, color-mix(in srgb, var(--momentum-signal-alt) 16%, transparent), transparent 48%),
        var(--momentum-surface);
    color: var(--momentum-text);
}

.momentum-art-path-preview > span {
    color: var(--momentum-signal-alt);
}

.momentum-art-path-preview > span i,
.momentum-model-meta,
.momentum-art-builder-head p,
.momentum-art-path-profile {
    color: var(--momentum-signal);
}

.momentum-close,
.momentum-actions button,
.momentum-primary,
.momentum-secondary,
.momentum-path-tools > button,
.momentum-art-builder-head > button,
.momentum-art-builder-submit button,
.momentum-compose button,
.momentum-art-controls button,
.momentum-art-card-open,
.momentum-text-choreography > summary,
.momentum-footer button {
    background: var(--momentum-surface);
    color: var(--momentum-text);
    transition: background-color 220ms ease, color 220ms ease, filter 220ms ease, transform 220ms ease;
}

.momentum-compose {
    gap: 8px;
    padding: 8px;
}

.momentum-compose textarea {
    background: var(--momentum-surface);
    color: var(--momentum-text);
}

.momentum-compose textarea::placeholder {
    color: var(--momentum-muted);
}

.momentum-compose button,
.momentum-art-builder-submit button {
    background: var(--momentum-signal-alt);
    color: var(--ix-ink);
}

.momentum-panel :is(button, a, textarea, input, summary):focus-visible {
    outline: 2px solid var(--momentum-signal) !important;
    outline-offset: -2px;
    filter: brightness(1.26) saturate(1.08);
}

.momentum-launcher:focus-visible {
    outline: 2px solid var(--ix-pink) !important;
    outline-offset: 2px;
    filter: brightness(1.26) saturate(1.08);
}

.momentum-panel :is(button, .momentum-art-card-open, summary):not(:disabled):hover {
    filter: brightness(1.18) saturate(1.08);
    transform: translateY(-1px);
}

.momentum-art-builder fieldset input:focus-visible + span {
    background: var(--momentum-surface-active);
    color: var(--momentum-text);
    filter: brightness(1.22);
}

.momentum-panel input[type="checkbox"] {
    appearance: none;
    display: grid;
    width: 18px;
    height: 18px;
    margin: 0;
    place-items: center;
    background: var(--momentum-surface-active);
}

.momentum-panel input[type="checkbox"]::after {
    content: '';
    width: 6px;
    height: 6px;
    background: transparent;
}

.momentum-panel input[type="checkbox"]:checked {
    background: var(--momentum-signal-alt);
}

.momentum-panel input[type="checkbox"]:checked::after {
    background: var(--ix-ink);
}

.momentum-message.is-assistant::before {
    content: none !important;
    display: none !important;
}

/* Progress stays semantically available but reads as filled signal blocks,
   never as a ruled divider. */
.momentum-progress,
.momentum-art-progress {
    height: 8px;
    background: transparent;
}

.momentum-progress span,
.momentum-art-progress > span {
    min-width: 0;
    height: 8px;
    background: linear-gradient(90deg, var(--momentum-signal), var(--momentum-signal-alt));
    -webkit-mask: repeating-linear-gradient(90deg, #000 0 9px, transparent 9px 13px);
    mask: repeating-linear-gradient(90deg, #000 0 9px, transparent 9px 13px);
}

.momentum-art-path-duration {
    background: radial-gradient(circle, color-mix(in srgb, var(--momentum-path-accent) 15%, transparent), transparent 72%);
}

.momentum-art-card {
    background: color-mix(in srgb, var(--momentum-card-color, var(--momentum-signal)) 11%, var(--momentum-bg));
}

.momentum-art-card.is-active {
    background: color-mix(in srgb, var(--momentum-card-color, var(--momentum-signal)) 21%, var(--momentum-bg));
}

.momentum-art-schedule-step.is-active {
    background: color-mix(in srgb, var(--momentum-path-accent) 17%, var(--momentum-bg));
}

/* RAIL borrows the opening page's distinct solid color plates. */
body.ix-ready[data-ix-layout="rail"] .momentum-privacy-grid span:nth-child(1) {
    background: var(--ix-rail-artist-a);
    color: var(--ix-ink);
}

body.ix-ready[data-ix-layout="rail"] .momentum-privacy-grid span:nth-child(2) {
    background: var(--ix-blue);
    color: var(--ix-ink);
}

body.ix-ready[data-ix-layout="rail"] .momentum-privacy-grid span:nth-child(3) {
    background: var(--ix-pink);
    color: var(--ix-ink);
}

body.ix-ready[data-ix-layout="rail"] .momentum-actions > button:nth-child(odd),
body.ix-ready[data-ix-layout="rail"] .momentum-primary {
    background: var(--ix-pink);
    color: var(--ix-ink);
}

body.ix-ready[data-ix-layout="rail"] .momentum-actions > button:nth-child(even),
body.ix-ready[data-ix-layout="rail"] .momentum-secondary {
    background: var(--ix-blue);
    color: var(--ix-ink);
}

body.ix-ready[data-ix-layout="rail"] .momentum-neuro-principles article:nth-child(1) {
    background: color-mix(in srgb, var(--ix-blue) 22%, var(--momentum-bg));
}

body.ix-ready[data-ix-layout="rail"] .momentum-neuro-principles article:nth-child(2) {
    background: color-mix(in srgb, var(--ix-pink) 22%, var(--momentum-bg));
}

body.ix-ready[data-ix-layout="rail"] .momentum-neuro-principles article:nth-child(3) {
    background: color-mix(in srgb, var(--ix-rail-manifesto-a) 24%, var(--momentum-bg));
}

body.ix-ready[data-ix-layout="rail"] .momentum-path-tools > button[aria-expanded="true"],
body.ix-ready[data-ix-layout="rail"] .momentum-art-builder fieldset input:checked + span,
body.ix-ready[data-ix-layout="rail"] .momentum-text-choreography[open] > summary {
    background: var(--ix-paper);
    color: var(--ix-ink);
}

/* GHOST keeps the same geometry and removes colored rectangles. Signal colors
   survive only in type, the local-model star and contained text glow. */
body.ix-ready[data-ix-layout="ghost"] .momentum-layer {
    background: rgba(7, 7, 9, 0.16);
}

body.ix-ready[data-ix-layout="ghost"] :is(
    .momentum-privacy-grid span,
    .momentum-actions button,
    .momentum-primary,
    .momentum-secondary,
    .momentum-message,
    .momentum-message.is-user,
    .momentum-message.is-assistant,
    .momentum-message.is-art-path,
    .momentum-message.is-art-path .momentum-message-author,
    .momentum-path-tools > button,
    .momentum-art-builder fieldset span,
    .momentum-art-builder-camera,
    .momentum-art-builder-head > button,
    .momentum-art-builder-submit button,
    .momentum-compose textarea,
    .momentum-compose button,
    .momentum-art-timer,
    .momentum-art-card,
    .momentum-art-schedule-step,
    .momentum-art-controls button,
    .momentum-art-card-open,
    .momentum-text-choreography,
    .momentum-text-choreography > summary,
    .momentum-footer button
) {
    background: var(--momentum-surface);
    color: var(--momentum-text);
}

body.ix-ready[data-ix-layout="ghost"] .momentum-neuro-principles article {
    background: transparent;
}

body.ix-ready[data-ix-layout="ghost"] .momentum-art-path-preview {
    background: linear-gradient(108deg, rgba(238, 238, 234, 0.055), transparent 60%);
}

body.ix-ready[data-ix-layout="ghost"] .momentum-art-card.is-active,
body.ix-ready[data-ix-layout="ghost"] .momentum-art-schedule-step.is-active,
body.ix-ready[data-ix-layout="ghost"] .momentum-art-builder fieldset input:checked + span,
body.ix-ready[data-ix-layout="ghost"] .momentum-path-tools > button[aria-expanded="true"],
body.ix-ready[data-ix-layout="ghost"] .momentum-text-choreography[open] > summary {
    background: var(--momentum-surface-active);
    color: var(--momentum-text);
}

body.ix-ready[data-ix-layout="ghost"] .momentum-message.is-user .momentum-message-author,
body.ix-ready[data-ix-layout="ghost"] .momentum-path-tools > button > span,
body.ix-ready[data-ix-layout="ghost"] .momentum-art-builder-head p,
body.ix-ready[data-ix-layout="ghost"] .momentum-art-path-profile {
    color: var(--momentum-signal);
}

body.ix-ready[data-ix-layout="ghost"] .momentum-compose button,
body.ix-ready[data-ix-layout="ghost"] .momentum-art-builder-submit button {
    background: var(--momentum-surface-active);
    color: var(--momentum-text);
}

/* Session-only K28 guide and exact artwork picker. These controls use the
   same flat translucent material as the rest of Momentum. */
.momentum-profile-intro,
.momentum-guide-editor,
.momentum-art-picker,
.momentum-guide-preview,
.momentum-art-picker-card,
.momentum-art-picker-sequence li {
    border: 0 !important;
    background: var(--momentum-surface) !important;
    background-image: none !important;
    box-shadow: none !important;
}

.momentum-profile-intro {
    display: grid;
    gap: 13px;
    padding: 15px;
}

.momentum-profile-intro > div > span,
.momentum-guide-preview > span {
    color: var(--momentum-signal);
    font-size: 0.56rem;
    letter-spacing: 0.08em;
}

.momentum-profile-intro h3,
.momentum-profile-intro p,
.momentum-guide-preview :is(strong, p, small),
.momentum-art-picker-head :is(h4, p) {
    margin: 0;
}

.momentum-profile-intro h3 {
    margin-top: 5px;
    color: var(--momentum-text);
    font-size: 1rem;
    letter-spacing: -0.035em;
}

.momentum-profile-intro p {
    max-width: 76ch;
    margin-top: 7px;
    color: var(--momentum-muted);
    font-size: 0.64rem;
    line-height: 1.55;
}

.momentum-profile-controls {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.momentum-profile-controls fieldset {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    min-width: 0;
    margin: 0;
    padding: 0;
}

.momentum-profile-controls legend,
.momentum-art-builder-mode legend {
    grid-column: 1 / -1;
    width: 100%;
    margin-bottom: 4px;
    color: var(--momentum-muted);
    font-size: 0.52rem;
    letter-spacing: 0.08em;
}

.momentum-profile-controls label,
.momentum-art-builder-mode label,
.momentum-art-picker-item {
    position: relative;
    min-width: 0;
}

.momentum-profile-controls label > input,
.momentum-art-builder fieldset > label > input {
    position: absolute !important;
    inset: 0 !important;
    z-index: 2;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    opacity: 0 !important;
    pointer-events: auto;
    cursor: pointer;
    touch-action: manipulation;
}

.momentum-profile-controls label > span,
.momentum-art-builder-mode label > span {
    display: grid;
    min-height: 38px;
    place-items: center;
    padding: 5px;
    background: rgba(238, 238, 234, 0.035);
    color: var(--momentum-muted);
    font-size: 0.5rem;
    line-height: 1.1;
    text-align: center;
    cursor: pointer;
}

.momentum-profile-controls input:checked + span,
.momentum-art-builder-mode input:checked + span,
.momentum-profile-controls input:focus-visible + span,
.momentum-art-builder-mode input:focus-visible + span {
    background: var(--momentum-surface-active);
    color: var(--momentum-text);
    filter: brightness(1.18);
}

.momentum-guide-editor[hidden],
.momentum-art-picker[hidden] {
    display: none;
}

.momentum-guide-editor {
    max-height: min(430px, 56dvh);
    padding: 16px;
    overflow: auto;
    color: var(--momentum-text);
}

.momentum-guide-editor form {
    display: grid;
    gap: 13px;
}

.momentum-guide-preview {
    display: grid;
    gap: 6px;
    padding: 12px;
}

.momentum-guide-preview strong {
    color: var(--momentum-text);
    font-size: 0.68rem;
    letter-spacing: 0.04em;
}

.momentum-guide-preview p {
    color: var(--momentum-muted);
    font-size: 0.61rem;
    line-height: 1.5;
}

.momentum-guide-preview small {
    color: rgba(238, 238, 234, 0.44);
    font-size: 0.52rem;
    line-height: 1.4;
}

.momentum-guide-submit {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 8px;
    align-items: center;
}

.momentum-guide-submit > span {
    color: var(--momentum-muted);
    font-size: 0.52rem;
}

.momentum-guide-submit button,
.momentum-art-picker-move button {
    min-height: 38px;
    padding: 7px 11px;
    background: var(--momentum-surface-active);
    color: var(--momentum-text);
    cursor: pointer;
}

.momentum-path-tools {
    grid-template-columns: repeat(3, minmax(108px, 0.2fr)) minmax(0, 1fr) auto;
}

.momentum-runtime-status,
.momentum-message-runtime {
    color: rgba(238, 238, 234, 0.44);
    font-size: 0.5rem;
    letter-spacing: 0.07em;
    line-height: 1.35;
}

.momentum-runtime-status {
    align-self: center;
    justify-self: end;
    white-space: nowrap;
}

.momentum-runtime-status[data-state="active"] {
    color: var(--momentum-signal);
}

.momentum-runtime-status[data-state="loading"] {
    color: var(--momentum-text);
    animation: momentum-all-text-atmosphere 1.2s ease-in-out infinite alternate;
}

.momentum-message-runtime {
    display: block;
    margin-top: 8px;
}

.momentum-art-builder .momentum-art-builder-mode {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
    min-width: 0;
    margin: 0;
    padding: 0;
}

.momentum-art-picker {
    display: grid;
    gap: 11px;
    padding: 12px;
}

.momentum-art-picker-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
}

.momentum-art-picker-head h4 {
    color: var(--momentum-text);
    font-size: 0.76rem;
}

.momentum-art-picker-head #momentum-art-picker-help,
.momentum-art-picker-status {
    margin-top: 5px;
    color: var(--momentum-muted);
    font-size: 0.54rem;
    line-height: 1.45;
}

.momentum-art-picker-status {
    min-width: 104px;
    text-align: right;
}

.momentum-art-builder .momentum-art-picker-field {
    display: block;
    min-width: 0;
    margin: 0;
    padding: 0;
}

.momentum-art-picker-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
}

.momentum-art-picker-card {
    display: grid !important;
    min-height: 98px !important;
    align-content: start;
    gap: 5px;
    padding: 9px !important;
    color: var(--momentum-muted) !important;
    text-align: left !important;
    cursor: pointer;
}

.momentum-art-picker-order {
    color: rgba(238, 238, 234, 0.38);
    font-size: 0.52rem;
    font-style: normal;
}

.momentum-art-picker-card strong {
    color: var(--momentum-text);
    font-size: 0.58rem;
    line-height: 1.25;
}

.momentum-art-picker-card small {
    font-size: 0.48rem;
    line-height: 1.3;
}

.momentum-art-picker-permission {
    color: rgba(238, 238, 234, 0.42);
}

.momentum-art-picker-item > input:checked + .momentum-art-picker-card,
.momentum-art-picker-item > input:focus-visible + .momentum-art-picker-card {
    background: var(--momentum-surface-active) !important;
    color: var(--momentum-text) !important;
    filter: brightness(1.16);
}

.momentum-art-picker-item > input[data-blocked] + .momentum-art-picker-card {
    opacity: 0.34;
    cursor: pointer;
}

.momentum-art-picker-sequence {
    display: grid;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.momentum-art-picker-sequence li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    min-height: 38px;
    padding: 6px 8px;
    color: var(--momentum-text);
    font-size: 0.54rem;
}

.momentum-art-picker-move {
    display: flex;
    gap: 3px;
}

.momentum-art-picker-move button {
    min-width: 32px;
    min-height: 30px;
    padding: 4px;
}

.momentum-art-picker-move button:disabled {
    opacity: 0.25;
}

/* Living language fields use one flat graphite material in every layout.
   There are no gradients, connector lines, borders or inferred mood labels. */
.momentum-text-choreography,
.momentum-text-choreography > summary,
.momentum-text-field,
.momentum-language-echo,
.momentum-language-echo-field {
    border: 0 !important;
    background: rgba(238, 238, 234, 0.028) !important;
    background-image: none !important;
    box-shadow: none !important;
}

.momentum-text-field,
.momentum-language-echo-field {
    background: rgba(238, 238, 234, 0.014) !important;
}

.momentum-text-choreography *,
.momentum-language-echo * {
    text-shadow: none !important;
}

body.ix-ready[data-ix-layout="rail"] .momentum-text-choreography[open] > summary,
body.ix-ready[data-ix-layout="ghost"] .momentum-text-choreography[open] > summary {
    background: rgba(238, 238, 234, 0.075) !important;
    color: rgba(238, 238, 234, 0.9) !important;
}

.momentum-text-choreography > summary::before,
.momentum-text-field-axis {
    border-radius: 0 !important;
    background: rgba(238, 238, 234, 0.065) !important;
    color: rgba(238, 238, 234, 0.82) !important;
}

.momentum-text-choreography .momentum-text-node {
    color: rgba(238, 238, 234, 0.64) !important;
}

.momentum-text-choreography .momentum-text-node.group-0 { color: rgba(238, 238, 234, 0.88) !important; }
.momentum-text-choreography .momentum-text-node.group-1 { color: rgba(238, 238, 234, 0.58) !important; }
.momentum-text-choreography .momentum-text-node.group-2 { color: rgba(238, 238, 234, 0.42) !important; }
.momentum-text-field-caption { color: rgba(238, 238, 234, 0.4) !important; }

.momentum-message.is-new-output .momentum-text-field {
    animation: momentum-living-field-breathe 5.8s 1.2s ease-in-out infinite alternate;
}

.momentum-language-echo {
    position: relative;
    min-height: 132px;
    margin-top: 12px;
    overflow: clip;
    color: rgba(238, 238, 234, 0.72);
    contain: layout paint;
    isolation: isolate;
}

.momentum-language-echo-label {
    position: absolute;
    top: 8px;
    left: 9px;
    z-index: 2;
    color: rgba(238, 238, 234, 0.46);
    font-size: 0.54rem;
    letter-spacing: 0.08em;
}

.momentum-language-echo-field {
    position: absolute;
    inset: 0;
    overflow: clip;
    animation: momentum-living-field-breathe 6.4s ease-in-out infinite alternate;
}

.momentum-language-echo-node {
    position: absolute;
    top: var(--y);
    left: var(--x);
    color: rgba(238, 238, 234, 0.66);
    white-space: nowrap;
    pointer-events: none;
    user-select: none;
    transform: translate(-50%, -50%) rotate(var(--rotation)) scale(var(--scale));
    transform-origin: center;
    animation: momentum-neuro-node-arrive 760ms var(--delay) cubic-bezier(0.16, 1, 0.3, 1) both;
}

.momentum-language-echo-node.group-0 { color: rgba(238, 238, 234, 0.84); }
.momentum-language-echo-node.group-1 { color: rgba(238, 238, 234, 0.58); }
.momentum-language-echo-node.group-2 { color: rgba(238, 238, 234, 0.4); }

.momentum-language-echo-node > i {
    display: block;
    font-size: clamp(0.5rem, 0.78vw, 0.66rem);
    font-style: normal;
    line-height: 1;
    letter-spacing: 0.04em;
    animation: momentum-neuro-node-drift 4.8s calc(var(--delay) + 700ms) ease-in-out infinite alternate;
}

.momentum-language-echo[data-pattern="butterfly"] .group-0 > i { animation-name: momentum-neuro-wing-left; }
.momentum-language-echo[data-pattern="butterfly"] .group-1 > i { animation-name: momentum-neuro-wing-right; }
.momentum-language-echo[data-pattern="floral"] .momentum-language-echo-node > i { animation-name: momentum-neuro-petal; }
.momentum-language-echo[data-pattern="orbit"] .momentum-language-echo-node > i { animation-name: momentum-neuro-orbit; }
.momentum-language-echo[data-pattern="orbit"] .group-1 > i { animation-direction: alternate-reverse; }
.momentum-language-echo[data-pattern="wave"] .momentum-language-echo-node > i { animation-name: momentum-neuro-wave; }

.momentum-message.is-user:not(.is-latest-user) .momentum-language-echo-field,
.momentum-message.is-user:not(.is-latest-user) .momentum-language-echo-node,
.momentum-message.is-user:not(.is-latest-user) .momentum-language-echo-node > i {
    animation: none;
}

.momentum-message.is-user:not(.is-latest-user) .momentum-language-echo-node {
    opacity: 0.76;
    transform: translate(-50%, -50%) rotate(var(--rotation)) scale(var(--scale));
}

@keyframes momentum-living-field-breathe {
    from { background-color: rgba(238, 238, 234, 0.008); }
    to { background-color: rgba(238, 238, 234, 0.04); }
}

/* Living Momentum eyes — two borderless almond forms derived from the supplied
   opening-to-closing reference. Their aperture is a deterministic attention
   cue; it never claims to detect or diagnose emotion. */
.momentum-eyes {
    --momentum-eye-open: 0.92;
    --momentum-eye-blink: 6.8s;
    --momentum-eye-cutout: #111113;
    --momentum-eye-x: 0px;
    --momentum-eye-y: 0px;
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: 72px;
    height: 34px;
    color: var(--momentum-text, var(--ix-paper));
    isolation: isolate;
    pointer-events: none;
}

.momentum-eye {
    --momentum-eye-tilt: -1.5deg;
    position: relative;
    display: block;
    width: 30px;
    height: 19px;
    overflow: hidden;
    background: currentColor;
    clip-path: polygon(0 50%, 15% 22%, 38% 5%, 50% 0, 62% 5%, 85% 22%, 100% 50%, 85% 78%, 62% 95%, 50% 100%, 38% 95%, 15% 78%);
    transform: rotate(var(--momentum-eye-tilt)) scaleY(var(--momentum-eye-open));
    transform-origin: center;
    animation: momentum-eye-blink var(--momentum-eye-blink) cubic-bezier(0.76, 0, 0.24, 1) infinite;
}

.momentum-eye.is-right {
    --momentum-eye-tilt: 1.5deg;
    animation-delay: 45ms;
}

.momentum-eye::before {
    content: '';
    position: absolute;
    inset: 3px 4px;
    z-index: 1;
    background: var(--momentum-eye-cutout);
    clip-path: inherit;
}

.momentum-eye-pupil {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;
    display: block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: currentColor;
    transform: translate(calc(-50% + var(--momentum-eye-x)), calc(-50% + var(--momentum-eye-y)));
    animation: momentum-eye-look 7.4s ease-in-out infinite;
}

.momentum-eye-pupil::after {
    content: '';
    position: absolute;
    inset: 3px;
    border-radius: 50%;
    background: var(--momentum-eye-cutout);
}

.momentum-eyes[data-momentum-cue="restore"] {
    --momentum-eye-open: 0.58;
    --momentum-eye-blink: 8.6s;
    --momentum-eye-y: 2px;
}

.momentum-eyes[data-momentum-cue="boredom"] {
    --momentum-eye-open: 0.36;
    --momentum-eye-blink: 9.8s;
    --momentum-eye-y: 2.5px;
}

.momentum-eyes[data-momentum-cue="connection"] {
    --momentum-eye-open: 0.78;
    --momentum-eye-blink: 7.2s;
}

.momentum-eyes[data-momentum-cue="connection"] .momentum-eye.is-left {
    --momentum-eye-x: 2px;
}

.momentum-eyes[data-momentum-cue="connection"] .momentum-eye.is-right {
    --momentum-eye-x: -2px;
}

.momentum-eyes[data-momentum-cue="activation"] {
    --momentum-eye-open: 1.06;
    --momentum-eye-blink: 3.8s;
    --momentum-eye-y: -1px;
}

.momentum-eyes[data-momentum-cue="support"] {
    --momentum-eye-open: 0.96;
    --momentum-eye-blink: 12s;
}

.momentum-eyes[data-momentum-phase="loading"] .momentum-eye {
    animation: momentum-eye-loading 1.7s ease-in-out infinite alternate;
}

.momentum-eyes[data-momentum-phase="loading"] .momentum-eye-pupil,
.momentum-eyes[data-momentum-phase="thinking"] .momentum-eye-pupil {
    animation: momentum-eye-scan 1.35s cubic-bezier(0.65, 0, 0.35, 1) infinite alternate;
}

.momentum-eyes[data-momentum-phase="thinking"] .momentum-eye {
    animation: momentum-eye-thinking 1.15s cubic-bezier(0.76, 0, 0.24, 1) infinite alternate;
}

.momentum-eyes[data-momentum-phase="thinking"] .momentum-eye.is-right {
    animation-delay: -575ms;
}

.momentum-eyes[data-momentum-phase="error"] .momentum-eye {
    animation: none;
    transform: rotate(var(--momentum-eye-tilt)) scaleY(0.2);
}

.momentum-eyes[data-momentum-phase="error"] .momentum-eye-pupil {
    opacity: 0.42;
    animation: none;
}

.momentum-eyes--message {
    position: absolute;
    top: 31px;
    left: 15px;
}

.momentum-eyes--title {
    width: 46px;
    height: 23px;
    gap: 4px;
    margin-left: 5px;
    vertical-align: middle;
}

.momentum-eyes--title .momentum-eye {
    width: 19px;
    height: 12px;
}

.momentum-eyes--title .momentum-eye::before {
    inset: 2px 3px;
}

.momentum-eyes--title .momentum-eye-pupil {
    width: 6px;
    height: 6px;
}

.momentum-eyes--title .momentum-eye-pupil::after {
    inset: 2px;
}

.momentum-launcher {
    grid-template-columns: 42px minmax(0, 1fr);
}

.momentum-eyes--launcher {
    grid-row: 1 / 3;
    width: 38px;
    height: 28px;
    gap: 4px;
}

.momentum-eyes--launcher .momentum-eye {
    width: 16px;
    height: 11px;
}

.momentum-eyes--launcher .momentum-eye::before {
    inset: 2px 3px;
}

.momentum-eyes--launcher .momentum-eye-pupil {
    width: 5px;
    height: 5px;
}

.momentum-eyes--launcher .momentum-eye-pupil::after {
    inset: 1.5px;
}

@keyframes momentum-eye-blink {
    0%, 39%, 43%, 87%, 91%, 100% { transform: rotate(var(--momentum-eye-tilt)) scaleY(var(--momentum-eye-open)); }
    41%, 89% { transform: rotate(var(--momentum-eye-tilt)) scaleY(0.06); }
}

@keyframes momentum-eye-loading {
    from { transform: rotate(var(--momentum-eye-tilt)) scaleY(0.42); }
    to { transform: rotate(var(--momentum-eye-tilt)) scaleY(1); }
}

@keyframes momentum-eye-thinking {
    from { transform: rotate(var(--momentum-eye-tilt)) scaleY(0.32); }
    to { transform: rotate(var(--momentum-eye-tilt)) scaleY(1.04); }
}

@keyframes momentum-eye-look {
    0%, 18%, 100% { transform: translate(calc(-50% + var(--momentum-eye-x)), calc(-50% + var(--momentum-eye-y))); }
    35% { transform: translate(calc(-50% - 2px + var(--momentum-eye-x)), calc(-50% - 1px + var(--momentum-eye-y))); }
    58% { transform: translate(calc(-50% + 2px + var(--momentum-eye-x)), calc(-50% + var(--momentum-eye-y))); }
    76% { transform: translate(calc(-50% + var(--momentum-eye-x)), calc(-50% + 1px + var(--momentum-eye-y))); }
}

@keyframes momentum-eye-scan {
    from { transform: translate(calc(-50% - 3px), -50%); }
    to { transform: translate(calc(-50% + 3px), -50%); }
}

@media (min-width: 1100px) and (min-height: 680px) and (hover: hover) and (pointer: fine) {
    body.ix-ready[data-ix-view="manifesto"] .momentum-launcher {
        grid-template-columns: 54px minmax(0, 1fr) auto;
    }

    body.ix-ready[data-ix-view="manifesto"] .momentum-eyes--launcher {
        width: 48px;
        height: 30px;
        gap: 5px;
    }

    body.ix-ready[data-ix-view="manifesto"] .momentum-eyes--launcher .momentum-eye {
        width: 21px;
        height: 13px;
    }
}

@media (max-width: 620px) {
    .momentum-launcher {
        width: 110px;
        grid-template-columns: 38px minmax(0, 1fr);
    }

    .momentum-eyes--message {
        top: 28px;
        left: 10px;
        width: 60px;
        gap: 5px;
    }

    .momentum-eyes--message .momentum-eye {
        width: 25px;
        height: 16px;
    }

    .momentum-profile-controls {
        grid-template-columns: 1fr;
    }

    .momentum-path-tools {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .momentum-path-tools > span {
        grid-column: 1 / -1;
    }

    .momentum-runtime-status {
        justify-self: start;
    }

    .momentum-art-picker-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .momentum-guide-submit {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .momentum-guide-submit > span {
        grid-column: 1 / -1;
    }
}

@media (max-width: 420px) {
    .momentum-profile-controls fieldset {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .momentum-art-builder .momentum-art-builder-mode,
    .momentum-art-picker-grid,
    .momentum-art-picker-head {
        grid-template-columns: 1fr;
    }

    .momentum-art-picker-status {
        min-width: 0;
        text-align: left;
    }
}

/* ==========================
   RESPONSIVE WORKSPACE
   Phones and tablets keep every authored system, but the fixed workstation
   yields to the page until a visitor explicitly opens it. The complete
   terminal and Momentum then become deliberate, viewport-safe workspaces.
   ========================== */

@media (max-width: 1099px), (max-height: 679px), (hover: none) and (pointer: coarse) {
    :root {
        --ix-compact-height: 46px;
        --ix-compact-tray-height: 220px;
        --ix-compact-open-height: 266px;
        --ix-compact-open-width: 316px;
    }

    html {
        scroll-padding-top: calc(var(--nav-height, 58px) + 12px);
    }

    body.ix-ready {
        overflow-x: clip;
    }

    body.ix-ready > #app,
    body.ix-ready.ix-terminal-collapsed > #app {
        min-width: 0;
        padding-bottom: calc(76px + env(safe-area-inset-bottom));
    }

    body.ix-ready > #app > header {
        padding-inline: clamp(14px, 3vw, 28px);
    }

    body.ix-ready > #app > header::after {
        font-size: 0.62rem;
        text-align: right;
    }

    body.ix-ready > #app > main {
        min-width: 0;
        width: 100%;
        max-width: 100%;
        padding: clamp(14px, 3vw, 32px);
    }

    body.ix-ready .view.ix-adapted-view,
    body.ix-ready .manifesto-content,
    body.ix-ready .artist-intro,
    body.ix-ready .artist-bio,
    body.ix-ready .hero-area,
    body.ix-ready .intro-prose,
    body.ix-ready .poster-grid,
    body.ix-ready .prototype-grid,
    body.ix-ready .cinema-grid,
    body.ix-ready .desk-row {
        min-width: 0;
        max-width: 100%;
    }

    body.ix-ready .artist-intro {
        grid-template-columns: clamp(190px, 31vw, 280px) minmax(0, 1fr);
    }

    body.ix-ready .artist-photo-wrap {
        min-height: clamp(230px, 31vw, 320px);
    }

    body.ix-ready .artist-bio {
        padding: clamp(28px, 4vw, 46px);
    }

    body.ix-ready .hero-area {
        padding: clamp(30px, 5vw, 58px);
        overflow: clip;
    }

    body.ix-ready .hero-title {
        max-width: 18ch;
        font-size: clamp(2.55rem, 6vw, 4.8rem) !important;
        line-height: 0.98;
        letter-spacing: -0.052em;
    }

    body.ix-ready .hero-line {
        display: block;
        min-width: 0;
        min-height: 0;
        max-width: 100%;
        overflow: visible;
        white-space: normal !important;
        overflow-wrap: anywhere;
    }

    body.ix-ready .intro-prose {
        padding: clamp(28px, 4.5vw, 52px);
    }

    body.ix-ready .manifesto-copy-stage {
        max-width: 100%;
        overflow: clip;
    }

    /* Compact Rail/Ghost keeps the desktop material transformation without
       moving any section. AUTO therefore remains meaningful on every size. */
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .artist-intro {
        background-color: var(--ix-rail-artist-a);
        animation: ix-rail-artist-color 13.6s ease-in-out infinite;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .hero-area {
        background: rgba(23, 23, 23, 0.2);
        color: var(--ix-paper);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] :is(.hero-title, .hxm-link) {
        color: var(--ix-paper);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .intro-prose {
        background-color: var(--ix-rail-manifesto-a);
        animation: ix-rail-manifesto-color 16.4s ease-in-out infinite;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .imac {
        background-color: var(--ix-rail-imac-a);
        animation: ix-rail-imac-color 14.8s ease-in-out infinite;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] :is(.artist-intro, .hero-area, .intro-prose, .imac) {
        border: 0;
        background: rgba(23, 23, 23, 0.18);
        animation: none;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] :is(
        .artist-bio,
        .bio-line,
        .bio-tagline,
        .bio-links a,
        .hero-title,
        .hxm-link,
        .intro-prose,
        .intro-prose .intro,
        .highlight-text
    ) {
        color: rgba(238, 238, 234, 0.9) !important;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .artist-intro::before {
        color: rgba(238, 238, 234, 0.7);
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-chromatic {
        display: none !important;
        opacity: 0 !important;
        animation: none !important;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-infinite-field {
        opacity: 0.68;
    }

    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="ghost"] .ix-infinite-window {
        border-color: rgba(238, 238, 234, 0.12);
        background: transparent;
        box-shadow: none;
    }

    body.ix-ready .poster-grid,
    body.ix-ready .prototype-grid,
    body.ix-ready .cinema-grid {
        gap: clamp(10px, 2vw, 18px);
    }

    body.ix-ready :is(.ai-product-design-view, .atelier-view, .k28os-view, .metaspace-view),
    body.ix-ready :is(.ai-product-design-iframe, .atelier-iframe, .k28os-iframe, .metaspace-iframe) {
        width: 100%;
        max-width: 100%;
    }

    /* Expanded terminal: a chosen workspace, never an accidental overlay. */
    .ix-terminal:not(.is-collapsed) {
        left: calc(var(--ix-vv-left, 0px) + 8px + env(safe-area-inset-left));
        right: auto;
        top: calc(var(--ix-vv-top, 0px) + var(--nav-height) + 8px + env(safe-area-inset-top));
        bottom: auto;
        width: calc(var(--ix-vv-width, 100vw) - 16px - env(safe-area-inset-left) - env(safe-area-inset-right));
        height: clamp(180px, calc(var(--ix-vv-height, 100dvh) - var(--nav-height) - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)), 100dvh);
        max-height: none;
        background: rgba(18, 18, 19, 0.94);
        box-shadow: 0 24px 70px rgba(0, 0, 0, 0.46);
        backdrop-filter: blur(18px) saturate(112%);
        -webkit-backdrop-filter: blur(18px) saturate(112%);
    }

    .ix-terminal-bar {
        min-height: 46px;
    }

    .ix-terminal-actions button,
    .ix-terminal-form button {
        min-width: 44px;
        min-height: 44px;
    }

    .ix-terminal-tab.nav-btn {
        min-height: 46px;
    }

    /* On the opening page the two compact fixed controls share one safe row. */
    body.ix-ready[data-ix-view="manifesto"] .ix-terminal.is-collapsed {
        left: calc(8px + env(safe-area-inset-left));
        right: auto;
        top: auto;
        bottom: calc(8px + env(safe-area-inset-bottom));
        width: min(var(--ix-compact-width, 252px), calc(100vw - 132px - env(safe-area-inset-left) - env(safe-area-inset-right)));
        height: var(--ix-compact-height);
        max-height: var(--ix-compact-height);
    }

    body.ix-ready[data-ix-view="manifesto"] .ix-terminal.is-collapsed.is-compact-open {
        width: min(var(--ix-compact-open-width), calc(100vw - 16px - env(safe-area-inset-left) - env(safe-area-inset-right)));
        height: var(--ix-compact-open-height);
        max-height: min(var(--ix-compact-open-height), calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));
    }

    .ix-terminal.is-collapsed .ix-terminal-collapsed-copy {
        grid-template-columns: 12px minmax(56px, 1fr) 58px 42px;
        height: var(--ix-compact-height);
        padding-left: 7px;
    }

    .ix-terminal.is-collapsed .ix-terminal-collapsed-copy button {
        min-width: 0;
        height: var(--ix-compact-height);
        padding-inline: 5px;
    }

    .ix-compact-route-copy {
        gap: 4px;
    }

    .ix-compact-route-copy strong {
        overflow: hidden;
        font-size: 0.53rem;
        text-overflow: ellipsis;
    }

    .ix-compact-routes button {
        min-height: 44px;
        padding: 6px 7px;
        touch-action: manipulation;
    }

    .momentum-launcher {
        right: calc(8px + env(safe-area-inset-right));
        bottom: calc(8px + env(safe-area-inset-bottom));
        width: 108px;
        height: 46px;
        padding: 5px 7px;
        grid-template-columns: 36px minmax(0, 1fr);
        touch-action: manipulation;
    }

    .momentum-launcher-state {
        display: none;
    }

    .momentum-eyes--launcher {
        width: 34px;
    }

    body.ix-ready:has(.ix-terminal.is-compact-open) .momentum-launcher,
    body.ix-ready:has(.ix-terminal:not(.is-collapsed)) .momentum-launcher,
    body.ix-ready:has(.ix-terminal.is-compact-open) .ix-karate-lab,
    body.ix-ready:has(.ix-terminal:not(.is-collapsed)) .ix-karate-lab,
    body.ix-ready:has(.momentum-layer:not(.is-hidden)) .ix-karate-lab,
    body.ix-ready:has(.ix-terminal.is-compact-open) #pip-root,
    body.ix-ready:has(.ix-terminal:not(.is-collapsed)) #pip-root,
    body.ix-ready:has(.momentum-layer:not(.is-hidden)) #pip-root {
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    .momentum-layer {
        top: var(--momentum-vv-top, 0px);
        right: auto;
        bottom: auto;
        left: var(--momentum-vv-left, 0px);
        width: var(--momentum-vvw, 100vw);
        height: var(--momentum-vvh, 100dvh);
        padding: 8px;
        padding-top: calc(8px + env(safe-area-inset-top));
        padding-right: calc(8px + env(safe-area-inset-right));
        padding-bottom: calc(8px + env(safe-area-inset-bottom));
        padding-left: calc(8px + env(safe-area-inset-left));
    }

    .momentum-panel {
        width: min(680px, 100%);
        height: min(820px, 100%);
        max-height: 100%;
        overflow: hidden;
        overscroll-behavior: contain;
    }

    .momentum-body {
        overscroll-behavior: contain;
        scrollbar-gutter: stable;
    }

    .momentum-close {
        min-width: 48px;
        min-height: 48px;
    }

    .momentum-panel :is(button, a, summary),
    .momentum-profile-controls label > span,
    .momentum-art-builder-mode label > span,
    .momentum-guide-submit button,
    .momentum-art-picker-move button {
        min-height: 44px;
        touch-action: manipulation;
    }

    body.ix-ready .term-dot {
        position: relative;
        display: inline-grid;
        width: 44px;
        height: 44px;
        flex: 0 0 44px;
        place-items: center;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        appearance: none;
    }

    body.ix-ready .term-dot::before {
        content: '';
        display: block;
        width: 10px;
        height: 10px;
        border-radius: 50%;
        background: var(--term-dot-color);
    }

    body.ix-ready .term-dot.red { --term-dot-color: #ff5f57; }
    body.ix-ready .term-dot.yellow { --term-dot-color: #febc2e; }
    body.ix-ready .term-dot.green { --term-dot-color: #28c840; }

    body.ix-ready .term-header {
        min-height: 54px;
        gap: 0;
        padding-block: 5px;
    }
}

@media (min-width: 721px) and (max-width: 1099px),
       (min-width: 721px) and (hover: none) and (pointer: coarse) {
    body.ix-ready .poster-grid,
    body.ix-ready .prototype-grid,
    body.ix-ready .cinema-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ix-terminal-body {
        grid-template-columns: minmax(230px, 0.72fr) minmax(0, 1.28fr);
    }

    .ix-terminal-tabs {
        grid-template-columns: 1fr;
    }
}

@keyframes ix-manifesto-text-cube-compact {
    0%, 18% {
        transform: translate3d(0, -12px, 0) rotateX(-24deg) rotateY(158deg);
    }
    26% {
        transform: translate3d(0, -21px, 28px) rotateX(-36deg) rotateY(112deg);
    }
    34% {
        transform: translate3d(0, -28px, 42px) rotateX(-38deg) rotateY(58deg);
    }
    40%, 64% {
        transform: translate3d(0, -30px, 46px) rotateX(-24deg) rotateY(-22deg);
    }
    70% {
        transform: translate3d(0, -28px, 42px) rotateX(-38deg) rotateY(34deg);
    }
    78% {
        transform: translate3d(0, -21px, 28px) rotateX(-38deg) rotateY(88deg);
    }
    86%, 100% {
        transform: translate3d(0, -12px, 0) rotateX(-24deg) rotateY(158deg);
    }
}

@media (max-width: 720px) {
    body.ix-ready {
        --nav-height: 52px;
    }

    body.ix-ready {
        font-size: 16px;
    }

    body.ix-ready > #app > header {
        height: var(--nav-height);
        min-height: var(--nav-height);
        padding-inline: 12px;
    }

    body.ix-ready > #app > header .logo {
        max-width: calc(100vw - 24px);
        font-size: 0.82rem;
    }

    body.ix-ready > #app > header .logo .subtitle {
        display: none !important;
    }

    body.ix-ready > #app > main {
        padding: 10px;
    }

    body.ix-ready .view.ix-adapted-view::before {
        margin-bottom: 10px;
        padding: 6px 8px;
        font-size: 0.62rem;
    }

    body.ix-ready .artist-intro {
        grid-template-columns: 1fr;
    }

    body.ix-ready .artist-intro::before {
        top: 10px;
        right: 10px;
        font-size: 0.54rem;
    }

    body.ix-ready .artist-photo-wrap {
        min-height: clamp(238px, 72vw, 340px);
        aspect-ratio: 4 / 3;
    }

    body.ix-ready .artist-bio {
        justify-content: flex-start;
        padding: 24px 18px 20px;
    }

    body.ix-ready .bio-line {
        font-size: clamp(0.94rem, 4vw, 1.06rem);
        line-height: 1.5;
    }

    body.ix-ready .bio-tagline {
        margin-top: 8px;
        font-size: clamp(0.78rem, 3.3vw, 0.9rem);
        line-height: 1.45;
    }

    body.ix-ready .bio-links {
        display: flex;
        flex-wrap: wrap;
        gap: 4px 14px;
        margin-top: 12px;
    }

    body.ix-ready .bio-links a {
        display: inline-flex;
        align-items: center;
        min-height: 44px;
        font-size: 0.76rem;
    }

    body.ix-ready .hero-area,
    body.ix-ready .intro-prose,
    body.ix-ready .gallery-header {
        padding: 26px 18px;
    }

    body.ix-ready .hero-title {
        max-width: 100%;
        font-size: clamp(2rem, 9.4vw, 3.4rem) !important;
        line-height: 1.01;
        letter-spacing: -0.046em;
    }

    body.ix-ready .hero-line + .hero-line {
        margin-top: 0.08em;
    }

    body.ix-ready .mouse-hint {
        width: 15px;
        height: 24px;
        margin-left: 6px;
    }

    body.ix-ready .intro-prose {
        padding-inline: 14px;
    }

    body.ix-ready .manifesto-copy-stage {
        --ix-copy-size: min(74vw, 300px);
        --ix-copy-half: calc(var(--ix-copy-size) / 2);
        min-height: calc(var(--ix-copy-size) + 112px);
        margin-bottom: 18px;
        padding-block: 62px 50px;
        perspective: 980px;
        -webkit-perspective: 980px;
        overflow: visible;
    }

    body.ix-ready .manifesto-copy-stage {
        --ix-cubie-gap: 2px;
    }

    body.ix-ready .manifesto-copy-cube {
        animation-name: ix-manifesto-text-cube-compact;
    }

    body.ix-ready .manifesto-copy-stage::after {
        bottom: 18px;
    }

    body.ix-ready .manifesto-copy-face--front,
    body.ix-ready .manifesto-copy-face--back,
    body.ix-ready .manifesto-rubik-surface-copy--front,
    body.ix-ready .manifesto-rubik-surface-copy--back {
        padding: 13px;
    }

    body.ix-ready[data-ix-view="manifesto"] .intro-prose .manifesto-copy-face--front .intro {
        font-size: clamp(0.64rem, 2.45vw, 0.74rem) !important;
        line-height: 1.3 !important;
        letter-spacing: -0.018em;
    }

    body.ix-ready .manifesto-rubik-surface-copy--front {
        font-size: clamp(0.64rem, 2.45vw, 0.74rem) !important;
        line-height: 1.3 !important;
        letter-spacing: -0.018em;
    }

    body.ix-ready .highlight-text {
        font-size: clamp(1.45rem, 8vw, 2.4rem) !important;
        line-height: 1.08;
    }

    body.ix-ready .desk-row {
        display: grid;
        grid-template-columns: 1fr;
        margin-top: 28px;
    }

    body.ix-ready .mood-terminal {
        width: 100%;
        min-width: 0;
        min-height: 210px;
    }

    body.ix-ready .imac {
        width: 100%;
        min-width: 0;
        padding: 26px 18px;
    }

    body.ix-ready .term-dot {
        position: relative;
        display: inline-grid;
        width: 44px;
        height: 44px;
        flex: 0 0 44px;
        place-items: center;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        appearance: none;
    }

    body.ix-ready .term-dot::before {
        content: '';
        display: block;
        width: 10px;
        height: 10px;
        border-radius: 50%;
        background: var(--term-dot-color);
    }

    body.ix-ready .term-dot.red { --term-dot-color: #ff5f57; }
    body.ix-ready .term-dot.yellow { --term-dot-color: #febc2e; }
    body.ix-ready .term-dot.green { --term-dot-color: #28c840; }

    body.ix-ready .term-header {
        min-height: 54px;
        gap: 0;
        padding-block: 5px;
    }

    .ix-karate-lab {
        left: auto;
        right: calc(8px + env(safe-area-inset-right));
        top: auto;
        bottom: calc(62px + env(safe-area-inset-bottom));
        display: grid;
        grid-template-columns: 36px 18px 36px;
        width: 108px;
        height: 52px;
        border: 0;
        background: rgba(23, 23, 23, 0.22);
        opacity: 0.82;
    }

    .ix-karate-label {
        top: 4px;
        font-size: 0.42rem;
    }

    .ix-fighter {
        margin-top: 10px;
        font-size: 1.65rem;
    }

    body.ix-ready .poster-grid,
    body.ix-ready .prototype-grid,
    body.ix-ready .cinema-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .ix-terminal:not(.is-collapsed),
    .ix-terminal.is-input-focused:not(.is-collapsed) {
        left: calc(6px + env(safe-area-inset-left));
        right: calc(6px + env(safe-area-inset-right));
        top: calc(6px + env(safe-area-inset-top));
        bottom: calc(6px + env(safe-area-inset-bottom));
        width: auto;
        height: auto;
        max-height: none;
    }

    .ix-terminal-brand {
        padding-inline: 9px;
        font-size: 0.67rem;
    }

    .ix-terminal-actions [data-ix-action="pause"] {
        display: none;
    }

    .ix-terminal-body {
        grid-template-columns: 1fr;
        grid-template-rows: minmax(190px, 38%) minmax(0, 1fr);
        height: calc(100% - 46px);
    }

    .ix-terminal-tabs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: repeat(5, minmax(44px, 1fr));
        grid-auto-flow: row;
        overflow: auto;
    }

    .ix-terminal-tab.nav-btn {
        min-height: 44px;
        padding: 7px 8px;
        font-size: 0.66rem;
    }

    .ix-terminal-console {
        grid-template-rows: 34px minmax(0, 1fr) 52px;
    }

    .ix-terminal-entry p {
        font-size: 0.74rem;
    }

    .ix-terminal-form {
        padding-inline: 9px;
    }

    .momentum-layer {
        padding: 0;
    }

    .momentum-panel {
        width: 100%;
        height: var(--momentum-vvh, 100dvh);
        max-height: none;
    }

    .momentum-header {
        min-height: 54px;
        padding: 3px;
    }

    .momentum-heading {
        padding: 10px 11px;
    }

    .momentum-kicker {
        margin-bottom: 3px;
        font-size: 0.58rem;
    }

    .momentum-title {
        font-size: clamp(1.15rem, 5.8vw, 1.62rem);
        line-height: 1.08;
    }

    .momentum-onboarding,
    .momentum-loading,
    .momentum-compatibility,
    .momentum-error {
        padding: 20px 14px calc(24px + env(safe-area-inset-bottom));
    }

    .momentum-onboarding h3,
    .momentum-compatibility h3,
    .momentum-error h3 {
        max-width: 18ch;
        font-size: clamp(1.45rem, 7.4vw, 2.25rem);
        line-height: 1.02;
    }

    .momentum-onboarding p,
    .momentum-compatibility p,
    .momentum-error p {
        font-size: 0.82rem;
        line-height: 1.58;
    }

    .momentum-privacy-grid {
        margin-block: 18px;
    }

    .momentum-privacy-grid span {
        min-height: 64px;
        padding: 11px;
    }

    .momentum-message {
        padding: 14px 12px;
    }

    .momentum-message.is-user {
        margin-left: 6%;
    }

    .momentum-message.is-assistant {
        min-height: 82px;
        padding-left: 78px;
    }

    .momentum-message.is-art-path {
        padding-left: 0;
    }

    .momentum-message-copy {
        font-size: 0.82rem;
        line-height: 1.58;
        overflow-wrap: anywhere;
    }

    .momentum-composer-wrap {
        max-height: min(62dvh, calc(var(--momentum-vvh, 100dvh) - 116px));
        overflow: auto;
        overscroll-behavior: contain;
        scroll-padding-bottom: calc(126px + env(safe-area-inset-bottom));
    }

    .momentum-compose {
        grid-template-columns: minmax(0, 1fr) 72px;
        padding: 7px;
        padding-bottom: calc(7px + env(safe-area-inset-bottom));
    }

    .momentum-compose textarea {
        min-height: 58px;
        max-height: 120px;
        padding: 11px;
        resize: none;
    }

    .momentum-compose button {
        width: auto;
        min-width: 68px;
    }

    .momentum-footer {
        gap: 7px 12px;
        padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
        font-size: 0.62rem;
    }

    .momentum-art-path-preview {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .momentum-art-path-preview > span {
        grid-row: auto;
        min-height: 34px;
        padding-right: 0;
    }

    .momentum-art-builder,
    .momentum-guide-editor {
        max-height: none;
        overflow: visible;
    }

    .momentum-art-builder-head,
    .momentum-art-picker-head {
        gap: 8px;
    }

    .momentum-art-picker-card {
        min-height: 106px !important;
    }

    .momentum-language-echo,
    .momentum-text-field {
        max-width: 100%;
        overflow: clip;
    }

    .momentum-profile-intro p,
    .momentum-guide-preview p,
    .momentum-art-builder-copy,
    .momentum-art-path-intro,
    .momentum-art-card-prompt,
    .momentum-art-path-disclaimer {
        font-size: 0.72rem;
        line-height: 1.55;
    }

    .momentum-profile-controls legend,
    .momentum-art-builder-mode legend,
    .momentum-art-builder legend,
    .momentum-art-builder-head p,
    .momentum-art-builder-camera small,
    .momentum-art-builder-submit > span,
    .momentum-art-picker-help,
    .momentum-art-picker-status,
    .momentum-runtime-status,
    .momentum-message-runtime,
    .momentum-text-field-caption {
        font-size: 0.66rem;
        line-height: 1.45;
    }

    .momentum-profile-controls label > span,
    .momentum-art-builder-mode label > span,
    .momentum-art-picker-card strong,
    .momentum-art-picker-sequence li,
    .momentum-art-controls button,
    .momentum-art-card-open,
    .momentum-text-choreography > summary,
    .momentum-footer,
    .momentum-footer button {
        font-size: 0.69rem;
        line-height: 1.4;
    }

    .momentum-footer label {
        display: inline-flex;
        min-height: 44px;
        align-items: center;
        gap: 7px;
    }

    .momentum-art-timer-step {
        overflow: visible;
        white-space: normal;
        text-overflow: clip;
        overflow-wrap: anywhere;
    }

    .momentum-text-node > i,
    .momentum-language-echo-node > i {
        font-size: 0.64rem;
    }
}

@media (max-width: 520px) {
    .momentum-profile-controls fieldset {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .momentum-path-tools {
        grid-template-columns: 1fr;
    }

    .momentum-path-tools > span,
    .momentum-runtime-status {
        grid-column: auto;
        justify-self: start;
        white-space: normal;
    }

    .momentum-guide-submit {
        grid-template-columns: 1fr;
    }

    .momentum-guide-submit > span {
        grid-column: auto;
    }

    .momentum-art-picker-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .momentum-message.is-assistant {
        min-height: 72px;
        padding-left: 66px;
    }

    .momentum-eyes--message {
        top: 25px;
        left: 9px;
        width: 48px;
        height: 24px;
        gap: 4px;
    }

    .momentum-eyes--message .momentum-eye {
        width: 21px;
        height: 14px;
    }

    .momentum-text-node:nth-child(3n),
    .momentum-language-echo-node:nth-child(3n) {
        display: none;
    }
}

@media (max-width: 360px) {
    body.ix-ready .hero-title {
        font-size: clamp(1.82rem, 9vw, 2.55rem) !important;
    }

    body.ix-ready .manifesto-copy-stage {
        --ix-copy-size: min(74vw, 270px);
    }

    .ix-terminal.is-collapsed .ix-terminal-collapsed-copy {
        grid-template-columns: 10px minmax(48px, 1fr) 52px 38px;
        padding-left: 5px;
    }

    .ix-compact-discover-label {
        font-size: 0.48rem;
    }

    .momentum-launcher {
        width: 100px;
    }

    body.ix-ready[data-ix-view="manifesto"] .ix-terminal.is-collapsed {
        width: min(var(--ix-compact-width, 252px), calc(100vw - 124px - env(safe-area-inset-left) - env(safe-area-inset-right)));
    }

}

@media (max-width: 340px) {
    .momentum-art-picker-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-height: 520px) and (orientation: landscape) {
    .momentum-header {
        min-height: 48px;
    }

    .momentum-heading {
        padding-block: 6px;
    }

    .momentum-kicker {
        display: none;
    }

    .momentum-compose textarea {
        min-height: 46px;
    }

    .momentum-composer-wrap {
        min-height: 0;
        max-height: calc(var(--momentum-vvh, 100dvh) - var(--nav-height, 58px) - 96px);
        overflow: auto;
        overscroll-behavior: contain;
        scroll-padding-bottom: 96px;
    }

    .momentum-art-builder,
    .momentum-guide-editor {
        max-height: none;
        overflow: visible;
    }
}

/* ==========================
   MOMENTUM / SHARED K28 EXPERIENCE DIRECTORY
   ========================== */

.momentum-experience-browser {
    display: grid;
    gap: 12px;
}

.momentum-experience-browser[hidden] {
    display: none;
}

.momentum-experience-controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: end;
}

.momentum-experience-controls label {
    display: grid;
    gap: 5px;
    color: var(--momentum-muted);
    font-size: 0.52rem;
    letter-spacing: 0.07em;
}

.momentum-experience-controls label:last-child {
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: center;
    min-height: 44px;
    padding: 8px 10px;
    background: var(--momentum-surface);
    color: var(--momentum-text);
    cursor: pointer;
}

.momentum-experience-controls input[type="search"] {
    width: 100%;
    min-height: 44px;
    padding: 9px 11px;
    background: var(--momentum-surface);
    color: var(--momentum-text);
    font-size: 0.66rem;
}

.momentum-experience-controls input[type="search"]::placeholder {
    color: var(--momentum-muted);
}

.momentum-experience-status,
.momentum-experience-recommendations-label {
    margin: 0;
    color: var(--momentum-signal);
    font-size: 0.52rem;
    letter-spacing: 0.08em;
}

.momentum-experience-grid,
.momentum-experience-recommendations-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.momentum-experience-card {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto auto;
    gap: 6px;
    min-width: 0;
    min-height: 162px;
    padding: 11px;
    background: var(--momentum-surface);
    color: var(--momentum-text);
}

.momentum-experience-card h4,
.momentum-experience-card p {
    margin: 0;
}

.momentum-experience-card h4 {
    font-size: 0.72rem;
    letter-spacing: -0.025em;
}

.momentum-experience-card p {
    color: var(--momentum-muted);
    font-size: 0.56rem;
    line-height: 1.45;
}

.momentum-experience-card small,
.momentum-experience-kicker {
    color: var(--momentum-muted);
    font-size: 0.47rem;
    line-height: 1.35;
    letter-spacing: 0.06em;
}

.momentum-experience-kicker {
    color: var(--momentum-signal);
}

.momentum-experience-open {
    min-height: 36px;
    padding: 7px 9px;
    background: var(--momentum-surface-active);
    color: var(--momentum-text);
    font-size: 0.52rem;
    letter-spacing: 0.06em;
    text-align: left;
    cursor: pointer;
}

.momentum-experience-recommendations {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.momentum-experience-recommendations-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.momentum-experience-card.is-recommendation {
    min-height: 148px;
    padding: 9px;
    background: color-mix(in srgb, var(--momentum-signal) 9%, var(--momentum-bg));
}

@media (max-width: 620px) {
    .momentum-experience-controls,
    .momentum-experience-grid,
    .momentum-experience-recommendations-grid {
        grid-template-columns: 1fr;
    }

    .momentum-experience-card,
    .momentum-experience-card.is-recommendation {
        min-height: 0;
    }

    .momentum-experience-card h4 {
        font-size: 0.78rem;
        line-height: 1.24;
    }

    .momentum-experience-card p {
        font-size: 0.69rem;
        line-height: 1.52;
    }

    .momentum-experience-card small,
    .momentum-experience-kicker,
    .momentum-experience-status,
    .momentum-experience-recommendations-label {
        font-size: 0.58rem;
        line-height: 1.42;
    }

    .momentum-experience-open {
        font-size: 0.66rem;
    }
}

/* ==========================
   MOMENTUM / GLOBAL COMPACT RAIL
   ========================== */

/* Momentum remains one Manifesto-styled companion across every section. The
   compact launcher shares the already-reserved header rail with the section
   navigator, so neither control covers the active page or embedded site. */
body.ix-ready:not([data-ix-view="manifesto"]) .momentum-launcher {
    left: 62px;
    right: auto;
    top: 0;
    bottom: auto;
    width: 148px;
    height: var(--ix-compact-height);
    padding: 5px 8px;
    grid-template-columns: 34px minmax(0, 1fr);
    grid-template-rows: 1fr 1fr;
    align-items: center;
    border-top: 0;
    border-bottom: 0;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    transition-delay: 0s;
    background: rgba(23, 23, 23, 0.5);
    color: var(--ix-paper);
    box-shadow: none;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}

body.ix-ready:not([data-ix-view="manifesto"]) .momentum-launcher:hover {
    background: var(--ix-pink);
    color: var(--ix-ink);
}

body.ix-ready:not([data-ix-view="manifesto"]) .momentum-launcher-state {
    color: inherit;
    font-size: 0.52rem;
}

body.ix-ready:not([data-ix-view="manifesto"]) .momentum-eyes--launcher {
    width: 30px;
    height: 22px;
}

body.ix-ready:has(.momentum-layer:not(.is-hidden)) .momentum-launcher {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(8px);
}

/* Keep the chosen conversation below the persistent rail. The panel uses the
   same dark-glass material and component rules as it does on Manifesto. */
body.ix-ready:not([data-ix-view="manifesto"]) .momentum-layer {
    top: calc(var(--momentum-vv-top, 0px) + var(--nav-height));
    right: auto;
    bottom: auto;
    left: var(--momentum-vv-left, 0px);
    width: var(--momentum-vvw, 100vw);
    height: calc(var(--momentum-vvh, 100dvh) - var(--nav-height));
}

body.ix-ready:not([data-ix-view="manifesto"]) .momentum-panel {
    height: min(760px, calc(100% - 20px));
    max-height: calc(100% - 20px);
}

@media (max-width: 720px) {
    body.ix-ready:not([data-ix-view="manifesto"]) .momentum-layer {
        padding: 0;
    }

    body.ix-ready:not([data-ix-view="manifesto"]) .momentum-panel {
        width: 100%;
        height: 100%;
        max-height: none;
    }
}

@media (max-width: 620px) {
    body.ix-ready:not([data-ix-view="manifesto"]) .momentum-launcher {
        left: calc(6px + env(safe-area-inset-left));
        top: env(safe-area-inset-top);
        width: 44px;
        min-width: 44px;
        height: var(--ix-compact-height);
        padding: 5px;
        grid-template-columns: 1fr;
        grid-template-rows: 1fr;
        justify-items: center;
        touch-action: manipulation;
    }

    body.ix-ready:not([data-ix-view="manifesto"]) .momentum-launcher :is(.momentum-launcher-label, .momentum-launcher-state) {
        display: none;
    }

    body.ix-ready:not([data-ix-view="manifesto"]) .momentum-eyes--launcher {
        grid-row: auto;
        width: 34px;
        height: 24px;
    }

    body.ix-ready:not([data-ix-view="manifesto"]) .ix-terminal.is-collapsed {
        width: min(var(--ix-compact-width, 228px), calc(100vw - 58px - env(safe-area-inset-left) - env(safe-area-inset-right)));
    }
}

body.ix-motion-paused *,
body.ix-motion-paused *::before,
body.ix-motion-paused *::after {
    animation-play-state: paused !important;
}

@media (prefers-reduced-motion: reduce) {
    .ix-terminal,
    .ix-compact-discover-label,
    .ix-compact-discover-prompt,
    .ix-compact-routes,
    .ix-compact-routes button,
    .ix-karate-lab,
    .momentum-launcher,
    .ix-layout-switcher,
    body.ix-ready[data-ix-view="manifesto"] > #app > main,
    body.ix-ready[data-ix-view="manifesto"] .artist-intro,
    body.ix-ready[data-ix-view="manifesto"] .artist-photo-wrap,
    body.ix-ready[data-ix-view="manifesto"] .hero-area,
    body.ix-ready[data-ix-view="manifesto"] .intro-prose,
    body.ix-ready[data-ix-view="manifesto"] .desk-row {
        transition: none !important;
    }

    .ix-terminal-actions [data-ix-action="layout"],
    .ix-layout-switcher {
        animation: none !important;
        color: var(--ix-layout-text-base);
    }

    .ix-infinite-window,
    .ix-chromatic,
    .ix-color-star,
    .ix-fighter,
    .ix-duel-impact,
    .ix-terminal.is-collapsed,
    .ix-terminal.is-collapsed::before,
    .ix-terminal-collapsed-copy::before,
    .ix-compact-discover-label,
    .ix-compact-discover-prompt,
    .ix-compact-discover > i,
    .ix-compact-routes button,
    .ix-route-signal,
    .ix-screen-line,
    .artist-photo-shape,
    .manifesto-copy-cube,
    .manifesto-copy-stage::after,
    .momentum-launcher,
    .momentum-panel,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .artist-intro,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .intro-prose,
    body.ix-ready[data-ix-view="manifesto"][data-ix-layout="rail"] .imac,
    body.ix-ready .artist-photo,
    .momentum-message::before,
    .momentum-message-copy,
    .momentum-neuro-intro > *,
    .momentum-neuro-principles > article,
    .momentum-neuro-principles article::after,
    .momentum-neuro-principles article > span,
    .momentum-neuro-research,
    .momentum-text-choreography,
    .momentum-text-choreography > summary,
    .momentum-text-field-axis,
    .momentum-text-node,
    .momentum-text-node > i,
    .momentum-text-node::after,
    .momentum-language-echo,
    .momentum-language-echo-field,
    .momentum-language-echo-node,
    .momentum-language-echo-node > i,
    .momentum-art-path,
    .momentum-art-card,
    .momentum-art-path-duration,
    .momentum-art-path-preview::before,
    .momentum-path-tools button::before,
    .momentum-runtime-status {
        animation: none !important;
    }

    .momentum-launcher,
    .momentum-launcher *,
    .momentum-panel,
    .momentum-panel * {
        text-shadow: none !important;
    }

    .momentum-panel :is(button, a, textarea, input, summary) {
        transition: none !important;
    }

    .momentum-eye,
    .momentum-eye-pupil {
        animation: none !important;
    }

    .momentum-eye {
        transform: rotate(var(--momentum-eye-tilt)) scaleY(var(--momentum-eye-open)) !important;
    }

    .momentum-eye-pupil {
        transform: translate(calc(-50% + var(--momentum-eye-x)), calc(-50% + var(--momentum-eye-y))) !important;
    }

    .momentum-neuro-principles article::after {
        opacity: 0.72;
        transform: scaleX(1);
    }

    .momentum-text-node {
        opacity: 0.9;
        transform: translate(-50%, -50%) rotate(var(--rotation)) scale(var(--scale));
    }

    .momentum-text-node > i,
    .momentum-text-node::after {
        transform: none;
    }

    .momentum-language-echo-node {
        opacity: 0.82;
        transform: translate(-50%, -50%) rotate(var(--rotation)) scale(var(--scale));
    }

    .momentum-language-echo-node > i {
        transform: none;
    }

    .momentum-art-progress > span,
    .momentum-art-card::after,
    .momentum-art-schedule-step {
        transition: none !important;
    }

    body.ix-ready .anim-fade-up,
    body.ix-ready .anim-reveal .hero-line,
    body.ix-ready .anim-poster,
    body.ix-ready .ix-window-entry,
    body.ix-ready .terminal-cursor,
    body.ix-ready .term-line .term-typed-cursor,
    body.ix-ready .poster-card {
        opacity: 1 !important;
        clip-path: none !important;
        transform: none !important;
        transition: none !important;
        animation: none !important;
    }

    .ix-chromatic-pink { background: var(--ix-pink); opacity: 0.36; }
    .ix-chromatic-blue { background: var(--ix-blue); opacity: 0.36; }
    .ix-chromatic-white { background: var(--ix-white); opacity: 0.24; }

    body.ix-ready .artist-photo {
        clip-path: none;
    }

    body.ix-ready .artist-photo-shape {
        clip-path: polygon(50% 0%, 100% 0%, 100% 0%, 100% 50%, 100% 100%, 100% 100%, 50% 100%, 0% 100%, 0% 100%, 0% 50%, 0% 0%, 0% 0%) !important;
    }

    body.ix-ready .artist-photo-wrap.anim-fade-up.ix-window-entry {
        clip-path: none !important;
        border-radius: 0 !important;
        animation: none !important;
    }

    .ix-screen-line {
        width: var(--ix-type-width);
        border-right: 0;
        opacity: 0.28;
    }

    body.ix-ready .manifesto-copy-cube {
        opacity: 1 !important;
        transform: rotateX(-18deg) rotateY(-24deg) !important;
    }

    body.ix-ready .manifesto-copy-cube > .manifesto-copy-face {
        opacity: 1 !important;
        transition: none !important;
    }

    body.ix-ready .manifesto-rubik-core {
        display: none !important;
    }

    body.ix-ready .manifesto-copy-stage::after {
        opacity: 0.38;
        filter: blur(18px);
        transform: translateX(-50%) scaleX(0.88);
    }

    body.ix-ready[data-ix-view="manifesto"] .artist-intro,
    body.ix-ready[data-ix-view="manifesto"] .hero-area,
    body.ix-ready[data-ix-view="manifesto"] .intro-prose,
    body.ix-ready[data-ix-view="manifesto"] .imac {
        background-color: var(--ix-panel-color);
        animation: none !important;
    }

    .ix-terminal.is-collapsed {
        background: var(--ix-muted);
        animation: none !important;
    }
}

@media (forced-colors: active) {
    .ix-terminal-collapsed-copy::before {
        display: none;
    }

    .momentum-text-choreography,
    .momentum-language-echo {
        display: none;
    }

    .momentum-launcher,
    .momentum-panel {
        animation: none !important;
        text-shadow: none !important;
    }

    .momentum-eyes {
        --momentum-eye-cutout: Canvas;
        color: CanvasText !important;
        forced-color-adjust: none;
    }

    .ix-terminal,
    .momentum-panel,
    .momentum-launcher,
    .momentum-art-path-preview,
    .momentum-art-builder,
    .momentum-guide-editor,
    .momentum-profile-intro,
    .momentum-art-picker,
    .momentum-art-picker-card,
    .momentum-experience-card,
    .momentum-experience-controls label,
    .momentum-path-tools,
    body.ix-ready .artist-intro,
    body.ix-ready .hero-area,
    body.ix-ready .intro-prose,
    body.ix-ready .poster-card {
        border: 1px solid CanvasText !important;
        background: Canvas !important;
        color: CanvasText !important;
    }

    .momentum-art-builder fieldset span,
    .momentum-profile-controls label > span,
    .momentum-art-builder-mode label > span,
    .momentum-art-builder-camera,
    .momentum-art-builder-submit button,
    .momentum-guide-submit button,
    .momentum-art-picker-move button,
    .momentum-path-tools > button {
        border: 1px solid CanvasText !important;
        background: Canvas !important;
        color: CanvasText !important;
    }

    .momentum-panel :is(button, a, textarea, input, summary, .momentum-message, .momentum-art-card, .momentum-art-timer, .momentum-art-schedule-step) {
        border: 1px solid CanvasText !important;
        background: Canvas !important;
        color: CanvasText !important;
        forced-color-adjust: auto;
    }

    .momentum-progress span,
    .momentum-art-progress > span {
        background: CanvasText !important;
        -webkit-mask: none;
        mask: none;
    }

    body.ix-ready .manifesto-copy-face--front {
        border-color: CanvasText;
        background: Canvas;
        color: CanvasText;
        box-shadow: inset 0 0 0 1px CanvasText;
        transform: none;
    }

    body.ix-ready .manifesto-rubik-core {
        display: none !important;
    }

    body.ix-ready .manifesto-copy-cube > .manifesto-copy-face {
        opacity: 1 !important;
        transition: none !important;
    }

    body.ix-ready .manifesto-copy-face--back,
    body.ix-ready .manifesto-copy-face--right,
    body.ix-ready .manifesto-copy-face--left,
    body.ix-ready .manifesto-copy-face--top,
    body.ix-ready .manifesto-copy-face--bottom {
        display: none;
    }
}
