@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;1,500&family=Montserrat:wght@300;400;600&display=swap";:root{--green:#45b97c;--purple:#7042a8;--yellow:#ffd447;--cream:#fff9e9;--ink:#17131f}*{box-sizing:border-box}html,body{background:var(--ink);min-height:100%;margin:0}body{color:var(--cream);font-family:Montserrat,sans-serif;overflow-x:hidden}button{font:inherit}.site-shell{isolation:isolate;background:linear-gradient(125deg,#16111f 0%,#35224f 38%,#174939 74%,#1f5542 100%);place-items:center;min-height:100svh;display:grid;position:relative;overflow:hidden}.site-shell:before{content:"";z-index:-4;background:radial-gradient(circle at 10% 15%,#ffd44729,#0000 28%),radial-gradient(circle at 88% 78%,#7042a842,#0000 34%);position:absolute;inset:0}.aurora{filter:blur(90px);opacity:.28;z-index:-3;border-radius:50%;width:48vw;height:48vw;animation:14s ease-in-out infinite alternate drift;position:absolute}.aurora-one{background:var(--green);top:-22%;right:-10%}.aurora-two{background:var(--purple);animation-delay:-6s;bottom:-30%;left:-8%}.grain{z-index:-1;opacity:.08;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.photo-frame{isolation:isolate;background:#1a1321;border:1px solid #ffd447b3;border-radius:22px;min-height:360px;margin:1.3rem;animation:4s ease-in-out infinite photoGlow;position:relative;overflow:hidden;box-shadow:0 0 10px #ffd44780,0 0 28px #ffd4474d,0 0 48px #45b97c38,0 0 70px #7042a833}.story-photo{z-index:1;object-fit:cover;object-position:50% 38%;filter:brightness(1.06)contrast(1.04)saturate(1.08);width:100%;height:100%;transition:transform 1.2s,filter 1.2s;display:block;position:absolute;inset:0}.photo-frame:hover .story-photo{filter:brightness(1.12)contrast(1.04)saturate(1.12);transform:scale(1.035)}.photo-frame:before{content:"";z-index:3;pointer-events:none;border-radius:inherit;background:linear-gradient(135deg,#ffd447f2,#45b97c99,#7042a8bf,#ffd447f2) 0 0/300% 300% border-box;border:2px solid #0000;animation:6s linear infinite photoBorder;position:absolute;inset:-3px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:padding-box,border-box;mask-clip:padding-box,border-box;-webkit-mask-origin:padding-box,border-box;mask-origin:padding-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.photo-frame:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(115deg,#0000 25%,#ffffff2e 45%,#0000 62%) 0 0/250% 100%,linear-gradient(#0000 65%,#17131f33) 0 0/100% 100%;animation:7s ease-in-out infinite photoReflection;position:absolute;inset:0}.photo-shine{z-index:4;background:var(--yellow);pointer-events:none;width:8px;height:8px;box-shadow:0 0 7px var(--yellow), 0 0 16px var(--yellow), 0 0 28px #ffd447cc;border-radius:50%;animation:2.6s ease-in-out infinite photoSpark;position:absolute;top:18px;right:18px}.particles span{color:#ffd447;opacity:0;text-shadow:0 0 8px #ffd447f2,0 0 18px #ffd447cc,0 0 32px #ffd44773;filter:drop-shadow(0 0 5px #ffd447b3);font-size:clamp(1.75rem,4vw,2.7rem);font-weight:600;animation:linear infinite floatUp;position:absolute;bottom:-10%}.opening{text-align:center;width:min(900px,92vw);padding:4rem 1.5rem 2rem;animation:1.2s both reveal}.opening-kicker,.eyebrow{color:#ffe78a;letter-spacing:.28em;text-transform:uppercase;margin:0 0 1.1rem;font-size:.7rem;font-weight:600}.date-orbit{border:1px solid #ffd4478c;border-radius:50%;place-content:center;width:126px;height:126px;margin:0 auto 1.7rem;display:grid;position:relative;box-shadow:0 0 55px #ffd44726}.date-orbit:after{content:"✦";color:var(--yellow);animation:2s infinite twinkle;position:absolute;top:4px;right:12px}.date-orbit span{font:500 3.8rem/.8 Cormorant Garamond,serif}.date-orbit small{letter-spacing:.35em;color:#ffe78a;margin-top:.7rem;font-size:.55rem}.opening h1{letter-spacing:-.04em;text-shadow:0 8px 35px #0005;margin:0;font:500 clamp(3.1rem,8vw,7.4rem)/.88 Cormorant Garamond,serif}.opening-copy{color:#fff9e9c2;max-width:580px;margin:1.6rem auto 2rem;font:italic clamp(1.05rem,2vw,1.35rem)/1.5 Cormorant Garamond,serif}.start-button{color:var(--cream);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff0f;border:1px solid #ffd4479e;border-radius:999px;align-items:center;gap:1.4rem;padding:.65rem .7rem .65rem 1.5rem;transition:all .35s;display:inline-flex}.start-button i{background:var(--yellow);width:38px;height:38px;color:var(--ink);border-radius:50%;place-items:center;font-style:normal;display:grid}.start-button:hover{background:#ffffff1c;transform:translateY(-3px);box-shadow:0 15px 40px #0004}.countdown{justify-content:center;gap:clamp(.7rem,4vw,3.2rem);margin:3rem auto 0;display:flex}.countdown div{min-width:58px}.countdown strong{font:500 clamp(1.6rem,4vw,2.6rem) Cormorant Garamond,serif;display:block}.countdown span{color:#fff9e985;letter-spacing:.15em;text-transform:uppercase;margin-top:.3rem;font-size:.54rem;display:block}.story{width:min(1180px,92vw);padding:1.8rem 0;animation:.7s both reveal}.story-header{color:#fff9e9bf;letter-spacing:.2em;justify-content:center;align-items:center;margin-bottom:1.2rem;display:flex}.monogram{letter-spacing:.22em;text-shadow:0 0 18px #fff9e940;justify-content:center;align-items:center;gap:.55rem;font-family:Cormorant Garamond,serif;font-size:1.55rem;font-weight:500;display:flex}.monogram i{color:var(--yellow);letter-spacing:0;text-shadow:0 0 8px #ffd447f2,0 0 18px #ffd44799;margin:0;font-size:.8rem;font-style:normal;animation:2.2s ease-in-out infinite monogramHeart}.story-card{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:linear-gradient(135deg,#ffffff17,#ffffff09);border:1px solid #ffffff26;border-radius:32px;grid-template-columns:44% 56%;min-height:min(680px,76svh);display:grid;overflow:hidden;box-shadow:0 32px 90px #0005}.photo-placeholder{color:#fff9e98c;background:linear-gradient(145deg,#45b97c47,#7042a83d),radial-gradient(circle,#ffd44726,#0000 45%);border:1px dashed #ffd4476b;border-radius:22px;align-content:center;justify-items:center;min-height:360px;margin:1.3rem;display:grid}.photo-placeholder span{color:var(--yellow);font-size:2.4rem;animation:2.8s infinite twinkle}.photo-placeholder p{margin:.8rem 0 .3rem;font:italic 1.5rem Cormorant Garamond,serif}.photo-placeholder small{letter-spacing:.17em;text-transform:uppercase;font-size:.55rem}.story-copy{align-self:center;padding:clamp(2rem,6vw,6rem)}.story-copy h2{letter-spacing:-.035em;max-width:650px;margin:0;font:500 clamp(2.8rem,5.4vw,5.8rem)/.92 Cormorant Garamond,serif}.gold-line{background:linear-gradient(90deg, var(--yellow), transparent);width:72px;height:1px;margin:2rem 0}.body-copy{white-space:pre-line;color:#fff9e9b8;max-width:600px;margin:0;font-size:clamp(1rem,1.4vw,1.14rem);line-height:1.85}.accent-copy{color:#ffe78a;margin:1.5rem 0 0;font-family:Cormorant Garamond,serif;font-size:clamp(1.25rem,2vw,1.75rem);font-style:italic;font-weight:500;line-height:1.3}.navigation{justify-content:center;align-items:center;gap:1rem;margin:1.2rem auto 0;display:flex}.navigation button{width:48px;height:48px;color:var(--cream);cursor:pointer;background:#ffffff0f;border:1px solid #ffd44775;border-radius:50%;transition:all .25s}.navigation button:hover:not(:disabled){background:var(--yellow);color:var(--ink);transform:scale(1.05)}.navigation button:disabled{opacity:.25}.progress{background:#ffffff24;width:min(250px,42vw);height:2px}.progress span{background:linear-gradient(90deg, var(--green), var(--yellow), var(--purple));height:100%;transition:width .5s;display:block}@keyframes reveal{0%{opacity:0;filter:blur(8px);transform:translateY(18px)}to{opacity:1;filter:blur();transform:none}}@keyframes floatUp{0%{opacity:0;transform:translateY(0)rotate(-10deg)scale(.7)}12%{opacity:.9}50%{opacity:.78;transform:translateY(-58vh)rotate(12deg)scale(1)}85%{opacity:.65}to{opacity:0;transform:translateY(-115vh)rotate(25deg)scale(1.15)}}@keyframes drift{to{transform:translate(12vw,8vh)scale(1.15)}}@keyframes twinkle{0%,to{opacity:.45;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)rotate(20deg)}}@media (width<=760px){.firework{transform:scale(.7)}.firework-one{top:14%;left:16%}.firework-two{top:28%;right:18%}.firework-three{top:73%;left:68%}.opening{padding-top:2.8rem}.date-orbit{width:105px;height:105px}.date-orbit span{font-size:3.1rem}.countdown{margin-top:2.3rem}.story{padding:1rem 0}.story-card{grid-template-columns:1fr;min-height:auto}.photo-placeholder{min-height:220px;margin:.85rem}.story-copy{padding:1.4rem 1.5rem 2.2rem}.story-copy h2{font-size:clamp(2.45rem,12vw,4rem)}.gold-line{margin:1.3rem 0}.body-copy{line-height:1.65}.navigation{margin-top:.8rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes monogramHeart{0%,to{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.25)}}@keyframes photoGlow{0%,to{box-shadow:0 0 10px #ffd44773,0 0 28px #ffd44740,0 0 48px #45b97c2e,0 0 70px #7042a829}50%{box-shadow:0 0 17px #ffd447cc,0 0 38px #ffd4476b,0 0 65px #45b97c4d,0 0 90px #7042a840}}@keyframes photoBorder{0%{background-position:0%}to{background-position:300%}}@keyframes photoReflection{0%,25%{background-position:180% 0,0 0}75%,to{background-position:-120% 0,0 0}}@keyframes photoSpark{0%,to{opacity:.45;transform:scale(.7)rotate(0)}50%{opacity:1;transform:scale(1.35)rotate(90deg)}}.love-questions{flex-direction:column;gap:.85rem;display:flex}.love-questions p{margin:0}.love-questions .questions-intro{color:#fff9e9d1;margin-bottom:.4rem;font-family:Cormorant Garamond,serif;font-size:1.2rem;font-style:italic}.love-questions .answer{color:#fdff6b;text-shadow:0 0 7px #47ffe0bf,0 0 16px #47eaff61;margin-left:.4rem;font-family:Cormorant Garamond,serif;font-size:1.16em;font-style:italic;font-weight:600;display:inline}.fireworks{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.firework{--firework-color:#ffd447;--firework-delay:0s;--firework-size:70px;width:5px;height:5px;position:absolute}.firework-one{--firework-color:#ffd447;--firework-delay:0s;--firework-size:106px;top:18%;left:18%}.firework-two{--firework-color:#45b97c;--firework-delay:2.3s;--firework-size:91px;top:25%;right:17%}.firework-three{--firework-color:#a96de3;--firework-delay:4.6s;--firework-size:81px;top:68%;left:72%}.firework span{--firework-angle:0deg;background:var(--firework-color);opacity:0;width:8px;height:8px;box-shadow:0 0 7px var(--firework-color), 0 0 15px var(--firework-color), 0 0 27px var(--firework-color), 0 0 42px color-mix(in srgb, var(--firework-color) 55%, transparent);animation:7s ease-out infinite subtleFirework;animation-delay:var(--firework-delay);border-radius:50%;position:absolute;top:50%;left:50%}.firework span:first-child{--firework-angle:0deg}.firework span:nth-child(2){--firework-angle:30deg}.firework span:nth-child(3){--firework-angle:60deg}.firework span:nth-child(4){--firework-angle:90deg}.firework span:nth-child(5){--firework-angle:120deg}.firework span:nth-child(6){--firework-angle:150deg}.firework span:nth-child(7){--firework-angle:180deg}.firework span:nth-child(8){--firework-angle:210deg}.firework span:nth-child(9){--firework-angle:240deg}.firework span:nth-child(10){--firework-angle:270deg}.firework span:nth-child(11){--firework-angle:300deg}.firework span:nth-child(12){--firework-angle:330deg}@keyframes subtleFirework{0%,12%{opacity:0;transform:rotate(var(--firework-angle)) translateY(0) scale(.3)}15%{opacity:1}27%{opacity:.8;transform:rotate(var(--firework-angle)) translateY(calc(var(--firework-size) * -1)) scale(1)}42%{opacity:0;transform:rotate(var(--firework-angle)) translateY(calc(var(--firework-size) * -1.2)) scale(.2)}to{opacity:0;transform:rotate(var(--firework-angle)) translateY(calc(var(--firework-size) * -1.2)) scale(0)}}.password-overlay{z-index:1000;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0f0b17b3;place-items:center;padding:1.5rem;animation:.4s both passwordOverlayIn;display:grid;position:fixed;inset:0}.password-card{text-align:center;background:radial-gradient(circle at top,#ffd4471f,#0000 35%),linear-gradient(145deg,#34204cf7,#144636f7);border:1px solid #ffd44785;border-radius:28px;width:min(440px,100%);padding:2.8rem 2.4rem 2.4rem;animation:.55s both passwordCardIn;position:relative;overflow:hidden;box-shadow:0 0 25px #ffd44729,0 25px 90px #0000008c}.password-card:before{content:"";pointer-events:none;background:linear-gradient(115deg,#0000 25%,#ffffff14 45%,#0000 65%) 0 0/240% 100%;animation:6s ease-in-out infinite passwordReflection;position:absolute;inset:0}.password-close{z-index:2;color:#fff9e9b8;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff29;border-radius:50%;width:36px;height:36px;padding:0;font-size:1.4rem;transition:all .25s;position:absolute;top:14px;right:14px}.password-close:hover{color:#17131f;background:#ffd447;border-color:#ffd447;transform:rotate(90deg)}.password-heart{color:#ffd447;text-shadow:0 0 10px #ffd447f2,0 0 25px #ffd44794;margin-bottom:1rem;font-size:2rem;animation:2s ease-in-out infinite passwordHeart;display:block}.password-kicker{color:#ffe78a;letter-spacing:.25em;text-transform:uppercase;margin:0 0 .8rem;font-size:.64rem;font-weight:600}.password-card h2{color:#fff9e9;margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(2.3rem,7vw,3.2rem);font-weight:500;line-height:1}.password-description{color:#fff9e9ab;max-width:340px;margin:1.1rem auto 1.8rem;font-size:.86rem;line-height:1.6}.password-label{color:#fff9e9b3;letter-spacing:.18em;text-align:left;text-transform:uppercase;margin-bottom:.55rem;font-size:.65rem;font-weight:600;display:block}.password-input{color:#fff9e9;background:#0a080f47;border:1px solid #ffd44757;border-radius:15px;outline:none;width:100%;height:54px;padding:0 1.2rem;font-family:Montserrat,sans-serif;font-size:1rem;transition:all .25s}.password-input::placeholder{color:#fff9e952}.password-input:focus{border-color:#ffd447e6;box-shadow:0 0 0 4px #ffd44714,0 0 20px #ffd44724}.password-error{color:#ffe78a;background:#ffd44714;border:1px solid #ffd44740;border-radius:12px;margin:.9rem 0 0;padding:.8rem 1rem;font-size:.78rem;line-height:1.5}.password-submit{color:#fff9e9;cursor:pointer;background:#ffffff0f;border:1px solid #ffd447a6;border-radius:999px;justify-content:space-between;align-items:center;width:100%;margin-top:1.3rem;padding:.65rem .7rem .65rem 1.3rem;transition:all .3s;display:flex}.password-submit i{color:#17131f;background:#ffd447;border-radius:50%;place-items:center;width:40px;height:40px;font-style:normal;display:grid}.password-submit:hover{background:#ffffff1c;transform:translateY(-2px);box-shadow:0 14px 35px #00000042}@keyframes passwordOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes passwordCardIn{0%{opacity:0;filter:blur(8px);transform:translateY(18px)scale(.96)}to{opacity:1;filter:blur();transform:none}}@keyframes passwordHeart{0%,to{opacity:.6;transform:scale(.85)}50%{opacity:1;transform:scale(1.18)}}@keyframes passwordReflection{0%{background-position:180% 0}to{background-position:-120% 0}}
