:root{
  /* Light / slate palette — matches the app's light mode + App Store screenshots.
     Neutrals are Tailwind "slate" (the app's own token family); brand gradient
     stays violet→pink (BrandPrimary→BrandAccent). */
  --bg:#FFFFFF;
  --card:#F1F5F9;                       /* slate-100 (app Card, light) */
  --card-hover:#E9EFF5;
  --border:#E2E8F0;                     /* slate-200 */
  --border-hover:rgba(124,58,237,.45);  /* brand tint on hover */
  --text:#0F172A;                       /* slate-900 (app TextPrimary, light) */
  --body:#334155;                       /* slate-700 (paragraphs) */
  --muted:#475569;                      /* slate-600 (app TextSecondary, light) */
  --muted-2:#64748B;                    /* slate-500 (tertiary) */
  --brand-1:#7C3AED;
  --brand-2:#A855F7;
  --brand-3:#EC4899;
  --link:#7C3AED;                       /* brand primary reads well on white */
  --radius:18px;
  --radius-sm:14px;
  --max:780px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);color:var(--text);line-height:1.65;font-size:17px;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:var(--max);margin:0 auto;padding-left:24px;padding-right:24px}

/* nav */
.nav{position:sticky;top:0;z-index:20;
  backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  background:rgba(255,255,255,.72);border-bottom:1px solid var(--border)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:19px;color:var(--text)}
.brand:hover{text-decoration:none}
/* App-icon mark — faithful web port of the app's BrandTile + AppLogoMark,
   built entirely in CSS: a brand-gradient tile, the headphones + waveform as
   inline vector glyphs (traced from the app's own icon art, so crisp at any
   size), an always-on glossy rim, and a comet of light sweeping the edge on a
   4s loop. One shape/animation everywhere. */
