/* ============================================================
   MANIFEST — pinned paragraph, words warm up on scroll
   ============================================================ */
.manifest-track{ position:relative; height:360vh; }
.manifest-panel{
  position:sticky; top:0; min-height:100svh;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:clamp(4rem,10vh,7rem) var(--pad); text-align:center;
}
.reveal{
  font-weight:300;
  font-size:clamp(1.15rem,2.3vw,1.95rem);
  line-height:1.45; letter-spacing:-.01em;
  max-width:30ch; margin:1.9rem auto 0;
}
.reveal w{ color:var(--dim); transition:color .35s linear; }
.reveal w.edge{ color:var(--primary); }
.reveal w.lit{ color:var(--tertiary); }

/* ============================================================
   VISION
   ============================================================ */
.vision{
  position:relative; overflow:hidden;
  padding:clamp(4.5rem,13vh,9rem) var(--pad);
  border-top:1px solid var(--rule);
  background:var(--lift);
}
.vision::before{
  content:""; position:absolute; left:-10%; top:-30%;
  width:60vw; height:60vw; pointer-events:none;
  background:radial-gradient(circle at center, rgba(122,108,255,.10), transparent 62%);
}
.vision > *{ position:relative; z-index:2; }
.vision .display{ max-width:26ch; }

.cards{
  display:grid; gap:1.4rem; margin-top:clamp(2.6rem,6vh,4.2rem);
  grid-template-columns:1fr;
}
@media(min-width:820px){
  .cards{ grid-template-columns:repeat(3,1fr); align-items:start; }
  .cards .card:nth-child(1){ margin-top:2.6rem; }
  .cards .card:nth-child(3){ margin-top:1.3rem; }
}

