*{box-sizing:border-box}html{scroll-behavior:smooth;background:#e9e6e1}body{margin:0;color:var(--ink);background:#e9e6e1;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}img{display:block;max-width:100%}a{color:inherit}#inviteApp{position:relative;width:min(100%,520px);margin:0 auto;background:var(--paper);overflow:hidden;box-shadow:0 0 50px rgba(0,0,0,.12)}.section{position:relative;min-height:100vh;padding:88px 28px}.preview-badge{position:fixed;z-index:99;top:14px;left:50%;transform:translateX(-50%);padding:8px 12px;border-radius:999px;background:rgba(20,20,20,.82);color:#fff;font-size:12px;backdrop-filter:blur(12px)}.wechat-share-seed{position:absolute!important;left:-10000px!important;top:-10000px!important;opacity:.001!important;pointer-events:none!important}.ambient{position:fixed;pointer-events:none;z-index:0;filter:blur(80px);opacity:.12}.ambient-a{width:220px;height:220px;border-radius:50%;background:var(--accent);left:5%;top:16%}.ambient-b{width:260px;height:260px;border-radius:50%;background:#f6d9a5;right:3%;bottom:10%}
.music-btn{position:fixed;z-index:80;top:86px;right:max(18px,calc((100vw - 520px)/2 + 18px));width:48px;height:48px;border:1px solid rgba(255,255,255,.72);border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.68);box-shadow:0 10px 24px rgba(0,0,0,.12);backdrop-filter:blur(14px);cursor:pointer}.vinyl{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at center,var(--paper) 0 12%,#252525 13% 22%,#151515 23% 100%);color:#fff;font-size:13px}.music-btn.is-spinning .vinyl{animation:spin 4s linear infinite}.music-btn.is-muted .vinyl{animation:none;opacity:.6}.music-tip{position:fixed;z-index:79;top:140px;right:max(17px,calc((100vw - 520px)/2 + 17px));padding:7px 10px;border-radius:999px;background:rgba(28,28,28,.72);color:#fff;font-size:11px;opacity:0;transform:translateY(-5px);transition:.25s;pointer-events:none}.music-tip.show{opacity:1;transform:none}@keyframes spin{to{transform:rotate(360deg)}}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}.reveal.in{opacity:1;transform:none}.section-head{margin-bottom:34px}.section-head>span,.letter-card>span,.ending-copy>span{display:block;font-size:10px;letter-spacing:.22em;font-weight:700;opacity:.64;margin-bottom:13px}.section-head h2,.letter-card h2,.ending-copy h2{font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:31px;line-height:1.28;font-weight:500;letter-spacing:-.02em;margin:0}.section-head p{font-size:14px;line-height:1.8;opacity:.68;margin:14px 0 0}.eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase}.lead{font-size:14px;line-height:1.9;opacity:.82}
.hero{min-height:100svh;padding:22px 24px 56px;display:flex;flex-direction:column}.hero-meta{position:relative;z-index:2;display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:.16em;margin:8px 0 20px}.hero-meta b{height:1px;flex:1;background:currentColor;opacity:.35}.hero-frame{position:relative;z-index:1;height:58svh;min-height:430px;max-height:650px;overflow:hidden;background:#ddd}.hero-frame img{width:100%;height:100%;object-fit:cover}.hero-copy{position:relative;z-index:3;margin-top:-42px;padding:27px 23px 0}.hero-number{position:absolute;right:22px;top:-8px;font-family:Georgia,serif;font-size:78px;line-height:1;color:var(--accent);opacity:.16}.hero-copy h1{font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:40px;line-height:1.08;font-weight:500;letter-spacing:-.04em;margin:8px 0 9px}.baby-name{display:flex;gap:8px;align-items:baseline;font-size:18px;margin:0 0 10px}.baby-name small{font-size:12px;opacity:.55}.scroll-cue{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:.18em;opacity:.55}.scroll-cue b{font-size:23px;animation:bob 1.6s ease-in-out infinite}@keyframes bob{50%{transform:translateY(5px)}}.hero-decoration{position:absolute;inset:0;pointer-events:none}.hero-decoration i{position:absolute;border-radius:50%;background:var(--accent);opacity:.08}.hero-decoration i:nth-child(1){width:180px;height:180px;right:-80px;top:80px}.hero-decoration i:nth-child(2){width:100px;height:100px;left:-40px;bottom:120px}.hero-decoration i:nth-child(3){width:28px;height:28px;right:45px;bottom:70px}
.intro-layout{display:grid;gap:28px}.photo-card{margin:0}.photo-card img{width:100%;height:500px;object-fit:cover}.photo-card figcaption{padding-top:9px;font-size:9px;letter-spacing:.16em;opacity:.6}.intro-copy{position:relative;padding:10px 10px 10px 34px}.intro-copy b{position:absolute;left:0;top:-16px;font:64px/1 Georgia,serif;color:var(--accent);opacity:.3}.intro-copy p{font-family:Georgia,"Noto Serif SC",serif;font-size:18px;line-height:2;margin:0;white-space:normal}
.timeline-grid{display:grid;gap:56px}.timeline-item{display:grid;grid-template-columns:1.18fr .82fr;gap:18px;align-items:end}.timeline-item:nth-child(even){grid-template-columns:.82fr 1.18fr}.timeline-item:nth-child(even) .timeline-photo{order:2}.timeline-photo{height:330px;overflow:hidden}.timeline-photo img{width:100%;height:100%;object-fit:cover}.timeline-text{padding-bottom:14px}.timeline-text>span{display:block;font:40px/1 Georgia,serif;color:var(--accent);opacity:.25;margin-bottom:20px}.timeline-text h3{font-family:Georgia,"Noto Serif SC",serif;font-size:20px;font-weight:500;margin:0 0 7px}.timeline-text p{font-size:12px;line-height:1.7;opacity:.65;margin:0}
.letter-section{min-height:86vh;display:grid;place-items:center;overflow:hidden}.letter-mark{position:absolute;font:300px/1 Georgia,serif;color:var(--accent);opacity:.055;right:-24px;top:40px}.letter-card{position:relative;padding:42px 28px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);background:color-mix(in srgb,var(--paper) 88%,white 12%);box-shadow:0 22px 55px rgba(55,40,25,.06)}.letter-card i{display:block;width:46px;height:1px;background:var(--accent);margin:24px 0}.letter-card p{font-family:Georgia,"Noto Serif SC",serif;font-size:17px;line-height:2;margin:0}.letter-card em{display:block;text-align:right;font-style:normal;font-size:11px;letter-spacing:.12em;opacity:.55;margin-top:24px}
.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:9px;align-items:start}.gallery-item{position:relative;margin:0;overflow:hidden;background:#ddd}.gallery-item img{width:100%;height:100%;object-fit:cover}.gallery-item span{position:absolute;left:10px;bottom:9px;color:#fff;font:10px/1 Georgia,serif;text-shadow:0 1px 5px rgba(0,0,0,.6)}.g1{grid-column:1/8;height:315px}.g2{grid-column:8/13;height:245px;margin-top:66px}.g3{grid-column:1/6;height:220px}.g4{grid-column:6/13;height:310px}.g5{grid-column:1/13;height:280px}.g6{grid-column:1/7;height:260px}.g7{grid-column:7/13;height:200px;margin-top:44px}.g8{grid-column:2/12;height:360px;margin-top:14px}
.event-photo{position:relative;margin:0 0 42px;height:430px;overflow:hidden}.event-photo img{width:100%;height:100%;object-fit:cover}.event-photo b{position:absolute;right:16px;bottom:16px;width:74px;height:74px;border-radius:50%;display:grid;place-items:center;text-align:center;background:var(--paper);font:12px/1.25 Georgia,serif;letter-spacing:.12em;box-shadow:0 8px 25px rgba(0,0,0,.1)}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:28px 0}.countdown div{padding:14px 6px;border-top:1px solid color-mix(in srgb,var(--accent) 42%,transparent);text-align:center}.countdown b{display:block;font:30px/1.15 Georgia,serif;font-weight:400}.countdown span{font-size:10px;opacity:.55}.event-card{margin-top:34px;border:1px solid color-mix(in srgb,var(--accent) 38%,transparent);border-radius:28px;overflow:hidden}.date-block,.place-block{padding:25px}.date-block{background:color-mix(in srgb,var(--accent) 10%,var(--paper));border-bottom:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}.event-card small{font-size:9px;letter-spacing:.18em;opacity:.58}.date-block strong{display:block;font:31px/1.2 Georgia,serif;margin:12px 0 5px}.date-block b{font-size:18px}.date-block p,.place-block p{font-size:13px;line-height:1.7;opacity:.68}.place-block h3{font-family:Georgia,"Noto Serif SC",serif;font-size:22px;font-weight:500;margin:12px 0 0}.place-block a{display:inline-flex;margin-top:8px;padding:10px 14px;border-radius:999px;background:var(--ink);color:var(--paper);text-decoration:none;font-size:12px}
.ending-photo{margin:0;height:520px;overflow:hidden}.ending-photo img{width:100%;height:100%;object-fit:cover}.ending-copy{margin-top:34px}.ending-copy p{font-family:Georgia,"Noto Serif SC",serif;font-size:16px;line-height:1.95;opacity:.78}.contact-line{margin:28px 0;padding:18px 0;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(0,0,0,.1);display:flex;gap:12px;align-items:center;font-size:12px}.contact-line span{opacity:.55}.contact-line a{margin-left:auto;text-decoration:none}.rsvp{margin-top:55px;padding:28px 22px 24px;border-radius:28px;background:color-mix(in srgb,var(--accent) 9%,white 91%);border:1px solid color-mix(in srgb,var(--accent) 24%,transparent)}.rsvp-title small{font-size:9px;letter-spacing:.25em}.rsvp-title h3{font-family:Georgia,"Noto Serif SC",serif;font-size:27px;font-weight:500;margin:6px 0}.rsvp-title p{font-size:12px;opacity:.6;margin:0 0 22px}.rsvp form{display:grid;gap:13px}.rsvp label{display:grid;gap:7px}.rsvp label span{font-size:11px;opacity:.62}.rsvp input,.rsvp select,.rsvp textarea{width:100%;border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);outline:none;border-radius:14px;padding:13px 14px;background:rgba(255,255,255,.8);color:var(--ink)}.rsvp textarea{resize:vertical}.rsvp .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rsvp button{border:0;border-radius:14px;padding:14px 16px;background:var(--ink);color:var(--paper);font-weight:700;cursor:pointer}.form-msg{min-height:18px;font-size:12px;text-align:center}.ending-section footer{display:flex;justify-content:space-between;align-items:end;margin-top:65px;padding-top:22px;border-top:1px solid rgba(0,0,0,.12)}.ending-section footer b{font-family:Georgia,"Noto Serif SC",serif;font-size:22px}.ending-section footer span{font-size:9px;letter-spacing:.15em;opacity:.55}
/* 奶油杂志 */
.theme-cream_magazine .hero-frame{border-radius:220px 220px 18px 18px}.theme-cream_magazine .hero-copy{background:linear-gradient(180deg,rgba(255,249,241,0),var(--paper) 28%)}.theme-cream_magazine .photo-card img,.theme-cream_magazine .timeline-photo,.theme-cream_magazine .ending-photo{border-radius:2px}.theme-cream_magazine .section-head h2{max-width:410px}
/* 中国红周岁 */
.theme-chinese_red #inviteApp{background:#fff5e5}.theme-chinese_red .hero{background:linear-gradient(180deg,#9e1716 0,#c53129 52%,#fff5e5 52%);color:#fff}.theme-chinese_red .hero-frame{height:53svh;border-radius:180px 180px 18px 18px;border:4px solid #f2c477;box-shadow:0 0 0 9px rgba(242,196,119,.15)}.theme-chinese_red .hero-copy{margin-top:-8px;color:#4a1914;background:#fff5e5;border-radius:28px 28px 0 0;padding:28px 24px}.theme-chinese_red .hero-meta{color:#ffe4af}.theme-chinese_red .scroll-cue{color:#4a1914}.theme-chinese_red .hero-decoration i{background:#f2c477;opacity:.25}.theme-chinese_red .section-head>span,.theme-chinese_red .letter-card>span,.theme-chinese_red .ending-copy>span{color:#a71f1b;opacity:1}.theme-chinese_red .photo-card img,.theme-chinese_red .timeline-photo,.theme-chinese_red .event-photo,.theme-chinese_red .ending-photo{border:1px solid #dca95d;padding:6px;background:#fff9ef}.theme-chinese_red .timeline-item:nth-child(odd) .timeline-photo{border-radius:120px 120px 10px 10px}.theme-chinese_red .timeline-item:nth-child(even) .timeline-photo{border-radius:10px 10px 120px 120px}.theme-chinese_red .letter-card{border:1px solid #c93229;background:#fff8e8}.theme-chinese_red .letter-card:before,.theme-chinese_red .letter-card:after{content:"壹";position:absolute;color:#b8241f;opacity:.08;font:88px/1 serif}.theme-chinese_red .letter-card:before{left:4px;top:3px}.theme-chinese_red .letter-card:after{right:4px;bottom:3px}.theme-chinese_red .event-card,.theme-chinese_red .rsvp{border-radius:10px}
/* 云朵蓝 */
.theme-sky_blue #inviteApp{background:linear-gradient(#f4faff,#edf7ff)}.theme-sky_blue .hero{padding-top:30px}.theme-sky_blue .hero:before,.theme-sky_blue .hero:after{content:"";position:absolute;background:#fff;border-radius:999px;opacity:.9}.theme-sky_blue .hero:before{width:180px;height:70px;left:-45px;top:110px;box-shadow:65px -26px 0 0 #fff,120px 4px 0 -8px #fff}.theme-sky_blue .hero:after{width:160px;height:60px;right:-55px;bottom:170px;box-shadow:-55px -20px 0 3px #fff}.theme-sky_blue .hero-frame{border-radius:34px;transform:rotate(-1.2deg);box-shadow:0 18px 40px rgba(70,125,170,.18);border:8px solid #fff}.theme-sky_blue .hero-copy{background:rgba(255,255,255,.72);border-radius:26px;margin-top:-25px;backdrop-filter:blur(10px);box-shadow:0 16px 36px rgba(73,125,165,.08)}.theme-sky_blue .timeline-photo,.theme-sky_blue .event-photo,.theme-sky_blue .ending-photo{border-radius:28px}.theme-sky_blue .gallery-item{border-radius:20px}.theme-sky_blue .letter-card{border-radius:30px;background:rgba(255,255,255,.76)}
/* 蝴蝶结奶粉 */
.theme-ribbon_pink #inviteApp{background:#fff7f8}.theme-ribbon_pink .hero-frame{border-radius:180px 180px 12px 12px;border:7px solid #fff;box-shadow:0 22px 45px rgba(190,110,130,.13)}.theme-ribbon_pink .hero:before{content:"✦";position:absolute;right:30px;top:130px;color:#d98a9d;font-size:40px;opacity:.35}.theme-ribbon_pink .hero-copy:before{content:"୨୧";display:block;font-size:28px;color:#d98a9d;letter-spacing:.12em}.theme-ribbon_pink .section-head h2,.theme-ribbon_pink .hero-copy h1{font-style:italic}.theme-ribbon_pink .photo-card img,.theme-ribbon_pink .timeline-photo,.theme-ribbon_pink .event-photo,.theme-ribbon_pink .ending-photo{border-radius:180px 180px 28px 28px}.theme-ribbon_pink .timeline-item:nth-child(even) .timeline-photo{border-radius:28px 28px 180px 180px}.theme-ribbon_pink .gallery-item{border-radius:22px}.theme-ribbon_pink .letter-card{border-radius:32px;background:#fff}.theme-ribbon_pink .letter-card:before{content:"୨୧";position:absolute;right:18px;top:13px;color:#d98a9d;font-size:24px}
/* 柿柿如意 */
.theme-oriental_persimmon #inviteApp{background:#fbf6ea}.theme-oriental_persimmon .hero{padding-top:32px}.theme-oriental_persimmon .hero-frame{height:56svh;border-radius:4px;margin:18px 0;border:1px solid rgba(80,70,50,.16)}.theme-oriental_persimmon .hero:after{content:"";position:absolute;right:-20px;top:82px;width:130px;height:90px;background:radial-gradient(circle at 25% 45%,#c85d3d 0 18px,transparent 19px),radial-gradient(circle at 58% 28%,#d87a58 0 15px,transparent 16px),radial-gradient(circle at 82% 55%,#b94d31 0 20px,transparent 21px);opacity:.65}.theme-oriental_persimmon .hero-copy{padding-left:8px;margin-top:0}.theme-oriental_persimmon .hero-copy h1,.theme-oriental_persimmon .section-head h2{letter-spacing:.08em}.theme-oriental_persimmon .timeline-photo,.theme-oriental_persimmon .photo-card img,.theme-oriental_persimmon .event-photo,.theme-oriental_persimmon .ending-photo{border-radius:0}.theme-oriental_persimmon .letter-card{background:#f8efdd;border-color:#c85d3d;border-radius:0}.theme-oriental_persimmon .gallery-grid{gap:14px}.theme-oriental_persimmon .gallery-item{outline:1px solid rgba(80,50,30,.12);outline-offset:-5px}.theme-oriental_persimmon .event-card{border-radius:0}
/* 彩虹派对 */
.theme-rainbow_pop #inviteApp{background:#fffdf8}.theme-rainbow_pop .hero{background:linear-gradient(160deg,#fffdf8 0 78%,#fff2b9 78%)}.theme-rainbow_pop .hero-frame{border-radius:28px;transform:rotate(1.5deg);box-shadow:10px 12px 0 #79b5dd,-8px -8px 0 #f7cc4d}.theme-rainbow_pop .hero-copy{margin-top:5px}.theme-rainbow_pop .hero-copy h1,.theme-rainbow_pop .section-head h2{font-family:Arial Black,"PingFang SC",sans-serif;font-weight:900;letter-spacing:-.04em}.theme-rainbow_pop .hero-number{color:#79b5dd;opacity:.28}.theme-rainbow_pop .section-head>span{display:inline-block;background:#f7cc4d;padding:5px 8px;border-radius:6px;opacity:1;transform:rotate(-1deg)}.theme-rainbow_pop .timeline-photo,.theme-rainbow_pop .photo-card img,.theme-rainbow_pop .event-photo,.theme-rainbow_pop .ending-photo{border-radius:24px;border:5px solid #fff;box-shadow:0 0 0 2px var(--ink)}.theme-rainbow_pop .timeline-item:nth-child(even) .timeline-photo{transform:rotate(2deg)}.theme-rainbow_pop .timeline-item:nth-child(odd) .timeline-photo{transform:rotate(-2deg)}.theme-rainbow_pop .gallery-item{border-radius:18px;border:3px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.15)}.theme-rainbow_pop .letter-card{border:2px solid var(--ink);border-radius:26px;box-shadow:8px 8px 0 #f7cc4d}.theme-rainbow_pop .event-card{border:2px solid var(--ink);border-radius:22px}.theme-rainbow_pop .rsvp{border:2px solid var(--ink);box-shadow:7px 7px 0 #79b5dd}
@media(max-width:560px){body{background:var(--paper)}#inviteApp{width:100%;box-shadow:none}.music-btn{right:18px}.music-tip{right:17px}.section{padding-left:24px;padding-right:24px}.hero{padding-left:20px;padding-right:20px}.hero-frame{min-height:390px}.photo-card img{height:470px}.timeline-photo{height:300px}.ending-photo{height:470px}.section-head h2,.letter-card h2,.ending-copy h2{font-size:29px}}@media(max-width:390px){.hero-copy h1{font-size:36px}.section{padding-left:20px;padding-right:20px}.timeline-photo{height:275px}.timeline-item{gap:12px}.gallery-grid{gap:7px}.rsvp .two{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
