:root {
  color-scheme: light;
  --forest: #1b4c43;
  --forest-dark: #143a33;
  --ink: #253e36;
  --muted: #5e6d65;
  --cream: #faf8f4;
  --sage: #e7ede5;
  --peach: #f4e7dc;
  --rose: #f1e3df;
  --line: #dce2d8;
  --white: #fff;
  --radius: 28px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--cream);
  font-synthesis: none;
  -webkit-text-size-adjust: 100%;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; line-height: 1.65; overflow-wrap: break-word; }
img { display: block; max-width: 100%; height: auto; }
svg { flex-shrink: 0; }
a { color: var(--forest); text-underline-offset: .22em; }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid #aa5735;
  outline-offset: 5px;
  border-radius: 5px;
}
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: Georgia, "Times New Roman", serif; font-weight: 400; }
h1, h2, h3 { overflow-wrap: break-word; word-break: normal; text-wrap: balance; line-height: 1.14; letter-spacing: -.025em; }
p { text-wrap: pretty; }
h1 { font-size: clamp(3rem, 5.2vw, 4.5rem); margin-bottom: 24px; }
h2 { font-size: clamp(2rem, 3.3vw, 2.9rem); margin-bottom: 20px; }
h3 { font-size: 1.2rem; font-weight: 650; line-height: 1.3; margin-bottom: 12px; letter-spacing: -.02em; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
section[id] { scroll-margin-top: 32px; }
.skip-link { position: absolute; top: -100px; left: 16px; padding: 12px 18px; background: var(--white); z-index: 10; }
.skip-link:focus { top: 10px; }
.site-header, .site-footer, main { width: min(1180px, calc(100% - 80px)); margin-inline: auto; }
.site-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding: 30px 0; }
.wordmark { display: inline-flex; align-items: center; min-height: 44px; font-family: Georgia, "Times New Roman", serif; font-size: 2.3rem; line-height: 1; text-decoration: none; font-weight: bold; letter-spacing: -.06em; flex-shrink: 0; }
.wordmark span { color: #a86e55; }
nav { display: flex; flex-wrap: wrap; max-width: 100%; align-items: center; gap: 5px; }
nav > a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 14px; text-decoration: none; font-size: .9rem; }
nav > a[aria-current] { background: var(--sage); border-radius: 24px; }
.language { border-left: 1px solid var(--line); margin-left: 8px; }
.site-header .button { min-height: 44px; padding: 10px 18px; font-size: .85rem; }
.hero { display: grid; grid-template-columns: 1.08fr 1fr; gap: 56px; padding: 62px 0 76px; align-items: center; }
.hero-copy, .hero-visual, .buddy-copy, .buddy-composition, .together-copy, .feature-card, .privacy-intro, .privacy-points, .privacy-points article, .story-card, .faq-section > *, .pilot-banner > div { min-width: 0; }
.eyebrow { font-size: .7rem; font-weight: 700; letter-spacing: .17em; color: #59766b; margin-bottom: 18px; line-height: 1.5; text-transform: uppercase; }
.hero h1 { max-width: 12ch; }
.intro { max-width: 580px; font-size: 1.1rem; color: var(--muted); line-height: 1.75; margin-bottom: 0; }
.actions { display: flex; gap: 22px; align-items: center; flex-wrap: wrap; margin-top: 30px; }
.button { max-width: 100%; overflow-wrap: anywhere; display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 26px; border: 1px solid transparent; border-radius: 30px; background: var(--forest); color: white; padding: 14px 24px; text-decoration: none; font-weight: 650; font-size: .95rem; line-height: 1.45; text-align: center; transition: background .18s ease, box-shadow .18s ease; }
.button:hover { background: var(--forest-dark); box-shadow: 0 5px 18px #1b4c4315; }
.text-link { max-width: 100%; overflow-wrap: anywhere; display: inline-flex; align-items: center; gap: 12px; min-height: 44px; font-weight: 600; font-size: .95rem; }
.hero-meta { color: var(--muted); font-size: .8rem; margin: 18px 0 0; max-width: 420px; }
.hero-visual { position: relative; padding: 26px 0 46px; isolation: isolate; }
.hero-visual::before { content: ""; position: absolute; z-index: -1; inset: -14px -10px 20px 26px; border-radius: 49% 47% 35% 37%; background: #edf0e7; }
.hero-art { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 100px 100px 32px 32px; }
.day-peek { position: relative; width: min(380px, 94%); margin: -27px 0 -24px -22px; padding: 21px 24px 17px; border: 1px solid #e4e7df; border-radius: 24px; background: #fffefa; box-shadow: 0 16px 35px #304b3510; }
.peek-top { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 14px; padding-bottom: 14px; border-bottom: 1px solid #edf0e8; line-height: 1.4; }
.peek-top strong { font-size: .95rem; font-weight: 650; }
.peek-example { padding: 3px 9px; border-radius: 8px; background: #eef1e9; color: #53675b; font-size: .75rem; line-height: 1.5; }
.peek-list { list-style: none; padding: 0; margin: 7px 0 0; }
.peek-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; line-height: 1.45; }
.peek-row > span:last-child { flex: 1; min-width: 0; }
.peek-row strong { display: block; font-size: .88rem; font-weight: 600; }
.peek-detail { display: block; color: var(--muted); font-size: .8rem; margin-top: 3px; }
.peek-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 38px; height: 38px; border-radius: 12px; }
.peek-icon svg { width: 21px; height: 21px; }
.peek-calendar { background: #e7eee2; color: #47664f; }
.peek-stars { background: #f9edcf; color: #926c27; }
.peek-meal { background: #f5e8df; color: #906249; }
.section-nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 23px 0; margin-bottom: 76px; }
.section-nav a { display: inline-flex; min-height: 44px; align-items: center; gap: 8px; padding: 9px 18px; border-radius: 24px; background: #eeeee7; text-decoration: none; color: var(--forest); font-size: .85rem; font-weight: 600; transition: background .18s ease; }
.section-nav a:hover { background: #e0e8dd; }
.section-intro { max-width: 680px; margin-bottom: 32px; }
.section-intro h2 { max-width: 20ch; }
.section-intro > p:last-child { max-width: 63ch; }
.section-intro > p:last-child, .feature-card p, .support-banner p { color: var(--muted); }
.features { padding-bottom: 88px; }
.feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.feature-card { padding: 28px; border: 1px solid var(--line); border-radius: 24px; background: #ffffff80; }
.feature-icon { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 15px; color: var(--forest); background: #eaf0e7; margin-bottom: 22px; }
.feature-card:nth-child(3n+2) .feature-icon { background: #f4e9df; color: #8d6249; }
.feature-card:nth-child(3n) .feature-icon { background: #ede8ee; color: #79657f; }
.feature-icon svg { width: 23px; height: 23px; }
.card-number { font-size: .75rem; display: inline-block; color: var(--muted); margin-bottom: 26px; }
.feature-card p { margin-bottom: 0; font-size: .93rem; line-height: 1.7; }
.buddy-section { display: grid; grid-template-columns: .85fr 1.15fr; gap: 46px; align-items: center; padding: 22px 0 82px; }
.buddy-copy > p:not(.eyebrow), .together-copy > p:not(.eyebrow) { color: var(--muted); }
.buddy-copy h2 { max-width: 15ch; }
.buddy-copy .intro { font-size: 1.05rem; max-width: 44ch; }
.buddy-copy .buddy-parent-note { font-size: .95rem; line-height: 1.75; max-width: 46ch; margin: 20px 0 25px; }
.buddy-copy .buddy-collection-note { margin: 0; padding-top: 20px; border-top: 1px solid var(--line); line-height: 1.65; font-size: .91rem; }
.buddy-collection-note strong { display: block; color: var(--forest); font-weight: 650; }
.buddy-collection-note span { display: block; }
.buddy-copy .quiet { font-size: .75rem; margin: 9px 0 0; }
.check-list { padding: 0; margin: 24px 0 20px; list-style: none; }
.check-list li { position: relative; padding: 0 0 0 28px; margin: 12px 0; color: var(--ink); font-size: .95rem; }
.check-list li::before { content: "✓"; position: absolute; left: 0; top: 1px; color: #567a64; font-size: 1rem; font-weight: 700; }
.buddy-composition { position: relative; min-width: 0; margin: 0; }
.buddy-scene { width: 100%; position: relative; isolation: isolate; aspect-ratio: 64 / 55; }
.buddy-world { position: absolute; inset: 8% 2% 3% 6%; border-radius: 48% 51% 43% 49%; background: radial-gradient(ellipse at 35% 35%, #f8e9d5 0, #f1eddc 48%, #e4eddf 78%); transform: rotate(-7deg); }
.buddy-world::before { content: ""; position: absolute; width: 48%; height: 22%; bottom: 11%; left: 31%; border-radius: 50%; background: #91aa7924; filter: blur(19px); }
.buddy-growth-arc { position: absolute; width: 100%; height: 100%; inset: 0; color: #b0ad85; }
.scene-buddy { position: absolute; object-fit: contain; height: auto; filter: drop-shadow(0 9px 7px #394e3a14); transform-origin: 50% 75%; }
.scene-hero { width: 65%; aspect-ratio: 1; top: 1%; left: 18%; z-index: 3; }
.buddy-still { width: 100%; }
.buddy-motion-viewport { display: none; }
.scene-dragon { width: 40%; bottom: 1%; right: -1%; z-index: 4; transform: rotate(7deg); }
.scene-growing { width: 29%; top: 30%; left: -2%; z-index: 2; transform: rotate(-8deg); }
.scene-beginning { width: 20%; top: 63%; left: 6%; z-index: 3; transform: rotate(-6deg); }
.scene-dumpling { width: 24%; bottom: 0; left: 35%; z-index: 4; transform: rotate(5deg); }
.buddy-spark { position: absolute; line-height: 1; color: #a88546; font-size: 1.5rem; }
.spark-one { top: 18%; left: 17%; transform: rotate(-12deg); }
.spark-two { top: 33%; right: 2%; font-size: 2rem; color: #7b9c87; }
.spark-three { bottom: 14%; left: 27%; font-size: .9rem; color: #9ca982; }
.buddy-composition figcaption { max-width: 44ch; margin: 26px auto 0; text-align: center; color: var(--muted); font-size: .78rem; line-height: 1.6; text-wrap: balance; }
.buddy-motion-toggle { display: none; position: absolute; bottom: 20px; left: 50%; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.buddy-motion-control { display: none; align-items: center; justify-content: center; gap: 9px; width: fit-content; max-width: 100%; min-height: 44px; margin: 7px auto 0; padding: 5px 12px; border-radius: 22px; cursor: pointer; color: var(--forest); }
.buddy-motion-switch { display: inline-block; position: relative; flex: 0 0 32px; height: 19px; border: 1px solid var(--muted); border-radius: 12px; background: var(--cream); }
.buddy-motion-switch::before { content: ""; position: absolute; top: 3px; left: 3px; width: 11px; height: 11px; border-radius: 50%; background: var(--muted); }
.buddy-motion-toggle:checked ~ figcaption .buddy-motion-switch { background: var(--forest); border-color: var(--forest); }
.buddy-motion-toggle:checked ~ figcaption .buddy-motion-switch::before { background: var(--white); transform: translateX(13px); }
.buddy-motion-toggle:focus-visible ~ figcaption .buddy-motion-control { outline: 3px solid #aa5735; outline-offset: 3px; }
.everyday-section { padding: 0 0 82px; }
.everyday-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.story-card { border: 1px solid var(--line); border-radius: 30px; overflow: hidden; background: #fffdfa; }
.story-card picture { display: block; overflow: hidden; background: #f1eee4; }
.story-card picture > img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.story-copy { padding: 28px 30px 30px; }
.story-copy h3 { font-size: 1.35rem; }
.story-copy > p { color: var(--muted); font-size: .95rem; margin-bottom: 20px; }
.mini-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.mini-tags span { color: #576b5e; background: #eff1e9; border-radius: 18px; padding: 5px 10px; font-size: .68rem; line-height: 1.5; }
.together-section { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 62px; padding: 18px 0 88px; }
.together-art { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 38px; }
.privacy-band { display: grid; grid-template-columns: 1fr 1.15fr; gap: 52px; padding: 48px; color: #faf8ef; background: var(--forest); border-radius: 34px; margin-bottom: 82px; }
.privacy-band .eyebrow { color: #c4d6bf; }
.privacy-band h2 { color: #fffdf3; font-size: clamp(1.9rem, 3vw, 2.5rem); }
.privacy-band p { color: #d3dfd3; font-size: .92rem; }
.privacy-band a { color: #fffdf3; }
.privacy-intro > p:last-of-type { margin-bottom: 16px; }
.privacy-points { display: grid; gap: 22px; }
.privacy-points article { position: relative; padding-left: 42px; }
.privacy-points article > svg, .privacy-points article > .feature-icon { position: absolute; left: 0; top: 3px; width: 23px; height: 23px; color: #c4d6bf; background: transparent; margin: 0; border-radius: 0; }
.privacy-points h3 { color: #f8f9f0; font-size: 1rem; margin-bottom: 7px; }
.privacy-points p { font-size: .85rem; margin: 0; }
.faq-section { display: grid; grid-template-columns: .8fr 1.2fr; gap: 64px; padding: 0 0 80px; }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; min-height: 60px; padding: 18px 0; gap: 24px; font-weight: 600; font-size: .97rem; cursor: pointer; line-height: 1.5; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; font-size: 1.4rem; font-weight: 400; color: #68856e; flex-shrink: 0; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details > p { color: var(--muted); font-size: .92rem; margin: 0; padding: 0 28px 20px 0; }
.pilot-banner { position: relative; padding: 52px 40px; text-align: center; border: 1px solid #e6e1d5; border-radius: 34px; background: linear-gradient(120deg, #ecefe4, #f5eddf 75%, #f5e6df); margin-bottom: 72px; }
.pilot-banner h2 { max-width: 680px; margin-inline: auto; }
.pilot-banner > div > p { max-width: 580px; color: var(--muted); margin: 0 auto 26px; }
.pilot-banner .eyebrow { margin-bottom: 16px; }
.pilot-banner .quiet { margin: 16px auto 0; font-size: .78rem; }
.support-banner { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 40px; background: var(--sage); border-radius: var(--radius); margin-bottom: 60px; }
.support-banner h2 { font-size: 1.9rem; }
.support-banner p { margin-bottom: 0; max-width: 650px; }
.support-banner .button { flex-shrink: 0; }
.site-footer { border-top: 1px solid var(--line); padding: 34px 0 44px; display: grid; grid-template-columns: auto 1fr; gap: 14px 60px; }
.site-footer .wordmark { font-size: 1.9rem; }
.site-footer p { color: var(--muted); font-size: .85rem; grid-column: 1; margin-bottom: 0; }
.site-footer nav { grid-column: 2; grid-row: 1 / 3; justify-content: flex-end; flex-wrap: wrap; gap: 0; font-size: .85rem; }
.page-intro { padding: 70px 0 38px; max-width: 750px; }
.feature-card .text-link { margin-top: 8px; font-size: .88rem; }
.breadcrumbs { padding: 14px 0 22px; gap: 10px; color: var(--muted); font-size: .85rem; }
.breadcrumbs > a { padding-left: 0; }
.topic-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: center; gap: 58px; padding: 26px 0 56px; }
.topic-hero h1 { font-size: clamp(2.35rem, 4.4vw, 3.65rem); }
.topic-hero > img { width: 100%; border-radius: 36px; background: var(--sage); }
.topic-hero img[src*="buddy-"] { padding: 18px; background: radial-gradient(circle, #fff8ea, #e8efe8); }
.topic-availability { color: var(--muted); font-size: .85rem; max-width: 52ch; margin-bottom: 24px; }
.topic-contents { align-items: flex-start; gap: 10px 24px; padding: 24px 28px; background: var(--sage); border-radius: 20px; }
.topic-contents > strong { flex-basis: 100%; font-size: .85rem; }
.topic-contents > a { padding: 8px 0; text-decoration: underline; max-width: 100%; }
.topic-answers { max-width: 760px; margin-inline: auto; padding: 12px 0 56px; }
.topic-answers section { padding-top: 48px; }
.topic-answers h2 { font-size: clamp(1.7rem, 3vw, 2.25rem); text-wrap: pretty; }
.topic-answers p { color: var(--muted); }
.topic-answers .check-list { margin-bottom: 0; }
.topic-faq { grid-template-columns: minmax(0, .65fr) minmax(0, 1fr); padding-top: 40px; border-top: 1px solid var(--line); }
.topic-related { padding: 0 0 54px; }
.topic-related h2 { font-size: 1.85rem; }
.topic-related > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.topic-related-link { display: flex; justify-content: space-between; gap: 16px; padding: 24px; background: var(--white); border: 1px solid var(--line); border-radius: 20px; font-weight: 600; text-decoration: none; }
.topic-related-link:hover { background: var(--sage); }
.topic-related > p { margin: 24px 0 0; font-size: .9rem; }
.page-intro h1 { font-size: clamp(2.5rem, 5vw, 4rem); }
.support-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 64px; }
.contact-card { padding: 36px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); }
.contact-card h2 { font-size: 1.8rem; }
.email-link { display: inline-block; font-size: 1.35rem; min-height: 44px; margin-bottom: 18px; overflow-wrap: anywhere; }
.contact-card p, .contact-card li { color: var(--muted); }
.contact-card ol { padding-left: 24px; }
.contact-card li { margin-bottom: 10px; }
.quiet { font-size: .9rem; }
.pill { display: inline-block; padding: 4px 12px; font-size: .75rem; background: var(--sage); border-radius: 16px; margin-bottom: 20px; }
.legal-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 50px 0 28px; }
.legal-heading .eyebrow { margin-bottom: 0; }
.source-link { font-size: .85rem; min-height: 44px; display: inline-flex; align-items: center; }
.legal-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 48px; align-items: start; margin-bottom: 80px; }
.legal-toc { position: sticky; top: 24px; border: 1px solid var(--line); border-radius: 18px; background: var(--white); padding: 18px; }
.legal-toc summary { min-height: 44px; cursor: pointer; font-weight: 650; }
.legal-toc nav { display: block; }
.legal-toc ol { list-style: none; padding: 0; margin: 0; }
.legal-toc li { margin: 0; }
.legal-toc a { font-size: .8rem; display: block; padding: 8px 0; min-height: 44px; text-decoration: none; line-height: 1.5; }
.legal-toc a:hover { text-decoration: underline; }
.legal-document { font-size: 1rem; overflow-wrap: anywhere; min-width: 0; }
.legal-document h1 { font-size: clamp(2.1rem, 4vw, 3.1rem); margin-bottom: 28px; }
.legal-document h2 { font-size: 1.6rem; margin-top: 34px; }
.legal-document h3 { font-size: 1.2rem; margin-top: 28px; }
.legal-document h1, .legal-document h2, .legal-document h3 { scroll-margin-top: 24px; }
.legal-document li { margin-bottom: 12px; }
.legal-document ul, .legal-document ol { padding-left: 24px; }
.legal-document blockquote { border-left: 3px solid #a47458; background: #f0e9e1; padding: 20px 24px; margin: 26px 0; color: var(--ink); }
.legal-document blockquote p { margin: 0; }
.legal-document hr { height: 1px; border: 0; background: var(--line); margin: 32px 0; }
.table-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; margin: 24px 0; }
.table-scroll table { border-collapse: collapse; width: 100%; min-width: 520px; font-size: .9rem; }
.table-scroll th, .table-scroll td { text-align: left; vertical-align: top; padding: 14px; border-bottom: 1px solid var(--line); }
.table-scroll th { background: var(--sage); }
.table-scroll tbody tr:last-child td { border-bottom: 0; }

/* One reviewed four-second app clip, followed by eleven seconds of rest.
   Its source canvas has .78125 poster scale: 128% / -14% preserves the
   existing portrait's size and position. Other characters stay still. */
@media (prefers-reduced-motion: no-preference) {
  .buddy-composition { --buddy-motion-state: paused; }
  .buddy-motion-playing { --buddy-motion-state: running; }
  .buddy-motion-ready .buddy-motion-toggle { display: block; }
  .buddy-motion-ready .buddy-motion-control { display: flex; }
  /* Keep an invisible layout box so native lazy loading can fetch the image.
     display:none here would prevent load and readiness from ever resolving. */
  .buddy-motion-viewport { display: block; position: absolute; width: 128%; height: 128%; left: -14%; top: -14%; overflow: hidden; opacity: 0; pointer-events: none; }
  .buddy-motion-atlas { width: 800%; max-width: none; height: 800%; }
  .buddy-motion-ready .buddy-motion-viewport { animation: buddy-motion-handoff 15s linear infinite; }
  /* Ready is added only after decode, so a missing or slow atlas cannot hide
     the original. A short dissolve softens the handoff to the moving image. */
  .buddy-motion-ready .buddy-still { animation: buddy-still-handoff 15s linear infinite; }
  .buddy-motion-ready .buddy-motion-atlas { animation: buddy-axolotl-frames 15s steps(1, end) infinite; }
  /* The first greeting starts after one visible second; later cycles rest 11s. */
  .buddy-motion-ready .buddy-motion-atlas, .buddy-motion-ready .buddy-motion-viewport, .buddy-motion-ready .buddy-still { animation-delay: -10s; animation-play-state: var(--buddy-motion-state); }
}
@keyframes buddy-motion-handoff { 0%, 73.333333%, 100% { opacity: 0; } 74.583333%, 98.75% { opacity: 1; } }
@keyframes buddy-still-handoff { 0%, 73.333333%, 100% { opacity: 1; } 74.583333%, 98.75% { opacity: 0; } }

@keyframes buddy-axolotl-frames {
  0%, 73.333333%, 100% { transform: translate(0, 0); }
  73.750000% { transform: translate(-12.5%, 0%); }
  74.166667% { transform: translate(-25%, 0%); }
  74.583333% { transform: translate(-37.5%, 0%); }
  75.000000% { transform: translate(-50%, 0%); }
  75.416667% { transform: translate(-62.5%, 0%); }
  75.833333% { transform: translate(-75%, 0%); }
  76.250000% { transform: translate(-87.5%, 0%); }
  76.666667% { transform: translate(0%, -12.5%); }
  77.083333% { transform: translate(-12.5%, -12.5%); }
  77.500000% { transform: translate(-25%, -12.5%); }
  77.916667% { transform: translate(-37.5%, -12.5%); }
  78.333333% { transform: translate(-50%, -12.5%); }
  78.750000% { transform: translate(-62.5%, -12.5%); }
  79.166667% { transform: translate(-75%, -12.5%); }
  79.583333% { transform: translate(-87.5%, -12.5%); }
  80.000000% { transform: translate(0%, -25%); }
  80.416667% { transform: translate(-12.5%, -25%); }
  80.833333% { transform: translate(-25%, -25%); }
  81.250000% { transform: translate(-37.5%, -25%); }
  81.666667% { transform: translate(-50%, -25%); }
  82.083333% { transform: translate(-62.5%, -25%); }
  82.500000% { transform: translate(-75%, -25%); }
  82.916667% { transform: translate(-87.5%, -25%); }
  83.333333% { transform: translate(0%, -37.5%); }
  83.750000% { transform: translate(-12.5%, -37.5%); }
  84.166667% { transform: translate(-25%, -37.5%); }
  84.583333% { transform: translate(-37.5%, -37.5%); }
  85.000000% { transform: translate(-50%, -37.5%); }
  85.416667% { transform: translate(-62.5%, -37.5%); }
  85.833333% { transform: translate(-75%, -37.5%); }
  86.250000% { transform: translate(-87.5%, -37.5%); }
  86.666667% { transform: translate(0%, -50%); }
  87.083333% { transform: translate(-12.5%, -50%); }
  87.500000% { transform: translate(-25%, -50%); }
  87.916667% { transform: translate(-37.5%, -50%); }
  88.333333% { transform: translate(-50%, -50%); }
  88.750000% { transform: translate(-62.5%, -50%); }
  89.166667% { transform: translate(-75%, -50%); }
  89.583333% { transform: translate(-87.5%, -50%); }
  90.000000% { transform: translate(0%, -62.5%); }
  90.416667% { transform: translate(-12.5%, -62.5%); }
  90.833333% { transform: translate(-25%, -62.5%); }
  91.250000% { transform: translate(-37.5%, -62.5%); }
  91.666667% { transform: translate(-50%, -62.5%); }
  92.083333% { transform: translate(-62.5%, -62.5%); }
  92.500000% { transform: translate(-75%, -62.5%); }
  92.916667% { transform: translate(-87.5%, -62.5%); }
  93.333333% { transform: translate(0%, -75%); }
  93.750000% { transform: translate(-12.5%, -75%); }
  94.166667% { transform: translate(-25%, -75%); }
  94.583333% { transform: translate(-37.5%, -75%); }
  95.000000% { transform: translate(-50%, -75%); }
  95.416667% { transform: translate(-62.5%, -75%); }
  95.833333% { transform: translate(-75%, -75%); }
  96.250000% { transform: translate(-87.5%, -75%); }
  96.666667% { transform: translate(0%, -87.5%); }
  97.083333% { transform: translate(-12.5%, -87.5%); }
  97.500000% { transform: translate(-25%, -87.5%); }
  97.916667% { transform: translate(-37.5%, -87.5%); }
  98.333333% { transform: translate(-50%, -87.5%); }
  98.750000% { transform: translate(-62.5%, -87.5%); }
  99.166667% { transform: translate(-75%, -87.5%); }
  99.583333% { transform: translate(-87.5%, -87.5%); }
}

@media (max-width: 1040px) {
  .site-header, .site-footer, main { width: calc(100% - 56px); }
  .hero { gap: 36px; padding-top: 46px; }
  .hero h1 { font-size: clamp(2.7rem, 5.8vw, 3.7rem); }
  .hero-art { border-radius: 70px 70px 28px 28px; }
  .day-peek { margin-left: -12px; width: min(380px, 100%); }
  .buddy-section { gap: 30px; }
  .privacy-band { gap: 34px; padding: 38px; }
  .together-section, .faq-section { gap: 40px; }
  .site-header nav { gap: 0; }
  .site-header nav > a { padding-inline: 10px; }
}

@media (max-width: 800px) {
  .topic-hero { grid-template-columns: minmax(0, 1fr); gap: 30px; padding-top: 12px; }
  .topic-hero > img { width: min(100%, 520px); justify-self: center; }
  .topic-related > div { grid-template-columns: minmax(0, 1fr); }
  .topic-contents { padding: 22px; }
  .hero { grid-template-columns: 1fr 1fr; gap: 26px; padding: 32px 0 60px; }
  .hero h1 { font-size: 2.85rem; }
  .intro { font-size: 1rem; }
  .hero .actions { gap: 8px 18px; margin-top: 24px; }
  .hero .button { padding: 13px 20px; }
  .hero-visual { padding-top: 8px; }
  .hero-visual::before { inset: -8px -2px 24px 16px; }
  .day-peek { padding: 18px; width: 100%; margin-left: -10px; }
  .section-nav { margin-bottom: 58px; gap: 8px; padding: 18px 0; }
  .section-nav a { padding: 8px 14px; font-size: .8rem; }
  .feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .feature-card { padding: 26px; }
  .features { padding-bottom: 58px; }
  .buddy-section { grid-template-columns: minmax(0, 1fr); gap: 26px; padding: 12px 0 60px; }
  .buddy-copy { max-width: 640px; }
  .buddy-copy h2 { max-width: 24ch; }
  .buddy-copy .intro, .buddy-copy .buddy-parent-note { max-width: 59ch; }
  .buddy-composition { width: min(100%, 590px); justify-self: center; }
  .everyday-section { padding-bottom: 60px; }
  .everyday-grid { gap: 18px; }
  .story-copy { padding: 24px; }
  .together-section { grid-template-columns: 1fr 1fr; gap: 30px; padding-bottom: 60px; }
  .together-art { border-radius: 28px; }
  .privacy-band { grid-template-columns: minmax(0, 1fr); gap: 32px; margin-bottom: 60px; }
  .privacy-intro { max-width: 600px; }
  .privacy-points { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
  .privacy-points article { padding: 38px 0 0; }
  .privacy-points article > svg, .privacy-points article > .feature-icon { top: 0; }
  .faq-section { grid-template-columns: minmax(0, 1fr); gap: 16px; padding-bottom: 60px; }
  .faq-section h2 { max-width: 580px; }
  .pilot-banner { margin-bottom: 56px; }
  .legal-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .legal-toc { position: static; }
  .legal-toc ol { columns: 2; column-gap: 28px; }
  .legal-toc li { break-inside: avoid; }
  .site-footer { column-gap: 16px; }
  .support-banner { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 620px) {
  .site-header, .site-footer, main { width: calc(100% - 36px); }
  .site-header { padding: 20px 0; gap: 10px 16px; flex-wrap: wrap; }
  .wordmark { font-size: 2rem; }
  .site-header nav { gap: 0; flex-wrap: wrap; justify-content: flex-end; margin-left: auto; }
  .site-header nav > a { font-size: .77rem; padding: 8px 9px; }
  .site-header nav > .button { padding: 10px 13px; font-size: .76rem; margin-left: 3px; }
  .language { margin-left: 3px; }
  .hero { padding: 30px 0 38px; grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .hero h1 { font-size: clamp(2.75rem, 10.5vw, 3.8rem); max-width: 500px; margin-bottom: 20px; }
  .hero .eyebrow { margin-bottom: 16px; }
  .intro { font-size: 1.04rem; }
  .hero .actions { margin-top: 24px; gap: 12px 20px; }
  .hero-meta { margin-top: 14px; font-size: .77rem; }
  .hero-visual { padding: 20px 10px 36px; width: min(100%, 480px); justify-self: center; }
  .hero-visual::before { inset: 0 8px 32px 24px; }
  .hero-art { border-radius: 78px 78px 28px 28px; }
  .day-peek { width: min(380px, 100%); margin-left: -2px; margin-top: -20px; margin-bottom: -22px; padding: 19px 20px 15px; }
  .section-nav { justify-content: flex-start; gap: 8px; margin-bottom: 44px; padding: 18px 0; }
  .section-nav a { font-size: .76rem; padding-inline: 13px; }
  h2 { font-size: 2.2rem; }
  .eyebrow { font-size: .67rem; }
  .section-intro { margin-bottom: 26px; }
  .section-intro > p:last-child { font-size: .94rem; }
  .features { padding-bottom: 40px; }
  .feature-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .feature-card { position: relative; padding: 23px 22px 23px 82px; border-radius: 22px; }
  .feature-icon { position: absolute; top: 24px; left: 21px; margin-bottom: 0; width: 42px; height: 42px; border-radius: 13px; }
  .feature-card h3 { font-size: 1.08rem; margin-bottom: 8px; }
  .feature-card p { font-size: .9rem; line-height: 1.65; }
  .buddy-section { gap: 20px; padding: 18px 0 48px; }
  .buddy-copy h2 { max-width: 18ch; }
  .buddy-copy .intro { font-size: 1rem; }
  .buddy-copy .buddy-parent-note { font-size: .92rem; }
  .buddy-copy .buddy-collection-note { font-size: .88rem; }
  .buddy-copy .quiet { font-size: .75rem; }
  .buddy-composition figcaption { margin-top: 20px; font-size: .76rem; padding-inline: 9px; }
  .buddy-copy p, .together-copy p { font-size: .95rem; }
  .check-list { margin-top: 20px; }
  .check-list li { font-size: .9rem; }
  .everyday-section { padding-bottom: 48px; }
  .everyday-grid { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .story-card { border-radius: 26px; }
  .story-copy { padding: 25px; }
  .story-copy h3 { font-size: 1.3rem; }
  .mini-tags span { font-size: .7rem; }
  .together-section { grid-template-columns: minmax(0, 1fr); gap: 22px; padding: 0 0 48px; }
  .together-art { border-radius: 26px; }
  .privacy-band { padding: 30px 26px; border-radius: 28px; gap: 28px; margin-bottom: 48px; }
  .privacy-band h2 { font-size: 2rem; }
  .privacy-points { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .privacy-points article { padding: 0 0 0 36px; }
  .privacy-points article > svg, .privacy-points article > .feature-icon { top: 1px; width: 21px; height: 21px; }
  .privacy-points p { font-size: .87rem; }
  .faq-section { padding-bottom: 46px; gap: 10px; }
  .faq-list summary { font-size: .92rem; gap: 18px; }
  .faq-list details > p { font-size: .9rem; padding-right: 10px; }
  .pilot-banner { padding: 34px 24px; border-radius: 28px; margin-bottom: 46px; }
  .pilot-banner h2 { font-size: 2rem; }
  .pilot-banner > div > p { font-size: .94rem; }
  .pilot-banner .button { width: 100%; }
  .support-grid { grid-template-columns: minmax(0, 1fr); }
  .contact-card { padding: 28px; }
  .support-banner { padding: 28px; margin-bottom: 42px; }
  .support-banner .button { max-width: 100%; }
  .site-footer { display: block; padding-bottom: 32px; }
  .site-footer > p { margin-top: 12px; }
  .site-footer nav { justify-content: flex-start; margin-top: 18px; gap: 4px; }
  .site-footer nav > a { padding-left: 0; padding-right: 16px; }
  .page-intro { padding-top: 40px; }
  .legal-heading { display: block; padding: 32px 0 20px; }
  .legal-heading .eyebrow { margin-bottom: 12px; }
  .legal-toc ol { columns: 1; }
  .legal-document { font-size: .98rem; }
  .legal-document blockquote { padding: 18px; }
  .legal-layout { margin-bottom: 50px; }
}

@media (max-width: 380px) {
  .site-header nav { width: 100%; margin-left: 0; justify-content: space-between; }
  .site-header nav > a { padding-inline: 8px; }
  .hero { padding-top: 20px; }
  .hero h1 { font-size: 2.65rem; }
  .hero .actions { gap: 8px; }
  .hero .actions .button { width: 100%; }
  .hero .actions .text-link { padding: 4px; }
  .hero-art { border-radius: 60px 60px 24px 24px; }
  .day-peek { padding: 17px 16px 13px; }
  .feature-card { padding: 21px 18px 21px 74px; }
  .feature-icon { left: 17px; width: 39px; height: 39px; }
  .privacy-band { padding: 28px 22px; }
  .button { gap: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
  .buddy-motion-toggle, .buddy-motion-control { display: none; }
}

@media print {
  .buddy-motion-toggle, .buddy-motion-control, .buddy-motion-viewport { display: none; }
  .buddy-still { animation: none !important; opacity: 1; }
  .site-header, .site-footer, .legal-heading, .legal-toc, .skip-link { display: none; }
  .legal-layout { display: block; }
  main { width: 100%; }
  .legal-document { font-size: 10pt; }
  .table-scroll { overflow: visible; }
  .table-scroll table { min-width: 0; }
  .legal-document h2 { break-after: avoid; }
  body { background: white; }
}
