/* /Components/DestinationCard.razor.rz.scp.css */
.card[b-2hgmz8d2ch] {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: stretch;
    gap: clamp(1.5rem, 4vw, 3.5rem);
    width: 100%;
    max-width: 880px;
    margin: 0 auto;
    padding: clamp(1.5rem, 4vw, 2.75rem);
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: 18px;
    box-shadow: var(--card-shadow);
}

/* Red brush-stroke divider (vertical on desktop). The single vertical brush
   asset (red fill baked in) is stretched to fill, giving a solid stroke with
   ragged edges. background-size:100% 100% stretches the size-less SVG reliably. */
.divider[b-2hgmz8d2ch] {
    align-self: stretch;
    width: 22px;
    min-height: 2.5rem;
    background: url('/assets/brand/divider-brush.svg') center / 100% 100% no-repeat;
}

@media (max-width: 720px) {
    .card[b-2hgmz8d2ch] {
        grid-template-columns: 1fr;
        gap: clamp(1.25rem, 6vw, 2rem);
    }

    /* Horizontal divider between stacked items on mobile. */
    .divider[b-2hgmz8d2ch] {
        justify-self: stretch;
        width: 100%;
        min-height: 0;
        height: 18px;
    }
}
/* /Components/DestinationItem.razor.rz.scp.css */
.item[b-u19li6lwgg] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.6rem 1.1rem;
    align-items: start;
}

.icon[b-u19li6lwgg] {
    width: 2.5rem;
    height: 2.5rem;
    background-color: var(--red);
    -webkit-mask: var(--icon) center / contain no-repeat;
    mask: var(--icon) center / contain no-repeat;
}

.body[b-u19li6lwgg] {
    min-width: 0;
}

.title[b-u19li6lwgg] {
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--black);
}

.rule[b-u19li6lwgg] {
    display: block;
    width: 2.5rem;
    height: 3px;
    margin: 0.5rem 0 0.85rem;
    background: var(--red);
    border-radius: 1px;
}

.lines[b-u19li6lwgg] {
    list-style: none;
    margin: 0 0 1.1rem;
    padding: 0;
    color: var(--muted);
    line-height: 1.7;
}

.go[b-u19li6lwgg] {
    font-weight: 500;
    color: var(--red);
    word-break: break-word;
    transition: opacity 0.15s ease;
}

.go:hover[b-u19li6lwgg],
.go:focus-visible[b-u19li6lwgg] {
    opacity: 0.7;
    text-decoration: underline;
    text-underline-offset: 3px;
}
/* /Components/Hero.razor.rz.scp.css */
.hero[b-dk9zfawyr2] {
    /* NOT positioned on purpose: the AL mark is an absolute child and must
       resolve against .stage (the right edge), not against .hero. The ghost
       word is pushed behind everything with z-index instead. */
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.25rem;
}

.logo[b-dk9zfawyr2] {
    width: min(26rem, 70vw);
    height: auto;
    margin-bottom: 0.5rem;
}

/* ---- Entrance: brush paints itself in, text rises after.
   Keyframes (brush-in / rise) live in global app.css so SocialLinks can reuse
   them — component-scoped @keyframes aren't visible across components. ---- */
.logo[b-dk9zfawyr2] { animation: brush-in 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) both; }
.mark[b-dk9zfawyr2] { animation: brush-in 0.9s 0.18s cubic-bezier(0.22, 0.61, 0.36, 1) both; }
.name[b-dk9zfawyr2] { animation: rise 0.55s 0.30s ease-out both; }
.rule[b-dk9zfawyr2] { animation: rise 0.55s 0.40s ease-out both; }
.tagline[b-dk9zfawyr2] { animation: rise 0.55s 0.48s ease-out both; }

.name[b-dk9zfawyr2] {
    font-size: clamp(1.5rem, 3.5vw, 2.25rem);
    font-weight: 500;
    letter-spacing: -0.01em;
    color: var(--black);
}

.rule[b-dk9zfawyr2] {
    display: block;
    width: 3rem;
    height: 4px;
    background: var(--red);
    border-radius: 2px;
}

.tagline[b-dk9zfawyr2] {
    font-size: clamp(1rem, 1.6vw, 1.2rem);
    line-height: 1.7;
    color: var(--black);
}

.accent[b-dk9zfawyr2] {
    color: var(--red);
    font-weight: 700;
}

/* ---- Desktop: text stays left, AL mark floats large on the right ---- */
@media (min-width: 861px) {
    .hero[b-dk9zfawyr2] {
        max-width: 34rem;
    }

    .mark[b-dk9zfawyr2] {
        position: absolute;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        width: min(42vw, 560px);
        height: auto;
        pointer-events: none;
        user-select: none;
    }
}

/* ---- Mobile: AL mark sits in flow between wordmark and name ---- */
@media (max-width: 860px) {
    .mark[b-dk9zfawyr2] {
        align-self: center;
        width: min(72vw, 360px);
        height: auto;
        margin: 0.25rem 0 1rem;
        pointer-events: none;
        user-select: none;
    }
}
/* /Components/SocialLinks.razor.rz.scp.css */
.social[b-iwcn8ic20d] {
    animation: rise 0.55s 0.58s ease-out both;   /* entrance, after the text rises */
}

.social ul[b-iwcn8ic20d] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: clamp(0.9rem, 2.5vw, 1.6rem);
}

.social a[b-iwcn8ic20d] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.35rem;
    transition: transform 0.15s ease;
}

