:root{font-family:Georgia,serif;color:#f4ebdd;background:#0b1121;color-scheme:dark;--gold: #d5b078;--ivory: #f4ebdd;--navy: #111d38;--display: Didot, "Bodoni 72", "Times New Roman", serif;--panel-width: min(420px, calc(100vw - 24px) );--panel-top: clamp(8px, 3svh, 32px)}*{box-sizing:border-box}body{margin:0}body:before,body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:-1}body:before{background:radial-gradient(ellipse at 14% 12%,#63524354,transparent 47%),radial-gradient(ellipse at 78% 69%,#273953 4%,transparent 58%),radial-gradient(ellipse at 48% 32%,#253249 5%,#101827 58%,#090e1a)}body:after{background:linear-gradient(126deg,transparent 18%,#e8c0930c 42%,transparent 62%);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit}:focus-visible{outline:2px solid #edc890;outline-offset:4px}.sr-only{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.kicker{font:600 10px/1.4 system-ui,sans-serif;letter-spacing:.23em;color:var(--gold)}.arrival{display:grid;place-content:center;justify-items:center;gap:clamp(19px,4.7svh,46px);height:100svh;min-height:0;padding:14px;overflow:clip;perspective:1050px;isolation:isolate}.arrival-copy{text-align:center}.arrival-copy .kicker{margin:0 0 15px}.arrival h1{font:400 clamp(42px,8vw,68px)/1.02 var(--display);letter-spacing:-.045em;margin:0}.guest-line{margin:9px 0 0;font:italic 18px/1.35 var(--display);color:#e5cbab}.reveal-target{position:absolute;top:var(--panel-top);width:var(--panel-width);left:50%;translate:-50% 0}.envelope{position:relative;width:min(400px,calc(100vw - 54px),63svh);aspect-ratio:1.69;cursor:pointer;transform-style:preserve-3d;perspective:900px}.envelope-back,.pocket,.flap,.letter-slot{position:absolute;top:0;right:0;bottom:0;left:0}.envelope-back{background:linear-gradient(145deg,#17233b,#0e182b);border:1px solid #77758165;border-radius:3px;box-shadow:0 32px 45px -17px #04060ddc,0 8px 20px #060910a0}.letter-slot{z-index:2;clip-path:inset(-100vh -100vw 0);pointer-events:none}.letter{visibility:hidden;position:absolute;top:9%;left:14%;width:72%;height:auto;transform-origin:top center;box-shadow:0 4px 24px #050911b0}.pocket{z-index:3;overflow:hidden;border-radius:0 0 3px 3px}.pocket i,.flap-paper,.flap-lining{position:absolute;top:0;right:0;bottom:0;left:0;background-blend-mode:soft-light,normal;background-size:cover;background-image:url(/paper.webp),linear-gradient(var(--paper-light),var(--paper-dark))}.pocket i:nth-child(1){--paper-light: 140deg, #2b3b58;--paper-dark: #142039;clip-path:polygon(0 0,60% 58%,0 100%)}.pocket i:nth-child(2){--paper-light: 220deg, #293a58;--paper-dark: #131d34;clip-path:polygon(100% 0,100% 100%,40% 58%)}.pocket i:nth-child(3){--paper-light: 176deg, #354664;--paper-dark: #18243d 78%;clip-path:polygon(0 97%,47% 44%,53% 44%,100% 97%,100% 100%,0 100%)}.flap{z-index:4;height:62%;transform-style:preserve-3d;transform-origin:top center;filter:drop-shadow(0 5px 5px #050912ad)}.flap-paper,.flap-lining{backface-visibility:hidden;clip-path:polygon(0 0,100% 0,100% 5%,53% 100%,47% 100%,0 5%)}.flap-paper{--paper-light: 162deg, #354765;--paper-dark: #182641 92%;border-top:1px solid #acb2be52}.flap-lining{--paper-light: 20deg, #514641;--paper-dark: #252737;transform:rotateY(180deg)}.seal{z-index:5;position:absolute;left:50%;top:58%;translate:-50% -50%;display:grid;place-content:center;width:clamp(40px,13%,54px);aspect-ratio:1;border-radius:50%;border:1px solid #f4d9a876;background:radial-gradient(circle at 31% 18%,#ebcf99,#c5a06b 62%,#99794f);box-shadow:inset 0 0 0 3px #4c351e38,0 5px 8px #03050ba8;color:#45311e;font:600 15px/1 var(--display);letter-spacing:.05em}.open-button,.choice{min-height:45px;border:1px solid #d5b07885;border-radius:2px;background:#101a2bd9;color:var(--ivory);font:650 11px/1.3 system-ui,sans-serif;letter-spacing:.17em;text-transform:uppercase}.open-button{padding:0 20px}.open-button span{margin-left:12px;color:var(--gold)}.open-button:hover,.choice:hover{border-color:var(--gold);background:#25324a}.viewer{position:fixed;top:var(--panel-top);bottom:var(--panel-top);left:50%;translate:-50% 0;width:var(--panel-width);display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--navy);box-shadow:0 22px 85px #03060c99,0 0 0 1px #acb9cd28}.reader{overflow:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#736248 transparent}.reader:focus-visible{outline-offset:-2px}.card-section{position:relative}.invitation-art{display:block;width:100%;height:auto}.explore{display:block;text-align:center;padding:15px;color:var(--gold);font:650 10px/1.4 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.16em;text-decoration:none}.explore span{margin-left:8px}.explore:hover,.reader-nav a:hover,.reader-nav button:hover{color:#ffdead}.paper{padding:clamp(25px,9vw,40px) clamp(19px,8vw,34px);border-top:1px solid #d5b07852;background:linear-gradient(152deg,#1c2944,#111d38 65%);animation:settle .45s ease both}@keyframes settle{0%{opacity:.88}to{opacity:1}}.paper .kicker{margin:0 0 12px}.paper h2{font:400 clamp(33px,9vw,44px)/1.04 var(--display);margin:0 0 21px;letter-spacing:-.025em}.paper dl{margin:0}.paper dl div{padding:12px 0;border-top:1px solid #d5b07836}.paper dt{color:var(--gold);margin-bottom:4px;font:600 10px/1.4 system-ui,sans-serif;letter-spacing:.15em;text-transform:uppercase}.paper dd{font-size:16px;margin:0;line-height:1.3}.purpose{font:italic 17px/1.5 var(--display);margin:19px 0 0;color:#e9d5b9}.response-actions{display:grid;gap:8px}.choice{width:100%;padding:8px}.choice.primary{background:var(--gold);color:#111a2c}.choice.primary:hover{background:#e8c79b}.choice[aria-pressed=true]{box-shadow:inset 0 0 0 2px #111d38,inset 0 0 0 3px #f0cf9a}.response-status{margin-top:15px;color:#ecdfcd;font:13px/1.45 system-ui,sans-serif}.response-status p{margin:4px 0 0}.reader-nav{position:relative;display:grid;grid-template-columns:1.15fr 1fr .78fr 1fr;background:#111a2bf5;border-top:1px solid #d5b07860;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.reader-nav a,.reader-nav button{display:grid;place-content:center;grid-auto-flow:column;gap:4px;min-height:49px;padding:4px;background:transparent;border:0;color:#e9dfce;font:600 10px/1.2 system-ui,sans-serif;letter-spacing:.07em;text-transform:uppercase;text-decoration:none}.reader-nav [aria-current]{color:var(--gold);box-shadow:inset 0 2px 0 var(--gold)}.reader-nav :focus-visible{outline-offset:-3px}.missing{margin:25vh auto;padding:20px;width:min(420px,100%);text-align:center}@media(max-height:460px){.arrival{gap:12px}.arrival h1{font-size:36px}.arrival-copy .kicker{margin-bottom:5px}.guest-line{margin-top:4px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}:root{--toolbar-height: 39px}.reveal-target{top:calc(var(--panel-top) + var(--toolbar-height))}.invitation-toolbar{min-height:var(--toolbar-height);padding:0 13px;display:flex;align-items:center;justify-content:space-between;gap:5px;border-bottom:1px solid #d5b07833;color:#e4cba9;font:600 10px/1.2 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.11em}.music-control{min-height:38px;padding:0 3px;background:none;color:inherit;border:0;font:inherit;text-transform:inherit;letter-spacing:inherit}.music-control span{margin-right:4px}.paper>p:not(.kicker){line-height:1.55}.inline-actions{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:12px}.text-action{display:inline-block;padding:8px 0;color:var(--gold);font:650 10px/1.35 system-ui,sans-serif;letter-spacing:.1em;text-underline-offset:4px;text-transform:uppercase}.editorial{overflow:hidden}.section-image{display:block;width:calc(100% + 2*clamp(19px,8vw,34px));max-height:225px;height:auto;object-fit:cover;margin:calc(-1*clamp(25px,9vw,40px)) calc(-1*clamp(19px,8vw,34px)) 24px}.programme{margin:0;padding:0;list-style:none}.programme li{display:grid;grid-template-columns:3.7rem minmax(0,1fr);gap:10px;padding:12px 0;border-top:1px solid #d5b07836}.programme time{color:var(--gold);font:600 12px/1.5 system-ui,sans-serif}.fine-print{color:#ddcdb7;font:12px/1.5 system-ui,sans-serif}.swatches{display:flex;gap:9px;margin-top:18px}.swatches span{display:block;width:29px;aspect-ratio:1;border-radius:50%;border:1px solid #d5b07880}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gallery-grid button{padding:0;border:1px solid #d5b07855;background:transparent}.gallery-grid img,.gallery-dialog img{display:block;width:100%;height:auto}.gallery-dialog{position:fixed;max-width:min(680px,calc(100vw - 28px));max-height:calc(100svh - 24px);overflow:auto;padding:12px;background:#111d38;color:var(--ivory);border:1px solid #d5b07880}.gallery-dialog::backdrop{background:#070b17d9}.gallery-dialog p{padding:0 8px}.gallery-close{position:absolute;top:16px;right:16px}.gallery-close,.gallery-controls button{min-width:44px;min-height:44px;border:1px solid #d5b07880;background:#111d38;color:var(--ivory)}.gallery-controls{display:flex;gap:8px;padding:0 8px 8px}.gallery-controls button{padding:0 12px}.faq details{border-top:1px solid #d5b07855}.faq summary{cursor:pointer;padding:13px 0}.faq details p{margin:0 0 14px;line-height:1.5}.farewell{margin:28px 0 0;text-align:center;color:var(--gold);font:34px var(--display)}.rsvp form label{display:grid;gap:6px;margin:10px 0;font:600 12px/1.4 system-ui,sans-serif}.rsvp form label small{display:contents;font-weight:400}.rsvp input:not([type=checkbox]),.rsvp select,.rsvp textarea{width:100%;min-height:42px;border:1px solid #a88962;border-radius:2px;padding:8px;color:var(--ivory);background:#0d172b;font:16px/1.35 system-ui,sans-serif}.guest-fields{padding:6px 12px;margin:13px 0;min-width:0;border:1px solid #d5b07866}.guest-fields legend{padding:0 5px;color:var(--gold)}.rsvp form .companion-toggle{display:flex;align-items:center;gap:9px;min-height:36px}.companion-toggle input{accent-color:var(--gold)}.reply-name{font-size:14px}.submit-reply{margin-top:10px}
