/* @generated by bin/sync-design.py — do not edit; overrides go in assets/css/global.css.
   Source: Specialty Source/_ds/…/tokens + styles.css */
/* --- tokens/fonts.css --- */
@font-face{font-family:"Geist";src:url("../fonts/Geist-Variable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Geist Mono";src:url("../fonts/GeistMono-Variable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

/* --- tokens/colors.css --- */
:root{
/* Core — two darks, three lights, one accent */
--sp-green:#22BC7E;--sp-carbon:#141C24;--sp-ink:#222C37;--sp-cream:#FFFAF2;--sp-mist:#E3E9EB;--sp-sand:#F0EBE3;
/* Secondary — supporting roles only */
--sp-kelp:#0B4D38;--sp-mint:#CBEBDA;--sp-slate:#5A6570;--sp-clay:#C4785A;
/* Web mockup additions */
--sp-night:#0A0721;--sp-white:#FFFFFF;--sp-fog:#F2F2F0;--sp-slate-400:#9AA3AC;--sp-crimson:#D6265B;
/* Interaction shades of green (derived) */
--sp-green-hover:#1EA970;--sp-green-press:#199462;--sp-green-soft:#E3F4EA;
/* Hairlines */
--sp-line-light:rgba(34,44,55,.12);--sp-line-light-strong:rgba(34,44,55,.24);--sp-line-dark:rgba(255,250,242,.14);--sp-line-dark-strong:rgba(255,250,242,.32);
/* Semantic — text */
--text-strong:var(--sp-ink);--text-body:var(--sp-ink);--text-muted:var(--sp-slate);--text-inverse:var(--sp-cream);--text-inverse-muted:rgba(255,250,242,.68);--text-accent:var(--sp-green);--text-on-accent:#FFFFFF;
/* Semantic — surfaces */
--surface-page:var(--sp-cream);--surface-card-warm:var(--sp-sand);--surface-card-cool:var(--sp-mist);--surface-dark:var(--sp-carbon);--surface-dark-raised:var(--sp-ink);--surface-accent:var(--sp-green);--surface-tint:var(--sp-mint);--surface-glass-dark:rgba(34,44,55,.56);--surface-glass-light:rgba(255,250,242,.14);
/* Semantic — borders */
--border-subtle:var(--sp-line-light);--border-strong:var(--sp-line-light-strong);--border-inverse:var(--sp-line-dark);--border-focus:var(--sp-green);--border-input:var(--sp-slate-400);--border-control:rgba(34,44,55,.16);
--text-placeholder:var(--sp-slate-400);--text-link:#1A9E69;--status-required:var(--sp-crimson);
--surface-menu:var(--sp-white);--surface-form:var(--sp-white);--surface-search:var(--sp-fog);
/* Homepage-build roles */
--green-text:#16875A;--green-icon-on-mint:#11915E;--tile-grey:rgba(34,44,55,.06);--row-hover-grey:rgba(34,44,55,.04);
--hairline-light:rgba(34,44,55,.10);--hairline-dark:rgba(255,250,242,.14);--divider-dark-strong:rgba(255,250,242,.18);
--field-border-dark:rgba(255,250,242,.22);--field-border-dark-hover:rgba(255,250,242,.40);--hover-box-dark:rgba(255,255,255,.14);--hover-box-light:rgba(34,44,55,.07);
--glass-dark:rgba(20,28,36,.22);--glass-dark-scrolled:rgba(20,28,36,.38);--glass-light:rgba(255,250,242,.72);
--scrim-modal:rgba(20,28,36,.42);
/* Semantic — status (kept in-family) */
--status-success:var(--sp-green);--status-success-bg:var(--sp-mint);--status-info:var(--sp-slate);--status-info-bg:var(--sp-mist);--status-warning:var(--sp-clay);--status-warning-bg:#F5E3DA;--status-danger:#B5462F;--status-danger-bg:#F6DDD5;
/* Surface gradients */
--grad-cream-mist:linear-gradient(135deg,var(--sp-cream) 0%,var(--sp-mist) 100%);
--grad-mint-wash:linear-gradient(135deg,var(--sp-cream) 0%,var(--sp-mint) 100%);
--grad-sand-cream:linear-gradient(135deg,var(--sp-sand) 0%,var(--sp-cream) 100%);
--grad-carbon:linear-gradient(135deg,var(--sp-carbon) 0%,#16222A 55%,#123A2D 100%);
--grad-green-chip:linear-gradient(135deg,#2FCB8C 0%,#11915E 100%);/* @kind color */
--grad-ink-glow:var(--glow-angled),var(--sp-ink);
--grad-hero-protect:var(--glow-angled-hero),linear-gradient(90deg,rgba(20,28,36,.85) 0%,rgba(20,28,36,.45) 45%,rgba(20,28,36,0) 75%);/* @kind color */
--grad-dark-section:linear-gradient(180deg,#222C37 0%,#141C24 100%);/* @kind color */
--glow-angled:linear-gradient(12deg,rgba(34,188,126,.62) 0%,rgba(11,77,56,.42) 22%,rgba(34,188,126,0) 50%);/* @kind color */
--glow-angled-hero:linear-gradient(12deg,rgba(34,188,126,.72) 0%,rgba(11,77,56,.45) 20%,rgba(34,188,126,0) 44%);/* @kind color */
--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");/* @kind other */
--grain-opacity:.02;/* @kind other */
}

/* --- tokens/typography.css --- */
:root{
--font-sans:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
--font-mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;
--tracking-display:-0.03em;/* @kind other */--tracking-heading:-0.02em;/* @kind other */--tracking-body:0;/* @kind other */--tracking-h2:-0.025em;/* @kind other */--tracking-label:0.14em;/* @kind other */--tracking-signage:0.2em;/* @kind other */
/* Scale */
--fs-display-xl:88px;--fs-hero:72px;--fs-section:52px;--fs-display:72px;--fs-h1:56px;--fs-h2:44px;--fs-h3:32px;--fs-h4:24px;--fs-lead:20px;--fs-body-lg:18px;--fs-body:16px;--fs-body-sm:14px;--fs-caption:13px;--fs-label:12px;--fs-micro:11px;
--lh-display:1.0;/* @kind other */--lh-heading:1.1;/* @kind other */--lh-snug:1.3;/* @kind other */--lh-body:1.5;/* @kind other */--lh-label:1.2;/* @kind other */
/* Semantic */
--type-display:var(--weight-medium) var(--fs-display)/var(--lh-display) var(--font-sans);
--type-h1:var(--weight-medium) var(--fs-h1)/var(--lh-heading) var(--font-sans);
--type-h2:var(--weight-regular) var(--fs-h2)/var(--lh-heading) var(--font-sans);
--type-h3:var(--weight-medium) var(--fs-h3)/var(--lh-heading) var(--font-sans);
--type-h4:var(--weight-medium) var(--fs-h4)/var(--lh-snug) var(--font-sans);
--type-body:var(--weight-regular) var(--fs-body)/var(--lh-body) var(--font-sans);
--type-body-lg:var(--weight-regular) var(--fs-body-lg)/var(--lh-body) var(--font-sans);
--type-caption:var(--weight-light) var(--fs-caption)/var(--lh-body) var(--font-sans);
--type-label:var(--weight-semibold) var(--fs-label)/1 var(--font-sans);
--type-button:var(--weight-semibold) 15px/1 var(--font-sans);
--type-section:var(--weight-regular) var(--fs-section)/1.1 var(--font-sans);
--type-field-label:var(--weight-semibold) 13px/1.3 var(--font-sans);
--type-nav:var(--weight-semibold) 14px/1 var(--font-sans);
/* Web type scale (homepage build, Sept 2026) */
--type-hero-h1:var(--weight-medium) 84px/72px var(--font-sans);
--type-section-h2:var(--weight-regular) 64px/1.1 var(--font-sans);
--type-cta-h2:var(--weight-semibold) 64px/1.02 var(--font-sans);
--type-tab-card-h:var(--weight-semibold) 40px/40px var(--font-sans);
--type-story-title:var(--weight-medium) 28px/1.15 var(--font-sans);
--type-tab-lead:var(--weight-medium) 28px/32px var(--font-sans);
--type-small-heading:var(--weight-medium) 24px/1.2 var(--font-sans);
--type-hero-p:var(--weight-regular) 22px/1.5 var(--font-sans);
--type-callout-title:var(--weight-semibold) 20px/24px var(--font-sans);
--type-paragraph:var(--weight-regular) 18px/26px var(--font-sans);
--type-quote:var(--weight-regular) 18px/26px var(--font-sans);
--type-supporting:var(--weight-regular) 16px/22px var(--font-sans);
--type-menu-title:var(--weight-semibold) 14px/1.3 var(--font-sans);
--type-menu-desc:var(--weight-regular) 14px/20px var(--font-sans);
--type-eyebrow:var(--weight-semibold) 12px/1 var(--font-sans);
--type-footer:var(--weight-regular) 13px/1.5 var(--font-sans);
--type-fine:var(--weight-regular) 12px/1.5 var(--font-sans);
}

/* --- tokens/spacing.css --- */
:root{
--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-32:128px;
/* Radii — brand spec: 20 / 999 */
--radius-xs:6px;--radius-sm:12px;--radius-md:20px;--radius-lg:28px;--radius-pill:999px;--radius-chip:6px;--radius-control:8px;--radius-menu:16px;--radius-feature:24px;--radius-section:48px;
/* Layout */
--grid-columns:12;/* @kind other */--grid-max:1440px;--frame-max:1280px;--frame-pad:40px;--content-max:1200px;--footer-max:1200px;--grid-gutter:24px;--page-margin:80px;--page-margin-mobile:20px;
--nav-height:72px;--nav-height-scrolled:64px;--control-h-sm:34px;--control-h:44px;--control-h-lg:52px;--input-h:40px;
/* Elevation — the brand is flat; shadow is reserved for floating layers */
--shadow-none:none;
--shadow-float:0 1px 2px rgba(20,28,36,.06),0 12px 32px -8px rgba(20,28,36,.18);
--shadow-overlay:0 2px 6px rgba(20,28,36,.08),0 32px 64px -16px rgba(20,28,36,.32);
--shadow-menu:0 1px 3px rgba(20,28,36,.05),0 12px 40px -12px rgba(20,28,36,.16);
--shadow-soft:0 1px 2px rgba(20,28,36,.04),0 24px 48px -24px rgba(20,28,36,.18);
--shadow-device:0 40px 80px -24px rgba(20,28,36,.35);
--blur-glass:16px;
--glass-dark-blur:blur(28px) saturate(1.25);/* @kind other */--glass-light-blur:blur(20px) saturate(1.4);/* @kind other */
--glass-dark-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 10px 30px -18px rgba(10,14,20,.45);
--sheet-shadow:0 40px 80px -30px rgba(10,14,20,.55);
--radius-icon-box:10px;
/* Motion */
--ease-out:cubic-bezier(.22,.61,.36,1);/* @kind other */--ease-in-out:cubic-bezier(.65,0,.35,1);/* @kind other */
--dur-fast:120ms;/* @kind other */--dur-base:200ms;/* @kind other */--dur-slow:360ms;/* @kind other */--dur-hover:.25s;/* @kind other */--dur-underline:.4s;/* @kind other */--dur-menu-fade:.28s;/* @kind other */--dur-menu-move:.38s;/* @kind other */--dur-lift:.5s;/* @kind other */--dur-reveal:1100ms;/* @kind other */--dur-count:1.8s;/* @kind other */--dur-breathe:5.2s;/* @kind other */
}

/* --- tokens/base.css --- */
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{margin:0;font:var(--type-body);letter-spacing:var(--tracking-body);color:var(--text-body);background:var(--surface-page)}
a{color:var(--text-link);text-decoration:underline;text-underline-offset:3px}
a:hover{color:var(--sp-green-press)}
::selection{background:var(--sp-mint);color:var(--sp-ink)}

/* --- styles.css --- */

