/* =============================================================
   1Drink — Shared Page Background / Overlay System
   Applied to all pages EXCEPT Landing (which has its own
   multi-scene cinematic background).

   HTML structure required in every page <body>:
     <div class="bg-photo"></div>
     <div class="bg-overlay"></div>
     <div class="bg-grain"></div>

   All three layers use pointer-events:none so they can never
   block map interaction or any other page content.
   Page content must sit at z-index >= 10 to appear above them.
============================================================= */

/* Layer 1 — Full-bleed Unsplash photo */
.bg-photo {
    position: fixed;
    inset: 0;
    z-index: 0;
    background-image: url('https://images.unsplash.com/photo-1470229722913-7c0e2dbbafd3?w=1800&q=85&auto=format&fit=crop');
    background-size: cover;
    background-position: center;
    pointer-events: none;
}

/* Layer 2 — Dark gradient overlay */
.bg-overlay {
    position: fixed;
    inset: 0;
    z-index: 1;
    background: linear-gradient(135deg, rgba(10,8,20,0.88) 0%, rgba(10,8,20,0.82) 100%), linear-gradient(180deg, rgba(255,77,109,0.08) 0%, rgba(12,180,122,0.06) 100%);
    pointer-events: none;
}

/* Layer 3 — Subtle film grain texture */
.bg-grain {
    position: fixed;
    inset: 0;
    z-index: 2;
    opacity: 0.04;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    pointer-events: none;
}

/* =============================================================
   Shared Send-Spinner Overlay
   Used on Landing, ForgotPassword, and any page that POSTs
   via email. Mirror of Map.aspx .send-spinner.
============================================================= */
@keyframes spinnerRing {
    to {
        transform: rotate(360deg);
    }
}

.send-spinner {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 99998;
    background: rgba(10,8,20,0.82);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 18px;
}

.send-spinner-ring-wrap {
    position: relative;
    width: 72px;
    height: 72px;
}

.send-spinner-svg {
    position: absolute;
    inset: 0;
    animation: spinnerRing 0.9s linear infinite;
}

.send-spinner-numeral {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.send-spinner-label {
    font-family: 'DM Sans', sans-serif;
    font-size: 13px;
    color: rgba(240,240,248,0.65);
    letter-spacing: 0.04em;
}
