*{box-sizing:border-box}:root{--font-family-main: "手札体-简", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--page-pad-x: .58rem;--page-pad-top: calc(.92rem + env(safe-area-inset-top)) ;--page-pad-bottom: calc(.72rem + env(safe-area-inset-bottom)) ;--safe-bottom: env(safe-area-inset-bottom);--layout-left: 0rem;--bg-offset-y: 0rem;--content-width: 8.68rem;--text-title: .92rem;--text-subtitle: .46rem;--text-body: .44rem;--text-small: .38rem;--text-chip: .43rem;--text-option: .4rem;--text-button: .72rem;--text-button-small: .62rem;--ui-line: .06rem;--ui-line-thin: .045rem;--button-height-main: 1.34rem;--button-height-small: 1.14rem;--button-shadow: none;--button-shadow-active: none;--button-radius: 9.99rem;--button-bg: #F5B8A1}@property --letter-base-y{syntax: "<length>"; inherits: false; initial-value: -.88rem;}html,body,#root{width:100%;height:100%;min-height:100%;margin:0}body{color:#544f45;background:#fceec6;font-family:var(--font-family-main);letter-spacing:0;overflow:hidden;touch-action:manipulation;font-weight:400}button,a{font:inherit;-webkit-tap-highlight-color:transparent}button{border:0;cursor:pointer}.page-shell{position:relative;width:100%;height:100dvh;display:block;padding:0;overflow:hidden;background:#fceec6}.h5-stage{position:relative;z-index:1;width:var(--stage-width, 100vw);height:var(--stage-height, 100dvh);overflow:hidden;border:0;border-radius:0;background:#fceec6;box-shadow:none;transform:translateZ(0)}html.is-framed{--page-pad-top: .92rem;--page-pad-bottom: .72rem;--safe-bottom: 0rem}html.is-framed body{background:#fff8df}html.is-framed .page-shell{display:grid;place-items:center;isolation:isolate;background:#fff8df}html.is-framed .page-shell:before,html.is-framed .page-shell:after{content:"";position:absolute;z-index:0;inset:-18%;pointer-events:none;background-repeat:repeat;will-change:transform}html.is-framed .page-shell:before{opacity:.58;background-image:radial-gradient(circle,#efccaf 0 3px,transparent 3.8px);background-position:0 0;background-size:52px 52px;animation:ambientDotsDrift 18s linear infinite}html.is-framed .page-shell:after{display:none}html.is-framed .h5-stage{border:1px solid rgba(255,250,234,.74);border-radius:18px;box-shadow:0 28px 70px #723a2a47,0 4px 16px #723a2a2e,inset 0 0 0 1px #ffffff4d}.h5-stage.is-changing .scene{animation:sceneLeave .36s ease both}.scene{position:absolute;inset:0;padding:var(--page-pad-top) calc(var(--layout-left) + var(--page-pad-x)) var(--page-pad-bottom);background-color:#fceec6;background-size:100% auto;background-position:center center;background-repeat:no-repeat;animation:sceneEnter .48s cubic-bezier(.18,.92,.24,1) both}.music-button,.back-button{position:absolute;z-index:9;display:grid;place-items:center;width:.82rem;height:.82rem;padding:.16rem;border:var(--ui-line-thin) solid #544f45;border-radius:50%;background:#fff8df;box-shadow:none;transition:opacity .38s ease,transform .38s ease}.h5-stage.is-photo-capturing>.music-button,.h5-stage.is-photo-capturing>.back-button,.h5-stage.is-photo-result>.music-button,.h5-stage.is-photo-result>.back-button{opacity:0;pointer-events:none;transform:scale(.82)}.music-button img,.back-button img,.invite-detail-close img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.music-button{top:var(--page-pad-top);right:calc(var(--layout-left) + var(--page-pad-x))}.music-button.is-muted{opacity:.58}.music-button.is-muted:after{content:"";position:absolute;width:.58rem;height:.05rem;border-radius:9.99rem;background:#544f45;transform:rotate(-38deg)}.back-button{top:var(--page-pad-top);left:calc(var(--layout-left) + var(--page-pad-x))}.scene-header{position:relative;z-index:2;width:8.45rem;max-width:calc(100% - .32rem);margin:.62rem auto 0;padding-left:0;text-align:center}.scene-header:not(.invite-header){margin-top:.78rem}.title-line{display:grid;grid-template-columns:.54rem minmax(0,max-content) .54rem;align-items:center;justify-content:center;gap:.16rem;min-width:0}.title-line img{width:.5rem;height:.5rem;object-fit:contain}.scene-header h1{margin:0;min-width:0;max-width:6.2rem;font-size:var(--text-title);line-height:1.3;font-weight:400;letter-spacing:.05rem;color:#544f45;text-shadow:.075rem 0 #fff,-.075rem 0 #fff,0 .075rem #fff,0 -.075rem #fff,.058rem .058rem #fff,-.058rem .058rem #fff,.058rem -.058rem #fff,-.058rem -.058rem #fff,.038rem .075rem #fff,-.038rem .075rem #fff,.038rem -.075rem #fff,-.038rem -.075rem #fff,.075rem .038rem #fff,-.075rem .038rem #fff,.075rem -.038rem #fff,-.075rem -.038rem #fff,.06rem .06rem rgba(84,79,69,.12);overflow-wrap:break-word}.scene-header:not(.invite-header) .title-line{grid-template-columns:.7rem minmax(0,max-content) .7rem;gap:.18rem}.scene-header:not(.invite-header) .title-line img{width:.66rem;height:.66rem}.scene-header:not(.invite-header) h1{max-width:7.4rem;font-size:var(--text-title);line-height:1.3;letter-spacing:.05rem}.invite-header .title-line{grid-template-columns:1rem minmax(0,5.72rem) 1rem;gap:.22rem}.invite-header .title-line img{width:1rem;height:1rem;justify-self:center}.invite-header h1{max-width:5.72rem;display:grid;justify-items:center;gap:.02rem;line-height:1}.invite-header h1 span,.invite-header h1 strong{display:block;font-weight:400}.invite-header h1 span{font-size:.88rem;line-height:1.3}.invite-header h1 strong{font-size:1.2rem;line-height:1.3}.scene-header p{margin:.12rem 0 0;font-size:var(--text-subtitle);line-height:1.3;font-weight:400;letter-spacing:.03rem;color:#5f5146;text-shadow:none}.invite-header p{font-size:.5rem;line-height:.62rem;letter-spacing:0;text-shadow:none}.bottom-action{position:absolute;left:calc(var(--layout-left) + var(--page-pad-x));right:calc(var(--layout-left) + var(--page-pad-x));bottom:calc(.62rem + var(--safe-bottom));z-index:7;display:grid;gap:.16rem;justify-items:center;transition:transform .28s ease,opacity .28s ease}.bottom-action.is-hidden{opacity:0;pointer-events:none;transform:translateY(.3rem)}.bottom-action button{width:100%;min-height:var(--button-height-main);border:var(--ui-line) solid #544f45;border-radius:var(--button-radius);background:var(--button-bg);color:#544f45;font-size:var(--text-button);font-weight:400;box-shadow:var(--button-shadow);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.bottom-action button:not(:disabled){animation:buttonHeartbeat 2.35s ease-in-out infinite}.bottom-action button:not(:disabled):hover{animation-duration:1.45s}.bottom-action button{gap:.14rem}.bottom-action button img{width:.66rem;height:.66rem;object-fit:contain;flex:0 0 auto}.bottom-action button span{font-size:inherit;line-height:1;color:inherit}.bottom-action button:active,.option-card:active,.flower-chip:active{animation:none;transform:translateY(.03rem) scale(.99);box-shadow:var(--button-shadow-active)}.bottom-action button:disabled{opacity:.55;filter:grayscale(.25)}.bottom-action>span{font-size:var(--text-small);font-weight:400;color:#6f5d4d}.panel{position:absolute;left:calc(var(--layout-left) + var(--page-pad-x));right:calc(var(--layout-left) + var(--page-pad-x));z-index:4;border:var(--ui-line) solid #544f45;border-radius:.28rem;background:#fff9e7eb;box-shadow:none}.tab-bar{display:grid;grid-template-columns:repeat(var(--tab-count, 3),minmax(0,1fr));gap:.14rem;padding:.22rem .22rem 0}.tab-bar button{min-height:.9rem;border:var(--ui-line-thin) solid #544f45;border-radius:9.99rem;background:#fff4cf;color:#5f5146;font-size:var(--text-chip);font-weight:400}.tab-bar button.is-active{background:#b8d8c3;color:#544f45}.invite-scene:after,.dress-scene:after,.flower-scene:after,.ceremony-scene:after,.photo-scene:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,244,207,.5),transparent 28%,rgba(255,244,207,.18))}.invite-scene,.flower-scene{background-size:cover;background-position:center center}.invite-scene:after{background:linear-gradient(180deg,rgba(255,246,219,.16),transparent 30%,rgba(255,246,219,.12))}.cover-letter-stack{position:absolute;left:50%;top:50%;z-index:4;width:min(8rem,calc(100% - 1.12rem));aspect-ratio:902 / 934;padding:0;background:transparent;border:0;--cover-offset-y: 0rem;transform:translate(-50%,calc(-50% + var(--cover-offset-y))) rotate(-1.2deg);transform-origin:center 64%}.cover-letter-stack img,.cover-letter-card,.cover-ribbon{position:absolute;display:block;-webkit-user-select:none;user-select:none;pointer-events:none}.cover-envelope,.cover-letter-card,.cover-letter{inset:0;width:100%;height:100%;object-fit:contain}.cover-envelope{filter:drop-shadow(0 .15rem .1rem rgba(62,43,27,.16))}.cover-envelope-back{z-index:1}.cover-letter-card{z-index:2;--letter-base-y: -.88rem;transform:translateY(var(--letter-base-y)) rotate(-2.2deg) scale(.93);transform-origin:center bottom;filter:drop-shadow(0 0 .16rem rgba(255,244,190,.64)) drop-shadow(0 .13rem .09rem rgba(62,43,27,.2));animation:letterPeek 2.8s ease-in-out infinite,letterGlow 2.8s ease-in-out infinite;transition:--letter-base-y .42s cubic-bezier(.18,.88,.22,1)}.cover-letter{inset:0}.cover-envelope-front{z-index:3}.cover-ribbon{left:0;bottom:0;z-index:5;width:100%;height:100%;object-fit:cover}.cover-letter-stack:active{transform:translate(-50%,calc(-50% + var(--cover-offset-y) + .05rem)) rotate(-1.2deg) scale(.985)}.cover-letter-stack:hover .cover-letter-card{--letter-base-y: -1.24rem}.invite-detail-modal{position:absolute;inset:0;z-index:12;display:flex;flex-direction:column;justify-content:center;align-items:center;justify-items:center;gap:.34rem;padding:calc(.52rem + env(safe-area-inset-top)) .46rem calc(.52rem + var(--safe-bottom));background:#544f4547;backdrop-filter:blur(.14rem);-webkit-backdrop-filter:blur(.14rem);animation:detailOverlayIn .28s ease both}.invite-detail-card{position:relative;width:min(8.55rem,calc(100% - .74rem));max-height:calc(var(--app-height, 100vh) - 2.74rem - env(safe-area-inset-top) - var(--safe-bottom));aspect-ratio:978 / 1348;background-size:contain;background-position:center;background-repeat:no-repeat;filter:drop-shadow(0 .18rem .16rem rgba(84,79,69,.22));animation:detailCardIn .36s cubic-bezier(.18,.88,.22,1) both}.invite-detail-close{position:absolute;top:var(--page-pad-top);left:calc(var(--layout-left) + var(--page-pad-x));z-index:14;width:.82rem;height:.82rem;display:grid;place-items:center;padding:.16rem;border:var(--ui-line-thin) solid #544f45;border-radius:50%;background:#fff8df;box-shadow:none}.invite-detail-copy{position:absolute;left:17%;right:14%;top:31.4%;display:grid;gap:.22rem;color:#544f45;text-align:left}.invite-detail-copy p{margin:0;font-size:.4rem;line-height:.62rem;font-weight:400}.invite-event-info{display:grid;gap:.06rem;width:84%;justify-self:center;margin-top:.02rem;padding:.14rem .22rem;border:.04rem dashed rgba(84,79,69,.48);border-radius:.18rem;background:#fffae685;color:#7b6754;font-size:.3rem;line-height:.4rem;text-align:center}.invite-event-info span{display:block}.invite-name-field{position:absolute;left:22.6%;right:19.44%;top:64%;display:block}.invite-name-field span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.invite-name-field input{width:100%;height:1rem;padding:0 .32rem;border:.045rem dashed rgba(84,79,69,.56);border-radius:.22rem;outline:none;background:#fffae680;color:#544f45;font-family:var(--font-family-main);font-size:.42rem;line-height:1;text-align:center;box-shadow:none}.invite-name-field input::placeholder{color:#544f4585}.invite-name-field input:focus{border-color:#d38b79;background:#fffbecc2}.invite-accept-button{width:min(6.85rem,calc(100% - 1.18rem));min-height:var(--button-height-main);display:inline-flex;align-items:center;justify-content:center;gap:.14rem;border:var(--ui-line) solid #544f45;border-radius:var(--button-radius);background:var(--button-bg);color:#544f45;font-size:var(--text-button);font-weight:400;box-shadow:none;transition:transform .16s ease,opacity .16s ease,filter .16s ease}.invite-accept-button:not(:disabled){animation:buttonHeartbeat 2.35s ease-in-out infinite}.invite-accept-button:not(:disabled):hover{animation-duration:1.45s}.invite-accept-button img{width:.66rem;height:.66rem;object-fit:contain}.invite-accept-button span{line-height:1}.invite-accept-button:active{animation:none;transform:translateY(.03rem) scale(.99)}.invite-accept-button:disabled{background:#e7d8c2;color:#544f45ad;border-color:#544f4594;filter:none}.invite-copy{position:absolute;top:2.1rem;left:2.02rem;width:3.8rem;display:grid;gap:.18rem;text-align:center;color:#544f45}.invite-copy strong{font-size:.62rem;line-height:.74rem}.invite-copy span{font-size:.42rem;font-weight:400}.petals span{position:absolute;top:-1rem;width:.24rem;height:.34rem;border-radius:50% 50% 50% 0;background:#f2aeb3;opacity:.76;animation:fall 4.2s linear infinite}.petals span:nth-child(1){left:14%;animation-delay:.2s}.petals span:nth-child(2){left:38%;animation-delay:1s}.petals span:nth-child(3){left:67%;animation-delay:.55s}.petals span:nth-child(4){left:82%;animation-delay:1.8s}.ceremony-petals{position:absolute;inset:0;z-index:7;overflow:hidden;pointer-events:none}.ceremony-petals span{width:.2rem;height:.29rem;opacity:.66;animation-duration:5.4s}.ceremony-petals span:nth-child(2n){background:#f5c9d1;animation-duration:6.2s}.ceremony-petals span:nth-child(3n){width:.16rem;height:.24rem;background:#f2d88f;animation-duration:4.8s}.ceremony-petals span:nth-child(5){left:24%;animation-delay:2.65s}.ceremony-petals span:nth-child(6){left:51%;animation-delay:3.3s}.ceremony-petals span:nth-child(7){left:75%;animation-delay:2.2s}.ceremony-petals span:nth-child(8){left:92%;animation-delay:4.05s}.guest-zone{position:absolute;left:50%;top:calc(var(--bg-offset-y) + 4.15rem);z-index:3;width:5.2rem;height:6.5rem;display:grid;place-items:center;transform:translate(-50%)}.gender-switch{position:absolute;left:50%;top:calc(var(--bg-offset-y) + 2.03rem);z-index:6;width:4.72rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:var(--ui-line-thin) solid #544f45;border-radius:9.99rem;overflow:hidden;background:#fff8dcf0;transform:translate(-50%)}.gender-switch button{min-height:.82rem;display:inline-flex;align-items:center;justify-content:center;gap:.12rem;padding:0 .18rem;border-right:var(--ui-line-thin) solid #544f45;background:transparent;color:#5f5146;font-size:.38rem;line-height:1}.gender-switch button:last-child{border-right:0}.gender-switch button.is-active{background:#f7b9bc}.gender-switch button:last-child.is-active{background:#b8d8d8}.gender-switch button span{color:#d98682;font-size:.34rem}.gender-switch button:last-child span{color:#86aebd}.guest-avatar{position:relative;--guest-scale: 1;width:2.62rem;height:5.28rem;animation:guestBreathe 2.5s ease-in-out infinite}.dress-scene .guest-avatar:not(.is-small){--guest-scale: 1.55}.guest-avatar.is-small{--guest-scale: .92;transform-origin:top left}.base-avatar{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:1}.outfit-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.guest-avatar .outfit-layer{width:100%;height:100%}.outfit-hair{z-index:5}.outfit-top{z-index:3}.outfit-shoes{z-index:4}.outfit-bottom{z-index:2}.dress-panel{bottom:calc(2.95rem + var(--safe-bottom));height:5.12rem}.option-grid{display:grid;grid-template-rows:repeat(2,1.64rem);grid-auto-flow:column;grid-auto-columns:calc((100% - .32rem) / 3);gap:.16rem;margin:0 .22rem;padding:.22rem 0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch}.option-grid::-webkit-scrollbar{display:none}.option-card,.flower-chip{display:grid;justify-items:center;gap:.04rem;border:var(--ui-line-thin) solid #544f45;border-radius:.2rem;background:#fffdf1;color:#544f45;box-shadow:none;font-weight:400}.option-card{min-width:0;height:1.64rem;padding:.14rem .08rem;font-size:var(--text-option);line-height:.48rem;scroll-snap-align:start}.option-card.is-active{background:#f7b9bc}.asset-thumb{display:block;width:.78rem;height:.78rem;object-fit:contain;border-radius:.12rem;-webkit-user-select:none;user-select:none;pointer-events:none}.bouquet-workbench{position:absolute;left:calc(var(--layout-left) + .96rem);right:calc(var(--layout-left) + .96rem);top:calc(50% - 1.19rem);height:8.45rem;z-index:3;transform:translateY(-50%);--bouquet-art-top: calc(50% + .36rem) ;--bouquet-art-width: min(9.56rem, 118%)}.bouquet-paper,.bouquet-wrap{position:absolute;left:50%;top:var(--bouquet-art-top);width:var(--bouquet-art-width);height:auto;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;transform:translate(-50%,-50%)}.bouquet-paper{z-index:1}.bouquet-wrap-back{z-index:2}.slot-field{position:absolute;left:50%;top:calc(50% - .72rem);width:6.7rem;height:6.08rem;z-index:3;touch-action:none;transform:translate(-50%,-50%)}.bouquet-wrap-front{z-index:4}.bouquet-bow{position:absolute;left:calc(50% - .94rem);top:calc(var(--bouquet-art-top) + 2.72rem);z-index:5;width:2.82rem;height:2.12rem;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 .08rem .04rem rgba(84,79,69,.12));transform:translate(-50%,-50%);animation:bowIn .3s ease both}.bouquet-item{position:absolute;width:54%;height:54%;display:grid;place-items:center;padding:0;background:transparent;cursor:grab;pointer-events:auto;touch-action:none;transform:translate(-50%,-50%) scale(var(--flower-scale))}.bouquet-item{animation:popIn .28s ease both}.bouquet-item.is-dragging{cursor:grabbing;opacity:.82}.bouquet-cluster-item{width:92%;height:100%}.bouquet-item .flower-cluster-thumb{position:absolute;inset:0;width:100%;height:100%;min-width:0;min-height:0;object-fit:contain;filter:drop-shadow(0 .08rem .04rem rgba(84,79,69,.12))}.bouquet-placeholder{position:absolute;left:50%;top:48%;display:grid;justify-items:center;gap:.08rem;color:#544f4594;transform:translate(-50%,-50%);animation:placeholderFloat 2.2s ease-in-out infinite}.bouquet-placeholder img{width:.82rem;height:.82rem;object-fit:contain}.bouquet-placeholder span{font-size:.36rem;line-height:.46rem}.flower-panel{bottom:calc(2.8rem + var(--safe-bottom));min-height:3.82rem}.cluster-strip{display:grid;grid-auto-flow:column;grid-auto-columns:30%;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#b8c99e transparent;gap:.14rem;padding:.18rem .22rem .08rem}.flower-chip{min-width:0;min-height:2.48rem;padding:.1rem .04rem .12rem;font-size:.34rem;line-height:.42rem}.cluster-chip{scroll-snap-align:start;grid-template-rows:1.7rem auto;align-content:center}.cluster-chip.is-active{background:#b8d8c3;transform:translateY(-.04rem)}.cluster-chip:focus{outline:none}.cluster-chip:focus-visible{outline:.05rem solid #544f45;outline-offset:.04rem}.cluster-chip .flower-cluster-thumb{width:1.72rem;height:1.72rem;object-fit:contain}.cluster-chip span{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bow-picker{display:flex;align-items:center;justify-content:center;gap:.24rem;min-height:.9rem;padding:.06rem .22rem .16rem}.bow-picker-label{flex:0 0 auto;font-size:.36rem;line-height:.44rem;color:#544f45}.bow-options{display:flex;align-items:center;justify-content:center;gap:.2rem}.bow-option{width:.7rem;height:.7rem;display:grid;place-items:center;padding:0;border:.04rem solid transparent;border-radius:50%;background:transparent;transition:transform .16s ease,border-color .16s ease}.bow-option span{width:.46rem;height:.46rem;border:.04rem solid #544f45;border-radius:50%;box-shadow:inset 0 .06rem #ffffff6b}.bow-option.is-active{border-color:#544f45;transform:scale(1.08)}.bow-option:active{transform:scale(.94)}.bow-option:focus{outline:none}.bow-option:focus-visible{outline:.05rem solid #544f45;outline-offset:.03rem}.ceremony-photo-group{position:absolute;left:50%;top:5.35rem;z-index:3;width:7rem;height:7.65rem;transform:translate(-50%);transform-origin:center 48%;transition:transform 3.05s cubic-bezier(.18,.72,.18,1),top 3.05s cubic-bezier(.18,.72,.18,1)}.ceremony-scene{transition:background-size 3.05s cubic-bezier(.18,.72,.18,1),background-position 3.05s cubic-bezier(.18,.72,.18,1)}.ceremony-clouds{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.ceremony-cloud{position:absolute;left:-3.4rem;width:2.7rem;height:auto;opacity:.58;filter:drop-shadow(0 .035rem .025rem rgba(104,112,109,.08));transform:translateZ(0);will-change:transform;animation:ceremonyCloudDrift 24s linear infinite;-webkit-user-select:none;user-select:none}.ceremony-cloud-1{top:calc(50% - 8.15rem);width:2.45rem;animation-delay:-2s}.ceremony-cloud-2{top:calc(50% - 7.35rem);width:3.1rem;opacity:.48;animation-duration:29s;animation-delay:-18s}.ceremony-cloud-3{top:calc(50% - 7.55rem);width:1.85rem;opacity:.52;animation-duration:21s;animation-delay:-11s}.ceremony-cloud-4{top:calc(50% - 7.7rem);width:2.55rem;opacity:.42;animation-duration:32s;animation-delay:-7s}.ceremony-cloud-5{top:calc(50% - 8.05rem);width:2.8rem;opacity:.45;animation-duration:27s;animation-delay:-24s}.ceremony-cloud-6{top:calc(50% - 7.85rem);width:1.55rem;opacity:.56;animation-duration:20s;animation-delay:-15s}.ceremony-scene.is-capturing{background-size:112% auto;background-position:center center}.ceremony-scene.is-capturing .ceremony-photo-group{top:4.88rem;transform:translate(-50%) scale(1.12)}.ceremony-scene .scene-header,.ceremony-scene .ceremony-live-overlay,.ceremony-scene .ceremony-gift-effect,.ceremony-scene .ceremony-petals,.ceremony-scene .light-sweep{transition:opacity .42s ease,transform .42s ease}.ceremony-scene.is-capturing .scene-header,.ceremony-scene.is-capturing .ceremony-live-overlay,.ceremony-scene.is-capturing .ceremony-gift-effect,.ceremony-scene.is-capturing .ceremony-petals,.ceremony-scene.is-capturing .light-sweep{opacity:0;pointer-events:none}.ceremony-scene.is-capturing .scene-header{transform:translateY(-.28rem)}.ceremony-scene.is-capturing .ceremony-live-overlay{transform:translateY(.42rem)}.ceremony-scene.is-capturing .walk-guest .mini-bouquet{opacity:0}.camera-viewfinder{position:absolute;inset:0;z-index:20;pointer-events:none;background:radial-gradient(circle at 50% 47%,transparent 38%,rgba(49,43,35,.12) 100%);animation:cameraViewfinderIn .42s ease both}.camera-corner{position:absolute;width:1.05rem;height:1.05rem;border-color:#fffdf1f5;filter:drop-shadow(0 .03rem .04rem rgba(84,79,69,.34))}.camera-corner-top-left{left:.72rem;top:3.28rem;border-left:.08rem solid;border-top:.08rem solid;border-radius:.24rem 0 0}.camera-corner-top-right{right:.72rem;top:3.28rem;border-right:.08rem solid;border-top:.08rem solid;border-radius:0 .24rem 0 0}.camera-corner-bottom-left{left:.72rem;bottom:2.72rem;border-left:.08rem solid;border-bottom:.08rem solid;border-radius:0 0 0 .24rem}.camera-corner-bottom-right{right:.72rem;bottom:2.72rem;border-right:.08rem solid;border-bottom:.08rem solid;border-radius:0 0 .24rem}.camera-countdown{position:absolute;left:50%;top:48%;color:#fffdf1;font-family:var(--font-family-main);font-size:2.24rem;font-variant-numeric:tabular-nums;font-weight:400;line-height:1;text-shadow:0 .08rem .18rem rgba(84,79,69,.42);transform:translate(-50%,-50%);animation:cameraCountPulse .82s cubic-bezier(.18,.82,.2,1) both}.camera-shutter-flash{position:absolute;inset:0;background:#fffdf1;opacity:0}.camera-viewfinder.is-flashing .camera-shutter-flash{animation:cameraFlash .44s ease-out both}.ceremony-photo-group:after{content:"";position:absolute;left:50%;top:5.9rem;z-index:1;width:5.12rem;height:.52rem;border-radius:50%;background:#6f583a2e;filter:blur(.02rem);transform:translate(-50%);animation:stageShadow 1.8s .35s both}.ceremony-couple{position:absolute;left:50%;top:calc(50% - 3.4rem);z-index:2;width:5.5rem;filter:drop-shadow(0 .12rem .08rem rgba(62,43,27,.2));transform:translate(-50%);animation:coupleEntrance 2.2s .28s cubic-bezier(.18,.82,.2,1) both}.ceremony-mascots{position:absolute;inset:0;z-index:3;pointer-events:none}.ceremony-mascot{position:absolute;width:1.72rem;height:1.72rem;object-fit:contain;filter:drop-shadow(0 .08rem .04rem rgba(62,43,27,.14));transform-origin:center;animation:mascotFloat 2.8s ease-in-out infinite;-webkit-user-select:none;user-select:none}.ceremony-mascot-chiikawa{right:-.44rem;top:calc(50% - 1.8rem);animation-delay:-.7s}.ceremony-mascot-hachii{left:50%;top:calc(50% - 4.3rem);width:1.62rem;height:1.62rem;margin-left:-.81rem;animation-duration:3.15s;animation-delay:-1.85s}.ceremony-mascot-usagii{left:-.46rem;top:calc(50% - 1.4rem);width:1.82rem;height:1.82rem;animation-duration:3.4s;animation-delay:-1.1s}.ceremony-grass-flowers{position:absolute;left:50%;top:calc(50% + 2.92rem);z-index:5;width:9.18rem;height:auto;object-fit:contain;transform:translate(-50%);pointer-events:none;-webkit-user-select:none;user-select:none}.ceremony-live-overlay{position:absolute;left:calc(var(--layout-left) + .34rem);right:calc(var(--layout-left) + .34rem);bottom:calc(.36rem + var(--safe-bottom));z-index:10}.ceremony-dialogue{position:absolute;left:calc(50% - 3.3rem);top:4.9rem;z-index:9;width:max-content;max-width:4.25rem;display:grid;gap:.02rem;padding:.2rem .34rem .25rem;border:.045rem solid #544f45;border-radius:.28rem;background:#fffdf1f5;color:#544f45;text-align:left;box-shadow:0 .08rem .16rem #544f451f;animation:sceneDialogueIn .28s ease both}.ceremony-dialogue:after{content:"";position:absolute;left:1.42rem;bottom:-.19rem;width:.32rem;height:.32rem;border-right:.045rem solid #544f45;border-bottom:.045rem solid #544f45;background:inherit;transform:rotate(45deg)}.ceremony-dialogue strong{color:#a85f6f;font-size:.3rem;font-weight:600}.ceremony-dialogue span{font-size:.38rem;line-height:.48rem;text-wrap:pretty}.ceremony-dialogue.is-groom{background:#fff4cff7}.ceremony-dialogue.is-groom strong{color:#8a6a36}.ceremony-dialogue.is-bride{left:calc(50% - 1.42rem);right:auto;top:4.52rem;background:#f6cbbff7}.ceremony-dialogue.is-bride:after{left:auto;right:1.28rem}.ceremony-dialogue.is-bride strong{color:#9b5868}.ceremony-dialogue.is-guest{left:50%;top:7.55rem;max-width:6.5rem;transform:translate(-50%)}.ceremony-dialogue.is-guest:after{left:50%;transform:translate(-50%) rotate(45deg)}.ceremony-live-feed{height:5.46rem;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:.13rem;padding:.28rem .04rem .24rem;overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(0deg,#000 76%,transparent 100%);mask-image:linear-gradient(0deg,#000 76%,transparent 100%)}.ceremony-live-feed p{width:fit-content;max-width:100%;min-height:1.04rem;display:grid;grid-template-columns:.76rem minmax(0,1fr) auto;align-items:center;gap:.17rem;margin:0;padding:.13rem .3rem .21rem .14rem;border-radius:.18rem;background:linear-gradient(90deg,#fff9e7f0,#fff4cfc7 70%,#fff4cf14);color:#544f45;font-size:.36rem;line-height:.43rem;text-align:left;text-wrap:pretty;box-shadow:none;animation:liveMessageIn .34s ease both}.live-message-avatar{width:.76rem;height:.76rem;display:grid;place-items:center;overflow:hidden;border:.025rem solid rgba(84,79,69,.48);border-radius:50%;background:#fff9e7}.live-message-avatar img{width:100%;height:100%;object-fit:contain}.live-message-avatar.is-guest{position:relative;background:#fff9e7}.live-guest-crop{position:absolute;left:50%;top:-.02rem;width:2.62rem;height:5.28rem;transform:translate(-50%) scale(.4);transform-origin:top center}.live-guest-crop .guest-avatar{display:block;animation:none}.live-message-copy{min-width:0;display:grid;line-height:.42rem}.live-message-copy strong{color:#a85f6f;font-size:.34rem;font-weight:600}.live-message-copy>span{overflow:hidden;max-width:6.4rem;font-size:.35rem;text-overflow:ellipsis;white-space:nowrap}.ceremony-live-feed p:nth-last-child(2) .live-message-copy strong{color:#66835f}.ceremony-live-feed p:last-child .live-message-copy strong{color:#9b7838}.live-message-gift{display:inline-flex;align-items:center;margin-left:.08rem;color:#6d5942;font-size:.44rem;white-space:nowrap}.live-message-gift b{font-family:var(--font-family-main);font-weight:600}.ceremony-live-dock{min-height:1.18rem;display:grid;grid-template-columns:minmax(0,1fr) .94rem 1.36rem;align-items:center;gap:.12rem;padding:.13rem;border:.04rem solid rgba(84,79,69,.88);border-radius:9.99rem;background:#fff9e7f0;box-shadow:0 .08rem .16rem #544f451f;-webkit-backdrop-filter:blur(.12rem);backdrop-filter:blur(.12rem)}.ceremony-live-dock input{width:100%;min-width:0;height:.82rem;padding:0 1.04rem 0 .3rem;border:.035rem solid rgba(84,79,69,.5);border-radius:9.99rem;outline:none;background:#ffffffb8;color:#544f45;font:inherit;font-size:.36rem}.ceremony-live-dock input::placeholder{color:#544f459e}.ceremony-live-dock input:focus-visible{border-color:#d98fa3;box-shadow:0 0 0 .04rem #d98fa333}.ceremony-live-dock button{min-width:0;height:.82rem;display:inline-flex;align-items:center;justify-content:center;padding:0;border:.035rem solid #544f45;color:#544f45;transition:transform .16s ease,opacity .16s ease,background .16s ease}.ceremony-live-dock button:active:not(:disabled){transform:scale(.92)}.ceremony-live-dock button:focus-visible{outline:.05rem solid #fff9e7;box-shadow:0 0 0 .09rem #544f45}.live-send-button{position:absolute;right:.06rem;top:50%;width:.76rem;height:.7rem!important;border-radius:50%;background:#f2d88f;font-size:.29rem;transform:translateY(-50%)}.live-compose-field{position:relative;min-width:0}.blessing-nudge{position:absolute;right:-.07rem;top:-1.04rem;z-index:3;width:1.82rem;height:1.36rem;overflow:visible;pointer-events:none;filter:drop-shadow(0 .045rem .035rem rgba(84,79,69,.14));animation:blessingNudgeFloat 1.15s ease-in-out infinite}.blessing-nudge-line,.blessing-nudge-head,.blessing-nudge-head-shadow,.blessing-nudge-shadow,.blessing-nudge-spark{fill:none;stroke-linecap:round;stroke-linejoin:round}.blessing-nudge-shadow,.blessing-nudge-head-shadow{stroke:#fffdf1eb;stroke-width:13.5}.blessing-nudge-line,.blessing-nudge-head{stroke:#a45668;stroke-width:7.25}.blessing-nudge-spark{stroke:#d88b78;stroke-width:5;opacity:.82}.live-compose-field .live-send-button:active:not(:disabled){transform:translateY(-50%) scale(.92)}.live-send-button:disabled{opacity:.36;cursor:default}.live-flower-button{border-radius:50%;background:#f5b8a1}.live-flower-button img{width:.48rem;height:.48rem;object-fit:contain}.live-photo-button{gap:.05rem;border-radius:9.99rem;background:#a9cfae;font-size:.31rem;opacity:.4}.live-photo-button.is-visible{opacity:1}.live-photo-button img{width:.32rem;height:.32rem;object-fit:contain}.ceremony-flower-stream{position:absolute;right:-.82rem;top:calc(50% + 2.52rem);z-index:10;width:1.5rem;height:3.15rem;overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(0deg,transparent,#000 18%,#000 88%,transparent);mask-image:linear-gradient(0deg,transparent,#000 18%,#000 88%,transparent)}.ceremony-flower-stream img{position:absolute;left:50%;bottom:-.4rem;width:.48rem;height:.48rem;object-fit:contain;opacity:0;filter:drop-shadow(0 .035rem 0 rgba(255,255,255,.85));animation:flowerFloat 1.85s ease-out both}.ceremony-flower-stream img:nth-child(2){left:25%;width:.34rem;height:.34rem;animation-delay:.12s}.ceremony-flower-stream img:nth-child(3){left:72%;width:.42rem;height:.42rem;animation-delay:.24s}.ceremony-flower-stream img:nth-child(4){left:38%;width:.28rem;height:.28rem;animation-delay:.36s}.ceremony-flower-stream img:nth-child(5){left:80%;width:.38rem;height:.38rem;animation-delay:.48s}.ceremony-gift-effect{position:absolute;left:calc(var(--layout-left) + .38rem);top:calc(50% + 2.55rem);z-index:12;width:5.15rem;height:2.25rem;pointer-events:none}.ceremony-gift-notice{width:5.15rem;min-height:1.04rem;display:grid;grid-template-columns:.76rem minmax(0,1fr) auto;align-items:center;gap:.17rem;padding:.13rem .3rem .21rem .14rem;border:.035rem solid rgba(84,79,69,.42);border-radius:.2rem;background:linear-gradient(90deg,#fff9e7,#f6cbbff7 66%,#f6cbbfb8);filter:drop-shadow(0 .035rem .035rem rgba(84,79,69,.08));animation:giftNoticeIn 2.35s cubic-bezier(.2,.82,.2,1) both}.ceremony-gift-notice .live-message-avatar{width:.76rem;height:.76rem}.ceremony-gift-copy{min-width:0;display:grid;color:#544f45;font-size:.35rem;line-height:.42rem}.ceremony-gift-copy strong{color:#a85f6f;font-size:.34rem;font-weight:600}.ceremony-gift-copy>span{font-size:.35rem}.ceremony-gift-count{display:inline-flex;align-items:center;gap:.06rem;color:#6d5942;font-size:.44rem}.ceremony-gift-count img{width:.54rem;height:.54rem;object-fit:contain}.ceremony-gift-count b{font-weight:600}.ceremony-gift-particles{position:absolute;left:2rem;top:.48rem;width:1rem;height:1rem}.ceremony-gift-particles img{--gift-x: 1rem;--gift-y: -1rem;position:absolute;left:50%;top:50%;width:.42rem;height:.42rem;object-fit:contain;opacity:0;animation:giftFlowerBurst 1.55s .18s ease-out both}.ceremony-gift-particles img:nth-child(2){--gift-x: 1.65rem;--gift-y: -.45rem;animation-delay:.25s}.ceremony-gift-particles img:nth-child(3){--gift-x: 1.25rem;--gift-y: .72rem;animation-delay:.32s}.ceremony-gift-particles img:nth-child(4){--gift-x: -.8rem;--gift-y: -1.18rem;animation-delay:.28s}.ceremony-gift-particles img:nth-child(5){--gift-x: -1.2rem;--gift-y: .42rem;animation-delay:.38s}.ceremony-gift-particles img:nth-child(6){--gift-x: .28rem;--gift-y: -1.62rem;animation-delay:.44s}.ceremony-scene.is-preview .ceremony-couple,.ceremony-scene.is-preview .ceremony-photo-group:after{animation-delay:-10s}.ceremony-scene.is-preview-gift .walk-guest,.ceremony-scene.is-preview-gift .walk-guest:after{animation-delay:-10s}.ceremony-scene.is-preview-gift .ceremony-gift-notice{animation:none;opacity:1}.ceremony-scene.is-preview-gift .ceremony-gift-particles img{animation:none;opacity:.76;transform:translate3d(var(--gift-x),var(--gift-y),0) scale(.88) rotate(12deg)}.walk-guest{position:absolute;left:50%;top:4.06rem;z-index:4;width:2.62rem;height:5.28rem;transform:translate(-50%);animation:guestWalkIn 4.7s 2.45s cubic-bezier(.2,.82,.2,1) both;transition:left .86s cubic-bezier(.18,.82,.2,1),top .86s cubic-bezier(.18,.82,.2,1),transform .86s cubic-bezier(.18,.82,.2,1)}.walk-guest:after{content:none;position:absolute;left:50%;top:.12rem;z-index:8;min-width:1.9rem;padding:.12rem .18rem;border:.04rem solid #544f45;border-radius:9.99rem;background:#fff9e7;font-size:.34rem;line-height:.42rem;text-align:center;transform:translate(-50%,-1rem) scale(.72);opacity:0;animation:sendBlessingPop 1.25s 5.55s ease both}.walk-guest .guest-avatar.is-small{--guest-scale: 1.16;transform-origin:top center;animation:none;transform:scale(var(--guest-scale))}.walk-guest .mini-bouquet{position:absolute;left:1.06rem;top:2.3rem;z-index:7;transform:scale(.94) rotate(-10deg);transform-origin:left top}.photo-guest .mini-bouquet{position:absolute;left:.98rem;top:2.34rem;transform:scale(.94) rotate(-10deg);transform-origin:left top}.ceremony-couple-bouquet{position:absolute;left:3.96rem;top:4.3rem;z-index:6;transform:scale(.82) rotate(-8deg);transform-origin:center center;pointer-events:none}.mini-bouquet{position:relative;width:1.86rem;height:2.08rem}.mini-bouquet-wrap{position:absolute;left:50%;top:50%;width:2.36rem;height:2.84rem;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;transform:translate(-50%,-50%)}.mini-bouquet-wrap-back{z-index:1}.mini-bouquet .flower-cluster-thumb{position:absolute;left:50%;top:41%;z-index:2;width:1.8rem;height:1.8rem;object-fit:contain;transform:translate(-50%,-50%)}.mini-bouquet-wrap-front{z-index:3}.mini-bouquet-bow{position:absolute;left:.76rem;top:1.48rem;z-index:4;width:.88rem;height:.66rem;object-fit:contain;transform:translate(-50%,-50%)}.light-sweep{position:absolute;inset:0;z-index:6;pointer-events:none;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.72) 50%,transparent 60%);transform:translate(-120%);animation:lightSweep 7.1s ease both}.photo-result-overlay{position:absolute;inset:0;z-index:24;display:grid;align-content:center;justify-items:center;gap:.24rem;padding:calc(.7rem + env(safe-area-inset-top)) .58rem calc(.72rem + var(--safe-bottom));background:#fff4d652;-webkit-backdrop-filter:blur(.14rem) saturate(.78);backdrop-filter:blur(.14rem) saturate(.78);animation:photoResultBackdropIn .48s ease both}.photo-polaroid{position:relative;width:min(8.55rem,calc(100% - 1.16rem));padding:.46rem .38rem .34rem;border:.06rem solid #544f45;border-radius:.18rem;background:#fffdf1;box-shadow:0 .22rem .5rem #544f452e;text-align:center;transform-origin:center;animation:polaroidDevelopIn .78s .16s cubic-bezier(.18,.82,.2,1) both}.photo-polaroid.is-developing-polaroid{min-height:10.4rem;display:grid;place-items:center}.photo-polaroid-image{display:block;width:min(8.55rem,calc(100% - 1.16rem));height:auto;max-height:13.15rem;object-fit:contain;filter:drop-shadow(0 .22rem .3rem rgba(84,79,69,.18));-webkit-user-select:auto;user-select:auto;-webkit-touch-callout:default;animation:polaroidDevelopIn .78s .16s cubic-bezier(.18,.82,.2,1) both}.tape{position:absolute;left:50%;top:-.28rem;width:2.2rem;height:.46rem;border:.04rem solid #544f45;border-radius:.1rem;background:#d7b381;transform:translate(-50%) rotate(-2deg)}.photo-result-heading{display:grid;gap:.02rem;margin:0 0 .24rem}.photo-result-heading strong{color:#544f45;font-size:.58rem;font-weight:400;line-height:1.25}.photo-result-heading span{color:#7b6754;font-size:.31rem;line-height:1.3}.photo-frame{position:relative;height:5.95rem;overflow:hidden;border:.05rem solid #544f45;border-radius:.2rem;background:#eef1d0}.captured-photo-image{display:block;width:100%;height:100%;object-fit:cover;animation:photoDevelop .72s ease both}.photo-frame.is-developing{display:grid;place-items:center}.photo-developing-copy{color:#544f45a8;font-size:.4rem;animation:developingPulse 1s ease-in-out infinite}.photo-blessing-letter{display:grid;gap:.06rem;margin:.26rem .18rem 0;color:#544f45;font-size:.34rem;line-height:.44rem;text-align:left}.photo-blessing-letter span{font-size:.32rem}.photo-blessing-letter p{min-height:.72rem;margin:0;text-wrap:pretty}.photo-blessing-letter strong{justify-self:end;min-width:1.8rem;font-size:.32rem;font-weight:400;text-align:center}.photo-polaroid-meta{display:flex;justify-content:space-between;gap:.24rem;margin-top:.22rem;color:#7b6754;font-size:.29rem;line-height:1.3}.info-card{position:absolute;left:50%;right:auto;top:calc(var(--bg-offset-y) + 13.42rem);z-index:3;width:var(--content-width);display:grid;gap:.16rem;transform:translate(-50%)}.info-row{display:grid;grid-template-columns:1.28rem 1fr;align-items:center;gap:.14rem;min-height:.86rem;padding:.1rem .24rem;border:var(--ui-line-thin) solid #544f45;border-radius:9.99rem;background:#fff9e7eb;box-shadow:none}.info-row span{font-size:.36rem;font-weight:400;color:#7b6754}.info-row strong{min-width:0;font-size:.36rem;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-result-actions{width:min(8.55rem,calc(100% - 1.16rem));display:grid;grid-template-columns:minmax(0,1fr);gap:.14rem;animation:photoActionsIn .48s .72s ease both}.photo-save-tip{display:none;width:100%;color:#6f6457;font-size:.3rem;line-height:.38rem;text-align:center;opacity:0;transform:translateY(-.08rem);transition:opacity .2s ease,transform .2s ease}.photo-save-tip.is-visible{display:block;opacity:1;transform:translateY(0)}.photo-result-actions button,.photo-result-actions a{min-height:var(--button-height-small);display:inline-flex;align-items:center;justify-content:center;gap:.08rem;border:var(--ui-line) solid #544f45;border-radius:var(--button-radius);background:#f5b8a1;color:#544f45;font-size:var(--text-button-small);text-decoration:none;transition:transform .16s ease}.photo-download-button{width:100%}.photo-secondary-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.2rem}.photo-secondary-actions button{width:100%;background:#fff4cf}.photo-secondary-actions button:nth-child(2){background:#b8d8c3}.photo-result-actions button img,.photo-result-actions a img{width:.46rem;height:.46rem;object-fit:contain}.photo-result-actions button:active,.photo-result-actions a:active{transform:scale(.97)}.photo-result-actions a[aria-disabled=true]{opacity:.5;pointer-events:none}@keyframes sceneEnter{0%{opacity:0;transform:translate(.42rem) scale(.992)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes cameraViewfinderIn{0%{opacity:0}to{opacity:1}}@keyframes cameraCountPulse{0%{opacity:0;transform:translate(-50%,-50%) scale(.72)}24%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}68%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.92)}}@keyframes cameraFlash{0%{opacity:0}12%{opacity:.98}45%{opacity:.9}to{opacity:0}}@keyframes photoDevelop{0%{opacity:.18;filter:saturate(.45) brightness(1.2);transform:scale(1.025)}to{opacity:1;filter:saturate(1) brightness(1);transform:scale(1)}}@keyframes photoResultBackdropIn{0%{opacity:0;-webkit-backdrop-filter:blur(0) saturate(1);backdrop-filter:blur(0) saturate(1)}to{opacity:1;-webkit-backdrop-filter:blur(.14rem) saturate(.78);backdrop-filter:blur(.14rem) saturate(.78)}}@keyframes polaroidDevelopIn{0%{opacity:0;transform:translateY(.5rem) scale(.88) rotate(-2deg)}62%{opacity:1;transform:translateY(-.06rem) scale(1.02) rotate(.35deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes photoActionsIn{0%{opacity:0;transform:translateY(.22rem)}to{opacity:1;transform:translateY(0)}}@keyframes ambientDotsDrift{0%{transform:translateZ(0)}to{transform:translate3d(52px,52px,0)}}@keyframes developingPulse{0%,to{opacity:.42}50%{opacity:1}}@keyframes sceneLeave{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-.28rem)}}@keyframes buttonHeartbeat{0%,62%,to{transform:scale(1)}70%{transform:scale(1.035)}78%{transform:scale(.992)}86%{transform:scale(1.022)}}@keyframes inviteFloat{0%,to{transform:translate(-50%) translateY(0) rotate(-1.2deg)}50%{transform:translate(-50%) translateY(-.12rem) rotate(-.4deg)}}@keyframes letterPeek{0%,to{transform:translateY(var(--letter-base-y)) rotate(-2.2deg) scale(.93)}50%{transform:translateY(calc(var(--letter-base-y) - .12rem)) rotate(-1.4deg) scale(.94)}}@keyframes letterGlow{0%,to{filter:drop-shadow(0 0 .14rem rgba(255,244,190,.5)) drop-shadow(0 .13rem .09rem rgba(62,43,27,.2))}50%{filter:drop-shadow(0 0 .34rem rgba(255,244,190,.88)) drop-shadow(0 .16rem .11rem rgba(62,43,27,.22))}}@keyframes detailOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes detailCardIn{0%{opacity:0;transform:translateY(.34rem) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fall{0%{transform:translateY(0) rotate(0)}to{transform:translateY(18rem) rotate(280deg)}}@keyframes guestBreathe{0%,to{transform:scale(var(--guest-scale)) scaleX(1) scaleY(1)}50%{transform:scale(var(--guest-scale)) scaleX(.996) scaleY(1.009)}}@keyframes popIn{0%{transform:translate(-50%,-50%) scale(.72)}70%{transform:translate(-50%,-50%) scale(calc(var(--flower-scale) * 1.08))}to{transform:translate(-50%,-50%) scale(var(--flower-scale))}}@keyframes bowIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.72)}72%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes placeholderFloat{0%,to{opacity:.68;transform:translate(-50%,-50%) translateY(0)}50%{opacity:1;transform:translate(-50%,-50%) translateY(-.1rem)}}@keyframes stageShadow{0%{opacity:0;transform:translate(-50%) scale(.38)}72%{opacity:1;transform:translate(-50%) scale(1.06)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes coupleEntrance{0%{opacity:0;filter:blur(.04rem) drop-shadow(0 .06rem .04rem rgba(62,43,27,.08));transform:translate3d(calc(-50% - 7.2rem),.08rem,0) scale(.96)}16%{opacity:1}72%{filter:blur(0) drop-shadow(0 .12rem .08rem rgba(62,43,27,.2));transform:translate3d(calc(-50% + .2rem),0,0) scale(1.01)}88%{transform:translate3d(calc(-50% - .06rem),0,0) scale(1)}to{opacity:1;filter:blur(0) drop-shadow(0 .12rem .08rem rgba(62,43,27,.2));transform:translate3d(-50%,0,0) scale(1)}}@keyframes mascotFloat{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-.2rem) rotate(2deg)}}@keyframes ceremonyCloudDrift{0%{transform:translateZ(0)}to{transform:translate3d(14.2rem,0,0)}}@keyframes liveMessageIn{0%{opacity:0;transform:translate3d(0,.14rem,0)}to{opacity:1;transform:translateZ(0)}}@keyframes sceneDialogueIn{0%{opacity:0}to{opacity:1}}@keyframes flowerFloat{0%{opacity:0;transform:translate3d(0,.3rem,0) scale(.7) rotate(-8deg)}18%{opacity:.92}72%{opacity:.78}to{opacity:0;transform:translate3d(.22rem,-3.12rem,0) scale(1.08) rotate(10deg)}}@keyframes giftNoticeIn{0%{opacity:0;transform:translate3d(-.5rem,.12rem,0) scale(.9)}16%{opacity:1;transform:translateZ(0) scale(1.03)}28%,78%{opacity:1;transform:translateZ(0) scale(1)}to{opacity:0;transform:translate3d(.18rem,-.18rem,0) scale(.98)}}@keyframes giftFlowerBurst{0%{opacity:0;transform:translateZ(0) scale(.5) rotate(-12deg)}20%{opacity:1}72%{opacity:.9}to{opacity:0;transform:translate3d(var(--gift-x),var(--gift-y),0) scale(1.06) rotate(18deg)}}@keyframes blessingNudgeFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-.08rem)}}@media(prefers-reduced-motion:reduce){html.is-framed .page-shell:before,html.is-framed .page-shell:after,.ceremony-cloud,.ceremony-mascot,.ceremony-flower-stream img,.ceremony-petals span,.ceremony-live-feed p,.ceremony-gift-notice,.ceremony-gift-particles img,.blessing-nudge{animation:none}}@keyframes guestWalkIn{0%{opacity:0;transform:translate(-50%) translateY(4.1rem) scale(.66)}15%{opacity:1;transform:translate(-50%) translateY(3.1rem) scale(.74)}36%{transform:translate(-54%) translateY(1.9rem) scale(.86)}56%{transform:translate(-47%) translateY(.86rem) scale(.96)}76%{transform:translate(-51%) translateY(.14rem) scale(1.02)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes sendBlessingPop{0%{opacity:0;transform:translate(-50%,.15rem) scale(.58)}42%{opacity:1;transform:translate(-50%,-.8rem) scale(1.08)}72%{opacity:1;transform:translate(-50%,-1.02rem) scale(1)}to{opacity:0;transform:translate(-50%,-1.34rem) scale(.92)}}@keyframes lightSweep{0%,72%{transform:translate(-120%)}to{transform:translate(120%)}}@media(max-width:599px)and (max-height:720px)and (orientation:portrait){.invite-scene,.dress-scene,.flower-scene,.ceremony-scene,.photo-scene{background-position:center calc(50% + 1rem)}.invite-scene{background-position:center calc(50% + .45rem)}.ceremony-scene.is-capturing{background-position:center calc(50% + 1rem)}.invite-header{margin-top:.4rem}.invite-header .title-line{grid-template-columns:.86rem minmax(0,5.55rem) .86rem;gap:.16rem}.invite-header .title-line img{width:.86rem;height:.86rem}.invite-header h1 span{font-size:.78rem}.invite-header h1 strong{font-size:1.04rem}.invite-header p{margin-top:.06rem;font-size:.44rem;line-height:.56rem}.invite-scene .bottom-action{bottom:calc(1.65rem + var(--safe-bottom))}.dress-scene .scene-header{margin-top:.38rem}.dress-scene .scene-header .title-line{grid-template-columns:.58rem minmax(0,max-content) .58rem;gap:.12rem}.dress-scene .scene-header .title-line img{width:.56rem;height:.56rem}.dress-scene .scene-header h1{font-size:.78rem}.dress-scene .scene-header p{margin-top:.05rem;font-size:.4rem}.dress-scene .guest-zone{top:5.65rem;height:5.6rem}.dress-scene .gender-switch{top:3.24rem;width:4.24rem}.dress-scene .gender-switch button{min-height:.68rem;font-size:.32rem}.dress-scene .guest-avatar:not(.is-small){--guest-scale: 1.3;transform-origin:center bottom}.dress-panel{bottom:calc(2.25rem + var(--safe-bottom));height:3.7rem}.dress-panel .tab-bar{gap:.08rem;padding:.12rem .16rem 0}.dress-panel .tab-bar button{min-height:.7rem;font-size:.38rem}.dress-panel .option-grid{grid-template-rows:repeat(2,1.24rem);grid-auto-columns:calc((100% - .2rem) / 3);gap:.1rem;padding:.12rem .16rem}.dress-panel .option-card{height:1.24rem;padding:.07rem .05rem;font-size:.35rem;line-height:.38rem}.dress-panel .asset-thumb{width:.54rem;height:.54rem}.flower-scene .bouquet-workbench{top:calc(50% - .35rem)}.flower-panel{bottom:calc(2.25rem + var(--safe-bottom));min-height:0;height:2.8rem}.flower-panel .cluster-strip{gap:.1rem;padding:.1rem .16rem .04rem}.flower-panel .flower-chip{min-height:1.74rem;padding:.05rem .03rem .06rem;font-size:.31rem;line-height:.36rem}.flower-panel .cluster-chip{grid-template-rows:1.18rem auto}.flower-panel .cluster-chip .flower-cluster-thumb{width:1.18rem;height:1.18rem}.flower-panel .bow-picker{gap:.16rem;min-height:.65rem;padding:0 .16rem .08rem}.flower-panel .bow-picker-label{font-size:.32rem;line-height:.38rem}.flower-panel .bow-options{gap:.14rem}.flower-panel .bow-option{width:.58rem;height:.58rem}.flower-panel .bow-option span{width:.38rem;height:.38rem}.ceremony-live-feed{height:4.05rem}.ceremony-live-feed p:nth-last-child(n+4){display:none}.ceremony-gift-effect{top:calc(50% + 1.7rem)}}.dress-scene{display:grid;grid-template-rows:auto auto minmax(3.6rem,1fr) auto auto;gap:.18rem;padding:calc(1.85rem + env(safe-area-inset-top)) .58rem calc(.45rem + var(--safe-bottom));overflow-y:auto}.dress-scene .scene-header:not(.invite-header){margin:0 auto}.dress-scene .scene-header:not(.invite-header) h1{font-size:.76rem}.dress-scene .scene-header p{font-size:.4rem;margin-top:.08rem}.dress-scene .gender-switch{position:relative;top:auto;left:auto;transform:none;width:2.6rem;justify-self:center}.dress-scene .gender-switch button{min-height:44px;font-size:.52rem}.dress-scene .gender-switch button span{font-size:.6rem;line-height:1}.dress-scene .guest-zone{position:relative;top:auto;left:auto;transform:none;width:100%;height:100%;min-height:0;overflow:hidden}.dress-scene .guest-avatar:not(.is-small){--guest-scale: 1;width:min(5.2rem,100%);height:98%;transform-origin:center center}.dress-scene .dress-panel{position:relative;inset:auto;width:min(100%,7.2rem);height:auto;justify-self:center;min-height:0;margin:0}.dress-scene .dress-panel .tab-bar{gap:.1rem;padding:.14rem .16rem 0}.dress-scene .dress-panel .tab-bar button{min-height:.72rem;font-size:.4rem}.dress-scene .dress-panel .option-grid{grid-template-rows:repeat(2,minmax(44px,1.14rem));grid-auto-columns:calc((100% - .2rem) / 3);gap:.1rem;margin:0 .16rem;padding:.14rem 0}.dress-scene .dress-panel .option-card{height:100%;min-height:44px;padding:.08rem;place-items:center}.dress-scene .dress-panel .asset-thumb{width:.94rem;height:.94rem}.dress-scene .bottom-action{position:relative;inset:auto;width:min(100%,6.7rem);justify-self:center;margin:.08rem 0 0}.dress-scene .bottom-action button{font-size:.6rem}
