
/* ---- ambient background, showcase, marquee, tilt: the "keep exploring" layer ---- */
:root { --amb1: rgba(45,190,175,.20); --amb2: rgba(109,179,255,.16); --amb3: rgba(242,184,75,.14); --dot: rgba(19,28,43,.07); }
@media (prefers-color-scheme: dark) { :root:not([data-theme='light']) { --amb1: rgba(45,190,175,.16); --amb2: rgba(109,179,255,.12); --amb3: rgba(167,139,250,.12); --dot: rgba(232,237,243,.06); } }
:root[data-theme='dark'] { --amb1: rgba(45,190,175,.16); --amb2: rgba(109,179,255,.12); --amb3: rgba(167,139,250,.12); --dot: rgba(232,237,243,.06); }

body { transition: background-color .35s, color .35s; }
.ambient { position: fixed; inset: 0; z-index: -1; pointer-events: none; overflow: hidden;
  background-image: radial-gradient(var(--dot) 1px, transparent 1px); background-size: 26px 26px; }
.ambient i { position: absolute; border-radius: 50%; filter: blur(90px); will-change: transform; animation: drift 22s ease-in-out infinite alternate; }
.ambient i:nth-child(1) { width: 520px; height: 520px; background: var(--amb1); top: 6%; left: -140px; }
.ambient i:nth-child(2) { width: 460px; height: 460px; background: var(--amb2); top: 48%; right: -120px; animation-delay: -8s; }
.ambient i:nth-child(3) { width: 400px; height: 400px; background: var(--amb3); bottom: -120px; left: 36%; animation-delay: -15s; }
/* let the ambient layer show through the plain sections */
section.alt { background: color-mix(in srgb, var(--card) 78%, transparent); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
section.tint { background: linear-gradient(180deg, transparent, var(--brand-soft)); }
.card { background: color-mix(in srgb, var(--card) 88%, transparent); }

/* gradient words in headings */
.grad { background: linear-gradient(100deg, #2dbeaf, #6db3ff 45%, #a78bfa 70%, #f2b84b); background-size: 220% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: shimmer 9s linear infinite; }
@keyframes shimmer { to { background-position: -220% 0; } }

/* tilting cards */
.tilt { transform-style: preserve-3d; transition: transform .25s ease, box-shadow .25s; will-change: transform; }
.tilt:hover { box-shadow: 0 18px 44px rgba(0,0,0,.18); }

/* floating coins in the hero */
.coin { position: absolute; z-index: -1; width: 46px; height: 46px; border-radius: 50%; border: 2px solid rgba(242,184,75,.55); background: radial-gradient(circle at 30% 30%, rgba(242,184,75,.45), rgba(242,184,75,.08)); display: grid; place-items: center; color: rgba(242,184,75,.9); font: 600 1.1rem var(--display); animation: bob 7s ease-in-out infinite; pointer-events: none; }
@keyframes bob { 50% { transform: translateY(-18px) rotate(8deg); } }

/* showcase: a pinned product reveal. The screen grows and straightens as you scroll, and the story changes with it. */
.showcase { position: relative; height: 420vh; background: linear-gradient(180deg, var(--night), var(--night-mid) 50%, var(--night)); color: var(--on-night); }
.sc-pin { position: sticky; top: 0; height: 100vh; display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.5fr); gap: clamp(1rem, 3vw, 3rem); align-items: center; width: min(1320px, 94%); margin-inline: auto; overflow: hidden; }
.sc-text h2 { color: var(--night-head); font-size: clamp(1.8rem, 3.4vw, 3rem); min-height: 3.6em; }
.sc-text p { color: var(--mute-night); font-size: 1.1rem; min-height: 5.5em; }
.sc-text .eyebrow { color: var(--night-accent); }
.sc-text h2, .sc-text p { transition: opacity .35s, transform .35s; }
.sc-text.swap h2, .sc-text.swap p { opacity: 0; transform: translateY(10px); }
.sc-dots { display: flex; gap: .5rem; margin-top: 1rem; }
.sc-dots button { width: 34px; height: 5px; border: 0; border-radius: 3px; background: var(--night-line); cursor: pointer; padding: 0; transition: background .3s, width .3s; }
.sc-dots button.on { background: #2dbeaf; width: 56px; }
.sc-device { perspective: 1600px; }
.sc-device .frame { transform-origin: 50% 60%; will-change: transform; box-shadow: 0 40px 90px rgba(0,0,0,.55), 0 0 0 1px #243245; }
.sc-shots { position: relative; aspect-ratio: 1440 / 900; background: #0c1522; }
.sc-shots img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .6s ease; }
.sc-shots img.on { opacity: 1; }
/* the pin holds the rail */
.sc-pin { position: sticky; }
.showcase .glow-floor { position: absolute; left: 50%; bottom: 8vh; width: 60vw; height: 30vh; transform: translateX(-50%); background: radial-gradient(closest-side, rgba(45,190,175,.35), transparent); filter: blur(30px); pointer-events: none; }
@media (max-width: 860px) { .showcase { height: 360vh; } .sc-pin { grid-template-columns: 1fr; align-content: center; gap: .6rem; } .sc-text h2 { min-height: 0; font-size: 1.6rem; } .sc-text p { min-height: 0; font-size: 1rem; } .sc-device { order: -1; } }

/* marquee of the questions people bring */
.marquee { overflow: hidden; padding: 1.2rem 0; border-block: 1px solid var(--line); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.marquee .track { display: flex; gap: .8rem; width: max-content; animation: slide 60s linear infinite; }
.marquee:hover .track { animation-play-state: paused; }
.marquee a { white-space: nowrap; padding: .55rem 1.1rem; border: 1px solid var(--line); border-radius: 999px; background: var(--card); color: var(--ink2); text-decoration: none; font-weight: 500; transition: transform .15s, border-color .15s, color .15s; }
.marquee a:hover { transform: translateY(-2px); border-color: var(--brand); color: var(--brand); }
@keyframes slide { to { transform: translateX(-50%); } }

/* divider that slopes into the next section */
.wave { display: block; width: 100%; height: 60px; margin: -1px 0; color: var(--card); }
.wave path { fill: currentColor; }

/* scroll cue */
.cue { position: absolute; left: 50%; bottom: 14px; width: 24px; height: 38px; border: 2px solid rgba(255,255,255,.45); border-radius: 14px; transform: translateX(-50%); }
.cue::after { content: ''; position: absolute; left: 50%; top: 7px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: #fff; animation: cue 1.6s ease-in-out infinite; }
@keyframes cue { 0% { opacity: 1; transform: translateY(0); } 80%, 100% { opacity: 0; transform: translateY(14px); } }

@media (prefers-reduced-motion: reduce) { .ambient i, .coin, .grad, .marquee .track, .cue::after { animation: none; } .showcase { height: auto; } .sc-pin { position: static; height: auto; padding: 3rem 0; } .tilt { transform: none !important; } }

/* pricing: founding offer */
.offer-bar { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .5rem .9rem; padding: .7rem 1rem; background: linear-gradient(90deg, #0f766e, #2563a8 60%, #6d4fc2); color: #fff; font-size: .98rem; }
.offer-bar a { color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.offer-bar .cd { font: 600 1rem var(--mono); letter-spacing: .02em; background: rgba(0,0,0,.25); padding: .15rem .6rem; border-radius: 8px; }
.pulse { width: 9px; height: 9px; border-radius: 50%; background: #f2b84b; box-shadow: 0 0 0 0 rgba(242,184,75,.7); animation: ping 1.8s infinite; }
@keyframes ping { to { box-shadow: 0 0 0 12px rgba(242,184,75,0); } }
.was { font: 400 1.15rem var(--display); color: var(--mute); text-decoration: line-through; text-decoration-thickness: 2px; text-decoration-color: var(--bad); margin-top: .6rem; min-height: 1.5rem; }
.was + .price { margin-top: 0; }
.save { display: inline-block; vertical-align: middle; font: 700 .72rem var(--sans); letter-spacing: .05em; text-transform: uppercase; color: #fff; background: var(--good); padding: .2rem .5rem; border-radius: 6px; margin-left: .35rem; }
.plan.featured { transform: translateY(-6px); }
.trust-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.6rem; }
.trust-row div { border: 1px dashed var(--line); border-radius: 12px; padding: .9rem 1rem; background: color-mix(in srgb, var(--card) 85%, transparent); }
.trust-row b { display: block; margin-bottom: .2rem; } .trust-row span { color: var(--ink2); font-size: .93rem; }
@media (max-width: 760px) { .trust-row { grid-template-columns: 1fr; } .plan.featured { transform: none; } }

/* theme ripple: the new theme is drawn over the old one */
::view-transition-old(root), ::view-transition-new(root) { animation: none; mix-blend-mode: normal; }
::view-transition-old(root) { z-index: 1; } ::view-transition-new(root) { z-index: 2; }

/* showcase scroll cue: the section changes as you scroll, so say so */
/* it rides at the top of the section, just under the site header, and takes no space of its own */
.sc-cue { position: sticky; top: 84px; width: max-content; margin: 0 auto -46px; height: 46px; box-sizing: border-box;
  display: flex; align-items: center; gap: .7rem; padding: .5rem 1rem .5rem .6rem; border-radius: 999px; z-index: 3;
  background: color-mix(in srgb, var(--night2) 85%, transparent); border: 1px solid var(--night-line); box-shadow: 0 10px 30px rgba(0,0,0,.18);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); color: var(--on-night); font-size: .88rem; transition: opacity .4s, transform .4s; }
.sc-cue.done { opacity: 0; transform: translateY(-12px); pointer-events: none; }
.sc-count { font: 600 .78rem var(--mono); color: var(--night-accent); padding: .15rem .55rem; border-radius: 999px; background: var(--night-soft); }
.sc-count b { font-size: .95rem; }
.sc-mouse { width: 18px; height: 28px; border: 2px solid var(--mute-night); border-radius: 10px; position: relative; flex: none; }
.sc-mouse i { position: absolute; left: 50%; top: 5px; width: 3px; height: 6px; margin-left: -1.5px; border-radius: 2px; background: var(--night-accent); animation: cue 1.6s ease-in-out infinite; }
.sc-word { font-weight: 600; letter-spacing: .02em; }
.sc-chev { display: grid; gap: 0; }
.sc-chev i { display: block; width: 9px; height: 9px; border-right: 2px solid var(--night-accent); border-bottom: 2px solid var(--night-accent); transform: rotate(45deg); margin-top: -4px; animation: chev 1.6s ease-in-out infinite; opacity: 0; }
.sc-chev i:nth-child(2) { animation-delay: .2s; }
@keyframes chev { 0% { opacity: 0; transform: translateY(-4px) rotate(45deg); } 50% { opacity: 1; } 100% { opacity: 0; transform: translateY(6px) rotate(45deg); } }
/* a thin rail on the left edge of the section fills as the tour goes on */
.sc-rail { position: absolute; left: 0; top: 22%; bottom: 22%; width: 3px; border-radius: 3px; background: var(--night-line); }
.sc-rail i { display: block; transition: height .15s linear; width: 3px; height: 0; border-radius: 3px; background: linear-gradient(var(--night-accent), #6db3ff); }
.sc-dots button { position: relative; overflow: hidden; }
@media (max-width: 860px) { .sc-rail { display: none; } .sc-cue { font-size: .8rem; } }
@media (prefers-reduced-motion: reduce) { .sc-mouse i, .sc-chev i { animation: none; opacity: 1; } }
