:root{--ink:#343a22;--forest:#466721;--forest-deep:#2d4716;--ivory:#fffaf4;--paper:#fffdf9;--gold:#b99546;--gold-light:#dfbd70;--rose:#b35c6e;--blush:#dc8f8b;--olive-light:#a2b567;--rose-gold:#ca947f}*{box-sizing:border-box}html{background:var(--forest-deep)}body{color:var(--ink);background:var(--forest-deep);margin:0;font-family:Georgia,Times New Roman,serif}button{font:inherit}.site-shell{isolation:isolate;background:radial-gradient(circle at 12% 16%,#dc8f8b57,#0000 30%),radial-gradient(circle at 88% 82%,#a2b56761,#0000 32%),linear-gradient(145deg,#fff8f4 0%,#f7efe8 48%,#eef0df 100%);place-items:center;min-height:100svh;padding:24px;display:grid;position:relative;overflow:hidden}.site-shell:before{content:"";z-index:0;filter:blur(8px);pointer-events:none;background:radial-gradient(#fff6d8c7 0 10%,#dc8f8b2e 28%,#a2b5671f 48%,#0000 70%);border-radius:50%;width:min(1060px,108vw);height:min(420px,38vh);transition:opacity .8s,transform 1.2s cubic-bezier(.22,1,.36,1);position:fixed;bottom:-14vh;left:50%;transform:translate(-50%)}.site-shell:after{content:"";z-index:0;pointer-events:none;filter:blur(.2px);opacity:.8;background:radial-gradient(circle at 8% 38%,#f9da9557 0 2px,#0000 3px),radial-gradient(circle at 93% 31%,#fff1ca52 0 3px,#0000 4px),radial-gradient(circle at 16% 78%,#ffffff80 0 2px,#0000 3px),radial-gradient(circle at 84% 72%,#dab16845 0 2px,#0000 4px);animation:12s ease-in-out infinite alternate ambience-shift;position:fixed;inset:0}.grain{pointer-events:none;z-index:1;opacity:.18;mix-blend-mode:soft-light;background-image:radial-gradient(circle at 20% 30%,#ffffff42 0 .45px,#0000 .7px),radial-gradient(circle at 70% 65%,#0000003d 0 .4px,#0000 .68px);background-size:5px 7px,7px 5px;position:fixed;inset:0}.wedding-canopy{z-index:6;pointer-events:none;height:min(42vh,390px);transition:opacity .7s,visibility .7s;position:fixed;inset:0 0 auto;overflow:hidden}.wedding-canopy:after{content:"";z-index:3;filter:blur(12px);background:linear-gradient(#66453417,#0000 72%);width:100%;height:78px;position:absolute;top:-20px;left:0}.canopy-panel{transform-origin:50% 0;opacity:.86;filter:drop-shadow(0 14px 18px #4f3b2a14);background:linear-gradient(90deg,#ffffff14,#fffdf8e6 18%,#e2c6bb7a 51%,#fffdf8cc 82%,#ffffff0a),repeating-linear-gradient(90deg,#0000 0 9%,#8b61501b 11%,#fff3 13%,#0000 17%),linear-gradient(#fffdf8,#f2dfd7 72%,#fffaf2);border-radius:0 0 60% 60%;width:min(58vw,760px);height:136%;transition:transform 1.15s cubic-bezier(.76,0,.24,1),opacity .9s;animation:8s ease-in-out infinite alternate canopy-breathe;position:absolute;top:-47%;left:50%;box-shadow:0 26px 54px #5f43301c}.canopy-panel-1{animation-delay:-1.5s;transform:translate(-97%)rotate(-28deg)}.canopy-panel-2{animation-delay:-4.7s;transform:translate(-77%)rotate(-14deg)}.canopy-panel-3{z-index:2;animation-delay:-2.8s;transform:translate(-50%)}.canopy-panel-4{animation-delay:-6.1s;transform:translate(-23%)rotate(14deg)}.canopy-panel-5{animation-delay:-3.6s;transform:translate(-3%)rotate(28deg)}.canopy-swag{z-index:3;transform-origin:50% 0;background:repeating-radial-gradient(at 50% -4%,#0000 0 31px,#ab796714 33px,#ffffff38 35px,#0000 39px),linear-gradient(#fffdf7e0,#f4ddd3bd 71%,#fffbf49e);border-bottom:1px solid #b9954647;border-radius:0 0 50% 50%;width:48%;height:265px;transition:transform 1.15s cubic-bezier(.76,0,.24,1),opacity .9s;animation:5.8s ease-in-out infinite alternate wedding-swag;position:absolute;top:-118px;box-shadow:0 18px 28px #583d2b14}.canopy-swag-left{animation-delay:-1.8s;left:4%;transform:rotate(5deg)}.canopy-swag-centre{z-index:4;animation-delay:-4.2s;top:-135px;left:26%;transform:rotate(0)}.canopy-swag-right{animation-delay:-3s;right:4%;transform:rotate(-5deg)}.canopy-fall{z-index:3;opacity:.88;filter:drop-shadow(0 20px 28px #4c332521);transform-origin:50% 0;background:linear-gradient(90deg,#ffffff1a,#fffcf5eb 18%,#d5aea261 42%,#fffcf5d6 68%,#b9857433 82%,#ffffff14),repeating-linear-gradient(90deg,#0000 0 15px,#7c534314 17px,#ffffff3d 22px,#0000 28px),linear-gradient(#fffdf7,#efd9d0 78%,#fff9ef);width:clamp(155px,20vw,280px);height:390px;transition:transform 1.15s cubic-bezier(.76,0,.24,1),opacity .9s;position:absolute;top:-18px}.canopy-fall:after{content:"";background:radial-gradient(at 50% 0,#0000 0 48%,#b9954633 50% 51%,#0000 53%);height:55px;position:absolute;inset:auto 0 0}.canopy-fall-left{clip-path:polygon(0 0,100% 0,73% 32%,88% 58%,58% 100%,0 100%);animation:6.8s ease-in-out infinite alternate curtain-left;left:-22px}.canopy-fall-right{clip-path:polygon(0 0,100% 0,100% 100%,42% 100%,12% 58%,27% 32%);animation:7.2s ease-in-out -2.8s infinite alternate curtain-right;right:-22px}.canopy-tie{z-index:7;background:linear-gradient(#f6d1c6,#c98779 52%,#efd1bd);border:1px solid #b9954694;border-radius:50%;width:58px;height:24px;animation:4.8s ease-in-out infinite alternate tie-breathe;position:absolute;top:112px;box-shadow:0 5px 14px #53352729,inset 0 0 0 4px #fffaf452}.canopy-tie-left{left:clamp(48px,8vw,122px);transform:rotate(-17deg)}.canopy-tie-right{animation-delay:-2.4s;right:clamp(48px,8vw,122px);transform:rotate(17deg)}.canopy-tie i,.canopy-tie b{background:linear-gradient(135deg, var(--forest), var(--olive-light));border-radius:90% 12%;width:42px;height:17px;position:absolute;top:14px}.canopy-tie i{left:-8px;transform:rotate(28deg)}.canopy-tie b{right:-8px;transform:scaleX(-1)rotate(28deg)}.canopy-medallion{z-index:4;background:radial-gradient(circle,#fffdf8 0 24%,#d9b66b 26% 29%,#fff9ee 31% 56%,#b99546 58% 61%,#f7ebd3 63%);border:1px solid #b99546bd;border-radius:50%;place-items:center;width:68px;height:68px;animation:5.2s ease-in-out infinite alternate rosette-bloom;display:grid;position:absolute;top:-17px;left:50%;transform:translate(-50%);box-shadow:0 10px 35px #4a371f2e}.canopy-medallion:before{content:"";background:radial-gradient(at 50% 8%,#d5858fbf 0 6px,#0000 7px),radial-gradient(at 92%,#e6a6a8b3 0 6px,#0000 7px),radial-gradient(at 50% 92%,#d5858fbf 0 6px,#0000 7px),radial-gradient(at 8%,#e6a6a8b3 0 6px,#0000 7px);border-radius:50%;position:absolute;inset:8px;rotate:45deg}.canopy-medallion i{border:1px solid var(--rose);border-radius:50%;width:15px;height:15px;box-shadow:0 0 18px #b35c6e61}.canopy-medallion b,.canopy-medallion em{background:linear-gradient(135deg, var(--forest), var(--olive-light));border-radius:90% 10%;width:28px;height:12px;position:absolute;box-shadow:0 0 0 1px #2d47161f}.canopy-medallion b{bottom:2px;left:-17px;transform:rotate(28deg)}.canopy-medallion em{bottom:2px;right:-17px;transform:scaleX(-1)rotate(28deg)}.couple-vignette{z-index:6;opacity:.34;filter:drop-shadow(0 9px 10px #343a221a);width:92px;height:112px;transition:opacity .75s,transform 1s cubic-bezier(.22,1,.36,1);animation:6s ease-in-out infinite alternate couple-presence;position:absolute;top:136px;left:50%;transform:translate(-50%)}.couple-vignette:before{content:"";border-top:1px solid #b35c6e85;border-radius:50% 50% 0 0;height:86px;position:absolute;top:-18px;left:-28px;right:-28px;box-shadow:inset 0 8px 18px #fffaf45c}.couple-vignette:after{content:"";background:linear-gradient(90deg,#0000,#2d471694 20% 80%,#0000);height:1px;position:absolute;bottom:7px;left:2px;right:2px}.bride-figure,.groom-figure{width:44px;height:92px;position:absolute;bottom:8px}.bride-figure{left:3px}.groom-figure{right:2px}.bride-figure i,.groom-figure i{z-index:2;background:#6e7e48;border-radius:50%;width:13px;height:13px;position:absolute;top:2px;box-shadow:0 -2px #2d471657}.bride-figure i{right:9px}.groom-figure i{left:8px}.bride-figure b{clip-path:polygon(40% 0,64% 0,72% 24%,100% 100%,0 100%,31% 24%);background:linear-gradient(100deg,#fffdf875,#dc8f8b42);border:1px solid #b35c6eb8;border-radius:55% 55% 8% 8%;width:38px;height:72px;position:absolute;bottom:0;right:1px}.bride-figure em{z-index:1;border:1px solid #b35c6e73;border-radius:100% 0 90% 15%;width:30px;height:45px;position:absolute;top:9px;right:13px;transform:rotate(10deg)}.groom-figure b{clip-path:polygon(17% 0,78% 0,100% 35%,82% 43%,77% 100%,17% 100%,12% 43%,0 35%);background:linear-gradient(90deg,#2d4716cc,#46672180);border-radius:8px 8px 3px 3px;width:31px;height:73px;position:absolute;bottom:0;left:2px}.groom-figure b:after{content:"";border-inline:1px solid #fffaf4b3;width:8px;height:19px;position:absolute;top:1px;left:11px;transform:skew(-10deg)}.groom-figure em{z-index:3;background:#2d4716b3;border-radius:99px;width:28px;height:2px;position:absolute;top:28px;left:-8px;transform:rotate(-20deg)}.bride-figure:after{content:"";z-index:3;background:#b35c6ead;border-radius:99px;width:25px;height:2px;position:absolute;top:32px;right:-8px;transform:rotate(20deg)}.fairy-strand{z-index:5;transform-origin:50% 0;border-bottom:1px solid #b9954675;border-radius:0 0 50% 50%;height:125px;animation:6.4s ease-in-out infinite alternate strand-drift;position:absolute;top:13px;left:50%;transform:translate(-50%)}.fairy-strand-near{width:min(52%,740px)}.fairy-strand-wide{width:min(82%,1160px);height:184px;animation-delay:-3.3s;top:18px}.fairy-strand i{background:#ffe6a8;border-radius:50%;width:7px;height:7px;animation:2.3s ease-in-out infinite alternate fairy-twinkle;position:absolute;bottom:-5px;box-shadow:0 0 8px #f5c96a,0 0 19px #f5c96ac7}.fairy-strand i:first-child{animation-delay:-.4s;bottom:10px;left:7%}.fairy-strand i:nth-child(2){animation-delay:-1.6s;bottom:-1px;left:28%}.fairy-strand i:nth-child(3){animation-delay:-.9s;bottom:-5px;left:50%}.fairy-strand i:nth-child(4){animation-delay:-2s;bottom:-1px;left:72%}.fairy-strand i:nth-child(5){animation-delay:-1.2s;bottom:10px;left:93%}.canopy-light{z-index:5;transform-origin:top;background:linear-gradient(#b99546b8,#0000);width:1px;height:clamp(70px,12vh,120px);animation:5.8s ease-in-out infinite alternate light-sway;position:absolute;top:38px}.canopy-light:after{content:"";background:#f5d98f;border-radius:50%;width:9px;height:9px;position:absolute;bottom:-3px;left:-4px;box-shadow:0 0 10px #f2c96e,0 0 28px #f5d27ecc}.canopy-light i{background:#fff9e8;border-radius:50%;width:3px;height:3px;position:absolute;top:24%;left:-1px;box-shadow:0 0 8px #fff}.canopy-light-1{animation-delay:-1s;left:17%}.canopy-light-2{height:clamp(48px,8vh,82px);animation-delay:-3.2s;left:35%}.canopy-light-3{height:clamp(48px,8vh,82px);animation-delay:-2.1s;right:35%}.canopy-light-4{animation-delay:-4.4s;right:17%}.is-open .canopy-panel{opacity:.6}.is-open .canopy-panel-1{transform:translate(-101%)rotate(-32deg)}.is-open .canopy-panel-2{transform:translate(-82%)rotate(-18deg)}.is-open .canopy-panel-4{transform:translate(-18%)rotate(18deg)}.is-open .canopy-panel-5{transform:translate(1%)rotate(32deg)}.is-open .canopy-swag{opacity:.56}.is-open .canopy-swag-left{transform:translate(-18px)rotate(8deg)}.is-open .canopy-swag-centre{transform:translateY(-9px)}.is-open .canopy-swag-right{transform:translate(18px)rotate(-8deg)}.is-open .canopy-fall{opacity:.67}.is-open .canopy-fall-left{transform:translate(-28px)}.is-open .canopy-fall-right{transform:translate(28px)}.is-open .fairy-strand i,.is-open .canopy-light:after{filter:brightness(1.08)}.is-open .couple-vignette{opacity:.12;transform:translate(-50%)translateY(-8px)scale(.94)}.is-open:before{opacity:.62;transform:translate(-50%)scaleX(1.08)}.in-journey .wedding-canopy{opacity:0;visibility:hidden}@keyframes canopy-breathe{0%{filter:drop-shadow(0 14px 18px #4f3b2a12);scale:1}to{filter:drop-shadow(0 20px 25px #4f3b2a24);scale:1.018 1.035}}@keyframes wedding-swag{0%{translate:0 -2px;scale:1}to{translate:0 5px;scale:1 1.025}}@keyframes light-sway{0%{transform:rotate(-1.8deg)}to{transform:rotate(1.8deg)}}@keyframes curtain-left{0%{translate:0 -2px;rotate:-.7deg}to{translate:4px 4px;rotate:1.5deg}}@keyframes curtain-right{0%{translate:0 -2px;rotate:.7deg}to{translate:-4px 4px;rotate:-1.5deg}}@keyframes tie-breathe{0%{translate:0 -1px;scale:.98}to{translate:0 3px;scale:1.04}}@keyframes rosette-bloom{0%{translate:0 -1px;rotate:-1.5deg;scale:.96}to{translate:0 3px;rotate:1.5deg;scale:1.04}}@keyframes couple-presence{0%{translate:0}to{translate:0 -4px}}@keyframes strand-drift{0%{rotate:-.45deg}to{rotate:.45deg}}@keyframes fairy-twinkle{0%{opacity:.42;scale:.78}to{opacity:1;scale:1.22}}@keyframes ambience-shift{0%{opacity:.55;transform:translateY(-3px)}to{opacity:.9;transform:translateY(4px)}}.portal{isolation:isolate;z-index:4;border:1px solid #b99546b8;border-radius:240px 240px 22px 22px;place-items:center;width:min(100%,480px);min-height:min(760px,100svh - 48px);transition:box-shadow 1.2s,transform 1.2s cubic-bezier(.22,1,.36,1);animation:1.05s cubic-bezier(.22,1,.36,1) backwards portal-arrive;display:grid;position:relative;overflow:hidden;box-shadow:0 40px 100px #30291657,inset 0 0 0 7px #b995461c}.portal:before{content:"";z-index:4;pointer-events:none;border:1px solid #e5c77d45;border-radius:230px 230px 14px 14px;position:absolute;inset:12px}.portal-door{z-index:3;background:radial-gradient(circle at 50% 22%,#ffffffe6,#0000 34%),repeating-linear-gradient(90deg,#0000 0 31px,#b995461f 32px 33px),linear-gradient(145deg,#fffdf7,#eee4ce 72%);width:50.2%;transition:transform 1.3s cubic-bezier(.76,0,.24,1),box-shadow 1s;position:absolute;inset-block:0;box-shadow:inset 0 0 45px #b9954629}.portal-door:before{content:"";pointer-events:none;background:radial-gradient(circle at 50% 16%,#0000 0 22px,#b9954661 23px 24px,#0000 25px),repeating-linear-gradient(90deg,#0000 0 24px,#b9954629 25px 26px);border:1px solid #b995467a;border-radius:120px 120px 8px 8px;position:absolute;inset:16px}.portal-door:after{content:"";pointer-events:none;border:2px solid #b9954699;border-radius:66% 34% 65% 35%;width:68px;height:68px;position:absolute;top:7%;transform:rotate(45deg);box-shadow:0 0 0 8px #b9954614,0 0 0 9px #b9954647}.portal-door-left:after{right:22px}.portal-door-right:after{left:22px}.portal-door-left{transform-origin:0;border-right:1px solid #b995468f;left:0}.portal-door-right{transform-origin:100%;border-left:1px solid #b995468f;right:0}.portal-line{background:linear-gradient(115deg,#0000 34%,#fff9e27a 47%,#0000 59%) 0 0/240% 100%;border:2px solid #b99546a3;border-radius:120px 120px 10px 10px;width:200px;height:520px;animation:8s ease-in-out 1.4s infinite gate-glint;position:absolute;top:12%}.portal-line:before,.portal-line:after{content:"";border:2px solid #b995468a;border-radius:50%;position:absolute}.portal-line:before{width:116px;height:116px;top:72px;left:40px;box-shadow:0 176px 0 -24px #b9954638}.portal-line:after{border-radius:12px 50%;width:56px;height:56px;top:102px;left:70px;transform:rotate(45deg)}.portal-door-left .portal-line{right:-100px}.portal-door-right .portal-line{left:-100px}.gate-flower{z-index:2;color:#b99546a8;filter:drop-shadow(0 2px 1px #6c4c1c14);width:92px;height:122px;position:absolute;top:26%}.portal-door-left .gate-flower{right:13px}.portal-door-right .gate-flower{left:13px;transform:scaleX(-1)}.gate-flower i{transform-origin:50% 90%;border:2px solid;border-radius:80% 12% 76% 18%;width:27px;height:51px;position:absolute;top:16px;left:34px}.gate-flower i:first-child{transform:rotate(-54deg)}.gate-flower i:nth-child(2){transform:rotate(-27deg)}.gate-flower i:nth-child(3){transform:rotate(0)}.gate-flower i:nth-child(4){transform:rotate(27deg)}.gate-flower i:nth-child(5){transform:rotate(54deg)}.gate-flower b{background:currentColor;border-radius:99px;width:2px;height:56px;position:absolute;top:65px;left:47px;transform:rotate(7deg)}.gate-flower b:before,.gate-flower b:after{content:"";border:2px solid;border-radius:90% 12%;width:27px;height:13px;position:absolute}.gate-flower b:before{top:14px;left:-25px;transform:rotate(22deg)}.gate-flower b:after{top:29px;left:0;transform:scaleX(-1)rotate(22deg)}.is-unlocking .portal-door-left{transform:perspective(900px)rotateY(-3deg)}.is-unlocking .portal-door-right{transform:perspective(900px)rotateY(3deg)}.is-unlocking .gate-flower{color:#ca947feb;animation:.82s ease-in-out both flower-awaken}.is-open .portal{transform:translateY(-3px);box-shadow:0 48px 120px #30291645,inset 0 0 0 7px #b9954617}.is-open .portal-door-left{transform:perspective(900px)rotateY(-103deg);box-shadow:24px 0 48px #533d261f}.is-open .portal-door-right{transform:perspective(900px)rotateY(103deg);box-shadow:-24px 0 48px #533d261f}.invitation-card{text-align:center;background:radial-gradient(circle at 50% 12%, #dc8f8b24, transparent 32%), var(--ivory);flex-direction:column;justify-content:center;align-items:center;padding:96px 34px 52px;transition:transform 1.2s cubic-bezier(.22,1,.36,1) .28s;display:flex;position:absolute;inset:0;transform:scale(.985)}.is-open .invitation-card{transform:scale(1)}.invitation-card>*{opacity:0;transition:opacity .75s,transform .8s cubic-bezier(.22,1,.36,1);transform:translateY(12px)}.is-open .invitation-card>*{opacity:1;transform:none}.is-open .invitation-card>:first-child{transition-delay:.36s}.is-open .invitation-card>:nth-child(2){transition-delay:.44s}.is-open .invitation-card>:nth-child(3){transition-delay:.52s}.is-open .invitation-card>:nth-child(4){transition-delay:.6s}.is-open .invitation-card>:nth-child(5){transition-delay:.68s}.is-open .invitation-card>:nth-child(6){transition-delay:.75s}.is-open .invitation-card>:nth-child(7){transition-delay:.82s}.invitation-card:after{content:"";pointer-events:none;border:1px solid #41543f33;border-radius:220px 220px 10px 10px;position:absolute;inset:24px}.eyebrow,.welcome,.place,.countdown-note{text-transform:uppercase;letter-spacing:.18em;font-family:Arial,Helvetica,sans-serif}.eyebrow{color:var(--rose);margin:0 0 24px;font-size:11px;font-weight:700}.monogram-art{object-fit:contain;mix-blend-mode:multiply;filter:saturate(.92)contrast(1.03);width:176px;height:176px;display:block}.invitation-line{color:var(--rose);margin:28px 0 8px;font-size:16px;font-style:italic}.invitation-card h1{max-width:320px;color:var(--forest);letter-spacing:-.04em;margin:0;font-size:clamp(34px,8vw,48px);font-weight:500;line-height:.98}.date-lockup{color:var(--forest);text-align:left;text-transform:uppercase;letter-spacing:.12em;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;margin-top:34px;font-family:Arial,Helvetica,sans-serif;font-size:10px;display:grid}.date-lockup span:first-child{text-align:right}.date-lockup strong{border-inline:1px solid #162a2438;padding:0 14px;font-family:Georgia,serif;font-size:42px;font-weight:400}.place{margin:18px 0 0;font-size:9px;font-weight:700}.primary-cta{z-index:2;border:1px solid var(--forest);color:var(--ivory);background:var(--forest);letter-spacing:.04em;cursor:pointer;border-radius:999px;margin-top:38px;padding:15px 22px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:700;animation:.7s .65s both rise;position:relative}.primary-cta span{margin-left:14px}.portal-intro{z-index:5;width:82%;color:var(--forest-deep);text-align:center;margin-top:180px;transition:opacity .4s .15s,transform .5s .1s;position:relative}.is-open .portal-intro{opacity:0;pointer-events:none;transition-delay:0s;transform:translateY(24px)}.welcome{color:var(--rose);margin:0 0 13px;font-size:10px;font-weight:700}.portal-intro>p:nth-child(2){max-width:318px;margin:0 auto 32px;font-size:19px;font-style:italic;line-height:1.32}.key-button{color:var(--rose);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:15px;font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:700;display:inline-flex;position:relative}.key-button:before{content:"";z-index:-1;background:radial-gradient(circle,#e5be8b42,#0000 68%);border-radius:50%;width:124px;height:124px;animation:3.8s ease-in-out infinite key-halo;position:absolute;top:-18px;left:50%;transform:translate(-50%)}.css-key{width:84px;height:136px;transition:transform .3s;animation:3.8s ease-in-out infinite key-float;display:block;position:relative}.key-button:hover .css-key,.key-button:focus-visible .css-key{animation:none;transform:rotate(-7deg)scale(1.05)}.key-button:disabled{opacity:1}.key-button.is-turning .css-key{animation:1.06s cubic-bezier(.22,.8,.24,1) both key-unlock}.key-button.is-turning:before{animation:1.08s ease-out both unlock-halo}.key-button>span{transition:opacity .3s,letter-spacing .5s}.key-button.is-turning>span{opacity:.58;letter-spacing:.2em}.key-head{filter:drop-shadow(0 3px 3px #653d2d2e);width:54px;height:54px;position:absolute;top:0;left:15px}.css-key .key-head i{border:4px solid #d3a087;border-radius:70% 45%;width:31px;height:18px;position:absolute;box-shadow:inset 0 0 0 1px #fff5eeb8}.key-head i:first-child{top:0;left:12px;transform:rotate(90deg)}.key-head i:nth-child(2){top:17px;right:0;transform:rotate(180deg)}.key-head i:nth-child(3){bottom:0;left:12px;transform:rotate(-90deg)}.key-head i:nth-child(4){top:17px;left:0}.css-key b{background:linear-gradient(90deg,#b8765e,#f1d1c1 42%,#c68970);border-radius:4px;width:9px;height:66px;position:absolute;top:52px;left:38px;box-shadow:0 0 0 1px #8c574438}.css-key b:before,.css-key b:after{content:"";background:linear-gradient(#efd0c1,#b97961);border-radius:5px;width:17px;height:5px;position:absolute;left:-4px}.css-key b:before{top:7px}.css-key b:after{bottom:7px}.css-key em{border-bottom:8px solid #d3a087;border-left:9px solid #d3a087;width:29px;height:21px;font-size:0;position:absolute;top:112px;left:38px}.css-key em:after{content:"";background:#d3a087;width:11px;height:8px;position:absolute;bottom:-8px;left:10px}.countdown-note{color:#2d47168f;margin:0;font-family:Arial,sans-serif;font-size:8px;position:fixed;bottom:10px}.countdown-note span{color:var(--rose)}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes portal-arrive{0%{opacity:0;transform:translateY(22px)scale(.985)}to{opacity:1;transform:none}}@keyframes gate-glint{0%,66%{background-position:180% 0}92%,to{background-position:-80% 0}}@keyframes key-float{0%,to{transform:translateY(0)rotate(-1deg)}50%{transform:translateY(-7px)rotate(1.5deg)}}@keyframes key-halo{0%,to{opacity:.44;transform:translate(-50%)scale(.88)}50%{opacity:.9;transform:translate(-50%)scale(1.08)}}@keyframes key-unlock{0%{filter:brightness();transform:translateY(0)rotate(0)scale(1)}32%{filter:brightness(1.08);transform:translateY(-14px)rotate(-12deg)scale(1.07)}68%{filter:brightness(1.18);transform:translateY(-14px)rotate(82deg)scale(1.07)}to{filter:brightness();transform:translateY(-4px)rotate(90deg)scale(.94)}}@keyframes unlock-halo{0%{opacity:.35;transform:translate(-50%)scale(.86)}58%{opacity:1;transform:translate(-50%)scale(1.34)}to{opacity:.12;transform:translate(-50%)scale(1.7)}}@keyframes flower-awaken{0%,to{filter:drop-shadow(0 2px 1px #6c4c1c14)}55%{filter:drop-shadow(0 0 9px #ca947fa3)}}@media (max-width:560px){.site-shell{padding:0}.wedding-canopy{height:min(31vh,265px)}.canopy-panel{opacity:.7;width:104vw;height:154%;top:-58%}.canopy-swag{opacity:.78;width:68%;height:205px;top:-105px}.canopy-swag-left{left:-4%}.canopy-swag-centre{top:-120px;left:16%}.canopy-swag-right{right:-4%}.canopy-fall{opacity:.72;width:132px;height:268px}.canopy-fall-left{left:-30px}.canopy-fall-right{right:-30px}.canopy-tie{width:44px;height:19px;top:83px}.canopy-tie-left{left:24px}.canopy-tie-right{right:24px}.fairy-strand-near{width:62%;height:92px}.fairy-strand-wide{width:92%;height:142px}.fairy-strand i{width:6px;height:6px}.canopy-medallion{width:54px;height:54px;top:-15px}.couple-vignette{opacity:.28;top:105px;scale:.82}.canopy-light-1,.canopy-light-4{display:none}.canopy-light-2{left:22%}.canopy-light-3{right:22%}.portal{border:0;border-radius:0;width:100%;min-height:100svh}.portal:before{border-radius:180px 180px 8px 8px;inset:9px}.invitation-card:after{border-radius:180px 180px 8px 8px;inset:16px}.invitation-card{padding-top:74px}.countdown-note{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #c89b4573}button:disabled{cursor:wait;opacity:.6}.in-journey{background:linear-gradient(#fffaf0f5,#f5eddefa),repeating-linear-gradient(90deg,#0000 0 32px,#183b300a 33px 34px);min-height:100svh;padding:0 20px 80px;display:block;overflow:visible}.in-journey:before{display:none}.in-journey:after{content:"";opacity:.035;mix-blend-mode:multiply;pointer-events:none;background:url(/ejp-floral-monogram.jpeg) 50%/contain no-repeat;width:520px;height:520px;animation:none;position:fixed;bottom:-110px;right:-90px}.journey-header{z-index:5;border-bottom:1px solid #183b3026;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;width:min(100%,920px);height:88px;margin:0 auto;font-family:Arial,Helvetica,sans-serif;display:grid;position:relative}.header-monogram{border:1px solid var(--gold);width:48px;height:48px;color:var(--forest);letter-spacing:-.08em;cursor:pointer;background:0 0;border-radius:50%;font-family:Georgia,serif;font-size:15px}.journey-header p{color:#6c766e;letter-spacing:.05em;margin:0;font-size:11px}.journey-header p strong{color:var(--forest)}.progress-wrap{background:#183b301f;border-radius:20px;height:3px;overflow:hidden}.progress-wrap span{border-radius:inherit;background:linear-gradient(90deg, var(--forest), var(--gold));height:100%;transition:width .5s;display:block}.journey-wrap{z-index:2;width:min(100%,860px);margin:0 auto;padding-top:clamp(48px,8vw,88px);position:relative}.form-error{color:#742d20;background:#f8e7df;border-left:3px solid #a64c37;max-width:680px;margin:0 auto 20px;padding:12px 16px;font-family:Arial,Helvetica,sans-serif;font-size:13px}.step-card{animation:.55s both step-in}@keyframes step-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.step-heading{grid-template-columns:62px 1fr;align-items:start;gap:24px;max-width:700px;margin:0 auto;display:grid}.step-number{width:60px;height:60px;color:var(--rose);letter-spacing:.1em;border:1px solid #c89b458f;border-radius:50%;place-items:center;font-family:Arial,Helvetica,sans-serif;font-size:11px;display:grid}.step-heading .eyebrow{margin:3px 0 8px}.step-heading h2,.message-step h2,.summary-step h2{color:var(--forest);letter-spacing:-.045em;margin:0;font-size:clamp(36px,6vw,58px);font-weight:500;line-height:1}.step-intro{color:#68746c;text-align:center;max-width:600px;margin:28px auto 38px;font-size:17px;line-height:1.65}.choice-grid{grid-template-columns:repeat(3,1fr);gap:14px;max-width:820px;margin:44px auto 0;display:grid}.choice-grid.two-up{grid-template-columns:repeat(2,1fr);max-width:700px}.choice-card{min-height:185px;color:var(--forest);text-align:left;cursor:pointer;background:#ffffff94;border:1px solid #183b302b;border-radius:3px;flex-direction:column;align-items:flex-start;padding:26px;transition:transform .25s,border-color .25s,background .25s,box-shadow .25s;display:flex;position:relative}.choice-card:hover{border-color:#c89b45a6;transform:translateY(-3px);box-shadow:0 14px 35px #23382f14}.choice-card.selected{border-color:var(--forest);background:var(--forest);color:var(--ivory);box-shadow:0 18px 40px #1430272e}.choice-symbol{color:var(--rose-gold);margin-bottom:auto;font-size:25px}.choice-card strong{margin-top:28px;font-size:18px;font-weight:500}.choice-card small{color:#788078;margin-top:7px;font-family:Arial,Helvetica,sans-serif;font-size:11px;line-height:1.4}.choice-card.selected small{color:#f4eddfa8}.choice-card i{width:22px;height:22px;color:var(--gold-light);border:1px solid #183b3038;border-radius:50%;place-items:center;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-style:normal;display:grid;position:absolute;top:17px;right:17px}.choice-card.selected i{border-color:var(--gold)}.attendee-picker{border-top:1px solid #183b3026;border-bottom:1px solid #183b3026;grid-template-columns:1fr auto;align-items:center;gap:6px 24px;max-width:600px;margin:32px auto 0;padding:24px;display:grid}.field-kicker{color:var(--rose);letter-spacing:.17em;text-transform:uppercase;margin:0 0 8px;font-family:Arial,Helvetica,sans-serif;font-size:9px;font-weight:700;display:block}.attendee-picker strong{color:var(--forest);font-size:17px;font-weight:500;display:block}.attendee-picker small{color:#7a807b;grid-column:1/-1;font-family:Arial,Helvetica,sans-serif;font-size:10px}.counter{border:1px solid #183b3040;border-radius:999px;grid-template-columns:36px 40px 36px;align-items:center;display:grid;overflow:hidden}.counter button{height:36px;color:var(--forest);cursor:pointer;background:0 0;border:0;font-family:Arial,sans-serif;font-size:18px}.counter output{text-align:center;font-family:Arial,sans-serif;font-size:13px;font-weight:700}.action-button{border:1px solid var(--forest);min-width:290px;color:var(--ivory);background:var(--forest);cursor:pointer;border-radius:999px;justify-content:space-between;align-items:center;gap:30px;margin:42px auto 0;padding:17px 22px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:700;transition:background .2s,transform .2s;display:flex}.action-button:hover{background:#245343;transform:translateY(-2px)}.action-button span{color:var(--gold-light)}.message-step,.summary-step{text-align:center;max-width:700px;margin:0 auto}.seal{border:1px solid var(--rose-gold);width:76px;height:76px;color:var(--rose);border-radius:50%;place-items:center;margin:0 auto 28px;font-size:30px;display:grid}.message-step .eyebrow,.summary-step .eyebrow{margin-bottom:14px}.message-step>p:not(.eyebrow){color:#68746c;max-width:560px;margin:28px auto 0;font-size:18px;line-height:1.7}.response-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;margin-top:42px;display:flex}.text-button,.outline-button{cursor:pointer;border-radius:999px;padding:13px 19px;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-weight:700}.text-button{color:var(--forest);text-underline-offset:4px;background:0 0;border:0;text-decoration:underline}.outline-button{border:1px solid var(--forest);color:var(--forest);background:0 0}.unlock-banner{max-width:700px;color:var(--ivory);background:var(--forest);align-items:center;gap:24px;margin:34px auto;padding:23px 28px;display:flex}.unlock-banner .css-key{transform-origin:0;flex:0 0 72px;height:98px;margin-block:-18px;transform:scale(.58)}.unlock-banner p{margin:0;font-size:15px;line-height:1.55}.unlock-banner strong{color:var(--gold-light)}.details-grid{grid-template-columns:repeat(2,1fr);gap:18px;margin-top:34px;display:grid}.detail-card,.program-card,.form-panel,.contact-strip{background:#ffffff85;border:1px solid #183b3029}.detail-card{padding:30px}.detail-icon{width:38px;height:38px;color:var(--rose);border:1px solid #b35c6e6b;border-radius:50%;place-items:center;margin-bottom:34px;display:grid}.detail-card h3{color:var(--forest);margin:0;font-size:27px;font-weight:500}.detail-card>p:not(.field-kicker){color:#6e756f;min-height:58px;font-size:13px;line-height:1.55}.detail-link{color:var(--rose);text-transform:uppercase;letter-spacing:.06em;font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:700}.program-card{margin-top:18px;padding:30px}.program-row{border-bottom:1px solid #183b301a;grid-template-columns:110px 1fr;gap:28px;padding:14px 0;display:grid}.program-row span{color:var(--rose);text-transform:uppercase;letter-spacing:.08em;font-family:Arial,Helvetica,sans-serif;font-size:10px}.program-row strong{color:var(--forest);font-size:16px;font-weight:500}.program-card small{color:#7f837f;margin-top:18px;font-family:Arial,Helvetica,sans-serif;font-size:10px;font-style:italic;display:block}.form-panel{grid-template-columns:180px 1fr;gap:24px;max-width:700px;margin:26px auto 0;padding:28px;display:grid}.form-panel label,.textarea-field{color:var(--forest);flex-direction:column;gap:10px;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-weight:700;display:flex}.form-panel input,.form-panel select,.textarea-field textarea{width:100%;min-height:48px;color:var(--forest);background:0 0;border:0;border-bottom:1px solid #183b3059;border-radius:0;font-family:Georgia,serif;font-size:17px}.form-panel input::placeholder,.textarea-field textarea::placeholder{color:#9a9e9a}.form-note{color:#7b817c;grid-column:1/-1;margin:0;font-family:Arial,Helvetica,sans-serif;font-size:10px;line-height:1.5}.textarea-field{background:#ffffff80;border:1px solid #183b302b;max-width:700px;margin:42px auto 0;padding:28px}.textarea-field textarea{resize:vertical;padding:12px 0;line-height:1.5}.textarea-field small{color:#929692;align-self:flex-end;font-size:9px;font-weight:400}.contact-strip{max-width:700px;margin:18px auto 0;padding:22px 28px}.contact-strip>span{color:var(--rose);text-transform:uppercase;letter-spacing:.12em;font-family:Arial,Helvetica,sans-serif;font-size:9px;font-weight:700}.contact-strip p{color:var(--forest);margin:7px 0;font-size:14px}.contact-strip small{color:#878b87;font-family:Arial,Helvetica,sans-serif;font-size:9px}.completed{color:var(--ivory);background:var(--forest);border-color:var(--forest)}.summary-card{text-align:left;background:#ffffff8c;border:1px solid #183b3033;max-width:620px;margin:42px auto 0;padding:12px 30px}.summary-row{border-bottom:1px solid #183b301a;grid-template-columns:1fr 1fr;gap:20px;padding:17px 0;display:grid}.summary-row:last-child{border-bottom:0}.summary-row span{color:#7b827d;text-transform:uppercase;letter-spacing:.07em;font-family:Arial,Helvetica,sans-serif;font-size:10px}.summary-row strong{color:var(--forest);text-align:right;font-size:15px;font-weight:500}.saved-note{color:#7c817d;max-width:540px;margin:24px auto 0;font-family:Arial,Helvetica,sans-serif;font-size:10px;line-height:1.6}.invalid-page{min-height:100svh;color:var(--ivory);background:var(--forest-deep);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px 24px;display:flex}.mini-monogram{border:1px solid var(--gold);width:84px;height:84px;color:var(--gold-light);border-radius:50%;place-items:center;margin-bottom:28px;font-size:24px;display:grid}.invalid-page h1{max-width:620px;margin:8px 0 22px;font-size:clamp(38px,8vw,66px);font-weight:500;line-height:1}.invalid-page>p:not(.eyebrow){max-width:500px;line-height:1.5}.invalid-page .muted{color:#f4eddf8c;font-family:Arial,Helvetica,sans-serif;font-size:11px}@media (max-width:720px){.in-journey{padding-inline:16px}.journey-header{grid-template-columns:auto 1fr;gap:16px;height:70px}.journey-header p{display:none}.header-monogram{width:40px;height:40px}.journey-wrap{padding-top:42px}.step-heading{grid-template-columns:46px 1fr;gap:15px}.step-number{width:44px;height:44px}.step-heading h2,.message-step h2,.summary-step h2{font-size:36px}.choice-grid,.choice-grid.two-up{grid-template-columns:1fr;margin-top:30px}.choice-card{min-height:124px;padding:21px}.choice-symbol{margin-bottom:10px}.choice-card strong{margin-top:0}.details-grid,.form-panel{grid-template-columns:1fr}.form-note{grid-column:auto}.unlock-banner{gap:8px;padding:18px}.unlock-banner .css-key{flex-basis:80px;transform:scale(.58)}.summary-card{padding-inline:20px}.summary-row{grid-template-columns:1fr;gap:5px}.summary-row strong{text-align:left}.program-row{grid-template-columns:90px 1fr;gap:12px}.action-button{min-width:min(100%,290px)}}.admin-page,.admin-login{min-height:100svh;color:var(--ink);background:linear-gradient(145deg,#fff9f4,#f5e8e4 48%,#edf0df);font-family:Arial,Helvetica,sans-serif}.admin-header{background:#fffaf0cc;border-bottom:1px solid #183b3024;justify-content:space-between;align-items:center;gap:20px;min-height:78px;padding:14px clamp(20px,5vw,70px);display:flex}.admin-header>div{align-items:center;gap:13px;display:flex}.admin-mark{border:1px solid var(--gold);width:45px;height:45px;color:var(--forest);border-radius:50%;place-items:center;font-family:Georgia,serif;font-size:14px;display:grid}.admin-header p{margin:0}.admin-header p strong,.admin-header p small{display:block}.admin-header p strong{color:var(--forest);font-family:Georgia,serif;font-size:16px;font-weight:500}.admin-header p small{color:#7a827c;text-transform:uppercase;letter-spacing:.09em;margin-top:3px;font-size:9px}.admin-actions a,.admin-actions button{color:var(--forest);cursor:pointer;background:0 0;border:1px solid #183b303d;border-radius:999px;padding:11px 15px;font-size:10px;font-weight:700;text-decoration:none}.admin-actions button{color:var(--ivory);background:var(--forest)}.admin-content{width:min(100%,1280px);margin:0 auto;padding:64px clamp(20px,5vw,70px) 100px}.admin-title{grid-template-columns:1fr minmax(280px,420px);align-items:end;gap:50px;display:grid}.admin-title .eyebrow{margin:0 0 10px}.admin-title h1{color:var(--forest);letter-spacing:-.05em;margin:0;font-family:Georgia,serif;font-size:clamp(48px,7vw,76px);font-weight:500;line-height:.95}.admin-title>p{color:#6f7872;margin:0;font-size:12px;line-height:1.7}.admin-title-side{justify-items:start;gap:18px;display:grid}.admin-title-side p{color:#6f7872;margin:0;font-size:13px;line-height:1.65}.admin-primary-action{border:1px solid var(--forest);min-height:48px;color:var(--ivory);background:var(--forest);cursor:pointer;border-radius:999px;padding:0 20px;font-size:11px;font-weight:700}.metrics-grid{grid-template-columns:repeat(5,1fr);gap:14px;margin:44px 0;display:grid}.metric-card{background:#fffaf0a6;border:1px solid #183b3024;flex-direction:column;justify-content:space-between;min-height:150px;padding:22px;display:flex}.metric-card span{color:#778078;letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:700}.metric-card strong{color:var(--forest);font-family:Georgia,serif;font-size:48px;font-weight:500}.admin-panel{background:#fffaf0b8;border:1px solid #183b3024;margin-top:18px}.create-panel{grid-template-columns:minmax(220px,.7fr) 1.3fr;gap:36px;padding:30px;display:grid}.create-panel .eyebrow,.panel-heading .eyebrow{margin:0 0 7px}.create-panel h2,.panel-heading h2{color:var(--forest);margin:0;font-family:Georgia,serif;font-size:27px;font-weight:500}.create-panel>div>p:not(.eyebrow){color:#7a817b;max-width:330px;margin:12px 0 0;font-size:11px;line-height:1.6}.create-panel form{grid-template-columns:repeat(2,minmax(150px,1fr));align-items:end;gap:12px;display:grid}.create-panel label{color:#67716a;text-transform:uppercase;letter-spacing:.05em;flex-direction:column;gap:8px;font-size:9px;font-weight:700;display:flex}.create-panel input,.create-panel select{height:44px;color:var(--forest);background:#fffdf8;border:1px solid #183b3033;padding:0 12px;font-family:Georgia,serif;font-size:15px}.create-panel form button{height:44px;color:var(--ivory);background:var(--forest);cursor:pointer;border:0;grid-column:1/-1;padding:0 20px;font-size:10px;font-weight:700}.create-panel form button.quiet-action{color:var(--forest);background:0 0;border:1px solid #183b3038}.generated-link{color:var(--forest);background:#e8e1d1;flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:14px;padding:13px 15px;display:flex}.generated-link span{color:var(--rose);text-transform:uppercase;font-size:9px;font-weight:700}.generated-link code{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:180px;font-size:10px;overflow:hidden}.generated-link button,.generated-link a,.copy-link{color:var(--forest);cursor:pointer;background:0 0;border:0;font-size:9px;font-weight:700;text-decoration:underline}.admin-error{color:#8a3426;grid-column:1/-1;margin:0;font-size:11px}.guest-panel{padding:30px 0 0;overflow:hidden}.panel-heading{justify-content:space-between;align-items:end;gap:20px;padding:0 30px 24px;display:flex}.panel-heading>span{color:#7c847e;font-size:10px}.guest-toolbar{grid-template-columns:minmax(220px,1fr) minmax(150px,220px);gap:12px;padding:0 30px 22px;display:grid}.guest-toolbar label{color:#727b75;letter-spacing:.07em;text-transform:uppercase;gap:7px;font-size:9px;font-weight:700;display:grid}.guest-toolbar input,.guest-toolbar select{height:46px;color:var(--forest);background:#fffdf8;border:1px solid #183b3033;padding:0 13px}.guest-table-wrap{overflow-x:auto}.guest-table{border-collapse:collapse;width:100%;min-width:930px}.guest-table th{color:#7a827c;letter-spacing:.07em;text-align:left;text-transform:uppercase;background:#e9e2d6;padding:13px 18px;font-size:8px}.guest-table td{color:#5f6962;border-bottom:1px solid #183b3017;padding:17px 18px;font-size:11px}.guest-table td:first-child strong,.guest-table td:first-child small{display:block}.guest-table td:first-child strong{color:var(--forest);font-family:Georgia,serif;font-size:14px;font-weight:500}.guest-table td:first-child small{color:#939894;margin-top:4px;font-size:8px}.guest-table td:nth-child(2) strong,.guest-table td:nth-child(2) small{white-space:nowrap;display:block}.guest-table td:nth-child(2) strong{color:var(--forest);font-size:10px}.guest-table td:nth-child(2) small{color:#939894;margin-top:4px;font-size:8px}.status{text-transform:uppercase;border-radius:999px;padding:5px 8px;font-size:8px;font-weight:700;display:inline-block}.status-yes{color:#285c47;background:#dbeadf}.status-no{color:#7e3c31;background:#f0ded9}.status-maybe{color:#7b5b1f;background:#efe3c9}.status-pending{color:#6f756f;background:#e4e5e2}.admin-login{color:var(--ivory);background:var(--forest-deep);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px 24px;display:flex}.admin-login h1{margin:8px 0 20px;font-family:Georgia,serif;font-size:52px;font-weight:500}.admin-login>p:not(.eyebrow){max-width:480px;line-height:1.5}.admin-login small{color:#f4eddf8c;max-width:420px;line-height:1.5}.admin-login-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:30px;display:flex}.admin-login a{border:1px solid var(--gold);color:var(--gold-light);text-transform:uppercase;border-radius:999px;padding:12px 18px;font-size:10px;text-decoration:none}.admin-login a:first-child{color:var(--forest-deep);background:var(--gold-light)}@media (max-width:850px){.admin-header{align-items:flex-start}.admin-actions a{display:none}.admin-title{grid-template-columns:1fr;gap:18px}.metrics-grid{grid-template-columns:repeat(2,1fr)}.create-panel{grid-template-columns:1fr}.create-panel form{grid-template-columns:1fr 1fr}.create-panel form button{grid-column:1/-1}}@media (max-width:520px){.admin-header p small{display:none}.admin-content{padding-top:42px}.metrics-grid{gap:8px}.metric-card{min-height:120px;padding:16px}.metric-card strong{font-size:38px}.create-panel,.guest-panel{padding:22px 16px}.guest-panel{padding-inline:0}.panel-heading{padding-inline:16px}.generated-link{grid-template-columns:1fr auto}.generated-link span{display:none}.create-panel form{grid-template-columns:1fr}}.admin-page input,.admin-page select{width:100%;min-width:0;font-size:16px}.admin-page button,.admin-page a,.admin-login a{min-height:44px}.admin-login a{justify-content:center;align-items:center;display:inline-flex}.admin-page .create-panel>*,.admin-page form>*,.metric-card{min-width:0}.admin-page .generated-link code{white-space:normal;overflow-wrap:anywhere;flex-basis:100%;min-width:0}@media (max-width:520px){.admin-header,.admin-header .admin-actions{flex-wrap:wrap}.admin-actions a{align-items:center;display:inline-flex}.panel-heading{flex-wrap:wrap;align-items:start;gap:12px}}.admin-page .copy-link{min-width:44px}.admin-login button{border:1px solid var(--gold);background:var(--gold-light);min-height:44px;color:var(--forest-deep);cursor:pointer;border-radius:24px;padding:12px 18px}.admin-page button:disabled{opacity:.55;cursor:wait}.admin-header-actions{justify-content:flex-end}.admin-actions button.quiet-action{color:var(--forest);background:0 0}.admin-account-menu{position:relative}.admin-account-menu summary{min-height:44px;color:var(--forest);cursor:pointer;border:1px solid #183b303d;border-radius:999px;align-items:center;padding:0 15px;font-size:10px;font-weight:700;list-style:none;display:flex}.admin-account-menu summary::-webkit-details-marker{display:none}.admin-account-menu[open] summary{background:#f3eadf}.admin-account-menu>div{z-index:20;background:#fffaf4;border:1px solid #183b3029;gap:6px;width:190px;padding:8px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 40px #1f342624}.admin-account-menu button{text-align:left;width:100%}.admin-feedback{color:var(--forest);background:#fffaf4;border:1px solid #46672140;margin:24px 0;padding:16px;font-size:14px}.link-result,.operation-panel,.access-panel{padding:clamp(18px,4vw,30px)}.link-result h2,.operation-panel h2,.access-panel h2{color:var(--forest);font-family:Georgia,serif;font-size:26px}.link-result p,.operation-panel p,.access-panel p{font-size:14px;line-height:1.6}.link-result code{overflow-wrap:anywhere;padding:15px 0;font-size:13px;display:block}.admin-actions,.guest-actions{flex-wrap:wrap;gap:8px;display:flex}.guest-actions button,.access-panel button,.load-more{min-height:44px;color:var(--forest);cursor:pointer;background:#fffaf4;border:1px solid #46672155;border-radius:22px;padding:10px 14px}.guest-actions{min-width:160px}.access-panel form{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.access-panel label,.operation-panel label{flex:240px;gap:8px;min-width:0;font-size:13px;display:grid}.access-panel input,.operation-panel input{background:#fffaf4;border:1px solid #46672155;height:48px;padding:12px}.operation-panel .admin-actions{margin-top:16px}.operation-backdrop{z-index:100;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#16271b7a;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.operation-backdrop .operation-panel{background:#fffaf4;width:min(100%,520px);max-height:calc(100svh - 40px);margin:0;overflow-y:auto;box-shadow:0 30px 80px #13221747}.operation-panel .eyebrow{margin-top:0}.operation-panel h2{margin:5px 0 14px}.operation-panel h2 span{color:#7a827c;margin-top:7px;font-family:Arial,sans-serif;font-size:13px;font-weight:500;display:block}.access-panel ul{margin-top:24px;padding:0;list-style:none}.access-panel li{border-top:1px solid #46672125;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.access-panel li span{overflow-wrap:anywhere;min-width:0}.empty-guests{color:var(--forest);justify-items:start;gap:8px;padding:30px;font-size:14px;display:grid}.empty-guests strong{font-family:Georgia,serif;font-size:22px;font-weight:500}.empty-guests span{color:#747d76;line-height:1.5}.empty-guests button{border:1px solid var(--forest);color:var(--ivory);background:var(--forest);cursor:pointer;border-radius:999px;margin-top:8px;padding:0 16px}.admin-page button:focus-visible,.admin-page a:focus-visible,.admin-page input:focus-visible,.admin-page select:focus-visible{outline:3px solid var(--rose);outline-offset:3px}@media (max-width:720px){.admin-header{z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffaf0f2;align-items:center;padding:10px 14px;position:sticky;top:0}.admin-header>div:first-child{gap:9px}.admin-mark{width:38px;height:38px;font-size:11px}.admin-header p strong{font-size:14px}.admin-header-actions>.quiet-action{display:none}.admin-account-menu summary{min-height:40px}.admin-content{padding:34px 14px 70px}.admin-title{gap:16px}.admin-title h1{font-size:52px}.admin-title-side{gap:14px}.admin-primary-action{width:100%}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin:26px 0}.metric-card{min-height:92px;padding:14px}.metric-card:last-child{flex-direction:row;grid-column:1/-1;align-items:center;min-height:76px}.metric-card strong{font-size:32px}.link-result,.create-panel,.access-panel{padding:20px}.link-result h2{margin-top:0}.guest-panel{padding-top:22px}.panel-heading,.guest-toolbar{padding-inline:16px}.guest-toolbar{grid-template-columns:1fr}.guest-table-wrap{overflow:visible}.guest-table{min-width:0;display:block}.guest-table thead{display:none}.guest-table tbody{gap:12px;padding:0 12px 14px;display:grid}.guest-table tr{background:#fffdf8cc;border:1px solid #183b3021;padding:8px 14px;display:block}.guest-table td{border-bottom:1px solid #183b3014;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:12px;min-height:42px;padding:10px 0;font-size:13px;display:grid}.guest-table td:before{content:attr(data-label);color:#858c86;letter-spacing:.07em;text-transform:uppercase;font-size:9px;font-weight:700}.guest-table td:first-child{padding-block:13px}.guest-table td:first-child strong{font-size:17px}.guest-table td:nth-child(2) strong{font-size:13px}.guest-table td:last-child{border-bottom:0;grid-template-columns:1fr}.guest-table td:last-child:before{display:none}.guest-actions{min-width:0}.guest-actions button{flex:90px}.access-panel{margin-top:28px}}.admin-header{z-index:40;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#faf7f0eb;min-height:70px;padding-block:10px;position:sticky;top:0}.admin-title{grid-template-columns:1fr auto;align-items:center;gap:32px}.admin-title h1{font-size:clamp(44px,5vw,66px)}.admin-title>div:first-child>p:last-child{color:#67736b;max-width:620px;margin:14px 0 0;font-size:14px;line-height:1.6}.admin-title-actions{align-items:center;gap:10px;display:flex}.admin-primary-action,.admin-secondary-action{cursor:pointer;border-radius:12px;min-height:48px;padding:0 20px;font-size:12px;font-weight:700}.admin-secondary-action{color:var(--forest);background:#fff;border:1px solid #183b303d}.preview-ribbon{color:#68736c;background:#ebe7dd;border-radius:999px;width:fit-content;margin:24px 0 0;padding:8px 12px;font-size:11px}.preview-ribbon span{color:var(--forest);margin-right:7px;font-weight:700}.admin-feedback{box-shadow:inset 3px 0 var(--forest);border:0;border-radius:10px}.admin-error{box-shadow:inset 3px 0 #a64c37}.metrics-grid{grid-template-columns:2fr repeat(4,1fr);gap:12px;margin:28px 0 20px}.metric-card{background:#fffc;border:1px solid #e2ded4;border-radius:16px;min-height:132px;padding:20px;box-shadow:0 8px 24px #23342a0b}.metric-card strong{margin:12px 0 3px;font-size:42px;line-height:1}.metric-card small{color:#8a918c;font-size:10px;line-height:1.4}.metric-featured{color:var(--ivory);border-color:var(--forest);background:var(--forest)}.metric-featured span,.metric-featured small{color:#fffaf0b3}.metric-featured strong{color:#fff9ef}.metric-progress{background:#ffffff24;border-radius:99px;height:5px;margin:8px 0 9px;overflow:hidden}.metric-progress i{border-radius:inherit;background:var(--gold-light);height:100%;display:block}.admin-panel{background:#ffffffc2;border-color:#e1ddd2;border-radius:18px;box-shadow:0 10px 34px #26362c0b}.admin-overview-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.admin-overview-grid .admin-panel{margin:0;padding:28px;position:relative;overflow:hidden}.admin-overview-grid h2{max-width:430px;margin:8px 0 10px;font-size:29px;font-weight:500}.admin-overview-grid p:not(.eyebrow){color:#6d766f;max-width:520px;margin:0 0 22px;font-size:13px;line-height:1.6}.panel-icon{width:38px;height:38px;color:var(--forest);background:#eee9dc;border-radius:11px;place-items:center;font-size:17px;display:grid;position:absolute;top:24px;right:25px}.share-link{background:#faf8f3;border:1px solid #ded9ce;border-radius:11px;align-items:center;gap:10px;min-width:0;padding:5px 5px 5px 14px;display:flex}.share-link code{color:#46564c;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:11px;overflow:hidden}.share-link button,.import-card-actions button,.whatsapp-link{border:1px solid var(--forest);min-height:40px;color:var(--ivory);background:var(--forest);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;padding:0 14px;font-size:10px;font-weight:700;text-decoration:none;display:inline-flex}.whatsapp-link{color:var(--forest);background:0 0;border-color:#d4d0c6;margin-top:10px}.import-card-actions{flex-wrap:wrap;gap:9px;display:flex}.import-card-actions .template-button,.template-button{color:var(--forest);background:0 0;border-color:#183b303b}.create-panel{border-radius:18px;margin-top:14px}.guest-panel{border-radius:18px;margin-top:20px}.guest-toolbar{grid-template-columns:minmax(260px,1fr) 220px;padding:0 28px 22px}.guest-toolbar input,.guest-toolbar select{background:#fbfaf6;border-color:#ddd8cd;border-radius:10px;height:48px}.search-field input{padding-left:15px}.guest-table th{background:#f0ede5;padding:14px 20px}.guest-table td{height:70px;padding:14px 20px}.guest-table tbody tr{transition:background .18s}.status{padding:6px 9px}.row-menu{position:relative}.row-menu summary{min-height:36px;color:var(--forest);cursor:pointer;background:#fffdf8;border:1px solid #d4d0c6;border-radius:9px;align-items:center;padding:0 12px;font-size:10px;font-weight:700;list-style:none;display:inline-flex}.row-menu summary::-webkit-details-marker{display:none}.row-menu>div{z-index:25;background:#fffdf8;border:1px solid #ded9ce;border-radius:11px;gap:3px;width:176px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 14px 36px #1f2e2429}.row-menu button{min-height:38px;color:var(--forest);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:0 10px;font-size:11px}.row-menu button:hover{background:#f1ede3}.guest-table tbody tr:nth-last-child(-n+2) .row-menu>div{top:auto;bottom:calc(100% + 6px)}.access-panel{overflow:hidden}.access-panel>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;list-style:none;display:flex}.access-panel>summary::-webkit-details-marker{display:none}.access-panel>summary .eyebrow{margin:0 0 5px}.access-panel>summary strong{color:var(--forest);font-family:Georgia,serif;font-size:19px;font-weight:500}.access-panel>summary>span{color:var(--forest);font-size:11px;font-weight:700}.access-panel-body{border-top:1px solid #e4dfd5;padding:4px 24px 24px}.import-dialog{width:min(100%,640px)!important}.import-dialog>h2{max-width:500px;margin-bottom:22px;font-size:32px}.import-dialog ol{gap:0;margin:0;padding:0;list-style:none;display:grid}.import-dialog li{border-top:1px solid #e4dfd5;grid-template-columns:38px 1fr;gap:14px;padding:18px 0;display:grid}.import-dialog li>span{width:30px;height:30px;color:var(--forest);background:#eee9dc;border-radius:50%;place-items:center;font-size:11px;font-weight:700;display:grid}.import-dialog li strong{color:var(--forest);font-size:14px}.import-dialog li p{color:#707971;margin:5px 0 12px;font-size:12px}.import-dialog .template-button,.file-picker,.modal-close{min-height:42px;color:var(--forest);cursor:pointer;background:0 0;border:1px solid #183b3040;border-radius:9px;align-items:center;padding:0 14px;font-size:10px;font-weight:700;display:inline-flex}.file-picker{color:var(--ivory);border-color:var(--forest);background:var(--forest)}.file-picker input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.modal-close{margin-top:8px}.modal-error{background:#f6e6e0;border-radius:8px;padding:11px 13px;color:#803829!important}@media (max-width:980px){.metrics-grid{grid-template-columns:repeat(4,1fr)}.metric-featured,.metrics-grid .metric-card:last-child{grid-column:span 2}}@media (max-width:720px){.admin-content{padding-top:28px}.admin-title{grid-template-columns:1fr}.admin-title-actions{width:100%}.admin-title-actions button{flex:1}.metrics-grid{grid-template-columns:1fr 1fr;margin-top:22px}.metric-featured{grid-column:1/-1}.metrics-grid .metric-card:last-child{grid-column:auto}.metric-card{min-height:116px}.admin-overview-grid{grid-template-columns:1fr}.admin-overview-grid .admin-panel{padding:23px}.guest-toolbar{grid-template-columns:1fr}.row-menu>div{width:100%;box-shadow:none;margin-top:7px;position:static}.access-panel>summary{align-items:flex-start}}@media (max-width:460px){.admin-header-actions>a{display:none}.admin-title h1{font-size:44px}.admin-title-actions{grid-template-columns:1fr;display:grid}.metrics-grid{gap:8px}.metric-card{padding:15px}.metric-card strong{font-size:34px}.share-link{flex-direction:column;align-items:stretch;padding:10px}.share-link code{white-space:normal;overflow-wrap:anywhere;padding:5px}.import-card-actions{display:grid}}.admin-page{background:#f8f5ee}.admin-header{background:#f8f5eef5;border-color:#d9d3c6;min-height:66px}.admin-mark{width:40px;height:40px}.admin-header p strong{font-size:15px}.admin-content{width:min(100%,1260px);padding-top:58px}.admin-title{border-bottom:1px solid #d7d1c4;padding-bottom:38px}.admin-title h1{letter-spacing:-.055em;font-size:clamp(54px,6vw,78px)}.admin-title>div:first-child>p:last-child{color:#667069;margin-top:12px}.admin-primary-action,.admin-secondary-action{border-radius:2px;min-height:46px;padding-inline:18px}.admin-secondary-action{background:0 0}.preview-ribbon{color:#7a807b;background:0 0;border-radius:0;margin-top:16px;padding:0}.preview-ribbon:before{content:"";vertical-align:1px;background:#809665;border-radius:50%;width:6px;height:6px;margin-right:8px;display:inline-block}.metrics-grid{border-bottom:1px solid #d7d1c4;grid-template-columns:1.45fr repeat(4,1fr);gap:0;margin:0 0 38px}.metric-card,.metric-featured{min-height:138px;color:var(--ink);box-shadow:none;background:0 0;border:0;border-right:1px solid #ddd7ca;border-radius:0;padding:24px 22px 20px}.metric-card:last-child{border-right:0}.metric-card span,.metric-featured span{color:#7c837e}.metric-card strong,.metric-featured strong{color:var(--forest);margin:18px 0 5px;font-size:42px}.metric-card small,.metric-featured small{color:#969a96}.metric-progress{background:#d9d5ca;width:88%;max-width:190px;height:2px;margin:5px 0 9px}.metric-progress i{background:var(--rose)}.admin-overview-grid{background:#fffdf88c;border:1px solid #d7d1c4;gap:0;margin-bottom:24px}.admin-overview-grid .admin-panel{min-height:275px;box-shadow:none;background:0 0;border:0;border-radius:0;padding:31px 34px}.admin-overview-grid .admin-panel+.admin-panel{border-left:1px solid #d7d1c4}.admin-overview-grid h2{margin:9px 0;font-size:31px}.admin-overview-grid p:not(.eyebrow){margin-bottom:26px}.share-link{background:0 0;border:0;border-bottom:1px solid #aaa99f;border-radius:0;max-width:520px;padding:0}.share-link code{padding:12px 2px}.share-link button,.import-card-actions button,.whatsapp-link{border-radius:2px;min-height:42px}.whatsapp-link{text-underline-offset:4px;background:0 0;border:0;margin-top:14px;padding-inline:0;text-decoration:underline}.import-card{background:0 0}.import-card-actions{margin-top:4px}.admin-panel,.create-panel,.guest-panel{box-shadow:none;border-radius:0}.create-panel{background:#fffdf89e;border-color:#d7d1c4}.guest-panel{background:#fffdf894;border-color:#d7d1c4;margin-top:0}.panel-heading{padding:31px 32px 22px}.panel-heading h2{font-size:32px}.panel-heading>span{background:0 0;border-radius:0;padding:0}.guest-toolbar{padding:0 32px 24px}.guest-toolbar input,.guest-toolbar select{background:0 0;border:0;border-bottom:1px solid #aaa99f;border-radius:0}.guest-table th{color:#69736d;background:#e9e5db;padding-block:12px}.guest-table td{border-color:#e3ded2}.guest-table tbody tr:hover{background:#f3efe6}.status{border-radius:2px}.row-menu summary{background:0 0;border-radius:2px}.row-menu>div{border-radius:2px}.access-panel{background:0 0;border-color:#d7d1c4;border-radius:0}.access-panel>summary{padding-inline:4px}.access-panel-body{background:#fffdf894;border:1px solid #d7d1c4;margin-top:4px;padding:24px}.operation-backdrop .operation-panel{border-radius:0}.import-dialog li>span,.file-picker,.import-dialog .template-button,.modal-close{border-radius:2px}@media (max-width:980px){.metrics-grid{grid-template-columns:repeat(4,1fr)}.metric-featured{grid-column:span 2}.metrics-grid .metric-card:last-child{border-top:1px solid #ddd7ca;grid-column:span 2}}@media (max-width:720px){.admin-title{padding-bottom:26px}.admin-title h1{font-size:54px}.metrics-grid{grid-template-columns:1fr 1fr}.metric-featured{grid-column:1/-1}.metric-card{border-top:1px solid #ddd7ca;min-height:112px;padding:18px 15px}.metric-featured{border-top:0}.metrics-grid .metric-card:last-child{grid-column:auto}.admin-overview-grid{grid-template-columns:1fr}.admin-overview-grid .admin-panel{min-height:0;padding:27px 23px}.admin-overview-grid .admin-panel+.admin-panel{border-top:1px solid #d7d1c4;border-left:0}.guest-panel{border-inline:0}.guest-table tr{box-shadow:none;border-radius:0}}
:root{--ejp-berry:#b65b6b;--ejp-rose:#db8d89;--ejp-olive:#9eb26a;--ejp-forest:#456925;--ejp-deep:#263d18;--ejp-ink:#34431f;--ejp-paper:#fffaf5;--ejp-gold:#b8915c}.access-gate-page{min-height:100svh;color:var(--ejp-ink);background:radial-gradient(circle at 50% 12%,#fff7eef5,#0000 34%),linear-gradient(145deg,#d7dcb6,#f7ddd8 48%,#e8c7c4);place-items:center;padding:24px;font-family:Baskerville,Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;display:grid}.access-gate-card{text-align:center;background:#fffaf5f5;border:1px solid #85434f2e;border-radius:3px;width:min(100%,470px);padding:clamp(32px,8vw,56px);box-shadow:0 26px 80px #37301f2e}.access-gate-card>img{object-fit:contain;width:92px;height:108px;margin:0 auto 14px}.access-gate-card .eyebrow{color:var(--ejp-berry);letter-spacing:.16em;text-transform:uppercase;margin:0 0 10px;font:700 12px/1.4 Arial,sans-serif}.access-gate-card h1{color:var(--ejp-deep);margin:0;font-size:clamp(34px,9vw,48px);font-weight:400;line-height:1.05}.access-intro{color:#59624a;max-width:340px;margin:18px auto 26px;font-size:17px;line-height:1.55}.access-gate-card form{text-align:left;gap:12px;display:grid}.access-gate-card label{color:#465238;font:700 13px/1.4 Arial,sans-serif}.access-gate-card input{color:#28351e;background:#fff;border:1px solid #b9b99f;border-radius:2px;width:100%;min-height:52px;padding:13px 15px;font:16px/1.4 Arial,sans-serif}.access-gate-card input:focus{border-color:var(--ejp-forest);outline:3px solid #9eb26a59}.access-gate-card button{color:#fffaf5;background:var(--ejp-deep);cursor:pointer;border:0;border-radius:2px;min-height:52px;font:700 14px/1.2 Arial,sans-serif}.access-gate-card button:disabled{opacity:.55;cursor:wait}.access-error{color:#7a2938;background:#f9e7e8;margin:0;padding:11px 13px;font:14px/1.45 Arial,sans-serif}.access-privacy{color:#717765;margin:20px 0 0;font:12px/1.5 Arial,sans-serif}@media (max-width:430px){.access-gate-page{padding:14px}.access-gate-card{padding:30px 22px}}.wedding-site{min-height:100svh;color:var(--ejp-ink);background:var(--ejp-paper);font-family:Baskerville,Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif}.wedding-site button,.wedding-site input,.wedding-site select{font:inherit}.screen-invitation{background:radial-gradient(circle at 50% 45%,#be9a5f30,#0000 28%),linear-gradient(135deg,#16260f,#39551e 48%,#1f3515);place-items:center;min-height:100svh;display:grid;overflow:hidden}.story-portal{isolation:isolate;background:#ead4cd;width:min(100vw,56.28svh - 15.7584px,560px);height:min(100svh,945px);min-height:690px;position:relative;overflow:hidden;box-shadow:0 32px 100px #0310018c}.story-portal:before{content:"";z-index:7;pointer-events:none;border:1px solid #fff4d859;border-radius:1px;transition:opacity 1s 1s;position:absolute;inset:10px}.story-portal:after{content:"";z-index:1;pointer-events:none;opacity:0;background:radial-gradient(circle at 17% 17%,#ffffffeb 0 1px,#0000 2px) 0 0/137px 173px,radial-gradient(circle at 74% 24%,#fbdc97e6 0 1px,#0000 2px) 0 0/181px 151px,radial-gradient(circle at 83% 56%,#ffffffb8 0 1.5px,#0000 2.5px) 0 0/211px 197px,radial-gradient(circle at 28% 63%,#fbdc97a6 0 1px,#0000 2px) 0 0/163px 219px;position:absolute;inset:0}.phase-open:after{opacity:.5;animation:8s ease-in-out infinite alternate invitation-sparkle}.reveal-scene{z-index:0;background:url(/invitation-scene-web.jpg) 50%/cover no-repeat;animation:13s ease-in-out infinite alternate scene-breathe;position:absolute;inset:0;transform:scale(1.025)}.reveal-scene:after{content:"";background:linear-gradient(#fff8f00a,#0000 54%,#1b350d14);position:absolute;inset:0}.gate{z-index:8;will-change:transform;background-image:url(/floral-gate.jpeg);background-repeat:no-repeat;background-size:200% 100%;width:50.15%;transition:transform 2.15s cubic-bezier(.72,0,.24,1),filter 1.6s,box-shadow 1.5s;position:absolute;top:0;bottom:0}.gate-left{transform-origin:0;background-position:0;left:0;box-shadow:inset -9px 0 24px #4d141e2e}.gate-right{transform-origin:100%;background-position:100%;right:0;box-shadow:inset 9px 0 24px #4d141e2e}.phase-open .gate-left{filter:saturate(.9)brightness(.8);transform:perspective(900px)translate(-102%)rotateY(-8deg)}.phase-open .gate-right{filter:saturate(.9)brightness(.8);transform:perspective(900px)translate(102%)rotateY(8deg)}.gate-shade{z-index:9;pointer-events:none;background:linear-gradient(#17270d33,#0000 18% 69%,#13210b66),radial-gradient(at 50% 43%,#fffcf7cc,#fff7ef1a 48%,#19300f47);transition:opacity 1.25s;position:absolute;inset:0}.phase-unlocking .gate-shade{opacity:.82}.phase-open .gate-shade{opacity:0}.welcome-copy{z-index:12;color:#4a2d25;text-align:center;text-shadow:0 1px #fff,0 2px 12px #ffffffe6;background:linear-gradient(90deg,#0000,#fffaf6db 12% 88%,#0000);width:min(82%,430px);padding:20px 24px 22px;transition:opacity .7s,transform 1s cubic-bezier(.22,1,.36,1);position:absolute;top:clamp(120px,15.5%,158px);left:50%;transform:translate(-50%)}.welcome-mark{display:none}.welcome-name{color:var(--ejp-berry);white-space:nowrap;margin:0 0 18px;font-family:Snell Roundhand,Apple Chancery,URW Chancery L,cursive;font-size:clamp(32px,6vw,42px);line-height:1.08}.welcome-message{color:#3f2a23;max-width:330px;margin:0 auto;font-size:clamp(16px,2.6vw,18px);line-height:1.55}.phase-unlocking .welcome-copy,.phase-open .welcome-copy{opacity:0;pointer-events:none;transform:translate(-50%)translateY(-18px)}.key-trigger{z-index:13;color:#432f27;cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:flex-start;align-items:center;width:184px;min-height:236px;padding:0;transition:opacity .65s,transform .9s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;top:43%;left:50%;transform:translate(-50%)}.key-trigger:disabled{cursor:default}.key-visual{width:158px;height:176px;display:block;position:relative}.key-visual img{object-fit:contain;mix-blend-mode:multiply;filter:drop-shadow(0 10px 13px #64152e38);width:100%;height:100%;transition:opacity .55s,transform .9s cubic-bezier(.22,1,.36,1),filter .7s;position:absolute;inset:0}.simple-key{opacity:1;transform:scale(.96);mix-blend-mode:normal!important}.ejp-key{opacity:0;transform:scale(.58)rotate(-12deg);mix-blend-mode:normal!important}.key-label{letter-spacing:.16em;text-transform:uppercase;margin-top:3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:700;line-height:1.45}.tap-ring{border:1px solid #b65b6ba8;border-radius:50%;width:52px;height:52px;animation:2.2s ease-out infinite key-pulse;position:absolute;top:66px;left:50%;transform:translate(-50%)}.phase-unlocking .simple-key{opacity:0;filter:drop-shadow(0 0 24px #ffdd98e0);transform:scale(.72)rotate(150deg)}.phase-unlocking .ejp-key{opacity:1;filter:drop-shadow(0 0 26px #ffe29ff2);transform:scale(1.2)rotate(0)}.phase-unlocking .tap-ring{opacity:0}.phase-open .key-trigger{opacity:0;pointer-events:none;transform:translate(-50%)scale(.78)}.sound-note{z-index:12;color:#ffffffe6;letter-spacing:.22em;text-transform:uppercase;text-shadow:0 2px 8px #101e08cc;width:max-content;margin:0;font-family:Arial,Helvetica,sans-serif;font-size:9px;font-weight:700;transition:opacity .5s;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.sound-note span{color:#f6dca4}.phase-open .sound-note{opacity:0}.invitation-copy{z-index:4;color:#34421e;text-align:center;opacity:0;pointer-events:none;width:68%;transition:opacity 1.15s 1.15s,transform 1.3s cubic-bezier(.22,1,.36,1) 1.05s;position:absolute;top:clamp(126px,14.5%,150px);left:50%;transform:translate(-50%)translateY(22px)}.phase-open .invitation-copy{opacity:1;pointer-events:auto;transform:translate(-50%)}.invitation-copy>p{margin:0;font-size:clamp(12px,2.8vw,16px);line-height:1.43}.invitation-copy .families{margin-bottom:4px;font-size:clamp(13px,3vw,17px)}.invitation-copy h1{color:#354d21;text-shadow:0 1px #ffffff94;flex-direction:column;margin:14px 0 10px;font-family:Snell Roundhand,Apple Chancery,URW Chancery L,cursive;font-size:clamp(36px,9vw,56px);font-weight:400;line-height:.78;display:flex}.invitation-copy h1 i{margin:6px 0 4px;font-size:.53em;font-weight:400;line-height:1}.ornamental-rule{width:68%;height:14px;margin:13px auto 7px;position:relative}.ornamental-rule:before,.ornamental-rule:after{content:"";background:linear-gradient(90deg,#0000,#354d21b3);width:calc(50% - 10px);height:1px;position:absolute;top:50%}.ornamental-rule:before{left:0}.ornamental-rule:after{right:0;transform:scaleX(-1)}.ornamental-rule i{background:var(--ejp-forest);width:8px;height:8px;position:absolute;top:3px;left:50%;transform:translate(-50%)rotate(45deg)}.ornamental-rule.small{width:52%;margin-block:7px}.invitation-copy .wedding-date{margin:2px 0;font-size:clamp(15px,3.7vw,21px);line-height:1.2}.invitation-copy .venue-copy{font-size:clamp(11px,2.55vw,14px);line-height:1.38}.reveal-cta{color:#fffaf2;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:#354d21eb;border:1px solid #354d21d1;border-radius:999px;justify-content:space-between;align-items:center;gap:22px;min-width:210px;margin-top:16px;padding:13px 18px;font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:700;transition:transform .25s,background .25s;display:inline-flex;box-shadow:0 9px 24px #22371433}.reveal-cta:hover{background:#263f18;transform:translateY(-2px)}.reveal-cta span{color:#edcba0;font-size:15px}@keyframes key-pulse{0%{opacity:.65;transform:translate(-50%)scale(.65)}75%,to{opacity:0;transform:translate(-50%)scale(1.55)}}@keyframes scene-breathe{0%{transform:scale(1.025)translateY(0)}to{transform:scale(1.045)translateY(-3px)}}@keyframes invitation-sparkle{0%{opacity:.25;transform:translateY(-3px)}to{opacity:.58;transform:translateY(5px)}}.screen-rsvp,.screen-response,.screen-details,.screen-transport,.screen-summary{background:radial-gradient(circle at 8% 12%,#db8d8938,#0000 26%),radial-gradient(circle at 92% 84%,#9eb26a3b,#0000 30%),linear-gradient(145deg,#fffaf7,#f2eadf 52%,#e8ecd8);min-height:100svh;padding:0 18px 72px}.journey-header-new{grid-template-columns:46px 1fr auto;align-items:center;gap:18px;width:min(100%,760px);height:84px;margin:0 auto;display:grid}.journey-header-new button{cursor:pointer;background:#ffffff8c;border:1px solid #b65b6b6b;border-radius:50%;width:46px;height:46px;padding:0;overflow:hidden}.journey-header-new button img{object-fit:cover;mix-blend-mode:normal;width:100%;height:100%}.journey-header-new p{color:#727768;margin:0;font-family:Arial,Helvetica,sans-serif;font-size:11px}.journey-header-new strong{color:var(--ejp-forest)}.journey-progress{background:#45692524;height:2px;overflow:hidden}.journey-progress span{background:linear-gradient(90deg, var(--ejp-berry), var(--ejp-forest));height:100%;transition:width .5s;display:block}.journey-shell{width:min(100%,650px);margin:18px auto 0}.wedding-site .form-error{color:#7b3034;text-align:center;background:#fff0ec;border:1px solid #a7414345;border-radius:2px;width:min(100%,520px);margin:0 auto 14px;padding:12px 16px;font-family:Arial,Helvetica,sans-serif;font-size:13px}.paper-card{background:linear-gradient(#fffdf8ed,#fffaf4f2),url(/ejp-logo-web.png) 50%/86% no-repeat;border:1px solid #475b274f;min-height:min(760px,100svh - 130px);padding:clamp(58px,9vw,80px) clamp(28px,7vw,66px);animation:.7s cubic-bezier(.22,1,.36,1) both paper-arrive;position:relative;overflow:hidden;box-shadow:0 26px 70px #323e1e21,inset 0 0 0 7px #ffffffad}.paper-card:before{content:"";pointer-events:none;border:1px solid #b65b6b33;border-radius:160px 160px 5px 5px;position:absolute;inset:13px}.floral-corner{z-index:0;mix-blend-mode:multiply;opacity:.12;pointer-events:none;background:url(/ejp-logo-web.png) 50%/contain no-repeat;width:210px;height:210px;position:absolute}.floral-corner.top-left{top:-80px;left:-80px;transform:rotate(-18deg)}.floral-corner.bottom-right{bottom:-82px;right:-86px;transform:rotate(162deg)}.step-heading-new,.paper-card>:not(.floral-corner){z-index:1;position:relative}.step-heading-new{text-align:center}.step-heading-new>span{width:40px;height:40px;color:var(--ejp-berry);letter-spacing:.08em;border:1px solid #b65b6b8c;border-radius:50%;place-items:center;margin:0 auto 15px;font-family:Arial,Helvetica,sans-serif;font-size:10px;display:grid}.wedding-site .eyebrow,.wedding-site .field-kicker{color:var(--ejp-berry);letter-spacing:.18em;text-transform:uppercase;margin:0 0 10px;font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:700}.step-heading-new h2,.message-card h2{max-width:490px;color:var(--ejp-forest);letter-spacing:-.035em;margin:0 auto;font-family:Baskerville,Iowan Old Style,Georgia,serif;font-size:clamp(36px,7vw,54px);font-weight:400;line-height:1}.paper-card .step-intro{color:#68705b;text-align:center;max-width:440px;margin:22px auto 28px;font-size:16px;line-height:1.55}.choice-stack{gap:11px;width:min(100%,450px);margin:26px auto 0;display:grid}.choice-line{color:#42502f;text-align:left;cursor:pointer;background:#ffffff8c;border:1px solid #45692533;grid-template-columns:26px 1fr;align-items:center;gap:12px;min-height:56px;padding:12px 17px;font-size:15px;transition:border-color .2s,background .2s,transform .2s,color .2s;display:grid}.choice-line:hover{border-color:#b65b6b9e;transform:translateY(-1px)}.choice-line.selected{border-color:var(--ejp-forest);color:#fffaf2;background:var(--ejp-forest)}.choice-line i{border:1px solid;border-radius:50%;place-items:center;width:24px;height:24px;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-style:normal;display:grid}.guest-count{border-top:1px solid #4569252b;grid-template-columns:1fr auto;align-items:center;gap:7px 20px;width:min(100%,450px);margin:20px auto 0;padding:18px 0 0;display:grid}.guest-count>span{color:var(--ejp-forest);font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:700}.guest-count small{color:#7d816f;grid-column:1/-1;font-family:Arial,Helvetica,sans-serif;font-size:11px}.wedding-site .counter{border:1px solid #45692552;border-radius:999px;grid-template-columns:34px 36px 34px;align-items:center;display:grid;overflow:hidden}.wedding-site .counter button{height:34px;color:var(--ejp-forest);cursor:pointer;background:0 0;border:0}.wedding-site .counter output{text-align:center;font-family:Arial,Helvetica,sans-serif;font-size:12px}.action-button-new{border:1px solid var(--ejp-forest);color:#fffaf2;background:var(--ejp-forest);letter-spacing:.07em;text-transform:uppercase;cursor:pointer;border-radius:999px;justify-content:space-between;align-items:center;gap:20px;width:min(100%,300px);margin:32px auto 0;padding:14px 18px;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-weight:700;transition:transform .2s,background .2s;display:flex;box-shadow:0 12px 28px #273d1826}.action-button-new:hover{background:var(--ejp-deep);transform:translateY(-2px)}.action-button-new:disabled{opacity:.6;cursor:wait}.action-button-new span{color:#edc99c;font-size:16px}.message-card{text-align:center}.response-monogram{object-fit:contain;mix-blend-mode:normal;width:128px;height:128px;margin:0 auto 20px}.message-card>p:not(.eyebrow){color:#68705b;max-width:430px;margin:22px auto 0;font-size:17px;line-height:1.6}.decline-message h2{max-width:560px;font-size:clamp(29px,5.8vw,43px);line-height:1.08}.button-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:34px;display:flex}.wedding-site .text-button,.wedding-site .outline-button{letter-spacing:.05em;text-transform:uppercase;cursor:pointer;border-radius:999px;padding:12px 16px;font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:700}.wedding-site .text-button{color:var(--ejp-forest);text-underline-offset:4px;background:0 0;border:0;text-decoration:underline}.wedding-site .outline-button{border:1px solid var(--ejp-forest);color:var(--ejp-forest);background:0 0}.detail-list{gap:13px;width:min(100%,480px);margin:30px auto 0;display:grid}.detail-block{background:#ffffff8f;border:1px solid #4569252e;padding:23px 24px 23px 70px;position:relative}.detail-number{width:30px;height:30px;color:var(--ejp-berry);border:1px solid #b65b6b73;border-radius:50%;place-items:center;font-size:10px;display:grid;position:absolute;top:22px;left:22px}.detail-block h3{color:var(--ejp-forest);margin:0;font-size:22px;font-weight:400}.detail-block>p:not(.field-kicker){color:#717662;margin:8px 0 0;font-size:14px;line-height:1.45}.detail-block>a{color:var(--ejp-berry);letter-spacing:.05em;text-transform:uppercase;margin-top:13px;font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:700;display:inline-block}.programme-row{border-bottom:1px solid #4569251a;grid-template-columns:70px 1fr;gap:12px;padding:9px 0;display:grid}.programme-row:last-child{border-bottom:0}.programme-row strong{color:var(--ejp-berry);font-family:Arial,Helvetica,sans-serif;font-size:11px}.programme-row span{color:#4c5838;font-size:14px}.travel-fields{border-top:1px solid #4569252b;grid-template-columns:120px 1fr;gap:18px;width:min(100%,450px);margin:20px auto 0;padding-top:18px;display:grid}.travel-fields label{color:var(--ejp-forest);text-transform:uppercase;flex-direction:column;gap:8px;font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:700;display:flex}.travel-fields input,.travel-fields select{min-height:43px;color:var(--ejp-ink);text-transform:none;background:0 0;border:0;border-bottom:1px solid #45692557;border-radius:0;padding:0 8px;font-family:Baskerville,Georgia,serif;font-size:16px}.answer-summary{text-align:left;background:#ffffff8c;border:1px solid #45692530;width:min(100%,430px);margin:30px auto 0;padding:6px 22px}.answer-row{border-bottom:1px solid #4569251a;grid-template-columns:1fr 1.2fr;gap:15px;padding:13px 0;display:grid}.answer-row:last-child{border-bottom:0}.answer-row span{color:#808471;letter-spacing:.07em;text-transform:uppercase;font-family:Arial,Helvetica,sans-serif;font-size:10px}.answer-row strong{color:var(--ejp-forest);text-align:right;font-size:14px;font-weight:400}.invalid-page>img{object-fit:contain;mix-blend-mode:screen;width:140px;height:140px}@keyframes paper-arrive{0%{opacity:0;transform:translateY(20px)scale(.985)}to{opacity:1;transform:none}}.story-portal{--pointer-x:0;--pointer-y:0;perspective:1200px}.portal-ambience{z-index:2;pointer-events:none;opacity:0;translate:calc(var(--pointer-x) * -7px) calc(var(--pointer-y) * -5px);transition:opacity 1.2s,translate .35s ease-out;position:absolute;inset:0;overflow:hidden}.portal-ambience i{filter:blur(16px);background:#ffe7b161;border-radius:50%;animation:9s ease-in-out infinite alternate ambient-orbit;position:absolute}.portal-ambience i:first-child{width:74px;height:74px;top:15%;left:12%}.portal-ambience i:nth-child(2){width:112px;height:112px;animation-delay:-3.2s;top:35%;right:8%}.portal-ambience i:nth-child(3){width:82px;height:82px;animation-delay:-6s;bottom:23%;left:32%}.phase-open .portal-ambience{opacity:.72}.reveal-scene{translate:calc(var(--pointer-x) * -5px) calc(var(--pointer-y) * -4px);transition:translate .45s ease-out}.opening-light{z-index:7;opacity:0;pointer-events:none;border-radius:50%;width:20px;height:20px;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)scale(.2)}.opening-light i{border-radius:inherit;background:#fff8da;position:absolute;inset:0;box-shadow:0 0 24px 12px #ffe3a0e6,0 0 90px 45px #fff1c69e}.phase-unlocking .opening-light{animation:1.45s cubic-bezier(.22,1,.36,1) forwards lock-flash}.gate-seam{z-index:11;pointer-events:none;background:linear-gradient(#0000,#ffefc894 18%,#781f34a6 50%,#ffefc894 82%,#0000);width:1px;transition:opacity .55s,filter .55s;position:absolute;top:10%;bottom:8%;left:50%;transform:translate(-50%)}.gate-seam i{background:#f1c4c3;border:1px solid #762837b8;border-radius:55% 55% 35% 35%;width:10px;height:20px;position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 5px #fff4e159}.phase-unlocking .gate-seam{filter:brightness(1.45)drop-shadow(0 0 12px #ffe1a1)}.phase-open .gate-seam{opacity:0}.key-orbit{border:1px solid #b65b6b33;border-radius:50%;width:156px;height:156px;animation:3.8s ease-in-out infinite orbit-breathe;position:absolute;top:14px;left:50%;transform:translate(-50%)}.key-orbit:before,.key-orbit:after{content:"";border:1px dashed #b8915c57;border-radius:50%;animation:18s linear infinite orbit-turn;position:absolute;inset:10px}.key-orbit:after{border-style:solid;border-color:#ffffff73;animation-direction:reverse;inset:23px}.key-orbit i{background:#ffe7b5;border-radius:50%;width:5px;height:5px;position:absolute;box-shadow:0 0 9px #e9b95b}.key-orbit i:first-child{top:11px;left:45px}.key-orbit i:nth-child(2){top:83px;right:7px}.key-orbit i:nth-child(3){bottom:15px;left:24px}.key-trigger:hover .key-label{color:var(--ejp-berry)}.key-visual{transition:transform .35s}.phase-unlocking .key-trigger{animation:1.45s cubic-bezier(.65,0,.2,1) forwards key-to-lock}.phase-unlocking .key-orbit{opacity:0;transition:opacity .45s,transform .7s;transform:translate(-50%)scale(.42)}.phase-unlocking .key-label{opacity:0;transition:opacity .25s}.portal-petals{z-index:3;opacity:0;pointer-events:none;transition:opacity 1.4s 1s;position:absolute;inset:0;overflow:hidden}.phase-open .portal-petals{opacity:1}.petal-rain i{top:-9%;left:var(--petal-x);width:var(--petal-width);height:var(--petal-height);rotate:var(--petal-rotation);animation:petal-fall var(--petal-time) linear infinite;animation-delay:var(--petal-delay);background:linear-gradient(145deg,#f7c6c4,#b75e72);border-radius:80% 10% 75% 20%;position:absolute;box-shadow:inset 1px 1px 2px #ffffff8c}.paper-petals,.celebration-petals{z-index:0;opacity:.15;pointer-events:none;position:absolute;inset:0;overflow:hidden}.paper-petals i{animation-duration:calc(var(--petal-time) + 4s)}.celebration-petals{opacity:.34}.invitation-copy:before{content:"";z-index:-1;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);background:radial-gradient(at 50% 42%,#fff0ebd4,#ffefe88a 62%,#0000 83%);border:1px solid #525e3029;border-radius:48% 48% 4px 4px/10% 10% 4px 4px;position:absolute;inset:-26px -24px -22px;box-shadow:inset 0 0 30px #fff3}.invitation-copy .edition-mark{color:#455629b8;letter-spacing:.2em;text-transform:uppercase;margin-bottom:12px;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-weight:700}.phase-open .invitation-copy>*{animation:.75s cubic-bezier(.22,1,.36,1) both copy-rise}.phase-open .invitation-copy>:first-child{animation-delay:1.3s}.phase-open .invitation-copy>:nth-child(2){animation-delay:1.42s}.phase-open .invitation-copy>:nth-child(3){animation-delay:1.54s}.phase-open .invitation-copy>:nth-child(4){animation-delay:1.68s}.phase-open .invitation-copy>:nth-child(5){animation-delay:1.78s}.phase-open .invitation-copy>:nth-child(6){animation-delay:1.88s}.phase-open .invitation-copy>:nth-child(7){animation-delay:1.98s}.phase-open .invitation-copy>:nth-child(8){animation-delay:2.08s}.phase-open .invitation-copy>:nth-child(9){animation-delay:2.2s}.phase-open .invitation-copy>:nth-child(10){animation-delay:2.32s}.story-replay{color:#354d21b8;letter-spacing:.08em;text-underline-offset:3px;text-transform:uppercase;cursor:pointer;background:0 0;border:0;margin:10px auto 0;padding:5px 8px;font-family:Arial,Helvetica,sans-serif;font-size:9px;font-weight:700;text-decoration:underline;display:block}::view-transition-old(root){animation:.28s both page-out}::view-transition-new(root){animation:.48s cubic-bezier(.22,1,.36,1) both page-in}.screen-rsvp,.screen-response,.screen-details,.screen-transport,.screen-summary{isolation:isolate;position:relative;overflow-x:hidden}.screen-rsvp:before,.screen-response:before,.screen-details:before,.screen-transport:before,.screen-summary:before{content:"";z-index:-1;background:radial-gradient(circle at calc(35% + var(--pointer-x,0) * 4%) 20%, #fffc, transparent 22%), repeating-linear-gradient(115deg, transparent 0 90px, #45692506 91px 92px);animation:18s ease-in-out infinite alternate background-drift;position:fixed;inset:-20%}.journey-header-new{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);position:sticky;top:0}.journey-header-new:after{content:"";background:linear-gradient(90deg,#0000,#45692533,#0000);height:1px;position:absolute;bottom:0;left:0;right:0}.journey-map{gap:8px;display:grid}.journey-labels{justify-content:space-between;gap:8px;display:flex}.journey-labels span{color:#59604873;letter-spacing:.08em;text-transform:uppercase;font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:700;transition:color .35s}.journey-labels span.active{color:var(--ejp-forest)}.paper-card{transform-style:preserve-3d}.paper-card:after{content:"";z-index:0;pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff57,#0000);width:50%;height:100%;animation:8s ease-in-out 2s infinite paper-sheen;position:absolute;top:0;right:-75%;transform:skew(-14deg)}.back-button{color:#45552bb8;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;padding:7px 9px;font-family:Arial,Helvetica,sans-serif;font-size:9px;font-weight:700;display:inline-flex;top:25px;left:28px;z-index:4!important;position:absolute!important}.back-button span{font-size:15px;transition:transform .2s}.back-button:hover span{transform:translate(-3px)}.choice-line{position:relative;overflow:hidden}.choice-line:after{content:"→";color:currentColor;opacity:.38;font-family:Arial,Helvetica,sans-serif;transition:transform .25s,opacity .25s;transform:translate(-4px)}.choice-line{grid-template-columns:26px 1fr auto}.choice-line:hover:after,.choice-line.selected:after{opacity:1;transform:none}.choice-line.selected i{animation:.36s cubic-bezier(.2,1.5,.4,1) choice-pop}.rsvp-deadline{border-left:2px solid var(--ejp-berry);color:#68705b;background:#ffffff75;justify-content:space-between;align-items:center;gap:16px;width:min(100%,450px);margin:14px auto 0;padding:12px 15px;font-family:Arial,Helvetica,sans-serif;font-size:13px;display:flex}.rsvp-deadline span{font-weight:700}.rsvp-deadline strong{color:var(--ejp-berry);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.details-preview{cursor:grab;touch-action:none;background:#cdd1b2;border:1px solid #45692533;border-radius:0;width:min(100%,480px);height:300px;margin:28px auto 0;padding:0;position:relative;overflow:hidden;box-shadow:inset 0 0 45px #192c102e}.details-preview:active{cursor:grabbing}.details-preview img{object-fit:cover;object-position:center 8%;width:100%;height:100%;transition:object-position 1.15s cubic-bezier(.2,.72,.2,1),transform 1.15s cubic-bezier(.2,.72,.2,1);position:absolute;inset:0}.details-preview:after{content:"";pointer-events:none;background:linear-gradient(#0000,#182a0fb8);position:absolute;inset:45% 0 0}.details-preview>span{z-index:2;color:#fffaf2;letter-spacing:.06em;text-shadow:0 2px 12px #15250dcc;justify-content:center;align-items:center;gap:12px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:700;display:flex;position:absolute;bottom:17px;left:18px;right:18px}.details-preview>span i{font-size:18px;font-style:normal;animation:1.8s ease-in-out infinite preview-swipe}.details-preview.is-revealed img{object-position:center 96%;transform:scale(1.025)}.details-preview.is-revealed>span i{animation:none;rotate:180deg}.detail-block{transition:transform .25s,border-color .25s,box-shadow .25s}.detail-block:hover{z-index:2;border-color:#b65b6b61;transform:translateY(-2px);box-shadow:0 14px 30px #303c1d14}.gehane-contact{border:1px solid var(--ejp-forest);color:var(--ejp-forest);background:0 0;border-radius:999px;align-items:center;gap:10px;margin-top:15px;padding:11px 15px;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-weight:700;display:inline-flex}.gehane-contact small{border-left:1px solid #45692540;padding-left:10px;font-size:9px;font-weight:400}.gehane-contact.is-placeholder{opacity:.58;cursor:not-allowed}.detail-block>.dress-alternative{border-top:1px solid #4569251f;margin-top:16px;padding-top:14px}.dress-alternative span{color:var(--ejp-berry);letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px;font-family:Arial,sans-serif;font-size:9px;font-weight:700;display:block}.route-illustration{width:min(100%,430px);color:var(--ejp-forest);letter-spacing:.12em;text-transform:uppercase;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;margin:24px auto 28px;font-family:Arial,Helvetica,sans-serif;font-size:9px;font-weight:700;display:grid}.route-illustration>i{background:repeating-linear-gradient(90deg, var(--ejp-berry) 0 5px, transparent 5px 10px);height:1px;display:block;position:relative}.route-illustration>i:before,.route-illustration>i:after{content:"";border:1px solid var(--ejp-berry);background:#fffaf4;border-radius:50%;width:9px;height:9px;position:absolute;top:50%;transform:translateY(-50%)}.route-illustration>i:before{left:0}.route-illustration>i:after{right:0}.route-illustration .route-car{background:var(--ejp-berry);border:1px solid #fff7ed;border-radius:7px 9px 4px 4px;width:28px;height:13px;animation:4s ease-in-out infinite route-travel;position:absolute;top:-9px;left:0;box-shadow:0 3px 7px #30261d2e}.route-illustration .route-car:before{content:"";background:#a9c0a2;border:1px solid #fff7ed;border-bottom:0;border-radius:7px 7px 0 0;width:13px;height:7px;position:absolute;top:-6px;left:7px}.route-illustration .route-car em{background:var(--ejp-deep);border:1px solid #fff7ed;border-radius:50%;width:6px;height:6px;position:absolute;bottom:-4px}.route-illustration .route-car em:first-child{left:4px}.route-illustration .route-car em:last-child{right:4px}.transport-note{color:#68705b;text-align:left;background:#ffffff6b;border:1px solid #45692521;width:min(100%,450px);margin:22px auto 0;padding:14px 16px;font-size:13px;line-height:1.5}.final-submit{border:1px solid var(--ejp-forest);color:#fffaf2;background:var(--ejp-forest);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;border-radius:999px;justify-content:space-between;align-items:center;gap:16px;width:min(100%,360px);margin:28px auto 0;padding:14px 18px;font-family:Arial,sans-serif;font-size:11px;font-weight:700;display:flex}.final-lock-panel,.answers-locked{text-align:left;background:#ffffff9e;border:1px solid #45692538;width:min(100%,430px);margin:26px auto 0;padding:18px}.final-lock-panel>p{margin:0!important}.final-lock-panel>p strong,.final-lock-panel>p span{display:block}.final-lock-panel>p strong{color:var(--ejp-forest);font-size:16px}.final-lock-panel>p span{color:#747b68;margin-top:5px;font-size:13px;line-height:1.45}.final-lock-panel>div{flex-wrap:wrap;justify-content:flex-end;gap:9px;margin-top:15px;display:flex}.final-lock-panel button{border:1px solid var(--ejp-forest);color:var(--ejp-forest);cursor:pointer;background:0 0;border-radius:999px;padding:10px 13px;font-size:10px;font-weight:700}.final-lock-panel button:last-child{color:#fffaf2;background:var(--ejp-forest)}.answers-locked{align-items:center;gap:14px;display:flex}.answers-locked>span{color:#fffaf2;background:var(--ejp-forest);border-radius:50%;flex:0 0 34px;place-items:center;height:34px;display:grid}.answers-locked p{margin:0!important}.answers-locked strong,.answers-locked small{display:block}.answers-locked strong{color:var(--ejp-forest);font-size:15px}.answers-locked small{color:#747b68;margin-top:4px;font-family:Arial,sans-serif;font-size:11px}.summary-card-new .response-monogram{animation:4s ease-in-out infinite monogram-celebrate}@keyframes ambient-orbit{0%{opacity:.45;transform:translate(-8px,-5px)scale(.88)}to{opacity:.9;transform:translate(14px,12px)scale(1.12)}}@keyframes preview-swipe{0%,to{opacity:.65;transform:translateY(3px)}50%{opacity:1;transform:translateY(-4px)}}@keyframes lock-flash{0%,48%{opacity:0;transform:translate(-50%,-50%)scale(.2)}68%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(5.5)}}@keyframes orbit-breathe{0%,to{opacity:.55;scale:.96}50%{opacity:1;scale:1.04}}@keyframes orbit-turn{to{rotate:360deg}}@keyframes key-to-lock{0%{transform:translate(-50%)scale(1)}45%{transform:translate(-50%)translateY(-12px)scale(1.08)}76%{transform:translate(-50%)translateY(12px)scale(.8)}to{transform:translate(-50%)translateY(16px)scale(.72)}}@keyframes petal-fall{0%{opacity:0;translate:-12px -8%;rotate:none}12%{opacity:.78}48%{translate:22px 52vh;rotate:210deg}to{opacity:0;translate:-17px 112vh;rotate:480deg}}@keyframes copy-rise{0%{opacity:0;filter:blur(3px);translate:0 10px}to{opacity:1;filter:blur();translate:0}}@keyframes page-out{to{opacity:0;transform:scale(.985)}}@keyframes page-in{0%{opacity:0;transform:translateY(12px)scale(.99)}}@keyframes background-drift{to{transform:translate(2%,-1%)rotate(.6deg)}}@keyframes paper-sheen{0%,68%{opacity:0;right:-75%}76%{opacity:.7}92%,to{opacity:0;right:125%}}@keyframes choice-pop{0%{transform:scale(.5)}70%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes route-travel{0%,10%{left:0}90%,to{left:calc(100% - 28px)}}@keyframes monogram-celebrate{0%,to{filter:drop-shadow(0 8px 12px #b65b6b14);transform:translateY(0)scale(1)}50%{filter:drop-shadow(0 14px 18px #b65b6b33);transform:translateY(-5px)scale(1.025)}}.invitation-loader{z-index:40;color:#fff8ee;opacity:0;visibility:hidden;background:radial-gradient(circle at 50% 45%,#b65b6b40,#0000 32%),linear-gradient(145deg,#1c3012,#3e5e22);place-content:center;justify-items:center;gap:18px;transition:opacity .8s,visibility .8s;display:grid;position:absolute;inset:0}.is-loading .invitation-loader{opacity:1;visibility:visible}.invitation-loader>span{place-items:center;width:112px;height:112px;display:grid;position:relative}.invitation-loader img{object-fit:contain;filter:drop-shadow(0 8px 14px #0a190659);width:84px;height:84px;animation:2s ease-in-out infinite loader-mark}.invitation-loader span i{border:1px solid #f4d39c38;border-top-color:#f1d09b;border-radius:50%;animation:2.8s linear infinite orbit-turn;position:absolute;inset:0}.invitation-loader p{letter-spacing:.17em;text-transform:uppercase;margin:0;font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:700}.sound-toggle{z-index:30;color:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:#1c301247;border:1px solid #ffffff47;border-radius:999px;align-items:center;gap:7px;padding:7px 9px;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-weight:700;display:inline-flex;position:absolute;top:21px;right:20px}.sound-toggle>i,.journey-sound>i{border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:5px solid;width:12px;height:12px;display:inline-block;position:relative}.sound-toggle>i:after,.journey-sound>i:after{content:"";border-top:1px solid;border-bottom:1px solid #0000;border-left:0;border-right:1px solid;border-radius:0 50% 50% 0;width:8px;height:8px;position:absolute;top:-5px;left:1px}.sound-toggle>i.muted:before,.journey-sound>i.muted:before{content:"";z-index:2;background:currentColor;width:17px;height:1px;position:absolute;top:-3px;left:-6px;rotate:45deg}.returning-note{z-index:14;color:#4b3028;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffaf6f0;border:1px solid #65313333;border-radius:2px;justify-content:space-between;align-items:center;gap:14px;width:min(86%,430px);min-height:64px;padding:13px 15px 13px 17px;animation:.6s both returning-in;display:flex;position:absolute;top:auto;bottom:48px;left:50%;transform:translate(-50%);box-shadow:0 14px 36px #23301433}.returning-note span{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;flex:none;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-weight:700;line-height:1.3}.returning-note button{min-height:38px;color:var(--ejp-berry);letter-spacing:.05em;text-align:center;text-transform:uppercase;cursor:pointer;background:#b65b6b17;border:0;border-radius:999px;justify-content:center;align-items:center;gap:9px;padding:8px 11px;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-weight:700;line-height:1.2;transition:color .25s,background .25s,transform .25s;display:inline-flex}.returning-note button:hover{color:#fff;background:var(--ejp-berry);transform:translateY(-1px)}.returning-note button b{font-size:15px;font-weight:400}.key-trigger{touch-action:none}.key-trigger .key-visual{transform:translateX(calc(var(--turn) * 12px)) rotate(calc(var(--turn) * 18deg)) scale(calc(1 + var(--turn) * .05))}.key-trigger:hover .key-visual{transform:translateX(calc(var(--turn) * 12px)) translateY(-4px) rotate(calc(var(--turn) * 18deg)) scale(calc(1.025 + var(--turn) * .05))}.gesture-meter{background:#502d2321;border-radius:9px;width:92px;height:2px;margin-top:11px;overflow:hidden}.gesture-meter i{width:calc(var(--turn) * 100%);border-radius:inherit;background:linear-gradient(90deg, var(--ejp-berry), #ecc780);height:100%;transition:width 80ms linear;display:block}.invitation-copy .invitee-note{color:var(--ejp-berry);letter-spacing:.12em;text-transform:uppercase;margin:-5px 0 12px;font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:700}.phase-open .invitation-copy>:nth-child(11){animation:.75s cubic-bezier(.22,1,.36,1) 2.44s both copy-rise}.journey-tools{align-items:center;gap:10px;display:flex}.journey-sound{color:var(--ejp-forest);place-items:center;display:grid;width:29px!important;height:29px!important}.confirmation-seal{place-items:center;width:150px;height:150px;margin:0 auto 14px;display:grid;position:relative}.confirmation-seal:before,.confirmation-seal:after,.confirmation-seal>i{content:"";border:1px solid #b65b6b47;border-radius:50%;animation:1.1s cubic-bezier(.22,1,.36,1) both seal-close;position:absolute}.confirmation-seal:before{inset:0}.confirmation-seal:after{animation-delay:.13s;inset:10px}.confirmation-seal>i{animation-delay:.24s;inset:20px}.confirmation-seal .response-monogram{width:106px;height:106px;margin:0}.calendar-button{width:min(100%,430px);color:var(--ejp-forest);text-align:left;cursor:pointer;background:#ffffff9e;border:1px solid #4569253d;grid-template-columns:42px 1fr auto;align-items:center;gap:14px;margin:16px auto 0;padding:13px 15px;transition:transform .2s,border-color .2s,box-shadow .2s;display:grid}.calendar-button:hover{border-color:#b65b6b7a;transform:translateY(-2px);box-shadow:0 12px 26px #2e3e1b14}.calendar-button>span{color:#fffaf2;background:var(--ejp-berry);border-radius:50%;place-items:center;width:42px;height:42px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:700;display:grid}.calendar-button>i{gap:3px;font-size:15px;font-style:normal;display:grid}.calendar-button small{color:#777d68;font-family:Arial,Helvetica,sans-serif;font-size:11px}.calendar-button>b{color:var(--ejp-berry);font-size:21px;font-weight:400}@keyframes loader-mark{0%,to{opacity:.7;transform:scale(.94)}50%{opacity:1;transform:scale(1.03)}}@keyframes returning-in{0%{opacity:0;transform:translate(-50%)translateY(9px)}to{opacity:1;transform:translate(-50%)}}@keyframes seal-close{0%{opacity:0;transform:scale(1.45)rotate(12deg)}to{opacity:1;transform:scale(1)rotate(0)}}@media (max-width:640px){.screen-invitation{display:block}.story-portal{width:100vw;height:100svh;min-height:650px;box-shadow:none}.story-portal:before{inset:7px}.reveal-scene,.gate{background-position:50%}.invitation-copy{width:70%}.journey-header-new{grid-template-columns:42px 1fr 30px;gap:11px;height:76px}.journey-header-new button{width:42px;height:42px}.journey-header-new p{display:none}.journey-labels{justify-content:flex-start}.journey-labels span{letter-spacing:.05em;font-size:12px;display:none}.journey-labels span.current{display:block}.journey-tools{gap:0}.journey-sound{width:28px!important;height:28px!important}.journey-shell{margin-top:6px}.paper-card{padding-inline:28px}.paper-card:before{inset:9px}.travel-fields{grid-template-columns:1fr}.welcome-copy{width:88%;padding-inline:18px}.returning-note{width:calc(100% - 34px);bottom:38px}.invitation-copy .edition-mark,.invitation-copy .invitee-note{font-size:10px}}@media (max-width:420px){.welcome-name{font-size:31px}.returning-note{gap:9px;min-height:60px;padding:10px 11px 10px 13px}.returning-note span{letter-spacing:.06em;font-size:9px}.returning-note button{min-height:36px;padding-inline:10px;font-size:10px}}@media (max-height:760px){.welcome-copy{top:12%}.key-trigger{top:39%;transform:translate(-50%)scale(.86)}.phase-open .key-trigger{transform:translate(-50%)scale(.7)}.invitation-copy{transform-origin:top;top:10%;transform:translate(-50%)translateY(18px)scale(.9)}.phase-open .invitation-copy{transform:translate(-50%)scale(.9)}}@media (prefers-reduced-motion:reduce){.wedding-site *,.wedding-site :before,.wedding-site :after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.gate{transition-duration:.6s}.invitation-copy{transition-delay:.25s}}.wedding-site button,.wedding-site a,.admin-page button,.admin-page a,.admin-login a{touch-action:manipulation}.wedding-site button:focus-visible,.wedding-site a:focus-visible,.wedding-site input:focus-visible,.wedding-site select:focus-visible{outline:3px solid var(--ejp-berry);outline-offset:3px}.journey-header-new{grid-template-columns:46px minmax(0,1fr) auto}.journey-tools{min-width:0}.journey-tools p{overflow-wrap:anywhere;max-width:180px}.journey-header-new .journey-sound{flex-shrink:0;width:44px!important;height:44px!important}.wedding-site .counter{grid-template-columns:44px 36px 44px}.wedding-site .counter button,.wedding-site .back-button,.wedding-site .text-button,.wedding-site .outline-button,.wedding-site .final-lock-panel button,.wedding-site .gehane-contact{min-height:44px}.detail-block>a{align-items:center;min-height:44px;display:inline-flex}.wedding-site .travel-fields input,.wedding-site .travel-fields select{width:100%;min-width:0;min-height:48px;font-size:16px}.travel-fields label,.answer-row>*,.calendar-button>i{overflow-wrap:anywhere;min-width:0}.paper-card h2,.invitation-letter{overflow-wrap:anywhere}.wedding-site .action-button-new,.wedding-site .back-button,.wedding-site .final-submit{font-family:Arial,Helvetica,sans-serif;font-size:13px}.wedding-site .action-button-new,.wedding-site .final-submit{letter-spacing:.02em;text-transform:none;min-height:48px}.wedding-site .back-button{font-size:11px}@media (max-width:640px){.journey-header-new{grid-template-columns:44px minmax(0,1fr) 44px;gap:12px}.journey-header-new>button{width:44px;height:44px}.journey-header-new{background:#fffaf5ed}.paper-card{padding:68px clamp(18px,5vw,28px) 40px}.back-button{top:14px;left:16px}.detail-block{padding:22px 18px}.detail-number{margin-bottom:14px;position:static}.programme-row{grid-template-columns:54px minmax(0,1fr);gap:10px}.answer-summary{padding-inline:16px}.answer-row{grid-template-columns:1fr;gap:6px}.answer-row strong{text-align:left}.wedding-site .text-button,.wedding-site .outline-button{font-size:11px}}@media (max-width:360px){.guest-count{grid-template-columns:1fr;justify-items:start;gap:12px}.calendar-button{grid-template-columns:36px minmax(0,1fr);gap:10px;padding:12px}.calendar-button>span{width:36px;height:36px}.calendar-button>b{display:none}.rsvp-deadline{flex-wrap:wrap;gap:8px}.choice-line{gap:10px;padding-inline:12px}}.wedding-site .details-preview{touch-action:pinch-zoom}.wedding-site .travel-fields select{height:48px}.details-card{background-image:linear-gradient(#fffaf5eb,#fffaf5eb),url(/ejp-monogram-transparent.png);background-position:50%,20px 20px;background-repeat:repeat;background-size:auto,100px 120px}.details-card>.floral-corner{display:none}.rsvp-deadline-block{text-align:center;margin-top:20px}.rsvp-deadline{flex-wrap:wrap}.wedding-site .deadline-reminder{text-transform:none;font-size:12px}.decline-note{color:#68705b;text-align:center;margin-top:20px;font-size:16px;line-height:1.6}.decline-note p+p{margin-top:12px}.details-preview.static-peacocks{cursor:default;touch-action:auto}.static-peacocks figcaption{z-index:2;color:#fffaf5;text-align:center;font-family:Arial,sans-serif;font-size:13px;position:absolute;bottom:18px;left:16px;right:16px}.detail-block>.gehane-contact{text-transform:none;flex-direction:column;align-items:flex-start;gap:6px;text-decoration:none;display:flex}.gehane-contact small{border-left:0;padding-left:0;font-size:12px}.detail-block>p:not(.field-kicker){white-space:pre-line}
.screen-invitation{display:block;overflow:clip}.cinematic-invitation{width:min(100%,560px);margin-inline:auto}.cinematic-portal.story-portal{aspect-ratio:9/16;perspective:none;background:#d1d4b1;width:100%;max-width:max(320px,56.25svh);height:auto;min-height:0;margin-inline:auto;container-type:inline-size}.cinematic-portal:before,.cinematic-portal:after{display:none}.cinema-still,.cinema-video{object-fit:cover;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.cinema-poster{z-index:0}.cinema-final{z-index:1;opacity:0}.cinema-video{z-index:2;opacity:0;transition:opacity .35s}.phase-unlocking .cinema-video,.cinema-video.is-playing,.phase-open .cinema-final{opacity:1}.phase-open .cinema-video{opacity:0}.key-prologue{z-index:6;opacity:1;background:#d1d4b1;transition:opacity .28s;position:absolute;inset:0;overflow:hidden}.key-prologue-art{object-fit:cover;pointer-events:none;transform-origin:50% 58%;width:100%;height:100%;animation:8s ease-in-out infinite alternate key-entry-breathe;position:absolute;inset:0}.phase-unlocking .key-prologue,.phase-open .key-prologue{opacity:0;pointer-events:none}.phase-open .key-prologue{visibility:hidden}.key-entry-copy{z-index:2;text-align:center;color:#33421f;pointer-events:none;text-shadow:0 1px 12px #edf0d7c7;width:84%;animation:1.1s cubic-bezier(.2,.7,.2,1) .12s both key-entry-copy-in;position:absolute;top:5.6%;left:8%}.key-entry-copy>span{letter-spacing:.19em;text-transform:uppercase;color:#8b3d55;justify-content:center;align-items:center;gap:2.8cqw;font-family:Arial,sans-serif;font-size:2.35cqw;font-weight:700;display:flex}.key-entry-copy>span:before,.key-entry-copy>span:after{content:"";opacity:.55;background:currentColor;width:11cqw;height:1px}.key-entry-copy h2{letter-spacing:-.035em;text-wrap:balance;overflow-wrap:anywhere;margin:2.1cqw 0 1.4cqw;font-family:Baskerville,Iowan Old Style,Georgia,serif;font-size:7.2cqw;font-weight:500;line-height:1.02}.key-entry-copy h2 strong{color:#7d304a;font-weight:600}.key-entry-copy.has-long-name h2{font-size:5.9cqw}.key-entry-copy p{text-wrap:balance;max-width:72cqw;margin:0 auto;font-size:3.45cqw;line-height:1.27}.key-entry-glow{z-index:1;pointer-events:none;filter:blur(1px);background:radial-gradient(#fff8e89c 0%,#f2c6ce44 42%,#0000 72%);border-radius:50%;width:24%;height:29%;animation:2.8s ease-in-out infinite key-entry-glow;position:absolute;top:57%;left:38%}.key-prologue-open{z-index:3;color:#2c361b;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.key-prologue-open:disabled{opacity:1;cursor:default}.cinematic-invitation .key-prologue-open:focus-visible{outline-offset:-7px}.key-entry-prompt{letter-spacing:.14em;text-transform:uppercase;color:#8b3d55;text-shadow:0 1px 10px #edf0d7;justify-content:center;align-items:center;gap:3cqw;width:64%;font-family:Arial,sans-serif;font-size:2.75cqw;font-weight:700;animation:2.4s ease-in-out .9s infinite key-entry-prompt;display:flex;position:absolute;bottom:4.8%;left:18%}.key-entry-prompt i{opacity:.55;background:currentColor;width:7cqw;height:1px}@keyframes key-entry-copy-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes key-entry-breathe{0%{transform:scale(1)}to{transform:scale(1.018)}}@keyframes key-entry-glow{0%,to{opacity:.25;transform:scale(.94)}50%{opacity:.72;transform:scale(1.08)}}@keyframes key-entry-prompt{0%,to{opacity:.65;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}.cinema-status{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.cinematic-portal .sound-toggle{min-height:44px;font-size:14px;top:14px;bottom:auto;right:14px}.cinematic-portal.phase-unlocking .sound-toggle{top:14px;bottom:auto}.cinema-return,.cinema-skip,.cinema-read{z-index:14;cursor:pointer;color:#34431f;background:#fffaf5f2;border:1px solid #fffaf580;border-radius:30px;justify-content:center;align-items:center;gap:16px;min-height:44px;padding:12px 19px;font-size:14px;display:flex;position:absolute;font-family:Arial,sans-serif!important}.cinema-return{white-space:nowrap;background:0 0;border-color:#0000;gap:8px;padding:6px 8px;font-size:12px;bottom:0;left:50%;transform:translate(-50%)}.cinematic-portal.phase-closed .sound-toggle{visibility:hidden;pointer-events:none}.cinema-skip{background:#fffaf5d9;padding:10px 14px;bottom:16px;right:16px}.cinema-read{white-space:nowrap;animation:.8s .4s both cinema-appear;bottom:8%;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #34431f26}.cinema-title{z-index:4;text-align:center;color:#354826;text-shadow:0 1px 14px #f4dfd4;width:60%;animation:1s both cinema-appear;position:absolute;top:19%;left:20%}.cinema-title-logo{object-fit:contain;filter:drop-shadow(0 5px 10px #71314224);width:min(13.5cqw,68px);height:min(16cqw,82px);margin:0;animation:1.15s both cinema-logo-arrive;display:block;position:absolute;top:clamp(-82px,-15cqw,-58px);left:50%;transform:translate(-50%)}.cinema-title-copy{margin-top:min(23cqw,116px);animation:1s .12s both cinema-copy-arrive}.cinema-title p{text-wrap:balance;max-width:100%;margin:0 auto min(1.8cqw,9px);font-family:Snell Roundhand,Apple Chancery,cursive;font-size:min(4.7cqw,24px);line-height:1.08}.cinema-title p span{display:block}.cinema-title-copy>span{margin-bottom:min(1.8cqw,9px);font-family:Baskerville,Georgia,serif;font-size:min(3.5cqw,18px);font-style:italic;line-height:1.15;display:block}.cinema-title-copy>strong{letter-spacing:.065em;text-transform:uppercase;text-wrap:balance;font-family:Baskerville,Georgia,serif;font-size:min(2.8cqw,14px);font-weight:600;line-height:1.2;display:block}.cinema-title-copy>strong i{margin:min(.7cqw,4px) 0;font-family:Snell Roundhand,Apple Chancery,cursive;font-size:1.15em;font-style:normal;font-weight:400;line-height:1;display:block}.invitation-letter{text-align:center;color:#34431f;background:linear-gradient(150deg,#fffaf5df,#f7e9e4dc),url(/draped-scene-empty.jpg) top/cover no-repeat;padding:38px clamp(22px,6vw,54px) 42px;scroll-margin-top:12px;animation:.9s both cinema-appear;position:relative}.invitation-letter:before{content:"";pointer-events:none;border:1px solid #b65b6b33;position:absolute;inset:14px}.invitation-letter p{margin:12px 0;font-size:18px;line-height:1.55}.invitation-letter .letter-monogram{object-fit:contain;width:80px;height:94px;margin:0 auto 12px;display:block}.invitation-letter .edition-mark,.invitation-letter .invitee-note{letter-spacing:.06em;font-family:Arial,sans-serif;font-size:13px}.invitation-letter .edition-mark{color:#85434f;text-transform:uppercase}.invitation-letter .families{margin-top:28px}.invitation-letter h1{flex-direction:column;margin:28px 0;font-family:Snell Roundhand,Apple Chancery,cursive;font-size:clamp(40px,9vw,54px);font-weight:400;line-height:1.18;display:flex}.invitation-letter h1 i{font-size:.6em}.invitation-letter .wedding-date{font-size:23px}.invitation-letter .venue-copy{font-size:17px}.invitation-letter .reveal-cta{letter-spacing:0;text-transform:none;width:100%;min-width:0;max-width:340px;min-height:48px;font-family:Arial,sans-serif;font-size:14px}.invitation-letter .story-replay{letter-spacing:0;text-transform:none;min-height:44px;margin:20px auto 0;font-family:Arial,sans-serif;font-size:14px;display:block}.cinematic-invitation button:focus-visible,.invitation-letter:focus-visible{outline-offset:4px;outline:3px solid #85434f}@media (max-width:600px){.screen-invitation:has(.cinematic-portal.phase-closed){background:#f7d9d5}.screen-invitation:has(.cinematic-portal.phase-unlocking){background:#d1d4b1}}@keyframes cinema-appear{0%{opacity:0}to{opacity:1}}@keyframes cinema-logo-arrive{0%{opacity:0;transform:translate(-50%,-7px)scale(.94)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes cinema-copy-arrive{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.cinematic-invitation *,.cinematic-invitation :before{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media (max-width:640px) and (orientation:portrait){.screen-invitation:has(.cinematic-portal.phase-closed){background:#d1d4b1}.cinematic-portal.phase-closed{min-height:100svh}}.cinema-title{width:46%;top:11.5%;left:27%}.cinema-title-logo{width:18cqw;height:21cqw;margin:0 auto 2cqw;animation:1s both cinema-appear;position:static;transform:none}.cinema-title-copy{margin-top:3cqw}.cinema-title p{margin-bottom:1.1cqw;font-size:4.1cqw}.cinema-title-copy>span{margin-bottom:1.2cqw;font-size:3.3cqw}.cinema-title-copy>strong{font-size:3cqw}.cinema-title-copy>strong span{display:block}.cinema-title-copy>strong i{margin:.35cqw 0;display:block}.key-entry-copy p{max-width:78cqw;font-size:3.6cqw;line-height:1.35}.key-entry-glow{width:58%;height:13%;top:57%;left:21%}
