@font-face {
    font-family:Poppins;
    src:url('/template/spire/source/main/src/assets/fonts/poppins/poppins-v5-latin-regular.woff2') format('woff2');
    font-style:normal;
    font-weight:400;
    font-display:swap;
}

:root {
    --blue:#1456ed;
    --ink:#182744;
    --muted:#627087;
    --line:#e4e9f1;
    --cream:#f8f9fc;
}

* {
    box-sizing:border-box;
}

html {
    scroll-behavior:smooth;
    scroll-padding-top:110px;
}

body {
    margin:0;
    font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    color:var(--ink);
    background:#fff;
    -webkit-font-smoothing:antialiased;
}

a {
    color:inherit;
    text-decoration:none;
}

button,a,summary {
    -webkit-tap-highlight-color:transparent;
}

a:focus-visible,summary:focus-visible {
    outline:3px solid #ef9e36;
    outline-offset:5px;
}

svg {
    width:24px;
    height:24px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
    flex-shrink:0;
}

.icon-library {
    position:absolute;
    width:0;
    height:0;
    overflow:hidden;
}

.container {
    width:min(1180px,calc(100% - 64px));
    margin-inline:auto;
}

.skip-link {
    position:fixed;
    top:-100px;
    left:20px;
    background:white;
    padding:14px;
    z-index:100;
}

.skip-link:focus {
    top:10px;
}

.site-header {
    height:94px;
    background:rgba(255,255,255,.96);
    border-bottom:1px solid #eef1f6;
    position:sticky;
    top:0;
    z-index:20;
    backdrop-filter:blur(14px);
}

.nav-wrap {
    height:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px;
}

.brand {
    display:flex;
    align-items:center;
}

.brand img {
    width:139px;
    height:73px;
    object-fit:contain;
}

.nav-wrap nav {
    display:flex;
    gap:34px;
    font-size:14px;
    font-weight:550;
}

.nav-wrap nav a:hover,.login-link:hover {
    color:var(--blue);
}

.nav-actions {
    display:flex;
    align-items:center;
    gap:25px;
    font-size:14px;
    font-weight:600;
}

.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:24px;
    background:var(--blue);
    color:white;
    padding:19px 25px;
    border-radius:9px;
    font-weight:650;
    font-size:15px;
    white-space:nowrap;
    box-shadow:0 5px 12px #1456ed14;
    transition:transform .2s,background .2s;
}

.button:hover {
    background:#1044c0;
    transform:translateY(-2px);
}

.button svg {
    width:19px;
    height:19px;
}

.button-small {
    padding:13px 18px;
    gap:13px;
    font-size:13px;
}

.hero {
    background:linear-gradient(115deg,#fafbfe 10%,#f4f7fd 68%,#edf3ff 100%);
    overflow:hidden;
}

.hero-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:65px;
    align-items:center;
    padding-top:78px;
    padding-bottom:76px;
}

.eyebrow {
    font-size:10px;
    font-weight:750;
    letter-spacing:2px;
    color:var(--blue);
    display:block;
    line-height:1.6;
}

.hero-copy>.eyebrow {
    display:flex;
    align-items:center;
    gap:9px;
    font-size:10px;
}

.status-dot {
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--blue);
    box-shadow:0 0 0 4px #1456ed0d;
}

h1 {
    font-size:clamp(42px,4.5vw,61px);
    font-weight:700;
    letter-spacing:-2.9px;
    line-height:1.12;
    margin:26px 0 24px;
}

h1 em {
    color:var(--blue);
    position:relative;
}

h1 em:after {
    content:'';
    position:absolute;
    height:4px;
    border-radius:50%;
    background:#bad0ff;
    bottom:-4px;
    left:0;
    right:0;
    transform:rotate(-3deg);
}

.hero-copy>p {
    font-size:16px;
    line-height:1.85;
    color:var(--muted);
    max-width:450px;
    margin:0 0 30px;
}

.hero-actions {
    display:flex;
    align-items:center;
    gap:24px;
}

.text-link {
    font-size:13px;
    font-weight:650;
    display:inline-flex;
    align-items:center;
    gap:10px;
}

