.fx{--fx-canvas:var(--color-canvas);--fx-surface:var(--color-canvas-2);--fx-raised:var(--color-white);--fx-inverse:var(--color-ink);--fx-on-inverse:var(--color-canvas);--fx-ink:var(--color-ink);--fx-ink-muted:var(--color-ink-muted);--fx-ink-faint:var(--color-ink-faint);--fx-hairline:var(--color-hairline);--fx-accent:var(--color-blue);--fx-on-accent:var(--color-on-blue);--fx-on-inverse-strong:color-mix(in srgb, var(--fx-on-inverse) 88%, transparent);--fx-on-inverse-muted:color-mix(in srgb, var(--fx-on-inverse) 60%, transparent);--fx-on-inverse-faint:color-mix(in srgb, var(--fx-on-inverse) 40%, transparent);--fx-on-inverse-rule:color-mix(in srgb, var(--fx-on-inverse) 12%, transparent);--fx-font:var(--font-app), ui-sans-serif, system-ui, sans-serif;--fx-font-numeral:var(--font-numeral), var(--font-app), ui-sans-serif, sans-serif;--fx-caption:14px;--fx-caption-lh:1.45;--fx-body-sm:16px;--fx-body-sm-lh:1.45;--fx-body:18px;--fx-body-lh:1.45;--fx-body-lg:20px;--fx-body-lg-lh:1.3;--fx-heading-sm:24px;--fx-heading-sm-lh:1.25;--fx-heading:30px;--fx-heading-lh:1.2;--fx-heading-lg:40px;--fx-heading-lg-lh:1.1;--fx-display-sm:48px;--fx-display-sm-lh:1.05;--fx-display:64px;--fx-display-lh:1.02;--fx-display-xl:88px;--fx-display-xl-lh:.95;--fx-label:12px;--fx-label-tracking:.075em;--fx-4:4px;--fx-8:8px;--fx-16:16px;--fx-24:24px;--fx-32:32px;--fx-48:48px;--fx-64:64px;--fx-80:80px;--fx-120:120px;--fx-160:160px;--fx-radius-small:8px;--fx-radius-button:12px;--fx-radius-card:20px;--fx-radius-media:20px;--fx-radius-pill:9999px;--fx-shadow-card:0 2px 30px #1d1c1a12;--fx-reveal-duration:.6s;--fx-reveal-easing:cubic-bezier(.22, 1, .36, 1);--fx-hover-duration:.2s;--fx-section-gap:var(--fx-64);--fx-card-pad:var(--fx-24);font-family:var(--fx-font);color:var(--fx-ink)}@container (min-width:560px){.fx{--fx-section-gap:var(--fx-120);--fx-card-pad:var(--fx-48)}}.fx-display{font-size:var(--fx-heading-lg);line-height:var(--fx-heading-lg-lh);letter-spacing:-.03em;font-weight:600}.fx-heading{font-size:var(--fx-heading-sm);line-height:var(--fx-heading-sm-lh);letter-spacing:-.02em;font-weight:600}.fx-quote{font-size:var(--fx-heading-sm);letter-spacing:-.02em;font-weight:400;line-height:1.3}.fx-body{font-size:var(--fx-body-sm);line-height:var(--fx-body-sm-lh);color:var(--fx-ink-muted)}.fx-caption{font-size:var(--fx-caption);line-height:var(--fx-caption-lh);color:var(--fx-ink-faint)}@container (min-width:560px){.fx-display{font-size:var(--fx-display);line-height:var(--fx-display-lh);letter-spacing:-.035em}.fx-heading{font-size:var(--fx-heading-lg);line-height:var(--fx-heading-lg-lh);letter-spacing:-.03em}.fx-quote{font-size:var(--fx-heading);line-height:1.25}.fx-body{font-size:var(--fx-body);line-height:var(--fx-body-lh)}}.fx-label{font-size:var(--fx-label);letter-spacing:var(--fx-label-tracking);text-transform:uppercase;color:var(--fx-ink-faint);font-weight:500;line-height:1}.fx-numeral{font-family:var(--fx-font-numeral);font-size:var(--fx-display-sm);letter-spacing:.01em;color:color-mix(in srgb, var(--fx-ink) 25%, transparent);font-variant-numeric:tabular-nums;font-weight:700;line-height:.85}.fx-figure{font-family:var(--fx-font-numeral);font-size:var(--fx-display-sm);letter-spacing:.01em;font-variant-numeric:tabular-nums;font-weight:700;line-height:.85}@container (min-width:560px){.fx-numeral,.fx-figure{font-size:var(--fx-display-xl)}}.fx-card{border-radius:var(--fx-radius-card);padding:var(--fx-card-pad)}.fx-raised{background:var(--fx-raised);box-shadow:var(--fx-shadow-card)}.fx-inverse{background:var(--fx-inverse);color:var(--fx-on-inverse)}.fx-media{border-radius:var(--fx-radius-media);object-fit:cover}.fx-rule{background:var(--fx-hairline);width:100%;height:1px}.fx-inverse .fx-rule{background:var(--fx-on-inverse-rule)}.fx-button{border-radius:var(--fx-radius-button);background:var(--fx-accent);color:var(--fx-on-accent);font-size:var(--fx-body-sm);min-height:52px;padding:0 var(--fx-32);transition:opacity var(--fx-hover-duration) ease;font-weight:500}.fx-button:hover{opacity:.9}.fx-reveal[data-shown=false]{opacity:0;transform:translateY(16px)}.fx-reveal{transition:opacity var(--fx-reveal-duration) var(--fx-reveal-easing), transform var(--fx-reveal-duration) var(--fx-reveal-easing)}@media (prefers-reduced-motion:reduce){.fx-reveal{opacity:1;transition:none;transform:none}}