/* =========================================================
   SHWE SHAUNG — token system (v2: purple + white, matching app)
   Palette:  --ink #241934  --ledger #4C2A85  --ledger-light #6B46C1
             --paper #FFFFFF  --gold #A855F7 (accent)  --stamp #7C3AED (CTA)
             --money-neg #C13A6B (expense red, kept for financial legibility)
   Type:     Display  = Fraunces   Body = Inter   Mono = IBM Plex Mono
   ========================================================= */

:root{
  --ink:            #241934;
  --ledger:         #4C2A85;
  --ledger-light:   #6B46C1;
  --ledger-lighter: #8B6FC4;
  --paper:          #FFFFFF;
  --paper-dim:      #F5F1FC;
  --gold:           #A855F7;
  --stamp:          #7C3AED;
  --money-neg:      #C13A6B;
  --money-pos:      #2E7D5B;
  --text-dark:      #241934;
  --text-muted:     #6B5B85;
  --text-on-dark:   #F5F1FC;
  --text-on-dark-muted: #C9B8E8;

  --radius-s: 6px;
  --radius-m: 12px;
  --radius-l: 20px;

  --shadow-card: 0 10px 30px rgba(76,42,133,0.14);
  --shadow-lift: 0 18px 45px rgba(36,25,52,0.30);

  --font-display: 'Fraunces', serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'IBM Plex Mono', monospace;
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--font-body);
  color: var(--text-dark);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3{ font-family: var(--font-display); margin:0; line-height:1.1; }
p{ margin:0; }

.wrap{ max-width: 1180px; margin: 0 auto; padding: 0 24px; }
.wrap-narrow{ max-width: 760px; }
.mono{ font-family: var(--font-mono); }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding: 13px 22px;
  border-radius: var(--radius-s);
  font-weight: 600;
  font-size: 0.95rem;
  border: 1.5px solid transparent;
  cursor:pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease, opacity .15s ease;
}
.btn:focus-visible{ outline: 3px solid var(--gold); outline-offset: 2px; }
.btn-primary{ background: var(--stamp); color: var(--paper); box-shadow: var(--shadow-card); }
.btn-primary:hover{ transform: translateY(-2px); box-shadow: var(--shadow-lift); }
.btn-ghost{ background: transparent; color: var(--ledger); border-color: var(--ledger); }
.btn-ghost:hover{ background: var(--ledger); color: var(--paper); }
.btn-outline{ background: transparent; color: var(--ink); border-color: var(--ink); }
.btn-outline:hover{ background: var(--ink); color: var(--paper); }
.btn-outline-light{ background: transparent; color: var(--text-on-dark); border-color: rgba(245,241,252,0.4); }
.btn-outline-light:hover{ background: rgba(245,241,252,0.08); }
.btn-small{ padding: 9px 16px; font-size: 0.85rem; }
.btn-large{ padding: 16px 26px; font-size: 1rem; }
.is-disabled{ opacity: 0.45; cursor: not-allowed; pointer-events: none; }

/* ---------- header ---------- */
.site-header{
  position: sticky; top:0; z-index: 50;
  background: rgba(255,255,255,0.88);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(36,25,52,0.08);
}
.header-row{ display:flex; align-items:center; justify-content:space-between; height:72px; }
.brand{ display:flex; align-items:center; gap:10px; }
.brand-name{ font-family: var(--font-display); font-weight:600; font-size:1.2rem; letter-spacing:0.2px; }
.main-nav{ display:flex; gap:30px; }
.main-nav a{ font-size:0.92rem; font-weight:500; color: var(--text-muted); position:relative; }
.main-nav a:hover{ color: var(--ink); }
.header-actions{ display:flex; align-items:center; gap:14px; }
.nav-toggle{ display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px; }
.nav-toggle span{ width:22px; height:2px; background: var(--ink); display:block; }

/* ---------- hero ---------- */
.hero{
  background:
    radial-gradient(1100px 500px at 85% -10%, rgba(168,85,247,0.16), transparent 60%),
    var(--ledger);
  color: var(--text-on-dark);
  padding: 88px 0 100px;
  overflow: hidden;
}
.hero-grid{ display:grid; grid-template-columns: 1.05fr 0.95fr; gap: 56px; align-items:center; }
.eyebrow{
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.76rem;
  color: var(--gold);
  margin: 0 0 14px;
}
.eyebrow.light{ color: var(--gold); }
.eyebrow.center{ text-align:center; }
.hero h1{
  font-size: clamp(2.3rem, 4.4vw, 3.4rem);
  font-weight: 600;
  color: var(--paper);
  margin-bottom: 20px;
}
.hero-sub{
  font-size: 1.06rem;
  color: var(--text-on-dark-muted);
  max-width: 46ch;
  margin-bottom: 32px;
  line-height:1.6;
}
.hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom: 44px; }
.hero-ctas .btn-ghost{ color: var(--paper); border-color: rgba(245,241,252,0.4); }
.hero-ctas .btn-ghost:hover{ background: rgba(245,241,252,0.1); }

