/* /Components/ConfettiBurst.razor.rz.scp.css */
/* Slice 19δ — shared confetti burst, extracted from slice 19β. */

.ftapp-confetti-burst[b-y5b4oigrpu] {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 5;
}

.ftapp-confetti-burst__piece[b-y5b4oigrpu] {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 8px;
    height: 12px;
    background: var(--ftapp-terracotta);
    transform-origin: center;
    animation: ftapp-confetti-arc-b-y5b4oigrpu 1.4s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    /* Each piece flies in a different direction via --i:0..N. */
    --angle: calc(var(--i) * 30deg);
    --distance: 90px;
}
.ftapp-confetti-burst__piece:nth-child(3n)[b-y5b4oigrpu]   { background: var(--ftapp-butter); }
.ftapp-confetti-burst__piece:nth-child(3n+1)[b-y5b4oigrpu] { background: var(--ftapp-sage); }
.ftapp-confetti-burst__piece:nth-child(3n+2)[b-y5b4oigrpu] { background: var(--ftapp-terracotta); }

@keyframes ftapp-confetti-arc-b-y5b4oigrpu {
    0% {
        opacity: 1;
        transform: translate(-50%, -50%) rotate(0deg);
    }
    100% {
        opacity: 0;
        transform:
            translate(
                calc(-50% + cos(var(--angle)) * var(--distance)),
                calc(-50% + sin(var(--angle)) * var(--distance) - 10px)
            )
            rotate(540deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ftapp-confetti-burst[b-y5b4oigrpu] { display: none; }
}
/* /Components/PaperFoldIntro.razor.rz.scp.css */
/* Slice 20μ — gatefold paper intro keyframes.
   Two panels (left half + right half) fold outward simultaneously
   like opening a paper folder. Single rotateY axis per panel,
   mirrored origins. Backface-visibility hides the back of the paper
   so the mid-frame never shows a flat colored rectangle pretending
   to be a folded sheet. Total: 700ms unfold + 200ms fade-dismiss. */

.ftapp-paper-fold[b-o81f7fal7b] {
    position: fixed;
    inset: 0;
    z-index: 90;
    pointer-events: none;
    perspective: 1600px;
    perspective-origin: center;
    animation: ftapp-fold-dismiss-b-o81f7fal7b 0.25s ease-in 0.75s forwards;
}

.ftapp-paper-fold__panel[b-o81f7fal7b] {
    position: absolute;
    top: 0;
    width: 50%;
    height: 100%;
    background: var(--ftapp-cream-deep, #F2E4C8);
    backface-visibility: hidden;
    box-shadow:
        0 0 24px rgba(26, 26, 26, 0.08),
        inset 0 0 60px rgba(26, 26, 26, 0.04);
    animation: ftapp-fold-panel-b-o81f7fal7b 0.7s cubic-bezier(0.55, 0.05, 0.4, 1) forwards;
}

/* Left half: hinge on the LEFT edge, swings outward to the left. */
.ftapp-paper-fold__panel:nth-child(1)[b-o81f7fal7b] {
    left: 0;
    transform-origin: left center;
    border-right: 1px solid rgba(26, 26, 26, 0.08);
}

/* Right half: hinge on the RIGHT edge, swings outward to the right. */
.ftapp-paper-fold__panel:nth-child(2)[b-o81f7fal7b] {
    right: 0;
    transform-origin: right center;
    border-left: 1px solid rgba(26, 26, 26, 0.08);
}

@keyframes ftapp-fold-panel-b-o81f7fal7b {
    0%   { transform: rotateY(0deg); }
    100% { transform: rotateY(var(--fold-direction, 110deg)); }
}

/* Use the --i custom property to set fold direction per panel:
   panel 0 (left half) folds to NEGATIVE Y (away from camera, leftward);
   panel 1 (right half) folds to POSITIVE Y (away rightward). */
.ftapp-paper-fold__panel:nth-child(1)[b-o81f7fal7b] { --fold-direction: -110deg; }
.ftapp-paper-fold__panel:nth-child(2)[b-o81f7fal7b] { --fold-direction: 110deg; }

@keyframes ftapp-fold-dismiss-b-o81f7fal7b {
    to { opacity: 0; visibility: hidden; }
}

/* Reduced motion: skip the gatefold entirely; quick fade out. */
@media (prefers-reduced-motion: reduce) {
    .ftapp-paper-fold[b-o81f7fal7b] {
        animation: ftapp-fold-dismiss-b-o81f7fal7b 0.25s ease-out 0.05s forwards;
    }
    .ftapp-paper-fold__panel[b-o81f7fal7b] {
        animation: none;
    }
}
/* /Layout/MainLayout.razor.rz.scp.css */
/* Slice 19i: minimal hospitality shell.
   - Cream background inherited from tokens.css.
   - Header is a thin transparent strip with just the wordmark — no nav,
     no chrome, no marketing CTAs.
   - Main fills the rest, no padding by default so individual pages
     (especially the full-bleed landing map) own their layout. */

.ftapp-shell__header[b-f77blc1sp4] {
    position: sticky;
    top: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    height: 56px;
    padding: 0 1.25rem;
    background: rgba(250, 246, 240, 0.92);
    backdrop-filter: saturate(140%) blur(10px);
    -webkit-backdrop-filter: saturate(140%) blur(10px);
    border-bottom: 1px solid var(--ftapp-line);
}

.ftapp-shell__auth[b-f77blc1sp4] {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

/* Slice 19r: marketing copy that sits inline in the header on the landing
   route, to the LEFT of Log in / Sign up. Single tidy row instead of a
   separate CTA card above the map. Hidden on phones — the Sign up button
   alone is enough nudge when space is tight. */
.ftapp-shell__pitch[b-f77blc1sp4] {
    display: inline-flex;
    flex-direction: column;
    line-height: 1.2;
    margin-right: 0.5rem;
    text-align: right;
}
.ftapp-shell__pitch strong[b-f77blc1sp4] {
    font-family: var(--ftapp-font-display);
    font-weight: 500;
    font-size: 0.9375rem;
    color: var(--ftapp-ink);
    letter-spacing: -0.005em;
}
.ftapp-shell__pitch span[b-f77blc1sp4] {
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-micro);
    color: var(--ftapp-ink-mute);
}
@media (max-width: 720px) {
    .ftapp-shell__pitch[b-f77blc1sp4] { display: none; }
}

.ftapp-shell__email[b-f77blc1sp4] {
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-small);
    color: var(--ftapp-ink-soft);
    text-decoration: none;
    transition: color var(--ftapp-dur-fast) var(--ftapp-ease);
}
.ftapp-shell__email:hover[b-f77blc1sp4] { color: var(--ftapp-ink); }

.ftapp-shell__signout[b-f77blc1sp4] {
    appearance: none;
    background: transparent;
    border: none;
    padding: 0;
    color: var(--ftapp-ink-mute);
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-small);
    cursor: pointer;
    text-decoration: underline;
    text-decoration-color: var(--ftapp-line);
    text-underline-offset: 3px;
    transition: color var(--ftapp-dur-fast) var(--ftapp-ease);
}
.ftapp-shell__signout:hover[b-f77blc1sp4] { color: var(--ftapp-terracotta); text-decoration-color: var(--ftapp-terracotta); }

.ftapp-shell__authlink[b-f77blc1sp4] {
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-small);
    color: var(--ftapp-ink-soft);
    text-decoration: none;
}
.ftapp-shell__authlink:hover[b-f77blc1sp4] { color: var(--ftapp-ink); }

.ftapp-shell__authcta[b-f77blc1sp4] {
    display: inline-flex;
    align-items: center;
    padding: 0.375rem 0.875rem;
    background: var(--ftapp-ink);
    color: var(--ftapp-cream);
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-small);
    font-weight: 500;
    text-decoration: none;
    border-radius: var(--ftapp-radius-pill);
    transition: background var(--ftapp-dur-fast) var(--ftapp-ease);
}
.ftapp-shell__authcta:hover[b-f77blc1sp4] { background: var(--ftapp-terracotta); }

.ftapp-shell__main[b-f77blc1sp4] {
    min-height: calc(100vh - 56px);
}

/* Slice 19v: soft verify nudge banner. Sits between the header and the
   main content. Quiet warm-amber so it reads as guidance, not alarm. */
.ftapp-verify-banner[b-f77blc1sp4] {
    background: #FFF8E6;
    border-bottom: 1px solid #F4D58A;
    color: var(--ftapp-ink);
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-small);
    padding: 0.625rem 1.25rem;
    text-align: center;
}
.ftapp-verify-banner a[b-f77blc1sp4] {
    color: var(--ftapp-terracotta);
    text-decoration: underline;
}
.ftapp-verify-banner a:hover[b-f77blc1sp4] { color: var(--ftapp-terracotta-d); }

/* =====================================================================
   Slice 20π — Global footer.
   Three-column grid on desktop; stacks on mobile. Festival palette
   inherited from tokens.css so it reads as part of the brand.
   ===================================================================== */

