#cover,.cf{display:flex;overflow:visible}.tl,.tr{top:0}.bl,.br{bottom:0}.br,.tr{right:0}#cover,.c-mono,.cf{overflow:visible}.c-eyebrow,.c-names{text-transform:uppercase}#bg-canvas,#cover,#fx-canvas,#invitation{position:fixed}#fx-canvas,#invitation,.cf::after,.cf::before{pointer-events:none}.cf,.inv-card{text-align:center}.ic.tr,.tr{transform:scaleX(-1)}.ic.bl,.ic.tl{left:clamp(12px,2.5vw,18px)}.ic.br,.ic.tr{right:clamp(12px,2.5vw,18px)}.c-date,.l-address,.l-day,.l-request,.l-together{font-style:italic}.back-btn,.open-btn{cursor:pointer;opacity:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}*,::after,::before{box-sizing:border-box;margin:0;padding:0}:root{--navy:#050d1a;--sapphire:#1a4a9e;--blue-mid:#2a6dd9;--silver:#c8d8f0;--silver-dim:#7a96c0;--accent:#4e9eff;--card-bg:#f0f6ff;--card-text:#0a1a38;--card-sub:#2a4a7a;--card-line:rgba(30, 80, 180, 0.3);--fs-xs:clamp(9px, 2vw, 11px);--fs-sm:clamp(11px, 2.5vw, 16px);--fs-base:clamp(13px, 3vw, 15px);--fs-md:clamp(14px, 3.5vw, 17px);--fs-lg:clamp(16px, 4vw, 20px);--fs-xl:clamp(22px, 5.5vw, 28px);--fs-name:clamp(38px, 9vw, 62px);--fs-mono:clamp(72px, 16vw, 128px)}body,html{width:100%;height:100%;overflow:hidden}body{font-family:"Cormorant Garamond",serif;background:var(--navy);-webkit-font-smoothing:antialiased}#bg-canvas{inset:0;z-index:0}#fx-canvas{inset:0;z-index:25}#cover{inset:0;z-index:10;align-items:center;justify-content:center;padding:16px}.cf{position:relative;flex-direction:column;align-items:center;justify-content:center;padding:clamp(32px,6vw,64px) clamp(28px,7vw,100px) clamp(28px,5vw,58px);width:100%;max-width:680px}.cf::after,.cf::before,.cv-c,.cv-rule{position:absolute}.b-ring,.c-div{align-items:center;display:flex}.cf::before{content:"";inset:0;border:1px solid rgba(74,158,255,.2)}.cf::after{content:"";inset:10px;border:1px solid rgba(74,158,255,.08)}.cv-c{width:clamp(36px,6vw,58px);height:clamp(36px,6vw,58px);opacity:0;animation:1.4s .4s forwards fi}.tl{left:0}.bl{left:0;transform:scaleY(-1)}.br{transform:scale(-1,-1)}.cv-rule{left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(74,158,255,.25),rgba(74,158,255,.5),rgba(74,158,255,.25),transparent);opacity:0;animation:1.2s .6s forwards fi}.cv-rule.top{top:clamp(16px,3vw,28px)}.ic.tl,.ic.tr{top:clamp(12px,2.5vw,18px)}.cv-rule.bot{bottom:clamp(16px,3vw,28px)}.ic.bl,.ic.br{bottom:clamp(12px,2.5vw,18px)}.c-eyebrow{font-family:Cinzel,serif;font-size:var(--fs-xs);letter-spacing:clamp(4px, 1.5vw, 8px);color:var(--silver-dim);margin-bottom:clamp(12px,3vw,20px);opacity:0;animation:1s .6s forwards fu}.c-mono{font-family:"Great Vibes",cursive;font-size:var(--fs-mono);line-height:1.25;padding:.1em .15em;margin-bottom:4px;color:transparent;background:linear-gradient(155deg,#c8d8f0 0,#4e9eff 35%,#a8c4ff 55%,#2a6dd9 75%,#c8d8f0 100%);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 0 50px rgba(78, 158, 255, .35)) drop-shadow(0 0 18px rgba(78, 158, 255, .2));opacity:0;animation:1s .9s forwards fu}.c-div{gap:12px;margin:clamp(10px,2.5vw,14px) 0;opacity:0;animation:1s 1.05s forwards fu}.c-dl{width:clamp(40px,7vw,65px);height:1px;background:linear-gradient(90deg,transparent,var(--accent))}.c-dl.r{background:linear-gradient(90deg,var(--accent),transparent)}.c-dd{width:6px;height:6px;border:1px solid var(--accent);transform:rotate(45deg);flex-shrink:0}.c-names{font-family:Cinzel,serif;font-size:var(--fs-xs);letter-spacing:clamp(3px, 1.2vw, 7px);color:var(--silver);margin-bottom:4px;opacity:0;animation:1s 1.15s forwards fu}.c-date{font-family:"Cormorant Garamond",serif;font-size:var(--fs-sm);color:var(--silver-dim);letter-spacing:2px;margin-bottom:clamp(32px,6vw,54px);opacity:0;animation:1s 1.25s forwards fu}.open-btn{background:0 0;border:none;outline:0;display:flex;flex-direction:column;align-items:center;gap:10px;animation:1s 1.5s forwards fu}.b-ring{position:relative;width:clamp(72px,14vw,96px);height:clamp(72px,14vw,96px);justify-content:center}.b-ring-svg,.b-ring-svg2{position:absolute;width:100%;height:100%;inset:0}.b-ring-svg{animation:16s linear infinite spin}.b-ring-svg2{animation:9s linear infinite reverse spin}.b-core{width:clamp(48px,9vw,64px);height:clamp(48px,9vw,64px);border-radius:50%;background:radial-gradient(circle at 38% 38%,rgba(78,158,255,.18),rgba(26,74,158,.06));border:1px solid rgba(78,158,255,.55);display:flex;align-items:center;justify-content:center;color:var(--silver);font-size:clamp(16px, 3.5vw, 22px);transition:.45s;box-shadow:0 0 28px rgba(78,158,255,.12),inset 0 0 20px rgba(78,158,255,.06)}.b-label,.l-eyebrow{font-family:Cinzel,serif;font-size:var(--fs-xs);text-transform:uppercase}.open-btn:active .b-core,.open-btn:hover .b-core{background:radial-gradient(circle at 38% 38%,rgba(78,158,255,.28),rgba(26,74,158,.12));box-shadow:0 0 60px rgba(78,158,255,.4),inset 0 0 24px rgba(78,158,255,.15);border-color:var(--accent);color:#fff;transform:scale(1.08)}.b-label{letter-spacing:clamp(3px, 1vw, 5px);color:var(--silver-dim)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fu{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fi{to{opacity:1}}#invitation{inset:0;z-index:15;display:flex;align-items:flex-start;justify-content:center;opacity:0;overflow-y:auto;overflow-x:hidden;padding:clamp(20px,5vw,40px) clamp(12px,4vw,20px);-webkit-overflow-scrolling:touch;transition:opacity 1s cubic-bezier(.22, 1, .36, 1)}@media (min-height:600px){#invitation{align-items:center}}#invitation.visible,.back-btn.show{opacity:1;pointer-events:all}.inv-card::after,.inv-card::before{pointer-events:none;position:absolute}.inv-card{position:relative;width:100%;max-width:510px;background:var(--card-bg);padding:clamp(28px,6vw,52px) clamp(22px,6vw,52px) clamp(24px,5vw,44px);box-shadow:0 30px 80px rgba(0,10,40,.9),0 0 0 1px rgba(78,158,255,.12),0 0 60px rgba(78,158,255,.05);opacity:0;transform:scale(.88) translateY(22px);transition:opacity .95s cubic-bezier(.22, 1, .36, 1) .2s,transform .95s cubic-bezier(.22, 1, .36, 1) .2s;margin:auto}#invitation.visible .inv-card{opacity:1;transform:scale(1) translateY(0)}.inv-card::before{content:"";inset:8px;border:1px solid var(--card-line)}.inv-card::after{content:"";inset:14px;border:1px solid rgba(30,80,180,.12)}.ic{position:absolute;width:clamp(30px,5vw,44px);height:clamp(30px,5vw,44px)}.ic.bl{transform:scaleY(-1)}.ic.br{transform:scale(-1,-1)}.l-eyebrow{letter-spacing:clamp(3px, 1vw, 6px);color:var(--sapphire);margin-bottom:8px}.l-div{width:clamp(70px,20vw,110px);height:1px;background:linear-gradient(90deg,transparent,var(--sapphire),transparent);margin:8px auto}.l-div-sm{width:clamp(36px,10vw,52px);height:1px;background:linear-gradient(90deg,transparent,var(--blue-mid),transparent);margin:9px auto}.l-together{font-family:"Cormorant Garamond",serif;font-size:var(--fs-sm);color:var(--card-sub);letter-spacing:2px;margin-bottom:10px}.l-names{font-family:"Great Vibes",cursive;font-size:var(--fs-name);color:var(--card-text);line-height:1.15}.l-amp{font-family:Cinzel,serif;color:var(--sapphire);font-size:var(--fs-xl);display:block;margin:2px 0}.l-request{font-family:"Cormorant Garamond",serif;font-size:var(--fs-base);color:var(--card-sub);line-height:1.8;margin:clamp(10px,2.5vw,16px) 0 8px;padding:0 8px}.l-date{font-family:Cinzel,serif;font-size:var(--fs-md);color:var(--card-text);letter-spacing:clamp(2px, .8vw, 4px);margin-top:4px}.l-day,.l-time{font-family:"Cormorant Garamond",serif;margin-top:3px}.l-day{font-size:var(--fs-sm);color:var(--sapphire);letter-spacing:2px}.l-time{font-size:var(--fs-base);letter-spacing:clamp(1px, .5vw, 3px);color:var(--card-sub)}.l-address,.l-venue{font-size:var(--fs-sm)}.l-venue{font-family:Cinzel,serif;color:var(--card-text);letter-spacing:clamp(1px, .5vw, 2px);margin-top:12px}.l-address{font-family:"Cormorant Garamond",serif;color:var(--card-sub);margin-top:4px;line-height:1.7}.l-footer{margin-top:clamp(12px,3vw,20px);font-family:"Great Vibes",cursive;font-size:var(--fs-xl);color:var(--sapphire)}.back-btn{position:fixed;bottom:clamp(16px,4vw,28px);left:50%;transform:translateX(-50%);background:0 0;border:1px solid rgba(78,158,255,.3);color:rgba(78,158,255,.65);padding:clamp(6px,1.5vw,8px) clamp(18px,4vw,28px);font-family:Cinzel,serif;font-size:var(--fs-xs);letter-spacing:clamp(2px, .8vw, 4px);text-transform:uppercase;transition:.3s;z-index:30;pointer-events:none;white-space:nowrap}.back-btn:active,.back-btn:hover{border-color:var(--accent);color:var(--accent);background:rgba(78,158,255,.06)}@media (max-width:400px){.cf{padding:28px 20px 26px}.cf::after{inset:8px}}@media (max-height:500px) and (orientation:landscape){.c-mono{font-size:clamp(48px, 12vw, 80px)}.c-date{margin-bottom:20px}.cf{padding:24px 60px 22px}}