html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:clip}.lenis.lenis-scrolling iframe{pointer-events:none}
/*!
 * cb-motion.css — Cognition Blueprint motion layer styles
 * ─────────────────────────────────────────────────────────────────
 * Pairs with cb-motion.js. Two rules govern everything:
 *   1. Hidden states exist ONLY under html.cb-motion — no JS, or
 *      motion off, or reduced-motion = fully visible static page.
 *   2. Nothing here knows about specific blocks. Attributes only,
 *      so any block can opt in, reorder, and duplicate.
 * ─────────────────────────────────────────────────────────────────
 */
 :root{--cb-ease:cubic-bezier(.24, 0, .16, 1.01)}@view-transition{navigation:auto}::view-transition-old(root){animation:cb-vt-out .34s var(--cb-ease) both}::view-transition-new(root){animation:cb-vt-in .42s var(--cb-ease) both}@keyframes cb-vt-out{to{opacity:0;transform:translateY(-10px)}}@keyframes cb-vt-in{from{opacity:0;transform:translateY(14px)}}@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}html.cb-motion [data-reveal],html.cb-motion .rv{opacity:0;transform:translateY(28px);transition:opacity .7s var(--cb-ease),transform .7s var(--cb-ease)}html.cb-motion [data-reveal].in,html.cb-motion .rv.in{opacity:1;transform:none}html.cb-motion .cb-w{display:inline-block}html.cb-motion .cb-wi{display:inline-block;opacity:0;transform:translateY(.42em);transition:opacity .7s var(--cb-ease),transform .8s var(--cb-ease)}html.cb-motion .cb-wi.in{opacity:1;transform:none}html.cb-motion [data-split],html.cb-motion [data-split].in{opacity:1;transform:none}[data-marquee]{overflow:hidden;white-space:nowrap}.cb-marquee-track{display:inline-flex;align-items:center;gap:3.5rem;padding-right:3.5rem;will-change:transform;animation:cb-marquee linear infinite}[data-marquee]:hover .cb-marquee-track{animation-play-state:paused}@keyframes cb-marquee{to{transform:translateX(-50%)}}html.cb-motion-off .cb-marquee-track{animation:none}@media (prefers-reduced-motion:reduce){.cb-marquee-track{animation:none}}.cb-slider-rail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.cb-slider-rail::-webkit-scrollbar{display:none}.cb-slide{scroll-snap-align:start;scroll-snap-stop:always;flex:0 0 auto}[data-preloader]{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;background:var(--ink,#1A1812);cursor:pointer}[data-preloader].cb-pre-run{display:flex}[data-preloader] .cb-pre-word{position:absolute;font-family:var(--ff-display,'Playfair Display',serif);font-style:italic;font-weight:700;font-size:clamp(34px, 6vw, 84px);color:var(--white,#EDE9E1);opacity:0;animation:cb-pre-word .52s var(--cb-ease) both}[data-preloader] .cb-pre-word:last-child{color:var(--gold-light,#C8A96E)}@keyframes cb-pre-word{0%{opacity:0;transform:translateY(18px)}28%{opacity:1;transform:none}86%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-14px)}}[data-preloader] .cb-pre-word:last-child{animation-name:cb-pre-word-hold}@keyframes cb-pre-word-hold{0%{opacity:0;transform:translateY(18px)}40%{opacity:1;transform:none}100%{opacity:1;transform:none}}[data-preloader].cb-pre-out{transition:transform .65s var(--cb-ease);transform:translateY(-100%)}