*{box-sizing:border-box} :root{--wine:#35070d;--wine2:#4a1018;--paper:#f4efe7;--ink:#321b1b;--muted:#c8b9ae;--line:#c9b9ac;--serif:'Cormorant Garamond',Georgia,serif;--script:'Great Vibes',cursive}html{scroll-behavior:smooth}body{margin:0;background:var(--wine);color:var(--paper);font-family:var(--serif);font-size:18px;line-height:1.45}a{color:inherit}.progress{position:fixed;z-index:20;top:0;left:0;right:0;height:3px;background:transparent}.progress span{display:block;height:100%;width:0;background:#d7c1a8}.hero{min-height:88vh;position:relative;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#56151d 0%,var(--wine) 68%);text-align:center;padding:80px 22px 60px}.hero-inner{max-width:760px;position:relative;z-index:1}.eyebrow{text-transform:uppercase;letter-spacing:.28em;font-size:.75rem;color:#c8b9ae}.hero h1{font-size:clamp(2.6rem,7vw,5.5rem);font-weight:400;line-height:.9;text-transform:uppercase;margin:24px 0 12px}.hero h1 span{display:block;font-size:.65em;margin:8px}.script{font-family:var(--script);font-weight:400;font-size:clamp(2.1rem,4vw,3.2rem);line-height:1.05;margin:0;color:#c7a69b}.hero-script{font-size:clamp(2.6rem,6vw,5rem);margin-top:22px;color:#d4b6aa}.down{display:inline-grid;place-items:center;text-decoration:none;border:1px solid #92736a;border-radius:50%;width:42px;height:42px;margin-top:36px;animation:float 2.8s ease-in-out infinite}.hero-ornament{position:absolute;color:#8f6458;font-size:clamp(8rem,23vw,19rem);opacity:.2;line-height:1;pointer-events:none}.ornament-left{left:-.05em;top:-.25em;transform:rotate(-25deg)}.ornament-right{right:-.08em;bottom:-.35em;transform:rotate(155deg)}.paper{background:var(--paper);color:var(--ink);position:relative;padding:clamp(56px,8vw,110px) max(7vw,24px)}.torn-bottom:after,.torn-top:before{content:"";position:absolute;left:0;right:0;height:14px;background:var(--paper);z-index:2}.torn-bottom:after{bottom:-7px;clip-path:polygon(0 0,5% 15%,12% 0,19% 25%,27% 5%,35% 30%,44% 0,52% 22%,61% 4%,70% 24%,80% 0,89% 18%,96% 0,100% 22%,100% 100%,0 100%)}.torn-top:before{top:-7px;clip-path:polygon(0 0,100% 0,100% 75%,93% 100%,83% 70%,72% 100%,60% 65%,50% 100%,38% 70%,25% 100%,14% 70%,5% 100%,0 72%)}.paper-grid,.location-inner{max-width:1150px;margin:auto;display:grid;grid-template-columns:1fr .8fr;gap:clamp(35px,7vw,100px);align-items:center}.paper h2,.section-dark h2{font-size:clamp(2rem,4.5vw,3.8rem);font-weight:400;line-height:.92;text-transform:uppercase;margin:.1em 0 .5em}.intro p:not(.script){max-width:490px;color:#695856;font-size:clamp(1rem,1.5vw,1.18rem)}.signature{text-align:right;margin-top:26px!important}.photo-frame{position:relative;min-height:310px;overflow:hidden;border:1px solid #c9b9ac;padding:8px;background:#e8dfd4;transform:rotate(1deg);box-shadow:0 12px 35px #2c0b0d14}.photo-frame img,.outfit-card img{display:block;width:100%;height:100%;object-fit:cover}.photo-frame img{position:absolute;inset:8px;width:calc(100% - 16px);height:calc(100% - 16px)}.photo-hint{display:none;position:absolute;inset:0;place-items:center;text-align:center;color:#88736b;font-size:.9rem;letter-spacing:.08em}.empty-photo .photo-hint{display:grid}.empty-photo:after{content:"✧";position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);font-size:2rem;color:#a98d7d}.section-dark{background:var(--wine);color:var(--paper);padding:clamp(60px,8vw,110px) max(7vw,24px)}.date-section{text-align:center;padding-top:70px;padding-bottom:75px}.date-heading .script{font-size:2.8rem}.date-line{border-top:1px solid #86645d;border-bottom:1px solid #86645d;display:inline-block;padding:8px 32px;margin:15px auto 24px;letter-spacing:.08em}.calendar{max-width:360px;margin:0 auto}.weekdays,.days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.weekdays{font-size:.72rem;color:#bca59a;text-transform:uppercase;margin-bottom:12px}.days span{display:grid;place-items:center;aspect-ratio:1;border-radius:50%;font-size:.86rem}.days .highlight{background:var(--paper);color:var(--wine);font-weight:600;box-shadow:0 0 0 4px #f4efe726}.calendar-note{font-size:.9rem;color:#c4b3a7;margin-top:18px}.location-inner{grid-template-columns:.7fr 1fr}.location p:not(.script){color:#76635e}.location-time .script{font-size:3.5rem;color:var(--wine)}.location-time h3{font-size:1.2rem;font-weight:500;text-transform:uppercase;margin:.2rem 0}.text-link{display:inline-block;margin-top:10px;padding-bottom:4px;border-bottom:1px solid #9c8175;text-decoration:none;font-size:.95rem}.section-title{text-align:center;margin-bottom:42px}.section-title .script{font-size:2.8rem}.timeline{max-width:760px;margin:auto}.timeline-item{display:grid;grid-template-columns:42px 74px 14px 1fr;gap:16px;align-items:start;padding:18px 0;border-bottom:1px solid #6a3037}.time-icon{font-size:1.6rem;color:#b89b8e}.timeline-item time{font-size:1.45rem;color:#d8c4b6;font-variant-numeric:tabular-nums}.timeline-dot{width:8px;height:8px;border:1px solid #d0b7a6;border-radius:50%;margin-top:10px;position:relative}.timeline-dot:after{content:"";position:absolute;top:8px;left:3px;width:1px;height:60px;background:#6a3037}.timeline-item h3{margin:0 0 3px;font-size:1.25rem;font-weight:500}.timeline-item p{margin:0;color:#d0bdb3;font-size:1rem}.timeline-item .muted,.muted{color:#bba79c!important;font-size:.92rem!important}.dress-layout{max-width:1150px;margin:auto;display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(30px,7vw,90px);align-items:start}.dress-title h2{margin-top:10px}.dress-info p{font-size:1.03rem;color:#e0d0c5;margin:.8rem 0}.dress-info strong{color:#fff1e6;font-weight:600}.swatches{display:flex;gap:12px;margin:8px 0 24px}.swatches span{width:clamp(32px,4vw,52px);aspect-ratio:1;border-radius:50%;background:var(--sw);border:1px solid #ffffff25}.readable-note{font-size:1.08rem!important;color:#f0d7c8!important;margin-top:1.3rem!important}.outfit-gallery{max-width:1150px;margin:36px auto 0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.outfit-card{margin:0;min-width:0}.outfit-card img{height:210px;background:#4b2529;border:1px solid #78545a}.outfit-card.empty-photo{position:relative;min-height:210px;background:linear-gradient(145deg,#4b2027,#1e0a0d);border:1px solid #78545a;display:grid;place-items:center}.outfit-card.empty-photo:before{content:"✧";color:#bca092;font-size:2rem;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.outfit-card figcaption{font-size:.78rem;line-height:1.25;color:#d0bdb3;margin-top:7px}.inspo-links{max-width:1150px;margin:25px auto 0;display:flex;gap:18px;flex-wrap:wrap;font-size:.95rem;color:#d6c2b6}.inspo-links p{flex-basis:100%;margin:0}.inspo-links a{color:#f1dfd4;text-underline-offset:4px}.countdown-section{text-align:center;padding-top:55px;padding-bottom:75px}.countdown-section>.script{font-size:2.4rem}.countdown{display:flex;justify-content:center;gap:clamp(18px,5vw,62px);margin-top:22px}.countdown div{display:grid;gap:0}.countdown strong{font-weight:400;font-size:clamp(2rem,5vw,4.5rem);line-height:1;font-variant-numeric:tabular-nums}.countdown span{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:#c9b4a7;margin-top:8px}.rsvp{padding-top:75px;padding-bottom:80px}.rsvp-shell{max-width:900px;margin:auto}.rsvp-heading{text-align:center;margin-bottom:34px}.rsvp-heading h2{margin-top:6px}.rsvp-heading>p:last-child{color:#78645d;font-size:1.05rem}.rsvp-form{background:#fffaf4;border:1px solid #dfd1c3;padding:clamp(20px,4vw,42px);box-shadow:0 14px 38px #3a11120d}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 32px}.full{grid-column:1/-1}.half{grid-column:span 1}.form-field label,fieldset legend{display:block;font-size:1.08rem;color:#3d2021;margin-bottom:9px}input:not([type=radio]):not([type=checkbox]),textarea{width:100%;font:inherit;font-size:1rem;color:#3d2021;background:#fffdf9;border:1px solid #cdbab0;border-radius:3px;padding:12px 13px;outline:none;transition:border-color .2s,box-shadow .2s}input:focus,textarea:focus{border-color:#71323a!important;box-shadow:0 0 0 3px #71323a12}textarea{resize:vertical}fieldset{border:0;border-top:1px solid #e3d6cc;margin:0;padding:15px 0 0;min-width:0}fieldset legend{padding:0 8px 0 0}.choice{display:flex!important;align-items:flex-start;gap:10px;margin:8px 0!important;cursor:pointer;color:#614d49!important;font-size:1rem!important;line-height:1.35}.choice input{accent-color:var(--wine);margin:4px 0 0;flex:0 0 auto;width:15px;height:15px}.choice span{flex:1}.field-hint,small{font-size:.9rem;color:#927d73}.form-field small{display:block;margin-top:8px;line-height:1.3}.rsvp-form button{width:100%;border:0;background:var(--wine);color:#fff5ec;padding:15px 20px;margin-top:24px;font:500 1.05rem var(--serif);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .2s,transform .2s}.rsvp-form button:hover{background:#57151f;transform:translateY(-1px)}.rsvp-form button:disabled{opacity:.6;cursor:wait;transform:none}.form-note,#formStatus{text-align:center;color:#816d65;font-size:.92rem}.footer{padding-top:65px;padding-bottom:28px}.footer-grid{max-width:1050px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:80px}.footer h2{font-size:clamp(1.8rem,3vw,2.8rem)}.footer p:not(.script){color:#d0bdb3}.contact{border-top:1px solid #6a3037;padding:13px 0}.contact h3{font-size:1.15rem;font-weight:500;margin:0;text-transform:uppercase}.contact p{margin:3px 0}.contact a{font-size:.9rem;text-underline-offset:3px}.footer-end{text-align:center;border-top:1px solid #6a3037;padding-top:24px;margin:40px 0 0;font-size:.9rem;letter-spacing:.08em}.reveal{opacity:0;transform:translateY(18px);transition:opacity .75s ease,transform .75s ease}.reveal.visible{opacity:1;transform:translateY(0)}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}@media(max-width:800px){body{font-size:17px}.hero{min-height:78vh}.paper-grid,.location-inner,.dress-layout{grid-template-columns:1fr;gap:30px}.photo-frame{min-height:250px;max-width:520px;width:100%;margin:auto}.location-time{border-top:1px solid #d6c6ba;padding-top:20px}.timeline-item{grid-template-columns:25px 60px 10px 1fr;gap:10px}.time-icon{font-size:1.25rem}.timeline-item time{font-size:1.2rem}.timeline-item p{font-size:.98rem}.outfit-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.outfit-card img,.outfit-card.empty-photo{height:180px;min-height:180px}.footer-grid{gap:35px}.form-grid{gap:20px}.rsvp-form{padding:22px}.dress-title h2{font-size:2.8rem}}@media(max-width:520px){.paper,.section-dark{padding-left:22px;padding-right:22px}.hero h1{font-size:2.65rem}.hero-script{font-size:2.8rem}.paper h2,.section-dark h2{font-size:2.4rem}.outfit-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.outfit-card img,.outfit-card.empty-photo{height:205px;min-height:205px}.form-grid{grid-template-columns:1fr;gap:18px}.half{grid-column:1/-1}.rsvp-form{padding:18px 16px}.choice{font-size:1rem!important}.countdown{gap:18px}.countdown strong{font-size:2.25rem}.countdown span{font-size:.65rem}.footer-grid{grid-template-columns:1fr;gap:25px}.timeline-item{grid-template-columns:18px 55px 8px 1fr;gap:8px}.time-icon{font-size:1rem}.timeline-item time{font-size:1.1rem}.timeline-item h3{font-size:1.15rem}.timeline-item p{font-size:.93rem}.date-line{padding:8px 16px}.inspo-links{display:grid;gap:12px}.readable-note{font-size:1.05rem!important}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* Final visual refinements */
.hero-date{font-size:clamp(1.15rem,2.5vw,1.8rem);letter-spacing:.22em;margin-bottom:22px}
.channel-link-placeholder{display:inline-block;margin-top:5px;color:#d8c4b6;font-size:.9rem;border-bottom:1px dashed #8e6b65;padding-bottom:3px}
.outfit-card img{filter:sepia(.24) saturate(.72) contrast(1.04) brightness(1.14)}
.outfit-card{position:relative;overflow:hidden}
.outfit-card:nth-child(n+4) img{object-position:50% 100%;transform:scale(1.12);transform-origin:50% 100%}
.outfit-card:nth-child(5) img{transform:none;object-position:center}
.outfit-card:nth-child(6) img{filter:sepia(0) saturate(.72) contrast(1.04) brightness(.9)}
