@import"https://fonts.googleapis.com/css2?family=Bodoni+Moda:opsz,wght@6..96,400;6..96,500&family=Noto+Serif+SC:wght@300;400;500;600&display=swap";:root{font-family:"Noto Serif SC",Songti SC,serif;color:#252321;background:#e5e7ea;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #252321;--paper: #fbfaf7;--mist: #e5e7ea;--gold: #a86119;--pale-gold: #d7ad78;--white: #fffefd}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--mist)}body{margin:0;min-width:320px;overflow-x:hidden}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.invitation{position:relative;min-height:100vh;overflow:clip;background:#e5e7ea}.fixed-visual{position:fixed;inset:0;z-index:0;overflow:hidden;background:#e3e6e9}.hero-photo{width:100%;height:100%;object-fit:cover;object-position:center center;transform-origin:center center;will-change:transform,filter;transition:filter .16s linear}.photo-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(230,233,236,.04),transparent 42%,rgba(255,255,255,.08) 72%,rgba(236,233,227,.22))}.film-grain{position:absolute;inset:-35%;opacity:.045;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");animation:grain .3s steps(2) infinite}.petal-canvas{position:fixed;inset:0;z-index:4;width:100%;height:100%;pointer-events:none}.top-bar{position:fixed;inset:0 0 auto;z-index:8;display:flex;align-items:center;justify-content:space-between;padding:max(19px,env(safe-area-inset-top)) clamp(21px,4vw,54px) 12px;color:var(--ink)}.monogram{display:grid;place-items:center;width:30px;height:30px;color:var(--gold);border:1px solid rgba(168,97,25,.42);border-radius:50%;font-size:14px;line-height:1;background:#ffffff42;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.top-date{font:500 10px/1 Bodoni Moda,serif;letter-spacing:.24em;text-shadow:0 1px 8px rgba(255,255,255,.72)}.music-control{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));z-index:9;display:flex;align-items:center;gap:9px;min-height:42px;padding:5px 13px 5px 5px;color:#4c443b;border:1px solid rgba(151,96,37,.28);border-radius:999px;background:#fffdf8c2;box-shadow:0 9px 30px #493f3524;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;transition:border-color .3s ease,background .3s ease,transform .3s ease}.music-control:hover{border-color:#97602599;background:#fffdf8eb;transform:translateY(-2px)}.music-control:focus-visible{outline:1px solid var(--gold);outline-offset:3px}.music-disc{position:relative;display:flex;align-items:center;justify-content:center;gap:2px;width:30px;height:30px;border:1px solid rgba(151,96,37,.38);border-radius:50%}.music-disc:after{content:"";position:absolute;inset:4px;border:1px solid rgba(151,96,37,.14);border-radius:50%}.music-disc i{position:relative;z-index:1;display:block;width:1px;height:7px;background:var(--gold);transform-origin:center}.music-disc i:nth-child(2){height:12px}.music-label{font-size:9px;letter-spacing:.18em;white-space:nowrap}.music-control.playing .music-disc{animation:music-spin 8s linear infinite}.music-control.playing .music-disc i{animation:music-wave .9s ease-in-out infinite alternate}.music-control.playing .music-disc i:nth-child(2){animation-delay:-.35s}.music-control.playing .music-disc i:nth-child(3){animation-delay:-.6s}.panel{position:relative;z-index:2;min-height:100svh}.content-panel{display:grid;place-items:center;padding:100px 20px}.hero{display:grid;place-items:center;min-height:100svh;text-align:center}.eyebrow{margin:0 0 20px;color:var(--gold);font:500 10px/1.6 Bodoni Moda,"Noto Serif SC",serif;letter-spacing:.32em;text-transform:uppercase}.scroll-cue{position:absolute;bottom:max(18px,3.6vh);left:50%;display:grid;gap:8px;justify-items:center;transform:translate(-50%);color:#27231fa8;font-size:9px;letter-spacing:.3em;white-space:nowrap;text-shadow:0 1px 7px #fff}.scroll-cue i{display:block;width:1px;height:31px;background:linear-gradient(var(--gold),transparent);animation:scroll-line 2.2s ease-in-out infinite;transform-origin:top}.reveal{opacity:0;transform:translateY(14px)}.ready .reveal{animation:reveal-up 1.3s cubic-bezier(.2,.7,.2,1) forwards}.delay-4{animation-delay:1s!important}.declaration{min-height:114svh;background:linear-gradient(180deg,#f2f2f014,#f8f6f1e6 20%,#f9f7f2f0)}.glass-card{position:relative;width:min(560px,90vw);padding:clamp(64px,11vw,96px) clamp(28px,8vw,76px);color:var(--ink);text-align:center;border:1px solid rgba(148,101,50,.24);background:#fffefac7;box-shadow:0 30px 80px #51483d1c;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.glass-card:before,.glass-card:after{content:"";position:absolute;width:25px;height:25px;border-color:var(--gold);opacity:.56}.glass-card:before{top:12px;left:12px;border-top:1px solid;border-left:1px solid}.glass-card:after{right:12px;bottom:12px;border-right:1px solid;border-bottom:1px solid}.section-number{position:absolute;top:21px;right:25px;color:#44362952;font:italic 20px/1 Bodoni Moda,serif}.couple-line{margin:0 0 22px;color:#151413;font-size:13px;letter-spacing:.34em}.glass-card h2,.promise h2,.rsvp h2,.ending h2{margin:0;font-weight:400;line-height:1.65;letter-spacing:.14em}.glass-card h2{font-size:clamp(28px,5vw,42px)}.fine-rule{display:flex;align-items:center;justify-content:center;margin:31px auto;width:92px;height:1px;background:#a8611942}.fine-rule i{width:5px;height:5px;background:var(--gold);transform:rotate(45deg)}.verse{margin:0;color:#777067;font-size:12px;line-height:2.2;letter-spacing:.13em}.signature{margin:30px 0 0;color:var(--gold);font:italic 23px/1 Bodoni Moda,serif}.promise{min-height:112svh;place-items:end start;padding:110px clamp(28px,9vw,130px);overflow:hidden}.promise:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#f9f7f3f7,#f7f5f0e6 50%,#ebebea85)}.promise:after{content:"W";position:absolute;right:-3vw;bottom:-11vh;z-index:-1;color:#a861190e;font:400 min(55vw,680px)/.8 "Bodoni Moda",serif}.promise-copy{position:relative;max-width:540px;padding-left:clamp(22px,4vw,58px);border-left:1px solid rgba(168,97,25,.38)}.promise .section-number{top:-50px;right:auto;left:clamp(22px,4vw,58px)}.promise h2{margin-bottom:28px;color:#25211d;font-size:clamp(34px,6vw,64px)}.promise-copy>p:last-child{white-space:pre-line;color:#706b64;font-size:13px;line-height:2.2;letter-spacing:.15em}.details{min-height:122svh;background:#cfd2d5b3}.details:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(135deg,#d4d7dac7,#f2f0eb9e);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.paper-card{position:relative;width:min(565px,92vw);padding:clamp(62px,9vw,90px) clamp(25px,7vw,68px);overflow:hidden;color:var(--ink);text-align:center;background:#fffefbf0;box-shadow:0 32px 90px #3d393433}.paper-card:before{content:"";position:absolute;inset:11px;border:1px solid rgba(168,97,25,.22);pointer-events:none}.paper-card:after{content:"";position:absolute;inset:0;opacity:.18;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)' opacity='.1'/%3E%3C/svg%3E")}.paper-mark{position:absolute;top:-17px;right:16px;color:#a861190e;font-size:132px;font-weight:600;transform:rotate(9deg)}.paper-card .eyebrow{color:var(--gold)}.paper-card h2{position:relative;margin:0 0 29px;font-size:clamp(22px,4vw,33px);font-weight:500;letter-spacing:.18em}.date-chinese{margin:0 0 8px;font-size:13px;letter-spacing:.14em}.lunar{margin:0;color:#817b74;font-size:11px;letter-spacing:.18em}.venue{display:grid;justify-items:center;gap:8px;margin-top:38px;padding-top:30px;border-top:1px solid rgba(91,72,52,.14)}.venue .pin{color:var(--gold);font-size:22px}.venue strong{font-size:16px;letter-spacing:.14em}.venue small{color:#77716a;font-size:11px}.venue a{margin-top:14px;color:var(--gold);font-size:10px;letter-spacing:.2em;text-underline-offset:5px}.rsvp{min-height:112svh;color:var(--white);text-align:center;background:#8b4d15eb}.rsvp:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.2;background-image:radial-gradient(circle at 25% 28%,rgba(255,255,255,.7) 0 1px,transparent 1.5px),radial-gradient(circle at 74% 72%,rgba(255,255,255,.6) 0 1px,transparent 1.5px);background-size:90px 90px,120px 120px}.rsvp-copy{width:min(580px,90vw)}.rsvp .eyebrow{color:#f3d5af}.rsvp h2{font-size:clamp(32px,6vw,55px)}.rsvp-copy>p:nth-of-type(2){margin:28px 0 39px;color:#ffffffb8;font-size:12px;line-height:2.1;letter-spacing:.13em}.ending{display:grid;place-items:center;min-height:104svh;color:var(--ink);text-align:center;background:#faf9f6e8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.ending:before{content:"Wedding";position:absolute;top:16%;left:50%;z-index:-1;color:#a8611912;font:italic 400 clamp(76px,18vw,230px)/1 "Bodoni Moda",serif;transform:translate(-50%);white-space:nowrap}.ending h2{font-size:clamp(34px,7vw,64px)}.ending-names{margin:24px 0 28px;color:var(--gold);font-size:13px;letter-spacing:.32em}.heart-line{display:flex;align-items:center;gap:13px;justify-content:center;color:var(--gold)}.heart-line i{width:55px;height:1px;background:linear-gradient(90deg,transparent,rgba(168,97,25,.5))}.heart-line i:last-child{transform:rotate(180deg)}.ending small{display:block;margin-top:22px;color:#8b847b;font-size:9px;letter-spacing:.35em}@keyframes reveal-up{to{opacity:1;transform:translateY(0)}}@keyframes scroll-line{0%,to{transform:scaleY(.35);opacity:.3}50%{transform:scaleY(1);opacity:1}}@keyframes grain{0%{transform:translate(0)}25%{transform:translate(3%,-2%)}50%{transform:translate(-2%,3%)}75%{transform:translate(2%,2%)}to{transform:translate(-3%,-1%)}}@keyframes music-spin{to{transform:rotate(360deg)}}@keyframes music-wave{0%{transform:scaleY(.45)}to{transform:scaleY(1.15)}}@media(min-width:760px){.hero-photo{object-fit:contain}.fixed-visual:before,.fixed-visual:after{content:"";position:absolute;top:0;bottom:0;z-index:1;width:calc((100vw - 56.25vh)/2 + 2px);pointer-events:none}.fixed-visual:before{left:0;background:linear-gradient(90deg,#dfe2e5 40%,transparent)}.fixed-visual:after{right:0;background:linear-gradient(-90deg,#dfe2e5 40%,transparent)}}@media(max-width:600px){.hero-photo{object-position:center center}.promise{align-items:end;padding-bottom:18vh}.glass-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.music-control{right:15px;bottom:max(16px,env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important}.hero-photo{transition:none}}
