/* Disclosure motion primitives. Page composition is otherwise unchanged. */
html.rp-layout-changing,
html.rp-layout-changing body {
    overflow-anchor: none !important;
    scroll-behavior: auto !important;
}

/* Override the more specific preview crops only for the measured transition. */
html[data-theme] body.light-theme #main .rp-is-expanding,
html[data-theme] body.light-theme #main #client-reels .rp-motion-reels.rp-is-expanding {
    max-height: none !important;
    min-height: 0 !important;
    overflow: clip !important;
    transition: none !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
}

html[data-theme] body.light-theme #main .rp-motion-reels.rp-is-expanding .video-card {
    display: block !important;
}

html body.light-theme .rp-is-expanding {
    overflow: hidden !important;
    overflow: clip !important;
    transition: none !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-anchor: none;
    will-change: height;
}

/* Reels have their own measured animation in content-motion.js.
   Disable the legacy max-height/opacity/translate transitions and the generic
   IntersectionObserver reveal transition inside this disclosure. */
html body.light-theme .rp-motion-reels {
    max-height: none !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    overflow: hidden;
    overflow: clip;
    contain: paint;
}
html body.light-theme .rp-motion-reels[hidden] { display: none !important; }
html body.light-theme .rp-motion-reels.rp-reels-animating { display: grid !important; }
html body.light-theme .rp-motion-reels .video-card.reveal,
html body.light-theme .rp-motion-reels .video-card.reveal.is-visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

html body.light-theme .client-full-list { transition: none !important; max-height: none !important; }
html body.light-theme .client-full-list:not(.is-open) {
    height: 0 !important;
    min-height: 0 !important;
    padding-block: 0 !important;
    margin-block: 0 !important;
    overflow: hidden !important;
    visibility: hidden;
}
html body.light-theme .client-full-list.is-open { height: auto; opacity: 1; visibility: visible; }
html body.light-theme .client-full-list.rp-is-expanding { visibility: visible; opacity: 1; }
html body.light-theme .client-full-list .client-logo { animation: none !important; }
html body.light-theme .rp-catalog-compact .rp-is-expanding { box-sizing: border-box; }
html body.light-theme details.rp-is-expanding { box-sizing: border-box; }
html body.light-theme .client-full-list .client-logo {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
}

/* AI catalogue tab change: the whole result set swipes horizontally and fades
   as one surface. JavaScript also eases the measured height between tabs. */
html body.light-theme [data-ai-catalog="full"] { position: relative; }
html body.light-theme [data-ai-catalog="full"].rp-catalog-is-switching {
    isolation: isolate;
    min-height: 1px;
    backface-visibility: hidden;
    will-change: height, opacity, transform;
}

@media (prefers-reduced-motion: reduce) {
    html body.light-theme .rp-is-expanding { will-change: auto; }
    html body.light-theme [data-ai-catalog="full"].rp-catalog-is-switching { will-change: auto; }
}

/* Scroll-triggered AI chapter intro. The layout is centered before motion is
   prepared, so there is no jump when JavaScript starts the typewriter. */
html body.light-theme .ai-zone-intro {
    display: grid;
    justify-items: center;
    text-align: center;
}

html body.light-theme .ai-zone-intro .ai-zone-kicker {
    width: 100%;
    text-align: center;
}

html body.light-theme .ai-zone-intro .ai-zone-heading {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    justify-items: center !important;
    gap: clamp(18px, 2.2vw, 30px) !important;
    position: relative;
    width: 100%;
}

html body.light-theme .ai-zone-intro .ai-zone-mark {
    margin-inline: auto !important;
}

/* The mark is a transient chapter card, not a persistent badge. The final copy
   keeps its full footprint underneath it, so the section never shifts. */
html body.light-theme .ai-zone-intro.is-typewriter-prepared .ai-zone-mark {
    display: grid !important;
    position: absolute !important;
    z-index: 2;
    inset: 0 !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    place-items: center !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--ai-accent) !important;
    font-size: clamp(5.75rem, 13vw, 10.5rem) !important;
    font-weight: 650 !important;
    line-height: .8 !important;
    letter-spacing: -.065em !important;
    opacity: 0;
    pointer-events: none;
    transform: scale(.975);
    overflow: visible !important;
    filter: brightness(.92);
    text-shadow: 0 0 0 rgba(40, 92, 196, 0);
    transition:
        opacity 380ms ease,
        transform 1050ms cubic-bezier(.18, .78, .16, 1),
        filter 700ms ease,
        text-shadow 700ms ease;
}