.ftapp-footer[b-f77blc1sp4] {
    background: var(--ftapp-ink, #1D2939);
    color: var(--ftapp-cream, #FFF4E0);
    padding: 3rem 1.5rem 1.5rem;
    margin-top: 4rem;
    border-top: 4px solid var(--ftapp-terracotta, #EF4444);
}

.ftapp-footer__grid[b-f77blc1sp4] {
    max-width: 1080px;
    margin: 0 auto 2rem;
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr;
    gap: 2rem;
}

.ftapp-footer__col[b-f77blc1sp4] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.ftapp-footer__col--brand .ftapp-footer__wordmark[b-f77blc1sp4] {
    font-family: var(--ftapp-font-display, Fraunces, serif);
    font-weight: 700;
    font-size: 1.875rem;
    line-height: 1;
    margin: 0;
    color: var(--ftapp-cream, #FFF4E0);
    letter-spacing: -0.02em;
}
.ftapp-footer__col--brand .ftapp-footer__wordmark em[b-f77blc1sp4] {
    font-style: italic;
    color: var(--ftapp-terracotta, #EF4444);
    font-weight: 700;
}

.ftapp-footer__tagline[b-f77blc1sp4] {
    margin: 0;
    font-family: var(--ftapp-font-body, Inter, sans-serif);
    font-size: var(--ftapp-fs-small, 0.875rem);
    color: rgba(255, 244, 224, 0.7);
    line-height: var(--ftapp-lh-relaxed, 1.6);
    max-width: 24rem;
}

.ftapp-footer__heading[b-f77blc1sp4] {
    margin: 0 0 0.25rem;
    font-family: var(--ftapp-font-body, Inter, sans-serif);
    font-size: var(--ftapp-fs-micro, 0.75rem);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--ftapp-butter, #FACC15);
}

.ftapp-footer__list[b-f77blc1sp4] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.ftapp-footer__link[b-f77blc1sp4] {
    color: rgba(255, 244, 224, 0.85);
    text-decoration: none;
    font-family: var(--ftapp-font-body, Inter, sans-serif);
    font-size: var(--ftapp-fs-small, 0.875rem);
    transition: color 200ms ease;
}
.ftapp-footer__link:hover[b-f77blc1sp4] {
    color: var(--ftapp-butter, #FACC15);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.ftapp-footer__link--strong[b-f77blc1sp4] {
    color: var(--ftapp-butter, #FACC15);
    font-weight: 600;
}
.ftapp-footer__link--quiet[b-f77blc1sp4] {
    color: rgba(255, 244, 224, 0.55);
    font-size: var(--ftapp-fs-micro, 0.75rem);
}

.ftapp-footer__bottom[b-f77blc1sp4] {
    max-width: 1080px;
    margin: 0 auto;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255, 244, 224, 0.12);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.ftapp-footer__copy[b-f77blc1sp4] {
    margin: 0;
    font-family: var(--ftapp-font-body, Inter, sans-serif);
    font-size: var(--ftapp-fs-micro, 0.75rem);
    color: rgba(255, 244, 224, 0.55);
}

.ftapp-footer__legal[b-f77blc1sp4] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 1.25rem;
}

@media (max-width: 720px) {
    .ftapp-footer[b-f77blc1sp4] { padding: 2rem 1.25rem 1.25rem; margin-top: 2.5rem; }
    .ftapp-footer__grid[b-f77blc1sp4] {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        margin-bottom: 1.5rem;
    }
    .ftapp-footer__bottom[b-f77blc1sp4] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
}
/* /Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-x0zsbmehnb] {
    background-color: rgba(255, 255, 255, 0.1);
}

.top-row[b-x0zsbmehnb] {
    min-height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand[b-x0zsbmehnb] {
    font-size: 1.1rem;
}

.bi[b-x0zsbmehnb] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-x0zsbmehnb] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-x0zsbmehnb] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-x0zsbmehnb] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.nav-item[b-x0zsbmehnb] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-x0zsbmehnb] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-x0zsbmehnb] {
        padding-bottom: 1rem;
    }

    .nav-item[b-x0zsbmehnb]  a {
        color: #d7d7d7;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
    }

.nav-item[b-x0zsbmehnb]  a.active {
    background-color: rgba(255,255,255,0.37);
    color: white;
}

.nav-item[b-x0zsbmehnb]  a:hover {
    background-color: rgba(255,255,255,0.1);
    color: white;
}

@media (min-width: 641px) {
    .navbar-toggler[b-x0zsbmehnb] {
        display: none;
    }

    .collapse[b-x0zsbmehnb] {
        /* Never collapse the sidebar for wide screens */
        display: block;
    }

    .nav-scrollable[b-x0zsbmehnb] {
        /* Allow sidebar to scroll for tall menus */
        height: calc(100vh - 3.5rem);
        overflow-y: auto;
    }
}
/* /Pages/ConsumerTruckProfile.razor.rz.scp.css */
/* Slice 19j: editorial truck profile.
   Hero photo + Fraunces name, asymmetric meta column, photo-led menu
   cards. Mobile-first layout, then a 2-up menu grid on tablets and a
   3-up grid on desktop. The cart sticks to the right column on desktop
   and stacks below the menu on phones. */

.ftapp-truck[b-c105qea5kx] {
    max-width: 1100px;
    margin: 0 auto;
    padding: 2rem 1.25rem 4rem;
}

.ftapp-truck__loading[b-c105qea5kx] {
    max-width: 1100px;
    margin: 4rem auto;
    padding: 0 1.25rem;
    color: var(--ftapp-ink-mute);
    font-style: italic;
}

.ftapp-truck--missing[b-c105qea5kx] {
    text-align: center;
    padding: 4rem 1.25rem;
}

/* HERO ----------------------------------------------------- */

.ftapp-truck__hero[b-c105qea5kx] {
    display: grid;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
}
@media (min-width: 768px) {
    .ftapp-truck__hero[b-c105qea5kx] {
        grid-template-columns: 1.4fr 1fr;
        align-items: end;
    }
}

.ftapp-truck__hero-photo[b-c105qea5kx] {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    border-radius: var(--ftapp-radius-lg);
    border: var(--ftapp-border);
    background: var(--ftapp-cream-deep);
}

.ftapp-truck__hero-meta[b-c105qea5kx] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.ftapp-truck__name[b-c105qea5kx] {
    font-family: var(--ftapp-font-display);
    font-weight: 500;
    font-size: clamp(2.25rem, 4vw, 3.5rem);
    line-height: var(--ftapp-lh-tight);
    letter-spacing: -0.015em;
    margin: 0;
    color: var(--ftapp-ink);
}

/* Slice 19s: name row pairs the truck name with the heart toggle so
   the affordance lives right next to the thing it acts on. Wraps on
   phones so the heart drops below the name instead of crowding it. */
.ftapp-truck__name-row[b-c105qea5kx] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.875rem 1.25rem;
    margin: 0;
}

.ftapp-heart[b-c105qea5kx] {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.875rem;
    background: var(--ftapp-cream);
    color: var(--ftapp-ink-soft);
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-small);
    border: var(--ftapp-border);
    border-radius: var(--ftapp-radius-pill);
    cursor: pointer;
    transition: color var(--ftapp-dur-fast) var(--ftapp-ease),
                background var(--ftapp-dur-fast) var(--ftapp-ease),
                border-color var(--ftapp-dur-fast) var(--ftapp-ease);
}
.ftapp-heart > span:first-child[b-c105qea5kx] {
    font-size: 1.125rem;
    line-height: 1;
}
.ftapp-heart:hover[b-c105qea5kx] {
    color: var(--ftapp-terracotta);
    border-color: var(--ftapp-terracotta);
}
.ftapp-heart--on[b-c105qea5kx] {
    color: var(--ftapp-cream);
    background: var(--ftapp-terracotta);
    border-color: var(--ftapp-terracotta);
}
.ftapp-heart--on:hover[b-c105qea5kx] {
    background: var(--ftapp-terracotta-d);
    color: var(--ftapp-cream);
}
.ftapp-heart:disabled[b-c105qea5kx] { opacity: 0.6; cursor: not-allowed; }

.ftapp-truck__cuisine[b-c105qea5kx] {
    margin: 0;
    font-family: var(--ftapp-font-body);
    color: var(--ftapp-ink-soft);
    font-size: var(--ftapp-fs-body);
}
.ftapp-truck__cuisine-label[b-c105qea5kx] {
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: var(--ftapp-fs-micro);
    color: var(--ftapp-ink-mute);
    margin-right: 0.5rem;
}
.ftapp-truck__cuisine strong[b-c105qea5kx] {
    color: var(--ftapp-ink);
    font-weight: 600;
}

.ftapp-truck__sub[b-c105qea5kx] {
    color: var(--ftapp-ink-soft);
    margin: 0 0 1.5rem;
}

/* CONTACT ACTIONS ----------------------------------------- */

.ftapp-truck__actions[b-c105qea5kx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem;
    margin: 0 0 2.5rem;
}

/* SECTION HEADINGS ---------------------------------------- */

.ftapp-truck__section-heading[b-c105qea5kx] {
    font-family: var(--ftapp-font-display);
    font-weight: 500;
    font-size: 1.625rem;
    letter-spacing: -0.01em;
    margin: 2.5rem 0 1.25rem;
    color: var(--ftapp-ink);
}

/* MENU GRID ----------------------------------------------- */

.ftapp-menu-grid[b-c105qea5kx] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}
@media (min-width: 600px) {
    .ftapp-menu-grid[b-c105qea5kx] { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 980px) {
    .ftapp-menu-grid[b-c105qea5kx] { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
}

.ftapp-menu-card[b-c105qea5kx] {
    display: flex;
    flex-direction: column;
    background: var(--ftapp-cream);
    border: var(--ftapp-border);
    border-radius: var(--ftapp-radius-lg);
    overflow: hidden;
    transition: transform var(--ftapp-dur-base) var(--ftapp-ease),
                box-shadow var(--ftapp-dur-base) var(--ftapp-ease);
}
.ftapp-menu-card:hover[b-c105qea5kx] {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(26, 26, 26, 0.06),
                0 1px 2px rgba(26, 26, 26, 0.04);
}

.ftapp-menu-card__photo[b-c105qea5kx] {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    background: var(--ftapp-cream-deep);
    display: block;
}
.ftapp-menu-card__photo--empty[b-c105qea5kx] {
    background:
        repeating-linear-gradient(
            45deg,
            var(--ftapp-cream-deep) 0 12px,
            #ECE5D6 12px 24px
        );
}

.ftapp-menu-card__body[b-c105qea5kx] {
    padding: 1rem 1.125rem 1.125rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    flex: 1;
}

.ftapp-menu-card__name[b-c105qea5kx] {
    font-family: var(--ftapp-font-display);
    font-weight: 500;
    font-size: 1.125rem;
    margin: 0;
    color: var(--ftapp-ink);
    letter-spacing: -0.005em;
}

.ftapp-menu-card__desc[b-c105qea5kx] {
    margin: 0;
    color: var(--ftapp-ink-soft);
    font-size: var(--ftapp-fs-small);
    line-height: 1.5;
}

.ftapp-menu-card__foot[b-c105qea5kx] {
    margin-top: auto;
    padding-top: 0.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
}

.ftapp-menu-card__price[b-c105qea5kx] {
    font-size: 1rem;
    font-weight: 500;
    color: var(--ftapp-ink);
}

/* + button — clean circle, ink-on-cream by default, terracotta on hover */
.ftapp-icon-button[b-c105qea5kx] {
    appearance: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid var(--ftapp-ink);
    background: transparent;
    color: var(--ftapp-ink);
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background var(--ftapp-dur-fast) var(--ftapp-ease),
                color var(--ftapp-dur-fast) var(--ftapp-ease),
                border-color var(--ftapp-dur-fast) var(--ftapp-ease),
                transform var(--ftapp-dur-fast) var(--ftapp-ease);
}
.ftapp-icon-button:hover[b-c105qea5kx] {
    background: var(--ftapp-terracotta);
    border-color: var(--ftapp-terracotta);
    color: var(--ftapp-cream);
}
.ftapp-icon-button:active[b-c105qea5kx] { transform: scale(0.96); }

/* CART ---------------------------------------------------- */

.ftapp-cart[b-c105qea5kx] {
    margin: 2.5rem auto 0;
    max-width: 560px;
    background: var(--ftapp-cream-deep);
    border: var(--ftapp-border);
    border-radius: var(--ftapp-radius-lg);
}
.ftapp-cart__inner[b-c105qea5kx] {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.ftapp-cart__heading[b-c105qea5kx] {
    font-family: var(--ftapp-font-display);
    font-weight: 500;
    font-size: 1.375rem;
    margin: 0;
    color: var(--ftapp-ink);
}

.ftapp-cart__lines[b-c105qea5kx] {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: var(--ftapp-border);
    border-bottom: var(--ftapp-border);
}
.ftapp-cart__line[b-c105qea5kx] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 0;
    border-bottom: 1px dashed var(--ftapp-line);
    color: var(--ftapp-ink);
}
.ftapp-cart__line:last-child[b-c105qea5kx] { border-bottom: none; }
.ftapp-cart__line-name[b-c105qea5kx] { color: var(--ftapp-ink); }
.ftapp-cart__line-times[b-c105qea5kx] {
    color: var(--ftapp-ink-mute);
    margin: 0 0.5rem;
}
.ftapp-cart__line-price[b-c105qea5kx] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--ftapp-ink);
    font-weight: 500;
}
.ftapp-cart__remove[b-c105qea5kx] {
    appearance: none;
    border: none;
    background: transparent;
    color: var(--ftapp-ink-mute);
    cursor: pointer;
    font-size: 1.125rem;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    transition: background var(--ftapp-dur-fast) var(--ftapp-ease),
                color var(--ftapp-dur-fast) var(--ftapp-ease);
}
.ftapp-cart__remove:hover[b-c105qea5kx] {
    background: var(--ftapp-terracotta);
    color: var(--ftapp-cream);
}

.ftapp-cart__total[b-c105qea5kx] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding-top: 0.25rem;
}
.ftapp-cart__total-label[b-c105qea5kx] {
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: var(--ftapp-fs-micro);
    color: var(--ftapp-ink-mute);
}
.ftapp-cart__total-amount[b-c105qea5kx] {
    font-family: var(--ftapp-font-mono);
    font-size: 1.5rem;
    font-weight: 500;
    color: var(--ftapp-ink);
}

