/* Phos motion plan: static content first; movement only explains entrance or input. */
:root{--motion-ease:cubic-bezier(.16,1,.3,1);--motion-press:120ms;--motion-hover:180ms;--motion-enter:200ms;--motion-dialog:240ms}
html body *,html body *::before,html body *::after{animation:none!important;transition-property:transform,opacity!important;transition-duration:var(--motion-hover);transition-timing-function:var(--motion-ease)}
/* Keep the message and download visible from the first paint. Give the photo more room. */
.signature-hero{padding-top:30px}.signature-copy h1{width:clamp(340px,37vw,550px);margin-bottom:18px}.signature-description{margin-top:12px}.signature-copy .hero-actions{margin-top:20px}.signature-copy .requirements{margin-top:12px}.signature-product{margin-top:34px;transform:none;transform-origin:center center;transition:transform 150ms var(--motion-ease)!important}.signature-product.is-tilting{will-change:transform}.workspace-image{transform:none}.workspace-shot{transition:opacity 200ms var(--motion-ease)!important}
.motion-lift{position:relative;isolation:isolate;transition:transform var(--motion-hover) var(--motion-ease)!important}.motion-lift::after{content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;box-shadow:0 18px 32px var(--hover-shadow);/* taste-skill-ignore: the shadow is transparent at rest and appears only on hover, per the approved motion plan. */opacity:0;pointer-events:none;transition:opacity var(--motion-hover) var(--motion-ease)!important}.button:hover{transform:none}.button.primary:hover span{transform:none}
@media(hover:hover) and (pointer:fine) and (min-width:761px){html[data-motion=on] .motion-lift:hover{transform:translateY(-4px)}html[data-motion=on] .motion-lift:hover::after{opacity:1}html[data-motion=on] .button:hover,html[data-motion=on] .nav-download:hover{transform:translateY(-4px)}html[data-motion=on] .button.primary:hover span{transform:translateY(2px)}}
html[data-motion=on] button:active,html[data-motion=on] .button:active,html[data-motion=on] .nav-download:active{transform:translateY(1px) scale(.98);transition-duration:var(--motion-press)}
.motion-tabbed{position:relative}.motion-indicator{position:absolute;top:0;left:0;width:100%;height:2px;background:var(--gold);pointer-events:none;transform-origin:left center;transition:transform 180ms var(--motion-ease)!important;z-index:2}.gallery-tabs,.mode-picker{padding-bottom:8px}.tabs .motion-indicator{background:var(--gold)}
/* Native dialogs retain their focus containment while the exit completes. */
html body dialog::backdrop{background:var(--scrim);backdrop-filter:none!important;-webkit-backdrop-filter:none!important}/* taste-skill-ignore: this rule removes backdrop blur from dialogs. */html body dialog[open]::backdrop{animation:motion-backdrop-in 240ms var(--motion-ease) both!important}html body dialog.motion-closing::backdrop{animation:motion-backdrop-out 200ms var(--motion-ease) both!important}
@keyframes motion-backdrop-in{from{opacity:0}to{opacity:1}}@keyframes motion-backdrop-out{from{opacity:1}to{opacity:0}}
.faq-list{overflow-anchor:none}.motion-details-content{transform-origin:top center}
@media(max-width:760px){.signature-product{transform:none!important}}
@media(max-width:760px){.signature-hero{padding-top:26px}.signature-copy h1{width:min(100%,340px);margin-bottom:17px}.signature-product{margin-top:26px}}
html[data-motion=off]{scroll-behavior:auto}html[data-motion=off] body *,html[data-motion=off] body *::before,html[data-motion=off] body *::after{animation:none!important;transition:none!important}html[data-motion=off] .signature-product,html[data-motion=off] .motion-lift,html[data-motion=off] .button:hover,html[data-motion=off] button:active,html[data-motion=off] .nav-download:hover{transform:none!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}html body *,html body *::before,html body *::after{animation:none!important;transition:none!important}html body dialog[open]::backdrop{animation:none!important}.signature-product,.motion-lift,.button:hover,button:active,.nav-download:hover{transform:none!important}}
html[data-motion=off] body dialog[open]::backdrop{animation:none!important}