html body.light-theme .ai-zone-intro.is-typewriter-prepared .ai-zone-mark::before {
    content: "";
    position: absolute;
    width: 1.7em;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(91, 142, 236, .34) 0%, rgba(91, 142, 236, .12) 38%, transparent 72%);
    opacity: 0;
    filter: blur(15px);
    transform: scale(.58);
    transition: opacity 520ms ease, transform 900ms cubic-bezier(.18, .78, .16, 1);
    pointer-events: none;
}

html body.light-theme .ai-zone-intro.is-typewriter-prepared.is-ai-splash-visible .ai-zone-mark {
    opacity: 1;
    transform: scale(1);
    animation: rp-ai-mark-illuminate 1050ms ease-out both;
}

html body.light-theme .ai-zone-intro.is-typewriter-prepared.is-ai-splash-visible .ai-zone-mark::before {
    opacity: 1;
    transform: scale(1);
}

html body.light-theme .ai-zone-intro.is-typewriter-prepared.is-ai-splash-exiting .ai-zone-mark {
    opacity: 0;
    transform: scale(1.012);
}

html body.light-theme .ai-zone-intro.is-typewriter-prepared.is-ai-copy-stage .ai-zone-mark {
    visibility: visible;
    opacity: 1;
    filter: brightness(1);
    text-shadow: 0 0 0 rgba(40, 92, 196, 0);
    transform: translateY(calc(-50% + .62rem)) scale(.116);
}

html body.light-theme .ai-zone-intro.is-typewriter-prepared.is-ai-copy-stage .ai-zone-mark::before {
    opacity: 0;
    transform: scale(.42);
}

html body.light-theme .ai-zone-intro.is-typewriter-prepared .ai-zone-kicker {
    opacity: 0;
    transform: translateY(5px);
    transition: opacity 360ms ease, transform 480ms cubic-bezier(.22, .72, .18, 1);
}

html body.light-theme .ai-zone-intro.is-typewriter-prepared.is-ai-copy-stage .ai-zone-kicker {
    opacity: 1;
    transform: translateY(0);
}

html body.light-theme .ai-zone-intro .ai-zone-heading > div {
    display: grid;
    justify-items: center;
    width: 100%;
}

html body.light-theme .ai-zone-intro .ai-zone-persistent-mark {
    display: block;
    margin: 0 0 clamp(12px, 1.4vw, 18px);
    color: var(--ai-accent);
    font: 700 clamp(1rem, 1.45vw, 1.2rem)/1 Manrope, Arial, sans-serif;
    letter-spacing: .16em;
    text-indent: .16em;
    opacity: 1;
}

html body.light-theme .ai-zone-intro.is-typewriter-prepared .ai-zone-persistent-mark {
    visibility: hidden;
    opacity: 0;
    transform: translateY(5px);
    transition: opacity 360ms ease, transform 480ms cubic-bezier(.22, .72, .18, 1);
}

html body.light-theme .ai-zone-intro.is-typewriter-prepared.is-ai-copy-stage .ai-zone-persistent-mark {
    visibility: hidden;
    opacity: 0;
    transform: translateY(0);
}

html body.light-theme .ai-zone-intro .ai-zone-heading h2 {
    max-width: 22ch !important;
    text-align: center !important;
}

html body.light-theme .ai-zone-intro .ai-zone-heading p {
    max-width: 58ch !important;
    margin-inline: auto !important;
    text-align: center !important;
}

html body.light-theme .ai-zone-intro .ai-type-line {
    display: block;
    min-height: 1em;
}

html body.light-theme .ai-zone-intro .ai-type-text {
    white-space: pre-wrap;
}

html body.light-theme .ai-zone-intro .ai-type-cursor {
    display: inline-block;
    width: .055em;
    height: .78em;
    margin-left: .055em;
    background: currentColor;
    opacity: 0;
    vertical-align: -.03em;
}

html body.light-theme .ai-zone-intro .ai-type-cursor.is-visible {
    opacity: 1;
}

html body.light-theme .ai-zone-intro .ai-type-cursor.is-idle {
    animation: rp-ai-cursor-blink .82s step-end infinite;
}

html body.light-theme .ai-zone-intro .ai-type-cursor.is-fading {
    opacity: 0;
    animation: none;
    transition: opacity 420ms ease;
}

