
:root{--blue:#283557;--blue2:#435679;--pale:#e6eaf0;--ivory:#faf9f6;--paper:#fffefb;--ink:#29344e;--gold:#b48a45;--line:#d5dae2;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font:300 15px/1.7 var(--sans)}body.locked{overflow:hidden}button,a{font:inherit}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.tracking{font:500 10px/1.6 var(--sans);letter-spacing:.28em;text-transform:uppercase}.serif{font-family:var(--serif)}.fine-rule{width:132px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:26px auto}.wrap{width:min(100% - 42px,880px);margin:auto}.section{text-align:center;padding:100px 0}.section h2{font:300 clamp(54px,8vw,82px)/1 var(--serif);margin:12px 0 22px}.lead{max-width:570px;margin:0 auto;font:300 clamp(23px,3vw,29px)/1.4 var(--serif)}.small{font-size:12px;line-height:2;color:#697386}.sprig{font:300 35px var(--serif);color:var(--gold)}.btn{border:1px solid var(--blue);background:var(--blue);color:#fff;padding:14px 25px;min-height:47px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;letter-spacing:.16em;text-transform:uppercase;font:500 10px var(--sans);transition:background .25s,transform .25s}.btn:hover{background:#17233f;transform:translateY(-1px)}.btn.outline{background:transparent;color:var(--blue)}.btn.outline:hover{background:#e9edf2}.preview-label{position:fixed;z-index:100;top:11px;right:11px;background:#ffffffed;border:1px solid #dbe0e7;color:#5b6883;padding:7px 11px;letter-spacing:.1em;text-transform:uppercase;font-size:9px;box-shadow:0 2px 13px #17233f16}
/* Full-screen envelope: tactile white paper, navy folded seams, gold wax seal */
.entry{position:fixed;z-index:40;inset:0;overflow:hidden;display:grid;place-items:center;background:radial-gradient(circle at 50% 36%,#fff 0%,#f2f3f3 90%);transition:opacity .7s,visibility .7s}.entry.gone{opacity:0;visibility:hidden;pointer-events:none}.entry-inner{width:min(920px,100%);padding:32px 22px;text-align:center;position:relative}.entry-top{margin-bottom:25px}.entry-top p{margin:0;color:#66738c;font:italic 23px var(--serif)}.entry-top .tracking{color:var(--blue);margin-bottom:8px}.envelope{width:min(680px,93vw);height:clamp(295px,51vw,430px);margin:auto;position:relative;filter:drop-shadow(0 18px 29px #1f2d4930);perspective:900px}.envelope-back{position:absolute;inset:0;background:#f8fafb;border:1px solid #bdc9d8;box-shadow:inset 0 0 35px #b5bfd322}.envelope-paper{position:absolute;left:8%;right:8%;height:77%;bottom:5%;background:#fffefa;border:1px solid #b6c1d0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform 1.15s .12s cubic-bezier(.2,.65,.2,1);padding:12px}.envelope-paper .paper-aa{width:clamp(92px,19vw,160px);height:clamp(95px,19vw,145px);object-fit:contain}.envelope-paper .serif{font-size:clamp(17px,3vw,25px);margin-top:-2px}.envelope-paper .tracking{font-size:9px;margin-top:5px}.env-left,.env-right,.env-bottom,.env-flap{position:absolute;inset:0;pointer-events:none}.env-left{z-index:4;background:#e6eaf1;clip-path:polygon(0 0,51% 57%,0 100%);filter:drop-shadow(1px 0 3px #1a30501c)}.env-right{z-index:4;background:#edf0f4;clip-path:polygon(100% 0,49% 57%,100% 100%)}.env-bottom{z-index:5;background:linear-gradient(#fff,#edf1f6);clip-path:polygon(0 100%,50% 46%,100% 100%);border-bottom:2px solid var(--blue2)}.env-flap{z-index:7;transform-origin:top center;transform-style:preserve-3d;backface-visibility:hidden;background:linear-gradient(145deg,#fff 10%,#e5eaf1 100%);clip-path:polygon(0 0,100% 0,50% 65%);transition:transform 1s cubic-bezier(.2,.65,.2,1);border-top:3px solid var(--blue)}.env-seam{position:absolute;z-index:6;top:0;width:100%;height:100%;pointer-events:none;background:linear-gradient(142deg,transparent 49.7%,#5d719531 50%,transparent 50.3%) left bottom/50% 100% no-repeat,linear-gradient(218deg,transparent 49.7%,#5d719531 50%,transparent 50.3%) right bottom/50% 100% no-repeat}.seal{position:absolute;z-index:10;left:50%;top:54%;transform:translate(-50%,-50%);width:112px;height:112px;border-radius:44% 53% 47% 49%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 25%,#f3d997 0%,#c49a4b 40%,#82531d 78%,#d1ac62 98%);box-shadow:0 3px 2px #68451b70,inset 0 0 0 5px #c7a05b,inset 0 0 0 8px #9f732e,inset 0 0 0 11px #eacb83,0 9px 20px #121d2b46;transition:transform .3s,opacity .45s}.seal:after{content:'';position:absolute;inset:13px;border-radius:50%;border:1px solid #8c622d}.seal img{width:80%;height:73%;object-fit:contain;filter:sepia(1) saturate(1.7) hue-rotate(345deg) brightness(.58);position:relative;z-index:1}.tap{margin:25px auto 0;display:block;border:0;border-radius:40px;padding:13px 29px;background:var(--blue);color:white;letter-spacing:.16em;text-transform:uppercase;font:500 10px var(--sans);box-shadow:0 7px 19px #28355722;transition:transform .25s}.tap:hover{transform:translateY(-2px)}.envelope.opening .env-flap{transform:rotateX(175deg);z-index:1}.envelope.opening .envelope-paper{transform:translateY(-48%)}.envelope.opening .seal{transform:translate(-50%,-50%) scale(.45);opacity:0}.entry.opening .tap{opacity:0;pointer-events:none}.entry-foot{margin-top:20px;color:#7f8a9b;font:italic 21px var(--serif)}
/* Invitation */
.site{visibility:hidden;opacity:0;transition:opacity .7s}.site.visible{visibility:visible;opacity:1}.hero{min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden;padding:95px 22px 88px;background:radial-gradient(ellipse at center 15%,#fff 0%,#fafaf8 55%,#e9edf3 120%)}.hero:before,.hero:after{content:'';position:absolute;width:260px;height:260px;border:1px solid #aebbd153;border-radius:50%;pointer-events:none}.hero:before{left:-170px;top:20%}.hero:after{right:-170px;bottom:12%}.hero-inner{position:relative;z-index:1;width:min(600px,100%)}.hero .monogram{width:clamp(190px,44vw,320px);height:clamp(180px,40vw,290px);object-fit:contain;display:block;margin:auto}.hero .names{margin:-4px 0 3px;font:400 clamp(26px,5vw,39px)/1.2 var(--serif);letter-spacing:.20em;text-transform:uppercase}.hero .date{font:400 21px var(--serif);letter-spacing:.18em;margin:24px 0}.hero .eyebrow{margin-top:22px;color:#66748e}.hero .scroll{position:absolute;bottom:24px;left:0;right:0;font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:#74819b}.hero .scroll:before{content:'';display:block;width:1px;height:35px;background:#8396b1;margin:0 auto 10px}.soft{background:#eef1f5}.paper-section{background:var(--paper)}.date-number{display:flex;justify-content:center;align-items:center;gap:25px;margin:32px auto 22px}.date-number strong{font:300 clamp(100px,18vw,160px)/.9 var(--serif)}.date-number span{text-align:left;letter-spacing:.25em;line-height:2.2;text-transform:uppercase;font-size:11px}.timer{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:520px;margin:34px auto 0}.timer strong{display:block;font:300 clamp(43px,9vw,63px)/1 var(--serif)}.timer span{color:#73809a;text-transform:uppercase;letter-spacing:.13em;font-size:9px}.section-symbol{font:italic 28px var(--serif);color:#ae955b;margin:15px 0}.info-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:700px;margin:47px auto 0}.info-card{background:#fff;border:1px solid var(--line);padding:42px 18px 39px;min-height:305px}.info-card svg{stroke:var(--blue2)}.info-card h3{font:300 41px var(--serif);margin:12px 0 5px}.placeholder{font:italic 25px var(--serif);color:#75819a;margin:12px 0}.info-card p{font-size:12px;color:#73809a}.timeline{max-width:420px;margin:38px auto 0;text-align:left;border-left:1px solid #a8b6cb;padding-left:35px}.timeline-item{position:relative;margin:0 0 37px}.timeline-item:before{content:'';position:absolute;left:-40px;top:14px;width:9px;height:9px;border:1px solid var(--blue2);border-radius:50%;background:var(--paper)}.timeline-item h3{font:300 32px var(--serif);margin:0}.timeline-item p{margin:2px 0;font-size:12px;color:#78849a}.details{display:flex;justify-content:center;align-items:center;flex-direction:column;padding:50px 20px;border:1px solid #cbd4e0;margin:35px auto 0;max-width:640px}.guest{font:italic 35px var(--serif);overflow-wrap:anywhere;margin:8px 0}.pass{font-size:12px;color:#687893;margin:0}.rsvp{max-width:450px;margin:30px auto 0}.field{text-align:left;margin-bottom:18px}.field label{display:block;font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;margin-bottom:7px}.field input,.field select{font:14px var(--sans);border:1px solid #c7d0de;width:100%;padding:14px;background:white;border-radius:0;color:var(--ink)}.notice{min-height:23px;margin-top:15px;font-size:12px;color:var(--blue)}.footer{background:#263454;color:#fff;text-align:center;padding:85px 20px}.footer .monogram{width:125px;height:125px;object-fit:contain;filter:brightness(0) invert(1);opacity:.83}.footer h2{font:300 54px var(--serif);margin:0}.footer p{font-size:11px;letter-spacing:.18em}.return{display:inline-block;padding:16px;font-size:11px;text-decoration:underline;color:#dbe2ee}.hint{font-size:11px;color:#73809a;margin-top:17px}
@media(min-width:901px){.entry-inner{transform:translateY(-12px)}}@media(max-width:560px){.entry-inner{padding:14px 10px}.entry-top{margin-bottom:20px}.entry-top p{font-size:20px}.envelope{height:265px;width:min(360px,94vw)}.seal{width:85px;height:85px}.tap{margin-top:28px}.entry-foot{font-size:20px}.section{padding:75px 0}.info-cards{grid-template-columns:1fr;gap:15px}.info-card{min-height:245px;padding:27px 12px}.date-number{gap:16px}.date-number span{font-size:9px}.hero .names{letter-spacing:.13em}.details{padding:35px 14px}.preview-label{font-size:8px;top:7px;right:7px}.footer{padding:65px 15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.info-card{display:flex;flex-direction:column;align-items:center;min-height:420px}.venue-name{font:400 clamp(23px,3vw,29px)/1.12 var(--serif);margin:12px 0 8px;max-width:265px;min-height:65px}.info-card .venue-address{font-size:12px;color:#69758a;line-height:1.7;margin:2px 0 7px}.info-card .venue-time{font:italic 20px var(--serif);margin:12px 0 20px;color:#677893}.venue-link{margin-top:auto;min-width:155px;padding:14px 17px}.info-card h3{margin:12px 0 3px}@media(max-width:560px){.info-card{min-height:385px}.venue-name{min-height:0}}
