:root{--navy:#0b3260;--ink:#112c4d;--gold:#c8882b;--gold-light:#f6d78d;--paper:#fffbf3;--sky:#deeffb}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--navy);background:linear-gradient(95deg,#e6f2ff 0%,#fffcf7 28%,#fffcf7 72%,#e7f1fb 100%);font-family:'Cormorant Garamond',Georgia,serif}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;filter:saturate(.7)}[hidden]{display:none!important}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:100;left:16px;top:-100px;padding:9px 16px;background:#fff;color:var(--navy)}.skip-link:focus{top:16px}
.page-wrap{margin:0 auto;max-width:1055px;box-shadow:0 12px 80px rgba(20,46,76,.16)}.invitation-page{position:relative}.pixel-poster{width:100%;aspect-ratio:1055 / 1491;position:relative}.pixel-poster>img{display:block;width:100%;height:auto}.mobile-invitation{display:none}
/* On desktop the geometric ornamentation and Georgi's portrait remain exactly as in the approved art. These are transparent functional HTML controls, not hotspots. */
.rsvp-dialog{position:absolute;z-index:5;top:calc(min(100vw,1055px)*.3474);left:calc(50% - min(100vw,1055px)/2 + min(100vw,1055px)*.502);width:calc(min(100vw,1055px)*.447);height:calc(min(100vw,1055px)*.4);pointer-events:none}.dialog-panel{position:relative;height:100%;width:100%;pointer-events:none}.rsvp-dialog button,.rsvp-dialog input,.rsvp-dialog label,.rsvp-dialog .children-count-row{pointer-events:auto}
.close-rsvp{position:absolute;z-index:4;top:-.8%;right:-.4%;height:9.3%;aspect-ratio:1;border-radius:100%;border:2px solid #b97b28;background:radial-gradient(circle at 43% 31%,#fff7dc,#f5d48d);box-shadow:0 1px 0 3px #fff4d7,0 4px 7px #906b2e80;color:#a36c14;font-family:Georgia,serif;font-size:clamp(18px,2.9vw,32px);line-height:1;font-weight:normal}.close-rsvp:hover{filter:brightness(1.09)}.close-rsvp:focus-visible,.rsvp-dialog :focus-visible,.poster-open-rsvp:focus-visible,.mobile-open:focus-visible{outline:3px solid #1260ba;outline-offset:3px}
.form-mobile-title,.mobile-call-note{display:none}.form-screen,.rsvp-form{position:absolute;inset:0;pointer-events:none}.rsvp-form>label{display:flex;align-items:center;gap:4%;position:absolute;left:7.7%;width:85%;height:10.1%;background:linear-gradient(#fff,#fffdfc);border:1.5px solid #edd4b6;border-radius:clamp(8px,1.8vw,21px);box-shadow:0 2px 4px #a8793630;padding:0 4.5%;transition:box-shadow .15s,border-color .15s}.rsvp-form>label:focus-within{border-color:#ce982d;box-shadow:0 0 0 3px #e4b86266}.field-name{top:45.5%}.field-guests{top:57.65%}.rsvp-form>label input:not([type=checkbox]){display:block;width:100%;min-width:0;height:100%;background:transparent;border:0;outline:0;color:#20395a;font:400 clamp(14px,2.15vw,23px) Georgia,serif}.rsvp-form input::placeholder{color:#747480;opacity:1}.field-icon{height:42%;width:10%;display:flex;align-items:center;justify-content:center;flex:none;color:#d09b46}.field-icon svg{height:100%;width:100%;fill:currentColor}.guest-arrows{display:grid;justify-items:center;color:#aa721e;font:600 clamp(14px,1.9vw,24px) Arial,sans-serif;line-height:.5}.guest-arrows span{display:block;margin-top:.25em}
.rsvp-form>.kids-checkbox{top:69.5%;height:8%;border:0;border-radius:0;background:#fffbf300;box-shadow:none;padding:0 1% 0 6.5%;gap:5%;color:#0e3260;font:400 clamp(12px,1.98vw,21px) Georgia,serif;white-space:nowrap}.rsvp-form>.kids-checkbox:focus-within{box-shadow:none}.kids-checkbox input{position:absolute;opacity:0;width:1px;height:1px}.check-art{height:59%;aspect-ratio:1;border:1.5px solid #c98b34;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;background:#fffdf6;box-shadow:0 0 0 3px #fefbf7}.kids-checkbox input:checked+.check-art::after{content:'✔';color:#b27a1e;font:bold clamp(14px,1.8vw,23px) Arial,sans-serif}.kids-checkbox input:focus-visible+.check-art{outline:3px solid #1260ba;outline-offset:3px}.check-blue-heart{margin-left:auto;color:#8abfe5;font-size:clamp(12px,2.5vw,26px);text-shadow:0 1px white}
.children-count-row{position:absolute;top:31%;left:10%;width:80%;display:flex;align-items:center;gap:2%;padding:8px 12px;background:linear-gradient(145deg,#fffcf4,#fff);border:1px solid #d9b47c;border-radius:13px;box-shadow:0 5px 14px #493b2866;font:clamp(13px,1.5vw,17px) Georgia,serif}.children-count-row label{flex:1}.children-count-row input{width:22%;border:1px solid #c9a572;border-radius:8px;padding:5px;color:var(--navy)}.spam-field{position:absolute;left:-9999px;height:0;width:0;opacity:0;pointer-events:none}
.confirm-button{position:absolute;top:79%;left:10%;width:80%;height:11%;border:2px solid #be7e20;border-radius:500px;background:linear-gradient(180deg,#ffe7a1 0%,#efbc5b 19%,#df9b36 62%,#b87521 100%);color:white;text-shadow:0 2px 2px #7b4e19a6;box-shadow:inset 0 0 0 2px #fff4cf,0 3px 0 #9f6818,0 7px 13px #67440b55;display:flex;align-items:center;justify-content:center;gap:5%;font:400 clamp(17px,2.9vw,33px) Georgia,serif;transition:transform .14s,filter .14s}.confirm-button:hover{filter:brightness(1.05);transform:translateY(-1px)}.confirm-button:active{transform:translateY(1px)}.submit-heart{font-size:.92em;color:#fffef9;text-shadow:0 2px 3px #a36c18}
.success-screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:12%;text-align:center;border-radius:9%;background:linear-gradient(150deg,#fffef8,#fff4df);box-shadow:0 2px 20px #98602d55;pointer-events:auto}.success-screen h2{font-size:clamp(19px,3vw,37px);margin:5px 0 8px}.success-screen p{font:clamp(14px,1.8vw,19px)/1.35 Georgia,serif}.big-success-heart{font-size:clamp(28px,5vw,55px);color:#c99033}.done-button{border-radius:40px;border:1px solid #bd8533;background:linear-gradient(#f5d17e,#bc832a);color:white;padding:9px 25px;font-size:20px}
.poster-open-rsvp{position:absolute;right:6%;top:52%;padding:1.4% 2.9%;border:2px solid #c68e36;border-radius:50px;background:linear-gradient(#fce3a4,#bf872f);color:white;box-shadow:0 6px 25px #875e2e99;font:2.3cqw Georgia,serif;white-space:nowrap;z-index:4}.pixel-poster{container-type:inline-size}
.form-status{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);width:min(90vw,620px);z-index:25;background:#fffbf2;color:var(--navy);border:2px solid #d6a04c;box-shadow:0 9px 28px #1e293b3d;padding:15px 46px 15px 20px;border-radius:16px;font:17px/1.4 Georgia,serif;text-align:center}
.confetti-layer{position:fixed;inset:0;z-index:40;pointer-events:none;overflow:hidden}.confetti-piece{position:absolute;left:var(--x);top:-20px;width:8px;height:16px;background:var(--color);opacity:.95;animation:fall var(--duration) linear forwards;transform:rotate(var(--rot))}@keyframes fall{to{transform:translate(var(--swing),110vh) rotate(var(--rot));opacity:0}}.no-script{background:#fff3d1;text-align:center;padding:22px}
@media(min-width:1056px){.rsvp-dialog{left:calc(50% - 527.5px + 529.6px);top:517.95px;width:471.6px;height:596.4px}.close-rsvp{font-size:32px}.rsvp-form>label input:not([type=checkbox]){font-size:23px}.rsvp-form>.kids-checkbox{font-size:21px}.confirm-button{font-size:33px}}
@media(max-width:740px){
 html{scroll-behavior:smooth}body{background:#eaf4fa}.page-wrap{max-width:550px;box-shadow:0 1px 25px #182c4e20}.pixel-poster{display:none}.mobile-invitation{display:block;overflow:hidden;background:linear-gradient(#fff9ee,#fffaf4 25%,#e3f4ff 75%,#fffaf5)}
 .mobile-topper{display:flex;align-items:center;justify-content:space-around;gap:8px;padding:9px 5%;font:600 clamp(12px,3.8vw,17px) Georgia,serif;color:#234467;background:linear-gradient(#fffbf6,#fdf2e4)}.mobile-topper span:first-child,.mobile-topper span:last-child{color:#c39240;font-size:26px}
 .mobile-hero{height:min(157vw,780px);position:relative;overflow:hidden;background:#faeedf}.mobile-hero img{position:absolute;display:block;left:50%;top:0;transform:translateX(-50%);width:100%;height:100%;object-fit:cover;object-position:center top}.mobile-hero::after{content:'';position:absolute;inset:auto 0 0;height:12%;background:linear-gradient(transparent,#fffaed)}
 .mobile-title-area{position:relative;text-align:center;padding:9px 6% 31px;background:radial-gradient(ellipse at 40% 0,#fff,#fff8ed 66%)}.mobile-crown{display:block;color:#bc8b35;font-size:46px;line-height:1}.mobile-title-area h1{font:600 clamp(45px,13vw,75px)/.99 'Cormorant Garamond',Georgia,serif;letter-spacing:-.04em;color:#0c3768;margin:5px 0 25px}.mobile-title-area h1 em{display:block;font:400 clamp(59px,15vw,90px)/1 'Marck Script','Bad Script',cursive;color:#bb812e;letter-spacing:0;margin-top:4px}.blue-ribbon{position:relative;margin:0 -2% 24px;padding:12px 7px;background:linear-gradient(90deg,#b7e0f4,#e3f4fb 48%,#b8e4f8);color:#0c3768;font:600 clamp(18px,5vw,25px) 'Cormorant Garamond',Georgia,serif;box-shadow:0 4px 15px #6da6c723}.blue-ribbon::before,.blue-ribbon::after{position:absolute;content:'';top:100%;border:9px solid transparent}.blue-ribbon::before{left:0;border-top-color:#80b6d8}.blue-ribbon::after{right:0;border-top-color:#80b6d8}.mobile-title-area>p{font:500 clamp(20px,5.2vw,27px)/1.25 'Cormorant Garamond',Georgia,serif;max-width:430px;margin:auto}.floating-star{position:absolute;color:#cfa359;font-size:25px;animation:twinkle 3s ease-in-out infinite}.star-one{left:12%;top:20px}.star-two{right:14%;top:50px;animation-delay:1s}@keyframes twinkle{50%{opacity:.38;transform:scale(.7)}}
 .mobile-family-card{position:relative;margin:11px 4% 18px;padding:20px 14px 20px 32%;min-height:195px;background:linear-gradient(#fff,#fffbf3);border:2px solid #cf9f55;border-radius:25px;box-shadow:0 4px 14px #bda37e24;display:flex;align-items:center}.mobile-family-card>img{position:absolute;left:0;top:50%;transform:translateY(-50%);width:34%;height:95%;object-fit:cover;object-position:center}.mobile-family-card p{margin:0;text-align:center;font:500 clamp(19px,5.2vw,27px)/1.1 'Cormorant Garamond',Georgia,serif}.mobile-family-card strong{display:block;color:#174a7a}.mobile-family-card em{display:block;font-weight:700;font-style:normal;color:#945c18;font-size:1.15em;margin-top:10px}
 .mobile-facts{display:grid;grid-template-columns:1fr;gap:13px;margin:0 5%}.fact{display:flex;align-items:center;gap:16px;min-height:76px;padding:12px 18px;background:#fffdf8;border-radius:18px;box-shadow:0 4px 20px #8ea9c121;font:600 clamp(21px,5vw,26px)/1.05 'Cormorant Garamond',Georgia,serif}.fact-icon{color:#ad791c;background:#fae7c0;display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;flex:none;font-size:30px}
 .mobile-open{display:block;margin:24px auto;border:2px solid #bb802c;border-radius:80px;background:linear-gradient(#ffe9a5,#e8ad52 40%,#b77827);color:#fff;padding:14px 23px;min-height:62px;box-shadow:inset 0 0 0 2px #fff2cf,0 4px 13px #986a3091;font:600 clamp(20px,5.5vw,27px) 'Cormorant Garamond',Georgia,serif}.mobile-open>span{font:27px Arial;margin-right:7px}
 .mobile-last-wish{position:relative;min-height:270px;padding:65px 10% 25px;text-align:center;overflow:hidden;background:linear-gradient(#cce6f8 0%,#faffff 37%,#fff 100%)}.mobile-last-wish p{position:relative;z-index:2;font:500 clamp(32px,9vw,54px)/1.32 'Bad Script','Marck Script',cursive;color:#123d70;text-shadow:1px 1px white;margin:0}.mobile-last-wish em{font-style:normal;display:block}.mobile-last-wish img{position:absolute;bottom:0;max-height:240px;width:38%;object-fit:cover;opacity:.8}.mobile-last-wish .balloon-left{left:-18%;object-position:left center}.mobile-last-wish .balloon-right{right:-18%;object-position:right center}.wish-heart{font-size:38px;color:#c99544;position:relative;z-index:2}
 /* Hand-coded modal: same decorative palette as the approved artwork, but with real controls. */
 .rsvp-dialog:not(.is-open){display:none}.rsvp-dialog{position:fixed;inset:0;width:100%;height:100%;background:#142b4f9c;backdrop-filter:blur(7px);display:grid;place-items:center;padding:14px;overflow-y:auto;pointer-events:auto;z-index:30;opacity:1}.dialog-panel{position:relative;width:min(100%,480px);height:auto;max-height:min(93dvh,900px);overflow-y:auto;pointer-events:auto;padding:31px 23px 19px;background:radial-gradient(ellipse at top,#fffefd,#fff5e5);border:3px double #d59c42;border-radius:31px;box-shadow:0 18px 60px #161b2c80,inset 0 0 0 5px #fff9e9}.rsvp-dialog .close-rsvp{top:8px;right:8px;width:41px;height:41px;font-size:26px;background:#ffe9ba;box-shadow:0 2px 7px #a5866040}
 .form-mobile-title{display:block;text-align:center;padding:15px 2px 18px}.form-balloons{display:block;color:#cb9a45;font:32px 'Bad Script',cursive;margin-bottom:4px}.form-mobile-title h2{color:#0d3867;font:600 clamp(33px,8vw,47px)/.98 'Cormorant Garamond',Georgia,serif;margin:0 0 16px}.form-mobile-title h2 em{display:block;font:normal clamp(29px,7vw,41px) 'Marck Script','Bad Script',cursive}.form-mobile-title p{font:500 21px/1.2 'Cormorant Garamond',Georgia,serif;margin:0 0 9px}
 .form-screen,.rsvp-form{position:static;pointer-events:auto}.rsvp-form{display:flex;flex-direction:column;gap:14px}.rsvp-form>label{position:relative;left:auto;top:auto;width:100%;height:56px;min-height:56px;border-radius:15px;padding:0 16px;gap:14px;background:white;border:1px solid #e4c9a2;box-shadow:0 2px 6px #ae854b2b}.field-icon{width:27px;height:27px}.rsvp-form>label input:not([type=checkbox]){font:20px Georgia,serif}.guest-arrows{font-size:23px}.rsvp-form>.kids-checkbox{position:relative;top:auto;height:49px;min-height:49px;background:transparent;border:0;box-shadow:none;padding-left:7px;gap:14px;font:19px Georgia,serif}.check-art{height:30px}.kids-checkbox input:checked+.check-art::after{font-size:24px}.check-blue-heart{font-size:23px}.children-count-row{position:static;top:auto;left:auto;width:100%;display:flex;box-shadow:none;font-size:17px;gap:8px;min-height:47px}.children-count-row input{height:39px;font-size:18px}.confirm-button{position:static;top:auto;left:auto;width:100%;height:59px;font:30px Georgia,serif;flex:none}.mobile-call-note{display:block;text-align:center;font:17px/1.15 'Cormorant Garamond',Georgia,serif;margin:22px 0 0}.success-screen{position:relative;inset:auto;min-height:260px;border-radius:17px}.success-screen h2{font-size:37px}.success-screen p{font-size:20px}.big-success-heart{font-size:49px}
 .form-status{bottom:13px;width:calc(100% - 22px);font-size:15px}
 .mobile-modal-open{overflow:hidden}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
