:root{color:#fffaf0;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#120817;font-family:Inter,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;min-height:100%;margin:0}body{overflow:hidden}button{font:inherit}h1,p{margin:0}.wedding-invite{--rose:#f4a7bd;--petal:#ffe9ee;--gold:#f3c76f;--deep:#120817;--ink:#2f1621;--ivory:#fffaf0;--glow-one:24% 20%;--glow-two:78% 70%;background:radial-gradient(circle at 50% 48%,#fff4cc1c,#0000 31rem),linear-gradient(145deg,#1b0c20 0%,#120817 46%,#271022 100%);place-items:center;min-height:100svh;padding:clamp(18px,4vw,52px);display:grid;position:relative;overflow:hidden}.aurora,.star-veil,.petal-field{pointer-events:none;position:absolute;inset:0}.aurora{background:radial-gradient(circle at var(--glow-one), #f4a7bd5c, transparent 22rem), radial-gradient(circle at var(--glow-two), #f3c76f47, transparent 24rem), radial-gradient(circle at 54% 52%, #8e56ff33, transparent 26rem);filter:blur(2px);animation:11s ease-in-out infinite alternate auroraDrift}.is-details{--glow-one:42% 18%;--glow-two:68% 72%}.is-rsvp{--glow-one:56% 24%;--glow-two:58% 76%}.star-veil{opacity:.58;background-image:radial-gradient(circle,#fffaf0cc 0 1px,#0000 1.4px),radial-gradient(circle,#f3c76fa8 0 1px,#0000 1.5px);background-position:0 0,38px 64px;background-size:124px 124px,182px 182px;-webkit-mask-image:radial-gradient(circle,#000,#0000 74%);mask-image:radial-gradient(circle,#000,#0000 74%)}.petal-field span{left:var(--left);opacity:.76;filter:blur(.1px);width:clamp(8px,1.1vw,15px);height:clamp(15px,2vw,28px);transform:scale(var(--scale));animation:petalFall var(--duration) linear var(--delay) infinite;background:linear-gradient(145deg,#ffe9eefa,#f4a7bdb8);border-radius:90% 10%;position:absolute;top:-8vh}.invitation-stage{z-index:2;perspective:1100px;grid-template-columns:minmax(0,.92fr) minmax(320px,1.08fr);align-items:center;gap:clamp(22px,5vw,76px);width:min(100%,1120px);min-height:min(82svh,720px);display:grid;position:relative}.copy-side{align-content:center;justify-items:start;gap:clamp(18px,2.7vw,28px);min-width:0;display:grid}.invite-copy{max-width:34rem}.kicker{color:#ffe7b8;letter-spacing:.04em;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#2a1630;border:1px solid #fffaf047;border-radius:999px;align-items:center;gap:9px;min-height:34px;padding:0 14px;font-size:clamp(.78rem,1.4vw,.93rem);font-weight:800;display:inline-flex}.invite-copy h1{max-width:12ch;color:var(--ivory);letter-spacing:0;text-wrap:balance;text-shadow:0 18px 70px #0000006b;margin-top:clamp(16px,2.8vw,26px);font-family:Georgia,Times New Roman,serif;font-size:clamp(3.35rem,7.5vw,6.8rem);font-weight:500;line-height:.95}.invite-copy .lead{color:#fffaf0db;max-width:35rem;margin-top:clamp(14px,2vw,20px);font-size:clamp(1.04rem,2vw,1.26rem);line-height:1.64}.moment-switch{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#200d22b8;border:1px solid #fffaf033;border-radius:999px;grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,430px);padding:5px;display:inline-grid;box-shadow:0 20px 70px #00000042}.moment-switch button{color:#fffaf0c2;cursor:pointer;background:0 0;border:0;border-radius:999px;min-height:42px;font-size:clamp(.84rem,1.4vw,.96rem);font-weight:850;transition:color .18s,background .18s,transform .18s}.moment-switch button:hover,.moment-switch button:focus-visible{color:#fffaf0;outline-offset:3px;outline:2px solid #f3c76f85}.moment-switch button.active{color:#35171f;background:linear-gradient(135deg,#fff2bd,#f3c76f);box-shadow:0 8px 22px #f3c76f42}.detail-plaque{gap:10px;width:min(100%,460px);display:grid}.detail-plaque div{color:#fffaf0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#2a1630;border:1px solid #fffaf033;border-radius:18px;grid-template-columns:22px minmax(64px,.62fr) 1fr;align-items:center;gap:10px;min-height:46px;padding:0 16px;display:grid}.detail-plaque span{color:#ffe7b8;text-transform:uppercase;font-size:.84rem;font-weight:850}.detail-plaque strong{color:var(--ivory);font-size:.98rem;font-weight:750}.rsvp-seal{color:#2f1621;cursor:pointer;background:linear-gradient(135deg,#fff8df,#f3c76f);border:0;border-radius:999px;justify-content:center;align-items:center;gap:12px;min-height:54px;padding:0 22px 0 26px;font-weight:900;display:inline-flex;position:relative;box-shadow:0 20px 60px #f3c76f3d,inset 0 0 0 1px #2f162114}.rsvp-seal:focus-visible{outline-offset:4px;outline:3px solid #fffaf0c2}.rsvp-seal i{aspect-ratio:1;color:#fffaf0;background:#6e2035;border-radius:999px;place-items:center;width:34px;font-style:normal;animation:2.4s ease-in-out infinite sealPulse;display:grid}.object-side{place-items:center;min-width:0;display:grid}.crystal-scene{aspect-ratio:1/1.08;width:min(58vw,520px);min-width:320px;transform-style:preserve-3d;filter:drop-shadow(0 36px 90px #00000075);place-items:center;display:grid;position:relative}.crystal-scene:before{content:"";background:radial-gradient(#f3c76f42,#0000 64%);border-radius:50%;position:absolute;inset:18% 4% 2%;transform:rotateX(72deg)translateZ(-120px)}.arch{transform-style:preserve-3d;border:clamp(12px,2.2vw,22px) solid #fffaf057;border-bottom:0;border-radius:52% 52% 7% 7%/44% 44% 7% 7%;position:absolute;inset:5% 12% 10%}.arch:after{content:"";border-radius:inherit;clip-path:inset(0 0 22%);border:1px solid #f3c76f57;animation:3.8s ease-in-out infinite archShine;position:absolute;inset:-13% -13% 0}.arch-back{border-color:#f4a7bd29;transform:translateZ(-70px)rotateY(-13deg)scale(.94)}.arch-front{background:linear-gradient(#fffaf012,#fffaf003);animation:5.2s ease-in-out infinite alternate archBreathe;transform:translateZ(18px)rotateY(8deg)}.ring-system{aspect-ratio:1;width:58%;transform-style:preserve-3d;animation:7.5s ease-in-out infinite ringOrbit;position:absolute}.ring{aspect-ratio:1;background:radial-gradient(circle at 35% 24%,#ffffffe0,#0000 16%);border:clamp(9px,1.6vw,15px) solid #f3c76f;border-radius:999px;width:52%;position:absolute;top:28%;box-shadow:inset 0 0 18px #5f2c0a57,0 0 32px #f3c76f7a}.ring-left{left:2%;transform:rotateY(62deg)rotate(-18deg)translateZ(18px)}.ring-right{right:2%;transform:rotateY(-62deg)rotate(18deg)translateZ(34px)}.is-details .ring-system{animation-duration:10s}.is-rsvp .ring-left{transform:rotateY(54deg)rotate(-8deg)translate(14%)translateZ(24px)}.is-rsvp .ring-right{transform:rotateY(-54deg)rotate(8deg)translate(-14%)translateZ(42px)}.ring-shadow{filter:blur(14px);background:#00000047;border-radius:50%;height:16%;position:absolute;bottom:18%;left:18%;right:18%;transform:rotateX(72deg)}.gem{aspect-ratio:1;background:#fff8df;border-radius:999px;width:clamp(10px,1.4vw,16px);animation:3.2s ease-in-out infinite alternate gemOrbit;position:absolute;box-shadow:0 0 24px #fff8dff5}.gem-one{top:21%;left:26%}.gem-two{animation-delay:.7s;top:26%;right:24%}.gem-three{animation-delay:1.2s;bottom:24%;left:48%}.light-ribbon{transform-style:preserve-3d;position:absolute;inset:18% 9%}.light-ribbon span{width:82%;height:2px;transform:translate(-50%, -50%) rotate(var(--angle)) translateZ(72px);background:linear-gradient(90deg,#0000,#fffaf0d1,#0000);border-radius:999px;animation:4.8s linear infinite ribbonSpin;position:absolute;top:50%;left:50%}.light-ribbon span:first-child{--angle:12deg}.light-ribbon span:nth-child(2){--angle:66deg;animation-delay:-1.2s}.light-ribbon span:nth-child(3){--angle:-42deg;animation-delay:-2.1s}.crystal-scene p{color:#ffe7b8;white-space:nowrap;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#120817a8;border:1px solid #fffaf03d;border-radius:999px;justify-content:center;align-items:center;min-height:34px;padding:0 15px;font-size:clamp(.75rem,1.4vw,.9rem);font-weight:850;display:inline-flex;position:absolute;bottom:7%;left:50%;transform:translate(-50%)translateZ(90px)}@keyframes auroraDrift{0%{transform:scale(1)rotate(0)}to{transform:scale(1.08)rotate(2deg)}}@keyframes petalFall{0%{transform:translate3d(0, -8vh, 0) rotate(0deg) scale(var(--scale));opacity:0}12%{opacity:.78}to{transform:translate3d(var(--drift), 112vh, 0) rotate(280deg) scale(var(--scale));opacity:0}}@keyframes sealPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes archShine{0%,to{opacity:.28;transform:translateY(0)}50%{opacity:.74;transform:translateY(-3%)}}@keyframes archBreathe{0%{filter:drop-shadow(0 0 18px #f3c76f3d)}to{filter:drop-shadow(0 0 34px #f4a7bd61)}}@keyframes ringOrbit{0%,to{transform:rotateX(9deg)rotateY(-17deg)rotate(-3deg)}50%{transform:rotateX(-4deg)rotateY(18deg)rotate(4deg)}}@keyframes gemOrbit{0%{opacity:.68;transform:translateZ(10px)scale(.9)}to{opacity:1;transform:translateZ(54px)scale(1.12)}}@keyframes ribbonSpin{0%{opacity:.18;transform:translate(-50%, -50%) rotate(var(--angle)) rotateY(0deg) translateZ(72px)}50%{opacity:.68}to{opacity:.18;transform:translate(-50%, -50%) rotate(var(--angle)) rotateY(360deg) translateZ(72px)}}@media (width<=820px){.wedding-invite{min-height:100svh;padding:clamp(16px,5vw,28px)}.invitation-stage{grid-template-columns:1fr;align-content:center;gap:clamp(16px,4vw,26px);min-height:calc(100svh - clamp(32px,10vw,56px))}.copy-side{text-align:center;order:1;justify-items:center;gap:16px}.object-side{order:2}.invite-copy{max-width:100%}.invite-copy h1{max-width:11ch;margin-inline:auto;font-size:clamp(2.72rem,14vw,4.35rem);line-height:.98}.invite-copy .lead{max-width:33rem;margin-inline:auto;font-size:1rem;line-height:1.55}.crystal-scene{width:min(86vw,390px);min-width:0}.moment-switch{width:min(100%,380px)}.moment-switch button{min-height:40px}.detail-plaque{width:min(100%,390px)}.detail-plaque div{text-align:left;grid-template-columns:20px 72px 1fr;padding:0 12px}.rsvp-seal{width:min(100%,360px)}}@media (width<=420px){.kicker{justify-content:center;max-width:100%}.moment-switch{border-radius:24px}.moment-switch button{padding-inline:6px;font-size:.81rem}.detail-plaque div{grid-template-columns:20px 1fr;min-height:58px}.detail-plaque strong{grid-column:2}.crystal-scene p{white-space:normal;text-align:center;max-width:86%;padding-block:7px;line-height:1.25}}
