:root { color-scheme:light dark; --accent:#345b47; --on-accent:#fffdf6; --bg:#fcfaf4; --text:#242e26; --muted:#5e695d; --band:#eaf0e1; }
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { margin:0; font:17px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; }
main,header,footer { margin:0 auto; max-width:72rem; padding:0 28px; }
header { display:flex; align-items:center; justify-content:space-between; }
.brand { display:inline-flex; align-items:center; gap:12px; font-weight:750; color:var(--text); text-decoration:none; }
.brand img { border-radius:8px; }
nav { display:flex; flex-wrap:wrap; gap:24px; }
a { color:var(--accent); }
p { margin:0 0 20px; }
h1,h2,h3 { line-height:1.15; }
header nav a { display:inline-flex; align-items:center; min-height:44px; }
footer p { margin:0 0 12px; }
footer a { display:inline-flex; min-height:44px; align-items:center; }
.document { max-width:780px; padding-block:70px 90px; }
.document h1 { font-size:clamp(2.4rem,5vw,4rem); letter-spacing:-.055em; margin:0 0 25px; }
.document h2 { font-size:1.55rem; margin:45px 0 18px; letter-spacing:-.025em; }
.document li { margin:12px 0; }
.document .intro { font-size:1.15rem; }
.document .updated { font-size:.8rem; }
.notfound { min-height:55vh; }
@media(prefers-color-scheme:dark) { :root { --accent:#b5d2a2; --on-accent:#172219; --text:#f0f3e6; --muted:#bcc7b8; --band:#263529; } }

/* Page Apps layout 2. Opt-in only: Site({'layout': 2, ...}). Brand colors stay in each site's palette. */
body.site-v2 { --v2-paper: #fffdf8; --v2-ink: #23221f; --v2-soft: #f5f3ed; --v2-muted: #68665f; --v2-line: #dedbd2;
  background: var(--v2-paper); color: var(--v2-ink); font-size: 17px; }
.site-v2 header, .site-v2 footer, .site-v2 main.v2-home { width: 100%; max-width: 1248px; padding-inline: 32px; }
.site-v2 header { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-block: 26px;
  border-bottom: 1px solid var(--v2-line); }
.site-v2 header .brand { gap: 11px; font-size: 1.25rem; letter-spacing: -.04em; }
.site-v2 header nav { margin: 0; gap: 24px; font-size: .88rem; }
.site-v2 header nav a { color: var(--v2-muted); text-decoration: none; }
.site-v2 header nav a:hover, .site-v2 header nav a[aria-current] { color: var(--v2-ink); }
.site-v2 a { text-underline-offset: .2em; }
.site-v2 a:focus-visible, .site-v2 summary:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
.site-v2 .skip-link { position: absolute; left: 16px; top: -100px; padding: 12px 20px; z-index: 10;
  background: var(--v2-ink); color: var(--v2-paper); border-radius: 6px; }
.site-v2 .skip-link:focus { top: 12px; }
.site-v2 .store-btn { min-height: 48px; padding: 13px 21px; border-radius: 7px; background: var(--v2-ink); color: var(--v2-paper);
  font-size: .93rem; font-weight: 600; line-height: 1.4; letter-spacing: -.015em; box-shadow: none; }
.site-v2 .store-btn:hover { background: var(--accent); color: var(--on-accent); filter: none; }
.site-v2 .v2-hero { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .88fr); align-items: center;
  gap: 65px; padding-block: 82px 90px; }
.site-v2 .v2-eyebrow { margin: 0 0 24px; color: var(--accent); font: 600 .75rem/1.4 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .09em; text-transform: uppercase; }
.site-v2 .v2-hero h1 { margin: 0 0 27px; font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(3.8rem, 6.2vw, 5.6rem); font-weight: 800; line-height: .99; letter-spacing: -.065em; }
.site-v2 .v2-hero h1 span { display: block; color: var(--accent); }
.site-v2 .v2-lede { max-width: 33rem; margin: 0 0 28px; color: var(--v2-muted); font-size: 1.18rem; line-height: 1.65; }
.site-v2 .v2-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 13px 24px; }
.site-v2 .v2-text-link { display: inline-flex; align-items: center; min-height: 44px; font-size: .9rem; font-weight: 600; }
.site-v2 .v2-fine { margin: 18px 0 0; color: var(--v2-muted); font-size: .79rem; line-height: 1.6; }
.site-v2 .v2-hero-visual { position: relative; display: grid; justify-items: center; padding: 30px 24px 24px;
  background: var(--band); border: 1px solid var(--v2-line); border-radius: 120px 18px 18px 18px; }
.site-v2 .v2-hero-visual::before { content: ''; position: absolute; width: 64px; height: 4px; left: 28px; bottom: 28px; background: var(--accent); }
.site-v2 .v2-hero-visual .phone { width: min(100%, 252px); border-radius: 33px; padding: 5px;
  box-shadow: 0 1px 1px #0002, 0 18px 28px #302b191a; }
.site-v2 .v2-hero-visual .phone img { border-radius: 28px; }
.site-v2 .v2-caption { margin: 22px 0 0; color: var(--v2-muted); font: 500 .65rem/1.5 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .015em; text-align: center; }
.site-v2 .v2-promise { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px 30px; margin: 0;
  padding: 21px 0; border-block: 1px solid var(--v2-line); color: var(--v2-muted); font-size: .83rem; list-style: none; }
.site-v2 .v2-promise li { display: flex; align-items: center; gap: 10px; margin: 0; }
.site-v2 .v2-promise li::before { content: ''; width: 5px; height: 5px; background: var(--accent); border-radius: 50%; }
.site-v2 .v2-section { padding-block: 90px; }
.site-v2 .v2-section h2 { margin: 0 0 22px; max-width: 21ch; font-size: clamp(2.1rem, 3.5vw, 3.3rem);
  line-height: 1.08; font-weight: 750; letter-spacing: -.05em; }
.site-v2 .v2-section p { color: var(--v2-muted); }
.site-v2 .v2-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; margin-bottom: 40px; }
.site-v2 .v2-section-head h2 { margin: 0; }
.site-v2 .v2-section-head p { max-width: 30rem; margin: 0; }
.site-v2 .v2-section .v2-eyebrow { color: var(--accent); }
.site-v2 .v2-feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; list-style: none; padding: 0; margin: 0; }
.site-v2 .v2-feature-grid li { margin: 0; padding-top: 20px; border-top: 1px solid var(--v2-line); }
.site-v2 .v2-number { color: var(--accent); font: 500 .75rem/1.5 ui-monospace, SFMono-Regular, Consolas, monospace; }
.site-v2 .v2-feature-grid h3 { margin: 17px 0 12px; font-size: 1.25rem; line-height: 1.25; letter-spacing: -.025em; }
.site-v2 .v2-feature-grid p { margin: 0; font-size: .96rem; line-height: 1.7; }
.site-v2 .v2-showcase { border-top: 1px solid var(--v2-line); }
.site-v2 .v2-showcase-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; }
.site-v2 .v2-showcase-card { min-width: 0; background: var(--v2-soft); border-radius: 14px; overflow: hidden; }
.site-v2 .v2-showcase-copy { padding: 34px 34px 14px; }
.site-v2 .v2-showcase-copy h3 { margin: 0 0 12px; font-size: 1.7rem; line-height: 1.15; letter-spacing: -.04em; }
.site-v2 .v2-showcase-copy p { margin: 0; font-size: .97rem; line-height: 1.7; }
.site-v2 .v2-showcase-screen { height: 420px; overflow: hidden; padding: 28px 20px 0; display: flex; justify-content: center; }
.site-v2 .v2-showcase-screen .phone { flex: 0 0 244px; align-self: flex-start; border-radius: 31px; padding: 5px;
  box-shadow: 0 12px 32px #0001; }
.site-v2 .v2-showcase-screen .phone img { border-radius: 26px; }
.site-v2 .v2-under-note { margin: 25px 0 0; font-size: .88rem; }
.site-v2 .v2-bring { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; border-top: 1px solid var(--v2-line); }
.site-v2 .v2-bring p { margin-top: 0; max-width: 35rem; line-height: 1.75; }
.site-v2 .v2-pricing { border-top: 1px solid var(--v2-line); }
.site-v2 .v2-pricing-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.site-v2 .v2-price-card { padding: 34px; border: 1px solid var(--v2-line); border-radius: 12px; }
.site-v2 .v2-price-card.pro { background: var(--band); }
.site-v2 .v2-price-card h3 { margin: 0 0 20px; font-size: 1.4rem; letter-spacing: -.035em; }
.site-v2 .v2-price { font-size: 3rem; letter-spacing: -.06em; line-height: 1.1; font-weight: 750; margin-bottom: 8px; }
.site-v2 .v2-price small { font-size: .9rem; letter-spacing: 0; font-weight: 400; }
.site-v2 .v2-price-card p, .site-v2 .v2-price-card li { font-size: .92rem; line-height: 1.7; }
.site-v2 .v2-price-card ul { margin: 22px 0 0; padding-left: 20px; }
.site-v2 .v2-price-card li { margin: 8px 0; }
.site-v2 .v2-launch { border-top: 1px solid var(--v2-line); margin-top: 24px; padding-top: 18px; }
.site-v2 .v2-launch p { margin: 0; font-size: .83rem; }
.site-v2 .v2-price-card .v2-fine { font-size: .79rem; }
.site-v2 .v2-faq { display: grid; grid-template-columns: 1fr 1fr; gap: 65px; border-top: 1px solid var(--v2-line); }
.site-v2 .v2-faq details.qa { padding: 0; border: 0; border-bottom: 1px solid var(--v2-line); margin: 0;
  border-radius: 0; background: transparent; box-shadow: none; }
.site-v2 .v2-faq details.qa summary { min-height: 68px; }
.site-v2 .v2-faq details.qa summary h3 { font-size: 1rem; font-weight: 600; line-height: 1.5; }
.site-v2 .v2-faq details.qa p { font-size: .92rem; }
.site-v2 .cta-band { max-width: none; background: var(--v2-soft); color: var(--v2-ink); border: 1px solid var(--v2-line);
  border-radius: 12px; padding: 44px 32px; margin-block: 20px 80px; }
.site-v2 .cta-band h2 { color: var(--v2-ink); font-size: 2rem; line-height: 1.15; letter-spacing: -.045em; }
.site-v2 .cta-band p { color: var(--v2-muted); font-size: .95rem; }
.site-v2 .cta-band a.store-btn { background: var(--v2-ink); color: var(--v2-paper); }
.site-v2 .cta-band a.store-btn:hover { background: var(--accent); color: var(--on-accent); }
.site-v2 footer { border-top: 1px solid var(--v2-line); margin-top: 0; padding-block: 30px 40px; }
.site-v2 footer p { color: var(--v2-muted); font-size: .77rem; line-height: 2; max-width: 64rem; }
@media (prefers-color-scheme: dark) {
  body.site-v2 { --v2-paper: #171715; --v2-ink: #f4f2ec; --v2-soft: #22221e; --v2-muted: #b3b1a7; --v2-line: #414038; }
}
@media (max-width: 1023px) {
  .site-v2 .v2-hero { gap: 30px; padding-block: 65px; }
  .site-v2 .v2-hero h1 { font-size: clamp(3.1rem, 6.3vw, 5.2rem); }
  .site-v2 .v2-hero-visual { padding-inline: 16px; }
  .site-v2 .v2-hero-visual::before { display: none; }
  .site-v2 .v2-hero-visual .phone { max-width: 226px; }
  .site-v2 .v2-feature-grid { gap: 25px; }
  .site-v2 .v2-faq { gap: 32px; }
}
@media (max-width: 719px) {
  .site-v2 header, .site-v2 footer, .site-v2 main.v2-home { padding-inline: 22px; }
  .site-v2 header { flex-wrap: wrap; gap: 14px; padding-block: 19px 13px; }
  .site-v2 header nav { width: 100%; justify-content: space-between; gap: 6px 16px; font-size: .82rem; }
  .site-v2 header .brand { font-size: 1.2rem; }
  .site-v2 .v2-hero { grid-template-columns: 1fr; gap: 40px; padding-block: 49px 48px; }
  .site-v2 .v2-eyebrow { margin-bottom: 21px; font-size: .67rem; }
  .site-v2 .v2-hero h1 { font-size: clamp(2.85rem, 12.8vw, 4.4rem); margin-bottom: 23px; }
  .site-v2 .v2-lede { font-size: 1.02rem; line-height: 1.7; margin-bottom: 23px; }
  .site-v2 .v2-actions { gap: 8px 18px; }
  .site-v2 .v2-actions .v2-text-link { font-size: .85rem; }
  .site-v2 .v2-fine { margin-top: 13px; font-size: .75rem; }
  .site-v2 .v2-hero-visual { padding-block: 26px 22px; border-top-left-radius: 85px; }
  .site-v2 .v2-hero-visual .phone { width: 228px; max-width: 100%; }
  .site-v2 .v2-caption { margin-top: 17px; font-size: .61rem; }
  .site-v2 .v2-promise { display: grid; gap: 11px; padding-block: 20px; font-size: .8rem; }
  .site-v2 .v2-section { padding-block: 58px; }
  .site-v2 .v2-section h2 { font-size: 2.3rem; }
  .site-v2 .v2-section-head { display: block; margin-bottom: 30px; }
  .site-v2 .v2-section-head p { margin-top: 20px; font-size: .96rem; }
  .site-v2 .v2-feature-grid, .site-v2 .v2-showcase-grid, .site-v2 .v2-bring, .site-v2 .v2-pricing-grid, .site-v2 .v2-faq { grid-template-columns: 1fr; gap: 28px; }
  .site-v2 .v2-feature-grid li { padding-top: 16px; }
  .site-v2 .v2-feature-grid h3 { margin-top: 12px; }
  .site-v2 .v2-showcase-copy { padding: 26px 23px 10px; }
  .site-v2 .v2-showcase-copy h3 { font-size: 1.5rem; }
  .site-v2 .v2-showcase-screen { height: 365px; padding-top: 24px; }
  .site-v2 .v2-showcase-screen .phone { flex-basis: 222px; }
  .site-v2 .v2-price-card { padding: 25px; }
  .site-v2 .v2-bring { gap: 10px; }
  .site-v2 .v2-faq { gap: 10px; }
  .site-v2 .cta-band { margin-block: 0 58px; padding: 34px 22px; }
  .site-v2 .cta-band h2 { font-size: 1.8rem; }
}
@media (prefers-reduced-motion: no-preference) {
  .site-v2 .store-btn { transition: background-color .15s ease, color .15s ease; }
}

/* Moss and cream, drawn from the locked app icon. */
body.site-v2 { --v2-paper:#fcfaf4; --v2-ink:#242e26; --v2-muted:#5e695d; --v2-soft:#eff2e9; --v2-line:#d9e0d1; }
.site-v2 header .brand { font-size:1.13rem; letter-spacing:-.035em; }
.site-v2 .v2-hero h1 { font-size:clamp(3.4rem,5.9vw,5.2rem); }
.site-v2 .v2-hero-visual::before { display:none; }
.site-v2 .phone { margin:0; background:#272d26; }
.site-v2 .phone img { display:block; width:100%; height:auto; }
.site-v2 .v2-status { display:inline-flex; padding:12px 18px; border:1px solid var(--v2-line); border-radius:7px; background:var(--v2-soft); font-weight:650; font-size:.85rem; }
.site-v2 .v2-feature-grid h3 { margin-top:18px; }
.site-v2 .v2-patients { border-block:1px solid var(--v2-line); }
.site-v2 .v2-patient-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; margin:35px 0 28px; padding:0; list-style:none; }
.site-v2 .v2-patient-grid li { margin:0; padding:24px; background:var(--v2-soft); border-radius:12px; font-size:1.15rem; font-weight:650; }
.site-v2 .v2-small { font-size:.88rem; line-height:1.8; }
.site-v2 .v2-night { display:grid; grid-template-columns:1fr 1fr; gap:70px; }
.site-v2 .v2-night p { max-width:35rem; }
.site-v2 .v2-access { display:flex; flex-wrap:wrap; gap:12px 28px; list-style:none; padding:20px 0; margin:25px 0 0; border-block:1px solid var(--v2-line); font-size:.9rem; }
.site-v2 .v2-faq { gap:70px; }
.site-v2 details { border-bottom:1px solid var(--v2-line); padding:0 0 10px; margin:0 0 12px; }
.site-v2 summary { cursor:pointer; padding:16px 0; min-height:48px; font-weight:650; }
.site-v2 details p { font-size:.95rem; }
.site-v2 .cta-band { text-align:left; }
.site-v2 .cta-band h2 { max-width:25ch; margin:0 0 18px; }
.site-v2 .cta-band .v2-text-link { font-size:.95rem; }
.site-v2 .document p,.site-v2 .document li { color:var(--v2-muted); }
.site-v2 .document strong { color:var(--v2-ink); }
.site-v2 footer .footer-links { display:flex; flex-wrap:wrap; gap:10px 28px; }
@media(prefers-color-scheme:dark) { body.site-v2 { --v2-paper:#172219; --v2-ink:#f0f3e6; --v2-muted:#bcc7b8; --v2-soft:#263529; --v2-line:#435440; } }
@media(max-width:719px) {
 .site-v2 header .brand { font-size:1.07rem; }
 .site-v2 .v2-hero h1 { font-size:clamp(2.8rem,11.5vw,4.1rem); }
 .site-v2 .v2-patient-grid { grid-template-columns:1fr 1fr; gap:14px; }
 .site-v2 .v2-patient-grid li { padding:20px 16px; font-size:1rem; }
 .site-v2 .v2-night { grid-template-columns:1fr; gap:10px; }
 .document { padding-inline:22px; padding-block:45px 65px; }
}
