.sj{--sj-red:var(--color-wedding-red);--sj-red-deep:var(--color-wedding-red-deep);--sj-gold:var(--color-wedding-gold);--sj-gold-light:var(--color-wedding-gold-light);--sj-gold-pale:var(--color-wedding-gold-pale);--sj-cream:var(--color-wedding-cream);--sj-ink:var(--color-wedding-ink);-webkit-tap-highlight-color:transparent;font-size:15px;line-height:1.65;overflow-x:clip}.sj img{border:0;width:100%;height:auto;display:block}.sj .num{font-variant-numeric:tabular-nums}.sj .page{max-width:480px;margin:0 auto;position:relative}.sj .io{opacity:0;transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1);transform:translateY(24px)}.sj .io-l{transform:translate(-24px)}.sj .io-r{transform:translate(24px)}.sj .io-up{transform:translateY(-16px)}.sj .io.in{opacity:1;transform:none}.sj .d1{transition-delay:.12s}.sj .d2{transition-delay:.3s}.sj .d3{transition-delay:.45s}.sj .hero{min-height:100svh;min-height:var(--app-vh,100svh);background:repeating-linear-gradient(32deg, #a519190a 0 1px, transparent 1px 62px), repeating-linear-gradient(-18deg, #d4af370f 0 1px, transparent 1px 90px), var(--sj-cream);flex-direction:column;justify-content:center;padding:84px 20px 44px;display:flex;position:relative;overflow:hidden}.sj .hero-head{text-align:center}.sj .kicker{letter-spacing:.42em;color:#760909b3;text-indent:.42em;font-size:11px}.sj .hero-title{color:var(--sj-red);letter-spacing:.12em;margin:8px 0 4px;font-size:44px;font-weight:400;line-height:1.3}.sj .hero-sub{color:#2a141099;letter-spacing:.18em;font-size:12.5px}.sj .pass{filter:drop-shadow(0 20px 26px #76090947);align-items:stretch;margin:30px 0 16px;display:flex;position:relative}.sj .pass:before,.sj .pass:after{content:"";background:var(--sj-cream);z-index:2;border-radius:50%;width:14px;height:14px;position:absolute;left:calc(100% - 93px)}.sj .pass:before{top:-7px}.sj .pass:after{bottom:-7px}.sj .pass-main{min-width:0;color:var(--sj-gold-pale);background:linear-gradient(150deg, var(--sj-red), var(--sj-red-deep));border:1px solid #f3d98ba6;border-right:0;border-radius:12px 0 0 12px;flex:auto;padding:15px 13px 12px;position:relative}.sj .pass-main:before{content:"";pointer-events:none;border:1px solid #f3d98b47;border-radius:8px;position:absolute;inset:5px}.sj .pm-head{justify-content:space-between;align-items:baseline;display:flex}.sj .pm-flight{letter-spacing:.14em;font-size:11px}.sj .pm-flight b{font-variant-numeric:tabular-nums;letter-spacing:.08em;font-family:Georgia,Songti SC,serif;font-size:17px}.sj .pm-cls{opacity:.8;letter-spacing:.1em;font-size:10px}.sj .pm-grid{align-items:flex-start;gap:11px;margin:13px 0 10px;display:flex}.sj .pm-photo{background:#76090959;border:1px solid #f3d98b99;flex:0 0 30%;margin:0;padding:3px}.sj .pm-photo figcaption{text-align:center;letter-spacing:.3em;text-indent:.3em;opacity:.85;padding-top:4px;font-size:9px}.sj .pm-info{flex-direction:column;flex:auto;gap:9px;min-width:0;display:flex}.sj .pm-field span{letter-spacing:.16em;opacity:.72;font-size:9px;display:block}.sj .pm-field b{letter-spacing:.04em;white-space:nowrap;font-size:clamp(12px,3.4vw,16px);font-weight:600}.sj .pm-field .font-maobi{letter-spacing:.1em;font-size:21px;font-weight:400}.sj .pm-route{align-items:center;gap:6px;margin:1px 0;display:flex}.sj .pm-route b{letter-spacing:.02em;white-space:nowrap;font-family:Georgia,Times New Roman,serif;font-size:clamp(10px,3vw,16px)}.sj .pm-route i{border-top:1px dashed #f3d98b8c;flex:1;min-width:14px;font-style:normal;position:relative}.sj .pm-route i:after{content:"✈︎";color:var(--sj-gold-light);padding:0 3px;font-size:12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-58%)}.sj .pm-row{gap:18px;display:flex}.sj .pm-note{opacity:.78;letter-spacing:.06em;text-align:center;border-top:1px dashed #f3d98b59;padding-top:8px;font-size:10.5px}.sj .pass-stub{color:var(--sj-gold-pale);cursor:pointer;-webkit-user-select:none;user-select:none;background:linear-gradient(150deg,#9c1717,#6d0808);border:1px solid #f3d98ba6;border-left:2px dashed #f3d98b8c;border-radius:0 12px 12px 0;flex-direction:column;flex:0 0 86px;justify-content:space-between;align-items:center;padding:16px 8px 14px;transition:transform .55s cubic-bezier(.5,0,.75,.5),opacity .45s .12s;display:flex}.sj .pass:not(.torn) .pass-stub{animation:2.6s ease-in-out infinite sj-tug}@keyframes sj-tug{0%,78%,to{transform:translate(0)}86%{transform:translate(4px)rotate(.4deg)}93%{transform:translate(1px)}}.sj .ps-txt{writing-mode:vertical-rl;letter-spacing:.22em;opacity:.95;font-size:12px}.sj .ps-txt2{writing-mode:vertical-rl;letter-spacing:.2em;opacity:.6;margin-top:6px;font-size:10px}.sj .barcode{opacity:.92;background:repeating-linear-gradient(90deg, var(--sj-gold-pale) 0 2px, transparent 2px 5px), repeating-linear-gradient(90deg, var(--sj-gold-pale) 0 1px, transparent 1px 8px);transform-origin:0;width:54px;height:46px;margin-top:10px;transition:transform .6s .9s;transform:scaleX(0)}.sj .pass.in .barcode{transform:scaleX(1)}.sj .pass.torn .pass-stub{opacity:0;pointer-events:none;transform:translate(120%)rotate(8deg)}.sj .pass.torn .pass-main{animation:.5s .12s sj-rebound}@keyframes sj-rebound{0%{transform:none}35%{transform:translate(-6px)rotate(-.5deg)}to{transform:none}}.sj .tear-hint{text-align:center;color:#2a14108c;letter-spacing:.1em;min-height:44px;font-size:12px;transition:opacity .4s}.sj .tear-hint .arr{color:var(--sj-red);animation:1.3s ease-in-out infinite sj-nudge;display:inline-block}.sj .tear-hint.off{opacity:0}@keyframes sj-nudge{50%{transform:translate(7px)}}.sj .station{min-height:100svh;min-height:var(--app-vh,100svh);background:var(--sj-cream);padding:8px 0 84px;position:relative}.sj .year-pin{z-index:0;pointer-events:none;height:0;position:sticky;top:12px}.sj .year-pin span{text-align:center;letter-spacing:-.02em;color:#a519191a;font-variant-numeric:tabular-nums;font-family:Georgia,Times New Roman,serif;font-size:clamp(110px,38vw,168px);font-weight:700;line-height:.92;display:block}@supports (-webkit-text-stroke:2px red){.sj .year-pin span{color:#0000;-webkit-text-stroke:2px #a5191929}}.sj .st-body{z-index:1;padding:64px 24px 0;position:relative}.sj .route{z-index:-1;width:4px;height:100%;margin-left:-2px;position:absolute;top:0;left:50%}.sj .rt-dash{fill:none;stroke:#d4af37bf;stroke-width:2px;stroke-dasharray:.014 .01}.sj .rt-cover{fill:none;stroke:var(--sj-cream);stroke-width:4px;stroke-dasharray:1 1;stroke-dashoffset:0;transition:stroke-dashoffset 1.9s .15s}.sj .route.in .rt-cover{stroke-dashoffset:-1px}.sj .st-head{text-align:center}.sj .st-en{letter-spacing:.36em;text-indent:.36em;color:#76090999;font-size:10px}.sj .st-head h2{color:var(--sj-red);letter-spacing:.18em;background:var(--sj-cream);margin-top:4px;padding:0 14px;font-size:33px;font-weight:400;display:inline-block}.sj .lframe{border:1px solid var(--sj-gold);background:#fff;width:62%;margin:30px auto 0 0;padding:6px 6px 4px;position:relative;box-shadow:0 16px 32px -18px #2a141073}.sj .lframe:before,.sj .lframe:after{content:"";border-style:solid;border-color:var(--sj-red);width:18px;height:18px;position:absolute}.sj .lframe:before{border-width:2px 0 0 2px;top:-5px;left:-5px}.sj .lframe:after{border-width:0 2px 2px 0;bottom:-5px;right:-5px}.sj .lframe figcaption{color:#2a141099;text-align:center;letter-spacing:.12em;padding:6px 0 3px;font-size:10.5px}.sj .lframe.right{margin:30px 0 0 auto}.sj .st-line{text-align:center;color:#2a1410b8;letter-spacing:.04em;background:var(--sj-cream);margin:22px auto 0;padding:0 10px;font-size:13px;line-height:2.1;display:block}.sj .dot{cursor:pointer;background:0 0;border:0;border-radius:50%;width:48px;height:48px;margin:26px auto 30px;display:block;position:relative}.sj .dot-core{background:var(--sj-gold);width:16px;height:16px;box-shadow:0 0 0 4px var(--sj-cream), 0 0 0 5px #d4af37b3;border-radius:50%;margin:-8px 0 0 -8px;position:absolute;top:50%;left:50%}.sj .station:not(.stamped) .dot-core{animation:2s ease-out infinite sj-pulse}@keyframes sj-pulse{0%{box-shadow:0 0 0 4px var(--sj-cream), 0 0 0 5px #d4af37b3, 0 0 0 5px #d4af3773}70%{box-shadow:0 0 0 4px var(--sj-cream), 0 0 0 5px #d4af37b3, 0 0 0 18px #d4af3700}to{box-shadow:0 0 0 4px var(--sj-cream), 0 0 0 5px #d4af37b3, 0 0 0 18px #d4af3700}}.sj .station:not(.stamped) .dot-tip.t1{animation:2s ease-in-out infinite sj-breath}@keyframes sj-breath{50%{opacity:.45}}.sj .dot:after{content:"";border:2px solid var(--sj-gold);opacity:0;border-radius:50%;position:absolute;inset:5px;transform:scale(.5)}.sj .stamped .dot:after{animation:.9s cubic-bezier(.2,.9,.3,1) forwards sj-ring}@keyframes sj-ring{0%{opacity:0;transform:scale(.5)}45%{opacity:1}to{opacity:.85;transform:scale(1)}}.sj .dot-tip{letter-spacing:.1em;color:#a51919cc;white-space:nowrap;font-size:11px;position:absolute;top:104%;left:50%;transform:translate(-50%)}.sj .dot .t2,.sj .stamped .dot .t1{display:none}.sj .stamped .dot .t2{display:inline}.sj .hticket{width:82%;color:var(--sj-gold-pale);background:linear-gradient(transparent 0 36%, #f3d98b17 36% 64%, transparent 64%), linear-gradient(160deg, var(--sj-red), var(--sj-red-deep));border-radius:4px;margin:0 0 0 auto;padding:12px 13px 11px;font-family:Songti SC,STSong,SimSun,serif;position:relative;box-shadow:0 14px 28px -16px #760909a6}.sj .hticket:before{content:"";pointer-events:none;border:1px solid #f3d98b52;border-radius:2px;position:absolute;inset:4px}.sj .ht-no{letter-spacing:.08em;opacity:.9;font-variant-numeric:tabular-nums;justify-content:space-between;font-size:10.5px;display:flex}.sj .ht-route{justify-content:center;align-items:center;gap:12px;margin:9px 0 3px;display:flex}.sj .ht-route b{letter-spacing:.14em;font-size:23px;font-weight:600}.sj .ht-zhi{text-align:center;border:1px solid #f3d98b99;border-radius:50%;flex:none;width:24px;height:24px;font-size:13px;line-height:22px}.sj .ht-sub{text-align:center;letter-spacing:.1em;opacity:.78;font-size:10px}.sj .ht-lines{opacity:.95;text-align:center;letter-spacing:.04em;border-top:1px dashed #f3d98b4d;margin-top:9px;padding-top:8px;font-size:12px;line-height:1.8}.sj .stamp{z-index:3;color:var(--sj-gold-pale);letter-spacing:.24em;text-indent:.24em;opacity:0;background:#7609098c;border:2px solid #f3d98bf2;border-radius:8px;padding:3px 8px;font-size:12px;transition:transform .45s cubic-bezier(.2,1.8,.4,1) 50ms,opacity .25s 50ms;position:absolute;top:-12px;right:6px;transform:rotate(12deg)scale(1.35)}.sj .stamped .stamp{opacity:1;transform:rotate(12deg)scale(1)}.sj .duo{gap:12px;margin-top:30px;display:flex}.sj .duo figure{border:1px solid var(--sj-gold);background:#fff;flex:1;margin:0;padding:5px 5px 4px;box-shadow:0 14px 26px -18px #2a141066}.sj .duo figure:last-child{margin-top:22px}.sj .duo figcaption{color:#2a141094;text-align:center;letter-spacing:.1em;padding:5px 0 2px;font-size:10px}.sj .lugg{align-items:flex-start;gap:14px;margin:28px 4px 0;display:flex}.sj .lug{border:1px solid var(--sj-gold);background:#fff;flex:1;margin:0;padding:5px 5px 4px;position:relative;transform:rotate(-2.5deg);box-shadow:0 16px 28px -18px #2a14106b}.sj .lug:last-child{margin-top:20px;transform:rotate(2deg)}.sj .lug figcaption{color:#2a141094;text-align:center;letter-spacing:.1em;padding:5px 0 2px;font-size:10px}.sj .lug-tag{z-index:2;background:linear-gradient(150deg, var(--sj-red), var(--sj-red-deep));color:var(--sj-gold-pale);letter-spacing:.18em;text-indent:.18em;white-space:nowrap;border:1px solid #f3d98b99;border-radius:3px;padding:2px 8px;font-size:9px;position:absolute;top:-10px;left:50%;transform:translate(-50%)rotate(-1deg)}.sj .lug-tag:before{content:"";background:var(--sj-cream);border:1px solid #f3d98bb3;border-radius:50%;width:4px;height:4px;margin-left:-2px;position:absolute;top:-4px;left:50%}.sj .window{background:var(--sj-cream);margin:30px -24px 0}.sj .win-bar{background:linear-gradient(180deg, #41281c, var(--sj-ink));height:12px;position:relative}.sj .win-bar:after{content:"";background:#d4af3773;height:1px;position:absolute;top:5px;left:0;right:0}.sj .window img{background:var(--sj-ink)}.sj .window figcaption{color:#2a14108c;text-align:center;letter-spacing:.1em;padding:9px 24px 0;font-size:11px}.sj .gal-wrap{margin-top:38px}.sj .gal-head{justify-content:space-between;align-items:baseline;padding-bottom:10px;display:flex}.sj .gal-title{letter-spacing:.22em;color:var(--sj-red);font-size:16px}.sj .gal-cue{color:#2a141080;letter-spacing:.14em;font-size:10.5px;animation:2.4s ease-in-out infinite sj-slide}@keyframes sj-slide{0%,to{transform:translate(0)}50%{transform:translate(-5px)}}.sj .gallery{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:12px;margin-right:-24px;padding:6px 24px 16px 0;display:flex;overflow-x:auto}.sj .gallery::-webkit-scrollbar{display:none}.sj .cell{scroll-snap-align:center;flex:none;margin:0}.sj .cell img{aspect-ratio:1066/1600;box-sizing:content-box;border:1px solid var(--sj-gold);background:#fff;width:auto;height:58svh;padding:4px;box-shadow:0 12px 24px -16px #2a141066}.sj .cell figcaption{color:#2a14109e;text-align:center;letter-spacing:.1em;font-variant-numeric:tabular-nums;padding-top:8px;font-size:11px}.sj .seals{justify-content:center;gap:12px;margin:38px 0 0;display:flex}.sj .seal{width:clamp(88px,27vw,104px);height:clamp(88px,27vw,104px);color:var(--sj-red);box-shadow:inset 0 0 0 3px var(--sj-cream), inset 0 0 0 4px #a5191973;background:#a519190a;border:2px solid #a51919d9;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex;transform:rotate(-5deg)}.sj .seal:nth-child(2){transform:rotate(3deg)}.sj .seal:nth-child(3){transform:rotate(-2deg)}.sj .seal em{letter-spacing:.22em;text-indent:.22em;opacity:.85;font-size:10px;font-style:normal}.sj .seal b{font-variant-numeric:tabular-nums;font-family:Georgia,Times New Roman,serif;font-size:27px;line-height:1.05}.sj .seal span{letter-spacing:.3em;text-indent:.3em;opacity:.85;font-size:10px}.sj .st-quote{text-align:center;color:#2a1410b8;letter-spacing:.04em;background:var(--sj-cream);margin:36px auto 0;padding:0 10px;font-size:13px;line-height:2.1;display:block}.sj .st-sparse{padding-top:0}.sj .solo{width:70%;margin:0 auto;padding-top:max(18svh,120px)}.sj .solo .ph{border:1px solid var(--sj-gold);background:#fff;padding:8px 8px 6px;box-shadow:0 34px 60px -32px #2a14108c}.sj .solo figcaption{color:#2a141099;text-align:center;letter-spacing:.16em;padding-top:10px;font-size:11px}.sj .flip-wrap{perspective:900px;width:84%;margin:34px auto 0;padding-bottom:max(14svh,96px)}.sj .flip{cursor:pointer;outline-offset:4px;position:relative}.sj .flip-inner{transform-style:preserve-3d;transition:transform .7s cubic-bezier(.45,.15,.2,1);position:relative}.sj .flip:not(.flipped) .flip-inner{animation:2.8s ease-in-out infinite sj-sway}@keyframes sj-sway{0%,to{transform:rotateY(0)}50%{transform:rotateY(-7deg)}}.sj .flip.flipped .flip-inner{transform:rotateY(180deg)}.sj .face{backface-visibility:hidden;text-align:center;min-height:132px;color:var(--sj-gold-pale);border-radius:6px;flex-direction:column;justify-content:center;align-items:center;padding:18px 16px;font-family:Songti SC,STSong,SimSun,serif;display:flex}.sj .face.front{background:linear-gradient(160deg, var(--sj-red), var(--sj-red-deep));position:relative;box-shadow:0 16px 30px -16px #76090999}.sj .face.back{background:linear-gradient(160deg,#7d0e0e,#560505);position:absolute;inset:0;transform:rotateY(180deg)}.sj .face .big{letter-spacing:.5em;text-indent:.5em;font-size:22px}.sj .face .mid{letter-spacing:.2em;opacity:.9;margin-top:5px;font-size:12px}.sj .face .quote{opacity:.92;border-top:1px dashed #f3d98b59;margin-top:10px;padding-top:8px;font-size:12px;line-height:1.9}.sj .face .date{font-variant-numeric:tabular-nums;letter-spacing:.1em;font-family:Georgia,Songti SC,serif;font-size:25px}@supports not (transform-style:preserve-3d){.sj .flip-inner{transition:none}.sj .flip.flipped .flip-inner{transform:none}.sj .face{transition:opacity .45s}.sj .face.back{opacity:0;transform:none}.sj .flip.flipped .face.back{opacity:1}.sj .flip.flipped .face.front{opacity:0}}.sj .flip-tip{text-align:center;color:#2a141080;letter-spacing:.16em;padding-top:12px;font-size:11px}.sj .terminal{min-height:100svh;min-height:var(--app-vh,100svh);background:linear-gradient(180deg, var(--sj-cream), #f5efe1 52%, var(--sj-cream));padding:90px 24px 0;position:relative;overflow:hidden}.sj .tm-head{text-align:center}.sj .tm-title{color:var(--sj-red);letter-spacing:.1em;margin:6px 0 8px;font-size:46px;font-weight:400}.sj .tm-quote{color:#2a14109e;letter-spacing:.08em;font-size:12.5px}.sj .board{perspective:700px;margin:32px 0 0}.sj .flap{color:var(--sj-gold-light);transform-origin:50% 0;opacity:0;background:linear-gradient(#41281c 0 50%,#22100a 50% 100%);border:1px solid #d4af3738;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:8px;padding:13px 17px;transition:transform .55s cubic-bezier(.34,1.35,.45,1),opacity .35s;display:flex;position:relative;transform:rotateX(-92deg)}.sj .flap:after{content:"";background:#0000008c;height:1px;position:absolute;top:50%;left:0;right:0}.sj .flap span{letter-spacing:.22em;opacity:.72;font-size:10px}.sj .flap b{letter-spacing:.12em;font-variant-numeric:tabular-nums;font-family:Georgia,Songti SC,serif;font-size:18px}.sj .board.in .flap{opacity:1;transform:none}.sj .board.in .flap:nth-child(2){transition-delay:.18s}.sj .board.in .flap:nth-child(3){transition-delay:.36s}.sj .count{text-align:center;color:var(--sj-ink);margin:44px 0 0}.sj .count .lbl{letter-spacing:.4em;text-indent:.4em;color:#2a14109e;font-size:12px;display:block}.sj .count b{color:var(--sj-red);font-variant-numeric:tabular-nums;font-family:Georgia,Times New Roman,serif;font-size:88px;line-height:1.08;display:block}.sj .count .unit{letter-spacing:.5em;text-indent:.5em;color:#2a14109e;font-size:13px;display:block}.sj .btn{background:linear-gradient(150deg, var(--sj-red), var(--sj-red-deep));width:80%;min-height:48px;color:var(--sj-gold-pale);letter-spacing:.26em;text-indent:.26em;border-radius:999px;justify-content:center;align-items:center;margin:30px auto 0;font-size:14px;text-decoration:none;display:flex;box-shadow:0 16px 30px -14px #76090999}.sj .btn:active{transform:translateY(1px)}.sj .full{margin:46px -24px 0}.sj .full figcaption{color:#2a14108c;text-align:center;letter-spacing:.12em;padding:10px 24px 0;font-size:11px}.sj .sign{text-align:center;color:var(--sj-red);letter-spacing:.1em;margin-top:24px;font-size:24px}.sj .invite{text-align:center;color:#2a14107a;letter-spacing:.18em;border-top:1px dashed #a519194d;margin:42px -24px 0;padding:24px 24px 26px;font-size:11px}@media (prefers-reduced-motion:reduce){.sj .io,.sj .pass,.sj .flap,.sj .barcode{transition-duration:.01ms!important;animation-duration:.01ms!important}.sj .io{opacity:1!important;transform:none!important}.sj .rt-cover{display:none}.sj .flap{opacity:1;transform:none}.sj .barcode{transform:scaleX(1)}.sj .dot-core,.sj .dot-tip.t1,.sj .flip-inner,.sj .gal-cue,.sj .pass-stub{animation:none!important}}
