/* ========== RESET & VARIABLES ========== */*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }:root {  --bg:      #050c1a;  --bg2:     #091428;  --card:    #0d1c36;  --card2:   #122240;  --border:  rgba(0, 200, 255, 0.08);  --border2: rgba(0, 200, 255, 0.15);  --accent:  #00d9ff;  --accent2: #ff6b6b;  --coral:   #ff8c42;  --text:    #e8f0fe;  --muted:   #6b85a8;  --dim:     #3a506b;  --cyan-glow: rgba(0, 217, 255, 0.12);  --radius:  14px;}html { scroll-behavior: smooth; }body {  font-family: 'DM Sans', sans-serif;  background: var(--bg);  color: var(--text);  overflow-x: hidden;}/* ========== GRAIN ========== */body::after {  content: '';  position: fixed;  inset: 0;  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 300 300' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");  pointer-events: none;  z-index: 9998;}/* ========== NAV ========== */nav {  position: fixed;  top: 0; left: 0; right: 0;  z-index: 1000;  display: flex;  align-items: center;  justify-content: space-between;  padding: 0 5%;  height: 68px;  background: rgba(5, 12, 26, 0.92);  backdrop-filter: blur(24px);  border-bottom: 1px solid var(--border);  transition: border-color 0.4s;}/* ===== COMPANY LOGO TOP LEFT ===== */.logo-wrap {  display: flex;  align-items: center;  gap: 0.7rem;  text-decoration: none;  flex-shrink: 0;}.logo-icon {  width: 36px;  height: 36px;  flex-shrink: 0;}.logo-text {  display: flex;  flex-direction: column;  line-height: 1;}.logo-name {  font-family: 'Cormorant Garamond', serif;  font-weight: 700;  font-size: 1.3rem;  letter-spacing: -0.01em;  color: var(--text);}.logo-tagline {  font-family: 'IBM Plex Mono', monospace;  font-size: 0.58rem;  font-weight: 500;  color: var(--accent);  letter-spacing: 0.12em;  text-transform: uppercase;  margin-top: 2px;}.nav-links {  display: flex;  gap: 2.5rem;  list-style: none;  position: absolute;  left: 50%;  transform: translateX(-50%);}.nav-links a {  text-decoration: none;  color: var(--muted);  font-size: 0.82rem;  font-weight: 500;  letter-spacing: 0.04em;  transition: color 0.2s;  position: relative;}.nav-links a::after {  content: '';  position: absolute;  bottom: -4px;  left: 0; right: 0;  height: 1px;  background: var(--accent);  transform: scaleX(0);  transition: transform 0.25s;}.nav-links a:hover { color: var(--text); }.nav-links a:hover::after { transform: scaleX(1); }.nav-cta {  text-decoration: none;  background: transparent;  color: var(--accent);  font-family: 'IBM Plex Mono', monospace;  font-weight: 600;  font-size: 0.75rem;  letter-spacing: 0.06em;  text-transform: uppercase;  padding: 0.55rem 1.3rem;  border-radius: 50px;  border: 1px solid var(--accent);  transition: all 0.25s;}.nav-cta:hover {  background: var(--accent);  color: var(--bg);}/* ========== HERO ========== */.hero {  min-height: 100vh;  display: grid;  grid-template-columns: 1fr 1fr;  align-items: center;  padding: 8rem 5% 5rem;  position: relative;  overflow: hidden;  gap: 4rem;}.hero-orb {  position: absolute;  border-radius: 50%;  pointer-events: none;}.hero-orb-1 {  width: 600px;  height: 600px;  background: radial-gradient(circle, rgba(0, 217, 255, 0.08) 0%, transparent 70%);  right: -100px;  top: 50%;  transform: translateY(-50%);  animation: orb-float 8s ease-in-out infinite;}.hero-orb-2 {  width: 350px;  height: 350px;  background: radial-gradient(circle, rgba(255, 107, 107, 0.06) 0%, transparent 70%);  left: 20%;  top: 20%;  animation: orb-float 12s ease-in-out infinite reverse;}@keyframes orb-float {  0%, 100% { transform: translateY(-50%) scale(1); }  50% { transform: translateY(-52%) scale(1.05); }}.hero-left {  position: relative;  z-index: 2;  animation: fadeInLeft 0.9s ease both;}@keyframes fadeInLeft {  from { opacity: 0; transform: translateX(-30px); }  to { opacity: 1; transform: translateX(0); }}.hero-eyebrow {  display: inline-flex;  align-items: center;  gap: 0.6rem;  font-family: 'IBM Plex Mono', monospace;  font-size: 0.7rem;  font-weight: 500;  letter-spacing: 0.15em;  text-transform: uppercase;  color: var(--accent);  margin-bottom: 2rem;  animation: fadeInLeft 0.8s ease both;}.hero-eyebrow::before {  content: '';  width: 24px;  height: 1px;  background: var(--accent);}.hero h1 {  font-family: 'Cormorant Garamond', serif;  font-size: clamp(3.2rem, 5.5vw, 5.5rem);  font-weight: 700;  line-height: 1.04;  letter-spacing: -0.02em;  margin-bottom: 1.75rem;  animation: fadeInLeft 0.9s 0.1s ease both;}.hero h1 .line-em {  font-style: italic;  color: var(--accent);}.hero h1 .line-outline {  -webkit-text-stroke: 1px rgba(232, 240, 254, 0.35);  color: transparent;}.hero-desc {  font-size: 1rem;  color: var(--muted);  max-width: 440px;  line-height: 1.75;  margin-bottom: 2.5rem;  font-weight: 300;  animation: fadeInLeft 0.9s 0.2s ease both;}.hero-btns {  display: flex;  gap: 1rem;  flex-wrap: wrap;  animation: fadeInLeft 0.9s 0.3s ease both;}.btn-primary {  display: inline-flex;  align-items: center;  gap: 0.5rem;  text-decoration: none;  background: var(--accent);  color: var(--bg);  font-weight: 600;  font-size: 0.88rem;  letter-spacing: 0.02em;  padding: 0.85rem 2rem;  border-radius: 50px;  transition: transform 0.2s, box-shadow 0.2s, background 0.2s;  border: none;  cursor: pointer;}.btn-primary:hover {  transform: translateY(-2px);  box-shadow: 0 12px 32px rgba(0, 217, 255, 0.28);  background: #19e5ff;}.btn-outline {  display: inline-flex;  align-items: center;  gap: 0.5rem;  text-decoration: none;  background: transparent;  color: var(--text);  font-weight: 500;  font-size: 0.88rem;  padding: 0.85rem 2rem;  border-radius: 50px;  border: 1px solid var(--border2);  transition: border-color 0.2s, background 0.2s;  cursor: pointer;}.btn-outline:hover {  border-color: rgba(0, 217, 255, 0.4);  background: var(--cyan-glow);}.hero-right {  position: relative;  z-index: 2;  animation: fadeInRight 0.9s 0.15s ease both;  display: flex;  flex-direction: column;  gap: 1rem;}@keyframes fadeInRight {  from { opacity: 0; transform: translateX(30px); }  to { opacity: 1; transform: translateX(0); }}.hero-card {  background: var(--card);  border: 1px solid var(--border);  border-radius: 18px;  padding: 1.5rem 1.8rem;  backdrop-filter: blur(8px);  transition: border-color 0.3s;}.hero-card:hover { border-color: var(--border2); }.hero-card-label {  font-family: 'IBM Plex Mono', monospace;  font-size: 0.65rem;  letter-spacing: 0.12em;  text-transform: uppercase;  color: var(--muted);  margin-bottom: 0.6rem;}.hero-card-value {  font-family: 'Cormorant Garamond', serif;  font-size: 2.4rem;  font-weight: 700;  color: var(--accent);  line-height: 1;}.hero-card-sub {  font-size: 0.8rem;  color: var(--dim);  margin-top: 0.3rem;}.hero-cards-row {  display: grid;  grid-template-columns: 1fr 1fr;  gap: 1rem;}/* ========== TICKER ========== */.ticker-wrap {  overflow: hidden;  background: var(--accent);  padding: 0.65rem 0;}.ticker {  display: flex;  gap: 2.5rem;  animation: ticker 20s linear infinite;  white-space: nowrap;}@keyframes ticker {  from { transform: translateX(0); }  to { transform: translateX(-50%); }}.ticker-item {  font-family: 'IBM Plex Mono', monospace;  font-size: 0.72rem;  font-weight: 600;  letter-spacing: 0.12em;  text-transform: uppercase;  color: var(--bg);  display: flex;  align-items: center;  gap: 1rem;}.ticker-dot {  width: 3px;  height: 3px;  background: var(--bg);  border-radius: 50%;  opacity: 0.5;}/* ========== STATS ========== */.stats-bar {  display: grid;  grid-template-columns: repeat(4, 1fr);  border-top: 1px solid var(--border);  border-bottom: 1px solid var(--border);  background: var(--bg2);}.stat-item {  padding: 2.5rem 2rem;  text-align: center;  border-right: 1px solid var(--border);  position: relative;  overflow: hidden;}.stat-item:last-child { border-right: none; }.stat-item::before {  content: '';  position: absolute;  bottom: 0; left: 50%;  transform: translateX(-50%);  width: 50%;  height: 2px;  background: var(--accent);  opacity: 0;  transition: opacity 0.3s;}.stat-item:hover::before { opacity: 1; }.stat-num {  font-family: 'Cormorant Garamond', serif;  font-size: 2.8rem;  font-weight: 700;  color: var(--accent);  line-height: 1;}.stat-label {  font-family: 'IBM Plex Mono', monospace;  font-size: 0.68rem;  color: var(--muted);  letter-spacing: 0.08em;  text-transform: uppercase;  margin-top: 0.5rem;}/* ========== SECTIONS ========== */section {  padding: 6rem 5%;}.section-tag {  font-family: 'IBM Plex Mono', monospace;  font-size: 0.68rem;  font-weight: 600;  letter-spacing: 0.15em;  text-transform: uppercase;  color: var(--accent);  margin-bottom: 1rem;  display: flex;  align-items: center;  gap: 0.6rem;}.section-tag::before {  content: '';  width: 20px;  height: 1px;  background: var(--accent);}.section-title {  font-family: 'Cormorant Garamond', serif;  font-size: clamp(2.2rem, 4vw, 3.4rem);  font-weight: 700;  letter-spacing: -0.02em;  line-height: 1.08;  margin-bottom: 1rem;}.section-title em {  font-style: italic;  color: var(--accent);}.section-sub {  font-size: 0.95rem;  color: var(--muted);  max-width: 480px;  line-height: 1.75;  font-weight: 300;}/* ========== PRODUCTS ========== */#produk {  background: var(--bg2);  position: relative;}#produk::before {  content: '';  position: absolute;  top: 0; left: 0; right: 0;  height: 1px;  background: linear-gradient(90deg, transparent, var(--accent), transparent);  opacity: 0.3;}.products-header {  display: flex;  align-items: flex-end;  justify-content: space-between;  gap: 2rem;  margin-bottom: 3.5rem;  flex-wrap: wrap;}.filter-tabs {  display: flex;  gap: 0.4rem;  flex-wrap: wrap;  background: var(--card);  padding: 0.35rem;  border-radius: 50px;  border: 1px solid var(--border);}.filter-tab {  padding: 0.4rem 1.1rem;  border-radius: 50px;  border: none;  background: transparent;  color: var(--muted);  font-family: 'DM Sans', sans-serif;  font-size: 0.8rem;  font-weight: 500;  cursor: pointer;  transition: all 0.2s;}.filter-tab.active,.filter-tab:hover {  background: var(--accent);  color: var(--bg);  font-weight: 600;}.products-grid {  display: grid;  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));  gap: 1.5rem;}.product-card {  background: var(--card);  border-radius: 18px;  border: 1px solid var(--border);  overflow: hidden;  transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s;  cursor: pointer;  position: relative;}.product-card:hover {  transform: translateY(-6px);  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5), 0 0 0 1px var(--border2);  border-color: var(--border2);}.product-card:hover .card-overlay { opacity: 1; }.card-badge {  position: absolute;  top: 1rem;  left: 1rem;  z-index: 2;  font-family: 'IBM Plex Mono', monospace;  font-size: 0.65rem;  font-weight: 600;  letter-spacing: 0.1em;  text-transform: uppercase;  padding: 0.28rem 0.75rem;  border-radius: 50px;}.card-badge.new {  background: rgba(0, 217, 255, 0.15);  color: var(--accent);  border: 1px solid rgba(0, 217, 255, 0.3);}.card-badge.hot {  background: rgba(255, 107, 107, 0.15);  color: var(--accent2);  border: 1px solid rgba(255, 107, 107, 0.3);}.card-img-wrap {  position: relative;  width: 100%;  overflow: hidden;  background: var(--card2);  aspect-ratio: 16/10;  display: flex;  align-items: center;  justify-content: center;}.card-img-wrap img {  width: 100%;  height: 100%;  object-fit: cover;  display: block;  transition: transform 0.5s ease;}.product-card:hover .card-img-wrap img {  transform: scale(1.05);}.card-img-placeholder {  width: 100%;  height: 100%;  background: linear-gradient(135deg, var(--card2) 0%, var(--card) 100%);  display: flex;  flex-direction: column;  align-items: center;  justify-content: center;  gap: 0.75rem;  color: var(--muted);}.card-img-placeholder svg {  width: 38px;  height: 38px;  opacity: 0.25;}.card-img-placeholder span {  font-family: 'IBM Plex Mono', monospace;  font-size: 0.68rem;  letter-spacing: 0.1em;  text-transform: uppercase;  opacity: 0.35;}.card-overlay {  position: absolute;  inset: 0;  background: rgba(5, 12, 26, 0.8);  display: flex;  align-items: center;  justify-content: center;  gap: 0.75rem;  opacity: 0;  transition: opacity 0.3s;  backdrop-filter: blur(6px);}.overlay-btn {  padding: 0.55rem 1.25rem;  border-radius: 50px;  font-family: 'DM Sans', sans-serif;  font-size: 0.78rem;  font-weight: 600;  cursor: pointer;  border: none;  transition: transform 0.2s;  text-decoration: none;}.overlay-btn:hover { transform: scale(1.05); }.overlay-btn.preview {  background: rgba(255,255,255,0.1);  color: #fff;  border: 1px solid rgba(255,255,255,0.25);}.overlay-btn.buy {  background: var(--accent);  color: var(--bg);}.card-body { padding: 1.4rem 1.6rem 1.6rem; }.card-tags {  display: flex;  gap: 0.4rem;  flex-wrap: wrap;  margin-bottom: 0.8rem;}.tag {  font-family: 'IBM Plex Mono', monospace;  font-size: 0.62rem;  font-weight: 500;  letter-spacing: 0.06em;  text-transform: uppercase;  color: var(--dim);  background: rgba(255,255,255,0.04);  border: 1px solid var(--border);  padding: 0.18rem 0.55rem;  border-radius: 4px;}.card-title {  font-family: 'Cormorant Garamond', serif;  font-size: 1.35rem;  font-weight: 700;  letter-spacing: -0.01em;  margin-bottom: 0.45rem;  color: var(--text);}.card-desc {  font-size: 0.83rem;  color: var(--muted);  line-height: 1.65;  margin-bottom: 1.3rem;  font-weight: 300;}.card-footer {  display: flex;  align-items: center;  justify-content: space-between;  gap: 1rem;}.card-price { display: flex; align-items: baseline; gap: 0.4rem; }.price-main {  font-family: 'Cormorant Garamond', serif;  font-size: 1.6rem;  font-weight: 700;  color: var(--accent);  line-height: 1;}.price-sub {  font-size: 0.72rem;  color: var(--muted);  font-weight: 400;}.card-stars {  display: flex;  align-items: center;  gap: 0.3rem;  font-size: 0.72rem;  color: var(--muted);}.stars-ico { color: var(--coral); font-size: 0.82rem; }.card-buy-btn {  display: inline-flex;  align-items: center;  gap: 0.4rem;  background: var(--accent);  color: var(--bg);  font-family: 'DM Sans', sans-serif;  font-size: 0.8rem;  font-weight: 600;  padding: 0.55rem 1.3rem;  border-radius: 50px;  border: none;  cursor: pointer;  text-decoration: none;  transition: transform 0.2s, box-shadow 0.2s;}.card-buy-btn:hover {  transform: translateY(-1px);  box-shadow: 0 6px 20px rgba(0, 217, 255, 0.3);}.product-card.coming-soon {  opacity: 0.45;  cursor: not-allowed;}.product-card.coming-soon:hover {  transform: none;  box-shadow: none;  border-color: var(--border);}/* ========== HOW IT WORKS ========== */#cara-beli {  background: var(--bg);  text-align: center;}.steps-grid {  display: grid;  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));  gap: 1.5rem;  margin-top: 3.5rem;  position: relative;}.steps-grid::before {  content: '';  position: absolute;  top: 2.5rem;  left: 10%;  right: 10%;  height: 1px;  background: linear-gradient(90deg, transparent, var(--border2), transparent);  pointer-events: none;}.step-card {  background: var(--card);  border: 1px solid var(--border);  border-radius: 18px;  padding: 2.5rem 2rem;  position: relative;  transition: border-color 0.3s, transform 0.3s;}.step-card:hover {  border-color: var(--border2);  transform: translateY(-4px);}.step-num {  font-family: 'Cormorant Garamond', serif;  font-size: 3.8rem;  font-weight: 700;  color: var(--accent);  opacity: 0.12;  line-height: 1;  margin-bottom: 0.75rem;}.step-icon { font-size: 1.8rem; margin-bottom: 1rem; }.step-card h3 {  font-family: 'Cormorant Garamond', serif;  font-size: 1.2rem;  font-weight: 700;  margin-bottom: 0.6rem;}.step-card p {  font-size: 0.85rem;  color: var(--muted);  line-height: 1.65;  font-weight: 300;}/* ========== TESTIMONIALS ========== */#testimoni { background: var(--bg2); }.testi-grid {  display: grid;  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));  gap: 1.5rem;  margin-top: 3.5rem;}.testi-card {  background: var(--card);  border: 1px solid var(--border);  border-radius: 18px;  padding: 2rem;  position: relative;  transition: border-color 0.3s, transform 0.3s;  overflow: hidden;}.testi-card:hover {  border-color: var(--border2);  transform: translateY(-4px);}.testi-card::before {  content: '\201C';  font-family: 'Cormorant Garamond', serif;  font-size: 7rem;  line-height: 1;  color: var(--accent);  opacity: 0.07;  position: absolute;  top: -0.5rem;  left: 1.2rem;}.stars { color: var(--coral); font-size: 0.85rem; letter-spacing: 0.04em; margin-bottom: 1rem; }.testi-text {  font-size: 0.88rem;  color: var(--muted);  line-height: 1.75;  margin-bottom: 1.5rem;  position: relative;  z-index: 1;  font-weight: 300;}.testi-author {  display: flex;  align-items: center;  gap: 0.8rem;}.testi-avatar {  width: 40px;  height: 40px;  border-radius: 50%;  background: linear-gradient(135deg, var(--accent), #0084ff);  display: flex;  align-items: center;  justify-content: center;  font-weight: 700;  font-size: 0.82rem;  color: var(--bg);  flex-shrink: 0;}.testi-name { font-weight: 600; font-size: 0.88rem; }.testi-role {  font-family: 'IBM Plex Mono', monospace;  font-size: 0.68rem;  color: var(--muted);  letter-spacing: 0.03em;}/* ========== FAQ ========== */#faq { background: var(--bg); }.faq-wrap {  max-width: 680px;  margin: 3.5rem auto 0;}.faq-item {  border: 1px solid var(--border);  border-radius: 12px;  margin-bottom: 0.6rem;  overflow: hidden;  transition: border-color 0.2s;}.faq-item:hover { border-color: var(--border2); }.faq-item.open { border-color: rgba(0, 217, 255, 0.25); }.faq-q {  width: 100%;  background: var(--card);  border: none;  color: var(--text);  font-family: 'DM Sans', sans-serif;  font-size: 0.9rem;  font-weight: 500;  text-align: left;  padding: 1.2rem 1.5rem;  cursor: pointer;  display: flex;  justify-content: space-between;  align-items: center;  gap: 1rem;  transition: background 0.2s;}.faq-q:hover { background: var(--card2); }.faq-arrow {  font-size: 1.1rem;  transition: transform 0.3s;  color: var(--accent);  flex-shrink: 0;}.faq-item.open .faq-arrow { transform: rotate(45deg); }.faq-a {  max-height: 0;  overflow: hidden;  background: var(--card);  transition: max-height 0.35s ease, padding 0.3s;  padding: 0 1.5rem;}.faq-item.open .faq-a {  max-height: 200px;  padding: 0 1.5rem 1.2rem;}.faq-a p {  font-size: 0.86rem;  color: var(--muted);  line-height: 1.7;  font-weight: 300;}/* ========== CTA ========== */.cta-section {  background: var(--bg2);  text-align: center;  padding: 7rem 5%;  position: relative;  overflow: hidden;}.cta-section::before {  content: '';  position: absolute;  inset: 0;  background: radial-gradient(ellipse at 50% 100%, rgba(0, 217, 255, 0.07) 0%, transparent 60%);  pointer-events: none;}.cta-section::after {  content: '';  position: absolute;  top: 0; left: 0; right: 0;  height: 1px;  background: linear-gradient(90deg, transparent, var(--accent), transparent);  opacity: 0.3;}.cta-section h2 {  font-family: 'Cormorant Garamond', serif;  font-size: clamp(2.5rem, 5vw, 4.2rem);  font-weight: 700;  letter-spacing: -0.03em;  margin-bottom: 1.25rem;}.cta-section p {  font-size: 0.98rem;  color: var(--muted);  max-width: 460px;  margin: 0 auto 2.5rem;  line-height: 1.75;  font-weight: 300;}/* .cta-btn moved to MODAL section above, styled for WhatsApp *//* ========== FOOTER ========== */footer {  background: var(--bg);  border-top: 1px solid var(--border);  padding: 2.8rem 5%;  display: flex;  align-items: center;  justify-content: space-between;  flex-wrap: wrap;  gap: 1.5rem;}.footer-left { display: flex; flex-direction: column; gap: 0.4rem; }.footer-left p {  font-size: 0.78rem;  color: var(--muted);  font-family: 'IBM Plex Mono', monospace;}.footer-links {  display: flex;  gap: 1.5rem;  flex-wrap: wrap;}.footer-links a {  text-decoration: none;  color: var(--muted);  font-size: 0.82rem;  font-weight: 500;  transition: color 0.2s;}.footer-links a:hover { color: var(--accent); }/* ========== MODAL ========== */.modal-bg {  display: none;  position: fixed;  inset: 0;  background: rgba(0,0,0,0.85);  backdrop-filter: blur(12px);  z-index: 2000;  align-items: center;  justify-content: center;  padding: 2rem;  overflow-y: auto;}.modal-bg.open { display: flex; }.modal {  background: var(--card);  border: 1px solid var(--border2);  border-radius: 24px;  width: 100%;  max-width: 900px;        /* lebih lebar di desktop */  position: relative;  animation: modalIn 0.3s ease;  margin: auto;  overflow: hidden;        /* agar bg panel kiri tidak meluber */}@keyframes modalIn {  from { opacity: 0; transform: scale(0.96) translateY(10px); }  to   { opacity: 1; transform: scale(1) translateY(0); }}/* ===== CLOSE BUTTON ===== */.modal-close {  position: absolute;  top: 1rem; right: 1.25rem;  background: rgba(255,255,255,0.05);  border: 1px solid var(--border);  border-radius: 50%;  width: 32px; height: 32px;  color: var(--muted);  font-size: 1rem;  cursor: pointer;  transition: color 0.2s, background 0.2s;  line-height: 1;  display: flex; align-items: center; justify-content: center;  z-index: 10;}.modal-close:hover { color: var(--text); background: rgba(255,255,255,0.1); }.modal-close:focus-visible {  outline: 2px solid var(--accent);  border-radius: 50%;}/* ===== TWO-COLUMN LAYOUT ===== */.modal-layout {  display: grid;  grid-template-columns: 1fr 1px 1fr;  /* kiri | divider | kanan */  min-height: 480px;}/* PANEL KIRI */.modal-panel-left {  background: var(--bg2);  border-radius: 24px 0 0 24px;  padding: 0;  display: flex;  flex-direction: column;}.modal-panel-left-inner {  padding: 2.5rem 2rem 2.5rem 2.5rem;  display: flex;  flex-direction: column;  gap: 1.1rem;  height: 100%;}/* DIVIDER VERTIKAL */.modal-divider {  background: var(--border);  align-self: stretch;}/* PANEL KANAN */.modal-panel-right {  display: flex;  flex-direction: column;}.modal-panel-right-inner {  padding: 2.5rem 2.5rem 2.5rem 2rem;  display: flex;  flex-direction: column;  gap: 0;  height: 100%;}/* EYEBROW LABEL */.modal-panel-eyebrow {  font-family: 'IBM Plex Mono', monospace;  font-size: 0.62rem;  letter-spacing: 0.15em;  text-transform: uppercase;  color: var(--accent);  margin-bottom: -0.3rem;}.modal h3 {  font-family: 'Cormorant Garamond', serif;  font-size: 1.7rem;  font-weight: 700;  margin-bottom: 0;  line-height: 1.1;}.modal-panel-desc {  font-size: 0.8rem;  color: var(--muted);  line-height: 1.65;  margin: 0;}.modal-product-info {  display: flex;  align-items: center;  justify-content: space-between;  background: rgba(0,217,255,0.05);  border-radius: 12px;  padding: 0.9rem 1.1rem;  margin: 0;  border: 1px solid var(--border2);  gap: 0.5rem;}.modal-product-name { font-weight: 600; font-size: 0.88rem; }.modal-product-price {  font-family: 'Cormorant Garamond', serif;  font-size: 1.5rem;  font-weight: 700;  color: var(--accent);  white-space: nowrap;}/* ===== FORM FIELDS ===== */.modal-input {  background: var(--bg2);  border: 1px solid var(--border2);  border-radius: 10px;  padding: 0.75rem 1rem;  color: var(--text);  font-family: 'DM Sans', sans-serif;  font-size: 0.88rem;  width: 100%;  transition: border-color 0.2s, box-shadow 0.2s;  outline: none;  -webkit-appearance: none;  appearance: none;}.modal-input::placeholder {  color: var(--dim);}.modal-input:focus {  border-color: var(--accent);  box-shadow: 0 0 0 3px rgba(0, 217, 255, 0.12);}/* ===== WA INFO BOX (menggantikan QRIS) ===== */.wa-info-box {  display: flex;  flex-direction: column;  gap: 0.55rem;  background: rgba(37, 211, 102, 0.06);  border: 1px solid rgba(37, 211, 102, 0.25);  border-radius: 14px;  padding: 1.1rem 1.2rem;  margin: 0.75rem 0;}.wa-info-label {  display: flex;  align-items: center;  gap: 0.4rem;  font-family: 'IBM Plex Mono', monospace;  font-size: 0.65rem;  letter-spacing: 0.12em;  text-transform: uppercase;  color: #25d366;  font-weight: 600;}.wa-info-text {  font-size: 0.8rem;  color: var(--muted);  line-height: 1.6;}.wa-info-text strong { color: var(--text); }.wa-info-number {  display: inline-flex;  align-items: center;  gap: 0.4rem;  font-family: 'IBM Plex Mono', monospace;  font-size: 1rem;  font-weight: 600;  color: #25d366;  letter-spacing: 0.04em;  margin-top: 0.1rem;}/* ===== INPUT READONLY (template field) ===== */.modal-input-readonly {  opacity: 0.65;  cursor: default;  background: rgba(13, 28, 54, 0.6) !important;  border-color: var(--border) !important;}.modal-input-readonly:focus {  box-shadow: none !important;  border-color: var(--border) !important;}/* ===== MODAL WA NOTE & LINK ===== */.modal-wa-link {  color: var(--accent);  text-decoration: none;  font-weight: 600;  transition: opacity 0.2s;}.modal-wa-link:hover { opacity: 0.75; }/* ===== SUCCESS STATE ===== */.success-icon {  font-size: 3.5rem;  margin-bottom: 0.75rem;  animation: bounceIn 0.5s ease;}@keyframes bounceIn {  0%   { transform: scale(0.5); opacity: 0; }  70%  { transform: scale(1.1); opacity: 1; }  100% { transform: scale(1); }}.success-note {  display: flex;  align-items: flex-start;  gap: 0.6rem;  background: var(--bg2);  border: 1px solid var(--border);  border-radius: 10px;  padding: 0.9rem 1rem;  font-size: 0.8rem;  color: var(--muted);  line-height: 1.6;  text-align: left;}.modal-wa-btn {  background: #25d366 !important;  color: #fff !important;  font-size: 0.85rem;  gap: 0.5rem;  padding: 0.75rem 1.75rem;  width: auto !important;}.modal-wa-btn:hover {  background: #1da851 !important;  box-shadow: 0 8px 25px rgba(37, 211, 102, 0.35) !important;}.modal-checklist {  background: var(--bg2);  border-radius: 10px;  padding: 1.1rem 1.2rem;  margin: 0.75rem 0;  display: flex;  flex-direction: column;  gap: 0.55rem;  border: 1px solid var(--border);}.modal-check-item {  display: flex;  align-items: center;  gap: 0.6rem;  font-size: 0.8rem;  color: var(--muted);}.modal-check-item .check { color: #3ecf8e; font-size: 0.9rem; }.modal-submit {  width: 100%;  background: #25d366;  border: none;  color: #fff;  font-family: 'DM Sans', sans-serif;  font-weight: 700;  font-size: 0.92rem;  padding: 0.9rem;  border-radius: 50px;  cursor: pointer;  margin-top: 0.5rem;  transition: transform 0.2s, box-shadow 0.2s, background 0.2s;  display: flex;  align-items: center;  justify-content: center;  gap: 0.5rem;}.modal-submit:hover {  background: #1da851;  transform: translateY(-1px);  box-shadow: 0 8px 25px rgba(37, 211, 102, 0.35);}.modal-submit:focus-visible {  outline: 2px solid var(--accent);  outline-offset: 2px;}.modal-note {  text-align: center;  font-size: 0.72rem;  color: var(--muted);  margin-top: 0.9rem;  font-family: 'IBM Plex Mono', monospace;}/* ===== CTA BUTTON WhatsApp ===== */.cta-btn {  display: inline-flex;  align-items: center;  gap: 0.6rem;  background: #25d366;  color: #fff;  text-decoration: none;  font-weight: 600;  font-size: 0.92rem;  padding: 0.95rem 2.2rem;  border-radius: 50px;  transition: transform 0.2s, box-shadow 0.2s, background 0.2s;}.cta-btn:hover {  background: #1da851;  transform: translateY(-2px);  box-shadow: 0 12px 30px rgba(37, 211, 102, 0.35);}/* ========== ANIMATIONS ========== */@keyframes fadeInUp {  from { opacity: 0; transform: translateY(20px); }  to   { opacity: 1; transform: translateY(0); }}.reveal {  opacity: 0;  transform: translateY(22px);  transition: opacity 0.65s ease, transform 0.65s ease;}.reveal.visible {  opacity: 1;  transform: translateY(0);}/* ========== SCROLLBAR ========== */::-webkit-scrollbar { width: 6px; }::-webkit-scrollbar-track { background: var(--bg); }::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 3px; }/* ========== RESPONSIVE ========== */@media (max-width: 900px) {  .hero {    grid-template-columns: 1fr;    text-align: center;  }  .hero-left { align-items: center; display: flex; flex-direction: column; }  .hero-eyebrow { justify-content: center; }  .hero-right { display: none; }  .nav-links { display: none; }}@media (max-width: 768px) {  .stats-bar { grid-template-columns: repeat(2, 1fr); }  .hero h1 { font-size: 2.9rem; }  .products-grid { grid-template-columns: 1fr; }  .steps-grid { grid-template-columns: 1fr; }  footer { flex-direction: column; align-items: flex-start; }}@media (max-width: 480px) {  nav { padding: 0 4%; }  section { padding: 4rem 4%; }  .logo-tagline { display: none; }}/* ========== MODAL RESPONSIVE ========== *//* Layar sedang (tablet landscape) — sedikit persempit panel kiri */@media (max-width: 860px) {  .modal {    max-width: 680px;    border-radius: 20px;  }  .modal-panel-left { border-radius: 20px 0 0 20px; }  .modal-panel-left-inner { padding: 2rem 1.5rem 2rem 2rem; gap: 0.9rem; }  .modal-panel-right-inner { padding: 2rem 2rem 2rem 1.5rem; }}/* Layar kecil (tablet portrait & mobile) — switch ke satu kolom */@media (max-width: 640px) {  .modal-bg { padding: 0; align-items: flex-end; }  .modal {    border-radius: 20px 20px 0 0;    max-width: 100%;    max-height: 92dvh;    overflow-y: auto;  }  /* Kembali ke satu kolom */  .modal-layout {    grid-template-columns: 1fr;    grid-template-rows: auto;  }  /* Sembunyikan panel kiri & divider di mobile — info produk sudah masuk panel kanan */  .modal-panel-left { display: none; }  .modal-divider    { display: none; }  /* Panel kanan ambil full width */  .modal-panel-right-inner {    padding: 2rem 1.5rem 2rem;  }  /* Tampilkan kembali product info di panel kanan saat mobile */  .modal-panel-right .modal-product-info-mobile {    display: flex !important;  }  .modal-close {    top: 0.8rem;    right: 1rem;  }}