:root{
  --bg:#0b0e14;--panel:#0f151d;--text:#e6edf6;--muted:#99a7bd;
  --gold:#ffd36e;--cyan:#56e0ff;--vio:#a792ff;--vio2:#6b4bff;--green:#6dffb1;--red:#ff8f8f;
  --radius:20px;--ring:0 0 0 1px rgba(255,255,255,.08);--shadow:0 24px 70px rgba(0,0,0,.55);
}
*{box-sizing:border-box}html,body{height:100%}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,Segoe UI,Roboto,Arial;background:var(--bg);color:var(--text)}
.hide{display:none!important}

.scene{min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto;position:relative;overflow-x:hidden}
.orbs{position:absolute;inset:-40vh -20vw -40vh -20vw;pointer-events:none;filter:blur(46px) saturate(1.15);
  background:
    radial-gradient(1000px 600px at 10% 0%, rgba(167,146,255,.16), transparent 60%),
    radial-gradient(900px 520px at 90% 10%, rgba(107,75,255,.14), transparent 60%),
    radial-gradient(800px 420px at 70% 100%, rgba(86,224,255,.10), transparent 60%),
    radial-gradient(700px 420px at 0% 100%, rgba(255,211,110,.10), transparent 60%);
  animation:drift 17s ease-in-out infinite alternate}
@keyframes drift{from{transform:translateY(-2%) scale(1)}to{transform:translateY(2%) scale(1.02)}}

.topbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;
  padding:16px clamp(16px,3vw,36px);background:linear-gradient(180deg, rgba(24,0,48,.55), rgba(0,0,0,0));backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:14px}
.logo{width:40px;height:40px;border-radius:12px;box-shadow:0 0 0 1px rgba(255,255,255,.08),0 12px 24px rgba(0,0,0,.35);animation:float 4s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-3px)}}
.cta{color:var(--text);text-decoration:none;border:1px solid rgba(255,255,255,.12);padding:8px 12px;border-radius:12px}

.shell{padding:clamp(16px,3vw,40px);display:grid;gap:18px;max-width:980px;margin:0 auto}
.panel{background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);box-shadow:var(--shadow),0 0 0 1px rgba(167,146,255,.12) inset,0 0 40px rgba(107,75,255,.12) inset;padding:18px clamp(16px,3vw,26px);animation:pop .25s ease}
@keyframes pop{from{opacity:.65;transform:scale(.985)}to{opacity:1;transform:scale(1)}}

