/* Redesign shared layer: only primitives; each page owns its look */
.rd-r{opacity:0;transform:translateY(34px);transition:opacity .9s ease,transform 1s cubic-bezier(.2,.8,.2,1)}
.rd-r.in{opacity:1;transform:none}
.rd-deco{position:absolute;pointer-events:none;z-index:0}
.rd-deco svg{display:block;width:100%;height:100%}
[data-rd-par]{translate:0 var(--py,0)}
main section{position:relative}
main section>.wrap{z-index:1}
@media (prefers-reduced-motion:reduce){.rd-r{opacity:1;transform:none;transition:none}[data-rd-par]{translate:none}.rd-spin,.rd-float{animation:none!important}}
@keyframes rdSpin{to{rotate:360deg}}
@keyframes rdFloat{50%{transform:translateY(-14px)}}
@keyframes rdDash{to{stroke-dashoffset:0}}
.rd-spin{animation:rdSpin 40s linear infinite}
.rd-float{animation:rdFloat 6s ease-in-out infinite}
/* contrast guards: light cards inside dark-treated sections */
.rd .adv-card,.rd .kfiles a,.rd .kbio,.rd .legacy-t td{color:#10142a!important}
.rd .adv-card :is(h3,p,span,small),.rd .kfiles a b,.rd .kbio :is(h3,b){color:#10142a!important}
.rd .kfiles a small,.rd .kbio p,.rd .legacy-t small{color:#4a5170!important}
.rd .adv-card a.link,.rd .kbio a,.rd .legacy-t a{color:#2b45e6!important}
.rd .kt li.on{color:#0b1230!important}
.rd .qpanel cite{color:inherit;opacity:.8}
.rd-sitemap .pg-hero h1 span,.rd-essays .pg-hero h1 span,.rd-journal .pg-hero h1 span,.rd-schools .pg-hero h1 span{color:#2b45e6}
.rd-schools .beyond{background:#0b1230!important;color:#fff}
.rd-schools .beyond .h2,.rd-schools .beyond .h2 span{color:#fff!important}
.rd-support .again .prose a.link{color:#fff!important;text-decoration:underline}
.rd .kfiles li.soon,.rd .kfiles li.soon b{color:#5d6383!important}
.rd-learning .beyond{background:#0b2a2a!important;color:#fff}
.rd-index .story .stat:nth-child(3) .num,.rd-index .story .stat:nth-child(3) .num small{color:#fff!important}
.rd-videos .vhub .chan{color:#fff}.rd-videos .vhub .chan a{color:#10142a!important}
.rd-videos .vhub .chan-soon{color:#d9f45b!important}
.rd-trainings .tcard.t1 .tag{color:#0b1230}

/* logo v2 */
.nav,.nav.scrolled{padding-top:10px!important;padding-bottom:10px!important}
.logo .mark{height:80px!important}
@media (max-width:1000px){.logo .mark{height:64px!important}}@media (max-width:760px){.logo .mark{height:52px!important}}
@media (max-width:380px){.logo .mark{height:48px!important}}
.brand-lockup .lg-front{transform-box:view-box;transform-origin:256px 140px;animation:lg-turn 6s linear infinite,lg-hue 20s linear infinite;stroke:#F4F5F9;stroke-width:5px;paint-order:stroke;stroke-linejoin:miter}
.brand-lockup .lg-back{fill:#F4F5F9!important}
@keyframes lg-turn{0%{transform:rotate(0deg);animation-timing-function:cubic-bezier(.42,0,.58,1)}50%{transform:rotate(360deg)}50.01%,100%{transform:rotate(360deg)}}
@keyframes lg-hue{0%,23%{fill:#2B45E6}25%,48%{fill:#D6336C}50%,73%{fill:#C2410C}75%,98%{fill:#2F7D5B}100%{fill:#2B45E6}}
@media (prefers-reduced-motion:reduce){.brand-lockup .lg-front{animation:none}.brand-lockup .lg-front{fill:#2B45E6!important}}

/* open road logo */
.logo .mark svg.or-lockup,.fmark svg.or-lockup{height:100%;width:auto;display:block}
.or-lane{animation:or-lane 2.4s linear infinite}
.or-sun{transform-box:fill-box;transform-origin:center;animation:or-sun 6s ease-in-out infinite}
@keyframes or-lane{to{stroke-dashoffset:-25}}
@keyframes or-sun{0%,100%{transform:translateY(8px)}50%{transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){.or-lane,.or-sun{animation:none!important}}/* open road on cobalt slide */
body[data-hs="4"] .nav .or-lockup .or-t{fill:#0B1230}
body[data-hs="4"] .nav .or-lockup path[stroke-width="40"]{stroke:#0B1230}
/* open road refined */
.or-lockup{overflow:visible}
.or-tile{transform:scale(.5);transition:transform .5s cubic-bezier(.2,.8,.2,1),filter .5s ease}
.logo:hover .or-tile,.logo:focus-visible .or-tile{transform:scale(.5) translateY(-6px);filter:drop-shadow(0 10px 14px rgba(11,18,48,.35))}
.or-road{stroke-dasharray:100 100;stroke-dashoffset:100;animation:or-draw 1.6s cubic-bezier(.6,0,.2,1) .25s forwards}
@keyframes or-draw{to{stroke-dashoffset:0}}
.or-lane{animation:or-lane 2.4s linear infinite}
@keyframes or-lane{to{stroke-dashoffset:-25}}
.or-sun{transform-box:fill-box;transform-origin:center;animation:or-rise 1.4s cubic-bezier(.2,.8,.2,1) .9s both,or-sun 7s ease-in-out 2.3s infinite}
@keyframes or-rise{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
@keyframes or-sun{0%,100%{transform:none}50%{transform:translateY(-6px)}}
.or-glow{transform-box:fill-box;transform-origin:center;animation:or-glow 7s ease-in-out 2.3s infinite}
@keyframes or-glow{0%,100%{opacity:.75;transform:scale(.94)}50%{opacity:1;transform:scale(1.06)}}
.or-shine{transition:none}
.logo:hover .or-shine{opacity:.22;animation:or-shine .9s ease forwards}
@keyframes or-shine{from{transform:rotate(20deg) translateX(0)}to{transform:rotate(20deg) translateX(900px)}}
body[data-hs="4"] .nav .or-lockup .or-t{fill:#0B1230}
body[data-hs="4"] .nav .or-lockup .or-road{stroke:#0B1230}
@media (prefers-reduced-motion:reduce){.or-road{animation:none!important;stroke-dashoffset:0}.or-lane,.or-sun,.or-glow,.or-shine{animation:none!important;opacity:1}.or-shine{opacity:0!important}.or-tile{transition:none}.logo:hover .or-tile{transform:scale(.5)}}