/* ReadSong site pages: privacy/, terms/, support/ and 404.html.
   Design B, "Story time" (the home page, assets/b/style.css): one evening
   from golden hour to dawn. Here the sky is a quiet twilight: a static violet
   gradient, a few stars and the moon, so long text stays easy to read.
   Fredoka for display, Caveat for handwriting, the system face for reading.
   No third-party anything. */

/* ------------------------------------------------------------ fonts (the home page's own files) */
@font-face { font-family: "Fredoka B"; src: url("../b/fonts/fredoka-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Fredoka B"; src: url("../b/fonts/fredoka-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Caveat B"; src: url("../b/fonts/caveat-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }

/* ------------------------------------------------------------ tokens */
:root {
  color-scheme: dark;
  --violet: #2B1055;
  --violet-deep: #14072E;
  --plum: #3A1468;
  --magenta: #C2307A;
  --pink: #FF5FA2;
  --coral: #FF7A59;
  --amber: #FFB347;
  --gold: #FFE08A;
  --cream: #FFF1C1;
  --note-ink: #3A1A63;
  --ink: #FFFFFF;          /* headings */
  --ink-2: #FBF1E9;        /* reading text: ≥ 8.5:1 anywhere on the sky, ≥ 13:1 on cards */
  --ink-3: #EBDDD6;        /* secondary text: ≥ 7:1 on the sky, ≥ 11:1 on cards */
  --ink-4: #E0D2D6;        /* fine print: ≥ 6:1 at the warmest spot, ≥ 9:1 on cards */
  --hair: rgba(255, 230, 210, .16);
  --hair-2: rgba(255, 230, 210, .26);
  --card: rgba(26, 12, 62, .58);
  --card-2: rgba(40, 18, 84, .72);
  --gold-soft: rgba(255, 224, 138, .12);
  --gold-edge: rgba(255, 224, 138, .5);
  --display: "Fredoka B", ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --hand: "Caveat B", "Segoe Print", "Bradley Hand", cursive;
  --body: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: Menlo, ui-monospace, SFMono-Regular, Consolas, monospace;
  --ease: cubic-bezier(.22, 1, .36, 1);
  --turn: cubic-bezier(.65, 0, .35, 1);
  --gutter: 20px;
  --header-h: 64px;
  --max: 1240px;
  --sunset: linear-gradient(100deg, #FF5FA2, #FFB347 55%, #FFE08A);
  --gold-btn: radial-gradient(130% 160% at 30% 10%, #FFF6D2 0%, #FFE08A 30%, #FFB347 72%, #FF8F5E 100%);
}
@media (min-width: 960px) { :root { --gutter: 32px; --header-h: 72px; } }

/* ------------------------------------------------------------ base */
*, *::before, *::after { box-sizing: border-box; }
html {
  -webkit-text-size-adjust: 100%; text-size-adjust: 100%;
  background: var(--violet-deep);
  scroll-padding-top: calc(var(--header-h) + 20px);
}
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
  position: relative; margin: 0; min-height: 100vh; min-height: 100svh;
  display: flex; flex-direction: column;
  color: var(--ink-2); font: 400 17px/1.65 var(--body);
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden; overflow-x: clip; background: transparent;
}
img, svg, canvas { max-width: 100%; }
a { color: var(--gold); text-decoration-line: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: rgba(255, 224, 138, .5); transition: color .2s, text-decoration-color .2s; }
a:hover { color: #fff; text-decoration-color: currentColor; }
:focus { outline: none; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; border-radius: 10px; }
button { font: inherit; color: inherit; -webkit-tap-highlight-color: transparent; }
em { font-style: normal; }
p em, li em, dd em, q em { font-style: italic; }
[hidden] { display: none !important; }
.sr-only {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.container { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter); }
.skip {
  position: fixed; left: 12px; top: -64px; z-index: 100; padding: 10px 16px; border-radius: 12px;
  background: var(--gold); color: var(--violet); font: 600 15px/1.2 var(--display); text-decoration: none;
  transition: top .2s var(--ease);
}
.skip:focus, .skip:focus-visible { top: 12px; color: var(--violet); }

/* The owner's rule for the contact address: wherever it is shown, it is an
   ordinary small link in the reading face, never bold, never a badge. */
a[href^="mailto:"]:not(.btn) {
  font-family: var(--body); font-weight: 400; font-size: min(1em, 16px);
  letter-spacing: normal; text-transform: none; overflow-wrap: anywhere;
}

/* ------------------------------------------------------------ the twilight sky
   Static: a violet gradient with a warm glow low on the horizon, two layers of
   stars (the brighter one twinkles slowly) and, on wide screens, the moon. */
.sky {
  position: fixed; inset: 0; z-index: -1; pointer-events: none; overflow: hidden;
  background:
    radial-gradient(110% 50% at 50% 115%, rgba(255, 122, 89, .2), rgba(194, 48, 122, .13) 45%, transparent 72%),
    radial-gradient(70% 50% at 2% -8%, rgba(140, 70, 220, .3), transparent 70%),
    radial-gradient(45% 40% at 100% 34%, rgba(194, 48, 122, .1), transparent 70%),
    linear-gradient(180deg, #120935 0%, #1B0C46 32%, #2A1054 68%, #3B1462 100%);
}
.sky::before, .sky::after {
  content: ""; position: absolute; inset: 0;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 40%, rgba(0, 0, 0, .35) 78%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, #000 40%, rgba(0, 0, 0, .35) 78%, transparent 100%);
}
.sky::before { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='340' viewBox='0 0 420 340'%3E%3Ccircle cx='137' cy='54' r='0.9' fill='%23FFF4E6' fill-opacity='0.31'/%3E%3Ccircle cx='225' cy='125' r='0.5' fill='%23FFF4E6' fill-opacity='0.49'/%3E%3Ccircle cx='19' cy='148' r='0.5' fill='%23FFF4E6' fill-opacity='0.32'/%3E%3Ccircle cx='179' cy='279' r='0.6' fill='%23FFF4E6' fill-opacity='0.37'/%3E%3Ccircle cx='263' cy='319' r='0.8' fill='%23FFF4E6' fill-opacity='0.45'/%3E%3Ccircle cx='406' cy='19' r='1.0' fill='%23FFF4E6' fill-opacity='0.40'/%3E%3Ccircle cx='63' cy='43' r='0.7' fill='%23FFF4E6' fill-opacity='0.62'/%3E%3Ccircle cx='78' cy='197' r='0.9' fill='%23FFF4E6' fill-opacity='0.44'/%3E%3Ccircle cx='230' cy='25' r='0.5' fill='%23FFF4E6' fill-opacity='0.37'/%3E%3Ccircle cx='284' cy='146' r='0.7' fill='%23FFF4E6' fill-opacity='0.53'/%3E%3Ccircle cx='191' cy='104' r='0.9' fill='%23FFF4E6' fill-opacity='0.57'/%3E%3Ccircle cx='105' cy='195' r='0.8' fill='%23FFF4E6' fill-opacity='0.65'/%3E%3Ccircle cx='305' cy='100' r='1.0' fill='%23FFF4E6' fill-opacity='0.33'/%3E%3Ccircle cx='176' cy='255' r='0.6' fill='%23FFF4E6' fill-opacity='0.49'/%3E%3Ccircle cx='20' cy='226' r='0.9' fill='%23FFF4E6' fill-opacity='0.52'/%3E%3Ccircle cx='365' cy='108' r='0.9' fill='%23FFF4E6' fill-opacity='0.53'/%3E%3Ccircle cx='243' cy='155' r='1.0' fill='%23FFF4E6' fill-opacity='0.68'/%3E%3Ccircle cx='199' cy='224' r='0.5' fill='%23FFF4E6' fill-opacity='0.57'/%3E%3Ccircle cx='271' cy='334' r='1.0' fill='%23FFF4E6' fill-opacity='0.40'/%3E%3Ccircle cx='163' cy='226' r='0.5' fill='%23FFF4E6' fill-opacity='0.47'/%3E%3Ccircle cx='73' cy='43' r='0.5' fill='%23FFF4E6' fill-opacity='0.60'/%3E%3Ccircle cx='57' cy='86' r='0.7' fill='%23FFF4E6' fill-opacity='0.65'/%3E%3Ccircle cx='37' cy='153' r='0.8' fill='%23FFF4E6' fill-opacity='0.65'/%3E%3Ccircle cx='342' cy='291' r='0.7' fill='%23FFF4E6' fill-opacity='0.45'/%3E%3Ccircle cx='152' cy='298' r='1.0' fill='%23FFF4E6' fill-opacity='0.34'/%3E%3Ccircle cx='77' cy='81' r='0.6' fill='%23FFF4E6' fill-opacity='0.48'/%3E%3Ccircle cx='247' cy='91' r='0.5' fill='%23FFF4E6' fill-opacity='0.46'/%3E%3Ccircle cx='156' cy='192' r='1.0' fill='%23FFF4E6' fill-opacity='0.57'/%3E%3Ccircle cx='216' cy='209' r='0.9' fill='%23FFF4E6' fill-opacity='0.30'/%3E%3Ccircle cx='375' cy='263' r='1.0' fill='%23FFF4E6' fill-opacity='0.62'/%3E%3Ccircle cx='166' cy='136' r='0.6' fill='%23FFF4E6' fill-opacity='0.55'/%3E%3Ccircle cx='30' cy='26' r='0.6' fill='%23FFF4E6' fill-opacity='0.35'/%3E%3Ccircle cx='144' cy='21' r='0.5' fill='%23FFF4E6' fill-opacity='0.34'/%3E%3Ccircle cx='46' cy='125' r='0.5' fill='%23FFF4E6' fill-opacity='0.65'/%3E%3C/svg%3E") 0 0 / 420px 340px repeat; opacity: .8; }
.sky::after { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='860' height='640' viewBox='0 0 860 640'%3E%3Ccircle cx='581' cy='500' r='1.3' fill='%23FFFFFF' fill-opacity='0.75'/%3E%3Ccircle cx='339' cy='634' r='1.2' fill='%23FFFFFF' fill-opacity='0.61'/%3E%3Ccircle cx='226' cy='169' r='1.2' fill='%23FFFFFF' fill-opacity='0.66'/%3E%3Ccircle cx='96' cy='210' r='1.2' fill='%23FFFFFF' fill-opacity='0.78'/%3E%3Ccircle cx='176' cy='49' r='1.1' fill='%23FFFFFF' fill-opacity='0.77'/%3E%3Ccircle cx='335' cy='468' r='1.5' fill='%23FFFFFF' fill-opacity='0.72'/%3E%3Ccircle cx='89' cy='464' r='1.5' fill='%23FFFFFF' fill-opacity='0.71'/%3E%3Ccircle cx='565' cy='193' r='1.5' fill='%23FFFFFF' fill-opacity='0.88'/%3E%3Ccircle cx='679' cy='607' r='1.1' fill='%23FFFFFF' fill-opacity='0.77'/%3E%3C/svg%3E") 120px 40px / 860px 640px repeat; opacity: .9; }
@media (prefers-reduced-motion: no-preference) {
  .sky::after { animation: twinkle 5.6s ease-in-out infinite alternate; }
}
@keyframes twinkle { from { opacity: .45; } to { opacity: 1; } }
.sky-moon { display: none; position: absolute; right: max(40px, calc((100vw - var(--max)) / 2 - 92px)); top: calc(var(--header-h) + 56px); width: 60px; height: 60px; }
.sky-moon::before { content: ""; position: absolute; inset: -110%; border-radius: 50%; background: radial-gradient(circle, rgba(255, 241, 193, .2), rgba(255, 200, 160, .06) 42%, transparent 66%); }
.sky-moon::after {
  content: ""; position: absolute; inset: 0; border-radius: 50%;
  background: radial-gradient(circle at 70% 70%, #FFF8E1, #F6E7C1 70%);
  -webkit-mask-image: radial-gradient(58% 58% at 24% 28%, transparent 98%, #000 100%);
  mask-image: radial-gradient(58% 58% at 24% 28%, transparent 98%, #000 100%);
  filter: drop-shadow(0 0 12px rgba(255, 241, 193, .55));
}
@media (min-width: 1400px) { .sky-moon { display: block; } }

/* ------------------------------------------------------------ header (the home page's nav) */
.site-header {
  position: sticky; top: 0; z-index: 50; height: var(--header-h);
  background: rgba(22, 9, 48, .8);
  box-shadow: 0 1px 0 rgba(255, 224, 200, .08), 0 10px 30px -18px rgba(0, 0, 0, .6);
  -webkit-backdrop-filter: saturate(150%) blur(14px); backdrop-filter: saturate(150%) blur(14px);
  transition: background-color .35s var(--ease), box-shadow .35s var(--ease);
}
.site-header.is-top { background: rgba(22, 9, 48, 0); box-shadow: 0 1px 0 transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
.bar { max-width: var(--max); height: 100%; margin: 0 auto; padding: 0 var(--gutter); display: flex; align-items: center; gap: 16px; }
.brand { display: inline-flex; align-items: center; gap: 10px; flex: none; color: #fff; text-decoration: none; font: 700 21px/1 var(--display); letter-spacing: .005em; border-radius: 12px; }
.brand:hover { color: #fff; }
.brand img { display: block; width: 34px; height: 34px; border-radius: 22.37%; box-shadow: 0 4px 14px rgba(10, 0, 30, .45); transition: transform .5s var(--ease); }
.brand:hover img { transform: rotate(-6deg) scale(1.06); }
.site-nav { display: none; }
.badge { display: inline-block; flex: none; border-radius: 10px; line-height: 0; }
.badge img { display: block; width: auto; height: 40px; }
.badge--nav { margin-left: auto; }
/* Help: the help centre one tap from the top on phones, as on the home page (the page
   links fold away under 720 px). The support page itself has none. */
.nav__help {
  margin-left: auto; display: inline-flex; align-items: center; min-height: 40px; padding: 0 13px; border-radius: 999px;
  border: 1px solid rgba(255, 236, 220, .24); background: rgba(255, 255, 255, .06); color: #fff; text-decoration: none;
  font: 600 15px/1 var(--display); letter-spacing: .01em; transition: color .2s, background-color .2s, border-color .2s;
}
.nav__help:hover { color: #fff; border-color: var(--gold); background: rgba(255, 224, 138, .12); }
.nav__help:focus-visible { border-radius: 999px; }
.nav__help + .badge--nav { margin-left: 0; }
@media (max-width: 379px) { .bar { gap: 10px; } .nav__help { padding: 0 10px; } .bar .badge img { height: 36px; } }
@media (max-width: 359px) { .brand span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } }
@media (min-width: 720px) { .nav__help { display: none; } }
@media (min-width: 720px) {
  .site-nav { display: flex; gap: 2px; margin: 0 auto; }
  .site-nav a { padding: 9px 14px; border-radius: 999px; color: var(--ink-3); text-decoration: none; font: 600 15px/1 var(--display); letter-spacing: .01em; transition: color .2s, background-color .2s; }
  .site-nav a:hover { color: #fff; background: rgba(255, 255, 255, .09); }
  .site-nav a[aria-current="page"] { color: var(--gold); background: var(--gold-soft); }
  .badge--nav { margin-left: 0; }
}
.read-progress {
  position: absolute; left: 0; right: 0; bottom: -1px; height: 2px;
  transform-origin: 0 50%; transform: scaleX(0);
  background: var(--sunset); box-shadow: 0 0 10px rgba(255, 170, 90, .7);
}

/* ------------------------------------------------------------ shared type */
.eyebrow {
  display: inline-flex; align-items: center; gap: 8px; margin: 0;
  padding: 6px 13px 6px 10px; border-radius: 999px;
  background: rgba(255, 224, 138, .1); border: 1px solid rgba(255, 224, 138, .26);
  color: var(--gold); font: 600 14px/1.1 var(--display); letter-spacing: .02em;
}
.eyebrow svg { width: 16px; height: 16px; flex: none; }
.display { margin: 18px 0 18px; color: #fff; font: 700 clamp(46px, 8.2vw, 96px)/1 var(--display); letter-spacing: -.008em; text-wrap: balance; }
.h2 { margin: 16px 0 14px; color: #fff; font: 700 clamp(36px, 5.4vw, 64px)/1.04 var(--display); letter-spacing: -.005em; text-wrap: balance; }
.display em, .h2 em, h1 em, h2 em, .em { color: var(--gold); text-shadow: 0 0 30px rgba(255, 190, 90, .35); }
.lead { margin: 0; max-width: 38em; color: var(--ink-3); font: 600 clamp(18px, 1.7vw, 21px)/1.45 var(--display); text-wrap: pretty; }
.hand { font: 700 1.25em/1.1 var(--hand); color: var(--gold); }

/* Buttons: the gold play-button gradient, and a gold outline. */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 50px; padding: 0 22px; border-radius: 999px;
  border: 1px solid var(--gold-edge); background: rgba(20, 8, 50, .25); color: var(--gold);
  font: 600 16px/1.1 var(--display); letter-spacing: .01em; text-decoration: none; cursor: pointer;
  transition: transform .25s var(--ease), background-color .25s, color .25s, box-shadow .3s var(--ease), border-color .25s;
}
.btn:hover { color: #fff; background: rgba(255, 224, 138, .14); transform: translateY(-2px); }
.btn:active { transform: scale(.97); }
.btn svg { flex: none; }
.btn-primary {
  border-color: transparent; color: var(--violet); background: var(--gold-btn);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .45), 0 12px 30px -10px rgba(255, 140, 80, .7), 0 0 36px rgba(255, 190, 90, .22);
}
.btn-primary:hover { color: var(--violet); background: var(--gold-btn); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .55), 0 16px 38px -10px rgba(255, 140, 80, .85), 0 0 46px rgba(255, 190, 90, .32); }
.btn:focus-visible { outline-offset: 4px; border-radius: 999px; }

/* In-app paths: little pills joined by gold chevrons ("Settings › ReadSong Pro"). */
.path { display: inline; }
.path .pstep { white-space: nowrap; }
.path .chip {
  display: inline-block; margin: 2px 0; padding: 1px 10px; border-radius: 999px;
  background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 236, 220, .22);
  color: #fff; font: 600 14px/1.5 var(--body); white-space: nowrap;
}
.path svg { display: inline-block; width: 14px; height: 14px; margin: 0 3px; vertical-align: -2px; color: var(--gold); }

/* Entrances: the first screen settles in (CSS only, so it never waits on a script). */
@media (prefers-reduced-motion: no-preference) {
  .intro { animation: intro .9s var(--ease) both; animation-delay: var(--t, 0ms); }
}
@keyframes intro { from { opacity: 0; transform: translate3d(0, 22px, 0); } to { opacity: 1; transform: none; } }

/* Reveal on scroll (added by legal.js only for content below the fold). */
.rv-pre { opacity: 0; transform: translate3d(0, 24px, 0); }
.rv-in { transition: opacity .7s var(--ease), transform .8s var(--ease); transition-delay: calc(var(--d, 0) * 80ms); }
@media print { .rv-pre { opacity: 1 !important; transform: none !important; } }

/* ------------------------------------------------------------ legal pages */
.legal {
  flex: 1 0 auto; width: 100%; max-width: var(--max); margin: 0 auto;
  padding: 40px var(--gutter) 104px;
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 48px;
}
@media (min-width: 768px) { .legal { padding-top: 64px; } }
@media (min-width: 1080px) {
  .legal { grid-template-columns: minmax(0, 720px) 240px; justify-content: center; column-gap: 72px; padding-top: 76px; }
  .toc-rail { grid-column: 2; grid-row: 1; }
  .doc { grid-column: 1; grid-row: 1; }
}
.doc { min-width: 0; width: 100%; max-width: 720px; margin: 0 auto; }
.doc:focus { outline: none; }
.doc-eyebrow { margin-bottom: 20px; }
.doc main { display: block; }
.doc main > header { padding: 0; }
.doc h1 {
  margin: 0 0 20px; color: #fff;
  font: 700 clamp(46px, 7.6vw, 80px)/1 var(--display); letter-spacing: -.008em;
  text-shadow: 0 6px 40px rgba(40, 0, 60, .45), 0 0 34px rgba(255, 170, 110, .18);
  text-wrap: balance;
}
.doc .meta {
  display: inline-flex; align-items: center; gap: 9px; margin: 0; max-width: 100%;
  padding: 7px 15px; border-radius: 999px;
  background: rgba(20, 8, 50, .5); border: 1px solid var(--hair-2);
  color: var(--ink-3); font: 500 13px/1.45 var(--mono);
}
@media (max-width: 519px) { .doc .meta { border-radius: 16px; padding: 7px 14px; font: 500 13.5px/1.45 var(--body); } }
.doc .meta::before { content: ""; width: 7px; height: 7px; flex: none; border-radius: 50%; background: var(--gold); box-shadow: 0 0 10px var(--gold); }
@media (prefers-reduced-motion: no-preference) {
  .doc-eyebrow, .doc main > header h1, .doc main > header .meta { animation: intro .9s var(--ease) both; }
  .doc main > header h1 { animation-delay: 90ms; }
  .doc main > header .meta { animation-delay: 200ms; }
}
.doc .lede {
  position: relative; overflow: hidden; margin: 36px 0 8px; padding: 26px 28px; border-radius: 26px;
  border: 1px solid rgba(255, 224, 138, .55);
  background: linear-gradient(160deg, rgba(255, 150, 100, .22), rgba(194, 48, 122, .2) 45%, rgba(36, 14, 76, .82));
  box-shadow: 0 0 0 1px rgba(255, 224, 138, .1), 0 40px 90px -46px rgba(255, 120, 120, .55);
}
.doc .lede::before {
  content: ""; position: absolute; right: -24%; top: -70%; width: 62%; aspect-ratio: 1; border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 224, 138, .24), transparent 65%); pointer-events: none;
}
.doc .lede p { position: relative; margin: 0; color: #fff; font-size: 18.5px; line-height: 1.62; }
@media (max-width: 519px) { .doc .lede { padding: 20px 20px 22px; border-radius: 22px; } .doc .lede p { font-size: 17.5px; line-height: 1.6; } }
.doc .lede strong { color: #fff; font-weight: 700; }
.doc h2 {
  position: relative; margin: 72px 0 16px; padding-left: 38px; color: #fff;
  font: 600 clamp(25px, 2.8vw, 31px)/1.2 var(--display); letter-spacing: 0; text-wrap: balance;
}
/* A small gold star before every section, like the stars over the home page. */
.doc h2::before {
  content: ""; position: absolute; left: 0; top: .12em; width: 24px; height: 24px;
  background: var(--gold); filter: drop-shadow(0 0 8px rgba(255, 200, 110, .75));
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5c.5 4.6 2.9 7 7.5 7.5-4.6.5-7 2.9-7.5 7.5-.5-4.6-2.9-7-7.5-7.5 4.6-.5 7-2.9 7.5-7.5z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5c.5 4.6 2.9 7 7.5 7.5-4.6.5-7 2.9-7.5 7.5-.5-4.6-2.9-7-7.5-7.5 4.6-.5 7-2.9 7.5-7.5z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.doc h3 { margin: 32px 0 8px; color: #fff; font: 600 20px/1.3 var(--display); }
.doc p, .doc li { color: var(--ink-2); max-width: 68ch; }
.doc p { margin: 0 0 18px; }
.doc strong { color: #fff; font-weight: 600; }
.doc em { color: #fff; font-style: italic; }
.doc ul, .doc ol { padding-left: 1.3em; margin: 0 0 18px; }
.doc li { margin: 12px 0; padding-left: .25em; }
.doc li::marker { color: var(--gold); }
.doc li ul { margin: 10px 0 12px; }
.doc a { overflow-wrap: anywhere; }
.doc code {
  font: .86em/1 var(--mono); padding: 2px 7px; border-radius: 7px;
  background: rgba(255, 255, 255, .08); border: 1px solid var(--hair-2); color: #fff;
}
.doc .wrap {
  margin: 24px 0; overflow-x: auto; -webkit-overflow-scrolling: touch;
  border: 1px solid var(--hair-2); border-radius: 22px; background: var(--card-2);
  box-shadow: 0 30px 70px -44px rgba(0, 0, 0, .9);
}
.doc table { width: 100%; border-collapse: collapse; font-size: 15.5px; line-height: 1.55; }
.doc th {
  padding: 15px 18px; text-align: left; vertical-align: bottom;
  background: rgba(255, 224, 138, .08); border-bottom: 1px solid var(--hair-2);
  color: var(--gold); font: 600 14px/1.3 var(--display); letter-spacing: .03em;
}
.doc td { padding: 15px 18px; vertical-align: top; color: var(--ink-2); border-top: 1px solid var(--hair); }
.doc tr:first-child td { border-top: 0; }
.doc td:first-child { color: #fff; }
@media (max-width: 520px) {
  .doc table { font-size: 15px; }
  .doc th, .doc td { padding-left: 14px; padding-right: 14px; }
}
.doc main > footer { margin-top: 72px; padding-top: 24px; border-top: 1px solid var(--hair); }
.doc main > footer p { font-size: 15px; color: var(--ink-4); }

/* On this page: a rail on wide screens, a fold-out list otherwise. */
.toc-rail { display: none; }
@media (min-width: 1080px) { .toc-rail { display: block; } }
.toc-inner { position: sticky; top: calc(var(--header-h) + 36px); }
.toc-title { margin: 0 0 14px; color: var(--gold); font: 600 15px/1 var(--display); letter-spacing: .02em; }
.toc-list { list-style: none; margin: 0; padding: 0 0 0 18px; border-left: 1px solid var(--hair-2); }
.toc-list li { margin: 0; }
.toc-list a {
  display: block; padding: 6px 0; color: var(--ink-4); font-size: 14.5px; line-height: 1.35; text-decoration: none;
  transition: color .25s, transform .35s var(--ease);
}
.toc-list a:hover { color: #fff; }
.toc-list a.is-active { color: #fff; transform: translateX(3px); }
.toc-marker {
  position: absolute; left: -1px; top: 0; width: 3px; height: 28px; border-radius: 3px;
  background: linear-gradient(var(--gold), var(--coral)); box-shadow: 0 0 12px rgba(255, 190, 90, .8);
  opacity: 0; transform: translateY(0);
  transition: transform .5s var(--ease), height .5s var(--ease), opacity .3s;
}
.toc-inline { margin: 28px 0 0; border-radius: 18px; border: 1px solid var(--hair-2); background: var(--card); }
@media (min-width: 1080px) { .toc-inline { display: none; } }
.toc-inline summary {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-height: 54px; padding: 0 18px; cursor: pointer; list-style: none; border-radius: 18px;
  color: #fff; font: 600 16px/1.2 var(--display);
}
.toc-inline summary::-webkit-details-marker { display: none; }
.toc-inline summary svg { color: var(--gold); transition: transform .35s var(--ease); }
.toc-inline[open] summary svg { transform: rotate(180deg); }
.toc-inline ol { margin: 0; padding: 0 18px 16px 42px; }
.toc-inline li { margin: 7px 0; color: var(--ink-4); max-width: none; }
.toc-inline li::marker { color: var(--gold); font: 500 13px var(--mono); }
.toc-inline a { color: var(--ink-2); text-decoration: none; font-size: 15.5px; }
.toc-inline a:hover { color: var(--gold); }

/* ------------------------------------------------------------ footer (the home page's) */
.foot { position: relative; margin-top: auto; background: #12061F; padding: 46px 0 56px; color: var(--ink-4); font-size: 14px; line-height: 1.5; }
.foot::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 1px; background: linear-gradient(90deg, transparent, rgba(255, 179, 71, .45), rgba(255, 95, 162, .4), transparent); }
.foot__in { display: grid; gap: 26px; }
.foot__brand { display: inline-flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; justify-self: start; border-radius: 14px; }
.foot__brand:hover { color: inherit; }
.foot__brand img { display: block; width: 40px; height: 40px; border-radius: 22.37%; }
.foot__brand p, .foot__brand span.foot__words { display: flex; flex-direction: column; gap: 3px; margin: 0; }
.foot__brand b { color: #fff; font: 700 19px/1 var(--display); }
.foot__brand small { color: var(--ink-3); font: 600 14px/1.2 var(--display); }
.foot__links { display: flex; flex-wrap: wrap; gap: 6px 8px; }
.foot__links a {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 13px; border-radius: 999px;
  border: 1px solid rgba(255, 236, 220, .16); color: #FFF4E6; text-decoration: none;
  font: 600 15px/1 var(--display); transition: border-color .2s, background-color .2s;
}
.foot__links a:hover { color: #fff; border-color: var(--gold); background: rgba(255, 224, 138, .1); }
.foot__links a[aria-current="page"] { border-color: var(--gold-edge); color: var(--gold); }
.foot__fine { display: grid; gap: 6px; }
.foot__fine p { margin: 0; }
.foot__fine a { color: var(--ink-3); }
.foot__fine a:hover { color: #fff; }
.foot__tm { font-size: 12.5px; opacity: .85; }
@media (min-width: 900px) {
  .foot__in { grid-template-columns: auto 1fr; align-items: center; gap: 30px 60px; }
  .foot__links { justify-content: flex-end; }
  .foot__fine { grid-column: 1 / -1; padding-top: 22px; border-top: 1px solid var(--hair); }
}

/* ------------------------------------------------------------ support: hero (golden hour) */
.page-support main { flex: 1 0 auto; }
.help-hero { position: relative; isolation: isolate; overflow: hidden; padding: 44px 0 56px; text-align: center; }
@media (min-width: 768px) { .help-hero { padding: 84px 0 72px; } }
/* The last of the sun behind the search: warm light low in the hero. */
.help-hero::before {
  content: ""; position: absolute; z-index: -1; left: 50%; top: 34%; width: min(1500px, 170vw); height: 66%;
  transform: translateX(-50%); pointer-events: none;
  background:
    radial-gradient(40% 46% at 50% 62%, rgba(255, 179, 71, .26), transparent 70%),
    radial-gradient(56% 60% at 50% 66%, rgba(255, 95, 162, .2), transparent 72%);
  -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent 96%);
  mask-image: linear-gradient(180deg, #000 55%, transparent 96%);
}
.help-hero .lead { margin: 0 auto; }
.help-hero .display { margin-top: 20px; }
.search-band { position: relative; margin-top: 40px; }
.search-band > .container { position: relative; z-index: 1; }
.hero-wave { position: absolute; left: 0; top: -48px; display: block; width: 100%; height: 160px; margin: 0; pointer-events: none; }
@media (min-width: 768px) { .hero-wave { top: -66px; height: 200px; } }
.search { position: relative; max-width: 660px; margin: 0 auto; text-align: left; }
.search-field { position: relative; }
.search-field svg { position: absolute; z-index: 1; left: 22px; top: 50%; margin-top: -11px; color: var(--gold); pointer-events: none; }
.search input {
  width: 100%; height: 62px; padding: 0 22px 0 56px; border-radius: 999px;
  border: 1px solid rgba(255, 224, 138, .38); background: rgba(26, 11, 60, .92); color: #fff;
  font: 400 17px/1 var(--body); -webkit-appearance: none; appearance: none;
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  box-shadow: 0 24px 60px -30px rgba(255, 120, 120, .55), inset 0 1px 0 rgba(255, 255, 255, .06);
  transition: border-color .25s, box-shadow .35s var(--ease);
}
.search input::placeholder { color: var(--ink-4); opacity: 1; }
.search input:focus-visible { outline: none; }
.search input:focus { border-color: var(--gold); box-shadow: 0 0 0 4px rgba(255, 224, 138, .22), 0 24px 60px -30px rgba(255, 120, 120, .6); }
.search input::-webkit-search-cancel-button { cursor: pointer; }
.search-status { min-height: 1.5em; margin: 12px 4px 0; text-align: center; color: var(--ink-3); font-size: 14px; }
.search-status a { font-weight: 600; }
.results {
  list-style: none; margin: 4px 0 0; padding: 8px; border-radius: 24px;
  background: rgba(30, 13, 66, .96); border: 1px solid var(--hair-2); box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .8);
}
.results li { margin: 0; }
.results a {
  display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 16px;
  color: #fff; text-decoration: none; font-weight: 500; line-height: 1.35;
  transition: background-color .15s;
  animation: result-in .35s var(--ease) both; animation-delay: calc(var(--d, 0) * 30ms);
}
.results a:hover, .results a:focus-visible { background: var(--gold-soft); outline-offset: -2px; }
.results .kind {
  flex: none; padding: 4px 10px; border-radius: 999px; border: 1px solid rgba(255, 224, 138, .35);
  color: var(--gold); font: 600 12px/1.2 var(--display); letter-spacing: .03em;
}
.results .go { margin-left: auto; flex: none; color: var(--gold); }
@keyframes result-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.jump-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px;
  max-width: 1080px; margin: 34px auto 0; padding: 0; list-style: none; text-align: left;
}
.jump-grid li { margin: 0; display: flex; }
.jump-grid li:last-child { grid-column: 1 / -1; }
@media (min-width: 860px) { .jump-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; } .jump-grid li:last-child { grid-column: auto; } }
.jump {
  flex: 1; display: grid; grid-template-columns: minmax(0, 1fr); align-content: start; gap: 4px;
  padding: 14px; border-radius: 22px; text-decoration: none; color: #fff;
  background: var(--card); border: 1px solid var(--hair);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  transition: transform .35s var(--ease), border-color .3s, background-color .3s, box-shadow .35s var(--ease);
}
.jump:hover { color: #fff; transform: translateY(-4px); border-color: var(--gold-edge); background: rgba(40, 16, 82, .7); box-shadow: 0 22px 44px -26px rgba(255, 150, 90, .7); }
.jump .well { margin-bottom: 10px; transition: transform .45s var(--ease); }
.jump:hover .well { transform: rotate(-8deg) scale(1.08); }
.jump b { font: 600 16px/1.25 var(--display); overflow-wrap: anywhere; }
.jump small { color: var(--ink-3); font-size: 13.5px; line-height: 1.35; }
@media (min-width: 860px) { .jump { padding: 18px; } }
/* Icon wells: the gold play button's gradient with violet glyphs. */
.well {
  display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; flex: none;
  color: var(--violet); background: var(--gold-btn);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .45), 0 8px 20px -8px rgba(255, 140, 80, .75);
}
.well svg { width: 22px; height: 22px; }

/* ------------------------------------------------------------ support: sections */
.section { position: relative; padding: 64px 0; }
@media (min-width: 768px) { .section { padding: 96px 0; } }
.section + .section::before {
  content: ""; position: absolute; left: 50%; top: 0; width: min(560px, 70%); height: 1px; transform: translateX(-50%);
  background: linear-gradient(90deg, transparent, rgba(255, 224, 138, .35), transparent);
}
.section-head { max-width: 800px; margin: 0 0 44px; }
.section-head p:not(.eyebrow) { margin: 0; color: var(--ink-3); font: 600 clamp(17px, 1.6vw, 20px)/1.45 var(--display); text-wrap: pretty; }

/* Getting started: three steps, each with a phone in the home page's copper frame. */
.steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 64px; counter-reset: none; }
@media (min-width: 900px) { .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; } }
.step { display: grid; gap: 28px; align-content: start; }
.shot { position: relative; width: min(100%, 262px); margin: 0 auto; }
@media (min-width: 900px) { .shot { width: min(100%, 282px); } }
.shot::before {
  content: ""; position: absolute; left: -22%; right: -22%; top: 10%; bottom: 6%; z-index: -1;
  background: radial-gradient(closest-side, rgba(255, 150, 100, .3), rgba(194, 48, 122, .14) 55%, transparent);
}
.phone {
  position: relative; padding: 9px; border-radius: 44px;
  background: linear-gradient(140deg, #FFC48A 0%, #F59A4A 14%, #E0702A 38%, #B9531C 52%, #E57A33 70%, #FFB774 88%, #F08A3A 100%);
  box-shadow:
    inset 0 0 0 1.5px rgba(255, 228, 196, .75),
    inset 0 0 0 3.5px rgba(120, 40, 10, .35),
    0 50px 90px -30px rgba(20, 0, 40, .75),
    0 18px 40px -16px rgba(60, 0, 40, .6);
  transition: transform .7s var(--ease);
}
.step:hover .phone { transform: translateY(-6px) rotate(-1.2deg); }
.phone img { display: block; width: 100%; height: auto; aspect-ratio: 450 / 978; border-radius: 36px; background: #0B1D31; box-shadow: 0 0 0 3.5px #0A0610; }
.step-num {
  display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 50%;
  color: var(--violet); background: var(--gold-btn); font: 700 18px/1 var(--display);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .45), 0 0 0 6px rgba(255, 224, 138, .12), 0 10px 24px -8px rgba(255, 140, 80, .75);
}
.step h3 { margin: 16px 0 10px; color: #fff; font: 700 26px/1.2 var(--display); }
.step p { margin: 0 0 12px; color: var(--ink-2); }
.step .note { font-size: 15px; color: var(--ink-3); }

/* Questions */
.faq-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 16px; margin: -16px 0 32px; }
.faq-tools .btn { min-height: 44px; padding: 0 18px; font-size: 15px; }
.faq-cols { display: grid; gap: 40px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1000px) { .faq-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; align-items: start; } }
.faq-col { display: grid; gap: 40px; }
.group-head { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; color: #fff; font: 700 22px/1.25 var(--display); }
.group-head .well { width: 36px; height: 36px; }
.group-head .well svg { width: 19px; height: 19px; }
.qa-list { border-radius: 24px; background: var(--card); border: 1px solid var(--hair); box-shadow: 0 30px 70px -48px rgba(0, 0, 0, .9); }
.qa { position: relative; }
.qa + .qa { border-top: 1px solid var(--hair); }
.qa:first-child summary { border-radius: 24px 24px 0 0; }
.qa:last-child:not([open]) summary { border-radius: 0 0 24px 24px; }
.qa:only-child:not([open]) summary { border-radius: 24px; }
.qa summary {
  display: flex; align-items: center; gap: 14px; min-height: 62px; padding: 16px 18px 16px 22px;
  cursor: pointer; list-style: none; color: #fff;
  font: 600 17.5px/1.35 var(--display); letter-spacing: .005em;
  transition: background-color .2s, color .2s;
}
.qa summary::-webkit-details-marker { display: none; }
.qa summary:hover { color: var(--gold); background: rgba(255, 224, 138, .05); }
.qa summary:focus-visible { outline-offset: -3px; border-radius: 16px; }
.chev {
  margin-left: auto; flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%;
  background: rgba(255, 224, 138, .14); color: var(--gold);
  transition: transform .45s var(--ease), background-color .3s, color .3s;
}
.qa[open]:not(.is-closing) .chev { transform: rotate(180deg); color: var(--violet); background: var(--gold-btn); }
.qa[open]::before {
  content: ""; position: absolute; left: 0; top: 18px; bottom: 18px; width: 3px; border-radius: 0 3px 3px 0;
  background: linear-gradient(var(--gold), var(--coral)); box-shadow: 0 0 10px rgba(255, 190, 90, .7);
}
.qa.is-closing::before { opacity: 0; transition: opacity .2s; }
.qa.is-anim .a { overflow: hidden; }
.a-in { padding: 0 22px 22px; color: var(--ink-2); font-size: 16px; line-height: 1.62; }
.a-in p { margin: 0 0 12px; }
.a-in p:last-child { margin-bottom: 0; }
.a-in ul { margin: 0 0 12px; padding-left: 1.2em; }
.a-in li { margin: 6px 0; }
.a-in li::marker { color: var(--gold); }
.a-in strong { color: #fff; font-weight: 600; }
.a-in em { font-style: italic; }
.is-flash { animation: flash 1.8s var(--ease); }
@keyframes flash { 0%, 30% { box-shadow: inset 0 0 0 2px var(--gold), 0 0 34px -6px rgba(255, 190, 90, .9); } 100% { box-shadow: inset 0 0 0 2px transparent, 0 0 34px -6px transparent; } }

/* Troubleshooting */
.tgroups { display: grid; gap: 52px; }
.tcards { columns: 1; column-gap: 14px; }
@media (min-width: 720px) { .tcards { columns: 2; } }
@media (min-width: 1140px) { .tcards { columns: 3; } }
.tcard {
  display: block; position: relative; margin: 0 0 14px; break-inside: avoid; -webkit-column-break-inside: avoid;
  padding: 22px 22px 20px; border-radius: 24px;
  background: var(--card); border: 1px solid var(--hair);
  transition: border-color .3s, background-color .3s;
}
.tcard:hover { border-color: rgba(255, 224, 138, .4); background: rgba(34, 15, 74, .66); }
.tcard h4 { margin: 0 0 12px; color: #fff; font: 600 18.5px/1.3 var(--display); }
.tcard p { margin: 0 0 10px; color: var(--ink-2); font-size: 16px; line-height: 1.6; }
.tcard p:last-child { margin-bottom: 0; }
.tcard ul { margin: 0 0 10px; padding-left: 1.15em; color: var(--ink-2); font-size: 16px; }
.tcard li { margin: 6px 0; }
.tcard li::marker { color: var(--gold); }
.tcard em { font-style: italic; }
/* What the app says, as a little speech bubble. */
.says {
  position: relative; margin: 0 0 16px; padding: 8px 14px 11px; border-radius: 16px 16px 16px 6px;
  background: rgba(255, 224, 138, .08); border: 1px solid rgba(255, 224, 138, .28);
}
.says small { display: block; margin: 0 0 1px; color: var(--gold); font: 700 19px/1.2 var(--hand); }
.says q { quotes: none; color: #fff; font-size: 15px; line-height: 1.5; }
.says q + q { display: block; margin-top: 4px; }

/* Plans: the home page's two cards. */
.plans { display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 860px) { .plans { grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); gap: 20px; } }
.plan { position: relative; overflow: hidden; padding: 30px 28px 32px; border-radius: 30px; background: rgba(26, 14, 66, .6); border: 1px solid var(--hair); box-shadow: 0 40px 80px -50px rgba(0, 0, 0, .9); }
.plan.pro {
  background: linear-gradient(160deg, rgba(255, 150, 100, .3), rgba(194, 48, 122, .28) 45%, rgba(43, 16, 85, .75));
  border-color: rgba(255, 224, 138, .55);
  box-shadow: 0 0 0 1px rgba(255, 224, 138, .14), 0 40px 100px -40px rgba(255, 120, 120, .45);
}
.plan.pro::before { content: ""; position: absolute; right: -30%; top: -55%; width: 80%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(255, 224, 138, .36), transparent 65%); pointer-events: none; }
.plan > * { position: relative; }
.plan h3 { margin: 0 0 6px; color: #fff; font: 700 26px/1.15 var(--display); }
.plan .price { margin: 16px 0 6px; color: #fff; font: 700 clamp(44px, 5vw, 58px)/1 var(--display); letter-spacing: -.01em; }
.plan .price small { color: var(--ink-3); font: 600 17px/1.3 var(--display); letter-spacing: 0; }
.plan .sub { margin: 0 0 20px; color: var(--gold); font: 600 15px/1.35 var(--display); text-wrap: pretty; }
.ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.ticks li { display: flex; gap: 12px; align-items: flex-start; color: var(--ink-2); font-size: 16px; line-height: 1.5; }
.ticks li svg { flex: none; width: 22px; height: 22px; padding: 3px; margin-top: 1px; border-radius: 50%; background: rgba(255, 224, 138, .2); color: var(--gold); }
.plan.pro .ticks li svg { background: var(--gold); color: var(--violet); }
.ticks strong { color: #fff; font-weight: 600; }
.ticks em { font-style: italic; }
.fine { margin: 24px 0 0; max-width: 76ch; color: var(--ink-4); font-size: 14px; line-height: 1.6; }
/* Local amounts ("KZT 12,990.00") never break or leave their card; assets/shared/prices.js shrinks one that would. */
.plan .price [data-price] { display: inline-block; min-width: 0; max-width: 100%; white-space: nowrap; vertical-align: baseline; }
/* Amount and unit share a baseline, a space apart (.225em). The unit ("a month") stays whole: when a long
   amount leaves no room, all of it moves to the next line, just under the amount. */
.plan .price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px .225em; }
.plan .price small { white-space: nowrap; }
/* Price country: whose App Store prices are shown (assets/shared/prices.js guesses it on the device).
   The real <select> lies invisibly over the visible name, so it stays native for touch, keyboard and screen readers. */
.pricepick { display: flex; align-items: center; gap: 10px; width: fit-content; max-width: 100%; margin: -18px 0 22px; padding: 3px 3px 3px 14px; border-radius: 999px; background: var(--card); border: 1px solid var(--hair); color: var(--ink-3); font: 600 15px/1.2 var(--display); }
.pricepick > svg { flex: none; width: 18px; height: 18px; color: var(--gold); }
.pricepick__label { flex: none; cursor: pointer; }
.pricepick__field { position: relative; display: inline-flex; align-items: center; gap: 6px; min-width: 0; min-height: 44px; padding: 7px 12px 7px 14px; border-radius: 999px; background: var(--gold-soft); border: 1px solid var(--gold-edge); color: #fff; transition: background-color .2s, border-color .2s; }
.pricepick__field:hover { background: rgba(255, 224, 138, .2); border-color: var(--gold); }
.pricepick__value { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pricepick__chev { flex: none; width: 16px; height: 16px; color: var(--gold); }
.pricepick__select { position: absolute; inset: -1px; width: calc(100% + 2px); height: calc(100% + 2px); margin: 0; padding: 0 12px; border: 0; border-radius: inherit; opacity: 0; cursor: pointer; font: 16px/1.2 var(--body); color: #fff; background: #241455; -webkit-appearance: none; appearance: none; }
.pricepick__select option { color: #fff; background: #241455; }
.pricepick__field:has(.pricepick__select:focus-visible) { outline: 3px solid var(--gold); outline-offset: 3px; }
@supports not selector(:has(*)) { .pricepick__field:focus-within { outline: 3px solid var(--gold); outline-offset: 3px; } }
@media (max-width: 359px) { .pricepick > svg { display: none; } .pricepick { padding-left: 12px; } }
@media (prefers-reduced-motion: reduce) { .pricepick__field { transition: none; } }
.actions { display: grid; gap: 14px; margin-top: 40px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 860px) { .actions { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.action { display: grid; gap: 12px; align-content: start; padding: 24px; border-radius: 24px; background: var(--card); border: 1px solid var(--hair); }
.action h3 { margin: 0; display: flex; align-items: center; gap: 12px; color: #fff; font: 700 20px/1.3 var(--display); }
.action h3 .well { width: 36px; height: 36px; }
.action h3 .well svg { width: 19px; height: 19px; }
.action p { margin: 0; color: var(--ink-2); font-size: 16px; }
.action .or { color: var(--ink-3); font-size: 14.5px; }
.ext { font-weight: 600; }
.ext svg { display: inline-block; margin-left: 4px; vertical-align: -2px; }

/* Where to find it */
.paths-table { margin: 0; border-radius: 24px; background: var(--card); border: 1px solid var(--hair); overflow: hidden; }
.prow { display: grid; gap: 10px; padding: 16px 20px; transition: background-color .2s; }
.prow + .prow { border-top: 1px solid var(--hair); }
@media (min-width: 768px) { .prow { grid-template-columns: minmax(0, .85fr) minmax(0, 1.5fr); align-items: center; gap: 24px; padding: 16px 26px; } }
.prow dt { color: #fff; font: 600 16.5px/1.35 var(--display); }
.prow dd { margin: 0; color: var(--ink-3); font-size: 15px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.prow:hover { background: rgba(255, 224, 138, .05); }

/* Contact: first light (the home page's sunrise, in a card). */
.contact-card {
  position: relative; overflow: hidden; isolation: isolate; display: grid; gap: 40px; padding: clamp(26px, 5vw, 60px);
  border-radius: 34px; border: 1px solid rgba(255, 224, 138, .5);
  background: linear-gradient(165deg, rgba(43, 16, 85, .92) 0%, rgba(70, 20, 108, .86) 46%, rgba(122, 32, 104, .74) 100%);
  box-shadow: 0 0 0 1px rgba(255, 224, 138, .12), 0 50px 120px -50px rgba(255, 120, 120, .55);
}
.contact-card::before {
  content: ""; position: absolute; z-index: -1; left: 50%; bottom: -46%; width: min(760px, 120%); aspect-ratio: 1; transform: translateX(-50%); border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 179, 71, .26) 0%, rgba(255, 95, 162, .12) 38%, transparent 66%);
  pointer-events: none;
}
@media (min-width: 960px) { .contact-card { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 56px; } .contact-card::before { left: 30%; bottom: -70%; } }
.contact-card .h2 { margin-top: 16px; }
.contact-card .lead { color: var(--ink-2); }
.contact-email { margin: 20px 0 24px; color: var(--ink-2); font-size: 16px; line-height: 1.55; }
.contact-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.copy .when-done { display: none; }
.copy.is-done .when-done { display: inline; }
.copy.is-done .when-idle { display: none; }
.copy.is-done { border-color: var(--gold); color: #fff; }
.contact-note { margin: 22px 0 0; max-width: 46ch; color: var(--ink-2); font-size: 15px; }
.include { padding: 26px; border-radius: 26px; background: rgba(20, 8, 50, .5); border: 1px solid var(--hair-2); }
.include h3 { margin: 0 0 16px; color: #fff; font: 700 20px/1.3 var(--display); }
.include ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.include li { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 12px; color: var(--ink-2); font-size: 16px; line-height: 1.5; }
.include li strong { color: #fff; font-weight: 600; }
.include li .tick { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--gold); color: var(--violet); }
.include li .tick svg { width: 15px; height: 15px; }
.include .hint { display: block; color: var(--ink-3); font-size: 14px; }

/* ------------------------------------------------------------ 404 */
.page-404 main { flex: 1 0 auto; display: grid; place-items: center; padding: 20px var(--gutter) 88px; text-align: center; }
.nf { position: relative; max-width: 780px; }
.nf-stage { position: relative; width: min(100%, 520px); margin: 0 auto -4px; }
.nf-art { display: block; width: 100%; height: auto; overflow: visible; }
/* A handwritten note, like the one on the home page's phone. */
.nf-note {
  position: absolute; right: -2%; top: 4%; margin: 0; padding: 10px 16px 12px; border-radius: 12px;
  background: linear-gradient(170deg, #FFF6D8, #FFE7A6); color: var(--note-ink);
  font: 700 clamp(21px, 3.4vw, 27px)/1.05 var(--hand); text-align: left;
  transform: rotate(5deg); box-shadow: 0 16px 30px -12px rgba(10, 0, 30, .7), 0 0 0 1px rgba(255, 255, 255, .5) inset;
}
@media (max-width: 479px) { .nf-note { right: 0; top: -2%; padding: 8px 12px 10px; } }
@media (prefers-reduced-motion: no-preference) {
  .nf-note { animation: note-in 1s var(--ease) .5s both; }
}
@keyframes note-in { from { opacity: 0; transform: translateY(14px) rotate(-4deg) scale(.9); } to { opacity: 1; transform: rotate(5deg); } }
.nf .eyebrow { margin-top: 6px; }
.nf .display { font-size: clamp(42px, 7.2vw, 80px); margin: 18px 0 18px; }
.nf .lead { margin: 0 auto; max-width: 32em; }
.nf-path {
  display: inline-block; max-width: 100%; margin: 22px 0 0; padding: 6px 14px; border-radius: 999px;
  background: rgba(20, 8, 50, .5); border: 1px solid var(--hair-2);
  color: var(--ink-3); font: 13px/1.5 var(--mono); overflow-wrap: anywhere;
}
/* Until legal.js writes the path in, the pill keeps its one line of room, unseen. */
.nf-path:empty { visibility: hidden; }
.nf-path:empty::before { content: "\00a0"; }
.nf-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 30px; }
.nf-status { min-height: 1.6em; margin: 18px 0 0; color: var(--ink-3); font: 600 16px/1.4 var(--display); }

/* The broken wave (the app's error motif), in the evening's gold. */
.bw .doc-card { fill: rgba(30, 12, 70, .88); stroke: rgba(255, 230, 210, .3); stroke-width: 2; }
.bw .doc-fold { fill: #4A1C7E; }
.bw .doc-ink { stroke: #FFF1E2; stroke-opacity: .28; stroke-width: 6; stroke-linecap: round; }
.bw .s1 { stop-color: #FF5FA2; }
.bw .s2 { stop-color: #FFE08A; }
.bw .s3 { stop-color: #FF8F5E; }
.bw .seg { fill: none; stroke-linecap: round; }
.bw .seg-glow { stroke-width: 26; opacity: .38; }
.bw .seg-line { stroke-width: 12; }
.bw .seg-core { stroke: #fff; stroke-opacity: .5; stroke-width: 3.5; }
.bw .left .seg { stroke-dasharray: 435 3000; }
.bw .right .seg { stroke-dasharray: 435 3000; stroke-dashoffset: -565; }
.bw .fall { transform-origin: var(--px) var(--py); transform: translate(7px, 28px) rotate(8deg); opacity: .45; }
.bw .head { opacity: 1; transform-origin: var(--hx) var(--hy); }
.bw .head-dot { fill: var(--gold); }
.bw .spark { stroke: var(--coral); stroke-width: 4.5; stroke-linecap: round; opacity: .95; transform-origin: var(--gx) var(--gy); }
/* Breaking: the gap opens fast, the fallen half drops with a little overshoot, sparks pop. */
.bw .seg { transition: stroke-dasharray .32s var(--turn), stroke-dashoffset .32s var(--turn); }
.bw .fall { transition: transform .9s cubic-bezier(.3, 1.45, .5, 1) .06s, opacity .9s var(--ease) .06s; }
.bw .head { transition: opacity .3s var(--ease) .2s, transform .5s var(--ease) .2s; }
.bw .spark { transition: opacity .25s var(--ease) .18s, transform .5s var(--ease) .18s; }
/* Whole: the wave mends (gap closed, fallen half lifted, sparks gone). */
.bw.is-whole .left .seg { stroke-dasharray: 500 3000; }
.bw.is-whole .right .seg { stroke-dasharray: 500 3000; stroke-dashoffset: -500; }
.bw.is-whole .fall { transform: none; opacity: 1; }
.bw.is-whole .head { opacity: 0; transform: scale(.3); }
.bw.is-whole .spark { opacity: 0; transform: scale(.4); }
.bw.is-whole .seg { transition: stroke-dasharray .7s var(--turn) .25s, stroke-dashoffset .7s var(--turn) .25s; }
.bw.is-whole .fall { transition: transform .7s var(--ease), opacity .7s var(--ease); }
.bw.is-whole .head, .bw.is-whole .spark { transition: opacity .2s, transform .2s; }
@media (prefers-reduced-motion: no-preference) {
  .bw:not(.is-whole) .head-glow { animation: head-pulse 2.6s ease-in-out 1.2s infinite; transform-origin: var(--hx) var(--hy); }
}
@keyframes head-pulse { 0%, 100% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.45); opacity: .45; } }

/* ------------------------------------------------------------ motion preferences */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
  .bw *, .bw.is-whole * { transition: none !important; animation: none !important; }
  .rv-pre { opacity: 1; transform: none; }
  .results a { animation: none; }
  .brand:hover img, .step:hover .phone, .jump:hover, .jump:hover .well, .btn:hover { transform: none; }
}
