/* UPRISER animated coming-soon page */
.cs-page{background:var(--night);color:var(--on-night)}
.cs-hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;overflow:hidden;isolation:isolate}

/* rising dawn behind everything */
.dawn{position:absolute;left:50%;bottom:-62vh;width:150vw;height:110vh;transform:translateX(-50%) translateY(18vh);border-radius:50%;
  background:radial-gradient(closest-side,rgba(227,155,58,.42),rgba(183,166,224,.16) 55%,rgba(21,19,28,0) 100%);
  filter:blur(8px);z-index:-2;animation:dawn-rise 3.2s cubic-bezier(.2,.7,.1,1) .2s forwards,dawn-breathe 9s ease-in-out 3.4s infinite alternate}
@keyframes dawn-rise{to{transform:translateX(-50%) translateY(0)}}
@keyframes dawn-breathe{from{opacity:1}to{opacity:.72}}
.stars{position:absolute;inset:0;z-index:-1;opacity:.55;
  background-image:radial-gradient(1px 1px at 12% 18%,#F3EEE6 50%,transparent 51%),radial-gradient(1px 1px at 28% 8%,#CFC8D9 50%,transparent 51%),
  radial-gradient(1.5px 1.5px at 44% 22%,#F3EEE6 50%,transparent 51%),radial-gradient(1px 1px at 63% 12%,#B7A6E0 50%,transparent 51%),
  radial-gradient(1px 1px at 78% 26%,#F3EEE6 50%,transparent 51%),radial-gradient(1.5px 1.5px at 90% 9%,#CFC8D9 50%,transparent 51%),
  radial-gradient(1px 1px at 6% 40%,#B7A6E0 50%,transparent 51%),radial-gradient(1px 1px at 54% 36%,#F3EEE6 50%,transparent 51%),
  radial-gradient(1px 1px at 86% 44%,#F3EEE6 50%,transparent 51%),radial-gradient(1px 1px at 35% 46%,#CFC8D9 50%,transparent 51%);
  animation:twinkle 6s ease-in-out infinite alternate}
@keyframes twinkle{from{opacity:.35}to{opacity:.65}}

/* header */
.cs-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:24px;padding-bottom:24px;width:100%}
.cs-top-right{display:flex;align-items:center;gap:20px}
.cs-soon{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--on-night-3)}
.team-login{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px;border-radius:999px;border:1px solid #4A4356;
  color:var(--on-night);text-decoration:none;font-size:14px;font-weight:600;background:rgba(21,19,28,.5);backdrop-filter:blur(6px)}
.team-login svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.team-login:hover{border-color:var(--lilac);opacity:1}

/* main grid */
.cs-stage-grid{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:32px 48px;padding-top:24px;padding-bottom:24px;width:100%}
.cs-copy{flex:1 1 460px;min-width:0;display:flex;flex-direction:column;gap:24px}
.cs-copy .eyebrow{color:var(--lilac)}
.cs-copy .lead{color:var(--on-night-2);max-width:520px}
.cs-title{font-size:clamp(46px,6.2vw,88px);display:flex;flex-direction:column}
.cs-title .tl{display:block;overflow:hidden;line-height:1;padding-bottom:.06em}
.cs-title .tl > span{display:inline-block;vertical-align:top;transform:translateY(105%);animation:line-up .9s cubic-bezier(.2,.8,.1,1) var(--d,0s) forwards}
.cs-title .accent{background:linear-gradient(92deg,#F3EEE6 0%,#E39B3A 55%,#B7A6E0 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
@keyframes line-up{to{transform:translateY(0)}}
.reveal{opacity:0;transform:translateY(14px);animation:fade-up .9s cubic-bezier(.2,.8,.1,1) var(--d,0s) forwards}
@keyframes fade-up{to{opacity:1;transform:none}}

/* signup on the hero */
.cs-copy .signup{background:rgba(34,30,44,.78);backdrop-filter:blur(8px);border:1px solid #2E2A38;max-width:560px}
.signup-title{margin:0;font-size:20px}
.interest{border:0;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 20px;font-size:14px;color:var(--on-night-2)}
.interest legend{padding:0;margin-bottom:6px}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.5}
.consent input{margin-top:3px}
.hp{position:absolute;left:-9999px}

/* 3D emblem */
.cs-visual{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;align-items:center;gap:18px}
.emblem-stage{position:relative;width:100%;max-width:540px;aspect-ratio:1/1;--glow:227,155,58;cursor:grab;touch-action:pan-y}
.emblem-stage:active{cursor:grabbing}
.emblem-stage[data-glow="nightfall"]{--glow:227,155,58}
.emblem-stage[data-glow="dusk"]{--glow:183,166,224}
.emblem-stage[data-glow="horizon"]{--glow:205,160,140}
.halo{position:absolute;inset:8%;border-radius:50%;background:radial-gradient(closest-side,rgba(var(--glow),.38),rgba(var(--glow),.08) 60%,transparent 100%);
  transition:background .8s ease;animation:halo-pulse 5s ease-in-out infinite alternate}
.halo::after{content:"";position:absolute;inset:-6%;border-radius:50%;border:1px solid rgba(var(--glow),.28);animation:ring-spin 24s linear infinite}
.halo::before{content:"";position:absolute;left:50%;bottom:-2%;width:62%;height:9%;transform:translateX(-50%);border-radius:50%;
  background:radial-gradient(closest-side,rgba(0,0,0,.55),transparent)}
@keyframes halo-pulse{from{transform:scale(.96);opacity:.85}to{transform:scale(1.04);opacity:1}}
@keyframes ring-spin{to{transform:rotate(360deg)}}
.halo::after{border-style:dashed}
#emblem{position:absolute;inset:0;width:100%;height:100%;display:block}
.emblem-fallback{position:absolute;inset:22%;width:56%;height:56%;display:none}
.no-webgl .emblem-fallback{display:block}
.no-webgl #emblem{display:none}
.cw-picker{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.cw{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:6px 14px 6px 6px;border-radius:999px;border:1px solid #3A3446;
  background:rgba(21,19,28,.6);color:var(--on-night);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.cw .dot{width:28px;height:28px}
.cw[aria-pressed="true"]{border-color:var(--on-night);box-shadow:inset 0 0 0 1px var(--on-night)}
.drag-hint{margin:0;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--on-night-3)}

/* horizon */
.cs-horizon{width:100%;padding-bottom:12px}
.horizon-line.grow{transform-origin:left center;transform:scaleX(0);animation:grow 1.6s cubic-bezier(.2,.8,.1,1) 1.2s forwards}
@keyframes grow{to{transform:scaleX(1)}}

/* models teaser */
.cs-collection{background:var(--sand);color:var(--ink);padding:104px 0}
.cs-collection-head{display:flex;flex-direction:column;gap:12px;margin-bottom:44px}
.cs-collection-head .eyebrow{color:var(--bronze)}
.cs-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:32px}
.cs-card{display:flex;flex-direction:column;gap:16px}
.cs-card p{margin:0;font-size:17px;line-height:1.6;color:var(--muted)}
.cs-card-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.cs-card-meta h3{margin:0;font-size:32px;font-weight:800;font-stretch:125%}
.cs-card-meta span{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}
.cycler{position:relative;aspect-ratio:16/10;border-radius:var(--radius);overflow:hidden;background:var(--card)}
.cycler figure{position:absolute;inset:0;margin:0;opacity:0;animation:cycle 16s infinite}
.cycler figure:nth-child(1){animation-delay:0s}
.cycler figure:nth-child(2){animation-delay:4s}
.cycler figure:nth-child(3){animation-delay:8s}
.cycler figure:nth-child(4){animation-delay:12s}
.cycler img{width:100%;height:100%;object-fit:cover}
.cycler figcaption{position:absolute;left:16px;bottom:14px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  padding:6px 12px;border-radius:999px;background:rgba(27,26,31,.82);color:var(--sand-2)}
@keyframes cycle{0%{opacity:0;transform:scale(1.03)}4%{opacity:1}25%{opacity:1}30%{opacity:0;transform:scale(1)}100%{opacity:0}}

@media (max-width:640px){
  .cs-soon{display:none}
  .cs-stage-grid{padding-top:8px}
  .cs-visual{order:-1}
  .emblem-stage{max-width:320px}
  .cs-collection{padding:80px 0}
}
@media (prefers-reduced-motion:reduce){
  .dawn,.stars,.halo,.halo::after,.cs-title .tl > span,.reveal,.horizon-line.grow{animation:none!important;opacity:1;transform:none}
  .dawn{transform:translateX(-50%)}
  .cycler figure{animation:none;opacity:0}
  .cycler figure:first-child{opacity:1}
}
