*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    :root {
      --bg:       #080810;
      --surface:  #0f0f1a;
      --card:     #13131f;
      --card2:    #1a1a2e;
      --border:   rgba(255,255,255,0.07);
      --border2:  rgba(255,255,255,0.12);
      --accent:   #6c63ff;
      --accent2:  #9d97ff;
      --green:    #00e676;
      --green2:   #00c853;
      --gold:     #ffc107;
      --text:     #f0f0f8;
      --muted:    #6b6b8a;
      --radius:   18px;
    }
    html { scroll-behavior: smooth; }
    body {
      font-family: 'Inter', sans-serif;
      background: var(--bg);
      color: var(--text);
      min-height: 100vh;
      overflow-x: hidden;
    }

    /* ── BACKGROUND ───────────────────────────────────── */
    body::before {
      content: '';
      position: fixed; inset: 0; pointer-events: none; z-index: 0;
      background:
        radial-gradient(ellipse 70% 50% at 15% 20%, rgba(108,99,255,0.12) 0%, transparent 60%),
        radial-gradient(ellipse 50% 40% at 85% 70%, rgba(0,230,118,0.07) 0%, transparent 55%),
        radial-gradient(ellipse 60% 60% at 50% 110%, rgba(108,99,255,0.08) 0%, transparent 60%);
    }

    /* ── NOISE TEXTURE ────────────────────────────────── */
    body::after {
      content: '';
      position: fixed; inset: 0; pointer-events: none; z-index: 0; opacity: 0.025;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
    }

    /* ── NAVBAR ───────────────────────────────────────── */
    .navbar {
      position: sticky; top: 0; z-index: 100;
      display: flex; align-items: center; justify-content: space-between;
      padding: 14px 20px;
      background: rgba(8,8,16,0.85);
      backdrop-filter: blur(20px);
      border-bottom: 1px solid var(--border);
    }
    .nav-brand {
      display: flex; align-items: center; gap: 10px;
      font-family: 'Syne', sans-serif; font-weight: 900; font-size: 18px;
      color: var(--text); letter-spacing: -0.5px;
    }
    .nav-brand-dot { color: var(--accent); }
    .nav-badge {
      display: flex; align-items: center; gap: 6px;
      background: rgba(0,230,118,0.08);
      border: 1px solid rgba(0,230,118,0.2);
      border-radius: 50px; padding: 5px 12px;
      font-size: 12px; font-weight: 700; color: var(--green);
    }
    .nav-badge-dot {
      width: 6px; height: 6px; border-radius: 50%;
      background: var(--green);
      box-shadow: 0 0 6px var(--green);
      animation: blink 1.4s ease-in-out infinite;
    }
    @keyframes blink { 0%,100%{opacity:1} 50%{opacity:0.3} }

    /* ── HERO ─────────────────────────────────────────── */
    .hero {
      position: relative; z-index: 1;
      text-align: center;
      padding: 56px 20px 44px;
    }
    .hero-tag {
      display: inline-flex; align-items: center; gap: 7px;
      background: rgba(108,99,255,0.12);
      border: 1px solid rgba(108,99,255,0.25);
      border-radius: 50px; padding: 6px 14px;
      font-size: 11px; font-weight: 700; color: var(--accent2);
      letter-spacing: 1.5px; text-transform: uppercase;
      margin-bottom: 22px;
    }
    .hero h1 {
      font-family: 'Syne', sans-serif;
      font-size: clamp(34px, 9vw, 64px);
      font-weight: 900; line-height: 1.05;
      letter-spacing: -2px;
      margin-bottom: 14px;
    }
    .hero h1 em {
      font-style: normal;
      background: linear-gradient(135deg, var(--accent), var(--green));
      -webkit-background-clip: text; -webkit-text-fill-color: transparent;
      background-clip: text;
    }
    .hero-sub {
      color: var(--muted); font-size: 15px; line-height: 1.6;
      max-width: 380px; margin: 0 auto 30px;
    }
    .hero-actions {
      display: flex; align-items: center; justify-content: center;
      gap: 14px; flex-wrap: wrap;
    }
    .hero-cta {
      display: inline-flex; align-items: center; gap: 8px;
      background: var(--accent);
      color: #fff; border: none; border-radius: 50px;
      padding: 13px 28px;
      font-family: 'Inter', sans-serif; font-weight: 700; font-size: 14px;
      cursor: pointer; text-decoration: none;
      transition: transform 0.2s, box-shadow 0.2s;
      box-shadow: 0 0 30px rgba(108,99,255,0.35);
    }
    .hero-cta:hover { transform: translateY(-2px); box-shadow: 0 0 40px rgba(108,99,255,0.5); }
    .hero-stat {
      display: inline-flex; align-items: center; gap: 6px;
      color: var(--muted); font-size: 13px; font-weight: 600;
    }
    .hero-stat span { color: var(--green); font-weight: 700; }

    /* ── SECTION ──────────────────────────────────────── */
    .section {
      position: relative; z-index: 1;
      max-width: 960px; margin: 0 auto;
      padding: 8px 16px 48px;
    }
    .section-label {
      display: flex; align-items: center; gap: 10px;
      font-family: 'Syne', sans-serif; font-size: 11px; font-weight: 800;
      letter-spacing: 2px; text-transform: uppercase;
      color: var(--muted); margin-bottom: 20px;
    }
    .section-label::after {
      content: ''; flex: 1; height: 1px;
      background: linear-gradient(90deg, var(--border2), transparent);
    }

    /* ── ITEM GRID ────────────────────────────────────── */
    .items-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(155px, 1fr));
      gap: 12px;
    }

    /* ── ITEM CARD ────────────────────────────────────── */
    .item-card {
      background: var(--card);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      overflow: hidden;
      display: flex; flex-direction: column;
      transition: transform 0.22s, border-color 0.22s, box-shadow 0.22s;
      animation: cardIn 0.5s ease both;
      position: relative;
    }
    @keyframes cardIn { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
    .item-card:hover {
      transform: translateY(-4px);
      border-color: rgba(108,99,255,0.35);
      box-shadow: 0 12px 40px rgba(0,0,0,0.4), 0 0 0 1px rgba(108,99,255,0.15);
    }
    .item-rarity {
      position: absolute; top: 10px; left: 10px;
      font-size: 9px; font-weight: 800; letter-spacing: 1.5px;
      text-transform: uppercase; color: var(--gold);
      background: rgba(255,193,7,0.12);
      border: 1px solid rgba(255,193,7,0.2);
      border-radius: 6px; padding: 2px 7px;
    }
    .item-img-wrap {
      position: relative;
      background: linear-gradient(180deg, var(--card2) 0%, var(--card) 100%);
      padding: 28px 20px 20px;
      display: flex; align-items: center; justify-content: center;
      height: 140px;
    }
    .item-img-wrap img {
      width: 100%; max-height: 110px;
      object-fit: contain;
      filter: drop-shadow(0 8px 24px rgba(108,99,255,0.2));
      transition: transform 0.3s;
    }
    .item-card:hover .item-img-wrap img { transform: scale(1.06) translateY(-3px); }
    .item-glow {
      position: absolute; inset: 0; pointer-events: none;
      background: radial-gradient(ellipse 70% 60% at 50% 80%, rgba(108,99,255,0.12), transparent);
    }
    .item-body {
      padding: 12px 14px 14px;
      display: flex; flex-direction: column; gap: 10px; flex: 1;
    }
    .item-name {
      font-family: 'Syne', sans-serif;
      font-size: 13px; font-weight: 800;
      color: var(--text); line-height: 1.2;
    }
    .claim-btn {
      width: 100%; border: none; border-radius: 10px;
      padding: 9px 0;
      font-family: 'Inter', sans-serif; font-weight: 700; font-size: 13px;
      cursor: pointer;
      background: rgba(108,99,255,0.15);
      color: var(--accent2);
      border: 1px solid rgba(108,99,255,0.25);
      transition: background 0.18s, transform 0.12s, box-shadow 0.18s;
      letter-spacing: 0.3px;
    }
    .claim-btn:hover {
      background: var(--accent);
      color: #fff;
      border-color: var(--accent);
      transform: scale(1.02);
      box-shadow: 0 4px 16px rgba(108,99,255,0.35);
    }
    .claim-btn:active { transform: scale(0.97); }

    /* ── FOOTER ───────────────────────────────────────── */
    .site-footer {
      position: relative; z-index: 1;
      border-top: 1px solid var(--border);
      padding: 28px 20px;
      text-align: center;
    }
    .footer-inner {
      display: flex; align-items: center; justify-content: center; gap: 8px;
      font-size: 12px; color: var(--muted);
    }
    .footer-dot { opacity: 0.3; }

    /* ── MODAL BACKDROP ───────────────────────────────── */
    .modal-overlay {
      position: fixed; inset: 0; z-index: 500;
      display: none; align-items: center; justify-content: center;
      padding: 20px;
      background: rgba(4,4,10,0.88);
      backdrop-filter: blur(16px);
    }
    .modal-overlay.active { display: flex; }

    /* ── MODAL CARD ───────────────────────────────────── */
    .modal-card {
      background: var(--card);
      border: 1px solid var(--border);
      border-radius: 26px;
      width: 100%; max-width: 400px;
      overflow: hidden;
      animation: modalIn 0.38s cubic-bezier(0.16,1,0.3,1);
      box-shadow: 0 32px 80px rgba(0,0,0,0.8);
    }
    @keyframes modalIn {
      from { opacity:0; transform:scale(0.88) translateY(24px); }
      to   { opacity:1; transform:scale(1) translateY(0); }
    }

    /* ── STEP PILLS ───────────────────────────────────── */
    .modal-pills {
      display: flex; align-items: center; justify-content: center;
      gap: 6px; padding: 20px 24px 0;
    }
    .pill {
      height: 4px; border-radius: 4px;
      background: var(--border2); transition: all 0.3s;
      flex: 1; max-width: 48px;
    }
    .pill.active { background: var(--accent); }
    .pill.done   { background: var(--green); }

    /* ── MODAL STEP ───────────────────────────────────── */
    .modal-step { display: none; }
    .modal-step.visible { display: block; }

    /* ── STEP 1: USERNAME ─────────────────────────────── */
    .s1-body {
      padding: 28px 28px 10px;
      display: flex; flex-direction: column; align-items: center;
      text-align: center;
    }
    .s1-logo {
      width: 54px; height: 54px; object-fit: contain;
      margin-bottom: 18px;
      /* Removed filter: invert(1) so the white Roblox logo stays white */
    }
    .s1-title {
      font-family: 'Syne', sans-serif;
      font-size: 22px; font-weight: 900;
      color: var(--text); margin-bottom: 6px;
    }
    .s1-sub {
      font-size: 13px; color: var(--muted); line-height: 1.55;
      margin-bottom: 24px; max-width: 280px;
    }
    .s1-input {
      width: 100%;
      background: var(--surface);
      border: 1.5px solid var(--border);
      border-radius: 14px;
      padding: 14px 18px;
      font-family: 'Inter', sans-serif;
      font-size: 15px; font-weight: 500;
      color: var(--text);
      outline: none;
      transition: border-color 0.2s;
      -webkit-user-select: text; user-select: text;
    }
    .s1-input:focus { border-color: var(--accent); }
    .s1-input::placeholder { color: var(--muted); }
    .s1-error {
      font-size: 12px; font-weight: 600;
      color: #ef4444; margin-top: 8px;
      min-height: 16px; text-align: left; width: 100%;
    }
    .s1-footer { padding: 14px 28px 28px; }
    .s1-btn {
      width: 100%; border: none; border-radius: 14px;
      padding: 15px;
      font-family: 'Inter', sans-serif; font-weight: 700; font-size: 15px;
      background: var(--green); color: #000;
      cursor: pointer;
      transition: background 0.18s, transform 0.12s;
    }
    .s1-btn:hover { background: var(--green2); }
    .s1-btn:active { transform: scale(0.98); }
    .s1-btn:disabled { background: var(--surface); color: var(--muted); cursor: wait; }

    /* ── STEP 2: PROFILE ──────────────────────────────── */
    .s2-body {
      padding: 32px 28px 28px;
      display: flex; flex-direction: column; align-items: center;
      text-align: center; min-height: 320px; justify-content: center;
    }
    .s2-loading {
      display: flex; flex-direction: column; align-items: center; gap: 14px;
      color: var(--muted); font-size: 14px; font-weight: 600;
    }
    .s2-spinner {
      width: 36px; height: 36px;
      border: 3px solid var(--border);
      border-top-color: var(--accent);
      border-radius: 50%;
      animation: spin 0.8s linear infinite;
    }
    @keyframes spin { to { transform: rotate(360deg); } }
    .s2-profile { display: none; width: 100%; }
    .s2-avatar-wrap {
      position: relative;
      width: 96px; height: 96px;
      margin: 0 auto 16px;
    }
    .s2-avatar {
      width: 96px; height: 96px;
      border-radius: 50%; object-fit: cover;
      border: 3px solid var(--border);
      background: var(--surface);
    }
    .s2-badge {
      position: absolute; bottom: 2px; right: 2px;
      width: 26px; height: 26px; border-radius: 50%;
      background: var(--green); color: #000;
      font-size: 13px; font-weight: 900;
      display: flex; align-items: center; justify-content: center;
      border: 2.5px solid var(--card);
    }
    .s2-name {
      font-family: 'Syne', sans-serif;
      font-size: 20px; font-weight: 900; color: var(--text);
      margin-bottom: 3px;
    }
    .s2-tag { font-size: 13px; color: var(--muted); margin-bottom: 22px; }

    /* Claim steps */
    .s2-steps { display: flex; flex-direction: column; gap: 8px; margin-bottom: 22px; width: 100%; }
    .s2-step {
      display: flex; align-items: center; gap: 12px;
      background: var(--surface); border: 1px solid var(--border);
      border-radius: 12px; padding: 11px 14px;
      font-size: 13px; font-weight: 600; color: var(--muted);
      transition: all 0.3s;
    }
    .s2-step.active  { background: rgba(108,99,255,0.1); border-color: var(--accent); color: var(--text); }
    .s2-step.done    { background: rgba(0,230,118,0.1); border-color: var(--green); color: var(--text); }
    .s2-step-icon {
      width: 26px; height: 26px; border-radius: 50%;
      background: var(--card2); color: var(--muted);
      font-size: 12px; font-weight: 800;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0; transition: all 0.3s;
    }
    .s2-step.active .s2-step-icon { background: var(--accent); color: #fff; }
    .s2-step.done   .s2-step-icon { background: var(--green); color: #000; }

    .s2-continue {
      display: none; width: 100%; border: none; border-radius: 14px;
      padding: 14px;
      font-family: 'Inter', sans-serif; font-weight: 700; font-size: 15px;
      background: var(--accent); color: #fff;
      cursor: pointer; margin-bottom: 10px;
      transition: background 0.18s;
    }
    .s2-continue:hover { background: var(--accent2); }
    .s2-back {
      background: none; border: none; color: var(--muted);
      font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600;
      cursor: pointer; text-decoration: underline;
    }

    /* ── STEP 3: TASKS ────────────────────────────────── */
    .s3-body { padding: 28px 24px 30px; }
    .s3-header { text-align: center; margin-bottom: 18px; }
    .s3-title { animation: pop 0.4s cubic-bezier(0.16,1,0.3,1); }
    @keyframes pop { from{transform:scale(0)} to{transform:scale(1)} }
    .s3-title {
      font-family: 'Syne', sans-serif;
      font-size: 20px; font-weight: 900; color: var(--text); margin-bottom: 6px;
    }
    .s3-sub { font-size: 13px; color: var(--muted); line-height: 1.5; }

    /* Reserved item preview */
    /* ── COMPACT ITEM PREVIEW ─────────────────────────── */
.s3-item-preview {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  margin: 0 auto 18px;
  width: fit-content;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 50px;
  padding: 7px 14px 7px 8px;
}
.s3-item-thumb {
  width: 28px; height: 28px; object-fit: contain;
  background: transparent; border-radius: 6px; padding: 2px;
}
.s3-item-info { flex: 1; }
.s3-item-name {
  font-family: 'Syne', sans-serif;
  font-size: 12px; font-weight: 800; color: var(--text); margin-bottom: 1px;
}
.s3-item-player { font-size: 11px; color: var(--muted); }
.s3-item-player strong { color: var(--accent2); }

    /* Offer tasks */
    .s3-tasks-label {
      font-size: 11px; font-weight: 800; letter-spacing: 1.5px;
      text-transform: uppercase; color: var(--muted); margin-bottom: 10px;
    }
    .s3-tasks { display: flex; flex-direction: column; gap: 8px; margin: 0 auto 4px; }
    .s3-task {
  display: flex;
  align-items: center;
  gap: 14px;
  background: linear-gradient(145deg, var(--card), var(--surface));
  border: 1px solid var(--border2);
  border-radius: 12px;
  padding: 12px 16px;
  text-decoration: none;
  transition: all 0.25s ease;
  margin-bottom: 8px;
}

.s3-task:hover {
  transform: translateX(4px);
  border-color: var(--accent);
  background: var(--card2);
  box-shadow: 0 4px 15px rgba(0,0,0,0.3);
}

.s3-task-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: rgba(108, 99, 255, 0.15); /* Soft accent tint */
  border: 1px solid rgba(108, 99, 255, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.s3-task-icon svg {
  width: 20px;
  height: 20px;
  stroke: var(--accent2); /* Brighter icon color */
}

.s3-task-name {
  font-weight: 700;
  font-size: 14px;
  color: var(--text);
}

.s3-task-desc {
  font-size: 11px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-top: 2px;
}
    .s3-task-arrow { color: var(--border2); font-size: 14px; }
    .s3-tasks-loading {
      text-align: center; padding: 24px;
      color: var(--muted); font-size: 13px; font-weight: 600;
      display: flex; align-items: center; justify-content: center; gap: 10px;
    }
    .s3-tasks-loading .mini-spin {
      width: 18px; height: 18px;
      border: 2px solid var(--border2); border-top-color: var(--accent);
      border-radius: 50%; animation: spin 0.7s linear infinite; flex-shrink: 0;
    }

    /* ── CLAIM BUTTON ────────────────────────────────── */
    .s3-claim-wrap {
  margin-top: 30px;
  display: flex;
  flex-direction: column;
  align-items: center; /* Centers the button */
  gap: 10px;
}

.s3-claim-btn {
  width: auto;
  min-width: 160px;
  height: 44px;
  background: rgba(255, 255, 255, 0.03); /* Very dark/transparent */
  border: 1px solid var(--border2);
  border-radius: 100px; /* Rounded pill shape */
  color: var(--muted);
  font-family: 'Inter', sans-serif;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 0.5px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: not-allowed;
  transition: all 0.3s ease;
  box-shadow: inset 0 1px 1px rgba(255,255,255,0.05);
}
    .s3-claim-btn::before {
  content: '🔒';
  font-size: 12px;
  filter: grayscale(1);
  opacity: 0.5;
}

.s3-claim-hint {
  font-size: 11px;
  color: var(--muted);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.8px;
}
    /* ── ANIMATED BG ITEMS ────────────────────────────── */
    .animated-background {
      position: fixed; inset: 0; pointer-events: none; z-index: 0; overflow: hidden;
    }
    .bg-item-img {
      position: absolute; bottom: -60px;
      animation: floatUp var(--duration,15s) var(--delay,0s) linear infinite;
      opacity: 0.04;
    }
    .bg-item-img img { width: 80px; height: 80px; object-fit: contain; }
    @keyframes floatUp {
      from { transform: translateY(0) rotate(0deg); opacity: 0.04; }
      50%  { opacity: 0.07; }
      to   { transform: translateY(-110vh) rotate(30deg); opacity: 0; }
    }

    /* ── RESPONSIVE ───────────────────────────────────── */
    @media (max-width: 500px) {
      .items-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
      .hero h1 { letter-spacing: -1px; }
      .modal-card { border-radius: 20px; }
      .s1-body, .s1-footer, .s3-body { padding-left: 20px; padding-right: 20px; }
    }
    img {
  -webkit-user-drag: none;
  -khtml-user-drag: none;
  -moz-user-drag: none;
  -o-user-drag: none;
  user-select: none;
}