/* Momentum and paper hinges, without abrupt stage changes. */
.experience-page .envelope-wrap{perspective:1800px}
.experience-page .envelope{transition:transform 900ms cubic-bezier(.38,.05,.18,1);will-change:transform}
.experience-page .envelope-flipped .envelope{transform:rotateY(180deg) rotateZ(-1deg)}
.experience-page .envelope-flap{transition:transform 680ms cubic-bezier(.22,.65,.23,1),opacity 260ms ease,z-index 0s 320ms;transform-origin:50% 0%;will-change:transform}
.experience-page .card-peek{transition:transform 900ms cubic-bezier(.28,.04,.18,1);will-change:transform}
.experience-page .card-lifting .card-peek{transform:translate(-50%,var(--card-lift-y)) rotate(87deg)}
.experience-page .card-upright .card-peek{transform:translate(-50%,var(--card-upright-y)) rotate(0deg);transition-duration:740ms}
.experience-page .card-stage{transition:none;transform:none}
.experience-page .show-card .envelope-scene{transform:translateY(8vh) rotateZ(2deg);transition:opacity 550ms ease,transform 850ms cubic-bezier(.22,.68,.2,1),visibility 0s 850ms}
.experience-page .greeting-card{transform-origin:0 0;transition:transform 1150ms cubic-bezier(.3,.05,.18,1)}
.experience-page .card-cover{transform-origin:left center;transition:transform 1150ms cubic-bezier(.32,.02,.18,1),box-shadow 1150ms ease;will-change:transform}
.experience-page .card-is-open .card-cover{transform:rotateY(-170deg);box-shadow:-5px 12px 28px #0003}
.audio-composer audio{width:100%;margin-top:12px;border-radius:12px}
.audio-composer [hidden]{display:none!important}
.audio-composer input[type=file]{font-size:.85rem;padding:10px}
.audio-composer input::file-selector-button{border:0;border-radius:8px;padding:8px 12px;margin-right:12px;background:#f3d2a0;color:#332239}
@media(prefers-reduced-motion:reduce){.experience-page .envelope,.experience-page .card-peek,.experience-page .envelope-flap,.experience-page .greeting-card,.experience-page .card-cover,.experience-page .show-card .envelope-scene{transition:none!important;will-change:auto}}
.builder-page .greeting{transition:opacity 700ms ease,transform 900ms cubic-bezier(.22,.68,.2,1)}
.builder-page .envelope{transition:transform 1000ms cubic-bezier(.35,.02,.18,1) 180ms,opacity 800ms ease 180ms}
.builder-page .envelope-flap{transition:transform 650ms cubic-bezier(.22,.65,.23,1)}
@media(prefers-reduced-motion:reduce){.builder-page .greeting,.builder-page .envelope,.builder-page .envelope-flap{transition:none!important}}
