/*
 * AUFI & OWA release design
 * This is the single, authoritative presentation layer for the public site
 * and the application shell. Feature-specific styles stay in their source
 * files; this file owns identity, hierarchy, spacing and responsive polish.
 */

:root {
    --release-rock: #0d1512;
    --release-rock-raised: #121e19;
    --release-pine: #18261f;
    --release-slate: #203129;
    --release-slate-light: #2a3e33;
    --release-snow: #f3f5f1;
    --release-mist: #b7c0bb;
    --release-muted: #88938e;
    --release-lichen: #d9b85f;
    --release-lichen-bright: #edcf79;
    --release-danger: #e5685f;
    --release-success: #84a989;
    --release-rule: rgba(235, 241, 237, .12);
    --release-rule-strong: rgba(235, 241, 237, .22);
    --release-glass: var(--color-paper-3);
    --release-glass-strong: var(--color-paper-4);
    --release-display: var(--font-family-display);
    --release-body: var(--font-family-body);
    --release-shadow: var(--shadow-subtle);
    --release-shadow-deep: var(--shadow-overlay);
    --release-content: 1280px;
    --release-reading: 760px;
    --release-sidebar: 88px;
    --release-fast: 150ms cubic-bezier(.2, .75, .25, 1);
    --release-standard: 260ms cubic-bezier(.2, .75, .25, 1);

    --color-primary: var(--release-lichen);
    --color-primary-hover: var(--release-lichen-bright);
    --color-primary-ink: #171306;
    --color-background: var(--release-rock);
    --color-background-raised: var(--release-rock-raised);
    --color-surface: var(--release-pine);
    --color-surface-soft: var(--release-slate);
    --color-surface-active: var(--release-slate-light);
    --color-text: var(--release-snow);
    --color-text-muted: var(--release-mist);
    --color-border: var(--release-rule);
    --color-border-strong: var(--release-rule-strong);
    --color-success: var(--release-success);
    --color-warning: var(--release-lichen);
    --color-danger: var(--release-danger);
    --color-info: var(--release-lichen);
    --color-focus: var(--release-lichen-bright);
    --font-weight-regular: 450;
    --font-weight-medium: 620;
    --font-weight-bold: 760;
    --radius-sm: 3px;
    --radius-md: 5px;
    --radius-lg: 7px;
    --radius-card: 7px;
    --radius-input: 5px;
    --radius-button: 5px;
    --shadow-subtle: none;
    --shadow-overlay: var(--release-shadow-deep);
}

/* 3D map: one clear navigation path, compact controls and native sheet states. */
.map3d-back,
.map3d-options-toggle {
    position: absolute;
    z-index: 14;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--release-rule);
    border-radius: var(--radius-lg);
    background: rgba(13, 21, 18, .9);
    color: var(--release-snow);
    box-shadow: var(--release-shadow);
}

.map3d-back {
    top: max(1rem, env(safe-area-inset-top));
    left: max(1rem, env(safe-area-inset-left));
}

.map3d-options-toggle {
    top: max(1rem, env(safe-area-inset-top));
    right: max(1rem, env(safe-area-inset-right));
}

.map3d-back svg,
.map3d-options-toggle svg {
    width: 1.2rem;
    height: 1.2rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 900px) {
    .map3d-search {
        left: calc(max(1rem, env(safe-area-inset-left)) + 3.35rem);
        width: calc(100% - max(1rem, env(safe-area-inset-left)) - max(1rem, env(safe-area-inset-right)) - 6.7rem);
    }

    .map3d-search button {
        display: none;
    }

    .map3d-search {
        grid-template-columns: minmax(0, 1fr);
    }

    .map3d-controls {
        top: calc(max(1rem, env(safe-area-inset-top)) + 3.4rem);
        right: max(1rem, env(safe-area-inset-right));
    }

    .map3d-control-advanced {
        display: none;
    }

    .map3d-options-open .map3d-control-advanced {
        display: grid;
    }

    .map3d-control-primary {
        grid-template-columns: 44px;
    }

    .map3d-controls button,
    .map3d-compass-control {
        width: 44px !important;
        min-width: 44px;
        height: 44px;
        min-height: 44px;
    }

    .map3d-layer-menu {
        top: calc(max(1rem, env(safe-area-inset-top)) + 3.4rem);
        right: calc(max(1rem, env(safe-area-inset-right)) + 3.4rem);
        width: min(18rem, calc(100% - 5.4rem));
    }

    .map3d-sheet {
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        height: min(92dvh, 54rem);
        max-height: min(92dvh, 54rem);
        border-width: 1px 0 0;
        border-radius: 20px 20px 0 0;
        padding-bottom: env(safe-area-inset-bottom);
        background: rgba(18, 30, 25, .97);
        box-shadow: 0 -18px 48px rgba(0, 0, 0, .28);
        overscroll-behavior: contain;
    }

    .map3d-grip {
        min-height: 44px;
        border: 0;
        box-shadow: none;
    }

    .map3d-grip::before,
    .map3d-grip::after {
        content: none;
    }

    .map3d-grip span {
        width: 2.6rem;
        height: 4px;
        background: rgba(243, 245, 241, .42);
    }

    .map3d-sheet-content {
        min-height: 0;
        overflow-y: hidden;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    .map3d-sheet.sheet-expanded .map3d-sheet-content {
        overflow-y: auto;
        touch-action: pan-y;
    }

    .map3d-sheet.sheet-collapsed .map3d-stats,
    .map3d-sheet.sheet-collapsed .map3d-sheet-details,
    .map3d-sheet.sheet-collapsed .map3d-sheet-head p,
    .map3d-sheet.sheet-collapsed .map3d-sheet-head > button {
        display: none;
    }

    .map3d-sheet.sheet-collapsed .map3d-sheet-head {
        min-height: 2.5rem;
        padding-block: 0 .75rem;
    }

    .map3d-sheet.sheet-collapsed .map3d-sheet-head h2 {
        margin: 0;
        font-size: 1rem;
    }

    .map3d-sheet.sheet-collapsed .map3d-eyebrow {
        display: none;
    }
}

.notification-row {
    position: relative;
}

.dashboard-hero-tools {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.dashboard-hero-icon,
.dashboard-hero-profile {
    position: relative;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    min-width: 44px;
    padding: 0;
    overflow: visible;
    border: 1px solid rgba(243, 245, 241, .22);
    border-radius: 50%;
    background: rgba(13, 21, 18, .7);
    color: var(--release-snow);
}

.dashboard-hero-icon svg {
    width: 1.15rem;
    height: 1.15rem;
}

.dashboard-hero-profile .profile-avatar {
    width: 100%;
    height: 100%;
    border: 0;
}

.dashboard-unread-badge {
    position: absolute;
    top: -3px;
    right: -3px;
    display: grid;
    place-items: center;
    min-width: 1.15rem;
    height: 1.15rem;
    padding-inline: .25rem;
    border: 2px solid var(--release-rock);
    border-radius: 999px;
    background: var(--release-lichen);
    color: #171306;
    font-size: .62rem;
    font-weight: 800;
}

@media (max-width: 520px) {
    .dashboard-hero-tools .discovery-weather-button span,
    .dashboard-hero-tools .discovery-weather-button > svg:last-child {
        display: none;
    }

    .dashboard-hero-tools .discovery-weather-button {
        width: 44px;
        min-width: 44px;
        height: 44px;
        padding: 0;
        justify-content: center;
    }
}

.notification-open {
    min-height: 36px;
    padding: .45rem .75rem;
    border: 1px solid var(--release-rule);
    border-radius: var(--radius-button);
    background: transparent;
    color: var(--release-lichen-bright);
}

.invitation-detail-overlay {
    position: fixed;
    inset: 0;
    z-index: var(--z-modal);
    display: grid;
    place-items: end center;
    padding: max(1rem, env(safe-area-inset-top)) 1rem 0;
    background: rgba(4, 8, 6, .68);
    isolation: isolate;
    overscroll-behavior: contain;
}

.auth-legal-consents,
.legal-consent-dialog form {
    display: grid;
    gap: .75rem;
}

.photo-upload-preview {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(7rem, 1fr));
    gap: .75rem;
}

.photo-upload-preview figure {
    min-width: 0;
    margin: 0;
}

.photo-upload-preview img {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: var(--radius-card);
}

.photo-upload-preview figcaption {
    margin-top: .35rem;
    overflow: hidden;
    color: var(--release-muted);
    font-size: .72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.photo-upload-progress {
    display: grid;
    gap: .4rem;
}

.photo-upload-progress[hidden] {
    display: none;
}

.photo-upload-progress progress {
    width: 100%;
    height: .55rem;
    accent-color: var(--release-lichen);
}

.auth-legal-consents label,
.legal-consent-dialog form label {
    display: grid;
    grid-template-columns: 1.25rem minmax(0, 1fr);
    align-items: start;
    gap: .65rem;
    color: var(--release-mist);
    font-size: .84rem;
    line-height: 1.45;
}

.auth-legal-consents input,
.legal-consent-dialog input {
    width: 1.1rem;
    height: 1.1rem;
    margin-top: .12rem;
    accent-color: var(--release-lichen);
}

.legal-consent-dialog form label {
    min-height: 44px;
    align-items: center;
    cursor: pointer;
}

.app-page .legal-consent-dialog input[type="checkbox"] {
    box-sizing: border-box;
    width: 20px;
    height: 20px;
    min-width: 20px;
    min-height: 20px;
    margin: 0;
    padding: 0;
    align-self: center;
    cursor: pointer;
}

.auth-legal-consents a,
.legal-consent-dialog a {
    color: var(--release-lichen-bright);
}

dialog.legal-consent-overlay,
dialog.safety-onboarding-overlay {
    width: min(calc(100% - 2rem), 36rem);
    max-width: 36rem;
    max-height: calc(100dvh - 2rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    margin: auto;
    padding: 0;
    border: 0;
    border-radius: var(--radius-m);
    background: var(--panel-solid, #16231c);
    color: var(--text);
    overflow-y: auto;
    overscroll-behavior: contain;
}

dialog.legal-consent-overlay::backdrop,
dialog.safety-onboarding-overlay::backdrop {
    background: rgb(0 0 0 / 70%);
}

.legal-consent-overlay .legal-consent-dialog,
.safety-onboarding-overlay .safety-onboarding-dialog {
    width: 100%;
    box-sizing: border-box;
}

.legal-consent-dialog {
    width: min(100% - 2rem, 36rem);
    max-height: calc(100dvh - 2rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    overflow-y: auto;
}

.app-tour-overlay {
    position: fixed;
    z-index: var(--z-tour-overlay);
    inset: 0;
    background: transparent;
    pointer-events: none;
}

.onboarding-spotlight-backdrop,
.onboarding-target-shield,
.onboarding-focus-ring {
    position: fixed;
    pointer-events: none;
}

.onboarding-spotlight-backdrop {
    z-index: var(--z-tour-overlay);
    inset: 0;
}

.onboarding-spotlight-backdrop[hidden] {
    display: none;
}

.onboarding-spotlight-backdrop > span {
    position: fixed;
    display: block;
    background: rgba(4, 11, 8, .42);
    backdrop-filter: saturate(.92) brightness(.88);
    transition: left var(--motion-standard), top var(--motion-standard), width var(--motion-standard), height var(--motion-standard);
}

.onboarding-target-shield {
    z-index: var(--z-tour-target);
    display: block;
    background: transparent;
    pointer-events: auto;
}

.onboarding-target-shield[hidden] {
    display: none;
}

/* The guide measures the visible mobile dock so its actions never land below it. */
.app-tour-dialog {
    position: fixed;
    z-index: var(--z-tour-tooltip);
    left: 12px;
    bottom: max(calc(12px + env(safe-area-inset-bottom)), calc(var(--app-tour-dock, 0px) + 10px));
    width: min(22rem, calc(100vw - 24px));
    max-height: min(29rem, calc(100dvh - 24px - env(safe-area-inset-top) - max(env(safe-area-inset-bottom), var(--app-tour-dock, 0px))));
    margin: 0 auto;
    padding: 20px;
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-lg);
    background: var(--glass-bg-strong);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    pointer-events: auto;
    box-shadow: var(--glass-shadow), var(--release-shadow-deep);
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .app-tour-dialog {
        background: color-mix(in srgb, var(--release-rock-raised) 98%, var(--color-background));
    }
}

.onboarding-focus-ring {
    z-index: var(--z-tour-target);
    border: 2px solid var(--release-lichen-bright);
    background: transparent;
    box-shadow:
        0 0 0 4px color-mix(in srgb, var(--release-lichen-bright) 24%, transparent),
        0 12px 28px rgba(0, 0, 0, .24);
    transition: left 220ms ease, top 220ms ease, width 220ms ease, height 220ms ease, border-radius 220ms ease;
}

.onboarding-focus-ring[hidden] {
    display: none;
}

.onboarding-spotlight-target {
    scroll-margin-block: 96px;
}

.app-tour-dialog .onboarding-progress {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 6px;
    margin-bottom: 14px;
}

.app-tour-dialog .onboarding-progress span {
    height: 3px;
    background: var(--release-rule-strong);
}

.app-tour-dialog .onboarding-progress span.active {
    background: var(--release-lichen-bright);
}

.onboarding-location {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
    color: var(--release-muted);
    font-size: .72rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.onboarding-location strong {
    min-width: 0;
    color: var(--release-lichen-bright);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.onboarding-location em {
    color: var(--release-snow);
    font-style: normal;
    font-variant-numeric: tabular-nums;
}

.app-tour-dialog h2 {
    max-width: 18ch;
    margin: 0 0 8px;
    font-size: clamp(1.45rem, 7vw, 2rem);
    line-height: 1.08;
}

.app-tour-dialog > p:not(.onboarding-error) {
    max-width: 48ch;
    margin: 0;
    color: var(--release-muted);
    line-height: 1.55;
}

.app-tour-dialog .actions {
    display: grid;
    grid-template-columns: auto 1fr 1.25fr;
    gap: 8px;
    margin-top: 18px;
}

.app-tour-dialog .actions button {
    min-width: 0;
    min-height: 44px;
    padding-inline: 12px;
}

.onboarding-error {
    margin: 14px 0 0 !important;
    padding: 10px 12px;
    border-left: 3px solid var(--danger);
    background: color-mix(in srgb, var(--danger) 10%, transparent);
    color: var(--release-snow) !important;
    font-size: .82rem;
    line-height: 1.45;
}

.onboarding-error[hidden] {
    display: none;
}

@media (min-width: 760px) {
    .app-tour-dialog {
        width: min(26rem, calc(100vw - 48px));
    }
}

@media (max-width: 380px) {
    .app-tour-dialog {
        padding: 16px;
    }

    .app-tour-dialog .actions {
        grid-template-columns: auto 1fr;
    }

    .app-tour-dialog .actions .primary-btn {
        grid-column: 1 / -1;
        grid-row: 1;
    }
}

.invitation-detail-sheet {
    width: min(100%, 42rem);
    max-height: calc(100dvh - max(1rem, env(safe-area-inset-top)));
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid var(--release-rule-strong);
    border-bottom: 0;
    border-radius: 20px 20px 0 0;
    background: var(--release-rock-raised);
    color: var(--release-snow);
    box-shadow: var(--release-shadow-deep);
}

.invitation-detail-sheet > header,
.invitation-detail-sheet > footer {
    position: sticky;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: 1rem;
    background: rgba(18, 30, 25, .96);
}

.invitation-detail-sheet > header {
    top: 0;
    justify-content: space-between;
    border-bottom: 1px solid var(--release-rule);
}

.invitation-detail-sheet > header > div {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.invitation-detail-sheet > header span {
    display: grid;
}

.invitation-detail-sheet > header small {
    color: var(--release-muted);
}

.invitation-detail-sheet > header > button {
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--release-rule);
    border-radius: 50%;
    background: transparent;
    color: var(--release-snow);
    font-size: 1.5rem;
}

.invitation-detail-image {
    display: block;
    width: 100%;
    max-height: 17rem;
    object-fit: cover;
}

.invitation-detail-body {
    display: grid;
    gap: 1rem;
    padding: 1.25rem;
}

.invitation-detail-body h2 {
    margin: 0;
}

.invitation-detail-body blockquote {
    margin: 0;
    padding: .9rem 1rem;
    border-left: 3px solid var(--release-lichen);
    background: var(--release-pine);
    color: var(--release-snow);
}

.invitation-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    border: 1px solid var(--release-rule);
    border-radius: var(--radius-card);
    background: var(--release-rule);
}

.invitation-facts span {
    display: grid;
    gap: .25rem;
    min-width: 0;
    padding: .85rem;
    background: var(--release-pine);
}

.invitation-facts small {
    color: var(--release-muted);
}

.invitation-facts strong {
    overflow-wrap: anywhere;
}

.invitation-map {
    min-height: 13rem;
    overflow: hidden;
    border-radius: var(--radius-card);
}

.invitation-detail-sheet > footer {
    bottom: 0;
    flex-wrap: wrap;
    padding-bottom: calc(1rem + env(safe-area-inset-bottom));
    border-top: 1px solid var(--release-rule);
}

@media (min-width: 760px) {
    .invitation-detail-overlay {
        place-items: center;
        padding: 2rem;
    }

    .invitation-detail-sheet {
        max-height: min(54rem, calc(100dvh - 4rem));
        border-bottom: 1px solid var(--release-rule-strong);
        border-radius: 12px;
    }
}

body[data-theme="light"] {
    --release-rock: #f2f4f1;
    --release-rock-raised: #e9ece8;
    --release-pine: #ffffff;
    --release-slate: #e2e7e2;
    --release-slate-light: #d9dfd9;
    --release-snow: #18201d;
    --release-mist: #5f6b65;
    --release-muted: #737e78;
    --release-rule: rgba(18, 29, 24, .13);
    --release-rule-strong: rgba(18, 29, 24, .23);
    --release-glass: var(--color-paper-3);
    --release-glass-strong: var(--color-paper-4);
    --release-shadow: var(--shadow-subtle);
    --release-shadow-deep: var(--shadow-overlay);
}

html {
    background: var(--release-rock);
    scroll-behavior: smooth;
}

body,
button,
input,
textarea,
select {
    font-family: var(--release-body);
    letter-spacing: 0;
}

body {
    color: var(--release-snow);
    background: var(--release-rock);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
.auth-brand-copy h2,
.discovery-hero-copy h2 {
    font-family: var(--release-display);
    letter-spacing: -.015em;
}

strong,
.stat-card,
.tour-card-facts,
.discovery-stats,
.planner-metric-strip {
    font-variant-numeric: tabular-nums;
}

a,
button,
input,
textarea,
select,
summary {
    outline: none;
}

:where(a, button, input, textarea, select, summary):focus-visible {
    outline: 2px solid var(--release-lichen-bright);
    outline-offset: 3px;
}

::selection {
    color: #171306;
    background: var(--release-lichen-bright);
}

/* Shared controls */

:where(.primary-btn, .ghost-btn, .danger-btn, .au-button, .nav-login) {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 16px;
    border: 1px solid transparent;
    border-radius: var(--radius-button);
    font-size: .84rem;
    font-weight: 720;
    line-height: 1;
    text-decoration: none;
    transition:
        color var(--release-fast),
        border-color var(--release-fast),
        background-color var(--release-fast),
        transform var(--release-fast);
}

:where(.primary-btn, .au-button-primary, .nav-login) {
    color: var(--color-primary-ink);
    border-color: var(--release-lichen);
    background: var(--release-lichen);
    box-shadow: none;
}

:where(.primary-btn, .au-button-primary, .nav-login):hover:not(:disabled) {
    border-color: var(--release-lichen-bright);
    background: var(--release-lichen-bright);
    transform: translateY(-1px);
}

:where(.ghost-btn, .au-button-secondary) {
    color: var(--release-snow);
    border-color: var(--release-rule-strong);
    background: rgba(255, 255, 255, .025);
}

:where(.ghost-btn, .au-button-secondary):hover:not(:disabled) {
    color: var(--release-snow);
    border-color: rgba(217, 184, 95, .48);
    background: rgba(217, 184, 95, .08);
}

.danger-btn {
    color: #ffd5d1;
    border-color: rgba(229, 104, 95, .38);
    background: rgba(229, 104, 95, .08);
}

:where(.primary-btn, .ghost-btn, .danger-btn, .au-button):active:not(:disabled) {
    transform: translateY(0);
}

:where(.primary-btn, .ghost-btn, .danger-btn, .au-button):disabled {
    cursor: not-allowed;
    opacity: .42;
    filter: saturate(.5);
}

:where(input:not([type="checkbox"]):not([type="radio"]), textarea, select) {
    min-height: 44px;
    padding: 10px 12px;
    color: var(--release-snow);
    border: 1px solid var(--release-rule-strong);
    border-radius: var(--radius-input);
    background: rgba(255, 255, 255, .025);
    box-shadow: inset 0 1px rgba(255, 255, 255, .025);
    transition:
        border-color var(--release-fast),
        background-color var(--release-fast),
        box-shadow var(--release-fast);
}

:where(input:not([type="checkbox"]):not([type="radio"]), textarea, select):hover {
    border-color: rgba(235, 241, 237, .3);
}

:where(input:not([type="checkbox"]):not([type="radio"]), textarea, select):focus {
    border-color: var(--release-lichen);
    background: rgba(255, 255, 255, .04);
    box-shadow: 0 0 0 3px rgba(217, 184, 95, .12);
}

textarea {
    min-height: 116px;
    resize: vertical;
}

label {
    color: var(--release-mist);
    font-size: .78rem;
    font-weight: 650;
}

.pill,
.badge,
.hero-badge {
    border-radius: 3px;
    letter-spacing: 0;
}

/* Public shell */

.landing-page,
.legal-page {
    min-height: 100vh;
    overflow-x: clip;
    color: var(--release-snow);
    background:
        linear-gradient(180deg, var(--release-rock), #0b100f 58%, var(--release-rock));
}

.landing-page::before,
.legal-page::before {
    display: none;
}

.landing-page .site-header,
.legal-page .site-header {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 80;
    width: min(calc(100% - 48px), var(--release-content));
    min-height: 78px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin: 0 auto;
    padding: 0;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .18);
    border-radius: 0;
    color: #fff;
    background: transparent;
    box-shadow: none;
}

.landing-page .brand,
.legal-page .brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: inherit;
    text-decoration: none;
}

.landing-page .brand img,
.legal-page .brand img {
    width: 42px;
    height: 42px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 5px;
}

.landing-page .brand > span,
.legal-page .brand > span {
    display: grid;
    gap: 2px;
}

.landing-page .brand strong,
.legal-page .brand strong {
    font-size: .82rem;
    font-weight: 780;
}

.landing-page .brand small,
.legal-page .brand small {
    color: rgba(255, 255, 255, .62);
    font-size: .62rem;
    font-weight: 550;
}

.landing-page #site-nav,
.legal-page #site-nav {
    display: flex;
    align-items: center;
    gap: 30px;
}

.landing-page #site-nav a,
.legal-page #site-nav a {
    position: relative;
    color: rgba(255, 255, 255, .72);
    font-size: .74rem;
    font-weight: 650;
    text-decoration: none;
    transition: color var(--release-fast);
}

.landing-page #site-nav a:not(.nav-login)::after,
.legal-page #site-nav a:not(.nav-login)::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: -10px;
    left: 0;
    height: 1px;
    background: var(--release-lichen);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--release-standard);
}

.landing-page #site-nav a:hover,
.landing-page #site-nav a.is-active,
.legal-page #site-nav a:hover {
    color: #fff;
}

