html:has(.landing),
html:has(.inset-shell) {
    scrollbar-width: thin;
    scrollbar-color: rgba(10, 45, 73, 0.32) transparent;
}

.landing {
    position: relative;
    min-height: 100vh;
    background: #fff;
    color: var(--ink-950);
}

.site-header {
    position: relative;
    z-index: var(--z-header);
    background: #fff;
}

.site-header-inner {
    margin: 0 auto;
    display: flex;
    height: 84px;
    align-items: center;
    justify-content: space-between;
    padding: 0 1.25rem;
}

.site-brand {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 0.75rem;
    text-decoration: none;
}

.site-brand-logo {
    display: block;
    height: 1.375rem;
    width: auto;
}

.site-brand-badge {
    display: none;
    white-space: nowrap;
    border: 1px solid rgba(10, 45, 73, 0.22);
    border-radius: 999px;
    background: transparent;
    padding: 3px 0.625rem;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--ink-900);
}

.site-nav {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 0.875rem;
    color: var(--zinc-500);
}

.site-nav-link {
    display: none;
    white-space: nowrap;
    font-weight: 600;
    color: inherit;
    text-decoration: none;
}

.site-nav-link:hover {
    color: var(--signal-700);
}

.site-nav-divider {
    display: none;
    height: 1rem;
    width: 1px;
    background: var(--zinc-200);
}

.site-login-btn {
    display: inline-flex;
    height: 2.5rem;
    flex-shrink: 0;
    align-items: center;
    white-space: nowrap;
    border-radius: 999px;
    background: var(--signal-700);
    padding: 0 1.25rem;
    font-weight: 600;
    color: #fff;
    text-decoration: none;
}

.site-login-btn:hover {
    background: var(--signal-800);
}

.site-account {
    position: relative;
    display: flex;
    align-items: center;
}

.site-account-scrim {
    position: fixed;
    inset: 0;
    z-index: 1;
}

.site-account-btn {
    position: relative;
    z-index: 2;
    display: grid;
    height: 2.125rem;
    width: 2.125rem;
    flex-shrink: 0;
    place-items: center;
    border: none;
    border-radius: 999px;
    background: transparent;
    padding: 0;
    font-family: inherit;
    cursor: pointer;
}

.site-account-btn:hover .site-avatar,
.site-account-btn[aria-expanded="true"] .site-avatar {
    box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--signal-200);
}

.site-avatar {
    display: grid;
    height: 2.125rem;
    width: 2.125rem;
    flex-shrink: 0;
    place-items: center;
    border-radius: 999px;
    background: var(--signal-100);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--signal-800);
}

.site-avatar--lg {
    height: 2.25rem;
    width: 2.25rem;
    font-size: 0.8125rem;
}

.site-console-btn {
    display: none;
    height: 2.125rem;
    flex-shrink: 0;
    align-items: center;
    gap: 0.4375rem;
    white-space: nowrap;
    border: 1px solid rgba(10, 45, 73, 0.16);
    border-radius: 999px;
    padding: 0 0.875rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--ink-900);
    text-decoration: none;
}

.site-console-btn:hover {
    border-color: var(--signal-300);
    background: var(--signal-50);
    color: var(--signal-700);
}

.site-console-icon {
    height: 0.875rem;
    width: 0.875rem;
    flex-shrink: 0;
}

.site-menu {
    position: absolute;
    top: calc(100% + 0.625rem);
    right: 0;
    z-index: 2;
    width: 16.5rem;
    overflow: hidden;
    border: 1px solid rgba(10, 45, 73, 0.1);
    border-radius: 1rem;
    background: #fff;
    box-shadow: var(--shadow-card-hover);
    text-align: left;
}

.site-menu-card {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    border-bottom: 1px solid var(--zinc-200);
    padding: 0.875rem;
}

.site-menu-who {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.site-menu-name {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--ink-950);
}

.site-menu-email {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 0.75rem;
    color: var(--zinc-500);
}

.site-menu-list,
.site-menu-foot {
    padding: 0.375rem;
}

.site-menu-foot {
    border-top: 1px solid var(--zinc-200);
}

.site-menu-item {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 0.625rem;
    border: none;
    border-radius: 0.625rem;
    background: transparent;
    padding: 0.5rem 0.625rem;
    font-family: inherit;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--ink-900);
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.site-menu-item:hover {
    background: var(--signal-50);
    color: var(--signal-700);
}

.site-menu-item--danger {
    color: var(--rose-700);
}

.site-menu-item--danger:hover {
    background: var(--rose-50);
    color: var(--rose-700);
}

.site-menu-icon {
    height: 1rem;
    width: 1rem;
    flex-shrink: 0;
}

.landing .site-header {
    position: sticky;
    top: 0;
    background: transparent;
}

.landing .site-header[data-scrolled] {
    margin-bottom: 20px;
    background: rgba(255, 255, 255, 0.78);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: inset 0 -1px 0 rgba(10, 45, 73, 0.08);
}

.landing .site-header[data-scrolled] .site-header-inner {
    height: 64px;
}

.section-eyebrow {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.24em;
    color: var(--signal-700);
}

.section-eyebrow--light {
    color: #fff;
}

.section-eyebrow-dot {
    height: 0.25rem;
    width: 0.25rem;
    border-radius: 999px;
    background: currentColor;
}

