/* Shop (product page). Loaded after styles.css, site.css and screen.css. */

.shop { --card: #f2f2f4; --line: #e3e3e6; --cta: #0071e3; --cta-hover: #0077ed; --blue-text: #0066cc; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.shop__main { overflow-x: clip; }
.shop main { min-height: 0; }
.shop h3 { margin: 0; }
.sh2 { font-size: clamp(34px, 3.9vw, 56px); font-weight: 500; letter-spacing: -0.03em; line-height: 1.05; text-wrap: balance; }
.shop .end p i { font-style: normal; margin: 0 3px; opacity: .6; }
.shop svg { flex-shrink: 0; }
.shop .check svg { width: 62%; height: 62%; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- announcement bar ---------- */
.ann { display: flex; align-items: center; justify-content: space-between; height: 38px; padding: 0 8px; background: var(--cta); color: #fff; font-size: 14px; }
.ann__btn { display: flex; align-items: center; justify-content: center; width: 36px; height: 32px; border: 0; border-radius: 8px; background: none; color: #fff; cursor: pointer; }
.ann__btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ann__btn:hover { background: rgba(255, 255, 255, .12); }
.ann__btn:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
.ann__track { position: relative; flex: 1; align-self: stretch; }
.ann__track p {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center;
  opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .4s ease, transform .5s var(--ease), visibility 0s .5s;
}
.ann__track p.is-on { opacity: 1; visibility: visible; transform: none; transition: opacity .4s ease, transform .5s var(--ease); }

/* ---------- 01 buy box ---------- */
.buy {
  max-width: 1372px; margin: 0 auto; padding: 16px 40px 80px; scroll-margin-top: 52px;
  display: grid; grid-template-columns: minmax(0, 659fr) minmax(0, 544fr); gap: 0 clamp(32px, 6.2vw, 89px); align-items: start;
}
.gal { position: sticky; top: 68px; min-width: 0; }
.gal__view { position: relative; aspect-ratio: 1; border-radius: 16px; overflow: hidden; background: var(--card); }
.gal__track {
  display: flex; height: 100%; margin: 0; padding: 0; list-style: none;
  overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none;
}
.gal__track::-webkit-scrollbar { display: none; }
.gal__track:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; border-radius: 16px; }
.gal__slide { position: relative; flex: 0 0 100%; height: 100%; overflow: hidden; scroll-snap-align: start; scroll-snap-stop: always; }
.gal__slide > img { width: 100%; height: 100%; object-fit: cover; }
.gal__frame { position: absolute; left: 0; right: 0; top: 50%; aspect-ratio: 960 / 1200; transform: translateY(-50%); }
.gal__frame > img { width: 100%; height: 100%; }
.gal__frame .screen { left: 5.38%; top: 25.23%; width: 89.1%; height: 46.46%; }
.gal__cap {
  position: absolute; z-index: 3; top: 20px; left: 50%; transform: translateX(-50%); pointer-events: none; transition: opacity .25s ease;
  padding: 8px 18px; border-radius: 999px; background: rgba(255, 255, 255, .92); box-shadow: 0 2px 12px rgba(0, 0, 0, .06);
  font-size: 16px; color: var(--ink); white-space: nowrap;
}
.gal__cap.is-off { opacity: 0; }
.gal__arrow {
  position: absolute; z-index: 3; top: 50%; width: 44px; height: 44px; margin-top: -22px; border: 0; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; cursor: pointer;
  background: rgba(255, 255, 255, .82); color: var(--ink); box-shadow: 0 2px 10px rgba(0, 0, 0, .08);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); opacity: 0; transition: opacity .25s ease, background .2s ease;
}
.gal__arrow:hover { background: #fff; }
.gal__arrow--prev { left: 16px; }
.gal__arrow--next { right: 16px; }
.gal__arrow svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.gal__view:hover .gal__arrow, .gal__arrow:focus-visible { opacity: 1; }
.gal__arrow:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.gal__arrow:disabled { visibility: hidden; }
.gal__count { display: none; position: absolute; z-index: 3; right: 12px; bottom: 12px; padding: 3px 10px; border-radius: 999px; background: rgba(0, 0, 0, .5); color: #fff; font-size: 13px; font-variant-numeric: tabular-nums; }
.gal__thumbs { display: flex; gap: 8px; margin: 16px 0 0; padding: 2px; list-style: none; overflow-x: auto; scrollbar-width: none; }
.gal__thumbs::-webkit-scrollbar { display: none; }
.gal__thumbs button {
  position: relative; display: block; width: 64px; height: 64px; padding: 0; border: 0; border-radius: 12px; overflow: hidden;
  background: var(--card); cursor: pointer; opacity: .72; transition: opacity .2s ease;
}
.gal__thumbs button::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 2px transparent; transition: box-shadow .2s ease; }
.gal__thumbs button:hover, .gal__thumbs button[aria-current="true"] { opacity: 1; }
.gal__thumbs button[aria-current="true"]::after { box-shadow: inset 0 0 0 2px var(--ink); }
.gal__thumbs button:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.gal__thumbs img { width: 100%; height: 100%; object-fit: cover; }

.info { min-width: 0; padding-top: 2px; }
.info h1 { margin-top: 0; font-size: 56px; font-weight: 500; letter-spacing: -0.035em; line-height: 1.05; }
.info__tag { margin-top: 6px; font-size: 17px; line-height: 1.4; color: var(--grey-2); }
.pick { min-width: 0; margin: 28px 0 0; padding: 0; border: 0; }
.pick__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 12px; font-size: 18px; }
.pick__head b { font-weight: 400; font-variant-numeric: tabular-nums; }
.pick__head small { font-size: 14px; color: var(--grey-2); text-align: right; }
.qcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.qcard {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  min-height: 69px; padding: 12px; border-radius: 16px; border: 1.5px solid var(--card); background: var(--card);
  cursor: pointer; transition: border-color .2s ease, background .2s ease;
}
.qcard input { position: absolute; opacity: 0; pointer-events: none; }
.qcard__n { font-size: 17px; }
.qcard__p { font-size: 13px; color: var(--grey-2); font-variant-numeric: tabular-nums; }
.qcard:hover { border-color: var(--grey-6); }
.qcard:has(input:checked) { border-color: var(--cta); background: #fff; }
.qcard:has(input:focus-visible) { outline: 2px solid var(--blue); outline-offset: 2px; }
.qcard:has(input:disabled) { opacity: .4; cursor: not-allowed; border-color: var(--card); }
.qcard__tick {
  position: absolute; top: -7px; right: -7px; width: 20px; height: 20px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; background: var(--cta); color: #fff;
  transform: scale(0); transition: transform .3s cubic-bezier(.34, 1.56, .64, 1);
}
.qcard__tick svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.qcard:has(input:checked) .qcard__tick, .ccard--in .qcard__tick { transform: scale(1); }

.ccards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.ccards > li { min-width: 0; }
.ccard {
  position: relative; display: flex; flex-direction: column; height: 100%; padding: 6px 6px 10px; border-radius: 14px;
  border: 1.5px solid var(--card); background: var(--card); color: var(--ink); font-size: 14px; line-height: 1.3;
  transition: border-color .2s ease;
}
.ccard--in { border-color: var(--cta); background: #fff; }
.ccard__img { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; margin-bottom: 8px; border-radius: 10px; overflow: hidden; background: #ecebe8; }
.ccard__img img { width: 100%; height: 100%; object-fit: cover; }
.ccard b { padding: 0 4px; font-weight: 400; }
.ccard > span:not(.ccard__img) { margin-top: auto; padding: 0 4px; font-size: 13px; color: var(--grey-2); }
.ccard--out { cursor: default; }
.ccard--out .ccard__img img { opacity: .78; }

.cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 52px; margin-top: 28px; padding: 0 24px;
  border: 0; border-radius: 999px; background: var(--cta); color: #fff; font: inherit; font-size: 18px; cursor: pointer;
  transition: background .2s ease, transform .1s ease;
}
.cta:hover { background: var(--cta-hover); color: #fff; }
.cta:active { transform: scale(.99); }
.cta:disabled { opacity: .45; cursor: not-allowed; }
.cta i { font-style: normal; opacity: .75; }
.cta:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.cta--light { width: auto; padding: 0 32px; background: #fff; color: var(--ink); }
.cta--light:hover { background: #e8e8ed; color: var(--ink); }
.cta--sm { width: auto; height: 40px; margin: 0; padding: 0 20px; font-size: 15px; }
.info__msg { min-height: 22px; margin-top: 10px; font-size: 15px; line-height: 1.4; text-align: center; color: var(--grey-2); }
.info__msg a, .sbar__t a { color: var(--blue-text); }
.ship { display: grid; gap: 10px; margin-top: 6px; font-size: 15px; line-height: 1.4; color: var(--grey-1); }
.ship p { display: flex; align-items: flex-start; gap: 10px; }
.ship b { font-weight: 600; color: var(--ink); }
.ship svg, .fbar svg, .reasons__bar svg, .trust__grid svg { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.ship svg { width: 20px; height: 20px; color: var(--ink); }
.fbar { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 24px 0 0; padding: 0; list-style: none; border: 1px solid var(--line); border-radius: 16px; }
.fbar li { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 16px 8px; font-size: 14px; line-height: 1.3; text-align: center; }
.fbar li + li { border-left: 1px solid var(--line); }
.fbar svg { width: 22px; height: 22px; }
.acc { margin-top: 12px; }
.acc details { border-bottom: 1px solid var(--line); }
.acc summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 0; cursor: pointer; list-style: none; font-size: 18px; }
.acc summary::-webkit-details-marker { display: none; }
.acc summary::after {
  content: ""; width: 9px; height: 9px; margin-right: 6px; border-right: 2px solid var(--cta); border-bottom: 2px solid var(--cta);
  transform: translateY(-3px) rotate(45deg); transition: transform .3s var(--ease);
}
.acc details[open] summary::after { transform: translateY(2px) rotate(-135deg); }
.acc summary:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 6px; }
.acc details > div { padding: 0 0 20px; font-size: 16px; line-height: 1.55; color: var(--grey-1); }
.acc p + p, .acc p + ul, .acc ul + p { margin-top: 10px; }
.acc ul { margin: 0; padding-left: 20px; }
.acc li { margin: 4px 0; }
.acc a { color: var(--blue-text); }

/* ---------- 02 see how it works ---------- */
.how { max-width: 1440px; margin: 0 auto; padding: 65px 40px; }
.how__grid { display: grid; grid-template-columns: minmax(0, 1fr) 439px; gap: 32px 64px; margin-top: 40px; align-items: start; }
.film { min-width: 0; }
.film__view { position: relative; aspect-ratio: 2752 / 1536; border-radius: 16px; overflow: hidden; background: #1b1b1d; isolation: isolate; }
.film__shot { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity .8s ease; }
.film__shot.is-on { opacity: 1; }
.film__shot picture, .film__shot img { width: 100%; height: 100%; }
.film__shot img { object-fit: cover; }
.film__walk img { transform: scale(1.06); transition: transform 3.2s linear; }
.film__walk.is-on img { transform: scale(1); }
.film__desk { transform-origin: 49.99% 50.42%; transition: opacity .8s ease, transform 1.3s var(--ease); }
.film__desk.is-zoom { transform: scale(2.3); }
.film__desk .screen { left: 37.36%; top: 35.68%; width: 25.26%; height: 29.49%; }
.film__say {
  position: absolute; left: 5%; bottom: 9%; max-width: 70%; padding: 14px 20px; border-radius: 18px;
  background: rgba(255, 255, 255, .86); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); color: var(--ink);
  opacity: 0; transform: translateY(10px); transition: opacity .4s ease, transform .5s var(--ease);
}
.film__say.is-on { opacity: 1; transform: none; }
.film__say span { display: block; font-size: 13px; color: var(--grey-2); }
.film__say p { font-size: clamp(18px, 2vw, 26px); letter-spacing: -0.02em; }
.film__chip {
  position: absolute; z-index: 3; left: 16px; top: 16px; padding: 6px 12px; border-radius: 999px; font-size: 13px; color: #fff;
  background: rgba(0, 0, 0, .42); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.film__bar { display: flex; align-items: center; gap: 12px; margin-top: 12px; }
.film__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 36px; min-width: 36px; padding: 0 10px;
  border: 0; border-radius: 999px; background: var(--card); color: var(--ink); font: inherit; font-size: 14px; cursor: pointer;
}
.film__btn:hover { background: #e8e8ed; }
.film__btn:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.film__btn svg { width: 16px; height: 16px; fill: currentColor; }
.film__sound svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.film__sound { padding: 0 14px 0 12px; }
.film .i-play, .film.is-paused .i-pause, .film__sound .i-on, .film__sound[aria-pressed="true"] .i-off { display: none; }
.film.is-paused .i-play, .film__sound[aria-pressed="true"] .i-on { display: block; }
.film__sound[aria-pressed="true"] { background: var(--ink); color: #fff; }
.film__track { flex: 1; height: 4px; border-radius: 2px; background: var(--line); overflow: hidden; }
.film__track i { display: block; width: 100%; height: 100%; background: var(--ink); transform-origin: left; transform: scaleX(0); }
.steps { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.step { border-radius: 12px; transition: background .3s ease; }
.step.is-on { background: var(--card); }
.step__head {
  display: flex; flex-direction: column; align-items: flex-start; gap: 4px; width: 100%; padding: 20px 24px;
  border: 0; border-radius: 12px; background: none; font: inherit; text-align: left; color: var(--ink); cursor: pointer;
}
.step__head small { font-size: 14px; color: var(--grey-2); }
.step__head span { font-size: 24px; letter-spacing: -0.02em; line-height: 1.2; }
.step:not(.is-on) .step__head:hover span { color: var(--grey-1); }
.step__head:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.step__body { display: grid; grid-template-rows: 0fr; padding: 0 24px; transition: grid-template-rows .45s var(--ease), padding .45s var(--ease); }
.step__body > p { min-height: 0; overflow: hidden; font-size: 16px; line-height: 1.5; color: var(--grey-1); }
.step.is-on .step__body { grid-template-rows: 1fr; padding-bottom: 22px; }

/* ---------- 03 what you can ask ---------- */
.uses { padding: 65px 0 40px; text-align: center; }
.uses .sh2 { padding: 0 24px; }
.uses__tabs {
  display: inline-flex; gap: 4px; max-width: calc(100% - 32px); margin-top: 28px; padding: 4px; border-radius: 999px;
  background: var(--card); overflow-x: auto; scrollbar-width: none;
}
.uses__tabs::-webkit-scrollbar { display: none; }
.uses__tab {
  height: 40px; padding: 0 20px; border: 0; border-radius: 999px; background: none; font: inherit; font-size: 16px; color: var(--ink);
  white-space: nowrap; cursor: pointer; transition: background .25s ease, color .25s ease;
}
.uses__tab:hover { background: rgba(0, 0, 0, .05); }
.uses__tab[aria-selected="true"] { background: var(--ink); color: #fff; }
.uses__tab:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.uses__panels { display: grid; max-width: 1360px; margin: 32px auto 0; padding: 0 40px; text-align: left; }
.use { grid-area: 1 / 1; position: relative; min-width: 0; opacity: 0; visibility: hidden; transition: opacity .5s ease, visibility 0s .5s; }
.use.is-on { opacity: 1; visibility: visible; transition: opacity .5s ease; }
.use__media { position: relative; height: min(740px, calc(100vh - 180px)); min-height: 520px; border-radius: 24px; overflow: hidden; background: var(--card); }
.use__media picture, .use__media img { width: 100%; height: 100%; }
.use__media img { object-fit: cover; }
.use__copy, .req {
  position: absolute; z-index: 2; left: 32px; width: min(420px, 38%); border-radius: 20px;
  background: rgba(255, 255, 255, .78); -webkit-backdrop-filter: saturate(160%) blur(20px); backdrop-filter: saturate(160%) blur(20px);
}
.use[data-side="right"] :is(.use__copy, .req) { left: auto; right: 32px; }
.use__copy { top: 32px; padding: 28px; }
.use__copy h3 { font-size: clamp(26px, 2.6vw, 40px); font-weight: 400; letter-spacing: -0.03em; line-height: 1.1; }
.use__copy p { margin-top: 12px; font-size: 17px; line-height: 1.45; color: var(--grey-1); }
.req { bottom: 32px; display: grid; padding: 20px; box-shadow: 0 10px 40px rgba(0, 0, 0, .12); }
.req__you { grid-area: 1 / 1; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2px 12px; padding-bottom: 14px; }
.req__who { font-size: 13px; color: var(--grey-2); }
.req__you p { grid-column: 1; font-size: 20px; letter-spacing: -0.015em; line-height: 1.25; }
.req__you .hear { grid-column: 2; grid-row: 1 / 3; }
.req__work, .req__done {
  grid-area: 2 / 1; display: flex; align-items: center; gap: 10px; padding-top: 14px; border-top: 1px solid rgba(0, 0, 0, .08);
  font-size: 15px; color: var(--grey-1); opacity: 0; transition: opacity .35s ease;
}
.req__work .dots i { animation: listen 1.2s ease-in-out infinite; }
.req__work .dots i:nth-child(2) { animation-delay: .15s; }
.req__work .dots i:nth-child(3) { animation-delay: .3s; }
.req__done { color: var(--ink); }
.req__done .check, .way__done .check { width: 22px; height: 22px; }
.req__done .check { transform: scale(.4); transition: transform .45s cubic-bezier(.34, 1.56, .64, 1); }
.req.s1 .req__work, .req.s2 .req__done { opacity: 1; }
.req.s2 .req__done .check { transform: scale(1); }

/* "Hear it" buttons */
.hear {
  display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 14px 0 12px; border: 0; border-radius: 999px;
  background: var(--ink); color: #fff; font: inherit; font-size: 14px; white-space: nowrap; cursor: pointer;
  -webkit-tap-highlight-color: transparent; transition: background .2s ease, transform .1s ease;
}
.hear:hover { background: #000; }
.hear:active { transform: scale(.96); }
.hear:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.hear svg { width: 14px; height: 14px; fill: currentColor; }
.hear .i-stop, .hear.is-playing .i-play { display: none; }
.hear.is-playing .i-stop { display: inline; }
.hear--round { width: 44px; height: 44px; padding: 0; justify-content: center; }
.hear--round svg { width: 16px; height: 16px; }

/* ---------- 04 scroll stats ---------- */
.stats { position: relative; height: 300vh; background: #000; color: #f5f5f7; }
.stats__stage { position: sticky; top: 0; height: 100vh; overflow: hidden; }
.stats__bg { position: absolute; inset: 0; }
.stats__bg img { width: 100%; height: 100%; object-fit: cover; transform-origin: 50% 56%; transform: scale(calc(1.3 - var(--p, 0) * .3)); }
.stats__h { position: absolute; top: 96px; left: 40px; right: 40px; font-size: clamp(34px, 3.9vw, 56px); font-weight: 500; letter-spacing: -0.03em; line-height: 1.05; }
.stats__list { position: absolute; left: 40px; right: 40px; bottom: 76px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.stats__list li { padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .22); opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .8s var(--ease); }
.stats__list li.is-on { opacity: 1; transform: none; }
.stats__list b { display: block; font-size: clamp(48px, 5.5vw, 80px); font-weight: 500; letter-spacing: -0.04em; line-height: 1; }
.stats__list small { margin-left: 6px; font-size: .36em; letter-spacing: 0; color: #a1a1a6; }
.stats__list span { display: block; max-width: 250px; margin-top: 10px; font-size: 16px; line-height: 1.4; color: #a1a1a6; }
.stats__note { position: absolute; left: 40px; bottom: 30px; font-size: 13px; color: #86868b; }
.stats.is-static { height: auto; }
.stats.is-static .stats__stage { position: relative; height: max(640px, 100vh); }

/* ---------- 05 comparison ---------- */
.vs { max-width: 1060px; margin: 0 auto; padding: 112px 24px 40px; text-align: center; }
.vs__wrap { margin-top: 40px; }
.vs__t { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 17px; }
.vs__t th, .vs__t td { padding: 20px 12px; text-align: center; vertical-align: middle; border-bottom: 1px solid var(--line); }
.vs__t thead th, .vs__t thead td { border-bottom: 0; vertical-align: bottom; font-size: 16px; font-weight: 400; color: var(--grey-2); }
.vs__t tbody th { width: 40%; text-align: left; font-weight: 400; color: var(--ink); }
.vs__t .is-boo { background: var(--card); }
.vs__t thead .is-boo { padding-top: 20px; border-radius: 20px 20px 0 0; font-size: 20px; color: var(--ink); }
.vs__t tbody tr:last-child .is-boo { border-radius: 0 0 20px 20px; }
.vs__t thead .is-boo img { width: 64px; height: 64px; margin: 0 auto 8px; border-radius: 12px; }
.vs__t .y, .vs__t .n { display: inline-block; width: 28px; height: 28px; border-radius: 50%; overflow: hidden; text-indent: 100%; white-space: nowrap; vertical-align: middle; }
.vs__t .y { background: var(--cta) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23fff' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 18px no-repeat; }
.vs__t .n { background: #ececef url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.5 7.5l9 9M16.5 7.5l-9 9' fill='none' stroke='%2386868b' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center / 16px no-repeat; }

/* ---------- 06 more reasons ---------- */
.reasons { max-width: 1440px; margin: 0 auto; padding: 96px 40px 40px; }
.reasons__media { position: relative; height: min(720px, calc(100vh - 100px)); min-height: 560px; margin-top: 32px; border-radius: 24px; overflow: hidden; background: #ece9e4; }
.reasons__media > img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.reasons__bar {
  position: absolute; left: 24px; right: 24px; bottom: 24px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 8px; list-style: none;
  border-radius: 20px; background: rgba(255, 255, 255, .62); -webkit-backdrop-filter: saturate(160%) blur(24px); backdrop-filter: saturate(160%) blur(24px);
}
.reasons__bar li { padding: 20px 24px; }
.reasons__bar li + li { border-left: 1px solid rgba(0, 0, 0, .08); }
.reasons__bar svg { width: 26px; height: 26px; color: var(--ink); }
.reasons__bar h3 { margin: 12px 0 6px; font-size: 20px; font-weight: 500; letter-spacing: -0.01em; }
.reasons__bar p { font-size: 15px; line-height: 1.45; color: var(--grey-1); }
.reasons__bar a { color: var(--blue-text); }

/* ---------- 07 examples ---------- */
.ways { padding: 96px 0 40px; }
.ways__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; max-width: 1440px; margin: 0 auto; padding: 0 40px; }
.ways__head p { margin-top: 10px; font-size: 17px; color: var(--grey-2); }
.ways__nav { display: flex; gap: 8px; }
.ways__nav button {
  display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; border-radius: 50%;
  background: var(--card); color: var(--ink); cursor: pointer; transition: background .2s ease, opacity .2s ease;
}
.ways__nav button:hover { background: #e8e8ed; }
.ways__nav button:disabled { opacity: .35; cursor: default; }
.ways__nav button:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.ways__nav svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ways__track {
  --gut: max(40px, calc((100% - 1360px) / 2));
  display: flex; gap: 16px; margin: 32px 0 0; padding: 0 var(--gut); list-style: none;
  overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 var(--gut); scrollbar-width: none; overscroll-behavior-x: contain;
}
.ways__track::-webkit-scrollbar { display: none; }
.way { flex: 0 0 320px; display: flex; flex-direction: column; min-height: 420px; padding: 28px; border-radius: 24px; background: var(--tone); scroll-snap-align: start; }
.way__tag { font-size: 14px; color: var(--grey-2); }
.way__q { margin-top: 16px; font-size: 30px; letter-spacing: -0.025em; line-height: 1.12; text-wrap: balance; }
.way__play { display: flex; align-items: center; gap: 14px; margin-top: auto; padding-top: 24px; }
.wave { display: flex; flex: 1; align-items: center; gap: 3px; min-width: 0; height: 30px; }
.wave i { flex: 1; max-width: 3px; min-height: 3px; border-radius: 2px; background: rgba(0, 0, 0, .16); transition: background .1s linear; }
.wave i.on { background: var(--blue); }
.way__done { display: flex; align-items: center; gap: 10px; margin-top: 18px; padding-top: 16px; border-top: 1px solid rgba(0, 0, 0, .08); font-size: 15px; color: var(--grey-1); }
.way.is-done .way__done .check { animation: pop .5s cubic-bezier(.34, 1.56, .64, 1); }
@keyframes pop { 0% { transform: scale(.4); } 100% { transform: scale(1); } }

/* ---------- 08 FAQ ---------- */
.qa { margin-top: 80px; padding: 96px 24px; background: #f4f2ee; text-align: center; }
.qa__list { display: grid; gap: 12px; max-width: 896px; margin: 40px auto 0; text-align: left; }
.qa details { border-radius: 24px; background: #fff; }
.qa summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 72px; padding: 18px 28px; cursor: pointer; list-style: none; font-size: 18px; }
.qa summary::-webkit-details-marker { display: none; }
.qa summary::after { content: "+"; flex-shrink: 0; font-size: 28px; font-weight: 300; line-height: 1; color: var(--grey-2); transition: transform .25s var(--ease); }
.qa details[open] summary::after { transform: rotate(45deg); }
.qa summary:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 24px; }
.qa details > div { padding: 0 28px 24px; font-size: 16px; line-height: 1.55; color: var(--grey-1); }
.qa a { color: var(--blue-text); }
.qa__more { margin-top: 28px; font-size: 17px; }

/* ---------- 09 pre-order with confidence ---------- */
.trust { max-width: 1440px; margin: 0 auto; padding: 96px 40px 40px; text-align: center; }
.trust__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 40px 0 0; padding: 0; list-style: none; text-align: left; }
.trust__grid a { display: flex; flex-direction: column; height: 100%; padding: 28px; border-radius: 20px; border: 1px solid var(--line); color: var(--ink); transition: border-color .2s ease; }
.trust__grid a:hover { border-color: var(--grey-5); color: var(--ink); }
.trust__grid a:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.trust__grid svg { width: 28px; height: 28px; color: var(--cta); }
.trust__grid h3 { margin: 18px 0 8px; font-size: 20px; font-weight: 500; letter-spacing: -0.01em; }
.trust__grid p { font-size: 15px; line-height: 1.5; color: var(--grey-1); }
.trust__grid span { margin-top: auto; padding-top: 18px; font-size: 15px; color: var(--blue-text); }
.trust__grid span i { font-style: normal; }

/* ---------- 10 closing ---------- */
.end { max-width: 1360px; margin: 56px auto 40px; padding: 112px 24px; border-radius: 28px; background: #000; color: #f5f5f7; text-align: center; }
.end h2 { font-size: clamp(56px, 9vw, 120px); font-weight: 600; letter-spacing: -0.05em; line-height: 1; color: var(--blue); }
.end p { margin-top: 16px; font-size: 19px; color: #a1a1a6; }
.end .cta { margin-top: 32px; }

/* ---------- sticky pre-order bar ---------- */
.sbar {
  position: fixed; z-index: 40; left: 50%; bottom: calc(16px + env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 12px;
  width: min(520px, calc(100% - 24px)); padding: 8px 8px 8px 10px; border-radius: 999px;
  background: rgba(255, 255, 255, .88); -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
  box-shadow: 0 10px 40px rgba(0, 0, 0, .14), 0 0 0 1px rgba(0, 0, 0, .06);
  transform: translate(-50%, calc(100% + 40px)); visibility: hidden; transition: transform .5s var(--ease), visibility 0s .5s;
}
.sbar.is-on { transform: translate(-50%, 0); visibility: visible; transition: transform .5s var(--ease); }
.sbar img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.sbar__t { display: flex; flex: 1; flex-direction: column; min-width: 0; font-size: 13px; line-height: 1.3; color: var(--grey-2); }
.sbar__t b { font-size: 16px; font-weight: 600; color: var(--ink); }
.sbar__t span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.menu-open .sbar { visibility: hidden; }

/* ---------- in between ---------- */
@media (max-width: 1180px) {
  .how__grid { grid-template-columns: minmax(0, 1fr) 360px; gap: 32px 40px; }
  .trust__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fbar li { font-size: 13px; }
  .ccard { padding: 4px 4px 8px; font-size: 12.5px; }
  .ccard > span:not(.ccard__img) { font-size: 11.5px; }
}
/* Tablets: the film full width, the three steps side by side underneath. */
@media (min-width: 834px) and (max-width: 1100px) {
  .how__grid { grid-template-columns: minmax(0, 1fr); }
  .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .step__body { grid-template-rows: 1fr; padding-bottom: 20px; }
  .step__head span { font-size: 21px; }
}

/* ---------- phones and small tablets ---------- */
@media (max-width: 833px) {
  .ann { height: 34px; font-size: 13px; }
  .buy { grid-template-columns: minmax(0, 1fr); padding: 0 0 48px; }
  .gal { position: static; }
  .gal__view { border-radius: 0; }
  .gal__cap { top: 12px; padding: 6px 14px; font-size: 13px; }
  .gal__count { display: block; }
  .gal__thumbs { margin-top: 10px; padding: 2px 16px; }
  .gal__thumbs button { width: 54px; height: 54px; border-radius: 10px; }
  .info { padding: 22px 16px 0; }
  .info h1 { font-size: 44px; }
  .pick { margin-top: 24px; }
  .pick__head { font-size: 17px; }
  .qcard { min-height: 64px; padding: 10px 6px; }
  .qcard__n { font-size: 16px; }
  .ccards { gap: 6px; }
  .ccard { padding: 4px 4px 8px; border-radius: 12px; font-size: 13px; }
  .ccard > span:not(.ccard__img) { font-size: 12px; }
  .fbar li { padding: 14px 4px; font-size: 12.5px; }
  .acc summary { font-size: 17px; padding: 18px 0; }

  .how { padding: 56px 16px 40px; }
  .how__grid { grid-template-columns: minmax(0, 1fr); margin-top: 24px; gap: 16px; }
  .film__view { aspect-ratio: 4 / 5; }
  .film__desk .screen { left: 5.38%; top: 25.23%; width: 89.1%; height: 46.46%; }
  .film__desk.is-zoom { transform: none; }
  .film__say { left: 4%; right: 4%; bottom: 5%; max-width: none; }
  .step__head { padding: 16px 20px; }
  .step__head span { font-size: 20px; }
  .step__body { padding: 0 20px; }
  .step.is-on .step__body { padding-bottom: 18px; }

  .uses { padding: 56px 0 24px; }
  .uses__tabs { margin-top: 20px; }
  .uses__tab { height: 38px; padding: 0 16px; font-size: 15px; }
  .uses__panels { margin-top: 20px; padding: 0 16px; }
  .use__copy { position: static; width: auto; padding: 0 4px 16px; border-radius: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .use__copy h3 { font-size: 28px; }
  .use__copy p { margin-top: 8px; font-size: 16px; }
  .use__media { height: auto; min-height: 0; aspect-ratio: 4 / 5; border-radius: 20px; }
  .use .req, .use[data-side="right"] .req { left: 10px; right: 10px; bottom: 10px; width: auto; padding: 16px; border-radius: 16px; }
  .req__you p { font-size: 18px; }

  .stats__h { top: 72px; left: 16px; right: 16px; }
  .stats__list { left: 16px; right: 16px; bottom: 52px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
  .stats__list b { font-size: 44px; }
  .stats__list span { margin-top: 6px; font-size: 14px; }
  .stats__note { left: 16px; bottom: 18px; font-size: 12px; }

  .vs { padding: 72px 12px 24px; }
  .vs__wrap { margin-top: 28px; }
  .vs__t { font-size: 15px; }
  .vs__t th, .vs__t td { padding: 14px 4px; }
  .vs__t tbody th { width: 34%; padding-left: 4px; }
  .vs__t thead th, .vs__t thead td { font-size: 12.5px; line-height: 1.25; }
  .vs__t thead .is-boo { font-size: 16px; padding-top: 14px; border-radius: 16px 16px 0 0; }
  .vs__t tbody tr:last-child .is-boo { border-radius: 0 0 16px 16px; }
  .vs__t thead .is-boo img { width: 44px; height: 44px; border-radius: 10px; }
  .vs__t .y, .vs__t .n { width: 24px; height: 24px; background-size: 15px; }
  .vs__t .n { background-size: 13px; }

  .reasons { padding: 72px 16px 24px; }
  .reasons__media { height: auto; min-height: 0; margin-top: 24px; border-radius: 0; background: none; overflow: visible; }
  .reasons__media > img { height: auto; aspect-ratio: 16 / 10; border-radius: 20px; }
  .reasons__bar { position: static; grid-template-columns: minmax(0, 1fr); margin-top: 10px; padding: 4px 4px; border-radius: 20px; background: var(--card); -webkit-backdrop-filter: none; backdrop-filter: none; }
  .reasons__bar li { padding: 18px 16px; }
  .reasons__bar li + li { border-left: 0; border-top: 1px solid rgba(0, 0, 0, .07); }
  .reasons__bar h3 { font-size: 18px; margin-top: 10px; }

  .ways { padding: 72px 0 24px; }
  .ways__head { padding: 0 16px; }
  .ways__head p { font-size: 16px; }
  .ways__nav { display: none; }
  .ways__track { --gut: 16px; gap: 12px; margin-top: 24px; }
  .way { flex-basis: min(78vw, 320px); min-height: 360px; padding: 24px; border-radius: 20px; }
  .way__q { font-size: 26px; }

  .qa { margin-top: 48px; padding: 72px 16px; }
  .qa__list { margin-top: 28px; gap: 10px; }
  .qa details { border-radius: 20px; }
  .qa summary { min-height: 64px; padding: 16px 20px; font-size: 17px; }
  .qa details > div { padding: 0 20px 20px; }

  .trust { padding: 72px 16px 24px; }
  .trust__grid { margin-top: 28px; gap: 10px; }
  .trust__grid a { padding: 20px 16px; border-radius: 18px; }
  .trust__grid h3 { margin-top: 14px; font-size: 18px; }
  .trust__grid p { font-size: 14px; }

  .end { margin: 40px 0 0; padding: 88px 16px; border-radius: 0; }
  .end p { font-size: 17px; }
}
@media (max-width: 480px) {
  .trust__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 360px) {
  .gal__cap { font-size: 12px; padding: 5px 12px; }
  .fbar li { font-size: 12px; }
}

/* ---------- copy additions ---------- */
.pick__note { margin-top: 8px; font-size: 13px; color: var(--grey-2); }
.uses__sub { margin-top: 12px; padding: 0 24px; font-size: 19px; color: var(--grey-2); }
@media (max-width: 833px) { .uses__sub { font-size: 16px; } }
.gal__note { margin-top: 10px; font-size: 12px; color: var(--grey-2); }
.vs__t .lim { font-size: 14px; color: var(--grey-2); }
@media (max-width: 833px) { .gal__note { padding: 0 16px; } .vs__t .lim { font-size: 12px; } }
