/* Public landing page only. The employee workspace keeps its existing styles. */
.public-home {
    --public-header-height: 5rem;
    --landing-text: #f3f6ff;
    --landing-muted: #bac8df;
    --landing-accent: #80dbff;
    --landing-border: #283d63;
    --landing-panel: #0a1730;
    min-width: 0;
    color: var(--landing-text);
    background: #030a19;
    font-size: 1rem;
    line-height: 1.6;
}

.public-home .page-shell {
    container: public-landing / inline-size;
    width: 100%;
    max-width: none;
    overflow: visible;
    background: #030a19;
    box-shadow: none;
}

.public-home.is-public-nav-open { overflow: visible; }
.public-home :where(h1, h2, h3, p, ul, ol, dl) { margin-top: 0; }
.public-home :where(h1, h2, h3) { overflow-wrap: normal; hyphens: none; }
.public-home :where(a, button, summary, input, textarea):focus-visible {
    outline: 3px solid #91e1ff;
    outline-offset: 4px;
}
.public-home :where([id]) { scroll-margin-top: calc(var(--public-header-height) + 1.25rem); }
.landing-container { width: min(100%, 1408px); margin-inline: auto; padding-inline: 2rem; }
.landing-sections { display: grid; gap: 4.5rem; padding-bottom: 4.5rem; }
.public-home .landing-sections > section { min-width: 0; margin: 0; padding: 0; }
.public-home .intro-block { max-width: none; }
.public-home .hero-section { padding: 0.85rem 2rem 0.8rem; }
.public-home .hero-grid { grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); gap: 1rem; }
.public-home .hero-showcase {
    container: hero-showcase / inline-size;
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    min-height: 29rem;
    background-size: cover;
}
.public-home .hero-copy { width: auto; min-width: 0; padding: 1.5rem; }
.public-home .hero-copy h1 { font-size: clamp(1.6rem, 5cqi, 2.75rem); text-wrap: balance; }
.public-home .hero-copy h1 span { width: auto; }
.public-home .hero-actions { flex-flow: row wrap; align-items: stretch; }
.public-home .hero-actions .button { flex: 1 1 12rem; min-width: 0; padding-inline: 1rem; white-space: normal; }
.public-home .trust-list { flex-flow: row wrap; align-items: flex-start; gap: 1rem; }
.public-home .hero-visual {
    position: relative;
    inset: auto;
    display: flex;
    align-items: flex-end;
    min-width: 0;
    opacity: 1;
}
.public-home .hero-visual img {
    position: static;
    inset: auto;
    width: 100%;
    height: auto;
    max-height: 34rem;
    object-fit: contain;
}
.public-home .top-insights { min-width: 0; min-height: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto; }
.public-home .top-insights .skills-card { grid-column: 1 / -1; }
.public-home .intro-block .skill-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 2rem; }
.public-home .intro-block .skill-row meter { min-width: 0; }

/* Match the available page width, including browser zoom and larger text. */
@container public-landing (max-width: 79.9375rem) {
    .public-home .hero-grid { grid-template-columns: minmax(0, 1fr); }
    .public-home .hero-showcase { min-height: 0; }
}
@container public-landing (max-width: 47.9375rem) {
    .public-home .hero-showcase { grid-template-columns: minmax(0, 1fr); }
    .public-home .hero-copy { padding: 1.25rem; }
    .public-home .hero-copy h1 { font-size: clamp(1.6rem, 6.5cqi, 2.5rem); }
    .public-home .hero-visual { justify-content: center; }
    .public-home .hero-visual img { width: auto; max-width: 100%; max-height: 20rem; }
    .public-home .hero-actions { flex-direction: column; }
    .public-home .hero-actions .button { flex-basis: auto; }
    .public-home .top-insights { grid-template-columns: minmax(0, 1fr); }
}

.landing-skip-link {
    position: fixed;
    top: 0.5rem;
    left: 1rem;
    z-index: 200;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    color: #031025;
    background: #91e1ff;
    transform: translateY(-160%);
}
.landing-skip-link:focus { transform: none; }