.hero {
    position: relative;
    overflow: clip;
    width: 100%;
    background-color: #f3f9ff;
    background-image:
        radial-gradient(120% 105% at 84% -18%, rgba(36, 148, 242, 0.3) 0%, rgba(36, 148, 242, 0) 56%),
        radial-gradient(85% 65% at 46% 118%, rgba(255, 255, 255, 0.92) 0%, rgba(255, 255, 255, 0) 62%),
        linear-gradient(180deg, #dcebfb 0%, #f3f9ff 46%, #ffffff 100%);
    color: var(--ink-950);
}

.landing .hero {
    margin-top: -84px;
    padding-top: 84px;
}

.hero-decor {
    pointer-events: none;
    position: absolute;
    inset: 0;
    overflow: hidden;
}

.hero-bloom-a,
.hero-bloom-b {
    position: absolute;
    border-radius: 999px;
}

.hero-bloom-a {
    right: -10rem;
    top: -6rem;
    height: 40rem;
    width: 40rem;
    background: rgba(131, 190, 248, 0.35);
    filter: blur(130px);
}

.hero-bloom-b {
    bottom: -8rem;
    left: 25%;
    height: 26rem;
    width: 26rem;
    background: rgba(131, 190, 248, 0.18);
    filter: blur(130px);
}

.hero-grain {
    position: absolute;
    inset: 0;
    opacity: 0.05;
    mix-blend-mode: multiply;
    background-image: 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='0.85' numOctaves='3'\
 stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");
}

.hero-grid {
    position: relative;
    display: grid;
    width: 100%;
    align-items: center;
    gap: 2rem;
    padding: 2.5rem 1rem 3rem;
}

.hero--open {
    overflow: clip visible;
}

.hero--open .hero-grid {
    padding-bottom: 10rem;
}

.hero-copy {
    padding: 0 1rem;
}

.hero-title {
    margin-top: 1rem;
    font-family: var(--font-display);
    font-size: var(--text-display-sm);
    font-weight: 300;
    line-height: 0.95;
    letter-spacing: -0.005em;
    color: var(--ink-950);
}

.hero-lede {
    margin-top: 1.5rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.375rem;
    font-size: 1rem;
    color: var(--zinc-600);
}

.hero-lede svg {
    height: 1.25rem;
    width: 1.25rem;
    color: var(--signal-500);
}

.hero-lede-mark {
    position: relative;
    white-space: nowrap;
}

.hero-lede .hero-lede-line {
    position: absolute;
    left: -2%;
    bottom: -0.42em;
    width: 104%;
    height: 0.5em;
    overflow: visible;
    color: var(--signal-400);
}

.hero-lede-line path {
    fill: none;
    stroke: currentColor;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    animation: hero-line-draw 1.1s var(--ease-expo) 0.9s forwards;
}

@keyframes hero-line-draw {
    to { stroke-dashoffset: 0; }
}

.hero-search-wrap {
    position: relative;
    margin-top: 1.75rem;
}

.hero-search-glow {
    position: absolute;
    inset: -0.75rem;
    border-radius: 999px;
    background: linear-gradient(
        to right,
        rgba(131, 190, 248, 0.3),
        transparent,
        rgba(131, 190, 248, 0.3)
    );
    filter: blur(24px);
}

.hero-art {
    position: relative;
    display: none;
    height: 420px;
    align-items: center;
    justify-content: center;
    perspective: 1400px;
}

.hero-art-glow {
    position: absolute;
    left: 55%;
    top: 50%;
    height: 24rem;
    width: 24rem;
    transform: translate(-50%, -50%);
    border-radius: 999px;
    background: rgba(79, 169, 245, 0.28);
    filter: blur(90px);
}

.hero-art-stack {
    position: relative;
    height: 100%;
    width: min(24rem, 100%);
    transform-style: preserve-3d;
    transform: rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
}

.hero-art-ring {
    position: absolute;
    border-radius: 999px;
    border: 1px solid rgba(36, 148, 242, 0.28);
}

.hero-art-ring--a {
    left: -1.5rem;
    top: -1rem;
    height: 15rem;
    width: 15rem;
}

.hero-art-ring--b {
    right: -2.5rem;
    bottom: -0.5rem;
    height: 10rem;
    width: 10rem;
    border-style: dashed;
    border-color: rgba(36, 148, 242, 0.22);
}

.hero-card {
    position: absolute;
    overflow: hidden;
    box-shadow: var(--shadow-panel);
}

.hero-card img {
    position: absolute;
    inset: 0;
    height: 100%;
    width: 100%;
    object-fit: cover;
}

.hero-card--main {
    right: 0;
    top: 0.5rem;
    height: 23rem;
    width: 16rem;
    border-radius: 1.75rem 1.75rem 1.75rem 5rem;
}

.hero-card--main img {
    object-position: 16% center;
}

.hero-card--brand {
    left: 2.25rem;
    top: 2.75rem;
    display: grid;
    height: 5.75rem;
    width: 5.75rem;
    place-items: center;
    border-radius: 1.5rem;
    background: linear-gradient(135deg, var(--signal-400) 0%, var(--signal-600) 100%);
    box-shadow: 0 24px 48px -20px rgba(36, 148, 242, 0.75), inset 0 0 0 1px rgba(255, 255, 255, 0.25);
    transform: translateY(calc(var(--par) * 20px));
}

.hero-card--brand img {
    position: static;
    height: 52%;
    width: 52%;
    object-fit: contain;
}

.hero-card-glint {
    position: absolute;
    top: -2.5rem;
    bottom: -2.5rem;
    left: 0;
    width: 25%;
    background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.4), transparent);
    pointer-events: none;
}

.search-overlay {
    position: fixed;
    inset: 0;
    z-index: calc(var(--z-widget-launcher) - 1);
    border: none;
    padding: 0;
    background: rgba(6, 27, 45, 0.55);
}

.search {
    position: relative;
    width: 100%;
    max-width: 42rem;
}

.search--focused {
    z-index: calc(var(--z-widget-launcher) - 1);
    max-width: 56rem;
}

.search-bar {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    border-radius: 999px;
    background: #fff;
    padding: 0.5rem 0.5rem 0.5rem 1.375rem;
    box-shadow: 0 24px 60px -24px rgba(0, 0, 0, 0.65), 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.search-bar > svg {
    height: 1.25rem;
    width: 1.25rem;
    flex-shrink: 0;
    color: var(--zinc-400);
}

.search-input {
    height: 2.875rem;
    width: 100%;
    border: none;
    background: transparent;
    padding: 0 0.25rem 0 0.75rem;
    font-family: inherit;
    font-size: 1.0625rem;
    color: var(--zinc-900);
    outline: none;
}

.search-input::placeholder {
    color: var(--zinc-400);
}

.search-input {
    text-overflow: ellipsis;
}

@media (max-width: 26rem) {
    .search-bar {
        padding-left: 0.875rem;
    }

    .search-input {
        padding-left: 0.375rem;
        font-size: 1rem;
    }
}

.search-panel {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    margin-top: 0.5rem;
    max-height: 19rem;
    overflow-y: auto;
    border: 1px solid var(--zinc-200);
    border-radius: 0.75rem;
    background: #fff;
    text-align: left;
    box-shadow: var(--shadow-widget);
}

.search-panel--tall {
    max-height: 32rem;
}

.search-empty {
    border-top: 1px solid var(--zinc-100);
    padding: 1.5rem 1.25rem;
    overflow-wrap: anywhere;
    font-size: 0.875rem;
    color: var(--zinc-500);
}

.search-list {
    border-top: 1px solid var(--zinc-100);
}

.search-list li + li {
    border-top: 1px solid var(--zinc-100);
}

.search-result {
    display: block;
    padding: 0.875rem 1.25rem;
    text-decoration: none;
}

.search-result:hover {
    background: var(--zinc-50);
}

.search-result-title {
    display: block;
    overflow-wrap: anywhere;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--zinc-900);
}