.landing-page #site-nav a:hover::after,
.landing-page #site-nav a.is-active::after,
.legal-page #site-nav a:hover::after {
    transform: scaleX(1);
}

.landing-page .nav-login,
.legal-page .nav-login {
    min-height: 38px;
    padding-inline: 15px;
    color: #171306;
}

.landing-page .menu-toggle,
.legal-page .menu-toggle {
    width: 44px;
    height: 44px;
    display: none;
    place-items: center;
    padding: 0;
    border: 0;
    color: #fff;
    background: transparent;
}

.landing-page .menu-toggle span,
.legal-page .menu-toggle span {
    position: absolute;
    width: 22px;
    height: 1px;
    background: currentColor;
    transition: transform var(--release-standard);
}

.landing-page .menu-toggle span:first-child,
.legal-page .menu-toggle span:first-child {
    transform: translateY(-4px);
}

.landing-page .menu-toggle span:last-child,
.legal-page .menu-toggle span:last-child {
    transform: translateY(4px);
}

.landing-page .nav-open .menu-toggle span:first-child,
.legal-page .nav-open .menu-toggle span:first-child {
    transform: rotate(45deg);
}

.landing-page .nav-open .menu-toggle span:last-child,
.legal-page .nav-open .menu-toggle span:last-child {
    transform: rotate(-45deg);
}

/* Public hero */

.landing-page .landing-hero {
    position: relative;
    min-height: 92svh;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
    align-items: end;
    gap: 48px;
    padding: 132px max(24px, calc((100vw - var(--release-content)) / 2)) 76px;
    overflow: hidden;
    isolation: isolate;
}

.landing-page .hero-bg {
    position: absolute;
    inset: 0;
    z-index: -4;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: saturate(.84) contrast(1.03);
}

.landing-page .hero-shade {
    position: absolute;
    inset: 0;
    z-index: -3;
    background:
        linear-gradient(90deg, rgba(3, 8, 7, .9) 0%, rgba(3, 8, 7, .62) 38%, rgba(3, 8, 7, .12) 70%),
        linear-gradient(180deg, rgba(3, 8, 7, .28), rgba(3, 8, 7, .05) 45%, rgba(3, 8, 7, .88) 100%);
}

.landing-page .hero-transition-fade {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -2;
    height: 20%;
    background: linear-gradient(180deg, transparent, var(--release-rock));
    pointer-events: none;
}

.landing-page .hero-content {
    align-self: end;
    max-width: 760px;
    padding-bottom: 38px;
}

.landing-page .hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 0;
    color: var(--release-lichen-bright);
    border: 0;
    background: transparent;
    font-size: .67rem;
    font-weight: 760;
    text-transform: uppercase;
}

.landing-page .hero-badge::before {
    content: "";
    width: 34px;
    height: 1px;
    background: currentColor;
}

.landing-page .hero-content h1 {
    max-width: 9ch;
    margin: 18px 0 14px;
    color: #fff;
    font-size: 5.2rem;
    font-weight: 780;
    line-height: .87;
}

.landing-page .hero-content .lead {
    max-width: 640px;
    margin: 0;
    color: #fff;
    font-size: 1.45rem;
    font-weight: 590;
    line-height: 1.34;
}

.landing-page .hero-waitlist-note {
    max-width: 600px;
    margin: 18px 0 0;
    color: rgba(255, 255, 255, .68);
    font-size: .92rem;
    line-height: 1.65;
}

.landing-page .hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 26px;
}

.landing-page .hero-actions .ghost-btn {
    color: #fff;
    border-color: rgba(255, 255, 255, .3);
    background: rgba(4, 9, 8, .2);
}

.landing-page .hero-route-brief {
    align-self: end;
    margin-bottom: 42px;
    padding: 20px 0 0;
    color: #fff;
    border-top: 1px solid rgba(255, 255, 255, .34);
    transform: translate(var(--mx, 0), var(--my, 0));
    transition: transform 440ms cubic-bezier(.2, .8, .25, 1);
}

.landing-page .hero-route-label {
    display: block;
    margin-bottom: 12px;
    color: var(--release-lichen-bright);
    font-size: .66rem;
    font-weight: 760;
    text-transform: uppercase;
}

.landing-page .hero-route-brief > strong {
    display: block;
    max-width: 18ch;
    font-family: var(--release-display);
    font-size: 1.5rem;
    line-height: 1.15;
}

.landing-page .hero-route-brief > strong i {
    color: var(--release-lichen);
    font-style: normal;
}

.landing-page .hero-route-brief dl {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    margin: 20px 0 0;
    padding: 16px 0 0;
    border-top: 1px solid rgba(255, 255, 255, .18);
}

.landing-page .hero-route-brief dl > div {
    padding-left: 14px;
    border-left: 1px solid rgba(255, 255, 255, .16);
}

.landing-page .hero-route-brief dl > div:first-child {
    padding-left: 0;
    border-left: 0;
}

.landing-page .hero-route-brief dt {
    color: rgba(255, 255, 255, .58);
    font-size: .65rem;
}

.landing-page .hero-route-brief dd {
    margin: 4px 0 0;
    color: #fff;
    font-size: .9rem;
    font-weight: 720;
}

.landing-page .hero-scroll {
    position: absolute;
    bottom: 38px;
    left: max(24px, calc((100vw - var(--release-content)) / 2));
    display: flex;
    align-items: center;
    gap: 10px;
    color: rgba(255, 255, 255, .62);
    font-size: .64rem;
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
}

.landing-page .hero-scroll i {
    width: 48px;
    height: 1px;
    overflow: hidden;
    background: rgba(255, 255, 255, .28);
}

.landing-page .hero-scroll i::after {
    content: "";
    display: block;
    width: 20px;
    height: 1px;
    background: var(--release-lichen);
    animation: release-scroll-line 2.2s ease-in-out infinite;
}

@keyframes release-scroll-line {
    0%,
    100% { transform: translateX(-22px); }
    55% { transform: translateX(50px); }
}

/* Public content */

.landing-page .highlight-strip {
    position: relative;
    z-index: 2;
    width: min(calc(100% - 48px), var(--release-content));
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin: -12px auto 0;
    border-block: 1px solid var(--release-rule-strong);
    background: var(--release-rock);
}

.landing-page .highlight-strip p {
    min-width: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 3px 12px;
    margin: 0;
    padding: 22px 20px;
    border-left: 1px solid var(--release-rule);
}

.landing-page .highlight-strip p:first-child {
    border-left: 0;
}

.landing-page .highlight-strip span {
    grid-row: 1 / 3;
    color: var(--release-lichen);
    font-size: .64rem;
    font-weight: 760;
}

.landing-page .highlight-strip strong {
    color: var(--release-snow);
    font-size: .8rem;
}

.landing-page .highlight-strip em {
    overflow: hidden;
    color: var(--release-muted);
    font-size: .68rem;
    font-style: normal;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.landing-page .section {
    width: min(calc(100% - 48px), var(--release-content));
    margin-inline: auto;
    padding-block: 104px;
}

.landing-page .section + .section {
    border-top: 1px solid var(--release-rule);
}

.landing-page .section-head {
    max-width: 820px;
    margin: 0 0 52px;
}

.landing-page .section-head .kicker,
.legal-page .kicker,
.landing-page .showcase .kicker {
    margin: 0 0 14px;
    color: var(--release-lichen);
    font-size: .67rem;
    font-weight: 780;
    text-transform: uppercase;
}

.landing-page .section-head h2 {
    max-width: 18ch;
    margin: 0;
    color: var(--release-snow);
    font-size: 3rem;
    font-weight: 730;
    line-height: 1;
}

.landing-page .section-head > p:last-child {
    max-width: 680px;
    margin: 22px 0 0;
    color: var(--release-mist);
    font-size: 1rem;
    line-height: 1.7;
}

.landing-page .product-stage {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(330px, .65fr);
    gap: 0;
    min-height: 560px;
    border-block: 1px solid var(--release-rule-strong);
}

.landing-page .product-stage-map {
    position: relative;
    min-height: 560px;
    overflow: hidden;
    border-right: 1px solid var(--release-rule-strong);
}

.landing-page .landing-route-map {
    position: absolute;
    inset: 0;
    min-height: 100%;
    border: 0;
    border-radius: 0;
    filter: saturate(.72) contrast(1.04) brightness(.78);
}

.landing-page .route-map-caption {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 500;
    display: grid;
    gap: 4px;
    padding: 64px 22px 22px;
    color: #fff;
    background: linear-gradient(180deg, transparent, rgba(5, 10, 9, .94));
    pointer-events: none;
}

.landing-page .route-map-caption span {
    color: var(--release-lichen-bright);
    font-size: .64rem;
    font-weight: 760;
    text-transform: uppercase;
}

.landing-page .route-map-caption strong {
    font-family: var(--release-display);
    font-size: 1.35rem;
}

.landing-page .route-map-caption em {
    color: rgba(255, 255, 255, .62);
    font-size: .72rem;
    font-style: normal;
}

.landing-page .product-stage-steps {
    display: grid;
    grid-template-rows: repeat(3, 1fr);
    margin: 0;
    padding: 0;
    list-style: none;
}

.landing-page .product-stage-steps li {
    display: grid;
    align-content: center;
    padding: 28px 32px;
    border-top: 1px solid var(--release-rule);
}

.landing-page .product-stage-steps li:first-child {
    border-top: 0;
}

.landing-page .product-stage-steps span,
.landing-page .feature-meta,
.landing-page .platform-card > span {
    color: var(--release-lichen);
    font-size: .64rem;
    font-weight: 760;
    text-transform: uppercase;
}

.landing-page .product-stage-steps strong {
    margin-top: 8px;
    color: var(--release-snow);
    font-family: var(--release-display);
    font-size: 1.22rem;
}

.landing-page .product-stage-steps p {
    margin: 10px 0 0;
    color: var(--release-mist);
    font-size: .82rem;
    line-height: 1.6;
}

.landing-page .feature-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    border-top: 1px solid var(--release-rule-strong);
}

.landing-page .feature-card {
    position: relative;
    min-height: 260px;
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    align-content: start;
    gap: 6px 20px;
    margin: 0;
    padding: 34px 30px 38px;
    border: 0;
    border-right: 1px solid var(--release-rule);
    border-bottom: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    transition: background-color var(--release-standard);
}

.landing-page .feature-card:nth-child(2n) {
    border-right: 0;
}

.landing-page .feature-card:hover {
    background: rgba(217, 184, 95, .045);
    transform: none;
}

.landing-page .feature-icon {
    grid-row: 1 / 5;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    color: var(--release-lichen);
    border: 1px solid rgba(217, 184, 95, .3);
    border-radius: 50%;
    background: transparent;
}

.landing-page .feature-icon svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.55;
}

.landing-page .feature-meta {
    align-self: center;
}

.landing-page .feature-card h3 {
    max-width: 20ch;
    margin: 20px 0 0;
    color: var(--release-snow);
    font-size: 1.45rem;
    line-height: 1.15;
}

.landing-page .feature-card p {
    max-width: 54ch;
    margin: 10px 0 0;
    color: var(--release-mist);
    font-size: .85rem;
    line-height: 1.65;
}

.landing-page .why-waitlist {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    gap: 72px;
    align-items: start;
}

.landing-page .why-waitlist .section-head {
    margin: 0;
}

.landing-page .why-grid {
    display: grid;
    gap: 30px;
}

.landing-page .why-lead {
    max-width: 620px;
    margin: 0;
    color: var(--release-snow);
    font-family: var(--release-display);
    font-size: 1.45rem;
    line-height: 1.45;
}

.landing-page .why-points {
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--release-rule-strong);
    list-style: none;
}

.landing-page .why-points li {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 18px 0;
    border-bottom: 1px solid var(--release-rule);
}

.landing-page .why-points span {
    color: var(--release-lichen);
    font-size: .64rem;
}

.landing-page .why-points strong {
    color: var(--release-snow);
    font-size: .88rem;
}

.landing-page .why-points em {
    color: var(--release-muted);
    font-size: .75rem;
    font-style: normal;
}

.landing-page .showcase-panorama {
    position: relative;
    min-height: 580px;
    display: flex;
    align-items: end;
    overflow: hidden;
    border-block: 1px solid var(--release-rule-strong);
}

.landing-page .showcase-panorama > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(.78) contrast(1.04);
    transition: transform 900ms cubic-bezier(.2, .75, .25, 1);
}

.landing-page .showcase-panorama:hover > img {
    transform: scale(1.015);
}

.landing-page .showcase-panorama::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(4, 9, 8, .92), rgba(4, 9, 8, .22) 70%),
        linear-gradient(180deg, transparent 38%, rgba(4, 9, 8, .86));
}

.landing-page .showcase-panorama > div {
    position: relative;
    z-index: 2;
    max-width: 660px;
    padding: 52px;
}

.landing-page .showcase-panorama h2 {
    margin: 0;
    color: #fff;
    font-size: 3rem;
    line-height: 1;
}

.landing-page .showcase-panorama p:not(.kicker) {
    max-width: 580px;
    margin: 18px 0 0;
    color: rgba(255, 255, 255, .72);
    line-height: 1.7;
}

.landing-page .showcase-panorama a {
    display: inline-flex;
    gap: 10px;
    margin-top: 22px;
    color: var(--release-lichen-bright);
    font-size: .78rem;
    font-weight: 720;
    text-decoration: none;
}

.landing-page .showcase-ledger {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-bottom: 1px solid var(--release-rule-strong);
}

.landing-page .showcase-ledger > span {
    display: grid;
    gap: 5px;
    padding: 20px;
    border-left: 1px solid var(--release-rule);
}

.landing-page .showcase-ledger > span:first-child {
    border-left: 0;
}

.landing-page .showcase-ledger strong {
    color: var(--release-lichen);
    font-size: .78rem;
}

.landing-page .showcase-ledger em {
    color: var(--release-mist);
    font-size: .72rem;
    font-style: normal;
}

.landing-page .platform-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--release-rule-strong);
}

.landing-page .platform-card {
    min-height: 210px;
    display: grid;
    align-content: start;
    gap: 10px;
    padding: 30px;
    border: 0;
    border-right: 1px solid var(--release-rule);
    border-bottom: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.landing-page .platform-card:nth-child(2n) {
    border-right: 0;
}

.landing-page .platform-card strong {
    max-width: 24ch;
    margin-top: 12px;
    color: var(--release-snow);
    font-family: var(--release-display);
    font-size: 1.35rem;
}

.landing-page .platform-card p {
    max-width: 52ch;
    margin: 0;
    color: var(--release-mist);
    font-size: .84rem;
    line-height: 1.65;
}

.landing-page .waitlist-cta {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
    gap: 72px;
    align-items: end;
    margin-bottom: 96px;
    padding: 68px 0;
    border-block: 1px solid var(--release-rule-strong);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.landing-page .waitlist-cta h2 {
    max-width: 15ch;
    margin: 18px 0 0;
    color: var(--release-snow);
    font-size: 3rem;
    line-height: 1;
}

.landing-page .waitlist-cta > div:last-child {
    display: grid;
    justify-items: start;
    gap: 20px;
}

.landing-page .waitlist-cta p {
    max-width: 520px;
    margin: 0;
    color: var(--release-mist);
    line-height: 1.7;
}

.landing-page footer,
.legal-page footer {
    width: min(calc(100% - 48px), var(--release-content));
    display: flex;
    justify-content: space-between;
    gap: 32px;
    margin: 0 auto;
    padding: 34px 0 48px;
    border-top: 1px solid var(--release-rule-strong);
    color: var(--release-mist);
    background: transparent;
}

.landing-page footer > div:first-child,
.legal-page footer > div:first-child {
    display: grid;
    gap: 4px;
}

.landing-page footer strong,
.legal-page footer strong {
    color: var(--release-snow);
    font-size: .78rem;
}

.landing-page footer span,
.legal-page footer span {
    font-size: .7rem;
}

.landing-page .footer-links,
.legal-page .footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}

.landing-page .footer-links a,
.legal-page .footer-links a {
    color: var(--release-mist);
    font-size: .72rem;
    text-decoration: none;
}

.landing-page .footer-links a:hover,
.legal-page .footer-links a:hover {
    color: var(--release-lichen-bright);
}

.landing-page .page-scroll-journey {
    opacity: .42;
    mix-blend-mode: normal;
}

.landing-page .page-journey-guide {
    stroke: rgba(217, 184, 95, .08);
}

.landing-page .page-journey-glow {
    opacity: .16;
}

.landing-page .page-journey-progress {
    stroke-width: 1.2px;
}

/* Legal pages */

.legal-page {
    padding-top: 0;
}

.legal-page .site-header {
    position: relative;
    color: var(--release-snow);
    border-bottom-color: var(--release-rule-strong);
}

.legal-page .brand small {
    color: var(--release-muted);
}

.legal-page #site-nav a {
    color: var(--release-mist);
}

.legal-page .content-page {
    width: min(calc(100% - 48px), 1120px);
    max-width: none;
    margin: 0 auto;
    padding: 96px 0 110px;
}

.legal-page .content-page > .kicker {
    margin-bottom: 16px;
}

.legal-page .content-page > h1 {
    max-width: 14ch;
    margin: 0 0 70px;
    color: var(--release-snow);
    font-size: 4rem;
    font-weight: 740;
    line-height: .98;
}

.legal-page .legal-card {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    column-gap: 58px;
    margin: 0;
    padding: 34px 0 42px;
    border: 0;
    border-top: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.legal-page .legal-card:last-of-type {
    border-bottom: 1px solid var(--release-rule);
}

.legal-page .legal-card > h2 {
    grid-column: 1;
    grid-row: 1 / 99;
    margin: 0;
    color: var(--release-snow);
    font-size: 1rem;
    line-height: 1.35;
}

.legal-page .legal-card > :not(h2) {
    grid-column: 2;
}

.legal-page .legal-card > p,
.legal-page .legal-card > ul {
    margin-top: 0;
    color: var(--release-mist);
    font-size: .9rem;
    line-height: 1.75;
}

.legal-page .legal-card > p + p {
    margin-top: 12px;
}

.legal-page .legal-card strong {
    color: var(--release-snow);
}

.legal-page .legal-note {
    position: relative;
}

.legal-page .legal-note::before {
    content: "";
    position: absolute;
    top: 34px;
    bottom: 42px;
    left: -18px;
    width: 2px;
    background: var(--release-lichen);
}

.legal-page .legal-card dl {
    display: grid;
    grid-template-columns: minmax(130px, .36fr) minmax(0, 1fr);
    margin: 0;
    border-top: 1px solid var(--release-rule);
}

.legal-page .legal-card dt,
.legal-page .legal-card dd {
    margin: 0;
    padding: 13px 0;
    border-bottom: 1px solid var(--release-rule);
    font-size: .86rem;
}

.legal-page .legal-card dt {
    color: var(--release-snow);
    font-weight: 680;
}

.legal-page .legal-card dd {
    color: var(--release-mist);
}

.legal-page .legal-card a {
    color: var(--release-lichen-bright);
    text-underline-offset: 3px;
}

.legal-page .legal-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--release-rule);
    border-radius: 0;
}

