/* Behavioral hooks only. Appearance comes unchanged from the reference build. */
[hidden] { display: none !important; }
.source-step-leaving { pointer-events: none; }
[data-option-card]:focus-visible { outline: 2px solid white; outline-offset: 4px; }
[data-option-modal-root] { overflow-y: auto; padding-top: 16px; padding-bottom: 16px; }
[data-option-modal-root] > .relative { max-height: calc(100dvh - 32px); overflow-y: auto; }
.source-cursor-dot,.source-cursor-ring { position: fixed; top: 0; left: 0; pointer-events: none; z-index: 9999; }
.source-cursor-dot { width: 12px; height: 12px; background: #9c1819; border-radius: 50%; mix-blend-mode: difference; }
.source-cursor-ring { width: 48px; height: 48px; border: 1px solid rgb(255 255 255 / 30%); border-radius: 50%; }
@media (pointer: coarse) { .source-cursor-dot,.source-cursor-ring { display: none; } }
.skip-link { position: fixed; top: -100px; left: 20px; padding: 12px 18px; z-index: 10000; background: white; color: black; }
.skip-link:focus { top: 16px; }

@supports (overflow-x: clip) { body { overflow-x: clip; } }
[data-horizontal-track] { will-change: transform; }
[data-scroll-progress] { transform-origin: left; }

/* Native video controls need the system cursor; the page cursor sits behind this modal. */
body[data-video-open] { cursor: auto; }
body[data-video-open] .source-cursor-dot,
body[data-video-open] .source-cursor-ring { display: none; }
.source-video-lightbox,
.source-video-lightbox video { cursor: auto; }
.source-video-lightbox button { cursor: pointer; }

/* Avoid repeatedly rasterizing full-screen SVG noise and glass while crossing the page. */
body[data-anchor-scrolling] .bg-noise { visibility: hidden; }
body[data-anchor-scrolling] [class*="backdrop-blur"] {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
body[data-anchor-scrolling] .source-cursor-dot { mix-blend-mode: normal; }
[data-source-nav] { transition-property: background-color, border-color, padding; }

.seo-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