.ftapp-cart__field[b-c105qea5kx] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.ftapp-cart__field-label[b-c105qea5kx] {
    font-size: var(--ftapp-fs-micro);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ftapp-ink-mute);
}
.ftapp-cart__input[b-c105qea5kx] {
    appearance: none;
    padding: 0.625rem 0.875rem;
    background: var(--ftapp-cream);
    color: var(--ftapp-ink);
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-body);
    border: 1px solid var(--ftapp-line);
    border-radius: var(--ftapp-radius-sm);
}
.ftapp-cart__input:focus[b-c105qea5kx] {
    outline: none;
    border-color: var(--ftapp-ink);
    box-shadow: 0 0 0 3px rgba(26, 26, 26, 0.08);
}

.ftapp-cart__checkout[b-c105qea5kx] { width: 100%; justify-content: center; }

.ftapp-cart__note[b-c105qea5kx] {
    margin: 0;
    padding: 0.875rem 1rem;
    background: rgba(217, 119, 6, 0.06);
    border: 1px solid rgba(217, 119, 6, 0.2);
    border-radius: var(--ftapp-radius-md);
    color: var(--ftapp-ink-soft);
    font-size: var(--ftapp-fs-small);
}

.ftapp-cart__error[b-c105qea5kx] {
    margin: 0;
    padding: 0.625rem 0.875rem;
    background: rgba(194, 65, 12, 0.08);
    border: 1px solid rgba(194, 65, 12, 0.25);
    border-radius: var(--ftapp-radius-md);
    color: var(--ftapp-terracotta-d);
    font-size: var(--ftapp-fs-small);
}

/* MARKDOWN PROSE FALLBACK -------------------------------- */

.ftapp-menu-prose[b-c105qea5kx] {
    max-width: 720px;
    color: var(--ftapp-ink);
    line-height: var(--ftapp-lh-relaxed);
}
.ftapp-menu-prose[b-c105qea5kx]  h1,
.ftapp-menu-prose[b-c105qea5kx]  h2,
.ftapp-menu-prose[b-c105qea5kx]  h3 {
    font-family: var(--ftapp-font-display);
    font-weight: 500;
    color: var(--ftapp-ink);
    letter-spacing: -0.01em;
}
.ftapp-menu-prose[b-c105qea5kx]  p { color: var(--ftapp-ink-soft); }

.ftapp-truck__back[b-c105qea5kx] {
    margin-top: 2.5rem;
}

/* Slice 19t: ratings + reviews. Hero rating summary, star rater form,
   and the reviews list. Stars are warm-amber to read at-a-glance against
   the cream surface; the form's selected stars flip to terracotta to
   match the heart toggle's "on" state. */
.ftapp-truck__rating[b-c105qea5kx] {
    margin: 0.75rem 0 0;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--ftapp-ink-soft);
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-small);
}
.ftapp-truck__rating-meta[b-c105qea5kx] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.375rem;
}
.ftapp-truck__rating-meta strong[b-c105qea5kx] {
    color: var(--ftapp-ink);
    font-size: 1.0625rem;
}
.ftapp-truck__rating-count[b-c105qea5kx] { color: var(--ftapp-ink-mute); }

.ftapp-stars[b-c105qea5kx] {
    color: #D97706;
    letter-spacing: 0.04em;
    font-size: 1rem;
}

.ftapp-sr-only[b-c105qea5kx] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.ftapp-reviews[b-c105qea5kx] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    margin-top: 1rem;
}

.ftapp-review-form[b-c105qea5kx] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.25rem;
    background: var(--ftapp-cream-deep);
    border: var(--ftapp-border);
    border-radius: var(--ftapp-radius-md);
}
.ftapp-review-form__rating[b-c105qea5kx] {
    border: none;
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.25rem;
    flex-wrap: wrap;
}
.ftapp-review-form__legend[b-c105qea5kx] {
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-micro);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ftapp-ink-mute);
    margin-right: 0.5rem;
    padding: 0;
}
.ftapp-review-form__star[b-c105qea5kx] {
    cursor: pointer;
    color: var(--ftapp-ink-mute);
    font-size: 1.5rem;
    line-height: 1;
    transition: color var(--ftapp-dur-fast) var(--ftapp-ease);
}
.ftapp-review-form__star input[b-c105qea5kx] { position: absolute; opacity: 0; pointer-events: none; }
.ftapp-review-form__star:hover[b-c105qea5kx] { color: var(--ftapp-terracotta); }
.ftapp-review-form__star--on[b-c105qea5kx] { color: var(--ftapp-terracotta); }

.ftapp-review-form__field[b-c105qea5kx] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}
.ftapp-review-form__field-label[b-c105qea5kx] {
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-micro);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ftapp-ink-mute);
}
.ftapp-review-form__textarea[b-c105qea5kx] {
    appearance: none;
    padding: 0.6875rem 0.875rem;
    background: var(--ftapp-cream);
    color: var(--ftapp-ink);
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-body);
    border: 1px solid var(--ftapp-line);
    border-radius: var(--ftapp-radius-sm);
    resize: vertical;
    min-height: 4rem;
}
.ftapp-review-form__textarea:focus[b-c105qea5kx] {
    outline: none;
    border-color: var(--ftapp-ink);
    box-shadow: 0 0 0 3px rgba(26, 26, 26, 0.08);
}

.ftapp-review-form__actions[b-c105qea5kx] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.ftapp-review-form__error[b-c105qea5kx] {
    margin: 0;
    color: var(--ftapp-terracotta-d);
    font-size: var(--ftapp-fs-small);
}

.ftapp-reviews__signin-nudge[b-c105qea5kx],
.ftapp-reviews__empty[b-c105qea5kx] {
    margin: 0;
    color: var(--ftapp-ink-soft);
    font-size: var(--ftapp-fs-small);
}

.ftapp-reviews__list[b-c105qea5kx] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.ftapp-review[b-c105qea5kx] {
    padding: 1rem 1.25rem;
    background: var(--ftapp-cream);
    border: var(--ftapp-border);
    border-radius: var(--ftapp-radius-md);
}
.ftapp-review__head[b-c105qea5kx] {
    display: flex;
    align-items: baseline;
    gap: 0.625rem;
    flex-wrap: wrap;
    margin-bottom: 0.375rem;
}
.ftapp-review__author[b-c105qea5kx] {
    color: var(--ftapp-ink);
    font-weight: 500;
    font-size: var(--ftapp-fs-small);
}
.ftapp-review__when[b-c105qea5kx] {
    color: var(--ftapp-ink-mute);
    font-size: var(--ftapp-fs-micro);
}
.ftapp-review__text[b-c105qea5kx] {
    margin: 0;
    color: var(--ftapp-ink-soft);
    line-height: var(--ftapp-lh-relaxed);
}

/* =================================================================
   Slice 19β — Truck profile as magazine spread
   ================================================================= */

/* Full-bleed hero — breaks out of the .ftapp-truck max-width container
   so the photo runs to the viewport edges. Negative-margin + 100vw
   technique avoids a horizontal scrollbar. */
.ftapp-truck__hero--fullbleed[b-c105qea5kx] {
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-top: -2rem; /* pull up under the page padding */
    margin-bottom: 0;
    aspect-ratio: 16 / 7;
    max-height: 540px;
    overflow: hidden;
    display: block;
}
.ftapp-truck__hero--fullbleed .ftapp-truck__hero-photo[b-c105qea5kx] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border: none;
    border-radius: 0;
    aspect-ratio: auto;
}
.ftapp-truck__hero-fallback[b-c105qea5kx] {
    width: 100%;
    height: 100%;
    background: var(--ftapp-cream-deep);
}
.ftapp-truck__hero-fallback svg[b-c105qea5kx] {
    width: 100%;
    height: 100%;
    display: block;
}

/* Name overlay — oversized Fraunces with a soft drop-shadow for legibility. */
.ftapp-truck__hero-overlay[b-c105qea5kx] {
    position: absolute;
    inset: auto 0 0 0;
    padding: 1.5rem clamp(1.25rem, 4vw, 3rem);
    background: linear-gradient(180deg, transparent 0%, rgba(26, 26, 26, 0.55) 100%);
    color: var(--ftapp-cream);
}
.ftapp-truck__hero--fullbleed .ftapp-truck__name[b-c105qea5kx] {
    font-size: clamp(2.5rem, 7vw, 5.5rem);
    color: var(--ftapp-cream);
    text-shadow: 0 2px 16px rgba(0, 0, 0, 0.45);
    margin: 0;
}

/* Hero meta strip below the photo — emoji + open-now + rating + heart. */
.ftapp-truck__meta-strip[b-c105qea5kx] {
    display: flex;
    align-items: center;
    gap: 1rem 1.25rem;
    flex-wrap: wrap;
    margin: 1.25rem 0 2rem;
    padding: 0.875rem 0;
    border-bottom: 1px solid var(--ftapp-line);
    position: relative;
}
.ftapp-truck__cuisine-tag[b-c105qea5kx] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-small);
    color: var(--ftapp-ink-soft);
}
.ftapp-truck__cuisine-emoji[b-c105qea5kx] { font-size: 1.25rem; }

.ftapp-truck__open-now[b-c105qea5kx] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.25rem 0.625rem;
    background: var(--ftapp-sage);
    color: var(--ftapp-cream);
    border-radius: var(--ftapp-radius-pill);
    font-size: var(--ftapp-fs-micro);
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.ftapp-truck__open-now-dot[b-c105qea5kx] {
    width: 0.45rem;
    height: 0.45rem;
    background: var(--ftapp-cream);
    border-radius: 50%;
    box-shadow: 0 0 0 0 rgba(250, 246, 240, 0.6);
    animation: ftapp-dot-pulse-b-c105qea5kx 1.8s ease-in-out infinite;
}
@keyframes ftapp-dot-pulse-b-c105qea5kx {
    0%, 100% { box-shadow: 0 0 0 0 rgba(250, 246, 240, 0.6); }
    50%      { box-shadow: 0 0 0 5px rgba(250, 246, 240, 0); }
}
@media (prefers-reduced-motion: reduce) {
    .ftapp-truck__open-now-dot[b-c105qea5kx] { animation: none; }
}

