@font-face{font-family:Cormorant Wedding;src:url(/fonts/CormorantGaramond-Italic.ttf)format("truetype");font-style:italic;font-display:swap}@font-face{font-family:DM Serif Wedding;src:url(/fonts/DMSerifDisplay-Regular.ttf)format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Cormorant Editorial;src:url(/fonts/CormorantGaramond-Medium.ttf)format("truetype");font-style:normal;font-weight:500;font-display:block}@font-face{font-family:Noto Serif Invitation;src:url(/fonts/NotoSerifSC-Invitation.ttf)format("truetype");font-style:normal;font-weight:400;font-display:block}*{box-sizing:border-box}html,body{background:#d9d5cd;min-height:100%;margin:0}body{font-family:Arial,Helvetica,sans-serif;overflow:hidden}.screen{background:radial-gradient(circle at 50% 42%,#eeeae3 0,#ddd9d1 58%,#cbc7bf 100%);place-items:center;padding:clamp(12px,3vw,42px);display:grid;position:fixed;inset:0}.invitation{aspect-ratio:16/9;background:#000;border:1px solid #141412b8;width:min(100vw - clamp(24px,6vw,84px),177.778vh - 1.77778*clamp(24px,6vw,84px));position:relative;overflow:hidden;box-shadow:0 18px 50px #23201b33}.film{object-fit:contain;background:#050706;width:100%;height:100%;transition:opacity .9s cubic-bezier(.22,.61,.36,1),transform 1.2s cubic-bezier(.22,.61,.36,1);position:absolute;inset:0}.idle-film{opacity:1;transform:scale(1.002)}.main-film{opacity:0;pointer-events:none;transform:scale(1.008)}.is-started .idle-film{opacity:0;transform:scale(1.012)}.is-started .main-film{opacity:1;pointer-events:auto;transform:scale(1)}.start-hit-area{z-index:4;cursor:pointer;color:#fffffbf5;-webkit-tap-highlight-color:transparent;background:0 0;border:0;justify-items:center;gap:2px;width:max-content;padding:8px 26px 10px;transition:transform .4s cubic-bezier(.22,.61,.36,1);display:grid;position:absolute;bottom:17%;left:50%;transform:translate(-50%)}.start-hit-area:hover{transform:translate(-50%)translateY(-2px)}.start-hit-area:active{transform:translate(-50%)scale(.97)}.start-hit-area:focus-visible{outline-offset:4px;outline:1px solid #ffffffe6}.start-hit-area.is-waiting{cursor:default}.start-title{opacity:0;filter:drop-shadow(0 2px 8px #00000047);transform-origin:50%;width:clamp(158px,17.5vw,246px);height:auto;animation:3.8s cubic-bezier(.22,.61,.36,1) forwards invitation-signature-once;display:block;transform:rotate(-1.1deg)}.start-subtitle{letter-spacing:.42em;color:#fffffad1;text-shadow:0 1px 8px #0006;margin-top:8px;padding-left:.42em;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:clamp(8px,.72vw,10px);font-weight:300;line-height:1;animation:7s ease-in-out infinite invitation-prompt-cycle}.start-line{background:#fffff833;width:clamp(82px,9.5vw,116px);height:1px;margin-top:2px;animation:7s ease-in-out infinite invitation-prompt-cycle;display:block;position:relative;overflow:hidden}.start-line span{background:linear-gradient(90deg,#0000,#fffff8f2,#0000);width:44%;animation:3.6s cubic-bezier(.4,0,.2,1) infinite invitation-scan;position:absolute;inset:0 auto 0 -44%}.start-subtitle.initial-prompt,.start-line.initial-prompt{opacity:0;animation:.9s cubic-bezier(.22,1,.36,1) .35s forwards initial-prompt-in}.film-frame{z-index:3;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 clamp(18px,2.4vw,42px) #0000001a}.film-frame:before,.film-frame:after{content:"";opacity:1;background:#000;height:12.222%;transition:opacity .9s cubic-bezier(.22,.61,.36,1);position:absolute;left:0;right:0}.film-frame:before{top:0}.film-frame:after{bottom:0}.is-started .film-frame:before,.is-started .film-frame:after{opacity:0}.story-copy{z-index:4;pointer-events:none;color:#f3efe6;text-shadow:0 2px 12px #00000052;position:absolute;inset:0}.copy-scene{isolation:isolate;position:absolute}.word-flow,.character-flow{margin:0}.story-copy .word-flow,.story-copy .opening-title-line{letter-spacing:-.004em;text-transform:uppercase;text-rendering:geometricprecision;text-shadow:0 1px #ffffff1f,0 1.5px 1.5px #00000038;font-family:Cormorant Editorial,Garamond,Georgia,serif;font-size:clamp(18px,1.9vw,36px);font-style:normal;font-weight:500;line-height:1.18}.story-copy .character-flow{letter-spacing:.085em;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:clamp(16px,1.72vw,32px);font-style:normal;font-weight:300;line-height:1.5}.word-flow span{opacity:0;filter:blur(1.4px);animation:.72s cubic-bezier(.16,1,.3,1) forwards word-arrive;display:inline-block;transform:translate(clamp(14px,1.6vw,30px))scale(.985)}.character-flow span{opacity:0;filter:blur(3px);animation:.66s cubic-bezier(.16,1,.3,1) forwards character-arrive;display:inline-block;transform:translateY(6px)scale(.97)}.opening-copy{text-align:center;width:84%;bottom:20%;left:50%;transform:translate(-50%)}.opening-title-line{opacity:0;color:#fffdf7;transform-origin:50%;text-shadow:0 1px 1px #0000004d,0 3px 12px #0000005c;will-change:opacity;margin:0;animation:1.08s linear forwards opening-title-reveal;transform:scaleX(1.06)scaleY(.9)}.opening-primary{animation-duration:1.08s}.opening-secondary{color:#fffdf7f5;margin-top:.42em;animation-delay:.42s}.aerial-copy{text-align:center;width:70%;top:37%;left:50%;transform:translate(-50%)}.display-copy{white-space:nowrap;text-align:center;align-items:baseline;width:max-content;display:flex;bottom:22%;left:50%;transform:translate(-50%)}.display-phrase .character-flow{font-size:clamp(20px,2.15vw,41px);display:inline-block}.action-caption{text-align:center;width:88%;bottom:19%;left:50%;transform:translate(-50%)}.action-caption p{opacity:0;will-change:opacity, transform, filter;margin:0;animation:1.06s cubic-bezier(.22,.72,.28,1) forwards caption-wipe-in}.action-caption-one p,.action-caption-two p{letter-spacing:-.004em;text-transform:uppercase;text-rendering:geometricprecision;text-shadow:0 1px #ffffff1f,0 1.5px 1.5px #00000038;font-family:Cormorant Editorial,Garamond,Georgia,serif;font-size:clamp(18px,1.9vw,36px);font-weight:500;line-height:1.18;animation-name:caption-en-in}.action-caption-cn p{letter-spacing:.085em;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:clamp(16px,1.72vw,32px);font-weight:300;line-height:1.5}.action-caption.is-caption-leaving p{animation:1.04s cubic-bezier(.45,0,.25,1) forwards caption-soft-out}.action-caption-one.is-caption-leaving p,.action-caption-two.is-caption-leaving p{animation-name:caption-en-out}.walk-copy{text-align:center;width:100%;top:30%;left:0;right:0}.walk-copy .walk-line{white-space:nowrap;width:max-content;max-width:94%;margin-inline:auto;padding-left:.085em;line-height:1.55}.walk-copy .walk-line span{animation-duration:.52s}.walk-copy .walk-line.is-line-fading{animation:1.17s cubic-bezier(.4,0,.2,1) forwards walk-line-fade}.copy-scene.is-soft-fading{animation:.66s cubic-bezier(.45,0,.3,1) forwards copy-soft-fade}.final-curtain{z-index:6;color:#f3efe6;pointer-events:auto;place-items:center;transition:background-color 80ms linear;display:grid;position:absolute;inset:0}.final-details{text-align:center;justify-items:center;width:min(72%,860px);font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;display:grid}.detail-block{opacity:0;width:100%;transition:opacity .85s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1);transform:translateY(8px)}.detail-block.is-shown{opacity:1;transform:translateY(0)}.detail-block p{margin:0}.couple-name{letter-spacing:.08em;font-family:Cormorant Wedding,PingFang SC,serif;font-size:clamp(25px,3.1vw,58px);font-weight:400}.couple-name span{opacity:.78;margin:0 .26em;font-size:.7em;display:inline-block}.date-details{letter-spacing:.24em;color:#f3efe6e0;margin-top:.2em;font-family:Georgia,serif;font-size:clamp(14px,1.7vw,31px)}.time-details{letter-spacing:.14em;margin-top:1.15em;font-size:clamp(13px,1.35vw,25px);font-weight:300}.time-details span{opacity:.55;margin:0 .35em}.address-details{text-align:left;border-top:1px solid #f3efe629;grid-template-columns:1fr auto;align-items:center;gap:clamp(12px,2vw,28px);margin-top:clamp(12px,1.55vw,25px);padding-top:clamp(10px,1.25vw,20px);display:grid}.address-details>div{min-width:0}.detail-label{letter-spacing:.32em;color:#f3efe68c;margin-bottom:.45em;font-size:clamp(9px,.78vw,13px);display:block}.address-details p{letter-spacing:.04em;font-size:clamp(12px,1.12vw,20px);font-weight:300;line-height:1.5}.address-details button{color:#f3efe6b8;letter-spacing:.12em;cursor:pointer;background:0 0;border:0;border-left:1px solid #f3efe62e;justify-content:center;align-items:center;gap:7px;min-width:78px;min-height:44px;padding:8px 0 8px 18px;font-size:clamp(10px,.8vw,13px);display:inline-flex}.address-details button:hover{color:#fff}.address-details button:focus-visible{outline-offset:4px;outline:1px solid #f3efe6bf}.music-toggle{z-index:9;aspect-ratio:1;color:#fffffae6;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#0709073d;border:1px solid #fffffa57;border-radius:50%;place-items:center;width:clamp(30px,3.1vw,48px);padding:0;transition:opacity .35s,transform .35s,background-color .35s;display:grid;position:absolute;bottom:3.5%;right:2.4%;box-shadow:0 3px 14px #00000029}.music-toggle .music-note{font-family:Georgia,serif;font-size:clamp(15px,1.45vw,23px);line-height:1;display:block;transform:translateY(-1px)}.music-toggle:hover{background:#07090761;transform:translateY(-1px)}.music-toggle:active{transform:scale(.94)}.music-toggle:focus-visible{outline-offset:3px;outline:1px solid #ffffffe6}.music-toggle:disabled{opacity:.5;cursor:default}.music-toggle.is-playing{animation:2.8s ease-in-out infinite music-breathe}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.orientation-gate{display:none}.filing-records{z-index:120;left:50%;bottom:max(3px, env(safe-area-inset-bottom));letter-spacing:.04em;white-space:nowrap;color:#26242185;align-items:center;gap:.65em;font:300 9px/1.2 PingFang SC,Microsoft YaHei,sans-serif;display:flex;position:fixed;transform:translate(-50%)}.filing-records a{color:inherit;text-decoration:none}.filing-records a:hover{color:#141311cc}@media (max-width:700px){.screen{padding:12px}.invitation{width:calc(100vw - 24px)}}@media (max-width:1000px) and (orientation:landscape) and (hover:none){html,body{background:#000}.screen{background:#000;padding:0}.invitation{width:min(100vw,177.778vh);box-shadow:none;border:0}.filing-records{color:#ffffff75}}@media (max-width:1000px) and (orientation:portrait) and (hover:none){html,body{background:#111512}.screen{background:radial-gradient(circle at 50% 48%,#252b26 0,#111512 72%);padding:0}.invitation{border-left:0;border-right:0;width:100vw;box-shadow:0 12px 34px #00000047}.story-copy .word-flow,.story-copy .opening-title-line,.action-caption-one p,.action-caption-two p{font-size:clamp(10px,3.05vw,14px)}.story-copy .character-flow,.action-caption-cn p{letter-spacing:.055em;font-size:clamp(10px,2.85vw,14px)}.display-phrase .character-flow{font-size:clamp(12px,3.5vw,17px)}.opening-copy{width:92%;bottom:18%}.aerial-copy{width:88%}.action-caption{width:94%;bottom:17%}.walk-copy{width:100%;top:24%}.walk-copy .walk-line{max-width:98%;line-height:1.42}.final-details{width:91%}.couple-name{font-size:clamp(17px,5vw,23px)}.date-details{font-size:clamp(9px,2.7vw,12px)}.time-details{margin-top:.55em;font-size:clamp(8px,2.45vw,11px)}.address-details{gap:7px;margin-top:6px;padding-top:5px}.detail-label{margin-bottom:.18em;font-size:7px}.address-details p{font-size:clamp(7px,2.15vw,10px);line-height:1.35}.address-details button{gap:3px;min-width:46px;min-height:25px;padding:3px 0 3px 6px;font-size:7px}.music-toggle{width:28px;bottom:4%;right:2.8%}.orientation-gate{z-index:100;top:max(12px, env(safe-area-inset-top));color:#f3efe6e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;background:#080b09bd;border:1px solid #f3efe629;border-radius:999px;grid-template-columns:auto auto;align-items:center;gap:8px;padding:8px 13px;animation:4.8s forwards orientation-hint;display:grid;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 5px 20px #0003}.filing-records{bottom:max(4px, env(safe-area-inset-bottom));color:#f3efe670;font-size:7px}.orientation-gate p{letter-spacing:.12em;white-space:nowrap;margin:0;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:10px;font-weight:300}.orientation-gate>span{display:none}.rotate-phone{border:1px solid #f3efe6b8;border-radius:3px;width:13px;height:21px;animation:2.4s cubic-bezier(.65,0,.35,1) phone-turn;position:relative}.rotate-phone:before{content:"";background:#f3efe673;width:3px;height:1px;position:absolute;top:2px;left:50%;transform:translate(-50%)}.rotate-phone span{display:none}}@media (prefers-reduced-motion:reduce){.film{transition-duration:.16s}.start-title{animation:none;display:none}.start-subtitle,.start-line,.start-line span{opacity:1;animation:none}.start-line span{left:28%}}@keyframes invitation-signature-cycle{0%{opacity:0;transform:rotate(-1.1deg)translateY(3px)}12%,36%{opacity:.96;transform:rotate(-1.1deg)translateY(0)}48%,to{opacity:0;transform:rotate(-1.1deg)translateY(-3px)}}@keyframes invitation-signature-once{0%{opacity:0;transform:rotate(-1.1deg)translateY(3px)}20%,66%{opacity:.96;transform:rotate(-1.1deg)translateY(0)}to{opacity:0;transform:rotate(-1.1deg)translateY(-3px)}}@keyframes invitation-prompt-cycle{0%,48%{opacity:0;transform:translateY(3px)}60%,84%{opacity:1;transform:translateY(0)}96%,to{opacity:0;transform:translateY(-2px)}}@keyframes invitation-scan{0%,16%{opacity:0;left:-44%}29%{opacity:1}70%{opacity:1}84%,to{opacity:0;left:100%}}@keyframes initial-prompt-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes opening-title-reveal{0%{opacity:0}to{opacity:1}}@keyframes word-arrive{0%{opacity:0;filter:blur(1.4px);transform:translate(clamp(14px,1.6vw,30px))scale(.985)}55%{opacity:.72}to{opacity:1;filter:blur();transform:translate(0)scale(1)}}@keyframes character-arrive{0%{opacity:0;filter:blur(3px);transform:translateY(6px)scale(.97)}58%{opacity:.76}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes copy-soft-fade{0%{opacity:1}to{opacity:0}}@keyframes caption-wipe-in{0%{opacity:0;filter:blur(1.8px);transform:translateY(10px)}to{opacity:1;filter:blur();transform:translate(0,0)}}@keyframes caption-soft-out{0%{opacity:1;filter:blur();transform:translate(0,0)}to{opacity:0;filter:blur(1px);transform:translateY(-28px)}}@keyframes caption-en-in{0%{opacity:0;filter:blur(1.8px);transform:translateY(10px)scaleX(1.06)scaleY(.9)}to{opacity:1;filter:blur();transform:translate(0,0)scaleX(1.06)scaleY(.9)}}@keyframes caption-en-out{0%{opacity:1;filter:blur();transform:translate(0,0)scaleX(1.06)scaleY(.9)}to{opacity:0;filter:blur(1px);transform:translateY(-28px)scaleX(1.06)scaleY(.9)}}@keyframes walk-line-fade{0%{opacity:1;filter:blur();transform:translateY(0)}42%{opacity:.82}76%{opacity:.38}to{opacity:0;filter:blur(1.1px);transform:translateY(-6px)}}@keyframes music-breathe{0%,to{border-color:#fffffa4d;box-shadow:0 3px 14px #00000029}50%{border-color:#fffffaa8;box-shadow:0 3px 18px #fffff524}}@keyframes phone-turn{0%,18%{transform:rotate(0)}46%,72%{transform:rotate(90deg)}to{transform:rotate(180deg)}}@keyframes orientation-hint{0%{opacity:0;transform:translate(-50%,-6px)}12%,72%{opacity:1;transform:translate(-50%)}to{opacity:0;visibility:hidden;transform:translate(-50%,-4px)}}@media (max-width:700px) and (hover:none){.final-details{width:84%}.address-details{gap:10px}.address-details button{min-width:64px;padding-left:10px}.walk-copy{width:94%}}@media (prefers-reduced-motion:reduce){.word-flow span,.character-flow span{filter:none;animation-duration:.01ms;transform:none}.detail-block{transition-duration:.01ms}}
