/* ============== TOKENS ============== */
:root{
  --bg:#000;
  --fg:#fff;
  --orange:#FF5500;
  --orange-soft:rgba(255,85,0,0.08);
  --orange-mid:rgba(255,85,0,0.3);
  --orange-glow:rgba(255,85,0,0.45);
  --line:rgba(255,255,255,0.06);
  --mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
  --display:'Bebas Neue',Impact,sans-serif;
  --sans:'Plus Jakarta Sans',system-ui,sans-serif;
}

/* ============== BASE ============== */
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden}
body{
  background:var(--bg);
  color:var(--fg);
  font-family:var(--sans);
  display:flex;
  flex-direction:column;
  min-height:100vh;
  position:relative;
  cursor:none;
  -webkit-font-smoothing:antialiased;
}

/* dot grid */
body::before{
  content:'';
  position:fixed;inset:0;
  background-image:radial-gradient(circle,rgba(255,85,0,0.07) 1.5px,transparent 1.5px);
  background-size:50px 50px;
  pointer-events:none;
  z-index:0;
  animation:gridDrift 40s linear infinite;
}
@keyframes gridDrift{
  0%{background-position:0 0}
  100%{background-position:50px 50px}
}

/* central pulse glow */
body::after{
  content:'';
  position:fixed;inset:0;
  background:radial-gradient(ellipse at 50% 55%,rgba(255,85,0,0.10) 0%,transparent 60%);
  pointer-events:none;
  z-index:0;
  animation:glowPulse 7s ease-in-out infinite;
}
@keyframes glowPulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.7;transform:scale(1.04)}
}

/* ============== MOUSE SPOTLIGHT ============== */
.spotlight{
  position:fixed;
  width:600px;height:600px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,85,0,0.13) 0%,transparent 60%);
  pointer-events:none;
  z-index:1;
  transform:translate(-50%,-50%);
  filter:blur(28px);
  will-change:left,top;
}

/* ============== NOISE ============== */
.noise{
  position:fixed;inset:0;
  pointer-events:none;
  z-index:90;
  opacity:.045;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");
}

/* ============== CUSTOM CURSOR ============== */
.cursor-dot{
  position:fixed;top:0;left:0;
  width:8px;height:8px;
  background:var(--orange);
  border-radius:50%;
  pointer-events:none;
  z-index:9999;
  transform:translate(-50%,-50%);
  transition:width .25s,height .25s,opacity .25s;
  box-shadow:0 0 12px var(--orange);
}
.cursor-ring{
  position:fixed;top:0;left:0;
  width:36px;height:36px;
  border:1px solid rgba(255,85,0,.5);
  border-radius:50%;
  pointer-events:none;
  z-index:9998;
  transform:translate(-50%,-50%);
  transition:width .3s,height .3s,border-color .3s,background .3s;
}
body.hovering .cursor-dot{width:0;height:0}
body.hovering .cursor-ring{
  width:64px;height:64px;
  border-color:var(--orange);
  background:rgba(255,85,0,.1);
}

@media (hover:none){
  body{cursor:auto}
  .cursor-dot,.cursor-ring,.spotlight{display:none}
}

/* ============== LOADER ============== */
.loader{
  position:fixed;inset:0;
  background:#000;
  z-index:1000;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:24px;
  transition:opacity .7s,visibility .7s;
}
.loader.hidden{opacity:0;visibility:hidden;pointer-events:none}
.loader-text{
  font-family:var(--display);
  font-size:72px;
  color:var(--orange);
  letter-spacing:10px;
  text-shadow:0 0 30px var(--orange-glow);
  animation:loaderPulse 1.4s ease-in-out infinite;
}
@keyframes loaderPulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.5;transform:scale(.98)}
}
.loader-bar{
  width:220px;height:2px;
  background:rgba(255,85,0,.15);
  overflow:hidden;
}
.loader-bar span{
  display:block;width:100%;height:100%;
  background:var(--orange);
  transform:translateX(-100%);
  animation:loaderFill 1.3s cubic-bezier(.65,0,.35,1) forwards;
  box-shadow:0 0 12px var(--orange);
}
@keyframes loaderFill{to{transform:translateX(0)}}
.loader-meta{
  font-family:var(--mono);
  font-size:10px;
  color:rgba(255,255,255,.4);
  letter-spacing:3px;
}

/* ============== SIDE RAILS ============== */
.rail{
  position:fixed;
  top:50%;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:6px;
  color:rgba(255,85,0,.25);
  white-space:nowrap;
  z-index:3;
  pointer-events:none;
  user-select:none;
}
.rail-l{
  left:14px;
  transform:translateY(-50%) rotate(-90deg);
  transform-origin:left center;
}
.rail-r{
  right:14px;
  transform:translateY(-50%) rotate(90deg);
  transform-origin:right center;
}

