/* The bridal inter-section moment is self-contained; navigation remains manual. */
.bridal-transition{--bridal-progress:0%;position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;width:100%;max-width:460px;margin:0 auto;padding:0 0 max(2px,env(safe-area-inset-bottom));text-align:center;color:var(--ink,#412d3d)}
.bridal-transition__brand{margin:0 0 8px}
.bridal-transition__brand img{display:block;width:43px;height:50px;object-fit:contain}
.bridal-transition__completed{margin:0 0 4px;color:var(--rose,#9a4268);font-size:11px;font-weight:700;line-height:1.8}
.bridal-transition h1{margin:0;font-size:clamp(24px,5.8vw,29px);font-weight:700;line-height:1.55;letter-spacing:-.3px}
.bridal-transition__message{margin:5px 0 7px;font-size:14px;color:#806875;line-height:1.8}
.bridal-transition__stage{position:relative;display:grid;place-items:center;width:min(100%,310px);height:clamp(220px,35svh,280px);margin:4px auto 10px;isolation:isolate}
.bridal-transition__stage:after{content:'';position:absolute;z-index:-1;bottom:0;left:16%;right:16%;height:14px;border-radius:50%;background:#c7a59b22;filter:blur(7px)}
.bridal-transition__arch{position:absolute;z-index:-2;inset:6% 16% 4%;border-radius:50% 50% 34% 34%;background:radial-gradient(ellipse at 51% 35%,#fffdf7 5%,#fcf4ef 49%,#f7e8ee 100%);box-shadow:0 0 40px #fff4e64d;animation:bridal-light 3s ease-out both}
.bridal-transition__arc{position:absolute;z-index:-1;inset:1% 12% 1%;border:1px solid #dcb9bc75;border-bottom-color:transparent;border-radius:50% 50% 36% 36%;transform:rotate(-8deg)}
.bridal-transition__gown{display:block;position:relative;width:100%;height:100%;max-height:280px;object-fit:contain;object-position:center;filter:drop-shadow(0 7px 9px #7f67511a);animation:bridal-gown-settle 1700ms cubic-bezier(.19,1,.22,1) both}
.bridal-transition__progress{width:min(100%,310px);margin:0 auto}
.bridal-transition__progress-copy{display:flex;align-items:baseline;justify-content:center;gap:8px;margin:0 0 10px;line-height:1.2}
.bridal-transition__progress-copy strong{display:block;min-width:72px;font-size:31px;font-weight:700;color:var(--rose,#9a4268);font-variant-numeric:tabular-nums;direction:rtl}
.bridal-transition__progress-copy>span{font-size:12px;color:#806875}
.bridal-transition__track{width:100%;height:5px;border-radius:99px;overflow:hidden;background:#f1e7eb}
.bridal-transition__track>span{display:block;height:100%;width:var(--bridal-progress);border-radius:inherit;background:linear-gradient(90deg,#dca5bd,var(--rose,#9a4268));will-change:width}
.bridal-transition__next{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin:15px 0 13px;font-size:12px;line-height:1.7;color:#806875}
.bridal-transition__next>span{color:#c99cb1}
.bridal-transition__next strong{font-size:13px;font-weight:700;color:var(--ink,#412d3d)}
.bridal-transition__action{min-height:54px;width:min(100%,360px)}
.bridal-transition__button{display:block;width:100%;min-height:54px;padding:13px 22px;border:0;border-radius:16px;background:var(--rose,#9a4268);color:#fff;font:inherit;font-size:17px;font-weight:700;line-height:1.6;box-shadow:0 7px 18px #9a42681b;cursor:pointer}
.bridal-transition__button[hidden]{display:none!important}
.bridal-transition__button:hover{background:#88355b}
.bridal-transition__button:focus-visible{outline:3px solid #b75388;outline-offset:4px}
.bridal-transition.is-ready .bridal-transition__button{animation:bridal-button-in 220ms ease-out both}
.bridal-transition__status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes bridal-gown-settle{from{opacity:.35;transform:translateY(9px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes bridal-light{from{opacity:.55;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@keyframes bridal-button-in{from{opacity:0}to{opacity:1}}
@media(max-height:700px){.bridal-transition__brand{margin-bottom:4px}.bridal-transition__brand img{width:34px;height:40px}.bridal-transition__stage{height:220px;margin-top:0;margin-bottom:5px}.bridal-transition h1{font-size:24px}.bridal-transition__message{margin-top:3px;margin-bottom:3px}.bridal-transition__progress-copy strong{font-size:28px}.bridal-transition__next{margin-top:12px;margin-bottom:10px}}
@media(max-width:360px){.bridal-transition h1{font-size:23px}.bridal-transition__stage{width:260px;max-width:100%}.bridal-transition__message{font-size:13px}}
@media(prefers-reduced-motion:reduce){.bridal-transition__gown,.bridal-transition__arch,.bridal-transition.is-ready .bridal-transition__button{animation:none!important;transform:none!important}.bridal-transition__track>span{will-change:auto}}
/* Keep this screen compact without affecting questionnaire or review layouts. */
.screen.bridal-screen{padding:20px 26px 18px}
.screen.bridal-screen>.footer-tools{margin-top:18px}
.screen.bridal-screen>.footer-tools .save-note{margin-top:12px}
@media(max-width:600px){.screen.bridal-screen{padding:18px 24px 16px}.screen.bridal-screen .bridal-transition__stage{height:clamp(220px,29svh,270px)}}/* A light bridal icon and a playful loading beat, limited to the waiting moment. */
.bridal-transition__stage{width:240px;max-width:100%;height:210px;margin:8px auto 14px}
.screen.bridal-screen .bridal-transition__stage{height:210px}
.bridal-transition__arch{inset:8% 12% 12%;border-radius:50%;background:radial-gradient(ellipse,#fffafc 15%,#faedf4 75%,#f6e7f0 100%);box-shadow:none;animation:none}
.bridal-transition__arc{inset:4% 8% 10%;border-radius:50%;opacity:.45;transform:rotate(-12deg)}
.bridal-transition__gown{width:190px;height:190px;max-height:190px;filter:none;animation:bridal-icon-float 1500ms ease-in-out infinite;transform-origin:50% 60%}
.bridal-transition__stage:after{display:none}
.bridal-transition__loading{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:6px;height:12px;transition:opacity .2s}
.bridal-transition__loading i{width:5px;height:5px;border-radius:50%;background:var(--rose,#9a4268);opacity:.3;animation:bridal-dot 900ms ease-in-out infinite}
.bridal-transition__loading i:nth-child(2){animation-delay:120ms}
.bridal-transition__loading i:nth-child(3){animation-delay:240ms}
.bridal-transition.is-ready .bridal-transition__gown{animation:none;transform:none}
.bridal-transition.is-ready .bridal-transition__loading{opacity:0}
@keyframes bridal-icon-float{0%,100%{transform:translateY(2px) rotate(-2deg)}50%{transform:translateY(-4px) rotate(2deg)}}
@keyframes bridal-dot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:.8;transform:translateY(-4px)}}
@media(max-height:700px){.screen.bridal-screen .bridal-transition__stage{height:178px}.bridal-transition__gown{width:160px;height:160px}}
@media(prefers-reduced-motion:reduce){.bridal-transition__gown,.bridal-transition__loading i{animation:none!important;transform:none!important}.bridal-transition__loading{transition:none}}