.ftapp-truck__rating-inline[b-c105qea5kx] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.4rem;
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-small);
    color: var(--ftapp-ink-soft);
}
.ftapp-truck__rating-inline strong[b-c105qea5kx] { color: var(--ftapp-ink); font-size: 1.0625rem; }
.ftapp-truck__rating-count[b-c105qea5kx] { color: var(--ftapp-ink-mute); }

/* Heart toggle — auto-pushed to the right of the strip via margin-left:auto. */
.ftapp-truck__meta-strip .ftapp-heart[b-c105qea5kx] { margin-left: auto; }

/* Drop cap on menu prose intro. */
.ftapp-menu-prose__lede[b-c105qea5kx] {
    font-family: var(--ftapp-font-body);
    font-size: 1.0625rem;
    line-height: var(--ftapp-lh-relaxed);
    color: var(--ftapp-ink-soft);
    margin: 0 0 1rem;
}
.ftapp-menu-prose__dropcap[b-c105qea5kx] {
    float: left;
    font-family: var(--ftapp-font-display);
    font-weight: 500;
    color: var(--ftapp-terracotta);
    font-size: 4em;
    line-height: 0.85;
    padding: 0.05em 0.1em 0 0;
    margin: 0.05em 0.08em -0.05em 0;
}

/* Hand-drawn price tag pinned to top-right of each menu card. */
.ftapp-menu-card[b-c105qea5kx] { position: relative; }
.ftapp-menu-card__price-tag[b-c105qea5kx] {
    position: absolute;
    top: 0.875rem;
    right: -0.5rem;
    width: 80px;
    z-index: 2;
    transform: rotate(-4deg);
    filter: drop-shadow(0 2px 4px rgba(26, 26, 26, 0.18));
    transition: transform var(--ftapp-dur-base) var(--ftapp-ease);
}
.ftapp-menu-card:hover .ftapp-menu-card__price-tag[b-c105qea5kx] { transform: rotate(-1deg) translateY(-2px); }
.ftapp-menu-card__price-tag svg[b-c105qea5kx] { display: block; width: 100%; height: auto; }
.ftapp-menu-card__price-tag-text[b-c105qea5kx] {
    position: absolute;
    inset: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-left: 0.5rem;
    font-family: var(--ftapp-font-mono);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--ftapp-ink);
}
/* Hide the original inline price now that the tag carries it. */
.ftapp-menu-card__foot .ftapp-menu-card__price[b-c105qea5kx] { display: none; }

/* Reviews as oversized pull-quotes. */
.ftapp-review--pullquote[b-c105qea5kx] {
    position: relative;
    padding: 1.5rem 1.25rem 1.25rem 3.25rem;
}
.ftapp-review__quote-glyph[b-c105qea5kx] {
    position: absolute;
    top: -0.25rem;
    left: 0.625rem;
    font-family: var(--ftapp-font-display);
    font-weight: 500;
    font-size: 4.5rem;
    line-height: 1;
    color: var(--ftapp-butter);
    user-select: none;
    pointer-events: none;
}
.ftapp-review--pullquote .ftapp-review__text[b-c105qea5kx] {
    font-family: var(--ftapp-font-display);
    font-style: italic;
    font-size: 1.125rem;
    color: var(--ftapp-ink);
    line-height: 1.5;
    margin: 0;
}
.ftapp-review--pullquote .ftapp-review__author[b-c105qea5kx] {
    font-size: var(--ftapp-fs-micro);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ftapp-ink-mute);
    font-weight: 500;
}

/* Slice 19δ: confetti markup + styles moved to shared
   Components/ConfettiBurst.razor + .razor.css — heart-add now
   renders <ConfettiBurst TestId="favorite-confetti" />. */

/* Star-rater wobble: each star scales-up + rotates slightly when clicked.
   The class is applied in a future iteration via Razor state; the keyframe
   stays here so designers can toggle it via DevTools today. */
@keyframes ftapp-star-wobble-b-c105qea5kx {
    0%   { transform: scale(1)    rotate(0deg); }
    35%  { transform: scale(1.25) rotate(-8deg); }
    70%  { transform: scale(1.1)  rotate(6deg); }
    100% { transform: scale(1)    rotate(0deg); }
}
.ftapp-review-form__star--wobble[b-c105qea5kx] {
    animation: ftapp-star-wobble-b-c105qea5kx 280ms cubic-bezier(0.22, 0.61, 0.36, 1) 1;
}
@media (prefers-reduced-motion: reduce) {
    .ftapp-review-form__star--wobble[b-c105qea5kx] { animation: none; }
}
/* /Pages/Login.razor.rz.scp.css */
/* Slice 19r: shared auth-card pattern for /signup and /login. Lives on
   Signup.razor.css and Login.razor.css applies via the same class names
   exported globally below — Razor scoped CSS isolates by component, so
   we can't share via one .razor.css. The actual visual rules live in a
   page-agnostic class (.ftapp-c-auth) but Blazor adds the scope attr,
   so duplicate rules lightly. */

.ftapp-c-auth[b-f92vxzu5zi] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - 56px);
    padding: 2rem 1.25rem 4rem;
}

.ftapp-c-auth__card[b-f92vxzu5zi] {
    width: 100%;
    max-width: 460px;
    padding: 2.5rem 2rem 2rem;
    background: var(--ftapp-cream);
    border: var(--ftapp-border);
    border-radius: var(--ftapp-radius-lg);
    box-shadow: 0 1px 3px rgba(26, 26, 26, 0.04);
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.ftapp-c-auth__heading[b-f92vxzu5zi] {
    font-family: var(--ftapp-font-display);
    font-weight: 500;
    font-size: clamp(2rem, 3.5vw, 2.5rem);
    line-height: var(--ftapp-lh-tight);
    letter-spacing: -0.015em;
    margin: 0;
    color: var(--ftapp-ink);
}
.ftapp-c-auth__heading em[b-f92vxzu5zi] {
    font-style: italic;
    color: var(--ftapp-terracotta);
    font-weight: 500;
}

.ftapp-c-auth__sub[b-f92vxzu5zi] {
    margin: 0;
    color: var(--ftapp-ink-soft);
    font-size: 1rem;
    line-height: 1.55;
}

.ftapp-c-auth__form[b-f92vxzu5zi] {
    display: flex;
    flex-direction: column;
    gap: 1.125rem;
}

.ftapp-c-auth__field[b-f92vxzu5zi] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.ftapp-c-auth__field-label[b-f92vxzu5zi] {
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-micro);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ftapp-ink-mute);
}

.ftapp-c-auth__input[b-f92vxzu5zi] {
    appearance: none;
    padding: 0.6875rem 0.875rem;
    background: var(--ftapp-cream-deep);
    color: var(--ftapp-ink);
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-body);
    border: 1px solid var(--ftapp-line);
    border-radius: var(--ftapp-radius-sm);
}
.ftapp-c-auth__input:focus[b-f92vxzu5zi] {
    outline: none;
    background: var(--ftapp-cream);
    border-color: var(--ftapp-ink);
    box-shadow: 0 0 0 3px rgba(26, 26, 26, 0.08);
}

.ftapp-c-auth__submit[b-f92vxzu5zi] {
    margin-top: 0.5rem;
    justify-content: center;
}

.ftapp-c-auth__error[b-f92vxzu5zi] {
    margin: 0;
    padding: 0.75rem 1rem;
    background: rgba(194, 65, 12, 0.08);
    border: 1px solid rgba(194, 65, 12, 0.25);
    border-radius: var(--ftapp-radius-md);
    color: var(--ftapp-terracotta-d);
    font-size: var(--ftapp-fs-small);
}

.ftapp-c-auth__alt[b-f92vxzu5zi] {
    margin: 0;
    font-size: var(--ftapp-fs-small);
    color: var(--ftapp-ink-soft);
}
.ftapp-c-auth__alt--quiet[b-f92vxzu5zi] { color: var(--ftapp-ink-mute); }

.ftapp-c-auth__link[b-f92vxzu5zi] {
    color: var(--ftapp-terracotta);
    text-decoration: underline;
    text-decoration-color: var(--ftapp-line);
    text-underline-offset: 3px;
}
.ftapp-c-auth__link:hover[b-f92vxzu5zi] { color: var(--ftapp-terracotta-d); text-decoration-color: var(--ftapp-terracotta); }
/* /Pages/OrderStatusPage.razor.rz.scp.css */
/* Slice 19k: order status — receipt-style editorial layout. */

.ftapp-order[b-rv3xurcpvd] {
    max-width: 720px;
    margin: 0 auto;
    padding: 2.5rem 1.25rem 4rem;
}

.ftapp-order__loading[b-rv3xurcpvd] {
    max-width: 720px;
    margin: 4rem auto;
    padding: 0 1.25rem;
    color: var(--ftapp-ink-mute);
    font-style: italic;
}

.ftapp-order--missing[b-rv3xurcpvd] {
    text-align: center;
    padding: 4rem 1.25rem;
}

.ftapp-order__head[b-rv3xurcpvd] { margin-bottom: 1.5rem; }

.ftapp-order__eyebrow[b-rv3xurcpvd] {
    display: block;
    font-family: var(--ftapp-font-body);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: var(--ftapp-fs-micro);
    color: var(--ftapp-ink-mute);
    margin-bottom: 0.5rem;
}
.ftapp-order__eyebrow .ftapp-tnum[b-rv3xurcpvd] { color: var(--ftapp-ink); margin-left: 0.25rem; }

.ftapp-order__heading[b-rv3xurcpvd] {
    font-family: var(--ftapp-font-display);
    font-weight: 500;
    font-size: clamp(2rem, 3.5vw, 2.75rem);
    line-height: var(--ftapp-lh-tight);
    letter-spacing: -0.015em;
    margin: 0 0 0.25rem;
    color: var(--ftapp-ink);
}

.ftapp-order__cuisine[b-rv3xurcpvd] {
    margin: 0;
    color: var(--ftapp-ink-soft);
    font-size: var(--ftapp-fs-body);
}

.ftapp-order__sub[b-rv3xurcpvd] {
    color: var(--ftapp-ink-soft);
    margin: 0 0 1.5rem;
}

.ftapp-order__status-text[b-rv3xurcpvd] {
    margin: 0 0 0.5rem;
    color: var(--ftapp-ink);
    font-size: 1.0625rem;
}

/* Slice 19δ: friendly cashier-style note under the status line. */
.ftapp-order__friendly-note[b-rv3xurcpvd] {
    margin: 0 0 1.5rem;
    font-family: var(--ftapp-font-display);
    font-style: italic;
    font-size: 1rem;
    color: var(--ftapp-ink-soft);
    line-height: var(--ftapp-lh-relaxed);
}

/* TIMELINE ----------------------------------------------- */

.ftapp-timeline[b-rv3xurcpvd] {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    list-style: none;
    margin: 0 0 2.5rem;
    padding: 0;
    position: relative;
}
/* the line that runs through every dot */
.ftapp-timeline[b-rv3xurcpvd]::before {
    content: "";
    position: absolute;
    top: 9px;
    left: 10%;
    right: 10%;
    height: 1px;
    background: var(--ftapp-line);
}

.ftapp-timeline__step[b-rv3xurcpvd] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.5rem;
    position: relative;
    z-index: 1;
}

.ftapp-timeline__dot[b-rv3xurcpvd] {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--ftapp-cream);
    border: 1px solid var(--ftapp-line);
    transition: background var(--ftapp-dur-base) var(--ftapp-ease),
                border-color var(--ftapp-dur-base) var(--ftapp-ease);
}

