/* Tremor Landing — page-specific styles.
   Shared tokens, nav/.brand, .navlinks and .btn come from site.css (loaded first).
   Only the landing-unique chrome (globe, hero, features) lives here. */

html { overflow-x:hidden; }
/* Landing fills the viewport for the hero, then scrolls into Features. */
body { min-height:100vh; }

#globe { position:fixed; inset:0; width:100vw; height:100vh; display:block; z-index:1; }

/* Background gradient wash behind the canvas (landing variant) */
.bg-wash { position:fixed; inset:0; z-index:0;
  background:
    radial-gradient(120% 90% at 72% 38%, rgba(228,88,31,0.10) 0%, transparent 42%),
    radial-gradient(100% 100% at 50% 120%, rgba(228,88,31,0.06) 0%, transparent 55%),
    radial-gradient(140% 120% at 50% 50%, #16181C 0%, #0B0C0E 70%); }
.vignette { position:fixed; inset:0; z-index:2; pointer-events:none;
  background:radial-gradient(120% 120% at 50% 45%, transparent 55%, rgba(0,0,0,0.55) 100%); }

/* Chrome / content above canvas */
.layer { position:relative; z-index:3; height:100vh; display:flex; flex-direction:column; pointer-events:none; }
.layer a, .layer button { pointer-events:auto; }

.hero { flex:1; display:flex; flex-direction:column; justify-content:center;
  padding:0 40px 60px; max-width:760px; }
.eyebrow { font-size:12px; letter-spacing:0.32em; text-transform:uppercase; color:var(--molten);
  margin:0 0 22px; font-weight:600; }
h1 { font-family:"New York","Times New Yorker",Georgia,"Times New Roman",serif;
  font-weight:500; font-size:clamp(48px, 8vw, 104px); line-height:0.96; letter-spacing:-0.025em;
  margin:0; text-wrap:balance; }
h1 em { font-style:italic; color:var(--molten); }
.sub { margin:26px 0 0; font-size:clamp(16px,1.7vw,20px); line-height:1.5; color:var(--ink200);
  max-width:30em; text-wrap:pretty; }
.cta { display:flex; gap:14px; margin-top:38px; flex-wrap:wrap; }

/* Entrance — content is visible by default; animation only adds a gentle rise.
   (Never gate base visibility on JS/transition: a throttled tab would stay blank.) */
.eyebrow { animation:rise .8s cubic-bezier(.2,.7,.2,1) .15s both; }
h1       { animation:rise 1s  cubic-bezier(.2,.7,.2,1) .28s both; }
.sub     { animation:rise .9s cubic-bezier(.2,.7,.2,1) .48s both; }
.cta     { animation:rise .9s cubic-bezier(.2,.7,.2,1) .62s both; }
@keyframes rise { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce) {
  .eyebrow,h1,.sub,.cta { animation:none !important; opacity:1 !important; transform:none !important; }
}

#tweaks-root { position:fixed; z-index:50; }

/* ---- Features section (revealed by "Explore features") ---- */
.features { position:relative; z-index:3; padding:120px 40px 64px;
  background:linear-gradient(180deg, rgba(11,12,14,0) 0%, rgba(11,12,14,0.82) 9%, var(--ink) 24%, var(--ink) 100%); }
.features-inner { max-width:1120px; margin:0 auto; }
.sec-kicker { font-size:12px; letter-spacing:0.32em; text-transform:uppercase; color:var(--molten);
  font-weight:600; margin:0 0 8px; }
.sec-head { font-family:"New York",Georgia,"Times New Roman",serif; font-weight:500;
  font-size:clamp(30px,4.4vw,52px); letter-spacing:-0.02em; line-height:1.02; margin:0 0 56px;
  color:var(--bone); text-wrap:balance; max-width:18ch; }
.feature-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:2px;
  background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.07); border-radius:18px; overflow:hidden; }
.feature { background:var(--ink); padding:40px 38px; display:flex; flex-direction:column; gap:14px;
  transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.feature:hover { background:#101216; }
.fnum { font-family:"JetBrains Mono","SF Mono",ui-monospace,monospace; font-size:13px;
  letter-spacing:0.12em; color:var(--molten); }
.feature h3 { font-family:"New York",Georgia,serif; font-weight:500; font-size:27px;
  letter-spacing:-0.015em; margin:0; color:var(--bone); }
.feature p { margin:0; font-size:16px; line-height:1.55; color:var(--ink200); max-width:38ch; text-wrap:pretty; }
/* Reveal is additive: cards are visible by default; .in only plays a rise. */
@keyframes featRise { from { opacity:0; transform:translateY(26px); } to { opacity:1; transform:none; } }
.js-reveal .feature.in { animation:featRise .7s cubic-bezier(.2,.7,.2,1) both; }

.appstore { text-align:center; padding:96px 0 40px; }
.appstore h2 { font-family:"New York",Georgia,serif; font-weight:500; font-size:clamp(28px,4vw,44px);
  letter-spacing:-0.02em; margin:0 0 28px; color:var(--bone); }
.features-footer { text-align:center; padding:40px 0 8px; font-size:13px; letter-spacing:0.04em;
  color:var(--ink300); border-top:1px solid rgba(255,255,255,0.07); }

@media (max-width: 720px) {
  .hero { padding:0 22px 40px; }
  .features { padding:90px 22px 48px; }
  .feature-grid { grid-template-columns:1fr; }
  .feature { padding:32px 26px; }
  .appstore { padding:72px 0 32px; }
}