html body.light-theme .ai-zone-intro.is-typewriter-prepared .ai-zone-heading p {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 620ms ease, transform 620ms cubic-bezier(.22, .72, .18, 1);
}

html body.light-theme .ai-zone-intro.is-typewriter-prepared.is-copy-visible .ai-zone-heading p {
    opacity: 1;
    transform: translateY(0);
}

@keyframes rp-ai-cursor-blink {
    0%, 46% { opacity: 1; }
    47%, 100% { opacity: 0; }
}

@keyframes rp-ai-mark-illuminate {
    0% {
        filter: brightness(.82) saturate(.88);
        text-shadow: 0 0 0 rgba(40, 92, 196, 0);
    }
    42% {
        filter: brightness(1.38) saturate(1.28);
        text-shadow: 0 0 16px rgba(72, 122, 222, .42), 0 0 48px rgba(72, 122, 222, .22);
    }
    100% {
        filter: brightness(1) saturate(1);
        text-shadow: 0 0 4px rgba(40, 92, 196, .12);
    }
}

/* The AI chapter occasionally breaks into a short RGB signal glitch after its
   typewriter has finished. The title card returns for a beat, then the normal
   copy settles back in without changing the section's layout. */
@keyframes rp-ai-rgb-glitch-heading {
    0%, 100% {
        clip-path: inset(0);
        filter: none;
        text-shadow: none;
        transform: none;
    }
    8% {
        clip-path: inset(8% 0 72% 0);
        text-shadow: -3px 0 rgba(255, 49, 96, .8), 3px 0 rgba(34, 215, 255, .8);
        transform: translate3d(-1px, 0, 0);
    }
    16% {
        clip-path: inset(62% 0 12% 0);
        text-shadow: 3px 0 rgba(255, 49, 96, .72), -3px 0 rgba(34, 215, 255, .72);
        transform: translate3d(1px, 0, 0);
    }
    24% {
        clip-path: inset(35% 0 38% 0);
        text-shadow: -2px 0 rgba(255, 49, 96, .62), 2px 0 rgba(34, 215, 255, .62);
        transform: none;
    }
    32%, 58% {
        clip-path: inset(0);
        text-shadow: none;
        transform: none;
    }
    66% {
        clip-path: inset(74% 0 6% 0);
        text-shadow: -2px 0 rgba(255, 49, 96, .68), 2px 0 rgba(34, 215, 255, .68);
        transform: skewX(-1deg);
    }
    74% {
        clip-path: inset(18% 0 58% 0);
        text-shadow: 2px 0 rgba(255, 49, 96, .68), -2px 0 rgba(34, 215, 255, .68);
        transform: skewX(1deg);
    }
    84% {
        clip-path: inset(0);
        text-shadow: none;
        transform: none;
    }
}

@keyframes rp-ai-rgb-glitch-copy {
    0%, 100% {
        clip-path: inset(0);
        text-shadow: none;
        transform: translateY(0);
    }
    12% {
        clip-path: inset(16% 0 64% 0);
        text-shadow: -2px 0 rgba(255, 49, 96, .64), 2px 0 rgba(34, 215, 255, .64);
        transform: translate3d(1px, 0, 0);
    }
    22% {
        clip-path: inset(66% 0 12% 0);
        text-shadow: 2px 0 rgba(255, 49, 96, .58), -2px 0 rgba(34, 215, 255, .58);
        transform: translate3d(-1px, 0, 0);
    }
    34%, 62% {
        clip-path: inset(0);
        text-shadow: none;
        transform: translateY(0);
    }
    72% {
        clip-path: inset(42% 0 34% 0);
        text-shadow: -2px 0 rgba(255, 49, 96, .54), 2px 0 rgba(34, 215, 255, .54);
        transform: translate3d(1px, 0, 0);
    }
    82% {
        clip-path: inset(0);
        text-shadow: none;
        transform: translateY(0);
    }
}

@keyframes rp-ai-glitch-mark {
    0%, 15%, 74%, 100% {
        opacity: 0;
        transform: scale(.985);
        text-shadow: none;
    }
    20%, 31% {
        opacity: 1;
        transform: scale(1);
        text-shadow: -4px 0 rgba(255, 49, 96, .82), 4px 0 rgba(34, 215, 255, .82);
    }
    38%, 57% {
        opacity: .88;
        transform: scale(1.008);
        text-shadow: 3px 0 rgba(255, 49, 96, .7), -3px 0 rgba(34, 215, 255, .7);
    }
    63% {
        opacity: 0;
        transform: scale(1.015);
        text-shadow: none;
    }
}