.text-link:hover {
    color:var(--blue);
}

.text-link span {
    font-size:20px;
}

.hero-note {
    display:flex;
    align-items:center;
    gap:8px;
    font-size:10px;
    color:#67758a;
    margin-top:22px;
}

.hero-note svg {
    width:15px;
    height:15px;
    color:#289879;
}

.hero-note>span {
    margin-inline:2px;
}

.hero-visual {
    position:relative;
    padding:26px 0 16px;
    isolation:isolate;
}

.visual-orbit {
    position:absolute;
    border:1px solid #dce6fa;
    border-radius:50%;
    z-index:-1;
    pointer-events:none;
}

.orbit-one {
    width:640px;
    height:640px;
    left:-42px;
    top:-25px;
}

.orbit-two {
    width:760px;
    height:760px;
    left:-102px;
    top:-85px;
}

.dashboard-preview {
    border:1px solid #e5eaf2;
    background:#fff;
    box-shadow:0 28px 75px #1a427c16,0 5px 15px #263d5c08;
    border-radius:16px;
    padding:23px 27px;
    transform:rotate(-2deg);
    position:relative;
}

.preview-top {
    display:flex;
    align-items:center;
    gap:9px;
    border-bottom:1px solid #f0f2f7;
    padding-bottom:18px;
    font-size:12px;
}

.preview-mark {
    display:grid;
    place-items:center;
    width:27px;
    height:27px;
    background:#edf3ff;
    color:var(--blue);
    border-radius:7px;
}

.preview-mark svg {
    width:17px;
    height:17px;
}

.preview-avatar {
    margin-left:auto;
    display:grid;
    place-items:center;
    background:#f0effb;
    border:3px solid white;
    box-shadow:0 0 0 1px #e9e7f5;
    width:28px;
    height:28px;
    border-radius:50%;
    font-size:10px;
    color:#7967b3;
}

.preview-heading {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin:23px 0 19px;
    gap:10px;
}

.preview-heading>div>span {
    font-size:7px;
    font-weight:700;
    letter-spacing:1.2px;
    color:#94a1b5;
}

.preview-heading h2 {
    font-size:17px;
    letter-spacing:-.5px;
    margin:6px 0 0;
}

.month-label {
    font-size:9px;
    white-space:nowrap;
    border:1px solid var(--line);
    padding:7px 9px;
    border-radius:5px;
}

.month-label span {
    margin-left:10px;
}