.legal-page .legal-table {
    min-width: 660px;
    border-collapse: collapse;
    color: var(--release-mist);
    font-size: .78rem;
}

.legal-page .legal-table :is(th, td) {
    padding: 13px;
    border-bottom: 1px solid var(--release-rule);
    text-align: left;
    vertical-align: top;
}

.legal-page .legal-table th {
    color: var(--release-snow);
    background: var(--release-pine);
}

/* Authentication */

.app-page .auth-screen {
    min-height: 100svh;
    padding: 0;
    background: var(--release-rock);
}

.app-page .auth-shell {
    min-height: 100svh;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(460px, .85fr);
    background: var(--release-rock);
}

.app-page .auth-brand {
    position: relative;
    min-height: 100svh;
    padding: 42px;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(5, 10, 9, .1), rgba(5, 10, 9, .84)),
        url("../../public/ai-assets/hero-alpine-dawn.webp") center / cover no-repeat;
}

.app-page .auth-brand-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(4, 9, 8, .18), transparent 65%),
        linear-gradient(180deg, rgba(4, 9, 8, .04), rgba(4, 9, 8, .9));
}

.app-page .auth-brand-inner {
    position: relative;
    z-index: 1;
    min-height: calc(100svh - 84px);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.app-page .auth-logo {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #fff;
    font-size: .86rem;
    font-weight: 780;
}

.app-page .auth-logo img {
    width: 46px;
    height: 46px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 5px;
}

.app-page .auth-brand-copy {
    max-width: 620px;
    padding-bottom: 24px;
}

.app-page .auth-badge {
    display: inline-flex;
    padding: 0 0 8px;
    color: var(--release-lichen-bright);
    border: 0;
    border-bottom: 1px solid currentColor;
    border-radius: 0;
    background: transparent;
    font-size: .66rem;
    font-weight: 760;
    text-transform: uppercase;
}

.app-page .auth-brand-copy h2 {
    max-width: 12ch;
    margin: 22px 0 0;
    color: #fff;
    font-size: 3.25rem;
    line-height: .98;
}

.app-page .auth-benefits {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    margin: 28px 0 0;
    padding: 0;
    border-top: 1px solid rgba(255, 255, 255, .2);
    list-style: none;
}

.app-page .auth-benefits li {
    min-width: 150px;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 14px 18px 14px 0;
    color: rgba(255, 255, 255, .72);
    font-size: .76rem;
}

.app-page .auth-benefits svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: var(--release-lichen-bright);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.6;
}

.app-page .auth-form-col {
    min-width: 0;
    display: grid;
    place-items: center;
    padding: 56px;
}

.app-page .auth-panel,
.app-page .auth-panel-wide {
    width: min(100%, 430px);
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.app-page .auth-logo-mobile {
    display: none;
}

.app-page .auth-panel h1 {
    margin: 0;
    color: var(--release-snow);
    font-size: 2.2rem;
    font-weight: 730;
    line-height: 1.04;
}

.app-page .auth-panel > .muted {
    margin: 18px 0 0;
    color: var(--release-mist);
    font-size: .9rem;
    line-height: 1.65;
}

.app-page .auth-early-access {
    margin: 22px 0 0;
    padding: 18px 0;
    color: var(--release-muted);
    border-block: 1px solid var(--release-rule);
    font-size: .75rem;
    line-height: 1.6;
}

.app-page .auth-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    margin: 18px 0 0;
    border-bottom: 1px solid var(--release-rule);
}

.app-page .auth-tab {
    min-height: 48px;
    padding: 0;
    color: var(--release-muted);
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    font-size: .79rem;
    font-weight: 680;
}

.app-page .auth-tab.active {
    color: var(--release-snow);
    border-bottom-color: var(--release-lichen);
    background: transparent;
}

.app-page .auth-form {
    display: grid;
    gap: 18px;
    margin-top: 20px;
}

.app-page .auth-form label {
    display: grid;
    gap: 8px;
}

.app-page .auth-form input {
    min-height: 50px;
}

.app-page .auth-form .primary-btn {
    width: 100%;
    min-height: 48px;
    margin-top: 2px;
}

.app-page .auth-password {
    position: relative;
    display: block;
}

.app-page .auth-password input {
    width: 100%;
    padding-right: 48px;
}

.app-page .auth-password-toggle {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    padding: 0;
    color: var(--release-muted);
    border: 0;
    background: transparent;
}

.app-page .auth-password-toggle svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.app-page .auth-links {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 20px;
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--release-rule);
}

.app-page .auth-link {
    min-height: 0;
    padding: 0;
    color: var(--release-muted);
    border: 0;
    background: transparent;
    font-size: .72rem;
    font-weight: 550;
    text-decoration: none;
}

.app-page .auth-link:hover {
    color: var(--release-lichen-bright);
}

.app-page .form-error,
.app-page .auth-capslock {
    margin: 0;
    padding: 11px 12px;
    color: #ffd2ce;
    border: 1px solid rgba(229, 104, 95, .36);
    border-radius: var(--radius-md);
    background: rgba(229, 104, 95, .08);
    font-size: .74rem;
}

/* Application shell */

.app-page {
    --desktop-sidebar-width: var(--release-sidebar);
    color: var(--release-snow);
    background:
        linear-gradient(145deg, rgba(27, 40, 34, .11), transparent 38%),
        var(--release-rock);
}

.app-page::before {
    display: none;
}

.app-page .app-shell {
    background: transparent;
}

.app-page .app-workspace {
    min-width: 0;
}

.app-page .app-shell:not(.fullscreen-mode) main {
    min-width: 0;
    padding: 0 30px 72px;
}

.app-page .view:not(.fullscreen-view) {
    width: min(100%, 1380px);
    margin-inline: auto;
}

.app-page .topbar {
    top: 12px;
    z-index: 210;
    min-height: 58px;
    margin: 12px auto 24px;
    padding: 8px 10px 8px 16px;
    color: var(--release-snow);
    border: 1px solid var(--release-rule);
    border-radius: 6px;
    background: var(--release-glass);
    box-shadow: var(--release-shadow);
}

.app-page .topbar::after {
    display: none;
}

.app-page #view-kicker {
    margin: 0 0 2px;
    color: var(--release-lichen);
    font-size: .58rem;
    font-weight: 780;
    text-transform: uppercase;
}

.app-page #view-title {
    color: var(--release-snow);
    font-size: 1.08rem;
    font-weight: 710;
}

.app-page .profile-entry,
.app-page .menu-entry {
    border-radius: 5px;
}

.app-page .profile-entry {
    min-height: 42px;
    padding: 4px 9px 4px 5px;
    border: 1px solid transparent;
}

.app-page .profile-entry:hover {
    border-color: var(--release-rule-strong);
    background: rgba(255, 255, 255, .035);
}

.app-page .profile-entry strong {
    font-size: .73rem;
}

.app-page .profile-entry em {
    color: var(--release-muted);
    font-size: .62rem;
}

.app-page .menu-entry {
    width: 42px;
    height: 42px;
    border: 1px solid transparent;
}

.app-page .menu-entry:hover {
    border-color: var(--release-rule-strong);
    background: rgba(255, 255, 255, .035);
}

.app-page .desktop-sidebar {
    width: var(--release-sidebar);
    align-items: center;
    padding: 12px 10px;
    border-right: 1px solid var(--release-rule);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .025), transparent 26%),
        rgba(8, 13, 11, .92);
    box-shadow: 16px 0 54px -44px rgba(0, 0, 0, .95);
}

.app-page .desktop-brand {
    width: 56px;
    min-height: 64px;
    display: grid;
    place-items: start center;
    margin: 0 0 12px;
    padding: 0 0 12px;
    border-bottom: 1px solid var(--release-rule);
}

.app-page .desktop-brand > div {
    display: none;
}

.app-page .desktop-brand img {
    width: 44px;
    height: 44px;
    border: 1px solid var(--release-rule-strong);
    border-radius: 5px;
    box-shadow: none;
}

.app-page .desktop-primary-nav {
    width: 100%;
    gap: 6px;
    padding: 0;
}

.app-page .desktop-nav-group {
    width: 100%;
}

.app-page :is(.desktop-nav-group-toggle, .desktop-nav-group-direct) {
    width: 52px;
    min-height: 52px;
    height: 52px;
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 0;
    margin-inline: auto;
    padding: 0;
    color: var(--release-muted);
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
}

.app-page :is(.desktop-nav-group-copy, .desktop-nav-group-chevron) {
    display: none;
}

.app-page .desktop-nav-group-toggle svg {
    width: 22px;
    height: 22px;
    stroke-width: 1.6;
}

.app-page :is(
    .desktop-nav-group.contains-active > .desktop-nav-group-toggle,
    .desktop-nav-group.expanded > .desktop-nav-group-toggle,
    .desktop-nav-group-direct.active
) {
    color: var(--release-lichen-bright);
    border-color: rgba(217, 184, 95, .25);
    background: rgba(217, 184, 95, .08);
    box-shadow: none;
}

.app-page .desktop-nav-group-direct.active::after {
    top: 14px;
    bottom: 14px;
    left: -11px;
    width: 2px;
    border-radius: 0;
    background: var(--release-lichen);
}

.app-page .desktop-nav-group-panel {
    top: 0;
    left: calc(100% + 10px);
    width: 232px;
    padding: 8px;
    border: 1px solid var(--release-rule-strong);
    border-radius: 6px;
    background: var(--release-glass-strong);
    box-shadow: var(--release-shadow-deep);
}

.app-page .desktop-nav-group-panel-title {
    padding: 7px 10px 9px;
    color: var(--release-lichen);
    font-size: .62rem;
    text-transform: uppercase;
}

.app-page .desktop-nav-group-panel .desktop-nav-link {
    min-height: 42px;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 10px;
    padding: 0 10px;
    color: var(--release-mist);
    border-radius: 4px;
}

.app-page .desktop-nav-group-panel .desktop-nav-link:hover,
.app-page .desktop-nav-group-panel .desktop-nav-link.active {
    color: var(--release-snow);
    background: rgba(217, 184, 95, .08);
}

.app-page .desktop-nav-meta {
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    margin: auto 0 0;
    padding: 0;
    border: 1px solid var(--release-rule);
    border-radius: 6px;
    background: rgba(255, 255, 255, .025);
}

.app-page .desktop-nav-account {
    display: none;
}

.app-page .desktop-nav-avatar {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    color: var(--release-lichen-bright);
    border: 1px solid rgba(217, 184, 95, .32);
    border-radius: 50%;
    background: rgba(217, 184, 95, .06);
    font-size: .74rem;
    font-weight: 760;
}

/* General app content */

.app-page :is(.card, .panel, .premium-panel) {
    color: var(--release-snow);
    border-color: var(--release-rule);
    border-radius: var(--radius-card);
    background: var(--release-pine);
    box-shadow: none;
}

.app-page :is(.card, .panel, .premium-panel):hover {
    transform: none;
    box-shadow: none;
}

.app-page :is(.framework-view, .dashboard-board, .bucket-list-page, .ideas-page, .profile-page) {
    color: var(--release-snow);
    background: transparent;
}

.app-page :is(.panel-head, .discovery-section-head, .tours-hub-head, .profile-section-head) {
    align-items: end;
}

.app-page :is(.panel-head, .discovery-section-head, .tours-hub-head, .profile-section-head) h2 {
    color: var(--release-snow);
    font-size: 1.55rem;
    font-weight: 710;
}

.app-page :is(.panel-head, .discovery-section-head, .tours-hub-head, .profile-section-head) > div > span {
    color: var(--release-lichen);
    font-size: .62rem;
    font-weight: 760;
    text-transform: uppercase;
}

.app-page .muted {
    color: var(--release-mist);
}

.app-page .section-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 36px;
    border-top: 1px solid var(--release-rule-strong);
}

.app-page .section-grid > .section-tile {
    min-height: 118px;
    display: grid;
    align-content: center;
    padding: 22px 0;
    border: 0;
    border-bottom: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
}

.app-page .section-grid > .section-tile::before {
    top: 25px;
    bottom: 25px;
    width: 2px;
    background: var(--release-lichen);
}

.app-page .section-grid > .section-tile:hover {
    padding-left: 14px;
    background: rgba(217, 184, 95, .04);
}

.app-page .section-grid h2 {
    margin: 0;
    color: var(--release-snow);
    font-size: 1.15rem;
}

.app-page .section-grid p {
    margin: 6px 0 0;
    font-size: .8rem;
}

/* Dashboard */

.app-page main.dashboard-main {
    padding: 0 16px 72px;
}

.app-page .dashboard-main .topbar {
    position: absolute;
    top: 24px;
    right: 34px;
    left: 34px;
    z-index: 40;
    width: auto;
    margin: 0;
    color: #fff;
    border-color: rgba(255, 255, 255, .16);
    background: rgba(6, 11, 10, .58);
}

.app-page .dashboard-main #view {
    width: 100%;
    max-width: none;
}

.app-page .dashboard-main .discovery-home-v2 {
    padding: 0 0 64px;
}

.app-page .dashboard-main .discovery-hero {
    width: 100%;
    min-height: 570px;
    margin: 16px 0 0;
    padding: 112px 34px 26px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 7px;
    background-position: center;
    box-shadow: var(--release-shadow-deep);
}

.app-page .dashboard-main .discovery-hero::after {
    right: 34px;
    bottom: 0;
    left: 34px;
    height: 2px;
    opacity: .9;
    background: var(--release-lichen);
}

.app-page .dashboard-main .discovery-hero-shade {
    background:
        linear-gradient(90deg, rgba(4, 9, 8, .9), rgba(4, 9, 8, .28) 66%, rgba(4, 9, 8, .1)),
        linear-gradient(180deg, rgba(4, 9, 8, .28), rgba(4, 9, 8, .04) 36%, rgba(4, 9, 8, .9));
}

.app-page .dashboard-main .discovery-hero-topline {
    align-items: center;
}

.app-page .dashboard-main .discovery-hero-topline > span {
    padding: 0;
    color: rgba(255, 255, 255, .64);
    border: 0;
    font-size: .66rem;
    font-weight: 690;
    text-transform: uppercase;
}

.app-page .dashboard-main .discovery-weather-button {
    min-height: 42px;
    padding: 5px 10px;
    color: rgba(255, 255, 255, .82);
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 5px;
    background: rgba(5, 10, 9, .45);
}

.app-page .dashboard-main .discovery-hero-copy {
    max-width: 780px;
    padding: 72px 0 30px;
}

.app-page .dashboard-main .discovery-eyebrow {
    color: var(--release-lichen-bright);
    font-size: .64rem;
    font-weight: 780;
    text-transform: uppercase;
}

.app-page .dashboard-main .discovery-hero-copy h2 {
    max-width: 20ch;
    margin: 10px 0 8px;
    color: #fff;
    font-size: 3.4rem;
    font-weight: 750;
    line-height: .98;
}

.app-page .dashboard-main .discovery-route-via {
    max-width: 60ch;
    color: rgba(255, 255, 255, .72);
    font-size: .83rem;
}

.app-page .dashboard-main .discovery-route-meta {
    margin-top: 7px;
    color: rgba(255, 255, 255, .58);
    font-size: .8rem;
}

.app-page .dashboard-main .discovery-hero-facts {
    gap: 0;
    margin-top: 20px;
    border-block: 1px solid rgba(255, 255, 255, .18);
}

.app-page .dashboard-main .discovery-hero-facts > span {
    min-width: 124px;
    padding: 13px 20px 13px 0;
    border-left: 0;
}

.app-page .dashboard-main .discovery-hero-facts > span + span {
    padding-left: 20px;
    border-left: 1px solid rgba(255, 255, 255, .17);
}

.app-page .dashboard-main .discovery-hero-facts svg {
    color: var(--release-lichen-bright);
}

.app-page .dashboard-main .discovery-hero-actions {
    margin-top: 20px;
}

.app-page .dashboard-main .discovery-hero-footer {
    min-height: 62px;
    padding: 5px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 6px;
    background: rgba(5, 10, 9, .62);
    box-shadow: none;
}

.app-page .dashboard-main .discovery-search {
    min-height: 50px;
    border-radius: 4px;
    background: transparent;
}

