@font-face{font-family:WeddingHand;src:url(/assets/handwriting.woff2) format("woff2");font-display:swap}:root{font-family:Songti TC,"Noto Serif TC",serif;color:#f8f4e9;background:#303b30;font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:280px}button,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.35}button:focus-visible,input:focus-visible{outline:2px solid #fff6d7;outline-offset:5px}.experience{height:100svh;min-height:480px;isolation:isolate;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center}.painting,.atmosphere{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2}.painting{background:url(/assets/corot.jpg) 43% 50%/cover no-repeat;will-change:transform}.atmosphere{z-index:-1;background:#1721183d;box-shadow:inset 0 0 150px 35px #18221966}.masthead{width:100%;display:flex;justify-content:space-between;gap:20px;padding:max(25px,env(safe-area-inset-top)) 30px 0;font:10px/1.6 Georgia,serif;letter-spacing:2.4px;opacity:.87;text-shadow:0 1px 8px #000}.scene{width:100%;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;perspective:1600px;padding:20px 0 10px}.card-stage{position:relative;width:min(77vw,430px,47svh);aspect-ratio:1500/2102;perspective:1400px;transform:translateY(5px)}.gate{position:absolute;top:0;bottom:0;width:50%;overflow:hidden;transform-style:preserve-3d;will-change:transform,opacity;z-index:5;backface-visibility:visible;border:1px solid #f3f4eb80;box-shadow:0 5px 14px #17241925}.gate.left{left:0;transform-origin:left center}.gate.right{right:0;transform-origin:right center}.gate-glass{position:absolute;top:0;right:0;bottom:0;left:0;background:#eae9dd57;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.gate-glass:after,.paper-grain:after,.cotton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(/assets/display/front.webp);background-size:1200%;background-position:30% 70%;opacity:.09;mix-blend-mode:multiply;pointer-events:none}.foil{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.gate .foil{width:200%;max-width:none;filter:drop-shadow(0 .45px .35px #fff9)}.gate.right .foil{left:-100%}.center-seam{position:absolute;top:0;bottom:0;left:50%;width:1px;background:#f4f3e3aa;z-index:6;box-shadow:1px 0 2px #23302044}.vellum-sheet{position:absolute;top:2.5%;right:2.5%;bottom:2.5%;left:2.5%;z-index:3;background:#f4f2e76e;border:1px solid #faf9ec88;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);box-shadow:0 12px 30px #17271930;pointer-events:none}.paper-grain{position:absolute;top:0;right:0;bottom:0;left:0}.signatures{position:absolute;top:29%;width:100%;height:auto;transform:rotate(-5deg)}.invitation{position:absolute;top:0;right:0;bottom:0;left:0;transform-style:preserve-3d;will-change:transform;z-index:2}.card-face{position:absolute;top:0;right:0;bottom:0;left:0;background:#f8f6ef;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 18px 40px #101b164d,2px 0 #dedcd2,3px 0 #b9b9ac;overflow:hidden}.card-face img{width:100%;height:100%;display:block}.back{transform:rotateY(180deg)}.cotton{position:absolute;top:0;right:0;bottom:0;left:0;background:#fcfaf5}.cotton:after{opacity:.18;background-size:900%}.back .foil{filter:drop-shadow(0 1px 0 #fff) drop-shadow(0 -.5px .25px #6c77722e)}.ripple{position:absolute;width:100%;height:75%;left:0;top:12.5%;border:1px solid #fff9;border-radius:50%;box-shadow:0 0 18px 8px #ffffff40,inset 0 0 25px 4px #fff3;pointer-events:none}.controls{width:min(330px,80vw);text-align:center;padding:8px 0 max(23px,env(safe-area-inset-bottom));z-index:10}.chapter{margin:0 0 16px;font-size:12px;letter-spacing:4px;text-shadow:0 1px 8px #17261d}.actions{display:flex;align-items:center;justify-content:space-between;gap:20px}.primary{color:#fff9e9;background:#26382d35;border:1px solid #dce0c580;min-width:142px;min-height:44px;letter-spacing:4px;font-size:14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .2s}.primary:hover{background:#7b87713d}.text-action{background:none;border:none;color:#f4f0e6;font-size:12px;min-height:44px;padding:0 6px;letter-spacing:2px}.timeline{display:block;width:100%;height:16px;margin:12px 0 0;accent-color:#dadbc7;opacity:.65;cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(min-width:800px){.masthead{padding:30px 45px 0}.painting{background-position:50% 54%}.card-stage{width:min(390px,46svh)}.controls{padding-bottom:25px}}@media(max-height:620px){.experience{min-height:400px}.masthead{padding-top:15px}.card-stage{width:min(67vw,43svh)}.controls{padding-bottom:12px}.chapter{margin-bottom:4px}.timeline{margin-top:3px}.scene{padding:12px 0}.masthead{font-size:9px}}@media(prefers-reduced-motion:reduce){.painting{will-change:auto}.primary{transition:none}}.timeline{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;height:20px}.timeline::-webkit-slider-runnable-track{height:1px;background:#e0e3ce70}.timeline::-webkit-slider-thumb{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:7px;height:7px;border-radius:50%;background:#eef0db;margin-top:-3px}.timeline::-moz-range-track{height:1px;background:#e0e3ce70}.timeline::-moz-range-thumb{width:7px;height:7px;border:0;border-radius:50%;background:#eef0db}.text-action{white-space:nowrap;flex-shrink:0}@media(max-width:350px){.actions{gap:10px}.primary{min-width:120px}.masthead{padding-left:20px;padding-right:20px;letter-spacing:1.6px}}.gate{overflow:visible;border:0;box-shadow:none;transform-style:preserve-3d;will-change:transform;backface-visibility:visible}.gate.leaf-left{left:0;transform-origin:left center}.gate.leaf-right{right:0;transform-origin:right center}.paper-strip{position:absolute;top:0;width:calc(12.5% + .65px);height:100%;overflow:hidden;transform-origin:center center;backface-visibility:visible;will-change:transform}.strip-paper{position:absolute;top:0;right:0;bottom:0;left:0;background:#f0ede045;backdrop-filter:blur(1.4px) saturate(.88);-webkit-backdrop-filter:blur(1.4px) saturate(.88);box-shadow:inset 0 1px #fff6,inset 0 -1px #c2c4b755}.strip-paper:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(/assets/display/vellum-fibers.webp);background-size:1600% 100%;background-position:var(--fiber-x) center;opacity:.3;mix-blend-mode:multiply}.strip-ink{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;filter:drop-shadow(0 .25px .2px #ffffff65)}.vellum-sheet{background:#f1efe23b;border:1px solid #eeeede70;backdrop-filter:blur(1.7px) saturate(.85);-webkit-backdrop-filter:blur(1.7px) saturate(.85);box-shadow:0 16px 24px -12px #15211355,inset 0 0 18px #fcf9ec24;transform-origin:center bottom}.paper-grain:after{background-image:url(/assets/display/vellum-fibers.webp);background-size:100% 100%;background-position:center;opacity:.36;mix-blend-mode:multiply}.vellum-sheet:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(/assets/display/vellum-fibers.webp);background-size:160%;opacity:.1;mix-blend-mode:soft-light;pointer-events:none}.signatures{top:23%;transform:rotate(-3deg)}.center-seam{background:#eae9d75c;box-shadow:1px 0 2px #24302422}.gate:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#f0ede045;backdrop-filter:blur(1.3px) saturate(.9);-webkit-backdrop-filter:blur(1.3px) saturate(.9);border-top:1px solid #fff5;border-bottom:1px solid #d9ddca60;pointer-events:none}.paper-strip{width:12.52%}.strip-paper{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}.whole-paper{position:absolute;top:0;right:0;bottom:0;left:0;background:url(/assets/display/vellum-fibers.webp) center/200% 100%;mix-blend-mode:multiply;opacity:.25}.envelope-back{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:#e9e7d84a;border:1px solid #edeedb70;box-shadow:0 12px 28px #19271c25;pointer-events:none}.envelope-back:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url(/assets/display/vellum-fibers.webp) center/100% 100%;opacity:.28;mix-blend-mode:multiply}.envelope-fold{position:absolute;top:0;bottom:0;width:3%;background:#e7e7d91a}.fold-left{left:0;border-left:1px solid #f9f7e58c;box-shadow:inset 2px 0 3px #676e5818}.fold-right{right:0;border-right:1px solid #f9f7e58c;box-shadow:inset -2px 0 3px #676e5818}.vellum-sheet{top:4%;right:4%;bottom:4%;left:4%;box-shadow:0 6px 14px -6px #17271940,inset 0 0 18px #fcf9ec24}.card-face{box-shadow:0 20px 38px #1323184d,1px 0 #ebe7df,2px 0 #d2cfc5,3px 0 #f4eee3,4px 0 #bebbad}.cotton{background:#f7f5ef}.cotton:after,.cotton-finish{background-image:url(/assets/display/cotton-paper.webp);background-size:100% 100%;background-position:center;mix-blend-mode:multiply;opacity:.42}.cotton-finish{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.27}.cotton:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:inset 0 1px 2px #fff,inset 0 -2px 3px #a9a18b20}.deboss{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.back .foil{filter:drop-shadow(0 .35px .25px #fff9)}.strip-ink{filter:drop-shadow(.9px 1px .32px #465052bd) drop-shadow(-.42px -.5px .24px #ffffffc9)}.front .foil,.back .foil{filter:drop-shadow(.32px .42px .22px #48515370) drop-shadow(-.25px -.3px .18px #ffffffb5)}@font-face{font-family:WeddingBrush;src:url(/assets/signature.woff2) format("woff2");font-display:block}.scene{position:relative;z-index:2}.card-stage{transform-style:preserve-3d}.invitation{transform-origin:center center}.cotton-light{position:absolute;top:-10%;right:-45%;bottom:-10%;left:-45%;pointer-events:none;background:linear-gradient(104deg,transparent 36%,#fff0 43%,#ffffff8c 49%,#edf2f16b 52%,transparent 59%);mix-blend-mode:screen;filter:blur(4px)}.physical-water{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;opacity:0;overflow:hidden}.physical-water-canvas{display:block;width:100%;height:100%}.atmosphere{z-index:0;pointer-events:none}.masthead,.controls{position:relative;z-index:10}.scene{z-index:4;pointer-events:none}.second-part-preview .card-face.front{visibility:hidden}.second-part-preview .card-face.back{transform:none}.water-error{position:absolute;bottom:150px;left:10%;width:80%;text-align:center;color:#fff;font-size:12px}@media(max-width:430px){.card-stage{width:min(73vw,45svh)}}.water-card-ready .invitation{visibility:hidden}body.mobile-check .experience{width:390px;max-width:100vw;height:844px;max-height:100svh;margin:auto}.water-failed{opacity:1!important;z-index:5}body.mobile-check .painting{background-position:43% 50%}.rsvp-stage{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;perspective:1400px;pointer-events:none}.rsvp-card{position:absolute;left:50%;top:48%;translate:-50% -50%;transform-origin:center;backface-visibility:hidden;background:linear-gradient(#f6f4edef,#f6f4edef),url(/assets/display/vellum-fibers.webp) center/180% 180%;color:#414e3d;box-shadow:0 22px 65px #14201966,1px 0 #e4e1d7,3px 1px #aaa99d;overflow:hidden;text-align:left}.rsvp-card:before{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;border:1px solid #989f98;outline:1px solid #b9bdb28c;outline-offset:3px;pointer-events:none;z-index:2}.rsvp-scroll{height:100%;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#a3ab9b transparent;padding:27px 32px 23px;position:relative}.rsvp-monogram{text-align:center;color:#88948c;font:italic 25px Georgia,serif;letter-spacing:5px}.rsvp-monogram i{font-size:17px}.rsvp-eyebrow{text-align:center;font:8px/1.5 Georgia,serif;letter-spacing:1.9px;color:#758177;margin:9px 0 17px}.rsvp-card h1{text-align:center;font-weight:400;font-size:29px;letter-spacing:6px;margin:0;color:#53624f}.rsvp-rule{display:flex;align-items:center;gap:12px;width:125px;margin:13px auto;color:#8d9a8d}.rsvp-rule:before,.rsvp-rule:after{content:"";flex:1;height:1px;background:#a5afa1}.rsvp-intro{text-align:center;font-size:12px;line-height:1.85;margin:0 0 22px;color:#6c7767}.rsvp-deadline{text-align:center;font-size:12px;margin:0 0 16px}.rsvp-card fieldset{border:0;margin:0 0 19px;padding:0;min-width:0}.rsvp-card legend,.rsvp-field{font-size:13px;letter-spacing:1.2px}.rsvp-card legend{padding:0;margin-bottom:9px}.rsvp-field{display:flex;flex-direction:column;gap:9px;margin-bottom:19px}.rsvp-field input,.rsvp-field textarea{width:100%;border:1px solid #a8afa0;background:#fffdf880;color:#3f4c3b;border-radius:3px;padding:11px 12px;min-height:44px;font:16px/1.4 Songti TC,serif;resize:vertical}.rsvp-field input::placeholder,.rsvp-field textarea::placeholder{color:#92998c}.rsvp-choices{display:flex;gap:9px}.rsvp-choice{flex:1;position:relative;cursor:pointer;display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 4px;border:1px solid #929f8a;border-radius:24px;font-size:12px;text-align:center;background:#fff8;transition:background .2s,color .2s}.rsvp-choice input{position:absolute;opacity:0;width:1px;height:1px}.rsvp-choice.selected{background:#4b5c44;color:#faf8ef;border-color:#4b5c44}.rsvp-choice:has(input:focus-visible){outline:2px solid #556b48;outline-offset:3px}.rsvp-card :is(input,textarea,button):focus-visible{outline:2px solid #556b48;outline-offset:3px}.rsvp-submit{width:100%;min-height:46px;border:1px solid #64715f;background:#45563f;color:#f6f3e8;font-size:14px;letter-spacing:4px;border-radius:2px}.rsvp-status{text-align:center;font-size:11px;line-height:1.7;color:#7b8474;margin:11px 0 0;letter-spacing:.3px}.rsvp-postal{padding-top:3px}.experience.rsvp-visible .controls{padding-top:0;padding-bottom:max(12px,env(safe-area-inset-bottom))}.experience.rsvp-visible .chapter{display:none}.experience.rsvp-visible .timeline{margin-top:5px}@media(max-width:430px){.rsvp-scroll{padding:24px 25px 20px}.rsvp-eyebrow{font-size:7px;letter-spacing:1.4px}.rsvp-card h1{font-size:26px}}.rsvp-card{top:46.8%;background:#dfe4d345;backdrop-filter:blur(2px) saturate(.88);-webkit-backdrop-filter:blur(2px) saturate(.88);color:#f4f2e7;box-shadow:0 16px 32px -14px #14201966,inset 0 0 20px #f8f8e91a,1px 0 #eceee655;text-shadow:0 1px 3px #15201799}.rsvp-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url(/assets/display/vellum-fibers.webp) center/160%;opacity:.075;mix-blend-mode:soft-light;pointer-events:none}.rsvp-card:before{border-color:#e2e7dc88;outline-color:#e2e7dc44}.rsvp-card :is(h1,.rsvp-monogram,.rsvp-eyebrow,.rsvp-intro,.rsvp-status,.rsvp-rule){color:#eeefe4}.rsvp-field input,.rsvp-field textarea{background:#eaf0df18;border-color:#e2e7d888;color:#fffef5;text-shadow:0 1px 3px #15201799}.rsvp-field input::placeholder,.rsvp-field textarea::placeholder{color:#e2e5d9bb}.rsvp-choice{background:#edf2e010;border-color:#e2e7d888}.rsvp-choice.selected{background:#e4ead838;color:#fffef5;border-color:#f2f4e7cc}.rsvp-submit{background:#34452f80;border-color:#dfe7d299}.rsvp-card{background:#dfe4d34d;backdrop-filter:blur(1.3px) saturate(.94);-webkit-backdrop-filter:blur(1.3px) saturate(.94);box-shadow:0 12px 25px -14px #14201970,inset 0 0 16px #f8f8e912,1px 0 #eceee666}.rsvp-card:after{background-size:100% 100%;opacity:.11;mix-blend-mode:soft-light}.gate:before{background:#acb8a930;backdrop-filter:blur(.7px);-webkit-backdrop-filter:blur(.7px)}.envelope-back{background:#bdc6b51f}.gate .strip-ink{mix-blend-mode:screen;filter:drop-shadow(0 .25px .3px #eff6ef40)}.whole-paper{opacity:.13}.bgm-control{position:absolute;right:22px;top:58px;z-index:12;font-size:11px;letter-spacing:1px;color:#f3f1e6}.bgm-control button,.bgm-control label{display:block;border:1px solid #e5ebda66;background:#27382855;color:inherit;padding:9px 12px;border-radius:20px;cursor:pointer}.bgm-control input{position:absolute;width:1px;height:1px;opacity:0}.bgm-control label:focus-within{outline:2px solid #f3f1e6}.bgm-control span{display:block;max-width:150px;margin-top:5px}.envelope-finish{position:absolute;left:50%;top:46.8%;z-index:6;pointer-events:none;transform-origin:center}.finish-ribbon{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.wax-seal{position:absolute;left:50%;top:51%;width:21%;aspect-ratio:1;border-radius:46% 52% 47% 50%/51% 45% 53% 48%;background:radial-gradient(ellipse at 35% 25%,#fffef7,#e9e5d9 68%,#d5cfbf 82%,#f5f2e8 88%);display:flex;align-items:center;justify-content:center;border:1px solid #eeeadd}.wax-seal:before{content:"";position:absolute;top:12%;right:12%;bottom:12%;left:12%;border:2px solid #d0c7b180;border-radius:50%;box-shadow:1px 1px 1px #fff,inset 1px 1px 2px #aaa18e44}.seal-initials{font:26px Georgia,serif;letter-spacing:-7px;padding-right:5px;color:#c2baa8;text-shadow:1px 1px 0 #fffff9,-.5px -.5px 0 #aea38c}.seal-initials span{position:relative;top:5px;font-size:22px}.seal-wreath{position:absolute;top:11%;font-size:15px;color:#c7bfac;text-shadow:1px 1px 0 #fff}.seal-wreath.bottom{top:auto;bottom:10%;rotate:180deg}.wax-seal{background:radial-gradient(ellipse at 32% 23%,#eeecdf,#dcdccc 64%,#c5c5b3 81%,#e4e3d4 90%);border-color:#d9dac8;isolation:isolate}.wax-seal:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:url(/assets/display/vellum-fibers.webp) center/180%;opacity:.07;mix-blend-mode:multiply;pointer-events:none}.seal-initials{color:#b2b29e;text-shadow:.7px .7px 0 #f4f1e6,-.4px -.4px 0 #929683}.seal-wreath{color:#b8b8a4;text-shadow:.7px .7px 0 #efecdf}.finish-ribbon{filter:saturate(.78);opacity:.95}.envelope-finish-3d{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;pointer-events:none}.envelope-finish-3d canvas{display:block;width:100%;height:100%}