.balance {
    padding:21px 23px;
    border-radius:10px;
    background:linear-gradient(120deg,#155bee,#346ef6);
    color:white;
    position:relative;
    overflow:hidden;
}

.balance:after {
    content:'';
    position:absolute;
    width:190px;
    height:190px;
    border:30px solid #ffffff08;
    border-radius:50%;
    right:-40px;
    top:-35px;
}

.balance>span {
    font-size:10px;
    color:#e0e9ff;
}

.balance>strong {
    display:block;
    font-size:35px;
    letter-spacing:-1px;
    margin:9px 0 12px;
}

.balance>strong>span {
    font-size:26px;
    font-weight:450;
}

.balance>div {
    display:flex;
    align-items:center;
    gap:7px;
    font-size:8px;
    color:#e9f0ff;
}

.balance-dot {
    width:5px;
    height:5px;
    background:#9debcf;
    border-radius:50%;
}

.preview-totals {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    margin:16px 0 23px;
}

.preview-totals>div {
    display:flex;
    align-items:center;
    gap:10px;
    border:1px solid #edf0f5;
    border-radius:8px;
    padding:13px 10px;
}

.preview-totals>div>div>span {
    display:block;
    color:#8490a3;
    font-size:9px;
    margin-bottom:5px;
}

.preview-totals strong {
    font-size:13px;
}

.total-icon {
    width:27px;
    height:27px;
    border-radius:50%;
    display:grid;
    place-items:center;
    font-size:16px;
}

.income {
    color:#299a74;
    background:#e9f8f1;
}

.expense {
    color:#dc825b;
    background:#fff2eb;
}

.chart-heading {
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-size:10px;
}

.chart-heading>span {
    display:flex;
    align-items:center;
    gap:4px;
    font-size:7px;
    color:#8a95a8;
}

.chart-heading i {
    width:5px;
    height:5px;
    background:#3970f2;
    border-radius:50%;
    margin-left:5px;
}

.chart-heading i:nth-of-type(2) {
    background:#c9d9fd;
}

.chart-bars {
    display:flex;
    justify-content:space-between;
    gap:15px;
    margin-top:18px;
    background:repeating-linear-gradient(to top,transparent 0,transparent 34px,#f0f3f8 34px,#f0f3f8 35px);
}

.chart-bars>div {
    flex:1;
    text-align:center;
}

.bar-pair {
    height:92px;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    gap:5px;
}

.bar-pair i {
    display:block;
    width:13px;
    height:var(--bar);
    background:#3970f2;
    border-radius:3px 3px 0 0;
}

.bar-pair i+i {
    background:#d1dfff;
}

.chart-bars>div>span {
    font-size:7px;
    display:block;
    background:white;
    padding-top:9px;
    color:#8c97a9;
}

.preview-bottom {
    display:flex;
    justify-content:space-between;
    gap:8px;
    border-top:1px solid #edf0f6;
    margin-top:17px;
    padding-top:15px;
    font-size:8px;
    color:#8994a6;
}

.preview-bottom>span {
    display:flex;
    align-items:center;
    gap:6px;
}

.preview-bottom svg {
    width:12px;
    height:12px;
}

.preview-bottom strong {
    color:#5e6c83;
    font-weight:500;
}

.preview-bottom strong span {
    color:#98a2b3;
}

.floating-note {
    position:absolute;
    bottom:8px;
    left:-38px;
    display:flex;
    align-items:center;
    gap:12px;
    background:white;
    border:1px solid #e9edf4;
    border-radius:10px;
    padding:15px 21px;
    box-shadow:0 12px 28px #183d7112;
    transform:rotate(1deg);
}

.floating-note>span {
    background:#eaf8f2;
    color:#2aa879;
    display:grid;
    place-items:center;
    width:33px;
    height:33px;
    border-radius:50%;
}

.floating-note svg {
    width:18px;
    height:18px;
}

.floating-note strong {
    display:block;
    font-size:11px;
}

.floating-note small {
    font-size:9px;
    color:#8793a4;
    display:block;
    margin-top:5px;
}

.demo-caption {
    text-align:right;
    font-size:9px;
    color:#8693a9;
    margin:18px 4px 0;
}

.benefit-strip {
    border-top:1px solid #dfe6f2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-top:27px;
    padding-bottom:30px;
    gap:20px;
}

.benefit-strip>span {
    font-size:12px;
    color:#78869b;
    line-height:1.6;
}

.benefit-strip>span strong {
    color:#34445e;
    font-weight:600;
}

.benefit-strip>div {
    display:flex;
    align-items:center;
    gap:11px;
    font-size:13px;
    color:#506078;
    font-weight:550;
}

.benefit-strip svg {
    color:#7b94bb;
    width:21px;
}

.section {
    padding-block:100px;
}

.section-heading {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:60px;
    margin-bottom:40px;
}

h2 {
    font-size:39px;
    letter-spacing:-1.65px;
    line-height:1.2;
    margin:15px 0 0;
    font-weight:650;
}

.section-heading>p {
    max-width:350px;
    margin:0 0 3px;
    font-size:14px;
    line-height:1.8;
    color:var(--muted);
}

.feature-grid {
    display:grid;
    grid-template-columns:minmax(0,1.15fr) repeat(2,minmax(0,1fr));
    gap:20px;
}

.feature {
    padding:29px;
    border:1px solid #e8ecf3;
    border-radius:14px;
    overflow:hidden;
    background:#fff;
}

.feature-main {
    background:#f7f9ff;
    border-color:#eef1f9;
}

.feature-icon {
    display:grid;
    place-items:center;
    width:45px;
    height:45px;
    border-radius:12px;
    background:#e9f0ff;
    color:#3970ee;
}

.feature-icon.purple {
    background:#f0eafb;
    color:#8860cc;
}

.feature-icon.peach {
    background:#fff0e7;
    color:#d68b54;
}

.feature h3 {
    font-size:21px;
    line-height:1.35;
    letter-spacing:-.6px;
    margin:25px 0 12px;
}

.feature p {
    font-size:13px;
    line-height:1.85;
    color:var(--muted);
    margin:0;
}

.category-sample {
    margin-top:27px;
}

.category-sample>div:not(.category-track) {
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:9px;
    margin-bottom:7px;
}

.category-sample strong {
    font-weight:500;
    color:#71819c;
}

.category-dot {
    display:inline-block;
    width:6px;
    height:6px;
    border-radius:50%;
    margin-right:6px;
}

.dot-blue {
    background:#4b7bf0;
}

.dot-orange {
    background:#e9a97c;
}

.dot-purple {
    background:#a694db;
}

.category-track {
    height:5px;
    background:#e8edf7;
    border-radius:4px;
    margin-bottom:14px;
}

.category-track i {
    display:block;
    height:100%;
    background:#4b7bf0;
    border-radius:4px;
}

.orange-track i {
    background:#e9a97c;
}

.purple-track i {
    background:#a694db;
}

.category-sample small {
    font-size:8px;
    color:#8491a6;
}

.mini-card {
    margin-top:34px;
    background:linear-gradient(120deg,#283e74,#465c8c);
    border-radius:12px;
    color:#fff;
    padding:20px 20px 18px;
    transform:rotate(-5deg);
    box-shadow:0 12px 20px #24345d12;
}

.mini-card>span {
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:8px;
    letter-spacing:1.5px;
    color:#d6dff3;
}

.mini-card>span svg {
    width:20px;
}

.mini-card strong {
    display:block;
    font-size:13px;
    letter-spacing:1.5px;
    margin-top:23px;
}

.mini-card small {
    display:block;
    margin-top:13px;
    font-size:8px;
    color:#bccbe5;
}

.import-sample {
    display:flex;
    align-items:center;
    gap:12px;
    border:1px dashed #e0e5ee;
    border-radius:9px;
    background:#fafbfd;
    padding:19px 13px;
    margin-top:28px;
}

.import-sample>svg {
    color:#7793be;
    width:27px;
}

.import-sample strong {
    display:block;
    font-size:11px;
}

.import-sample span {
    display:block;
    font-size:9px;
    color:#7c8b9f;
    margin-top:7px;
}

.feature-footnote {
    display:block;
    font-size:9px;
    color:#8591a4;
    line-height:1.6;
    margin-top:15px;
}

.how-section {
    background:#f8f9fc;
    border-block:1px solid #edf0f6;
    padding:80px 0;
}

.steps {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:60px;
    margin-top:48px;
}

.step-number {
    font-size:12px;
    color:var(--blue);
    font-weight:650;
    width:40px;
    height:40px;
    border:1px solid #dbe5fb;
    background:#fff;
    display:grid;
    place-items:center;
    border-radius:50%;
}

.steps article {
    position:relative;
}

.steps article:not(:last-child):after {
    content:'';
    position:absolute;
    top:20px;
    left:58px;
    width:calc(100% - 23px);
    height:1px;
    background:#dfe5ee;
}

.steps h3 {
    font-size:20px;
    letter-spacing:-.5px;
    margin:23px 0 12px;
}

.steps p {
    font-size:13px;
    line-height:1.85;
    color:var(--muted);
    max-width:290px;
    margin:0;
}

.faq-section {
    display:grid;
    grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
    gap:100px;
}

.faq-section>div>p {
    font-size:14px;
    line-height:1.8;
    color:var(--muted);
    max-width:290px;
    margin-top:23px;
}

.faq-list details {
    border-bottom:1px solid var(--line);
}

.faq-list details:first-child {
    border-top:1px solid var(--line);
}

summary {
    cursor:pointer;
    list-style:none;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    padding:22px 0;
    font-size:14px;
    font-weight:600;
    line-height:1.5;
}

summary::-webkit-details-marker {
    display:none;
}

summary>span {
    font-weight:400;
    font-size:24px;
    color:#7c8ea9;
    transition:transform .2s;
}

details[open] summary>span {
    transform:rotate(45deg);
}

details p {
    font-size:13px;
    line-height:1.85;
    color:var(--muted);
    margin:0 28px 22px 0;
}

.closing-wrap {
    padding-bottom:55px;
}

.closing {
    position:relative;
    isolation:isolate;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:35px;
    background:#1655e5;
    border-radius:17px;
    padding:53px 55px;
    color:white;
}

.closing .eyebrow {
    color:#c4d6ff;
    font-size:9px;
}

.closing h2 {
    font-size:34px;
    letter-spacing:-1.1px;
    line-height:1.3;
}

.closing p {
    color:#d3e0ff;
    font-size:13px;
    line-height:1.8;
    margin:17px 0 0;
}

.button-white {
    background:white;
    color:#1b53cc;
    box-shadow:none;
    position:relative;
}

.button-white:hover {
    background:#f0f5ff;
}

.closing-orbit {
    position:absolute;
    z-index:-1;
    right:-30px;
    top:-135px;
    border:1px solid #ffffff20;
    width:530px;
    height:530px;
    border-radius:50%;
    box-shadow:0 0 0 65px #ffffff05,0 0 0 130px #ffffff05;
}

.site-footer {
    border-top:1px solid var(--line);
    padding-top:30px;
    padding-bottom:35px;
    display:flex;
    align-items:center;
    gap:23px;
    font-size:11px;
    color:#8791a1;
}

.footer-wordmark {
    font-size:25px;
    font-weight:750;
    color:#174aab;
    letter-spacing:-1px;
}

.footer-wordmark span {
    font-size:9px;
    vertical-align:super;
    margin-left:3px;
}

.site-footer>div {
    display:flex;
    gap:25px;
    align-items:center;
    margin-left:auto;
}

.site-footer a:hover {
    color:var(--blue);
}

@media(min-width:1500px) {
    .hero-grid {
        padding-top:100px;
        padding-bottom:95px;
    }
}

@media(max-width:1050px) {
    .container {
        width:calc(100% - 48px);
    }
    .hero-grid {
        gap:35px;
    }
    .hero-actions {
        gap:15px;
    }
    .hero-copy>p {
        font-size:14px;
    }
    .hero-actions .text-link {
        font-size:11px;
    }
    .dashboard-preview {
        padding:20px;
    }
    .floating-note {
        left:-15px;
    }
    .feature {
        padding:23px;
    }
    .feature-grid {
        gap:15px;
    }
    .feature h3 {
        font-size:19px;
    }
    .faq-section {
        gap:55px;
    }
    .closing {
        padding:40px;
    }
    .closing h2 {
        font-size:29px;
    }
    h1 {
        font-size:48px;
    }
    .hero-note {
        font-size:9px;
    }
}

@media(max-width:800px) {
    .nav-wrap nav {
        gap:18px;
        font-size:12px;
    }
    .nav-actions {
        gap:15px;
    }
    .hero-grid {
        grid-template-columns:minmax(0,1fr);
        max-width:580px;
        gap:35px;
        padding-top:48px;
        padding-bottom:45px;
    }
    .hero-copy {
        text-align:center;
    }
    .hero-copy>.eyebrow,.hero-actions,.hero-note {
        justify-content:center;
    }
    .hero-copy>p {
        margin-inline:auto;
        font-size:16px;
        max-width:470px;
    }
    .hero-copy h1 {
        font-size:56px;
    }
    .hero-visual {
        width:100%;
        max-width:470px;
        margin:auto;
        padding-inline:15px;
    }
    .dashboard-preview {
        padding:25px;
    }
    .hero-actions .text-link {
        font-size:13px;
    }
    .hero-note {
        font-size:10px;
    }
    .floating-note {
        left:0;
        bottom:10px;
    }
    .benefit-strip {
        flex-wrap:wrap;
        justify-content:center;
        gap:22px;
        padding-block:25px;
    }
    .benefit-strip>span {
        display:none;
    }
    .benefit-strip>div {
        font-size:11px;
        gap:7px;
    }
    .benefit-strip svg {
        width:18px;
    }
    .section {
        padding-block:65px;
    }
    .section-heading {
        gap:30px;
    }
    .section-heading>p {
        max-width:280px;
        font-size:12px;
    }
    h2 {
        font-size:33px;
    }
    .feature-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .feature-main {
        grid-column:1/-1;
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        column-gap:35px;
    }
    .feature-main .feature-icon {
        grid-column:1;
    }
    .feature-main h3 {
        grid-column:1;
        margin-top:18px;
    }
    .feature-main p {
        grid-column:1;
    }
    .category-sample {
        grid-column:2;
        grid-row:1/4;
        align-self:center;
        margin:15px;
    }
    .mini-card {
        max-width:290px;
    }
    .steps {
        gap:25px;
    }
    .steps h3 {
        font-size:17px;
    }
    .steps p {
        font-size:12px;
    }
    .how-section {
        padding:60px 0;
    }
    .faq-section {
        grid-template-columns:minmax(0,1fr);
        gap:25px;
    }
    .faq-section>div>p {
        max-width:none;
    }
    .closing {
        flex-direction:column;
        text-align:center;
        gap:25px;
    }
    .closing h2 {
        font-size:31px;
    }
    .site-footer {
        flex-wrap:wrap;
        gap:12px 20px;
    }
    .site-footer>div {
        width:100%;
        margin:6px 0 0;
    }
    .site-footer>div>span {
        margin-left:auto;
    }
}

@media(max-width:540px) {
    .container {
        width:calc(100% - 36px);
    }
    .site-header {
        height:79px;
    }
    .brand img {
        width:113px;
        height:60px;
    }
    .nav-wrap {
        gap:10px;
    }
    .nav-wrap nav {
        display:none;
    }
    .nav-actions {
        gap:17px;
    }
    .nav-actions .login-link {
        font-size:12px;
    }
    .button-small {
        font-size:11px;
        padding:11px 12px;
        gap:7px;
    }
    .button-small svg {
        width:15px;
    }
    .hero-grid {
        padding-top:39px;
        gap:24px;
    }
    .hero-copy>.eyebrow {
        font-size:8px;
        letter-spacing:1.4px;
    }
    .hero-copy h1 {
        font-size:44px;
        letter-spacing:-2px;
        margin-top:24px;
    }
    .hero-copy>p {
        font-size:14px;
        line-height:1.8;
        max-width:360px;
    }
    .hero-actions {
        gap:17px;
        flex-direction:column;
    }
    .hero-actions .button {
        width:100%;
        max-width:310px;
    }
    .hero-note {
        font-size:10px;
        gap:5px;
        margin-top:20px;
        flex-wrap:wrap;
    }
    .hero-visual {
        padding-inline:7px;
    }
    .dashboard-preview {
        padding:17px;
        border-radius:12px;
        transform:rotate(-1deg);
    }
    .preview-heading h2 {
        font-size:16px;
    }
    .balance>strong {
        font-size:32px;
    }
    .floating-note {
        left:-3px;
        padding:11px 13px;
        gap:9px;
    }
    .floating-note strong {
        font-size:9px;
    }
    .floating-note small {
        font-size:8px;
    }
    .floating-note>span {
        width:28px;
        height:28px;
    }
    .demo-caption {
        margin-top:24px;
        font-size:8px;
    }
    .preview-totals {
        gap:8px;
    }
    .preview-totals strong {
        font-size:12px;
    }
    .preview-totals>div {
        padding:10px 8px;
        gap:7px;
    }
    .preview-bottom {
        font-size:7px;
    }
    .benefit-strip {
        gap:12px;
    }
    .benefit-strip>div {
        font-size:9px;
        gap:4px;
    }
    .benefit-strip svg {
        width:15px;
    }
    .section-heading {
        display:block;
        margin-bottom:27px;
    }
    h2 {
        font-size:32px;
        letter-spacing:-1.1px;
    }
    .eyebrow {
        font-size:9px;
        letter-spacing:1.6px;
    }
    .section-heading>p {
        max-width:none;
        margin-top:20px;
        font-size:13px;
    }
    .feature-grid {
        grid-template-columns:minmax(0,1fr);
        gap:16px;
    }
    .feature-main {
        display:block;
        grid-column:auto;
    }
    .feature {
        padding:26px;
    }
    .feature h3 {
        font-size:22px;
    }
    .category-sample {
        margin:25px 0 0;
    }
    .category-sample>div:not(.category-track) {
        font-size:11px;
    }
    .category-sample small {
        font-size:9px;
    }
    .mini-card {
        max-width:100%;
        margin:26px 8px 8px;
    }
    .how-section .text-link {
        margin-top:22px;
    }
    .steps {
        grid-template-columns:minmax(0,1fr);
        gap:30px;
        margin-top:30px;
    }
    .steps article {
        padding-left:59px;
    }
    .step-number {
        position:absolute;
        left:0;
        top:0;
    }
    .steps article:not(:last-child):after {
        left:20px;
        top:52px;
        height:calc(100% - 32px);
        width:1px;
    }
    .steps h3 {
        font-size:19px;
        margin:0 0 10px;
    }
    .steps p {
        max-width:none;
        font-size:13px;
    }
    .faq-section {
        gap:20px;
    }
    summary {
        font-size:13px;
        padding-block:20px;
    }
    .closing {
        padding:34px 23px;
        border-radius:12px;
    }
    .closing h2 {
        font-size:27px;
    }
    .closing p {
        font-size:12px;
    }
    .closing .button {
        width:100%;
    }
    .site-footer {
        font-size:10px;
    }
    .site-footer>div {
        gap:20px;
    }
    .closing-wrap {
        padding-bottom:35px;
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto;
    }
    * {
        transition:none!important;
    }
}


/* Let the content shrink with the viewport instead of imposing its intrinsic width. */
html, body {
    width: 100%;
    min-width: 0;
}
.container > *, .hero-grid > *, .feature-grid > *, .steps > *,
.faq-section > *, .preview-totals > *, .preview-heading > *,
.preview-totals > div > div, .nav-actions, .hero-visual {
    min-width: 0;
}
.headline-line {
    display: block;
}
h1 em {
    font-style: normal;
}
.chart-bars {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: clamp(4px, 1.5vw, 15px);
}
.bar-pair {
    gap: 4px;
}
.bar-pair i {
    width: min(13px, 40%);
}
.status-dot, .total-icon, summary > span {
    flex-shrink: 0;
}
@media (max-width: 800px) {
    .nav-wrap nav {
        display: none;
    }
    .hero-copy h1 {
        font-size: clamp(34px, 7.8vw, 52px);
        letter-spacing: -1.6px;
        line-height: 1.15;
    }
    .headline-line + .headline-line {
        margin-top: 8px;
    }
    .hero-copy, .hero-visual, .dashboard-preview {
        width: 100%;
        max-width: 100%;
    }
    .hero-visual {
        max-width: 470px;
    }
    .hero-note {
        flex-wrap: wrap;
    }
}
@media (max-width: 540px) {
    .container {
        width: calc(100% - 32px);
    }
    .hero-visual {
        padding: 12px 0 0;
    }
    .dashboard-preview {
        transform: none;
        padding: 18px 14px;
    }
    .floating-note {
        position: static;
        transform: none;
        margin: 14px auto 0;
        width: fit-content;
        max-width: 100%;
    }
    .demo-caption {
        text-align: center;
        margin-top: 12px;
    }
    .preview-heading {
        align-items: flex-start;
    }
    .preview-heading h2 {
        font-size: 15px;
    }
    .preview-totals > div {
        flex-wrap: wrap;
    }
    .preview-bottom {
        flex-wrap: wrap;
        font-size: 9px;
        line-height: 1.6;
    }
    .benefit-strip {
        gap: 14px 18px;
    }
    .benefit-strip > div {
        font-size: 11px;
    }
    .hero-note {
        line-height: 1.7;
    }
    .nav-actions {
        gap: 12px;
    }
    .login-link, .nav-actions .button {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }
    .brand img {
        width: 104px;
        height: 55px;
    }
    .site-footer > div {
        flex-wrap: wrap;
        row-gap: 16px;
    }
    .closing .button {
        white-space: normal;
        text-align: center;
    }
}