html body.light-theme .ai-zone-intro.is-ai-rgb-glitching .ai-zone-heading h2 {
    animation: rp-ai-rgb-glitch-heading 2.2s steps(1, end) both;
    isolation: isolate;
    will-change: clip-path, text-shadow, transform;
}

html body.light-theme .ai-zone-intro.is-ai-rgb-glitching .ai-zone-heading p {
    animation: rp-ai-rgb-glitch-copy 2.2s steps(1, end) both;
    will-change: clip-path, text-shadow, transform;
}

html body.light-theme .ai-zone-intro.is-typewriter-prepared.is-ai-copy-stage.is-ai-rgb-glitching .ai-zone-mark {
    visibility: visible !important;
    animation: rp-ai-glitch-mark 2.2s steps(1, end) both;
    will-change: opacity, text-shadow, transform;
}

@media (max-width: 620px) {
    html body.light-theme .ai-zone-intro .ai-zone-heading {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 16px !important;
    }

    html body.light-theme .ai-zone-intro.is-typewriter-prepared.is-ai-copy-stage .ai-zone-mark {
        transform: translateY(calc(-50% + .52rem)) scale(.17);
    }
}

@media (prefers-reduced-motion: reduce) {
    html body.light-theme .ai-zone-intro.is-typewriter-prepared .ai-zone-mark {
        display: none !important;
    }

    html body.light-theme .ai-zone-intro.is-typewriter-prepared .ai-zone-persistent-mark,
    html body.light-theme .ai-zone-intro.is-typewriter-prepared.is-ai-copy-stage .ai-zone-persistent-mark {
        visibility: visible;
        opacity: 1;
        transform: none;
        transition: none;
    }

    html body.light-theme .ai-zone-intro.is-typewriter-prepared .ai-zone-kicker {
        opacity: 1;
        transform: none;
        transition: none;
    }

    html body.light-theme .ai-zone-intro .ai-type-cursor {
        display: none;
        animation: none;
    }

    html body.light-theme .ai-zone-intro.is-typewriter-prepared .ai-zone-heading p {
        opacity: 1;
        transform: none;
        transition: none;
    }

    html body.light-theme .ai-zone-intro.is-ai-rgb-glitching .ai-zone-heading h2,
    html body.light-theme .ai-zone-intro.is-ai-rgb-glitching .ai-zone-heading p,
    html body.light-theme .ai-zone-intro.is-ai-rgb-glitching .ai-zone-mark {
        animation: none !important;
        clip-path: none !important;
        filter: none !important;
        text-shadow: none !important;
        transform: none !important;
    }

    html body.light-theme .ai-zone-intro.is-typewriter-prepared.is-ai-copy-stage.is-ai-rgb-glitching .ai-zone-mark {
        visibility: hidden !important;
        opacity: 0 !important;
    }
}

/* Portfolio chapter: type the heading and its descriptor once they enter view. */
html body.light-theme #showreel .section-header.is-portfolio-typewriter-prepared .portfolio-display-title {
    min-height: .94em;
}

html body.light-theme #showreel .section-header.is-portfolio-typewriter-prepared #showreel-title {
    min-height: 1.3em;
}

html body.light-theme #showreel .portfolio-type-line {
    display: inline;
}

html body.light-theme #showreel .portfolio-type-text {
    white-space: pre-wrap;
}

html body.light-theme #showreel .portfolio-type-cursor {
    display: inline-block;
    width: .055em;
    height: .8em;
    margin-left: .065em;
    background: currentColor;
    opacity: 0;
    vertical-align: -.035em;
}

html body.light-theme #showreel #showreel-title .portfolio-type-cursor {
    width: .075em;
    height: .78em;
    margin-left: .12em;
}

html body.light-theme #showreel .portfolio-type-cursor.is-visible {
    opacity: 1;
}

html body.light-theme #showreel .portfolio-type-cursor.is-idle {
    animation: rp-portfolio-cursor-blink .82s step-end infinite;
}

html body.light-theme #showreel .portfolio-type-cursor.is-fading {
    opacity: 0;
    animation: none;
    transition: opacity 360ms ease;
}

@keyframes rp-portfolio-cursor-blink {
    0%, 46% { opacity: 1; }
    47%, 100% { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    html body.light-theme #showreel .portfolio-type-cursor {
        display: none;
        animation: none;
    }
}

