/* Aippy live proof — the product chapter that proves the homepage claim.
   Everything is scoped to .live-proof so the real app shell cannot leak into
   the editorial system around it. */

.live-proof {
  min-height: max(100svh, 800px);
  display: grid; align-items: center;
  /* Keep the dark handoff continuous, but match the chapter breath used by
     .stage-light / .stage-dark instead of overlapping the product scrub. */
  margin-top: 0;
  padding: max(calc(var(--chrome) + var(--s5)), clamp(104px, 9.5vw, 142px)) 0 clamp(88px, 8vw, 120px);
  overflow: hidden; background: var(--ink);
}
.live-proof::before {
  content: ''; position: absolute; z-index: 0; inset: 0; pointer-events: none;
  background:
    radial-gradient(70% 68% at 78% 48%, rgba(255,255,255,.052), transparent 65%),
    linear-gradient(to bottom, rgba(255,255,255,.012), transparent 28%);
}
.live-proof-grid {
  display: grid; grid-template-columns: minmax(360px, 5fr) minmax(500px, 7fr);
  gap: clamp(52px, 6.8vw, 108px); align-items: center;
}
.live-proof-copy { min-width: 0; grid-column: 1; grid-row: 1; align-self: end; }
.live-proof-copy > .label { margin-bottom: clamp(18px, 2vw, 24px); }
.live-proof h2 {
  max-width: 10ch; font-size: min(var(--fs-h1), 68px);
  line-height: .98; letter-spacing: var(--tr-h1);
}
.live-proof-lede {
  max-width: 39ch; margin-top: clamp(28px, 3vw, 34px); color: var(--on-dark-2);
  font-size: var(--fs-lede); line-height: 1.55; letter-spacing: var(--tr-body);
}

.live-proof-open {
  grid-column: 1; grid-row: 2; align-self: start; justify-self: start;
  margin-top: var(--s5);
}
@keyframes live-proof-pulse { 50% { opacity: .35; transform: scale(.65); } }

