:root{--ink:#3b3a2e;--olive:#7a8250;--olive-deep:#5a6139;--olive-dark:#3f462a;--gold:#c2a15b;--gold-soft:#dcc38c;--paper:#f7f1e1;--cream:#fbf6ea;--white:#fffdf6;--blue:#7a8250;--blue-deep:#5a6139;--serif:Georgia,"Times New Roman",serif;--sans:Arial,Helvetica,sans-serif;--script:"Snell Roundhand","Segoe Script",cursive}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:var(--paper);font-family:var(--serif);margin:0}button,input,select,textarea{font:inherit}a{color:inherit}.invitation-gate{z-index:1000;background:radial-gradient(circle at 50% 35%,#fffdf4 0,#efe6cf 44%,#d8cbab 100%);place-items:center;transition:opacity .9s,visibility .9s;display:grid;position:fixed;inset:0}.invitation-gate.is-open{opacity:0;visibility:hidden;pointer-events:none}.gate-glow{aspect-ratio:1;filter:blur(70px);background:#fffdf4a6;border-radius:50%;width:min(80vw,620px);position:absolute}.envelope{aspect-ratio:1.5;cursor:pointer;background:#f6f0e0;border:0;width:min(82vw,430px);position:relative;overflow:hidden;box-shadow:0 30px 80px #45382740}.envelope:before{content:"";background:linear-gradient(34deg,#0000 49.5%,#e6ddc3 50%) 0/50% 100% no-repeat,linear-gradient(-34deg,#0000 49.5%,#ece3ca 50%) 100%/50% 100% no-repeat;position:absolute;inset:0}.envelope-flap{clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 5px 3px #00000014);background:#fcf8ec;height:58%;position:absolute;inset:0 0 auto}.seal{aspect-ratio:1;color:#f3e6c4;background:linear-gradient(150deg,#7a8250,#5a6139);border:1px solid #c2a15b;border-radius:50%;place-items:center;width:72px;font-size:16px;display:grid;position:absolute;top:53%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 14px #3f462a52}.open-copy{color:#7a7358;font:11px var(--sans);letter-spacing:.25em;text-transform:uppercase;position:absolute;bottom:20px;left:0;right:0}.hero{color:#fff;place-items:center;min-height:100svh;display:grid;position:relative;overflow:hidden}.hero-media{object-fit:cover;background:linear-gradient(145deg,#d9cfae,#7a8250 48%,#3f462a);width:100%;height:100%;position:absolute;inset:0}.hero-wash{background:linear-gradient(#22261733,#2c31201f 55%,#1b1f107a);position:absolute;inset:0}.hero-copy{z-index:2;text-align:center;text-shadow:0 2px 22px #00000059;padding:24px;position:relative}.hero-copy p,.kicker{font:11px var(--sans);letter-spacing:.35em;text-transform:uppercase}.hero-copy h1{max-width:1000px;margin:20px auto 12px;font-size:clamp(48px,10vw,112px);font-weight:400;line-height:.92}.hero-copy span{font-family:var(--script);font-size:clamp(24px,4vw,42px)}.scroll-cue{z-index:3;font-size:28px;text-decoration:none;animation:1.8s ease-in-out infinite bob;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}@keyframes heroDrift{to{transform:scale(1.08)translate(-1%,1%)}}@keyframes bob{50%{transform:translate(-50%,8px)}}.section{padding:clamp(76px,10vw,140px) 22px}.section h2{margin:10px 0 42px;font-size:clamp(44px,7vw,76px);font-weight:400;line-height:1}.kicker{color:var(--olive-deep);margin:0}.paper-texture{background-color:var(--paper);background-image:radial-gradient(#5a61391f .7px,#0000 .7px);background-size:7px 7px}.date-section{text-align:center}.scratch-grid{grid-template-columns:repeat(3,1fr);gap:clamp(8px,2vw,18px);width:min(680px,100%);margin:0 auto;display:grid}.scratch-column{justify-items:center;gap:13px;display:grid}.scratch-column small{font:10px var(--sans);letter-spacing:.32em;color:#7d7a5a}.scratch-tile{aspect-ratio:1/1.12;background:var(--white);border:1px solid #e3d9bd;border-radius:14px;place-items:center;width:100%;display:grid;position:relative;overflow:hidden;box-shadow:0 9px 30px #6b674021}.scratch-tile span{font-size:clamp(20px,5vw,38px)}.scratch-tile canvas{touch-action:none;cursor:crosshair;width:100%;height:100%;transition:opacity .65s;position:absolute;inset:0}.scratch-tile canvas.scratched{opacity:0;pointer-events:none}.date-surprise{min-height:44px;font:clamp(30px,5vw,48px) var(--script);opacity:0;margin:35px 0 5px;transition:all .8s;transform:translateY(10px)}.date-surprise.visible{opacity:1;transform:none}.scratch-hint{color:#8a8666;margin-top:14px;font-size:13px}.letter-section{color:#fdf9ee;background:linear-gradient(165deg,#7a8250,#5a6139)}.letter-card{text-align:center;border:1px solid #c2a15b99;width:min(760px,100%);margin:auto;padding:clamp(34px,7vw,80px)}.script-heading{font:clamp(34px,6vw,55px) var(--script);margin:0 0 28px}.letter-card>p:not(.script-heading){font-size:clamp(17px,2.2vw,21px);line-height:1.9}.monogram{letter-spacing:.25em;color:var(--gold-soft);margin-top:32px;font-size:24px}.schedule-section{text-align:center;background:var(--white)}.timeline{width:min(760px,100%);margin:auto;padding:10px 0;position:relative}.timeline:before{content:"";background:#d3cba9;width:1px;position:absolute;top:0;bottom:0;left:50%}.timeline article{align-content:center;width:50%;min-height:104px;padding:10px 55px;display:grid;position:relative}.timeline article.left{text-align:right}.timeline article.right{text-align:left;margin-left:50%}.timeline time{color:var(--olive-deep);font-size:31px}.timeline p{margin:7px 0 0;font-size:17px}.timeline-dot{aspect-ratio:1;background:var(--gold);border:3px solid var(--white);width:11px;box-shadow:0 0 0 1px var(--olive);border-radius:50%;position:absolute;top:50%}.timeline .left .timeline-dot{right:-6px}.timeline .right .timeline-dot{left:-5px}.photo-break{color:#fff;text-align:center;background:linear-gradient(140deg,#e4dbbb,#7a8250 52%,#3f462a);place-items:center;min-height:72svh;display:grid;position:relative;overflow:hidden}.break-img{object-fit:cover;width:100%;height:72svh;display:block}.photo-break span,.arch-photo span,.gallery-item span{font:10px var(--sans);letter-spacing:.2em;opacity:.7}.venue-section{grid-template-columns:1fr 1fr;align-items:center;gap:clamp(36px,7vw,100px);width:min(1180px,100%);margin:auto;display:grid}.venue-copy h2{margin-bottom:30px}.venue-copy h3{font-size:30px;font-weight:400}.venue-copy p{line-height:1.7}.venue-copy a{border:1px solid var(--gold);font:12px var(--sans);letter-spacing:.14em;text-transform:uppercase;border-radius:999px;margin-top:18px;padding:13px 24px;text-decoration:none;display:inline-block}.arch-photo{color:#fff;background:linear-gradient(145deg,#e4dbbb,#7a8250 48%,#3f462a);border-radius:220px 220px 0 0;place-items:center;min-height:600px;display:grid;position:relative;overflow:hidden;box-shadow:0 24px 60px #2e41462e}.arch-photo img{object-fit:cover;width:100%;height:100%;min-height:600px}.dress-section{text-align:center}.dress-section>p:not(.kicker){max-width:630px;margin:-20px auto 35px;line-height:1.7}.palette{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.palette span{aspect-ratio:1;border:5px solid #fffdf6d9;border-radius:50%;width:54px;box-shadow:0 3px 9px #0000001a}.dress-notes{grid-template-columns:1fr 1fr;gap:25px;width:min(760px,100%);margin:42px auto 0;display:grid}.dress-notes p{border-top:1px solid #cfc6a2;margin:0;padding:25px;line-height:1.7}.gallery-section{background:var(--white);text-align:center}.gallery-grid{grid-template-columns:repeat(12,1fr);grid-auto-rows:130px;gap:12px;width:min(1100px,100%);margin:auto;display:grid}.gallery-item{color:#fff;cursor:pointer;background:linear-gradient(135deg,#e4dbbb,#7a8250);border:0;place-items:center;padding:0;display:grid;position:relative;overflow:hidden}.gallery-item img{object-fit:cover;width:100%;height:100%;display:block}.item-01{grid-area:span 3/span 5}.item-02{grid-area:span 2/span 7}.item-03{grid-area:span 2/span 3}.item-04{grid-area:span 3/span 4}.item-05{grid-area:span 2/span 5}.item-06{grid-area:span 2/span 3}.rsvp-section{color:#fdf9ee;background:linear-gradient(165deg,#5a6139,#3f462a);grid-template-columns:.8fr 1.2fr;align-items:start;gap:clamp(40px,8vw,110px);display:grid}.rsvp-section .kicker{color:var(--gold-soft)}.rsvp-copy{justify-self:end;max-width:430px}.rsvp-copy p:last-child{line-height:1.7}.rsvp-section form,.success-card{background:var(--white);width:min(570px,100%);color:var(--ink);border:1px solid #e3d9bd;border-radius:4px;padding:clamp(28px,5vw,50px);box-shadow:0 20px 70px #23281440}.rsvp-section form>label{font:12px var(--sans);letter-spacing:.07em;text-transform:uppercase;gap:9px;margin-bottom:22px;display:grid}.rsvp-section input:not([type=radio]),.rsvp-section select,.rsvp-section textarea{background:0 0;border:0;border-bottom:1px solid #c3bb98;border-radius:0;outline:none;width:100%;padding:12px 3px}.rsvp-section textarea{resize:vertical}.rsvp-section fieldset{border:0;gap:10px;margin:0 0 22px;padding:0;display:grid}.rsvp-section legend{font:12px var(--sans);letter-spacing:.07em;text-transform:uppercase;margin-bottom:10px}.rsvp-section fieldset label{font-size:15px}.rsvp-section form button{color:#f6efd9;cursor:pointer;text-transform:uppercase;letter-spacing:.13em;width:100%;font:12px var(--sans);background:linear-gradient(120deg,#7a8250,#5a6139);border:0;border-radius:999px;padding:15px}.success-card{text-align:center}.success-card>span{aspect-ratio:1;color:#5a6139;background:#eae4c9;border-radius:50%;place-items:center;width:60px;margin:0 auto 22px;font-size:28px;display:grid}footer{text-align:center;color:#fff;background:linear-gradient(160deg,#3f462a,#7a8250);place-content:center;min-height:62svh;padding:90px 22px;display:grid}footer p{font:clamp(28px,5vw,50px) var(--script)}footer h2{margin:10px 0 25px;font-size:clamp(46px,9vw,95px);font-weight:400;line-height:.95}footer span{font:11px var(--sans);letter-spacing:.35em;color:var(--gold-soft)}@media (max-width:760px){.venue-section,.rsvp-section{grid-template-columns:1fr}.venue-copy{text-align:center}.arch-photo{border-radius:180px 180px 0 0;min-height:440px}.rsvp-copy{text-align:center;justify-self:auto;margin:auto}.rsvp-section form,.success-card{margin:auto}.dress-notes{grid-template-columns:1fr;gap:0}.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:220px}.gallery-item{grid-area:span 1/span 1!important}}@media (max-width:520px){.section{padding-left:18px;padding-right:18px}.scratch-grid{gap:6px}.scratch-column small{letter-spacing:.18em;font-size:8px}.timeline:before{left:20px}.timeline article,.timeline article.right{text-align:left;width:100%;margin-left:0;padding:14px 20px 28px 54px}.timeline .left .timeline-dot,.timeline .right .timeline-dot{left:15px;right:auto}.gallery-grid{grid-auto-rows:180px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.media-fallback{color:#fff;background:linear-gradient(135deg,#e6dcbd,#7a8250 55%,#4f5535);place-items:center;width:100%;height:100%;min-height:220px;display:grid}.media-fallback span{font:10px var(--sans);letter-spacing:.2em;opacity:.85;text-align:center;padding:0 12px}.photo-break .media-fallback{min-height:72svh}.arch-photo .media-fallback{min-height:600px}.music-toggle{z-index:900;aspect-ratio:1;background:var(--white);width:50px;color:var(--olive-deep);border:0;border:1px solid var(--gold);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:50%;font-size:17px;position:fixed;bottom:16px;right:16px;box-shadow:0 8px 24px #3b3a2e33}.music-toggle:focus-visible,.ghost-btn:focus-visible,.gallery-item:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--olive-deep);outline-offset:3px}.ghost-btn{border:1px solid var(--gold);color:var(--ink);cursor:pointer;font:11px var(--sans);letter-spacing:.18em;text-transform:uppercase;background:0 0;border-radius:999px;margin-top:22px;padding:12px 26px}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti i{opacity:.9;border-radius:2px;width:7px;height:12px;animation:4.2s linear forwards fall;position:absolute;top:-14px}@keyframes fall{to{opacity:0;transform:translateY(120vh)rotate(540deg)}}.date-section{position:relative}.cruise-section{text-align:center;background:linear-gradient(170deg,#f9f4e5,#efe8d1)}.cruise-lead{max-width:640px;margin:-20px auto 44px;font-size:clamp(16px,2.1vw,20px);line-height:1.85}.cruise-facts{grid-template-columns:repeat(3,1fr);gap:18px;width:min(880px,100%);margin:0 auto 42px;display:grid}.cruise-facts div{background:var(--white);border:1px solid #ddd3b0;border-radius:4px;padding:26px 16px}.cruise-facts small{font:10px var(--sans);letter-spacing:.28em;color:var(--gold);margin-bottom:10px;display:block}.cruise-facts p{margin:0;font-size:17px;line-height:1.5}.cruise-cta{color:#f6efd9;border:1px solid var(--gold);font:12px var(--sans);letter-spacing:.16em;text-transform:uppercase;background:linear-gradient(120deg,#7a8250,#5a6139);border-radius:999px;padding:16px 34px;text-decoration:none;display:inline-block}.cruise-note{color:#7d7a5a;max-width:560px;margin:24px auto 0;font-size:14px;line-height:1.7}.dress-board{width:min(880px,100%);margin:44px auto 0}.dress-board img{border:1px solid #e3d9bd;border-radius:4px;width:100%;height:auto;box-shadow:0 16px 44px #3b3a2e26}.lightbox{z-index:1200;cursor:zoom-out;background:#26281be8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.lightbox img{object-fit:contain;max-width:min(1000px,92vw);max-height:86svh}.lightbox-close{aspect-ratio:1;background:var(--white);width:44px;color:var(--ink);cursor:pointer;border:0;border-radius:50%;font-size:24px;position:absolute;top:16px;right:20px}.hp{opacity:0!important;width:1px!important;height:1px!important;position:absolute!important;left:-9999px!important}.form-error{color:#8c3a2c;background:#fbe9e7;border-radius:4px;margin-top:16px;padding:13px 16px;font-size:14px;line-height:1.6}.privacy{color:#7d7a5a;margin-top:18px;font-size:12px;line-height:1.6}.rsvp-section form button[disabled]{opacity:.6;cursor:progress}.closing-note{max-width:640px;font-family:var(--serif);opacity:.92;margin:22px auto 6px;font-size:clamp(15px,2vw,18px);line-height:1.9}@media (max-width:760px){.cruise-facts{grid-template-columns:1fr}}.section h2{position:relative}.date-section h2:after,.schedule-section h2:after,.cruise-section h2:after,.dress-section h2:after,.gallery-section h2:after{content:"";background:linear-gradient(90deg,transparent,var(--gold),transparent);width:64px;height:1px;margin:20px auto 0;display:block}.venue-copy h2:after,.rsvp-copy h2:after{content:"";background:linear-gradient(90deg,var(--gold),transparent);width:64px;height:1px;margin:18px 0 0;display:block}@media (max-width:760px){.venue-copy h2:after,.rsvp-copy h2:after{margin-left:auto;margin-right:auto}}.venue-copy h3{color:var(--olive-deep)}.hero-copy span{color:var(--gold-soft)}.footer,footer p{color:#fdf9ee}
