/*
 * Fonts: ABC Areal as self-hosted WOFF2 files delivered by Dinamo (Dinamo Free Fonts License,
 * § 9.12 includes web use; § 9.5: WOFF2 via @font-face, self-hosted). Never use TTF/OTF for
 * Areal on the web, never convert the files, never put them in a public repo. Yeseva One and
 * Spectral are OFL.
 */

@font-face { font-family: "LC Areal"; src: url("assets/fonts/ABCAreal-Medium.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "LC Areal"; src: url("assets/fonts/ABCAreal-Bold.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "LC Areal Mono"; src: url("assets/fonts/ABCArealMono-Regular.woff2") format("woff2"); font-weight: 400; font-display: swap; }
/* OFL, used only inside the Rosé mockups */
@font-face { font-family: "Yeseva One"; src: url("assets/fonts/YesevaOne-Regular.ttf") format("truetype"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Spectral"; src: url("assets/fonts/Spectral-Italic.ttf") format("truetype"); font-weight: 400; font-style: italic; font-display: swap; }

:root {
  /* type tokens: swap here for a public build */
  --font-display: "LC Areal", "Inter Tight", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-text: "LC Areal", "Inter Tight", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-mono: "LC Areal Mono", "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
  /* the app's own faces, for faithful mockups */
  --font-system: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", system-ui, "Helvetica Neue", sans-serif;
  --font-rounded: ui-rounded, "SF Pro Rounded", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --font-serif: "Yeseva One", Georgia, serif;
  --font-italic: "Spectral", Georgia, serif;

  /* colour */
  --bg: #0B090D;
  --bg-2: #141117;
  --bg-3: #1C181F;
  --fg: #F4F3EF;
  --fg-2: rgba(244, 243, 239, .72);
  --fg-3: rgba(244, 243, 239, .5);
  --line: rgba(244, 243, 239, .13);
  --heart: #F2CFD8;
  --rose: #FF5C85;
  --glow: 110, 34, 66;
  --paper: #F4F3EF;
  --ink: #0B0B0B;
  --ink-2: #4A4946;

  /* layout */
  --gutter: clamp(16px, 4.2vw, 56px);
  --maxw: clamp(1320px, 68vw, 1760px);
  --nav-h: clamp(64px, 1.6vw + 40px, 84px);
  --sect: clamp(112px, 15vw, 208px);
  --ease: cubic-bezier(.2, .7, .1, 1);

  /* device sizes */
  --duo-pw: clamp(150px, min(21vw, 25svh), 360px);
  --how-pw: clamp(150px, 22vw, 380px);
  --photo-pw: clamp(220px, 26vw, 420px);
  --w-pw: clamp(250px, 22vw, 400px);
  --sb-pw: clamp(300px, 52vw, 980px);
  --share-pw: clamp(240px, 22vw, 400px);
  --plus-pw: clamp(260px, 23vw, 430px);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; background: var(--bg); overflow-x: hidden; overflow-x: clip; }
body {
  margin: 0; background: var(--bg); color: var(--fg);
  font: 500 17px/1.5 var(--font-text);
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
  text-rendering: optimizeLegibility;
}
img, svg, picture { display: block; max-width: 100%; }
a { color: inherit; }
button { font: inherit; color: inherit; }
h1, h2, h3, p, ol, ul, figure { margin: 0; }
ol, ul { padding: 0; list-style: none; }
::selection { background: var(--heart); color: var(--ink); }
:focus-visible { outline: 2px solid var(--heart); outline-offset: 3px; border-radius: 4px; }

.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: fixed; left: 12px; top: -60px; z-index: 100; background: var(--fg); color: var(--ink); padding: 10px 14px; border-radius: 10px; text-decoration: none; transition: top .2s; }
.skip:focus { top: 12px; }

.wrap { width: 100%; max-width: calc(var(--maxw) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }

/* ---------------------------------------------------------------- type */
.meta { font: 500 clamp(14px, calc(.2vw + 11px), 17px)/1.45 var(--font-text); color: var(--fg-3); letter-spacing: -.005em; }
.dim { opacity: .7; }
.eyebrow { padding-top: 16px; border-top: 1px solid var(--line); margin-bottom: clamp(24px, 4vw, 56px); font: 500 clamp(15px, calc(.3vw + 11px), 20px)/1.3 var(--font-text); letter-spacing: -.01em; color: var(--heart); }
.hero__title, .h1 { font: 700 clamp(44px, min(6.3vw, 3vw + 48px), 136px)/.93 var(--font-display); letter-spacing: -.045em; }
.h2 { font: 700 clamp(40px, min(5.4vw, 2.6vw + 44px), 116px)/.95 var(--font-display); letter-spacing: -.042em; max-width: 13ch; text-wrap: balance; }
.h3 { font: 700 clamp(22px, min(1.9vw, .9vw + 14px), 36px)/1.1 var(--font-display); letter-spacing: -.025em; }
.body { font: 500 clamp(17px, min(1.3vw, .45vw + 12px), 23px)/1.52 var(--font-text); color: var(--fg-2); max-width: 34em; text-wrap: pretty; }
.lede { font: 500 clamp(18px, min(1.55vw, .55vw + 13px), 27px)/1.45 var(--font-text); color: var(--fg-2); max-width: 30em; text-wrap: pretty; }
.link { color: var(--fg); text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat; padding-bottom: 2px; transition: background-size .4s var(--ease); }
.link:hover { background-size: 0 1px; background-position: 100% 100%; }

.split { display: grid; gap: clamp(20px, 3vw, 40px); }
@media (min-width: 900px) {
  .split { grid-template-columns: 7fr 5fr; align-items: end; }
}

/* ---------------------------------------------------------------- nav */
.nav {
  position: fixed; inset: 0 0 auto 0; z-index: 50; height: var(--nav-h);
  display: flex; align-items: center; justify-content: space-between;
  padding-inline: var(--gutter);
  color: var(--fg);
  transition: background-color .4s var(--ease), color .4s var(--ease), box-shadow .4s var(--ease), transform .5s var(--ease);
}
.nav.is-solid { background: rgba(11, 9, 13, .9); box-shadow: 0 1px 0 var(--line); }
.nav.is-light { background: rgba(244, 243, 239, .94); color: var(--ink); box-shadow: 0 1px 0 rgba(11, 11, 11, .1); }
.nav.is-hidden { transform: translateY(-100%); }
.nav__brand { display: flex; align-items: center; gap: 10px; text-decoration: none; font: 700 clamp(17px, .35vw + 12px, 22px)/1 var(--font-display); letter-spacing: -.02em; }
.nav__heart { width: 16px; height: 15px; fill: var(--heart); }
.nav.is-light .nav__heart { fill: #E7A9BA; }
.nav__right { display: flex; align-items: center; gap: 12px; }
.nav__cta { font: 500 clamp(14px, .3vw + 10px, 18px)/1 var(--font-text); text-decoration: none; padding: .8em 1.15em; border-radius: 999px; background: var(--fg); color: var(--ink); transition: background-color .3s, color .3s; }
.nav.is-light .nav__cta { background: var(--ink); color: var(--paper); }
@media (max-width: 420px) { .nav__cta { display: none; } }

/* language toggle */
.lang { position: relative; display: inline-grid; grid-auto-flow: column; grid-auto-columns: 1fr; padding: 3px; border-radius: 999px; box-shadow: inset 0 0 0 1px currentColor; --c: var(--fg); }
.nav .lang { box-shadow: inset 0 0 0 1px rgba(244, 243, 239, .28); }
.nav.is-light .lang { box-shadow: inset 0 0 0 1px rgba(11, 11, 11, .2); }
.lang button { position: relative; z-index: 1; min-width: 2.9em; min-height: 2.45em; padding: 0 .75em; border: 0; background: none; cursor: pointer; font: 500 clamp(13px, .25vw + 10px, 16px)/1 var(--font-text); color: inherit; opacity: .7; transition: opacity .3s, color .4s var(--ease); border-radius: 999px; }
.lang button[aria-pressed="true"] { opacity: 1; color: var(--ink); }
.lang__thumb { position: absolute; top: 3px; bottom: 3px; left: 3px; width: calc(50% - 3px); border-radius: 999px; background: var(--heart); transform-origin: left center; transition: transform .55s cubic-bezier(.7, 0, .15, 1); }
.lang[data-active="de"] .lang__thumb { transform: translateX(100%); }
.lang.is-moving .lang__thumb { animation: lang-stretch .55s cubic-bezier(.7, 0, .15, 1); }
.lang--foot { color: var(--fg); box-shadow: inset 0 0 0 1px rgba(244, 243, 239, .28); }
@keyframes lang-stretch { 50% { scale: 1.35 .82; } }

/* ---------------------------------------------------------------- store badge (swap for Apple's badge later) */
.cta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; }
.cta--center { justify-content: center; flex-direction: column; }
.store {
  display: inline-flex; align-items: center; gap: 12px; height: clamp(56px, 1.1vw + 40px, 68px); padding: 0 1.4em 0 1.2em;
  border-radius: 14px; background: var(--fg); color: var(--ink);
  font: 500 clamp(17px, .3vw + 13px, 21px)/1 var(--font-text); letter-spacing: -.01em; white-space: nowrap;
}
.store__dot { position: relative; width: 9px; height: 9px; border-radius: 50%; background: #D9577F; }
.store__dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: #D9577F; animation: ping 2.4s var(--ease) infinite; }
@keyframes ping { 0% { transform: scale(1); opacity: .6; } 70%, 100% { transform: scale(3.2); opacity: 0; } }
.cta__note { font: 500 clamp(15px, .3vw + 11px, 19px)/1.4 var(--font-text); color: var(--fg-3); max-width: 24em; }

/* ---------------------------------------------------------------- phone frame */
.phone {
  --pw: 300px;
  position: relative; width: var(--pw); aspect-ratio: 77.6 / 163; flex: none;
  border-radius: 14.6% / 6.95%;
  background: linear-gradient(145deg, #3a383d, #151416 40%, #29272b);
  box-shadow:
    inset 0 0 0 calc(var(--pw) * .004) rgba(255, 255, 255, .18),
    0 calc(var(--pw) * .1) calc(var(--pw) * .22) calc(var(--pw) * -.06) rgba(0, 0, 0, .7),
    0 calc(var(--pw) * .02) calc(var(--pw) * .05) rgba(0, 0, 0, .35);
}
.phone::before { /* black bezel */
  content: ""; position: absolute; inset: calc(var(--pw) * .012); border-radius: 13.8% / 6.55%; background: #020202;
}
.phone__screen {
  position: absolute; inset: calc(var(--pw) * .028); overflow: hidden;
  border-radius: 12.6% / 5.82%; background: #000; isolation: isolate;
  container-type: inline-size;
}
.phone__screen::after { /* Dynamic Island */
  content: ""; position: absolute; z-index: 20; top: 1.3%; left: 34.1%; width: 31.8%; height: 4.3%; border-radius: 999px; background: #000;
}
.phone--land { aspect-ratio: 163 / 77.6; border-radius: 6.95% / 14.6%; }
.phone--land::before { border-radius: 6.55% / 13.8%; }
.phone--land .phone__screen { inset: calc(var(--pw) * .013); border-radius: 5.82% / 12.6%; }
.phone--land .phone__screen::after { top: 34.1%; left: 1.3%; width: 4.3%; height: 31.8%; }

[data-mock], .wroot, .bub--img, .pw__car > div { container-type: inline-size; }
[data-mock] picture { display: block; width: 100%; height: 100%; }
[data-mock] picture img { width: 100%; height: 100%; object-fit: cover; }
.flap__heart { width: .62em; height: .57em; fill: var(--heart); }

/* ---------------------------------------------------------------- HERO */
.hero { position: relative; min-height: 100svh; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; padding: calc(var(--nav-h) + 24px) 0 clamp(40px, 7vh, 88px); }
.hero__glow { position: absolute; inset: -10% -10% 0; pointer-events: none;
  background:
    radial-gradient(60% 55% at 12% 0%, rgba(var(--glow), .5), transparent 70%),
    radial-gradient(45% 50% at 95% 90%, rgba(var(--glow), .22), transparent 72%);
}
.hero__giant {
  position: absolute; z-index: 0; top: max(calc(var(--nav-h) + 1vh), calc(50% + var(--nav-h) / 2 - var(--num) * .43));
  /* Anchored to the right edge: the "2" is always cut by the same share, whatever the screen. */
  right: calc(var(--num) * var(--crop) * -1); white-space: nowrap; pointer-events: none;
  font: 700 var(--num)/.8 var(--font-display); letter-spacing: -.06em; color: var(--fg);
  font-variant-numeric: tabular-nums; will-change: transform;
}
.hero__digit { display: inline-block; overflow: hidden; padding: .04em 0 .01em; vertical-align: top; }
.hero__digit + .hero__digit { margin-left: -.06em; }
.hero__digit > span { display: inline-block; }
.hero__inner { position: relative; z-index: 1; display: grid; gap: clamp(18px, 2.2vw, 28px); }
.hero__title .line { display: block; }
.hero__title { max-width: 11ch; }
/* Text column = what the numeral leaves free (numeral shows ~.84 of its size after the crop). */
.hero { --num: min(88vh, 54vw); --crop: .12; --hero-text: calc(100vw - var(--num) * .92 - max(var(--gutter), (100vw - var(--maxw)) / 2) - 64px); }
@media (min-width: 900px) {
  .hero__inner > * { max-width: min(var(--hero-text), 100%); }
  .hero__lede { max-width: min(var(--hero-text), 30em); }
  .hero__inner > .hero__title { max-width: min(var(--hero-text), 11ch); }
}
/* Ultra-wide: keep headline and numeral together as one composition. */
@media (min-width: 900px) and (min-aspect-ratio: 21/10) {
  .hero__inner { max-width: none; margin: 0; padding-left: max(var(--gutter), calc(100vw - var(--num) * .92 - 64px - min(var(--hero-text), 900px))); }
}
.hero__kicker { color: var(--heart); font-size: clamp(15px, calc(.3vw + 11px), 20px); }
.hero__ticker { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 8px; color: var(--fg-3); }
.hero__ticker { font-variant-numeric: tabular-nums; }
.hero__ticker b { font-weight: 500; color: var(--fg); }
.hero__scroll { position: absolute; right: var(--gutter); bottom: clamp(40px, 7vh, 88px); display: flex; align-items: center; gap: 10px; }
.hero__scroll i { width: 1px; height: 40px; background: var(--line); position: relative; overflow: hidden; }
.hero__scroll i::after { content: ""; position: absolute; left: 0; top: -40%; width: 100%; height: 40%; background: var(--fg); animation: drip 2.2s var(--ease) infinite; }
@keyframes drip { to { transform: translateY(350%); } }

@media (max-width: 899px) {
  .hero { justify-content: flex-start; }
  .hero__giant { position: relative; left: auto; right: auto; top: auto; margin: 0 0 8px calc(var(--gutter) - .05em); font-size: 112vw; line-height: .78; }
  .hero__scroll { display: none; }
  .hero__title { max-width: none; }
}

/* ---------------------------------------------------------------- 01 DUO */
.duo { position: relative; padding-top: var(--sect); }
.duo__pin { position: relative; }
.duo__head { position: relative; z-index: 2; }
.duo__stage { position: relative; display: flex; justify-content: center; align-items: flex-start; gap: clamp(20px, 6vw, 120px); padding: clamp(32px, 5vw, 56px) var(--gutter) 0; }
.duo__glow { position: absolute; left: 50%; top: 50%; width: min(90vw, 1000px); height: 70%; transform: translate(-50%, -50%); background: radial-gradient(closest-side, rgba(var(--glow), .45), transparent); pointer-events: none; }
.duo__dev { position: relative; display: grid; justify-items: center; gap: 16px; }
.duo__dev figcaption { text-align: center; }
.duo__dev figcaption .dim { display: block; }
.duo__link { position: absolute; left: 50%; top: 42%; width: clamp(20px, 6vw, 120px); height: 1px; transform: translateX(-50%); }
.duo__link i { position: absolute; inset: 0; background: repeating-linear-gradient(90deg, var(--heart) 0 4px, transparent 4px 9px); transform-origin: left; }
.duo__foot { position: relative; z-index: 2; display: flex; justify-content: flex-end; margin-top: clamp(32px, 5vw, 64px); }
.duo__text { max-width: 30em; }
@media (min-width: 900px) {
  .duo__text { max-width: 26em; }
}
@media (max-width: 899px) {
  :root { --duo-pw: min(40vw, 20svh); }
  .duo__foot { justify-content: flex-start; }
}
.motion .duo__pin { min-height: 100svh; display: flex; flex-direction: column; justify-content: center; padding-block: calc(var(--nav-h) + 8px) 24px; }
@media (min-width: 900px) {
  :root { --duo-pw: clamp(180px, min(18vw, 34svh), 420px); }
  .duo__pin { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-rows: 1fr auto auto 1fr; max-width: calc(var(--maxw) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); column-gap: 32px; }
  .duo__pin > .wrap { padding-inline: 0; }
  .duo__head { grid-column: 1; grid-row: 2; align-self: end; }
  .duo__foot { grid-column: 1; grid-row: 3; justify-content: flex-start; align-self: start; margin-top: 32px; }
  .duo__stage { grid-column: 2; grid-row: 1 / -1; align-self: center; padding: 0; }
  .motion .duo__pin { display: grid; align-content: center; }
}
.motion .duo { padding-top: 0; }
@media (max-width: 899px) {
  .motion .duo__head .h2 { font-size: clamp(34px, 9.4vw, 44px); }
  .motion .duo__stage { padding-top: 20px; }
  .motion .duo__foot { margin-top: 20px; }
  .motion .duo__text { font-size: 15.5px; }
}

/* ---------------------------------------------------------------- FILM slot */
.film { padding-top: var(--sect); }
.film__frame { position: relative; aspect-ratio: 16 / 9; border-radius: clamp(16px, 2vw, 28px); overflow: hidden; background: var(--bg-2); }
.film__poster, .film__poster img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; }
.film__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11, 9, 13, .92) 0%, rgba(11, 9, 13, .55) 45%, rgba(11, 9, 13, .1) 100%); }
.film__num { position: absolute; left: 4%; bottom: -8%; font: 700 min(42vw, 560px)/.8 var(--font-display); letter-spacing: -.06em; color: var(--fg); opacity: .96; }
.film__label { position: absolute; right: clamp(16px, 3vw, 40px); bottom: clamp(16px, 3vw, 40px); display: flex; align-items: center; gap: 14px; padding: 10px 18px 10px 10px; border-radius: 999px; background: rgba(11, 9, 13, .78); }
.film__label strong { display: block; font: 700 16px/1.2 var(--font-display); letter-spacing: -.01em; }
.film__label .meta { display: block; font-size: 12px; }
.film__play { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--fg); }
.film__play svg { width: 18px; height: 18px; fill: var(--ink); margin-left: 2px; }
@media (max-width: 599px) {
  .film__frame { aspect-ratio: 4 / 5; }
  .film__label { left: 16px; right: 16px; }
}