.live-proof-stage {
  position: relative; min-width: 0; display: grid; place-items: center; isolation: isolate;
  grid-column: 2; grid-row: 1 / span 2;
}
.live-proof-orbit { position: absolute; z-index: -1; width: min(660px, 98%); aspect-ratio: 1; border: 1px solid rgba(255,255,255,.052); border-radius: 50%; opacity: .82; }
.live-proof-orbit::before, .live-proof-orbit::after { content: ''; position: absolute; border: 1px solid rgba(255,255,255,.038); border-radius: 50%; }
.live-proof-orbit::before { inset: 12%; }
.live-proof-orbit::after { inset: 25%; }
.live-proof-orbit > i { position: absolute; width: 4px; height: 4px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 16px rgba(0,255,81,.65); }
.live-proof-orbit > i:nth-child(1) { top: 8.5%; left: 28%; }
.live-proof-orbit > i:nth-child(2) { right: 12%; bottom: 26%; opacity: .58; }
.live-proof-orbit > i:nth-child(3) { left: 27%; bottom: 14%; opacity: .34; }
.live-proof-device-wrap {
  position: relative;
  display: grid;
  grid-template-columns: max-content max-content;
  align-items: center;
  justify-content: center;
  column-gap: clamp(18px,2.7vw,38px);
}
.live-proof-device { grid-column: 1; grid-row: 1; }
.live-proof-controls { grid-column: 2; grid-row: 1; }
.live-proof-device { position: relative; width: clamp(292px, 24vw, 326px); aspect-ratio: 342 / 718; border-radius: 50px; background: #000; box-shadow: 0 55px 130px rgba(0,0,0,.78), 0 0 0 1px rgba(255,255,255,.035); transform: translateZ(0); }
.live-proof-frame-image { position: absolute; z-index: 5; inset: 0; width: 100%; height: 100%; pointer-events: none; filter: drop-shadow(0 1px 0 rgba(255,255,255,.08)); }
.live-proof-screen { position: absolute; z-index: 1; inset: 3px; overflow: hidden; border-radius: 47px; background: #0d0d0d; color: rgba(255,255,255,.94); font-family: -apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif; }
.live-proof-status { position: absolute; z-index: 12; top: 7px; left: 8px; width: calc(100% - 16px); height: auto; pointer-events: none; }
.live-proof-feed { position: absolute; z-index: 2; top: 47px; right: 7px; bottom: 69px; left: 7px; }
.live-proof-feed.is-switching-next,
.live-proof-feed.is-switching-previous { will-change: transform; }
.live-proof-player { position: absolute; z-index: 2; top: 0; right: 0; bottom: 72px; left: 0; overflow: hidden; border-radius: 10px 10px 18px 18px; background: #050507; isolation: isolate; }
.live-proof-frame { position: absolute; inset: 0; width: 100%; height: 100%; display: block; border: 0; background: #050507; color-scheme: normal; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(8px); transition: opacity .34s ease, transform .52s var(--ease-entrance), visibility 0s linear .34s; }
.live-proof-frame.is-active { z-index: 2; opacity: 1; visibility: visible; pointer-events: auto; transform: none; transition: opacity .34s ease, transform .52s var(--ease-entrance), visibility 0s; }
.live-proof-frame.is-preloading { z-index: 1; transform: none; }
.live-proof-frame:focus-visible { outline: 2px solid var(--signal); outline-offset: -3px; }
/* Keep every remote work on Aippy's 390px reference viewport, then scale that
   virtual phone into the measured player window. This prevents fixed-width game
   controls from being handed the shell's narrower ~322px CSS viewport. */
.live-proof-player.is-viewport-fitted .live-proof-frame {
  inset: 0 auto auto 0; width: 390px; height: var(--player-canvas-height, 100%);
  transform-origin: top left; transform: translateY(8px) scale(var(--player-scale, 1));
}
.live-proof-player.is-viewport-fitted .live-proof-frame.is-active,
.live-proof-player.is-viewport-fitted .live-proof-frame.is-preloading { transform: scale(var(--player-scale, 1)); }

/* A single rigid feed surface leaves, swaps off-screen, then returns. */
@keyframes live-proof-feed-next {
  0% { transform: translate3d(0,0,0); animation-timing-function: cubic-bezier(.42,0,.72,.38); }
  49.99% { transform: translate3d(0,-105%,0); }
  50% { transform: translate3d(0,105%,0); animation-timing-function: cubic-bezier(.18,.72,.22,1); }
  100% { transform: translate3d(0,0,0); }
}
@keyframes live-proof-feed-previous {
  0% { transform: translate3d(0,0,0); animation-timing-function: cubic-bezier(.42,0,.72,.38); }
  49.99% { transform: translate3d(0,105%,0); }
  50% { transform: translate3d(0,-105%,0); animation-timing-function: cubic-bezier(.18,.72,.22,1); }
  100% { transform: translate3d(0,0,0); }
}
.live-proof-feed.is-switching-next { animation: live-proof-feed-next 560ms both; pointer-events: none; }
.live-proof-feed.is-switching-previous { animation: live-proof-feed-previous 560ms both; pointer-events: none; }

.live-proof-cover { position: absolute; z-index: 4; inset: 0; display: grid; place-items: end stretch; background: #0b0b0d; opacity: 1; visibility: visible; transition: opacity .52s var(--ease-entrance), visibility 0s; }
.live-proof-cover.is-ready { opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .52s var(--ease-entrance), visibility 0s linear .52s; }
.live-proof-cover > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .48; filter: saturate(.72) brightness(.62); transform: scale(1.02); }
.live-proof-cover > div { position: absolute; inset: 0; background: linear-gradient(to bottom,rgba(8,8,10,.16),rgba(8,8,10,.24) 52%,rgba(8,8,10,.92)); }
.live-proof-cover > p { position: relative; z-index: 2; margin: 0 24px 35px; display: grid; grid-template-columns: 28px minmax(0,1fr); column-gap: 12px; align-items: center; }
.live-proof-cover > p > span { grid-row: 1 / span 2; width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; }
.live-proof-cover > p > span i { width: 5px; height: 5px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 12px rgba(0,255,81,.8); animation: live-proof-pulse 1.2s ease-in-out infinite; }
.live-proof-cover strong { font-size: 12px; font-weight: 600; }
.live-proof-cover small { color: rgba(255,255,255,.64); font-size: 9px; line-height: 1.4; }
.live-proof-cover[data-error] > p > span i { background: #ff775f; box-shadow: none; animation: none; }
.live-proof-cover [data-proof-retry] { position: relative; z-index: 3; width: max-content; margin: 0 24px 24px; padding: 9px 15px; border: 1px solid rgba(255,255,255,.13); border-radius: 999px; background: rgba(8,8,10,.72); color: rgba(255,255,255,.94); cursor: pointer; font-size: 11px; }
.live-proof-cover [data-proof-retry]:disabled { cursor: wait; opacity: .58; }

.live-proof-meta { position: absolute; z-index: 7; right: 0; bottom: 0; left: 0; height: 72px; padding: 0 8px; background: #0d0d0d; }
.live-proof-actions { height: 40px; margin: 0; padding: 0 2px; display: flex; align-items: center; gap: 1px; color: #efefef; font-size: 11px; font-variant-numeric: tabular-nums; }
.live-proof-actions > span, .live-proof-actions > button { min-width: 40px; height: 40px; padding: 0 2px; display: flex; align-items: center; justify-content: center; gap: 2px; border: 0; border-radius: 10px; background: none; color: inherit; white-space: nowrap; }
.live-proof-actions > span { margin-right: auto; }
.live-proof-actions > button { cursor: pointer; transition: transform var(--dur-micro) var(--ease-micro), color var(--dur-micro) linear; }
.live-proof-actions > button:active { transform: scale(.86); }
.live-proof-actions > button[aria-pressed="true"] { color: var(--signal); }
.live-proof-actions img { width: 24px; height: 24px; object-fit: contain; }
.live-proof-actions b { font-size: 10px; font-weight: 520; }
.live-proof-creator { height: 32px; margin-top: 0; display: grid; grid-template-columns: 32px minmax(0,1fr) 32px; gap: 8px; align-items: center; }
.live-proof-creator > span { position: relative; width: 32px; height: 32px; }
.live-proof-creator > span > img:first-child { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; background: #18181b; }
.live-proof-creator > span > button { position: absolute; right: -6px; bottom: -6px; width: 32px; height: 32px; padding: 0; display: grid; place-items: center; border: 0; border-radius: 50%; background: none; cursor: pointer; }
.live-proof-creator > span > button img { width: 15px; height: 15px; }
.live-proof-creator > span > button[hidden] { display: none; }
.live-proof-creator p { min-width: 0; margin: 0; display: grid; }
.live-proof-creator strong, .live-proof-creator small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.live-proof-creator strong { font-size: 11px; line-height: 16px; font-weight: 700; letter-spacing: -.015em; }
.live-proof-creator small { color: #a7a7ab; font-size: 9px; line-height: 14px; }
.live-proof-creator > button { width: 32px; height: 32px; margin: 0; padding: 0; border: 0; border-radius: 8px; background: none; cursor: pointer; }
.live-proof-creator > button img { width: 28px; height: 28px; }
.live-proof-tabs { position: absolute; z-index: 10; right: 22px; bottom: 17px; left: 22px; height: 44px; display: grid; grid-template-columns: minmax(0,1fr) 44px; gap: 10px; align-items: center; }
.live-proof-tabs > span { height: 44px; padding: 0 3px; display: flex; align-items: center; justify-content: space-between; border: .8px solid transparent; border-radius: 100px; background: linear-gradient(rgba(13,13,13,.94),rgba(13,13,13,.94)) padding-box, linear-gradient(180deg,rgba(255,255,255,.5),rgba(255,255,255,.09)) border-box; box-shadow: 0 8px 20px rgba(0,0,0,.24); }
.live-proof-tabs button { width: 44px; height: 44px; padding: 0; display: grid; place-items: center; flex: none; border: 0; border-radius: 50%; background: none; cursor: pointer; transition: transform var(--dur-micro) var(--ease-micro); }
.live-proof-tabs button:active { transform: scale(.88); }
.live-proof-tabs img { width: 44px; height: 44px; }
.live-proof-home { position: absolute; z-index: 18; bottom: 5px; left: 50%; width: 104px; height: 4px; border-radius: 99px; background: #555558; transform: translateX(-50%); pointer-events: none; }
.live-proof-toast { position: absolute; z-index: 30; top: 47%; left: 50%; width: 210px; padding: 16px 17px; display: grid; gap: 5px; border: 1px solid rgba(0,255,81,.22); border-radius: 18px; background: rgba(15,15,18,.9); box-shadow: 0 24px 60px rgba(0,0,0,.56); backdrop-filter: blur(22px); opacity: 0; visibility: hidden; transform: translate(-50%,calc(-50% + 12px)) scale(.94); transition: opacity .22s, visibility .22s, transform .4s var(--ease-entrance); pointer-events: none; }
.live-proof-toast.is-visible { opacity: 1; visibility: visible; transform: translate(-50%,-50%) scale(1); }
.live-proof-toast strong { font-size: 12px; font-weight: 650; }
.live-proof-toast small { color: rgba(255,255,255,.64); font-size: 9px; line-height: 1.45; }

.live-proof-controls { display: grid; justify-items: center; gap: 14px; }
.live-proof-controls button { position: relative; width: 50px; height: 50px; display: grid; place-items: center; border: 1px solid var(--ink-line); border-radius: 50%; background: rgba(16,16,20,.72); color: var(--on-dark-1); cursor: pointer; backdrop-filter: blur(14px); transition: background var(--dur-short) var(--ease-move), border-color var(--dur-short) var(--ease-move), color var(--dur-short) var(--ease-move), transform var(--dur-short) var(--ease-entrance); }
.live-proof-controls button:not(:disabled):hover { border-color: var(--signal); background: var(--signal); color: var(--ink); transform: scale(1.055); }
.live-proof-controls button:not(:disabled):active { transform: scale(.94); }
.live-proof-controls button:focus-visible { outline: 2px solid var(--signal); outline-offset: 3px; }
.live-proof-controls button:disabled { cursor: default; opacity: .34; transform: none; }
.live-proof-controls button[aria-busy="true"] { cursor: wait; opacity: .5; }
.live-proof-controls svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.live-proof-controls > div { position: relative; width: 1px; height: 68px; overflow: hidden; background: var(--ink-line); }
.live-proof-controls > div i { position: absolute; inset: 0; background: var(--signal); transform: scaleY(var(--proof-progress,.083)); transform-origin: top; transition: transform .65s var(--ease-move); }
.live-proof-controls > span { display: grid; justify-items: center; gap: 7px; color: var(--on-dark-3); font-size: 9px; font-style: normal; font-variant-numeric: tabular-nums; }
.live-proof-controls > span b { color: var(--signal); font-size: 11px; font-weight: 650; }
.live-proof-controls > span i { width: 1px; height: 14px; background: var(--ink-line); }
.live-proof-controls > span em { font-style: normal; }
.live-proof-note { grid-column: 1; grid-row: 2; justify-self: center; margin-top: var(--s3); display: flex; align-items: center; gap: 8px; color: var(--on-dark-3); font-size: 10px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.live-proof-note span { width: 5px; height: 5px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 10px rgba(0,255,81,.7); }

.motion .live-proof-copy > *, .motion .live-proof-stage, .motion .live-proof-open { opacity: 0; transform: translateY(14px); }
.motion .live-proof.is-awake .live-proof-copy > *, .motion .live-proof.is-awake .live-proof-stage, .motion .live-proof.is-awake .live-proof-open { opacity: 1; transform: none; transition: opacity 420ms linear, transform 700ms var(--ease-entrance); }
.motion .live-proof.is-awake .live-proof-copy > :nth-child(2) { transition-delay: 50ms; }
.motion .live-proof.is-awake .live-proof-copy > :nth-child(3) { transition-delay: 100ms; }
.motion .live-proof.is-awake .live-proof-stage { transition-delay: 100ms; }
.motion .live-proof.is-awake .live-proof-open { transition-delay: 150ms; }

@media (max-width: 900px) {
  .live-proof { min-height: 0; margin-top: 0; padding-top: calc(var(--chrome) + var(--s7)); padding-bottom: var(--s8); }
  .live-proof-grid { grid-template-columns: minmax(0,1fr); gap: 0; }
  .live-proof-copy, .live-proof-stage, .live-proof-open { grid-column: auto; grid-row: auto; }
  .live-proof-copy { max-width: 720px; }
  .live-proof h2 { font-size: var(--fs-h1); }
  .live-proof-stage { margin-top: var(--s7); padding-block: var(--s3); }
  .live-proof-orbit { width: min(680px,100%); }
  .live-proof-open { margin-top: var(--s4); justify-self: center; }
}

@media (max-width: 640px) {
  .live-proof {
    padding-top: calc(var(--chrome) + clamp(44px, 11vw, 64px));
    padding-bottom: clamp(82px, 17vw, 116px);
  }
  .live-proof h2 { font-size: clamp(42px, 13.4vw, 62px); }
  .live-proof-lede { max-width: 34ch; margin-top: var(--s4); line-height: 1.5; }
  .live-proof-open { width: min(100%, 220px); margin-top: clamp(28px, 7vw, 38px); }
  .live-proof-stage { width: 100%; margin-top: clamp(44px, 11vw, 66px); padding-block: 0; }
  .live-proof-orbit { width: 116%; opacity: .32; }
  .live-proof-device-wrap {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    row-gap: 0;
  }
  .live-proof-device {
    grid-column: 1;
    grid-row: 1;
    width: min(78vw, 304px);
    border-radius: 46px;
    box-shadow: 0 34px 82px rgba(0,0,0,.68), 0 0 0 1px rgba(255,255,255,.035);
  }
  .live-proof-screen { border-radius: 43px; }
  .live-proof-controls {
    grid-column: 1;
    grid-row: 2;
    width: min(78vw, 304px);
    margin-top: clamp(20px, 5.5vw, 28px);
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    grid-template-rows: 44px;
    align-items: center;
    justify-items: center;
    gap: clamp(12px, 4vw, 20px);
  }
  .live-proof-controls button {
    width: 44px;
    height: 44px;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  .live-proof-controls button:first-child { grid-column: 1; grid-row: 1; }
  .live-proof-controls button:last-child { grid-column: 3; grid-row: 1; }
  .live-proof-controls button svg { transform: rotate(-90deg); }
  .live-proof-controls > div {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    height: 1px;
  }
  .live-proof-controls > div i {
    transform: scaleX(var(--proof-progress,.083));
    transform-origin: left;
  }
  .live-proof-controls > span {
    position: relative;
    z-index: 1;
    grid-column: 2;
    grid-row: 1;
    display: flex;
    align-items: center;
    gap: 8px;
    padding-inline: 10px;
    background: var(--ink);
  }
  .live-proof-controls > span b { font-size: 11px; }
  .live-proof-controls > span i { width: 14px; height: 1px; }
  .live-proof-note {
    grid-column: 1;
    grid-row: 3;
    margin-top: clamp(18px, 4.5vw, 24px);
  }
  .live-proof-toast { -webkit-backdrop-filter: none; backdrop-filter: none; }
}

@media (max-width: 380px) {
  .live-proof-device { width: min(78vw, 284px); }
  .live-proof-controls { width: min(78vw, 284px); grid-template-columns: 40px minmax(0, 1fr) 40px; gap: 10px; }
  .live-proof-controls button { width: 40px; height: 40px; }
  /* Keep the compact drawn circle but restore a 44px target. */
  .live-proof-controls button::after { content: ''; position: absolute; inset: -2px; border-radius: 50%; }
}

@media (min-width: 901px) and (max-height: 760px) {
  .live-proof { min-height: 720px; padding-top: calc(var(--chrome) + var(--s3)); padding-bottom: var(--s4); }
  .live-proof-device { width: 278px; }
  .live-proof-copy > .label { margin-bottom: var(--s3); }
  .live-proof h2 { font-size: clamp(46px, 7.8vh, 60px); }
  .live-proof-lede, .live-proof-open { margin-top: var(--s3); }
}

@media (prefers-reduced-motion: reduce) {
  .live-proof-copy > *, .live-proof-stage, .live-proof-open { opacity: 1; transform: none; }
  .live-proof-cover > p > span i { animation: none; }
  .live-proof-feed.is-switching-next,
  .live-proof-feed.is-switching-previous { animation: none; }
}

@media (hover: none), (pointer: coarse) {
  .live-proof-controls button:not(:disabled):hover {
    border-color: var(--ink-line);
    background: rgba(16,16,20,.72);
    color: var(--on-dark-1);
    transform: none;
  }
}

/* Click-triggered App handoff. Kept outside the phone so the message reads as a
   deliberate product invitation rather than another simulated in-app surface. */
html.is-aippy-modal-open { overflow: hidden; }
.aippy-download-modal { position: fixed; z-index: 220; inset: 0; display: grid; place-items: center; padding: 24px; opacity: 0; pointer-events: none; transition: opacity var(--dur-short) linear; }
.aippy-download-modal[hidden] { display: none; }
.aippy-download-modal.is-open { opacity: 1; pointer-events: auto; }
.aippy-download-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(3,3,5,.78); backdrop-filter: blur(18px) saturate(.72); cursor: pointer; }
.aippy-download-dialog { position: relative; width: min(520px,calc(100vw - 48px)); max-height: calc(100svh - 48px); overflow: auto; overscroll-behavior: contain; padding: 40px; border: 1px solid rgba(255,255,255,.16); border-radius: 30px; background: linear-gradient(155deg,rgba(27,27,31,.98),rgba(14,14,17,.98)); color: var(--on-dark-1); box-shadow: 0 46px 140px rgba(0,0,0,.72), inset 0 1px rgba(255,255,255,.045); outline: none; opacity: 0; transform: translateY(18px) scale(.96); transition: opacity var(--dur-short) linear, transform var(--dur-base) var(--ease-entrance); scrollbar-width: none; }
.aippy-download-dialog:focus-visible { outline: 2px solid var(--signal); outline-offset: -2px; }
.aippy-download-dialog::-webkit-scrollbar { display: none; }
.aippy-download-modal.is-open .aippy-download-dialog { opacity: 1; transform: none; }
.aippy-download-close { position: absolute; z-index: 2; top: 18px; right: 18px; width: 44px; height: 44px; padding: 0; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; background: rgba(255,255,255,.025); color: var(--on-dark-2); cursor: pointer; transition: border-color var(--dur-short) var(--ease-micro), background var(--dur-short) var(--ease-micro), transform var(--dur-micro) var(--ease-micro); }
.aippy-download-close:hover { border-color: rgba(255,255,255,.32); background: rgba(255,255,255,.07); }
.aippy-download-close:active { transform: scale(.94); }
.aippy-download-close span { position: absolute; top: 50%; left: 50%; width: 15px; height: 1px; background: currentColor; transform: translate(-50%,-50%) rotate(45deg); }
.aippy-download-close span + span { transform: translate(-50%,-50%) rotate(-45deg); }
.aippy-download-kicker { margin: 0 0 18px; display: flex; align-items: center; gap: 9px; color: var(--on-dark-3); font-size: 10px; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; }
.aippy-download-kicker i { width: 5px; height: 5px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 11px rgba(0,255,81,.62); }
.aippy-download-dialog h2 { max-width: 9ch; margin: 0; font-size: clamp(38px,5vw,54px); font-weight: 500; line-height: .96; letter-spacing: var(--tr-h1); }
.aippy-download-dialog > p[id] { max-width: 38ch; margin: 20px 0 0; color: var(--on-dark-2); font-size: 15px; line-height: 1.55; letter-spacing: var(--tr-body); }
.aippy-download-qr { width: 226px; aspect-ratio: 1; margin: 28px auto 0; padding: 10px; border: 1px solid rgba(255,255,255,.12); border-radius: 22px; background: #161619; box-shadow: 0 18px 48px rgba(0,0,0,.32); }
.aippy-download-qr img { width: 100%; height: 100%; object-fit: contain; border-radius: 13px; }
.aippy-download-scan { margin: 12px 0 0; color: var(--on-dark-3); font-size: 11px; font-weight: 600; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.aippy-download-actions { margin-top: 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.aippy-download-actions a, .aippy-download-actions button { min-height: 48px; padding: 12px 18px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.15); border-radius: 999px; font: 600 var(--fs-action)/1 var(--sans); cursor: pointer; transition: transform var(--dur-micro) var(--ease-micro), color var(--dur-short) var(--ease-micro), background var(--dur-short) var(--ease-micro), border-color var(--dur-short) var(--ease-micro); }
.aippy-download-actions a { border-color: var(--signal); background: var(--signal); color: var(--ink); }
.aippy-download-actions button { background: transparent; color: var(--on-dark-1); }
.aippy-download-actions a:hover { background: #fff; border-color: #fff; }
.aippy-download-actions button:hover { border-color: rgba(255,255,255,.38); background: rgba(255,255,255,.06); }
.aippy-download-actions a:active, .aippy-download-actions button:active { transform: scale(.97); }

@media (max-width: 640px) {
  .aippy-download-modal { place-items: end center; padding: 0; }
  .aippy-download-dialog { width: 100%; max-height: calc(100svh - 24px); padding: 34px 24px max(24px,env(safe-area-inset-bottom)); border-right: 0; border-bottom: 0; border-left: 0; border-radius: 28px 28px 0 0; transform: translateY(32px); }
  .aippy-download-close { top: 14px; right: 18px; }
  .aippy-download-dialog h2 { max-width: 10ch; font-size: clamp(38px,12vw,52px); }
  .aippy-download-dialog > p[id] { max-width: 34ch; }
  .aippy-download-qr, .aippy-download-scan { display: none; }
  .aippy-download-actions { margin-top: 28px; grid-template-columns: 1fr; }
  .aippy-download-actions a, .aippy-download-actions button { min-height: 52px; }
}

@media (prefers-reduced-motion: reduce) {
  .aippy-download-modal, .aippy-download-dialog { transition: none; }
}

@media (prefers-reduced-transparency: reduce) {
  .live-proof-toast { background: #0f0f12; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .live-proof-controls button { background: #101014; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .aippy-download-backdrop { background: rgba(3,3,5,.94); -webkit-backdrop-filter: none; backdrop-filter: none; }
}