/* Classic montage chapter: continue the same quiet typewriter entrance as AI. */
html body.light-theme #showreel #long-form .category-top.is-classic-typewriter-prepared .classic-type-line {
    display: block;
    min-height: 1em;
}

html body.light-theme #showreel #long-form .classic-type-text {
    white-space: pre-wrap;
}

html body.light-theme #showreel #long-form .classic-format-phrase {
    display: inline-block;
    opacity: 0;
    transform: translateY(.18em);
    transition: opacity 700ms ease, transform 700ms ease;
}

html body.light-theme #showreel #long-form .classic-format-phrase.is-visible {
    opacity: 1;
    transform: translateY(0);
}

html body.light-theme #showreel #long-form .classic-type-cursor {
    display: inline-block;
    width: .055em;
    height: .8em;
    margin-left: .06em;
    background: currentColor;
    opacity: 0;
    vertical-align: -.035em;
}

html body.light-theme #showreel #long-form .classic-type-cursor.is-visible {
    opacity: 1;
}

html body.light-theme #showreel #long-form .classic-type-cursor.is-idle {
    animation: rp-classic-cursor-blink .82s step-end infinite;
}

html body.light-theme #showreel #long-form .classic-type-cursor.is-fading {
    opacity: 0;
    animation: none;
    transition: opacity 400ms ease;
}

html body.light-theme #showreel #long-form .category-top.is-classic-typewriter-prepared .long-form-formats {
    opacity: .92;
}

@keyframes rp-classic-cursor-blink {
    0%, 46% { opacity: 1; }
    47%, 100% { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    html body.light-theme #showreel #long-form .classic-type-cursor {
        display: none;
        animation: none;
    }

    html body.light-theme #showreel #long-form .classic-format-phrase {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* Tools chapter: type the two-line heading, then let the supporting copy settle in. */
html body.light-theme #ai-model-directory .ai-section-heading.is-tools-typewriter-prepared #ai-tools-title {
    min-height: 2em;
}

html body.light-theme #ai-model-directory .tools-type-line {
    display: block;
    min-height: 1em;
}

html body.light-theme #ai-model-directory .tools-type-line.is-muted {
    color: var(--theme-muted, #7488a0);
}

html body.light-theme #ai-model-directory .tools-type-text {
    white-space: pre-wrap;
}

html body.light-theme #ai-model-directory .tools-type-cursor {
    display: inline-block;
    width: .055em;
    height: .8em;
    margin-left: .06em;
    background: currentColor;
    opacity: 0;
    vertical-align: -.035em;
}

html body.light-theme #ai-model-directory .tools-type-cursor.is-visible {
    opacity: 1;
}

html body.light-theme #ai-model-directory .tools-type-cursor.is-idle {
    animation: rp-tools-cursor-blink .82s step-end infinite;
}

html body.light-theme #ai-model-directory .tools-type-cursor.is-fading {
    opacity: 0;
    animation: none;
    transition: opacity 400ms ease;
}

html body.light-theme #ai-model-directory .ai-section-heading.is-tools-typewriter-prepared > p {
    opacity: 0;
    transform: translateY(12px);
    transition:
        opacity 1100ms cubic-bezier(.22, .72, .18, 1),
        transform 1100ms cubic-bezier(.22, .72, .18, 1);
}

html body.light-theme #ai-model-directory .ai-section-heading.is-tools-typewriter-prepared.is-tools-copy-visible > p {
    opacity: 1;
    transform: translateY(0);
}