/* ============== HEADER ============== */
header{
  position:relative;z-index:10;
  padding:22px 40px;
  display:flex;justify-content:space-between;align-items:center;
  border-bottom:1px solid var(--line);
  background:rgba(0,0,0,.35);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.logo{
  font-family:var(--display);
  font-size:28px;
  color:var(--orange);
  letter-spacing:4px;
  position:relative;
  cursor:none;
  transition:text-shadow .3s,letter-spacing .3s;
}
.logo:hover{
  text-shadow:0 0 20px var(--orange-glow);
  letter-spacing:6px;
}
.nav-tag{
  font-family:var(--mono);
  font-size:11px;
  color:rgba(255,255,255,.45);
  letter-spacing:2px;
  text-transform:uppercase;
  display:flex;align-items:center;gap:10px;
}
.nav-tag::before{
  content:'';
  width:6px;height:6px;
  background:var(--orange);
  border-radius:50%;
  display:inline-block;
  box-shadow:0 0 10px var(--orange);
  animation:blink 2s ease-in-out infinite;
}
@keyframes blink{
  0%,100%{opacity:1}
  50%{opacity:.25}
}

/* ============== MAIN ============== */
main{
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:40px 24px;
  position:relative;
  z-index:5;
}

/* pill */
.pill{
  display:inline-flex;align-items:center;gap:10px;
  border:1px solid var(--orange-mid);
  background:var(--orange-soft);
  color:var(--orange);
  font-size:11px;font-weight:700;
  padding:8px 22px;border-radius:30px;
  letter-spacing:3px;text-transform:uppercase;
  margin-bottom:36px;
  backdrop-filter:blur(6px);
  position:relative;overflow:hidden;
  animation:pillFloat 3.5s ease-in-out infinite,fadeUp .8s ease .2s both;
}
@keyframes pillFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-3px)}
}
.pill::before{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,85,0,.35),transparent);
  transform:translateX(-100%);
  animation:shimmer 3.5s ease-in-out infinite;
}
@keyframes shimmer{to{transform:translateX(100%)}}
.pill-dot{
  width:6px;height:6px;
  background:var(--orange);
  border-radius:50%;
  box-shadow:0 0 10px var(--orange);
  animation:blink 1.4s ease-in-out infinite;
}

/* headline */
.hero-title{
  font-family:var(--display);
  font-size:clamp(64px,14vw,200px);
  line-height:.88;
  letter-spacing:-4px;
  color:var(--fg);
  margin-bottom:0;
  perspective:1000px;
}
.hero-title .line{display:block}
.hero-title .or{
  color:var(--orange);
  text-shadow:0 0 40px rgba(255,85,0,.4);
}
.hero-title .word{
  display:inline-block;
  position:relative;
  opacity:0;
  transform:translateY(80px) rotateX(-40deg);
  animation:wordReveal 1s cubic-bezier(.22,1,.36,1) forwards;
  cursor:none;
}
.hero-title .line:nth-child(1) .word:nth-child(1){animation-delay:.6s}
.hero-title .line:nth-child(1) .word:nth-child(2){animation-delay:.75s}
.hero-title .line:nth-child(2) .word:nth-child(1){animation-delay:.9s}
.hero-title .line:nth-child(2) .word:nth-child(2){animation-delay:1.05s}
@keyframes wordReveal{
  to{opacity:1;transform:translateY(0) rotateX(0)}
}

/* glitch on hover */
.hero-title .word::before,
.hero-title .word::after{
  content:attr(data-text);
  position:absolute;left:0;top:0;
  opacity:0;
  pointer-events:none;
}
.hero-title .word:hover::before{
  color:var(--orange);
  clip-path:polygon(0 0,100% 0,100% 50%,0 50%);
  transform:translate(-3px,-2px);
  opacity:1;
  animation:glitch .35s steps(2) infinite;
}
.hero-title .word:hover::after{
  color:#00e5ff;
  clip-path:polygon(0 50%,100% 50%,100% 100%,0 100%);
  transform:translate(3px,2px);
  opacity:1;
  animation:glitch .35s steps(2) infinite reverse;
}
@keyframes glitch{
  0%{transform:translate(0)}
  20%{transform:translate(-2px,2px)}
  40%{transform:translate(-2px,-2px)}
  60%{transform:translate(2px,2px)}
  80%{transform:translate(2px,-2px)}
  100%{transform:translate(0)}
}