.search-result-meta {
    margin-top: 0.125rem;
    display: block;
    overflow-wrap: anywhere;
    font-size: 0.75rem;
    color: var(--zinc-500);
}

.search-suggestion {
    display: block;
    padding: 1rem 1.25rem;
    overflow-wrap: anywhere;
    font-size: 0.9375rem;
    color: var(--zinc-900);
    text-decoration: none;
}

.search-suggestion:hover {
    background: var(--zinc-50);
}

.search-ai {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 0.625rem;
    border: none;
    background: var(--signal-50);
    padding: 0.875rem 1.25rem;
    font: inherit;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--zinc-700);
    text-align: left;
    overflow-wrap: anywhere;
    cursor: pointer;
}

.search-ai > span {
    min-width: 0;
}

.search-ai:hover {
    background: var(--signal-100);
}

.search-ai--hint,
.search-ai--hint:hover {
    background: transparent;
    font-weight: 400;
    color: var(--zinc-600);
    cursor: text;
}

.search-ai-icon {
    height: 1rem;
    width: 1rem;
    flex-shrink: 0;
    color: var(--ink-800);
}

.search-loading {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 1.25rem;
}

.search-loading-text {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--zinc-700);
}

.search-loading-dots {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.search-loading-dots span {
    height: 0.375rem;
    width: 0.375rem;
    border-radius: 999px;
    background: var(--ink-800);
}

.search-loading-dots span:nth-child(2) { opacity: 0.6; }
.search-loading-dots span:nth-child(3) { opacity: 0.3; }

.ai-summary {
    padding: 1rem 1.25rem 1.25rem;
}

.ai-summary-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.ai-summary-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--zinc-400);
}

.ai-summary-spark {
    height: 1rem;
    width: 1rem;
    color: var(--zinc-900);
}

.ai-summary-close {
    display: flex;
    border: none;
    background: none;
    border-radius: 0.375rem;
    padding: 0.25rem;
    color: var(--zinc-400);
    cursor: pointer;
}

.ai-summary-close:hover {
    background: var(--zinc-100);
    color: var(--zinc-700);
}

.ai-summary-close-icon {
    height: 1rem;
    width: 1rem;
}

.ai-summary-lede {
    margin-top: 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--zinc-900);
}

.ai-summary-body {
    margin-top: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.65;
    color: var(--zinc-700);
}

.ai-summary-body p + p,
.ai-summary-body ul,
.ai-summary-body ol {
    margin-top: 0.5rem;
}

.ai-summary-body ul,
.ai-summary-body ol {
    padding-left: 1.25rem;
    list-style: revert;
}

.ai-summary-body li + li {
    margin-top: 0.25rem;
}

.ai-summary-body strong {
    font-weight: 600;
    color: var(--zinc-900);
}

.ai-summary-body a {
    color: var(--zinc-900);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.ai-summary-sources-label {
    margin-top: 1rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--zinc-400);
}

.ai-summary-sources {
    margin-top: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.ai-summary-source-row {
    display: flex;
    gap: 0.5rem;
}

.ai-summary-bullet {
    color: var(--signal-700);
}

.ai-summary-source {
    font-size: 0.875rem;
    color: var(--ink-800);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.ai-summary-source:hover {
    color: var(--ink-900);
}

.ai-summary-empty {
    margin-top: 0.75rem;
    font-size: 0.875rem;
    color: var(--zinc-500);
}

.ai-summary-chat {
    margin-top: 0.75rem;
    padding: 0.5rem 1rem;
    border: 1px solid var(--signal-200);
    border-radius: 999px;
    background: #fff;
    color: var(--signal-700);
    font: inherit;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 200ms, border-color 200ms;
}

.ai-summary-chat:hover {
    border-color: var(--signal-400);
    background: var(--signal-50);
}

.faq-tab {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    border: 1px solid var(--signal-100);
    border-radius: 999px;
    background: transparent;
    padding: 0.625rem 1.125rem;
    font-family: inherit;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--zinc-500);
    outline: none;
    cursor: pointer;
}

.faq-tab:hover {
    border-color: var(--signal-300);
    color: var(--signal-600);
}

.faq-tab:focus-visible {
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--signal-500);
}

.landing a:focus-visible,
.landing button:focus-visible {
    outline: 2px solid var(--signal-500);
    outline-offset: 2px;
    border-radius: 0.25rem;
}

.landing .site-header a:focus-visible,
.landing .site-header button:focus-visible {
    outline: 2px solid var(--signal-800);
    outline-offset: 2px;
    border-radius: 0.25rem;
}

.landing .hero a:focus-visible,
.landing .hero button:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
    border-radius: 0.25rem;
}

.landing .hero .search-panel a:focus-visible,
.landing .hero .search-panel button:focus-visible {
    outline-color: var(--signal-500);
}

.landing .hero .search-ask:focus-visible {
    outline-color: var(--signal-500);
    border-radius: 999px;
}

.search-input:focus-visible {
    outline: none;
}

@media (min-width: 640px) {
    .site-brand-logo {
        height: 1.625rem;
    }

    .site-brand-badge {
        display: inline-block;
    }

    .site-header-inner {
        padding: 0 2rem;
    }

    .site-nav {
        gap: 1.25rem;
    }

    .site-console-btn {
        display: inline-flex;
    }

    .site-menu-item--console {
        display: none;
    }

    .hero-grid {
        padding-top: 3.5rem;
        padding-bottom: 4rem;
    }

    .hero--open .hero-grid {
        padding-bottom: 12rem;
    }

    .hero-lede {
        font-size: 1.125rem;
    }
}

@media (min-width: 768px) {
    .hero-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hero-art {
        display: flex;
    }
}

@media (min-width: 1024px) {
    .site-header-inner {
        width: 95%;
    }

    .site-nav {
        gap: 1.5rem;
    }

    .site-nav-link {
        display: inline;
    }

    .site-nav-divider {
        display: block;
    }

    .site-menu-item--site {
        display: none;
    }

    .site-menu-list {
        display: none;
    }

    .hero-copy {
        padding-left: 5rem;
    }

    .hero-search-wrap {
        max-width: 83.333%;
    }

    .hero-art {
        height: 500px;
    }

    .hero-art-stack {
        width: 30rem;
    }

    .hero-art-ring--a {
        height: 18rem;
        width: 18rem;
    }

    .hero-card--main {
        height: 28rem;
        width: 19.5rem;
        border-radius: 2rem 2rem 2rem 6rem;
    }

    .hero-card--brand {
        left: 2.75rem;
        top: 3.25rem;
        height: 6.75rem;
        width: 6.75rem;
    }
}

