/* Structure from the First Touch reference; original light ProfitScanner palette. */
.ps-home { --ps-ink: #1a1a1a; --ps-muted: #535b64; --ps-line: #cdd2d1; color-scheme: light; background: #fafafa; color: var(--ps-ink); }
.ps-home *, .ps-home *::before, .ps-home *::after { letter-spacing: 0; }
.ps-home .page-shell { width: 100%; padding: 0; }
.ps-home .page-content { display: block; padding: 0; margin: 0; }
.ps-home .site-header, .ps-home .site-footer { display: none; }
.ps-home :focus-visible { outline: 2px solid #274e64; outline-offset: 5px; }
.ps-cover { position: relative; isolation: isolate; min-height: 100svh; background: #eef1ef; overflow: hidden; }
.ps-cover-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center center; z-index: -2; transform: scale(1.02); animation: ps-hero-drift 18s ease-in-out infinite alternate; }
.ps-cover::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(250,250,248,.92) 0%, rgba(250,250,248,.72) 26%, rgba(250,250,248,.18) 52%, transparent 76%); pointer-events: none; }
.ps-hero-copy { position: absolute; left: clamp(42px, 7vw, 128px); top: clamp(260px, 38svh, 410px); color: #242424; }
.ps-hero-copy h1 { margin: 0; font-size: clamp(56px, 6.4vw, 116px); font-weight: 400; line-height: .95; letter-spacing: 0; }
.ps-hero-tagline {
    max-width: min(560px, 58vw);
    margin: clamp(28px, 4.5svh, 52px) 0 0;
    color: #292929;
    font-size: clamp(24px, 2.2vw, 40px);
    font-weight: 400;
    line-height: 1.2;
    text-wrap: balance;
}
@keyframes ps-hero-drift {
    from { transform: scale(1.02) translate3d(0, 0, 0); }
    to { transform: scale(1.055) translate3d(-1.2%, -.7%, 0); }
}
.ps-eyebrow { margin: 0 0 24px; color: var(--ps-muted); font-size: 14px; line-height: 1.5; font-weight: 500; }
.ps-lead { margin: 24px 0 0; max-width: 510px; font-size: 18px; line-height: 1.65; color: var(--ps-muted); text-wrap: pretty; }
.ps-actions { margin-top: 36px; }
.ps-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 32px; min-height: 60px; padding: 16px 24px; min-width: 240px; border: 1px solid #1a1a1a; border-radius: 6px; background: #1a1a1a; color: #fff; font: inherit; font-size: 16px; transition: background .2s; }
.ps-button:hover { background: #354147; }
.ps-button span { font-size: 22px; }
.ps-story { position: relative; background: #fafafa; }
.ps-story-stage { position: relative; isolation: isolate; overflow: hidden; }
.ps-story-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center center; z-index: -2; }
.ps-story-stage::after { content: none; }
.ps-story-inner { width: min(1280px, calc(100% - 80px)); margin: auto; padding: 72px 0; }
.ps-progress { display: none; width: min(440px, 100%); height: 3px; margin-bottom: 36px; background: transparent; }
.ps-progress span { display: block; height: 100%; width: 100%; background: #f8f4ec; transform: scaleX(.25); transform-origin: left; transition: transform .3s ease-out; }
.ps-slide { padding: 32px 0; max-width: 780px; }
.ps-story .ps-eyebrow { color: rgba(255,255,255,.76); }
.ps-story .ps-lead { color: rgba(255,255,255,.82); }
.ps-story .ps-slide h2 { color: #fffaf0; }
.ps-story .ps-slide h2, .ps-story .ps-eyebrow, .ps-story .ps-lead { text-shadow: 0 2px 24px rgba(0,0,0,.76), 0 1px 2px rgba(0,0,0,.8); }
.ps-slide h2 { margin: 0; font-size: 60px; font-weight: 400; line-height: 1.12; text-wrap: balance; }
.ps-story-bottom { display: flex; align-items: center; gap: 32px; margin-top: 36px; }
.ps-story .ps-button { background: #f8f4ec; border-color: #f8f4ec; color: #171717; }
.ps-story .ps-button:hover { background: #fff; }
.ps-story.is-enhanced { height: 290svh; }
.ps-story.is-enhanced .ps-story-stage { position: sticky; top: 0; height: 100svh; min-height: 650px; display: flex; align-items: center; }
.ps-story.is-enhanced .ps-progress { display: flex; }
.ps-story.is-enhanced .ps-slide-viewport { overflow: hidden; width: min(820px, 100%); }
.ps-story.is-enhanced .ps-slides { display: flex; width: 100%; transition: transform .35s ease-out; }
.ps-story.is-enhanced .ps-slide { flex: 0 0 100%; min-width: 100%; max-width: none; padding: 0 24px 0 0; visibility: hidden; }
.ps-story.is-enhanced .ps-slide.is-active { visibility: visible; }
.ps-support { width: min(1280px, calc(100% - 80px)); margin: 0 auto; padding: 64px 0; }
.ps-support h2 { font-size: 16px; font-weight: 500; color: var(--ps-muted); margin: 0 0 32px; }
.ps-support-logos { display: flex; flex-wrap: wrap; align-items: center; gap: 64px; }
.ps-support-logos img { width: 280px; height: 88px; object-fit: contain; object-position: left center; }
/* The supplied federal-project mark is white with transparency. */
.ps-support-logos .ps-platform-logo { width: 210px; filter: brightness(0); }
.ps-support p { margin: 32px 0 0; max-width: 780px; color: var(--ps-muted); font-size: 13px; line-height: 1.7; }
@media (max-width: 1024px) { .ps-slide h2 { font-size: 48px; } }
@media (max-width: 760px) {
    .ps-story-inner, .ps-support { width: calc(100% - 48px); }
    .ps-cover { min-height: 100svh; }
    .ps-cover-image { object-position: left center; }
    .ps-cover::after { background: linear-gradient(180deg, rgba(250,250,248,.82) 0%, rgba(250,250,248,.5) 42%, rgba(250,250,248,.10) 100%); }
    .ps-hero-copy { left: 26px; right: 26px; top: clamp(220px, 34svh, 330px); }
    .ps-hero-copy h1 { font-size: clamp(42px, 14vw, 58px); }
    .ps-hero-tagline { max-width: min(330px, calc(100% - 12px)); font-size: 22px; margin-top: 24px; }
    .ps-eyebrow { font-size: 13px; margin-bottom: 20px; }
    .ps-lead { font-size: 17px; }
    .ps-actions { margin-top: 28px; }
    .ps-story-inner { padding: 48px 0; }
    .ps-story-image { object-position: 54% center; }
    .ps-slide h2 { font-size: 38px; }
    .ps-story.is-enhanced .ps-slide { padding-right: 4px; }
    .ps-story-bottom { align-items: flex-start; flex-direction: column; gap: 24px; }
    .ps-support { padding: 48px 0; }
    .ps-support-logos { gap: 32px; }
}
@media (max-width: 370px) {
    .ps-hero-copy { top: clamp(190px, 31svh, 280px); }
    .ps-hero-copy h1 { font-size: 42px; }
    .ps-hero-tagline { max-width: 270px; font-size: 19px; }
    .ps-slide h2 { font-size: 32px; }
    .ps-support-logos img { max-width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .ps-home *, .ps-home *::before, .ps-home *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