/* Slice 19δ: hand-drawn timeline icons replace the bare dot. */
.ftapp-timeline__check[b-rv3xurcpvd],
.ftapp-timeline__pending[b-rv3xurcpvd] {
    width: 22px;
    height: 22px;
    display: block;
}
.ftapp-timeline__check[b-rv3xurcpvd] { color: var(--ftapp-terracotta); }
.ftapp-timeline__pending[b-rv3xurcpvd] { color: var(--ftapp-ink-mute); }
.ftapp-timeline__step--current .ftapp-timeline__pending[b-rv3xurcpvd] {
    color: var(--ftapp-terracotta);
    animation: ftapp-timeline-pulse-stroke-b-rv3xurcpvd 1.6s var(--ftapp-ease) infinite;
}
@keyframes ftapp-timeline-pulse-stroke-b-rv3xurcpvd {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.55; }
}

.ftapp-timeline__label[b-rv3xurcpvd] {
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-micro);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ftapp-ink-mute);
}

.ftapp-timeline__step--done .ftapp-timeline__dot[b-rv3xurcpvd] {
    background: var(--ftapp-terracotta);
    border-color: var(--ftapp-terracotta);
}
.ftapp-timeline__step--done .ftapp-timeline__label[b-rv3xurcpvd] {
    color: var(--ftapp-ink);
}

.ftapp-timeline__step--current .ftapp-timeline__dot[b-rv3xurcpvd] {
    box-shadow: 0 0 0 4px rgba(194, 65, 12, 0.18);
    animation: ftapp-timeline-pulse-b-rv3xurcpvd 1.6s var(--ftapp-ease) infinite;
}
.ftapp-timeline__step--current .ftapp-timeline__label[b-rv3xurcpvd] {
    color: var(--ftapp-terracotta-d);
    font-weight: 600;
}

@keyframes ftapp-timeline-pulse-b-rv3xurcpvd {
    0%, 100% { box-shadow: 0 0 0 4px rgba(194, 65, 12, 0.18); }
    50%      { box-shadow: 0 0 0 8px rgba(194, 65, 12, 0.06); }
}

@media (max-width: 540px) {
    .ftapp-timeline__label[b-rv3xurcpvd] {
        font-size: 10px;
        letter-spacing: 0.06em;
    }
}

/* RECEIPT ------------------------------------------------- */

.ftapp-order__section-heading[b-rv3xurcpvd] {
    font-family: var(--ftapp-font-display);
    font-weight: 500;
    font-size: 1.25rem;
    margin: 0 0 0.75rem;
    color: var(--ftapp-ink);
}

.ftapp-order__lines[b-rv3xurcpvd] {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
    border-top: var(--ftapp-border);
    border-bottom: var(--ftapp-border);
}
.ftapp-order__line[b-rv3xurcpvd] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 0;
    border-bottom: 1px dashed var(--ftapp-line);
    color: var(--ftapp-ink);
}
.ftapp-order__line:last-child[b-rv3xurcpvd] { border-bottom: none; }
.ftapp-order__line-times[b-rv3xurcpvd] {
    color: var(--ftapp-ink-mute);
    margin: 0 0.5rem;
}
.ftapp-order__line-price[b-rv3xurcpvd] {
    color: var(--ftapp-ink);
    font-weight: 500;
}

.ftapp-order__total[b-rv3xurcpvd] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 0.5rem 0 0;
    /* Slice 19δ: receipt-style double-underline beneath the total. */
    border-bottom: 3px double var(--ftapp-ink);
    padding-bottom: 0.25rem;
}
.ftapp-order__total-label[b-rv3xurcpvd] {
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: var(--ftapp-fs-micro);
    color: var(--ftapp-ink-mute);
}
.ftapp-order__total-amount[b-rv3xurcpvd] {
    font-family: var(--ftapp-font-mono);
    font-size: 1.5rem;
    font-weight: 500;
    color: var(--ftapp-ink);
}

.ftapp-order__paid-at[b-rv3xurcpvd] {
    margin: 1rem 0 0;
    font-size: var(--ftapp-fs-small);
    color: var(--ftapp-ink-mute);
}

.ftapp-order__poll-note[b-rv3xurcpvd] {
    margin: 2rem 0 0;
    font-size: var(--ftapp-fs-small);
    color: var(--ftapp-ink-mute);
    font-style: italic;
}

.ftapp-order__back[b-rv3xurcpvd] {
    margin-top: 2rem;
}
/* /Pages/Profile.razor.rz.scp.css */
/* Slice 19x: consumer profile page. Same editorial palette as the
   other auth-card pages but laid out as a column of sections rather
   than a single centered card — there's too much content for that. */

.ftapp-profile[b-g098zrkmwz] {
    max-width: 720px;
    margin: 0 auto;
    padding: 2rem 1.25rem 4rem;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.ftapp-profile__loading[b-g098zrkmwz],
.ftapp-profile__error[b-g098zrkmwz] {
    color: var(--ftapp-ink-mute);
    font-style: italic;
    text-align: center;
    padding: 4rem 1.25rem;
}

.ftapp-profile__hero[b-g098zrkmwz] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--ftapp-line);
}
.ftapp-profile__name[b-g098zrkmwz] {
    font-family: var(--ftapp-font-display);
    font-weight: 500;
    font-size: clamp(1.875rem, 3vw, 2.5rem);
    line-height: var(--ftapp-lh-tight);
    letter-spacing: -0.015em;
    margin: 0;
    color: var(--ftapp-ink);
}
.ftapp-profile__email[b-g098zrkmwz] {
    margin: 0;
    color: var(--ftapp-ink-soft);
    font-size: var(--ftapp-fs-small);
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
    flex-wrap: wrap;
}
.ftapp-profile__verified[b-g098zrkmwz] {
    color: #047857;
    background: #D1FAE5;
    border-radius: var(--ftapp-radius-pill);
    padding: 0.125rem 0.5rem;
    font-size: var(--ftapp-fs-micro);
    font-weight: 500;
}
.ftapp-profile__counts[b-g098zrkmwz] {
    margin: 0;
    color: var(--ftapp-ink-mute);
    font-size: var(--ftapp-fs-micro);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.ftapp-profile__counts .ftapp-tnum[b-g098zrkmwz] {
    color: var(--ftapp-ink);
    font-weight: 600;
}

.ftapp-profile__section[b-g098zrkmwz] {
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
}
.ftapp-profile__section-heading[b-g098zrkmwz] {
    font-family: var(--ftapp-font-display);
    font-weight: 500;
    font-size: 1.375rem;
    letter-spacing: -0.01em;
    margin: 0;
    color: var(--ftapp-ink);
}

.ftapp-profile__empty[b-g098zrkmwz] {
    margin: 0;
    color: var(--ftapp-ink-soft);
    font-size: var(--ftapp-fs-small);
}

.ftapp-profile__list[b-g098zrkmwz] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.ftapp-profile__item[b-g098zrkmwz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.875rem 1.125rem;
    background: var(--ftapp-cream);
    border: var(--ftapp-border);
    border-radius: var(--ftapp-radius-md);
}
.ftapp-profile__item-link[b-g098zrkmwz] {
    color: var(--ftapp-ink);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
}
.ftapp-profile__item-link:hover[b-g098zrkmwz] { color: var(--ftapp-terracotta); }
.ftapp-profile__item-meta[b-g098zrkmwz] {
    color: var(--ftapp-ink-mute);
    font-size: var(--ftapp-fs-micro);
}

.ftapp-profile__review-card[b-g098zrkmwz] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1rem 1.125rem;
    background: var(--ftapp-cream);
    border: var(--ftapp-border);
    border-radius: var(--ftapp-radius-md);
}
.ftapp-profile__review-text[b-g098zrkmwz] {
    margin: 0;
    color: var(--ftapp-ink-soft);
    line-height: var(--ftapp-lh-relaxed);
}
.ftapp-profile__review-actions[b-g098zrkmwz] {
    display: flex;
    gap: 1rem;
    margin-top: 0.25rem;
}

.ftapp-profile__danger[b-g098zrkmwz] {
    border-top: 1px solid var(--ftapp-line);
    padding-top: 1.5rem;
}
.ftapp-profile__danger-button[b-g098zrkmwz] { color: var(--ftapp-terracotta-d); }
.ftapp-profile__confirm[b-g098zrkmwz] {
    background: rgba(194, 65, 12, 0.06);
    border: 1px solid rgba(194, 65, 12, 0.25);
    border-radius: var(--ftapp-radius-md);
    padding: 1rem 1.25rem;
    color: var(--ftapp-ink);
}
.ftapp-profile__confirm p[b-g098zrkmwz] { margin: 0 0 0.875rem; }

.ftapp-stars[b-g098zrkmwz] {
    color: #D97706;
    letter-spacing: 0.04em;
    font-size: 1rem;
}

/* =================================================================
   Slice 19γ — Profile as passport
   ================================================================= */

/* Passport hero — cream card, deckle-edge top, hand-stamped feel.
   We use --hero--passport modifier so the existing rule-set still
   applies for legacy callers; new layout layered on top. */
.ftapp-profile__hero--passport[b-g098zrkmwz] {
    position: relative;
    background: var(--ftapp-cream-deep);
    border: var(--ftapp-border);
    border-radius: var(--ftapp-radius-lg);
    padding: 2.25rem 1.75rem 1.5rem;
    overflow: hidden;
    gap: 0.625rem;
}
.ftapp-profile__deckle[b-g098zrkmwz] {
    position: absolute;
    top: -1px;
    left: 0;
    right: 0;
    height: 14px;
    color: var(--ftapp-cream);
    pointer-events: none;
}
.ftapp-profile__deckle svg[b-g098zrkmwz] {
    width: 100%;
    height: 100%;
    display: block;
}

.ftapp-profile__kicker[b-g098zrkmwz] {
    margin: 0;
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-micro);
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--ftapp-ink-mute);
}

.ftapp-profile__hero--passport .ftapp-profile__name[b-g098zrkmwz] {
    font-style: italic;
    font-size: clamp(2.25rem, 4vw, 3.25rem);
}

.ftapp-profile__envelope[b-g098zrkmwz] {
    display: inline-flex;
    color: var(--ftapp-ink-mute);
    width: 14px;
    height: 11px;
}

.ftapp-profile__stats[b-g098zrkmwz] {
    display: flex;
    gap: 2rem;
    margin: 0.875rem 0 0;
    flex-wrap: wrap;
}
.ftapp-profile__stat[b-g098zrkmwz] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.125rem;
}
.ftapp-profile__stat-num[b-g098zrkmwz] {
    display: inline-block;
    font-family: var(--ftapp-font-mono);
    font-size: 2rem;
    font-weight: 600;
    color: var(--ftapp-ink);
    line-height: 1;
}
/* Member-since stat is the hand-stamped one — butter-yellow ink + rotation. */
.ftapp-profile__stat--stamp[b-g098zrkmwz] {
    transform-origin: center;
}
.ftapp-profile__stat--stamp .ftapp-profile__stat-num[b-g098zrkmwz] {
    color: var(--ftapp-butter-d, #C9A84A);
    font-style: italic;
    font-family: var(--ftapp-font-display);
}
.ftapp-profile__stat-label[b-g098zrkmwz] {
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-micro);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ftapp-ink-mute);
}