@media (min-width: 1280px) {
    .hero-copy {
        padding-left: 180px;
    }
}

@property --reveal-y { syntax: "<length>"; inherits: false; initial-value: 20px; }
@property --reveal-dur { syntax: "<time>"; inherits: false; initial-value: 600ms; }
@property --reveal-delay { syntax: "<time>"; inherits: false; initial-value: 0ms; }
@property --faq-dir { syntax: "<number>"; inherits: false; initial-value: 1; }
@property --par { syntax: "<number>"; inherits: true; initial-value: 0; }

.motion-ready [data-reveal] {
    opacity: 0;
    transform: translateY(var(--reveal-y));
}

.motion-ready [data-reveal][data-revealed] {
    opacity: 1;
    transform: none;
    transition:
        opacity var(--reveal-dur) var(--ease-expo) var(--reveal-delay),
        transform var(--reveal-dur) var(--ease-expo) var(--reveal-delay);
}

.section-eyebrow { --reveal-y: 10px; --reveal-dur: 500ms; }

@keyframes word-rise {
    from { transform: translateY(110%); }
    to { transform: translateY(0); }
}

.word-reveal {
    display: inline;
}

.word-reveal-mask {
    overflow: hidden;
    vertical-align: bottom;
    padding-top: 0.08em;
    margin-top: -0.08em;
    padding-bottom: 0.12em;
    margin-bottom: -0.12em;
}

.word-reveal-mask {
    display: inline-block;
}

.word-reveal-inner {
    display: inline-block;
}

.hero-title .word-reveal-inner {
    animation: word-rise 700ms var(--ease-expo) var(--reveal-delay) backwards;
}

@keyframes hero-rise-10 {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: none; }
}

@keyframes hero-rise-12 {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: none; }
}

@keyframes hero-spark-in {
    from { transform: scale(0) rotate(-90deg); }
    to { transform: scale(1) rotate(0deg); }
}

@keyframes hero-art-in {
    from { opacity: 0; transform: translateY(calc(var(--par) * -26px + 24px)) scale(0.96); }
    to { opacity: 1; transform: translateY(calc(var(--par) * -26px)); }
}

@keyframes hero-chip-in {
    from { opacity: 0; transform: translateY(calc(var(--par) * 20px)) scale(0.6) rotate(-8deg); }
    to { opacity: 1; transform: translateY(calc(var(--par) * 20px)) scale(1) rotate(0deg); }
}

@keyframes hero-ring-in {
    from { opacity: 0; transform: scale(0.85); }
    to { opacity: 1; transform: none; }
}

.site-header {
    transition:
        background-color 400ms var(--ease-expo),
        box-shadow 400ms var(--ease-expo);
}

.site-header-inner {
    transition: height 400ms var(--ease-expo);
}

.site-login-btn {
    transition:
        background-color 250ms var(--ease-expo),
        color 250ms var(--ease-expo);
}

.hero-lede {
    animation: hero-rise-12 600ms var(--ease-expo) 140ms backwards;
}

.hero-lede-spark {
    display: inline-flex;
    animation: hero-spark-in 600ms var(--ease-back) 320ms backwards;
}

.hero-search-wrap .search-bar {
    animation: hero-rise-10 500ms var(--ease-expo) 180ms backwards;
}

.hero-grid {
    transition: padding-bottom 500ms ease-out;
}

.hero-field {
    position: absolute;
    inset: 0;
    height: 100%;
    width: 100%;
    mask-image: radial-gradient(105% 115% at 26% 42%, #000 38%, transparent 92%);
    -webkit-mask-image: radial-gradient(105% 115% at 26% 42%, #000 38%, transparent 92%);
}

.hero-art-stack {
    transition: transform 300ms var(--ease-expo);
}

.hero-card--main {
    animation: hero-art-in 900ms var(--ease-expo) 160ms backwards;
}

.hero-card--brand {
    animation: hero-chip-in 600ms var(--ease-back) 520ms backwards;
}

.hero-art-ring--a {
    animation: hero-ring-in 1100ms var(--ease-expo) 120ms backwards;
}

.hero-art-ring--b {
    animation: hero-ring-in 1100ms var(--ease-expo) 260ms backwards;
}

.hero-card-glint {
    animation: glint 9s var(--ease-std) infinite;
}

.hero-bloom-a {
    animation: drift-b 26s ease-in-out infinite;
    will-change: transform;
}

.hero-bloom-b {
    animation: drift-a 20s ease-in-out infinite;
    will-change: transform;
}

.motion-settled .hero-card-glint,
.motion-settled .hero-bloom-a,
.motion-settled .hero-bloom-b,
.motion-settled .hero-chat {
    animation-play-state: paused;
}

@supports (animation-timeline: scroll()) {
    @media (prefers-reduced-motion: no-preference) {
        .hero-art {
            animation: hero-art-out linear both;
            animation-timeline: scroll(root);
            animation-range: 0 90vh;
        }
    }
}

@keyframes hero-art-out {
    to {
        opacity: 0.5;
        transform: translateY(-56px) scale(0.95);
    }
}

.search {
    transition: max-width 1000ms ease-in-out;
}

@keyframes overlay-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

.search-overlay {
    animation: overlay-in 300ms var(--ease-expo) both;
}

.faq-tab {
    transition:
        color 300ms var(--ease-expo),
        border-color 300ms var(--ease-expo);
}

@media (prefers-reduced-motion: reduce) {
    .hero-card-glint {
        display: none;
    }

    .landing .site-header {
        transition: none;
    }
}

.landing {
    --landing-tint: #e9f3fd;
}

.landing .site-header {
    transition:
        background-color 400ms var(--ease-expo),
        box-shadow 400ms var(--ease-expo),
        margin-bottom 400ms var(--ease-expo);
}

.hero-search-wrap .search-bar {
    position: relative;
    padding-top: 0.4rem;
    padding-right: 0.4rem;
    padding-bottom: 0.4rem;
    box-shadow:
        0 1px 2px rgba(10, 45, 73, 0.06),
        0 22px 48px -20px rgba(10, 45, 73, 0.38),
        inset 0 0 0 1px rgba(10, 45, 73, 0.06);
}

.search-ask {
    display: inline-flex;
    height: 2.875rem;
    flex-shrink: 0;
    align-items: center;
    gap: 0.45rem;
    padding: 0 1.2rem;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--signal-700), var(--signal-800));
    box-shadow: 0 10px 22px -10px rgba(30, 127, 209, 0.85), inset 0 1px 0 rgba(255, 255, 255, 0.25);
    color: #fff;
    font: inherit;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: filter 200ms, transform 200ms var(--ease-back);
}

