.cover-page,.wedding-page{--forest:#153f31;--moss:#5f765e;--paper:#f8f3e9;--gold:#c7a65e;color:#203028;font-family:Arial,Helvetica,sans-serif}.cover-page{background:url(https://images.unsplash.com/photo-1650377509454-1bbd8392e122?auto=format&fit=crop&w=1600&q=88) 50%/cover;place-items:center;min-height:100vh;display:grid;position:relative}.cover-shade{background:linear-gradient(#07140b44,#06120bc9);position:absolute;inset:0}.cover-content{color:#fff;text-align:center;width:min(92%,480px);padding:44px 25px;position:relative}.script{color:var(--gold);margin:0 0 12px;font:italic 24px Georgia,serif}.cover-content h1,.w-hero h1{margin:0;font:400 clamp(50px,10vw,78px)/1 Georgia,serif}.cover-content h1 i,.w-hero h1 i{color:#e8cf91;font-size:.6em}.cover-date{letter-spacing:.28em;margin:18px 0 30px;font-size:12px}.invitee{color:#203028;text-shadow:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffefaed;border-radius:18px;gap:5px;padding:18px;display:grid}.invitee small,.invitee span{color:#738079;font-size:12px}.invitee strong{font:700 18px Georgia,serif}.cover-content>button{color:#183d30;background:#f7e7b6;border:0;border-radius:999px;align-items:center;gap:8px;margin:17px auto 8px;padding:13px 22px;font-weight:800;display:flex}.sound-note{opacity:.72}.wedding-page{background:var(--paper);overflow:hidden}.music-fab{z-index:30;background:var(--forest);color:#fff;border:2px solid #fff;border-radius:50%;place-items:center;width:46px;height:46px;display:grid;position:fixed;bottom:20px;right:20px;box-shadow:0 8px 25px #0003}.w-hero{background:url(https://images.unsplash.com/photo-1650377509454-1bbd8392e122?auto=format&fit=crop&w=1800&q=88) 50% 38%/cover;place-items:end center;height:min(88vh,760px);display:grid;position:relative}.w-shade{background:linear-gradient(#0c170f14,#07130cbd);position:absolute;inset:0}.w-hero-copy{color:#fff;text-align:center;padding:70px 20px;position:relative}.w-hero-copy span{letter-spacing:.16em;margin-top:18px;font-size:13px;display:block}.section{text-align:center;padding:86px max(22px,50vw - 520px)}.section h2{color:var(--forest);margin:10px 0 16px;font:500 clamp(32px,5vw,48px) Georgia,serif}.section>p{color:#617068;line-height:1.75}.overline{letter-spacing:.18em;font-weight:800;color:#8b7b55!important;font-size:11px!important}.verse{max-width:760px;margin:auto}.verse svg{color:var(--gold)}.verse blockquote{color:#3c4c45;margin:25px 0 8px;font:italic 22px/1.65 Georgia,serif}.verse p{font-size:13px}.couple{background:#fff}.couple>p:not(.overline){max-width:610px;margin:0 auto}.couple-grid{grid-template-columns:1fr auto 1fr;align-items:center;gap:38px;margin-top:50px;display:grid}.couple-grid>span{color:var(--gold);font:italic 38px Georgia,serif}.portrait{background-size:cover;border:7px solid #f4efe4;border-radius:50%;width:190px;height:190px;margin:auto;box-shadow:0 15px 35px #2030281d}.portrait.bride{background-image:url(https://images.unsplash.com/photo-1650377509454-1bbd8392e122?auto=format&fit=crop&w=500&q=82);background-position:42%}.portrait.groom{background-image:url(https://images.unsplash.com/photo-1650377509488-724221735c19?auto=format&fit=crop&w=500&q=82);background-position:65%}.couple-grid h3{color:var(--forest);margin:18px 0 8px;font:500 27px Georgia,serif}.couple-grid p{color:#6a766f;font-size:14px;line-height:1.65}.countdown{background:var(--forest);color:#fff}.countdown h2{color:#fff}.clock{justify-content:center;gap:12px;margin:32px 0;display:flex}.clock div{background:#ffffff10;border:1px solid #ffffff24;border-radius:14px;width:86px;padding:15px 5px}.clock b{font:500 30px Georgia,serif;display:block}.clock span{opacity:.72;font-size:11px}.countdown>a,.events a{border-radius:999px;align-items:center;gap:8px;padding:12px 18px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.countdown>a{color:var(--forest);background:#f4dfaa}.events{background:#f3eddf}.event-grid{grid-template-columns:1fr 1fr;gap:22px;margin-top:38px;display:grid}.event-grid article{background:#fff;border:1px solid #e7ddc9;border-radius:22px;padding:34px 25px}.event-grid article>span{width:48px;height:48px;color:var(--forest);background:#edf2ed;border-radius:50%;place-items:center;margin:auto;display:grid}.event-grid h3{margin:15px 0;font:500 27px Georgia,serif}.event-grid b{color:#806d40;font-size:14px}.event-grid p{color:#66736c;font-size:14px;line-height:1.6}.event-grid hr{border:0;border-top:1px solid #ece7dd;margin:20px}.events a{background:var(--forest);color:#fff}.spotify{max-width:660px;margin:auto}.spotify>svg{color:var(--forest)}.spotify iframe{border:0;border-radius:16px;margin-top:24px}.rsvp{background:#fff}.rsvp>p:not(.overline){color:#6c7872}.rsvp form{text-align:left;background:#f8f6f0;border:1px solid #e6e1d6;border-radius:22px;gap:18px;max-width:660px;margin:32px auto 0;padding:28px;display:grid}.rsvp label{gap:8px;font-size:13px;font-weight:700;display:grid}.rsvp input,.rsvp select,.rsvp textarea{background:#fff;border:1px solid #d9d9d2;border-radius:10px;outline:none;padding:12px}.rsvp input:focus,.rsvp select:focus,.rsvp textarea:focus{border-color:var(--forest)}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.rsvp form button{background:var(--forest);color:#fff;border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:13px;font-weight:800;display:flex}.rsvp output{text-align:center;color:var(--moss);font-size:13px}.gift{background:#e8efe9}.gift>svg{color:var(--forest)}.gift>p:not(.overline){color:#647169;max-width:560px;margin:0 auto;line-height:1.7}.bank-card{color:#fff;text-align:left;background:linear-gradient(135deg,#143e30,#275f48);border-radius:20px;width:min(100%,420px);margin:30px auto 0;padding:25px;display:grid;box-shadow:0 20px 40px #173a2c26}.bank-card small{letter-spacing:.14em;opacity:.7}.bank-card strong{letter-spacing:.08em;margin:20px 0 5px;font:500 27px Georgia,serif}.bank-card span{opacity:.8;font-size:13px}.bank-card button{color:#fff;background:#ffffff10;border:1px solid #ffffff4a;border-radius:8px;justify-self:end;align-items:center;gap:7px;margin-top:20px;padding:9px 12px;display:flex}footer{color:#fff;text-align:center;background:#102e24;justify-items:center;gap:10px;padding:70px 20px;display:grid}footer>svg{color:#dfc27b}footer h2{margin:8px 0;font:500 32px Georgia,serif}footer p{opacity:.7}footer a{color:#efd997;margin-top:15px;font-size:13px}footer small{opacity:.45;margin-top:10px}@media (max-width:650px){.section{padding:68px 20px}.couple-grid{grid-template-columns:1fr;gap:20px}.couple-grid>span{margin:-8px 0}.portrait{width:165px;height:165px}.event-grid{grid-template-columns:1fr}.clock{gap:6px}.clock div{width:23%;padding:13px 2px}.clock b{font-size:25px}.form-row{grid-template-columns:1fr}.rsvp form{padding:20px}}.published-gallery{grid-template-columns:repeat(3,1fr);gap:12px;max-width:850px;margin:28px auto;display:grid}.published-gallery img{aspect-ratio:1;object-fit:cover;border-radius:14px;width:100%}@media (max-width:650px){.published-gallery{grid-template-columns:repeat(2,1fr)}}.instagram-link{color:var(--forest);align-items:center;gap:6px;margin-top:10px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.instagram-link svg{width:16px}.map-card{background:#fff;border-radius:22px;max-width:850px;margin:30px auto 0;overflow:hidden;box-shadow:0 18px 45px #283b321a}.map-card iframe{border:0;width:100%;height:330px;display:block}.map-card>a{margin:14px}.w-hero-copy{animation:1s cubic-bezier(.2,.8,.2,1) both hero-arrive}.portrait{transition:transform .4s,box-shadow .4s}.portrait:hover{transform:translateY(-6px)scale(1.02);box-shadow:0 22px 42px #20302829}@keyframes hero-arrive{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}@keyframes section-reveal{0%{opacity:.2;transform:translateY(45px)}to{opacity:1;transform:none}}@supports (animation-timeline:view()){.wedding-page .section{animation:linear both section-reveal;animation-timeline:view();animation-range:entry 5% cover 32%}}@media (prefers-reduced-motion:reduce){.w-hero-copy,.wedding-page .section{animation:none!important}.portrait{transition:none}}@media (max-width:650px){.map-card iframe{height:260px}}.cover-page,.w-hero,.portrait.bride,.portrait.groom{background-image:url(/images/cartoon-wedding-couple.png)}.portrait.bride{background-position:72% 22%;background-size:210%}.portrait.groom{background-position:27% 22%;background-size:210%}.instagram-link img{object-fit:contain;width:18px;height:18px}.map-grid{grid-template-columns:1fr 1fr;gap:22px;max-width:1100px;margin:0 auto;display:grid}.map-grid .map-card{width:100%}@media (max-width:650px){.map-grid{grid-template-columns:1fr}}
