/* The same phone lifts from presentation and settles into a useful surface.
   Light belongs to that finite placement; it never runs between interactions. */
.v15-page .r-phone-travelling{backface-visibility:hidden;z-index:4;transform-origin:0 0}
/* The source yields to the receiver as part of the same placement. */
.r-hero-product .v-product-back,.r-hero-product>.v-product-note{transition:opacity 360ms ease-out,filter 360ms ease-out}
.r-hero-product.is-docked .v-product-back{opacity:.3;filter:brightness(.7)}
.r-dock-action{margin-top:22px;min-height:48px}
.r-dock-copy>.r-return-preview{margin-top:16px}
.r-dock-copy>.r-scene-choices{margin-top:22px}
.r-dock-slot::after{box-shadow:inset 0 0 30px rgba(var(--gold-rgb),.045);border-color:rgba(var(--gold-rgb),.24)!important}
/* Short laptops still need a readable product, even when controls follow below. */
@media(min-width:801px) and (max-height:850px){.v15-page .r-hero-product>.v-product-captures{--capture-h:clamp(460px,calc(100svh - 210px),560px);height:var(--capture-h)}}
.v15-page .r-phone-travelling::before{content:'';position:absolute;inset:7px;z-index:32;border-radius:inherit;pointer-events:none;opacity:0;
  background:linear-gradient(112deg,transparent 28%,rgba(255,245,217,.035) 42%,rgba(255,245,217,.09) 46%,transparent 57%);
  animation:r-placement-glint var(--r-handoff-ms,760ms) ease-out both}
.v15-page .r-handoff-receiving::before{content:'';position:absolute;left:var(--r-landing-x,50%);top:var(--r-landing-y,100%);width:var(--r-landing-width,100%);height:46px;
  translate:-50% -50%;border-radius:50%;pointer-events:none;opacity:0;z-index:0;
  background:radial-gradient(ellipse,rgba(var(--gold-rgb),.34),rgba(var(--gold-rgb),.1) 40%,transparent 72%);
  animation:r-placement-cradle var(--r-handoff-ms,760ms) linear both}
.v15-page.v-light .r-handoff-receiving::before{background:radial-gradient(ellipse,rgba(var(--gold-rgb),.2),rgba(var(--gold-rgb),.06) 40%,transparent 72%)}
@keyframes r-placement-glint{0%,12%{opacity:0;transform:translateX(-8%)}45%{opacity:1}82%,100%{opacity:0;transform:translateX(8%)}}
@keyframes r-placement-cradle{0%,22%{opacity:0;scale:.82}58%{opacity:.8;scale:1.04}80%{opacity:1;scale:1}100%{opacity:0;scale:1}}
@media(max-width:680px){.v15-page .r-handoff-receiving::before{height:32px}}
@media(prefers-reduced-motion:reduce){.r-hero-product .v-product-back,.r-hero-product>.v-product-note{transition:none}}
@media(prefers-reduced-motion:reduce),(forced-colors:active){.v15-page .r-phone-travelling::before,.v15-page .r-handoff-receiving::before{display:none;animation:none}}
