:root{--taupe:#77665d;--ink:#4d423c;--line:#938178}
body{color:var(--ink);font-size:19px}
p,figcaption,input,textarea{font-weight:500}
.eyebrow{font-size:.9rem;font-weight:700}
.opening .eyebrow{font-size:1.05rem}
.opening h1{display:grid;justify-items:center;gap:2px;width:100%;font-size:clamp(2.9rem,8vw,4.4rem);line-height:1.02}
.opening h1 span{white-space:nowrap}
.opening h1 i{font-size:.72em;line-height:.8}
.opening-date{font-size:1rem;font-weight:600}
.open-button{font-size:1.2rem;font-weight:600}
.envelope-wrap>small{font-size:1rem;font-weight:500}
.petals{position:fixed;inset:0;z-index:60;overflow:hidden;pointer-events:none}
.petals i{position:absolute;top:-12vh;width:13px;height:20px;border-radius:80% 20% 70% 30%;background:linear-gradient(145deg,#e8d3c7cc,#b99783aa);box-shadow:0 0 8px #fff8;animation:petal-fall 11s linear infinite}
.petals i:nth-child(1){left:5%;animation-delay:-2s;animation-duration:12s}.petals i:nth-child(2){left:16%;animation-delay:-8s;animation-duration:15s;scale:.7}.petals i:nth-child(3){left:27%;animation-delay:-4s;animation-duration:13s;scale:.9}.petals i:nth-child(4){left:39%;animation-delay:-10s;animation-duration:17s;scale:.65}.petals i:nth-child(5){left:50%;animation-delay:-6s;animation-duration:14s}.petals i:nth-child(6){left:61%;animation-delay:-1s;animation-duration:16s;scale:.8}.petals i:nth-child(7){left:72%;animation-delay:-12s;animation-duration:18s;scale:.6}.petals i:nth-child(8){left:82%;animation-delay:-5s;animation-duration:13s;scale:.85}.petals i:nth-child(9){left:91%;animation-delay:-9s;animation-duration:16s;scale:.7}.petals i:nth-child(10){left:96%;animation-delay:-3s;animation-duration:19s;scale:.55}
.hero h2{margin-bottom:24px}
.polaroid>img{height:auto;object-fit:contain;object-position:center}
.hero-countdown{display:grid;grid-template-columns:repeat(4,1fr);width:min(100%,460px);margin:0 auto 52px;padding:13px 16px;background:#fff9;border:1px solid #b8a89b;border-radius:10px;box-shadow:0 7px 18px #5b4a3a15}
.hero-countdown div{border-right:1px solid #c8bbb0}
.hero-countdown div:last-child{border:0}
.hero-countdown b{display:block;font-size:1.45rem;line-height:1.1;font-weight:600}
.hero-countdown span{display:block;margin-top:4px;text-transform:uppercase;letter-spacing:.1em;font:600 .68rem "Be Vietnam Pro",sans-serif}
.paper-card>.eyebrow{font-size:1.1rem;margin-bottom:28px}
.families{font-size:1.05rem}
.family{display:grid;grid-template-rows:auto 1fr;align-self:stretch;align-items:start}
.families strong{font-size:1.08rem;font-weight:700}
.families p{font-size:1.4rem;line-height:1.55;font-weight:600}
.families p span{display:block}
.couple-names{font-size:clamp(2.85rem,7.2vw,4.9rem);line-height:1.12;gap:26px;font-weight:500}
.couple-names span{white-space:nowrap}
.couple-names i{font-size:3rem}
.scroll-cue{width:46px;height:46px;border-color:#9d897d;background:#fff8;box-shadow:0 6px 16px #5b4a3a18}
.scroll-cue svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.venue h3{font-size:2.1rem}
.venue p{font-size:1.05rem}
.event-card h2{font-size:2.2rem;line-height:1.3;font-weight:500}
.date-banner span{font-size:1.05rem;font-weight:600}
.date-banner b{font-size:3.35rem;font-weight:500}
.year{font-size:1.7rem;font-weight:600}
.calendar h3{font-size:1.55rem;font-weight:600}
.week{font-size:.82rem;font-weight:600}
.days span,.days b{font-size:.95rem;font-weight:600}
.text-link{font-size:1.08rem;font-weight:600}
.families p,.venue p,.muted{color:#594c45}
.lunar-date{margin-top:-10px;letter-spacing:.1em;font-size:1.05rem;font-weight:600}
.photo-grid{display:block;columns:3;column-gap:10px}
.photo-grid img,.photo-more{display:block;width:100%;height:auto;margin:0 0 10px;break-inside:avoid}
.photo-grid img{cursor:zoom-in;object-fit:contain;object-position:center}
.photo-grid img:first-child,.photo-grid img:nth-child(4),.photo-grid img:nth-child(6){grid-column:auto;grid-row:auto}
.photo-more{display:grid;min-height:250px;background-position:center 22%}
.photo-grid img:focus-visible{outline:3px solid var(--taupe);outline-offset:3px}
.photo-more{border:0;font-family:inherit;cursor:pointer}
.bank-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.bank-grid figure{margin:0}
.bank-grid img{width:100%;height:420px;object-fit:contain;background:white;border-radius:9px}
.bank-grid figcaption{margin-top:12px;line-height:1.45}
.gift-panel{max-width:720px}
.music-toggle{position:fixed;z-index:45;right:max(16px,calc((100vw - 880px)/2));bottom:20px;width:48px;height:48px;border:1px solid #fff8;border-radius:50%;background:#77665de8;color:#fff;font-size:1.5rem;box-shadow:0 8px 24px #3d332d45;cursor:pointer}
.music-toggle span{display:block;line-height:1}.music-toggle.playing span{animation:music-pulse 1.8s ease-in-out infinite}
.lightbox{position:fixed;inset:0;z-index:80;background:#161311f2;display:grid;grid-template-columns:70px minmax(0,1fr) 70px;grid-template-rows:1fr auto;place-items:center;padding:70px 24px 20px}
.lightbox[hidden]{display:none}
.lightbox>img{grid-column:2;grid-row:1;max-width:100%;max-height:calc(100vh - 190px);object-fit:contain;border-radius:12px;box-shadow:0 12px 45px #0008}
.lightbox button{border:0;background:#fff3;color:#fff;width:48px;height:48px;border-radius:50%;font-size:2.4rem;cursor:pointer}
.lightbox-close{position:absolute;right:22px;top:18px}
.lightbox-prev{grid-column:1;grid-row:1}.lightbox-next{grid-column:3;grid-row:1}
.lightbox-count{position:absolute;left:22px;top:23px;color:white;font-family:"Be Vietnam Pro",sans-serif;font-size:1rem}
.lightbox-thumbs{grid-column:1/4;grid-row:2;display:flex;gap:8px;width:min(100%,800px);padding:10px 2px 0;overflow-x:auto;scrollbar-width:none}
.lightbox-thumbs::-webkit-scrollbar{display:none}
.lightbox .lightbox-thumbs button{flex:0 0 68px;width:68px;height:68px;padding:3px;border:2px solid transparent;border-radius:10px;background:#fff2;overflow:hidden}
.lightbox .lightbox-thumbs button.active{border-color:#e4d2bd;background:#fff5}
.lightbox-thumbs img{width:100%;height:100%;display:block;object-fit:cover;border-radius:6px}
@keyframes music-pulse{50%{transform:scale(1.18) rotate(-8deg)}}
@keyframes petal-fall{0%{transform:translate3d(0,-12vh,0) rotate(0)}45%{transform:translate3d(35px,48vh,0) rotate(190deg)}100%{transform:translate3d(-25px,112vh,0) rotate(420deg)}}
@media(max-width:700px){body{font-size:18px}.opening .eyebrow{font-size:1rem}.opening h1{font-size:clamp(3rem,13vw,4rem);gap:5px}.opening-date{font-size:1.05rem}.envelope-wrap>small{font-size:1.05rem}.hero-countdown{margin-bottom:46px;padding:12px 8px}.hero-countdown b{font-size:1.28rem}.paper-card>.eyebrow{font-size:1rem}.families{grid-template-columns:1fr;gap:20px;margin-bottom:46px}.families .divider{width:70%;height:1px;margin:auto}.families strong{font-size:1.05rem}.families p{font-size:1.3rem;line-height:1.55;margin:.35em 0}.families p span{white-space:nowrap}.couple-names{font-size:clamp(2.15rem,9.3vw,3.3rem);gap:20px}.couple-names i{font-size:2.4rem}.photo-grid{columns:2;column-gap:8px}.photo-grid img,.photo-more{margin-bottom:8px}.photo-more{min-height:210px}.event-card h2{font-size:1.8rem}.date-banner span{font-size:.95rem}.date-banner b{font-size:3rem}.calendar{padding:20px 14px}.week{font-size:.75rem}.days span,.days b{font-size:.88rem}.bank-grid{grid-template-columns:1fr}.bank-grid img{height:auto;max-height:70vh}.lightbox{grid-template-columns:42px minmax(0,1fr) 42px;grid-template-rows:1fr auto;padding:58px 8px 12px}.lightbox>img{max-height:calc(100vh - 155px)}.lightbox button{width:38px;height:38px;font-size:2rem}.lightbox-close{right:12px;top:10px}.lightbox-count{left:14px;top:17px}.lightbox-thumbs{gap:6px;padding-top:8px}.lightbox .lightbox-thumbs button{flex-basis:58px;width:58px;height:58px}.lunar-date{font-size:.96rem;letter-spacing:.06em}}
@media(prefers-reduced-motion:reduce){.petals{display:none}}