@property --comet{syntax:"<angle>";initial-value:0deg;inherits:false}
.app-icon{
  --s:28px;
  position:relative;display:inline-block;flex:0 0 auto;
  width:var(--s);height:var(--s);border-radius:22.37%;vertical-align:middle;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cg transform='translate(399.36,538.79) scale(0.497307)'%3E%3Cg transform=%22translate(0.000000,510.000000) scale(0.100000,-0.100000)%22 fill=%22%23ffffff%22 stroke=%22none%22%3E %3Cpath d=%22M1754 5081 c-49 -22 -88 -70 -103 -126 -15 -57 -15 -4753 0 -4810 34 -123 159 -178 275 -120 54 27 91 74 105 132 11 50 11 4736 0 4786 -14 58 -51 105 -105 132 -60 30 -115 32 -172 6z%22/%3E %3Cpath d=%22M3389 4537 c-29 -16 -54 -40 -74 -72 l-30 -48 0 -1866 0 -1866 27 -45 c74 -127 265 -127 338 2 l25 43 0 1866 0 1866 -30 48 c-37 60 -98 95 -165 95 -30 0 -63 -8 -91 -23z%22/%3E %3Cpath d=%22M952 4109 c-47 -14 -106 -77 -121 -130 -9 -34 -11 -370 -9 -1449 3 -1359 4 -1406 22 -1443 22 -45 78 -85 136 -98 80 -18 172 26 210 101 20 39 20 61 20 1460 0 1390 0 1422 -20 1459 -45 89 -139 128 -238 100z%22/%3E %3Cpath d=%22M2574 3801 c-49 -22 -88 -70 -103 -126 -15 -53 -15 -2194 -1 -2246 47 -168 271 -198 358 -49 l27 45 0 1125 0 1125 -23 42 c-47 89 -166 128 -258 84z%22/%3E %3Cpath d=%22M4225 3311 c-47 -22 -89 -64 -104 -104 -18 -46 -15 -1278 3 -1320 30 -72 129 -126 205 -112 54 10 116 50 143 92 l23 38 0 647 0 646 -30 43 c-57 81 -155 109 -240 70z%22/%3E %3Cpath d=%22M115 3101 c-50 -22 -91 -69 -105 -119 -14 -51 -13 -814 1 -865 14 -52 77 -113 131 -128 86 -23 188 22 228 101 19 37 20 60 20 460 0 394 -1 423 -19 458 -50 98 -159 137 -256 93z%22/%3E %3C/g%3E%3C/g%3E%3Cg transform='translate(143.36,122.88) scale(1.44)'%3E%3Cg transform=%22translate(0.000000,512.000000) scale(0.100000,-0.100000)%22 fill=%22%23ffffff%22 stroke=%22none%22%3E %3Cpath d=%22M2365 4804 c-358 -37 -634 -113 -920 -254 -275 -135 -448 -257 -663 -465 -358 -347 -591 -748 -706 -1215 -70 -284 -69 -275 -73 -1100 -4 -664 -3 -752 12 -812 21 -87 57 -150 120 -213 95 -96 202 -135 368 -135 l97 0 0 750 0 750 -98 0 c-54 0 -121 -6 -150 -14 l-52 -13 0 131 c0 523 151 987 450 1386 306 409 752 709 1241 834 217 56 336 70 569 70 233 0 352 -14 569 -70 489 -125 935 -425 1241 -834 299 -399 450 -863 450 -1386 l0 -131 -52 13 c-29 8 -96 14 -150 14 l-98 0 0 -750 0 -750 97 0 c166 0 273 39 368 135 63 63 99 126 120 213 15 60 16 148 12 812 -4 825 -3 816 -73 1100 -115 467 -348 868 -706 1215 -215 209 -389 331 -663 465 -242 119 -477 192 -755 235 -101 15 -468 28 -555 19z%22/%3E %3Cpath d=%22M1091 2388 c-74 -28 -142 -97 -170 -171 -21 -57 -21 -64 -21 -857 0 -793 0 -800 21 -857 29 -77 96 -143 174 -172 52 -20 75 -22 185 -19 110 3 129 6 156 25 67 48 64 -8 64 1023 0 1031 3 975 -64 1023 -28 20 -45 22 -161 24 -112 2 -137 0 -184 -19z%22/%3E %3Cpath d=%22M3702 2393 c-18 -9 -43 -30 -55 -47 l-22 -31 -3 -943 c-3 -1045 -6 -986 62 -1035 27 -19 46 -22 156 -25 110 -3 133 -1 185 19 78 29 145 95 174 172 21 57 21 64 21 857 0 793 0 800 -21 857 -29 76 -96 143 -172 172 -75 27 -272 30 -325 4z%22/%3E %3C/g%3E%3C/g%3E%3C/svg%3E") center/cover no-repeat,
             linear-gradient(135deg,#7C3AED,#EC4899);
  /* soft brand shadow + glossy inner hairline rim (matches strokeBorder .16) */
  box-shadow:0 calc(var(--s)*.06) calc(var(--s)*.26) rgba(124,58,237,.35),
             inset 0 0 0 1px rgba(255,255,255,.16);
}
/* two comet layers: a blurred bloom (::before) under a crisp head (::after),
   each a rotating conic gradient masked to a thin edge ring */
.app-icon::before,.app-icon::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:conic-gradient(from var(--comet),
    transparent 0 8%,
    rgba(255,255,255,.85) 23%,
    #fff 25%,
    transparent 30% 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
          mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
          mask-composite:exclude;
  animation:comet-sweep 4s linear infinite;
}
.app-icon::after{padding:1.6px}                 /* crisp comet head */
.app-icon::before{padding:5px;filter:blur(4px)} /* soft bloom */
@keyframes comet-sweep{to{--comet:360deg}}
/* the tiny nav mark stays a calm static tile — the comet is a hero treatment */
.brand .app-icon::before,.brand .app-icon::after{display:none}
@media (prefers-reduced-motion:reduce){
  .app-icon::before,.app-icon::after{animation:none;opacity:.55}
}
.nav-links{display:flex;gap:26px;font-size:15px}
.nav-links a{color:var(--muted)}
.nav-links a:hover{color:var(--text);text-decoration:none}

/* hero */
.hero{text-align:center;padding:88px 0 60px;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:560px;height:340px;max-width:95%;
  background:radial-gradient(ellipse at center,rgba(124,58,237,.12),transparent 68%);
  pointer-events:none;z-index:0}
.hero .wrap{position:relative;z-index:1}
.hero .app-icon,.invite .app-icon{--s:96px;display:block;margin:0 auto 18px;
  box-shadow:0 calc(var(--s)*.12) calc(var(--s)*.34) rgba(124,58,237,.45),
             inset 0 0 0 1px rgba(255,255,255,.16)}
.hero h1{font-size:46px;line-height:1.08;font-weight:800;letter-spacing:-.02em;
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  -webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:16px}
.tagline{font-size:21px;color:var(--text);font-weight:600;margin-bottom:14px}
.subtitle{font-size:18px;color:var(--muted);max-width:580px;margin:0 auto 30px}
/* App Store badge — official Apple black artwork; sits perfectly on the white bg */
.cta{margin:0 0 28px;display:flex;justify-content:center}
.appstore{display:inline-block;line-height:0;border-radius:12px;
  transition:transform .18s ease,filter .18s ease}
.appstore:hover{text-decoration:none;transform:translateY(-2px);filter:brightness(1.08)}
.appstore:focus-visible{outline:2px solid var(--brand-2);outline-offset:5px}
.appstore img{height:56px;width:auto;display:block}

.badges{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.badge{display:inline-flex;align-items:center;gap:8px;background:var(--card);
  border:1px solid var(--border);padding:8px 16px;border-radius:999px;font-size:14px;color:var(--body)}
.badge .dot{width:7px;height:7px;border-radius:50%;
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  box-shadow:0 0 8px rgba(168,85,247,.6)}

/* sections */
section{padding:44px 0}
.section-title{font-size:13px;text-transform:uppercase;letter-spacing:.1em;
  color:var(--brand-1);font-weight:700;margin-bottom:22px}
.cards{display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  padding:28px;box-shadow:0 1px 3px rgba(15,23,42,.05);
  transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}
.card:hover{transform:translateY(-3px);border-color:var(--border-hover);background:var(--card-hover);
  box-shadow:0 12px 28px rgba(15,23,42,.10)}
.card .ico{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;
  justify-content:center;font-size:26px;margin-bottom:18px;
  background:linear-gradient(135deg,rgba(124,58,237,.20),rgba(236,72,153,.12));
  border:1px solid rgba(168,85,247,.24)}
.card h3{font-size:18px;margin-bottom:8px}
.card p{color:var(--muted);font-size:15px}

/* callout */
.callout{margin-top:8px;
  background:linear-gradient(135deg,rgba(124,58,237,.14),rgba(236,72,153,.07));
  border:1px solid rgba(168,85,247,.30);border-radius:var(--radius);padding:38px 32px;text-align:center}
.callout h2{font-size:25px;margin-bottom:12px}
.callout p{color:var(--body);max-width:600px;margin:0 auto}

/* closing download CTA */
.download{text-align:center}
.download-title{font-size:25px;margin-bottom:8px}
.download-sub{color:var(--muted);margin-bottom:24px}
.download .appstore{margin:0 auto}

/* content pages */
.page{padding:60px 0}
.page h1{font-size:38px;font-weight:800;letter-spacing:-.02em;margin-bottom:8px}
.page .updated{color:var(--muted-2);font-size:15px;margin-bottom:38px}
.page h2{font-size:21px;margin:34px 0 12px;font-weight:700}
.page p,.page li{color:var(--body);margin-bottom:14px}
.page ul{padding-left:22px}
.page li{margin-bottom:10px}
.page strong{color:var(--text)}
.lead{font-size:19px;color:var(--text)}

/* faq */
.faq{display:flex;flex-direction:column;gap:14px}
.qa{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:22px 24px;transition:border-color .18s ease,background .18s ease}
.qa:hover{border-color:var(--border-hover);background:var(--card-hover)}
.qa h3{font-size:17px;margin-bottom:6px}
.qa p{color:var(--muted);font-size:15px;margin:0}

/* contact button */
.contact{text-align:center;padding:44px 0}
.btn{display:inline-flex;align-items:center;gap:10px;
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  color:#fff;font-weight:700;font-size:17px;padding:15px 30px;border-radius:999px;
  box-shadow:0 10px 34px rgba(124,58,237,.42);transition:filter .18s ease,transform .18s ease}
.btn:hover{text-decoration:none;filter:brightness(1.08);transform:translateY(-2px)}

/* footer */
footer{border-top:1px solid var(--border);margin-top:48px;padding:34px 0;color:var(--muted-2);font-size:14px}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
footer a{color:var(--muted)}
footer a:hover{color:var(--text)}

/* responsive */
@media(max-width:680px){
  .cards{grid-template-columns:1fr;gap:16px}
  .hero h1{font-size:36px}
  .hero{padding:60px 0 44px}
  .nav-links{gap:18px}
  body{font-size:16px}
  section{padding:36px 0}
}