.search-ask:hover {
    filter: brightness(0.92);
}

.search-ask:active {
    transform: scale(0.97);
}

.search-ask svg {
    width: 0.95rem;
    height: 0.95rem;
}

.hero-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    margin-top: 1rem;
    font-size: 0.8125rem;
    color: var(--zinc-600);
    animation: hero-rise-10 600ms var(--ease-expo) 260ms backwards;
}

.hero--open .hero-chips {
    visibility: hidden;
}

.hero-chips-label {
    margin-right: 0.2rem;
}

.hero-chip {
    max-width: 17rem;
    overflow: hidden;
    padding: 0.3rem 0.75rem;
    border: 1px solid rgba(36, 148, 242, 0.18);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.72);
    color: var(--ink-800);
    font-weight: 500;
    text-decoration: none;
    text-overflow: ellipsis;
    white-space: nowrap;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    transition: border-color 200ms, color 200ms, background-color 200ms;
}

.hero-chip:hover {
    border-color: var(--signal-300);
    background: #fff;
    color: var(--signal-700);
}

.landing .hero .hero-chip:focus-visible {
    outline-color: var(--signal-600);
}

.hero-chat {
    position: absolute;
    left: -6.5rem;
    bottom: 0.5rem;
    z-index: 3;
    display: none;
    width: 18rem;
    padding: 0.85rem 0.9rem 0.95rem;
    border-radius: 1.3rem;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(14px) saturate(1.3);
    -webkit-backdrop-filter: blur(14px) saturate(1.3);
    box-shadow:
        0 1px 2px rgba(10, 45, 73, 0.06),
        0 26px 50px -20px rgba(10, 45, 73, 0.45),
        inset 0 0 0 1px rgba(255, 255, 255, 0.8);
    color: var(--ink-950);
    translate: 0 calc(var(--par) * -36px);
    animation: hero-chat-float 7s ease-in-out -3s infinite;
    view-transition-name: hero-chat;
}

:root:has(.hero-chat) {
    view-transition-name: none;
}

::view-transition {
    pointer-events: none;
}

::view-transition-group(hero-chat) {
    animation-duration: 480ms;
    animation-timing-function: var(--ease-expo);
}

.hero-chat-head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid rgba(10, 45, 73, 0.07);
    font-size: 0.8rem;
}

.hero-chat-bot {
    display: grid;
    width: 1.6rem;
    height: 1.6rem;
    flex-shrink: 0;
    place-items: center;
    border-radius: 999px;
    background: radial-gradient(120% 120% at 30% 20%, #1c4a72 0%, var(--ink-850) 55%, var(--ink-950) 100%);
    box-shadow: 0 0 0 2px rgba(143, 202, 252, 0.2);
    color: #8fcafc;
}

.hero-chat-bot svg {
    width: 0.9rem;
    height: 0.9rem;
}

.hero-chat-dot {
    width: 0.42rem;
    height: 0.42rem;
    margin-left: auto;
    border-radius: 999px;
    background: var(--verdant);
    box-shadow: 0 0 0 3px rgba(65, 179, 69, 0.18);
}

.hero-chat-turn:not(.is-current),
.hero-chat[data-phase="ask"] .hero-chat-typing,
.hero-chat[data-phase="ask"] .hero-chat-answer,
.hero-chat[data-phase="ask"] .hero-chat-source,
.hero-chat[data-phase="typing"] .hero-chat-answer,
.hero-chat[data-phase="typing"] .hero-chat-source,
.hero-chat[data-phase="answer"] .hero-chat-typing {
    display: none;
}

.hero-chat-question {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    overflow-wrap: anywhere;
    width: fit-content;
    max-width: 85%;
    margin: 0.7rem 0 0 auto;
    padding: 0 0.75rem;
    border: 0.45rem solid transparent;
    border-inline-width: 0;
    border-radius: 0.9rem 0.9rem 0.25rem 0.9rem;
    background: var(--ink-850);
    color: #fff;
    font-size: 0.78rem;
}

.hero-chat-typing {
    display: flex;
    width: fit-content;
    gap: 3px;
    margin-top: 0.5rem;
    padding: 0 0.7rem;
    border-radius: 0.9rem;
    background: #f2f7fb;
}

.hero-chat-typing i {
    width: 5px;
    height: 5px;
    margin: 0.45rem 0;
    border-radius: 999px;
    background: var(--signal-400);
    animation: hero-chat-dot 1s ease-in-out infinite;
}

.hero-chat-typing i:nth-child(2) {
    animation-delay: 150ms;
}

.hero-chat-typing i:nth-child(3) {
    animation-delay: 300ms;
}

.hero-chat-answer {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
    overflow: hidden;
    margin-top: 0.5rem;
    padding: 0 0.75rem;
    border: 0.5rem solid transparent;
    border-inline-width: 0;
    border-radius: 0.9rem 0.9rem 0.9rem 0.25rem;
    background: #f2f7fb;
    font-size: 0.78rem;
    line-height: 1.45;
}

.hero-chat-source {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.5rem;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--signal-700);
}

.hero-chat-source svg {
    width: 0.8rem;
    height: 0.8rem;
    flex-shrink: 0;
}

.hero-chat-source-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@keyframes hero-chat-float {
    50% { transform: translateY(-8px); }
}

@keyframes hero-chat-dot {
    50% { opacity: 0.2; }
}

.faq {
    position: relative;
    z-index: 1;
}