.app-page .dashboard-main .discovery-search input {
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.app-page .dashboard-main .discovery-stats > span {
    min-height: 50px;
    border-radius: 0;
    background: transparent;
}

.app-page .dashboard-main .discovery-stats em {
    color: rgba(255, 255, 255, .54);
}

.app-page .dashboard-main .discovery-quick-actions {
    width: min(660px, calc(100% - 44px));
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    margin: -18px auto 0;
    padding: 0 8px;
    overflow: visible;
    border: 1px solid var(--release-rule-strong);
    border-radius: 6px;
    background: var(--release-glass-strong);
    box-shadow: var(--release-shadow);
}

.app-page .dashboard-main .discovery-quick-actions > * {
    border-left: 1px solid var(--release-rule);
}

.app-page .dashboard-main .discovery-quick-actions > :first-child {
    border-left: 0;
}

.app-page .dashboard-main :is(.discovery-quick-action, .discovery-more-actions > summary) {
    min-height: 58px;
    padding: 7px;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.app-page .dashboard-main :is(.discovery-quick-action, .discovery-more-actions > summary):hover {
    color: var(--release-snow);
    background: rgba(217, 184, 95, .06);
}

.app-page .dashboard-main .discovery-quick-action > span {
    color: var(--release-lichen);
    border: 0;
    background: transparent;
}

.app-page .dashboard-momentum {
    width: min(1120px, 100%);
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    margin: 26px auto 0;
    border-block: 1px solid var(--release-rule);
}

.app-page .dashboard-momentum > div {
    min-height: 66px;
    padding: 10px 18px;
    border: 0;
    border-left: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
}

.app-page .dashboard-momentum > div:first-child {
    border-left: 0;
}

.app-page :is(.discovery-tour-section, .discovery-weather-section, .discovery-map-section) {
    width: min(1180px, 100%);
    margin: 0 auto;
    padding: 62px 0;
    border-top: 1px solid var(--release-rule);
}

.app-page .dashboard-momentum + .discovery-tour-section {
    margin-top: 60px;
}

.app-page .discovery-section-head {
    margin-bottom: 18px;
}

.app-page .discovery-section-head a {
    color: var(--release-lichen-bright);
    font-size: .72rem;
    font-weight: 650;
    text-decoration: none;
}

.app-page .discovery-tour-rail {
    gap: 12px;
    padding-bottom: 8px;
}

.app-page .discovery-tour-card {
    width: 252px;
    min-width: 252px;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border: 1px solid var(--release-rule);
    border-radius: 6px;
    background: var(--release-pine);
    box-shadow: none;
}

.app-page .discovery-tour-card:hover {
    border-color: rgba(217, 184, 95, .38);
    transform: translateY(-2px);
}

.app-page .discovery-tour-card img {
    transition: transform 560ms cubic-bezier(.2, .75, .25, 1);
}

.app-page .discovery-tour-card:hover img {
    transform: scale(1.025);
}

.app-page .discovery-tour-overlay {
    background: linear-gradient(180deg, rgba(4, 9, 8, .05), rgba(4, 9, 8, .22) 42%, rgba(4, 9, 8, .94));
}

.app-page .discovery-difficulty,
.app-page .discovery-plan-label {
    border-radius: 3px;
}

.app-page .discovery-tour-copy strong {
    font-family: var(--release-display);
    font-size: 1.15rem;
}

.app-page .discovery-tour-metrics {
    gap: 12px;
    padding-top: 10px;
    border-top: 1px solid rgba(255, 255, 255, .16);
}

.app-page .discovery-tour-metrics i {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.app-page .dashboard-weather-summary {
    overflow: hidden;
    border-block: 1px solid var(--release-rule-strong);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.app-page .dashboard-weather-summary :is(.dashboard-weather-current, .dashboard-weather-facts) {
    background: transparent;
}

.app-page .discovery-map-preview {
    height: 430px;
    border: 1px solid var(--release-rule-strong);
    border-radius: 6px;
    box-shadow: none;
}

.app-page .discovery-library {
    width: min(1180px, 100%);
    display: grid;
    gap: 0;
    margin: 0 auto;
    border-top: 1px solid var(--release-rule);
}

.app-page .discovery-library > button {
    min-height: 68px;
    padding: 10px 4px;
    border: 0;
    border-bottom: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
}

.app-page .discovery-library > button:hover {
    padding-inline: 14px;
    background: rgba(217, 184, 95, .04);
}

/* Tour cards and archive */

.app-page .tours-hub {
    gap: 0;
}

.app-page .tours-hub-command {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 28px;
    padding: 30px 0 34px;
    border: 0;
    border-bottom: 1px solid var(--release-rule-strong);
    border-radius: 0;
    background: transparent;
}

.app-page .tours-hub-command > div:first-child h2 {
    margin: 0;
    color: var(--release-snow);
    font-size: 2.2rem;
}

.app-page .tours-hub-actions {
    align-self: start;
}

.app-page .tours-hub-metrics {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin-top: 8px;
    border-block: 1px solid var(--release-rule);
}

.app-page .tours-hub-metrics > span {
    min-height: 74px;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 7px;
    padding: 16px;
    border: 0;
    border-left: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
}

.app-page .tours-hub-metrics > span:first-child {
    border-left: 0;
}

.app-page .tours-hub-metrics strong {
    color: var(--release-snow);
    font-size: 1.25rem;
}

.app-page .tours-hub-insights {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    margin: 0;
    border: 0;
}

.app-page .tours-hub-insights > p {
    min-height: 56px;
    padding: 12px 16px;
    border: 0;
    border-left: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
}

.app-page .tours-hub-insights > p:first-child {
    border-left: 0;
}

.app-page .tours-hub-tabs {
    display: flex;
    gap: 0;
    margin: 0;
    border-bottom: 1px solid var(--release-rule);
}

.app-page .tours-hub-tabs a {
    min-height: 50px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0 20px;
    color: var(--release-muted);
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    font-size: .78rem;
    text-decoration: none;
}

.app-page .tours-hub-tabs a.active {
    color: var(--release-snow);
    border-bottom-color: var(--release-lichen);
    background: transparent;
}

.app-page .tours-hub-list {
    border: 0;
    border-radius: 0;
    background: transparent;
}

.app-page .tours-hub-list-body {
    padding: 32px 0 0;
}

.app-page .tours-hub-list .list {
    display: grid;
    gap: 0;
    margin-top: 18px;
    border-top: 1px solid var(--release-rule-strong);
}

.app-page .tour-card {
    min-width: 0;
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    min-height: 146px;
    overflow: hidden;
    border: 0;
    border-bottom: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
    cursor: pointer;
    transition:
        background-color var(--release-fast),
        padding var(--release-standard);
}

.app-page .tour-card:hover {
    padding-inline: 8px;
    background: rgba(217, 184, 95, .035);
}

.app-page .tour-card > img {
    width: 180px;
    height: 146px;
    object-fit: cover;
    border-radius: 0;
    filter: saturate(.8);
}

.app-page .tour-card .card-body {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-content: center;
    gap: 8px 24px;
    padding: 20px 22px;
}

.app-page .tour-card h3 {
    grid-column: 1;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    color: var(--release-snow);
    font-size: 1.08rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-page .tour-card-kicker {
    grid-column: 1;
    color: var(--release-lichen);
    font-size: .61rem;
    font-weight: 740;
    text-transform: uppercase;
}

.app-page .tour-card .muted {
    grid-column: 1;
    margin: 0;
    overflow: hidden;
    color: var(--release-muted);
    font-size: .72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-page .tour-card-facts {
    grid-column: 2;
    grid-row: 1 / 4;
    display: grid;
    grid-template-columns: repeat(4, minmax(72px, 1fr));
    align-items: center;
    gap: 0;
    border-left: 1px solid var(--release-rule);
}

.app-page .tour-card-facts > span {
    min-width: 0;
    display: grid;
    gap: 4px;
    padding: 8px 14px;
    border-left: 1px solid var(--release-rule);
}

.app-page .tour-card-facts > span:first-child {
    border-left: 0;
}

.app-page .tour-card-facts strong {
    overflow: hidden;
    color: var(--release-snow);
    font-size: .78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-page .tour-card-facts em {
    color: var(--release-muted);
    font-size: .61rem;
    font-style: normal;
}

.app-page .tour-card-difficulty strong {
    color: var(--release-lichen-bright);
}

/* Planner, map, search, huts and weather */

.app-page :is(.mobile-planner, .map-hub, .weather-page, .hut-page, .discovery-search-page) {
    color: var(--release-snow);
}

.app-page .mobile-planner {
    background: var(--release-rock);
}

.app-page .planner-map,
.app-page .map-app-canvas {
    background-color: #101916;
}

.app-page .planner-bottom-sheet {
    border: 0;
    border-left: 1px solid var(--release-rule-strong);
    border-radius: 0;
    background: var(--release-rock-raised);
    box-shadow: -28px 0 70px -52px rgba(0, 0, 0, .95);
}

.app-page .planner-sheet-panel {
    margin: 0;
    padding: 24px 0;
    border: 0;
    border-bottom: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.app-page .planner-sheet-panel:first-of-type {
    padding-top: 8px;
}

.app-page .planner-route-builder {
    gap: 0;
    border-top: 1px solid var(--release-rule);
}

.app-page .planner-route-builder > * {
    border-bottom: 1px solid var(--release-rule);
}

.app-page .planner-via-mode {
    border: 1px solid var(--release-rule-strong);
    border-radius: 5px;
    background: var(--release-pine);
}

.app-page .planner-via-mode button {
    min-height: 42px;
    border-radius: 3px;
}

.app-page .planner-via-mode button.active {
    color: var(--color-primary-ink);
    background: var(--release-lichen);
}

.app-page .planner-layer-menu,
.app-page .map-floating-tools,
.app-page .map-control-stack,
.app-page .map-results-sheet,
.app-page .weather-bottom-sheet {
    border: 1px solid var(--release-rule-strong);
    border-radius: 6px;
    background: var(--release-glass-strong);
    box-shadow: var(--release-shadow);
}

.app-page .planner-layer-menu {
    padding: 8px;
}

.app-page .planner-slope-toggle {
    min-height: 42px;
    border-radius: 4px;
}

.app-page .map-floating-search input {
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.app-page .map-mode-switch {
    border-radius: 4px;
}

.app-page .map-mode-switch button {
    border-radius: 3px;
}

.app-page .map-mode-switch button.active {
    color: var(--color-primary-ink);
    background: var(--release-lichen);
}

.app-page .map-control-stack button {
    border-radius: 0;
}

.app-page .map-control-stack button + button {
    border-top: 1px solid var(--release-rule);
}

.app-page .map-results-sheet {
    overflow: hidden;
}

.app-page .map-sheet-head {
    padding: 16px 18px;
    border-bottom: 1px solid var(--release-rule);
}

.app-page .map-sheet-list {
    scrollbar-color: var(--release-lichen) transparent;
}

.app-page .map-sheet-list .tour-card {
    grid-template-columns: 104px minmax(0, 1fr);
    min-height: 104px;
}

.app-page .map-sheet-list .tour-card > img {
    width: 104px;
    height: 104px;
}

.app-page .map-sheet-list .tour-card .card-body {
    display: block;
    padding: 14px;
}

.app-page .map-sheet-list .tour-card .badge-row {
    margin-top: 8px;
}

.app-page .discovery-searchbar {
    min-height: 58px;
    padding: 6px;
    border: 1px solid var(--release-rule-strong);
    border-radius: 6px;
    background: var(--release-pine);
    box-shadow: none;
}

.app-page .discovery-searchbar input {
    border: 0;
    background: transparent;
    box-shadow: none;
}

.app-page .discovery-typebar {
    border: 1px solid var(--release-rule);
    border-radius: 5px;
    background: transparent;
}

.app-page .discovery-typebar button {
    border-radius: 3px;
}

.app-page .discovery-typebar button.active {
    color: var(--color-primary-ink);
    background: var(--release-lichen);
}

.app-page :is(.discovery-workspace, .hut-workspace) {
    border-block: 1px solid var(--release-rule);
}

.app-page :is(.discovery-result, .hut-card-row) {
    border: 0;
    border-bottom: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.app-page :is(.discovery-result, .hut-card-row):hover {
    background: rgba(217, 184, 95, .035);
}

.app-page .discovery-result-media {
    border-radius: 4px;
}

.app-page .weather-page :is(.weather-map-panel, .weather-detail-panel) {
    border-color: var(--release-rule-strong);
    border-radius: 6px;
    background: var(--release-pine);
    box-shadow: none;
}

.app-page .weather-radar-controls {
    border-radius: 5px;
    background: var(--release-glass-strong);
}

.app-page .weather-hour,
.app-page .weather-day {
    border-radius: 0;
    background: transparent;
}

/* Profile, analysis and community */

.app-page .profile-cover-card {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 28px;
    padding: 32px 0 38px;
    border: 0;
    border-bottom: 1px solid var(--release-rule-strong);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.app-page .profile-cover-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 58px;
    height: 2px;
    background: var(--release-lichen);
}

.app-page .profile-cover-glow {
    display: none;
}

.app-page .profile-cover-main {
    gap: 22px;
}

.app-page .profile-hero-avatar {
    width: 88px;
    height: 88px;
}

.app-page .profile-cover-main h2 {
    margin: 8px 0 0;
    color: var(--release-snow);
    font-size: 2rem;
}

.app-page .profile-tabbar {
    display: flex;
    overflow-x: auto;
    gap: 0;
    border-bottom: 1px solid var(--release-rule);
}

.app-page .profile-tab {
    min-width: 150px;
    /* Rhythmik mit .tours-hub-tabs a vereinheitlicht: gleiche Höhe/Inline-Padding. */
    min-height: 50px;
    padding: 10px 20px;
    color: var(--release-muted);
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent;
}

.app-page .profile-tab span {
    display: none;
}

.app-page .profile-tab.active {
    color: var(--release-snow);
    border-bottom-color: var(--release-lichen);
    background: transparent;
}

.app-page .profile-tab-panel {
    padding: 34px 0 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.app-page .profile-facts {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border-block: 1px solid var(--release-rule);
}

.app-page .profile-facts > div {
    min-height: 88px;
    display: grid;
    place-content: center;
    gap: 4px;
    border: 0;
    border-left: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
}

.app-page .profile-facts > div:first-child {
    border-left: 0;
}

.app-page .profile-facts strong {
    color: var(--release-snow);
    font-size: 1.4rem;
}

.app-page .profile-facts span {
    color: var(--release-muted);
    font-size: .64rem;
}

.app-page .profile-badge-showcase,
.app-page .profile-items-card,
.app-page .profile-editor-card {
    padding: 30px 0;
    border: 0;
    border-bottom: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
}

.app-page :is(.profile-badge-showcase, .profile-items-card, .profile-editor-card) .card-body {
    padding: 0;
}

.app-page .profile-item-grid {
    display: grid;
    gap: 0;
    border-top: 1px solid var(--release-rule);
}

.app-page .profile-item-grid .tour-card {
    grid-template-columns: 132px minmax(0, 1fr);
    min-height: 116px;
}

.app-page .profile-item-grid .tour-card > img {
    width: 132px;
    height: 116px;
}

.app-page .profile-item-grid .tour-card-facts {
    display: none;
}

.app-page .community-v3 {
    border-block: 1px solid var(--release-rule-strong);
}

.app-page .community-v3 :is(.community-list, .community-chat, .community-context) {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.app-page .community-v3 .community-chat {
    border-inline: 1px solid var(--release-rule);
}

.app-page .community-list-head {
    border-bottom: 1px solid var(--release-rule);
}

.app-page .friend-search-card {
    border: 1px solid var(--release-rule);
    border-radius: 5px;
    background: var(--release-pine);
}

.app-page :is(.friend-list-card, .contact-row, .invite-mini, .friendship-card) {
    border: 0;
    border-bottom: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
}

.app-page :is(.friend-list-card, .contact-row):hover {
    background: rgba(217, 184, 95, .04);
}

.app-page .chat-message {
    max-width: min(72%, 580px);
    border-radius: 5px;
}

.app-page .profile-menu {
    color: var(--release-snow);
}

.app-page .profile-menu-backdrop {
    background: rgba(2, 6, 5, .7);
}

.app-page .profile-sheet {
    border-left: 1px solid var(--release-rule-strong);
    border-radius: 0;
    background: var(--release-glass-strong);
    box-shadow: var(--release-shadow-deep);
}

.app-page .profile-menu-header {
    border-bottom: 1px solid var(--release-rule);
}

.app-page .profile-menu-group > span {
    color: var(--release-lichen);
}

.app-page .profile-menu-links a {
    border-radius: 4px;
}

.app-page .profile-menu-links a:hover,
.app-page .profile-menu-links a.active {
    background: rgba(217, 184, 95, .07);
}

/* Editorial work pages */

.app-page :is(
    .analysis-command,
    .photos-command,
    .settings-command,
    .admin-command,
    .bucket-list-heading,
    .ideas-hero
) {
    position: relative;
    padding: 30px 0 34px;
    border: 0;
    border-bottom: 1px solid var(--release-rule-strong);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.app-page :is(
    .analysis-command,
    .photos-command,
    .settings-command,
    .admin-command,
    .bucket-list-heading,
    .ideas-hero
)::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 58px;
    height: 2px;
    background: var(--release-lichen);
}

.app-page :is(
    .analysis-command,
    .photos-command,
    .settings-command,
    .admin-command,
    .bucket-list-heading,
    .ideas-hero
) > div:first-child {
    display: grid;
    gap: 7px;
}

.app-page :is(
    .analysis-command,
    .photos-command,
    .settings-command,
    .admin-command,
    .bucket-list-heading,
    .ideas-hero
) :is(h2, h3, p) {
    margin: 0;
}

.app-page :is(
    .analysis-command,
    .photos-command,
    .settings-command,
    .admin-command,
    .bucket-list-heading,
    .ideas-hero
) h2 {
    max-width: 760px;
    color: var(--release-snow);
    font-size: 2.2rem;
    line-height: 1.06;
}

.app-page :is(
    .analysis-command,
    .photos-command,
    .settings-command,
    .admin-command,
    .bucket-list-heading,
    .ideas-hero
) p {
    max-width: 660px;
    color: var(--release-mist);
    font-size: .88rem;
    line-height: 1.65;
}

.app-page :is(
    .analysis-command,
    .photos-command,
    .settings-command,
    .admin-command,
    .bucket-list-heading,
    .ideas-hero
) > div:first-child > span,
.app-page .ideas-hero .panel-title > span {
    color: var(--release-lichen);
    font-size: .62rem;
    font-weight: 780;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.app-page :is(.analysis-command, .photos-command, .admin-command) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 28px;
    align-items: end;
}

.app-page :is(.analysis-command-metrics, .photos-command-metrics, .admin-command-metrics) {
    display: grid;
    grid-template-columns: repeat(3, minmax(96px, 1fr));
    border-block: 1px solid var(--release-rule);
}

.app-page :is(.analysis-command-metrics, .photos-command-metrics, .admin-command-metrics) > span {
    min-height: 68px;
    display: grid;
    place-content: center;
    gap: 3px;
    padding: 10px 18px;
    border-left: 1px solid var(--release-rule);
}

.app-page :is(.analysis-command-metrics, .photos-command-metrics, .admin-command-metrics) > span:first-child {
    border-left: 0;
}

.app-page :is(.analysis-command-metrics, .photos-command-metrics, .admin-command-metrics) strong {
    color: var(--release-snow);
    font-size: 1.18rem;
    font-variant-numeric: tabular-nums;
}

.app-page :is(.analysis-command-metrics, .photos-command-metrics, .admin-command-metrics) em {
    color: var(--release-muted);
    font-size: .58rem;
    font-style: normal;
    text-transform: uppercase;
}

/* Analysis */

.app-page .analysis-hub {
    color: var(--release-snow);
}

.app-page .analysis-ledger {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--release-rule);
}

.app-page .analysis-ledger > a {
    min-height: 132px;
    display: grid;
    grid-template-columns: 34px 42px minmax(0, 1fr) 24px;
    align-items: center;
    gap: 14px;
    padding: 22px 18px 22px 0;
    color: inherit;
    border-bottom: 1px solid var(--release-rule);
    text-decoration: none;
    transition:
        padding var(--release-standard),
        background-color var(--release-fast);
}

.app-page .analysis-ledger > a:nth-child(even) {
    padding-left: 22px;
    border-left: 1px solid var(--release-rule);
}

.app-page .analysis-ledger > a:hover {
    padding-inline-start: 12px;
    background: rgba(217, 184, 95, .035);
}

.app-page .analysis-ledger > a:nth-child(even):hover {
    padding-inline-start: 34px;
}

.app-page .analysis-ledger-index {
    align-self: start;
    color: var(--release-muted);
    font-size: .58rem;
    font-variant-numeric: tabular-nums;
}

.app-page .analysis-ledger-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    color: var(--release-lichen-bright);
    border: 1px solid var(--release-rule-strong);
}

.app-page .analysis-ledger :is(.analysis-ledger-icon, .analysis-ledger-arrow) svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.app-page .analysis-ledger-copy {
    min-width: 0;
    display: grid;
    gap: 4px;
}

.app-page .analysis-ledger-copy small {
    color: var(--release-lichen);
    font-size: .58rem;
    text-transform: uppercase;
}

.app-page .analysis-ledger-copy strong {
    color: var(--release-snow);
    font-size: 1.12rem;
}

.app-page .analysis-ledger-copy em {
    color: var(--release-muted);
    font-size: .76rem;
    font-style: normal;
}

.app-page .analysis-ledger-arrow {
    color: var(--release-muted);
}

.app-page .view[data-route="progress"] > .stats-grid,
.app-page .view[data-route="year"] .stats-grid,
.app-page .view[data-route="stats"] > .stats-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    border-block: 1px solid var(--release-rule-strong);
}

.app-page :is(
    .view[data-route="progress"],
    .view[data-route="year"],
    .view[data-route="stats"]
) .stats-grid > .stat {
    min-height: 96px;
    border: 0;
    border-left: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
}

.app-page :is(
    .view[data-route="progress"],
    .view[data-route="year"],
    .view[data-route="stats"]
) .stats-grid > .stat:first-child {
    border-left: 0;
}

.app-page :is(
    .view[data-route="progress"],
    .view[data-route="year"],
    .view[data-route="stats"]
) .stats-grid > .stat .card-body {
    min-height: inherit;
    display: grid;
    place-content: center;
    gap: 5px;
    padding: 16px;
}

.app-page :is(
    .view[data-route="progress"],
    .view[data-route="year"],
    .view[data-route="stats"]
) .stats-grid > .stat strong {
    color: var(--release-snow);
    font-size: 1.25rem;
    font-variant-numeric: tabular-nums;
}

.app-page :is(
    .view[data-route="progress"],
    .view[data-route="year"],
    .view[data-route="stats"]
) .stats-grid > .stat span {
    color: var(--release-muted);
    font-size: .62rem;
    text-transform: uppercase;
}

.app-page :is(
    .view[data-route="progress"],
    .view[data-route="goal4000"],
    .view[data-route="compare"],
    .view[data-route="year"],
    .view[data-route="training"],
    .view[data-route="badges"],
    .view[data-route="notifications"],
    .view[data-route="security"],
    .view[data-route="sync"]
) > :is(.card, .grid, .training-layout, .badge-page, .notifications-center) {
    margin-top: 0;
}

.app-page :is(
    .view[data-route="progress"],
    .view[data-route="goal4000"],
    .view[data-route="compare"],
    .view[data-route="year"],
    .view[data-route="training"],
    .view[data-route="badges"],
    .view[data-route="notifications"],
    .view[data-route="security"],
    .view[data-route="sync"]
) :is(.grid.two-col, .training-layout, .security-center) {
    gap: 0 36px;
}

.app-page :is(
    .view[data-route="progress"],
    .view[data-route="goal4000"],
    .view[data-route="compare"],
    .view[data-route="year"],
    .view[data-route="training"],
    .view[data-route="badges"],
    .view[data-route="notifications"],
    .view[data-route="security"],
    .view[data-route="sync"]
) :is(.grid.two-col, .training-layout, .security-center) > .card,
.app-page .badge-page > .card,
.app-page .notifications-center > .card {
    padding: 28px 0;
    border: 0;
    border-bottom: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
}

.app-page :is(
    .view[data-route="progress"],
    .view[data-route="goal4000"],
    .view[data-route="compare"],
    .view[data-route="year"],
    .view[data-route="training"],
    .view[data-route="badges"],
    .view[data-route="notifications"],
    .view[data-route="security"],
    .view[data-route="sync"]
) :is(.grid.two-col, .training-layout, .security-center) > .card .card-body,
.app-page .badge-page > .card .card-body,
.app-page .notifications-center > .card .card-body {
    padding: 0;
}

.app-page .training-chart,
.app-page .badge-detail-panel,
.app-page .table-wrap {
    border: 1px solid var(--release-rule);
    border-radius: 5px;
    background: rgba(16, 24, 21, .58);
}

.app-page .training-chart span,
.app-page :is(.bar-row, .score-row) i,
.app-page .progress > span {
    background: var(--release-lichen);
}

/* Bucket list */

.app-page .bucket-list-page {
    width: 100%;
    max-width: none;
    gap: 0;
}

.app-page .bucket-list-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 28px;
}

.app-page .bucket-list-heading-actions {
    align-items: center;
}

.app-page .bucket-list-heading-actions > strong {
    min-width: 46px;
    height: auto;
    color: var(--release-snow);
    border: 0;
    border-right: 1px solid var(--release-rule);
    border-radius: 0;
    font-size: 1.35rem;
    font-variant-numeric: tabular-nums;
}

.app-page .bucket-list-collection {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    border-top: 1px solid var(--release-rule);
}

.app-page .bucket-list-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .72fr);
    gap: 14px 34px;
    padding: 26px 0;
    border: 0;
    border-bottom: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.app-page .bucket-list-card > header {
    grid-column: 1;
}

.app-page .bucket-list-card-icon {
    width: 38px;
    height: 38px;
    color: var(--release-lichen-bright);
    border-color: var(--release-rule-strong);
    border-radius: 3px;
    background: transparent;
}

.app-page .bucket-list-card header small {
    color: var(--release-lichen);
    font-size: .58rem;
}

.app-page .bucket-list-card h3 {
    color: var(--release-snow);
    font-size: 1.18rem;
}

.app-page .bucket-list-meta {
    grid-column: 1;
}

.app-page .bucket-list-meta span {
    padding: 0;
    color: var(--release-muted);
    border: 0;
    border-radius: 0;
    background: transparent;
}

.app-page .bucket-list-meta span + span::before {
    content: "·";
    margin-right: 8px;
    color: var(--release-lichen);
}

.app-page .bucket-route-facts {
    grid-column: 2;
    grid-row: 1 / 4;
    align-self: stretch;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 0;
    border: 1px solid var(--release-rule);
}

.app-page .bucket-route-facts span {
    min-height: 64px;
    place-content: center;
    padding: 10px 16px;
    border-left: 1px solid var(--release-rule);
    border-top: 1px solid var(--release-rule);
}

.app-page .bucket-route-facts span:nth-child(odd) {
    border-left: 0;
}

.app-page .bucket-route-facts span:nth-child(-n + 2) {
    border-top: 0;
}

.app-page .bucket-route-facts strong {
    color: var(--release-snow);
    font-variant-numeric: tabular-nums;
}

.app-page .bucket-list-card > p {
    grid-column: 1;
}

.app-page .bucket-list-card > footer {
    grid-column: 1 / -1;
    grid-template-columns: auto minmax(170px, 240px) auto 1fr;
    align-items: end;
    padding-top: 16px;
    border-top: 1px solid var(--release-rule);
}

.app-page .bucket-list-card .bucket-remove {
    grid-column: 4;
    justify-self: end;
}

.app-page .bucket-list-empty {
    border: 0;
    border-bottom: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
}

/* Tour ideas */

.app-page .ideas-page {
    max-width: none;
}

.app-page .ideas-hero {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(320px, .65fr);
    align-items: end;
    gap: 42px;
}

.app-page .ideas-hero .panel-title {
    display: grid;
    gap: 7px;
}

.app-page .ideas-page .plan-chat-panel {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    grid-template-rows: minmax(300px, auto) auto;
    margin-top: 30px;
    overflow: visible;
    border: 1px solid var(--release-rule);
    border-radius: 5px;
    background: rgba(16, 24, 21, .48);
}

.app-page .ideas-page .plan-chat-head {
    grid-column: 1;
    grid-row: 1 / 3;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: 24px;
    border-right: 1px solid var(--release-rule);
    border-bottom: 0;
    background: rgba(8, 11, 11, .38);
}

.app-page .ideas-page .plan-chat-head h3 {
    margin: 5px 0 0;
    color: var(--release-snow);
    font-size: 1.3rem;
}

.app-page .ideas-page .plan-chat-thread {
    grid-column: 2;
    grid-row: 1;
    min-height: 340px;
    max-height: min(52vh, 540px);
    padding: 26px 28px;
}

.app-page .ideas-page .plan-chat-actions {
    grid-column: 2;
    grid-row: 2;
    padding: 20px 28px 24px;
    border-top: 1px solid var(--release-rule);
}

.app-page .plan-chat-bubble {
    border: 0;
    border-left: 2px solid var(--release-rule-strong);
    border-radius: 0;
    background: transparent;
}

.app-page .plan-chat-message.mine .plan-chat-bubble {
    border-left-color: var(--release-lichen);
    background: rgba(217, 184, 95, .045);
}

.app-page :is(.plan-chat-chip, .plan-chat-check) {
    border-radius: 4px;
    background: transparent;
}

/* Photos */

.app-page .photos-page {
    color: var(--release-snow);
}

.app-page .photos-command .page-actions {
    align-self: start;
    justify-content: flex-end;
    margin: 0;
}

.app-page .photos-command .page-actions svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.app-page .photos-command-metrics {
    grid-column: 1 / -1;
    margin-top: 8px;
}

.app-page .album-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 24px;
    margin-top: 28px;
    border-top: 1px solid var(--release-rule);
}

.app-page .album-card {
    min-width: 0;
    overflow: hidden;
    padding: 22px 0 28px;
    border: 0;
    border-bottom: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
}

.app-page .album-cover {
    width: 100%;
    aspect-ratio: 4 / 3;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: 2px;
    overflow: hidden;
    padding: 0;
    border: 0;
    border-radius: 3px;
    background: var(--release-pine);
}

.app-page .album-cover img {
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
    border-radius: 0;
    filter: saturate(.82) contrast(1.03);
    transition: transform var(--release-slow);
}

.app-page .album-cover img:only-child {
    grid-column: 1 / -1;
    grid-row: 1 / -1;
}

.app-page .album-cover:hover img {
    transform: scale(1.018);
}

.app-page .album-card .card-body {
    display: grid;
    gap: 8px;
    padding: 16px 0 0;
}

.app-page .album-card-kicker {
    color: var(--release-lichen);
    font-size: .58rem;
    font-weight: 760;
    text-transform: uppercase;
}

.app-page .album-card h3 {
    margin: 0;
    color: var(--release-snow);
    font-size: 1.08rem;
}

.app-page .album-card .muted {
    margin: 0;
}

.app-page .album-card-facts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 6px;
    border-block: 1px solid var(--release-rule);
}

.app-page .album-card-facts > span {
    min-width: 0;
    display: grid;
    gap: 3px;
    padding: 10px;
    border-left: 1px solid var(--release-rule);
}

.app-page .album-card-facts > span:first-child {
    border-left: 0;
}

.app-page .album-card-facts strong {
    overflow: hidden;
    color: var(--release-snow);
    font-size: .76rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-page .album-card-facts em {
    color: var(--release-muted);
    font-size: .56rem;
    font-style: normal;
    text-transform: uppercase;
}

.app-page .album-card .actions {
    margin-top: 6px;
}

.app-page .view[data-route="photos"] > .workflow-card,
.app-page .view[data-route="photos"] > .empty-state {
    padding: 30px 0;
    border: 0;
    border-block: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
}

.app-page .view[data-route="photos"] > :is(.workflow-card, .empty-state) .card-body {
    max-width: 760px;
    padding: 0;
}

/* Settings and administration */

.app-page .settings-page,
.app-page .admin-page {
    color: var(--release-snow);
}

.app-page .settings-layout {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(380px, 1.2fr);
    gap: 0 44px;
    margin-top: 30px;
    border-top: 1px solid var(--release-rule);
}

.app-page .settings-panel {
    padding: 26px 0;
    border-bottom: 1px solid var(--release-rule);
}

.app-page .settings-panel + .settings-panel {
    border-left: 1px solid var(--release-rule);
    padding-left: 44px;
}

.app-page .settings-panel-head {
    display: grid;
    gap: 5px;
    margin-bottom: 22px;
}

.app-page .settings-panel-head span {
    color: var(--release-lichen);
    font-size: .58rem;
    font-weight: 760;
    text-transform: uppercase;
}

.app-page .settings-panel-head h3 {
    margin: 0;
    color: var(--release-snow);
    font-size: 1.25rem;
}

.app-page .settings-form-panel form {
    display: grid;
    gap: 18px;
}

.app-page .settings-status-list {
    border-top: 1px solid var(--release-rule);
}

.app-page .settings-status-list p {
    display: grid;
    grid-template-columns: minmax(130px, .65fr) minmax(0, 1fr);
    gap: 20px;
    margin: 0;
    padding: 12px 0;
    border-bottom: 1px solid var(--release-rule);
}

.app-page .settings-status-list span {
    color: var(--release-muted);
    font-size: .7rem;
}

.app-page .settings-status-list strong {
    color: var(--release-snow);
    font-size: .72rem;
    font-weight: 650;
}

.app-page .admin-page > :is(.card, .admin-users),
.app-page .admin-page > .admin-overview-grid > .card {
    padding: 28px 0;
    border: 0;
    border-bottom: 1px solid var(--release-rule);
    border-radius: 0;
    background: transparent;
}

.app-page .admin-page > :is(.card, .admin-users) .card-body,
.app-page .admin-page > .admin-overview-grid > .card .card-body {
    padding: 0;
}

.app-page .admin-overview-grid {
    gap: 0 44px;
}

.app-page .admin-user-grid {
    gap: 16px;
}

.app-page .admin-user-card {
    border: 1px solid var(--release-rule);
    border-radius: 5px;
    background: rgba(16, 24, 21, .5);
}

.app-page :is(.system-status-tile, .waitlist-row, .admin-lock-row, .admin-event-row) {
    border-radius: 3px;
    background: transparent;
}

.app-page .system-status-tile.ok {
    border-color: var(--release-rule);
}

.app-page .system-status-tile.ok > span {
    color: var(--release-lichen-bright);
    background: transparent;
}

/* Feedback and overlays */

.app-page #toast-stack {
    gap: 8px;
}

.app-page .toast {
    min-width: min(360px, calc(100vw - 24px));
    overflow: hidden;
    border: 1px solid var(--release-rule-strong);
    border-radius: 6px;
    background: var(--release-glass-strong);
    box-shadow: var(--release-shadow-deep);
}

.app-page .toast.error {
    border-color: rgba(229, 104, 95, .44);
}

.app-page .toast.warn {
    border-color: rgba(217, 184, 95, .42);
}

.app-page .toast-icon {
    color: var(--release-lichen-bright);
    background: transparent;
}

.app-page :is(.toast-icon, .toast-close) svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.app-page .modal {
    background: rgba(2, 6, 5, .72);
}

.app-page .modal-card {
    border: 1px solid var(--release-rule-strong);
    border-radius: 7px;
    background: var(--release-rock-raised);
    box-shadow: var(--release-shadow-deep);
}

.app-page .skeleton {
    background:
        linear-gradient(90deg, transparent, rgba(255, 255, 255, .055), transparent),
        var(--release-pine);
}

.app-page .view:not(.fullscreen-view) > * {
    animation: release-view-in 280ms cubic-bezier(.2, .75, .25, 1) both;
}

@keyframes release-view-in {
    from {
        opacity: 0;
        transform: translateY(5px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Tablet */

@media (max-width: 1120px) {
    .landing-page .landing-hero {
        grid-template-columns: minmax(0, 1fr) 330px;
    }

    .landing-page .hero-content h1 {
        font-size: 4.4rem;
    }

    .landing-page .why-waitlist {
        gap: 48px;
    }

    .app-page .dashboard-main .discovery-hero-copy h2 {
        font-size: 2.8rem;
    }

    .app-page .tour-card {
        grid-template-columns: 150px minmax(0, 1fr);
    }

    .app-page .tour-card > img {
        width: 150px;
    }

    .app-page .tour-card-facts {
        grid-template-columns: repeat(4, minmax(62px, 1fr));
    }

    .app-page .tour-card-facts > span {
        padding-inline: 9px;
    }
}

/* Mobile and compact tablet */

@media (max-width: 979px) {
    .landing-page .site-header,
    .legal-page .site-header {
        width: calc(100% - 32px);
        min-height: 66px;
    }

    .landing-page .brand img,
    .legal-page .brand img {
        width: 38px;
        height: 38px;
    }

    .landing-page .brand small,
    .legal-page .brand small {
        display: none;
    }

    .landing-page .menu-toggle,
    .legal-page .menu-toggle {
        position: relative;
        display: grid;
    }

    .landing-page #site-nav,
    .legal-page #site-nav {
        position: absolute;
        top: 58px;
        right: 0;
        width: min(310px, calc(100vw - 32px));
        display: grid;
        gap: 0;
        padding: 8px;
        visibility: hidden;
        border: 1px solid var(--release-rule-strong);
        border-radius: 6px;
        background: var(--release-glass-strong);
        box-shadow: var(--release-shadow-deep);
        opacity: 0;
        transform: translateY(-7px);
        transition:
            opacity var(--release-standard),
            transform var(--release-standard),
            visibility var(--release-standard);
    }

    .landing-page .nav-open #site-nav,
    .legal-page .nav-open #site-nav {
        visibility: visible;
        opacity: 1;
        transform: translateY(0);
    }

    .landing-page #site-nav a,
    .legal-page #site-nav a {
        min-height: 46px;
        display: flex;
        align-items: center;
        padding: 0 12px;
        border-bottom: 1px solid var(--release-rule);
    }

    .landing-page #site-nav a::after,
    .legal-page #site-nav a::after {
        display: none;
    }

    .landing-page #site-nav .nav-login,
    .legal-page #site-nav .nav-login {
        margin-top: 8px;
        color: var(--color-primary-ink);
        border-bottom: 0;
    }

    .landing-page .landing-hero {
        min-height: 94svh;
        grid-template-columns: 1fr;
        align-content: end;
        gap: 28px;
        padding: 106px 20px 70px;
    }

    .landing-page .hero-bg {
        object-position: 58% center;
    }

    .landing-page .hero-shade {
        background:
            linear-gradient(90deg, rgba(3, 8, 7, .78), rgba(3, 8, 7, .15)),
            linear-gradient(180deg, rgba(3, 8, 7, .18), rgba(3, 8, 7, .06) 35%, rgba(3, 8, 7, .94));
    }

    .landing-page .hero-content {
        padding-bottom: 0;
    }

    .landing-page .hero-content h1 {
        max-width: 8ch;
        margin-top: 14px;
        font-size: 3.6rem;
    }

    .landing-page .hero-content .lead {
        max-width: 520px;
        font-size: 1.18rem;
    }

    .landing-page .hero-waitlist-note {
        font-size: .84rem;
    }

    .landing-page .hero-route-brief {
        display: none;
    }

    .landing-page .hero-scroll {
        right: 20px;
        bottom: 24px;
        left: auto;
    }

    .landing-page .highlight-strip {
        width: calc(100% - 32px);
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .landing-page .highlight-strip p:nth-child(3) {
        border-left: 0;
        border-top: 1px solid var(--release-rule);
    }

    .landing-page .highlight-strip p:nth-child(4) {
        border-top: 1px solid var(--release-rule);
    }

    .landing-page .section {
        width: calc(100% - 32px);
        padding-block: 72px;
    }

    .landing-page .section-head {
        margin-bottom: 36px;
    }

    .landing-page .section-head h2,
    .landing-page .showcase-panorama h2,
    .landing-page .waitlist-cta h2 {
        font-size: 2.15rem;
    }

    .landing-page .product-stage {
        grid-template-columns: 1fr;
    }

    .landing-page .product-stage-map {
        min-height: 430px;
        border-right: 0;
        border-bottom: 1px solid var(--release-rule-strong);
    }

    .landing-page .product-stage-steps li {
        min-height: 160px;
    }

    .landing-page .why-waitlist,
    .landing-page .waitlist-cta {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .landing-page .showcase-panorama {
        min-height: 500px;
    }

    .landing-page .showcase-panorama > div {
        padding: 30px;
    }

    .landing-page .showcase-ledger {
        grid-template-columns: repeat(2, 1fr);
    }

    .landing-page .showcase-ledger > span:nth-child(3) {
        border-left: 0;
        border-top: 1px solid var(--release-rule);
    }

    .landing-page .showcase-ledger > span:nth-child(4) {
        border-top: 1px solid var(--release-rule);
    }

    .landing-page .waitlist-cta {
        margin-bottom: 64px;
        padding: 52px 0;
    }

    .legal-page .content-page {
        width: calc(100% - 32px);
        padding: 72px 0 88px;
    }

    .legal-page .content-page > h1 {
        margin-bottom: 48px;
        font-size: 3rem;
    }

    .legal-page .legal-card {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 28px 0 34px;
    }

    .legal-page .legal-card > h2 {
        grid-column: 1;
        grid-row: auto;
    }

    .legal-page .legal-card > :not(h2) {
        grid-column: 1;
    }

    .legal-page .legal-note::before {
        top: 28px;
        bottom: 34px;
        left: -10px;
    }

    .app-page .auth-shell {
        grid-template-columns: 1fr;
    }

    .app-page .auth-brand {
        display: none;
    }

    .app-page .auth-form-col {
        min-height: 100svh;
        align-items: start;
        padding: 34px 20px 56px;
        background:
            linear-gradient(180deg, rgba(5, 10, 9, .28), var(--release-rock) 310px),
            url("../../public/ai-assets/hero-alpine-dawn.webp") center top / auto 340px no-repeat;
    }

    .app-page .auth-panel {
        width: min(100%, 470px);
        margin-top: 18px;
        padding: 22px;
        border: 1px solid var(--release-rule-strong);
        border-radius: 7px;
        background: rgba(8, 13, 11, .88);
    }

    .app-page .auth-logo-mobile {
        display: inline-flex;
        margin-bottom: 34px;
    }

    .app-page .auth-panel h1 {
        font-size: 1.85rem;
    }

    .app-page .app-shell:not(.fullscreen-mode) main {
        padding: 0 12px calc(var(--mobile-navigation-height) + 34px);
    }

    .app-page .topbar {
        top: 8px;
        min-height: 52px;
        margin: 8px 0 16px;
        padding: 6px 7px 6px 12px;
    }

    .app-page #view-title {
        font-size: .98rem;
    }

    .app-page .profile-entry strong,
    .app-page .profile-entry em {
        display: none;
    }

    .app-page main.dashboard-main {
        padding: 0 8px calc(var(--mobile-navigation-height) + 32px);
    }

    .app-page .dashboard-main .topbar {
        top: 16px;
        right: 18px;
        left: 18px;
    }

    .app-page .dashboard-main .discovery-hero {
        min-height: 590px;
        margin-top: 8px;
        padding: 88px 18px 18px;
        background-position: 60% center;
    }

    .app-page .dashboard-main .discovery-hero-copy {
        padding: 72px 0 24px;
    }

    .app-page .dashboard-main .discovery-hero-copy h2 {
        font-size: 2.35rem;
    }

    .app-page .dashboard-main .discovery-weather-button span {
        display: none;
    }

    .app-page .dashboard-main .discovery-hero-facts > span {
        min-width: 0;
        flex: 1 1 30%;
        padding-right: 10px;
    }

    .app-page .dashboard-main .discovery-hero-facts > span + span {
        padding-left: 10px;
    }

    .app-page .dashboard-main .discovery-hero-footer {
        display: grid;
        grid-template-columns: 1fr;
    }

    .app-page .dashboard-main .discovery-stats {
        border-top: 1px solid rgba(255, 255, 255, .14);
    }

    .app-page .dashboard-main .discovery-quick-actions {
        width: calc(100% - 28px);
    }

    .app-page .dashboard-momentum {
        grid-template-columns: 1fr;
    }

    .app-page .dashboard-momentum > div {
        border-left: 0;
        border-top: 1px solid var(--release-rule);
    }

    .app-page .dashboard-momentum > div:first-child {
        border-top: 0;
    }

    .app-page :is(.discovery-tour-section, .discovery-weather-section, .discovery-map-section) {
        padding: 46px 0;
    }

    .app-page .discovery-tour-card {
        width: 224px;
        min-width: 224px;
    }

    .app-page .tours-hub-command {
        grid-template-columns: 1fr;
    }

    .app-page .tours-hub-actions {
        display: flex;
    }

    .app-page .tours-hub-metrics {
        grid-template-columns: repeat(2, 1fr);
    }

    .app-page .tours-hub-metrics > span:nth-child(3) {
        border-left: 0;
        border-top: 1px solid var(--release-rule);
    }

    .app-page .tours-hub-metrics > span:nth-child(4) {
        border-top: 1px solid var(--release-rule);
    }

    .app-page .tours-hub-insights {
        grid-template-columns: 1fr;
    }

    .app-page .tours-hub-insights > p {
        border-left: 0;
        border-top: 1px solid var(--release-rule);
    }

    .app-page .tour-card {
        grid-template-columns: 118px minmax(0, 1fr);
        min-height: 126px;
    }

    .app-page .tour-card > img {
        width: 118px;
        height: 126px;
    }

    .app-page .tour-card .card-body {
        display: block;
        padding: 16px;
    }

    .app-page .tour-card .muted {
        margin-top: 6px;
        white-space: normal;
    }

    .app-page .tour-card-facts {
        display: flex;
        margin-top: 13px;
        padding-top: 10px;
        border-top: 1px solid var(--release-rule);
        border-left: 0;
    }

    .app-page .tour-card-facts > span {
        padding: 0 9px;
    }

    .app-page .tour-card-facts > span:first-child {
        padding-left: 0;
    }

    .app-page .profile-cover-card {
        grid-template-columns: 1fr;
    }

    .app-page .profile-cover-actions {
        justify-content: start;
    }

    .app-page .profile-facts {
        grid-template-columns: repeat(2, 1fr);
    }

    .app-page .profile-facts > div:nth-child(3) {
        border-left: 0;
        border-top: 1px solid var(--release-rule);
    }

    .app-page .profile-facts > div:nth-child(4) {
        border-top: 1px solid var(--release-rule);
    }

    .app-page .profile-tab {
        min-width: 112px;
    }

    .app-page .mobile-tabbar {
        position: fixed !important;
        right: 10px;
        bottom: 10px;
        left: 10px;
        width: auto;
        margin: 0;
        min-height: 66px;
        padding: 5px;
        border: 1px solid var(--release-rule-strong);
        border-radius: 7px;
        background: var(--release-glass-strong);
        box-shadow: var(--release-shadow-deep);
    }

    .app-page .mobile-tabbar.onboarding-spotlight-target {
        position: fixed !important;
    }

    .app-page .mobile-tab {
        min-width: 0;
        min-height: 54px;
        border-radius: 5px;
    }

    .app-page .mobile-tab.active {
        color: var(--release-lichen-bright);
        background: rgba(217, 184, 95, .07);
    }

    .app-page .mobile-tab-primary {
        color: var(--color-primary-ink);
        background: var(--release-lichen);
    }

    .app-page .mobile-tab-primary.active {
        color: var(--color-primary-ink);
        background: var(--release-lichen-bright);
    }

    .app-page :is(.analysis-command, .photos-command, .admin-command) {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .app-page :is(.analysis-command-metrics, .photos-command-metrics, .admin-command-metrics) {
        width: 100%;
    }

    .app-page .analysis-ledger {
        grid-template-columns: 1fr;
    }

    .app-page .analysis-ledger > a:nth-child(even) {
        padding-left: 0;
        border-left: 0;
    }

    .app-page .analysis-ledger > a:nth-child(even):hover {
        padding-inline-start: 12px;
    }

    .app-page .bucket-list-card {
        grid-template-columns: 1fr;
    }

    .app-page .bucket-route-facts {
        grid-column: 1;
        grid-row: auto;
    }

    .app-page .bucket-list-card > footer {
        grid-column: 1;
    }

    .app-page .ideas-hero {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .app-page .ideas-page .plan-chat-panel {
        grid-template-columns: 1fr;
        grid-template-rows: auto minmax(300px, auto) auto;
    }

    .app-page .ideas-page .plan-chat-head {
        grid-column: 1;
        grid-row: 1;
        flex-direction: row;
        align-items: center;
        padding: 18px 20px;
        border-right: 0;
        border-bottom: 1px solid var(--release-rule);
    }

    .app-page .ideas-page .plan-chat-thread {
        grid-column: 1;
        grid-row: 2;
    }

    .app-page .ideas-page .plan-chat-actions {
        grid-column: 1;
        grid-row: 3;
    }

    .app-page .album-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .app-page .settings-layout {
        grid-template-columns: 1fr;
    }

    .app-page .settings-panel + .settings-panel {
        padding-left: 0;
        border-left: 0;
    }

    .app-page .admin-overview-grid {
        grid-template-columns: 1fr;
    }

    .app-page :is(
        .view[data-route="progress"],
        .view[data-route="goal4000"],
        .view[data-route="year"],
        .view[data-route="training"],
        .view[data-route="security"],
        .view[data-route="sync"]
    ) :is(.grid.two-col, .training-layout, .security-center) {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    .landing-page .highlight-strip {
        grid-template-columns: 1fr;
    }

    .landing-page .highlight-strip p {
        border-left: 0;
        border-top: 1px solid var(--release-rule);
    }

    .landing-page .highlight-strip p:first-child {
        border-top: 0;
    }

    .landing-page .feature-grid,
    .landing-page .platform-grid {
        grid-template-columns: 1fr;
    }

    .landing-page .feature-card,
    .landing-page .platform-card {
        min-height: 0;
        border-right: 0;
    }

    .landing-page .why-points li {
        grid-template-columns: 32px minmax(0, 1fr);
    }

    .landing-page .why-points em {
        grid-column: 2;
    }

    .landing-page .showcase-panorama {
        min-height: 540px;
    }

    .landing-page .showcase-panorama > img {
        object-position: 62% center;
    }

    .landing-page .showcase-panorama > div {
        padding: 24px 20px;
    }

    .landing-page footer,
    .legal-page footer {
        width: calc(100% - 32px);
        display: grid;
    }

    .legal-page .legal-card dl {
        grid-template-columns: 1fr;
    }

    .legal-page .legal-card dt {
        padding-bottom: 4px;
        border-bottom: 0;
    }

    .legal-page .legal-card dd {
        padding-top: 4px;
    }

    .app-page .auth-form-col {
        padding-inline: 12px;
    }

    .app-page .auth-panel {
        padding: 18px;
    }

    .app-page .section-grid {
        grid-template-columns: 1fr;
    }

    .app-page .dashboard-main .discovery-hero-copy h2 {
        font-size: 2rem;
    }

    .app-page .dashboard-main .discovery-hero-facts em {
        font-size: .56rem;
    }

    .app-page .dashboard-main .discovery-hero-facts strong {
        font-size: .72rem;
    }

    .app-page .dashboard-main .discovery-quick-actions {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        padding-inline: 4px;
    }

    .app-page .dashboard-main :is(.discovery-quick-action, .discovery-more-actions > summary) em {
        font-size: .59rem;
    }

    .app-page .tour-card {
        grid-template-columns: 96px minmax(0, 1fr);
    }

    .app-page .tour-card > img {
        width: 96px;
    }

    .app-page .tour-card-facts {
        gap: 8px;
        overflow-x: auto;
    }

    .app-page .tour-card-facts > span {
        min-width: 64px;
        padding-inline: 8px;
    }

    .app-page .profile-cover-main {
        align-items: start;
    }

    .app-page :is(
        .analysis-command,
        .photos-command,
        .settings-command,
        .admin-command,
        .bucket-list-heading,
        .ideas-hero
    ) {
        padding-block: 24px 28px;
    }

    .app-page :is(
        .analysis-command,
        .photos-command,
        .settings-command,
        .admin-command,
        .bucket-list-heading,
        .ideas-hero
    ) h2 {
        font-size: 1.78rem;
    }

    .app-page .bucket-list-heading {
        grid-template-columns: 1fr;
    }

    .app-page .bucket-list-heading-actions {
        justify-content: space-between;
    }

    .app-page .bucket-list-card > footer {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .app-page .bucket-list-card > footer > *,
    .app-page .bucket-list-card .bucket-remove {
        grid-column: 1;
        width: 100%;
        justify-self: stretch;
    }

    .app-page .ideas-page .plan-chat-thread {
        min-height: 300px;
        padding: 20px 16px;
    }

    .app-page .ideas-page .plan-chat-actions {
        padding: 16px;
    }

    .app-page .album-grid {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .app-page .album-card {
        display: grid;
        grid-template-columns: minmax(120px, .8fr) minmax(0, 1.2fr);
        gap: 16px;
    }

    .app-page .album-cover {
        aspect-ratio: 1;
    }

    .app-page .album-card .card-body {
        align-content: center;
        padding-top: 0;
    }

    .app-page .album-card-facts > span {
        padding-inline: 6px;
    }

    .app-page .album-card .actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .app-page .settings-status-list p {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .app-page :is(
        .view[data-route="progress"],
        .view[data-route="year"],
        .view[data-route="stats"]
    ) .stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .app-page :is(
        .view[data-route="progress"],
        .view[data-route="year"],
        .view[data-route="stats"]
    ) .stats-grid > .stat:nth-child(odd) {
        border-left: 0;
    }

    .app-page :is(
        .view[data-route="progress"],
        .view[data-route="year"],
        .view[data-route="stats"]
    ) .stats-grid > .stat:nth-child(n + 3) {
        border-top: 1px solid var(--release-rule);
    }
}

@media (max-width: 430px) {
    .landing-page .hero-content h1 {
        font-size: 3rem;
    }

    .landing-page .hero-content .lead {
        font-size: 1.04rem;
    }

    .landing-page .hero-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .landing-page .hero-actions a {
        width: 100%;
    }

    .landing-page .product-stage-map {
        min-height: 370px;
    }

    .landing-page .showcase-ledger {
        grid-template-columns: 1fr;
    }

    .landing-page .showcase-ledger > span {
        border-left: 0;
        border-top: 1px solid var(--release-rule);
    }

    .landing-page .showcase-ledger > span:first-child {
        border-top: 0;
    }

    .app-page .auth-panel h1 {
        font-size: 1.6rem;
    }

    .app-page .dashboard-main .discovery-hero {
        min-height: 620px;
    }

    .app-page .dashboard-main .discovery-hero-copy {
        padding-top: 92px;
    }

    .app-page .dashboard-main .discovery-hero-copy h2 {
        font-size: 1.82rem;
    }

    .app-page .dashboard-main .discovery-stats em {
        display: none;
    }

    .app-page .tour-card {
        grid-template-columns: 84px minmax(0, 1fr);
    }

    .app-page .tour-card > img {
        width: 84px;
    }

    .app-page .tour-card .card-body {
        padding: 13px 12px;
    }

    .app-page .tour-card h3 {
        font-size: .9rem;
    }

    .app-page .tour-card-facts > span:nth-child(4) {
        display: none;
    }

    .app-page .mobile-tab em {
        font-size: .57rem;
    }
}

@media (max-width: 360px) {
    .landing-page .site-header,
    .legal-page .site-header,
    .landing-page .highlight-strip,
    .landing-page .section,
    .landing-page footer,
    .legal-page footer,
    .legal-page .content-page {
        width: calc(100% - 24px);
    }

    .landing-page .landing-hero {
        padding-inline: 14px;
    }

    .landing-page .hero-content h1 {
        font-size: 2.7rem;
    }

    .app-page .auth-form-col {
        padding-inline: 8px;
    }

    .app-page .auth-panel {
        padding: 16px 14px;
    }

    .app-page .dashboard-main .discovery-quick-actions {
        width: calc(100% - 16px);
    }

    .app-page .mobile-tabbar {
        position: fixed !important;
        right: 6px;
        bottom: 6px;
        left: 6px;
        width: auto;
        margin: 0;
        transform: none;
    }

    .app-page .mobile-tabbar.onboarding-spotlight-target {
        position: fixed !important;
    }

    .app-page .mobile-tab {
        padding-inline: 2px;
    }

    html[data-view-mode="mobile"] .app-page .mobile-tab em {
        overflow: visible;
        font-size: .51rem;
        line-height: 1.05;
        text-overflow: clip;
        white-space: normal;
    }
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .app-page :is(.topbar, .desktop-sidebar, .desktop-nav-group-panel, .map-floating-tools, .map-control-stack, .map-results-sheet, .planner-layer-menu, .weather-bottom-sheet, .mobile-tabbar, .toast, .profile-sheet),
    .landing-page #site-nav,
    .legal-page #site-nav {
        background: var(--release-rock-raised);
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/*
 * Release layout 2: alpine route ledger
 * The dashboard is one continuous terrain workspace. Rules and a route spine
 * provide structure; only repeated tours remain framed as cards.
 */

:root {
    --release-rock: #0b100e;
    --release-rock-raised: #101713;
    --release-pine: #141d19;
    --release-slate: #1a2520;
    --release-slate-light: #233029;
    --release-glass: var(--color-paper-3);
    --release-glass-strong: var(--color-paper-4);
    --release-sidebar: 104px;
}

.app-page {
    background:
        linear-gradient(180deg, rgba(37, 57, 47, .1), transparent 420px),
        var(--release-rock);
}

@media (min-width: 980px) {
    .app-page .app-shell:not(.fullscreen-mode) main {
        padding: 0 0 88px;
    }

    .app-page .topbar,
    .app-page .dashboard-main .topbar {
        position: sticky;
        inset: 0 0 auto;
        width: 100%;
        min-height: 74px;
        margin: 0;
        padding: 0 clamp(24px, 3.5vw, 64px);
        color: var(--release-snow);
        border: 0;
        border-bottom: 1px solid var(--release-rule);
        border-radius: 0;
        background: rgba(11, 16, 14, .88);
        box-shadow: none;
    }

    html[data-view-mode="desktop"] .app-page .dashboard-main .topbar {
        position: sticky;
        inset: 0 0 auto;
        width: 100%;
        min-height: 74px;
        margin: 0;
        padding: 0 clamp(24px, 3.5vw, 64px);
        border: 0;
        border-bottom: 1px solid var(--release-rule);
        border-radius: 0;
        background: rgba(11, 16, 14, .88);
        box-shadow: none;
    }

    .app-page #view-kicker {
        margin-bottom: 3px;
        color: var(--release-muted);
        font-size: .57rem;
    }

    .app-page #view-title {
        font-size: 1.12rem;
    }

    .app-page .topbar-actions {
        gap: 8px;
    }

    .app-page .profile-entry {
        min-width: 0;
        min-height: 46px;
        padding: 3px 0 3px 6px;
        border: 0;
        border-left: 1px solid var(--release-rule);
        border-radius: 0;
        background: transparent;
    }

    .app-page .profile-entry:hover {
        border-color: var(--release-rule-strong);
        background: transparent;
    }

    .app-page .desktop-sidebar {
        width: var(--release-sidebar);
        padding: 16px 10px 14px;
        border-right-color: rgba(235, 241, 237, .1);
        background: rgba(10, 15, 13, .96);
        box-shadow: none;
    }

    .app-page .desktop-brand {
        width: 78px;
        min-height: 72px;
        place-items: start center;
        margin-bottom: 18px;
        padding-bottom: 18px;
    }

    .app-page .desktop-brand img {
        width: 48px;
        height: 48px;
        border-color: var(--release-rule);
    }

    .app-page .desktop-primary-nav {
        gap: 8px;
    }

    .app-page :is(.desktop-nav-group-toggle, .desktop-nav-group-direct) {
        width: 82px;
        min-height: 68px;
        height: 68px;
        grid-template-rows: 26px auto;
        justify-items: center;
        gap: 5px;
        padding: 8px 5px 7px;
        border-radius: 4px;
    }

    .app-page .desktop-nav-group-copy {
        min-width: 0;
        display: block;
        text-align: center;
    }

    .app-page .desktop-nav-group-copy strong {
        display: block;
        overflow: hidden;
        color: inherit;
        font-size: .6rem;
        font-weight: 680;
        line-height: 1.1;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .app-page .desktop-nav-group-copy small,
    .app-page .desktop-nav-group-chevron {
        display: none;
    }

    .app-page .desktop-nav-group-direct.active::after {
        left: -11px;
    }

    .app-page .desktop-nav-meta {
        width: 56px;
        height: 56px;
        border-radius: 50%;
        background: rgba(217, 184, 95, .05);
    }

    html[data-view-mode="desktop"] .app-page .desktop-sidebar {
        width: var(--release-sidebar);
        padding: 16px 10px 14px;
    }

    html[data-view-mode="desktop"] .app-page .desktop-brand {
        width: 78px;
        min-height: 72px;
        margin-bottom: 18px;
        padding-bottom: 18px;
    }

    html[data-view-mode="desktop"] .app-page :is(.desktop-nav-group-toggle, .desktop-nav-group-direct) {
        width: 82px;
        min-height: 68px;
        height: 68px;
        grid-template-columns: 1fr;
        grid-template-rows: 26px auto;
        justify-items: center;
        gap: 5px;
        padding: 8px 5px 7px;
        border-radius: 4px;
    }

    html[data-view-mode="desktop"] .app-page .desktop-nav-group-copy {
        min-width: 0;
        display: block;
        text-align: center;
    }

    html[data-view-mode="desktop"] .app-page .desktop-nav-group-copy strong {
        display: block;
        color: inherit;
        font-size: .6rem;
        font-weight: 680;
        line-height: 1.1;
    }

    html[data-view-mode="desktop"] .app-page .desktop-nav-group-copy small,
    html[data-view-mode="desktop"] .app-page .desktop-nav-group-chevron {
        display: none;
    }

    .app-page main.dashboard-main,
    .app-page .dashboard-main #view,
    .app-page .dashboard-main .discovery-home-v2 {
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero {
        width: 100%;
        min-height: 590px;
        margin: 0;
        padding: 0;
        overflow: hidden;
        border: 0;
        border-radius: 0;
        background-position: center 46%;
        box-shadow: none;
    }

    html[data-view-mode="desktop"] .app-page .dashboard-main .release-dashboard-v2 .discovery-hero {
        min-height: 590px;
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero::after {
        right: 0;
        bottom: 0;
        left: 0;
        height: 1px;
        opacity: .52;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-shade {
        background:
            linear-gradient(90deg, rgba(6, 11, 9, .94) 0%, rgba(6, 11, 9, .72) 35%, rgba(6, 11, 9, .2) 72%, rgba(6, 11, 9, .18) 100%),
            linear-gradient(180deg, rgba(6, 11, 9, .14), transparent 44%, rgba(6, 11, 9, .8));
    }

    .app-page .dashboard-feature-inner {
        position: relative;
        z-index: 2;
        width: min(1280px, calc(100% - 80px));
        min-height: 590px;
        display: grid;
        grid-template-rows: auto 1fr auto;
        margin: 0 auto;
        padding: 34px 0 42px;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-topline {
        position: static;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-topline > span {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        color: rgba(255, 255, 255, .64);
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-topline > span::before {
        width: 28px;
        height: 1px;
        content: "";
        background: var(--release-lichen);
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-weather-button {
        min-width: 190px;
        min-height: 46px;
        justify-content: flex-start;
        gap: 11px;
        padding: 0 0 0 20px;
        color: rgba(255, 255, 255, .82);
        border: 0;
        border-left: 1px solid rgba(255, 255, 255, .22);
        border-radius: 0;
        background: transparent;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-weather-button > svg:last-child {
        width: 16px;
        margin-left: auto;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-copy {
        max-width: 820px;
        align-self: center;
        padding: 44px 0 24px;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-copy h2 {
        max-width: 16ch;
        margin: 12px 0 12px;
        font-size: clamp(3rem, 4.3vw, 4.75rem);
        font-weight: 710;
        line-height: .98;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-route-via {
        max-width: 66ch;
        color: rgba(255, 255, 255, .76);
        font-size: .9rem;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-route-meta {
        color: rgba(255, 255, 255, .56);
        font-size: .78rem;
    }

    .app-page .dashboard-feature-lower {
        display: flex;
        align-items: end;
        justify-content: space-between;
        gap: 32px;
        padding-top: 20px;
        border-top: 1px solid rgba(255, 255, 255, .2);
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-facts {
        width: auto;
        margin: 0;
        border: 0;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-facts > span {
        min-width: 142px;
        padding: 0 24px 0 0;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-facts > span + span {
        padding-left: 24px;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-actions {
        flex: 0 0 auto;
        margin: 0;
    }

    .app-page .release-dashboard-v2 .dashboard-command-bar {
        width: min(1280px, calc(100% - 80px));
        min-height: 104px;
        display: grid;
        grid-template-columns: minmax(280px, 1fr) auto auto;
        align-items: center;
        gap: clamp(18px, 2.5vw, 40px);
        margin: 0 auto;
        padding: 18px 0;
        border: 0;
        border-bottom: 1px solid var(--release-rule-strong);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    html[data-view-mode="desktop"] .app-page .dashboard-main .release-dashboard-v2 .dashboard-command-bar {
        min-height: 104px;
        padding: 18px 0;
        overflow: visible;
        border: 0;
        border-bottom: 1px solid var(--release-rule-strong);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .app-page .release-dashboard-v2 .discovery-search-wrap {
        min-width: 0;
    }

    .app-page .release-dashboard-v2 .discovery-search {
        min-height: 48px;
        padding: 0;
        border: 0;
        border-bottom: 1px solid var(--release-rule-strong);
        border-radius: 0;
        background: transparent;
    }

    .app-page .release-dashboard-v2 .discovery-search:focus-within {
        border-bottom-color: var(--release-lichen);
        box-shadow: none;
    }

    .app-page .release-dashboard-v2 .discovery-search > span {
        color: var(--release-lichen);
    }

    .app-page .release-dashboard-v2 .discovery-search input {
        color: var(--release-snow);
        font-size: .86rem;
    }

    .app-page .release-dashboard-v2 .discovery-quick-actions {
        width: auto;
        display: flex;
        flex-wrap: nowrap;
        gap: 4px;
        margin: 0;
        padding: 0;
        overflow: visible;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .app-page .release-dashboard-v2 .discovery-quick-actions > * {
        border: 0;
    }

    .app-page .release-dashboard-v2 :is(.discovery-quick-action, .discovery-more-actions > summary) {
        min-width: 78px;
        min-height: 54px;
        display: grid;
        grid-template-columns: 20px auto;
        align-items: center;
        justify-content: center;
        gap: 7px;
        padding: 0 9px;
        color: var(--release-mist);
        border: 0;
        border-radius: 3px;
        background: transparent;
    }

    .app-page .release-dashboard-v2 :is(.discovery-quick-action, .discovery-more-actions > summary):hover {
        color: var(--release-snow);
        background: rgba(217, 184, 95, .06);
    }

    .app-page .release-dashboard-v2 .discovery-quick-action > span {
        width: 20px;
        height: 20px;
    }

    .app-page .release-dashboard-v2 .discovery-quick-action em,
    .app-page .release-dashboard-v2 .discovery-more-actions summary em {
        font-size: .68rem;
        font-style: normal;
        font-weight: 650;
        white-space: nowrap;
    }

    .app-page .release-dashboard-v2 .discovery-stats {
        display: grid;
        grid-template-columns: repeat(3, auto);
        gap: 0;
    }

    .app-page .release-dashboard-v2 .discovery-stats > span {
        min-width: 92px;
        min-height: 54px;
        display: grid;
        grid-template-columns: 18px auto;
        grid-template-rows: auto auto;
        align-content: center;
        gap: 0 7px;
        padding: 0 16px;
        border: 0;
        border-left: 1px solid var(--release-rule);
        border-radius: 0;
        background: transparent;
    }

    .app-page .release-dashboard-v2 .discovery-stats svg {
        grid-row: 1 / 3;
        align-self: center;
        color: var(--release-lichen);
    }

    .app-page .release-dashboard-v2 .discovery-stats em {
        color: var(--release-muted);
        font-size: .55rem;
    }

    .app-page .release-dashboard-v2 .discovery-stats strong {
        color: var(--release-snow);
        font-size: .8rem;
    }

    .app-page .dashboard-route-flow {
        position: relative;
        width: min(1280px, calc(100% - 80px));
        margin: 0 auto;
        padding: 36px 0 0 38px;
    }

    .app-page .dashboard-route-flow::before {
        position: absolute;
        top: 48px;
        bottom: 84px;
        left: 7px;
        width: 1px;
        content: "";
        background: linear-gradient(180deg, var(--release-lichen), rgba(217, 184, 95, .08) 78%, transparent);
    }

    .app-page .dashboard-route-flow::after {
        position: absolute;
        top: 44px;
        left: 3px;
        width: 9px;
        height: 9px;
        content: "";
        border: 2px solid var(--release-lichen);
        border-radius: 50%;
        background: var(--release-rock);
    }

    .app-page .release-dashboard-v2 .dashboard-momentum,
    .app-page .release-dashboard-v2 :is(.discovery-tour-section, .discovery-weather-section, .discovery-map-section),
    .app-page .release-dashboard-v2 .discovery-library {
        width: 100%;
    }

    .app-page .release-dashboard-v2 .dashboard-momentum {
        margin: 0;
    }

    .app-page .release-dashboard-v2 .dashboard-momentum + .discovery-tour-section {
        margin-top: 46px;
    }

    .app-page .release-dashboard-v2 :is(.discovery-tour-section, .discovery-weather-section, .discovery-map-section) {
        margin-inline: 0;
        padding: 48px 0;
    }

    .app-page .release-dashboard-v2 .discovery-section-head {
        margin-bottom: 22px;
    }

    .app-page .release-dashboard-v2 .discovery-section-head h2 {
        font-size: clamp(1.65rem, 2vw, 2.2rem);
    }

    .app-page .release-dashboard-v2 .discovery-tour-rail {
        gap: 14px;
        justify-content: flex-start;
    }

    html[data-view-mode="desktop"] .app-page .release-dashboard-v2 .discovery-tour-rail {
        justify-content: flex-start;
        gap: 14px;
    }

    .app-page .release-dashboard-v2 .discovery-tour-card {
        width: 272px;
        min-width: 272px;
        aspect-ratio: 4 / 5;
        border-color: rgba(235, 241, 237, .14);
        border-radius: 4px;
        background: var(--release-pine);
    }

    .app-page .dashboard-field-grid {
        display: grid;
        grid-template-columns: minmax(300px, .72fr) minmax(460px, 1.28fr);
        gap: 48px;
        border-top: 1px solid var(--release-rule);
    }

    .app-page .dashboard-field-grid > section {
        border-top: 0;
    }

    .app-page .release-dashboard-v2 .dashboard-weather-summary {
        border-block-color: var(--release-rule-strong);
    }

    .app-page .release-dashboard-v2 .discovery-map-preview {
        height: 390px;
        border: 0;
        border-radius: 3px;
    }

    .app-page .release-dashboard-v2 .discovery-library {
        margin-top: 10px;
    }
}

@media (min-width: 980px) and (max-width: 1180px) {
    :root {
        --release-sidebar: 92px;
    }

    .app-page :is(.desktop-nav-group-toggle, .desktop-nav-group-direct) {
        width: 72px;
    }

    .app-page .dashboard-feature-inner,
    .app-page .release-dashboard-v2 .dashboard-command-bar,
    .app-page .dashboard-route-flow {
        width: calc(100% - 48px);
    }

    .app-page .release-dashboard-v2 .dashboard-command-bar {
        grid-template-columns: minmax(240px, 1fr) auto;
    }

    .app-page .release-dashboard-v2 .discovery-stats {
        display: none;
    }

    .app-page .dashboard-field-grid {
        grid-template-columns: 1fr;
        gap: 0;
    }
}

@media (max-width: 979px) {
    .app-page .app-shell:not(.fullscreen-mode) main,
    .app-page main.dashboard-main {
        padding: 0 0 calc(var(--mobile-navigation-height) + 34px);
    }

    .app-page .topbar,
    .app-page .dashboard-main .topbar {
        position: sticky;
        inset: 0 0 auto;
        width: 100%;
        min-height: 60px;
        margin: 0;
        padding: 0 12px 0 16px;
        border: 0;
        border-bottom: 1px solid var(--release-rule);
        border-radius: 0;
        background: rgba(11, 16, 14, .9);
        box-shadow: none;
    }

    .app-page .topbar .profile-entry {
        min-height: 42px;
        padding: 3px;
    }

    .app-page .topbar .profile-entry :is(strong, em) {
        display: none;
    }

    .app-page .discovery-typebar {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0;
        overflow: hidden;
    }

    .app-page .discovery-typebar button {
        min-width: 0;
        padding-inline: 2px;
        overflow: hidden;
        font-size: .58rem;
        text-overflow: clip;
        white-space: nowrap;
    }

    .app-page .discovery-typebar button:last-child {
        font-size: .54rem;
    }

    .app-page .dashboard-main #view,
    .app-page .dashboard-main .discovery-home-v2 {
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero {
        width: 100%;
        min-height: 560px;
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        background-position: 61% center;
        box-shadow: none;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-shade {
        background:
            linear-gradient(90deg, rgba(6, 11, 9, .92), rgba(6, 11, 9, .38)),
            linear-gradient(180deg, rgba(6, 11, 9, .12), transparent 36%, rgba(6, 11, 9, .88));
    }

    .app-page .dashboard-feature-inner {
        position: relative;
        z-index: 2;
        min-height: 560px;
        display: grid;
        grid-template-rows: auto 1fr auto;
        padding: 24px 18px 30px;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-topline {
        position: static;
        align-items: center;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-weather-button {
        min-height: 38px;
        padding: 0;
        border: 0;
        background: transparent;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-weather-button > svg:last-child {
        display: none;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-copy {
        max-width: 100%;
        align-self: center;
        padding: 38px 0 18px;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-copy h2 {
        max-width: 15ch;
        margin-block: 10px;
        font-size: clamp(2.35rem, 11vw, 3.4rem);
        line-height: .98;
    }

    .app-page .dashboard-feature-lower {
        display: grid;
        gap: 20px;
        padding-top: 18px;
        border-top: 1px solid rgba(255, 255, 255, .2);
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-facts {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        margin: 0;
        overflow: visible;
        border: 0;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-facts > span {
        min-width: 0;
        padding: 0 12px 0 0;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-facts > span + span {
        padding-left: 12px;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-actions {
        margin: 0;
    }

    .app-page .release-dashboard-v2 .dashboard-command-bar {
        width: calc(100% - 32px);
        min-height: 0;
        display: grid;
        gap: 14px;
        margin: 0 16px;
        padding: 18px 0;
        border: 0;
        border-bottom: 1px solid var(--release-rule-strong);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .app-page .release-dashboard-v2 .discovery-search {
        min-height: 46px;
        border: 0;
        border-bottom: 1px solid var(--release-rule-strong);
        border-radius: 0;
        background: transparent;
    }

    .app-page .release-dashboard-v2 .discovery-quick-actions {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0;
        margin: 0;
        padding: 4px 0;
        overflow: visible;
        border: 0;
        border-block: 1px solid var(--release-rule);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .app-page .release-dashboard-v2 .discovery-quick-actions > * {
        border: 0;
        border-left: 1px solid var(--release-rule);
    }

    .app-page .release-dashboard-v2 .discovery-quick-actions > :first-child {
        border-left: 0;
    }

    .app-page .release-dashboard-v2 :is(.discovery-quick-action, .discovery-more-actions > summary) {
        min-height: 52px;
        padding: 5px 3px;
        border: 0;
        border-radius: 0;
        background: transparent;
    }

    .app-page .release-dashboard-v2 .discovery-stats {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .app-page .release-dashboard-v2 .discovery-stats > span {
        min-height: 48px;
        padding: 0 8px;
        border: 0;
        border-left: 1px solid var(--release-rule);
        border-radius: 0;
        background: transparent;
    }

    .app-page .release-dashboard-v2 .discovery-stats > span:first-child {
        border-left: 0;
    }

    .app-page .release-dashboard-v2 .discovery-stats svg {
        display: none;
    }

    .app-page .dashboard-route-flow {
        position: relative;
        width: calc(100% - 32px);
        margin: 0 16px;
        padding: 28px 0 0 18px;
    }

    .app-page .dashboard-route-flow::before {
        position: absolute;
        top: 38px;
        bottom: 68px;
        left: 2px;
        width: 1px;
        content: "";
        background: linear-gradient(180deg, var(--release-lichen), rgba(217, 184, 95, .08) 78%, transparent);
    }

    .app-page .dashboard-route-flow::after {
        position: absolute;
        top: 34px;
        left: -2px;
        width: 9px;
        height: 9px;
        content: "";
        border: 2px solid var(--release-lichen);
        border-radius: 50%;
        background: var(--release-rock);
    }

    .app-page .release-dashboard-v2 .dashboard-momentum,
    .app-page .release-dashboard-v2 :is(.discovery-tour-section, .discovery-weather-section, .discovery-map-section),
    .app-page .release-dashboard-v2 .discovery-library {
        width: 100%;
    }

    .app-page .release-dashboard-v2 .dashboard-momentum {
        margin: 0;
    }

    .app-page .release-dashboard-v2 .dashboard-momentum + .discovery-tour-section {
        margin-top: 38px;
    }

    .app-page .release-dashboard-v2 :is(.discovery-tour-section, .discovery-weather-section, .discovery-map-section) {
        margin-inline: 0;
        padding: 38px 0;
    }

    .app-page .release-dashboard-v2 .discovery-tour-card {
        width: 220px;
        min-width: 220px;
        border-radius: 4px;
    }

    .app-page .dashboard-field-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0;
        border-top: 1px solid var(--release-rule);
    }

    .app-page .dashboard-field-grid > section {
        border-top: 0;
    }

    .app-page .release-dashboard-v2 .discovery-map-preview {
        height: min(58vh, 420px);
        border: 0;
        border-radius: 3px;
    }
}

@media (max-width: 430px) {
    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero {
        min-height: 520px;
    }

    .app-page .dashboard-feature-inner {
        min-height: 520px;
        padding-inline: 16px;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-weather-button span {
        display: none;
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-copy h2 {
        font-size: 2.55rem;
    }

    .app-page .release-dashboard-v2 .dashboard-command-bar,
    .app-page .dashboard-route-flow {
        width: calc(100% - 24px);
        margin-inline: 12px;
    }

    .app-page .release-dashboard-v2 :is(.discovery-quick-action, .discovery-more-actions > summary) em {
        font-size: .58rem;
    }

    .app-page .release-dashboard-v2 .discovery-stats em {
        font-size: .5rem;
    }

    .app-page .release-dashboard-v2 .discovery-stats strong {
        font-size: .68rem;
    }
}

/*
 * Release layout 3: brighter alpine workspace
 * Shared pages use compact headers, readable pine surfaces and measured
 * dividers. Identity is available in the top bar only.
 */

:root {
    --release-rock: #111916;
    --release-rock-raised: #151f1b;
    --release-pine: #19251f;
    --release-slate: #213029;
    --release-slate-light: #2a3b32;
    --release-snow: #f4f6f2;
    --release-mist: #c2cbc5;
    --release-muted: #94a198;
    --release-rule: rgba(235, 241, 237, .14);
    --release-rule-strong: rgba(235, 241, 237, .25);
    --release-glass: var(--color-paper-3);
    --release-glass-strong: var(--color-paper-4);
}

.app-page {
    background:
        linear-gradient(180deg, rgba(53, 77, 65, .16), transparent 440px),
        var(--release-rock);
}

.app-page .desktop-nav-meta {
    display: none !important;
}

.app-page :is(
    .tours-hub-command,
    .analysis-command,
    .photos-command,
    .settings-command,
    .admin-command,
    .bucket-list-heading,
    .ideas-hero
) {
    background: transparent;
    box-shadow: none;
}

.app-page :is(
    .tours-hub-command,
    .analysis-command,
    .photos-command,
    .settings-command,
    .admin-command,
    .bucket-list-heading,
    .ideas-hero
) h2 {
    color: var(--release-snow);
}

.app-page :is(.muted, p.muted, small, .help) {
    color: var(--release-muted);
}

@media (min-width: 980px) {
    html[data-view-mode="desktop"] .app-page .app-shell:not(.fullscreen-mode) main {
        padding: 0 clamp(24px, 2.4vw, 42px) 72px;
    }

    html[data-view-mode="desktop"] .app-page .desktop-sidebar {
        border-right-color: rgba(235, 241, 237, .13);
        background:
            linear-gradient(180deg, rgba(255, 255, 255, .025), transparent 220px),
            #0e1512;
    }

    html[data-view-mode="desktop"] .app-page :is(.desktop-nav-group-toggle, .desktop-nav-group-direct) {
        color: #aab5ae;
    }

    html[data-view-mode="desktop"] .app-page :is(
        .desktop-nav-group.contains-active > .desktop-nav-group-toggle,
        .desktop-nav-group.expanded > .desktop-nav-group-toggle,
        .desktop-nav-group-direct.active
    ) {
        color: var(--release-lichen-bright);
        border-color: rgba(217, 184, 95, .28);
        background: rgba(217, 184, 95, .1);
    }

    html[data-view-mode="desktop"] .app-page .desktop-nav-group-copy strong {
        font-size: .66rem;
    }

    html[data-view-mode="desktop"] .app-page .topbar {
        position: sticky;
        inset: 0 0 auto;
        width: 100%;
        min-height: 70px;
        margin: 0 0 26px;
        padding: 0 2px;
        border: 0;
        border-bottom: 1px solid var(--release-rule-strong);
        border-radius: 0;
        background: rgba(17, 25, 22, .92);
        box-shadow: none;
    }

    html[data-view-mode="desktop"] .app-page .topbar > div:first-child {
        min-height: 0;
    }

    html[data-view-mode="desktop"] .app-page .topbar .profile-entry {
        min-height: 48px;
        padding: 4px 0 4px 10px;
        border: 0;
        border-left: 1px solid var(--release-rule);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    html[data-view-mode="desktop"] .app-page .view:not(.fullscreen-view) {
        width: min(100%, 1280px);
        max-width: 1280px;
        margin-inline: auto;
    }

    html[data-view-mode="desktop"] .app-page .dashboard-main {
        padding-inline: 0;
    }

    html[data-view-mode="desktop"] .app-page .dashboard-main .topbar {
        margin-bottom: 0;
        padding-inline: clamp(24px, 3.5vw, 64px);
    }

    html[data-view-mode="desktop"] .app-page .dashboard-main #view {
        width: 100%;
        max-width: none;
    }

    html[data-view-mode="desktop"] .app-page .profile-page {
        width: 100%;
    }

    html[data-view-mode="desktop"] .app-page .profile-cover-card {
        min-height: 0;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 32px;
        padding: 18px 0 26px;
        border: 0;
        border-bottom: 1px solid var(--release-rule-strong);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    html[data-view-mode="desktop"] .app-page .profile-cover-card::before {
        top: 0;
        width: 52px;
        height: 2px;
    }

    html[data-view-mode="desktop"] .app-page .profile-cover-main {
        display: grid;
        grid-template-columns: 82px minmax(0, 1fr);
        align-items: center;
        gap: 20px;
    }

    html[data-view-mode="desktop"] .app-page .profile-preview-avatar,
    html[data-view-mode="desktop"] .app-page .profile-hero-avatar {
        width: 82px;
        height: 82px;
    }

    html[data-view-mode="desktop"] .app-page .profile-cover-main .pill {
        display: block;
        width: fit-content;
        min-height: 0;
        margin: 0 0 5px;
        padding: 0;
        color: var(--release-lichen);
        border: 0;
        background: transparent;
        font-size: .6rem;
        text-transform: uppercase;
    }

    html[data-view-mode="desktop"] .app-page .profile-cover-main h2 {
        margin: 0;
        font-size: 2rem;
        line-height: 1;
    }

    html[data-view-mode="desktop"] .app-page .profile-cover-main p {
        max-width: 62ch;
        margin: 7px 0 0;
        color: var(--release-mist);
        font-size: .82rem;
        line-height: 1.5;
    }

    html[data-view-mode="desktop"] .app-page .profile-cover-main p.muted {
        color: var(--release-muted);
    }

    html[data-view-mode="desktop"] .app-page .profile-cover-actions {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 10px;
    }

    html[data-view-mode="desktop"] .app-page .profile-cover-actions :is(.primary-btn, .ghost-btn) {
        min-height: 42px;
        padding-inline: 15px;
        font-size: .76rem;
    }

    html[data-view-mode="desktop"] .app-page .profile-tabbar {
        min-height: 54px;
        display: flex;
        align-items: stretch;
        gap: 24px;
        margin: 0;
        padding: 0;
        overflow-x: auto;
        border: 0;
        border-bottom: 1px solid var(--release-rule);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    html[data-view-mode="desktop"] .app-page .profile-tab {
        width: auto;
        min-width: 0;
        min-height: 54px;
        flex: 0 0 auto;
        padding: 0 3px;
        color: var(--release-muted);
        border: 0;
        border-bottom: 2px solid transparent;
        border-radius: 0;
        background: transparent;
    }

    html[data-view-mode="desktop"] .app-page .profile-tab strong {
        font-size: .75rem;
        font-weight: 680;
    }

    html[data-view-mode="desktop"] .app-page .profile-tab span {
        display: none;
    }

    html[data-view-mode="desktop"] .app-page .profile-tab:hover {
        color: var(--release-snow);
        background: transparent;
    }

    html[data-view-mode="desktop"] .app-page .profile-tab.active {
        color: var(--release-snow);
        border-bottom-color: var(--release-lichen);
        background: transparent;
    }

    html[data-view-mode="desktop"] .app-page .profile-tab-panel {
        padding: 26px 0 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    html[data-view-mode="desktop"] .app-page .profile-facts {
        min-height: 0;
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0;
        border-block: 1px solid var(--release-rule);
        background: rgba(255, 255, 255, .015);
    }

    html[data-view-mode="desktop"] .app-page .profile-facts > div {
        min-height: 72px;
        display: grid;
        place-content: center start;
        gap: 3px;
        padding: 12px 18px;
        border: 0;
        border-left: 1px solid var(--release-rule);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    html[data-view-mode="desktop"] .app-page .profile-facts > div:first-child {
        border-left: 0;
    }

    html[data-view-mode="desktop"] .app-page .profile-facts strong {
        color: var(--release-snow);
        font-size: 1.35rem;
        line-height: 1;
    }

    html[data-view-mode="desktop"] .app-page .profile-facts span {
        color: var(--release-muted);
        font-size: .58rem;
    }

    html[data-view-mode="desktop"] .app-page :is(
        .profile-badge-showcase,
        .profile-items-card,
        .profile-editor-card
    ) {
        padding: 26px 0;
        border: 0;
        border-bottom: 1px solid var(--release-rule);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    html[data-view-mode="desktop"] .app-page :is(
        .profile-badge-showcase,
        .profile-items-card,
        .profile-editor-card
    ) > .card-body {
        padding: 0;
    }

    html[data-view-mode="desktop"] .app-page .profile-overview-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 36px;
    }

    html[data-view-mode="desktop"] .app-page .profile-section-head {
        margin-bottom: 16px;
    }

    html[data-view-mode="desktop"] .app-page .profile-section-head h2,
    html[data-view-mode="desktop"] .app-page .profile-section-head h3 {
        font-size: 1.25rem;
    }

    html[data-view-mode="desktop"] .app-page :is(
        .tours-hub-command,
        .analysis-command,
        .photos-command,
        .settings-command,
        .admin-command,
        .bucket-list-heading,
        .ideas-hero
    ) {
        padding: 18px 0 28px;
        border: 0;
        border-bottom: 1px solid var(--release-rule-strong);
        border-radius: 0;
    }

    html[data-view-mode="desktop"] .app-page :is(
        .tours-hub-command,
        .analysis-command,
        .photos-command,
        .settings-command,
        .admin-command,
        .bucket-list-heading,
        .ideas-hero
    ) h2 {
        font-size: 2rem;
    }
}

@media (max-width: 979px) {
    .app-page .topbar {
        min-height: 58px;
        margin: 0 0 14px;
        border-bottom-color: var(--release-rule-strong);
        background: rgba(17, 25, 22, .94);
    }

    .app-page .profile-cover-card {
        min-height: 0;
        gap: 18px;
        padding: 18px 0 22px;
    }

    .app-page .profile-cover-main {
        display: grid;
        grid-template-columns: 68px minmax(0, 1fr);
        align-items: center;
        gap: 14px;
    }

    .app-page :is(.profile-preview-avatar, .profile-hero-avatar) {
        width: 68px;
        height: 68px;
    }

    .app-page .profile-cover-main h2 {
        margin: 4px 0 0;
        font-size: 1.6rem;
    }

    .app-page .profile-cover-main p {
        margin: 5px 0 0;
        font-size: .76rem;
    }

    .app-page .profile-cover-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .app-page .profile-cover-actions :is(.primary-btn, .ghost-btn) {
        min-width: 0;
        min-height: 42px;
        padding-inline: 8px;
        font-size: .68rem;
    }

    .app-page .profile-tabbar {
        min-height: 50px;
        gap: 18px;
        padding: 0;
        border: 0;
        border-bottom: 1px solid var(--release-rule);
        border-radius: 0;
        background: transparent;
    }

    .app-page .profile-tab {
        min-width: auto;
        min-height: 50px;
        padding: 0 2px;
        border-radius: 0;
        background: transparent;
    }

    .app-page .profile-tab strong {
        font-size: .66rem;
    }

    .app-page .profile-tab-panel {
        padding-top: 20px;
    }

    .app-page .profile-facts > div {
        min-height: 68px;
        padding: 10px 12px;
    }

    .app-page .profile-overview-grid {
        gap: 0;
    }
}

/*
 * Release layout 4: alpine workspace
 * A brighter charcoal-and-moss foundation keeps the product calm without
 * turning every feature into a dark card. Gold remains the single accent.
 */

:root {
    --release-rock: #101915;
    --release-rock-raised: #14211b;
    --release-pine: #192820;
    --release-slate: #22342b;
    --release-slate-light: #2c4236;
    --release-snow: #f5f6f2;
    --release-mist: #cbd3cd;
    --release-muted: #9eaaa2;
    --release-lichen: #dfbd5e;
    --release-lichen-bright: #f0d47e;
    --release-rule: rgba(239, 244, 240, .14);
    --release-rule-strong: rgba(239, 244, 240, .25);
    --release-glass: var(--color-paper-3);
    --release-glass-strong: var(--color-paper-4);
    --release-shadow: var(--shadow-subtle);
    --release-shadow-deep: var(--shadow-overlay);

    --color-primary: var(--release-lichen);
    --color-primary-hover: var(--release-lichen-bright);
    --color-background: var(--release-rock);
    --color-background-raised: var(--release-rock-raised);
    --color-surface: var(--release-pine);
    --color-surface-soft: var(--release-slate);
    --color-surface-active: var(--release-slate-light);
    --color-text: var(--release-snow);
    --color-text-muted: var(--release-mist);
    --color-border: var(--release-rule);
    --color-border-strong: var(--release-rule-strong);
}

body[data-theme="light"] {
    --release-rock: #eef1ec;
    --release-rock-raised: #e5eae4;
    --release-pine: #f9faf7;
    --release-slate: #dce3dc;
    --release-slate-light: #cfd9d0;
    --release-snow: #18221d;
    --release-mist: #4f5e56;
    --release-muted: #6c7971;
    --release-rule: rgba(24, 34, 29, .14);
    --release-rule-strong: rgba(24, 34, 29, .25);
    --release-glass: var(--color-paper-3);
    --release-glass-strong: var(--color-paper-4);
    --release-shadow: var(--shadow-subtle);
    --release-shadow-deep: var(--shadow-overlay);

    --color-primary: #9a7019;
    --color-primary-hover: #78520e;
    --color-primary-ink: #fffdf7;
    --color-background: var(--release-rock);
    --color-background-raised: var(--release-rock-raised);
    --color-surface: var(--release-pine);
    --color-surface-soft: var(--release-slate);
    --color-surface-active: var(--release-slate-light);
    --color-text: var(--release-snow);
    --color-text-muted: var(--release-mist);
    --color-border: var(--release-rule);
    --color-border-strong: var(--release-rule-strong);
}

.app-page,
.landing-page,
.legal-page {
    background-color: var(--release-rock);
}

.app-page {
    background-image:
        linear-gradient(180deg, rgba(77, 106, 90, .16), transparent 420px),
        repeating-linear-gradient(116deg, transparent 0 136px, rgba(255, 255, 255, .012) 137px 138px);
}

.app-page :where(.primary-btn, .ghost-btn, .danger-btn, .au-button, .nav-login) {
    min-height: 44px;
    border-radius: 6px;
}

.app-page :where(.primary-btn, .au-button-primary, .nav-login) {
    box-shadow: 0 10px 28px -20px rgba(223, 189, 94, .8);
}

.app-page :where(.ghost-btn, .au-button-secondary) {
    background: rgba(255, 255, 255, .035);
}

.app-page :where(.ghost-btn, .au-button-secondary):hover:not(:disabled) {
    background: rgba(223, 189, 94, .11);
}

.app-page :where(input:not([type="checkbox"]):not([type="radio"]), textarea, select) {
    border-color: rgba(239, 244, 240, .2);
    background: rgba(9, 16, 13, .26);
}

body[data-theme="light"].app-page :where(input:not([type="checkbox"]):not([type="radio"]), textarea, select) {
    background: rgba(255, 255, 255, .62);
}

.app-page :where(.pill, .discovery-kicker, .tour-card-kicker, .album-card-kicker) {
    color: var(--release-lichen);
}

.app-page :where(.map-floating-tools, .map-control-stack, .map-results-sheet, .planner-layer-menu, .weather-bottom-sheet, .profile-sheet, .toast) {
    border-color: rgba(239, 244, 240, .23);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, .055), transparent 42%),
        var(--release-glass-strong);
    box-shadow: var(--release-shadow-deep);
}

.app-page .map-control-stack button:hover,
.app-page .map-floating-tools button:hover {
    color: var(--release-lichen-bright);
    background: rgba(223, 189, 94, .1);
}

@media (min-width: 980px) {
    html[data-view-mode="desktop"] .app-page .app-shell:not(.fullscreen-mode) main {
        padding: 0 clamp(28px, 3vw, 52px) 84px;
    }

    html[data-view-mode="desktop"] .app-page .desktop-sidebar {
        border-right-color: rgba(239, 244, 240, .14);
        background:
            linear-gradient(180deg, rgba(255, 255, 255, .045), transparent 250px),
            #111c17;
        box-shadow: 14px 0 42px -38px rgba(0, 0, 0, .9);
    }

    html[data-view-mode="desktop"] .app-page .desktop-brand {
        border-bottom-color: rgba(239, 244, 240, .14);
    }

    html[data-view-mode="desktop"] .app-page :is(.desktop-nav-group-toggle, .desktop-nav-group-direct) {
        position: relative;
        color: #afbbb3;
        transition:
            color var(--release-fast),
            background-color var(--release-fast),
            transform var(--release-fast);
    }

    html[data-view-mode="desktop"] .app-page :is(.desktop-nav-group-toggle, .desktop-nav-group-direct):hover {
        color: var(--release-snow);
        background: rgba(255, 255, 255, .045);
        transform: translateY(-1px);
    }

    html[data-view-mode="desktop"] .app-page :is(
        .desktop-nav-group.contains-active > .desktop-nav-group-toggle,
        .desktop-nav-group.expanded > .desktop-nav-group-toggle,
        .desktop-nav-group-direct.active
    ) {
        color: var(--release-lichen-bright);
        border-color: rgba(223, 189, 94, .34);
        background:
            linear-gradient(145deg, rgba(223, 189, 94, .16), rgba(223, 189, 94, .055));
    }

    html[data-view-mode="desktop"] .app-page .desktop-nav-group-panel {
        border-color: var(--release-rule-strong);
        border-radius: 8px;
        background: var(--release-glass-strong);
        box-shadow: var(--release-shadow-deep);
    }

    html[data-view-mode="desktop"] .app-page .topbar,
    html[data-view-mode="desktop"] .app-page .dashboard-main .topbar {
        min-height: 66px;
        margin-bottom: 24px;
        border-bottom-color: rgba(239, 244, 240, .2);
        background: rgba(20, 33, 27, .86);
        box-shadow: 0 16px 38px -36px rgba(0, 0, 0, .9);
    }

    html[data-view-mode="desktop"] .app-page .dashboard-main .topbar {
        margin-bottom: 0;
    }

    html[data-view-mode="desktop"] .app-page #view-kicker {
        color: var(--release-lichen);
    }

    html[data-view-mode="desktop"] .app-page #view-title {
        color: var(--release-snow);
        font-size: 1.18rem;
    }

    html[data-view-mode="desktop"] .app-page .topbar .profile-entry {
        min-height: 46px;
        padding: 3px 0 3px 12px;
        border-left-color: rgba(239, 244, 240, .18);
    }

    html[data-view-mode="desktop"] .app-page .view:not(.fullscreen-view) {
        width: min(100%, 1320px);
        max-width: 1320px;
    }

    html[data-view-mode="desktop"] .app-page :is(
        .tours-hub-command,
        .analysis-command,
        .photos-command,
        .settings-command,
        .admin-command,
        .bucket-list-heading,
        .ideas-hero
    ) {
        padding: 22px 0 30px;
        background:
            linear-gradient(90deg, rgba(223, 189, 94, .055), transparent 56%);
    }

    html[data-view-mode="desktop"] .app-page :is(
        .tours-hub-command,
        .analysis-command,
        .photos-command,
        .settings-command,
        .admin-command,
        .bucket-list-heading,
        .ideas-hero
    ) h2 {
        font-size: 2.15rem;
    }
}

/* Dashboard */

.app-page .dashboard-main .release-dashboard-v2 .discovery-hero-shade {
    background:
        linear-gradient(90deg, rgba(6, 12, 9, .9) 0%, rgba(6, 12, 9, .62) 38%, rgba(6, 12, 9, .12) 74%),
        linear-gradient(180deg, rgba(6, 12, 9, .12), transparent 44%, rgba(6, 12, 9, .76));
}

@media (min-width: 980px) {
    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-copy h2 {
        font-size: 4rem;
        line-height: 1;
    }
}

.app-page .release-dashboard-v2 .dashboard-command-bar {
    min-height: 96px;
    border-bottom-color: rgba(239, 244, 240, .22);
}

.app-page .release-dashboard-v2 .discovery-search {
    border-bottom-color: rgba(239, 244, 240, .28);
}

.app-page .release-dashboard-v2 :is(.discovery-quick-action, .discovery-more-actions > summary):hover {
    background: rgba(223, 189, 94, .1);
}

.app-page .dashboard-route-flow::before {
    background: linear-gradient(180deg, var(--release-lichen), rgba(223, 189, 94, .12) 80%, transparent);
}

.app-page .release-dashboard-v2 .discovery-tour-card {
    border-color: rgba(239, 244, 240, .2);
    background: var(--release-pine);
    box-shadow: 0 18px 38px -34px rgba(0, 0, 0, .86);
}

.app-page .release-dashboard-v2 .discovery-tour-card:hover {
    border-color: rgba(223, 189, 94, .46);
}

/* Tours and profile */

.app-page .tours-hub-metrics,
.app-page .profile-facts,
.app-page :is(.analysis-command-metrics, .photos-command-metrics, .admin-command-metrics) {
    background: rgba(255, 255, 255, .025);
}

.app-page .tours-hub-metrics > span,
.app-page .profile-facts > div {
    min-height: 76px;
}

.app-page .tours-hub-insights {
    border-bottom: 1px solid var(--release-rule);
}

.app-page .tours-hub-tabs,
.app-page .profile-tabbar {
    justify-content: flex-start;
}

.app-page .tour-card {
    background: rgba(255, 255, 255, .012);
}

.app-page .tour-card:nth-child(even) {
    background: rgba(255, 255, 255, .025);
}

.app-page .tour-card:hover {
    padding-inline: 10px;
    background: rgba(223, 189, 94, .08);
}

.app-page .tour-card > img {
    filter: saturate(.88) contrast(1.03);
}

.app-page .profile-cover-card {
    background:
        linear-gradient(90deg, rgba(223, 189, 94, .075), transparent 50%);
}

.app-page .profile-preview-avatar,
.app-page .profile-hero-avatar {
    border-radius: 7px;
    box-shadow:
        0 18px 36px -25px rgba(0, 0, 0, .88),
        0 0 0 1px rgba(223, 189, 94, .32);
}

.app-page .profile-tab {
    transition:
        color var(--release-fast),
        border-color var(--release-fast);
}

.app-page .profile-facts strong {
    color: var(--release-lichen-bright);
}

.app-page .profile-badge-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.app-page .profile-badge-strip .badge-card {
    border: 1px solid var(--release-rule);
    border-radius: 7px;
    background: rgba(255, 255, 255, .025);
}

.app-page .profile-badge-strip .badge-card .card-body {
    padding: 16px;
}

.app-page .profile-overview-grid > .profile-items-card:first-child {
    padding-right: 18px;
    border-right: 1px solid var(--release-rule);
}

.app-page .profile-overview-grid > .profile-items-card:last-child {
    padding-left: 18px;
}

/* Search */

.app-page .discovery-header {
    align-items: end;
    gap: 34px;
}

.app-page .discovery-heading h2 {
    color: var(--release-snow);
    font-size: 2.15rem;
    line-height: 1.08;
}

.app-page .discovery-searchbar {
    min-height: 60px;
    border-color: rgba(239, 244, 240, .24);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, .045), transparent 55%),
        var(--release-pine);
}

.app-page .discovery-typebar {
    width: fit-content;
    max-width: 100%;
    padding: 4px;
    border-color: rgba(239, 244, 240, .2);
    background: rgba(255, 255, 255, .025);
}

.app-page .discovery-typebar button {
    min-width: 112px;
}

.app-page .discovery-workspace {
    min-height: 500px;
    overflow: hidden;
    border: 1px solid rgba(239, 244, 240, .18);
    border-radius: 8px;
    background: rgba(255, 255, 255, .018);
}

.app-page .discovery-results-panel {
    border-right-color: rgba(239, 244, 240, .18);
    background: rgba(7, 13, 10, .12);
}

.app-page .discovery-panel-head {
    min-height: 48px;
    background: rgba(255, 255, 255, .025);
}

.app-page .discovery-result:hover,
.app-page .discovery-result:focus-visible,
.app-page .discovery-result.active {
    background: rgba(223, 189, 94, .09);
}

.app-page .discovery-detail {
    padding: 26px;
}

.app-page :is(.discovery-detail-empty, .discovery-empty) {
    min-height: 360px;
}

.app-page .discovery-detail-media {
    border-radius: 8px;
}

/* Planner and tour assessment */

.app-page .planner-bottom-sheet {
    background:
        linear-gradient(145deg, rgba(255, 255, 255, .04), transparent 38%),
        var(--release-rock-raised);
}

.app-page .planner-sheet-panel {
    padding-block: 20px;
}

.app-page .planner-route-builder {
    border-color: rgba(239, 244, 240, .18);
}

.app-page .planner-point-action {
    min-height: 58px;
}

.app-page .planner-point-action:hover {
    background: rgba(255, 255, 255, .035);
}

.app-page .planner-point-action.active {
    background: rgba(223, 189, 94, .085);
}

.app-page .planner-via-mode,
.app-page .planner-ferrata-toggle {
    background: rgba(255, 255, 255, .022);
}

.app-page .route-choice-list,
.app-page .planner-vue-route-list {
    gap: 8px;
}

.app-page .route-choice-card {
    border: 1px solid transparent;
    border-bottom-color: var(--release-rule);
    border-radius: 7px;
}

.app-page .route-choice-card:hover {
    border-color: var(--release-rule-strong);
    background: rgba(255, 255, 255, .025);
}

.app-page .route-choice-card.active {
    border-color: rgba(223, 189, 94, .32);
    background:
        linear-gradient(90deg, rgba(223, 189, 94, .11), rgba(223, 189, 94, .035));
    box-shadow: inset 3px 0 var(--release-lichen);
}

.app-page .tour-intelligence {
    overflow: hidden;
    border: 1px solid rgba(239, 244, 240, .18);
    border-radius: 8px;
    background: rgba(255, 255, 255, .018);
}

.app-page .tour-intelligence > header {
    padding: 18px 20px;
    background: rgba(255, 255, 255, .035);
}

.app-page .tour-intelligence-scales {
    background: rgba(8, 14, 11, .2);
}

.app-page .tour-intelligence details {
    border-top-color: rgba(239, 244, 240, .14);
}

.app-page .tour-intelligence summary {
    min-height: 52px;
    padding-inline: 18px;
}

.app-page .tour-intelligence-row,
.app-page .tour-intelligence-section,
.app-page .tour-intelligence-sources li {
    padding-inline: 18px;
}

/* Weather, community and editorial workspaces */

.app-page .activity-weather-safety {
    gap: 14px;
    padding: 20px 0;
}

.app-page .weather-safety-alert {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px 24px;
    padding: 16px 18px;
    border-radius: 0 7px 7px 0;
    background: rgba(223, 189, 94, .09);
}

.app-page .weather-safety-alert.critical {
    background:
        linear-gradient(90deg, rgba(229, 104, 95, .15), rgba(229, 104, 95, .055));
}

.app-page .weather-safety-alert > div,
.app-page .weather-safety-alert > p {
    grid-column: 1;
}

.app-page .weather-safety-alert > button {
    grid-column: 2;
    grid-row: 1 / 5;
    align-self: center;
    margin: 0;
}

.app-page .weather-page :is(.weather-map-panel, .weather-detail-panel) {
    border-color: rgba(239, 244, 240, .2);
    background: var(--release-pine);
}

.app-page .weather-hour:nth-child(even),
.app-page .weather-day:nth-child(even) {
    background: rgba(255, 255, 255, .024);
}

.app-page .community-v3 {
    overflow: hidden;
    border: 1px solid rgba(239, 244, 240, .18);
    border-radius: 8px;
    background: rgba(255, 255, 255, .015);
}

.app-page .community-v3 .community-chat {
    background: rgba(7, 13, 10, .1);
}

.app-page .friend-search-card,
.app-page .admin-user-card,
.app-page .training-chart,
.app-page .badge-detail-panel,
.app-page .table-wrap {
    border-color: rgba(239, 244, 240, .2);
    background: rgba(255, 255, 255, .025);
}

.app-page .analysis-ledger > a:nth-child(even),
.app-page .album-card:nth-child(even),
.app-page .settings-panel:nth-child(even) {
    background: rgba(255, 255, 255, .014);
}

/* Public and legal pages */

.landing-page,
.legal-page {
    background:
        linear-gradient(180deg, rgba(67, 93, 79, .13), transparent 520px),
        var(--release-rock);
}

.landing-page .highlight-strip {
    background: var(--release-rock-raised);
}

.landing-page .section {
    padding-block: 88px;
}

.landing-page .feature-card:hover {
    background: rgba(223, 189, 94, .065);
}

.landing-page .product-stage,
.landing-page .showcase-panorama,
.landing-page .waitlist-cta {
    border-color: rgba(239, 244, 240, .2);
}

.legal-page .site-header {
    position: sticky;
    top: 0;
    z-index: 80;
    width: 100%;
    padding-inline: max(24px, calc((100vw - 1280px) / 2));
    background: rgba(16, 25, 21, .88);
}

.legal-page .content-page {
    width: min(calc(100% - 48px), 1160px);
    padding: 56px 0 96px;
}

.legal-page .content-page > h1 {
    margin-bottom: 42px;
    font-size: 3.25rem;
    line-height: 1;
}

.legal-page .legal-card {
    grid-template-columns: 220px minmax(0, 1fr);
    column-gap: 48px;
    padding-block: 28px 34px;
}

.legal-page .legal-card > h2 {
    color: var(--release-lichen-bright);
}

.legal-page .legal-note::before {
    top: 28px;
    bottom: 34px;
}

.app-page .discovery-peak-tours {
    display: grid;
    gap: 8px;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid var(--release-rule);
}

.app-page .discovery-peak-tours h4 {
    margin: 0 0 2px;
    font-size: .9rem;
    color: var(--text);
}

.app-page .discovery-peak-tours .ghost-btn {
    justify-content: flex-start;
    width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 979px) {
    .app-page {
        background-image: linear-gradient(180deg, rgba(77, 106, 90, .13), transparent 320px);
    }

    .app-page .topbar,
    .app-page .dashboard-main .topbar {
        background: rgba(20, 33, 27, .9);
    }

    .app-page .dashboard-main .release-dashboard-v2 .discovery-hero-copy h2 {
        font-size: 2.65rem;
        line-height: 1;
    }

    .app-page .profile-cover-card {
        background: linear-gradient(180deg, rgba(223, 189, 94, .07), transparent);
    }

    .app-page .profile-badge-strip {
        grid-template-columns: 1fr;
    }

    .app-page .profile-overview-grid > .profile-items-card:first-child,
    .app-page .profile-overview-grid > .profile-items-card:last-child {
        padding-inline: 0;
        border-right: 0;
    }

    .app-page .discovery-header {
        gap: 16px;
    }

    .app-page .discovery-heading h2 {
        font-size: 1.7rem;
    }

    .app-page .discovery-typebar {
        width: 100%;
    }

    .app-page .discovery-typebar button {
        min-width: 0;
    }

    .app-page .discovery-workspace {
        min-height: 0;
        border-right: 0;
        border-left: 0;
        border-radius: 0;
    }

    .app-page :is(.discovery-detail-empty, .discovery-empty) {
        min-height: 220px;
    }

    .app-page .weather-safety-alert {
        grid-template-columns: 1fr;
        padding: 14px;
    }

    .app-page .weather-safety-alert > button {
        grid-column: 1;
        grid-row: auto;
        width: 100%;
        margin-top: 6px;
    }

    .app-page .community-v3 {
        border-right: 0;
        border-left: 0;
        border-radius: 0;
    }

    .legal-page .site-header {
        padding-inline: 16px;
    }

    .legal-page .content-page {
        width: calc(100% - 32px);
        padding: 38px 0 72px;
    }

    .legal-page .content-page > h1 {
        margin-bottom: 30px;
        font-size: 2.35rem;
    }

    .legal-page .legal-card {
        grid-template-columns: 1fr;
        padding-block: 24px 28px;
    }
}