.card{
  position:relative; padding:2.4rem 1.9rem 2.2rem;
  border:1px solid var(--rule); border-radius:18px;
  background:linear-gradient(180deg, rgba(122,108,255,.05), rgba(122,108,255,.015));
  text-align:center;
  transition:border-color .45s ease, transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s ease;
}
.card:hover{
  border-color:rgba(122,108,255,.45);
  transform:translateY(-5px);
  box-shadow:0 26px 60px -30px rgba(67,56,202,.9);
}
.card-ico{
  width:52px; height:52px; margin:0 auto 1.6rem;
  display:grid; place-items:center;
  border:1px solid var(--rule); border-radius:13px;
  background:rgba(122,108,255,.06);
  transition:border-color .45s ease, background .45s ease;
}
.card:hover .card-ico{ border-color:rgba(122,108,255,.5); background:rgba(122,108,255,.13); }
.card-ico svg{ width:22px; height:22px; stroke:var(--primary); fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.card h3{
  margin:0 0 .9rem; font-size:1.05rem; font-weight:500;
  letter-spacing:-.01em; color:var(--primary);
}
.card p{ margin:0; color:var(--muted); font-size:.92rem; line-height:1.65; }

/* ============================================================
   STATS + ORBIT OBJECT
   ============================================================ */
.stats-wrap{
  position:relative; overflow:hidden;
  padding:clamp(4rem,11vh,7rem) var(--pad) clamp(5rem,14vh,9rem);
  background:var(--black); border-top:1px solid var(--rule);
}
.stats{
  display:grid; grid-template-columns:repeat(2,1fr); gap:2.4rem 0;
  max-width:1180px; margin:0 auto;
}
@media(min-width:820px){ .stats{ grid-template-columns:repeat(4,1fr); } }
.stat{ padding:0 clamp(1rem,2.5vw,2rem); }
@media(min-width:820px){ .stat + .stat{ border-left:1px solid var(--rule); } }
.stat b{
  display:block; font-family:var(--serif); font-weight:500;
  font-size:clamp(2.6rem,6vw,4.4rem); line-height:1;
  letter-spacing:-.01em; color:#fff;
}
.stat b s{ text-decoration:none; color:var(--primary); }
.stat > span{ display:block; margin-top:.9rem; font-size:.88rem; color:var(--muted); }

/* the object */
.orbit{
  position:relative; width:min(560px,84vw); aspect-ratio:1/1.15;
  margin:clamp(2.5rem,7vh,5rem) auto 0;
  display:grid; place-items:center;
}
.orbit-rings{
  position:relative; width:62%; aspect-ratio:1;
  transform-style:preserve-3d;
  animation:orbitSpin 26s linear infinite;
  filter:drop-shadow(0 0 10px rgba(122,108,255,.75))
         drop-shadow(0 0 44px rgba(67,56,202,.5));
}
.orbit-rings i{
  position:absolute; inset:0; border-radius:50%;
  background:conic-gradient(from 0deg,
    rgba(122,108,255,0), var(--primary) 18%, #C9C3FF 34%,
    var(--secondary) 56%, rgba(122,108,255,.25) 74%, rgba(122,108,255,0) 100%);
  -webkit-mask:radial-gradient(closest-side, transparent 87%, #000 88%);
  mask:radial-gradient(closest-side, transparent 87%, #000 88%);
}
.orbit-rings i:nth-child(1){ transform:rotateX(72deg) rotateZ(6deg); }
.orbit-rings i:nth-child(2){ transform:rotateX(20deg) rotateY(64deg); }
.orbit-rings i:nth-child(3){ transform:rotateY(-38deg) rotateZ(48deg); opacity:.8;
  animation:orbitCounter 34s linear infinite; }
@keyframes orbitCounter{ from{ transform:rotateY(-38deg) rotateZ(48deg) } to{ transform:rotateY(-398deg) rotateZ(48deg) } }
@keyframes orbitSpin{ from{ transform:rotate3d(1,1,.2,0deg) } to{ transform:rotate3d(1,1,.2,360deg) } }

.orbit-pool{
  position:absolute; left:50%; bottom:2%; transform:translateX(-50%);
  width:104%; height:26%; border-radius:50%;
  background:radial-gradient(ellipse at center,
             rgba(122,108,255,.62), rgba(67,56,202,.30) 46%, transparent 72%);
  filter:blur(14px);
}
.orbit-core{
  position:absolute; width:26%; aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle at 42% 36%, rgba(255,255,255,.55), rgba(122,108,255,.30) 44%, transparent 70%);
  filter:blur(6px);
}

/* ============================================================
   TICKETS
   ============================================================ */
.tickets{
  position:relative; overflow:hidden;
  padding:clamp(4.5rem,13vh,9rem) var(--pad);
  border-top:1px solid var(--rule); background:var(--black);
  text-align:center;
}
.tickets::before{
  content:""; position:absolute; left:50%; top:-20%;
  width:90vw; height:70vh; transform:translateX(-50%); pointer-events:none;
  background:radial-gradient(ellipse at center, rgba(122,108,255,.09), transparent 64%);
}
.tickets > *{ position:relative; z-index:2; }
.tickets .display{ margin-left:auto; margin-right:auto; }

.pass-grid{
  display:grid; gap:1.4rem; grid-template-columns:1fr;
  max-width:1120px; margin:clamp(2.8rem,7vh,4.5rem) auto 0;
  align-items:stretch;
}
@media(min-width:880px){ .pass-grid{ grid-template-columns:repeat(3,1fr); } }

.pass{
  position:relative; display:flex; flex-direction:column;
  padding:2.6rem 1.9rem 2.4rem;
  border:1px solid var(--rule); border-radius:20px;
  background:linear-gradient(180deg, rgba(122,108,255,.05), rgba(122,108,255,.015));
  transition:border-color .45s ease, transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s ease;
}
.pass:hover{ transform:translateY(-5px); border-color:rgba(122,108,255,.45); }
.pass.featured{
  border-color:rgba(122,108,255,.62);
  box-shadow:0 0 0 1px rgba(122,108,255,.18), 0 30px 70px -34px rgba(67,56,202,1);
}
.pass-badge{
  position:absolute; left:50%; top:0; transform:translate(-50%,-50%);
  padding:.4rem 1.05rem; border-radius:100px; white-space:nowrap;
  font-size:.7rem; font-weight:500; color:#fff;
  background:linear-gradient(180deg, var(--primary), var(--secondary));
  box-shadow:0 8px 22px -10px rgba(67,56,202,1);
}
.pass h3{
  margin:0; font-size:1rem; font-weight:500; letter-spacing:.01em;
  color:var(--muted);
}
.pass .price{
  font-family:var(--serif); font-weight:500;
  font-size:clamp(2.6rem,5.4vw,3.6rem); line-height:1;
  margin:1.5rem 0 2rem; color:#fff;
}
.pass ul{ list-style:none; margin:0; padding:0; display:grid; gap:.85rem; text-align:left; }
.pass li{ display:flex; gap:.75rem; align-items:flex-start; color:var(--muted); font-size:.92rem; }
.pass li::before{ content:"\2713"; color:var(--primary); flex:none; font-size:.85rem; line-height:1.6; }
.note{ margin:2.2rem 0 0; font-size:.78rem; color:var(--dim); }

/* ============================================================
   CLOSE + FOOTER
   ============================================================ */
.close{
  position:relative; overflow:hidden;
  padding:clamp(4.5rem,14vh,10rem) var(--pad);
  display:grid; gap:2.6rem;
  border-top:1px solid var(--rule);
}
.close::before{
  content:""; position:absolute; left:50%; bottom:-60%;
  width:100vw; height:100vh; transform:translateX(-50%);
  background:radial-gradient(ellipse at center, rgba(67,56,202,.22), transparent 62%);
  pointer-events:none;
}
@media(min-width:860px){ .close{ grid-template-columns:1.1fr .9fr; align-items:end; } }
.close > div{ position:relative; z-index:2; }
.close p{ margin:0 0 1.9rem; color:var(--muted); max-width:44ch; }

/* the one lit object on the page */
.cta{
  position:relative; display:inline-flex; align-items:center;
  padding:1.05rem 2.2rem; border-radius:100px;
  font-weight:500; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  color:#fff; text-decoration:none; white-space:nowrap;
  background:linear-gradient(180deg, var(--primary) 0%, #5B4CE8 50%, var(--secondary) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.55),
    inset 0 -2px 4px rgba(20,10,80,.5),
    0 2px 3px rgba(0,0,0,.7),
    0 16px 36px -12px rgba(67,56,202,.85),
    0 0 72px -18px rgba(122,108,255,.7);
  transition:transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s ease;
}
.cta::after{
  content:""; position:absolute; left:3px; right:3px; top:2px; height:44%;
  border-radius:100px 100px 50% 50%/100px 100px 26px 26px;
  background:linear-gradient(180deg, rgba(255,255,255,.30), rgba(255,255,255,0));
  pointer-events:none;
}
.cta:hover{
  transform:translateY(-3px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.65),
    inset 0 -2px 4px rgba(20,10,80,.5),
    0 2px 3px rgba(0,0,0,.7),
    0 24px 48px -14px rgba(67,56,202,.95),
    0 0 92px -14px rgba(122,108,255,.85);
}
.cta:active{ transform:translateY(0); }

footer{
  position:relative; z-index:2;
  padding:1.8rem var(--pad) 2.6rem;
  border-top:1px solid var(--rule);
  display:flex; flex-wrap:wrap; gap:.6rem 2rem; justify-content:space-between; align-items:center;
  font-weight:500; font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted);
}
footer svg{ width:64px; height:auto; fill:var(--muted); }