.public-home .home-header {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 1.25rem;
    height: auto;
    min-height: var(--public-header-height);
    padding: 0.75rem max(2rem, calc((100vw - 1344px) / 2));
    background: #060f21;
    border-bottom: 1px solid var(--landing-border);
    backdrop-filter: none;
    box-shadow: none;
}
.public-home .home-header .site-logo { width: 9rem; height: 2.75rem; }
.public-home .home-header .site-logo__text { font-size: 1.25rem; }
.public-home .home-header .public-nav {
    position: static;
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
    width: auto;
    max-height: none;
    gap: 0.25rem;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    font-size: 0.875rem;
    line-height: 1.35;
    overflow: visible;
}
.public-home .home-header .public-nav-link {
    width: auto;
    min-height: 2.75rem;
    padding: 0.5rem 0.625rem;
    color: #c8d6ed;
}
.public-home .home-header .public-nav-link:is(:hover, .is-active) { color: #91e1ff; }
.public-home .home-header .public-nav-link::after { box-shadow: none; }
.public-home .public-header-actions { grid-column: auto; gap: 0.625rem; }
.public-home .public-header-login,
.public-home .public-header-cta,
.public-home .public-nav-mobile-cta {
    min-height: 2.75rem;
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
    line-height: 1.35;
}
.public-home .public-header-login { border-color: #6883ab; color: #f3f6ff; }
.public-home .public-header-cta { display: inline-flex; }
.public-home .public-nav-mobile-cta,
.public-home .home-header .nav-toggle { display: none; }
.public-home .home-header .nav-toggle { place-content: center; gap: 0.27rem; padding: 0; aspect-ratio: 1; border: 1px solid #6883ab; border-radius: 0.65rem; background: #0b1730; color: #fff; cursor: pointer; }
.public-home .home-header .nav-toggle span { display: block; width: 1.2rem; height: 2px; border-radius: 2px; background: currentColor; }
.public-home .home-header.is-open .nav-toggle span:nth-child(1) { transform: translateY(0.54rem) rotate(45deg); }
.public-home .home-header.is-open .nav-toggle span:nth-child(2) { opacity: 0; }
.public-home .home-header.is-open .nav-toggle span:nth-child(3) { transform: translateY(-0.54rem) rotate(-45deg); }

.landing-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
    gap: 3.5rem;
    align-items: center;
    padding-block: 3.5rem 4.5rem;
}
.landing-hero-copy { min-width: 0; }
.landing-kicker,
.public-home .public-detail-kicker {
    display: block;
    margin-bottom: 1rem;
    color: var(--landing-accent);
    font-size: 0.875rem;
    font-weight: 650;
    letter-spacing: 0.075em;
    line-height: 1.5;
    text-transform: uppercase;
}
.landing-hero h1 {
    margin: 0 0 1.5rem;
    font-size: clamp(2.5rem, 3.3vw, 3.25rem);
    font-weight: 750;
    line-height: 1.15;
    letter-spacing: -0.035em;
    text-wrap: balance;
}
.landing-accent { color: #b6b4ff; }
.landing-lead { max-width: 58ch; margin-bottom: 1rem; color: var(--landing-muted); font-size: 1.125rem; line-height: 1.65; }
.landing-scope { margin-bottom: 1.75rem; color: #dbe6fb; font-size: 0.9375rem; }
.landing-actions,
.public-actions { display: flex; flex-wrap: wrap; gap: 0.875rem; align-items: center; }
.landing-button,
.public-home .public-actions .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
    min-width: 0;
    min-height: 3rem;
    border: 1px solid #7189b4;
    border-radius: 0.75rem;
    padding: 0.8rem 1.125rem;
    color: #fff;
    font-size: 1rem;
    font-weight: 650;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    cursor: pointer;
}
.landing-button--primary,
.public-home .public-header-cta,
.public-home .public-nav-mobile-cta,
.public-home .public-actions .button-primary {
    border-color: #8d91ff;
    background: linear-gradient(110deg, #6551c8, #315cad);
    color: #fff;
    box-shadow: 0 5px 24px #6259eb24;
}
.landing-button--secondary,
.public-home .public-actions .button-ghost { background: #0b1730; box-shadow: none; }
.landing-button:hover { border-color: #ace7ff; filter: brightness(1.08); }
.landing-action-note,
.public-action-note { margin: 0.875rem 0 0; font-size: 0.875rem; color: var(--landing-muted); }
.landing-trust { display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; padding: 0; margin: 1.75rem 0 0; list-style: none; }
.landing-trust li { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; }
.landing-trust img { width: 2rem; height: 2rem; flex: 0 0 auto; }

.landing-hero-visual { min-width: 0; }
.landing-mascot-scene {
    display: grid;
    place-items: center;
    min-width: 0;
    border-radius: 1.5rem 1.5rem 0 0;
    background: linear-gradient(0deg, #0a1730, #050e1b1f 68%), url('/images/home-hero-cityscape-768.webp') center / cover;
}
.landing-mascot { display: block; width: 16.25rem; max-width: 100%; }
.landing-mascot img { display: block; width: 100%; height: auto; aspect-ratio: 1238 / 1600; }
.landing-demo { padding: 1.5rem; border: 1px solid #435582; border-radius: 0 0 1rem 1rem; background: #0a1730; }
.landing-demo-label { margin-bottom: 0.75rem; color: #9edfff; font-size: 0.875rem; }
.landing-demo h2 { margin: 0 0 1rem; font-size: 1.25rem; line-height: 1.4; }
.landing-demo h2 > span { color: var(--landing-muted); font-size: 0.875rem; font-weight: 500; }
.landing-demo-score { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; }
.landing-demo-score p { margin: 0; font-size: 1rem; }
.landing-demo-score div > span { color: var(--landing-muted); font-size: 0.875rem; }
.landing-demo-score > strong { flex: 0 0 auto; color: #a8e5d9; font-size: 2rem; line-height: 1; }
.landing-demo-score strong > span { color: #c2d1e8; font-size: 1rem; font-weight: 500; }
.landing-demo-skills { display: grid; gap: 0.5rem; margin: 0; padding-block: 1rem; border-block: 1px solid var(--landing-border); }
.landing-demo-skills > div { display: flex; justify-content: space-between; gap: 1rem; font-size: 0.875rem; }
.landing-demo-skills dt { color: var(--landing-muted); }
.landing-demo-skills dd { margin: 0; text-align: right; }
.landing-demo-conclusion { margin: 1rem 0 0; color: #d2def2; font-size: 0.875rem; }

.public-home .public-section-heading,
.public-home .public-detail-heading {
    display: block;
    grid-column: 1 / -1;
    margin: 0 0 1.75rem;
    padding: 0;
}
.public-home .public-section-heading h2,
.public-home .public-detail-heading h2,
.public-home .public-pilot h2,
.public-home .public-security h2,
.public-home .public-final-cta h2 {
    max-width: 34ch;
    margin: 0 0 1rem;
    color: var(--landing-text);
    font-size: clamp(1.75rem, 2.25vw, 2.125rem);
    letter-spacing: -0.02em;
    line-height: 1.25;
}
.public-home .public-section-heading p,
.public-home .public-detail-heading p { max-width: 76ch; margin: 0; color: var(--landing-muted); font-size: 1.0625rem; line-height: 1.7; }
.public-home .workflow-section .section-heading { display: block; margin-bottom: 1.75rem; }
.public-home .workflow-section .section-heading span { display: none; }
.public-home .workflow-section .section-heading h2 { font-size: 2.125rem; line-height: 1.25; }
.public-home .workflow-panel { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
.public-home .step-card { display: flex; flex-direction: column; min-height: 0; padding: 1.5rem; border-color: var(--landing-border); background: var(--landing-panel); box-shadow: none; }
.public-home .step-card::after { display: none; }
.public-home .step-visual { justify-content: space-between; gap: 1rem; min-height: 4.5rem; margin-bottom: 1.5rem; }
.public-home .step-number { width: 2.5rem; height: 2.5rem; flex: 0 0 auto; border-color: #78a6d7; font-size: 1rem; }
.public-home .step-icon { width: 4.5rem; height: 4.5rem; }
.public-home .step-card h3 { margin-bottom: 0.75rem; font-size: 1.125rem; line-height: 1.4; }
.public-home .step-card p { color: var(--landing-muted); font-size: 1rem; line-height: 1.65; }
.public-home .benefits-section { display: block; }
.public-benefit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.public-home .benefits-section .public-section-heading { margin-bottom: 1.75rem; }
.public-home .benefit-card { display: flex; flex-direction: column; align-items: flex-start; min-height: 0; padding: 1.5rem; border-color: var(--landing-border); background: #0a1730; box-shadow: none; }
.public-home .benefit-card:hover,
.public-home .benefit-card:focus-visible { border-color: #8478cb; background: linear-gradient(145deg, #221d43, #0b1935); }
.public-home .benefit-card:focus-visible { outline: 2px solid #8edfff; outline-offset: 3px; }
.public-home .benefit-icon { display: block; width: 3.25rem; height: 3.25rem; margin: 0 0 1rem; }
.public-home .benefit-card h3 { margin-bottom: 0.75rem; font-size: 1.25rem; line-height: 1.35; }
.public-home .benefit-card p { margin: 0; color: var(--landing-muted); font-size: 1rem; line-height: 1.65; }
.public-feature-status,
.public-role-status { display: block; margin: 0 0 0.75rem; color: #ddd0ff; font-size: 0.875rem; line-height: 1.5; }

.public-role-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 1.5rem; }
.public-role-card { display: flex; flex-direction: column; min-width: 0; padding: 1.5rem; border: 1px solid var(--landing-border); border-radius: 0.875rem; background: #0a1730; }
.public-role-card h3 { margin-bottom: 0.75rem; font-size: 1.125rem; line-height: 1.45; }
.public-role-card > p { margin-bottom: 1rem; color: var(--landing-muted); }
.public-role-card .public-role-status { margin-top: auto; }
.public-role-card summary { position: relative; padding: 0.75rem 2rem 0.75rem 0; color: #9edfff; font-size: 0.875rem; cursor: pointer; list-style: none; }
.public-role-card summary::-webkit-details-marker { display: none; }
.public-role-card summary::after { position: absolute; top: 0.5rem; right: 0; content: '+'; color: #91e1ff; font-size: 1.5rem; line-height: 1.2; }
.public-role-details[open] summary::after { content: '−'; }
.public-role-card summary :is(h3, strong) { display: block; margin-bottom: 0.5rem; font-size: 1.125rem; line-height: 1.45; }
.public-role-card summary span { color: #9edfff; font-size: 0.875rem; }
.public-role-details p { margin: 0.5rem 0 0; color: var(--landing-muted); font-size: 0.9375rem; }
.public-role-details a { color: #9edfff; text-decoration: underline; }
.public-home .public-detail-link { display: inline-flex; align-items: center; min-height: 2.75rem; margin-top: 0; color: #9edfff; font-size: 1rem; text-decoration: underline; text-underline-offset: 0.25rem; }
.public-home .public-detail-link:hover { color: #fff; }

.public-report-grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.public-report-conversation,
.public-report-evidence { min-width: 0; border: 1px solid var(--landing-border); border-radius: 1rem; padding: 1.5rem; background: #0a1730; }
.public-report-grid h3 { font-size: 1.25rem; line-height: 1.4; margin-bottom: 1.25rem; }
.public-report-label { display: block; margin-bottom: 0.5rem; color: #9edfff; font-size: 0.875rem; font-weight: 650; }
.public-report-turn + .public-report-turn { margin-top: 1.5rem; }
.public-report-turn p { margin-bottom: 0; }
.public-home .public-report-grid blockquote { margin: 0; border-left: 2px solid #9391e3; padding: 0.875rem 1rem; background: #151e3c; color: #e0e8f7; font-size: 1rem; }
.public-report-comment { color: var(--landing-muted); }
.public-report-skills { display: grid; gap: 1rem; margin: 1.5rem 0; }
.public-report-skills > div { padding-block: 1rem; border-bottom: 1px solid var(--landing-border); }
.public-report-skills dt { margin-bottom: 0.5rem; font-weight: 650; }
.public-report-skills dd { margin: 0; color: var(--landing-muted); }
.public-report-skills strong { color: #c2e5df; }
.public-report-expanded { margin-top: 1.5rem; border: 1px solid #597299; border-radius: 0.875rem; background: #09142a; }
.public-report-expanded > summary { min-height: 3rem; padding: 1rem 1.5rem; color: #b3e6ff; font-size: 1rem; font-weight: 650; cursor: pointer; }
.public-report-expanded > :not(summary) { margin: 0; padding: 0 1.5rem 1.5rem; }
.public-report-expanded h3 { font-size: 1.125rem; }
.public-report-expanded p { max-width: 90ch; color: var(--landing-muted); }
.public-demo-notice { margin-bottom: 1.5rem; padding: 1rem 1.5rem; border-left: 2px solid #ada2f0; background: #171a34; }
.public-demo-label { display: block; margin-bottom: 0.5rem; color: #c8bfff; font-size: 0.875rem; font-weight: 650; }
.public-demo-notice p { margin: 0; color: #d6def0; font-size: 0.9375rem; }
.public-report-score { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; align-items: center; margin: 0 0 0.75rem; }
.public-report-score > strong { color: #a8e5d9; font-size: 2rem; line-height: 1.2; }
.public-report-score strong > span { font-size: 1.125rem; color: var(--landing-muted); }
.public-report-score > span { font-size: 0.875rem; color: #c4e8e0; }
.public-report-evidence > div + div { margin-top: 1.5rem; }
.public-report-evidence p:last-child { margin-bottom: 0; }
.public-helper { color: var(--landing-muted); font-size: 0.875rem; line-height: 1.6; }
.public-report-expanded-content { padding-top: 0.5rem !important; }
.public-report-expanded-content h3 { margin-top: 1.25rem; }
.public-report-skills { grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 1.5rem; }
.public-report-skills h4,
.public-report-next-step h4 { margin: 0 0 0.5rem; font-size: 1rem; }
.public-report-skills p { margin: 0; }
.public-report-unverified { padding-top: 1.25rem; border-top: 1px solid var(--landing-border); color: var(--landing-muted); }
.public-cta-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-block: 1.5rem 1rem; }
.public-home :is(.primary-button, .secondary-button) {
    display: inline-flex;
    min-height: 3rem;
    align-items: center;
    justify-content: center;
    border: 1px solid #7189b4;
    border-radius: 0.75rem;
    padding: 0.8rem 1.125rem;
    color: #fff;
    font-size: 1rem;
    font-weight: 650;
    line-height: 1.4;
    text-align: center;
}
.public-home .primary-button { border-color: #8d91ff; background: linear-gradient(110deg, #6551c8, #315cad); }
.public-home .secondary-button { background: #0b1730; }
.public-home :is(.primary-button, .secondary-button):hover { border-color: #ace7ff; filter: brightness(1.08); }
.public-pilot-action .public-helper { margin: 1rem 0 0; }
.public-security-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.public-security-grid > article { padding: 1.5rem; border-top: 2px solid #50668e; background: #09142a; border-radius: 0 0 0.75rem 0.75rem; }
.public-security-grid h3 { margin: 0 0 0.75rem; font-size: 1.125rem; }
.public-security-grid p { margin: 0; color: var(--landing-muted); }
.public-document-links { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; margin-top: 1.5rem; }
.public-document-links a { color: #9edfff; font-size: 0.875rem; text-decoration: underline; text-underline-offset: 0.25rem; }

.public-home .landing-sections > .public-pilot,
.public-home .landing-sections > .public-final-cta { padding: 2rem; border: 1px solid #4d5185; border-radius: 1.25rem; background: linear-gradient(120deg, #171b3c, #091a31); }
.public-pilot p,
.public-security > p,
.public-final-cta p { max-width: 74ch; color: var(--landing-muted); }
.public-security .public-detail-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 2rem; padding: 0; margin: 1.5rem 0; list-style: none; }
.public-home .public-detail-list li { color: var(--landing-muted); font-size: 1rem; line-height: 1.65; }
.public-home .public-detail-list li::before { color: #9ad9d1; }
.public-security-links { display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; }
.public-final-cta .landing-actions,
.public-final-cta .public-actions { margin-top: 1.5rem; }

.public-home .site-footer {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.8fr) minmax(0, 1fr);
    gap: 2rem;
    width: min(100%, 1408px);
    margin: 0 auto;
    border: 0;
    border-top: 1px solid var(--landing-border);
    border-radius: 0;
    padding: 2.5rem 2rem 1.5rem;
    background: transparent;
    box-shadow: none;
}
.public-home .footer-brand .site-logo { width: 9rem; height: 2.75rem; margin-bottom: 1rem; }
.public-home .footer-brand p,
.public-home .footer-contact p { margin: 0.75rem 0; color: var(--landing-muted); font-size: 0.875rem; }
.public-home .footer-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.public-home .footer-nav strong,
.public-home .footer-contact > strong { font-size: 0.9375rem; color: var(--landing-text); }
.public-home .footer-nav a { display: block; padding-block: 0.375rem; color: var(--landing-muted); font-size: 0.875rem; line-height: 1.5; }
.public-home .footer-nav a:hover,
.public-home .footer-contact a:hover { color: #fff; text-decoration: underline; }
.public-home .footer-contact .public-detail-link { font-size: 0.875rem; }
.public-home .footer-contact__privacy a { overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: 3px; }
.public-home .legal-line { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; padding-top: 1.5rem; color: var(--landing-muted); font-size: 0.875rem; line-height: 1.5; }
.public-home .legal-line a { text-decoration: underline; text-underline-offset: 3px; }
.public-home .feedback-dialog__close { width: 2.75rem; height: 2.75rem; }
.public-home .auth-modal__submit,
.public-home .feedback-form__submit { background: linear-gradient(110deg, #6551c8, #315cad); color: #fff; }
.public-home .auth-field input,
.public-home .feedback-field input { border-color: #7184a5; }
.public-home .feedback-field input::placeholder { color: #b0bdd3; }
.public-home .feedback-consent,
.public-home .auth-modal__privacy { font-size: 0.875rem; }

/* Adapt to enlarged text as well as viewport width. */
@container public-landing (max-width: 64rem) {
    .public-home .home-header { grid-template-columns: minmax(0, 1fr) auto; }
    .public-home .home-header .public-nav {
        position: absolute;
        top: calc(100% + 0.25rem);
        right: 1rem;
        left: 1rem;
        display: none;
        flex-direction: column;
        align-items: stretch;
        max-height: calc(100dvh - var(--public-header-height) - 1.5rem);
        overflow-y: auto;
        padding: 0.75rem;
        border: 1px solid #597299;
        border-radius: 1rem;
        background: #09152c;
        box-shadow: 0 1rem 2rem #0006;
        font-size: 1rem;
    }
    .public-home .home-header.is-open .public-nav { display: flex; }
    .public-home .home-header .public-nav-link { width: 100%; padding: 0.75rem; }
    .public-home .public-header-actions { grid-column: 2; }
    .public-home .public-header-cta { display: none; }
    .public-home .public-nav-mobile-cta { display: inline-flex; }
    .public-home .home-header .nav-toggle { display: grid; width: 2.75rem; min-height: 2.75rem; border-color: #6883ab; }
    .landing-hero { grid-template-columns: minmax(0, 1fr); }
    .landing-hero-copy { max-width: 52rem; }
    .public-home .workflow-panel,
    .public-benefit-grid,
    .public-role-grid,
    .public-security-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .public-home .site-footer { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 1279px) {
    .public-home { --public-header-height: 4.75rem; }
    .public-home .home-header { grid-template-columns: minmax(0, 1fr) auto; }
    .public-home .home-header .public-nav {
        position: absolute;
        top: calc(100% + 0.25rem);
        right: 1rem;
        left: 1rem;
        display: none;
        flex-direction: column;
        align-items: stretch;
        max-height: calc(100dvh - var(--public-header-height) - 1.5rem);
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: 0.75rem;
        border: 1px solid #597299;
        border-radius: 1rem;
        background: #09152c;
        box-shadow: 0 1rem 2rem #0006;
        font-size: 1rem;
    }
    .public-home .home-header.is-open .public-nav { display: flex; }
    .public-home .home-header .public-nav-link { width: 100%; padding: 0.75rem; }
    .public-home .public-header-actions { grid-column: 2; }
    .public-home .public-header-cta { display: none; }
    .public-home .public-nav-mobile-cta { display: inline-flex; }
    .public-home .home-header .nav-toggle { display: grid; width: 2.75rem; min-height: 2.75rem; border-color: #6883ab; }
    .landing-hero { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
    .landing-hero-copy { max-width: 52rem; }
    .landing-hero h1 { max-width: 24ch; font-size: 2.75rem; }
    .landing-hero-visual { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr); align-items: stretch; }
    .landing-mascot-scene { border-radius: 1rem 0 0 1rem; }
    .landing-mascot { align-self: end; }
    .landing-demo { border-radius: 0 1rem 1rem 0; align-content: center; }
    .public-home .workflow-panel,
    .public-benefit-grid,
    .public-role-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .public-home .step-card h3 { min-height: 0; }
    .public-home .site-footer { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
    .public-home .footer-contact { grid-column: 1 / -1; max-width: 44rem; }
}

@media (max-width: 767px) {
    .public-home { --public-header-height: 4.5rem; }
    .landing-container { padding-inline: 1rem; }
    .public-home .hero-section { padding-inline: 1rem; }
    .public-home .intro-block .skill-row { grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr) 2rem; gap: 0.5rem; }
    .public-home .intro-block .skill-row meter { min-width: 0; }
    .landing-sections { gap: 2.75rem; padding-bottom: 2.75rem; }
    .public-home .home-header { gap: 0.5rem; padding: 0.75rem 1rem; }
    .public-home .home-header .site-logo { width: auto; max-width: none; height: 2.75rem; gap: 0.4rem; }
    .public-home .home-header .site-logo__icon { width: 2rem !important; height: 2rem !important; }
    .public-home .home-header .site-logo__text { font-size: 1.125rem; }
    .public-home .public-header-actions { gap: 0.5rem; }
    .public-home .public-header-login { min-width: 0; padding: 0.625rem 0.75rem; }
    .landing-hero { gap: 2rem; padding-block: 2rem 2.75rem; }
    .landing-hero h1 { font-size: 2rem; max-width: 24ch; }
    .landing-lead { font-size: 1rem; }
    .landing-scope { font-size: 0.875rem; }
    .landing-actions,
    .public-actions { align-items: stretch; flex-direction: column; }
    .landing-button,
    .public-home .public-actions .button { width: 100%; }
    .landing-trust { display: grid; gap: 0.75rem; }
    .landing-hero-visual { grid-template-columns: minmax(0, 1fr); }
    .landing-mascot-scene { border-radius: 1rem 1rem 0 0; }
    .landing-mascot { width: 12.5rem; }
    .landing-demo { padding: 1.25rem; border-radius: 0 0 1rem 1rem; }
    .landing-demo h2 { font-size: 1.125rem; }
    .landing-demo-score { gap: 0.5rem; }
    .landing-demo-score p { font-size: 0.9375rem; }
    .public-home .workflow-panel,
    .public-benefit-grid,
    .public-role-grid,
    .public-report-grid,
    .public-report-skills,
    .public-security-grid,
    .public-security .public-detail-list { grid-template-columns: minmax(0, 1fr); }
    .public-home .workflow-panel,
    .public-benefit-grid,
    .public-role-grid { gap: 1.25rem; }
    .public-home .step-card,
    .public-home .benefit-card,
    .public-report-conversation,
    .public-report-evidence { padding: 1.25rem; }
    .public-home .public-section-heading h2,
    .public-home .public-detail-heading h2,
    .public-home .public-pilot h2,
    .public-home .public-security h2,
    .public-home .public-final-cta h2 { font-size: 1.75rem; }
    .public-home .public-section-heading p,
    .public-home .public-detail-heading p { font-size: 1rem; }
    .public-home .landing-sections > .public-pilot,
    .public-home .landing-sections > .public-final-cta { padding: 1.25rem; }
    .public-home .site-footer { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; padding: 2rem 1rem 1.5rem; }
    .public-home .footer-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
    .public-home .legal-line { flex-direction: column; align-items: flex-start; }
    .public-cta-actions { flex-direction: column; }
    .public-home :is(.primary-button, .secondary-button) { width: 100%; }
}

@media (max-width: 360px) {
    .public-home .intro-block .hero-copy { padding-inline: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
    html:has(.public-home) { scroll-behavior: auto; }
    .public-home *, .public-home *::before, .public-home *::after { animation: none !important; transition: none !important; }
}

/* Keep the hero and anchor offsets aligned with the shared signed-in header. */
.public-home.has-user-header { --public-header-height: 4.4rem; }
@media (max-width: 1180px) {
    .public-home.has-user-header { --public-header-height: 4rem; }
}