/* ---------------------------------------------------------------- 02 HOW */
.how { padding-top: var(--sect); }
.how__grid { display: grid; grid-template-columns: auto 1fr; gap: clamp(20px, 7vw, 120px); margin-top: clamp(24px, 4vw, 56px); }
.how__device { position: relative; }
.how__sticky { position: sticky; top: calc(50svh - var(--how-pw) * 1.05); padding-bottom: 8svh; }
.how__screens > .how__scr { position: absolute; inset: 0; opacity: 0; transition: opacity .6s var(--ease), transform .8s var(--ease); transform: scale(1.03); }
.how__screens > .is-active { opacity: 1; transform: none; }
.how__steps { display: grid; }
.how__step { min-height: 72svh; display: flex; flex-direction: column; justify-content: center; gap: 12px; max-width: 26em; }
.how__step .h3, .how__step .body { color: rgba(244, 243, 239, .5); transition: color .6s var(--ease); }
.how__step.is-active .h3 { color: var(--fg); }
.how__step.is-active .body { color: var(--fg-2); }
.how__n { font: 500 15px/1 var(--font-text); display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--line); color: var(--fg); }
.how__step.is-active .how__n { background: var(--heart); color: var(--ink); box-shadow: none; }
@media (min-width: 900px) {
  .how__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .how__device { order: 2; display: flex; justify-content: center; align-items: flex-start; }
  .how__step { padding-left: 0; }
  .how__step .h3 { font-size: clamp(30px, min(3.2vw, 1.4vw + 26px), 66px); letter-spacing: -.035em; }
  .how__step .body { font-size: clamp(18px, min(1.45vw, .5vw + 13px), 26px); }
  .how__n { width: clamp(32px, 1vw + 18px, 44px); height: clamp(32px, 1vw + 18px, 44px); font-size: clamp(15px, .4vw + 9px, 19px) !important; }
}
.how__no { display: flex; flex-wrap: wrap; gap: .1em .4em; margin-top: clamp(32px, 5vw, 64px); font: 700 clamp(26px, 3.4vw, 52px)/1.05 var(--font-display); letter-spacing: -.035em; }
.how__no span:nth-child(2) { color: var(--fg-2); }
.how__no span:nth-child(3) { color: var(--fg-3); }
@media (max-width: 899px) {
  :root { --how-pw: 40vw; }
  .how__step { min-height: 64svh; }
  .how__step .h3 { font-size: 20px; }
  .how__step .body { font-size: 15.5px; }
}