.hero-stamps{ display:flex; gap: 28px; }
.stamp{ display:flex; flex-direction:column; border-left: 2px solid rgba(168,85,247,0.5); padding-left:14px; }
.stamp-num{ font-family: var(--font-mono); font-size:1.4rem; font-weight:600; color: var(--paper); }
.stamp-label{ font-size:0.78rem; color: var(--text-on-dark-muted); margin-top:2px; }

/* phone mockup */
.hero-visual{ position:relative; display:flex; justify-content:center; }
.phone-frame{
  width: 270px; background: #1A1030; border-radius: 34px; padding: 14px;
  box-shadow: var(--shadow-lift);
  position:relative;
  border: 1px solid rgba(245,241,252,0.08);
}
.phone-notch{ width:70px; height:6px; background:#1A1030; border-radius:4px; margin: 0 auto 10px; position:relative; }
.phone-notch::after{ content:""; position:absolute; inset:0; margin:auto; width:36px; height:4px; background:#6B46C1; border-radius:3px; }
.phone-screen{ background: var(--paper); border-radius: 22px; padding: 18px 16px 22px; min-height: 430px; }
.app-topbar{ display:flex; justify-content:space-between; align-items:center; font-size:0.82rem; font-weight:600; color: var(--ink); margin-bottom:16px; }
.app-avatar{ width:26px; height:26px; border-radius:50%; background: var(--gold); }
.app-balance{ background: var(--ledger); color: var(--paper); border-radius: var(--radius-m); padding: 16px; margin-bottom:16px; }
.app-balance-label{ display:block; font-size:0.7rem; color: var(--text-on-dark-muted); margin-bottom:6px; }
.app-balance-num{ font-family: var(--font-mono); font-size:1.5rem; font-weight:600; display:block; }
.app-balance-bar{ height:5px; background: rgba(245,241,252,0.18); border-radius:4px; margin-top:12px; overflow:hidden; }
.app-balance-bar i{ display:block; height:100%; background: var(--gold); border-radius:4px; }
.app-tx-list li{ display:flex; align-items:center; gap:10px; padding: 9px 0; border-bottom: 1px solid rgba(36,25,52,0.08); }
.app-tx-list li:last-child{ border-bottom:none; }
.tx-dot{ width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.tx-dot.food{ background:#A855F7; } .tx-dot.transit{ background:#8B6FC4; } .tx-dot.income{ background:#2E7D5B; } .tx-dot.bills{ background:#C13A6B; }
.tx-info{ flex:1; display:flex; flex-direction:column; }
.tx-info b{ font-size:0.78rem; color: var(--ink); }
.tx-info small{ font-size:0.68rem; color: var(--text-muted); }
.tx-amt{ font-family: var(--font-mono); font-size:0.78rem; font-weight:600; }
.tx-amt.neg{ color: var(--money-neg); }
.tx-amt.pos{ color: #2E7D5B; }

.receipt-float{
  position:absolute; right: -14px; bottom: -18px;
  background: var(--paper); color: var(--ink);
  width: 210px; padding: 16px 18px 20px;
  border-radius: 4px;
  box-shadow: var(--shadow-lift);
  transform: rotate(4deg);
  animation: floatY 4.5s ease-in-out infinite;
}
.receipt-head{ font-family: var(--font-mono); font-size:0.68rem; text-transform:uppercase; letter-spacing:0.06em; color: var(--text-muted); margin-bottom:10px; }
.receipt-line{ display:flex; justify-content:space-between; font-size:0.8rem; padding:4px 0; }
.receipt-line.total{ border-top: 1px dashed rgba(76,42,133,0.3); margin-top:6px; padding-top:8px; font-weight:700; color: var(--money-neg); }
.receipt-perf{
  position:absolute; left:0; right:0; bottom:-6px; height:12px;
  background-image: radial-gradient(circle, var(--ledger) 4px, transparent 4.2px);
  background-size: 14px 14px; background-position: 0 0;
}
@keyframes floatY{ 0%,100%{ transform: rotate(4deg) translateY(0);} 50%{ transform: rotate(4deg) translateY(-8px);} }

/* ---------- trust strip ---------- */
.trust-strip{ background: var(--paper-dim); border-bottom: 1px solid rgba(36,25,52,0.08); }
.trust-row{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; padding: 16px 24px; font-family: var(--font-mono); font-size:0.76rem; color: var(--text-muted); letter-spacing:0.03em; }
.trust-row .dot{ color: var(--gold); }

/* ---------- sections generic ---------- */
.section{ padding: 96px 0; }
.section-dark{ background: var(--ledger); color: var(--text-on-dark); }
.section-title{ font-size: clamp(1.7rem, 3vw, 2.3rem); font-weight:600; margin-bottom: 14px; }
.section-title.center{ text-align:center; }
.section-title.light{ color: var(--paper); }
.section-sub{ color: var(--text-muted); max-width: 56ch; margin: 0 auto 52px; font-size:1.02rem; }
.section-sub.center{ text-align:center; }
.light-sub{ color: var(--text-on-dark-muted); max-width:50ch; margin-bottom: 30px; font-size:1.02rem; }
p.eyebrow ~ h2.section-title{ margin-bottom: 14px; }
.section > .wrap > .section-sub{ margin-top:-6px; }

/* ---------- feature grid ---------- */
.feature-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.feature-card{
  background:#fff; border: 1px solid rgba(36,25,52,0.08);
  border-radius: var(--radius-m); padding: 28px 24px;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.feature-card:hover{ transform: translateY(-4px); box-shadow: var(--shadow-card); border-color: transparent; }
.feature-icon{ width:44px; height:44px; border-radius: 10px; background: var(--paper-dim); color: var(--ledger); display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
.feature-icon svg{ width:22px; height:22px; }
.feature-card h3{ font-size: 1.08rem; font-weight:600; margin-bottom:8px; }
.feature-card p{ font-size:0.92rem; color: var(--text-muted); line-height:1.55; }

/* ---------- steps ---------- */
.steps{ display:grid; grid-template-columns: repeat(4,1fr); gap: 26px; margin-top: 54px; }
.step{ border-top: 2px solid var(--gold); padding-top:18px; }
.step-no{ font-family: var(--font-mono); color: var(--gold); font-size:0.85rem; display:block; margin-bottom:14px; }
.step h3{ font-size:1.05rem; font-weight:600; color: var(--paper); margin-bottom:8px; }
.step p{ font-size:0.9rem; color: var(--text-on-dark-muted); line-height:1.55; }

/* ---------- screenshots ---------- */
.screens-row{ display:grid; grid-template-columns: repeat(4, 1fr); gap:22px; }
.screen-card{ margin:0; }
.screen-shot{
  aspect-ratio: 720/1565; border-radius: 20px; overflow:hidden;
  box-shadow: var(--shadow-card); position:relative;
  border: 6px solid var(--ink);
  transition: transform .2s ease, box-shadow .2s ease;
}
.screen-shot:hover{ transform: translateY(-6px); box-shadow: var(--shadow-lift); }
.screen-shot img{ width:100%; height:100%; object-fit: cover; object-position: top; display:block; }
figure.screen-card figcaption{ text-align:center; font-size:0.85rem; color: var(--text-muted); margin-top:14px; }
.screens-note{ text-align:center; font-size:0.82rem; color: var(--text-muted); margin-top:36px; }
.screens-note code{ background: var(--paper-dim); padding:2px 6px; border-radius:4px; font-family: var(--font-mono); }

/* ---------- about ---------- */
.section-about{ background: var(--paper-dim); }
.about-grid{ display:grid; grid-template-columns: 1.15fr 0.85fr; gap: 60px; align-items:start; }
.about-copy p{ color: var(--text-muted); line-height:1.7; margin-bottom:16px; font-size:1rem; }
.about-links{ margin-top: 22px; }
.about-card{
  background:#fff; border-radius: var(--radius-m); padding: 30px 26px; box-shadow: var(--shadow-card); position:relative;
}
.about-stamp{
  position:absolute; top:-14px; right: 22px;
  font-family: var(--font-mono); font-size:0.72rem; letter-spacing:0.08em;
  background: var(--stamp); color: var(--paper); padding: 6px 12px; border-radius: 4px;
  transform: rotate(4deg);
}
.about-facts li{ display:flex; flex-direction:column; gap:2px; padding: 13px 0; border-bottom: 1px solid rgba(36,25,52,0.08); }
.about-facts li:last-child{ border-bottom:none; }
.about-facts span{ font-family: var(--font-mono); font-size:0.7rem; text-transform:uppercase; letter-spacing:0.06em; color: var(--gold); }
.about-facts b{ font-size:0.92rem; font-weight:600; margin-top:3px; }

/* ---------- download ---------- */
.download-grid{ display:grid; grid-template-columns: 1.2fr 0.8fr; gap:56px; align-items:center; }
.download-buttons{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom: 26px; }
.download-meta{ display:flex; gap:22px; flex-wrap:wrap; font-family: var(--font-mono); font-size:0.78rem; color: var(--text-on-dark-muted); }
.qr-card{ background: var(--paper); border-radius: var(--radius-m); padding: 28px; text-align:center; box-shadow: var(--shadow-lift); justify-self:center; }
.qr-box{ margin-bottom:14px; display:flex; justify-content:center; }
.qr-card p{ font-size:0.82rem; color: var(--text-muted); }

/* ---------- faq ---------- */
.faq-list{ display:flex; flex-direction:column; gap:12px; }
.faq-item{ background:#fff; border:1px solid rgba(36,25,52,0.08); border-radius: var(--radius-s); padding: 16px 20px; }
.faq-item summary{ cursor:pointer; font-weight:600; font-size:0.98rem; list-style:none; display:flex; justify-content:space-between; align-items:center; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:"+"; font-family: var(--font-mono); color: var(--gold); font-size:1.3rem; margin-left:16px; transition: transform .2s ease; }
.faq-item[open] summary::after{ transform: rotate(45deg); }
.faq-item p{ margin-top: 12px; color: var(--text-muted); font-size:0.92rem; line-height:1.6; }

/* ---------- contact ---------- */
.section-contact{ background: var(--paper-dim); }
.contact-form{ margin-top: 40px; display:flex; flex-direction:column; gap:18px; }
.form-row{ display:flex; flex-direction:column; gap:6px; }
.form-row label{ font-size:0.8rem; font-weight:600; color: var(--text-muted); }
.form-row input, .form-row textarea{
  font-family: var(--font-body); font-size:0.95rem; padding: 12px 14px;
  border: 1.5px solid rgba(36,25,52,0.15); border-radius: var(--radius-s); background:#fff;
  resize: vertical;
}
.form-row input:focus, .form-row textarea:focus{ outline: none; border-color: var(--ledger); }
.contact-form .btn{ align-self:flex-start; }
.form-status{ font-size:0.88rem; color: #2E7D5B; min-height: 1.2em; }

/* ---------- footer ---------- */
.site-footer{ background: var(--ink); color: var(--text-on-dark-muted); padding: 46px 0 30px; }
.footer-row{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-start; gap:24px; }
.footer-brand .brand-name{ color: var(--paper); }
.footer-brand p{ font-size:0.85rem; margin-top:6px; }
.footer-links{ display:flex; gap:20px; flex-wrap:wrap; }
.footer-links a{ font-size:0.86rem; }
.footer-links a:hover{ color: var(--paper); }
.footer-copy{ width:100%; font-size:0.78rem; margin-top: 24px; border-top: 1px solid rgba(245,241,252,0.1); padding-top:20px; }

/* ---------- responsive ---------- */
@media (max-width: 980px){
  .hero-grid, .about-grid, .download-grid{ grid-template-columns: 1fr; }
  .hero-visual{ order:-1; margin-bottom: 20px; }
  .feature-grid{ grid-template-columns: repeat(2,1fr); }
  .steps{ grid-template-columns: repeat(2,1fr); }
  .screens-row{ grid-template-columns: repeat(2,1fr); }
  .main-nav{
    display:none; position:absolute; top:72px; left:0; right:0;
    background: var(--paper); flex-direction:column; gap:0;
    border-bottom: 1px solid rgba(36,25,52,0.08);
    box-shadow: var(--shadow-card);
  }
  .main-nav.open{ display:flex; }
  .main-nav a{ padding: 16px 24px; border-top: 1px solid rgba(36,25,52,0.06); }
}

@media (max-width: 600px){
  .section{ padding: 64px 0; }
  .hero{ padding: 64px 0 80px; }
  .feature-grid{ grid-template-columns: 1fr; }
  .steps{ grid-template-columns: 1fr; }
  .screens-row{ grid-template-columns: 1fr 1fr; gap:14px; }
  .hero-stamps{ flex-wrap:wrap; row-gap:16px; }
  .phone-frame{ width: 230px; }
  .receipt-float{ width:180px; right:-6px; }
  .nav-toggle{ display:flex; }
}