.faq-band {
    --band-side: 4.5%;
    position: relative;
    overflow: clip;
    margin-top: -2.5rem;
    padding: 4.5rem 1rem 6rem;
    border-radius: 2.5rem 2.5rem 0 0;
    background: linear-gradient(180deg, var(--signal-700) 6rem, var(--signal-500) 28%, var(--signal-400) 55%,
        #a9d3f8 76%, var(--landing-tint) 92%);
    clip-path: inset(0 var(--band-side, 0%) 0 var(--band-side, 0%) round 2.5rem 2.5rem 0 0);
}

.faq-bloom {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    pointer-events: none;
}

.faq-bloom--a {
    left: max(100% - 26rem, 50% + 12rem);
    top: -10rem;
    width: 34rem;
    height: 34rem;
    background: rgba(131, 190, 248, 0.55);
}

.faq-bloom--b {
    left: -10rem;
    top: 12%;
    width: 30rem;
    height: 30rem;
    background: rgba(131, 190, 248, 0.28);
}

@media (max-width: 640px) {
    .faq-bloom--a {
        display: none;
    }
}

.faq-inner {
    position: relative;
    max-width: 76rem;
    margin: 0 auto;
}

.faq-head {
    text-align: center;
}

.faq-head .section-eyebrow {
    justify-content: center;
}

.faq-title {
    margin-top: 0.85rem;
    font-family: var(--font-display);
    font-size: clamp(2rem, 3.6vw, 3.25rem);
    font-weight: 300;
    line-height: 1.05;
    letter-spacing: -0.03em;
    color: #fff;
}

.faq-card {
    display: grid;
    margin-top: 2rem;
    overflow: hidden;
    border-radius: 2rem;
    background: #fff;
    box-shadow:
        0 1px 2px rgba(10, 45, 73, 0.06),
        0 36px 64px -36px rgba(6, 27, 45, 0.35),
        inset 0 0 0 1px rgba(10, 45, 73, 0.05);
    color: var(--ink-950);
}

.faq-topics {
    display: flex;
    gap: 0.3rem;
    overflow-x: auto;
    padding: 0.75rem;
    border-bottom: 1px solid var(--zinc-100);
    background: linear-gradient(180deg, #f5f9fe 0%, #eef4fb 100%);
    scrollbar-width: none;
}

.faq-topic {
    display: grid;
    flex-shrink: 0;
    grid-template-columns: 2.6rem minmax(0, 1fr);
    align-items: center;
    gap: 0.8rem;
    padding: 0.7rem 0.75rem;
    border: 0;
    border-radius: 1rem;
    background: transparent;
    color: var(--ink-950);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background-color 250ms, box-shadow 250ms;
}

.faq-topic:hover {
    background: rgba(255, 255, 255, 0.6);
}

.faq-topic:focus-visible {
    outline: 2px solid var(--signal-500);
    outline-offset: 1px;
}

.faq-topic-icon {
    display: grid;
    width: 2.6rem;
    height: 2.6rem;
    place-items: center;
    border-radius: 0.85rem;
    background: #fff;
    box-shadow: inset 0 0 0 1px rgba(10, 45, 73, 0.07);
    color: var(--signal-600);
    transition: background 250ms, color 250ms;
}

.faq-topic-icon svg {
    width: 1.15rem;
    height: 1.15rem;
}

.faq-topic-text {
    display: grid;
    min-width: 0;
}

.faq-topic-title {
    overflow-wrap: anywhere;
    font-size: 0.95rem;
    font-weight: 600;
}

.faq-topic-count {
    display: none;
    font-size: 0.75rem;
    color: var(--zinc-500);
}

.faq-topic--active {
    background: #fff;
    box-shadow: 0 12px 26px -16px rgba(10, 45, 73, 0.45), inset 0 0 0 1px rgba(10, 45, 73, 0.05);
}

.faq-topic--active .faq-topic-icon {
    background: linear-gradient(135deg, var(--signal-500), var(--signal-700));
    box-shadow: 0 10px 18px -10px rgba(30, 127, 209, 0.9);
    color: #fff;
}

.faq-panel {
    padding: clamp(1.5rem, 3vw, 2.5rem);
    outline: none;
}

.faq-panel:focus-visible {
    box-shadow: inset 0 0 0 2px var(--signal-500);
}

.faq-panel-title {
    overflow-wrap: anywhere;
    font-family: var(--font-display);
    font-size: 1.9rem;
    font-weight: 400;
    letter-spacing: -0.02em;
}

.faq-panel-lede {
    margin-top: 0.25rem;
    color: var(--zinc-500);
}

.faq-accordion {
    margin-top: 1.25rem;
}

.faq-accordion-list > li {
    border-top: 1px solid rgba(10, 45, 73, 0.1);
}

.faq-accordion-list > li:last-child {
    border-bottom: 1px solid rgba(10, 45, 73, 0.1);
}

.faq-row-head {
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
}

.faq-row-btn {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 1rem;
    padding: 1.1rem 0.25rem;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.faq-row-btn:focus-visible {
    outline: 2px solid var(--signal-500);
    outline-offset: 2px;
    border-radius: 0.5rem;
}

.faq-row-label {
    flex: 1;
    min-width: 0;
}

.faq-row-title {
    overflow-wrap: anywhere;
    font-size: 1.02rem;
    font-weight: 500;
    line-height: 1.4;
    transition: color 250ms;
}

.faq-row-btn:hover .faq-row-title,
.faq-row-head--open .faq-row-title {
    color: var(--signal-700);
}

.faq-row-toggle {
    display: grid;
    width: 2rem;
    height: 2rem;
    flex-shrink: 0;
    place-items: center;
    border: 1px solid rgba(10, 45, 73, 0.1);
    border-radius: 999px;
    transition:
        transform 450ms var(--ease-expo),
        background-color 250ms,
        color 250ms,
        border-color 250ms;
}

.faq-row-toggle svg {
    width: 1rem;
    height: 1rem;
}

.faq-row-btn:hover .faq-row-toggle {
    border-color: var(--signal-500);
}

.faq-row-toggle--open {
    transform: rotate(45deg);
    border-color: transparent;
    background: var(--signal-600);
    color: #fff;
}

.faq-row-panel-wrap {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 500ms var(--ease-expo);
}

.faq-row-panel-wrap--open {
    grid-template-rows: 1fr;
}

.faq-row-panel-clip {
    min-height: 0;
    overflow: hidden;
}

.faq-row-excerpt {
    max-width: 44rem;
    padding-right: 3rem;
    font-size: 0.975rem;
    line-height: 1.65;
    color: var(--zinc-500);
}

.faq-row-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0.75rem 0 1.3rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--signal-700);
    text-decoration: none;
}

.faq-row-link svg {
    width: 1rem;
    height: 1rem;
    transition: transform 250ms var(--ease-expo);
}

.faq-row-link:hover svg {
    transform: translateX(3px);
}

.faq-ask {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-top: 1.5rem;
    padding: 0.6rem 1rem;
    border: 1px solid var(--signal-200);
    border-radius: 999px;
    background: #fff;
    color: var(--signal-700);
    font: inherit;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 200ms, border-color 200ms;
}

.faq-ask:hover {
    border-color: var(--signal-400);
    background: var(--signal-50);
}

.faq-ask svg {
    width: 0.95rem;
    height: 0.95rem;
}

@keyframes faq-swap {
    from { opacity: 0; transform: translateY(calc(var(--faq-dir) * 10px)); }
}

.motion-ready .faq-panel-inner {
    animation: faq-swap 520ms var(--ease-expo) backwards;
}

.motion-ready .faq-panel-inner[data-settled] {
    animation: none;
}

.faq-head .section-eyebrow { --reveal-y: 10px; --reveal-dur: 500ms; }
.reveal-words .word-reveal-mask {
    overflow: visible;
}

.motion-ready .reveal-words[data-reveal] {
    opacity: 1;
    transform: none;
}

.motion-ready .reveal-words .word-reveal-inner {
    opacity: 0;
    transform: translateY(0.35em);
    filter: blur(8px);
}

.motion-ready .reveal-words[data-revealed] .word-reveal-inner {
    opacity: 1;
    transform: none;
    filter: none;
    transition:
        opacity 750ms var(--ease-spring) var(--reveal-delay),
        transform 750ms var(--ease-spring) var(--reveal-delay),
        filter 750ms var(--ease-spring) var(--reveal-delay);
}

.motion-ready .faq-card[data-reveal] {
    transform: translateY(48px) scale(0.97);
}

.motion-ready .faq-card[data-reveal][data-revealed] {
    transform: none;
    transition:
        opacity 950ms var(--ease-spring) 140ms,
        transform 950ms var(--ease-spring) 140ms;
}

.motion-ready .faq-card .faq-topic {
    opacity: 0;
    transform: translateX(-14px);
}

.motion-ready .faq-card[data-revealed] .faq-topic {
    opacity: 1;
    transform: none;
    transition:
        background-color 250ms,
        box-shadow 250ms,
        opacity 900ms var(--ease-spring-soft) calc(390ms + var(--i, 0) * 60ms),
        transform 900ms var(--ease-spring-soft) calc(390ms + var(--i, 0) * 60ms);
}

.motion-ready .faq-card[data-reveal]:has(.faq-topic:focus-visible) {
    opacity: 1;
    transform: none;
    transition: none;
}

.motion-ready .faq-card[data-reveal] .faq-topic:focus-visible {
    opacity: 1;
    transform: none;
    transition: background-color 250ms, box-shadow 250ms;
}

.site-footer {
    --footer-tint: #e9f3fd;
    --footer-navy: #0e0c3b;
    --footer-cyan: #0798d8;
    padding: 0 0.75rem 0.75rem;
    background: var(--footer-tint);
    color: var(--ink-950);
}

.site-footer--plain {
    background: #f5f9fe;
}

.footer-help {
    max-width: 76rem;
    margin: 0 auto;
    padding: 1.5rem 0.5rem 3.5rem;
}

.footer-help-title {
    margin-top: 0.85rem;
    font-family: var(--font-display);
    font-size: clamp(2rem, 3.4vw, 3rem);
    font-weight: 300;
    letter-spacing: -0.03em;
}

.footer-tiles {
    display: grid;
    gap: 1rem;
    margin-top: 1.5rem;
}

.footer-tile {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem;
    border: 0;
    border-radius: 1.5rem;
    background: #fff;
    box-shadow:
        0 1px 2px rgba(10, 45, 73, 0.05),
        0 24px 48px -30px rgba(10, 45, 73, 0.4),
        inset 0 0 0 1px rgba(10, 45, 73, 0.04);
    color: var(--ink-950);
    font: inherit;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition: transform 400ms var(--ease-expo), box-shadow 400ms var(--ease-expo);
}

.footer-tile:hover {
    transform: translateY(-3px);
    box-shadow:
        0 1px 2px rgba(10, 45, 73, 0.05),
        0 30px 56px -28px rgba(10, 45, 73, 0.5),
        inset 0 0 0 1px rgba(10, 45, 73, 0.04);
}

.footer-tile:focus-visible {
    outline: 2px solid var(--signal-500);
    outline-offset: 3px;
}

.footer-tile-icon {
    display: grid;
    width: 3rem;
    height: 3rem;
    flex-shrink: 0;
    place-items: center;
    border-radius: 1rem;
    background: linear-gradient(135deg, var(--signal-500), var(--signal-700));
    box-shadow: 0 12px 22px -12px rgba(30, 127, 209, 0.9);
    color: #fff;
}

.footer-tile-icon--green {
    background: linear-gradient(135deg, #2f9a33, var(--verdant));
    box-shadow: 0 12px 22px -12px rgba(65, 179, 69, 0.85);
}

.footer-tile-icon--sky {
    background: linear-gradient(135deg, #0798d8, #38bdf8);
    box-shadow: 0 12px 22px -12px rgba(7, 152, 216, 0.85);
}

.footer-tile-icon svg {
    width: 1.3rem;
    height: 1.3rem;
}

.footer-tile-text {
    display: grid;
    flex: 1;
    min-width: 0;
}

.footer-tile-title {
    font-weight: 600;
}

.footer-tile-hint {
    font-size: 0.85rem;
    color: var(--zinc-500);
}

.footer-tile-arrow {
    display: grid;
    width: 2.25rem;
    height: 2.25rem;
    flex-shrink: 0;
    place-items: center;
    border: 1px solid var(--zinc-200);
    border-radius: 999px;
    color: var(--ink-900);
    transition: background-color 250ms, color 250ms, border-color 250ms;
}

.footer-tile-arrow svg {
    width: 1rem;
    height: 1rem;
}

.footer-tile:hover .footer-tile-arrow {
    border-color: var(--ink-950);
    background: var(--ink-950);
    color: #fff;
}

.footer-stage {
    position: relative;
    overflow: hidden;
    padding: clamp(3.5rem, 7vw, 6rem) clamp(1.25rem, 5vw, 4.5rem) 0;
    border-radius: 2.25rem;
    background:
        radial-gradient(60% 45% at 50% 0%, rgba(79, 169, 245, 0.4) 0%, rgba(79, 169, 245, 0) 70%),
        linear-gradient(172deg, #0c2a46 0%, #104c7c 52%, #1667ad 100%);
    color: #fff;
    isolation: isolate;
}

.footer-glow {
    position: absolute;
    right: -10rem;
    top: -12rem;
    z-index: -1;
    width: 36rem;
    height: 36rem;
    border-radius: 50%;
    background: rgba(131, 190, 248, 0.32);
    filter: blur(90px);
    pointer-events: none;
}

.footer-switch {
    position: relative;
    max-width: 48rem;
    margin: 0 auto;
    text-align: center;
}

.footer-switch-icon {
    display: inline-grid;
    width: 5.5rem;
    height: 5.5rem;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 1.5rem;
    background: rgba(255, 255, 255, 0.12);
    box-shadow: 0 20px 40px -20px rgba(3, 15, 28, 0.6);
}

.footer-switch-glyph {
    width: 3.4rem;
    height: 3.4rem;
}

.footer-switch[data-revealed] .footer-switch-arrow--top {
    animation: footer-swap-left 3.2s var(--ease-expo) 700ms 1;
}

.footer-switch[data-revealed] .footer-switch-arrow--bottom {
    animation: footer-swap-right 3.2s var(--ease-expo) 700ms 1;
}

@keyframes footer-swap-left {
    0%, 50%, 100% { transform: none; }
    65% { transform: translateX(-5px); }
    80% { transform: translateX(1.5px); }
}

@keyframes footer-swap-right {
    0%, 50%, 100% { transform: none; }
    65% { transform: translateX(5px); }
    80% { transform: translateX(-1.5px); }
}

.footer-switch-title {
    margin-top: 1.5rem;
    font-family: "Lexend", var(--font-display);
    font-size: clamp(2.4rem, 5vw, 4rem);
    font-weight: 600;
    line-height: 1.05;
}

.footer-switch-text {
    margin-top: 1rem;
    font-size: 1.05rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.82);
}

.footer-switch-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    margin-top: 2rem;
    padding: 1rem 1.5rem;
    border-radius: 0.6rem;
    background: #fff;
    box-shadow: 0 18px 32px -16px rgba(3, 15, 28, 0.6);
    color: var(--footer-navy);
    font-family: "Lexend", var(--font-display);
    font-size: 1.05rem;
    font-weight: 500;
    text-decoration: none;
}

.footer-switch-cta svg {
    width: 1.15rem;
    height: 1.15rem;
    color: var(--footer-cyan);
    transition: transform 250ms var(--ease-expo);
}

.footer-switch-cta:hover svg {
    transform: translateX(4px);
}

.footer-switch-cta:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 3px;
}

.footer-links {
    display: grid;
    max-width: 76rem;
    gap: 2.25rem 2rem;
    margin: clamp(3.5rem, 7vw, 5.5rem) auto 0;
    padding-top: clamp(2rem, 4vw, 3rem);
    border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.footer-tagline {
    max-width: 22rem;
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.7;
}

.footer-call {
    display: grid;
    gap: 0.15rem;
    margin-top: 1.25rem;
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.72);
}

.footer-call a {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 0.5rem;
    color: #fff;
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
}

.footer-call svg {
    width: 1rem;
    height: 1rem;
    color: #8fcafc;
}

.footer-col-title {
    font-family: "Lexend", var(--font-display);
    font-size: 1.05rem;
    font-weight: 600;
    color: #fff;
}

.footer-col-list {
    display: grid;
    gap: 0.45rem;
    margin-top: 0.95rem;
}

.footer-col-list a,
.footer-address {
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.6;
    text-decoration: none;
    transition: color 200ms;
}

.footer-address {
    margin-top: 0.95rem;
    font-style: normal;
}

.footer-address a {
    color: inherit;
    text-decoration: none;
}

.footer-col-list a:hover,
.footer-address a:hover,
.footer-legal a:hover {
    color: #fff;
}

.footer-bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.75rem 1.5rem;
    max-width: 76rem;
    margin: clamp(2.5rem, 5vw, 3.5rem) auto 0;
    padding-top: 1.4rem;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.84);
}