/* ---------------------------------------------------------------- 03 STYLES (light) */
.styles { background: var(--paper); color: var(--ink); padding-block: var(--sect); margin-top: var(--sect); }
.styles .eyebrow { border-top-color: rgba(11, 11, 11, .14); color: #A34D6B; }
.styles .meta { color: #6B6A66; }
.styles .body { color: var(--ink-2); }
.styles__head { display: grid; gap: 20px; }
@media (min-width: 900px) { .styles__head { grid-template-columns: 7fr 5fr; align-items: end; } .styles__head .eyebrow { grid-column: 1 / -1; margin-bottom: 8px; } }
.gallery { display: grid; gap: clamp(28px, 5vw, 80px); margin-top: clamp(40px, 5vw, 72px); }
.gallery__cards { position: relative; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.gcard { position: relative; aspect-ratio: 4 / 5; border-radius: 18px; overflow: hidden; background: #ddd; }
.gcard__inner { position: absolute; inset: 0; backface-visibility: hidden; }
.gallery__progress { display: none; }
.gallery__list { display: grid; gap: 0; counter-reset: s; }
.gstyle { display: grid; grid-template-columns: 1fr auto; gap: 2px 16px; padding: 16px 0; border-top: 1px solid rgba(11, 11, 11, .12); }
.gstyle__name { font: 700 clamp(22px, 2.2vw, 32px)/1.1 var(--font-display); letter-spacing: -.03em; }
.gstyle__desc { grid-column: 1 / -1; color: var(--ink-2); font-size: clamp(15px, .3vw + 10px, 19px); }
.tag { align-self: center; font: 500 clamp(13px, .2vw + 9px, 16px)/1 var(--font-text); padding: .45em .7em; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(11, 11, 11, .25); color: var(--ink); }
.tag--free { background: var(--ink); color: var(--paper); box-shadow: none; }

/* pinned gallery (motion) */
.motion .styles { padding-block: 0; }
.motion .styles__pin { min-height: 100svh; padding-block: calc(var(--nav-h) + clamp(16px, 4vh, 48px)) clamp(24px, 5vh, 56px); display: flex; flex-direction: column; justify-content: center; }
.motion .gallery { grid-template-columns: auto 1fr; align-items: center; gap: clamp(32px, 7vw, 120px); margin-top: clamp(24px, 4vh, 48px); }
.motion .gallery__stage { --cw: min(30vw, 52svh * .8, 420px); width: var(--cw); }
.motion .gallery__cards { display: block; width: round(down, var(--cw), 4px); aspect-ratio: 4 / 5; border-radius: clamp(14px, 1.6vw, 22px); overflow: hidden; box-shadow: 0 40px 80px -30px rgba(11, 11, 11, .45); transform: translateZ(0); }
.motion .gcard { position: absolute; inset: -1px; border-radius: 0; will-change: transform; }
.motion .gcard__inner { will-change: transform; }
.motion .gallery__progress { display: block; height: 2px; margin-top: 18px; background: rgba(11, 11, 11, .12); border-radius: 2px; overflow: hidden; }
.motion .gallery__progress i { display: block; height: 100%; background: var(--ink); transform-origin: left; transform: scaleX(.1428); }
.motion .gstyle__name { transition: color .5s var(--ease); color: rgba(11, 11, 11, .42); }
.motion .gstyle.is-active .gstyle__name { color: var(--ink); }
.motion .gstyle .tag { color: #6B6A66; box-shadow: inset 0 0 0 1px rgba(11, 11, 11, .14); transition: color .5s, background-color .5s; }
.motion .gstyle .tag--free { background: #D9D8D3; box-shadow: none; }
.motion .gstyle.is-active .tag { color: var(--ink); box-shadow: inset 0 0 0 1px rgba(11, 11, 11, .35); }
.motion .gstyle.is-active .tag--free { background: var(--ink); color: var(--paper); }
.motion .gstyle__desc { max-height: 0; overflow: hidden; opacity: 0; transition: max-height .5s var(--ease), opacity .4s; }
.motion .gstyle.is-active .gstyle__desc { max-height: 4em; opacity: 1; }
@media (min-width: 900px) {
  .motion .styles__pin { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; align-content: center; column-gap: clamp(40px, 7vw, 120px); max-width: calc(var(--maxw) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
  .motion .styles__pin > .wrap { padding-inline: 0; }
  .motion .styles__head { grid-column: 2; grid-row: 1; grid-template-columns: 1fr; gap: 16px; align-self: end; }
  .motion .styles__head .eyebrow { margin-bottom: 8px; }
  .motion .gallery { display: contents; }
  .motion .gallery__stage { --cw: min(34vw, 70svh * .8, 720px); grid-column: 1; grid-row: 1 / span 2; align-self: center; }
  .motion .gallery__list { grid-column: 2; grid-row: 2; align-self: start; margin-top: clamp(20px, 3vh, 36px); }
  .motion .gstyle__name { font-size: clamp(20px, min(1.8vw, .7vw + 12px), 34px); }
  .motion .gstyle { padding: clamp(11px, .4vw + 5px, 16px) 0; }
}
@media (max-width: 899px) {
  .motion .styles__head .body { display: none; }
  .motion .styles__head .h2 { font-size: clamp(34px, 9.4vw, 44px); }
  .motion .gallery { grid-template-columns: 1fr; justify-items: center; gap: 20px; margin-top: 20px; }
  .motion .gallery__stage { --cw: min(76vw, 44svh * .8); }
  .motion .gallery__list { position: relative; width: 100%; min-height: 96px; }
  .motion .gstyle { position: absolute; inset: 0 0 auto; border: 0; padding: 0; opacity: 0; text-align: center; grid-template-columns: 1fr; justify-items: center; gap: 6px; }
  .motion .gstyle .tag { order: -1; }
  .motion .gstyle { transition: opacity .5s var(--ease); }
  .motion .gstyle.is-active { opacity: 1; }
}

/* ---------------------------------------------------------------- 04 PHOTO */
.photo { position: relative; padding-block: var(--sect); overflow: hidden; }
.photo__bg { position: absolute; inset: 0; opacity: .0; pointer-events: none; }
.photo__bg img { width: 100%; height: 100%; object-fit: cover; filter: blur(60px) saturate(1.2); transform: scale(1.3); opacity: .5; }
.photo__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, var(--bg), rgba(11, 9, 13, .6) 30%, rgba(11, 9, 13, .6) 70%, var(--bg)); }
.no-js .photo__bg, html:not(.motion) .photo__bg { opacity: 1; }
.photo__grid { position: relative; display: grid; gap: clamp(40px, 7vw, 120px); align-items: center; }
@media (min-width: 900px) { .photo__grid { grid-template-columns: auto 1fr; } }
.photo__device { position: relative; justify-self: center; padding-right: clamp(40px, 8vw, 120px); }
.photo__screens > [data-mock], .photo__over { position: absolute; inset: 0; }
.photo__over { overflow: hidden; }
.photo__overin, .photo__overscr { position: absolute; inset: 0; }
.photo__widget { position: absolute; right: 0; bottom: 12%; width: calc(var(--photo-pw) * .95); filter: drop-shadow(0 30px 40px rgba(0, 0, 0, .55)); }
.photo__text { display: grid; gap: 20px; align-content: center; }
.photo__text .eyebrow { margin-bottom: 8px; }
@media (max-width: 899px) {
  :root { --photo-pw: 62vw; }
  .photo__device { padding-right: 18vw; }
  .photo__widget { width: 72vw; right: -2vw; }
  .photo__text { order: -1; }
}

/* ---------------------------------------------------------------- 05 WIDGETS */
.widgets { padding-top: var(--sect); }
.widgets__row { display: flex; justify-content: center; gap: clamp(16px, 5vw, 96px); margin-top: clamp(48px, 6vw, 96px); }
.wdev { display: grid; justify-items: center; gap: 16px; }
@media (max-width: 899px) {
  :root { --w-pw: 44vw; --sb-pw: 92vw; }
  .widgets__row { gap: 12px; padding-inline: 12px; }
}
.standby { display: flex; justify-content: center; margin-top: clamp(56px, 8vw, 128px); }
.standby__fig { display: grid; justify-items: center; gap: 20px; }
.standby__device { position: relative; padding-bottom: 28px; }
.standby__device::after { content: ""; position: absolute; left: -12%; right: -12%; bottom: 0; height: 40px; background: radial-gradient(50% 50% at 50% 50%, rgba(var(--glow), .55), transparent 70%); z-index: -1; }
.standby__fig { position: relative; isolation: isolate; }

/* ---------------------------------------------------------------- 06 SHARE */
.share { padding-top: var(--sect); }
.share__grid { display: grid; gap: clamp(40px, 6vw, 96px); align-items: center; }
@media (min-width: 900px) { .share__grid { grid-template-columns: 5fr 6fr; } }
.share__text { display: grid; gap: 20px; }
.share__text .eyebrow { margin-bottom: 8px; }
.share__device { position: relative; display: flex; justify-content: center; }
.share__fly { position: absolute; z-index: 5; width: calc(var(--share-pw) * .62); aspect-ratio: 4 / 5; border-radius: 12px; overflow: hidden; box-shadow: 0 30px 60px -10px rgba(0, 0, 0, .6); opacity: 0; pointer-events: none; }
.share__flyin { position: absolute; inset: 0; }
html:not(.motion) .share__fly { display: none; }
@media (max-width: 899px) { :root { --share-pw: 68vw; } }

/* ---------------------------------------------------------------- 07 PLUS */
.plus { padding-top: var(--sect); }
.plus__grid { display: grid; gap: clamp(40px, 6vw, 96px); margin-top: clamp(40px, 6vw, 88px); align-items: start; }
@media (min-width: 1100px) { .plus__grid { grid-template-columns: 1fr auto; } }
.prices { display: grid; gap: 12px; }
@media (min-width: 700px) { .prices { grid-template-columns: repeat(3, 1fr); } .price__note { grid-column: 1 / -1; } }
.price { display: flex; flex-direction: column; gap: 6px; padding: clamp(22px, 2.2vw, 30px); border-radius: 22px; background: var(--bg-2); box-shadow: inset 0 0 0 1px var(--line); }
.price--plus { background: linear-gradient(180deg, rgba(var(--glow), .28), rgba(var(--glow), .06) 60%), var(--bg-2); }
.price__name { font: 500 16px/1.3 var(--font-text); color: var(--fg-2); }
.price__amt { font: 700 clamp(44px, 4.6vw, 64px)/1 var(--font-display); letter-spacing: -.045em; margin-top: 18px; }
.price__per { margin-bottom: 18px; }
.price__list { display: grid; gap: 10px; padding-top: 18px; border-top: 1px solid var(--line); font-size: 15px; color: var(--fg-2); }
.price__list li { position: relative; padding-left: 22px; }
.price__list li::before { content: ""; position: absolute; left: 0; top: .45em; width: 11px; height: 10px; background: var(--heart); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 22'%3E%3Cpath d='M12 21.3c-.3 0-.6-.1-.8-.3C7.4 17.9 1.5 13.4 1.5 7.9 1.5 4.6 4 2 7.1 2c2 0 3.7 1 4.9 2.7C13.2 3 14.9 2 16.9 2c3.1 0 5.6 2.6 5.6 5.9 0 5.5-5.9 10-9.7 13.1-.2.2-.5.3-.8.3Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 22'%3E%3Cpath d='M12 21.3c-.3 0-.6-.1-.8-.3C7.4 17.9 1.5 13.4 1.5 7.9 1.5 4.6 4 2 7.1 2c2 0 3.7 1 4.9 2.7C13.2 3 14.9 2 16.9 2c3.1 0 5.6 2.6 5.6 5.9 0 5.5-5.9 10-9.7 13.1-.2.2-.5.3-.8.3Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.price:first-child .price__list li::before { background: var(--fg-3); }
.price__note { padding-top: 8px; max-width: 60em; }
.plus__device { justify-self: center; }
.unlock { display: flex; align-items: center; gap: 12px; margin-top: 28px; font: 500 14px/1.2 var(--font-text); color: var(--fg-2); }
.unlock__dev { display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px 8px 8px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--line); white-space: nowrap; }
.unlock__lock { position: relative; width: 26px; height: 26px; border-radius: 50%; background: var(--heart); }
.unlock__lock::after { content: ""; position: absolute; inset: 7px 7px 8px; background: var(--ink); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 22'%3E%3Cpath d='M12 21.3c-.3 0-.6-.1-.8-.3C7.4 17.9 1.5 13.4 1.5 7.9 1.5 4.6 4 2 7.1 2c2 0 3.7 1 4.9 2.7C13.2 3 14.9 2 16.9 2c3.1 0 5.6 2.6 5.6 5.9 0 5.5-5.9 10-9.7 13.1-.2.2-.5.3-.8.3Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 22'%3E%3Cpath d='M12 21.3c-.3 0-.6-.1-.8-.3C7.4 17.9 1.5 13.4 1.5 7.9 1.5 4.6 4 2 7.1 2c2 0 3.7 1 4.9 2.7C13.2 3 14.9 2 16.9 2c3.1 0 5.6 2.6 5.6 5.9 0 5.5-5.9 10-9.7 13.1-.2.2-.5.3-.8.3Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.unlock__line { position: relative; flex: 1; max-width: 120px; min-width: 24px; height: 1px; background: var(--line); overflow: hidden; }
.unlock__line i { position: absolute; inset: 0; background: var(--heart); transform-origin: left; }
@media (max-width: 899px) { :root { --plus-pw: 68vw; } }
@media (max-width: 420px) { .unlock { font-size: 12px; gap: 8px; } .unlock__dev { padding-right: 10px; } }

/* ---------------------------------------------------------------- 08 KNOW */
.know { padding-top: var(--sect); }
.know__list { display: grid; margin-top: clamp(32px, 5vw, 64px); }
@media (min-width: 900px) { .know__list { grid-template-columns: repeat(4, 1fr); gap: 32px; } }
.know__list li { padding: 20px 0; border-top: 1px solid var(--line); color: var(--fg-2); font-size: 16px; }
.know__list strong { display: block; color: var(--fg); font: 700 22px/1.15 var(--font-display); letter-spacing: -.02em; margin-bottom: 8px; }
.know__more { margin-top: 24px; }

/* ---------------------------------------------------------------- 09 FAQ */
.faq { padding-top: var(--sect); }
.faq__grid { display: grid; gap: 24px; }
@media (min-width: 900px) { .faq__grid { grid-template-columns: 5fr 7fr; } .faq__grid .eyebrow { margin-bottom: 40px; } }
.faq__list { border-bottom: 1px solid var(--line); align-self: end; }
.qa { border-top: 1px solid var(--line); }
.qa summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 22px 0; font: 700 clamp(19px, 1.6vw, 23px)/1.25 var(--font-display); letter-spacing: -.02em; }
.qa summary::-webkit-details-marker { display: none; }
.qa summary i { position: relative; width: 14px; height: 14px; flex: none; }
.qa summary i::before, .qa summary i::after { content: ""; position: absolute; left: 0; top: 50%; width: 100%; height: 1.5px; background: currentColor; transition: transform .4s var(--ease); }
.qa summary i::after { transform: rotate(90deg); }
.qa[open] summary i::after { transform: rotate(0); }
.qa__a { overflow: hidden; }
.qa__a p { padding: 0 0 24px; color: var(--fg-2); max-width: 34em; }

/* ---------------------------------------------------------------- FINAL */
.final { position: relative; padding-top: var(--sect); }
.final__pin { position: relative; min-height: 100svh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: clamp(24px, 4vh, 48px); padding-block: calc(var(--nav-h) + 16px) 48px; overflow: hidden; }
.final__glow { position: absolute; left: 50%; top: 40%; width: min(120vw, 1200px); height: 80%; transform: translate(-50%, -50%); background: radial-gradient(closest-side, rgba(var(--glow), .5), transparent); pointer-events: none; }
.final__board { position: relative; display: flex; gap: clamp(6px, 1vw, 14px); }
.final__cap { position: relative; }
.final__inner { position: relative; display: grid; justify-items: center; gap: 28px; text-align: center; }
.final__inner .h1 { max-width: 12ch; text-wrap: balance; }

/* split-flap leaf */
.flap { --fh: clamp(150px, 30vh, 300px); --fw: calc(var(--fh) * .72); position: relative; width: var(--fw); height: var(--fh); perspective: calc(var(--fh) * 5); font: 700 calc(var(--fh) * .84)/1 var(--font-display); color: var(--fg); letter-spacing: -.03em; }
.flap__half { position: absolute; left: 0; right: 0; height: 50%; overflow: hidden; background: #1A1A1A; }
.flap__half span { position: absolute; left: 0; right: 0; height: var(--fh); display: grid; place-items: center; line-height: 1; }
.flap__top { top: 0; border-radius: calc(var(--fh) * .07) calc(var(--fh) * .07) 0 0; background: #222; }
.flap__top span { top: 0; }
.flap__bot { bottom: 0; border-radius: 0 0 calc(var(--fh) * .07) calc(var(--fh) * .07); }
.flap__bot span { bottom: 0; }
.flap__leaf { z-index: 2; transform-origin: 50% 100%; backface-visibility: hidden; }
.flap__leaf--b { top: 50%; bottom: auto; transform-origin: 50% 0; border-radius: 0 0 calc(var(--fh) * .07) calc(var(--fh) * .07); background: #1A1A1A; transform: rotateX(90deg); }
.flap__leaf--b span { top: auto; bottom: 0; }
.flap::after { content: ""; position: absolute; z-index: 3; left: 0; right: 0; top: 50%; height: max(1.5px, calc(var(--fh) * .008)); background: #000; transform: translateY(-50%); }
@media (max-width: 599px) { .flap { --fh: min(52vw, 34svh); } }

/* ---------------------------------------------------------------- FOOTER */
.foot { padding: clamp(64px, 8vw, 120px) 0 40px; }
.foot__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding-top: 24px; border-top: 1px solid var(--line); }
.foot__brand { display: flex; align-items: center; gap: 12px; text-decoration: none; font: 700 17px/1 var(--font-display); letter-spacing: -.02em; }
.foot__brand img { width: 40px; height: 40px; border-radius: 10px; }
.foot__links { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.foot__links a { color: var(--fg-2); text-decoration: none; font-size: 15px; padding-block: 6px; }
.foot__links a:hover { color: var(--fg); }
.foot__end { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px 48px; margin-top: 40px; }
.foot__note { max-width: 31em; }
.foot__quote { font: 500 15px/1.55 var(--font-text); color: var(--fg-2); text-wrap: pretty; }
.sig { display: block; width: 132px; height: auto; margin-top: 10px; overflow: visible; }
.sig path { fill: none; stroke: var(--heart); stroke-width: 2.1; stroke-linecap: round; stroke-linejoin: round; }
.foot__legal { display: flex; flex-wrap: wrap; gap: 6px 24px; }

/* ---------------------------------------------------------------- reveal (motion only) */
.motion [data-reveal] { opacity: 0; transform: translateY(24px); }

/* ================================================================
 * MOCKUPS. Faithful recreations of app/src/components/* in CSS.
 * Every mockup root is a size container; --p is one iOS point on a
 * 393 pt wide screen, --u one pixel of the 1080 px share card,
 * --w one point of a widget (small 158 pt, medium 338 pt).
 * ================================================================ */

.scr { position: absolute; inset: 0; overflow: hidden; --p: calc(100cqw / 393); font-family: var(--font-system); color: #fff; -webkit-font-smoothing: antialiased; line-height: 1.2; }
.scr__bg { position: absolute; inset: 0; }
.scr__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.scr__photo img { width: 100%; height: 100%; object-fit: cover; }
.scr__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.25) 50%, rgba(0,0,0,.65)); }
.scr__arch { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); border-radius: 999px 999px 0 0; }

.sb { position: absolute; z-index: 10; top: 0; left: 0; right: 0; height: calc(var(--p) * 54); display: flex; align-items: center; justify-content: space-between; padding: calc(var(--p) * 4) calc(var(--p) * 30) 0 calc(var(--p) * 48); font-weight: 600; font-size: calc(var(--p) * 17); letter-spacing: -.01em; }
.sb__r { display: flex; align-items: center; gap: calc(var(--p) * 6); }
.sb__r svg { height: calc(var(--p) * 12); width: auto; fill: currentColor; }
.sb--dark { color: #000; }

.scr__icons { position: absolute; z-index: 5; top: calc(var(--p) * 67); right: calc(var(--p) * 16); display: flex; gap: calc(var(--p) * 4); }
.scr__icons svg { width: calc(var(--p) * 39); height: calc(var(--p) * 39); padding: calc(var(--p) * 8); fill: var(--icon); }

.scr__main { position: absolute; inset: calc(var(--p) * 59) 0 calc(var(--p) * 34); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 0 calc(var(--p) * 16); }

/* classic countdown (Midnight, Rosé, Sage, Your photo) */
.cd__sub { font-size: calc(var(--p) * 18); font-weight: 600; margin-bottom: calc(var(--p) * 32); color: var(--sub); }
.cd__grid { display: flex; flex-wrap: wrap; justify-content: center; gap: calc(var(--p) * 24); max-width: calc(var(--p) * 300); }
.cd__g { display: flex; flex-direction: column; align-items: center; min-width: calc(var(--p) * 110); }
.cd__n { font-size: calc(var(--p) * 93.6); line-height: 1.05; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--digit); letter-spacing: -.02em; }
.cd__l { margin-top: calc(var(--p) * 4); font-size: calc(var(--p) * 13.1); font-weight: 700; letter-spacing: calc(var(--p) * 1.6); text-transform: uppercase; color: var(--label); }
.cd__date { margin-top: calc(var(--p) * 24); font-size: calc(var(--p) * 15); font-weight: 600; letter-spacing: calc(var(--p) * .5); color: var(--muted); }
.pills { display: flex; gap: calc(var(--p) * 8); margin-top: calc(var(--p) * 64); width: 100%; max-width: calc(var(--p) * 380); padding: 0 calc(var(--p) * 8); }
.pill { flex: 1; display: flex; align-items: center; justify-content: center; gap: calc(var(--p) * 8); height: calc(var(--p) * 46); border-radius: calc(var(--p) * 23); border: calc(var(--p) * 1.5) solid var(--pb); color: var(--pt); font-size: calc(var(--p) * 15); font-weight: 600; white-space: nowrap; }
.pill svg { width: calc(var(--p) * 16); height: calc(var(--p) * 16); fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pill--p { background: var(--pr); border-color: var(--pr); color: var(--prt); }

.scr--midnight { --digit: #fff; --label: #FF5C85; --sub: rgba(255,255,255,.72); --muted: rgba(255,255,255,.55); --icon: rgba(255,255,255,.55); --pb: rgba(255,255,255,.22); --pt: #fff; --pr: #FF3B6B; --prt: #fff; }
.scr--midnight .scr__bg { background: linear-gradient(180deg, #2A1320 0%, #140E13 33%, #0B090D 66%, #0B090D 100%); }
.scr--rose { --digit: #7E1C40; --label: #B2476C; --sub: #A83E63; --muted: rgba(126,28,64,.6); --icon: rgba(126,28,64,.5); --pb: rgba(126,28,64,.25); --pt: #7E1C40; --pr: #7E1C40; --prt: #FFF0F3; }
.scr--rose .scr__bg { background: linear-gradient(180deg, #FFF0F3, #FBD3DD 50%, #F5B3C4); }
.scr--rose .cd__n { font-family: var(--font-serif); font-weight: 400; line-height: 1.2; letter-spacing: 0; }
.scr--rose .cd__l, .scr--rose .cd__sub, .scr--rose .cd__date { font-family: var(--font-italic); font-style: italic; font-weight: 400; text-transform: none; letter-spacing: calc(var(--p) * .2); }
.scr--rose .cd__l { font-size: calc(var(--p) * 16.1); }
.scr--rose .cd__sub { font-size: calc(var(--p) * 24); }
.scr--sage { --digit: #3C4632; --label: #7C6B55; --sub: #7C6B55; --muted: rgba(60,70,50,.6); --icon: rgba(60,70,50,.45); --pb: rgba(60,70,50,.25); --pt: #3C4632; --pr: #6F8160; --prt: #F6F1E7; font-family: var(--font-rounded); }
.scr--sage .scr__bg { background: #EEE6D8; }
.scr--photo { --digit: #fff; --label: rgba(255,255,255,.85); --sub: rgba(255,255,255,.85); --muted: rgba(255,255,255,.75); --icon: rgba(255,255,255,.75); --pb: rgba(255,255,255,.35); --pt: #fff; --pr: #FF3B6B; --prt: #fff; }
.scr--photo .cd__n, .scr--photo .cd__l { text-shadow: 0 1px 12px rgba(0,0,0,.25); }

/* monument styles */
.scr--poster { --icon: rgba(244,243,239,.5); --pb: rgba(244,243,239,.28); --pt: #F4F3EF; --pr: #F4F3EF; --prt: #0B0B0B; --ink: #F4F3EF; --soft: #8B8A86; }
.scr--poster .scr__bg { background: #0B0B0B; }
.scr--board { --icon: rgba(244,243,239,.5); --pb: rgba(244,243,239,.28); --pt: #F4F3EF; --pr: #F4F3EF; --prt: #000; --ink: #F4F3EF; --soft: #8B8A86; }
.scr--board .scr__bg { background: #000; }
.scr--paper { --icon: rgba(11,11,11,.45); --pb: #0B0B0B; --pt: #0B0B0B; --pr: #0B0B0B; --prt: #F4F3EF; --ink: #0B0B0B; --soft: #6B6A66; color: #0B0B0B; }
.scr--paper .scr__bg { background: #F4F3EF; }
.mo .pill { font-family: var(--font-text); font-weight: 500; }
.mo__block { align-self: stretch; padding: 0 calc(var(--p) * 8); font-family: var(--font-text); font-weight: 500; color: var(--ink); }
.mo__head { font-size: calc(var(--p) * 16); line-height: 1.2; }
.mo__num { font-family: var(--font-display); font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.mo__label { font-size: calc(var(--p) * 22); line-height: 1.2; }
.mo__mono { font-family: var(--font-mono); font-size: calc(var(--p) * 16); color: var(--soft); }
.mo__mono b { font-weight: 400; color: var(--ink); }
.mo__date { font-family: var(--font-mono); font-size: calc(var(--p) * 13); color: var(--soft); margin-top: calc(var(--p) * 16); }
.mo__hms { display: flex; gap: calc(var(--p) * 24); margin-top: calc(var(--p) * 16); }
.hrt { display: inline-block; width: .9em; height: .82em; fill: #F2CFD8; vertical-align: -.04em; }

.po__num { font-size: calc(var(--p) * 393); line-height: .86; letter-spacing: -.06em; margin: calc(var(--p) * 18) 0 0 calc(var(--p) * -30); color: var(--ink); }
.po__label { margin-top: calc(var(--p) * 10); }
.pa__rule { height: calc(var(--p) * 1.5); background: var(--ink); margin-top: calc(var(--p) * 8); }
.pa__num { font-size: calc(var(--p) * 259); line-height: .86; letter-spacing: -.06em; text-align: right; margin: calc(var(--p) * 20) calc(var(--p) * -4) 0 0; }
.pa__label { margin-top: calc(var(--p) * 14); }
.pa__hms { display: flex; margin-top: calc(var(--p) * 16); border-top: calc(var(--p) * 1.5) solid var(--ink); padding-top: calc(var(--p) * 8); }
.pa__hms > div { flex: 1; }
.pa__hms b { display: block; font-weight: 500; font-size: calc(var(--p) * 26); line-height: 1.15; }
.pa__hms > div > span { display: block; font-family: var(--font-mono); font-size: calc(var(--p) * 11); color: var(--soft); margin-top: calc(var(--p) * 2); }
.bo__leaves { display: flex; gap: calc(var(--p) * 6); margin-top: calc(var(--p) * 32); }
.bo__row { display: flex; align-items: center; gap: calc(var(--p) * 8); margin-top: calc(var(--p) * 16); }
.bo__small { display: flex; gap: calc(var(--p) * 16); margin-top: calc(var(--p) * 24); }
.bo__small > div { display: grid; gap: calc(var(--p) * 4); }
.bo__small > div > div { display: flex; gap: calc(var(--p) * 3); }
.bo__unit { font-size: calc(var(--p) * 11); color: var(--soft); }

/* one flap of the departure board, sized by --lh (height) and --lw (width) */
.leaf { position: relative; width: var(--lw); height: var(--lh); border-radius: calc(var(--lh) * .08); overflow: hidden; background: #1A1A1A; display: grid; place-items: center; font-family: var(--font-display); font-weight: 700; color: #F4F3EF; font-size: calc(var(--lh) * .84); line-height: 1; letter-spacing: -.03em; }
.leaf::before { content: ""; position: absolute; inset: 0 0 50% 0; background: #222; }
.leaf::after { content: ""; position: absolute; left: 0; right: 0; top: calc(50% - .75px); height: 1.5px; background: #000; }
.leaf > * { position: relative; }
.leaf svg { width: 60%; height: auto; fill: #F4F3EF; }

/* pairing screens */
.pair { position: absolute; inset: 0; background: #000; color: #fff; font-family: var(--font-system); --p: calc(100cqw / 393); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 0 calc(var(--p) * 24); text-align: center; }
.pair__title { font-size: calc(var(--p) * 48); line-height: calc(var(--p) * 52); font-weight: 600; margin-bottom: calc(var(--p) * 64); letter-spacing: -.01em; }
.pair__card { width: 100%; max-width: calc(var(--p) * 360); display: flex; flex-direction: column; gap: calc(var(--p) * 16); }
.pair__hint { font-size: calc(var(--p) * 16); line-height: 1.5; color: #B0B4BA; font-weight: 500; }
.pair__code { font-size: calc(var(--p) * 56); line-height: calc(var(--p) * 66); font-weight: 700; letter-spacing: calc(var(--p) * 8); font-variant-numeric: tabular-nums; }
.pair__input { font-size: calc(var(--p) * 32); font-weight: 700; letter-spacing: calc(var(--p) * 8); border-bottom: calc(var(--p) * 2) solid #444; padding: calc(var(--p) * 8) 0; font-variant-numeric: tabular-nums; }
.pair__input i { display: inline-block; width: calc(var(--p) * 2); height: calc(var(--p) * 30); background: #FF3B6B; vertical-align: middle; margin-left: calc(var(--p) * -4); animation: caret 1s steps(1) infinite; }
@keyframes caret { 50% { opacity: 0; } }
.pair__btn { background: #fff; color: #000; border-radius: calc(var(--p) * 14); padding: calc(var(--p) * 16) 0; font-size: calc(var(--p) * 16); font-weight: 700; }

/* share cards (4:5, 1080 x 1350) */
.card { position: absolute; inset: 0; overflow: hidden; --u: calc(100cqw / 1080); font-family: var(--font-system); -webkit-font-smoothing: antialiased; line-height: 1.15; }
.card__bg { position: absolute; inset: 0; }
.card__col { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: calc(var(--u) * 150); }
.card__num { font-size: calc(var(--u) * 520); line-height: 1; font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.card__lab { margin-top: calc(var(--u) * 36); font-size: calc(var(--u) * 50); font-weight: 700; letter-spacing: calc(var(--u) * 10); text-transform: uppercase; }
.card__until { margin-top: calc(var(--u) * 26); font-size: calc(var(--u) * 52); font-weight: 500; }
.card__rest { display: flex; gap: calc(var(--u) * 90); margin-top: calc(var(--u) * 76); align-items: baseline; }
.card__rest b { font-size: calc(var(--u) * 94); font-weight: 800; font-variant-numeric: tabular-nums; }
.card__rest > div > span { margin-left: calc(var(--u) * 20); font-size: calc(var(--u) * 36); font-weight: 700; letter-spacing: calc(var(--u) * 6); text-transform: uppercase; }
.card__date { margin-top: calc(var(--u) * 70); font-size: calc(var(--u) * 40); font-weight: 600; }
.card__foot { position: absolute; left: 0; right: 0; bottom: calc(var(--u) * 72); display: flex; justify-content: center; align-items: center; gap: calc(var(--u) * 26); font-size: calc(var(--u) * 40); font-weight: 500; letter-spacing: calc(var(--u) * 1.5); }
.card__foot svg { width: calc(var(--u) * 34); height: calc(var(--u) * 31); fill: currentColor; }

.card--midnight { color: #fff; }
.card--midnight .card__bg { background: linear-gradient(180deg, #461B2D 0%, #2A1320 25%, #140E13 52%, #0B090D 78%); }
.card--midnight .card__lab, .card--midnight .card__rest > div > span { color: #FF5C85; }
.card--midnight .card__until { color: rgba(255,255,255,.72); }
.card--midnight .card__date { color: rgba(255,255,255,.55); }
.card--midnight .card__foot { color: rgba(255,255,255,.62); }
.card--midnight .card__foot svg { fill: #E8426A; }

.card--rose { color: #7E1C40; }
.card--rose .card__bg { background: linear-gradient(160deg, #FDEEF1 0%, #F6D6DE 50%, #EDB6C6 100%); }
.card--rose .card__num, .card--rose .card__rest b { font-family: var(--font-serif); font-weight: 400; letter-spacing: 0; }
.card--rose .card__num { font-size: calc(var(--u) * 470); line-height: 1.12; }
.card--rose .card__col { padding-top: calc(var(--u) * 120); }
.card--rose .card__lab, .card--rose .card__until, .card--rose .card__rest > div > span, .card--rose .card__date, .card--rose .card__foot { font-family: var(--font-italic); font-style: italic; font-weight: 400; text-transform: none; letter-spacing: calc(var(--u) * 1); color: #A83E63; }
.card--rose .card__lab { font-size: calc(var(--u) * 72); margin-top: 0; }
.card--rose .card__until { font-size: calc(var(--u) * 72); margin-top: calc(var(--u) * 10); }
.card--rose .card__rest > div > span { font-size: calc(var(--u) * 56); }
.card--rose .card__foot { font-size: calc(var(--u) * 52); color: #A83E63; }
.card--rose .card__foot svg { fill: none; stroke: #D9577F; stroke-width: 2; }

.card--sage { color: #3C4632; font-family: var(--font-rounded); }
.card--sage .card__bg { background: #EEE6D8; }
.card--sage .card__lab, .card--sage .card__until, .card--sage .card__rest > div > span { color: #7C6B55; }
.card--sage .card__date { color: rgba(124,107,85,.95); position: relative; }
.card--sage .card__foot { color: #7C6B55; }
.card--sage .card__foot svg { fill: #C47A58; }

.card--photo { color: #fff; }
.card--photo .card__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.card--photo .card__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.18) 45%, rgba(0,0,0,.6)); }
.card--photo .card__col { align-items: flex-start; text-align: left; padding: calc(var(--u) * 400) 0 0 calc(var(--u) * 92); }
.card--photo .card__num { font-size: calc(var(--u) * 340); line-height: .95; text-shadow: 0 2px 30px rgba(0,0,0,.25); }
.card--photo .card__lab { margin-top: calc(var(--u) * 30); }
.card--photo .card__until { color: rgba(255,255,255,.92); }
.card--photo .card__rest { margin-top: calc(var(--u) * 52); }
.card--photo .card__rest > div > span { color: #fff; }
.card--photo .card__date { color: rgba(255,255,255,.85); margin-top: calc(var(--u) * 50); }
.card--photo .card__foot { justify-content: flex-start; padding-left: calc(var(--u) * 92); color: #fff; }

/* monument cards: absolute layout, measured on docs/share-cards/*.png */
.card--mono { font-family: var(--font-text); font-weight: 500; }
.card--mono .m { position: absolute; left: calc(var(--u) * 85); }
.card--mono .mr { position: absolute; right: calc(var(--u) * 85); }
.card--mono .mono { font-family: var(--font-mono); font-weight: 400; }
.card--mono .num { font-family: var(--font-display); font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.card--mono .hrt { fill: #F2CFD8; }
.card--poster { background: #0B0B0B; color: #F4F3EF; }
.card--paper { background: #F4F3EF; color: #0B0B0B; }
.card--board { background: #000; color: #F4F3EF; }
.cp__head { top: calc(var(--u) * 88); font-size: calc(var(--u) * 50); color: #8B8A86; }
.cp__num { top: calc(var(--u) * 132); left: calc(var(--u) * 68) !important; font-size: calc(var(--u) * 1010); line-height: 1; letter-spacing: -.06em; }
.cp__label { top: calc(var(--u) * 1000); font-size: calc(var(--u) * 84); }
.cp__hms { top: calc(var(--u) * 1030); font-size: calc(var(--u) * 52); color: #8B8A86; }
.cp__hms b { font-weight: 400; color: #F4F3EF; }
.c__date { top: calc(var(--u) * 1136); font-size: calc(var(--u) * 44); color: #8B8A86; }
.c__foot { top: calc(var(--u) * 1232); font-size: calc(var(--u) * 38); color: #8B8A86; }
.c__heart { top: calc(var(--u) * 1238); font-size: calc(var(--u) * 42); }
.card--paper .c__date, .card--paper .c__foot { color: #6B6A66; }
.cpa__head { top: calc(var(--u) * 88); font-size: calc(var(--u) * 50); }
.cpa__h1 { top: calc(var(--u) * 94); font-size: calc(var(--u) * 46); }
.cpa__rule { left: calc(var(--u) * 85); right: calc(var(--u) * 85); height: calc(var(--u) * 5); background: #0B0B0B; position: absolute; }
.cpa__num { top: calc(var(--u) * 212); font-size: calc(var(--u) * 628); line-height: 1; letter-spacing: -.06em; }
.cpa__label { top: calc(var(--u) * 770); font-size: calc(var(--u) * 66); }
.cpa__cell { top: calc(var(--u) * 930); }
.cpa__cell b { display: block; font-weight: 500; font-size: calc(var(--u) * 80); line-height: 1; letter-spacing: -.02em; }
.cpa__cell > span { display: block; font-family: var(--font-mono); font-size: calc(var(--u) * 36); color: #6B6A66; margin-top: calc(var(--u) * 18); }
.cb__head { top: calc(var(--u) * 88); font-size: calc(var(--u) * 50); color: #8B8A86; }
.cb__leaves { top: calc(var(--u) * 212); display: flex; gap: calc(var(--u) * 22); --lh: calc(var(--u) * 570); --lw: calc(var(--u) * 410); }
.cb__leaves .leaf { border-radius: calc(var(--u) * 42); }
.cb__row { top: calc(var(--u) * 830); display: flex; align-items: center; gap: calc(var(--u) * 30); }
.cb__row .leaf { --lh: calc(var(--u) * 125); --lw: calc(var(--u) * 96); border-radius: calc(var(--u) * 12); }
.cb__days { font-size: calc(var(--u) * 82); }
.cb__small { top: calc(var(--u) * 830); left: calc(var(--u) * 462) !important; display: flex; gap: calc(var(--u) * 36); }
.cb__small > div > div { display: flex; gap: calc(var(--u) * 10); --lh: calc(var(--u) * 168); --lw: calc(var(--u) * 120); }
.cb__small .leaf { border-radius: calc(var(--u) * 14); }
.cb__small > div > span { display: block; margin-top: calc(var(--u) * 20); font-size: calc(var(--u) * 36); color: #8B8A86; }
.card--board .c__date { top: calc(var(--u) * 1110); }

/* widgets */
.wroot { position: relative; width: 100%; aspect-ratio: 1; border-radius: calc(100cqw * 0); }
.wroot--m { aspect-ratio: 338 / 158; }
.wd { position: absolute; inset: 0; overflow: hidden; --w: calc(100cqw / 158); border-radius: calc(var(--w) * 22); font-family: var(--font-system); color: #fff; line-height: 1.1; -webkit-font-smoothing: antialiased; }
.wd--m { --w: calc(100cqw / 338); }
.wd__bg { position: absolute; inset: 0; }
.wd__heart { position: absolute; z-index: 2; top: calc(var(--w) * 16); left: calc(var(--w) * 16); width: calc(var(--w) * 13); height: calc(var(--w) * 12); }
.wd__c { position: absolute; inset: calc(var(--w) * 16); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: calc(var(--w) * 2); text-align: center; }
.wd__n { font-size: calc(var(--w) * 58); font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1; letter-spacing: -.02em; }
.wd__l { font-size: calc(var(--w) * 10); font-weight: 700; letter-spacing: calc(var(--w) * 1.2); text-transform: uppercase; }
.wd__d { font-size: calc(var(--w) * 11); opacity: .6; padding-top: calc(var(--w) * 4); white-space: nowrap; }
.wd--m .wd__c { flex-direction: row; justify-content: flex-start; gap: calc(var(--w) * 16); padding-left: calc(var(--w) * 8); text-align: left; }
.wd--m .wd__n { font-size: calc(var(--w) * 68); }
.wd--m .wd__l { font-size: calc(var(--w) * 11); }
.wd--m .wd__meta { display: grid; gap: calc(var(--w) * 4); }
.wd--m .wd__d { padding-top: 0; }
.wd--midnight .wd__bg { background: linear-gradient(180deg, #2A1320 0%, #0B090D 75%); }
.wd--midnight .wd__l { color: #FF5C85; }
.wd--midnight .wd__heart { fill: #FF3B6B; }
.wd--photo .wd__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.wd--photo .wd__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.15) 50%, rgba(0,0,0,.55)); }
.wd--photo .wd__heart { fill: #fff; opacity: .9; }
.wd--photo .wd__c { align-items: flex-start; justify-content: flex-end; text-align: left; }
.wd--photo .wd__n { font-size: calc(var(--w) * 50); text-shadow: 0 1px 8px rgba(0,0,0,.4); }
.wd--photo .wd__d { opacity: .85; }
.wd--photo.wd--m .wd__c { flex-direction: row; align-items: flex-end; justify-content: flex-start; }
.wd--photo.wd--m .wd__n { font-size: calc(var(--w) * 68); }

/* home screen */
.home { position: absolute; inset: 0; --p: calc(100cqw / 393); font-family: var(--font-system); color: #fff; line-height: 1.2; }
.home__wall { position: absolute; inset: 0; }
.home__wall img { width: 100%; height: 100%; object-fit: cover; }
.home__wall::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,10,20,.35), rgba(20,10,20,.15) 40%, rgba(20,10,20,.45)); }
.home__grid { position: absolute; left: calc(var(--p) * 27.5); right: calc(var(--p) * 27.5); top: calc(var(--p) * 72); display: grid; grid-template-columns: repeat(4, 1fr); column-gap: calc(var(--p) * 30); row-gap: calc(var(--p) * 22); }
.home__w { grid-column: span 4; }
.home__ws { grid-column: span 2; grid-row: span 2; }
.home__w .wroot, .home__ws .wroot { filter: drop-shadow(0 calc(var(--p) * 4) calc(var(--p) * 10) rgba(0,0,0,.25)); }
.app-i { display: grid; justify-items: center; gap: calc(var(--p) * 6); font-size: calc(var(--p) * 11.5); font-weight: 500; text-shadow: 0 1px 4px rgba(0,0,0,.35); min-width: 0; }
.app-i__t { width: calc(var(--p) * 62); height: calc(var(--p) * 62); border-radius: calc(var(--p) * 14); background: linear-gradient(160deg, rgba(255,255,255,.34), rgba(255,255,255,.12)); box-shadow: inset 0 0 0 calc(var(--p) * .8) rgba(255,255,255,.35); display: grid; place-items: center; overflow: hidden; }
.app-i__t img { width: 100%; height: 100%; }
.app-i__t svg { width: 46%; height: 46%; fill: none; stroke: #fff; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.app-i__n { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home__dots { position: absolute; left: 50%; bottom: calc(var(--p) * 124); transform: translateX(-50%); display: flex; gap: calc(var(--p) * 8); padding: calc(var(--p) * 7) calc(var(--p) * 10); border-radius: 999px; background: rgba(255,255,255,.14); }
.home__dots i { width: calc(var(--p) * 7); height: calc(var(--p) * 7); border-radius: 50%; background: rgba(255,255,255,.45); }
.home__dots i:first-child { background: #fff; }
.home__dock { position: absolute; left: calc(var(--p) * 12); right: calc(var(--p) * 12); bottom: calc(var(--p) * 14); height: calc(var(--p) * 92); border-radius: calc(var(--p) * 36); background: rgba(255,255,255,.16); box-shadow: inset 0 0 0 calc(var(--p) * .8) rgba(255,255,255,.22); display: flex; justify-content: space-around; align-items: center; padding: 0 calc(var(--p) * 10); }

/* lock screen */
.lock { position: absolute; inset: 0; --p: calc(100cqw / 393); font-family: var(--font-system); color: #fff; line-height: 1.15; }
.lock__wall { position: absolute; inset: 0; }
.lock__wall img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.lock__wall::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,6,12,.55), rgba(10,6,12,.1) 45%, rgba(10,6,12,.35)); }
.lock__inline { position: absolute; top: calc(var(--p) * 96); left: 0; right: 0; text-align: center; font-size: calc(var(--p) * 17); font-weight: 600; opacity: .92; display: flex; justify-content: center; align-items: center; gap: calc(var(--p) * 5); }
.lock__inline svg { width: calc(var(--p) * 14); height: calc(var(--p) * 13); fill: #fff; }
.lock__time { position: absolute; top: calc(var(--p) * 112); left: 0; right: 0; text-align: center; font-size: calc(var(--p) * 104); line-height: 1; font-weight: 700; letter-spacing: -.02em; font-family: var(--font-rounded); opacity: .96; }
.lock__row { position: absolute; top: calc(var(--p) * 236); left: 0; right: 0; display: flex; justify-content: center; gap: calc(var(--p) * 12); }
.lock__circ, .lock__rect { background: rgba(255,255,255,.2); box-shadow: inset 0 0 0 calc(var(--p) * .6) rgba(255,255,255,.18); height: calc(var(--p) * 72); }
.lock__circ { width: calc(var(--p) * 72); border-radius: 50%; display: grid; place-content: center; text-align: center; }
.lock__circ b { font-size: calc(var(--p) * 22); font-weight: 800; line-height: 1; }
.lock__circ span { font-size: calc(var(--p) * 9); font-weight: 600; }
.lock__rect { width: calc(var(--p) * 164); border-radius: calc(var(--p) * 16); padding: calc(var(--p) * 8) calc(var(--p) * 12); display: grid; align-content: center; gap: calc(var(--p) * 1); }
.lock__rect .r1 { font-size: calc(var(--p) * 13); font-weight: 600; }
.lock__rect .r2 { font-size: calc(var(--p) * 22); font-weight: 700; line-height: 1.05; }
.lock__rect .r3 { font-size: calc(var(--p) * 11); opacity: .85; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lock__btns { position: absolute; left: calc(var(--p) * 46); right: calc(var(--p) * 46); bottom: calc(var(--p) * 44); display: flex; justify-content: space-between; }
.lock__btns i { width: calc(var(--p) * 50); height: calc(var(--p) * 50); border-radius: 50%; background: rgba(0,0,0,.28); box-shadow: inset 0 0 0 calc(var(--p) * .6) rgba(255,255,255,.2); display: grid; place-items: center; }
.lock__btns svg { width: 44%; height: 44%; fill: none; stroke: #fff; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.lock__bar { position: absolute; left: 50%; bottom: calc(var(--p) * 9); width: calc(var(--p) * 140); height: calc(var(--p) * 5); border-radius: 9px; background: #fff; transform: translateX(-50%); }

/* Messages */
.chat { position: absolute; inset: 0; background: #000; color: #fff; --p: calc(100cqw / 393); font-family: var(--font-system); }
.chat__head { position: absolute; z-index: 3; top: 0; left: 0; right: 0; height: calc(var(--p) * 150); padding-top: calc(var(--p) * 62); display: grid; justify-items: center; gap: calc(var(--p) * 5); background: linear-gradient(180deg, #000 70%, rgba(0,0,0,0)); }
.chat__back { position: absolute; left: calc(var(--p) * 16); top: calc(var(--p) * 74); width: calc(var(--p) * 12); height: calc(var(--p) * 20); fill: none; stroke: #0A84FF; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.chat__avs { display: flex; }
.chat__av { width: calc(var(--p) * 44); height: calc(var(--p) * 44); border-radius: 50%; display: grid; place-items: center; font-size: calc(var(--p) * 18); font-weight: 600; background: linear-gradient(180deg, #A5A8B1, #858893); box-shadow: 0 0 0 calc(var(--p) * 2) #000; }
.chat__av + .chat__av { margin-left: calc(var(--p) * -14); background: linear-gradient(180deg, #C9A9B2, #A2808B); }
.chat__name { font-size: calc(var(--p) * 12); color: #fff; font-weight: 500; }
.chat__body { position: absolute; left: 0; right: 0; bottom: calc(var(--p) * 92); padding: 0 calc(var(--p) * 14); display: flex; flex-direction: column; gap: calc(var(--p) * 6); }
.chat__meta { align-self: center; font-size: calc(var(--p) * 11); color: #8E8E93; margin: calc(var(--p) * 4) 0; }
.bub { max-width: 75%; padding: calc(var(--p) * 8) calc(var(--p) * 13); border-radius: calc(var(--p) * 19); font-size: calc(var(--p) * 16.5); line-height: 1.3; font-weight: 400; }
.bub--in { align-self: flex-start; background: #262629; }
.bub--out { align-self: flex-end; background: #0A84FF; }
.bub a { color: inherit; text-decoration: underline; }
.bub--img { padding: 0; width: 58%; aspect-ratio: 4 / 5; border-radius: calc(var(--p) * 16); overflow: hidden; position: relative; align-self: flex-end; background: #111; }
.bub__name { font-size: calc(var(--p) * 11); color: #8E8E93; margin: calc(var(--p) * 2) 0 0 calc(var(--p) * 12); }
.chat__bar { position: absolute; left: calc(var(--p) * 12); right: calc(var(--p) * 12); bottom: calc(var(--p) * 34); height: calc(var(--p) * 40); display: flex; align-items: center; gap: calc(var(--p) * 10); }
.chat__plus { width: calc(var(--p) * 36); height: calc(var(--p) * 36); border-radius: 50%; background: #262629; flex: none; display: grid; place-items: center; }
.chat__plus svg { width: 40%; height: 40%; stroke: #9a9aa0; stroke-width: 2.4; stroke-linecap: round; }
.chat__input { flex: 1; height: calc(var(--p) * 36); border-radius: calc(var(--p) * 18); box-shadow: inset 0 0 0 calc(var(--p) * 1) #3a3a3c; font-size: calc(var(--p) * 16); color: #636366; display: flex; align-items: center; padding-left: calc(var(--p) * 14); }
.motion .chat [data-chat] { opacity: 0; }

/* ---- widgets: all seven styles, and on black for StandBy (countdown-widget.tsx) */
.wd--black .wd__bg { background: #000; }
.wd--black .wd__d { color: #fff; opacity: .6; }
.wd--rose { color: #7E1C40; }
.wd--rose .wd__bg { background: linear-gradient(135deg, #FFF0F3, #FBD3DD 50%, #F5B3C4); }
.wd--rose .wd__n { font-family: var(--font-serif); font-weight: 400; letter-spacing: 0; line-height: 1.15; }
.wd--rose .wd__l { font-family: var(--font-italic); font-style: italic; font-weight: 400; text-transform: none; letter-spacing: 0; font-size: calc(var(--w) * 13); color: #A83E63; }
.wd--rose .wd__d { font-family: var(--font-italic); font-style: italic; font-size: calc(var(--w) * 12); }
.wd--rose .wd__heart { fill: none; stroke: #D9577F; stroke-width: 2.2; }
.wd--black.wd--rose { color: #fff; }
.wd--black.wd--rose .wd__n { color: #FFB3C6; }
.wd--black.wd--rose .wd__l { color: #FF8FAE; }
.wd--sage { color: #3C4632; font-family: var(--font-rounded); }
.wd--sage .wd__bg { background: #EEE6D8; }
.wd--sage .wd__l { color: #7C6B55; }
.wd--sage .wd__heart { fill: #C47A58; }
.wd--black.wd--sage { color: #fff; }
.wd--black.wd--sage .wd__n { color: #C3D1AE; }
.wd--black.wd--sage .wd__l { color: #E0B89F; }
.wd__arch { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); border-radius: 999px 999px 0 0; }
.wd__arch--o { width: calc(var(--w) * 112); height: calc(var(--w) * 96); background: #C9D2B8; }
.wd__arch--i { width: calc(var(--w) * 80); height: calc(var(--w) * 66); background: #E3C9B3; }
.wd--m .wd__arch { left: calc(var(--w) * 74); }
.wd--m .wd__arch--o { width: calc(var(--w) * 130); height: calc(var(--w) * 104); }
.wd--m .wd__arch--i { width: calc(var(--w) * 94); height: calc(var(--w) * 74); }
.wd--poster, .wd--board, .wd--paper { font-family: var(--font-text); font-weight: 500; color: #F4F3EF; --soft: #8B8A86; line-height: 1.2; }
.wd--poster .wd__bg { background: #0B0B0B; }
.wd--board .wd__bg { background: #000; }
.wd--paper { color: #0B0B0B; --soft: #6B6A66; }
.wd--paper .wd__bg { background: #F4F3EF; }
.wd--black.wd--paper { color: #F4F3EF; --soft: #8B8A86; }
.wd--black .wd__bg { background: #000; }
.wm__top { position: absolute; top: calc(var(--w) * 16); left: calc(var(--w) * 16); right: calc(var(--w) * 16); display: flex; justify-content: space-between; align-items: center; font-size: calc(var(--w) * 12); }
.wd .hrt { width: calc(var(--w) * 12); height: calc(var(--w) * 11); }
.wm__dim { opacity: .62; }
.wm__mono { font-family: var(--font-mono); font-size: calc(var(--w) * 10); color: var(--soft); white-space: nowrap; }
.wmp__num { position: absolute; left: calc(var(--w) * 9); bottom: calc(var(--w) * -27); font: 700 calc(var(--w) * 150)/.74 var(--font-display); letter-spacing: -.055em; white-space: nowrap; }
.wd--m .wmp__num { font-size: calc(var(--w) * 176); bottom: calc(var(--w) * -32); }
.wmp__side { position: absolute; top: calc(var(--w) * 16); right: calc(var(--w) * 16); max-width: calc(var(--w) * 128); display: grid; justify-items: end; gap: calc(var(--w) * 4); text-align: right; font-size: calc(var(--w) * 12); }
.wmb__tiles { position: absolute; top: calc(var(--w) * 16); left: calc(var(--w) * 16); display: flex; gap: calc(var(--w) * 4); --lh: calc(var(--w) * 88); --lw: calc(var(--w) * 70.4); }
.wd--m .wmb__tiles { --lh: calc(var(--w) * 124); --lw: calc(var(--w) * 99.2); }
.wmb__heart .leaf { --lh: calc(var(--w) * 26); --lw: calc(var(--w) * 20); }
.wmb__foot { position: absolute; left: calc(var(--w) * 16); bottom: calc(var(--w) * 16); display: flex; align-items: center; gap: calc(var(--w) * 6); font-size: calc(var(--w) * 12); }
.wmb__side { position: absolute; top: calc(var(--w) * 16); bottom: calc(var(--w) * 16); left: calc(var(--w) * 234); right: calc(var(--w) * 16); display: flex; flex-direction: column; justify-content: space-between; font-size: calc(var(--w) * 13); }
.wmb__row { display: flex; align-items: center; gap: calc(var(--w) * 6); }
.wmpa__rule { position: absolute; left: calc(var(--w) * 16); right: calc(var(--w) * 16); top: calc(var(--w) * 36); height: max(1px, calc(var(--w) * 1.5)); background: currentColor; }
.wmpa__left { position: absolute; left: calc(var(--w) * 16); top: calc(var(--w) * 44); bottom: calc(var(--w) * 16); max-width: calc(var(--w) * 150); display: flex; flex-direction: column; justify-content: space-between; font-size: calc(var(--w) * 12); }
.wd--m .wmpa__left { font-size: calc(var(--w) * 13); }
.wmpa__num { position: absolute; right: calc(var(--w) * 13); bottom: calc(var(--w) * 11); font: 700 calc(var(--w) * 80)/.74 var(--font-display); letter-spacing: -.055em; }
.wd--m .wmpa__num { font-size: calc(var(--w) * 96); }

/* ---- Home Screen edit mode, Lock Screen wake, wallpaper parallax */
.home__done { position: absolute; z-index: 12; top: calc(var(--p) * 58); right: calc(var(--p) * 18); padding: calc(var(--p) * 6) calc(var(--p) * 14); border-radius: 999px; background: rgba(255,255,255,.24); font-size: calc(var(--p) * 15); font-weight: 600; opacity: 0; }
.home__wall, .lock__wall { overflow: hidden; }
.lock__dim { position: absolute; inset: 0; z-index: 30; background: #000; opacity: 0; pointer-events: none; }

/* ---- StandBy: widget stack on the left, clock on the right (--q: one point of an 852 pt screen) */
.stb { position: absolute; inset: 0; background: #000; --q: calc(100cqw / 852); font-family: var(--font-system); color: #fff; line-height: 1; }
.stb__stack { position: absolute; left: calc(var(--q) * 47); top: calc(var(--q) * 25); width: calc(var(--q) * 342); height: calc(var(--q) * 342); }
.stb__face { position: absolute; inset: 0; opacity: 0; transform: translateY(6%) scale(.94); transition: opacity .5s var(--ease), transform .7s var(--ease); }
.stb__face.is-on { opacity: 1; transform: none; }
.stb__dots { position: absolute; left: calc(var(--q) * -24); top: 50%; transform: translateY(-50%); display: grid; gap: calc(var(--q) * 8); }
.stb__dots i { width: calc(var(--q) * 7); height: calc(var(--q) * 7); border-radius: 50%; background: rgba(255,255,255,.26); transition: background-color .3s; }
.stb__dots i.is-on { background: rgba(255,255,255,.85); }
.stb__clock { position: absolute; left: calc(var(--q) * 410); right: calc(var(--q) * 16); top: 0; bottom: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.stb__time { font-family: var(--font-rounded); font-weight: 200; font-size: calc(var(--q) * 132); letter-spacing: -.03em; color: #C9C9CF; font-variant-numeric: tabular-nums; white-space: nowrap; }
.stb__date { font-size: calc(var(--q) * 24); color: #8E8E93; margin-top: calc(var(--q) * 8); }
.standby__device { cursor: pointer; touch-action: pan-y; -webkit-user-select: none; user-select: none; }
.sb-ctl { display: flex; align-items: center; gap: 12px; }
.sb-nav { display: flex; }
.sb-nav button { width: 28px; height: 28px; display: grid; place-items: center; padding: 0; border: 0; background: none; cursor: pointer; }
.sb-nav button i { width: 7px; height: 7px; border-radius: 50%; background: rgba(244, 243, 239, .38); transition: transform .3s var(--ease), background-color .3s; }
.sb-nav button[aria-pressed="true"] i { background: var(--heart); transform: scale(1.4); }
.sb-name { min-width: 7em; font-size: 15px; color: var(--fg); }

/* ---- Share: several pictures, same message */
.share__col { display: grid; justify-items: center; gap: 22px; }
.share__nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.share__nav button { font: 500 14px/1 var(--font-text); color: var(--fg-2); background: none; border: 0; box-shadow: inset 0 0 0 1px rgba(244, 243, 239, .2); border-radius: 999px; padding: 10px 14px; cursor: pointer; transition: background-color .3s, color .3s; }
.share__nav button[aria-pressed="true"] { background: var(--fg); color: var(--ink); box-shadow: none; }
.bub__v { position: absolute; inset: 0; container-type: inline-size; opacity: 0; transform: scale(1.05); transition: opacity .6s var(--ease), transform .8s var(--ease); }
.bub__v.is-on { opacity: 1; transform: none; }
.bub--img { cursor: pointer; }

/* ---- Date and time step: settings sheet with the wheel (temporary visual) and the video slot */
.how__temp, .how__video { position: absolute; inset: 0; width: 100%; height: 100%; }
.how__video { object-fit: cover; background: #000; }
.has-video .how__temp { display: none; }
.how__why { margin-top: 18px; max-width: 34em; }
.pick { position: absolute; inset: 0; --p: calc(100cqw / 393); font-family: var(--font-system); color: #fff; line-height: 1.25; }
.pick__under { position: absolute; inset: 0; }
.pick__dim { position: absolute; inset: 0; background: rgba(0,0,0,.6); }
.pick__sheet { position: absolute; left: 0; right: 0; bottom: 0; background: #111214; border-radius: calc(var(--p) * 20) calc(var(--p) * 20) 0 0; padding: calc(var(--p) * 24) calc(var(--p) * 24) calc(var(--p) * 30); display: flex; flex-direction: column; gap: calc(var(--p) * 8); }
.pick__title { font-size: calc(var(--p) * 32); line-height: calc(var(--p) * 44); font-weight: 600; text-align: center; margin-bottom: calc(var(--p) * 8); }
.pick__label { font-size: calc(var(--p) * 14); font-weight: 600; color: #B0B4BA; }
.pick__preview { font-size: calc(var(--p) * 16); font-weight: 700; margin-bottom: calc(var(--p) * 4); }
.pk { position: relative; height: calc(var(--p) * 216); display: flex; justify-content: center; gap: calc(var(--p) * 2); overflow: hidden; -webkit-mask-image: linear-gradient(transparent, #000 32%, #000 68%, transparent); mask-image: linear-gradient(transparent, #000 32%, #000 68%, transparent); }
.pk__band { position: absolute; left: 0; right: 0; top: 50%; height: calc(var(--p) * 34); transform: translateY(-50%); border-radius: calc(var(--p) * 8); background: rgba(255,255,255,.12); }
.pk__col { position: relative; height: 100%; }
.pk__col--d { width: calc(var(--p) * 140); text-align: right; }
.pk__col--h { width: calc(var(--p) * 46); text-align: right; }
.pk__col--m { width: calc(var(--p) * 46); text-align: center; }
.pk__col--a { width: calc(var(--p) * 50); text-align: left; }
.pk__list { --row: calc(var(--p) * 34); display: flex; flex-direction: column; transform: translateY(calc(var(--row) * (2.68 - var(--i)))); will-change: transform; }
.pk__list span { height: var(--row); line-height: var(--row); font-size: calc(var(--p) * 21); padding: 0 calc(var(--p) * 6); white-space: nowrap; font-variant-numeric: tabular-nums; }
.pick__save { margin-top: calc(var(--p) * 8); background: #fff; color: #000; border-radius: calc(var(--p) * 14); padding: calc(var(--p) * 16) 0; text-align: center; font-weight: 700; font-size: calc(var(--p) * 16); }
.pick__cancel { text-align: center; padding: calc(var(--p) * 8) 0 0; font-weight: 600; font-size: calc(var(--p) * 15); }

/* ---- the new paywall (concept B, paywall-showcase.tsx). --p: one point of a 402 pt screen; --s: of the 352 pt stage */
.pw2 { position: absolute; inset: 0; --p: calc(100cqw / 402); background: linear-gradient(180deg, #2A1320, #140E13 12%); font-family: var(--font-system); color: #fff; overflow: hidden; line-height: 1.25; }
.pw2__sheet { position: absolute; left: 0; right: 0; top: calc(var(--p) * 60); bottom: 0; background: #000; border-radius: calc(var(--p) * 38) calc(var(--p) * 38) 0 0; padding: calc(var(--p) * 20) calc(var(--p) * 24) 0; }
.pw2__top { display: flex; justify-content: space-between; align-items: baseline; }
.pw2__kicker { color: #FF3B6B; font-size: calc(var(--p) * 15.5); font-weight: 500; }
.pw2__later { color: #B0B4BA; font-size: calc(var(--p) * 16); font-weight: 600; }
.pw2__head { font-size: calc(var(--p) * 28); font-weight: 800; letter-spacing: -.01em; margin-top: calc(var(--p) * 8); }
.pw2__sub { font-size: calc(var(--p) * 15.5); color: #B0B4BA; margin-top: calc(var(--p) * 6); line-height: 1.35; }
.pw2__stage { position: relative; margin-top: calc(var(--p) * 12); height: calc(var(--p) * 232); border-radius: calc(var(--p) * 26); overflow: hidden; container-type: inline-size; --s: calc(100cqw / 352); background: #1C1612; transition: background-color .6s var(--ease); }
.pw2__cap { position: absolute; z-index: 2; left: calc(var(--s) * 16); top: calc(var(--s) * 12); font-size: calc(var(--s) * 12.5); font-weight: 500; color: rgba(255,255,255,.62); transition: color .5s; }
.pw2__stage.is-light .pw2__cap { color: rgba(0,0,0,.55); }
.pw2__scenes, .pw2__scene, .pws { position: absolute; inset: 0; }
.pw2__scene { opacity: 0; transform: scale(1.04); transition: opacity .5s var(--ease), transform .7s var(--ease); }
.pw2__scene.is-in { opacity: 1; transform: none; }
.pw2__scene.is-out { opacity: 0; transform: scale(.98); }
.pws__phone { position: absolute; left: 50%; top: calc(var(--s) * 34); width: calc(var(--s) * 92); aspect-ratio: 393 / 852; transform: translateX(-50%); padding: calc(var(--s) * 3); border-radius: calc(var(--s) * 16); background: #0D0D0D; box-shadow: 0 0 0 1px #3C3C3C; box-sizing: content-box; }
.pws__screen, .pws__lscreen, .pws__card { position: relative; width: 100%; height: 100%; overflow: hidden; container-type: inline-size; }
.pws__screen { border-radius: calc(var(--s) * 13); }
.pws__screen::after { content: ""; position: absolute; z-index: 20; top: 1.3%; left: 34%; width: 32%; height: 4.3%; border-radius: 999px; background: #000; }
.pws__wall { position: absolute; left: calc(var(--s) * 73); top: calc(var(--s) * 34); width: calc(var(--s) * 206); height: calc(var(--s) * 192); border-radius: calc(var(--s) * 20); overflow: hidden; background: linear-gradient(180deg, #5E4F74, #2E2B45 60%, #1C1D2E); }
.pws__med { position: absolute; left: calc(var(--s) * 15); top: calc(var(--s) * 14); width: calc(var(--s) * 176); }
.pws__small { position: absolute; left: calc(var(--s) * 15); top: calc(var(--s) * 104); width: calc(var(--s) * 80); }
.pws__icons { position: absolute; left: calc(var(--s) * 112); top: calc(var(--s) * 106); display: grid; grid-template-columns: repeat(2, calc(var(--s) * 31)); gap: calc(var(--s) * 16) calc(var(--s) * 16); }
.pws__icons i { display: block; width: calc(var(--s) * 31); aspect-ratio: 1; border-radius: calc(var(--s) * 8); }
.pws__land { position: absolute; left: 50%; top: calc(var(--s) * 44); width: calc(var(--s) * 322); aspect-ratio: 874 / 402; transform: translateX(-50%); padding: calc(var(--s) * 3); border-radius: calc(var(--s) * 22); background: #0D0D0D; box-shadow: 0 0 0 1px #3C3C3C; box-sizing: content-box; }
.pws__lscreen { border-radius: calc(var(--s) * 19); }
.pws__stand { position: absolute; left: 50%; top: calc(var(--s) * 197); width: calc(var(--s) * 110); height: calc(var(--s) * 12); transform: translateX(-50%); border-radius: 0 0 calc(var(--s) * 8) calc(var(--s) * 8); background: #232326; }
.pws__chat { position: absolute; left: calc(var(--s) * 90); top: calc(var(--s) * 34); width: calc(var(--s) * 174); height: calc(var(--s) * 192); border-radius: calc(var(--s) * 14); overflow: hidden; background: #0C0C0E; }
.pws__in { position: absolute; left: calc(var(--s) * 7); top: calc(var(--s) * 8); padding: calc(var(--s) * 4) calc(var(--s) * 9); border-radius: calc(var(--s) * 12); background: #232326; color: #EEE; font-size: calc(var(--s) * 8.5); white-space: nowrap; }
.pws__in--2 { top: auto; bottom: calc(var(--s) * 8); }
.pws__img { position: absolute; right: calc(var(--s) * 7); top: calc(var(--s) * 30); width: calc(var(--s) * 102); padding: calc(var(--s) * 2); border-radius: calc(var(--s) * 9); background: #2B3A4A; }
.pws__card { aspect-ratio: 4 / 5; height: auto; border-radius: calc(var(--s) * 7); }
.pw2__tabs { display: flex; gap: calc(var(--p) * 4); margin-top: calc(var(--p) * 12); padding: calc(var(--p) * 3); border-radius: calc(var(--p) * 12); background: #141416; }
.pw2__tab { position: relative; flex: 1; height: calc(var(--p) * 34); border: 0; border-radius: calc(var(--p) * 10); background: none; color: #B0B4BA; font: 600 calc(var(--p) * 14)/1 var(--font-system); cursor: pointer; overflow: hidden; transition: background-color .3s, color .3s; }
.pw2__tab[aria-pressed="true"] { background: #2A2A2E; color: #fff; }
.pw2__tab i { position: absolute; left: calc(var(--p) * 10); right: calc(var(--p) * 10); bottom: 0; height: calc(var(--p) * 2.5); border-radius: 2px; background: #FF3B6B; transform: scaleX(0); transform-origin: left; }
.pw2__tab[aria-pressed="true"] i { transform: scaleX(1); }
.pw2__tab.is-run i { animation: pw-run 3s linear forwards; }
@keyframes pw-run { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.pw2__chips { display: flex; justify-content: space-between; margin-top: calc(var(--p) * 13); }
.pw2__chip { width: calc(var(--p) * 40); padding: 0; border: 0; border-radius: calc(var(--p) * 10); background: none; cursor: pointer; transition: opacity .3s, box-shadow .3s; }
.pw2__chip .wroot { display: block; border-radius: calc(var(--p) * 9); overflow: hidden; }
.pw2__chip[aria-pressed="true"] { box-shadow: 0 0 0 calc(var(--p) * 2.5) #000, 0 0 0 calc(var(--p) * 4.5) #FF3B6B; }
.pw2__chip.is-off { opacity: .32; cursor: default; }
.pw2__name { margin-top: calc(var(--p) * 10); text-align: center; font-size: calc(var(--p) * 14); font-weight: 600; }
.pw2__name span { color: #8C9096; font-weight: 500; }
.pw2__note { min-height: calc(var(--p) * 16); margin-top: calc(var(--p) * 2); text-align: center; font-size: calc(var(--p) * 12.5); color: #8C9096; }
.pw2__buy { position: absolute; left: 0; right: 0; bottom: 0; padding: calc(var(--p) * 12) calc(var(--p) * 24) calc(var(--p) * 24); border-top: 1px solid #1C1C1E; background: #000; }
.pw2__both { text-align: center; font-size: calc(var(--p) * 13.5); color: #B0B4BA; }
.pw2__plans { display: flex; gap: calc(var(--p) * 10); margin-top: calc(var(--p) * 12); }
.pw2__plan { flex: 1; padding: calc(var(--p) * 10) calc(var(--p) * 12); border: calc(var(--p) * 1.5) solid #2A2A2E; border-radius: calc(var(--p) * 14); background: #0C0C0D; color: #fff; font-family: var(--font-system); text-align: left; cursor: pointer; transition: border-color .3s, background-color .3s; }
.pw2__plan[aria-pressed="true"] { border-color: #FF3B6B; background: rgba(255,59,107,.09); }
.pw2__plan b { display: flex; align-items: center; gap: calc(var(--p) * 7); font-size: calc(var(--p) * 15); font-weight: 700; }
.pw2__plan b i { flex: none; width: calc(var(--p) * 16); height: calc(var(--p) * 16); border-radius: 50%; border: calc(var(--p) * 2) solid #555; }
.pw2__plan[aria-pressed="true"] b i { border-color: #FF3B6B; background: radial-gradient(circle, #FF3B6B 0 32%, transparent 38%); }
.pw2__plan span { display: block; margin-top: calc(var(--p) * 3); padding-left: calc(var(--p) * 23); font-size: calc(var(--p) * 13); font-weight: 500; color: #D8DADF; }
.pw2__cta { margin-top: calc(var(--p) * 10); height: calc(var(--p) * 50); border-radius: calc(var(--p) * 14); background: #FF3B6B; display: flex; align-items: center; justify-content: center; font-size: calc(var(--p) * 17); font-weight: 800; }
.pw2__links { display: flex; justify-content: center; gap: calc(var(--p) * 12); margin-top: calc(var(--p) * 10); font-size: calc(var(--p) * 11.5); color: #B0B4BA; white-space: nowrap; }
.pw2__links span { text-decoration: underline; }
.pw2__renew { margin-top: calc(var(--p) * 6); font-size: calc(var(--p) * 10); line-height: 1.35; color: #8C9096; text-align: center; }
.plus__device { display: grid; justify-items: center; gap: 16px; }
.plus__device figcaption { text-align: center; }

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

/* The film section stays hidden until the film exists. */
.film[hidden] { display: none !important; }
