/* Neutral V2 foundations: spacing, layout, interaction, and accessibility. */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
.sfv2-site {
    --sf-space-3xs: .25rem; --sf-space-2xs: .5rem; --sf-space-xs: .75rem; --sf-space-sm: 1rem; --sf-space-md: 1.5rem; --sf-space-lg: 2rem; --sf-space-xl: 3rem; --sf-space-2xl: 4.5rem; --sf-space-3xl: 6.5rem;
    --sf-container-narrow: 46rem; --sf-container-copy: 62rem; --sf-container-wide: 76rem; --sf-container-max: 90rem; --sf-gutter: clamp(1rem, 3vw, 2.5rem);
    --sf-type-display: clamp(2.8rem, 7vw, 6.8rem); --sf-type-h1: clamp(2.35rem, 5.4vw, 5.2rem); --sf-type-h2: clamp(2rem, 4vw, 3.8rem); --sf-type-h3: clamp(1.4rem, 2.4vw, 2.15rem); --sf-type-lead: clamp(1.08rem, 1.8vw, 1.35rem);
    --sf-motion-fast: 140ms; --sf-motion-base: 220ms; --sf-motion-slow: 420ms; --sf-ease: cubic-bezier(.2,.7,.2,1);
    margin: 0; background: var(--sf-visual-canvas); color: var(--sf-visual-text); font-family: var(--sf-font-body); font-size: clamp(1rem, 1.1vw, 1.08rem); font-weight: var(--sf-weight-body); line-height: 1.62; text-rendering: optimizeLegibility;
}
.sfv2-site img, .sfv2-site svg { display: block; max-width: 100%; }
.sfv2-site a { color: inherit; }
.sfv2-site button, .sfv2-site input { font: inherit; }
.sfv2-site h1, .sfv2-site h2, .sfv2-site h3, .sfv2-site p { margin-top: 0; }
.sfv2-site h1, .sfv2-site h2, .sfv2-site h3 { color: var(--sf-visual-text); font-family: var(--sf-font-heading); font-weight: var(--sf-weight-heading); letter-spacing: var(--sf-heading-tracking); line-height: var(--sf-heading-leading); }
.sfv2-site h1 { max-width: 13ch; margin-bottom: var(--sf-space-md); font-family: var(--sf-font-display); font-size: var(--sf-type-h1); font-weight: var(--sf-weight-display); }
.sfv2-site h2 { max-width: 16ch; margin-bottom: var(--sf-space-md); font-size: var(--sf-type-h2); }
.sfv2-site h3 { margin-bottom: var(--sf-space-xs); font-size: var(--sf-type-h3); }
.sfv2-site p { max-width: 68ch; }
.sfv2-site :focus-visible { outline: 3px solid var(--sf-brand-accent); outline-offset: 3px; }
.sfv2-container { width: min(100% - (2 * var(--sf-gutter)), var(--sf-container-max)); margin-inline: auto; }
.sfv2-layout--narrow .sfv2-container { max-width: var(--sf-container-narrow); }
.sfv2-layout--wide .sfv2-container { max-width: var(--sf-container-wide); }
.sfv2-layout--full .sfv2-container { max-width: none; }
.sfv2-layout--rail .sfv2-container { max-width: var(--sf-container-copy); }
.sfv2-layout--bleed .sfv2-container { width: 100%; max-width: none; }
.sfv2-section { position: relative; isolation: isolate; margin: 0; padding-block: var(--sf-section-space); }
.sfv2-space--none { padding-block: 0; }
.sfv2-space--compact { padding-block: clamp(2rem, 5vw, 4rem); }
.sfv2-space--generous { padding-block: calc(var(--sf-section-space) * 1.16); }
.sfv2-transition--rule::before { position: absolute; top: 0; right: var(--sf-gutter); left: var(--sf-gutter); height: 1px; background: var(--sf-visual-border); content: ''; }
.sfv2-transition--blend { background: linear-gradient(180deg, transparent, var(--sf-visual-surface-alt) 16%, var(--sf-visual-surface-alt) 84%, transparent); }
.sfv2-transition--inset .sfv2-container { border: 1px solid var(--sf-visual-border); background: var(--sf-visual-surface); box-shadow: var(--sf-shadow-soft); }
.sfv2-transition--overlap { z-index: 3; margin-top: -3rem; }
.sfv2-eyebrow, .sfv2-label { margin-bottom: var(--sf-space-sm); color: var(--sf-brand-secondary); font-family: var(--sf-font-label); font-size: .75rem; font-weight: 700; letter-spacing: var(--sf-label-tracking); line-height: 1.2; text-transform: uppercase; }
.sfv2-lede { color: var(--sf-visual-text-muted); font-size: var(--sf-type-lead); line-height: 1.55; }
.sfv2-section-head { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(16rem, .7fr); gap: var(--sf-space-xl); align-items: end; margin-bottom: var(--sf-space-2xl); }
.sfv2-section-head > .sfv2-eyebrow { grid-column: 1 / -1; margin-bottom: calc(-1 * var(--sf-space-lg)); }
.sfv2-section-head h2 { margin-bottom: 0; }
.sfv2-section-head .sfv2-lede { margin-bottom: .35rem; }
.sfv2-actions { display: flex; flex-wrap: wrap; gap: var(--sf-space-md); align-items: center; margin-top: var(--sf-space-lg); }
.sfv2-button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; padding: .85rem 1.35rem; border: 2px solid var(--sf-brand-accent); border-radius: var(--sf-radius-sm); background: var(--sf-brand-accent); color: var(--sf-brand-on-accent); font-family: var(--sf-font-utility); font-size: .84rem; font-weight: 700; letter-spacing: .045em; line-height: 1; text-decoration: none; text-transform: uppercase; transition: transform var(--sf-motion-fast) var(--sf-ease), box-shadow var(--sf-motion-fast) var(--sf-ease), background var(--sf-motion-fast) var(--sf-ease); }
.sfv2-button:hover { transform: translateY(-2px); box-shadow: var(--sf-shadow-soft); }
.sfv2-button--small { min-height: 40px; padding: .7rem 1rem; font-size: .72rem; }
.sfv2-text-link { display: inline-flex; min-height: 44px; align-items: center; color: var(--sf-visual-text); font-family: var(--sf-font-utility); font-size: .82rem; font-weight: 700; letter-spacing: .045em; text-decoration-thickness: 1px; text-underline-offset: .35em; text-transform: uppercase; }
.sfv2-text-link span { margin-left: .35rem; transition: transform var(--sf-motion-fast) var(--sf-ease); }
.sfv2-text-link:hover span { transform: translateX(.25rem); }
.sfv2-caption { color: var(--sf-visual-text-muted); font-size: .82rem; }
.sfv2-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.sfv2-site .sf-skip-link { position:fixed; z-index:99999; top:.5rem; left:.5rem; padding:.75rem 1rem; background:var(--sf-brand-primary); color:var(--sf-brand-accent); font-family:var(--sf-font-utility); font-size:.8rem; font-weight:700; text-decoration:none; transform:translateY(calc(-100% - 1rem)); transition:transform var(--sf-motion-fast) var(--sf-ease); }
.sfv2-site .sf-skip-link:focus { transform:none; }
.sfv2-media { position: relative; overflow: hidden; margin: 0; border-radius: var(--sf-image-radius); background: var(--sf-visual-surface-alt); color: var(--sf-brand-primary); }
.sfv2-media--landscape { aspect-ratio: 4 / 3; } .sfv2-media--portrait { aspect-ratio: 3 / 4; } .sfv2-media--square { aspect-ratio: 1; } .sfv2-media--wide { aspect-ratio: 16 / 8; }
.sfv2-media picture, .sfv2-media img { width: 100%; height: 100%; }
.sfv2-media img { object-fit: cover; object-position: var(--sfv2-media-position); filter: var(--sf-image-filter); }
.sfv2-media__fixture { display: grid; width: 100%; height: 100%; min-height: 15rem; place-items: center; padding: var(--sf-space-lg); background: linear-gradient(145deg, color-mix(in srgb, var(--sf-brand-primary), white 86%), var(--sf-visual-surface-alt)); }
.sfv2-media__fixture svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.sfv2-media__fixture span, .sfv2-media__fixture small { position: relative; z-index: 1; padding: .3rem .55rem; background: color-mix(in srgb, var(--sf-visual-surface), transparent 12%); font-family: var(--sf-font-label); }
.sfv2-media__fixture span { align-self: end; font-weight: 700; }
.sfv2-media__fixture small { align-self: start; color: var(--sf-visual-text-muted); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
[data-sfv2-reveal] { opacity: 0; transform: translateY(var(--sf-motion-distance)); transition: opacity var(--sf-motion-slow) var(--sf-ease), transform var(--sf-motion-slow) var(--sf-ease); }
[data-sfv2-reveal].is-visible { opacity: 1; transform: none; }
@media (max-width: 48rem) { .sfv2-section-head { grid-template-columns: 1fr; gap: var(--sf-space-sm); } .sfv2-section-head > .sfv2-eyebrow { margin-bottom: 0; } .sfv2-actions { align-items: stretch; flex-direction: column; } .sfv2-actions > * { width: 100%; justify-content: center; } .sfv2-transition--overlap { margin-top: -1.25rem; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } [data-sfv2-reveal] { opacity: 1; transform: none; } }