/* Product */
.product{display:grid;gap:14px}
.product__hero{height:220px;border-radius:16px;background: radial-gradient(60% 80% at 20% 20%, rgba(107,75,255,.35), transparent 60%), #0c1119;display:grid;place-items:center;box-shadow:inset 0 0 60px rgba(107,75,255,.16)}
.product__hero img{width:120px;height:120px;border-radius:22px;box-shadow:0 18px 40px rgba(0,0,0,.45)}
.product__meta h1{margin:6px 0 4px;font-size:clamp(20px,3vw,26px)}
.price{margin-top:6px;font-size:clamp(24px,4vw,30px);font-weight:900;background:linear-gradient(90deg,var(--gold),var(--cyan));-webkit-background-clip:text;color:transparent}
.mini{color:var(--muted);font-size:13px}
.btn{appearance:none;border:0;cursor:pointer;padding:12px 16px;border-radius:12px;font-weight:800;background:linear-gradient(90deg,var(--gold),var(--cyan));color:#0a0a0a;box-shadow:0 12px 26px rgba(255,211,110,.16),0 10px 22px rgba(86,224,255,.12)}
.btn-ghost{background:transparent;color:var(--text);border:1px solid rgba(255,255,255,.14)}

/* Lists */
.stepTitle{margin-bottom:8px;color:var(--muted)}
.searchWrap input{width:100%;padding:12px 14px;border-radius:14px;background:#0b1017;border:1px solid rgba(255,255,255,.1);color:var(--text)}
.list{display:grid;gap:10px}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border-radius:14px;background:var(--panel);border:1px solid rgba(255,255,255,.07);box-shadow:var(--ring),0 0 24px rgba(107,75,255,.08) inset;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s}
.row:hover{transform:translateY(-2px);box-shadow:0 0 0 1px rgba(255,211,110,.35),0 20px 30px rgba(0,0,0,.35),0 0 30px rgba(107,75,255,.16) inset;border-color:rgba(255,211,110,.35)}
.rowLeft{display:flex;align-items:center;gap:12px}
.rowIcon{width:36px;height:36px;border-radius:12px;overflow:hidden;display:grid;place-items:center;background:linear-gradient(135deg, rgba(255,211,110,.12), rgba(86,224,255,.12));border:1px solid rgba(255,255,255,.08)}
.rowIcon img{width:26px;height:26px}
.rowTitle{font-weight:800;letter-spacing:.3px}

/* Step header + rotating token icon (clipped, brand color accent) */
.head{display:flex;gap:14px;align-items:center;margin-bottom:12px}
.tokenIcon{
  position:relative; width:44px;height:44px; flex:0 0 44px;
  border-radius:12px; overflow:hidden; display:grid; place-items:center;
  background:#0b1017; border:1px solid rgba(255,255,255,.10); box-shadow:inset 0 0 24px rgba(107,75,255,.10);
}
.tokenIcon img{width:26px;height:26px;z-index:1;filter:drop-shadow(0 4px 10px rgba(0,0,0,.35))}
.tokenIcon::before{
  content:""; position:absolute; inset:-35%;
  background:conic-gradient(from 0deg,
    var(--token-accent,#6b4bff),
    transparent 55%,
    var(--token-accent,#6b4bff) 56%,
    transparent 100%);
  opacity:.35; animation:spin 12s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

.back{appearance:none;border:0;background:transparent;color:var(--muted);cursor:pointer;margin-bottom:8px}

.field{margin:16px 0}
.copyrow{display:flex;gap:8px}
.copyrow input{flex:1;padding:12px;border-radius:12px;background:#0b1017;color:var(--text);border:1px solid rgba(255,255,255,.12)}
.qrToggleRow{display:flex;align-items:center;gap:12px;margin-top:10px}
.qrSmall{width:140px;height:140px;background:#0b1017;border-radius:12px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.12)}

.quote{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px;border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 0 40px rgba(107,75,255,.12)}
.quote__label{font-size:12px;color:var(--muted)}
.quote__amt{font-size:clamp(22px,4vw,28px);font-weight:900}
.quote__sub{color:var(--muted);font-size:13px}
.spinner{width:20px;height:20px;border-radius:50%;border:3px solid rgba(255,255,255,.2);border-top-color:var(--cyan);animation:spin 1s linear infinite;margin-left:auto}
.rate{font-size:12px;color:var(--muted)}

.tallyWrap{border:1px dashed rgba(255,255,255,.2);border-radius:14px;background:rgba(255,255,255,.03);padding:8px}
.submitCallout{margin:10px 0 8px;padding:8px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(90deg, rgba(167,146,255,.15), rgba(86,224,255,.10)); color:var(--text); font-weight:700}

.foot{padding:18px clamp(16px,3vw,40px);color:var(--muted);border-top:1px solid rgba(255,255,255,.08);text-align:center}

.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:#0c1118;color:var(--text);padding:10px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.15);box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.25s;z-index:100}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Inline success card (replaces Tally) + animations */
.successCard{padding:16px;border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.12);text-align:center;box-shadow:var(--shadow);
  position:relative;overflow:hidden;animation:popIn .5s cubic-bezier(.2,.8,.2,1)}
.successCard::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.06) 20%,transparent 36%);transform:translateX(-120%);animation:sweep 1.6s ease-out .2s forwards;pointer-events:none}
.successCard h3{margin:6px 0 6px}
.successCard p{color:var(--muted)}
.successIcon{width:58px;height:58px;border-radius:14px;margin:0 auto 8px;display:grid;place-items:center;
  background:linear-gradient(135deg, rgba(255,211,110,.15), rgba(86,224,255,.12));border:1px solid rgba(255,255,255,.12);font-size:26px;color:#b8ffd1;font-weight:900;animation:pulse 1.2s ease-in-out 2}

@keyframes popIn{0%{transform:scale(.96) translateY(6px);opacity:0}60%{transform:scale(1.02) translateY(0);opacity:1}100%{transform:scale(1)}}
@keyframes sweep{to{transform:translateX(120%)}}
@keyframes pulse{50%{transform:scale(1.08)}}
