@import"https://fonts.googleapis.com/css2?family=Dancing+Script:wght@600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,500;1,600&family=Poppins:wght@400;500;600&display=swap";:root{--purple-950: #2e1065;--purple-800: #4c1d95;--purple-700: #5b21b6;--purple-600: #6d28d9;--purple-500: #a855f7;--purple-200: #e9d5ff;--rose-600: #db2777;--rose-500: #ec4899;--rose-300: #f9a8d4;--gold: #f59e0b;--gold-soft: #fcd34d;--cream: #fdf6ef;--paper: #fffaf3;--ink: #3b0764;--serif: "Playfair Display", Georgia, serif;--sans: "Poppins", system-ui, -apple-system, sans-serif;--script: "Dancing Script", cursive}*{box-sizing:border-box}body{margin:0;font-family:var(--sans)}.app{min-height:100dvh;position:relative;overflow:hidden;color:#fff;transition:color .7s ease}.app--dark{background:linear-gradient(180deg,#2e1065,#5b21b6 28%,#7e22ce 50%,#be185d 74%,#6d28d9);background-size:100% 260%;animation:waveBg 16s ease-in-out infinite;color:#fff}.app--cream{background:linear-gradient(180deg,#fdf6ef,#fbe9f2 30%,#f6e6fb 55%,#efe3ff 78%,#fdf6ef);background-size:100% 260%;animation:waveBg 16s ease-in-out infinite;color:var(--ink)}.app--blush{background:linear-gradient(180deg,#fce1ee,#f7d9ef 28%,#f0e0fb,#ecdcff,#fce1ee);background-size:100% 260%;animation:waveBg 16s ease-in-out infinite;color:var(--ink)}@keyframes waveBg{0%{background-position:50% 0%}50%{background-position:50% 100%}to{background-position:50% 0%}}.btn{font-family:var(--sans);font-weight:600;border:none;border-radius:999px;padding:14px 34px;cursor:pointer;font-size:16px;transition:transform .2s,box-shadow .2s,filter .2s}.btn:hover{transform:translateY(-2px);filter:brightness(1.05)}.btn--primary{background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff;box-shadow:0 12px 28px #7c3aed73}.btn--gold{background:linear-gradient(135deg,#f59e0b,#fcd34d);color:#5a3600;box-shadow:0 12px 28px #f59e0b73;text-decoration:none;display:inline-block}.lock{position:relative;z-index:2;min-height:100dvh;display:grid;place-items:center;padding:24px}.lock-card{background:#fffffff7;border-radius:26px;padding:46px 34px;max-width:400px;width:100%;text-align:center;box-shadow:0 30px 80px #2e106580;border:1px solid rgba(245,158,11,.14);animation:pop .6s cubic-bezier(.22,1,.36,1)}@keyframes pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.lock-kicker{color:var(--rose-600)}.lock-title{font-family:var(--serif);font-size:30px;color:var(--purple-700);margin:12px 0 8px}.lock-sub{color:#7c3aed;opacity:.85;margin:0 0 26px;line-height:1.6;font-size:15px}.lock-form{display:flex;flex-direction:column;gap:14px;align-items:center}.lock-hint{margin-top:18px;color:var(--rose-600);font-size:14px;animation:pop .4s ease}.pw{font:700 30px/1 var(--sans);letter-spacing:12px;text-align:center;width:190px;padding:14px 10px 14px 22px;border:2px solid var(--purple-200);border-radius:16px;background:#faf5ff;color:var(--purple-600);outline:none;transition:border-color .2s,box-shadow .2s}.pw::placeholder{color:#d8b4fe}.pw:focus{border-color:var(--purple-500);box-shadow:0 0 0 4px #a855f72e}.pw--error{border-color:#f43f5e;box-shadow:0 0 0 4px #f43f5e26;animation:shake .35s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.pager{position:relative;z-index:2;height:100dvh}.page-wrap{height:100%;overflow-y:auto}.anim-right{animation:inRight .5s cubic-bezier(.22,1,.36,1)}.anim-left{animation:inLeft .5s cubic-bezier(.22,1,.36,1)}@keyframes inRight{0%{opacity:0;transform:translate(34px)}to{opacity:1;transform:none}}@keyframes inLeft{0%{opacity:0;transform:translate(-34px)}to{opacity:1;transform:none}}.page{min-height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:22px;padding:72px 26px 128px}.page>*{animation:rise .7s cubic-bezier(.22,1,.36,1) both}.page>*:nth-child(1){animation-delay:.08s}.page>*:nth-child(2){animation-delay:.18s}.page>*:nth-child(3){animation-delay:.28s}.page>*:nth-child(4){animation-delay:.38s}.page>*:nth-child(5){animation-delay:.48s}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.kicker{font:600 12px/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;margin:0}.kicker--light{color:var(--rose-300)}.display{font-family:var(--serif);font-weight:700;font-size:clamp(56px,17vw,108px);line-height:1;margin:0;text-shadow:0 10px 40px rgba(0,0,0,.25)}.display--sm{font-size:clamp(34px,9vw,58px)}.hero-lead{font-family:var(--serif);font-style:italic;font-size:clamp(19px,4.6vw,27px);max-width:20ch;line-height:1.4;margin:0}.rule{width:58px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--gold-soft),transparent)}.hero-sub{max-width:34ch;line-height:1.7;opacity:.9;font-size:15.5px;margin:0}.section-title{font-family:var(--serif);font-weight:700;font-size:clamp(27px,6vw,38px);color:var(--purple-700);margin:0;line-height:1.2}.polaroids{display:flex;justify-content:center;align-items:flex-start;padding:6px 0}.polaroid{background:#fff;padding:9px 9px 0;border-radius:3px;box-shadow:0 16px 38px #4c1d9547;width:42vw;max-width:188px;transition:transform .3s ease,box-shadow .3s ease}.polaroid img,.polaroid .photo-fallback{width:100%;aspect-ratio:1 / 1;object-fit:cover;display:block;border-radius:2px}.polaroid figcaption{font-family:var(--script);font-size:23px;color:var(--purple-600);text-align:center;padding:4px 0 10px}.polaroid--a{transform:rotate(-6deg);z-index:2}.polaroid--b{transform:rotate(6deg);margin-left:-20px;margin-top:26px}.polaroid:hover{transform:rotate(0) scale(1.04);z-index:5;box-shadow:0 22px 48px #4c1d9559}.prose{max-width:44ch;line-height:1.85;color:var(--purple-800);font-size:16px;margin:0}.prose--muted{font-family:var(--serif);font-style:italic;opacity:.72}.reasons{list-style:none;padding:0;margin:0;max-width:520px;width:100%;text-align:left}.reason{display:flex;gap:18px;align-items:baseline;padding:15px 6px;border-bottom:1px solid rgba(168,85,247,.2)}.reason:last-child{border-bottom:none}.reason-num{font-family:var(--serif);font-style:italic;font-size:24px;color:var(--rose-600);min-width:42px}.reason p{margin:0;line-height:1.6;color:var(--purple-800);font-size:16px}.letter{background:var(--paper);max-width:520px;width:100%;padding:38px 34px;border-radius:6px;box-shadow:0 24px 60px #4c1d9538;text-align:left;transform:rotate(-1.2deg);border:1px solid rgba(245,158,11,.18)}.letter p{margin:0 0 15px;line-height:1.9;color:#43307a;font-size:16px}.letter-title{font-family:var(--serif);font-size:27px;color:var(--purple-700);margin:0 0 18px}.sign{font-family:var(--script);font-size:30px;color:var(--rose-600)!important;text-align:right;margin-top:14px!important}.couple{width:100%;max-width:340px}.couple img,.couple .photo-fallback{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:16px;border:4px solid rgba(255,255,255,.9);box-shadow:0 20px 50px #00000059}.photo-fallback{display:grid;place-items:center;background:linear-gradient(135deg,#f3e8ff,#fce1ee);color:var(--purple-600)}.photo-fallback span{font-size:40px}.nav{position:fixed;bottom:22px;left:50%;transform:translate(-50%);z-index:6;display:flex;align-items:center;gap:16px;padding:10px 16px;background:#ffffffe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:999px;box-shadow:0 12px 34px #2e106547}.nav-arrow{width:42px;height:42px;border-radius:50%;border:none;background:#f3e8ff;color:var(--purple-600);font-size:18px;cursor:pointer;display:grid;place-items:center;transition:background .2s,color .2s,transform .15s}.nav-arrow:hover:not(:disabled){background:linear-gradient(135deg,#a855f7,#ec4899);color:#fff;transform:scale(1.08)}.nav-arrow:disabled{opacity:.35;cursor:default}.dots{display:flex;align-items:center;gap:8px}.dot{width:8px;height:8px;border-radius:50%;border:none;background:#d8b4fe;cursor:pointer;padding:0;transition:all .25s ease}.dot--on{width:24px;border-radius:999px;background:linear-gradient(135deg,#a855f7,#ec4899)}@media(max-width:480px){.page{padding:60px 20px 118px;gap:18px}.letter{padding:30px 24px}.reason{gap:14px}.reason p{font-size:15px}}:root{font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color-scheme:light}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%}body{overflow-x:hidden}
