:root{--rose-deep:#a62658;--rose:#c9366e;--rose-light:#e8789a;--rose-pale:#fce4ec;--gold:#d4a853;--gold-light:#f0d48a;--cream:#faf6f0;--cream-dark:#f0e8da;--text-dark:#3d2c2e;--text-body:#5a4042;--text-muted:#8c7173;--shadow-soft:0 4px 24px #a626581a;--shadow-card:0 8px 32px #3d2c2e1f;--radius:16px;--font-main:"LXGW WenKai", "Noto Serif SC", "Source Han Serif SC", serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{font-family:var(--font-main);background:var(--cream);color:var(--text-body);overflow-x:hidden}.hero{background:linear-gradient(160deg, #7a1b3e 0%, var(--rose-deep) 35%, var(--rose) 70%, #d94f82 100%);opacity:0;justify-content:center;align-items:center;min-height:100dvh;transition:opacity 1.2s;display:flex;position:relative;overflow:hidden}.hero.visible{opacity:1}.petals{pointer-events:none;position:absolute;inset:0}.petal{top:-20px;left:var(--x-start);width:var(--size);height:var(--size);animation:petalFall var(--duration) var(--delay) linear infinite;opacity:0;will-change:transform, opacity;background:radial-gradient(at 30% 30%,#ffdce6e6,#ffb4c866);border-radius:50% 0;position:absolute}@keyframes petalFall{0%{opacity:0;transform:translateY(0)translate(0)rotate(0)scale(1)}10%{opacity:.8}50%{transform:translateY(50vh) translateX(var(--x-drift)) rotate(var(--rotate)) scale(.9);opacity:.6}90%{opacity:.3}to{transform:translateY(110vh) translateX(calc(var(--x-drift) * -.5)) rotate(calc(var(--rotate) * 2)) scale(.5);opacity:0}}.hero-content{z-index:2;text-align:center;padding:2rem;position:relative}.hero-ornament{color:var(--gold-light);opacity:.7;font-size:1.6rem;animation:3s ease-in-out infinite alternate ornamentGlow}.top-ornament{margin-bottom:1.2rem}.bottom-ornament{margin-top:1.2rem}@keyframes ornamentGlow{0%{opacity:.5;transform:scale(1)}to{opacity:.9;transform:scale(1.1)}}.hero-title{color:#fff;letter-spacing:.15em;text-shadow:0 0 30px #d4a85366,0 2px 8px #00000026;background:linear-gradient(135deg, #fff 0%, var(--gold-light) 40%, #fff 60%, var(--gold-light) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.4rem,10vw,4.2rem);font-weight:700;line-height:1.4;animation:1.5s ease-out .3s both titleReveal}@keyframes titleReveal{0%{opacity:0;filter:blur(8px);transform:translateY(30px)scale(.95)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}.hero-subtitle{color:#ffffffbf;letter-spacing:.3em;text-transform:uppercase;margin-top:.8rem;font-size:clamp(.85rem,3vw,1.1rem);animation:1.5s ease-out .8s both titleReveal}.wave-divider{width:100%;line-height:0;position:absolute;bottom:-1px;left:0}.wave-divider svg{width:100%;height:60px}.blessing-section{background:var(--cream);opacity:0;padding:3rem 1.25rem 3.5rem;transition:opacity .9s,transform .9s;transform:translateY(40px)}.blessing-section.visible{opacity:1;transform:translateY(0)}.blessing-card{border-radius:var(--radius);max-width:420px;box-shadow:var(--shadow-soft);background:#fff;border:1px solid #d4a85326;margin:0 auto;padding:2.5rem 2rem;position:relative}.blessing-card:before{content:"";border-radius:calc(var(--radius) - 4px);pointer-events:none;border:1px solid #d4a8531f;position:absolute;inset:6px}.blessing-ornament{text-align:center;color:var(--rose-light);opacity:.6;font-size:1.2rem}.blessing-text{padding:1.5rem 0}.blessing-line{color:var(--text-dark);animation:.6s ease-out both lineReveal;animation-delay:calc(var(--i) * .12s);font-size:clamp(.95rem,3.5vw,1.1rem);line-height:2}.blessing-line.empty{height:.8em}@keyframes lineReveal{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.cards-section{background:var(--cream);opacity:0;padding:0 1rem 3rem;transition:opacity .9s,transform .9s;transform:translateY(40px)}.cards-section.visible{opacity:1;transform:translateY(0)}.section-title{color:var(--rose-deep);letter-spacing:.2em;justify-content:center;align-items:center;gap:.8rem;margin-bottom:2rem;font-size:1.2rem;font-weight:400;display:flex}.title-line{background:linear-gradient(90deg, transparent, var(--rose-light), transparent);width:30px;height:1px;display:inline-block}.cards-grid{grid-template-columns:1fr 1fr;gap:1rem;max-width:480px;margin:0 auto;display:grid}.photo-card{box-shadow:var(--shadow-card);animation:.7s ease-out both cardReveal;animation-delay:calc(var(--i) * .12s);background:#fff;border-radius:12px;transition:transform .35s,box-shadow .35s;overflow:hidden}.cards-visible .photo-card{animation:.7s ease-out both cardReveal;animation-delay:calc(var(--i) * .12s)}.photo-card:active{transform:scale(.97)}@keyframes cardReveal{0%{opacity:0;transform:translateY(30px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.card-image-wrap{aspect-ratio:auto;overflow:hidden}.card-image{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block}.photo-card:active .card-image{transform:scale(1.03)}.card-caption{color:var(--text-muted);text-align:center;letter-spacing:.08em;padding:.7rem .8rem;font-size:.82rem}.page-footer{background:var(--cream-dark);text-align:center;padding:2rem 1rem}.page-footer p{color:var(--text-muted);letter-spacing:.1em;font-size:.85rem}@media (prefers-color-scheme:dark){:root{--cream:#1a1214;--cream-dark:#150e10;--text-dark:#f0dcde;--text-body:#d4b8ba;--text-muted:#9a7a7d}.blessing-card{background:#231a1c;border-color:#d4a8531a}.blessing-card:before{border-color:#d4a85314}.photo-card{background:#231a1c}.wave-divider svg path{fill:var(--cream)}}@media (width<=360px){.blessing-card{padding:2rem 1.25rem}.cards-grid{gap:.7rem}}
