/* ── MOONSHOT · purple launchpad ─────────────────────────────── */
:root{
  --bg:#0a0413; --bg2:#12071f; --panel:rgba(30,14,54,.62);
  --line:rgba(178,124,255,.22);
  --p1:#c084fc; --p2:#8b5cf6; --p3:#6d28d9; --p4:#e9d5ff;
  --accent:#f0abfc; --mint:#7dffc3;
  --text:#f3e9ff; --muted:#b6a3d4;
  --r:18px; --shadow:0 22px 60px rgba(88,28,135,.45);
  --ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth; overflow-x:clip}
body{
  margin:0; background:var(--bg); color:var(--text);
  font:400 16px/1.6 "Space Grotesk",system-ui,sans-serif;
  overflow-x:clip; -webkit-font-smoothing:antialiased;
}
h1,h2,h3{line-height:1.05; margin:0; letter-spacing:-.02em}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}

/* ── background layers ─────────────────────────────────────── */
#stars{position:fixed; inset:0; z-index:-3; width:100%; height:100%}
.aurora{position:fixed; inset:-20%; z-index:-2; filter:blur(90px); opacity:.65; pointer-events:none}
.aurora span{position:absolute; width:52vw; height:52vw; border-radius:50%; mix-blend-mode:screen}
.aurora span:nth-child(1){background:radial-gradient(circle,#7c3aed,transparent 65%); top:-10%; left:-8%; animation:drift 22s var(--ease) infinite alternate}
.aurora span:nth-child(2){background:radial-gradient(circle,#c026d3,transparent 65%); top:35%; right:-14%; animation:drift 28s var(--ease) infinite alternate-reverse}
.aurora span:nth-child(3){background:radial-gradient(circle,#4c1d95,transparent 65%); bottom:-18%; left:28%; animation:drift 34s var(--ease) infinite alternate}
@keyframes drift{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(6vw,-7vh,0) scale(1.25)}}
.grid-floor{
  position:fixed; inset:auto 0 0 0; height:42vh; z-index:-2; pointer-events:none;
  background:
    linear-gradient(transparent,rgba(10,4,19,.96) 72%),
    repeating-linear-gradient(to right,var(--line) 0 1px,transparent 1px 72px),
    repeating-linear-gradient(to bottom,var(--line) 0 1px,transparent 1px 72px);
  transform:perspective(420px) rotateX(70deg); transform-origin:bottom;
  animation:floor 6s linear infinite; opacity:.5;
}
@keyframes floor{to{background-position:0 0,0 0,0 72px}}

/* ── nav ───────────────────────────────────────────────────── */
.nav{
  position:sticky; top:0; z-index:50; display:flex; align-items:center; gap:18px;
  padding:16px clamp(16px,4vw,48px);
  background:rgba(10,4,19,.55); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  animation:dropIn .7s var(--ease) both;
}
@keyframes dropIn{from{opacity:0; transform:translateY(-100%)}}
.brand{display:flex; align-items:center; gap:10px; font-weight:700; letter-spacing:.14em; margin-right:auto}
.brand-mark{font-size:22px; display:inline-block; animation:bob 4s var(--ease) infinite}
.brand-text b{background:linear-gradient(90deg,var(--p1),var(--accent)); -webkit-background-clip:text; background-clip:text; color:transparent}
@keyframes bob{50%{transform:translateY(-6px) rotate(-12deg)}}
.nav-links{display:flex; gap:26px; font-size:15px; color:var(--muted)}
.nav-links a{position:relative; transition:color .25s}
.nav-links a::after{content:""; position:absolute; left:0; bottom:-6px; height:2px; width:0; background:linear-gradient(90deg,var(--p1),var(--accent)); transition:width .3s var(--ease)}
.nav-links a:hover{color:var(--text)} .nav-links a:hover::after{width:100%}

/* ── buttons ───────────────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:13px 22px; border-radius:999px; border:1px solid transparent;
  font-weight:600; font-size:15px; cursor:pointer; position:relative; overflow:hidden;
  transition:transform .25s var(--ease), box-shadow .25s, background .25s, border-color .25s;
}
.btn:active{transform:scale(.96)}
.btn-primary{background:linear-gradient(120deg,var(--p2),var(--p1) 55%,var(--accent)); color:#170528; box-shadow:0 12px 34px rgba(168,85,247,.45)}
.btn-primary:hover{transform:translateY(-3px) scale(1.03); box-shadow:0 20px 48px rgba(240,171,252,.5)}
.btn-ghost{background:rgba(192,132,252,.1); border-color:var(--line); color:var(--text)}
.btn-ghost:hover{background:rgba(192,132,252,.2); transform:translateY(-3px)}
.shine::before{
  content:""; position:absolute; top:0; left:-120%; width:60%; height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);
  animation:shine 3.2s var(--ease) infinite;
}
@keyframes shine{0%{left:-120%}55%,100%{left:160%}}
.pulse{animation:pulse 2.6s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 0 0 12px rgba(192,132,252,0)} 0%,100%{box-shadow:0 0 0 0 rgba(192,132,252,.35)}}

/* ── reveal on scroll ──────────────────────────────────────── */
.reveal{opacity:0; transform:translateY(34px); transition:opacity .8s var(--ease) var(--d,0s), transform .8s var(--ease) var(--d,0s)}
.reveal.in{opacity:1; transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important; animation-iteration-count:1!important; transition-duration:.001s!important}
  .reveal{opacity:1; transform:none}
}

/* ── hero ──────────────────────────────────────────────────── */
.hero{
  display:grid; grid-template-columns:1.05fr .95fr; gap:40px; align-items:center;
  padding:clamp(40px,7vw,96px) clamp(16px,4vw,48px) 40px; max-width:1240px; margin:auto;
}
.eyebrow{display:inline-flex; align-items:center; gap:9px; margin:0 0 20px;
  padding:7px 15px; border-radius:999px; border:1px solid var(--line);
  background:rgba(192,132,252,.09); color:var(--p4); font-size:13.5px; letter-spacing:.04em}
.dot{width:8px; height:8px; border-radius:50%; background:var(--mint); box-shadow:0 0 12px var(--mint); animation:blink 1.6s infinite}
@keyframes blink{50%{opacity:.25}}
h1{font-size:clamp(42px,7.2vw,86px); font-weight:700}
.line{display:block; overflow:hidden}
.line>span{display:block; animation:riseIn 1s var(--ease) both}
.line:nth-child(2)>span{animation-delay:.12s}
@keyframes riseIn{from{transform:translateY(105%)}}
.grad{
  background:linear-gradient(100deg,var(--p1),var(--accent),#a5b4fc,var(--p1));
  background-size:300% 100%; -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:flow 7s linear infinite;
}
@keyframes flow{to{background-position:300% 0}}
.lede{color:var(--muted); font-size:clamp(16px,1.6vw,19px); max-width:52ch; margin:22px 0 30px}
.lede b{color:var(--text)}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap}
.stats{display:flex; gap:34px; margin:42px 0 0; flex-wrap:wrap}
.stats dt{font-size:12.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted)}
.stats dd{margin:6px 0 0; font:700 30px/1 "JetBrains Mono",monospace;
  background:linear-gradient(180deg,#fff,var(--p1)); -webkit-background-clip:text; background-clip:text; color:transparent}

/* hero art */
.hero-art{display:grid; place-items:center; min-height:420px}
.orbit{position:relative; width:min(420px,78vw); aspect-ratio:1; display:grid; place-items:center}
.moon{
  width:46%; aspect-ratio:1; border-radius:50%; position:relative;
  background:radial-gradient(circle at 32% 28%,#f5ebff,#c4a6f0 45%,#7c4fd6 78%,#3b1a6b);
  box-shadow:0 0 70px rgba(192,132,252,.55), inset -18px -12px 40px rgba(38,10,70,.6);
  animation:spin 44s linear infinite, glow 5s ease-in-out infinite;
}
@keyframes glow{50%{box-shadow:0 0 120px rgba(240,171,252,.7), inset -18px -12px 40px rgba(38,10,70,.6)}}
.crater{position:absolute; border-radius:50%; background:rgba(74,35,122,.45); box-shadow:inset 2px 3px 6px rgba(20,4,40,.6)}
.c1{width:22%; height:22%; top:20%; left:24%} .c2{width:14%; height:14%; top:56%; left:54%} .c3{width:10%; height:10%; top:34%; left:64%}
.ring{position:absolute; inset:0; border-radius:50%; border:1px dashed var(--line)}
.r1{inset:6%; animation:spin 18s linear infinite}
.r2{inset:-4%; border-style:solid; border-color:rgba(240,171,252,.18); animation:spin 30s linear infinite reverse}
.r3{inset:-16%; animation:spin 46s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.sat{position:absolute; font-size:24px; filter:drop-shadow(0 0 10px rgba(240,171,252,.7))}
.s1{animation:orb1 14s linear infinite} .s2{animation:orb2 20s linear infinite} .s3{animation:orb3 26s linear infinite}
@keyframes orb1{from{transform:rotate(0) translateX(190px) rotate(0)}to{transform:rotate(360deg) translateX(190px) rotate(-360deg)}}
@keyframes orb2{from{transform:rotate(120deg) translateX(230px) rotate(-120deg)}to{transform:rotate(480deg) translateX(230px) rotate(-480deg)}}
@keyframes orb3{from{transform:rotate(240deg) translateX(160px) rotate(-240deg)}to{transform:rotate(600deg) translateX(160px) rotate(-600deg)}}
.rocket{position:absolute; bottom:-6%; left:6%; font-size:44px; animation:fly 7s var(--ease) infinite}
@keyframes fly{0%{transform:translate(0,0) rotate(0)}50%{transform:translate(120px,-150px) rotate(18deg)}100%{transform:translate(0,0) rotate(0)}}
.flame{position:absolute; left:2px; bottom:0; width:14px; height:26px; border-radius:50% 50% 60% 60%;
  background:linear-gradient(#fff,var(--accent),transparent); filter:blur(3px); animation:flame .18s infinite alternate}
@keyframes flame{to{transform:scaleY(1.5) translateY(4px); opacity:.6}}

/* ── marquee ───────────────────────────────────────────────── */
.marquee{overflow:hidden; border-block:1px solid var(--line); background:rgba(139,92,246,.08); padding:13px 0}
.marquee-track{display:flex; gap:44px; width:max-content; animation:slide 26s linear infinite; font:700 14px/1 "JetBrains Mono",monospace; color:var(--mint); letter-spacing:.1em}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-50%)}}

/* ── sections ──────────────────────────────────────────────── */
section{position:relative}
.launch,.board,.how{max-width:1240px; margin:auto; padding:clamp(56px,8vw,110px) clamp(16px,4vw,48px)}
.section-head{text-align:center; margin-bottom:42px}
.section-head h2{font-size:clamp(30px,4.6vw,54px)}
.section-head p{color:var(--muted); margin:12px 0 0}

.card{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--r);
  backdrop-filter:blur(16px); box-shadow:var(--shadow); position:relative; overflow:hidden;
}
.card::after{content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  background:linear-gradient(140deg,rgba(255,255,255,.1),transparent 40%)}

/* ── form ──────────────────────────────────────────────────── */
.launch-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:26px; align-items:start}
.form{padding:clamp(20px,3vw,32px); display:grid; gap:20px}
.field{display:grid; gap:8px; min-width:0}
label,legend{font-size:13px; letter-spacing:.09em; text-transform:uppercase; color:var(--p4); font-weight:600}
.opt{text-transform:none; letter-spacing:0; color:var(--muted); font-weight:400; font-size:12px}
input[type=text],input[type=url],textarea{
  width:100%; padding:13px 15px; border-radius:12px; color:var(--text);
  background:rgba(12,5,24,.72); border:1px solid var(--line);
  font:inherit; transition:border-color .25s, box-shadow .25s, transform .25s var(--ease);
}
textarea{resize:vertical}
input:focus,textarea:focus{outline:none; border-color:var(--p1); box-shadow:0 0 0 4px rgba(192,132,252,.18); transform:translateY(-1px)}
input::placeholder,textarea::placeholder{color:#7f6ba3}
.row{display:grid; grid-template-columns:1fr 1fr; gap:16px}
.ticker-wrap{position:relative}
.ticker-wrap .prefix{position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--p1); font-weight:700}
.ticker-wrap input{padding-left:30px; text-transform:uppercase; letter-spacing:.1em; font-family:"JetBrains Mono",monospace}
.counter{color:var(--muted); font-size:12px; justify-self:end}
.hint{color:#fca5a5; font-size:12.5px; min-height:1em}
.links{border:1px dashed var(--line); border-radius:14px; padding:16px; margin:0; display:grid; gap:10px}
.ln{display:flex; align-items:center; gap:10px; text-transform:none; letter-spacing:0; font-size:15px; color:var(--text)}
.ln>span{width:32px; height:32px; flex:none; display:grid; place-items:center; border-radius:10px; background:rgba(192,132,252,.14); border:1px solid var(--line); transition:transform .3s var(--ease)}
.ln:focus-within>span{transform:rotate(-10deg) scale(1.12)}
.btn-launch{width:100%; padding:17px; font-size:17px}
.btn-launch.loading .btn-label{opacity:0}
.btn-launch.loading::after{content:"launching…"; position:absolute; inset:0; display:grid; place-items:center; font-weight:700; letter-spacing:.14em; animation:blink 1s infinite}
.fineprint{margin:0; text-align:center; font-size:12.5px; color:var(--muted)}

/* ── coin card ─────────────────────────────────────────────── */
.preview-card{padding:20px; position:sticky; top:92px}
.preview-head{display:flex; align-items:center; gap:9px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:14px}
.led{width:8px; height:8px; border-radius:50%; background:var(--mint); box-shadow:0 0 10px var(--mint); animation:blink 1.4s infinite}
.coin{
  border:1px solid var(--line); border-radius:16px; padding:18px;
  background:linear-gradient(160deg,rgba(139,92,246,.2),rgba(12,5,24,.65));
  display:grid; gap:12px; transition:transform .3s var(--ease), box-shadow .3s;
}
.coin:hover{box-shadow:0 20px 50px rgba(168,85,247,.35)}
.coin-top{display:flex; align-items:center; gap:13px}
.coin-img{
  width:56px; height:56px; flex:none; border-radius:14px; overflow:hidden;
  display:grid; place-items:center; font-size:26px;
  background:linear-gradient(140deg,var(--p2),var(--accent)); box-shadow:0 0 22px rgba(192,132,252,.45);
  animation:bob 5s var(--ease) infinite;
}
.coin-img img{width:100%; height:100%; object-fit:cover}
.coin h3{font-size:19px} .tick{margin:3px 0 0; font:700 13px/1 "JetBrains Mono",monospace; color:var(--p1); letter-spacing:.12em}
.badge{margin-left:auto; align-self:flex-start; font-size:10.5px; font-weight:700; letter-spacing:.14em;
  padding:5px 9px; border-radius:999px; color:#150425; background:var(--mint); box-shadow:0 0 16px rgba(125,255,195,.5)}
.coin-desc{margin:0; color:var(--muted); font-size:14.5px; word-break:break-word}
.coin-links{display:flex; gap:8px; flex-wrap:wrap}
.coin-links a{
  font-size:13px; padding:7px 13px; border-radius:999px; color:var(--p4);
  border:1px solid var(--line); background:rgba(192,132,252,.1);
  transition:transform .25s var(--ease), background .25s;
}
.coin-links a:hover{transform:translateY(-3px) scale(1.05); background:rgba(192,132,252,.25)}
.spark{display:flex; align-items:flex-end; gap:4px; height:38px}
.spark i{flex:1; border-radius:3px 3px 0 0; background:linear-gradient(180deg,var(--accent),var(--p3)); animation:bars 1.6s ease-in-out infinite}
.spark i:nth-child(2n){animation-duration:2.1s} .spark i:nth-child(3n){animation-duration:1.3s}
.spark i:nth-child(n+1){animation-delay:calc(var(--i,0)*.08s)}
@keyframes bars{0%,100%{height:34%}50%{height:100%}}
.tilt{transform-style:preserve-3d; will-change:transform}

/* ── board ─────────────────────────────────────────────────── */
.coin-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:20px}
.coin-grid .coin{animation:pop .6s var(--ease) both}
@keyframes pop{from{opacity:0; transform:translateY(26px) scale(.94)}}
.coin .del{position:absolute; top:10px; right:10px; width:26px; height:26px; border-radius:50%;
  border:1px solid var(--line); background:rgba(12,5,24,.7); color:var(--muted); cursor:pointer;
  opacity:0; transition:opacity .25s, transform .25s, color .25s; line-height:1}
.coin{position:relative}
.coin:hover .del{opacity:1} .coin .del:hover{color:#fca5a5; transform:rotate(90deg) scale(1.15)}
.empty{text-align:center; color:var(--muted); margin-top:26px}
.empty a{color:var(--p1); border-bottom:1px solid var(--line)}

/* ── steps ─────────────────────────────────────────────────── */
.steps{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr)); gap:20px}
.step{padding:26px 22px; transition:transform .35s var(--ease)}
.step:hover{transform:translateY(-8px) rotate(-1deg)}
.num{display:grid; place-items:center; width:40px; height:40px; border-radius:12px; margin-bottom:14px;
  font:700 18px/1 "JetBrains Mono",monospace; color:#180527;
  background:linear-gradient(140deg,var(--p1),var(--accent)); box-shadow:0 0 20px rgba(192,132,252,.5)}
.step h3{font-size:18px; margin-bottom:8px} .step p{margin:0; color:var(--muted); font-size:14.5px}

/* ── footer / toast / confetti ─────────────────────────────── */
.footer{border-top:1px solid var(--line); padding:32px 20px 46px; text-align:center; color:var(--muted); font-size:14px}
.toast{
  position:fixed; left:50%; bottom:32px; z-index:99; transform:translate(-50%,140%);
  padding:14px 22px; border-radius:999px; font-weight:600;
  background:linear-gradient(120deg,var(--p2),var(--accent)); color:#180527;
  box-shadow:0 18px 44px rgba(168,85,247,.5); transition:transform .5s var(--ease); pointer-events:none;
}
.toast.show{transform:translate(-50%,0)}
#confetti{position:fixed; inset:0; z-index:98; pointer-events:none}

/* ── responsive ────────────────────────────────────────────── */
@media (max-width:980px){
  .hero{grid-template-columns:1fr; text-align:center}
  .hero-copy{order:2} .hero-art{order:1; min-height:320px}
  .eyebrow,.hero-cta,.stats{justify-content:center}
  .lede{margin-inline:auto}
  .launch-grid{grid-template-columns:1fr}
  .preview-card{position:static}
}
@media (max-width:620px){
  .nav-links{display:none}
  .orbit{width:min(420px,62vw)}
  .rocket{font-size:34px}
  .row{grid-template-columns:1fr}
  .stats{gap:22px} .stats dd{font-size:24px}
}

/* ── image dropzone ────────────────────────────────────────── */
.drop{
  position:relative; display:grid; place-items:center; gap:6px; text-align:center;
  min-height:170px; padding:18px; cursor:pointer; overflow:hidden;
  border:2px dashed var(--line); border-radius:16px;
  background:radial-gradient(circle at 50% 120%,rgba(139,92,246,.22),rgba(12,5,24,.6));
  transition:border-color .3s, transform .3s var(--ease), box-shadow .3s;
}
.drop:hover,.drop:focus-visible,.drop.over{
  border-color:var(--p1); outline:none; transform:translateY(-3px);
  box-shadow:0 0 0 4px rgba(192,132,252,.16), 0 18px 40px rgba(88,28,135,.45);
}
.drop.over{border-style:solid; animation:pulse 1.2s ease-in-out infinite}
.drop-empty{display:grid; gap:4px; justify-items:center; color:var(--muted); pointer-events:none}
.drop-empty b{color:var(--text); font-size:15px}
.drop-empty small{font-size:12.5px}
.drop-icon{font-size:34px; animation:bob 3.4s var(--ease) infinite}
.drop img{max-height:190px; width:auto; border-radius:12px; box-shadow:0 14px 34px rgba(24,6,48,.6);
  animation:pop .5s var(--ease) both}
.drop.has-img{min-height:0; border-style:solid}

/* ── badges (shared) ───────────────────────────────────────── */
.badge.is-pending{background:linear-gradient(120deg,#fbbf24,#fcd34d); color:#2a1605; box-shadow:0 0 16px rgba(251,191,36,.45)}
.badge.is-live{background:var(--mint); color:#062a1b; box-shadow:0 0 16px rgba(125,255,195,.5)}
.admin-link{margin:10px 0 0; font-size:13px}
.admin-link a{color:var(--p1); opacity:.75; transition:opacity .25s}
.admin-link a:hover{opacity:1}

/* ── admin panel ───────────────────────────────────────────── */
.admin-body .grid-floor{display:none}
.admin-tag{
  font:700 11px/1 "JetBrains Mono",monospace; letter-spacing:.18em; padding:7px 11px; border-radius:999px;
  color:#180527; background:linear-gradient(120deg,var(--p1),var(--accent)); box-shadow:0 0 18px rgba(192,132,252,.45);
}
.admin{max-width:1100px; margin:auto; padding:clamp(34px,6vw,70px) clamp(16px,4vw,48px) 90px}
.admin .section-head{margin-bottom:30px}

.admin-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:22px}
.stat-tile{padding:20px; display:grid; gap:4px; justify-items:center; text-align:center; transition:transform .3s var(--ease)}
.stat-tile:hover{transform:translateY(-4px)}
.stat-n{font:700 34px/1 "JetBrains Mono",monospace;
  background:linear-gradient(180deg,#fff,var(--p1)); -webkit-background-clip:text; background-clip:text; color:transparent}
.stat-tile.pending .stat-n{background:linear-gradient(180deg,#fff,#fbbf24); -webkit-background-clip:text; background-clip:text}
.stat-tile.live .stat-n{background:linear-gradient(180deg,#fff,var(--mint)); -webkit-background-clip:text; background-clip:text}
.stat-l{font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted)}

.toolbar{display:flex; flex-wrap:wrap; gap:12px; align-items:center; padding:14px 16px; margin-bottom:22px}
.search{display:flex; align-items:center; gap:9px; flex:1 1 230px; padding:9px 14px; border-radius:999px;
  background:rgba(12,5,24,.72); border:1px solid var(--line); transition:border-color .25s, box-shadow .25s}
.search:focus-within{border-color:var(--p1); box-shadow:0 0 0 4px rgba(192,132,252,.16)}
.search input{border:none; background:none; padding:0; width:100%; color:var(--text); font:inherit}
.search input:focus{outline:none; box-shadow:none; transform:none}
.filters{display:flex; gap:7px}
.chip{
  padding:9px 15px; border-radius:999px; cursor:pointer; font:600 13px/1 inherit; color:var(--muted);
  background:rgba(192,132,252,.08); border:1px solid var(--line);
  transition:transform .25s var(--ease), color .25s, background .25s, border-color .25s;
}
.chip:hover{transform:translateY(-2px); color:var(--text)}
.chip.is-on{color:#180527; background:linear-gradient(120deg,var(--p1),var(--accent)); border-color:transparent; box-shadow:0 0 18px rgba(192,132,252,.4)}
.tools{display:flex; gap:7px; flex-wrap:wrap; margin-left:auto}
.btn.sm{padding:9px 14px; font-size:13px}
.btn.danger{color:#fca5a5; border-color:rgba(252,165,165,.3)}
.btn.danger:hover{background:rgba(252,165,165,.14)}
.btn[disabled]{opacity:.4; pointer-events:none}

.admin-list{display:grid; gap:14px}
.acoin{padding:16px 18px; display:grid; gap:14px; animation:pop .5s var(--ease) both;
  transition:transform .3s var(--ease), box-shadow .3s}
.acoin:hover{transform:translateY(-3px); box-shadow:0 22px 52px rgba(88,28,135,.5)}
.acoin.is-live{border-color:rgba(125,255,195,.3)}
.acoin.is-live::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:linear-gradient(180deg,var(--mint),transparent)}
.acoin-main{display:flex; gap:15px; align-items:flex-start}
.acoin-img{width:62px; height:62px; flex:none; border-radius:14px; overflow:hidden; display:grid; place-items:center;
  font-size:28px; background:linear-gradient(140deg,var(--p2),var(--accent)); box-shadow:0 0 20px rgba(192,132,252,.4)}
.acoin-img img{width:100%; height:100%; object-fit:cover}
.acoin-id{min-width:0; flex:1}
.acoin-id h3{font-size:18px; display:flex; align-items:baseline; gap:9px; flex-wrap:wrap}
.acoin-id .tick{font:700 13px/1 "JetBrains Mono",monospace; color:var(--p1); letter-spacing:.1em}
.meta{margin:5px 0 0; font-size:12.5px; color:var(--muted)}
.acoin-desc{margin:8px 0 0; font-size:14.5px; color:var(--text); word-break:break-word}
.dim{color:var(--muted); font-style:italic}
.acoin-links{display:flex; gap:7px; flex-wrap:wrap; margin-top:9px; font-size:13px}
.acoin-links a{padding:5px 11px; border-radius:999px; color:var(--p4);
  border:1px solid var(--line); background:rgba(192,132,252,.1); transition:transform .25s var(--ease), background .25s}
.acoin-links a:hover{transform:translateY(-2px); background:rgba(192,132,252,.24)}

.acoin-actions{display:flex; gap:9px; flex-wrap:wrap; align-items:center;
  padding-top:13px; border-top:1px dashed var(--line)}
.launch-url{display:flex; align-items:center; gap:8px; flex:1 1 240px; min-width:0;
  text-transform:none; letter-spacing:0; font-size:13px; color:var(--muted)}
.launch-url span{flex:none; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--p4)}
.launch-url input{padding:9px 12px; font-size:13.5px; border-radius:10px}
.admin-note{margin-top:26px; max-width:70ch; margin-inline:auto; line-height:1.7}
.admin-note code{font-family:"JetBrains Mono",monospace; color:var(--p1)}

@media (max-width:760px){
  .admin-stats{grid-template-columns:1fr}
  .tools{margin-left:0; width:100%}
  .acoin-actions{flex-direction:column; align-items:stretch}
  .launch-url{flex-direction:column; align-items:stretch; gap:5px}
}

/* ── discord webhook settings ──────────────────────────────── */
.hook{padding:18px 20px; display:grid; gap:14px; margin-bottom:22px}
.hook-head h3{font-size:17px; display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.hook-head p{margin:6px 0 0; color:var(--muted); font-size:14px}
.hook-state{
  font:700 10.5px/1 "JetBrains Mono",monospace; letter-spacing:.14em; text-transform:uppercase;
  padding:5px 10px; border-radius:999px; color:var(--muted);
  background:rgba(192,132,252,.1); border:1px solid var(--line);
}
.hook-state.is-on{color:#062a1b; background:var(--mint); border-color:transparent; box-shadow:0 0 14px rgba(125,255,195,.45)}
.hook-row{display:flex; gap:8px; flex-wrap:wrap; align-items:center}
.hook-row input{flex:1 1 280px; min-width:0; font-family:"JetBrains Mono",monospace; font-size:13px}
.hook-auto{display:flex; align-items:center; gap:10px; cursor:pointer;
  text-transform:none; letter-spacing:0; font-size:14px; color:var(--text); font-weight:400}
.hook-auto input{width:18px; height:18px; accent-color:var(--p1); cursor:pointer}
.hook-warn{margin:0; font-size:12.5px; color:var(--muted); line-height:1.65;
  padding:11px 13px; border-radius:12px; border:1px dashed rgba(251,191,36,.3); background:rgba(251,191,36,.06)}
@media (max-width:760px){ .hook-row input{flex-basis:100%} }

/* ── pending countdown ─────────────────────────────────────── */
.coin.is-waiting{border-color:rgba(251,191,36,.34)}
.coin.is-waiting .coin-img{animation:bob 5s var(--ease) infinite, waiting 2.2s ease-in-out infinite}
@keyframes waiting{50%{box-shadow:0 0 30px rgba(251,191,36,.55)}}
.badge.is-pending{font-variant-numeric:tabular-nums}
.badge.just-live{animation:flip .9s var(--ease)}
@keyframes flip{
  0%{transform:scale(.6) rotate(-12deg); opacity:0}
  45%{transform:scale(1.22) rotate(4deg)}
  100%{transform:scale(1) rotate(0); opacity:1}
}

/* ── X / Twitter links ─────────────────────────────────────── */
.x-link{
  display:grid; place-items:center; width:40px; height:40px; flex:none;
  border-radius:50%; color:var(--p4);
  background:rgba(192,132,252,.1); border:1px solid var(--line);
  transition:transform .3s var(--ease), background .3s, color .3s, box-shadow .3s;
}
.x-link svg{width:17px; height:17px}
.x-link:hover,.x-link:focus-visible{
  color:#180527; background:linear-gradient(120deg,var(--p1),var(--accent));
  border-color:transparent; transform:translateY(-3px) scale(1.08) rotate(-8deg);
  box-shadow:0 12px 30px rgba(192,132,252,.5); outline:none;
}
.footer-social{margin:0 0 4px}
.x-follow{
  display:inline-flex; align-items:center; gap:9px; padding:10px 18px; border-radius:999px;
  color:var(--p4); background:rgba(192,132,252,.1); border:1px solid var(--line); font-weight:600;
  transition:transform .3s var(--ease), background .3s, color .3s, box-shadow .3s;
}
.x-follow svg{width:15px; height:15px}
.x-follow:hover,.x-follow:focus-visible{
  color:#180527; background:linear-gradient(120deg,var(--p1),var(--accent));
  border-color:transparent; transform:translateY(-3px); box-shadow:0 14px 34px rgba(192,132,252,.45); outline:none;
}
@media (max-width:620px){ .x-link{width:36px; height:36px} }

/* ── contract address bar ──────────────────────────────────── */
.ca-bar{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  margin:26px 0 0; padding:12px 14px; border-radius:16px; position:relative; overflow:hidden;
  background:rgba(12,5,24,.72); border:1px solid var(--line);
  transition:border-color .3s, box-shadow .3s;
}
.ca-bar::before{
  content:""; position:absolute; top:0; left:-130%; width:55%; height:100%;
  background:linear-gradient(100deg,transparent,rgba(192,132,252,.22),transparent);
  animation:shine 4.5s var(--ease) infinite; pointer-events:none;
}
.ca-bar:hover{border-color:var(--p1); box-shadow:0 0 0 4px rgba(192,132,252,.12)}
.ca-bar.copied{border-color:var(--mint); box-shadow:0 0 0 4px rgba(125,255,195,.16)}
.ca-tag{
  flex:none; font:700 11px/1 "JetBrains Mono",monospace; letter-spacing:.16em;
  padding:7px 10px; border-radius:8px; color:#180527;
  background:linear-gradient(120deg,var(--p1),var(--accent));
}
.ca-text{
  flex:1 1 220px; min-width:0; cursor:pointer;
  font-family:"JetBrains Mono",monospace; font-size:clamp(11px,1.15vw,13.5px);
  color:var(--p4); word-break:break-all; line-height:1.45; text-align:left;
  transition:color .25s;
}
.ca-text:hover{color:#fff}
.ca-copy{
  flex:none; position:relative; cursor:pointer; font:600 13px/1 inherit;
  padding:9px 16px; border-radius:999px; color:var(--text);
  background:rgba(192,132,252,.14); border:1px solid var(--line);
  transition:transform .25s var(--ease), background .25s, color .25s;
}
.ca-copy:hover{transform:translateY(-2px); background:rgba(192,132,252,.28)}
.ca-copy:active{transform:scale(.95)}
.ca-copy-done{position:absolute; inset:0; display:grid; place-items:center; opacity:0; transition:opacity .2s}
.ca-bar.copied .ca-copy{color:#062a1b; background:var(--mint); border-color:transparent}
.ca-bar.copied .ca-copy-idle{opacity:0}
.ca-bar.copied .ca-copy-done{opacity:1}
@media (max-width:980px){ .ca-bar{justify-content:center} .ca-text{text-align:center; flex-basis:100%} }