/* Sticker grid — favorited trucks as rotated paper stickers. */
.ftapp-profile__sticker-grid[b-g098zrkmwz] {
    list-style: none;
    margin: 0;
    padding: 0.5rem 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 1.5rem 1rem;
}
.ftapp-profile__sticker[b-g098zrkmwz] {
    position: relative;
    background: linear-gradient(135deg,
        var(--ftapp-cream) 0%,
        var(--ftapp-cream-deep) 100%);
    border: 1px solid var(--ftapp-line);
    border-radius: var(--ftapp-radius-md);
    padding: 1rem 1rem 0.875rem;
    box-shadow: 0 2px 8px rgba(26, 26, 26, 0.08);
    transition: transform var(--ftapp-dur-base, 200ms) var(--ftapp-ease, ease),
                box-shadow var(--ftapp-dur-base, 200ms) var(--ftapp-ease, ease);
    overflow: hidden;
}
.ftapp-profile__sticker:hover[b-g098zrkmwz],
.ftapp-profile__sticker:focus-within[b-g098zrkmwz] {
    /* Lift a hair more — the inline base rotation still applies, so this
       compounds with rotate to give the "peeling off" feel. */
    transform: translateY(-3px) scale(1.02) rotate(0deg) !important;
    box-shadow: 0 6px 18px rgba(26, 26, 26, 0.14);
    z-index: 2;
}
.ftapp-profile__sticker-watermark[b-g098zrkmwz] {
    position: absolute;
    top: -8px;
    right: -6px;
    font-size: 3.25rem;
    opacity: 0.18;
    pointer-events: none;
    line-height: 1;
}
.ftapp-profile__sticker-link[b-g098zrkmwz] {
    color: var(--ftapp-ink);
    text-decoration: none;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.ftapp-profile__sticker-link:hover[b-g098zrkmwz] { color: var(--ftapp-terracotta); }
.ftapp-profile__sticker-name[b-g098zrkmwz] {
    font-family: var(--ftapp-font-display);
    font-weight: 500;
    font-size: 1.0625rem;
    letter-spacing: -0.01em;
}
.ftapp-profile__sticker-meta[b-g098zrkmwz] {
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-micro);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ftapp-ink-mute);
}
.ftapp-profile__sticker-remove[b-g098zrkmwz] {
    margin-top: 0.625rem;
    opacity: 0;
    font-size: var(--ftapp-fs-micro);
    transition: opacity var(--ftapp-dur-fast, 120ms) var(--ftapp-ease, ease);
}
.ftapp-profile__sticker:hover .ftapp-profile__sticker-remove[b-g098zrkmwz],
.ftapp-profile__sticker:focus-within .ftapp-profile__sticker-remove[b-g098zrkmwz] {
    opacity: 1;
}

/* Empty-passport state — illustrated dotted-border passport spread. */
.ftapp-profile__empty[b-g098zrkmwz] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.875rem;
    padding: 1.5rem 1rem;
    text-align: center;
}
.ftapp-profile__empty-passport[b-g098zrkmwz] {
    width: clamp(120px, 30%, 200px);
    height: auto;
    color: var(--ftapp-ink-mute);
    opacity: 0.7;
}
.ftapp-profile__empty-copy[b-g098zrkmwz] {
    margin: 0;
    color: var(--ftapp-ink-soft);
    font-size: var(--ftapp-fs-small);
}

/* Notebook — torn-page review cards with subtle horizontal rule. */
.ftapp-profile__notebook[b-g098zrkmwz] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.ftapp-profile__notebook-page[b-g098zrkmwz] {
    position: relative;
    padding: 1.25rem 1.25rem 1rem;
    background-color: var(--ftapp-cream);
    background-image: repeating-linear-gradient(
        to bottom,
        transparent 0,
        transparent 1.45rem,
        rgba(26, 26, 26, 0.06) 1.45rem,
        rgba(26, 26, 26, 0.06) 1.5rem
    );
    border-left: 2px solid rgba(26, 26, 26, 0.08);
    border-right: 1px solid var(--ftapp-line);
    border-bottom: 1px solid var(--ftapp-line);
    box-shadow: 0 2px 6px rgba(26, 26, 26, 0.06);
    margin-top: 8px;
}
.ftapp-profile__torn-edge[b-g098zrkmwz] {
    position: absolute;
    top: -8px;
    left: 0;
    right: 0;
    width: 100%;
    height: 8px;
    color: var(--ftapp-cream);
    filter: drop-shadow(0 -1px 0 rgba(26, 26, 26, 0.05));
    pointer-events: none;
}
.ftapp-profile__notebook-link[b-g098zrkmwz] {
    color: var(--ftapp-ink);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.625rem;
    margin-bottom: 0.375rem;
}
.ftapp-profile__notebook-link:hover[b-g098zrkmwz] { color: var(--ftapp-terracotta); }
.ftapp-profile__notebook-link strong[b-g098zrkmwz] {
    font-family: var(--ftapp-font-display);
    font-weight: 500;
    font-size: 1.0625rem;
}
.ftapp-profile__notebook-text[b-g098zrkmwz] {
    margin: 0 0 0.25rem;
    font-family: var(--ftapp-font-display);
    font-style: italic;
    font-size: 1rem;
    line-height: var(--ftapp-lh-relaxed);
    color: var(--ftapp-ink);
}
.ftapp-profile__notebook-date[b-g098zrkmwz] {
    margin: 0;
    font-family: var(--ftapp-font-mono);
    font-size: var(--ftapp-fs-micro);
    color: var(--ftapp-ink-mute);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.ftapp-profile__notebook-actions[b-g098zrkmwz] {
    display: flex;
    gap: 1rem;
    margin-top: 0.625rem;
}

/* Flag-pill locale picker — replaces the bare <select>. */
.ftapp-profile__pills[b-g098zrkmwz] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.ftapp-profile__pill[b-g098zrkmwz] {
    appearance: none;
    background: var(--ftapp-cream);
    border: 1px solid var(--ftapp-line);
    border-radius: var(--ftapp-radius-pill);
    padding: 0.5rem 0.875rem;
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-small);
    color: var(--ftapp-ink);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: background var(--ftapp-dur-fast, 120ms) var(--ftapp-ease, ease),
                border-color var(--ftapp-dur-fast, 120ms) var(--ftapp-ease, ease),
                color var(--ftapp-dur-fast, 120ms) var(--ftapp-ease, ease);
}
.ftapp-profile__pill:hover[b-g098zrkmwz] {
    border-color: var(--ftapp-ink-soft);
}
.ftapp-profile__pill--active[b-g098zrkmwz] {
    background: var(--ftapp-sage, #78A076);
    border-color: var(--ftapp-sage, #78A076);
    color: #FFF;
}
.ftapp-profile__pill--active:hover[b-g098zrkmwz] { border-color: var(--ftapp-sage, #78A076); }
.ftapp-profile__pill-flag[b-g098zrkmwz] { font-size: 1.125rem; line-height: 1; }
.ftapp-profile__pill-label[b-g098zrkmwz] { font-weight: 500; }
.ftapp-profile__pill:disabled[b-g098zrkmwz] { opacity: 0.5; cursor: not-allowed; }

/* Reduced-motion: flatten sticker rotations and hover lifts. The
   inline rotate(...) is overridden via !important so the seeded
   hand-applied feel disappears for users who asked for calm. */
@media (prefers-reduced-motion: reduce) {
    .ftapp-profile__sticker[b-g098zrkmwz] {
        transform: none !important;
        transition: none;
    }
    .ftapp-profile__sticker:hover[b-g098zrkmwz],
    .ftapp-profile__sticker:focus-within[b-g098zrkmwz] {
        transform: none !important;
        box-shadow: 0 2px 8px rgba(26, 26, 26, 0.08);
    }
    .ftapp-profile__stat--stamp[b-g098zrkmwz] {
        transform: none !important;
    }
}
/* /Pages/Signup.razor.rz.scp.css */
/* Slice 19r: shared auth-card pattern for /signup and /login. Lives on
   Signup.razor.css and Login.razor.css applies via the same class names
   exported globally below — Razor scoped CSS isolates by component, so
   we can't share via one .razor.css. The actual visual rules live in a
   page-agnostic class (.ftapp-c-auth) but Blazor adds the scope attr,
   so duplicate rules lightly. */

.ftapp-c-auth[b-sobin4yrcu] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - 56px);
    padding: 2rem 1.25rem 4rem;
}

.ftapp-c-auth__card[b-sobin4yrcu] {
    width: 100%;
    max-width: 460px;
    padding: 2.5rem 2rem 2rem;
    background: var(--ftapp-cream);
    border: var(--ftapp-border);
    border-radius: var(--ftapp-radius-lg);
    box-shadow: 0 1px 3px rgba(26, 26, 26, 0.04);
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.ftapp-c-auth__heading[b-sobin4yrcu] {
    font-family: var(--ftapp-font-display);
    font-weight: 500;
    font-size: clamp(2rem, 3.5vw, 2.5rem);
    line-height: var(--ftapp-lh-tight);
    letter-spacing: -0.015em;
    margin: 0;
    color: var(--ftapp-ink);
}
.ftapp-c-auth__heading em[b-sobin4yrcu] {
    font-style: italic;
    color: var(--ftapp-terracotta);
    font-weight: 500;
}

.ftapp-c-auth__sub[b-sobin4yrcu] {
    margin: 0;
    color: var(--ftapp-ink-soft);
    font-size: 1rem;
    line-height: 1.55;
}

.ftapp-c-auth__form[b-sobin4yrcu] {
    display: flex;
    flex-direction: column;
    gap: 1.125rem;
}

.ftapp-c-auth__field[b-sobin4yrcu] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.ftapp-c-auth__field-label[b-sobin4yrcu] {
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-micro);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ftapp-ink-mute);
}

.ftapp-c-auth__input[b-sobin4yrcu] {
    appearance: none;
    padding: 0.6875rem 0.875rem;
    background: var(--ftapp-cream-deep);
    color: var(--ftapp-ink);
    font-family: var(--ftapp-font-body);
    font-size: var(--ftapp-fs-body);
    border: 1px solid var(--ftapp-line);
    border-radius: var(--ftapp-radius-sm);
}
.ftapp-c-auth__input:focus[b-sobin4yrcu] {
    outline: none;
    background: var(--ftapp-cream);
    border-color: var(--ftapp-ink);
    box-shadow: 0 0 0 3px rgba(26, 26, 26, 0.08);
}

.ftapp-c-auth__submit[b-sobin4yrcu] {
    margin-top: 0.5rem;
    justify-content: center;
}

.ftapp-c-auth__error[b-sobin4yrcu] {
    margin: 0;
    padding: 0.75rem 1rem;
    background: rgba(194, 65, 12, 0.08);
    border: 1px solid rgba(194, 65, 12, 0.25);
    border-radius: var(--ftapp-radius-md);
    color: var(--ftapp-terracotta-d);
    font-size: var(--ftapp-fs-small);
}

.ftapp-c-auth__alt[b-sobin4yrcu] {
    margin: 0;
    font-size: var(--ftapp-fs-small);
    color: var(--ftapp-ink-soft);
}
.ftapp-c-auth__alt--quiet[b-sobin4yrcu] { color: var(--ftapp-ink-mute); }

.ftapp-c-auth__link[b-sobin4yrcu] {
    color: var(--ftapp-terracotta);
    text-decoration: underline;
    text-decoration-color: var(--ftapp-line);
    text-underline-offset: 3px;
}
.ftapp-c-auth__link:hover[b-sobin4yrcu] { color: var(--ftapp-terracotta-d); text-decoration-color: var(--ftapp-terracotta); }
/* /Pages/TownPage.razor.rz.scp.css */
/* Slice 20γ — Truck Town visual amplitude pass.
   Polaroid frame around the map, hand-painted tile filter, headline
   ornaments, ambient corner illustrations on the page edges. */

.ftapp-town[b-kkqa1qgqsh] {
    max-width: 1200px;
    margin: 0 auto;
    /* Slice 20ε: extra top padding so the masthead clears the
       persistent .ftapp-shell__header nav at the top of the viewport.
       Slice 20ν: layered festival background — a gradient that hints
       sunset behind a halftone grid, so the page reads warm and
       active even before any content paints. */
    padding: 4rem 1.25rem 4rem;
    background-image:
        radial-gradient(rgba(29, 41, 57, 0.10) 1px, transparent 1px),
        radial-gradient(circle at 80% 0%, rgba(250, 204, 21, 0.18), transparent 55%),
        radial-gradient(circle at 0% 100%, rgba(239, 68, 68, 0.14), transparent 50%),
        radial-gradient(circle at 100% 100%, rgba(14, 165, 233, 0.12), transparent 55%);
    background-size: 18px 18px, auto, auto, auto;
    background-position: 0 0, 0 0, 0 0, 0 0;
}

.ftapp-town__header[b-kkqa1qgqsh] {
    text-align: center;
    margin: 0 auto 1.25rem;
    max-width: 48rem;
}

.ftapp-town__kicker[b-kkqa1qgqsh] {
    margin: 0;
    font-family: var(--ftapp-font-body, Inter, sans-serif);
    font-size: var(--ftapp-fs-micro);
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--ftapp-ink-mute);
}