.footer-legal {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.4rem;
}

.footer-legal a {
    color: inherit;
    text-decoration: none;
}

.footer-links a:focus-visible,
.footer-bottom a:focus-visible,
.footer-wordmark:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
    border-radius: 3px;
}

.footer-wordmark {
    position: relative;
    display: block;
    max-width: 92rem;
    margin: clamp(1.5rem, 4vw, 3rem) auto 0;
    color: #fff;
}

.footer-wordmark-svg {
    display: block;
    width: 100%;
    height: auto;
    margin-bottom: -2.2%;
    overflow: visible;
    -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.62) 3%, rgba(0, 0, 0, 0.14) 71%, transparent 100%);
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.62) 3%, rgba(0, 0, 0, 0.14) 71%, transparent 100%);
}

.footer-wordmark-letter {
    transform-box: fill-box;
    transform-origin: 50% 100%;
}

.motion-ready .footer-wordmark[data-reveal] {
    opacity: 1;
    transform: none;
}

.motion-ready .footer-wordmark .footer-wordmark-letter {
    opacity: 0;
    transform: translateY(70%);
}

.motion-ready .footer-wordmark[data-revealed] .footer-wordmark-letter {
    opacity: 1;
    transform: none;
    transition:
        opacity 1050ms var(--ease-spring) calc(var(--i) * 70ms),
        transform 1050ms var(--ease-spring) calc(var(--i) * 70ms);
}

