/* ------------------------------------------------------------------
   Settlerock on the Osmo system.
   osmo.css is Osmo's own stylesheet with three font names swapped:
   Haffer XH → Degular, Haffer VF → DM Sans, Haffer Mono → Fragment Mono.
   This file declares those fonts, maps variable-weight rules to the
   static weights we have, and adds the few Settlerock-only components.
   ------------------------------------------------------------------ */
@font-face { font-family: 'Degular'; src: url('/assets/fonts/Degular-Regular.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Degular'; src: url('/assets/fonts/Degular-Medium.woff2') format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'Degular'; src: url('/assets/fonts/Degular-MediumItalic.woff2') format('woff2'); font-weight: 500; font-style: italic; font-display: swap; }
@font-face { font-family: 'Degular'; src: url('/assets/fonts/Degular-SemiBold.woff2') format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Degular'; src: url('/assets/fonts/Degular-Bold.woff2') format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'DM Sans'; src: url('/assets/fonts/DMSans-Regular.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'DM Sans'; src: url('/assets/fonts/DMSans-Italic.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'DM Sans'; src: url('/assets/fonts/DMSans-Medium.woff2') format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'DM Sans'; src: url('/assets/fonts/DMSans-SemiBold.woff2') format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'DM Sans'; src: url('/assets/fonts/DMSans-Bold.woff2') format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'Fragment Mono'; src: url('/assets/fonts/FragmentMono-Regular.woff2') format('woff2'); font-weight: 400 500; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Fragment Mono'; src: url('/assets/fonts/FragmentMono-Regular-ext.woff2') format('woff2'); font-weight: 400 500; font-display: swap; unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Brisa Pro'; src: url('/assets/fonts/BrisaPro-Regular.woff2') format('woff2'); font-weight: 400; font-display: swap; }

/* Static weights in place of Haffer's variable axis */
body { font-weight: 400; }
.h-xxl, .h-xl, .h-l, .h-ml, .h-m, .h-s, .product-card__h, .pricing-card__title, .updates-card__h, .notfound__h, .collection-hero__number, .pricing-card__price-h { font-weight: 500; }
.h-xs { font-weight: 500; }
.h-xxl { letter-spacing: -.035em; }
.h-xl { letter-spacing: -.04em; }
.h-ml, .h-l { letter-spacing: -.03em; }
.h-m { letter-spacing: -.02em; }
.u--fw-medium, .p-l.u--fw-medium, .button-label, .nav-bar__big-span, .nav-menu__label { font-weight: 500; }
.p-m.u--fw-460, .p-s { font-weight: 400; }
.eyebrow, .tag, .button-label.eyebrow { font-weight: 400; letter-spacing: .01em; }
strong { font-weight: 600; }

/* ------------------------------------------------------------------ Settlerock-only pieces */
/* nav wordmark */
.sr-wordmark { display: flex; align-items: center; gap: .45em; color: currentColor; text-decoration: none; }
.sr-wordmark__text { font-family: Degular, sans-serif; font-weight: 600; font-size: 1.5em; letter-spacing: -.03em; line-height: 1; }
.sr-wordmark__mark { width: 1.125em; height: 1.125em; flex: none; }
.sr-mark rect { fill: currentColor; }
.sr-mark .sr-mark__base { fill: var(--color-electric); }
[data-nav-theme="dark"] .sr-mark .sr-mark__base { fill: var(--color-electric); }

/* avatar circles used in place of photos */
.sr-face { width: 100%; height: 100%; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: 'Fragment Mono', monospace; font-size: .6875em; color: var(--color-neutral-200); background: var(--color-neutral-800); }
.sr-face.is--purple { background: var(--color-purple); }
.sr-face.is--electric { background: var(--color-electric); color: var(--color-neutral-800); }
.sr-face.is--coral { background: var(--color-coral); }

/* dial layers inside the purple intro card */
.sr-dial { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.sr-dial svg { width: 100%; height: 100%; }
.sr-dial text { font-family: 'Fragment Mono', monospace; font-size: 11px; letter-spacing: .2em; fill: currentColor; text-transform: uppercase; }

/* card visuals (dashboard screenshots) */
.sr-shot { width: 100%; height: 100%; object-fit: cover; object-position: top left; display: block; }

/* product-card icons */
.sr-pillar-icon { width: 100%; height: 100%; }

/* flick cards for verticals */
.sr-vertical { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-between; padding: 1.25em; color: var(--color-neutral-200); background: var(--color-neutral-700); }
.sr-vertical.is--purple { background: var(--color-purple); }
.sr-vertical.is--electric { background: var(--color-electric); color: var(--color-neutral-800); }
.sr-vertical.is--coral { background: var(--color-coral); }
.sr-vertical.is--light { background: var(--color-neutral-300); color: var(--color-neutral-800); }
.sr-vertical.is--black { background: var(--color-neutral-900); }
.sr-vertical.is--white { background: var(--color-neutral-200); color: var(--color-neutral-800); }
.sr-vertical.is--grey { background: var(--color-neutral-500); }
.sr-vertical.is--white .sr-vertical__tag { background: rgba(0,0,0,.08); }
.sr-vertical__h { font-family: Degular, sans-serif; font-weight: 500; font-size: 3.5em; line-height: .9; letter-spacing: -.03em; }
.sr-vertical__row { display: flex; gap: .5em; flex-wrap: wrap; }
.sr-vertical__tag { font-family: 'Fragment Mono', monospace; font-size: .6875em; text-transform: uppercase; padding: .25em .4em; border-radius: .125em; background: rgba(0,0,0,.18); }
.sr-vertical.is--electric .sr-vertical__tag, .sr-vertical.is--light .sr-vertical__tag { background: rgba(0,0,0,.08); }

/* decision slides (testimonial slot) */
.sr-decision__mark { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: var(--color-neutral-800); border-radius: 50%; color: var(--color-neutral-200); }
.sr-decision__mark svg { width: 46%; }

/* connections grid cells */
.sr-rail { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 1.25em; background: var(--color-neutral-800); color: var(--color-neutral-200); }
.sr-rail__big { font-family: Degular, sans-serif; font-weight: 500; font-size: 4.5em; line-height: .85; letter-spacing: -.04em; }
.sr-rail__row { display: flex; gap: .4em; flex-wrap: wrap; margin-top: .75em; }
.sr-rail.is--purple { background: var(--color-purple); }
.sr-rail.is--electric { background: var(--color-electric); color: var(--color-neutral-800); }
.sr-rail.is--light { background: var(--color-neutral-300); color: var(--color-neutral-800); }

/* prose pages (legal, restricted) */
.sr-prose { max-width: 46em; }
.sr-prose h2 { font-family: Degular, sans-serif; font-weight: 500; font-size: 2em; letter-spacing: -.02em; line-height: 1.05; margin: 1.5em 0 .5em; }
.sr-prose h3 { font-size: 1.125em; font-weight: 500; margin: 1.5em 0 .5em; }
.sr-prose p, .sr-prose li { font-size: 1.0625em; line-height: 1.5; margin-bottom: .75em; color: var(--color-neutral-700); }
[data-theme-section="dark"] .sr-prose p, [data-theme-section="dark"] .sr-prose li { color: var(--color-neutral-400); }
.sr-prose ul { padding-left: 1.25em; list-style: disc; }
.sr-prose table { width: 100%; border-collapse: collapse; font-size: .9375em; margin: 1em 0 1.5em; }
.sr-prose th, .sr-prose td { text-align: left; padding: .75em .5em; border-bottom: 1px solid var(--color-neutral-400); vertical-align: top; }
.sr-prose th { font-family: 'Fragment Mono', monospace; font-size: .6875em; text-transform: uppercase; letter-spacing: .05em; color: var(--color-neutral-500); font-weight: 400; }
.sr-mono { font-family: 'Fragment Mono', monospace; }
.sr-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap-m); }
@media (max-width: 767px) { .sr-grid-2 { grid-template-columns: 1fr; } .sr-vertical__h { font-size: 2.5em; } .sr-rail__big { font-size: 3em; } }

/* static mode (QA / reduced motion): skip the entrance choreography */
html.sr-static .transition { display: none !important; }
html.sr-static .nav { opacity: 1 !important; visibility: visible !important; }
html.sr-static .nav-bar { transform: none !important; }
html.sr-static [data-load-heading], html.sr-static [data-load-reveal], html.sr-static .under-nav-bar { opacity: 1 !important; visibility: visible !important; transform: none !important; }

/* about card dial sizing */
@media (min-width: 992px) { .about-card__img-w { width: 25em; } }
.nav-logo__wordmark-svg { width: 6.25em; }