/* Slice 20δ — magazine masthead. */
/* Slice 20ν: papel-picado bunting strip above the masthead. */
.ftapp-town__bunting[b-kkqa1qgqsh] {
    max-width: 64rem;
    margin: 0 auto 0.5rem;
    padding: 0 1rem;
}
.ftapp-town__bunting svg[b-kkqa1qgqsh] {
    width: 100%;
    height: 36px;
    display: block;
}

.ftapp-town__masthead[b-kkqa1qgqsh] {
    text-align: center;
    margin: 0 auto 1.5rem;
    max-width: 64rem;
    padding: 0 1rem;
}
.ftapp-town__rule[b-kkqa1qgqsh] {
    border: none;
    height: 0;
    margin: 0;
}
.ftapp-town__rule--top[b-kkqa1qgqsh] {
    border-top: 4px double var(--ftapp-ink, #1A1A1A);
    margin-bottom: 0.625rem;
}
.ftapp-town__rule--bottom[b-kkqa1qgqsh] {
    border-top: 4px double var(--ftapp-ink, #1A1A1A);
    margin-top: 0.625rem;
}
.ftapp-town__masthead-kicker[b-kkqa1qgqsh] {
    margin: 0 0 0.25rem;
    font-family: var(--ftapp-font-body, Inter, sans-serif);
    font-size: var(--ftapp-fs-micro);
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: var(--ftapp-ink-mute);
}
.ftapp-town__masthead-title[b-kkqa1qgqsh] {
    margin: 0;
    font-family: var(--ftapp-font-display, Fraunces, serif);
    font-weight: 700;
    font-size: clamp(3.25rem, 12vw, 8rem);
    line-height: 0.9;
    letter-spacing: -0.03em;
    color: var(--ftapp-ink, #1A1A1A);
    white-space: nowrap;
    text-shadow: 1px 1px 0 rgba(26, 26, 26, 0.06);
}
.ftapp-town__masthead-title em[b-kkqa1qgqsh] {
    font-style: italic;
    color: var(--ftapp-terracotta, #C2410C);
    font-weight: 700;
}
.ftapp-town__masthead-meta[b-kkqa1qgqsh] {
    margin: 0.5rem 0 0;
    font-family: var(--ftapp-font-body, Inter, sans-serif);
    font-size: var(--ftapp-fs-small);
    color: var(--ftapp-ink-soft, #444);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.ftapp-town__masthead-bullet[b-kkqa1qgqsh] { color: var(--ftapp-ink-mute); }
.ftapp-town__masthead-tagline[b-kkqa1qgqsh] {
    font-family: var(--ftapp-font-display, Fraunces, serif);
    font-style: italic;
    color: var(--ftapp-ink, #1A1A1A);
}

.ftapp-town__title-row[b-kkqa1qgqsh] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    flex-wrap: nowrap;
}

/* Legacy .ftapp-town__title kept for backward-compat with any view
   that still renders the simple headline. New masthead route uses
   .ftapp-town__masthead-title above. */
.ftapp-town__title[b-kkqa1qgqsh] {
    margin: 0.25rem 0 0.5rem;
    font-family: var(--ftapp-font-display, Fraunces, serif);
    font-weight: 500;
    font-size: clamp(2.75rem, 8vw, 5.5rem);
    line-height: 0.95;
    letter-spacing: -0.025em;
    color: var(--ftapp-ink);
    white-space: nowrap;
}
.ftapp-town__title em[b-kkqa1qgqsh] {
    font-style: italic;
    color: var(--ftapp-terracotta, #C2410C);
    font-weight: 500;
}

.ftapp-town__ornament[b-kkqa1qgqsh] {
    width: clamp(48px, 6vw, 80px);
    height: auto;
    color: var(--ftapp-butter-d, #C9A84A);
    flex-shrink: 0;
}
.ftapp-town__ornament--left[b-kkqa1qgqsh]  { transform: rotate(-4deg); }
.ftapp-town__ornament--right[b-kkqa1qgqsh] { transform: rotate(4deg); }

.ftapp-town__sub[b-kkqa1qgqsh] {
    margin: 0;
    font-family: var(--ftapp-font-body, Inter, sans-serif);
    font-size: 1.0625rem;
    color: var(--ftapp-ink-soft);
    line-height: var(--ftapp-lh-relaxed);
}

/* Chrome strip — lampposts + string lights + banner above the polaroid. */
.ftapp-town__chrome[b-kkqa1qgqsh] {
    position: relative;
    height: 110px;
    margin: 0 auto -10px;
    max-width: 1080px;
    z-index: 2;
}
.ftapp-town__chrome-svg[b-kkqa1qgqsh] {
    width: 100%;
    height: 100%;
    display: block;
}

.ftapp-town__string-light[b-kkqa1qgqsh] {
    animation: ftapp-town-blink-b-kkqa1qgqsh 2.4s ease-in-out infinite;
    transform-origin: center;
}
.ftapp-town__string-light--b[b-kkqa1qgqsh] { animation-delay: 0.4s; }
.ftapp-town__string-light--c[b-kkqa1qgqsh] { animation-delay: 0.8s; }
.ftapp-town__string-light--d[b-kkqa1qgqsh] { animation-delay: 1.2s; }
.ftapp-town__string-light--e[b-kkqa1qgqsh] { animation-delay: 1.6s; }
@keyframes ftapp-town-blink-b-kkqa1qgqsh {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.4; }
}

.ftapp-town__banner[b-kkqa1qgqsh] {
    transform-origin: 300px 18px;
    animation: ftapp-town-banner-sway-b-kkqa1qgqsh 4.5s ease-in-out infinite;
}
@keyframes ftapp-town-banner-sway-b-kkqa1qgqsh {
    0%, 100% { transform: rotate(-1.4deg); }
    50%      { transform: rotate(1.4deg); }
}

/* =====================================================================
   POLAROID FRAME — wraps the live Leaflet map.
   Cream paper border, torn-edge SVG top + bottom, four terracotta
   corner brackets, slight rotation, deep shadow. The page background
   becomes a darker paper so the polaroid actually reads as paper-on-desk.
   ===================================================================== */

.ftapp-town__polaroid[b-kkqa1qgqsh] {
    position: relative;
    margin: 0 auto;
    max-width: 1080px;
    padding: 26px 22px 30px;
    background: var(--ftapp-cream, #FFF8EB);
    border: 1px solid rgba(26, 26, 26, 0.18);
    box-shadow:
        0 12px 24px rgba(26, 26, 26, 0.18),
        0 2px 4px rgba(26, 26, 26, 0.08);
    /* Slice 20ε: rotation slimmed from -0.4° to -0.2° so the polaroid
       still feels hand-placed without cutting visible content edges. */
    transform: rotate(-0.2deg);
    transition: transform 400ms ease;
}
.ftapp-town__polaroid:hover[b-kkqa1qgqsh] {
    transform: rotate(0deg);
}

.ftapp-town__polaroid-edge[b-kkqa1qgqsh] {
    position: absolute;
    left: 0;
    right: 0;
    width: 100%;
    height: 8px;
    pointer-events: none;
    z-index: 3;
}
.ftapp-town__polaroid-edge--top[b-kkqa1qgqsh]    { top: -1px; }
.ftapp-town__polaroid-edge--bottom[b-kkqa1qgqsh] { bottom: -1px; transform: scaleY(-1); }

.ftapp-town__polaroid-corner[b-kkqa1qgqsh] {
    position: absolute;
    width: 32px;
    height: 32px;
    z-index: 4;
    pointer-events: none;
}
.ftapp-town__polaroid-corner svg[b-kkqa1qgqsh] { width: 100%; height: 100%; display: block; }
.ftapp-town__polaroid-corner--tl[b-kkqa1qgqsh] { top: 6px;    left: 6px; }
.ftapp-town__polaroid-corner--tr[b-kkqa1qgqsh] { top: 6px;    right: 6px; }
.ftapp-town__polaroid-corner--bl[b-kkqa1qgqsh] { bottom: 10px; left: 6px; }
.ftapp-town__polaroid-corner--br[b-kkqa1qgqsh] { bottom: 10px; right: 6px; }

.ftapp-town__map[b-kkqa1qgqsh] {
    width: 100%;
    height: clamp(440px, 70vh, 760px);
    border-radius: 4px;
    overflow: hidden;
    background: var(--ftapp-cream-deep, #F2E4C8);
    position: relative;
    z-index: 1;
}

/* Slice 20θ — controls row inside the polaroid above the map. */
.ftapp-town__controls[b-kkqa1qgqsh] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.625rem 0.875rem;
    margin: 0 0 0.875rem;
    padding: 0.5rem 0;
    border-bottom: 1px dashed var(--ftapp-line, rgba(26, 26, 26, 0.18));
}

.ftapp-town__radius[b-kkqa1qgqsh] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}
.ftapp-town__radius-label[b-kkqa1qgqsh] {
    font-family: var(--ftapp-font-body, Inter, sans-serif);
    font-size: var(--ftapp-fs-micro);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--ftapp-ink-mute);
    margin-right: 0.25rem;
}

.ftapp-town__pill[b-kkqa1qgqsh] {
    appearance: none;
    background: var(--ftapp-cream, #FFF8EB);
    border: 1px solid var(--ftapp-line, rgba(26, 26, 26, 0.18));
    border-radius: 999px;
    padding: 0.3rem 0.7rem;
    font-family: var(--ftapp-font-body, Inter, sans-serif);
    font-size: var(--ftapp-fs-small, 0.875rem);
    color: var(--ftapp-ink, #1A1A1A);
    cursor: pointer;
    line-height: 1.2;
    transition: background 200ms ease, border-color 200ms ease,
                color 200ms ease, transform 200ms ease;
}
.ftapp-town__pill:hover[b-kkqa1qgqsh] { border-color: var(--ftapp-ink-soft, #444); }
.ftapp-town__pill--active[b-kkqa1qgqsh] {
    background: var(--ftapp-ink, #1A1A1A);
    border-color: var(--ftapp-ink, #1A1A1A);
    color: var(--ftapp-cream, #FFF8EB);
}
.ftapp-town__pill--fav.ftapp-town__pill--active[b-kkqa1qgqsh] {
    background: var(--ftapp-terracotta, #C2410C);
    border-color: var(--ftapp-terracotta, #C2410C);
}
.ftapp-town__pill--ghost[b-kkqa1qgqsh] {
    background: transparent;
    border-style: dashed;
    color: var(--ftapp-ink-soft, #444);
}
.ftapp-town__pill--ghost:hover[b-kkqa1qgqsh] { color: var(--ftapp-ink, #1A1A1A); }
/* Slice 20κ: replace the overloaded margin-left:auto on --ghost with
   a dedicated --push-right modifier so the layout stays predictable
   when other right-side pills join (e.g., flip-the-paper). */
.ftapp-town__pill--push-right[b-kkqa1qgqsh] { margin-left: auto; }
.ftapp-town__pill--ink[b-kkqa1qgqsh] {
    background: var(--ftapp-ink, #1A1A1A);
    border-color: var(--ftapp-ink, #1A1A1A);
    color: var(--ftapp-cream, #FFF8EB);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: var(--ftapp-fs-micro);
}
.ftapp-town__pill--ink:hover[b-kkqa1qgqsh] {
    background: var(--ftapp-terracotta, #C2410C);
    border-color: var(--ftapp-terracotta, #C2410C);
}
.ftapp-town__pill:disabled[b-kkqa1qgqsh] { opacity: 0.5; cursor: not-allowed; }

/* Slice 20κ: the flip-the-paper button moved into the controls row
   as .ftapp-town__pill--ink, removing the old absolute-positioned
   .ftapp-town__flip that overlapped the "Use my location" pill. */

/* Hand-painted tile filter is declared in app.css (global) because
   Leaflet creates .leaflet-tile-pane outside Blazor's render tree
   so Razor-scoped attributes never reach it. */

.ftapp-town__caption[b-kkqa1qgqsh] {
    margin: 1.5rem auto 0;
    text-align: center;
    font-family: var(--ftapp-font-display, Fraunces, serif);
    font-style: italic;
    font-size: 1rem;
    color: var(--ftapp-ink-mute);
    max-width: 36rem;
}

.ftapp-town__error[b-kkqa1qgqsh] {
    margin: 1rem auto 0;
    padding: 0.75rem 1rem;
    max-width: 32rem;
    text-align: center;
    background: rgba(194, 65, 12, 0.08);
    border: 1px solid rgba(194, 65, 12, 0.25);
    border-radius: 8px;
    color: var(--ftapp-terracotta-d, #9A3412);
    font-size: var(--ftapp-fs-small);
}

/* =====================================================================
   AMBIENT CORNER ILLUSTRATIONS — fixed-position scenery around the
   viewport. Pointer-events: none so they never block interaction.
   ===================================================================== */

.ftapp-town__corner-illustration[b-kkqa1qgqsh] {
    position: fixed;
    width: clamp(60px, 7vw, 100px);
    height: auto;
    pointer-events: none;
    z-index: 30;
    filter: drop-shadow(0 2px 4px rgba(26, 26, 26, 0.15));
    opacity: 0.92;
}
.ftapp-town__corner-illustration svg[b-kkqa1qgqsh] { width: 100%; height: auto; display: block; }

.ftapp-town__corner-illustration--tl[b-kkqa1qgqsh] {
    top: 92px;
    left: 16px;
    transform: rotate(-12deg);
    animation: ftapp-corner-bob-a-b-kkqa1qgqsh 4s ease-in-out infinite;
}
.ftapp-town__corner-illustration--tr[b-kkqa1qgqsh] {
    top: 92px;
    right: 16px;
    transform: rotate(8deg);
    animation: ftapp-corner-bob-b-b-kkqa1qgqsh 5s ease-in-out infinite;
}
.ftapp-town__corner-illustration--bl[b-kkqa1qgqsh] {
    bottom: 24px;
    left: 16px;
    transform: rotate(-6deg);
    animation: ftapp-corner-roll-b-kkqa1qgqsh 4.5s ease-in-out infinite;
}
.ftapp-town__corner-illustration--br[b-kkqa1qgqsh] {
    bottom: 24px;
    right: 16px;
    transform: rotate(6deg);
    animation: ftapp-corner-bob-a-b-kkqa1qgqsh 4.5s ease-in-out 1s infinite;
}

@keyframes ftapp-corner-bob-a-b-kkqa1qgqsh {
    0%, 100% { transform: rotate(-12deg) translateY(0); }
    50%      { transform: rotate(-8deg)  translateY(-4px); }
}
@keyframes ftapp-corner-bob-b-b-kkqa1qgqsh {
    0%, 100% { transform: rotate(8deg) translateY(0); }
    50%      { transform: rotate(4deg) translateY(-3px); }
}
@keyframes ftapp-corner-roll-b-kkqa1qgqsh {
    0%, 100% { transform: rotate(-6deg) translateX(0); }
    50%      { transform: rotate(-2deg) translateX(6px); }
}

/* Paper-airplane cursor layer — desktop only. */
.ftapp-paper-airplane[b-kkqa1qgqsh] {
    position: fixed;
    top: 16px;
    right: 16px;
    width: 28px;
    height: 28px;
    pointer-events: none;
    z-index: 60;
    opacity: 0.8;
    transform: rotate(-12deg);
    filter: drop-shadow(0 1px 2px rgba(26, 26, 26, 0.18));
    animation: ftapp-airplane-bob-b-kkqa1qgqsh 3s ease-in-out infinite;
}
.ftapp-paper-airplane svg[b-kkqa1qgqsh] { width: 100%; height: 100%; display: block; }

@keyframes ftapp-airplane-bob-b-kkqa1qgqsh {
    0%, 100% { transform: rotate(-12deg) translateY(0); }
    50%      { transform: rotate(-8deg)  translateY(-4px); }
}

/* =====================================================================
   RESPONSIVE — mobile compresses chrome, hides corners, simplifies.
   ===================================================================== */

@media (pointer: coarse) {
    .ftapp-paper-airplane[b-kkqa1qgqsh] { display: none; }
}

@media (max-width: 900px) {
    .ftapp-town__corner-illustration--tr[b-kkqa1qgqsh],
    .ftapp-town__corner-illustration--bl[b-kkqa1qgqsh],
    .ftapp-town__corner-illustration--br[b-kkqa1qgqsh] { display: none; }
    .ftapp-town__corner-illustration--tl[b-kkqa1qgqsh] { width: 56px; opacity: 0.75; }
}

@media (max-width: 640px) {
    .ftapp-town__chrome[b-kkqa1qgqsh] { height: 80px; }
    .ftapp-town__map[b-kkqa1qgqsh] { height: clamp(380px, 65vh, 600px); }
    .ftapp-town__polaroid[b-kkqa1qgqsh] { padding: 16px 12px 20px; transform: rotate(0deg); }
    .ftapp-town__title-row[b-kkqa1qgqsh] { gap: 0.5rem; }
    .ftapp-town__ornament[b-kkqa1qgqsh] { width: 40px; }
    .ftapp-town__corner-illustration--tl[b-kkqa1qgqsh] { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .ftapp-paper-airplane[b-kkqa1qgqsh],
    .ftapp-town__string-light[b-kkqa1qgqsh],
    .ftapp-town__banner[b-kkqa1qgqsh],
    .ftapp-town__corner-illustration[b-kkqa1qgqsh] {
        animation: none;
    }
    .ftapp-town__polaroid:hover[b-kkqa1qgqsh] { transform: rotate(-0.4deg); }
}
/* /Pages/VerifyEmail.razor.rz.scp.css */
/* Slice 19δ — verify-email celebration on success, calm illustrated
   layout on failure. The shared ConfettiBurst component handles its
   own keyframes and prefers-reduced-motion override. */

.ftapp-verify[b-2zus2tor00] {
    min-height: 70vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1.25rem;
    text-align: center;
}

.ftapp-verify__pending[b-2zus2tor00] {
    color: var(--ftapp-ink-mute);
    font-style: italic;
}

/* Success — celebration. */
.ftapp-verify__celebrate[b-2zus2tor00] {
    position: relative;
    max-width: 36rem;
    padding: 2rem 1rem;
}

.ftapp-verify__headline[b-2zus2tor00] {
    margin: 0 0 0.875rem;
    font-family: var(--ftapp-font-display);
    font-weight: 500;
    font-size: clamp(3rem, 8vw, 5.5rem);
    line-height: 0.95;
    letter-spacing: -0.02em;
    color: var(--ftapp-ink);
    position: relative;
    display: inline-block;
}
.ftapp-verify__headline--quiet[b-2zus2tor00] {
    font-size: clamp(2rem, 5vw, 3rem);
    color: var(--ftapp-ink);
    font-style: italic;
}
.ftapp-verify__period[b-2zus2tor00] {
    color: var(--ftapp-terracotta);
    font-style: italic;
}
.ftapp-verify__squiggle[b-2zus2tor00] {
    display: block;
    width: clamp(160px, 60%, 280px);
    height: 12px;
    margin: 0.25rem auto 0;
    color: var(--ftapp-butter, #F4D58A);
}

.ftapp-verify__sub[b-2zus2tor00] {
    margin: 0;
    font-family: var(--ftapp-font-body);
    font-size: 1.0625rem;
    color: var(--ftapp-ink-soft);
    line-height: var(--ftapp-lh-relaxed);
}

/* Failure — calm, illustrated. */
.ftapp-verify__failure[b-2zus2tor00] {
    max-width: 32rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}
.ftapp-verify__airplane[b-2zus2tor00] {
    width: clamp(80px, 30%, 140px);
    height: auto;
    color: var(--ftapp-ink-mute);
    margin-bottom: 0.5rem;
}
.ftapp-verify__error[b-2zus2tor00] {
    margin: 0;
    color: var(--ftapp-ink-soft);
    font-size: var(--ftapp-fs-small);
    line-height: var(--ftapp-lh-relaxed);
}
.ftapp-verify__alt[b-2zus2tor00] {
    margin: 0;
    color: var(--ftapp-ink-mute);
    font-size: var(--ftapp-fs-small);
}

@media (prefers-reduced-motion: reduce) {
    /* The squiggle is decorative — keep visible, just no animation. */
    .ftapp-verify__squiggle[b-2zus2tor00] { animation: none; }
}
