:root{--ink:#111317;--deep:#1e1b1e;--pearl:#f9f0e7;--silver:#bfb3ad;--champagne:#d9baa0;--gold:#e8c89a;--line:rgba(244,223,199,.45);--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body.et-body{margin:0;background:#101216;color:var(--pearl);font-family:var(--sans);font-size:15px;font-weight:300;overflow-x:hidden}body.et-opening-active{overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400}p,small,span,strong,address,h1,h2,h3{overflow-wrap:anywhere}address{font-style:normal}::selection{background:#dec5aa;color:#111}.et-page{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(90deg,#0d1015c9,#15141a72,#101014b8),url('assets/coast-dusk.webp') center top/auto 1700px repeat-y} .et-page:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 23%,transparent 0 17%,#1111196c 50%),radial-gradient(circle at 40% 75%,#ffdc9b25,transparent 38%);pointer-events:none}.et-scene{position:relative;isolation:isolate;scroll-margin-top:5rem}.et-scene__inner{max-width:1320px;padding:0 clamp(24px,5.2vw,84px);margin:auto;position:relative;z-index:3}.et-eyebrow,.et-index{font:500 11px/1.4 var(--sans);letter-spacing:.27em;text-transform:uppercase;color:#e9c9a6}.et-index{display:block;text-align:center}.et-scene__head{text-align:center;margin-bottom:38px}.et-scene__head h2{font-size:clamp(42px,5vw,76px);line-height:.94;margin:12px 0}.et-button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;padding:13px 26px;max-width:100%;border:1px solid #dfc4a9a8;border-radius:100px;color:#fff8e8;background:linear-gradient(110deg,#29252aee,#54463bd9,#29272bcc);box-shadow:inset 0 1px 2px #fff5e068,0 7px 22px #0008;letter-spacing:.09em;text-transform:uppercase;font:500 10px/1.3 var(--sans);transition:transform .35s,background .35s,box-shadow .35s}.et-button:hover,.et-button:focus-visible{transform:translateY(-3px);background:#705849;box-shadow:0 12px 35px #e6c29636}.et-button--small{padding:10px 18px;margin-top:18px}.et-button span:last-child{font-size:18px;line-height:.8}.et-reveal{opacity:0;transform:translateY(26px);transition:opacity 1s,transform 1.1s cubic-bezier(.2,.75,.15,1)}.et-reveal.et-visible{opacity:1;transform:translateY(0)}.et-progress{height:2px;position:fixed;inset:0 0 auto;z-index:100;pointer-events:none}.et-progress span{display:block;height:100%;width:0;background:#f5d1a5;box-shadow:0 0 12px #fff}.et-photo{overflow:hidden;position:relative;background:#474143}.et-photo:after{content:'';position:absolute;inset:0;border:1px solid #fff3df7a;box-shadow:inset 0 0 25px #fff7d660,inset 0 -45px 65px #08080977;pointer-events:none}.et-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s cubic-bezier(.2,.7,.2,1)}.et-photo:hover img{transform:scale(1.08)}
/* invitation opening */
.et-opening{position:fixed;inset:0;z-index:80;display:grid;place-items:center;overflow:hidden;text-align:center;background:#15131a;transition:opacity .85s,visibility .85s}.et-opening.et-leaving{opacity:0;visibility:hidden;pointer-events:none}.et-opening__scene{position:absolute;inset:0;background:linear-gradient(#101116a8,#1b141c69,#100f14e8),url('assets/coast-dusk.webp') center 53%/cover;animation:et-establish 16s ease-out both}.et-opening__loop{position:absolute;width:min(90vw,770px);aspect-ratio:1.68;border:clamp(15px,4vw,44px) solid transparent;border-radius:50%;background:linear-gradient(#18191b,#18191b) padding-box,linear-gradient(128deg,#473b3b,#fbeade 19%,#716167 42%,#e7c9a6 72%,#fff6ed 85%,#55413e) border-box;box-shadow:0 20px 70px #000e,inset 0 0 28px #e8b88a45;transform:rotate(-18deg);animation:et-opening-loop 16s ease-in-out infinite alternate}.et-opening__loop:before{content:'';position:absolute;inset:5%;border:1px solid #efddc494;border-radius:50%}.et-opening__content{position:relative;z-index:2;padding:25px;width:min(90vw,650px);text-shadow:0 3px 12px #000}.et-opening__brand{display:block;font:400 clamp(85px,17vw,170px)/.75 var(--serif);letter-spacing:-.07em;color:#f6e8dc;word-break:normal;overflow-wrap:normal}.et-opening__content>p{font:500 12px/1 var(--sans);letter-spacing:.38em;margin:24px 0 12px}.et-trace{font:70px/1 var(--serif);position:absolute;right:-10%;top:23%;opacity:.6}.et-hairline{display:block;width:100px;height:1px;margin:0 auto 18px;background:linear-gradient(90deg,transparent,#eac9a0,transparent)}.et-opening__date{font:italic 26px var(--serif)}.et-opening__guest{display:grid;gap:4px;max-width:480px;margin:28px auto 20px;padding:16px 22px;background:#121317ae;border:1px solid #eddec074;backdrop-filter:blur(12px);border-radius:28px}.et-opening__guest small{font-size:12px;color:#e5c3a1}.et-opening__guest strong{font:400 clamp(21px,3.5vw,32px)/1.08 var(--serif)}.et-opening__content .et-button{min-width:205px}.et-opening__content .et-button span:first-child{flex:1}.et-opening__content .et-button{background:#121317ec}
.et-topbar{position:absolute;z-index:13;top:0;left:0;right:0;min-height:58px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px clamp(22px,3vw,44px);border-bottom:1px solid #dcc3a933;background:linear-gradient(#111114aa,transparent)}.et-topbar__brand{font:500 19px/1.05 var(--serif);letter-spacing:.12em;white-space:nowrap}.et-topbar__brand small{display:block;font:500 7px/1.8 var(--sans);letter-spacing:.24em}.et-topbar__nav{display:flex;flex-wrap:wrap;gap:clamp(12px,2vw,27px);font:500 9px/1.5 var(--sans);letter-spacing:.18em;text-transform:uppercase}.et-topbar__nav a:hover{color:#ebca9e}.et-topbar__motto{font:400 9px/1.5 var(--sans);letter-spacing:.19em;text-align:right;color:#ddc7bb}
/* ribbon entrance */
.et-hero{height:min(810px,73vw);min-height:630px;max-height:900px;overflow:hidden;background:linear-gradient(0deg,#18151a 0%,#12121850 48%,#101216 100%)}.et-hero__land{position:absolute;inset:0;background:linear-gradient(180deg,#0f1115c5 0%,transparent 40%,#1c171a8c 95%),url('assets/coast-dusk.webp') center 51%/cover;filter:saturate(.8)}.et-hero__metal{position:absolute;z-index:2;inset:3% -3% auto;width:106%;height:81%;overflow:visible;filter:drop-shadow(0 22px 12px #070709b5)}.et-metal-path{animation:et-metal-breathe 9s ease-in-out infinite alternate}.et-glide{animation:et-streak 12s linear infinite}.et-hero__groom,.et-hero__bride{position:absolute;z-index:3;box-shadow:0 12px 50px #0009;transform:rotate(-4deg);filter:saturate(.62)}.et-hero__groom{left:15%;top:11%;width:29%;height:39%;border-radius:48% 38% 19% 24%/45% 32% 18% 30%;clip-path:polygon(12% 6%,48% 0,95% 28%,100% 90%,15% 87%,0 50%)}.et-hero__bride{right:13%;top:17%;width:32%;height:37%;transform:rotate(5deg);border-radius:31% 48% 25% 23%/39% 52% 22% 26%;clip-path:polygon(0 14%,45% 0,100% 19%,92% 85%,0 98%)}.et-hero__groom img,.et-hero__bride img{filter:saturate(.68)}.et-hero__title{position:absolute;z-index:6;top:8%;left:32%;width:48%;text-align:center;text-shadow:0 4px 20px #06060b}.et-hero__title h1{font-size:clamp(90px,11.5vw,189px);line-height:.85;letter-spacing:-.085em;margin:0 0 5px;color:#f5e8e0;overflow-wrap:normal}.et-hero__infinity{font-size:.45em;position:relative;margin-left:-.08em;vertical-align:middle;color:#eac8aa}.et-hero__title p{font:500 clamp(12px,1.5vw,21px)/1.4 var(--sans);letter-spacing:.38em;margin:14px 0}.et-hero__title small{font:italic 20px var(--serif)}.et-hero__left,.et-hero__right{position:absolute;z-index:7;width:min(25%,290px);text-shadow:0 3px 10px #000}.et-hero__left{left:18%;top:31%}.et-hero__right{right:14%;top:42%}.et-hero__left h2,.et-hero__right h2{font-size:clamp(29px,3.4vw,54px);line-height:.9;margin:0 0 8px}.et-hero__left p,.et-hero__right p{font:400 10px/1.6 var(--sans);letter-spacing:.18em;color:#f8eada}.et-hero__discover{position:absolute;z-index:6;bottom:11%;left:50%;transform:translateX(-50%);font:500 10px var(--sans);letter-spacing:.2em;white-space:nowrap;animation:et-bob 4s ease-in-out infinite}.et-hero__discover span{font-size:18px;margin-left:10px}
/* opposite portraits */
.et-portraits{padding:60px 0 95px;background:linear-gradient(180deg,#17161bfa,#292127d2 50%,#17161bfa);border-top:1px solid #eed2b15e;border-bottom:1px solid #d7bda064}.et-portraits:before{content:'';position:absolute;inset:-70px -7%;z-index:0;border:30px solid #bcaba3;border-left:0;border-right:0;border-radius:50% / 25%;transform:rotate(-3deg);box-shadow:0 18px 38px #000e,inset 0 0 16px #fff4e68c;opacity:.8;pointer-events:none}.et-portraits__grid{display:grid;grid-template-columns:1fr minmax(70px,13%) 1fr;gap:15px;align-items:center;margin-top:30px}.et-portrait{min-width:0;display:grid;grid-template-columns:45% 55%;align-items:center;gap:0}.et-portrait--bride{grid-template-columns:55% 45%}.et-portrait--bride .et-portrait__aperture{order:2}.et-portrait__aperture{aspect-ratio:4/5;border:7px ridge #ae9b8d;border-radius:49% 49% 12% 12% / 36% 36% 12% 12%;box-shadow:0 12px 30px #000a,0 0 28px #f9cda355}.et-portrait__words{min-width:0;padding:12px 14px}.et-portrait__words span{font:500 9px var(--sans);letter-spacing:.24em;color:#e9c9a6}.et-portrait__words h2{font-size:clamp(26px,3.1vw,48px);line-height:.95;margin:12px 0}.et-portrait__words p{font:13px/1.5 var(--serif);color:#e9d8cd}.et-portraits__axis{text-align:center;font:90px/.8 var(--serif);color:#edd3bb;text-shadow:0 0 30px #ebb986}.et-portraits__axis small{display:block;font:500 9px/1.5 var(--sans);letter-spacing:.22em;margin-top:13px}
/* dark ribbon countdown */
.et-countdown{padding:72px 0 110px;overflow:hidden;text-align:center;background:#17171be8}.et-countdown__coil{position:absolute;z-index:0;left:-12%;right:-12%;top:8%;height:94%;border-radius:50% 50% 45% 55%/50% 33% 42% 28%;transform:rotate(-4deg);background:linear-gradient(175deg,#9a8581 0%,#ede0d3 3%,#383236 9%,#111114 34%,#181719 80%,#e2cbad 96%,#473934 100%);box-shadow:0 22px 42px #000b,inset 0 10px 13px #f7e8d2af,inset 0 -8px 15px #f5d9af8c}.et-countdown .et-scene__head{position:relative}.et-countdown .et-scene__head h2{font-size:clamp(35px,4.2vw,62px)}.et-countdown__grid{display:flex;justify-content:center;max-width:680px;margin:22px auto 0}.et-countdown__grid>div{flex:1;min-width:0;display:grid;gap:4px;border-right:1px solid #edcfab70;padding:5px 6px}.et-countdown__grid>div:last-child{border:0}.et-countdown__grid strong{font:400 clamp(45px,6.1vw,90px)/.8 var(--serif);font-variant-numeric:lining-nums tabular-nums}.et-countdown__grid span{font:500 11px var(--sans);letter-spacing:.12em}.et-countdown__status{font:italic 16px var(--serif);margin-top:13px;color:#e0cbb8;min-height:20px}
/* event twist */
.et-events{padding:105px 0 135px;background:linear-gradient(180deg,#18171cd9,#281f23a9 55%,#141519eb)}.et-events:before{content:'';position:absolute;z-index:0;top:33%;left:-10%;width:120%;height:42%;border:25px ridge #c2aa9a;border-radius:50% / 60%;transform:rotate(3deg);box-shadow:0 45px 65px #0009,0 -7px 21px #ffe6c544;pointer-events:none}.et-events__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,95px)}.et-event{position:relative;display:grid;grid-template-columns:35% 1fr;min-width:0;min-height:360px;padding:35px;background:linear-gradient(145deg,#151518ed,#262025f0 55%,#151519ed);border:1px solid #caae9588;border-radius:48% 8% 15% 10%/18% 9% 13% 12%;box-shadow:0 17px 48px #000a,inset 0 0 30px #a4927859}.et-event--1{margin-top:70px;border-radius:9% 48% 12% 15%/9% 20% 11% 12%}.et-event__visual{display:grid;place-items:center;align-self:center;aspect-ratio:1;border-radius:50%;border:2px solid #ead7bcaa;box-shadow:0 0 0 8px #a7886a55,0 0 40px #eccb9952;background:radial-gradient(circle,#deba8e3b,#151719 70%)}.et-event__visual span{font:80px var(--serif);color:#ead0aa}.et-event__content{min-width:0;padding:2px 0 2px 22px;align-self:center}.et-event__content small{font:500 10px var(--sans);letter-spacing:.2em;color:#e8c7aa}.et-event__content h3{font-size:clamp(40px,4.5vw,68px);line-height:.86;margin:18px 0}.et-event__content time,.et-event__content p,.et-event__content strong,.et-event__content address{display:block;margin:7px 0;font:400 13px/1.45 var(--sans)}.et-event__content strong{color:#f2d9b8;font-weight:600}.et-event__content address{color:#e2d4ce}
/* photo-story laid into metal */
.et-story{padding:95px 0 100px;background:linear-gradient(165deg,#272023e8,#131419cb 65%,#211c22de);overflow:hidden}.et-story:before{content:'';position:absolute;inset:27% -15% auto;height:66%;transform:rotate(5deg);border-radius:46% 55% 45% 40%/34% 33% 47% 45%;background:linear-gradient(#f6e3c690,#2b262ad9 11%,#111115e8 33%,#151517ed 73%,#efd0aa78 93%,#494042);box-shadow:0 16px 42px #000b;pointer-events:none}.et-story .et-scene__inner{display:grid;grid-template-columns:23% 1fr;align-items:center;gap:5%}.et-story__intro h2,.et-gallery__heading h2,.et-location__copy h2,.et-gift__content h2,.et-response__caption h2,.et-wishes__heading h2{font-size:clamp(51px,6vw,89px);line-height:.84;margin:17px 0}.et-story__intro p,.et-gallery__heading p,.et-location__copy p,.et-gift__content p,.et-response__caption p,.et-wishes__heading p{font:400 16px/1.5 var(--serif);color:#eadacc}.et-story__rail{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:20px 5px 20px;scrollbar-color:#b39079 transparent}.et-story__chapter{flex:0 0 min(30%,190px);min-width:155px;text-align:center;scroll-snap-align:center}.et-story__mini{aspect-ratio:3/4;border:6px ridge #c5a98d;border-radius:46% 44% 9% 9% /20% 21% 7% 7%;box-shadow:0 12px 30px #000a}.et-story__chapter span{font:12px var(--sans);color:#d8b791;display:block;margin:12px 0 4px}.et-story__chapter h3{font-size:25px;line-height:1;margin:5px 0}.et-story__chapter p{font:13px/1.4 var(--serif);margin:0}.et-story__chapter--empty{flex-basis:36%}
.et-gallery{padding:105px 0 135px;background:linear-gradient(#15151be8,#2b2226d9,#121419ed)}.et-gallery:before{content:'';position:absolute;z-index:0;inset:22% -10% 7%;border-radius:50% 45% 40% 52%/20% 15% 25% 22%;transform:rotate(-3deg);border:23px solid #c2ada3;box-shadow:0 16px 50px #000a,inset 0 0 25px #edd4b45d;pointer-events:none}.et-gallery__heading{text-align:center}.et-gallery__heading h2{margin-bottom:6px}.et-gallery__rail{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-color:#d0ad85 transparent;padding:30px 8px}.et-gallery__item{flex:0 0 clamp(170px,20vw,255px);aspect-ratio:4/5;border:8px ridge #ae9580;box-shadow:0 9px 24px #000c;scroll-snap-align:center;padding:0}.et-gallery__item:nth-child(even){aspect-ratio:3/4;transform:translateY(15px)}.et-gallery__item:nth-child(even).et-visible{transform:translateY(15px)}
/* route, folded letter */
.et-location{min-height:470px;padding:105px 0;background:linear-gradient(180deg,#13151ae3,#232025c0 50%,#15161bda)}.et-location:before{content:'';position:absolute;inset:10% -12%;border:30px ridge #bea89e;border-radius:53% 45% 47% 51%/49% 44% 49% 44%;transform:rotate(4deg);box-shadow:0 25px 60px #0009, inset 0 0 28px #e7c7a761;pointer-events:none}.et-location__layout{display:grid;grid-template-columns:minmax(240px,40%) 1fr;gap:8%;align-items:center}.et-location__copy address{max-width:500px;line-height:1.6;color:#efdfcf;margin:0 0 20px}.et-location__route{position:relative;min-height:260px;filter:drop-shadow(0 0 8px #efd3a483)}.et-location__route svg{width:100%;height:100%;position:absolute}.et-pin{position:absolute;font:42px var(--serif);color:#f3d8ad;animation:et-bob 3.5s ease-in-out infinite}.et-pin--one{left:34%;top:18%}.et-pin--two{right:2%;top:-6%;animation-delay:-1.5s}
.et-gift{padding:115px 0 145px;background:linear-gradient(#1a1a1de8,#2a2124dc 55%,#151518ed)}.et-gift:before{content:'';position:absolute;inset:15% -15%;border-radius:51% 50% 45% 52% /35% 29% 42% 36%;transform:rotate(-5deg);background:linear-gradient(180deg,#514448,#cdb6a5 8%,#232125 16%,#141518 80%,#e1b991 96%,#4a3c3b);box-shadow:0 35px 65px #000d}.et-gift__layout{display:grid;grid-template-columns:44% 1fr;gap:5%;align-items:center}.et-gift__envelope{width:80%;aspect-ratio:1.23;background:linear-gradient(137deg,#fff0dd,#cbb29f 48%,#f2d8bd 50%,#a88c7c);clip-path:polygon(0 0,100% 0,100% 100%,0 100%);box-shadow:0 15px 40px #000;position:relative;transform:rotate(-8deg)}.et-gift__envelope:before{content:'';position:absolute;inset:0;background:linear-gradient(150deg,transparent 49%,#ab8574 50%,transparent 51%),linear-gradient(210deg,transparent 49%,#ad8c74 50%,transparent 51%)}.et-gift__seal{position:absolute;left:44%;top:38%;border-radius:50%;background:#967259;color:#f8ead5;padding:4px 12px;font:45px var(--serif);box-shadow:0 3px 8px #0006}.et-gift__content{padding:25px;min-width:0}.et-gift__content p{max-width:550px}.et-gift__bank,.et-gift__address{display:grid;gap:7px;max-width:480px;padding:15px 0;border-top:1px solid #e3c7a565}.et-gift__bank small,.et-gift__address small{font:500 10px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#e8c7a3}.et-gift__bank strong{font:500 clamp(20px,3vw,34px) var(--serif)}.et-gift__bank span,.et-gift__address address{font:13px/1.4 var(--sans)}.et-copy{width:max-content;max-width:100%;border:1px solid #e1c6a9;background:#19191d;color:#f9eddf;border-radius:50px;padding:8px 18px;font:500 10px var(--sans);letter-spacing:.1em}.et-copy b{display:none}.et-copy.et-copied span{display:none}.et-copy.et-copied b{display:inline}
/* stable form surfaces inside broad curves */
.et-response{padding:105px 0;background:linear-gradient(170deg,#17191adf,#2a2226cc 44%,#151519ea)}.et-response:before{content:'';position:absolute;z-index:0;inset:7% -7%;border:31px solid #a89995;border-radius:52% 50% 45% 50%/50% 38% 44% 45%;box-shadow:0 21px 58px #0009,inset 0 0 26px #f0d8bd76;transform:rotate(-10deg)}.et-response__layout{display:grid;grid-template-columns:35% 1fr;gap:7%;align-items:center}.et-response__caption h2{font-size:clamp(80px,9vw,145px)}.et-form{padding:clamp(25px,4vw,48px);border:1px solid #e4ccb0a3;border-radius:45% 45% 16% 16%/10% 10% 8% 8%;background:linear-gradient(144deg,#242126ed,#0d0f12f5);box-shadow:0 16px 40px #0008,inset 0 0 22px #e7cbb333;min-width:0}.et-field{display:grid;gap:6px;margin-bottom:15px;font:500 10px/1.3 var(--sans);letter-spacing:.13em;text-transform:uppercase;color:#eedbc8}.et-field input,.et-field textarea,.et-field select{display:block;width:100%;max-width:100%;min-width:0;outline:none;color:#fffbf2;background:#15161a;border:1px solid #d9c5b480;border-radius:10px;padding:13px 15px;font:400 14px/1.4 var(--sans);letter-spacing:normal;text-transform:none;transition:border-color .2s,box-shadow .2s}.et-field textarea{resize:vertical;min-height:80px}.et-field select option{background:#15161a}.et-field input:focus,.et-field textarea:focus,.et-field select:focus{border-color:#fff1d7;box-shadow:0 0 0 3px #efcd9d29}.et-form__row{display:grid;grid-template-columns:1.3fr 1fr;gap:12px}.et-attendance{border:0;margin:0 0 15px;padding:0;display:flex;gap:8px;flex-wrap:wrap}.et-attendance legend{font:500 10px var(--sans);letter-spacing:.13em;text-transform:uppercase;margin-bottom:9px}.et-attendance label{cursor:pointer}.et-attendance input{position:absolute;opacity:0}.et-attendance span{display:inline-block;padding:9px 13px;border:1px solid #ab9788;border-radius:20px;font:400 11px var(--sans)}.et-attendance input:checked+span{background:#ead0aa;color:#1a1a1e}.et-attendance input:focus-visible+span{outline:2px solid white;outline-offset:3px}.et-form-status{min-height:20px;font-size:12px;margin:13px 0 0}.et-form-status.et-error{color:#ffb4a8}.et-form-status.et-success{color:#bde8b8}.et-submit.et-loading{opacity:.65;pointer-events:none}
.et-wishes{padding:120px 0 150px;background:linear-gradient(#17181bdd,#2c2225cc,#101317e8)}.et-wishes:before{content:'';position:absolute;inset:11% -14%;border:27px ridge #c7aea0;border-radius:51% 48% 48% 52%/30% 26% 40% 37%;transform:rotate(5deg);box-shadow:0 23px 44px #0009;pointer-events:none}.et-wishes__heading{text-align:center;max-width:620px;margin:0 auto 30px}.et-wishes__layout{display:grid;grid-template-columns:1.1fr 1fr;align-items:start;gap:35px}.et-wishes__list{max-height:470px;min-height:200px;overflow-y:auto;display:grid;align-content:start;gap:12px;padding:8px}.et-wishes__list article{display:flex;gap:14px;padding:18px;background:#e5d6c8e9;color:#292127;border:1px solid #fff9ed;border-radius:12px 50px 12px 14px;box-shadow:0 10px 20px #0006}.et-wish__avatar{flex:0 0 34px;height:34px;display:grid;place-items:center;border:1px solid #a58c75;border-radius:50%;font:26px var(--serif)}.et-wishes__list strong{font:600 14px var(--serif)}.et-wishes__list p{font:14px/1.4 var(--serif);margin:4px 0 0}.et-wishes__empty{font-style:italic;color:#f7e3c8}.et-wishes .et-form{border-radius:20px 20px 42% 18% / 20px 20px 8% 8%}
.et-closing{min-height:550px;display:grid;place-items:center;padding:90px 24px 160px;text-align:center;background:linear-gradient(#111318e8,#1d1b20b4 45%,#111217cc),url('assets/coast-dusk.webp') center 63%/cover;overflow:hidden}.et-closing__ring{position:absolute;z-index:0;bottom:-22%;left:4%;width:92%;font:clamp(350px,60vw,800px)/1 var(--serif);color:#d6ba9f20;text-shadow:0 0 5px #f8e6d2a6,0 18px 35px #000a;transform:rotate(-11deg);animation:et-bob 10s ease-in-out infinite}.et-closing__inner{position:relative;z-index:2;max-width:720px;text-shadow:0 2px 15px #000}.et-closing__inner h2{font-size:clamp(78px,10vw,150px);line-height:.8;margin:20px 0}.et-closing__inner p{font:italic clamp(18px,2.6vw,29px)/1.2 var(--serif)}.et-closing__inner strong{display:block;font:400 clamp(28px,4vw,52px)/1 var(--serif);margin:25px 0}.et-closing__inner strong i{color:#ddbf9c}.et-closing__date{font:500 10px var(--sans);letter-spacing:.22em;text-transform:uppercase}.et-closing__orchid{position:absolute;z-index:2;left:-8%;bottom:-18%;width:44%;max-width:600px;filter:drop-shadow(0 15px 20px #000b);pointer-events:none;animation:et-flower-sway 9s ease-in-out infinite}
.et-dock{position:fixed;z-index:30;bottom:12px;left:50%;transform:translate(-50%,130%);display:flex;align-items:center;gap:2px;max-width:calc(100vw - 20px);padding:5px;border:1px solid #f6ddc49c;border-radius:40px;background:#151518e8;backdrop-filter:blur(18px);box-shadow:0 10px 30px #0009;transition:transform .6s}.et-dock.et-visible{transform:translate(-50%,0)}.et-dock a{width:63px;min-width:0;padding:7px 1px;display:grid;gap:0;text-align:center;border-radius:26px;color:#d2c1b4}.et-dock a.et-active{background:#e2c3a7;color:#1a1819}.et-dock a span{font:24px/1 var(--serif)}.et-dock a small{font:500 8px var(--sans);letter-spacing:.04em}.et-music{position:fixed;z-index:35;right:17px;top:69px;width:38px;height:38px;border:1px solid #e8d3c1a8;border-radius:50%;background:#17171be9;color:#f8e5cc;box-shadow:0 0 18px #f2d8bb62;animation:et-musical 12s linear infinite}.et-music.et-paused{animation-play-state:paused;opacity:.65}.et-music span{font-size:20px}.et-lightbox[hidden]{display:none}.et-lightbox{position:fixed;z-index:100;inset:0;display:grid;place-items:center;background:#050506ed;padding:55px 20px 25px}.et-lightbox img{max-width:100%;max-height:85vh;object-fit:contain;border:7px ridge #c0a48d}.et-lightbox button{position:absolute;top:15px;right:22px;color:#fff;background:none;border:0;font-size:40px}
/* understated related particles, kept behind interactive content */
.et-ambient{position:fixed;inset:0;z-index:12;overflow:hidden;pointer-events:none}.et-particle{position:absolute;display:block;left:var(--x);top:-80px;opacity:0;animation:et-particle-drift var(--duration) linear var(--delay) infinite;will-change:transform,opacity}.et-particle--petal{width:var(--size);height:calc(var(--size)*.63);border-radius:90% 10% 90% 10%;background:linear-gradient(140deg,#fff8e9e0,#cdb4aa76);box-shadow:0 0 8px #ffe9d689}.et-particle--gleam{width:2px;height:2px;border-radius:50%;background:#fff3d8;box-shadow:0 0 8px 2px #ffe7b1}.et-particle--filament{width:var(--size);height:1px;background:linear-gradient(90deg,transparent,#f4d3a8,transparent);box-shadow:0 0 6px #e3c093}
@keyframes et-establish{from{transform:scale(1.16)}to{transform:scale(1)}}@keyframes et-opening-loop{from{transform:rotate(-22deg) scale(.98)}to{transform:rotate(-12deg) scale(1.04)}}@keyframes et-metal-breathe{from{filter:brightness(.91)}to{filter:brightness(1.18)}}@keyframes et-streak{to{stroke-dashoffset:-5204}}@keyframes et-bob{50%{translate:0 -14px}}@keyframes et-flower-sway{50%{transform:rotate(3deg) translateY(-9px)}}@keyframes et-musical{to{transform:rotate(360deg)}}@keyframes et-particle-drift{0%{opacity:0;transform:translate3d(0,-30px,0) rotate(0)}10%{opacity:var(--opacity)}85%{opacity:var(--opacity)}100%{opacity:0;transform:translate3d(var(--sway),110vh,0) rotate(var(--rotation))}}
@media(max-width:900px){.et-hero{height:740px;min-height:0}.et-topbar__motto{display:none}.et-hero__metal{top:14%;height:68%}.et-hero__title{top:11%;left:24%;width:60%}.et-hero__title h1{font-size:clamp(90px,14vw,135px)}.et-hero__groom{top:24%;left:8%;width:36%;height:30%}.et-hero__bride{top:28%;right:7%;width:37%;height:29%}.et-hero__left{top:56%;left:8%}.et-hero__right{top:61%;right:7%}.et-portraits__grid{grid-template-columns:1fr 60px 1fr}.et-portrait,.et-portrait--bride{display:block}.et-portrait__aperture{width:85%;margin:0 auto;max-width:240px}.et-portrait__words{text-align:center}.et-portraits__axis{font-size:55px}.et-events__grid{gap:22px}.et-event{display:block;padding:26px;min-height:0}.et-event__visual{width:110px;margin:0 auto 16px}.et-event__content{padding:0}.et-event__content h3{font-size:49px}.et-story .et-scene__inner{grid-template-columns:1fr;gap:16px}.et-story__intro{text-align:center;max-width:600px;margin:auto}.et-story__rail{justify-content:flex-start}.et-response__layout{grid-template-columns:1fr 1.3fr}}
@media(max-width:600px){.et-page{background-size:auto 1100px}.et-topbar{position:absolute;padding:14px 18px;align-items:center}.et-topbar__nav{display:none}.et-topbar__brand{font-size:17px}.et-hero{height:790px;max-height:none;min-height:0}.et-hero__land{background-position:52% 45%}.et-hero__metal{top:21%;left:-46%;width:192%;height:65%;transform:rotate(83deg);filter:drop-shadow(0 14px 12px #000e)}.et-hero__groom{top:27%;left:8%;width:43%;height:28%;clip-path:polygon(10% 0,100% 6%,90% 100%,0 90%);border-radius:44% 20% 20% 23%}.et-hero__bride{top:44%;right:6%;width:44%;height:28%;clip-path:polygon(0 0,92% 5%,100% 90%,10% 100%);border-radius:23% 49% 27% 18%}.et-hero__title{top:10%;left:5%;width:90%}.et-hero__title h1{font-size:clamp(79px,21vw,124px)}.et-hero__infinity{margin-left:-.13em}.et-hero__title p{font-size:10px;letter-spacing:.24em}.et-hero__title small{font-size:16px}.et-hero__left{top:57%;left:8%;width:42%}.et-hero__right{top:75%;right:5%;width:43%}.et-hero__left h2,.et-hero__right h2{font-size:30px}.et-hero__left p,.et-hero__right p{font-size:8px}.et-hero__discover{bottom:3%;font-size:8px}.et-portraits{padding:60px 0 65px}.et-portraits:before{inset:-25px -30%;border-width:14px;transform:rotate(9deg)}.et-portraits__grid{grid-template-columns:1fr 30px 1fr;gap:0}.et-portrait__aperture{width:94%;border-width:4px}.et-portrait__words{padding:8px 3px}.et-portrait__words h2{font-size:clamp(25px,7vw,38px)}.et-portrait__words span{font-size:7px}.et-portrait__words p{font-size:11px}.et-portraits__axis{font-size:33px}.et-portraits__axis small{font-size:6px;letter-spacing:.1em}.et-countdown{padding:75px 0 80px}.et-countdown__coil{left:-55%;right:-55%;top:16%;height:78%;transform:rotate(-10deg)}.et-countdown__grid{margin-top:25px}.et-countdown__grid strong{font-size:clamp(36px,10vw,60px)}.et-countdown__grid span{font-size:9px}.et-countdown .et-scene__head h2{font-size:39px}.et-events{padding:78px 0 110px}.et-events:before{inset:32% -65% auto;width:230%;height:42%;border-width:16px;transform:rotate(-20deg)}.et-events__grid{grid-template-columns:1fr;gap:22px}.et-event,.et-event--1{margin:0;display:grid;grid-template-columns:74px 1fr;gap:12px;padding:19px;border-radius:50px 18px 18px 18px}.et-event--1{border-radius:18px 50px 18px 18px}.et-event__visual{width:72px}.et-event__visual span{font-size:46px}.et-event__content h3{font-size:40px;margin:7px 0}.et-event__content small{font-size:8px}.et-event__content time,.et-event__content p,.et-event__content strong,.et-event__content address{font-size:11px;margin:4px 0}.et-event__content .et-button{margin-top:10px}.et-story{padding:80px 0}.et-story:before{inset:41% -65% auto;height:50%;transform:rotate(13deg)}.et-story__rail{margin:0 -24px;padding:20px 24px}.et-story__chapter{flex-basis:50%;min-width:150px}.et-gallery{padding:80px 0 110px}.et-gallery:before{inset:29% -50% 16%;border-width:15px}.et-gallery__rail{margin:0 -24px;padding:22px 24px}.et-gallery__item{flex-basis:55%;border-width:5px}.et-location{padding:80px 0;min-height:0}.et-location:before{inset:7% -80%;border-width:17px}.et-location__layout{grid-template-columns:1fr}.et-location__route{min-height:130px;margin-top:10px}.et-location__route svg{height:160px}.et-gift{padding:85px 0 105px}.et-gift:before{inset:12% -100%;transform:rotate(12deg)}.et-gift__layout{grid-template-columns:1fr}.et-gift__envelope{width:42%;min-width:145px;margin:0 auto 22px;aspect-ratio:1.4}.et-gift__seal{font-size:26px}.et-gift__content{padding:0}.et-response{padding:90px 0}.et-response:before{inset:9% -95%;border-width:18px}.et-response__layout{grid-template-columns:1fr;gap:16px}.et-response__caption{text-align:center}.et-response__caption h2{margin:9px 0;font-size:76px}.et-response__caption p{margin-bottom:0}.et-form{padding:28px 20px;border-radius:26px}.et-form__row{grid-template-columns:1fr}.et-wishes{padding:80px 0 110px}.et-wishes:before{inset:15% -75%;border-width:15px}.et-wishes__layout{grid-template-columns:1fr}.et-wishes__list{max-height:360px;min-height:0}.et-wishes .et-form{border-radius:26px}.et-closing{min-height:550px;padding:100px 24px 150px}.et-closing__inner h2{font-size:80px}.et-closing__orchid{width:80%;bottom:-10%;left:-35%}.et-closing__ring{font-size:330px;left:-25%;bottom:-6%}.et-opening__loop{width:96vw;aspect-ratio:.7;transform:rotate(-40deg)}.et-opening__brand{font-size:clamp(82px,20vw,115px)}.et-opening__content>p{font-size:10px;letter-spacing:.25em}.et-trace{right:-2%;top:26%}.et-opening__guest{margin-top:22px}.et-topbar__nav{display:none}.et-dock{bottom:8px}.et-dock a{width:57px}.et-music{top:13px;right:16px}}
@media(max-width:360px){.et-hero__title h1{font-size:76px}.et-hero__left h2,.et-hero__right h2{font-size:26px}.et-event{grid-template-columns:55px 1fr;padding:15px}.et-event__visual{width:53px}.et-event__visual span{font-size:35px}.et-dock a{width:52px}.et-portrait__words h2{font-size:24px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}.et-reveal{opacity:1;transform:none}.et-ambient{display:none}}

.et-opening__message{font:italic 17px/1.3 var(--serif);max-width:480px;margin:0 auto;text-wrap:balance}.et-hero__quote{position:absolute;z-index:8;bottom:14%;left:50%;transform:translateX(-50%);width:min(55%,600px);margin:0;text-align:center;font:italic 19px/1.2 var(--serif);text-shadow:0 2px 11px #000}.et-hero__quote.et-visible{transform:translateX(-50%)}@media(max-width:600px){.et-hero__quote{width:74%;bottom:7%;font-size:13px;line-height:1.12}.et-opening__message{font-size:14px}.et-hero__discover{bottom:1%}}

.et-quotation{position:relative;z-index:4;padding:23px clamp(24px,8vw,130px);text-align:center;border-top:1px solid #d4b79c90;border-bottom:1px solid #dac0aa64;background:linear-gradient(110deg,#1c1b1ee8,#655047c0,#1a1b20eb);box-shadow:0 10px 34px #0009}.et-quotation p{font:italic clamp(18px,2.5vw,30px)/1.14 var(--serif);max-width:850px;margin:auto;text-wrap:balance}.et-hero__quote{display:none}
.et-opening__content{max-height:calc(100dvh - 30px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#cfab89 transparent}.et-hero__left h2,.et-hero__right h2{font-size:clamp(25px,3vw,50px)}

.et-event{grid-template-columns:42% 1fr}.et-event__visual{width:100%;height:100%;min-height:270px;aspect-ratio:auto;align-self:stretch;border-radius:49% 14% 10% 10% /31% 12% 10% 10%;background:url('assets/ceremony-arch.webp') center/cover;border:4px ridge #c9ad92;box-shadow:0 10px 25px #0009}.et-event--1 .et-event__visual{background-image:url('assets/reception-terrace.webp');border-radius:14% 49% 10% 10% /12% 31% 10% 10%}.et-event__visual span{display:none}@media(max-width:900px){.et-event__visual{height:160px;min-height:0;width:100%;margin-bottom:15px}}@media(max-width:600px){.et-event__visual{width:72px;height:105px;min-height:0;margin:0;border-width:2px}.et-event{grid-template-columns:74px 1fr}}@media(max-width:360px){.et-event__visual{width:53px;height:88px}.et-event{grid-template-columns:55px 1fr}}
