:root{--ink:#18372d;--cream:#f4f0e7;--paper:#faf8f2;--sand:#d9c5a7;--coral:#c77c5b;--line:rgba(24,55,45,.18)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;font-weight:300}.hero{height:100svh;min-height:680px;position:relative;color:#fff;background:url("assets/hawaii-hero.png") center/cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,27,22,.38),rgba(8,27,22,.1) 45%,rgba(8,27,22,.46))}.nav{position:absolute;z-index:3;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:30px 4.5%;border-bottom:1px solid rgba(255,255,255,.35)}.monogram{font-family:Italiana,serif;font-size:22px;letter-spacing:.15em;color:inherit;text-decoration:none}.monogram span{font-size:12px}.nav-links{display:flex;gap:34px}.nav-links a{color:#fff;text-decoration:none;font-size:11px;text-transform:uppercase;letter-spacing:.14em}.nav-guide,.text-link,.close-guide{border:0;background:none;color:inherit;font:inherit;cursor:pointer}.nav-guide{font-size:11px;text-transform:uppercase;letter-spacing:.14em}.nav-guide span{margin-left:8px}.hero-content{position:absolute;z-index:2;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-top:40px}.eyebrow{text-transform:uppercase;letter-spacing:.27em;font-size:10px;font-weight:500}.eyebrow.light{color:rgba(255,255,255,.75)}h1,h2,h3,p{margin-top:0}.hero h1{font:400 clamp(72px,11vw,176px)/.73 Italiana,serif;letter-spacing:-.05em;margin:38px 0}.hero h1 span{display:block}.hero h1 i{display:block;font-size:.4em;font-weight:400;margin:.14em 0}.hero-meta{display:flex;align-items:center;gap:16px;text-transform:uppercase;font-size:10px;letter-spacing:.2em}.hero-meta b{width:34px;height:1px;background:#fff}.round-link{position:absolute;bottom:35px;width:72px;height:72px;border:1px solid rgba(255,255,255,.6);border-radius:50%;color:white;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:9px;text-transform:uppercase;letter-spacing:.12em}.hero-side{position:absolute;z-index:2;left:4.5%;bottom:44px;font-size:10px;letter-spacing:.18em;text-transform:uppercase}.intro{padding:150px max(7%,calc((100vw - 1200px)/2));position:relative}.intro h2,.weekend-cta h2,.travel h2{font:400 clamp(50px,7vw,100px)/.95 Italiana,serif;letter-spacing:-.035em;margin:25px 0 50px}.intro h2 em,.weekend-cta h2 em,.travel h2 em,.guide h2 em{font-weight:400;color:var(--coral)}.intro-copy{display:grid;grid-template-columns:1fr 1fr;gap:9%;margin-left:36%;line-height:1.8;font-size:14px}.placeholder{opacity:.62}.floral-mark{position:absolute;left:9%;bottom:130px;font:70px Italiana;color:var(--sand)}.details{display:grid;grid-template-columns:1.2fr 1fr;min-height:800px;background:var(--ink);color:white}.details-photo{background:linear-gradient(rgba(10,40,30,.1),rgba(10,40,30,.35)),url("assets/hawaii-hero.png") left center/cover}.details-card{padding:110px 11%}.details-card h2{font:400 clamp(58px,6vw,92px)/.9 Italiana;margin:25px 0 62px}.detail-row{display:grid;grid-template-columns:45px 1fr;padding:20px 0;border-top:1px solid rgba(255,255,255,.18)}.detail-row>span{font-size:9px;opacity:.5}.detail-row p{font-size:13px;line-height:1.7;margin:0}.detail-row .label,.label{text-transform:uppercase;letter-spacing:.18em;font-size:9px;opacity:.55;margin-bottom:5px}.detail-row i{font-style:normal;opacity:.55}.text-link{padding:25px 0;border-bottom:1px solid rgba(255,255,255,.5);width:100%;text-align:left;text-transform:uppercase;letter-spacing:.18em;font-size:10px;display:flex;justify-content:space-between}.weekend-cta{padding:140px 8%;display:flex;justify-content:space-between;align-items:end;background:var(--cream)}.weekend-cta h2{margin-bottom:0}.circle-button{width:180px;height:180px;border:1px solid var(--ink);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;display:flex;justify-content:center;align-items:center;position:relative;text-transform:uppercase;letter-spacing:.17em;font-size:10px;transition:.3s}.circle-button b{position:absolute;right:34px;top:32px;font-size:20px;font-weight:300}.circle-button:hover{background:var(--ink);color:#fff;transform:rotate(4deg)}.travel{padding:140px 8%}.travel-heading{display:grid;grid-template-columns:1fr 2fr}.travel-heading h2{margin-top:0}.travel-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:30px}.travel article{padding:35px 9% 20px 0;border-right:1px solid var(--line);min-height:280px}.travel article+article{padding-left:9%}.travel article:last-child{border:0}.travel article>span{font-size:10px;opacity:.5}.travel h3{font:36px Italiana;margin:50px 0 20px}.travel article p{font-size:13px;line-height:1.7;opacity:.7}.travel .status{text-transform:uppercase;letter-spacing:.18em;font-size:9px;margin-top:35px;color:var(--coral);opacity:1}.rsvp{text-align:center;color:#fff;background:linear-gradient(rgba(20,56,45,.86),rgba(20,56,45,.86)),url("assets/hawaii-hero.png") center/cover;padding:135px 20px}.rsvp h2{font:400 clamp(65px,9vw,120px)/.8 Italiana;margin:34px}.rsvp>p:not(.eyebrow){font-size:13px;opacity:.7}.rsvp button{margin-top:30px;border:1px solid rgba(255,255,255,.5);color:#fff;background:none;border-radius:99px;padding:17px 31px;text-transform:uppercase;letter-spacing:.16em;font-size:9px}footer{display:flex;align-items:center;justify-content:space-between;background:#102b23;color:#fff;padding:34px 5%;font-size:9px;letter-spacing:.12em;text-transform:uppercase}footer p{margin:0;opacity:.55}.guide{position:fixed;z-index:20;inset:0;background:#17372d;color:white;overflow:auto;opacity:0;visibility:hidden;transform:translateY(20px);transition:.4s ease}.guide.open{opacity:1;visibility:visible;transform:none}.guide-top{display:flex;justify-content:space-between;align-items:center;padding:28px 5%;border-bottom:1px solid rgba(255,255,255,.17)}.close-guide{text-transform:uppercase;letter-spacing:.16em;font-size:10px}.close-guide span{font-size:22px;margin-left:10px}.guide-inner{max-width:1000px;margin:auto;padding:70px 30px 100px}.guide h2{font:400 clamp(70px,10vw,130px)/.8 Italiana;margin:28px 0 55px}.guide-tabs{display:flex;gap:35px;border-bottom:1px solid rgba(255,255,255,.2);margin-bottom:15px}.guide-tabs button{background:none;border:0;color:rgba(255,255,255,.45);padding:18px 0;text-transform:uppercase;font:500 10px "DM Sans";letter-spacing:.2em;cursor:pointer}.guide-tabs button.active{color:#fff;border-bottom:2px solid var(--coral)}.tab-panel{display:none}.tab-panel.active{display:block}.timeline-item{display:grid;grid-template-columns:210px 1fr;padding:34px 0;border-bottom:1px solid rgba(255,255,255,.15)}.timeline-item.feature{color:#f5c9ad}.day{text-transform:uppercase;letter-spacing:.15em;font-size:10px}.day span{display:block;opacity:.4;margin-top:8px}.timeline-item h3,.dress-intro h3{font:35px Italiana;margin-bottom:7px}.timeline-item div>p{font-size:11px;text-transform:uppercase;letter-spacing:.12em;opacity:.7}.timeline-item small{display:block;max-width:520px;line-height:1.7;opacity:.5}.dress-intro{padding:45px 0;max-width:680px}.dress-intro h3{font-size:55px}.dress-intro>p:last-child{line-height:1.8;opacity:.65}.palette{display:flex;margin:20px 0 60px}.palette span{width:64px;height:64px;border-radius:50%;background:var(--c);margin-right:-8px;border:3px solid #17372d}.dress-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;border-top:1px solid rgba(255,255,255,.18);padding-top:35px}.dress-grid p{font-size:13px;line-height:1.8;opacity:.65}.dress-grid .label{opacity:.4}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}body.no-scroll{overflow:hidden}
@media(max-width:760px){.nav{padding:24px}.nav-links{display:none}.hero{min-height:620px}.hero h1{font-size:clamp(68px,22vw,100px)}.hero-side{display:none}.intro{padding:100px 24px}.intro-copy{grid-template-columns:1fr;margin:0;gap:12px}.floral-mark{display:none}.details{grid-template-columns:1fr}.details-photo{height:50vh;min-height:390px}.details-card{padding:80px 28px}.weekend-cta{padding:95px 24px;align-items:center;flex-direction:column;text-align:center;gap:55px}.circle-button{width:145px;height:145px}.travel{padding:100px 24px}.travel-heading{display:block}.travel-grid{grid-template-columns:1fr}.travel article,.travel article+article{padding:30px 0;border-right:0;border-bottom:1px solid var(--line);min-height:0}.travel h3{margin:28px 0 12px}.rsvp{padding:100px 20px}footer{flex-direction:column;gap:18px}.guide-inner{padding:55px 24px}.timeline-item{grid-template-columns:1fr;gap:15px}.dress-grid{grid-template-columns:1fr;gap:15px}.palette span{width:53px;height:53px}.guide h2{font-size:75px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.guide{transition:none}}
.proposal{background:#e8dfcf;padding:140px 8%;display:grid;grid-template-columns:repeat(12,1fr);gap:70px 24px;align-items:start}.proposal-heading{grid-column:1/6}.proposal-heading h2{font:400 clamp(64px,8vw,115px)/.82 Italiana,serif;letter-spacing:-.04em;margin:28px 0}.proposal-heading h2 em{font-weight:400;color:var(--coral)}.proposal-heading>p:last-child{max-width:390px;font-size:14px;line-height:1.8;opacity:.7}.proposal-photo{margin:0}.proposal-photo img{display:block;width:100%;height:100%;object-fit:cover}.proposal-photo figcaption{display:flex;justify-content:space-between;margin-top:12px;text-transform:uppercase;letter-spacing:.16em;font-size:9px}.proposal-photo figcaption span{opacity:.45}.proposal-main{grid-column:7/13;height:590px}.proposal-ring{grid-column:2/6;height:330px}.proposal-embrace{grid-column:7/13;height:430px}.proposal-portrait{grid-column:3/8;height:650px}.proposal-portrait img{object-position:center 35%}
@media(max-width:760px){.proposal{padding:95px 24px;display:block}.proposal-heading{position:static;margin-bottom:55px}.proposal-photo{height:auto;margin-bottom:48px}.proposal-photo img{height:auto;max-height:540px}.proposal-main img,.proposal-embrace img{aspect-ratio:4/3;object-fit:cover}.proposal-ring img{aspect-ratio:16/10;object-fit:cover}.proposal-portrait{width:82%;margin-left:auto;margin-right:auto}}
.nav-actions{display:flex;align-items:center;gap:24px}.nav-rsvp{border:1px solid rgba(255,255,255,.65);border-radius:99px;background:rgba(255,255,255,.08);color:#fff;padding:11px 19px;font:500 9px "DM Sans";letter-spacing:.18em;cursor:pointer;transition:.25s}.nav-rsvp:hover{background:#fff;color:var(--ink)}.rsvp-modal{width:min(1040px,calc(100% - 40px));max-height:calc(100svh - 40px);padding:0;border:0;background:var(--paper);color:var(--ink);box-shadow:0 28px 100px rgba(4,20,15,.38);overflow:auto}.rsvp-modal[open]{display:grid;grid-template-columns:.85fr 1.15fr}.rsvp-modal::backdrop{background:rgba(8,28,22,.77);backdrop-filter:blur(7px)}.rsvp-modal-copy{padding:70px 55px;background:#e8dfcf}.rsvp-modal-copy h2{font:400 clamp(60px,7vw,92px)/.82 Italiana;margin:30px 0}.rsvp-modal-copy h2 em{font-weight:400;color:var(--coral)}.rsvp-modal-copy>p:last-child{font-size:13px;line-height:1.8;opacity:.65}.rsvp-close{position:fixed;z-index:2;top:30px;right:34px;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);font-size:25px;font-weight:300;cursor:pointer}.rsvp-form{padding:68px 55px 48px}.rsvp-form label,.rsvp-form legend{display:block;text-transform:uppercase;letter-spacing:.15em;font-size:9px;font-weight:500}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:25px}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{display:block;width:100%;margin:10px 0 24px;padding:12px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);font:300 14px "DM Sans";outline:none}.rsvp-form textarea{resize:vertical}.rsvp-form input:focus,.rsvp-form select:focus,.rsvp-form textarea:focus{border-color:var(--coral)}.rsvp-form fieldset{border:0;padding:0;margin:0 0 28px}.radio-row{display:flex;gap:13px;margin-top:14px}.radio-row label{flex:1}.radio-row input{position:absolute;opacity:0;width:1px}.radio-row span{display:block;border:1px solid var(--line);padding:14px 10px;text-align:center;cursor:pointer}.radio-row input:checked+span{background:var(--ink);color:#fff}.rsvp-submit{width:100%;display:flex;justify-content:space-between;border:0;background:var(--ink);color:#fff;padding:18px 22px;text-transform:uppercase;letter-spacing:.18em;font:500 9px "DM Sans";cursor:pointer}.rsvp-submit:disabled{opacity:.55;cursor:wait}.rsvp-submit b{font-size:16px;font-weight:300}.form-status{min-height:21px;margin:15px 0 0;font-size:11px;line-height:1.5}.form-status.error{color:#9b3e2e}.form-status.success{color:#376a4f}.honeypot{position:absolute!important;left:-9999px!important}.rsvp button[data-open-rsvp]{cursor:pointer;transition:.25s}.rsvp button[data-open-rsvp]:hover{background:#fff;color:var(--ink)}
@media(max-width:760px){.nav-actions{gap:8px}.nav-guide{display:none}.nav-rsvp{padding:10px 16px}.rsvp-modal{width:100%;height:100svh;max-height:none}.rsvp-modal[open]{display:block}.rsvp-modal-copy{padding:64px 25px 32px}.rsvp-modal-copy h2{font-size:62px}.rsvp-form{padding:38px 25px}.form-row{grid-template-columns:1fr;gap:0}.rsvp-close{top:14px;right:14px}.radio-row{flex-direction:column}}
.nav-gift{border:0;background:none;color:#fff;font:500 9px "DM Sans";letter-spacing:.14em;text-transform:uppercase;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.5);padding:7px 0}.form-help{font-size:10px;line-height:1.6;opacity:.58;margin:-12px 0 24px}.gift-modal{width:min(620px,calc(100% - 36px));padding:clamp(45px,8vw,85px);border:0;background:var(--paper);color:var(--ink);box-shadow:0 28px 100px rgba(4,20,15,.38);text-align:center}.gift-modal::backdrop{background:rgba(8,28,22,.77);backdrop-filter:blur(7px)}.gift-modal h2{font:400 clamp(52px,7vw,82px)/.86 Italiana;margin:28px 0}.gift-modal h2 em{font-weight:400;color:var(--coral)}.gift-modal>p:not(.eyebrow){font-size:13px;line-height:1.8;opacity:.68}.gift-options{margin-top:32px;border-top:1px solid var(--line);text-align:left}.gift-options a{display:grid;grid-template-columns:1fr auto 20px;gap:12px;align-items:center;padding:17px 4px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.gift-options span{text-transform:uppercase;letter-spacing:.16em;font-size:9px}.gift-options strong{font-size:12px;font-weight:400;color:var(--coral)}.gift-options b{font-size:15px;font-weight:300;transition:.2s}.gift-options a:hover b{transform:translate(3px,-3px)}
@media(max-width:760px){.nav-gift{max-width:100px;line-height:1.35}.gift-modal{padding:60px 25px}.gift-modal h2{font-size:55px}}
.hero h1{font-family:"Playfair Display",Georgia,serif;font-weight:400;line-height:.72;letter-spacing:-.025em}.hero h1 i{font-family:"Playfair Display",Georgia,serif;font-style:italic;font-weight:400}.nav-links{position:absolute;left:50%;transform:translateX(-50%)}.countdown{display:flex;align-items:center;justify-content:center;gap:clamp(12px,2.2vw,34px);margin-top:30px;padding:14px 24px;border-top:1px solid rgba(255,255,255,.35);border-bottom:1px solid rgba(255,255,255,.35);min-width:min(620px,88vw)}.countdown div{display:flex;flex-direction:column;gap:4px;min-width:58px}.countdown strong{font:400 clamp(24px,3vw,38px)/1 "Playfair Display",serif;font-variant-numeric:tabular-nums}.countdown span{text-transform:uppercase;letter-spacing:.18em;font-size:7px;opacity:.7}.countdown i{width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.55)}.countdown p{margin:0;font:italic 400 30px "Playfair Display",serif}@media(max-width:760px){.countdown{margin-top:24px;padding:12px 8px;gap:8px;min-width:92vw}.countdown div{min-width:50px}.countdown strong{font-size:23px}}