/* rule */
.rule{
  width:clamp(60px,8vw,100px);
  height:3px;
  background:var(--orange);
  margin:36px auto;
  position:relative;
  overflow:hidden;
  box-shadow:0 0 22px rgba(255,85,0,.55);
  transform-origin:center;
  animation:ruleGrow 1s cubic-bezier(.22,1,.36,1) 1.2s both;
}
@keyframes ruleGrow{
  from{transform:scaleX(0);opacity:0}
  to{transform:scaleX(1);opacity:1}
}
.rule::after{
  content:'';
  position:absolute;top:0;left:-50%;
  width:50%;height:100%;
  background:linear-gradient(90deg,transparent,#fff,transparent);
  animation:ruleShimmer 2.4s ease-in-out infinite;
}
@keyframes ruleShimmer{to{left:120%}}

/* sub */
.sub{
  font-size:clamp(14px,2vw,18px);
  color:rgba(255,255,255,.55);
  letter-spacing:.3px;
  margin-bottom:48px;
  max-width:480px;
  opacity:0;
  animation:fadeUp .8s ease 1.4s forwards;
}
.sub strong{
  color:var(--orange);
  font-weight:700;
}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:translateY(0)}
}

/* CTA */
.cta{
  display:inline-flex;
  align-items:center;
  gap:12px;
  background:var(--orange);
  color:#000;
  padding:18px 40px;
  border-radius:12px;
  font-weight:700;
  font-size:15px;
  text-decoration:none;
  letter-spacing:.5px;
  position:relative;
  overflow:hidden;
  cursor:none;
  opacity:0;
  animation:fadeUp .8s ease 1.6s forwards;
  transition:background .25s,box-shadow .3s,color .25s;
  will-change:transform;
}
.cta:hover{
  background:#fff;
  box-shadow:0 18px 50px rgba(255,85,0,.45),0 0 0 1px rgba(255,85,0,.5);
}
.cta-arrow{
  display:inline-flex;align-items:center;
  transition:transform .3s cubic-bezier(.22,1,.36,1);
}
.cta:hover .cta-arrow{transform:translateX(6px)}
.cta-glow{
  position:absolute;inset:0;
  background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.45),transparent 50%);
  opacity:0;
  transition:opacity .3s;
  pointer-events:none;
}
.cta:hover .cta-glow{opacity:1}

/* ============== FLOATING CARDS ============== */
.floaters{
  position:fixed;inset:0;
  pointer-events:none;
  z-index:2;
}
.float-wrap{
  position:absolute;
  pointer-events:none;
  transition:transform .6s cubic-bezier(.22,1,.36,1);
  will-change:transform;
}
.float-card{
  background:rgba(18,18,18,.55);
  border:1px solid rgba(255,85,0,.18);
  border-radius:14px;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  padding:14px 18px;
  display:flex;
  flex-direction:column;
  gap:4px;
  font-family:var(--mono);
  box-shadow:0 14px 50px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.04);
  opacity:0;
  animation:cardFadeIn .8s cubic-bezier(.22,1,.36,1) forwards,floatY 7s ease-in-out infinite;
}
.float-card.row{
  flex-direction:row;align-items:center;gap:10px;
}
.float-card.arrow{
  background:rgba(255,85,0,.1);
  border-color:rgba(255,85,0,.4);
}
.fc-label{
  font-size:9px;
  color:rgba(255,85,0,.7);
  letter-spacing:2px;
  text-transform:uppercase;
}
.fc-value{
  font-family:var(--display);
  font-size:30px;
  color:var(--fg);
  letter-spacing:2px;
  line-height:1;
}
.fc-meta{
  font-size:9px;
  color:rgba(255,255,255,.4);
  letter-spacing:1.5px;
}
.fc-dot{
  width:8px;height:8px;
  background:var(--orange);
  border-radius:50%;
  box-shadow:0 0 12px var(--orange);
  animation:blink 1.3s ease-in-out infinite;
  flex-shrink:0;
}
.fc-status{
  font-family:var(--mono);
  font-size:11px;
  color:var(--orange);
  font-weight:600;
  letter-spacing:2px;
}
.fc-arrow{
  font-family:var(--display);
  font-size:24px;
  color:var(--orange);
  line-height:1;
}
.fc-arrow-text{
  font-size:11px;
  color:var(--orange);
  letter-spacing:2px;
  font-weight:600;
}

@keyframes cardFadeIn{
  from{opacity:0;transform:translateY(30px) scale(.95)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes floatY{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-14px)}
}

