@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Dancing+Script:wght@400;700&family=Cormorant+Garamond:ital,wght@0,300;0,600;1,300;1,600&display=swap");:root{--bg:#000000;--bg2:#000000;--surface:#1a1013;--surface2:#221519;--border:rgba(180,40,60,.22);--border2:rgba(180,40,60,.12);--red:#c0273f;--red-glow:#8e1f2f;--red-soft:rgba(192,39,63,.18);--gold:#c49a3c;--text:#f0e6e8;--text-dim:rgba(240,230,232,.55);--text-muted:rgba(240,230,232,.32);--cream:#fdf6f0;--shadow:rgba(0,0,0,.6)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Plus Jakarta Sans,sans-serif;color:var(--text);background:var(--bg);min-height:100vh}::selection{background:var(--red);color:#fff}.grain{position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.28;mix-blend-mode:screen;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .95 0 0 0 0 .95 0 0 0 .04 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E")}h1,h2,h3{font-family:Playfair Display,Georgia,serif;color:var(--text)}.shell{max-width:840px;margin:0 auto;padding:52px 20px 100px}.masthead{text-align:center;margin-bottom:44px;animation:rise .65s ease both}.masthead .kicker{font-family:Plus Jakarta Sans,sans-serif;font-size:10.5px;letter-spacing:.46em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}.masthead h1{font-family:Dancing Script,cursive;font-size:clamp(46px,9vw,78px);line-height:1;background:linear-gradient(135deg,#fff 30%,var(--gold) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.masthead .sub{margin-top:12px;font-style:italic;color:var(--text-dim);font-size:16.5px}.masthead .rule{width:100px;margin:22px auto 0;border:0;border-top:1px solid rgba(196,154,60,.35);position:relative}.masthead .rule:after{content:"❦";position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--bg);padding:0 10px;color:var(--gold);font-size:14px}.stepper{display:flex;justify-content:center;gap:6px;margin-bottom:34px}.stepper .dot{width:28px;height:3px;border-radius:2px;background:rgba(255,255,255,.1);transition:background .4s}.stepper .dot.on{background:var(--red)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 0 60px -20px rgba(192,39,63,.15),0 24px 60px -30px rgba(0,0,0,.7);padding:38px clamp(20px,5vw,52px) 44px;position:relative;animation:rise .45s ease both}.panel:before{content:"";position:absolute;inset:8px;border:1px solid rgba(196,154,60,.12);border-radius:3px;pointer-events:none}.panel h2{font-size:clamp(22px,3.8vw,30px);margin-bottom:6px;font-style:italic;color:var(--text)}.panel .lead{font-style:italic;color:var(--text-dim);font-size:15px;margin-bottom:26px}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-gap:12px;gap:12px;margin-bottom:10px}.photo-add{aspect-ratio:1;min-height:130px;border:1.5px dashed rgba(192,39,63,.4);border-radius:5px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--red);font-size:26px;transition:all .25s;background:rgba(192,39,63,.05)}.photo-add small{font-size:11px;font-style:italic;color:var(--text-muted);text-align:center;padding:0 8px}.photo-add:hover{border-color:var(--red);background:rgba(192,39,63,.1)}.photo-add input{display:none}.photo-thumb{position:relative;aspect-ratio:1}.photo-thumb img{width:100%;height:100%;object-fit:cover;border-radius:4px;display:block;border:1px solid var(--border2)}.photo-thumb button{position:absolute;top:5px;right:5px;background:rgba(13,10,11,.85);color:var(--red);border:1px solid var(--border);border-radius:50%;width:22px;height:22px;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.photo-thumb:hover button{opacity:1}.date-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:22px}.date-row label{font-family:Plus Jakarta Sans,sans-serif;font-size:10.5px;letter-spacing:.36em;text-transform:uppercase;color:var(--gold)}.date-row input[type=text]{background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:12px 16px;font-family:Cormorant Garamond,Georgia,serif;font-size:18px;color:var(--text);width:190px}.date-row .inf{font-size:30px;color:var(--red);line-height:1}input[type=text],textarea{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:14px 16px;font-family:Cormorant Garamond,Georgia,serif;font-size:17px;font-style:italic;color:var(--text);resize:vertical;line-height:1.6}input[type=text]:focus,textarea:focus{outline:2px solid rgba(192,39,63,.6);outline-offset:1px}input[type=text]::placeholder,textarea::placeholder{color:var(--text-muted)}.phrase-list{display:grid;grid-gap:9px;gap:9px;margin-bottom:22px}.phrase{text-align:left;background:rgba(255,255,255,.035);border:1px solid var(--border2);border-radius:4px;padding:13px 18px 13px 44px;font-family:Cormorant Garamond,Georgia,serif;font-size:15.5px;font-style:italic;color:var(--text-dim);cursor:pointer;position:relative;transition:all .22s;line-height:1.45}.phrase:before{content:"♡";position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--red);font-style:normal;transition:all .22s}.phrase:hover{border-color:var(--border);color:var(--text);transform:translateX(3px)}.phrase.sel{background:rgba(192,39,63,.15);border-color:var(--red);color:var(--text)}.phrase.sel:before{content:"♥"}.custom-phrase-row{display:flex;gap:10px;align-items:flex-start;margin-top:6px}.custom-phrase-row textarea{resize:none;font-style:normal;font-size:15px}.added-phrases{display:grid;grid-gap:8px;gap:8px;margin-top:12px}.added-phrase{display:flex;align-items:center;gap:10px;background:rgba(192,39,63,.1);border-radius:4px;border:1px solid rgba(192,39,63,.25);padding:10px 14px;font-style:italic;font-size:15px;color:var(--text-dim)}.added-phrase .del{margin-left:auto;background:none;border:none;color:var(--red);cursor:pointer;font-size:16px}.sel-count{font-family:Plus Jakarta Sans,sans-serif;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}.actions{display:flex;justify-content:space-between;gap:14px;margin-top:32px}.actions,.btn{align-items:center}.btn{font-family:Plus Jakarta Sans,sans-serif;font-size:12px;font-weight:400;letter-spacing:.18em;text-transform:uppercase;border-radius:4px;padding:13px 28px;cursor:pointer;transition:all .22s;text-decoration:none;display:inline-flex;justify-content:center;border:1px solid transparent}.btn-primary{background:var(--red);color:#fff;border-color:var(--red);box-shadow:0 0 28px -8px rgba(192,39,63,.6)}.btn-primary:hover{background:#d63050;border-color:#d63050;transform:translateY(-2px);box-shadow:0 0 40px -6px rgba(192,39,63,.75)}.btn-primary:disabled{opacity:.3;cursor:not-allowed;transform:none;box-shadow:none}.btn-ghost{background:transparent;color:var(--text-dim);border-color:rgba(255,255,255,.12)}.btn-ghost:hover{border-color:rgba(255,255,255,.28);color:var(--text)}.receipt{max-width:360px;margin:0 auto 24px;border:1px solid var(--border);padding:20px 24px;background:var(--surface2);border-radius:4px;font-size:15px;color:var(--text-dim)}.receipt .row{display:flex;justify-content:space-between;padding:6px 0}.receipt .row.total{border-top:1px solid var(--border);margin-top:8px;padding-top:13px;font-family:Playfair Display,Georgia,serif;font-size:19px;color:var(--text)}.mock-note{text-align:center;font-size:12.5px;font-style:italic;color:var(--text-muted);margin-top:12px}.qr-wrap{display:flex;flex-wrap:wrap;gap:32px;align-items:center;justify-content:center;margin:10px 0 26px}.qr-frame{background:var(--surface2);padding:14px;border:1px solid var(--border);border-radius:4px;box-shadow:0 0 40px -12px rgba(192,39,63,.35);transform:rotate(-1.5deg)}.qr-frame img{display:block;width:180px;height:180px}.qr-frame figcaption{text-align:center;font-family:Dancing Script,cursive;font-size:20px;color:var(--red);margin-top:7px}.linkbox{display:flex;gap:10px;align-items:stretch;max-width:500px;margin:0 auto}.linkbox input{font-style:normal;font-size:14px}.feed{overflow-x:hidden;background:var(--bg)}.particles{position:fixed;inset:0;pointer-events:none;z-index:2;overflow:hidden}.particle{position:absolute;bottom:-60px;animation:float-up linear infinite;opacity:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}@keyframes float-up{0%{transform:translateY(0) rotate(0deg) scale(.7);opacity:0}8%{opacity:.65}88%{opacity:.35}to{transform:translateY(-115vh) rotate(540deg) scale(1.1);opacity:0}}.feed-section{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;position:relative;z-index:3;opacity:0;transform:translateY(50px) scale(.96);transition:opacity 1.3s cubic-bezier(.22,1,.36,1),transform 1.3s cubic-bezier(.22,1,.36,1)}.feed-section.visible{opacity:1;transform:none}.sec-hero{background:radial-gradient(ellipse 70% 55% at 50% 100%,rgba(142,31,47,.45),transparent),radial-gradient(ellipse 40% 30% at 80% 20%,rgba(192,39,63,.08),transparent),var(--bg);text-align:center;gap:0}.hero-eyebrow{font-family:Plus Jakarta Sans,sans-serif;font-size:10px;letter-spacing:.52em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}.hero-title{font-family:Dancing Script,cursive;font-size:clamp(52px,12vw,96px);line-height:.95;background:linear-gradient(160deg,#fff 40%,var(--gold) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:6px}.hero-date-line{display:flex;align-items:center;gap:12px;justify-content:center;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(16px,2.8vw,22px);color:var(--text-dim);margin-bottom:28px}.hero-date-line .inf{font-size:28px;color:var(--red)}.hero-photos{display:flex;gap:22px;justify-content:center;margin-bottom:36px;flex-wrap:wrap}.polaroid{background:var(--surface2);padding:14px 14px 44px;box-shadow:0 0 0 1px var(--border),0 28px 60px -20px rgba(0,0,0,.8);max-width:340px;width:100%;transform:rotate(var(--rot,-2deg));transition:transform .4s cubic-bezier(.22,1,.36,1)}.polaroid:hover{transform:rotate(0deg) translateY(-6px)!important}.polaroid img{width:100%;aspect-ratio:1;object-fit:cover;display:block}.polaroid .caption{text-align:center;margin-top:8px;font-family:Dancing Script,cursive;font-size:20px;color:var(--red)}.hero-scroll-hint{font-family:Plus Jakarta Sans,sans-serif;font-size:10px;letter-spacing:.36em;text-transform:uppercase;color:var(--text-muted);animation:bob 2.2s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(7px)}}.sec-photo{padding:0;overflow:hidden}.sec-photo .full-photo{width:100%;max-height:100svh;object-fit:cover;display:block}.sec-phrase{text-align:center}.sec-phrase.style-a{background:radial-gradient(ellipse 60% 50% at 50% 60%,rgba(142,31,47,.3),transparent),var(--bg2)}.sec-phrase.style-b{background:radial-gradient(ellipse 70% 60% at 50% 50%,rgba(192,39,63,.25),transparent),#0f0608}.sec-phrase.style-c{background:var(--bg)}.sec-phrase.style-d{background:radial-gradient(ellipse 50% 40% at 50% 50%,rgba(196,154,60,.08),transparent),#0a0709}.phrase-big{max-width:700px;line-height:1.2;position:relative;z-index:1}.style-a .phrase-big{font-family:Playfair Display,Georgia,serif;font-style:italic;font-size:clamp(26px,5vw,48px);color:#fff}.style-b .phrase-big{font-family:Dancing Script,cursive;font-size:clamp(36px,7.5vw,68px);color:#fff}.style-c .phrase-big{font-family:Cormorant Garamond,Georgia,serif;font-weight:300;font-style:italic;font-size:clamp(22px,4.2vw,42px);letter-spacing:.015em;color:rgba(240,230,232,.85)}.style-d .phrase-big{font-family:Plus Jakarta Sans,sans-serif;font-weight:300;letter-spacing:.12em;text-transform:uppercase;font-size:clamp(17px,3vw,28px);color:rgba(196,154,60,.9)}.phrase-deco{display:block;font-size:26px;color:var(--red);margin-bottom:18px}.style-d .phrase-deco{color:var(--gold)}.sec-grid{background:radial-gradient(ellipse 80% 40% at 50% 100%,rgba(142,31,47,.2),transparent),var(--bg)}.photo-mosaic{display:grid;grid-gap:6px;gap:6px;width:100%;max-width:800px;grid-template-columns:repeat(3,1fr)}.photo-mosaic.cols-1{grid-template-columns:1fr;max-width:420px}.photo-mosaic.cols-2{grid-template-columns:1fr 1fr;max-width:600px}.photo-mosaic img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:3px;display:block;filter:brightness(.95) saturate(.9);transition:filter .4s,transform .4s cubic-bezier(.22,1,.36,1)}.photo-mosaic img:hover{filter:brightness(1) saturate(1);transform:scale(1.03)}.sec-date{background:radial-gradient(ellipse 65% 50% at 50% 50%,rgba(142,31,47,.3),transparent),var(--bg2);text-align:center}.date-display{display:flex;flex-direction:column;align-items:center;gap:10px}.date-inf{font-size:clamp(60px,14vw,108px);color:var(--red);line-height:1;animation:pulse 3.5s ease-in-out infinite;text-shadow:0 0 40px rgba(192,39,63,.5)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.07)}}.date-since{font-family:Plus Jakarta Sans,sans-serif;font-size:10px;letter-spacing:.48em;text-transform:uppercase;color:var(--gold)}.date-value{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(30px,7vw,56px);font-weight:600;color:var(--text)}.date-sub{font-style:italic;font-size:17px;color:var(--text-dim)}.feed-footer{text-align:center;padding:60px 24px;background:radial-gradient(ellipse 60% 60% at 50% 0,rgba(142,31,47,.2),transparent),var(--bg);position:relative;z-index:3}.feed-footer .heart-big{font-size:56px;display:block;margin-bottom:14px;animation:pulse 2.8s ease-in-out infinite;text-shadow:0 0 30px rgba(192,39,63,.6)}.feed-footer p{font-family:Plus Jakarta Sans,sans-serif;font-size:10px;letter-spacing:.36em;text-transform:uppercase;color:var(--text-muted);margin-top:12px}.feed-footer a{color:var(--red);text-decoration:none}.public-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 18px;gap:20px;background:radial-gradient(ellipse 50% 40% at 50% 100%,rgba(142,31,47,.3),transparent),var(--bg)}.locked{text-align:center;max-width:420px}.locked .heart{font-size:50px;margin-bottom:12px}.locked h2{font-family:Playfair Display,Georgia,serif;font-style:italic;font-size:26px;color:var(--text);margin-bottom:8px}.feed-locked img{filter:blur(16px);-webkit-filter:blur(16px);transform:scale(1.06);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.paywall-banner{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:50;width:calc(100% - 32px);max-width:420px;text-align:center;padding:20px 22px;border-radius:18px;background:rgba(20,8,12,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(192,39,63,.4);box-shadow:0 18px 50px rgba(0,0,0,.5)}.paywall-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}.paywall-text{font-size:15px;color:var(--text);margin-bottom:14px;line-height:1.4}.paywall-cta{display:inline-block;padding:12px 26px;border-radius:999px;background:var(--red);color:#fff;font-weight:600;font-size:15px;text-decoration:none;box-shadow:0 8px 24px rgba(192,39,63,.45);transition:transform .15s ease,box-shadow .15s ease}.paywall-cta:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(192,39,63,.6)}.preview-locked img{filter:blur(10px);-webkit-filter:blur(10px);transform:scale(1.06)}.preview-scroll{border:1px solid var(--border);border-radius:5px;overflow:hidden;max-height:500px;overflow-y:auto;background:var(--bg);margin-bottom:8px;scrollbar-width:thin;scrollbar-color:var(--red) var(--surface)}@media (max-width:540px){.actions{flex-direction:column-reverse}.actions .btn{width:100%}.photo-mosaic{grid-template-columns:1fr 1fr!important}.polaroid{max-width:260px}}.wizard-container{max-width:480px;margin:0 auto;padding:24px 16px 80px;display:flex;flex-direction:column;align-items:stretch;animation:rise .45s ease both}.wizard-header{text-align:center;margin-bottom:36px}.brand-logo,.wizard-header{display:flex;flex-direction:column;align-items:center}.brand-logo{margin-bottom:24px;justify-content:center;gap:10px}.brand-logo-img{width:88px;height:auto;filter:drop-shadow(0 6px 18px rgba(192,39,63,.35))}.brand-logo-name{font-family:var(--font-display,"Playfair Display"),serif;font-size:22px;font-weight:600;letter-spacing:.5px;color:#f0e6e8}.sand-stream{animation:drip 1.5s linear infinite}@keyframes drip{0%{stroke-dashoffset:0}to{stroke-dashoffset:6}}.wizard-title{font-family:Playfair Display,Georgia,serif;font-style:italic;font-weight:400;font-size:clamp(32px,8vw,42px);color:#ffffff;line-height:1.2}.wizard-subtitle{font-family:Plus Jakarta Sans,sans-serif;font-size:15px;color:var(--text-dim);margin-top:8px}.options-list{gap:14px;margin-bottom:32px}.option-card,.options-list{display:flex;flex-direction:column}.option-card{border-radius:12px;border:1px solid rgba(255,255,255,.08);background:#130f10;cursor:pointer;transition:all .22s ease;overflow:hidden;text-align:left}.option-card-content{display:flex;align-items:center;gap:16px;padding:20px}.option-card-icon{font-size:28px;line-height:1;display:flex;align-items:center;justify-content:center}.option-card-text{display:flex;flex-direction:column;gap:4px}.option-card-title{font-family:Plus Jakarta Sans,sans-serif;font-weight:600;font-size:18px;color:#ffffff}.option-card-desc{font-size:13px;color:var(--text-dim);font-style:italic}.option-card-badge{background:#c0273f;color:#ffffff;font-family:Plus Jakarta Sans,sans-serif;font-size:12px;font-weight:600;text-align:center;padding:8px 12px;border-top:1px solid rgba(255,255,255,.05);letter-spacing:.05em}.option-card:hover{border-color:rgba(192,39,63,.4);background:#1a1516}.option-card.selected{border:1.5px solid #c0273f;box-shadow:0 0 16px rgba(192,39,63,.25);background:#181113}.input-group{gap:16px;margin-bottom:32px}.custom-input-wrap,.input-group{display:flex;flex-direction:column}.custom-input{width:100%;background:#0d0a0b;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:16px;font-family:Plus Jakarta Sans,sans-serif;font-size:16px;color:#f43f5e;transition:all .2s ease}.custom-input::placeholder{color:rgba(244,63,94,.45)}.custom-input:focus{outline:none;border-color:#c0273f;box-shadow:0 0 8px rgba(192,39,63,.2)}.custom-input.invalid{border-color:#7f1d1d}.validation-error-banner{background:#270f11;border:1.5px solid #521c21;color:#f87171;border-radius:8px;padding:12px 16px;font-family:Plus Jakarta Sans,sans-serif;font-size:14px;font-weight:500;margin-top:8px;text-align:left;animation:fadeIn .2s ease both}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.date-selector-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-bottom:24px}.date-selector-field{display:flex;flex-direction:column;gap:8px}.date-selector-label{font-family:Plus Jakarta Sans,sans-serif;font-size:14px;font-weight:500;color:#ffffff}.dropdown-container{position:relative}.dropdown-trigger{width:100%;background:#1c191a;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:14px;color:#ffffff;font-family:Plus Jakarta Sans,sans-serif;font-size:15px;text-align:center;cursor:pointer;display:flex;justify-content:center;align-items:center;gap:8px;transition:all .2s ease}.dropdown-trigger:hover{border-color:rgba(255,255,255,.25)}.dropdown-trigger.active-trigger{background:#ffffff;color:#000000;font-weight:600;border-color:#ffffff}.dropdown-menu{position:absolute;top:105%;left:0;right:0;max-height:220px;overflow-y:auto;background:#1e1b1c;border:1px solid rgba(255,255,255,.15);border-radius:8px;z-index:50;box-shadow:0 10px 25px -5px rgba(0,0,0,.5)}.dropdown-item{padding:12px;text-align:center;font-family:Plus Jakarta Sans,sans-serif;font-size:15px;color:#ffffff;cursor:pointer;transition:background .15s ease}.dropdown-item:hover{background:rgba(255,255,255,.08)}.calendar-section{border-top:1px solid rgba(255,255,255,.06);padding-top:24px;margin-top:12px;margin-bottom:24px;display:flex;flex-direction:column;align-items:center;animation:fadeIn .3s ease both}.calendar-title{font-family:Plus Jakarta Sans,sans-serif;font-size:15px;color:#ffffff;margin-bottom:16px;font-weight:500}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px;width:100%;max-width:300px}.calendar-header-cell{text-align:center;font-family:Plus Jakarta Sans,sans-serif;font-size:11px;font-weight:600;color:var(--text-muted);padding:6px 0;text-transform:uppercase}.calendar-day-cell{aspect-ratio:1;border-radius:50%;display:flex;align-items:center;justify-content:center;border:none;font-family:Plus Jakarta Sans,sans-serif;font-size:14px;transition:all .15s ease}.calendar-day-cell.empty{background:transparent;cursor:default}.calendar-day-cell.day-btn{background:#181516;color:var(--text-dim);cursor:pointer}.calendar-day-cell.day-btn:hover{background:rgba(255,255,255,.1);color:#ffffff}.calendar-day-cell.day-btn.selected{background:#ffffff;color:#000000;font-weight:600;box-shadow:0 0 10px rgba(255,255,255,.2)}.calendar-helper-text{font-size:12.5px;color:var(--text-muted);font-style:italic;text-align:center;margin-top:16px;margin-bottom:24px;line-height:1.4}.photo-placeholders{display:flex;justify-content:center;gap:12px;margin-bottom:24px}.photo-placeholder-card{width:85px;height:115px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:#110d0e;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 12px rgba(0,0,0,.4)}.photo-placeholder-card img{width:100%;height:100%;object-fit:cover}.photo-upload-container{display:flex;flex-direction:column;align-items:center;gap:16px;margin-bottom:32px}.select-photos-btn{background:#ffffff;color:#000000;font-family:Plus Jakarta Sans,sans-serif;font-size:14.5px;font-weight:600;border-radius:28px;padding:12px 24px;border:none;cursor:pointer;display:flex;align-items:center;gap:10px;box-shadow:0 4px 15px rgba(255,255,255,.15);transition:all .2s ease}.select-photos-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(255,255,255,.25)}.photo-gallery-preview{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:8px;gap:8px;width:100%;margin-top:16px}.photo-gallery-item{position:relative;aspect-ratio:1;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.photo-gallery-item img{width:100%;height:100%;object-fit:cover}.photo-gallery-item .remove-btn{position:absolute;top:2px;right:2px;background:rgba(0,0,0,.75);color:#c0273f;border:none;border-radius:50%;width:18px;height:18px;font-size:12px}.photo-gallery-item .remove-btn,.wizard-btn-primary{display:flex;align-items:center;justify-content:center;cursor:pointer}.wizard-btn-primary{width:100%;background:#c0273f;color:#ffffff;font-family:Plus Jakarta Sans,sans-serif;font-size:15px;font-weight:600;letter-spacing:.05em;padding:15px;border-radius:8px;border:none;gap:8px;box-shadow:0 4px 18px -4px rgba(192,39,63,.6);transition:all .22s ease}.wizard-btn-primary:hover:not(:disabled){background:#d63050;transform:translateY(-1px);box-shadow:0 6px 24px -2px rgba(192,39,63,.75)}.wizard-btn-primary:disabled{background:#3e1b1e;color:rgba(255,255,255,.25);cursor:not-allowed;box-shadow:none}.wizard-btn-ghost{width:100%;background:#1c191a;color:var(--text-dim);font-family:Plus Jakarta Sans,sans-serif;font-size:15px;font-weight:500;padding:15px;border-radius:8px;border:1px solid rgba(255,255,255,.08);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .22s ease;margin-top:12px}.wizard-btn-ghost:hover{border-color:rgba(255,255,255,.2);color:#ffffff;background:#242022}.time-counter{display:flex;flex-direction:column;align-items:center;text-align:center;padding:28px 20px;background:radial-gradient(ellipse 65% 50% at 50% 50%,rgba(142,31,47,.25),transparent),#130d0f;border:1px solid var(--border);border-radius:12px;max-width:460px;margin:24px auto;box-shadow:0 10px 30px rgba(0,0,0,.5)}.time-counter .date-since{font-family:Plus Jakarta Sans,sans-serif;font-size:11px;letter-spacing:.48em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}.time-counter .date-inf{font-size:48px;color:var(--red);line-height:1;margin-bottom:12px;display:inline-block;animation:pulse 3.5s ease-in-out infinite;text-shadow:0 0 25px rgba(192,39,63,.4)}.counter-grid{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:10px;margin-bottom:16px}.counter-item{display:flex;flex-direction:column;align-items:center;min-width:54px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.04);padding:8px 6px;border-radius:6px}.counter-num{font-size:26px;font-weight:700;color:#ffffff;line-height:1.1}.counter-lbl,.counter-num{font-family:Plus Jakarta Sans,sans-serif}.counter-lbl{font-size:10px;text-transform:uppercase;color:var(--gold);letter-spacing:.08em;margin-top:4px;font-weight:500}.date-value-sub{font-size:16px}.date-value-sub,.time-counter .date-sub{font-family:Cormorant Garamond,Georgia,serif;color:var(--text-dim);font-style:italic}.time-counter .date-sub{font-size:18px;margin-top:12px}@keyframes floatUpEmoji{0%{transform:translateY(0) scale(.6) rotate(0deg);opacity:0}15%{opacity:.9}55%{opacity:.9}to{transform:translateY(-75vh) scale(1.2) rotate(25deg);opacity:0}}.floating-emoji{animation:floatUpEmoji 3.2s cubic-bezier(.1,.8,.3,1) forwards;-webkit-animation:floatUpEmoji 3.2s cubic-bezier(.1,.8,.3,1) forwards;will-change:transform,opacity}.wrapped-container{position:fixed;inset:0;z-index:100;overflow:hidden;background:#191414;font-family:Montserrat,Inter,sans-serif;-moz-user-select:none;user-select:none;-webkit-user-select:none}.wrapped-progress-bars{position:absolute;top:16px;left:16px;right:16px;display:flex;gap:6px;z-index:102}.wrapped-progress-bar-bg{height:3px;flex:1 1;background:rgba(255,255,255,.25);border-radius:2px;overflow:hidden}.wrapped-progress-bar-fg{height:100%;background:#fff;width:0}.wrapped-progress-bar-fg.active{background:#1db954}.wrapped-slide-wrapper{position:relative;width:100%;height:100%}.wrapped-slide{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:40px 24px 110px;text-align:center;color:#fff;opacity:0;pointer-events:none;transition:opacity .5s cubic-bezier(.25,1,.5,1);background-size:cover;background-position:50%}.wrapped-slide.active{opacity:1;pointer-events:auto}.slide-gradient-0{background:linear-gradient(135deg,#1db954,#191414)}.slide-gradient-1{background:linear-gradient(135deg,#ff007f,#7b00ff)}.slide-gradient-2{background:linear-gradient(135deg,#00ff66,#330066)}.slide-gradient-3{background:linear-gradient(135deg,#ffe600,#ff5e00)}.slide-gradient-4{background:linear-gradient(135deg,#00d2ff,#ff007f)}.slide-gradient-5{background:linear-gradient(135deg,#191414,#3f001c)}.wrapped-eyebrow{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:#1db954;margin-bottom:16px;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.5);animation:wrappedFadeIn .8s ease forwards}.wrapped-title-vibrant{font-size:34px;font-weight:900;line-height:1.1;margin-bottom:24px;color:#fff;text-shadow:0 4px 12px rgba(0,0,0,.4);letter-spacing:-.03em;text-transform:uppercase}.wrapped-big-text{font-size:26px;font-weight:800;line-height:1.3;color:#fff;padding:0 12px;text-shadow:0 4px 12px rgba(0,0,0,.5)}.wrapped-polaroid-container{position:relative;background:#fff;padding:12px 12px 24px;box-shadow:0 20px 40px rgba(0,0,0,.6);border-radius:4px;transform:rotate(-3deg);max-width:280px;width:100%;animation:wrappedRotateIn .8s cubic-bezier(.175,.885,.32,1.275) forwards}.wrapped-polaroid-img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:2px;display:block}.wrapped-polaroid-caption{font-family:Dancing Script,cursive;font-size:22px;color:#191414;margin-top:12px;text-align:center}.wrapped-spotify-card{width:100%;max-width:300px;background:rgba(255,255,255,.08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:16px;margin-top:24px;display:flex;flex-direction:column;gap:12px;text-align:left}.wrapped-spotify-card-top{display:flex;align-items:center;gap:12px}.wrapped-spotify-card-img{width:50px;height:50px;border-radius:6px;object-fit:cover}.wrapped-spotify-card-info{display:flex;flex-direction:column;gap:2px}.wrapped-spotify-card-title{font-weight:700;font-size:14px;color:#fff}.wrapped-spotify-card-artist{font-size:12px;color:rgba(255,255,255,.6)}.wrapped-spotify-card-bar{height:4px;background:rgba(255,255,255,.2);border-radius:2px;position:relative;overflow:hidden}.wrapped-spotify-card-bar-fill{height:100%;width:65%;background:#1db954;border-radius:2px}.wrapped-spotify-card-controls{display:flex;justify-content:space-between;font-size:11px;color:rgba(255,255,255,.5)}.wrapped-music-overlay{position:absolute;bottom:24px;left:24px;right:24px;height:64px;background:rgba(25,20,20,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:32px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border:1px solid rgba(255,255,255,.12);z-index:102;box-shadow:0 10px 30px rgba(0,0,0,.5)}.wrapped-music-btn{background:#1db954;border:none;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;box-shadow:0 4px 10px rgba(29,185,84,.4);transition:transform .2s}.wrapped-music-btn:active{transform:scale(.9)}.wrapped-music-btn-text{font-size:12px;font-weight:700;color:#fff;flex:1 1;margin-left:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.wrapped-music-waves{display:flex;align-items:flex-end;gap:3px;height:18px;margin-right:8px}.wrapped-music-wave-bar{width:3px;background:#1db954;height:100%;animation:musicWave 1.2s ease-in-out infinite alternate}.wrapped-music-wave-bar:nth-child(2){animation-delay:.2s}.wrapped-music-wave-bar:nth-child(3){animation-delay:.4s}.wrapped-music-wave-bar:nth-child(4){animation-delay:.6s}.wrapped-timeline-slide{display:flex;flex-direction:column;gap:20px;width:100%}.wrapped-time-box{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);border-radius:16px;padding:24px 16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.wrapped-time-value{font-size:42px;font-weight:900;color:#ffe600;line-height:1.1;text-shadow:0 4px 10px rgba(255,230,0,.3)}@keyframes musicWave{0%{height:4px}to{height:18px}}@keyframes wrappedFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes wrappedRotateIn{0%{opacity:0;transform:scale(.8) rotate(-15deg)}to{opacity:1;transform:scale(1) rotate(-3deg)}}.floating-vinyl-player{position:fixed;bottom:24px;right:24px;z-index:99;display:flex;align-items:center;gap:10px;background:rgba(0,0,0,.85);border:1.5px solid rgba(196,154,60,.4);padding:8px 12px 8px 8px;border-radius:30px;color:#fff;cursor:pointer;box-shadow:0 10px 25px rgba(0,0,0,.6);transition:transform .2s,border-color .3s}.floating-vinyl-player:hover{border-color:rgba(196,154,60,.8)}.floating-vinyl-disc{width:38px;height:38px;background:radial-gradient(circle,#222 30%,#050505 31%,#111 60%,#050505 70%,#c49a3c 72%,#c49a3c 75%,#000 77%);border-radius:50%;position:relative;box-shadow:0 4px 8px rgba(0,0,0,.3)}.floating-vinyl-disc:after{content:"";position:absolute;top:50%;left:50%;width:6px;height:6px;background:#fff;border-radius:50%;transform:translate(-50%,-50%)}.floating-vinyl-disc.spin{animation:vinylSpin 3s linear infinite}.floating-vinyl-text{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#c49a3c}@keyframes vinylSpin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.wrapped-nav-area{position:absolute;top:60px;bottom:100px;width:50%;z-index:101}.wrapped-nav-area.left{left:0}.wrapped-nav-area.right{right:0}.timeline-container{min-height:100vh;background-color:#0b090a;color:#f5f3f4;padding:64px 20px 100px;font-family:Montserrat,sans-serif;position:relative;overflow-x:hidden}.timeline-header{text-align:center;margin-bottom:60px}.timeline-eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.25em;color:#e5383b;margin-bottom:8px;display:block}.timeline-title{font-family:Dancing Script,cursive;font-size:48px;margin:12px 0;background:linear-gradient(145deg,#ba181b,#f5f3f4);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.timeline-line-wrapper{position:relative;max-width:800px;margin:0 auto}.timeline-line-wrapper:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:4px;background:linear-gradient(180deg,#ba181b,#a4161a,#660708,#161a1d);transform:translateX(-50%);box-shadow:0 0 15px rgba(186,24,27,.4)}.timeline-item{position:relative;margin-bottom:80px;width:100%;display:flex;justify-content:flex-end}.timeline-item:nth-child(2n){justify-content:flex-start}.timeline-item:after{content:"";position:absolute;top:24px;left:50%;width:20px;height:20px;border-radius:50%;background:#ba181b;border:4px solid #0b090a;transform:translateX(-50%);z-index:5;box-shadow:0 0 10px #ba181b;transition:background .3s,transform .3s}.timeline-item:hover:after{background:#f5f3f4;transform:translateX(-50%) scale(1.25)}.timeline-card{width:45%;background:rgba(22,26,29,.7);border:1px solid rgba(186,24,27,.25);border-radius:16px;padding:24px;box-shadow:0 15px 30px rgba(0,0,0,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;transition:transform .3s ease,border-color .3s ease}.timeline-card:hover{transform:translateY(-5px);border-color:rgba(186,24,27,.6)}.timeline-date-badge{display:inline-block;background:#ba181b;color:#fff;font-size:12px;font-weight:700;padding:6px 14px;border-radius:20px;margin-bottom:16px;box-shadow:0 4px 10px rgba(186,24,27,.3)}.timeline-photo{width:100%;border-radius:8px;object-fit:cover;aspect-ratio:4/3;margin-bottom:16px;box-shadow:0 8px 16px rgba(0,0,0,.3)}.timeline-phrase{font-size:15px;line-height:1.6;color:#d3d3d3;font-style:italic}@media (max-width:768px){.timeline-line-wrapper:before{left:20px}.timeline-item{justify-content:flex-start!important;padding-left:45px;box-sizing:border-box}.timeline-item:after{left:20px}.timeline-card{width:100%}}