:root{color:#fff8e8;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#110821;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,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}button:focus-visible{outline-offset:5px;outline:3px solid #fff4b8}h1,p{margin:0}.wedding-world{perspective:1200px;background:radial-gradient(circle at 50% 104%,#f8b74c57,#0000 32rem),radial-gradient(circle at 18% 14%,#995eff52,#0000 24rem),radial-gradient(circle at 82% 20%,#ffd28238,#0000 22rem),linear-gradient(#090414 0%,#180b2d 45%,#321537 100%);place-items:center;width:100%;min-height:100svh;padding:clamp(16px,4vw,56px);display:grid;position:relative;overflow:hidden}.aurora{filter:blur(18px);opacity:.75;background:linear-gradient(110deg,#0000 10%,#ffd67a2e 32%,#0000 48%),linear-gradient(70deg,#0000 20%,#b380ff38 46%,#0000 64%);animation:11s ease-in-out infinite alternate auroraDrift;position:absolute;inset:-18% -10% 34%}.moon{aspect-ratio:1;opacity:.9;background:radial-gradient(circle at 38% 34%,#fffdf4 0 17%,#0000 18%),radial-gradient(circle,#fff3ba 0 58%,#d99a45 61% 100%);border-radius:50%;width:clamp(58px,8vw,108px);position:absolute;top:clamp(28px,7vw,76px);right:clamp(34px,9vw,120px);box-shadow:0 0 70px #ffdd9075}.mist{filter:blur(28px);background:#fff4da29;border-radius:50%;width:min(1100px,140vw);height:clamp(110px,19vw,230px);animation:8s ease-in-out infinite alternate mistFloat;position:absolute;bottom:-8%;left:50%;transform:translate(-50%)}.mist-two{opacity:.55;width:min(880px,118vw);animation-delay:-2.4s;bottom:5%}.spark-field{pointer-events:none;position:absolute;inset:0}.spark-field span{aspect-ratio:1;opacity:.65;background:#ffe9a6;border-radius:50%;animation:5.8s ease-in-out infinite sparkleRise;position:absolute;box-shadow:0 0 18px #ffd060}.wedding-world--opening .spark-field span,.wedding-world--revealed .spark-field span{animation-name:sparkleBurst}.ceremony-stage{z-index:2;width:min(100%,1120px);min-height:min(88svh,780px);transform-style:preserve-3d;place-items:center;display:grid;position:relative}.castle-scene{pointer-events:none;transform-style:preserve-3d;place-items:center;display:grid;position:absolute;inset:0}.castle{filter:drop-shadow(0 34px 70px #00000061);width:min(76vw,720px);height:clamp(250px,38vw,430px);position:absolute;top:clamp(38px,7vh,74px);transform:translateZ(-130px)}.tower,.castle-body,.castle-roof{display:block;position:absolute}.tower{background:linear-gradient(90deg,#ffffff1f,#0000 20% 74%,#00000029),linear-gradient(#c8a0d8,#7a4f9c 52%,#4b2d72);border:1px solid #ffeab32e;border-radius:24px 24px 8px 8px;width:23%;height:74%;bottom:0}.tower-left{left:7%}.tower-right{right:7%}.tower-center{z-index:2;width:23%;height:91%;bottom:4%;left:38.5%}.tower i{background:#fff2aa;border-radius:999px 999px 8px 8px;width:26%;height:20%;animation:2.6s ease-in-out infinite alternate windowGlow;position:absolute;top:26%;left:50%;transform:translate(-50%);box-shadow:0 0 22px #ffe17bd9}.castle-body{background:linear-gradient(90deg,#ffffff24,#0000 25% 75%,#00000029),linear-gradient(#d7b0e1,#8659a8 58%,#513176);border:1px solid #ffeab32e;border-radius:28px 28px 10px 10px;height:56%;bottom:0;left:23%;right:23%}.castle-body b{background:#25143a;border-radius:999px 999px 8px 8px;width:13%;height:32%;position:absolute;bottom:16%;box-shadow:inset 0 12px #ffe69f73}.castle-body b:first-child{left:22%}.castle-body b:nth-child(2){height:42%;left:44%}.castle-body b:nth-child(3){right:22%}.castle-roof{filter:drop-shadow(0 0 18px #ffd66e7a);border-bottom:clamp(74px,10vw,116px) solid #ffd56e;border-left:clamp(35px,5.2vw,58px) solid #0000;border-right:clamp(35px,5.2vw,58px) solid #0000;width:0;height:0}.roof-left{top:6%;left:9%}.roof-right{top:6%;right:9%}.roof-center{top:-7%;left:50%;transform:translate(-50%)scale(1.18)}.royal-road{clip-path:polygon(43% 0,57% 0,100% 100%,0 100%);transform-origin:50% 100%;background:linear-gradient(90deg,#0000,#ffecb770,#0000),linear-gradient(#ffdd754d,#6f356b00);width:min(58vw,520px);height:48%;position:absolute;bottom:-10%;left:50%;transform:translate(-50%)rotateX(64deg)}.gate{width:min(25vw,230px);height:clamp(300px,46vw,460px);transform-style:preserve-3d;background:repeating-linear-gradient(90deg,#ffd6702e 0 10px,#0000 10px 24px),linear-gradient(135deg,#613569f0,#2a163eeb);border:2px solid #ffe292cc;transition:transform 1.35s cubic-bezier(.16,1,.3,1);position:absolute;top:clamp(138px,22vh,210px);box-shadow:inset 0 0 0 10px #ffda841f,0 0 44px #ffcd5b33}.gate:before,.gate:after{content:"";border:1px solid #ffe8ae94;border-radius:999px 999px 8px 8px;position:absolute;inset:7% 12%}.gate:after{background:#ffde8c85;border-radius:0;height:100%;inset:auto 43% 0}.gate-left{transform-origin:0;border-radius:999px 10px 12px 12px;right:50%}.gate-right{transform-origin:100%;border-radius:10px 999px 12px 12px;left:50%}.wedding-world--opening .gate-left,.wedding-world--revealed .gate-left{transform:rotateY(-66deg)}.wedding-world--opening .gate-right,.wedding-world--revealed .gate-right{transform:rotateY(66deg)}.envelope{z-index:5;aspect-ratio:1.42;color:#3b1740;cursor:pointer;width:min(72vw,540px);transform-style:preserve-3d;filter:drop-shadow(0 38px 80px #0000006b);background:0 0;border:0;position:relative}.envelope:disabled{cursor:default}.envelope-shadow,.paper-glow,.envelope-back,.envelope-note,.envelope-left,.envelope-right,.envelope-front,.envelope-flap,.wax-seal{display:block;position:absolute}.envelope-shadow{filter:blur(18px);background:#00000057;border-radius:50%;height:24%;bottom:-10%;left:8%;right:8%;transform:rotateX(68deg)}.paper-glow{opacity:0;background:radial-gradient(circle at 50% 40%,#fff8d5f2,#ffcf6f1f 54%,#0000 72%);border-radius:28px;transition:opacity .7s;inset:8% 10% 10%;transform:translateZ(-18px)}.envelope-back{background:linear-gradient(145deg,#fff5df,#e7bfd4 68%,#c98bad);border-radius:28px;inset:20% 5% 10%;box-shadow:inset 0 0 0 1px #4c1a3f1f}.envelope-note{color:#5b2651;letter-spacing:0;background:linear-gradient(#fffffff5,#fff0d6f5),repeating-linear-gradient(0deg,#0000 0 20px,#5d2a4a14 21px);border-radius:22px;place-items:start center;height:58%;padding-top:8%;font-size:clamp(.86rem,2vw,1.2rem);font-weight:900;transition:transform 1s cubic-bezier(.16,1,.3,1);display:grid;top:17%;left:14%;right:14%;transform:translateY(24%)translateZ(12px)}.envelope-left,.envelope-right,.envelope-front{background:linear-gradient(145deg,#fae1d1,#d69abc);border-radius:0 0 28px 28px;inset:34% 5% 10%;box-shadow:inset 0 0 0 1px #4c1a3f14}.envelope-left{clip-path:polygon(0 0,50% 52%,0 100%)}.envelope-right{clip-path:polygon(100% 0,50% 52%,100% 100%)}.envelope-front{clip-path:polygon(0 100%,50% 30%,100% 100%);background:linear-gradient(145deg,#ffe7d8,#e4a5c2)}.envelope-flap{clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 0;background:linear-gradient(155deg,#fff3e3,#dda0bd);border-radius:28px 28px 8px 8px;height:48%;transition:transform 1.05s cubic-bezier(.16,1,.3,1);top:20%;left:5%;right:5%;transform:rotateX(0)translateZ(30px)}.wax-seal{aspect-ratio:1;color:#fff1c8;background:radial-gradient(circle at 35% 30%,#ffe7bf8c,#0000 21%),linear-gradient(145deg,#9e214e,#5b1232);border-radius:50%;place-items:center;width:clamp(66px,10vw,88px);transition:opacity .5s,transform .9s cubic-bezier(.16,1,.3,1);animation:1.9s ease-in-out infinite alternate sealPulse;display:grid;top:50%;left:50%;transform:translate(-50%,-10%)translateZ(46px);box-shadow:inset 0 0 0 3px #ffe8b142,0 16px 36px #4a0a2a59}.envelope:hover:not(:disabled){transform:translateY(-4px)}.envelope:hover:not(:disabled) .envelope-flap{transform:rotateX(18deg)translateZ(30px)}.envelope--open .paper-glow{opacity:1}.envelope--open .envelope-note{transform:translateY(-44%)translateZ(18px)}.envelope--open .envelope-flap{transform:rotateX(168deg)translateZ(30px)}.envelope--open .wax-seal{opacity:0;transform:translate(-50%,-26%)scale(.6)translateZ(46px)}.opening-copy{z-index:6;text-align:center;color:#fff7df;gap:7px;width:min(100%,560px);display:grid;position:absolute;bottom:clamp(22px,6vh,54px)}.opening-copy p{font-size:clamp(1.35rem,3.4vw,2.15rem);font-weight:900;line-height:1.08}.opening-copy span{color:#fff7dfc7;font-size:clamp(.94rem,2vw,1.1rem);line-height:1.45}.invitation{z-index:6;color:#34122f;text-align:center;width:min(92vw,760px);transform-style:preserve-3d;background:linear-gradient(135deg,#ffffffd1,#0000 28%),radial-gradient(circle at 50% 0,#ffda8157,#0000 36%),linear-gradient(#fff9ea,#f1d5ac);border:1px solid #6a362f38;border-radius:clamp(22px,4vw,36px);justify-items:center;gap:clamp(14px,2vw,20px);padding:clamp(26px,5vw,54px);display:grid;position:relative;overflow:hidden;box-shadow:0 34px 90px #0000005c,inset 0 0 0 10px #8d563014}.invitation:before,.invitation:after{content:"";border-radius:inherit;pointer-events:none;border:1px solid #71412d3d;position:absolute;inset:14px}.invitation:after{opacity:.55;border-style:dashed;inset:24px}.invitation-shine{pointer-events:none;background:linear-gradient(110deg,#0000 36%,#ffffff6b 48%,#0000 60%);animation:5.4s ease-in-out infinite invitationShine;position:absolute;inset:-60% -20%;transform:translate(-45%)}.eyebrow{color:#fff5d6;letter-spacing:.08em;text-transform:uppercase;background:#5b1f4d;border-radius:999px;align-items:center;min-height:34px;padding:0 16px;font-size:clamp(.74rem,1.7vw,.88rem);font-weight:900;display:inline-flex;position:relative}.invitation h1{color:#351132;letter-spacing:0;max-width:680px;font-size:clamp(2.65rem,8vw,5.85rem);font-weight:950;line-height:.94;position:relative}.invitation h1 span{color:#9b244f;font-size:.72em;display:inline-block;transform:translateY(-.05em)}.invitation-note{color:#51304a;max-width:600px;font-size:clamp(1rem,2.1vw,1.2rem);line-height:1.58;position:relative}.detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;display:grid;position:relative}.detail-grid div{background:#fff9eab8;border:1px solid #5c2d3629;border-radius:18px;align-content:center;justify-items:center;gap:8px;min-height:126px;padding:16px 12px;display:grid}.detail-grid svg{color:#8b224a}.detail-grid span{color:#6a455f;letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:900}.detail-grid strong{color:#2c1029;font-size:clamp(.98rem,2vw,1.1rem);line-height:1.25}.address{color:#5a3852;font-size:clamp(.95rem,2vw,1.05rem);line-height:1.5;position:relative}.replay-button{color:#fff5d6;cursor:pointer;background:linear-gradient(135deg,#7b1f4d,#3c173c);border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:52px;padding:0 22px;font-weight:900;transition:transform .2s,filter .2s;display:inline-flex;position:relative;box-shadow:0 18px 40px #4d123a40}.replay-button:hover{filter:brightness(1.06);transform:translateY(-2px)}@keyframes auroraDrift{0%{transform:translate(-3%)rotate(-1deg)}to{transform:translate(3%,4%)rotate(2deg)}}@keyframes mistFloat{0%{transform:translate(-54%)scaleX(.95)}to{transform:translate(-46%)scaleX(1.05)}}@keyframes sparkleRise{0%,to{opacity:.2;transform:translateY(16px)scale(.7)}45%{opacity:.86;transform:translate(8px,-20px)scale(1.1)}}@keyframes sparkleBurst{0%,to{opacity:.32;transform:translateY(8px)scale(.75)}50%{opacity:.95;transform:translate(18px,-36px)scale(1.25)}}@keyframes sealPulse{0%{box-shadow:inset 0 0 0 3px #ffe8b142,0 16px 36px #4a0a2a59}to{box-shadow:inset 0 0 0 3px #ffe8b16b,0 20px 46px #ffc45d5c}}@keyframes windowGlow{0%{opacity:.62}to{opacity:1}}@keyframes invitationShine{0%,45%{transform:translate(-48%)}75%,to{transform:translate(48%)}}@media (width<=760px){.wedding-world{padding:14px}.ceremony-stage{min-height:92svh}.moon{opacity:.68}.castle{width:min(96vw,520px);height:clamp(210px,62vw,320px);top:8%}.gate{width:min(30vw,160px);height:min(56vh,360px);top:26%}.envelope{width:min(88vw,390px)}.opening-copy{padding:0 12px;bottom:clamp(20px,5vh,38px)}.invitation{gap:12px;width:min(94vw,520px);max-height:88svh;padding:28px 18px}.invitation h1{font-size:clamp(2.25rem,14vw,4.15rem)}.detail-grid{grid-template-columns:1fr;gap:9px}.detail-grid div{text-align:left;grid-template-columns:auto 1fr;justify-items:start;column-gap:10px;min-height:auto;padding:12px 14px}.detail-grid svg{grid-row:span 2}.detail-grid strong{font-size:1rem}}@media (width<=420px){.invitation{padding:24px 14px}.invitation h1{font-size:clamp(2.05rem,13vw,3.3rem)}.invitation-note{font-size:.96rem}.eyebrow{letter-spacing:.04em}}@media (width<=760px) and (height<=700px){.castle{top:3%;transform:translateZ(-160px)scale(.86)}.gate{height:min(48vh,300px);top:20%}.invitation{gap:8px;max-height:92svh;padding:18px 14px}.invitation:before{inset:9px}.invitation:after{inset:16px}.eyebrow{min-height:28px;padding:0 12px;font-size:.68rem}.invitation h1{font-size:clamp(1.92rem,10.5vw,3rem);line-height:.96}.invitation-note{max-width:460px;font-size:.88rem;line-height:1.34}.detail-grid div{gap:4px 8px;padding:8px 12px}.detail-grid span{font-size:.68rem}.detail-grid strong,.address{font-size:.9rem}.replay-button{min-height:42px;padding:0 18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