/* card positions */
.fp1{top:18%;left:5%}
.fp2{top:24%;right:6%}
.fp3{bottom:22%;left:4%}
.fp4{bottom:26%;right:5%}
.fp5{top:52%;left:2.5%}
.fp6{top:14%;right:21%}

.fp1 .float-card{animation-delay:.4s,0s;animation-duration:.8s,7s}
.fp2 .float-card{animation-delay:.55s,.5s;animation-duration:.8s,8s;animation-direction:normal,reverse}
.fp3 .float-card{animation-delay:.7s,1s;animation-duration:.8s,6.5s}
.fp4 .float-card{animation-delay:.5s,.3s;animation-duration:.8s,7.5s;animation-direction:normal,reverse}
.fp5 .float-card{animation-delay:.65s,.8s;animation-duration:.8s,9s}
.fp6 .float-card{animation-delay:.85s,.6s;animation-duration:.8s,6s;animation-direction:normal,reverse}

/* ============== MARQUEE ============== */
.marquee{
  position:relative;
  z-index:5;
  overflow:hidden;
  border-top:1px solid rgba(255,85,0,.2);
  border-bottom:1px solid rgba(255,85,0,.2);
  background:rgba(255,85,0,.04);
  padding:14px 0;
  mask-image:linear-gradient(90deg,transparent 0%,#000 8%,#000 92%,transparent 100%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 8%,#000 92%,transparent 100%);
}
.marquee-track{
  display:flex;
  white-space:nowrap;
  animation:marquee 40s linear infinite;
}
.marquee-track span{
  font-family:var(--display);
  font-size:18px;
  letter-spacing:5px;
  color:var(--orange);
  padding-right:40px;
  flex-shrink:0;
}
@keyframes marquee{
  from{transform:translateX(0)}
  to{transform:translateX(-33.3333%)}
}

/* ============== FOOTER ============== */
footer{
  position:relative;z-index:10;
  padding:14px 40px;
  border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;
  background:rgba(0,0,0,.4);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  font-family:var(--mono);
  gap:16px;
}
.foot-l,.foot-r{
  font-size:10px;
  color:rgba(255,255,255,.32);
  letter-spacing:1.5px;
}
.foot-r a{
  color:var(--orange);
  text-decoration:none;
  cursor:none;
  transition:text-shadow .3s,letter-spacing .3s;
}
.foot-r a:hover{
  text-shadow:0 0 12px var(--orange);
}
.foot-stat{
  font-size:10px;
  color:rgba(255,255,255,.45);
  letter-spacing:1.5px;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.foot-stat-dot{
  width:6px;height:6px;
  background:#00ff88;
  border-radius:50%;
  box-shadow:0 0 10px #00ff88;
  animation:blink 2s ease-in-out infinite;
}

/* ============== RESPONSIVE ============== */
@media (max-width:1100px){
  .fp6{display:none}
  .rail{display:none}
}
@media (max-width:900px){
  .fp2,.fp3{display:none}
  .float-card{padding:12px 14px}
  .fc-value{font-size:24px}
}
@media (max-width:640px){
  body{cursor:auto}
  .cursor-dot,.cursor-ring,.spotlight{display:none}
  header{padding:18px 22px}
  footer{padding:12px 22px;flex-direction:column;gap:8px;text-align:center}
  .foot-c{order:3}
  .rule{margin:28px auto}
  .pill{margin-bottom:24px}
  .marquee-track span{font-size:14px;letter-spacing:3px}
  .loader-text{font-size:54px;letter-spacing:6px}

  /* shrink floating cards for phone */
  .float-card{padding:7px 11px;border-radius:10px;gap:2px}
  .fc-value{font-size:16px;letter-spacing:1px}
  .fc-label{font-size:7px;letter-spacing:1.5px}
  .fc-meta{font-size:7px;letter-spacing:1px}
  .fc-status{font-size:9px;letter-spacing:1px}
  .fc-arrow{font-size:18px}
  .fc-arrow-text{font-size:9px}
  .fc-dot{width:6px;height:6px}

  /* reposition for narrow viewport — one card per corner */
  .fp1{top:11%;left:3%;bottom:auto}
  .fp2{display:block;top:11%;right:3%;bottom:auto}
  .fp4{bottom:16%;right:3%;top:auto}
  .fp5{bottom:16%;left:3%;top:auto}
  .fp3,.fp6{display:none}
}

/* in-app browser fallback — backdrop-filter not supported in Instagram/TikTok WebView */
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .float-card{background:rgba(15,15,15,.96)}
  header{background:rgba(0,0,0,.92)}
  footer{background:rgba(0,0,0,.92)}
}

/* a11y */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}
