:root{--wine-deep:#2A0611;--wine:#4A0D22;--gold:#B8912A;--gold-lit:#C9A227;--gold-pale:#EBD696;--gold-deep:#5A3D08;--ivory:#FBF6EE;--rose-ink:#7E2F45;--taupe:#7A5238;--umber:#6B4A38;--ink:#4A0D22;--serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;--script:"Pinyon Script","Snell Roundhand",cursive;--util:"Jost","Avenir Next",system-ui,-apple-system,sans-serif;--ease:cubic-bezier(.22,.61,.36,1);--door:cubic-bezier(.66,0,.16,1)}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--ivory);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden;height:100dvh}:focus-visible{outline:2px solid var(--gold-lit);outline-offset:4px;border-radius:2px}#silk,#dust{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;display:block}#silk{z-index:0}#dust{z-index:1}#cover{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;perspective:2200px;background:var(--wine-deep);transition:opacity .7s ease .95s,visibility 0s linear 1.65s}.leaf{position:absolute;top:0;bottom:0;width:50.4%;background-color:#3b0a1b;background-image:radial-gradient(150% 62% at 50% 26%,#7e1a40db,#4a0d2285 44%,#1a040ef0),linear-gradient(180deg,#00000075,#0000 28%,#0000 70%,#0000008f);transition:transform 1.45s var(--door);will-change:transform}.leaf:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.5;mix-blend-mode:overlay;background-image:var(--velvet);background-repeat:repeat;background-size:180px 180px}.leaf-l{left:0;transform-origin:0% 50%}.leaf-r{right:0;transform-origin:100% 50%}.leaf .shade{position:absolute;top:0;bottom:0;width:38%}.leaf-l .shade{right:0;background:linear-gradient(90deg,#0000,#00000080)}.leaf-r .shade{left:0;background:linear-gradient(270deg,#0000,#00000080)}.ribbon{position:absolute;top:0;bottom:0;width:22px;background-image:repeating-linear-gradient(90deg,#ffffff0e 0,#ffffff0e 1px,#0000000f 1px,#0000000f 2px),linear-gradient(90deg,#3e3208,#6e5c14 16%,#a8942e 42%,#d6c583 54%,#98862a,#57470e 90%,#372c06)}.leaf-l .ribbon{right:0}.leaf-r .ribbon{left:0}#seam{position:absolute;left:50%;top:0;bottom:0;width:10px;transform:translate(-50%) scaleX(0);opacity:0;background:linear-gradient(180deg,#fff7d600,#fffdf4 26%,#fff,#fffdf4 74%,#fff7d600);filter:blur(2px);transition:opacity .35s ease,transform .9s var(--ease)}#sealBtn{position:absolute;left:50%;top:50%;width:clamp(148px,38vw,208px);aspect-ratio:1;transform:translate(-50%,-50%);background:none;border:0;padding:0;cursor:pointer;transition:transform .5s var(--ease),opacity .55s ease,filter .55s ease;animation:breathe 4.2s ease-in-out infinite}#sealBtn:active{transform:translate(-50%,-50%) scale(.965)}#sealBtn svg{width:100%;height:100%;overflow:visible;display:block}@keyframes breathe{0%,to{filter:drop-shadow(0 8px 26px rgba(0,0,0,.5))}50%{filter:drop-shadow(0 8px 34px rgba(201,162,39,.34))}}#hint{position:absolute;left:0;right:0;top:calc(50% + clamp(102px,23vw,140px));text-align:center;font-family:var(--util);font-weight:300;font-size:clamp(12px,3.1vw,14px);letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;color:#fff1d6e6;animation:pulse 3.4s ease-in-out infinite;transition:opacity .3s ease}@keyframes pulse{0%,to{opacity:.62}50%{opacity:1}}body.opened #sealBtn{opacity:0;transform:translate(-50%,-50%) scale(1.4);filter:blur(16px);animation:none;transition:transform .8s var(--ease),opacity .7s ease,filter .8s ease}body.opened #hint{opacity:0}body.opened #seam{opacity:1;transform:translate(-50%) scaleX(14);transition:opacity .3s ease .18s,transform 1.2s var(--ease) .3s}body.opened .leaf-l{transform:translate(-101%) rotateY(20deg)}body.opened .leaf-r{transform:translate(101%) rotateY(-20deg)}body.opened #cover{opacity:0;visibility:hidden}#book{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;opacity:0;transition:opacity .9s ease}body.opened #book{opacity:1;transition:opacity 1s ease .5s}:root{--foot:clamp(150px,23vh,196px)}.page{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow-y:auto;overscroll-behavior:contain;padding:clamp(52px,9vh,86px) 0 var(--foot);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(26px) scale(.986);transition:opacity .6s ease,transform .6s var(--ease),visibility 0s linear .6s}.page.active{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition:opacity .85s ease .12s,transform .95s var(--ease) .12s,visibility 0s}.page.leaving{opacity:0;transform:translateY(-22px) scale(.986)}.wrap{width:min(600px,88vw);margin:auto;text-align:center}.stack{display:flex;flex-direction:column;align-items:center;gap:var(--g,26px)}.r{opacity:0;transform:translateY(20px);transition:opacity .9s var(--ease),transform 1s var(--ease)}.r.in{opacity:1;transform:none}.clip{overflow:hidden;display:block}.clip>span{display:block;transform:translateY(112%);transition:transform 1.1s var(--ease)}.clip.in>span{transform:none}.eyebrow{font-family:var(--util);font-weight:400;font-size:clamp(11.5px,3vw,14px);letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;color:var(--taupe)}.lead{font-style:italic;font-weight:400;font-size:clamp(20px,5vw,26px);color:var(--umber);letter-spacing:.015em}.name-1{font-weight:400;line-height:1.08;letter-spacing:.004em;font-size:clamp(35px,8.9vw,55px);color:var(--wine);text-wrap:balance}.name-2{font-family:var(--script);line-height:1.2;font-size:clamp(58px,15.8vw,98px);padding-block:.06em .16em;background-image:linear-gradient(100deg,#4a3206,#66450a 7%,#8a6614,#a97f1c 25%,#c9a227 33%,#a67c1a 42%,#74510e 52%,#9a7216,#be9324 74%,#7a5610 86%,#463006);background-size:190% 100%;background-position-x:38%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 1px rgba(52,33,3,.85)) drop-shadow(0 1px 0 rgba(52,33,3,.5)) drop-shadow(0 2px 5px rgba(90,61,8,.24))}.name-3{font-weight:500;text-transform:uppercase;font-size:clamp(15px,3.9vw,24px);letter-spacing:.3em;text-indent:.3em;color:#682034}.meaning{font-style:italic;font-weight:400;font-size:clamp(16px,4vw,20px);line-height:1.5;color:var(--umber);text-wrap:balance}.meaning b{font-style:normal;font-weight:500;color:var(--wine)}.rule{display:flex;align-items:center;justify-content:center;gap:13px}.rule i{display:block;width:clamp(52px,14vw,96px);height:1px;background:linear-gradient(90deg,#b8912a00,#b8912ae6)}.rule i:last-child{background:linear-gradient(270deg,#b8912a00,#b8912ae6)}.rule b{display:block;width:6px;height:6px;rotate:45deg;background:var(--gold)}#wreath{width:clamp(128px,32vw,178px);aspect-ratio:1}#wreath svg{width:100%;height:100%;overflow:visible;display:block}.card{position:relative;padding:clamp(38px,8vw,58px) clamp(24px,6vw,44px);background:linear-gradient(180deg,#ffffff9e,#fffcf657);border:1px solid rgba(184,145,42,.5)}.card:before{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid rgba(184,145,42,.24);pointer-events:none}.corner{position:absolute;width:30px;height:30px;border:0 solid var(--gold)}.corner.tl{left:-1px;top:-1px;border-left-width:2px;border-top-width:2px}.corner.tr{right:-1px;top:-1px;border-right-width:2px;border-top-width:2px}.corner.bl{left:-1px;bottom:-1px;border-left-width:2px;border-bottom-width:2px}.corner.br{right:-1px;bottom:-1px;border-right-width:2px;border-bottom-width:2px}.row dt{font-family:var(--util);font-weight:500;font-size:clamp(11.5px,2.9vw,13px);letter-spacing:.32em;text-indent:.32em;text-transform:uppercase;color:var(--taupe);margin-bottom:.8em}.row dd{font-size:clamp(25px,6.3vw,35px);line-height:1.16;color:var(--wine);letter-spacing:.01em;font-weight:400}.row dd sup{font-size:.5em;vertical-align:super}.row dd small{display:block;margin-top:.34em;font-style:italic;font-weight:400;font-size:clamp(16px,3.9vw,21px);color:var(--rose-ink);letter-spacing:.03em}.divider{display:flex;align-items:center;justify-content:center;gap:11px;margin-block:clamp(22px,4.6vw,32px)}.divider i{display:block;width:clamp(48px,13vw,92px);height:1px;background:linear-gradient(90deg,#b8912a00,#b8912a99)}.divider i:last-child{background:linear-gradient(270deg,#b8912a00,#b8912a99)}.divider b{display:block;width:5px;height:5px;rotate:45deg;background:var(--gold)}.acts{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--util);font-weight:500;font-size:clamp(12px,3vw,13.5px);letter-spacing:.16em;text-transform:uppercase;padding:.92em 1.55em;color:var(--wine);text-decoration:none;border:1px solid rgba(184,145,42,.75);background:#fff9;cursor:pointer;transition:background .3s ease,border-color .3s ease,color .3s ease,transform .3s var(--ease)}.btn svg{width:15px;height:15px;flex:none}.btn:active{transform:translateY(1px)}#scrim{position:fixed;left:0;right:0;bottom:0;height:var(--foot);z-index:3;pointer-events:none;opacity:0;transition:opacity .9s ease .5s;background:linear-gradient(180deg,#f7eee300,#f6ece0b8 42%,#f4e8dbf2 78%,#f3e6d9)}body.opened #scrim{opacity:1}#turn{position:fixed;left:50%;bottom:clamp(40px,7.4vh,60px);transform:translate(-50%);z-index:12;display:flex;flex-direction:column;align-items:center;gap:11px;background:none;border:0;padding:6px 10px;cursor:pointer;color:var(--taupe);opacity:0;pointer-events:none;transition:opacity .8s ease .55s}body.opened #turn{opacity:1;pointer-events:auto}#turn .ring{position:relative;display:grid;place-items:center;width:clamp(54px,13vw,64px);aspect-ratio:1;border-radius:50%;border:1px solid rgba(184,145,42,.75);background:#ffffff8c;color:var(--wine);transition:background .35s ease,color .35s ease,transform .35s var(--ease)}#turn .ring:after{content:"";position:absolute;top:-7px;right:-7px;bottom:-7px;left:-7px;border-radius:50%;border:1px solid rgba(184,145,42,.4);animation:halo 3.2s ease-out infinite}@keyframes halo{0%{transform:scale(.9);opacity:0}35%{opacity:.85}to{transform:scale(1.22);opacity:0}}#turn .ring svg{width:24px;height:24px}#turn:active .ring{transform:scale(.94)}#turn .lbl{font-family:var(--util);font-weight:500;font-size:clamp(11px,2.8vw,12.5px);letter-spacing:.3em;text-indent:.3em;text-transform:uppercase}#back{position:fixed;z-index:20;left:calc(10px + env(safe-area-inset-left));top:calc(12px + env(safe-area-inset-top));width:44px;height:44px;display:grid;place-items:center;background:none;border:0;cursor:pointer;color:var(--taupe);opacity:0;pointer-events:none;transition:opacity .4s ease,color .3s ease}#back.on{opacity:1;pointer-events:auto}#back svg{width:20px;height:20px}#dots{position:fixed;z-index:20;left:0;right:0;bottom:calc(10px + env(safe-area-inset-bottom));display:flex;justify-content:center;gap:9px;opacity:0;transition:opacity .5s ease}body.opened #dots{opacity:1}#dots button{width:7px;height:7px;rotate:45deg;padding:0;cursor:pointer;border:1px solid rgba(184,145,42,.8);background:none;transition:background .35s ease,transform .35s var(--ease)}#dots button[aria-current=true]{background:var(--gold);transform:rotate(0) scale(1.15)}.form{display:flex;flex-direction:column;gap:15px;width:100%;text-align:left}.field{display:flex;flex-direction:column;gap:7px}.field label{font-family:var(--util);font-weight:500;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--taupe)}.field input,.field select,.field textarea{font-family:var(--serif);font-size:20px;color:var(--wine);background:#ffffffbf;border:1px solid rgba(184,145,42,.55);padding:.68em .8em;width:100%;transition:border-color .3s ease,background .3s ease}.field textarea{resize:vertical;min-height:76px;font-size:18px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold-lit);background:#fff;outline:none}.field select{-webkit-appearance:none;-moz-appearance:none;appearance:none}#rsvpDone{display:none;flex-direction:column;align-items:center;gap:13px}#rsvpDone p{font-style:italic;font-weight:400;font-size:clamp(20px,4.8vw,25px);color:var(--rose-ink)}#tally{font-family:var(--util);font-weight:500;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--taupe)}.formNote{font-style:italic;font-size:17px;color:var(--rose-ink);text-align:center}.note{font-style:italic;font-weight:400;font-size:clamp(20px,4.9vw,26px);line-height:1.55;color:var(--umber);text-wrap:balance}.love{font-family:var(--script);font-size:clamp(42px,10.5vw,64px);color:var(--rose-ink);line-height:1.1;filter:drop-shadow(0 1px 4px rgba(126,47,69,.18))}.fam{font-weight:500;text-transform:uppercase;font-size:clamp(16px,3.9vw,23px);letter-spacing:.28em;text-indent:.28em;color:var(--wine)}.stamp{width:clamp(104px,26vw,134px);aspect-ratio:1}.stamp svg{width:100%;height:100%;overflow:visible}#mute{position:fixed;z-index:20;right:calc(12px + env(safe-area-inset-right));top:calc(12px + env(safe-area-inset-top));width:44px;height:44px;border-radius:50%;display:none;place-items:center;border:1px solid rgba(184,145,42,.55);background:#fbf6eee6;cursor:pointer;color:var(--wine);transition:transform .3s var(--ease)}body.opened #mute{display:grid}#mute svg{width:19px;height:19px}@media (hover:hover) and (pointer:fine){#sealBtn:hover{transform:translate(-50%,-50%) scale(1.045)}.btn:hover{background:var(--wine);border-color:var(--wine);color:var(--gold-pale);transform:translateY(-2px)}#turn:hover .ring{background:var(--wine);color:var(--gold-pale);transform:translateY(-3px)}#mute:hover{transform:scale(1.07)}#back:hover{color:var(--wine)}#dots button:hover{background:#b8912a80}}@media (max-height:730px){:root{--foot:clamp(120px,19vh,142px)}.page{padding-top:clamp(34px,5.5vh,52px)}.wrap{width:min(600px,91vw)}.stack{gap:clamp(12px,2.6vw,18px)}#wreath{width:clamp(92px,22vw,116px)}.lead{font-size:clamp(17px,4.4vw,21px)}.name-1{font-size:clamp(30px,7.8vw,42px)}.name-2{font-size:clamp(48px,13.5vw,72px)}.name-3{font-size:clamp(13px,3.4vw,18px)}.card{padding:clamp(26px,5.6vw,38px) clamp(18px,5vw,32px)}.divider{margin-block:clamp(14px,3.2vw,20px)}.row dt{font-size:clamp(10.5px,2.7vw,12px);margin-bottom:.55em}.row dd{font-size:clamp(21px,5.4vw,27px)}.row dd small{font-size:clamp(14px,3.4vw,17px);margin-top:.26em}.note{font-size:clamp(17px,4.3vw,21px)}.love{font-size:clamp(34px,8.6vw,46px)}.fam{font-size:clamp(14px,3.4vw,18px)}.stamp{width:clamp(76px,19vw,96px)}.form{gap:10px}.field{gap:5px}.field label{font-size:11px}.field input,.field select{font-size:17px;padding:.52em .7em}.field textarea{font-size:16px;min-height:52px}.btn{padding:.72em 1.25em}#turn{bottom:clamp(26px,4.6vh,38px);gap:8px}#turn .ring{width:clamp(44px,11vw,52px)}#turn .ring svg{width:20px;height:20px}#turn .lbl{font-size:clamp(10px,2.6vw,11.5px)}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.2s!important}.r,.clip>span{opacity:1;transform:none}}