.ico[b-iwcn8ic20d] {
    display: block;
    width: 1.75rem;
    height: 1.75rem;
    background-color: var(--red);
    -webkit-mask: var(--icon) center / contain no-repeat;
    mask: var(--icon) center / contain no-repeat;
}

.social a:hover[b-iwcn8ic20d],
.social a:focus-visible[b-iwcn8ic20d] {
    transform: translateY(-2px) scale(1.06);
}

.social a:hover .ico[b-iwcn8ic20d],
.social a:focus-visible .ico[b-iwcn8ic20d] {
    background-color: var(--black);
}

@media (prefers-reduced-motion: reduce) {
    .social a:hover[b-iwcn8ic20d],
    .social a:focus-visible[b-iwcn8ic20d] {
        transform: none;
    }
}
/* /Components/ThemeToggle.razor.rz.scp.css */
.theme-toggle[b-joljk5lq4d] {
    position: fixed;
    top: clamp(0.9rem, 2.5vw, 1.5rem);
    right: clamp(0.9rem, 2.5vw, 1.5rem);
    z-index: 10000;             /* above the grain overlay */

    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;

    color: var(--muted);
    background: color-mix(in srgb, var(--bg) 70%, transparent);
    border: 1px solid var(--card-border);
    border-radius: 50%;
    cursor: pointer;
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    transition: color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.theme-toggle svg[b-joljk5lq4d] {
    width: 1.15rem;
    height: 1.15rem;
}

.theme-toggle:hover[b-joljk5lq4d],
.theme-toggle:focus-visible[b-joljk5lq4d] {
    color: var(--red);
    border-color: var(--red);
    transform: rotate(-15deg);
}

@media (prefers-reduced-motion: reduce) {
    .theme-toggle:hover[b-joljk5lq4d],
    .theme-toggle:focus-visible[b-joljk5lq4d] {
        transform: none;
    }
}
/* /Layout/MainLayout.razor.rz.scp.css */
main[b-iptpk7aiwv] {
    display: block;
    min-height: 100dvh;
}
/* /Pages/Home.razor.rz.scp.css */
.home[b-gcqapv6uaf] {
    position: relative;
    max-width: var(--maxw);
    min-height: 100dvh;
    margin: 0 auto;
    padding: clamp(1.5rem, 3vw, 2.75rem) var(--gutter) clamp(1rem, 3vw, 1.75rem);
    display: flex;
    flex-direction: column;
    gap: clamp(1rem, 2.5vw, 1.75rem);
    overflow-x: clip;            /* contain the ghost word's bleed */
}

/* Hero band sits naturally at the top... */
.stage[b-gcqapv6uaf] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: clamp(1rem, 3vw, 2rem);
}


/* giant faint background word */
.ghost[b-gcqapv6uaf] {
    position: absolute;
    left: -0.08em;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    z-index: -1;                  /* behind all content, above the page bg */
    font-weight: 700;
    font-size: clamp(8rem, 26vw, 22rem);
    line-height: 0.8;
    letter-spacing: -0.04em;
    color: var(--ghost);
    white-space: nowrap;
    pointer-events: none;
    user-select: none;
}

/* tactile-brutalist section labels */
.seclabel[b-gcqapv6uaf] {
    position: relative;
    z-index: 1;
    margin: 0;
    font-size: 0.7rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--muted);
}

.seclabel[b-gcqapv6uaf]::before {
    content: "";
    display: inline-block;
    width: 1.4rem;
    height: 2px;
    margin-right: 0.6rem;
    vertical-align: middle;
    background: var(--red);
}

.dest[b-gcqapv6uaf] {
    position: relative;
}

.dest .seclabel[b-gcqapv6uaf] {
    margin-bottom: 1rem;
    padding-left: 0.25rem;
}

/* colophon / metadata footer — pinned to the bottom; leftover space sits
   below the card rather than between the hero and the card */
.colophon[b-gcqapv6uaf] {
    margin-top: auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--muted);
}

.colophon .sep[b-gcqapv6uaf] {
    color: var(--card-border);
}

.colophon .status[b-gcqapv6uaf] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}

.colophon .dot[b-gcqapv6uaf] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--red);
    animation: pulse-b-gcqapv6uaf 2.4s ease-out infinite;
}

@keyframes pulse-b-gcqapv6uaf {
    0% { box-shadow: 0 0 0 0 rgba(217, 4, 4, 0.5); }
    70%, 100% { box-shadow: 0 0 0 6px rgba(217, 4, 4, 0); }
}

@media (max-width: 860px) {
    .ghost[b-gcqapv6uaf] {
        top: 6%;
        transform: none;
        font-size: clamp(5.5rem, 40vw, 12rem);
    }
}
/* /Pages/NotFound.razor.rz.scp.css */
.notfound[b-h6jl9fcr4i] {
    min-height: 100dvh;
    display: grid;
    place-content: center;
    gap: 0.5rem;
    padding: var(--gutter);
    text-align: center;
}

.code[b-h6jl9fcr4i] {
    color: var(--red);
    font-weight: 700;
    font-size: clamp(3rem, 12vw, 7rem);
    line-height: 1;
}

.notfound h1[b-h6jl9fcr4i] {
    font-size: clamp(1.25rem, 4vw, 2rem);
    font-weight: 500;
}

.back[b-h6jl9fcr4i] {
    margin-top: 1rem;
    color: var(--muted);
}
