/* ==========================================================================
   Links Transfer and Tour Limited — Coming Soon
   Ultra-modern standalone splash page.
   Deep indigo night-sky backdrop, mesh gradient, floating orbs,
   particle canvas, aurora sweep, glassy reveal-card with gradient
   headline text, live countdown, and micro-interactions.
   All motion respects prefers-reduced-motion.
   ========================================================================== */

:root {
   --cs-bg:        #0a0a1e;
   --cs-bg-deep:   #050510;
   --cs-indigo:    #202080;
   --cs-purple:    #402080;
   --cs-magenta:   #E00060;
   --cs-pink:      #ff4d9d;
   --cs-mint:      #2ee6c8;
   --cs-gold:      #C9A227;
   --cs-text:      #f4f4fd;
   --cs-text-soft: rgba(244, 244, 253, .72);
   --cs-line:      rgba(255, 255, 255, .12);
   --cs-gradient-main: linear-gradient(135deg, #202080 0%, #402080 45%, #E00060 100%);
   --cs-gradient-text: linear-gradient(115deg, #ffffff 0%, #d9c7ff 40%, #ff8fc2 100%);
   --cs-card-bg: rgba(16, 16, 48, .45);
   --cs-card-border: rgba(255, 255, 255, .12);
   --cs-glow: rgba(224, 0, 96, .25);
}

*,
*::before,
*::after {
   box-sizing: border-box;
}

.coming-soon-body {
   margin: 0;
   min-height: 100vh;
   color: var(--cs-text);
   font-family: "Manrope", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
   background: var(--cs-bg-deep);
   overflow-x: hidden;
   -webkit-font-smoothing: antialiased;
}

/* ---------- Wrapper ---------- */
.coming-soon {
   position: relative;
   min-height: 100vh;
   display: flex;
   align-items: center;
   justify-content: center;
   padding: 3rem 1.25rem;
   isolation: isolate;
   overflow: hidden;
}

/* ---------- Mesh-gradient backdrop ---------- */
.coming-soon__bg {
   position: fixed;
   inset: 0;
   z-index: -2;
   background: var(--cs-bg-deep);
   overflow: hidden;
}

.coming-soon__bg::before {
   content: "";
   position: absolute;
   inset: -50%;
   background:
     radial-gradient(circle at 20% 30%, rgba(32, 31, 128, .6), transparent 50%),
     radial-gradient(circle at 80% 70%, rgba(66, 32, 128, .55), transparent 50%),
     radial-gradient(circle at 50% 50%, rgba(224, 0, 96, .3), transparent 40%),
     radial-gradient(circle at 70% 20%, rgba(46, 230, 200, .12), transparent 35%);
   animation: cs-bg-shift 20s ease-in-out infinite alternate;
   will-change: transform;
}

.coming-soon__bg::after {
   content: "";
   position: absolute;
   inset: 0;
   background:
     radial-gradient(ellipse at 50% 0%, rgba(32, 31, 128, .4) 0%, transparent 60%),
     radial-gradient(ellipse at 50% 100%, rgba(224, 0, 96, .25) 0%, transparent 50%);
}

@keyframes cs-bg-shift {
   0%   { transform: translate(0, 0) rotate(0deg) scale(1); }
   33%  { transform: translate(3%, -2%) rotate(1deg) scale(1.05); }
   66%  { transform: translate(-2%, 3%) rotate(-1deg) scale(1.03); }
   100% { transform: translate(1%, -1%) rotate(.5deg) scale(1.04); }
}

/* Floating gradient orbs */
.coming-soon__orb {
   position: absolute;
   border-radius: 50%;
   filter: blur(80px);
   opacity: .5;
   will-change: transform;
   pointer-events: none;
}
.coming-soon__orb--one {
   width: 50vw; height: 50vw; min-width: 400px; min-height: 400px;
   top: -15%; left: -12%;
   background: radial-gradient(circle at 35% 35%, rgba(32, 31, 128, .9), rgba(224, 0, 96, .2) 60%, transparent 75%);
   animation: cs-float-one 24s ease-in-out infinite;
}
.coming-soon__orb--two {
   width: 42vw; height: 42vw; min-width: 340px; min-height: 340px;
   bottom: -18%; right: -10%;
   background: radial-gradient(circle at 60% 40%, rgba(66, 32, 128, .95), rgba(224, 0, 96, .25) 60%, transparent 75%);
   animation: cs-float-two 28s ease-in-out infinite;
}
.coming-soon__orb--three {
   width: 28vw; height: 28vw; min-width: 240px; min-height: 240px;
   top: 50%; left: 8%;
   background: radial-gradient(circle, rgba(224, 0, 96, .45), rgba(255, 77, 157, .06) 55%, transparent 70%);
   animation: cs-float-three 32s ease-in-out infinite;
}

@keyframes cs-float-one {
   0%, 100% { transform: translate(0, 0) scale(1); }
   33%      { transform: translate(10vw, 8vh) scale(1.14); }
   66%      { transform: translate(-6vw, 12vh) scale(.92); }
}
@keyframes cs-float-two {
   0%, 100% { transform: translate(0, 0) scale(1); }
   40%      { transform: translate(-10vw, -10vh) scale(1.12); }
   70%      { transform: translate(-3vw, 6vh) scale(.9); }
}
@keyframes cs-float-three {
   0%, 100% { transform: translate(0, 0) scale(1); }
   50%      { transform: translate(14vw, -10vh) scale(1.2); }
}

/* Perspective grid floor */
.coming-soon__grid {
   position: absolute;
   inset: 0;
   background:
     linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
     linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
   background-size: 60px 60px;
   mask-image: radial-gradient(circle at 50% 42%, #000 0%, transparent 72%);
   -webkit-mask-image: radial-gradient(circle at 50% 42%, #000 0%, transparent 72%);
   animation: cs-grid-pan 28s linear infinite;
}
@keyframes cs-grid-pan {
   from { background-position: 0 0, 0 0; }
   to   { background-position: 0 60px, 60px 0; }
}

/* Aurora sweep */
.coming-soon__aurora {
   position: absolute;
   top: -35%;
   left: -15%;
   width: 130%;
   height: 65%;
   background: conic-gradient(from 180deg at 50% 50%,
     transparent 0deg,
     rgba(32, 31, 128, .45) 50deg,
     rgba(66, 32, 128, .5) 120deg,
     rgba(224, 0, 96, .35) 190deg,
     rgba(46, 230, 200, .18) 250deg,
     transparent 360deg);
   filter: blur(75px);
   opacity: .45;
   animation: cs-aurora 20s ease-in-out infinite alternate;
   pointer-events: none;
}
@keyframes cs-aurora {
   from { transform: translateX(-8%) rotate(5deg) scale(1); opacity: .3; }
   to   { transform: translateX(8%) rotate(-5deg) scale(1.1); opacity: .55; }
}

/* Particle canvas */
.coming-soon__particles {
   position: absolute;
   inset: 0;
   width: 100%;
   height: 100%;
   pointer-events: none;
}

/* Film-grain noise overlay */
.coming-soon__noise {
   position: absolute;
   inset: 0;
   opacity: .04;
   pointer-events: none;
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- Main card ---------- */
.coming-soon__main {
   position: relative;
   width: min(100%, 880px);
   text-align: center;
}

.coming-soon__card {
   position: relative;
   text-align: center;
   padding: clamp(2.5rem, 6vw, 4rem) clamp(1.6rem, 4.5vw, 3.5rem);
   border-radius: 32px;
   background: var(--cs-card-bg);
   -webkit-backdrop-filter: blur(28px) saturate(160%);
   backdrop-filter: blur(28px) saturate(160%);
   border: 1px solid var(--cs-card-border);
   box-shadow:
     0 40px 120px rgba(4, 4, 18, .7),
     0 0 80px rgba(32, 31, 128, .15),
     inset 0 1px 0 rgba(255, 255, 255, .1),
     inset 0 -1px 0 rgba(255, 255, 255, .03);
   overflow: hidden;
}

/* Gradient border top */
.coming-soon__card::before {
   content: "";
   position: absolute;
   top: 0; left: 10%;
   right: 10%;
   height: 1px;
   background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .35), transparent);
}

/* Subtle inner glow */
.coming-soon__card::after {
   content: "";
   position: absolute;
   top: -1px; left: 20%;
   right: 20%;
   height: 1px;
   background: linear-gradient(90deg, transparent, rgba(224, 0, 96, .3), transparent);
   filter: blur(4px);
}

/* Reveal-on-load animation */
[data-reveal] {
   opacity: 0;
   transform: translateY(28px);
   transition: opacity .9s cubic-bezier(.22, 1, .36, 1), transform .9s cubic-bezier(.22, 1, .36, 1);
}
.is-revealed [data-reveal],
[data-reveal].is-inview {
   opacity: 1;
   transform: none;
}
.is-revealed [data-reveal]:nth-child(1) { transition-delay: .06s; }
.is-revealed [data-reveal]:nth-child(2) { transition-delay: .14s; }
.is-revealed [data-reveal]:nth-child(3) { transition-delay: .22s; }
.is-revealed [data-reveal]:nth-child(4) { transition-delay: .30s; }
.is-revealed [data-reveal]:nth-child(5) { transition-delay: .38s; }
.is-revealed [data-reveal]:nth-child(6) { transition-delay: .46s; }
.is-revealed [data-reveal]:nth-child(7) { transition-delay: .54s; }
.is-revealed [data-reveal]:nth-child(8) { transition-delay: .62s; }

/* ---------- Brand ---------- */
.coming-soon__brand {
   display: inline-flex;
   align-items: center;
   gap: .85rem;
   text-decoration: none;
   margin-bottom: 1.8rem;
   transition: opacity .25s ease;
}
.coming-soon__brand:hover {
   text-decoration: none;
   opacity: .85;
}
.coming-soon__logo {
   width: 56px; height: 56px;
   border-radius: 18px;
   display: grid;
   place-items: center;
   background: rgba(255, 255, 255, .08);
   border: 1px solid rgba(255, 255, 255, .16);
   box-shadow: 0 8px 30px rgba(4, 4, 18, .5);
   overflow: hidden;
   transition: transform .3s ease, box-shadow .3s ease;
}
.coming-soon__brand:hover .coming-soon__logo {
   transform: scale(1.06);
   box-shadow: 0 12px 40px rgba(4, 4, 18, .6);
}
.coming-soon__logo img {
   width: 100%;
   height: 100%;
   object-fit: contain;
   padding: .25rem;
}
.coming-soon__brand-text {
   display: flex;
   flex-direction: column;
   text-align: left;
   line-height: 1.15;
}
.coming-soon__brand-name {
   font-weight: 800;
   font-size: 1.1rem;
   color: #fff;
   letter-spacing: .01em;
}
.coming-soon__brand-tag {
   font-size: .74rem;
   color: var(--cs-text-soft);
   letter-spacing: .02em;
}

/* ---------- Status pill ---------- */
.coming-soon__pill {
   display: inline-flex;
   align-items: center;
   gap: .6rem;
   padding: .55rem 1.25rem;
   border-radius: 999px;
   font-size: .78rem;
   font-weight: 700;
   letter-spacing: .1em;
   text-transform: uppercase;
   color: rgba(255, 255, 255, .92);
   background: rgba(255, 255, 255, .06);
   border: 1px solid rgba(255, 255, 255, .14);
   -webkit-backdrop-filter: blur(10px);
   backdrop-filter: blur(10px);
   margin-bottom: 2rem;
}
.coming-soon__pulse {
   width: 10px; height: 10px;
   border-radius: 50%;
   background: var(--cs-mint);
   box-shadow: 0 0 0 0 rgba(46, 230, 200, .55);
   animation: cs-pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;
}
@keyframes cs-pulse {
   0%   { box-shadow: 0 0 0 0 rgba(46, 230, 200, .55); }
   70%  { box-shadow: 0 0 0 14px rgba(46, 230, 200, 0); }
   100% { box-shadow: 0 0 0 0 rgba(46, 230, 200, 0); }
}

/* ---------- Headline ---------- */
.coming-soon__title {
   margin: 0 0 1.1rem;
   font-size: clamp(2.2rem, 6vw, 4rem);
   line-height: 1.1;
   font-weight: 800;
   letter-spacing: -.025em;
}
.coming-soon__title-gradient {
   background: var(--cs-gradient-text);
   -webkit-background-clip: text;
   background-clip: text;
   -webkit-text-fill-color: transparent;
   color: transparent;
   background-size: 200% 200%;
   animation: cs-text-shimmer 6s ease-in-out infinite;
}
@keyframes cs-text-shimmer {
   0%, 100% { background-position: 0% 50%; }
   50%      { background-position: 100% 50%; }
}

/* Typing cursor */
.coming-soon__title-gradient::after {
   content: "|";
   -webkit-text-fill-color: var(--cs-mint);
   animation: cs-cursor 1s step-end infinite;
   margin-left: 2px;
}
@keyframes cs-cursor {
   0%, 100% { opacity: 1; }
   50%      { opacity: 0; }
}

.coming-soon__subtitle {
   max-width: 580px;
   margin: 0 auto 2.4rem;
   color: var(--cs-text-soft);
   font-size: clamp(1rem, 2.2vw, 1.12rem);
   line-height: 1.75;
}

/* ---------- Countdown ---------- */
.coming-soon__countdown {
   display: flex;
   align-items: flex-start;
   justify-content: center;
   gap: clamp(.8rem, 3vw, 1.6rem);
   margin: 0 auto 2.6rem;
}
.coming-soon__unit {
   min-width: 80px;
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: .4rem;
}
.coming-soon__num {
   font-size: clamp(2.4rem, 5.5vw, 3.4rem);
   font-weight: 800;
   line-height: 1;
   font-variant-numeric: tabular-nums;
   color: #fff;
   min-width: 1.8ch;
   text-shadow: 0 0 40px rgba(224, 0, 96, .4), 0 4px 20px rgba(4, 4, 18, .6);
   position: relative;
   transition: transform .15s ease;
}
.coming-soon__num::after {
   content: "";
   position: absolute;
   left: 0; right: 0; bottom: -8px;
   height: 3px;
   border-radius: 999px;
   background: var(--cs-gradient-main);
   opacity: .6;
}
.coming-soon__label {
   font-size: .74rem;
   font-weight: 700;
   letter-spacing: .16em;
   text-transform: uppercase;
   color: var(--cs-text-soft);
}
.coming-soon__sep {
   font-size: clamp(1.8rem, 4.5vw, 2.5rem);
   font-weight: 300;
   color: rgba(255, 255, 255, .25);
   line-height: 1;
   padding-top: .1rem;
   animation: cs-sep-blink 2s ease-in-out infinite;
}
@keyframes cs-sep-blink {
   0%, 100% { opacity: .18; }
   50%      { opacity: .55; }
}

/* ---------- Notify form ---------- */
.coming-soon__form {
   max-width: 480px;
   margin: 0 auto 2rem;
}
.coming-soon__field {
   display: flex;
   gap: .6rem;
   padding: .5rem;
   border-radius: 999px;
   background: rgba(255, 255, 255, .06);
   border: 1.5px solid rgba(255, 255, 255, .14);
   -webkit-backdrop-filter: blur(10px);
   backdrop-filter: blur(10px);
   transition: border-color .3s ease, box-shadow .3s ease, background .3s ease;
}
.coming-soon__field:focus-within {
   border-color: rgba(255, 77, 157, .6);
   box-shadow: 0 0 0 5px rgba(224, 0, 96, .18), 0 16px 40px rgba(4, 4, 18, .5);
   background: rgba(255, 255, 255, .08);
}
.coming-soon__field input {
   flex: 1;
   min-width: 0;
   background: transparent;
   border: 0;
   outline: none;
   color: #fff;
   font: inherit;
   font-size: 1rem;
   padding: .8rem .8rem .8rem 1.2rem;
}
.coming-soon__field input::placeholder { color: rgba(255, 255, 255, .35); }
.coming-soon__submit {
   display: inline-flex;
   align-items: center;
   gap: .6rem;
   border: 0;
   cursor: pointer;
   font: inherit;
   font-weight: 800;
   font-size: 1rem;
   color: #fff;
   padding: .95rem 1.6rem;
   border-radius: 999px;
   background: var(--cs-gradient-main);
   background-size: 200% 200%;
   box-shadow: 0 12px 32px rgba(224, 0, 96, .4);
   transition: transform .2s ease, background-position .4s ease, box-shadow .2s ease;
   white-space: nowrap;
}
.coming-soon__submit:hover {
   transform: translateY(-3px) scale(1.02);
   background-position: 100% 100%;
   box-shadow: 0 18px 44px rgba(224, 0, 96, .55);
}
.coming-soon__submit:active {
   transform: translateY(0) scale(.98);
   box-shadow: 0 6px 20px rgba(224, 0, 96, .3);
}
.coming-soon__submit:disabled { opacity: .65; cursor: wait; transform: none; }
.coming-soon__submit-icon {
   display: inline-flex;
   transition: transform .3s ease;
}
.coming-soon__submit-icon svg { width: 18px; height: 18px; }
.coming-soon__submit:hover .coming-soon__submit-icon { transform: translateX(4px); }
.coming-soon__form-msg {
   min-height: 1.5em;
   margin: .8rem 0 0;
   font-size: .92rem;
   font-weight: 600;
   color: var(--cs-mint);
   transition: color .2s ease;
}
.coming-soon__form-msg.is-error { color: var(--cs-pink); }

/* ---------- Socials ---------- */
.coming-soon__socials {
   display: flex;
   justify-content: center;
   gap: .8rem;
   margin-bottom: 1.8rem;
}
.coming-soon__social {
   width: 46px; height: 46px;
   border-radius: 50%;
   display: grid;
   place-items: center;
   color: rgba(255, 255, 255, .8);
   background: rgba(255, 255, 255, .06);
   border: 1px solid rgba(255, 255, 255, .12);
   transition: transform .25s cubic-bezier(.22, 1, .36, 1), background .25s ease, border-color .25s ease, color .25s ease, box-shadow .25s ease;
}
.coming-soon__social:hover {
   transform: translateY(-4px) scale(1.1);
   background: var(--cs-gradient-main);
   border-color: transparent;
   color: #fff;
   text-decoration: none;
   box-shadow: 0 12px 28px rgba(224, 0, 96, .4);
}
.coming-soon__social svg {
   width: 20px; height: 20px;
   fill: currentColor;
}

/* ---------- Footnote ---------- */
.coming-soon__footnote {
   margin: 0;
   font-size: .78rem;
   color: rgba(255, 255, 255, .38);
   letter-spacing: .02em;
}
.coming-soon__footnote a {
   color: rgba(255, 255, 255, .55);
   text-decoration: none;
   transition: color .2s ease;
}
.coming-soon__footnote a:hover { color: #fff; }

/* ---------- Scroll hint ---------- */
.coming-soon__scroll-hint {
   position: fixed;
   bottom: 36px;
   left: 50%;
   transform: translateX(-50%);
   width: 26px;
   height: 44px;
   border: 2px solid rgba(255, 255, 255, .18);
   border-radius: 999px;
   display: flex;
   justify-content: center;
   padding-top: 10px;
   z-index: 5;
   pointer-events: none;
   opacity: .7;
   animation: cs-scroll-hint 3s ease-in-out infinite;
}
@keyframes cs-scroll-hint {
   0%, 100% { opacity: .4; }
   50%      { opacity: .8; }
}
.coming-soon__scroll-hint span {
   width: 4px; height: 8px;
   border-radius: 999px;
   background: rgba(255, 255, 255, .55);
   animation: cs-scroll 2s ease-in-out infinite;
}
@keyframes cs-scroll {
   0%   { transform: translateY(0); opacity: 1; }
   70%  { transform: translateY(14px); opacity: 0; }
   100% { transform: translateY(0); opacity: 0; }
}

/* ---------- Responsive ---------- */
@media (max-width: 640px) {
   .coming-soon { padding: 2rem .75rem; }
   .coming-soon__card { border-radius: 24px; padding: clamp(1.8rem, 5vw, 2.5rem) clamp(1.2rem, 4vw, 2rem); }
   .coming-soon__countdown { gap: .5rem; }
   .coming-soon__unit { min-width: 56px; }
   .coming-soon__field { flex-direction: column; border-radius: 22px; }
   .coming-soon__submit { justify-content: center; }
   .coming-soon__scroll-hint { display: none; }
   .coming-soon__title { font-size: clamp(1.8rem, 7vw, 2.8rem); }
   .coming-soon__orb--one,
   .coming-soon__orb--two,
   .coming-soon__orb--three { filter: blur(50px); opacity: .4; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
   .coming-soon__orb,
   .coming-soon__grid,
   .coming-soon__aurora,
   .coming-soon__num,
   .coming-soon__sep,
   .coming-soon__pulse,
   .coming-soon__title-gradient,
   .coming-soon__scroll-hint,
   .coming-soon__scroll-hint span {
     animation: none !important;
   }
   .coming-soon__bg::before { animation: none !important; }
   [data-reveal] {
     opacity: 1;
     transform: none;
     transition: none;
   }
   .coming-soon__title-gradient::after { animation: none !important; opacity: 1; }
}