/* VT Cooper reports a 1.675 em line box (very tall ascent), so tight headlines overlapped when
   selected. The overrides give it a 1.16 em box that matches its real glyphs. */
@font-face{font-family:'VT Cooper';font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/vt-cooper-black.ttf) format('truetype');ascent-override:92%;descent-override:24%;line-gap-override:0%}
@font-face{font-family:'Bricolage Grotesque';font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/bricolage-400.ttf) format('truetype')}
@font-face{font-family:'Bricolage Grotesque';font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/bricolage-700.ttf) format('truetype')}

/* Shared with Visual Tuner (VisualTuner/website/public/styles.css): keep the two in step. Metronome additions are at the end. */
:root{
  --cream:#FFF0CE;--cream-2:#FFF5DD;--sand:#F5E4C0;--line:#D9C6A4;
  --tomato:#F04B36;--tomato-deep:#B53120;--plum:#472B70;--ink:#251E1C;--muted:#7A5F4B;
  --display:'VT Cooper',Georgia,serif;--body:'Bricolage Grotesque',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font:400 17px/1.55 var(--body);-webkit-font-smoothing:antialiased}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:700;margin:0}
.eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 14px}

.top{max-width:1180px;margin:auto;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.wordmark{font:700 28px var(--display);color:var(--tomato);text-decoration:none;letter-spacing:-.03em}
.top nav{display:flex;gap:22px;font-size:15px}
.top nav a{text-decoration:none;color:var(--muted)}
.top nav a:hover{color:var(--tomato-deep)}

main{max-width:1180px;margin:auto;padding:0 24px}
section{padding:72px 0;border-top:1px solid var(--line)}
section:first-child{border-top:0}

.hero{display:grid;grid-template-columns:1fr 1.05fr;gap:48px;align-items:center;padding-top:36px}
h1{font-size:clamp(44px,6.2vw,80px);line-height:1.12;letter-spacing:-.035em}
.lede{font-size:19px;color:#4A3A31;max-width:30em;margin:22px 0 30px}
.cta{font:700 15px var(--body);color:var(--cream);background:var(--tomato-deep);border:0;border-radius:999px;padding:14px 24px;text-decoration:none;cursor:pointer;display:inline-flex;gap:12px;align-items:center}
.cta:hover{background:#972718}
:focus-visible{outline:3px solid var(--plum);outline-offset:4px}

.phone{margin:0 auto;width:min(340px,80vw);padding:10px;border-radius:54px;background:var(--ink);box-shadow:18px 22px 0 var(--plum)}

h2{font-size:clamp(32px,4vw,52px);line-height:1.12;letter-spacing:-.03em;max-width:16em}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:40px}
.facts article{border-top:3px solid var(--plum);padding-top:18px}
.big{display:block;font:700 56px/1 var(--display);color:var(--tomato);letter-spacing:-.03em;margin-bottom:12px}
h3{font-size:22px;letter-spacing:-.01em;margin-bottom:6px}
.facts p{margin:0;color:#4A3A31}

.section-head{display:grid;grid-template-columns:1fr 1fr;gap:12px 48px;align-items:end}
.section-head .eyebrow{grid-column:1/-1}
.section-head>p:last-child{margin:0;color:var(--muted)}
.tier{margin:56px 0 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;border-top:3px solid var(--plum);padding-top:16px}
.tier-name{font-size:28px;margin:0;display:flex;align-items:baseline;gap:12px}
.tier p{margin:0;color:var(--muted)}
.price{font:700 14px var(--body);color:var(--cream);background:var(--tomato-deep);border-radius:999px;padding:4px 12px;letter-spacing:.02em}
.gallery{list-style:none;padding:0;margin:28px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:28px 22px}
.gallery figure{margin:0}
.gallery video{display:block;width:100%;height:auto;aspect-ratio:540/980;object-fit:cover;border-radius:24px;background:var(--ink);box-shadow:8px 9px 0 var(--plum)}
.gallery figcaption{padding:16px 4px 0}
.gallery h3{margin-bottom:4px}
.gallery p{margin:0;color:#4A3A31;font-size:15px}

.get{text-align:center}
.get h2{margin:0 auto 12px;color:var(--tomato)}
.get>p{color:var(--muted);margin:0 0 32px}
.stores{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.store{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:200px;padding:14px 22px;border-radius:14px;background:var(--ink);color:var(--cream);font:700 18px var(--body);opacity:.85}
.store small{font-weight:400;font-size:12px;opacity:.75}

footer{max-width:1180px;margin:auto;padding:28px 24px 40px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;font-size:13px;color:var(--muted)}

@media (max-width:900px){
  .hero,.section-head{grid-template-columns:1fr}
  .hero{gap:32px}
  .facts{grid-template-columns:1fr}
}
@media (max-width:560px){
  body{font-size:16px}
  .top{padding:18px 16px}.wordmark{font-size:24px}
  .top nav{gap:14px;font-size:14px}
  main{padding:0 16px}
  section{padding:52px 0}
  .gallery{grid-template-columns:1fr 1fr;gap:22px 14px}
  .gallery video{border-radius:18px;box-shadow:5px 6px 0 var(--plum)}
  .gallery h3{font-size:18px;line-height:1.15}
  .gallery p{font-size:14px}
  .phone{border-radius:46px;box-shadow:12px 14px 0 var(--plum)}
  .store{min-width:0;width:100%}
  .stores li{width:100%}
  footer{flex-direction:column;padding:24px 16px 32px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Hero: premium scenes crossfading inside the phone. */
.hero-show{margin:0}
.phone .screen{position:relative;aspect-ratio:540/980;border-radius:44px;overflow:hidden;background:var(--ink)}
.phone video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s ease}
.phone video.on{opacity:1}
.hero-show figcaption{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:30px}
.hero-scene{font:700 20px var(--display);letter-spacing:-.01em;color:var(--ink)}
.dots{display:flex;gap:4px}
.dots button{width:28px;height:28px;padding:0;border:0;background:none;cursor:pointer;display:grid;place-items:center}
.dots button::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--line);transition:background .3s,transform .3s}
.dots button[aria-current="true"]::before{background:var(--tomato);transform:scale(1.25)}
.dots button:focus-visible{outline:2px solid var(--plum);outline-offset:2px;border-radius:50%}
@media (max-width:560px){.phone .screen{border-radius:37px}}
@media (prefers-reduced-motion:reduce){.phone video{transition:none}}
.top .wordmark,.top nav a{white-space:nowrap}
@media (max-width:560px){.top nav a[href="#teachers"],.top nav a[href="#pros"]{display:none}}
/* The clips show the top of the screen only, so the phone runs off the bottom and fades away. */
.phone-wrap{padding:0 24px 0 0;margin-right:-24px;-webkit-mask-image:linear-gradient(to bottom,#000 70%,transparent 97%);mask-image:linear-gradient(to bottom,#000 70%,transparent 97%)}
.hero-show .phone{padding-bottom:0;border-radius:54px 54px 0 0}
.hero-show .phone .screen{aspect-ratio:540/878;border-radius:44px 44px 0 0}
.hero-show figcaption{margin-top:6px}
@media (max-width:560px){.hero-show .phone{border-radius:46px 46px 0 0}.hero-show .phone .screen{border-radius:37px 37px 0 0}}
/* Pro features: a spec sheet. */
.specs{list-style:none;padding:0;margin:40px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:32px 28px}
.specs li{border-top:3px solid var(--plum);padding-top:16px}
.specs h3{font-size:22px;line-height:1.15;margin-bottom:8px}
.specs p{margin:0;color:#4A3A31;font-size:16px}
@media (max-width:900px){.specs{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.specs{grid-template-columns:1fr;gap:24px}}
/* Hero buttons. */
.ctas{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}
.cta-quiet{font:700 15px var(--body);color:var(--ink);text-decoration:none;border:2px solid var(--ink);border-radius:999px;padding:12px 22px;display:inline-flex;gap:10px;align-items:center}
.cta-quiet:hover{background:var(--ink);color:var(--cream)}
.cta-quiet:focus-visible,.cta:focus-visible{outline:3px solid var(--plum);outline-offset:3px}
/* Experts: a full-bleed dark band. box-shadow + clip-path bleed without horizontal scroll. */
.dark{--d-ink:#17110F;--d-text:#FFF0CE;--d-soft:rgba(255,240,206,.72);--d-rule:#6A4A9C;
  background:var(--d-ink);box-shadow:0 0 0 100vmax var(--d-ink);clip-path:inset(0 -100vmax);color:var(--d-text);border-top:0;padding:96px 0}
.dark .eyebrow{color:#F27A66}
.dark h2{color:var(--d-text)}
.dark h2 em{font-style:normal;color:var(--tomato)}
.dark .section-head>p:last-child,.dark .specs p{color:var(--d-soft)}
.dark .specs li{border-top-color:var(--d-rule)}
.dark .specs h3{color:var(--d-text)}
.dark + section{border-top:0}
/* Pro tools: screenshots beside their captions; two up under each other on phones. */
.shots{list-style:none;padding:0;margin:48px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:32px 40px}
.shots figure{margin:0;display:grid;grid-template-columns:minmax(0,240px) 1fr;gap:24px;align-items:center}
.shots img{display:block;width:100%;height:auto;border-radius:22px;background:#000;border:1px solid rgba(255,240,206,.14);box-shadow:8px 9px 0 var(--plum)}
.shots h3{color:var(--d-text);margin-bottom:8px}
.shots p{margin:0;color:var(--d-soft);font-size:16px}
@media (max-width:900px){.shots{grid-template-columns:1fr}.shots figure{grid-template-columns:minmax(0,220px) 1fr}}
@media (max-width:560px){.shots{grid-template-columns:1fr 1fr;gap:22px 14px}.shots figure{grid-template-columns:1fr;gap:0;align-items:start}.shots img{border-radius:16px;box-shadow:5px 6px 0 var(--plum)}.shots figcaption{padding:16px 4px 0}.shots h3{font-size:18px;line-height:1.15;margin-bottom:4px}.shots p{font-size:14px}}
@media (max-width:560px){.dark{padding:72px 0}}
@media (max-width:560px){.phone-wrap{padding-right:16px;margin-right:-16px}}
h1,h2{text-wrap:balance}
/* ---- Visual Metronome additions ---- */
/* Scene clips are the scene area only, so the gallery is square-ish. */
.gallery video{aspect-ratio:540/548}
.gallery .range{display:inline-block;font:700 12px var(--body);color:var(--plum);background:rgba(71,43,112,.08);border-radius:999px;padding:3px 10px;margin:0 0 8px}
/* Hero clips are the whole screen, status bar included, so the phone shows all of it: no fade. */
.hero-show .phone{padding:10px;border-radius:54px}
.hero-show .phone .screen{aspect-ratio:540/1174;border-radius:44px}
@media (max-width:560px){.hero-show .phone{border-radius:46px}.hero-show .phone .screen{border-radius:37px}}
.hero-show .phone{width:min(320px,76vw)}
.hero-show figcaption{margin-top:40px}
.wordmark{display:inline-flex;align-items:center;gap:10px}
.wordmark img{width:auto;height:44px}
/* The family: sibling apps under one roof. */
.family{display:grid;grid-template-columns:auto 1fr;gap:20px 28px;align-items:center;border-top:3px solid var(--plum);padding-top:24px;margin-top:8px}
.family img{width:96px;height:96px;border-radius:22px;box-shadow:5px 6px 0 var(--plum)}
.family h3{margin-bottom:4px}
.family p{margin:0;color:#4A3A31}
.family .soon{font-size:13px;color:var(--muted)}
@media (max-width:560px){.family{grid-template-columns:1fr}.family img{width:72px;height:72px;border-radius:16px}}
/* "visual metronome" is longer than "visual tuner": on phones the nav gets its own row. */
@media (max-width:560px){.top{flex-wrap:wrap;row-gap:10px}.top nav{width:100%}.top nav a[href="#lab"]{display:none}.wordmark img{height:36px}}

/* Dark mode: the app's own night palette. Cream text on night plum, lighter plum for depth,
   and the clips and screenshots switch to footage recorded in the app's dark appearance. */
@media (prefers-color-scheme:dark){
  :root{--night:#1B1326;--night-2:#2A1F3A;--text:#FFF0CE;--soft:rgba(255,240,206,.76);--faint:rgba(255,240,206,.58);--rule:rgba(255,240,206,.14);--depth:#6A4A9C}
  body{background:var(--night);color:var(--text)}
  .eyebrow,.tier p,.section-head>p:last-child,footer,.family .soon,.get>p{color:var(--faint)}
  .lede,.facts p,.gallery p,.specs p,.family p{color:var(--soft)}
  .top nav a{color:var(--faint)}
  .top nav a:hover{color:var(--tomato)}
  .hero-scene{color:var(--text)}
  section,footer{border-top-color:var(--rule)}
  .facts article,.tier,.family,.specs li{border-top-color:var(--depth)}
  .phone{background:#0D0812;box-shadow:18px 22px 0 var(--depth)}
  .gallery video{box-shadow:8px 9px 0 var(--depth);background:#0D0812}
  .gallery .range{color:#D5C5EA;background:rgba(255,240,206,.08)}
  .family img{box-shadow:5px 6px 0 var(--depth)}
  .cta-quiet{color:var(--text);border-color:var(--text)}
  .cta-quiet:hover{background:var(--text);color:var(--night)}
  .store{background:var(--night-2)}
  .dots button::before{background:rgba(255,240,206,.22)}
  :focus-visible{outline-color:#9B7FD0}
  .dark{--d-ink:#110B18;--d-rule:var(--depth)}
  .shots img{box-shadow:8px 9px 0 var(--depth)}
}
@media (prefers-color-scheme:dark) and (max-width:560px){
  .phone{box-shadow:12px 14px 0 var(--depth)}
  .gallery video{box-shadow:5px 6px 0 var(--depth)}
}
/* The expanded Dynamic Island, under the Lock Screen caption. */
.shots .island img{margin-top:18px;border-radius:18px;box-shadow:none;border:1px solid rgba(255,240,206,.14);background:#000}
/* "Make keeping time fun." sets in two lines in the hero column (80 px forced three). */
h1{font-size:clamp(44px,5.6vw,72px)}
/* Privacy and terms: one readable column. */
.legal{max-width:42em;padding:40px 0 72px}
.legal h1{font-size:clamp(40px,5vw,60px);margin-bottom:18px}
.legal h2{font-size:clamp(24px,2.6vw,30px);margin:44px 0 10px;max-width:none}
.legal p,.legal li{color:#4A3A31}
.legal ul{padding-left:1.2em}
.legal li{margin:6px 0}
.legal a{color:var(--tomato-deep)}
.legal .summary{margin:32px 0 8px;padding:22px 26px 14px;border-radius:18px;background:var(--cream-2);box-shadow:6px 7px 0 var(--plum)}
.legal .summary h2{margin-top:0}
.todo{background:#FFE36B;color:#251E1C;padding:0 4px;border-radius:4px}
footer a{color:inherit}
@media (prefers-color-scheme:dark){
  .legal p,.legal li{color:var(--soft)}
  .legal a{color:#F27A66}
  .legal .summary{background:var(--night-2);box-shadow:6px 7px 0 var(--depth)}
}
/* The family card is one big link to the sibling app's site. */
a.family{color:inherit;text-decoration:none;border-radius:4px}
a.family h3::after{content:" ↗";font-family:var(--body);font-size:.8em;color:var(--muted)}
a.family:hover h3{color:var(--tomato)}
a.family:hover img{transform:translate(-2px,-2px);box-shadow:7px 8px 0 var(--plum)}
.family img{transition:transform .15s,box-shadow .15s}
@media (prefers-color-scheme:dark){a.family:hover img{box-shadow:7px 8px 0 var(--depth)}}
.legal + .family-wrap{max-width:42em;padding-bottom:72px}
