/* ── Reset & Variables ── */*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }:root {  --pink: #ff3fa4;  --pink-light: #ff79c6;  --pink-glow: rgba(255, 63, 164, 0.18);  --dark: #0b0b0f;  --dark2: #111118;  --dark3: #18181f;  --card: #1c1c25;  --border: rgba(255,255,255,0.07);  --text: #e8e8f0;  --muted: #888899;  --white: #ffffff;  --font-display: 'Bricolage Grotesque', sans-serif;  --font-body: 'Figtree', sans-serif;}html { scroll-behavior: smooth; }body {  background: var(--dark);  color: var(--text);  font-family: var(--font-body);  font-size: 16px;  line-height: 1.7;  overflow-x: hidden;}/* ── Scroll Progress Bar ── */#scroll-progress {  position: fixed;  top: 0; left: 0;  height: 3px;  width: 0%;  background: linear-gradient(90deg, var(--pink), var(--pink-light), #ffb3e0);  z-index: 999;  transition: width 0.1s linear;  box-shadow: 0 0 10px rgba(255, 63, 164, 0.6);}/* ── Noise Texture Overlay ── */body::before {  content: '';  position: fixed;  inset: 0;  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");  pointer-events: none;  z-index: 0;  opacity: 0.5;}/* ── Nav ── */nav {  position: fixed;  top: 0; left: 0; right: 0;  z-index: 100;  display: flex;  align-items: center;  justify-content: space-between;  padding: 1.1rem 2.5rem;  background: rgba(11,11,15,0.82);  backdrop-filter: blur(18px);  border-bottom: 1px solid var(--border);  transition: padding 0.3s ease;}nav.scrolled {  padding: 0.8rem 2.5rem;  background: rgba(11,11,15,0.95);}.nav-logo {  font-family: var(--font-display);  font-weight: 800;  font-size: 1.15rem;  letter-spacing: -0.02em;  color: var(--white);  text-decoration: none;}.nav-logo span { color: var(--pink); }.nav-cta {  background: var(--pink);  color: #fff;  padding: 0.5rem 1.3rem;  border-radius: 999px;  font-weight: 600;  font-size: 0.85rem;  text-decoration: none;  transition: transform 0.2s, box-shadow 0.2s;  position: relative;  overflow: hidden;}.nav-cta::after {  content: '';  position: absolute;  inset: 0;  background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,0.25) 50%, transparent 70%);  transform: translateX(-100%);  transition: transform 0.5s ease;}.nav-cta:hover::after { transform: translateX(100%); }.nav-cta:hover {  transform: translateY(-2px);  box-shadow: 0 6px 24px rgba(255,63,164,0.4);}/* ── Hero ── */.hero {  position: relative;  min-height: 100vh;  display: flex;  flex-direction: column;  align-items: center;  justify-content: center;  text-align: center;  padding: 9rem 1.5rem 5rem;  overflow: hidden;}/* Hero particle canvas */#hero-canvas {  position: absolute;  inset: 0;  pointer-events: none;  z-index: 0;}.hero-bg-blob {  position: absolute;  width: 700px;  height: 700px;  border-radius: 50%;  background: radial-gradient(circle, rgba(255,63,164,0.12) 0%, transparent 70%);  top: 50%;  left: 50%;  transform: translate(-50%, -50%);  pointer-events: none;  animation: pulse-blob 6s ease-in-out infinite;}@keyframes pulse-blob {  0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.7; }  50% { transform: translate(-50%, -50%) scale(1.12); opacity: 1; }}.hero-badge {  display: inline-flex;  align-items: center;  gap: 0.5rem;  background: rgba(255,63,164,0.1);  border: 1px solid rgba(255,63,164,0.3);  color: var(--pink-light);  padding: 0.35rem 1rem;  border-radius: 999px;  font-size: 0.82rem;  font-weight: 600;  letter-spacing: 0.04em;  text-transform: uppercase;  margin-bottom: 1.8rem;  animation: fade-up 0.7s ease both, float-badge 4s ease-in-out 1s infinite;  position: relative;  z-index: 1;}@keyframes float-badge {  0%, 100% { transform: translateY(0px); }  50% { transform: translateY(-5px); }}.hero-badge::before {  content: '';  width: 7px; height: 7px;  border-radius: 50%;  background: var(--pink);  animation: blink 1.4s ease-in-out infinite;}@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0.2} }.hero h1 {  font-family: var(--font-display);  font-weight: 800;  font-size: clamp(2.4rem, 6vw, 5.5rem);  line-height: 1.05;  letter-spacing: -0.04em;  color: var(--white);  max-width: 820px;  animation: fade-up 0.8s 0.1s ease both;  position: relative;  z-index: 1;}.hero h1 em {  font-style: normal;  background: linear-gradient(135deg, var(--pink) 0%, #ff79c6 50%, #ffb3e0 100%);  background-size: 200% 200%;  -webkit-background-clip: text;  -webkit-text-fill-color: transparent;  background-clip: text;  animation: gradient-shift 3s ease infinite;}@keyframes gradient-shift {  0% { background-position: 0% 50%; }  50% { background-position: 100% 50%; }  100% { background-position: 0% 50%; }}.hero-sub {  margin-top: 1.5rem;  font-size: 1.1rem;  color: var(--muted);  max-width: 540px;  font-weight: 300;  animation: fade-up 0.8s 0.2s ease both;  position: relative;  z-index: 1;}.hero-actions {  margin-top: 2.5rem;  display: flex;  gap: 1rem;  flex-wrap: wrap;  justify-content: center;  animation: fade-up 0.8s 0.3s ease both;  position: relative;  z-index: 1;}.btn-primary {  background: var(--pink);  color: #fff;  padding: 0.9rem 2.2rem;  border-radius: 999px;  font-weight: 600;  font-size: 1rem;  text-decoration: none;  transition: transform 0.2s, box-shadow 0.2s;  display: inline-flex;  align-items: center;  gap: 0.5rem;  position: relative;  overflow: hidden;}.btn-primary::before {  content: '';  position: absolute;  inset: 0;  background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,0.2) 50%, transparent 70%);  transform: translateX(-100%);}.btn-primary:hover::before {  animation: shimmer-sweep 0.6s ease forwards;}@keyframes shimmer-sweep {  from { transform: translateX(-100%); }  to { transform: translateX(100%); }}.btn-primary:hover {  transform: translateY(-3px);  box-shadow: 0 12px 36px rgba(255,63,164,0.45);}.btn-ghost {  border: 1px solid var(--border);  color: var(--text);  padding: 0.9rem 2.2rem;  border-radius: 999px;  font-weight: 500;  font-size: 1rem;  text-decoration: none;  transition: border-color 0.2s, background 0.2s;}.btn-ghost:hover {  border-color: var(--pink);  background: var(--pink-glow);}@keyframes fade-up {  from { opacity: 0; transform: translateY(24px); }  to   { opacity: 1; transform: translateY(0); }}/* ── Section ── */section { position: relative; z-index: 1; }.section-inner {  max-width: 1060px;  margin: 0 auto;  padding: 0 1.5rem;}.section-tag {  font-size: 0.75rem;  font-weight: 600;  letter-spacing: 0.12em;  text-transform: uppercase;  color: var(--pink);  margin-bottom: 0.8rem;}.section-title {  font-family: var(--font-display);  font-weight: 800;  font-size: clamp(1.8rem, 3.5vw, 3rem);  letter-spacing: -0.03em;  color: var(--white);  line-height: 1.15;}.section-desc {  color: var(--muted);  max-width: 540px;  margin-top: 0.8rem;  font-size: 1rem;}/* ── Stats Bar ── */.stats-bar {  background: var(--dark3);  border-top: 1px solid var(--border);  border-bottom: 1px solid var(--border);  padding: 2.5rem 1.5rem;}.stats-grid {  max-width: 900px;  margin: 0 auto;  display: grid;  grid-template-columns: repeat(3, 1fr);  gap: 1rem;  text-align: center;}.stat-item { padding: 1rem; }.stat-num {  font-family: var(--font-display);  font-size: clamp(2.2rem, 5vw, 3.8rem);  font-weight: 800;  letter-spacing: -0.04em;  background: linear-gradient(135deg, var(--pink), var(--pink-light));  -webkit-background-clip: text;  -webkit-text-fill-color: transparent;  background-clip: text;}.stat-label {  font-size: 0.85rem;  color: var(--muted);  font-weight: 400;  margin-top: 0.3rem;}.stat-divider {  width: 1px;  background: var(--border);  align-self: stretch;  justify-self: center;}/* ── Why Join ── */.why-section { padding: 6rem 1.5rem; }.why-grid {  display: grid;  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));  gap: 1.5rem;  margin-top: 3rem;}.why-card {  background: var(--card);  border: 1px solid var(--border);  border-radius: 20px;  padding: 2rem;  transition: border-color 0.3s, transform 0.3s, box-shadow 0.3s;  position: relative;  overflow: hidden;  cursor: default;}.why-card::before {  content: '';  position: absolute;  inset: 0;  background: radial-gradient(circle at top left, var(--pink-glow), transparent 60%);  opacity: 0;  transition: opacity 0.3s;}/* Shimmer top border on hover */.why-card::after {  content: '';  position: absolute;  top: 0; left: -100%;  width: 60%;  height: 2px;  background: linear-gradient(90deg, transparent, var(--pink), transparent);  transition: left 0.5s ease;}.why-card:hover { border-color: rgba(255,63,164,0.3); transform: translateY(-6px); box-shadow: 0 20px 50px rgba(0,0,0,0.4); }.why-card:hover::before { opacity: 1; }.why-card:hover::after { left: 140%; }.why-icon {  width: 52px;  height: 52px;  border-radius: 14px;  background: rgba(255,63,164,0.12);  border: 1px solid rgba(255,63,164,0.2);  display: flex;  align-items: center;  justify-content: center;  font-size: 1.5rem;  margin-bottom: 1.2rem;  transition: transform 0.3s, background 0.3s;}.why-card:hover .why-icon {  transform: scale(1.1) rotate(-5deg);  background: rgba(255,63,164,0.2);}.why-card h3 {  font-family: var(--font-display);  font-weight: 700;  font-size: 1.15rem;  color: var(--white);  margin-bottom: 0.6rem;}.why-card p { font-size: 0.9rem; color: var(--muted); line-height: 1.65; }/* ── Commission ── */.commission-section { padding: 5rem 1.5rem; background: var(--dark2); }.commission-box {  max-width: 860px;  margin: 3rem auto 0;  background: var(--card);  border: 1px solid var(--border);  border-radius: 28px;  padding: 3rem;  display: grid;  grid-template-columns: 1fr 1fr;  gap: 3rem;  align-items: center;  position: relative;  overflow: hidden;}/* Animated border shimmer on commission box */.commission-box::before {  content: '';  position: absolute;  inset: -1px;  border-radius: 28px;  background: linear-gradient(90deg, transparent, rgba(255,63,164,0.4), transparent);  background-size: 200% 100%;  animation: border-shimmer 3s linear infinite;  pointer-events: none;  z-index: -1;}@keyframes border-shimmer {  0% { background-position: -200% 0; }  100% { background-position: 200% 0; }}.commission-box::after {  content: '';  position: absolute;  right: -80px; top: -80px;  width: 280px; height: 280px;  border-radius: 50%;  background: radial-gradient(circle, rgba(255,63,164,0.12) 0%, transparent 70%);  pointer-events: none;}.commission-pct {  font-family: var(--font-display);  font-size: clamp(4rem, 10vw, 8rem);  font-weight: 800;  letter-spacing: -0.05em;  background: linear-gradient(135deg, var(--pink), var(--pink-light), #ffb3e0, var(--pink));  background-size: 300% 300%;  -webkit-background-clip: text;  -webkit-text-fill-color: transparent;  background-clip: text;  line-height: 1;  animation: gradient-shift 2.5s ease infinite;}.commission-label {  font-family: var(--font-display);  font-size: 1rem;  font-weight: 600;  color: var(--muted);  text-transform: uppercase;  letter-spacing: 0.08em;  margin-top: 0.5rem;}.commission-details h3 {  font-family: var(--font-display);  font-size: 1.5rem;  font-weight: 700;  color: var(--white);  margin-bottom: 1rem;}.commission-list { list-style: none; }.commission-list li {  display: flex;  align-items: flex-start;  gap: 0.7rem;  color: var(--muted);  font-size: 0.9rem;  padding: 0.45rem 0;  border-bottom: 1px solid var(--border);  transition: color 0.2s, padding-left 0.2s;}.commission-list li:hover {  color: var(--text);  padding-left: 0.3rem;}.commission-list li:last-child { border-bottom: none; }.commission-list li::before {  content: '✓';  color: var(--pink);  font-weight: 700;  flex-shrink: 0;  margin-top: 0.1rem;}/* ── Steps ── */.steps-section { padding: 6rem 1.5rem; }/* Outer box — mirrors commission-box */.steps-box {  max-width: 860px;  margin: 3rem auto 0;  background: var(--card);  border: 1px solid var(--border);  border-radius: 28px;  overflow: hidden;  position: relative;}/* Animated shimmer border — same as commission-box */.steps-box::before {  content: '';  position: absolute;  inset: -1px;  border-radius: 28px;  background: linear-gradient(90deg, transparent, rgba(255,63,164,0.4), transparent);  background-size: 200% 100%;  animation: border-shimmer 3s linear infinite;  pointer-events: none;  z-index: 0;}/* Decorative glow orb top-right — mirrors commission-box::after */.steps-box::after {  content: '';  position: absolute;  right: -60px; top: -60px;  width: 220px; height: 220px;  border-radius: 50%;  background: radial-gradient(circle, rgba(255,63,164,0.1) 0%, transparent 70%);  pointer-events: none;  z-index: 0;}/* Each step row inside the box */.step-item {  display: grid;  grid-template-columns: 1fr 1fr;  gap: 2.5rem;  padding: 2.5rem 3rem;  align-items: center;  position: relative;  z-index: 1;  cursor: default;  transition: background 0.35s ease;}/* Pink glow overlay on hover */.step-item::before {  content: '';  position: absolute;  inset: 0;  background: radial-gradient(ellipse at 20% 50%, rgba(255,63,164,0.09), transparent 65%);  opacity: 0;  transition: opacity 0.4s ease;  pointer-events: none;}/* Shimmer line sweeps across top of row on hover */.step-item::after {  content: '';  position: absolute;  top: 0; left: -80%;  width: 50%;  height: 1px;  background: linear-gradient(90deg, transparent, var(--pink), transparent);  transition: left 0.55s ease;}.step-item:hover { background: rgba(255,63,164,0.03); }.step-item:hover::before { opacity: 1; }.step-item:hover::after { left: 130%; }/* Step number badge */.step-number {  display: inline-flex;  align-items: center;  justify-content: center;  width: 40px; height: 40px;  border-radius: 50%;  background: rgba(255,63,164,0.12);  border: 1px solid rgba(255,63,164,0.3);  color: var(--pink);  font-family: var(--font-display);  font-size: 0.85rem;  font-weight: 700;  margin-bottom: 1rem;  transition: background 0.3s, transform 0.35s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.3s;}.step-item:hover .step-number {  background: rgba(255,63,164,0.24);  transform: scale(1.15);  box-shadow: 0 0 16px rgba(255,63,164,0.35);}.step-item-content { position: relative; z-index: 1; }.step-item-content h3 {  font-family: var(--font-display);  font-size: 1.35rem;  font-weight: 700;  color: var(--white);  margin-bottom: 0.75rem;  transition: color 0.25s;}.step-item:hover .step-item-content h3 { color: var(--pink-light); }.step-item-content p { color: var(--muted); font-size: 0.92rem; line-height: 1.72; }/* Divider between step rows */.step-divider {  height: 1px;  background: var(--border);  margin: 0 3rem;  position: relative;  z-index: 1;}/* Image wrapper */.step-item-img {  border-radius: 16px;  overflow: hidden;  border: 1px solid var(--border);  box-shadow: 0 12px 36px rgba(0,0,0,0.45);  background: var(--dark3);  position: relative;  z-index: 1;  transition: box-shadow 0.4s ease, border-color 0.4s ease, transform 0.4s cubic-bezier(0.34,1.56,0.64,1);}.step-item:hover .step-item-img {  border-color: rgba(255,63,164,0.3);  box-shadow: 0 20px 50px rgba(0,0,0,0.55), 0 0 24px rgba(255,63,164,0.14);  transform: translateY(-4px);}.step-item-img img {  width: 100%;  height: auto;  display: block;  transition: transform 0.55s ease;}.step-item:hover .step-item-img img { transform: scale(1.04); }/* ── Affiliate Link CTA ── */.cta-section {  padding: 7rem 1.5rem;  text-align: center;  background: var(--dark2);  position: relative;  overflow: hidden;}.cta-blob {  position: absolute;  width: 600px;  height: 600px;  border-radius: 50%;  background: radial-gradient(circle, rgba(255,63,164,0.1) 0%, transparent 70%);  top: 50%; left: 50%;  transform: translate(-50%, -50%);  pointer-events: none;  animation: pulse-blob 5s ease-in-out infinite;}.cta-section .section-inner { position: relative; z-index: 1; }.cta-section h2 {  font-family: var(--font-display);  font-weight: 800;  font-size: clamp(2rem, 5vw, 4rem);  color: var(--white);  letter-spacing: -0.04em;  line-height: 1.1;}.cta-section h2 span {  background: linear-gradient(135deg, var(--pink), var(--pink-light));  background-size: 200% 200%;  -webkit-background-clip: text;  -webkit-text-fill-color: transparent;  background-clip: text;  animation: gradient-shift 3s ease infinite;}.cta-section p {  margin: 1.2rem auto 0;  color: var(--muted);  max-width: 480px;  font-size: 1rem;}/* Affiliate Link Box */.affiliate-link-box {  display: inline-flex;  align-items: center;  gap: 1rem;  background: var(--card);  border: 1px solid rgba(255,63,164,0.3);  border-radius: 16px;  padding: 1rem 1.5rem;  margin: 2.5rem auto;  max-width: 100%;  flex-wrap: wrap;  justify-content: center;  transition: box-shadow 0.3s;}.affiliate-link-box:hover {  box-shadow: 0 0 20px rgba(255,63,164,0.15);}.affiliate-link-text {  font-family: 'Courier New', monospace;  font-size: 0.85rem;  color: var(--pink-light);  word-break: break-all;}.copy-btn {  background: rgba(255,63,164,0.15);  border: 1px solid rgba(255,63,164,0.3);  color: var(--pink-light);  padding: 0.4rem 1rem;  border-radius: 8px;  font-size: 0.8rem;  font-weight: 600;  cursor: pointer;  transition: background 0.2s, transform 0.15s;  white-space: nowrap;  font-family: var(--font-body);}.copy-btn:hover { background: rgba(255,63,164,0.28); transform: scale(1.04); }.copy-btn:active { transform: scale(0.97); }.copy-btn.copied { background: rgba(63,255,164,0.15); color: #3fffb0; border-color: rgba(63,255,164,0.3); }.cta-daftar {  display: inline-flex;  align-items: center;  gap: 0.6rem;  background: var(--pink);  color: #fff;  padding: 1.1rem 2.8rem;  border-radius: 999px;  font-weight: 700;  font-size: 1.05rem;  text-decoration: none;  transition: transform 0.25s, box-shadow 0.25s;  margin-top: 0.5rem;  position: relative;  overflow: hidden;}.cta-daftar::after {  content: '';  position: absolute;  inset: 0;  background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,0.2) 50%, transparent 70%);  transform: translateX(-100%);  transition: transform 0.6s ease;}.cta-daftar:hover::after { transform: translateX(100%); }.cta-daftar:hover {  transform: translateY(-4px);  box-shadow: 0 16px 40px rgba(255,63,164,0.45);}.cta-daftar svg { transition: transform 0.2s; }.cta-daftar:hover svg { transform: translateX(5px); }/* ── FAQ ── */.faq-section { padding: 5rem 1.5rem; }.faq-list { margin-top: 3rem; max-width: 720px; }.faq-item {  border-bottom: 1px solid var(--border);  padding: 1.4rem 0;  transition: padding 0.2s;}.faq-q {  display: flex;  justify-content: space-between;  align-items: center;  cursor: pointer;  font-family: var(--font-display);  font-weight: 600;  font-size: 1rem;  color: var(--white);  gap: 1rem;  user-select: none;  transition: color 0.2s;}.faq-q:hover { color: var(--pink-light); }.faq-icon {  width: 24px; height: 24px;  border-radius: 50%;  background: rgba(255,63,164,0.12);  border: 1px solid rgba(255,63,164,0.25);  display: flex;  align-items: center;  justify-content: center;  flex-shrink: 0;  color: var(--pink);  font-size: 1rem;  transition: transform 0.3s, background 0.3s;}.faq-item.open .faq-icon { transform: rotate(45deg); background: rgba(255,63,164,0.22); }.faq-a {  color: var(--muted);  font-size: 0.92rem;  line-height: 1.7;  max-height: 0;  overflow: hidden;  transition: max-height 0.35s ease, padding 0.35s ease;}.faq-item.open .faq-a { max-height: 300px; padding-top: 0.8rem; }/* ── Footer ── */footer {  border-top: 1px solid var(--border);  padding: 2.5rem 1.5rem;  text-align: center;  color: var(--muted);  font-size: 0.82rem;}footer a { color: var(--pink-light); text-decoration: none; }footer a:hover { text-decoration: underline; }/* ── Scroll Reveal (enhanced) ── */.reveal {  opacity: 0;  transform: translateY(32px);  transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1),              transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);}.reveal.visible { opacity: 1; transform: translateY(0); }/* ── Ripple on click ── */.ripple-host { position: relative; overflow: hidden; }.ripple {  position: absolute;  border-radius: 50%;  background: rgba(255,255,255,0.25);  transform: scale(0);  animation: ripple-expand 0.5s linear;  pointer-events: none;}@keyframes ripple-expand {  to { transform: scale(4); opacity: 0; }}/* ── Responsive ── */@media (max-width: 768px) {  nav { padding: 1rem 1.2rem; }  .stats-grid { grid-template-columns: 1fr; }  .stat-divider { display: none; }  .commission-box { grid-template-columns: 1fr; gap: 2rem; padding: 2rem; }  .step-item {    grid-template-columns: 1fr;    padding: 2rem 1.5rem;    gap: 1.5rem;  }  .step-divider { margin: 0 1.5rem; }  .affiliate-link-text { font-size: 0.75rem; }}/* ── Tool Hero Tweak ── */    .hero { min-height: 88vh; }    /* ── Tool Section ── */    .tool-section {      padding: 6rem 1.5rem 7rem;      background: var(--dark2);    }    .tool-card {      max-width: 660px;      margin: 3rem auto 0;      background: var(--card);      border: 1px solid var(--border);      border-radius: 28px;      padding: 2.5rem 2.8rem;      position: relative;    }    /* Shimmer border */    .tool-card::before {      content: '';      position: absolute;      inset: -1px;      border-radius: 28px;      background: linear-gradient(90deg, transparent, rgba(255,63,164,0.45), transparent);      background-size: 200% 100%;      animation: border-shimmer 3s linear infinite;      pointer-events: none;      z-index: 0;    }    .tool-card > * { position: relative; z-index: 1; }    /* ── Upload Zone ── */    .upload-zone {      border: 2px dashed rgba(255,63,164,0.3);      border-radius: 18px;      padding: 2.8rem 2rem;      text-align: center;      cursor: pointer;      transition: border-color 0.3s, background 0.3s, transform 0.25s;      position: relative;    }    .upload-zone:hover,    .upload-zone.dragover {      border-color: var(--pink);      background: rgba(255,63,164,0.05);      transform: scale(1.01);    }    .upload-zone input[type="file"] {      position: absolute;      inset: 0;      opacity: 0;      cursor: pointer;      width: 100%;      height: 100%;    }    .upload-icon-wrap {      width: 68px;      height: 68px;      border-radius: 20px;      background: rgba(255,63,164,0.1);      border: 1px solid rgba(255,63,164,0.22);      display: flex;      align-items: center;      justify-content: center;      margin: 0 auto 1.2rem;      font-size: 2rem;      transition: transform 0.35s cubic-bezier(0.34,1.56,0.64,1), background 0.3s;    }    .upload-zone:hover .upload-icon-wrap {      transform: scale(1.1) rotate(-6deg);      background: rgba(255,63,164,0.18);    }    .upload-zone h3 {      font-family: var(--font-display);      font-size: 1.05rem;      font-weight: 700;      color: var(--white);      margin-bottom: 0.35rem;    }    .upload-zone p {      color: var(--muted);      font-size: 0.85rem;      line-height: 1.55;    }    .upload-zone p .hl { color: var(--pink-light); font-weight: 600; }    /* ── File Info ── */    .file-info {      display: none;      align-items: center;      gap: 1rem;      background: rgba(255,63,164,0.06);      border: 1px solid rgba(255,63,164,0.2);      border-radius: 14px;      padding: 0.9rem 1.2rem;      margin-top: 1rem;      animation: fade-up 0.35s ease both;    }    .file-info.visible { display: flex; }    .fi-icon {      width: 42px;      height: 42px;      border-radius: 11px;      background: rgba(255,63,164,0.12);      border: 1px solid rgba(255,63,164,0.2);      display: flex;      align-items: center;      justify-content: center;      font-size: 1.25rem;      flex-shrink: 0;    }    .fi-meta { flex: 1; min-width: 0; }    .fi-name {      font-weight: 600;      font-size: 0.88rem;      color: var(--white);      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .fi-size {      font-size: 0.76rem;      color: var(--muted);      margin-top: 0.12rem;    }    .fi-remove {      background: transparent;      border: 1px solid var(--border);      color: var(--muted);      width: 28px;      height: 28px;      border-radius: 50%;      cursor: pointer;      display: flex;      align-items: center;      justify-content: center;      font-size: 0.95rem;      transition: background 0.2s, color 0.2s, border-color 0.2s;      flex-shrink: 0;      line-height: 1;    }    .fi-remove:hover {      background: rgba(255,63,164,0.14);      color: var(--pink-light);      border-color: rgba(255,63,164,0.35);    }    /* ── Divider ── */    .tool-divider {      height: 1px;      background: var(--border);      margin: 2rem 0;    }    /* ── Quantity ── */    .qty-header {      display: flex;      justify-content: space-between;      align-items: baseline;      margin-bottom: 1rem;    }    .qty-title {      font-family: var(--font-display);      font-weight: 700;      font-size: 0.92rem;      color: var(--white);    }    .qty-title sub {      font-size: 0.72rem;      font-weight: 400;      color: var(--muted);      vertical-align: baseline;      margin-left: 0.3rem;      font-family: var(--font-body);    }    .qty-value {      font-family: var(--font-display);      font-weight: 800;      font-size: 2.2rem;      color: var(--pink);      line-height: 1;      letter-spacing: -0.04em;      transition: color 0.2s;    }    /* Range slider */    .slider-wrap { position: relative; }    input[type="range"] {      -webkit-appearance: none;      width: 100%;      height: 5px;      border-radius: 999px;      outline: none;      cursor: pointer;      background: rgba(255,63,164,0.15);    }    input[type="range"]::-webkit-slider-thumb {      -webkit-appearance: none;      width: 24px;      height: 24px;      border-radius: 50%;      background: var(--pink);      cursor: grab;      box-shadow: 0 0 0 4px rgba(255,63,164,0.18), 0 2px 8px rgba(255,63,164,0.45);      transition: transform 0.15s, box-shadow 0.15s;    }    input[type="range"]::-webkit-slider-thumb:active { cursor: grabbing; }    input[type="range"]::-webkit-slider-thumb:hover {      transform: scale(1.22);      box-shadow: 0 0 0 6px rgba(255,63,164,0.18), 0 4px 16px rgba(255,63,164,0.6);    }    input[type="range"]::-moz-range-thumb {      width: 24px;      height: 24px;      border-radius: 50%;      background: var(--pink);      border: none;      cursor: grab;      box-shadow: 0 0 0 4px rgba(255,63,164,0.18);    }    .slider-limits {      display: flex;      justify-content: space-between;      margin-top: 0.45rem;    }    .slider-limits span {      font-size: 0.72rem;      color: var(--muted);    }    /* Manual input row */    .manual-row {      display: flex;      align-items: center;      gap: 1rem;      margin-top: 1.4rem;      background: var(--dark3);      border: 1px solid var(--border);      border-radius: 14px;      padding: 1rem 1.2rem;      transition: border-color 0.25s;    }    .manual-row:focus-within {      border-color: rgba(255,63,164,0.3);    }    .manual-label { flex: 1; }    .manual-label strong {      display: block;      font-family: var(--font-display);      font-size: 0.88rem;      font-weight: 700;      color: var(--white);      margin-bottom: 0.15rem;    }    .manual-label span {      font-size: 0.76rem;      color: var(--muted);    }    input[type="number"] {      width: 108px;      background: var(--card);      border: 1px solid rgba(255,63,164,0.22);      border-radius: 10px;      color: var(--white);      font-family: var(--font-display);      font-size: 1.15rem;      font-weight: 800;      padding: 0.55rem 0.75rem;      text-align: center;      outline: none;      transition: border-color 0.2s, box-shadow 0.2s;      letter-spacing: -0.02em;    }    input[type="number"]:focus {      border-color: var(--pink);      box-shadow: 0 0 0 3px rgba(255,63,164,0.12);    }    input[type=number]::-webkit-inner-spin-button,    input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; }    input[type=number] { -moz-appearance: textfield; }    /* ── Size Warning ── */    .size-warn {      display: none;      font-size: 0.78rem;      color: #ffb347;      background: rgba(255,179,71,0.08);      border: 1px solid rgba(255,179,71,0.2);      border-radius: 8px;      padding: 0.5rem 0.8rem;      margin-top: 0.8rem;      gap: 0.4rem;      align-items: center;    }    .size-warn.visible { display: flex; }    /* ── Generate Button ── */    .generate-btn {      width: 100%;      margin-top: 1.8rem;      background: var(--pink);      color: #fff;      border: none;      padding: 1rem 2rem;      border-radius: 999px;      font-family: var(--font-body);      font-weight: 700;      font-size: 1rem;      cursor: pointer;      display: flex;      align-items: center;      justify-content: center;      gap: 0.6rem;      transition: transform 0.2s, box-shadow 0.2s, opacity 0.2s;      position: relative;      overflow: hidden;      letter-spacing: 0.01em;    }    .generate-btn::before {      content: '';      position: absolute;      inset: 0;      background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,0.22) 50%, transparent 70%);      transform: translateX(-100%);      pointer-events: none;    }    .generate-btn:hover:not(:disabled)::before {      animation: shimmer-sweep 0.6s ease forwards;    }    .generate-btn:hover:not(:disabled) {      transform: translateY(-2px);      box-shadow: 0 10px 32px rgba(255,63,164,0.42);    }    .generate-btn:active:not(:disabled) { transform: translateY(0); }    .generate-btn:disabled {      opacity: 0.45;      cursor: not-allowed;    }    /* Spinner */    .btn-spinner {      width: 18px;      height: 18px;      border: 2.5px solid rgba(255,255,255,0.35);      border-top-color: #fff;      border-radius: 50%;      animation: spin 0.65s linear infinite;      flex-shrink: 0;    }    @keyframes spin { to { transform: rotate(360deg); } }    /* ── Progress ── */    .progress-wrap {      display: none;      margin-top: 1.2rem;      background: var(--dark3);      border: 1px solid var(--border);      border-radius: 12px;      padding: 1rem 1.2rem;      animation: fade-up 0.3s ease both;    }    .progress-wrap.visible { display: block; }    .progress-track {      height: 5px;      background: rgba(255,63,164,0.12);      border-radius: 999px;      overflow: hidden;      margin-bottom: 0.65rem;    }    .progress-fill {      height: 100%;      background: linear-gradient(90deg, var(--pink), var(--pink-light));      border-radius: 999px;      width: 0%;      transition: width 0.25s ease;      box-shadow: 0 0 8px rgba(255,63,164,0.5);    }    .progress-meta {      display: flex;      justify-content: space-between;      font-size: 0.78rem;      color: var(--muted);    }    .progress-meta .p-pct { color: var(--pink-light); font-weight: 600; }/* ── Success ── */.success-wrap {  display: none;  flex-direction: column;        /* Ubah dari row ke column */  align-items: center;           /* Tengahkan secara horizontal */  text-align: center;            /* Tengahkan teks */  gap: 1rem;  margin-top: 1.2rem;  padding: 1rem 1.2rem;  background: rgba(63,255,164,0.05);  border: 1px solid rgba(63,255,164,0.2);  border-radius: 12px;  animation: fade-up 0.35s ease both;}.success-wrap.visible { display: flex; }.success-icon { font-size: 1.5rem; flex-shrink: 0; }.success-meta {  flex: 1;  order: 1;                      /* Teks akan tampil lebih dulu */  width: 100%;}.success-meta strong {  display: block;  font-size: 0.88rem;  font-weight: 700;  color: #3fffb0;  margin-bottom: 0.1rem;}.success-meta span {  font-size: 0.78rem;  color: var(--muted);}.dl-btn {  order: 2;                      /* Tombol di bawah teks */  background: rgba(63,255,164,0.1);  border: 1px solid rgba(63,255,164,0.3);  color: #3fffb0;  padding: 0.45rem 1rem;  border-radius: 8px;  font-size: 0.8rem;  font-weight: 700;  cursor: pointer;  transition: background 0.2s, transform 0.15s;  font-family: var(--font-body);  white-space: nowrap;  display: inline-flex;  align-items: center;  gap: 0.35rem;}.dl-btn:hover {  background: rgba(63,255,164,0.2);  transform: scale(1.04);}    /* ── Tool note ── */    .tool-note {      text-align: center;      margin-top: 1.2rem;      font-size: 0.77rem;      color: var(--muted);    }    .tool-note .hl { color: var(--pink-light); }    /* ── Features ── */    .features-section { padding: 6rem 1.5rem; }    /* ── How To ── */    .how-section { padding: 5rem 1.5rem; background: var(--dark2); }    .how-grid {      display: grid;      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));      gap: 1.5rem;      margin-top: 3rem;    }    .how-card {      background: var(--card);      border: 1px solid var(--border);      border-radius: 20px;      padding: 2rem 1.6rem;      text-align: center;      transition: border-color 0.3s, transform 0.3s, box-shadow 0.3s;      position: relative;      overflow: hidden;    }    .how-card::after {      content: '';      position: absolute;      top: 0; left: -100%;      width: 60%;      height: 2px;      background: linear-gradient(90deg, transparent, var(--pink), transparent);      transition: left 0.5s ease;    }    .how-card:hover {      border-color: rgba(255,63,164,0.3);      transform: translateY(-6px);      box-shadow: 0 20px 50px rgba(0,0,0,0.4);    }    .how-card:hover::after { left: 140%; }    .how-num {      font-family: var(--font-display);      font-size: 0.72rem;      font-weight: 700;      letter-spacing: 0.12em;      text-transform: uppercase;      color: var(--pink);      margin-bottom: 1rem;    }    .how-emoji {      font-size: 2rem;      margin-bottom: 0.8rem;      display: block;    }    .how-card h3 {      font-family: var(--font-display);      font-size: 1rem;      font-weight: 700;      color: var(--white);      margin-bottom: 0.5rem;    }    .how-card p { font-size: 0.85rem; color: var(--muted); line-height: 1.6; }    /* ── Arrow between steps ── */    .how-arrow {      display: flex;      align-items: center;      justify-content: center;      color: rgba(255,63,164,0.3);      font-size: 1.4rem;      align-self: center;    }    @media (max-width: 768px) { .how-arrow { display: none; } }    .how-grid-inner {      display: grid;      grid-template-columns: 1fr auto 1fr auto 1fr;      gap: 1rem;      margin-top: 3rem;      align-items: start;    }    @media (max-width: 768px) {      .how-grid-inner {        grid-template-columns: 1fr;        gap: 1.2rem;      }    }    /* ── Responsive Tool ── */    @media (max-width: 560px) {      .tool-card { padding: 1.6rem 1.4rem; }      .manual-row { flex-direction: column; align-items: stretch; gap: 0.75rem; }      input[type="number"] { width: 100%; }      .qty-value { font-size: 1.8rem; }    }        /* ── Donation Options (di bawah manual input) ── */.donation-options {  margin-top: 1.5rem;  background: var(--dark3);  border: 1px solid rgba(255,63,164,0.2);  border-radius: 20px;  padding: 1.2rem 1.5rem;  transition: border-color 0.3s, box-shadow 0.3s;}.donation-options:hover {  border-color: rgba(255,63,164,0.4);  box-shadow: 0 8px 20px rgba(0,0,0,0.3);}.donation-label {  font-family: var(--font-display);  font-weight: 700;  font-size: 0.9rem;  color: var(--pink-light);  margin-bottom: 0.9rem;  display: flex;  align-items: center;  gap: 0.5rem;}.donation-label i {  font-size: 1rem;}.donation-buttons {  display: flex;  flex-wrap: wrap;  gap: 0.8rem;  margin-bottom: 0.8rem;}.donate-btn {  display: inline-flex;  align-items: center;  gap: 0.5rem;  background: rgba(255,63,164,0.08);  border: 1px solid rgba(255,63,164,0.25);  border-radius: 999px;  padding: 0.5rem 1.2rem;  font-size: 0.8rem;  font-weight: 600;  color: var(--text);  text-decoration: none;  transition: all 0.25s ease;  backdrop-filter: blur(4px);}.donate-btn i {  font-size: 0.9rem;}.donate-btn:hover {  transform: translateY(-2px);  background: rgba(255,63,164,0.18);  border-color: var(--pink);  color: var(--pink-light);  box-shadow: 0 4px 12px rgba(255,63,164,0.25);}.donation-note {  font-size: 0.7rem;  color: var(--muted);  margin-top: 0.5rem;  text-align: center;  letter-spacing: 0.3px;}/* Responsive */@media (max-width: 560px) {  .donation-buttons {    flex-direction: column;  }  .donate-btn {    justify-content: center;  }}