@keyframes rp-tools-cursor-blink {
    0%, 46% { opacity: 1; }
    47%, 100% { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    html body.light-theme #ai-model-directory .tools-type-cursor {
        display: none;
        animation: none;
    }

    html body.light-theme #ai-model-directory .ai-section-heading.is-tools-typewriter-prepared > p {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* Subpage opening: reveal the category title first, then let its supporting
   content and the first reading surface settle into view. */
body.ai-page .ai-hero.rp-title-sequence-ready .rp-page-title-char,
body.guide-page .guide-hero.rp-title-sequence-ready .rp-page-title-char {
    display: inline-block;
    opacity: 0;
    transform: translate3d(0, .2em, 0) scale(.97);
    filter: blur(3px);
    transition: opacity 260ms cubic-bezier(.2, .75, .25, 1),
        transform 420ms cubic-bezier(.2, .75, .25, 1),
        filter 420ms ease;
    will-change: opacity, transform, filter;
}

body.ai-page .ai-hero.rp-title-sequence-ready .rp-page-title-char.is-visible,
body.guide-page .guide-hero.rp-title-sequence-ready .rp-page-title-char.is-visible {
    opacity: 1;
    transform: none;
    filter: blur(0);
}

body.ai-page .ai-hero.rp-title-sequence-ready .rp-page-title-cursor,
body.guide-page .guide-hero.rp-title-sequence-ready .rp-page-title-cursor {
    display: inline-block;
    width: .045em;
    height: .78em;
    margin-left: .13em;
    border-radius: 999px;
    background: currentColor;
    opacity: 0;
    vertical-align: -.08em;
    transition: opacity 260ms ease;
}

body.ai-page .ai-hero.rp-title-sequence-ready .rp-page-title-cursor.is-visible,
body.guide-page .guide-hero.rp-title-sequence-ready .rp-page-title-cursor.is-visible {
    opacity: .82;
}

body.ai-page .ai-hero.rp-title-sequence-ready .rp-page-title-cursor.is-idle,
body.guide-page .guide-hero.rp-title-sequence-ready .rp-page-title-cursor.is-idle {
    animation: rp-page-title-cursor-blink .9s step-end infinite;
}

body.ai-page .ai-hero.rp-title-sequence-ready .rp-page-title-cursor.is-fading,
body.guide-page .guide-hero.rp-title-sequence-ready .rp-page-title-cursor.is-fading {
    opacity: 0;
}

body.ai-page .ai-hero.rp-title-sequence-ready .ai-hero-description,
body.ai-page .ai-hero.rp-title-sequence-ready .ai-hero-actions,
body.guide-page .guide-hero.rp-title-sequence-ready .guide-lead,
body.guide-page .guide-hero.rp-title-sequence-ready .guide-route {
    opacity: 0;
    transform: translate3d(0, 16px, 0);
    transition: opacity 760ms cubic-bezier(.22, .72, .18, 1),
        transform 760ms cubic-bezier(.22, .72, .18, 1);
}

body.ai-page .ai-hero.rp-title-sequence-ready.is-title-complete .ai-hero-description,
body.ai-page .ai-hero.rp-title-sequence-ready.is-title-complete .ai-hero-actions,
body.guide-page .guide-hero.rp-title-sequence-ready.is-title-complete .guide-lead,
body.guide-page .guide-hero.rp-title-sequence-ready.is-title-complete .guide-route {
    opacity: 1;
    transform: none;
}

body.ai-page .ai-hero.rp-title-sequence-ready .ai-hero-actions {
    transition-delay: 130ms;
}

body.guide-page .guide-hero.rp-title-sequence-ready .guide-route {
    transition-delay: 150ms;
}

body.ai-page .ai-hero.rp-title-sequence-ready + .ai-page-showcase,
body.guide-page .guide-hero.rp-title-sequence-ready + .guide-shell {
    opacity: 0;
    transform: translate3d(0, 22px, 0);
    transition: opacity 900ms cubic-bezier(.22, .72, .18, 1),
        transform 900ms cubic-bezier(.22, .72, .18, 1);
}

body.ai-page .ai-hero.rp-title-sequence-ready.is-content-released + .ai-page-showcase,
body.guide-page .guide-hero.rp-title-sequence-ready.is-content-released + .guide-shell {
    opacity: 1;
    transform: none;
}

@keyframes rp-page-title-cursor-blink {
    0%, 46% { opacity: .82; }
    47%, 100% { opacity: .18; }
}

@media (prefers-reduced-motion: reduce) {
    body.ai-page .ai-hero.rp-title-sequence-ready .rp-page-title-char,
    body.guide-page .guide-hero.rp-title-sequence-ready .rp-page-title-char,
    body.ai-page .ai-hero.rp-title-sequence-ready .ai-hero-description,
    body.ai-page .ai-hero.rp-title-sequence-ready .ai-hero-actions,
    body.guide-page .guide-hero.rp-title-sequence-ready .guide-lead,
    body.guide-page .guide-hero.rp-title-sequence-ready .guide-route,
    body.ai-page .ai-hero.rp-title-sequence-ready + .ai-page-showcase,
    body.guide-page .guide-hero.rp-title-sequence-ready + .guide-shell {
        opacity: 1;
        transform: none;
        filter: none;
        transition: none;
    }

    body.ai-page .ai-hero.rp-title-sequence-ready .rp-page-title-cursor,
    body.guide-page .guide-hero.rp-title-sequence-ready .rp-page-title-cursor {
        display: none;
        animation: none;
    }
}
