@font-face{font-family:'Space Grotesk';font-weight:500;font-display:swap;src:url(/assets/fonts/space-grotesk-latin-500.woff2) format('woff2')}
@font-face{font-family:'Space Grotesk';font-weight:600;font-display:swap;src:url(/assets/fonts/space-grotesk-latin-600.woff2) format('woff2')}
@font-face{font-family:'Space Grotesk';font-weight:700;font-display:swap;src:url(/assets/fonts/space-grotesk-latin-700.woff2) format('woff2')}

:root{
  --bg:#05060f;--fg:#f4f1ea;--muted:#a9adc1;--line:rgba(255,255,255,.12);
  --saffron:#ff9933;--gold:#ffd166;--rose:#ff4f8b;--cyan:#22e4ff;--violet:#8b5cf6;--green:#4ade80;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --head:'Space Grotesk',Inter,system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--fg)}
body{font:16px/1.6 Inter,system-ui,-apple-system,'Segoe UI',Roboto,'Noto Sans','Noto Sans Gujarati','Noto Sans Devanagari',sans-serif;overflow-x:hidden;-webkit-tap-highlight-color:transparent}

/* ---------- Background layers ---------- */
.sky{position:fixed;inset:0;z-index:0;background:
  radial-gradient(1200px 700px at 50% 115%,rgba(255,153,51,.22),transparent 60%),
  radial-gradient(900px 600px at 10% -10%,rgba(139,92,246,.28),transparent 60%),
  radial-gradient(900px 600px at 95% 0%,rgba(34,228,255,.16),transparent 60%),
  linear-gradient(#04050d,#0a0820 55%,#140a1c)}
.grid{position:fixed;left:-50%;right:-50%;bottom:-10vh;height:55vh;z-index:0;pointer-events:none;
  background-image:linear-gradient(rgba(34,228,255,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(34,228,255,.22) 1px,transparent 1px);
  background-size:56px 56px;transform:perspective(420px) rotateX(62deg);transform-origin:50% 0;
  -webkit-mask-image:linear-gradient(transparent,#000 35%,#000 70%,transparent);mask-image:linear-gradient(transparent,#000 35%,#000 70%,transparent);
  animation:gridmove 3.2s linear infinite;opacity:.55}
@keyframes gridmove{to{background-position:0 56px,0 0}}
#fx{position:fixed;inset:0;z-index:1;display:block}
.scan{position:fixed;inset:0;z-index:4;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 3px);mix-blend-mode:overlay}

/* ---------- Stage ---------- */
.stage{position:relative;z-index:2;max-width:880px;margin:0 auto;padding:clamp(56px,10vh,110px) 20px 80px;text-align:center;pointer-events:none}
.stage a,.stage button,.term,.quote{pointer-events:auto}
.r{opacity:0;transform:translateY(18px);filter:blur(6px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1),filter .9s ease}
body.ready .r{opacity:1;transform:none;filter:none}
body.ready .r:nth-child(2){transition-delay:.12s}body.ready .r:nth-child(3){transition-delay:.3s}
body.ready .r:nth-child(4){transition-delay:.45s}body.ready .r:nth-child(5){transition-delay:.6s}
body.ready .r:nth-child(6){transition-delay:.75s}body.ready .r:nth-child(7){transition-delay:.9s}
body.ready .r:nth-child(8){transition-delay:1.05s}body.ready .r:nth-child(9){transition-delay:1.2s}body.ready .r:nth-child(n+10){transition-delay:1.35s}

.kicker{display:inline-flex;align-items:center;gap:10px;margin:0 0 18px;padding:7px 14px;border:1px solid var(--line);border-radius:999px;
  background:rgba(10,12,30,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  font:12px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kicker b{color:var(--saffron);font-weight:400}
.pulse{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgba(74,222,128,.7);animation:pulse 1.8s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(74,222,128,0)}100%{box-shadow:0 0 0 0 rgba(74,222,128,0)}}

.title{margin:0;font:700 clamp(46px,10.5vw,124px)/.98 var(--head);letter-spacing:-.035em}
.glitch{position:relative;display:inline-block;background:linear-gradient(100deg,var(--gold),var(--saffron) 25%,var(--rose) 50%,var(--cyan) 75%,var(--gold));
  background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 7s linear infinite;
  filter:drop-shadow(0 0 22px rgba(255,153,51,.35))}
@keyframes shimmer{to{background-position:300% 0}}
.glitch::before,.glitch::after{content:attr(data-text);position:absolute;inset:0;background:inherit;-webkit-background-clip:text;background-clip:text;color:transparent;opacity:0}
.glitch::before{animation:gl1 6s infinite steps(1)}
.glitch::after{animation:gl2 6s infinite steps(1)}
@keyframes gl1{0%,91%,100%{opacity:0;transform:none}92%{opacity:.9;transform:translate(-4px,1px);clip-path:inset(12% 0 58% 0)}94%{opacity:.9;transform:translate(3px,-1px);clip-path:inset(62% 0 8% 0)}96%{opacity:0}}
@keyframes gl2{0%,92%,100%{opacity:0;transform:none}93%{opacity:.8;transform:translate(4px,0);clip-path:inset(40% 0 30% 0);filter:hue-rotate(90deg)}95%{opacity:.8;transform:translate(-3px,1px);clip-path:inset(5% 0 75% 0)}97%{opacity:0}}

.native{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 14px;margin:20px 0 0;font-size:clamp(17px,2.6vw,24px);font-weight:600;color:#ffe2b8;text-shadow:0 0 18px rgba(255,153,51,.45)}
.native i{font-style:normal;color:var(--saffron);font-size:.8em}
.wish{max-width:620px;margin:18px auto 0;color:#d8d6e4;font-size:clamp(16px,2.1vw,19px)}

/* ---------- Terminal ---------- */
.term{max-width:640px;margin:34px auto 0;text-align:left;border:1px solid var(--line);border-radius:14px;overflow:hidden;
  background:rgba(8,10,24,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 20px 60px rgba(0,0,0,.45),0 0 0 1px rgba(34,228,255,.06) inset}
.tbar{display:flex;align-items:center;gap:7px;padding:10px 14px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.03)}
.tbar i{width:11px;height:11px;border-radius:50%;background:#ff5f57}.tbar i:nth-child(2){background:#febc2e}.tbar i:nth-child(3){background:#28c840}
.tbar span{margin-left:8px;font:12px var(--mono);color:var(--muted)}
#tty{margin:0;padding:16px 18px 18px;min-height:212px;font:13.5px/1.7 var(--mono);color:#cfe9ff;white-space:pre-wrap;word-break:break-word}
#tty .p{color:var(--green)}#tty .ok{color:var(--green)}#tty .hl{color:var(--gold)}#tty .c{color:var(--cyan)}#tty .m{color:var(--rose)}
#tty .cur{display:inline-block;width:8px;height:1.05em;vertical-align:-2px;background:var(--cyan);animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}

/* ---------- Quote ---------- */
.quote{position:relative;max-width:640px;margin:26px auto 0;padding:24px 26px 20px;border:1px solid var(--line);border-radius:14px;
  background:linear-gradient(135deg,rgba(255,153,51,.10),rgba(139,92,246,.10));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.quote::before{content:'“';position:absolute;top:-22px;left:18px;font:700 72px/1 var(--head);color:var(--saffron);text-shadow:0 0 20px rgba(255,153,51,.6)}
.quote blockquote{margin:0;min-height:3.2em;font:500 clamp(17px,2.3vw,21px)/1.5 var(--head);color:#fff3e0}
.quote figcaption{margin-top:10px;font:12px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.quote figcaption::before{content:'// ';color:var(--muted)}
.qbar{height:2px;margin-top:16px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden}
.qbar span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--saffron),var(--rose),var(--cyan))}
.qbar span.run{animation:qrun 8s linear forwards}
@keyframes qrun{to{width:100%}}

/* ---------- Actions ---------- */
.actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:30px 0 0}
.btn{appearance:none;cursor:pointer;border:1px solid var(--line);border-radius:999px;padding:12px 20px;font:600 15px var(--head);color:var(--fg);text-decoration:none;
  background:rgba(255,255,255,.06);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:transform .2s,box-shadow .2s,background .2s}
.btn:hover{transform:translateY(-2px);background:rgba(255,255,255,.12)}
.btn:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.btn.hot{border-color:transparent;color:#1a0b00;background:linear-gradient(100deg,var(--gold),var(--saffron),var(--rose));box-shadow:0 0 28px rgba(255,153,51,.45)}
.btn.hot:hover{box-shadow:0 0 44px rgba(255,79,139,.6)}
.btn.ghost{background:transparent}
.hint{margin:22px 0 0;font:12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);animation:breathe 2.6s ease-in-out infinite}
@keyframes breathe{50%{opacity:.45}}
.sign{margin:26px 0 0;color:var(--muted)}.sign b{color:var(--fg)}

/* ---------- Diyas ---------- */
.diyas{display:flex;justify-content:center;gap:clamp(14px,4vw,42px);margin:48px 0 0;padding-top:28px;pointer-events:none}
.diya{position:relative;width:46px;height:20px;border-radius:0 0 46px 46px;background:linear-gradient(#e0782a,#8a3a10);box-shadow:0 6px 16px rgba(0,0,0,.5),inset 0 3px 0 rgba(255,210,150,.35)}
.diya::after{content:'';position:absolute;left:-4px;right:-4px;top:-3px;height:6px;border-radius:50%;background:#b8561c}
.diya i{position:absolute;left:50%;bottom:16px;width:12px;height:22px;margin-left:-6px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;
  background:radial-gradient(circle at 50% 75%,#fff 0 18%,#ffe08a 30%,#ff9933 62%,rgba(255,80,0,0) 72%);
  box-shadow:0 0 18px 6px rgba(255,170,60,.55),0 0 50px 18px rgba(255,120,30,.22);transform-origin:50% 100%;animation:flick 1.6s ease-in-out infinite}
.diya:nth-child(2n) i{animation-duration:1.3s;animation-delay:-.4s}.diya:nth-child(3n) i{animation-duration:1.9s;animation-delay:-.9s}
@keyframes flick{0%,100%{transform:scale(1) rotate(-2deg)}25%{transform:scale(1.08,.94) rotate(2deg)}50%{transform:scale(.94,1.08) rotate(-1deg)}75%{transform:scale(1.04,.97) rotate(3deg)}}

/* ---------- Intro, toast, misc ---------- */
.skip{position:fixed;top:max(14px,env(safe-area-inset-top));right:14px;z-index:6;cursor:pointer;border:1px solid var(--line);border-radius:999px;padding:8px 14px;
  font:12px var(--mono);letter-spacing:.08em;color:var(--muted);background:rgba(5,6,15,.6);transition:opacity .5s}
body.ready .skip{opacity:0;pointer-events:none}
.toast{position:fixed;left:50%;bottom:110px;z-index:7;transform:translate(-50%,20px);opacity:0;padding:10px 16px;border-radius:10px;font:13px var(--mono);
  background:rgba(10,12,30,.92);border:1px solid var(--line);color:var(--fg);transition:opacity .3s,transform .3s;pointer-events:none}
.toast.on{opacity:1;transform:translate(-50%,0)}
.noscript{position:relative;z-index:5;text-align:center;padding:40vh 20px}

@media (max-width:560px){
  .term #tty{font-size:12px;min-height:236px}
  .diya{width:34px;height:15px}.diya i{bottom:12px;width:10px;height:18px;margin-left:-5px}
  .diyas .diya:nth-child(n+6){display:none}
  .stage{padding-bottom:64px}
  .kicker{font-size:10.5px;letter-spacing:.06em;gap:8px;padding:7px 12px}
}
@media (prefers-reduced-motion:reduce){
  .grid,.glitch,.glitch::before,.glitch::after,.hint,.diya i,.pulse{animation:none}
  .r{transition:opacity .4s ease;transform:none;filter:none}
}

/* Finale: content steps back so the fireworks fill the screen */
.stage{transition:opacity .6s ease}
body.finale .stage{opacity:.06}
body.finale .scan{opacity:.4}

/* Finale signature */
.fname{position:fixed;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px;text-align:center;pointer-events:none;opacity:0;transform:scale(.92);transition:opacity .9s ease,transform 1.2s cubic-bezier(.2,.7,.2,1)}
body.fsign .fname{opacity:1;transform:none}
.fname .fk{font:600 clamp(14px,2.6vw,20px) var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#ffe2b8;text-shadow:0 0 18px rgba(255,153,51,.7)}
.fname .fn{font:700 clamp(40px,9vw,104px)/1.02 var(--head);letter-spacing:-.03em;background:linear-gradient(100deg,var(--gold),var(--saffron) 30%,var(--rose) 60%,var(--cyan));background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 4s linear infinite;filter:drop-shadow(0 0 26px rgba(255,120,60,.55))}
.fname .fs{font:13px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}

/* Share panel */
.sharebox{position:fixed;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(3,4,12,.7);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.sharebox[hidden]{display:none}
.sbcard{width:100%;max-width:440px;padding:24px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(160deg,rgba(20,16,40,.96),rgba(10,10,26,.96));box-shadow:0 30px 80px rgba(0,0,0,.6);text-align:center}
.sbcard h2{margin:0 0 6px;font:700 24px var(--head)}
.sbcard p{margin:0 0 16px;color:var(--muted);font-size:15px}
.sbrow{display:flex;gap:8px}
.sbrow input{flex:1;min-width:0;padding:11px 12px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:var(--fg);font:14px var(--mono)}
.sbapps{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:14px 0 10px}
body.fsign .stage{opacity:0}
