:root{font-family:Songti SC,STSong,"Noto Serif CJK SC",Georgia,serif;color:#681f1e;background:#d9d4cd;font-synthesis:none}*{box-sizing:border-box}html,body,#root{width:100%;max-width:100%;min-height:100%;overflow-x:hidden;scrollbar-width:none}html::-webkit-scrollbar,body::-webkit-scrollbar,#root::-webkit-scrollbar{display:none;width:0;height:0}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased;background:#d9d4cd}.button,button{font:inherit}.invitation-page{width:100%;min-height:100vh;padding:24px 14px 40px}.opening-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:max(24px,env(safe-area-inset-top)) 24px max(28px,env(safe-area-inset-bottom));background:#eee9e1;perspective:1000px}.opening-screen.opening{pointer-events:none}.cover-envelope{position:relative;width:min(72vw,300px);aspect-ratio:2 / 3;overflow:visible;background:#f7f3ec;box-shadow:0 22px 58px #422b2533;animation:cover-enter .8s cubic-bezier(.22,.72,.24,1) both}.cover-envelope-base{position:relative;z-index:1;display:block;width:100%;height:auto}.envelope-letter-reveal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;overflow:visible;opacity:0;pointer-events:none;transform:translateY(30%) scale(.18);transform-origin:50% 58%;backface-visibility:hidden;will-change:transform,opacity}.envelope-letter-reveal img{display:block;width:100%;height:auto}.cover-personalization{position:absolute;inset:12.5% 8% auto;z-index:2;height:38%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.cover-kicker{margin:0 0 14px;color:#a87872;font-family:Georgia,Times New Roman,serif;font-size:8px;letter-spacing:.32em;text-indent:.32em}.cover-guest{margin:0 0 15px;color:#762b28;font-size:14px;letter-spacing:.12em}.cover-personalization h2,.cover-personalization h3{margin:0;font-weight:400}.cover-personalization h2{font-size:15px;letter-spacing:.16em;text-indent:.16em}.cover-personalization h3{margin-top:9px;font-size:21px;letter-spacing:.1em;text-indent:.1em}.cover-theme{margin:15px 0 0;color:#8e514c;font-size:10px;letter-spacing:.18em;text-indent:.18em}.envelope-panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;opacity:0;pointer-events:none;backface-visibility:hidden;will-change:transform,opacity}img.envelope-panel,.envelope-panel img{display:block;width:100%;height:auto}.envelope-panel--top{z-index:4;transform-origin:50% 78%}.envelope-upper-flap,.envelope-upper-wax{position:absolute;top:0;right:0;bottom:0;left:0}.envelope-upper-flap{clip-path:polygon(0 0,100% 0,100% 53%,68% 69%,58% 72%,42% 72%,32% 69%,0 53%)}.envelope-upper-wax{clip-path:ellipse(10.5% 7.7% at 50% 78%)}.envelope-panel--bottom{z-index:3;transform-origin:50% 78%}.envelope-lower-paper{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;clip-path:polygon(50% 58%,100% 88%,100% 100%,0 100%,0 88%)}.envelope-lower-paper img{transform:translateY(38%)}.envelope-lower-details{position:absolute;top:0;right:0;bottom:0;left:0;clip-path:inset(86% 0 0 0)}.opening-screen.opening .cover-personalization{z-index:5;animation:personalization-top-away 5s linear forwards}.opening-screen.opening .cover-envelope{animation:none;background:transparent;box-shadow:none}.opening-screen.opening .cover-envelope-base{animation:envelope-base-release .22s ease-out forwards}.opening-screen.opening .envelope-letter-reveal{animation:envelope-letter-grow 4.6s cubic-bezier(.2,.78,.2,1) .4s forwards}.opening-screen.opening .envelope-panel--top{animation:envelope-top-away 5s linear forwards}.opening-screen.opening .envelope-panel--bottom{animation:envelope-bottom-away 5s linear forwards}.opening-screen.opening>button{animation:opening-button-away .26s ease forwards}.opening-screen>button{min-width:190px;min-height:46px;margin-top:24px;padding:11px 20px;border:1px solid #762b28;border-radius:2px;color:#fffaf2;background:#762b28;font:inherit;font-size:14px;letter-spacing:.14em;text-indent:.14em;cursor:pointer}.music-toggle{position:fixed;top:max(14px,env(safe-area-inset-top));right:14px;z-index:20;min-width:64px;min-height:36px;padding:7px 12px;border:1px solid rgba(104,31,30,.32);border-radius:999px;color:#762b28;background:#f7f3ece6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font:inherit;font-size:11px;letter-spacing:.08em;cursor:pointer;box-shadow:0 6px 22px #492e271f}.music-toggle.playing{color:#fffaf2;background:#762b28e6}.invitation-card{width:min(100%,680px);margin-inline:auto;overflow:clip;position:relative;background:#f7f3ec;box-shadow:0 20px 70px #41302729;animation:invitation-enter .7s ease-out both}.brand-name,.section-kicker{margin:0;font-family:Georgia,Times New Roman,serif;font-size:11px;letter-spacing:.3em}.poster-frame{margin:0;background:#f5f0e8}.poster-frame img{display:block;width:100%;height:auto}.invitation-message{padding:66px clamp(24px,8vw,64px) 60px;text-align:center}.guest-name{margin:0 0 30px;color:#7b3c39;font-size:15px;letter-spacing:.12em}.invitation-message h1{margin:14px 0 18px;font-size:clamp(22px,6vw,31px);font-weight:400;line-height:1.55;letter-spacing:.08em}.theme-line{margin:0;color:#8e514c;font-size:16px;letter-spacing:.18em;text-indent:.18em}.message-copy{max-width:460px;margin:28px auto 0;color:#725954;font-size:14px;line-height:2;letter-spacing:.06em}.event-details{padding:54px clamp(24px,8vw,64px) 50px;text-align:center;border-top:1px solid rgba(104,31,30,.13)}.section-kicker{color:#a87872}.event-details h2{margin:12px 0 34px;font-size:25px;font-weight:400;letter-spacing:.22em;text-indent:.22em}.details-list{margin:0}.details-list>div{display:grid;grid-template-columns:40px 1fr;gap:14px;padding:22px 0;text-align:left;border-top:1px solid rgba(104,31,30,.15)}.details-list>div:last-child{border-bottom:1px solid rgba(104,31,30,.15)}.details-list dt{padding-top:2px;color:#9a6a64;font-size:12px;letter-spacing:.16em}.details-list dd{margin:0}.details-list strong,.details-list span{display:block}.details-list strong{font-size:16px;font-weight:500;line-height:1.65}.details-list span{margin-top:5px;color:#755450;font-size:13px;line-height:1.7}.details-list>div:last-child span{font-size:12px;letter-spacing:-.01em}.location-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.location-heading strong{flex:1}.location-heading a{flex:none;margin-top:1px;padding:4px 8px;border:1px solid rgba(118,43,40,.35);border-radius:999px;color:#762b28;font-size:11px;line-height:1.35;text-decoration:none;letter-spacing:.04em}.location-heading a:focus-visible{outline:3px solid rgba(118,43,40,.2);outline-offset:3px}.action-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:32px}.action-row button{min-height:48px;padding:12px 16px;border:1px solid #762b28;border-radius:2px;color:#fffaf2;background:#762b28;font-size:14px;letter-spacing:.08em;cursor:pointer;transition:transform .16s ease,background-color .16s ease}.action-row button.secondary{color:#762b28;background:transparent}.action-row button:active{transform:scale(.98)}.action-row button:focus-visible{outline:3px solid rgba(118,43,40,.24);outline-offset:3px}.wechat-tip{margin:17px 0 0;color:#a17f7a;font-size:11px;letter-spacing:.05em}footer{padding:40px 24px 46px;text-align:center;color:#8b5c57;border-top:1px solid rgba(104,31,30,.1)}footer p{margin:0 0 12px;font-size:20px;letter-spacing:.32em;text-indent:.32em}footer span{display:block;font-size:11px;letter-spacing:.16em}footer small{display:block;margin-top:22px;color:#a28480;font-size:9px;line-height:1.7;letter-spacing:.02em}footer small a{color:inherit}.notice{position:fixed;left:50%;bottom:30px;z-index:10;padding:11px 18px;border-radius:999px;color:#fff;background:#371f1de6;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,sans-serif;font-size:13px;opacity:0;pointer-events:none;transform:translate(-50%,12px);transition:opacity .18s ease,transform .18s ease}.notice.visible{opacity:1;transform:translate(-50%)}@keyframes invitation-enter{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes cover-enter{0%{opacity:0;transform:translateY(24px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes envelope-base-release{0%,45%{opacity:1}to{opacity:0}}@keyframes envelope-letter-grow{0%{opacity:0;transform:translateY(30%) scale(.18)}35%{opacity:.42}70%{opacity:.85}90%{opacity:.96}to{opacity:1;transform:translateY(12%) scale(.96)}}@keyframes envelope-top-away{0%{opacity:1;transform:translateY(0) rotateX(0)}to{opacity:0;transform:translateY(-58%) rotateX(-4deg)}}@keyframes envelope-bottom-away{0%{opacity:1;transform:translateY(0) rotateX(0)}to{opacity:0;transform:translateY(58%) rotateX(4deg)}}@keyframes personalization-top-away{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-108%)}}@keyframes opening-button-away{to{opacity:0;transform:translateY(10px)}}@media(max-width:520px){:root,body{background:#f7f3ec}.invitation-page{width:100vw;padding:0}.invitation-card{width:100vw;max-width:100vw;margin:0;box-shadow:none}.invitation-message h1{font-size:20px;letter-spacing:.05em;text-indent:.05em}.action-row{grid-template-columns:1fr}.event-details{padding-bottom:calc(44px + env(safe-area-inset-bottom))}}@media(max-height:720px){.opening-screen{padding-top:18px;padding-bottom:18px}.cover-envelope{width:min(57vw,235px)}.cover-personalization{inset:12.5% 8% auto;height:38%}.cover-kicker{margin-bottom:8px;font-size:6px}.cover-guest{margin-bottom:9px;font-size:11px}.cover-personalization h2{font-size:12px}.cover-personalization h3{margin-top:5px;font-size:17px}.cover-theme{margin-top:9px;font-size:8px}.opening-screen>button{margin-top:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