.footer-help-head { --reveal-y: 14px; --reveal-dur: 600ms; }
.footer-tile { --reveal-y: 16px; --reveal-dur: 700ms; }
.footer-switch { --reveal-y: 20px; --reveal-dur: 800ms; }

@media (min-width: 640px) {
    .faq-band {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }

    .footer-links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 900px) {
    .faq-card {
        grid-template-columns: minmax(16rem, 19.5rem) minmax(0, 1fr);
    }

    .faq-topics {
        flex-direction: column;
        overflow: visible;
        padding: 1rem;
        border-right: 1px solid var(--zinc-100);
        border-bottom: 0;
    }

    .faq-topic-count {
        display: block;
    }

    .footer-tiles {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .hero-chat {
        display: block;
    }

    .footer-links {
        grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 0.8fr) minmax(0, 1fr);
    }
}

@media (max-width: 640px) {
    .search-ask {
        width: 2.875rem;
        justify-content: center;
        padding: 0;
    }

    .search-ask-label {
        display: none;
    }

    .faq-band {
        border-radius: 1.75rem 1.75rem 0 0;
        clip-path: inset(0 var(--band-side, 0%) 0 var(--band-side, 0%) round 1.75rem 1.75rem 0 0);
    }

    .faq-row-excerpt {
        padding-right: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero-chat,
    .hero-chat-typing i,
    .footer-switch-arrow {
        animation: none !important;
    }

    .faq-row-panel-wrap,
    .faq-row-toggle {
        transition: none;
    }

    .faq-band {
        --band-side: 0%;
    }
}
