@font-face {
  font-family: "DM Sans";
  src: url("fonts/dm-sans-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
}

@font-face {
  font-family: "Instrument Serif";
  src: url("fonts/instrument-serif-italic-latin.woff2") format("woff2");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}

:root {
  color-scheme: light;
  --cream: #f8f7f0;
  --ink: #203d34;
  --ink-soft: #53675d;
  --pink: #e6a6c2;
  --lilac: #d8ccef;
  --pistachio: #dce8b1;
  --butter: #f3dfa2;
  --paper: #fffdf7;
  --line: rgba(32, 61, 52, .17);
  --display: "Instrument Serif", Georgia, serif;
  --body: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --radius: 24px;
  font-family: var(--body);
  color: var(--ink);
  background: var(--cream);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; min-width: 320px; overflow-x: clip; font-size: 16px; line-height: 1.6; }
button, input, select, textarea { font: inherit; color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:disabled { cursor: default; }
a { color: inherit; text-decoration: none; }
img, video, svg { max-width: 100%; }
img, video { display: block; }
button svg, a svg { flex-shrink: 0; }
:where(h1, h2, h3, h4, p, figure) { margin: 0; }
:where(h1, h2, h3, h4) { font-weight: 600; }
:where(button, a, input, select, textarea):focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 5px;
}
::selection { color: var(--ink); background: var(--pink); }
[hidden] { display: none !important; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.skip-link {
  position: fixed;
  z-index: 100;
  top: 14px;
  left: 20px;
  padding: 10px 18px;
  border-radius: 10px;
  background: var(--ink);
  color: var(--cream);
  transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }

/* A quiet paper canvas, with room for the little details. */
.wrap { width: min(1240px, calc(100% - 100px)); margin-inline: auto; }
.icon-library { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.eyebrow { display: flex; align-items: center; gap: 9px; font-size: 10px; font-weight: 700; letter-spacing: .145em; line-height: 1.5; }
.little-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ink); }
h2 { font-size: 48px; font-weight: 500; line-height: 1.13; letter-spacing: -.052em; }
h2 em { font-family: var(--display); font-size: 1.17em; font-weight: 400; letter-spacing: -.025em; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 20px; min-height: 54px; padding: 14px 23px; border: 1px solid transparent; border-radius: 11px; font-size: 14px; font-weight: 600; line-height: 1.4; transition: transform .2s, background .2s, box-shadow .2s; }
.button-green { background: var(--ink); color: var(--cream); }
.button-green:hover { background: #315344; transform: translateY(-3px); box-shadow: 0 7px 15px #203d3415; }
.button .icon { width: 20px; height: 20px; }

/* Header and the first little hello. */
.site-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-block: 25px; }
.brand { display: inline-flex; align-items: center; gap: 11px; flex-shrink: 0; font-size: 23px; font-weight: 750; letter-spacing: -.05em; line-height: 1.1; }
.brand img { border-radius: 12px; }
.brand-dot { color: #b76183; }
.main-nav { display: flex; align-items: center; gap: 34px; font-size: 13px; font-weight: 500; }
.main-nav > a:not(.nav-cta) { padding-block: 10px; text-underline-offset: 6px; }
.main-nav > a:not(.nav-cta):hover { text-decoration: underline; }
.nav-cta { display: inline-flex; align-items: center; gap: 12px; padding: 11px 17px; border: 1px solid var(--line); border-radius: 9px; transition: background .2s; }
.nav-cta:hover { background: var(--pistachio); }
.nav-cta .icon { width: 17px; height: 17px; }
.hero { display: grid; grid-template-columns: 1.08fr 1fr; align-items: center; gap: 24px; min-height: 680px; padding-bottom: 28px; }
.hero-copy { position: relative; z-index: 5; min-width: 0; padding-bottom: 12px; }
.hero-copy > .eyebrow { margin-bottom: 26px; }
.hero h1 { font-size: clamp(82px, 7.3vw, 106px); font-weight: 500; letter-spacing: -.073em; line-height: .98; }
.hero h1 em { color: #b96387; font-family: var(--display); font-size: 1.1em; font-weight: 400; letter-spacing: -.045em; }
.pink-period { color: #b96387; }
.hero-description { max-width: 360px; margin-top: 25px; font-size: 17px; line-height: 1.7; color: var(--ink-soft); }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 25px; margin-top: 28px; }
.watch-link { display: inline-flex; align-items: center; gap: 9px; font-size: 13px; font-weight: 600; }
.play-dot { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 50%; transition: background .2s; }
.play-dot .icon { width: 12px; height: 12px; fill: currentColor; stroke-width: 0; margin-left: 2px; }
.watch-link:hover .play-dot { background: var(--pink); }
.hero-footnote { margin-top: 23px; color: var(--ink-soft); font-size: 11px; }
.hero-footnote span { margin-left: 6px; }
.hero-art { position: relative; isolation: isolate; min-width: 0; height: 650px; }
.art-oval { position: absolute; z-index: -1; top: 65px; left: 50%; width: 410px; max-width: 96%; height: 530px; border-radius: 47% 52% 46% 45%; background: var(--pistachio); transform: translateX(-50%) rotate(-18deg); }
.phone-frame { padding: 8px; border: 1px solid #203d3412; border-radius: 39px; background: var(--paper); box-shadow: 0 25px 45px #203d3426, 0 3px 7px #203d3410; }
.phone-frame img { width: 100%; height: auto; border-radius: 30px; }
.hero-phone { position: absolute; z-index: 2; top: 6px; left: 50%; width: 274px; transform: translateX(-50%) rotate(8deg); }
.art-flower { position: absolute; z-index: 3; top: 48px; right: -3px; width: 134px; height: 134px; transform: rotate(8deg); }
.art-plus { position: absolute; z-index: 3; left: 17px; bottom: 115px; width: 57px; height: 57px; transform: rotate(14deg); }
.art-plus::before, .art-plus::after { content: ""; position: absolute; border-radius: 5px; background: #d9b03e; }
.art-plus::before { width: 17px; height: 100%; left: 20px; }
.art-plus::after { width: 100%; height: 17px; top: 20px; }
.art-scribble { position: absolute; z-index: 0; top: 257px; left: 3px; width: 115px; height: 115px; fill: none; stroke: #909871; stroke-width: 2.5; stroke-linecap: round; }
.paper-note { position: absolute; z-index: 4; display: flex; align-items: center; gap: 12px; padding: 18px; border: 1px solid #d8d7bd; border-radius: 3px; background: #fffdf3; box-shadow: 0 8px 17px #203d3410; font-size: 13px; line-height: 1.5; }
.note-top { top: 108px; left: -5px; transform: rotate(-9deg); }
.note-top .icon { width: 21px; height: 24px; flex-shrink: 0; }
.note-top strong { font-weight: 600; }
.note-bottom { right: -9px; bottom: 99px; transform: rotate(8deg); }
.note-bottom em { font-family: var(--display); font-size: 27px; line-height: 1.2; }
.note-bottom > svg { width: 31px; height: 32px; fill: none; stroke: #b96387; stroke-width: 2.6; }
.theme-picker { position: absolute; bottom: 1px; left: 50%; display: flex; gap: 3px; padding: 4px; border: 1px solid var(--line); border-radius: 99px; background: var(--paper); transform: translateX(-50%); }
.theme-picker button { display: inline-flex; align-items: center; gap: 6px; min-height: 35px; padding: 7px 13px; border: 0; border-radius: 99px; background: transparent; font-size: 11px; font-weight: 600; transition: color .2s, background .2s; }
.theme-picker button[aria-pressed="true"] { background: var(--ink); color: var(--cream); }
.theme-picker button[aria-pressed="false"]:hover { background: #eeeee3; }
.theme-picker .icon { width: 15px; height: 15px; }

/* A little ribbon and counters you can touch. */
.life-ribbon { overflow: hidden; margin-top: 24px; padding-block: 20px; border-block: 1px solid var(--line); background: #eeeedf; transform: skewY(-.8deg); }
.ribbon-inner { display: flex; align-items: center; justify-content: center; gap: 42px; width: max-content; min-width: 100%; padding-inline: 30px; font-size: 17px; font-weight: 500; letter-spacing: -.02em; white-space: nowrap; }
.ribbon-inner b { color: #ac6484; font-size: 29px; font-weight: 400; line-height: 1; }
.section-space { padding-top: 100px; padding-bottom: 105px; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 45px; margin-bottom: 48px; }
.section-heading .eyebrow { margin-bottom: 17px; }
.section-heading > p { flex-shrink: 0; padding-bottom: 5px; color: var(--ink-soft); font-size: 14px; line-height: 1.8; }
.counter-playground { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; padding-block: 9px; }
.count-card { --tilt: -3deg; display: flex; flex-direction: column; min-width: 0; min-height: 255px; padding: 23px 24px 22px; border: 1px solid #203d3410; border-radius: 22px; box-shadow: 0 7px 0 #203d3408; transform: rotate(var(--tilt)); transition: transform .22s, box-shadow .22s; }
.count-card:nth-child(2) { --tilt: 2deg; }
.count-card:nth-child(3) { --tilt: -2deg; }
.count-card:nth-child(4) { --tilt: 3deg; }
.count-card:hover, .count-card:focus-within { transform: translateY(-5px) rotate(0); box-shadow: 0 12px 20px #203d3410; }
.count-pink { background: #edc3d4; }
.count-blue { background: #cce0e6; }
.count-lilac { background: var(--lilac); }
.count-yellow { background: var(--butter); }
.count-card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 19px; }
.count-card-top > .icon { width: 25px; height: 25px; }
.demo-add { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 1px solid #203d3440; border-radius: 50%; background: #ffffff20; transition: background .18s, color .18s, transform .18s; }
.demo-add .icon { width: 18px; height: 18px; }
.demo-add:not(:disabled):hover { color: var(--cream); background: var(--ink); transform: rotate(90deg); }
.demo-add:not(:disabled):active { transform: rotate(90deg) scale(.88); }
.demo-add:disabled { opacity: .65; }
.count-card > p { font-size: 16px; font-weight: 600; letter-spacing: -.025em; }
.count-number { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; margin-top: 8px; margin-bottom: 17px; font-size: 65px; font-weight: 500; line-height: 1.08; letter-spacing: -.06em; font-variant-numeric: tabular-nums; }
.count-unit { font-size: 11px; font-weight: 500; letter-spacing: 0; }
.card-footnote { margin-top: auto; font-size: 11px; line-height: 1.5; }
.countdown-label { padding: 4px 7px; border: 1px solid #203d3430; border-radius: 99px; font-size: 8px; font-weight: 600; letter-spacing: .07em; }
.playground-caption { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; margin-top: 27px; color: var(--ink-soft); font-size: 11px; }
.hand-arrow { display: inline-block; margin-right: 8px; color: var(--ink); font-family: var(--display); font-size: 25px; line-height: .7; transform: rotate(-12deg); }
.text-button { flex-shrink: 0; padding: 6px 0; border: 0; border-bottom: 1px solid var(--line); background: transparent; font-size: 11px; }
.text-button:hover { color: var(--ink); border-color: var(--ink); }
.count-number [data-value] { display: inline-block; transform-origin: 50% 70%; }
.count-number .count-bump { animation: count-pop .22s ease-out; }
@keyframes count-pop { 50% { transform: translateY(-3px) scale(1.09); } }

/* The real app, inside a quiet frame. The stage stays steady between devices. */
.tour-section { overflow: clip; background: var(--ink); color: var(--cream); }
.tour-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 64px; padding-block: 76px; }
.tour-copy { max-width: 530px; }
.tour-copy > .eyebrow { margin-bottom: 23px; color: #cbd5ba; }
.tour-copy h2 { font-size: 62px; }
.tour-copy h2 em { color: var(--pink); }
.tour-intro { margin-top: 24px; color: #d0d8cd; font-size: 19px; line-height: 1.6; }
.tour-steps { display: grid; gap: 25px; list-style: none; padding: 0; margin: 34px 0 0; }
.tour-steps li { display: grid; grid-template-columns: 29px minmax(0, 1fr); gap: 15px; }
.tour-steps li > span { padding-top: 2px; color: var(--pink); font-size: 11px; }
.tour-steps h3 { font-size: 15px; font-weight: 600; letter-spacing: -.015em; }
.tour-steps p { margin-top: 4px; color: #c4d1c7; font-size: 13px; line-height: 1.7; }
.video-note { margin-top: 34px; color: #c4d1c7; font-size: 10px; }
.video-note span { margin-left: 5px; color: #e1e8d8; }
.tour-player-area { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: 604px auto auto; align-items: center; justify-items: center; align-content: center; gap: 16px; min-width: 0; min-height: 704px; }
.tour-star { position: absolute; z-index: 0; top: 18px; left: 5px; width: 109px; height: 109px; color: var(--butter); transform: rotate(8deg); }
.video-frame { --screen-height: 550px; --screen-ratio: .461538; position: relative; z-index: 1; width: calc(var(--screen-height) * var(--screen-ratio) + 16px); max-width: 100%; align-self: center; overflow: hidden; padding: 7px; border: 1px solid #ffffff40; border-radius: 33px; background: #f6f6ee; box-shadow: 0 20px 45px #0c221c66; }
.video-frame[data-device="android"] { --screen-ratio: .5625; }
.video-frame[data-device="ipad"] { --screen-ratio: .75; border-radius: 25px; }
.video-frame video { width: 100%; height: auto; aspect-ratio: var(--screen-ratio); border-radius: 25px; background: #f7f8f7; object-fit: contain; }
.video-frame[data-device="ipad"] video { border-radius: 17px; }
.video-play { position: absolute; inset: 7px; display: grid; place-items: center; width: calc(100% - 14px); height: calc(100% - 14px); padding: 0; border: 0; border-radius: 25px; background: #112e2020; }
.video-play > span { display: grid; place-items: center; width: 69px; height: 69px; border: 1px solid #203d3414; border-radius: 50%; background: var(--cream); box-shadow: 0 8px 25px #10251d30; transition: transform .2s, background .2s; }
.video-play .icon { width: 26px; height: 26px; margin-left: 4px; color: var(--ink); fill: var(--ink); stroke-width: 0; }
.video-play:hover > span { transform: scale(1.08); background: var(--pistachio); }
.platform-picker { display: flex; justify-content: center; gap: 4px; padding: 4px; border: 1px solid #e0e8d844; border-radius: 99px; }
.platform-picker button { min-width: 77px; min-height: 35px; padding: 7px 14px; border: 0; border-radius: 99px; background: transparent; color: #e0e8d8; font-size: 11px; font-weight: 500; transition: background .2s, color .2s; }
.platform-picker button[aria-pressed="true"] { background: var(--pistachio); color: var(--ink); }
.platform-picker button[aria-pressed="false"]:hover { background: #ffffff14; }
.video-transcript { width: min(345px, 100%); align-self: start; color: #c4d1c7; font-size: 11px; text-align: center; }
.video-transcript summary { cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.video-transcript summary:focus-visible { outline: 2px solid var(--pistachio); outline-offset: 5px; }
.video-transcript p { margin-top: 12px; line-height: 1.8; }

/* A few pages from an everyday story. */
.screen-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.gallery-card { position: relative; min-width: 0; height: 568px; overflow: hidden; border-radius: 25px; }
.gallery-peach { background: #efd9cd; }
.gallery-green { background: #dce7c7; }
.gallery-purple { background: #dfd6ed; }
.gallery-card figcaption { position: relative; z-index: 1; padding: 30px 27px 0; }
.gallery-card .eyebrow { font-size: 9px; letter-spacing: .12em; }
.gallery-card h3 { margin-top: 13px; font-size: 23px; font-weight: 500; line-height: 1.25; letter-spacing: -.04em; }
.gallery-card figcaption p { margin-top: 8px; font-size: 12px; line-height: 1.6; color: #44594f; }
.gallery-image { position: absolute; top: 182px; left: 50%; display: block; width: min(270px, calc(100% - 76px)); padding: 6px; border: 1px solid #203d3410; border-radius: 30px; background: var(--paper); box-shadow: 0 16px 24px #203d3420; transform: translateX(-50%); transition: transform .25s; }
.gallery-image img { width: 100%; height: auto; border-radius: 23px; }
.gallery-image:hover { transform: translate(-50%, -9px); }
.enlarge-mark { position: absolute; top: 17px; right: -14px; display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid #203d3433; border-radius: 50%; background: var(--paper); font-size: 20px; line-height: 1; }
.gallery-card:focus-within { outline: 3px solid var(--ink); outline-offset: 5px; }
.gallery-caption { margin-top: 25px; color: var(--ink-soft); text-align: center; font-size: 11px; }
.gallery-caption span { margin-left: 5px; }
.thoughtful-section { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 80px; padding-top: 5px; padding-bottom: 110px; }
.thoughtful-art { position: relative; min-width: 0; height: 588px; isolation: isolate; }
.thoughtful-art::before { content: ""; position: absolute; z-index: -1; top: 56px; left: 7px; width: 94%; height: 457px; border-radius: 46% 49% 44% 51%; background: #e9e3ee; transform: rotate(14deg); }
.tablet-frame { position: absolute; top: 41px; left: 47%; width: 350px; max-width: 82%; padding: 9px; border: 1px solid #203d3414; border-radius: 27px; background: var(--paper); box-shadow: 0 22px 36px #203d3420; transform: translateX(-50%) rotate(-7deg); }
.tablet-frame img { width: 100%; height: auto; border-radius: 17px; }
.tablet-note { position: absolute; right: 1px; bottom: 56px; z-index: 2; padding: 15px 21px; border: 1px solid #d8d7bd; border-radius: 3px; background: #fffdf3; box-shadow: 0 7px 15px #203d3410; font-size: 13px; line-height: 1.4; transform: rotate(7deg); }
.tablet-note em { font-family: var(--display); font-size: 31px; }
.tablet-spark { position: absolute; top: 14px; right: 1px; color: #c685a6; font-size: 107px; line-height: 1; transform: rotate(12deg); }
.thoughtful-copy > .eyebrow { margin-bottom: 19px; }
.thoughtful-copy h2 { font-size: 52px; }
.detail-list { display: grid; gap: 20px; margin-top: 31px; }
.detail-list > div { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 17px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.detail-list > div:last-child { padding-bottom: 0; border: 0; }
.detail-list > div > .icon { width: 23px; height: 23px; margin-top: 2px; }
.detail-list h3 { font-size: 15px; font-weight: 600; letter-spacing: -.015em; }
.detail-list p { margin-top: 6px; color: var(--ink-soft); font-size: 13px; line-height: 1.75; }

/* An invitation, and a small goodbye. */
.download-section { overflow: clip; background: var(--pistachio); }
.download-inner { position: relative; padding-block: 83px 75px; text-align: center; }
.download-inner > .eyebrow { position: relative; z-index: 1; justify-content: center; margin-bottom: 19px; }
.download-inner h2 { position: relative; z-index: 1; font-size: 72px; line-height: 1.04; }
.download-inner > p:not(.eyebrow):not(.download-note) { position: relative; z-index: 1; margin-top: 25px; font-size: 15px; }
.download-buttons { position: relative; z-index: 1; display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; margin-top: 29px; margin-bottom: 19px; }
.store-button { display: inline-flex; align-items: center; gap: 10px; width: 230px; max-width: 100%; min-height: 69px; padding: 13px 16px; border: 1px solid var(--ink); border-radius: 12px; background: var(--ink); color: var(--cream); text-align: left; transition: transform .2s, box-shadow .2s, background .2s; }
.store-button:hover { transform: translateY(-3px); background: #315344; box-shadow: 0 7px 15px #203d341a; }
.store-button > .icon { width: 28px; height: 31px; }
.store-button span { display: grid; gap: 2px; }
.store-button small { font-size: 9px; line-height: 1.2; }
.store-button strong { font-size: 21px; font-weight: 500; line-height: 1.15; letter-spacing: -.025em; white-space: nowrap; }
.store-button .store-arrow { width: 17px; height: 17px; margin-left: auto; }
.store-button .google-play-icon { stroke-width: 1.3; }
.download-note { position: relative; z-index: 1; font-size: 10px; letter-spacing: .05em; }
.download-flower { position: absolute; top: 53px; left: 53px; color: #b76587; font-size: 146px; line-height: 1; transform: rotate(10deg); }
.download-loop { position: absolute; right: 32px; bottom: 41px; width: 137px; height: 153px; fill: none; stroke: #687e4f; stroke-width: 2.5; stroke-linecap: round; }
.site-footer { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; column-gap: 27px; row-gap: 23px; padding-block: 35px 22px; }
.footer-brand { font-size: 19px; gap: 8px; }
.footer-brand img { border-radius: 9px; }
.site-footer > p { color: var(--ink-soft); font-size: 11px; }
.site-footer nav { display: flex; align-items: center; gap: 24px; font-size: 11px; }
.site-footer nav a:hover, .site-footer small a:hover { text-decoration: underline; text-underline-offset: 4px; }
.site-footer > small { grid-column: 1 / -1; padding-top: 16px; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: 10px; }

/* Full screenshots remain readable, with native dialog behavior. */
.image-dialog { width: min(550px, calc(100vw - 36px)); max-width: calc(100vw - 36px); max-height: calc(100dvh - 30px); padding: 22px; overflow: auto; border: 1px solid #ffffff40; border-radius: 23px; background: var(--cream); color: var(--ink); box-shadow: 0 30px 90px #081c1750; }
.image-dialog::backdrop { background: #0b241ccc; backdrop-filter: blur(7px); }
.image-dialog[open] { animation: dialog-enter .18s ease-out; }
.dialog-image-wrap { display: flex; align-items: center; justify-content: center; height: min(74dvh, 780px); min-height: 0; }
.dialog-image-wrap img { width: auto; height: 100%; max-width: 100%; object-fit: contain; border-radius: 12px; }
.dialog-close { position: absolute; z-index: 2; top: 12px; right: 12px; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: var(--cream); box-shadow: 0 3px 10px #203d3412; }
.dialog-close .icon { width: 19px; height: 19px; }
.dialog-footer { display: grid; grid-template-columns: 38px minmax(0, 1fr) 38px; align-items: center; gap: 16px; margin-top: 18px; }
.dialog-footer > button { width: 38px; height: 38px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: var(--ink); color: var(--cream); font-size: 20px; line-height: 1; }
.dialog-footer > button:hover, .dialog-close:hover { background: var(--pistachio); color: var(--ink); }
.dialog-footer p { font-size: 12px; line-height: 1.5; text-align: center; }
body:has(.image-dialog[open]) { overflow: hidden; }
@keyframes dialog-enter { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: translateY(0); } }

@media (min-width: 1500px) {
  .hero h1 { font-size: 106px; }
}

@media (max-width: 1100px) {
  .wrap { width: calc(100% - 72px); }
  .hero { gap: 15px; min-height: 632px; }
  .hero h1 { font-size: 86px; }
  .hero-art { height: 610px; }
  .hero-phone { top: 12px; width: 251px; }
  .art-oval { top: 77px; width: 390px; height: 471px; }
  .art-flower { width: 113px; height: 113px; top: 52px; right: -11px; }
  .note-top { left: -10px; top: 112px; gap: 8px; padding: 14px; font-size: 11px; }
  .note-bottom { right: -9px; bottom: 87px; padding: 13px; font-size: 11px; }
  .note-bottom em { font-size: 25px; }
  .art-plus { left: 0; bottom: 125px; }
  .hero-actions { gap: 18px; }
  .hero-description { max-width: 332px; font-size: 16px; }
  .hero .button { gap: 14px; padding-inline: 19px; font-size: 13px; }
  .watch-link { font-size: 12px; }
  .hero-footnote { font-size: 10px; }
  .section-space { padding-block: 88px; }
  .section-heading { gap: 28px; }
  .section-heading h2 { font-size: 41px; }
  .section-heading > p { font-size: 12px; }
  .counter-playground { gap: 17px; }
  .count-card { padding: 21px 20px; min-height: 244px; }
  .count-card > p { font-size: 15px; }
  .count-number { font-size: 56px; gap: 5px; }
  .card-footnote { font-size: 10px; }
  .tour-inner { gap: 35px; }
  .tour-copy h2 { font-size: 52px; }
  .tour-star { left: -3px; width: 90px; height: 90px; }
  .gallery-card { height: 528px; }
  .gallery-card figcaption { padding: 26px 23px 0; }
  .gallery-card h3 { font-size: 21px; }
  .gallery-image { top: 192px; width: calc(100% - 55px); }
  .thoughtful-section { gap: 50px; padding-bottom: 90px; }
  .thoughtful-art { height: 539px; }
  .tablet-frame { width: 325px; }
  .tablet-note { right: -3px; bottom: 48px; padding: 13px 17px; }
  .tablet-note em { font-size: 27px; }
  .tablet-spark { font-size: 89px; right: -6px; }
  .thoughtful-copy h2 { font-size: 47px; }
  .download-flower { left: 0; font-size: 117px; }
  .download-loop { right: 0; width: 115px; }
  .site-footer { column-gap: 20px; }
}

@media (max-width: 900px) {
  .wrap { width: calc(100% - 56px); }
  .main-nav { gap: 22px; }
  .hero { grid-template-columns: minmax(0, 1fr); gap: 18px; padding-top: 32px; padding-bottom: 33px; }
  .hero-copy { padding-bottom: 0; text-align: center; }
  .hero-copy > .eyebrow { justify-content: center; margin-bottom: 22px; }
  .hero h1 { font-size: 95px; }
  .hero-description { max-width: 390px; margin: 26px auto 0; font-size: 17px; }
  .hero-actions { justify-content: center; gap: 24px; margin-top: 25px; }
  .hero .button { padding-inline: 22px; font-size: 14px; }
  .watch-link { font-size: 13px; }
  .hero-footnote { font-size: 11px; }
  .hero-art { width: min(520px, 100%); height: 642px; margin: 15px auto 0; }
  .hero-phone { top: 8px; width: 269px; }
  .art-oval { top: 76px; width: 389px; height: 511px; }
  .art-flower { top: 43px; right: 6px; width: 124px; height: 124px; }
  .note-top { top: 106px; left: 3px; padding: 16px; font-size: 12px; }
  .note-bottom { right: 0; bottom: 91px; font-size: 12px; }
  .art-plus { left: 15px; bottom: 109px; }
  .life-ribbon { margin-top: 14px; padding-block: 18px; }
  .ribbon-inner { gap: 29px; font-size: 15px; }
  .section-space { padding-block: 78px; }
  .section-heading { display: block; margin-bottom: 40px; }
  .section-heading h2 { font-size: 45px; }
  .section-heading > p { margin-top: 21px; font-size: 14px; }
  .counter-playground { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
  .count-card { min-height: 251px; padding: 23px 26px; }
  .count-card > p { font-size: 18px; }
  .count-number { font-size: 70px; }
  .card-footnote { font-size: 12px; }
  .countdown-label { font-size: 9px; }
  .tour-inner { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-block: 75px; }
  .tour-copy { width: 100%; max-width: 590px; margin-inline: auto; text-align: center; }
  .tour-copy > .eyebrow { justify-content: center; }
  .tour-copy h2 { font-size: 61px; }
  .tour-intro { margin-top: 23px; }
  .tour-steps { max-width: 380px; margin: 33px auto 0; text-align: left; }
  .video-note { margin-top: 25px; }
  .tour-player-area { width: 100%; max-width: 510px; margin-inline: auto; }
  .tour-star { top: 29px; left: 18px; width: 99px; height: 99px; }
  .screen-gallery { grid-template-columns: minmax(0, 1fr); max-width: 515px; margin-inline: auto; gap: 25px; }
  .gallery-card { height: 581px; }
  .gallery-card figcaption { padding: 30px 32px 0; }
  .gallery-card h3 { font-size: 27px; }
  .gallery-card figcaption p { font-size: 14px; }
  .gallery-card .eyebrow { font-size: 10px; }
  .gallery-image { top: 179px; width: 271px; }
  .thoughtful-section { grid-template-columns: minmax(0, 1fr); gap: 21px; padding-bottom: 81px; }
  .thoughtful-art { width: min(475px, 100%); height: 570px; margin-inline: auto; }
  .tablet-frame { width: 348px; }
  .tablet-note { right: 0; bottom: 55px; }
  .tablet-spark { right: 1px; }
  .thoughtful-copy { max-width: 590px; margin-inline: auto; }
  .thoughtful-copy h2 { font-size: 51px; }
  .detail-list { gap: 22px; }
  .detail-list h3 { font-size: 16px; }
  .detail-list p { font-size: 14px; }
  .download-inner { padding-block: 72px 65px; }
  .download-inner h2 { font-size: 65px; }
  .download-flower { top: 58px; left: -9px; font-size: 85px; }
  .download-loop { bottom: 36px; right: -6px; width: 90px; opacity: .7; }
  .site-footer { grid-template-columns: auto auto; justify-content: space-between; row-gap: 18px; }
  .site-footer > p { grid-column: 1 / -1; grid-row: 2; }
  .site-footer > small { grid-row: 3; }
}

@media (max-width: 600px) {
  html { scroll-padding-top: 25px; }
  .wrap { width: calc(100% - 40px); }
  .site-header { gap: 12px; padding-block: 20px; }
  .brand { gap: 9px; font-size: 20px; }
  .brand img { width: 36px; height: 36px; border-radius: 10px; }
  .main-nav > a:not(.nav-cta) { display: none; }
  .nav-cta { padding: 10px 13px; gap: 7px; font-size: 11px; }
  .nav-cta .icon { width: 16px; height: 16px; }
  .hero { padding-top: 28px; padding-bottom: 27px; gap: 15px; }
  .hero h1 { font-size: clamp(61px, 16.8vw, 88px); letter-spacing: -.069em; }
  .hero h1 em { font-size: 1.1em; }
  .hero-copy > .eyebrow { margin-bottom: 22px; font-size: 8px; letter-spacing: .115em; }
  .hero-description { max-width: 326px; margin-top: 23px; font-size: 15px; line-height: 1.75; }
  .hero-actions { gap: 17px; margin-top: 25px; }
  .hero .button { gap: 14px; min-height: 50px; padding: 12px 17px; font-size: 12px; }
  .watch-link { gap: 7px; font-size: 11px; }
  .play-dot { width: 28px; height: 28px; }
  .hero-footnote { margin-top: 18px; font-size: 9px; }
  .hero-footnote span { margin-left: 4px; }
  .hero-art { height: 574px; margin-top: 12px; }
  .hero-phone { top: 11px; width: 236px; border-radius: 35px; }
  .hero-phone img { border-radius: 26px; }
  .art-oval { top: 76px; width: calc(100% - 48px); max-width: 305px; height: 423px; transform: translateX(-50%) rotate(-12deg); }
  .art-flower { width: 95px; height: 95px; top: 33px; right: -2px; }
  .note-top { left: -3px; top: 80px; padding: 12px; gap: 8px; font-size: 10px; }
  .note-top .icon { width: 16px; height: 19px; }
  .note-bottom { right: -3px; bottom: 96px; gap: 6px; padding: 12px; font-size: 10px; }
  .note-bottom em { font-size: 24px; }
  .note-bottom > svg { width: 24px; height: 26px; }
  .art-plus { width: 42px; height: 42px; left: 0; bottom: 147px; }
  .art-plus::before { width: 12px; left: 15px; }
  .art-plus::after { height: 12px; top: 15px; }
  .art-scribble { top: 259px; left: -8px; width: 80px; height: 80px; }
  .theme-picker { bottom: 2px; }
  .theme-picker button { min-height: 34px; padding: 7px 12px; }
  .life-ribbon { padding-block: 17px; margin-top: 6px; }
  .ribbon-inner { gap: 24px; justify-content: flex-start; padding-inline: 24px; font-size: 13px; }
  .ribbon-inner b { font-size: 24px; }
  .section-space { padding-block: 65px; }
  .section-heading { margin-bottom: 34px; }
  .section-heading .eyebrow { font-size: 8px; margin-bottom: 17px; }
  .section-heading h2 { font-size: 35px; line-height: 1.17; letter-spacing: -.05em; }
  .section-heading > p { margin-top: 20px; font-size: 13px; }
  .counter-playground { gap: 20px 16px; padding-inline: 3px; }
  .count-card { min-height: 223px; padding: 18px 17px; border-radius: 18px; }
  .count-card-top { margin-bottom: 17px; gap: 6px; }
  .count-card-top > .icon { width: 23px; height: 23px; }
  .demo-add { width: 30px; height: 30px; }
  .demo-add .icon { width: 17px; height: 17px; }
  .count-card > p { font-size: 14px; }
  .count-number { font-size: 48px; gap: 5px; margin-top: 11px; margin-bottom: 14px; }
  .count-unit { font-size: 10px; }
  .card-footnote { font-size: 9px; }
  .countdown-label { padding: 4px; font-size: 7px; letter-spacing: .03em; }
  .playground-caption { align-items: flex-start; gap: 13px; margin-top: 23px; font-size: 10px; }
  .playground-caption p { max-width: 220px; }
  .text-button { padding-top: 0; font-size: 10px; }
  .tour-inner { gap: 28px; padding-block: 65px 54px; }
  .tour-copy > .eyebrow { font-size: 8px; margin-bottom: 19px; }
  .tour-copy h2 { font-size: 47px; }
  .tour-intro { font-size: 16px; margin-top: 21px; }
  .tour-steps { gap: 23px; max-width: 310px; margin-top: 30px; }
  .tour-steps li { grid-template-columns: 22px minmax(0, 1fr); gap: 12px; }
  .tour-steps h3 { font-size: 14px; }
  .tour-steps p { font-size: 12px; }
  .video-note { margin-top: 27px; font-size: 9px; }
  .tour-player-area { grid-template-rows: 557px auto auto; gap: 15px; min-height: 649px; }
  .video-frame { --screen-height: 510px; border-radius: 30px; }
  .video-frame video { border-radius: 22px; }
  .video-frame[data-device="ipad"] { border-radius: 24px; }
  .video-frame[data-device="ipad"] video { border-radius: 16px; }
  .tour-star { top: 28px; left: -1px; width: 73px; height: 73px; }
  .video-play { border-radius: 23px; }
  .video-play > span { width: 61px; height: 61px; }
  .platform-picker button { min-width: 73px; min-height: 34px; padding: 7px 13px; }
  .video-transcript { font-size: 10px; max-width: 295px; }
  .screen-gallery { gap: 22px; }
  .gallery-card { height: 552px; border-radius: 23px; }
  .gallery-card figcaption { padding: 27px 25px 0; }
  .gallery-card .eyebrow { font-size: 8px; }
  .gallery-card h3 { font-size: 24px; margin-top: 12px; }
  .gallery-card figcaption p { font-size: 12px; }
  .gallery-image { top: 184px; width: min(265px, calc(100% - 65px)); }
  .gallery-caption { max-width: 250px; margin: 22px auto 0; font-size: 10px; }
  .thoughtful-section { gap: 23px; padding-top: 0; padding-bottom: 68px; }
  .thoughtful-art { height: 476px; }
  .thoughtful-art::before { top: 57px; left: 4px; width: 90%; height: 363px; }
  .tablet-frame { top: 39px; left: 45%; width: 286px; max-width: 80%; padding: 7px; border-radius: 22px; }
  .tablet-frame img { border-radius: 14px; }
  .tablet-note { right: -1px; bottom: 29px; padding: 12px 15px; font-size: 11px; }
  .tablet-note em { font-size: 25px; }
  .tablet-spark { top: 19px; right: -2px; font-size: 77px; }
  .thoughtful-copy > .eyebrow { font-size: 8px; }
  .thoughtful-copy h2 { font-size: 43px; }
  .detail-list { gap: 19px; margin-top: 28px; }
  .detail-list > div { grid-template-columns: 22px minmax(0, 1fr); gap: 14px; padding-bottom: 19px; }
  .detail-list > div > .icon { width: 22px; height: 22px; }
  .detail-list h3 { font-size: 14px; }
  .detail-list p { font-size: 12px; }
  .download-inner { padding-block: 65px 54px; }
  .download-inner > .eyebrow { font-size: 8px; margin-bottom: 21px; }
  .download-inner h2 { font-size: 47px; letter-spacing: -.058em; line-height: 1.09; }
  .download-inner > p:not(.eyebrow):not(.download-note) { max-width: 265px; margin: 21px auto 0; font-size: 13px; }
  .download-buttons { gap: 12px; margin-top: 27px; }
  .download-flower { display: none; }
  .download-loop { width: 75px; height: 110px; right: -15px; bottom: 19px; opacity: .45; }
  .store-button { width: 224px; }
  .download-note { font-size: 9px; }
  .site-footer { grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 17px; padding-block: 31px 21px; text-align: center; }
  .footer-brand { font-size: 20px; }
  .footer-brand img { width: 32px; height: 32px; }
  .site-footer > p { grid-row: auto; }
  .site-footer nav { gap: 27px; margin-block: 1px 4px; font-size: 11px; }
  .site-footer > small { grid-row: auto; width: 100%; font-size: 9px; }
  .image-dialog { width: calc(100vw - 24px); max-width: calc(100vw - 24px); max-height: calc(100dvh - 22px); padding: 15px; border-radius: 19px; }
  .dialog-image-wrap { height: 74dvh; }
  .dialog-image-wrap img { border-radius: 10px; }
  .dialog-close { top: 8px; right: 8px; width: 35px; height: 35px; }
  .dialog-footer { grid-template-columns: 35px minmax(0, 1fr) 35px; gap: 11px; margin-top: 15px; }
  .dialog-footer > button { width: 35px; height: 35px; }
  .dialog-footer p { font-size: 10px; }
}

@media (max-width: 380px) {
  .brand { gap: 8px; font-size: 18px; }
  .brand img { width: 32px; height: 32px; }
  .nav-cta { padding-inline: 11px; font-size: 10px; }
  .hero h1 { font-size: 61px; }
  .hero .button { padding-inline: 14px; font-size: 11px; }
  .hero-actions { gap: 13px; }
  .watch-link { font-size: 10px; }
  .hero-footnote span { display: block; margin-left: 0; margin-top: 3px; }
  .hero-art { height: 555px; }
  .hero-phone { width: 224px; }
  .art-flower { width: 82px; height: 82px; right: -6px; }
  .note-top { left: -8px; padding: 10px; font-size: 9px; }
  .note-bottom { right: -8px; padding: 10px; font-size: 9px; }
  .note-bottom em { font-size: 22px; }
  .note-bottom > svg { width: 20px; }
  .section-heading h2 { font-size: 31px; }
  .counter-playground { gap: 19px 13px; }
  .count-card { padding: 16px 13px; min-height: 219px; }
  .count-number { font-size: 43px; }
  .count-card > p { font-size: 13px; }
  .countdown-label { display: none; }
  .tour-copy h2 { font-size: 41px; }
  .tour-player-area { grid-template-rows: 537px auto auto; min-height: 628px; }
  .video-frame { --screen-height: 490px; }
  .gallery-card h3 { font-size: 22px; }
  .gallery-card { height: 528px; }
  .gallery-image { top: 184px; width: calc(100% - 57px); }
  .thoughtful-art { height: 420px; }
  .thoughtful-art::before { height: 323px; }
  .tablet-note { bottom: 18px; }
  .thoughtful-copy h2 { font-size: 39px; }
  .download-inner h2 { font-size: 42px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* Keep the loading feedback inside the player, without moving the page. */
.video-play.is-loading { cursor: progress; }
.video-play.is-loading::after { content: "Loading…"; position: absolute; top: calc(50% + 48px); left: 50%; transform: translateX(-50%); padding: 5px 12px; border-radius: 20px; background: var(--ink); color: var(--cream); font-size: 12px; }
#video-status:not(.sr-only) { margin: 0; color: #e1e8d8; font-size: 12px; text-align: center; }
