*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary:#2d8b87;--color-primary-light:#45b5b0;--color-primary-dark:#1f6b68;--color-secondary:#e8edf5;--color-accent:#7b5ea7;--color-accent-light:#c4a8e0;--color-bg:#fbfbfe;--color-bg-alt:#f3f1f8;--color-text:#1a1a2e;--color-text-light:#4a4a5e;--color-text-muted:#8888a0;--color-white:#fff;--color-border:#ddd8e8;--color-success:#4caf50;--color-error:#e74c3c;--font-display:"Playfair Display", Georgia, serif;--font-heading:"Cormorant Garamond", Georgia, serif;--font-heading-sc:"Cormorant SC", "Cormorant Garamond", Georgia, serif;--font-body:"Lato", "Segoe UI", sans-serif;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 30px #0000001f;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--max-width:1200px}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;line-height:1.6}#root,.app{flex-direction:column;min-height:100vh;display:flex}main{flex:1}a{color:var(--color-primary);text-decoration:none;transition:color .2s}a:hover{color:var(--color-primary-dark)}img{max-width:100%;display:block}h1,h2,h3,h4{font-family:var(--font-heading);color:var(--color-text);line-height:1.3}.container{max-width:var(--max-width);margin:0 auto;padding:0 24px}.section{padding:80px 0}.section-title{text-align:center;color:var(--color-text);margin-bottom:16px;font-size:2.5rem}.section-subtitle{text-align:center;color:var(--color-text-light);margin-bottom:48px;font-size:1.1rem}.btn{border-radius:var(--radius-sm);font-family:var(--font-body);cursor:pointer;border:none;align-items:center;gap:8px;padding:12px 28px;font-size:1rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.btn-primary{background:var(--color-primary);color:var(--color-white)}.btn-primary:hover{background:var(--color-primary-dark);color:var(--color-white)}.btn-outline{color:var(--color-primary);border:2px solid var(--color-primary);background:0 0}.btn-outline:hover{background:var(--color-primary);color:var(--color-white)}.btn-sm{padding:8px 20px;font-size:.9rem}.btn-lg{padding:16px 36px;font-size:1.1rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.reveal{opacity:0;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(30px)}.reveal.revealed{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translate(-40px)}.reveal-left.revealed{opacity:1;transform:translate(0)}.reveal-scale{opacity:0;transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transform:scale(.9)}.reveal-scale.revealed{opacity:1;transform:scale(1)}.btn{transition:all .3s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.btn:active{transform:scale(.97)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #2d8b8759}.btn-outline:hover{transform:translateY(-2px);box-shadow:0 6px 20px #2d8b8733}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.reveal,.reveal-left,.reveal-scale{opacity:1;transform:none}}@media (width<=768px){.section{padding:48px 0}.section-title{font-size:1.8rem}.section-subtitle{margin-bottom:32px;font-size:1rem}.container{padding:0 16px}.btn-lg{padding:14px 28px;font-size:1rem}}@media (width<=480px){.section{padding:36px 0}.section-title{font-size:1.6rem}.container{padding:0 12px}.btn{padding:10px 22px;font-size:.95rem}.btn-lg{justify-content:center;width:100%;min-height:44px;padding:12px 24px;font-size:.95rem}}.header{z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--color-border);background:#fbfbfef2;animation:.5s cubic-bezier(.16,1,.3,1) fadeInDown;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;height:72px;display:flex}.logo{align-items:center;text-decoration:none;transition:transform .3s;display:flex}.logo-img{object-fit:contain;width:auto;height:44px}.logo:hover{transform:scale(1.05)}.menu-toggle{color:var(--color-text);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:8px;transition:background .2s;display:none}.menu-toggle:hover{background:var(--color-bg-alt)}.nav{gap:32px;display:flex}.nav a{color:var(--color-text-light);letter-spacing:1px;text-transform:uppercase;border-bottom:2px solid #0000;padding:4px 0;font-size:.8rem;font-weight:600;text-decoration:none;transition:color .3s,border-color .3s}.nav a:hover,.nav a.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}@media (width<=768px){.header-inner{height:64px}.logo-img{height:38px}.menu-toggle{display:block}.nav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-lg);background:#fbfbfefa;flex-direction:column;gap:4px;padding:16px 24px;display:none;position:absolute;top:64px;left:0;right:0}.nav--open{animation:.3s cubic-bezier(.16,1,.3,1) fadeInDown;display:flex}.nav a{border-radius:var(--radius-sm);border-bottom:none;padding:12px 8px;font-size:.85rem;transition:background .2s,color .2s}.nav a:hover,.nav a.active{background:var(--color-bg-alt);border-bottom-color:#0000}}.footer{color:var(--color-secondary);text-align:center;background:linear-gradient(#1a1a2e 0%,#0f0f1e 100%);padding:48px 0}.footer-inner{flex-direction:column;align-items:center;gap:8px;display:flex}.footer-logo{object-fit:contain;filter:brightness(0)invert();opacity:.85;width:auto;height:60px;margin-bottom:8px;transition:transform .3s}.footer-logo:hover{transform:scale(1.05)}.footer-names{font-family:var(--font-display);letter-spacing:2px;align-items:center;gap:8px;font-size:1.4rem;display:flex}.footer-heart{color:var(--color-primary-light);fill:var(--color-primary-light);animation:2.5s ease-in-out infinite pulse}.footer-date{color:var(--color-accent);font-weight:600}.footer-verse{font-family:var(--font-heading);color:var(--color-accent-light);max-width:400px;margin-top:8px;font-size:.85rem;font-style:italic}.footer-copy{color:var(--color-text-muted);margin-top:8px;font-size:.8rem}@media (width<=768px){.footer{padding:36px 0}.footer-logo{height:48px}.footer-names{font-size:1.2rem}.footer-verse{padding:0 16px;font-size:.8rem}}@media (width<=480px){.footer{padding:28px 0}.footer-logo{height:40px}.footer-names{font-size:1.05rem}.footer-verse{font-size:.75rem}}.countdown{flex-wrap:wrap;justify-content:center;gap:24px;display:flex}.countdown-unit{border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:100px;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffe6;flex-direction:column;align-items:center;padding:20px 28px;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s;display:flex}.countdown-unit:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}.countdown-value{font-family:var(--font-display);color:var(--color-primary);font-size:2.8rem;font-weight:700;line-height:1}.countdown-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:1px;margin-top:8px;font-size:.85rem;font-weight:600}@media (width<=768px){.countdown{gap:16px}.countdown-unit{min-width:85px;padding:16px 22px}.countdown-value{font-size:2.2rem}.countdown-label{font-size:.75rem}}@media (width<=480px){.countdown{gap:10px}.countdown-unit{min-width:68px;padding:12px 14px}.countdown-value{font-size:1.8rem}.countdown-label{letter-spacing:0;font-size:.7rem}}.hero{justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.hero-gradient{z-index:0;background:linear-gradient(#c8dce8 0%,#dae4f0 15%,#eee9f3 40%,#fff 55%,#f0eaf5 70%,#e8ddf0 85%,#ddd0e8 100%) 0 0/100% 160%;animation:24s ease-in-out infinite heroGradientDrift;position:absolute;inset:0}@keyframes heroGradientDrift{0%,to{background-position:50% 0}50%{background-position:50% 100%}}.hero-leaves{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.hero-leaf{opacity:0;will-change:transform, opacity;animation-timing-function:ease-in-out;animation-iteration-count:infinite;position:absolute;top:0}.hero-leaf-v1{animation-name:leafFall1}.hero-leaf-v2{animation-name:leafFall2}.hero-leaf-v3{animation-name:leafFall3}.hero-leaf-v4{animation-name:leafFall4}.hero-leaf-v5{animation-name:leafFall5}@keyframes leafFall1{0%{opacity:0;transform:translateY(-12vh)rotate(0)}8%{opacity:var(--leaf-peak,.4)}30%{transform:translate(22px,20vh)rotate(70deg)}60%{transform:translate(-14px,58vh)rotate(150deg)}90%{opacity:var(--leaf-peak,.4)}to{opacity:0;transform:translate(16px,118vh)rotate(240deg)}}@keyframes leafFall2{0%{opacity:0;transform:translateY(-10vh)rotate(0)}8%{opacity:var(--leaf-peak,.4)}35%{transform:translate(-24px,24vh)rotate(-80deg)}65%{transform:translate(14px,60vh)rotate(-170deg)}90%{opacity:var(--leaf-peak,.4)}to{opacity:0;transform:translate(-18px,116vh)rotate(-270deg)}}@keyframes leafFall3{0%{opacity:0;transform:translateY(-14vh)rotate(10deg)}8%{opacity:var(--leaf-peak,.4)}25%{transform:translate(26px,16vh)rotate(55deg)}50%{transform:translate(-22px,46vh)rotate(100deg)}75%{transform:translate(20px,80vh)rotate(160deg)}90%{opacity:var(--leaf-peak,.4)}to{opacity:0;transform:translate(-10px,120vh)rotate(210deg)}}@keyframes leafFall4{0%{opacity:0;transform:translateY(-10vh)rotate(0)}8%{opacity:var(--leaf-peak,.4)}50%{transform:translate(10px,55vh)rotate(200deg)}90%{opacity:var(--leaf-peak,.4)}to{opacity:0;transform:translate(-8px,118vh)rotate(380deg)}}@keyframes leafFall5{0%{opacity:0;transform:translateY(-12vh)rotate(0)}8%{opacity:var(--leaf-peak,.4)}50%{transform:translate(-10px,52vh)rotate(-190deg)}90%{opacity:var(--leaf-peak,.4)}to{opacity:0;transform:translate(11px,117vh)rotate(-360deg)}}@media (prefers-reduced-motion:reduce){.hero-leaves{display:none}}.hero-main{z-index:1;flex-direction:column;align-items:center;width:100%;display:flex;position:relative}.hero-content{text-align:center;max-width:680px;margin:0 auto;padding:0 24px 60px}.hero-anim{opacity:0;animation:.8s cubic-bezier(.16,1,.3,1) forwards fadeInUp}.hero-anim-1{animation-delay:.1s}.hero-anim-2{animation-delay:.2s}.hero-anim-3{animation-name:scaleIn;animation-delay:.4s}.hero-anim-4{animation-delay:.6s}.hero-anim-5{animation-delay:.8s}.hero-anim-6{animation-delay:1s}.hero-anim-7{animation-name:fadeIn;animation-delay:1.1s}.hero-anim-8{animation-delay:1.2s}.hero-anim-9{animation-name:scaleIn;animation-delay:1.4s}.hero-anim-10{animation-delay:1.5s}.hero-verse-wrap{justify-content:center;width:100%;padding-top:60px;display:flex}.hero-verse-block{text-align:center;width:min(900px,100% - 48px)}.hero-verse{font-family:var(--font-heading);color:var(--color-text-light);margin-bottom:4px;font-size:1.28rem;font-style:italic;line-height:1.7}.hero-verse-break{display:inline}.hero-verse-ref{font-family:var(--font-heading);color:var(--color-text-muted);margin-bottom:40px;font-size:1.15rem}.hero-monogram{justify-content:center;margin-bottom:24px;display:flex}.hero-logo{object-fit:contain;width:auto;height:180px}.hero-title{font-family:var(--font-display);color:var(--color-text);justify-content:center;align-items:baseline;gap:18px;margin-bottom:28px;font-size:4rem;font-weight:500;line-height:1.1;display:flex}.hero-ampersand{color:var(--color-accent);font-size:.65em;font-style:italic}.hero-invitation{font-family:var(--font-heading-sc);color:var(--color-text);letter-spacing:3px;text-transform:uppercase;margin-bottom:36px;font-size:1.2rem;font-weight:400;line-height:2}.hero-date-block{margin-bottom:28px}.hero-date{font-family:var(--font-heading-sc);color:var(--color-text);letter-spacing:4px;text-transform:uppercase;margin-bottom:4px;font-size:2.6rem;font-weight:600}.hero-time{font-family:var(--font-heading);color:var(--color-primary);letter-spacing:3px;font-size:1.9rem;font-weight:400}.hero-divider{justify-content:center;align-items:center;gap:16px;margin-bottom:28px;display:flex}.hero-divider:before,.hero-divider:after{content:"";background:linear-gradient(90deg, transparent, var(--color-primary), transparent);width:80px;height:1px}.divider-ornament{color:var(--color-accent);font-size:.7rem}.hero-venue{margin-bottom:28px}.venue-name{font-family:var(--font-heading-sc);color:var(--color-text);letter-spacing:5px;text-transform:uppercase;margin-bottom:8px;font-size:1.9rem;font-weight:600}.venue-address{font-family:var(--font-heading-sc);color:var(--color-text-light);letter-spacing:2px;text-transform:uppercase;justify-content:center;align-items:center;gap:6px;font-size:1rem;display:flex}.hero-heart{color:var(--color-primary);margin-bottom:20px;animation:2s ease-in-out 2s infinite pulse}.hero-cta{font-family:var(--font-heading-sc);letter-spacing:3px;text-transform:uppercase;color:var(--color-text);border:2px solid var(--color-primary);padding:14px 36px;font-size:1.05rem;font-weight:600;text-decoration:none;transition:all .4s cubic-bezier(.16,1,.3,1);display:inline-block}.hero-cta:hover{background:var(--color-primary);color:var(--color-white);transform:translateY(-3px);box-shadow:0 8px 25px #2d8b874d}.welcome-section{background:radial-gradient(ellipse at 12% 15%, #c4a8e024, transparent 55%), radial-gradient(ellipse at 88% 85%, #45b5b01f, transparent 55%), var(--color-bg);position:relative;overflow:hidden}.welcome-grid{grid-template-columns:minmax(260px,420px) 1fr;align-items:center;gap:64px;display:grid}.welcome-photo-wrap{max-width:380px;margin:0 auto}.welcome-photo-inner{position:relative}.welcome-photo-inner:before{content:"";border:1.5px solid var(--color-accent-light);border-radius:var(--radius-lg);z-index:0;position:absolute;inset:-18px 18px 18px -18px}.welcome-photo-frame{z-index:1;aspect-ratio:2/3;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:linear-gradient(135deg,#e8edf5,#efe6f5);position:relative;overflow:hidden}.welcome-photo{object-fit:cover;object-position:center 22%;width:100%;height:100%;transition:transform 1s cubic-bezier(.16,1,.3,1);display:block}.welcome-photo-wrap:hover .welcome-photo{transform:scale(1.035)}.welcome-photo-caption{z-index:1;text-align:center;font-family:var(--font-heading);color:var(--color-text-light);margin-top:18px;font-size:1.05rem;font-style:italic;position:relative}.welcome-eyebrow{font-family:var(--font-heading-sc);text-transform:uppercase;letter-spacing:4px;color:var(--color-primary);margin-bottom:14px;font-size:.85rem;font-weight:600;display:inline-block}.welcome-title{font-family:var(--font-display);margin-bottom:18px;font-size:clamp(1.9rem,3vw,2.5rem);font-weight:600;line-height:1.2}.welcome-divider{color:var(--color-accent);align-items:center;gap:14px;margin-bottom:22px;font-size:.75rem;display:flex}.welcome-divider:after{content:"";background:linear-gradient(90deg, var(--color-accent-light), transparent);flex:0 110px;height:1px}.welcome-text{color:var(--color-text-light);max-width:52ch;margin-bottom:18px;line-height:1.85}.welcome-actions{flex-wrap:wrap;gap:16px;margin-top:12px;display:flex}.countdown-section{background:var(--color-bg-alt)}@media (width<=768px){.hero-logo{height:140px}.hero-content{padding:0 20px 40px}.hero-verse-wrap{padding-top:40px}.hero-verse{font-size:1.15rem}.hero-verse-break{display:none}.hero-verse-ref{font-size:1rem}.hero-title{gap:12px;font-size:2.8rem}.hero-date{letter-spacing:2px;font-size:2rem}.hero-time{font-size:1.5rem}.hero-invitation{letter-spacing:2px;font-size:1rem}.venue-name{letter-spacing:3px;font-size:1.5rem}.venue-address{font-size:.85rem}.hero-cta{font-size:.95rem}.hero{min-height:auto;padding:40px 0}.hero-leaf:nth-child(n+9){display:none}.welcome-grid{text-align:center;grid-template-columns:1fr;gap:36px}.welcome-photo-wrap{max-width:300px}.welcome-divider{justify-content:center}.welcome-text{max-width:none;margin-left:auto;margin-right:auto}.welcome-actions{justify-content:center}}@media (width<=480px){.hero-logo{height:110px}.hero-verse{font-size:1rem}.hero-verse-ref{font-size:.9rem}.hero-title{flex-wrap:wrap;gap:8px;font-size:2.2rem}.hero-date{letter-spacing:1px;font-size:1.5rem}.hero-time{font-size:1.2rem}.hero-invitation{letter-spacing:1px;font-size:.85rem;line-height:1.8}.hero-cta{letter-spacing:2px;padding:12px 24px;font-size:.85rem}.venue-name{letter-spacing:2px;font-size:1.2rem}.venue-address{flex-wrap:wrap;justify-content:center;font-size:.8rem}.hero-divider:before,.hero-divider:after{width:50px}}.our-story{overflow-x:hidden}.story-hero{text-align:center;background:radial-gradient(ellipse at 20% 10%, #c4a8e059, transparent 55%), radial-gradient(ellipse at 80% 90%, #45b5b047, transparent 55%), linear-gradient(180deg, #f4eef7 0%, #e6edf3 50%, var(--color-bg) 100%);justify-content:center;align-items:center;min-height:88vh;display:flex;position:relative;overflow:hidden}.story-hero-overlay{opacity:.6;pointer-events:none;background-image:radial-gradient(circle at 12% 30%,#ffffff80 0 1px,#0000 1px),radial-gradient(circle at 85% 70%,#ffffff73 0 1px,#0000 1px),radial-gradient(circle at 50% 20%,#ffffff59 0 1px,#0000 1px);background-size:320px 320px,240px 240px,180px 180px;position:absolute;inset:0}.story-hero-content{z-index:1;max-width:720px;padding:96px 24px 72px;position:relative}.story-hero-eyebrow{font-family:var(--font-heading-sc);text-transform:uppercase;letter-spacing:6px;color:var(--color-primary);opacity:0;margin-bottom:24px;font-size:.85rem;animation:.8s cubic-bezier(.16,1,.3,1) 50ms forwards storyFadeDown;display:inline-block;transform:translateY(-8px)}.story-hero-title{font-family:var(--font-display);color:var(--color-text);flex-direction:column;gap:4px;margin-bottom:28px;font-size:clamp(2.6rem,6vw,4.5rem);font-weight:500;line-height:1.1;display:flex}.story-hero-title span{opacity:0;animation:.9s cubic-bezier(.16,1,.3,1) forwards storyFadeUp}.story-hero-title span:first-child{animation-delay:.2s}.story-hero-title span:nth-child(2){animation-delay:.35s}.story-hero-title span:nth-child(3){animation-delay:.5s}.story-hero-amp{color:var(--color-accent);font-size:.65em;font-style:italic}.story-hero-divider{width:200px;color:var(--color-accent);opacity:0;justify-content:center;align-items:center;gap:12px;margin:0 auto 28px;animation:.8s cubic-bezier(.16,1,.3,1) .65s forwards storyFadeUp;display:flex}.story-hero-divider:before,.story-hero-divider:after{content:"";background:linear-gradient(90deg, transparent, var(--color-accent-light), transparent);flex:1;height:1px}.story-hero-verse{font-family:var(--font-heading);color:var(--color-text-light);opacity:0;margin-bottom:8px;font-size:1.25rem;font-style:italic;line-height:1.6;animation:.9s cubic-bezier(.16,1,.3,1) .8s forwards storyFadeUp}.story-hero-ref{font-family:var(--font-heading-sc);letter-spacing:3px;color:var(--color-primary);opacity:0;margin-bottom:36px;font-size:.8rem;animation:.9s cubic-bezier(.16,1,.3,1) .95s forwards storyFadeUp}.story-hero-lead{color:var(--color-text-light);opacity:0;max-width:560px;margin:0 auto;font-size:1.05rem;line-height:1.8;animation:.9s cubic-bezier(.16,1,.3,1) 1.1s forwards storyFadeUp}.story-hero-scroll{border:2px solid var(--color-primary);opacity:.55;border-radius:14px;width:22px;height:36px;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.story-hero-scroll span{background:var(--color-primary);border-radius:2px;width:4px;height:6px;animation:1.8s ease-in-out infinite scrollDot;position:absolute;top:6px;left:50%;transform:translate(-50%)}@keyframes scrollDot{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,14px)}}@keyframes storyFadeUp{to{opacity:1;transform:translateY(0)}0%{opacity:0;transform:translateY(16px)}}@keyframes storyFadeDown{to{opacity:1;transform:translateY(0)}0%{opacity:0;transform:translateY(-12px)}}.story-timeline-section{background:linear-gradient(180deg, var(--color-bg) 0%, #faf7fc 100%);position:relative}.story-timeline{max-width:980px;margin:0 auto;padding:16px 0;position:relative}.story-timeline-line{background:linear-gradient(180deg, transparent, var(--color-accent-light) 8%, var(--color-primary-light) 50%, var(--color-accent-light) 92%, transparent);width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.timeline-item{opacity:0;width:50%;padding:0 56px 64px;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);position:relative;transform:translateY(28px)}.timeline-item.revealed{opacity:1;transform:translateY(0)}.timeline-item--left{text-align:right;margin-left:0;padding-right:56px}.timeline-item--right{text-align:left;margin-left:50%;padding-left:56px}.timeline-marker{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));color:#fff;border:4px solid var(--color-bg);width:40px;height:40px;box-shadow:0 0 0 2px var(--color-primary-light), var(--shadow-md);z-index:2;border-radius:50%;justify-content:center;align-items:center;transition:transform .35s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;top:14px}.timeline-item--left .timeline-marker{right:-20px}.timeline-item--right .timeline-marker{left:-20px}.timeline-item:hover .timeline-marker{transform:scale(1.12)rotate(-6deg)}.timeline-item--highlight .timeline-marker{background:linear-gradient(135deg, var(--color-accent), #5a4083);box-shadow:0 0 0 2px var(--color-accent-light), 0 0 0 8px #7b5ea726, var(--shadow-md);animation:2.4s ease-in-out infinite markerPulse}@keyframes markerPulse{0%,to{box-shadow:0 0 0 2px var(--color-accent-light), 0 0 0 8px #7b5ea726, var(--shadow-md)}50%{box-shadow:0 0 0 2px var(--color-accent-light), 0 0 0 14px #7b5ea70d, var(--shadow-md)}}.timeline-card{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:28px 28px 24px;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s,border-color .35s;position:relative}.timeline-card:before{content:"";background:var(--color-white);border:1px solid var(--color-border);width:14px;height:14px;position:absolute;top:22px;transform:rotate(45deg)}.timeline-item--left .timeline-card:before{border-bottom:none;border-left:none;right:-8px}.timeline-item--right .timeline-card:before{border-top:none;border-right:none;left:-8px}.timeline-item:hover .timeline-card{box-shadow:var(--shadow-lg);border-color:var(--color-primary-light);transform:translateY(-4px)}.timeline-item--highlight .timeline-card{border-color:var(--color-accent-light);background:linear-gradient(155deg,#fff 0%,#f6f0fa 100%)}.timeline-image{aspect-ratio:3/2;border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);background:linear-gradient(135deg,#e8edf5,#efe6f5);width:calc(100% + 56px);margin:-28px -28px 20px;position:relative;overflow:hidden}.timeline-image-img{object-fit:cover;width:100%;height:100%;transition:transform 1.2s cubic-bezier(.16,1,.3,1);display:block}.timeline-image:after{content:"";pointer-events:none;background:linear-gradient(#0000 55%,#0000002e);position:absolute;inset:0}.timeline-item:hover .timeline-image-img{transform:scale(1.06)}.timeline-image-fallback{width:100%;height:100%;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.timeline-image-fallback span{letter-spacing:1px;text-transform:uppercase;font-size:.75rem}.timeline-date{font-family:var(--font-heading-sc);letter-spacing:3px;text-transform:uppercase;color:var(--color-primary);font-size:.82rem;font-weight:600;display:block}.timeline-place{color:var(--color-text-muted);align-items:center;gap:4px;margin-top:6px;font-size:.78rem;font-style:italic;display:inline-flex}.timeline-title{font-family:var(--font-display);color:var(--color-text);margin:12px 0 14px;font-size:1.55rem;font-weight:500;line-height:1.25}.timeline-paragraph{color:var(--color-text-light);margin-bottom:12px;font-size:.98rem;line-height:1.75}.timeline-paragraph:last-of-type{margin-bottom:0}.timeline-quote{border-left:3px solid var(--color-accent);font-family:var(--font-heading);color:var(--color-text);text-align:left;background:linear-gradient(90deg,#c4a8e01f,#0000);border-radius:4px;margin-top:18px;padding:14px 18px;font-size:1rem;font-style:italic}.timeline-item--left .timeline-quote{text-align:right;border-left:none;border-right:3px solid var(--color-accent);background:linear-gradient(-90deg,#c4a8e01f,#0000)}.story-gallery-section{background:var(--color-bg-alt)}.story-gallery{grid-template-columns:repeat(4,1fr);gap:32px;max-width:1000px;margin:0 auto;display:grid}.polaroid{background:var(--color-white);opacity:0;border-radius:4px;flex-direction:column;gap:14px;padding:14px 14px 24px;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1),box-shadow .35s;display:flex;transform:translateY(24px)rotate(0);box-shadow:0 6px 18px #00000014,0 2px 4px #0000000a}.polaroid.revealed{opacity:1}.polaroid--tilt-left.revealed{transform:translateY(0)rotate(-2.5deg)}.polaroid--tilt-right.revealed{transform:translateY(0)rotate(2.5deg)}.polaroid:hover{z-index:2;transform:translateY(-6px)rotate(0)scale(1.02);box-shadow:0 14px 28px #0000001f,0 4px 8px #0000000f}.polaroid-img{aspect-ratio:1;background:linear-gradient(135deg,#e8edf5,#efe6f5);border-radius:2px;position:relative;overflow:hidden}.polaroid-img-photo{object-fit:cover;width:100%;height:100%;display:block}.polaroid-action{min-height:42px;color:var(--color-primary-dark);font-family:var(--font-heading-sc);letter-spacing:1.5px;text-transform:uppercase;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#ffffffe6;border:1px solid #ffffffbf;border-radius:8px;justify-content:center;align-items:center;gap:8px;font-size:.76rem;font-weight:700;transition:transform .25s,background .25s,box-shadow .25s;display:inline-flex;position:absolute;bottom:12px;left:12px;right:12px;box-shadow:0 12px 26px #2d22342e}.polaroid-action:hover,.polaroid-action:focus-visible{background:var(--color-white);outline:none;transform:translateY(-2px);box-shadow:0 16px 32px #2d22343d}.polaroid-action svg{flex:none}.polaroid-img-fallback{width:100%;height:100%;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.polaroid-img-fallback span{letter-spacing:1px;text-transform:uppercase;font-size:.75rem}.polaroid figcaption{font-family:var(--font-heading);text-align:center;color:var(--color-text);font-size:1rem;font-style:italic}.prewedding-lightbox{z-index:1000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1f1825bd;justify-content:center;align-items:center;padding:24px;animation:.24s both lightboxFade;display:flex;position:fixed;inset:0}.prewedding-lightbox-panel{background:#fffafc;border:1px solid #ffffff47;border-radius:8px;grid-template-rows:auto minmax(0,1fr) auto;width:min(1080px,100%);max-height:calc(100dvh - 48px);display:grid;position:relative;overflow:hidden;box-shadow:0 30px 80px #00000057}.prewedding-lightbox-close{z-index:4;width:42px;height:42px;color:var(--color-primary-dark);cursor:pointer;background:#ffffffdb;border:1px solid #ffffffb8;border-radius:50%;justify-content:center;align-items:center;transition:transform .2s,background .2s;display:inline-flex;position:absolute;top:14px;right:14px;box-shadow:0 10px 24px #1f18252e}.prewedding-lightbox-close:hover,.prewedding-lightbox-close:focus-visible{background:var(--color-white);outline:none;transform:scale(1.05)}.prewedding-lightbox-copy{border-bottom:1px solid #c4a8e038;padding:20px 76px 18px 24px}.prewedding-lightbox-copy span{font-family:var(--font-heading-sc);letter-spacing:2.2px;text-transform:uppercase;color:var(--color-primary);margin-bottom:4px;font-size:.74rem;font-weight:700;display:block}.prewedding-lightbox-copy strong{font-family:var(--font-display);color:var(--color-text);font-size:clamp(1.35rem,3vw,2rem);font-weight:500;line-height:1.15;display:block}.prewedding-lightbox-stage{background:#19131b;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.prewedding-lightbox-photo{object-fit:contain;width:100%;height:min(68vh,720px);display:block}.prewedding-lightbox-nav{z-index:3;width:46px;height:46px;color:var(--color-primary-dark);cursor:pointer;background:#ffffffd6;border:1px solid #ffffff8a;border-radius:50%;justify-content:center;align-items:center;transition:transform .2s,background .2s;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 12px 24px #00000038}.prewedding-lightbox-nav:hover,.prewedding-lightbox-nav:focus-visible{background:var(--color-white);outline:none;transform:translateY(-50%)scale(1.06)}.prewedding-lightbox-nav--prev{left:18px}.prewedding-lightbox-nav--next{right:18px}.prewedding-lightbox-footer{border-top:1px solid #c4a8e038;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:18px;padding:14px 18px;display:grid}.prewedding-lightbox-footer>span{font-family:var(--font-heading-sc);letter-spacing:2px;color:var(--color-primary);white-space:nowrap;font-size:.78rem;font-weight:700}.prewedding-lightbox-thumbs{gap:8px;min-width:0;padding-bottom:2px;display:flex;overflow-x:auto}.prewedding-thumb{cursor:pointer;opacity:.62;background:0 0;border:2px solid #0000;border-radius:6px;flex:none;width:48px;height:58px;padding:0;transition:opacity .2s,border-color .2s,transform .2s;overflow:hidden}.prewedding-thumb:hover,.prewedding-thumb:focus-visible,.prewedding-thumb--active{opacity:1;border-color:var(--color-accent);outline:none;transform:translateY(-1px)}.prewedding-thumb img{object-fit:cover;width:100%;height:100%;display:block}@keyframes lightboxFade{0%{opacity:0}to{opacity:1}}.story-promises-section{background:radial-gradient(ellipse at 50% 0%, #45b5b01f, transparent 60%), var(--color-bg)}.story-promises{text-align:center}.promises-grid{margin-top:24px;grid-template-columns:repeat(3,1fr);gap:24px;max-width:980px;margin-inline:auto;display:grid}.promise-card{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:center;padding:32px 24px;transition:transform .35s,box-shadow .35s,border-color .35s}.promise-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary-light);transform:translateY(-6px)}.promise-icon{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-light));color:#fff;width:52px;height:52px;box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;margin-bottom:16px;display:inline-flex}.promise-card h3{font-family:var(--font-display);margin-bottom:10px;font-size:1.3rem}.promise-card p{color:var(--color-text-light);font-size:.95rem;line-height:1.7}.story-cta-section{background:linear-gradient(135deg, var(--color-primary-dark), var(--color-accent));color:#fff;text-align:center}.story-cta{max-width:720px;margin:0 auto}.story-cta-text{font-family:var(--font-heading);margin-bottom:28px;font-size:1.35rem;font-style:italic;line-height:1.65}.story-cta-text strong{font-style:normal;font-weight:700}.story-cta-section .btn-primary{color:var(--color-primary-dark);letter-spacing:1px;background:#fff;border-radius:999px;padding:14px 36px;font-weight:700;transition:transform .25s,box-shadow .25s,background .25s}.story-cta-section .btn-primary:hover{background:var(--color-bg);box-shadow:var(--shadow-lg);transform:translateY(-2px)}@media (width<=900px){.story-timeline-line{left:22px;transform:none}.timeline-item{width:100%;text-align:left!important;margin-left:0!important;padding:0 0 56px 64px!important}.timeline-item--left .timeline-marker,.timeline-item--right .timeline-marker{left:2px;right:auto}.timeline-item--left .timeline-card:before,.timeline-item--right .timeline-card:before{border-top:none;border-right:none;border-left:1px solid var(--color-border);border-bottom:1px solid var(--color-border);left:-8px;right:auto}.timeline-item--left .timeline-quote{text-align:left;border-right:none;border-left:3px solid var(--color-accent);background:linear-gradient(90deg,#c4a8e01f,#0000)}.story-gallery{grid-template-columns:repeat(2,1fr);gap:24px}.promises-grid{grid-template-columns:1fr}}@media (width<=600px){.story-hero{min-height:78vh}.story-hero-content{padding:72px 20px 56px}.story-hero-eyebrow{letter-spacing:4px;font-size:.78rem}.story-hero-verse{font-size:1.1rem}.timeline-item{padding:0 0 48px 52px!important}.timeline-marker{width:34px;height:34px;left:4px!important}.timeline-card{padding:22px 20px 20px}.timeline-image{width:calc(100% + 40px);margin:-22px -20px 16px}.timeline-title{font-size:1.3rem}.timeline-paragraph{font-size:.93rem}.story-gallery{grid-template-columns:1fr;max-width:280px}.prewedding-lightbox{padding:12px}.prewedding-lightbox-panel{max-height:calc(100dvh - 24px)}.prewedding-lightbox-copy{padding:16px 64px 14px 16px}.prewedding-lightbox-photo{height:min(62vh,620px)}.prewedding-lightbox-nav{width:40px;height:40px}.prewedding-lightbox-nav--prev{left:10px}.prewedding-lightbox-nav--next{right:10px}.prewedding-lightbox-footer{grid-template-columns:1fr;gap:10px;padding:12px}.story-cta-text{font-size:1.15rem}}.gift-image{box-sizing:border-box;background:#fff;justify-content:center;align-items:center;width:100%;min-width:0;height:100%;min-height:0;padding:clamp(14px,5%,26px);display:flex;position:relative;overflow:hidden}.gift-image--fallback:before{content:"";pointer-events:none;background:radial-gradient(circle at 100% 0,#2d6a8b0a 0%,#0000 40%),radial-gradient(circle at 0 100%,#2d6a8b0a 0%,#0000 40%);position:absolute;inset:0}.gift-image--fallback:after{content:"";pointer-events:none;border:1px solid #0000000b;border-radius:6px;position:absolute;inset:12px}.gift-image-photo{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.gift-image-icon,.gift-image-fallback-circle{box-sizing:border-box;aspect-ratio:1;z-index:1;flex:none;justify-content:center;align-items:center;width:clamp(56px,46%,148px);max-width:100%;max-height:100%;display:flex;position:relative}.gift-image-icon svg,.gift-image-fallback-circle svg{stroke-width:1.4px;width:100%;height:100%;display:block}.gift-image-fallback-circle{border-radius:50%;width:clamp(72px,38%,118px);padding:22%}@media (width<=600px){.gift-image{padding:clamp(10px,4%,18px)}.gift-image-icon{width:clamp(48px,44%,112px)}.gift-image-fallback-circle{width:clamp(60px,36%,92px)}}.gift-card{background:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);opacity:0;flex-direction:column;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s cubic-bezier(.16,1,.3,1);display:flex;overflow:hidden;transform:translateY(30px)}.gift-card.revealed{opacity:1;transform:translateY(0)}.gift-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-6px)}.gift-card--funded,.gift-card--funded.revealed{opacity:.75}.gift-card-image{aspect-ratio:4/3;min-width:0;position:relative;overflow:hidden}.gift-card-image .gift-image-photo{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.16,1,.3,1)}.gift-card:hover .gift-card-image .gift-image-photo{transform:scale(1.05)}.gift-card-category{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--color-text-light);background:#ffffffe6;border-radius:20px;padding:4px 12px;font-size:.8rem;font-weight:600;position:absolute;top:12px;left:12px}.gift-card-badge{background:var(--color-success);color:#fff;border-radius:20px;padding:4px 12px;font-size:.8rem;font-weight:700;position:absolute;top:12px;right:12px}.gift-card-content{flex-direction:column;flex:1;padding:20px;display:flex}.gift-card-name{overflow-wrap:break-word;margin-bottom:4px;font-size:1.15rem}.gift-card-price{color:var(--color-primary);margin-bottom:16px;font-size:1.25rem;font-weight:700}.gift-card-progress{margin-bottom:16px}.progress-bar{background:var(--color-bg-alt);border-radius:4px;height:8px;margin-bottom:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--color-accent-light), var(--color-accent));border-radius:4px;height:100%;transition:width .8s cubic-bezier(.16,1,.3,1)}.progress-info{color:var(--color-text-muted);justify-content:space-between;font-size:.8rem;display:flex}.gift-card-btn{text-align:center;justify-content:center;margin-top:auto}@media (width<=480px){.gift-card-content{padding:16px}.gift-card-name{font-size:1.05rem}.gift-card-price{font-size:1.15rem}}.gift-card--reserved{opacity:.92}.gift-card--reserved .gift-card-image:after{content:"";pointer-events:none;background:#fef3c738;position:absolute;inset:0}.gift-card-badge--reserved{color:#fff;background:#f59e0b;font-weight:700}.gift-card--soon{opacity:.92}.gift-card-badge--soon{background:var(--color-accent);color:#fff;font-weight:700}.gift-card-price--soon{color:var(--color-text-muted);font-style:italic}.gifts-hero{background:linear-gradient(180deg, #c8dce8 0%, #eee9f3 50%, var(--color-bg) 100%);padding:80px 0 48px}.gifts-hero .section-title,.gifts-hero .section-subtitle{animation:.7s cubic-bezier(.16,1,.3,1) both fadeInDown}.gifts-hero .section-subtitle{animation-delay:.15s}.gifts-filters{z-index:50;-webkit-backdrop-filter:blur(16px);border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fbfbfeed;flex-direction:column;gap:12px;min-width:0;margin-bottom:48px;padding:14px 20px;transition:padding .25s,gap .25s,box-shadow .25s;display:flex;position:sticky;top:88px;box-shadow:0 2px 16px #0000000f}.filters-row{align-items:center;gap:12px;min-width:0;display:flex}.search-box{background:var(--color-bg-alt);border:1px solid #0000;border-radius:20px;flex:1;align-items:center;gap:8px;max-width:320px;padding:7px 14px;transition:border-color .25s,box-shadow .25s,background .25s;display:flex}.search-box:focus-within{background:var(--color-white);border-color:var(--color-primary);box-shadow:0 0 0 3px #2d8b871a}.search-icon{color:var(--color-text-muted);flex-shrink:0}.search-box input{font-size:.875rem;font-family:var(--font-body);color:var(--color-text);background:0 0;border:none;outline:none;width:100%;min-width:0}.search-box input::placeholder{color:var(--color-text-muted)}.search-clear{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:1px;transition:color .2s;display:flex}.search-clear:hover{color:var(--color-text)}.filters-result-count{color:var(--color-text-muted);white-space:nowrap;margin-left:auto;font-size:.8rem;font-weight:600;transition:opacity .2s}.category-filters{flex-wrap:wrap;gap:6px;min-width:0;display:flex}.category-btn{border:1px solid var(--color-border);color:var(--color-text-light);font-family:var(--font-body);cursor:pointer;white-space:nowrap;background:0 0;border-radius:20px;align-items:center;gap:5px;padding:5px 12px;font-size:.82rem;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.category-btn-icon{opacity:.6;flex-shrink:0}.category-btn-count{color:var(--color-text-muted);font-size:.7rem;font-weight:700;transition:color .2s}.category-btn:hover{border-color:var(--color-primary-light);color:var(--color-primary);background:#2d8b870a}.category-btn:hover .category-btn-icon{opacity:1}.category-btn:hover .category-btn-count{color:var(--color-primary)}.category-btn.active{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary);box-shadow:0 2px 8px #2d8b874d}.category-btn.active .category-btn-icon{opacity:1}.category-btn.active .category-btn-count{color:#ffffffbf}.gifts-filters--compact{gap:8px;padding:10px 18px;box-shadow:0 4px 20px #00000017}.gifts-filters--compact .filters-row{display:none}.gifts-filters--compact .category-filters{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}.gifts-filters--compact .category-filters::-webkit-scrollbar{display:none}.gifts-groups{flex-direction:column;gap:56px;display:flex}@keyframes groupIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.gift-group{animation:.45s cubic-bezier(.16,1,.3,1) both groupIn}.gift-group-header{border-bottom:1.5px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:14px;display:flex}.gift-group-header-left{align-items:center;gap:10px;display:flex}.gift-group-icon{width:36px;height:36px;color:var(--color-primary);background:linear-gradient(135deg,#2d8b871f,#7b5ea714);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.gift-group-title{font-family:var(--font-heading);color:var(--color-text);letter-spacing:.01em;font-size:1.35rem;font-weight:600}.gift-group-count{color:var(--color-text-muted);background:var(--color-secondary);border-radius:12px;padding:4px 10px;font-size:.82rem;font-weight:600}.gifts-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:28px;display:grid}@keyframes cardIn{0%{opacity:0;transform:translateY(20px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.gift-card-wrapper{min-width:0;animation:.45s cubic-bezier(.16,1,.3,1) both cardIn}.gift-card-wrapper .gift-card{opacity:1;transform:translateY(0)}.gifts-empty{text-align:center;color:var(--color-text-muted);padding:80px 20px;font-size:1.1rem}@media (width<=768px){.gifts-hero{padding:60px 0 32px}.gifts-filters{padding:12px 16px;top:80px}.gifts-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}.category-btn{padding:5px 10px;font-size:.78rem}.gifts-groups{gap:40px}}@media (width<=480px){.gifts-hero{padding:48px 0 24px}.gifts-hero .section-subtitle{overflow-wrap:break-word}.gifts-filters{border-radius:var(--radius-sm);width:100%;padding:12px;position:static;overflow:hidden}.filters-row{grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.search-box{flex-basis:100%;width:100%;max-width:none}.filters-result-count{margin-left:0}.category-filters{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;width:100%;max-width:100%;padding-bottom:2px;overflow-x:auto}.category-btn{flex:none}.category-filters::-webkit-scrollbar{display:none}.gifts-grid{grid-template-columns:1fr;gap:16px}.gift-group-title{font-size:1.15rem}}.gift-detail-hero{background:linear-gradient(180deg, #c8dce8 0%, #eee9f3 50%, var(--color-bg) 100%);padding:24px 0}.back-link{color:var(--color-text-light);align-items:center;gap:8px;font-size:.95rem;font-weight:600;transition:color .2s,gap .3s;display:inline-flex}.back-link:hover{color:var(--color-primary);gap:12px}.gift-detail-not-found{text-align:center;flex-direction:column;align-items:center;gap:20px;display:flex}.gift-detail-grid{grid-template-columns:1fr 1fr;align-items:start;gap:48px;display:grid}.gift-detail-grid>*{min-width:0}.gift-detail-image{border-radius:var(--radius-md);box-shadow:var(--shadow-md);aspect-ratio:4/3;min-width:0;animation:.6s cubic-bezier(.16,1,.3,1) both fadeInUp;position:sticky;top:96px;overflow:hidden}.gift-detail-image .gift-image-photo{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.16,1,.3,1)}.gift-detail-image:hover .gift-image-photo{transform:scale(1.03)}.gift-detail-category{color:var(--color-primary);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;font-size:.85rem;font-weight:700;display:inline-block}.gift-detail-name{margin-bottom:12px;font-size:2.2rem}.gift-detail-description{color:var(--color-text-light);margin-bottom:24px;line-height:1.7}.gift-detail-price-box{flex-wrap:wrap;align-items:baseline;gap:16px;margin-bottom:20px;display:flex}.gift-detail-price{color:var(--color-primary);font-size:2rem;font-weight:700;font-family:var(--font-heading)}.gift-detail-remaining{color:var(--color-text-muted);font-size:1rem}.gift-detail-progress{margin-bottom:32px}.progress-bar--lg{height:12px}.gift-detail-progress .progress-info{color:var(--color-text-muted);justify-content:space-between;margin-top:8px;font-size:.85rem;display:flex}.gift-detail-progress .progress-info span{align-items:center;gap:4px;display:flex}.gift-detail-contributions{margin-bottom:32px}.gift-detail-contributions h3{margin-bottom:16px;font-size:1.1rem}.gift-detail-contributions ul{flex-direction:column;gap:12px;list-style:none;display:flex}.contribution-item{background:var(--color-bg-alt);border-radius:var(--radius-sm);align-items:flex-start;gap:12px;padding:12px;transition:transform .2s,box-shadow .2s;display:flex}.contribution-item:hover{box-shadow:var(--shadow-sm);transform:translate(4px)}.contribution-avatar{background:var(--color-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.contribution-amount{color:var(--color-primary);font-weight:700}.contribution-message{color:var(--color-text-muted);margin-top:4px;font-size:.9rem;font-style:italic}.contribution-form{background:var(--color-bg-alt);border-radius:var(--radius-md);border:1px solid var(--color-border);padding:28px;transition:box-shadow .3s}.contribution-form:focus-within{box-shadow:var(--shadow-md)}.contribution-form h3{margin-bottom:20px;font-size:1.2rem}.form-error{color:#c62828;border-radius:var(--radius-sm);background:#fdecea;margin-bottom:16px;padding:12px 16px;font-weight:500;animation:.4s ease-out fadeInUp}.form-group{margin-bottom:16px}.form-group label{color:var(--color-text);margin-bottom:6px;font-size:.9rem;font-weight:600;display:block}.form-group input,.form-group textarea{border:2px solid var(--color-border);border-radius:var(--radius-sm);width:100%;font-size:1rem;font-family:var(--font-body);color:var(--color-text);background:var(--color-white);padding:12px 14px;transition:border-color .3s,box-shadow .3s}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2d8b871a}.form-group textarea{resize:vertical}.gift-fully-funded{text-align:center;background:var(--color-bg-alt);border-radius:var(--radius-md);color:var(--color-success);padding:40px 20px}.gift-fully-funded h3{color:var(--color-success);margin:12px 0 8px}.gift-fully-funded p{color:var(--color-text-muted);margin-bottom:20px}@media (width<=768px){.gift-detail-grid{grid-template-columns:1fr;gap:28px}.gift-detail-image{position:static}.gift-detail-name{font-size:1.8rem}.gift-detail-price{font-size:1.6rem}.contribution-form{padding:24px 20px}}@media (width<=480px){.gift-detail-name{font-size:1.5rem}.gift-detail-price{font-size:1.4rem}.gift-detail-price-box,.gift-detail-progress .progress-info{flex-direction:column;gap:4px}.contribution-form{padding:20px 16px}.contribution-form .btn-lg{justify-content:center;width:100%}}.gift-detail-actions{flex-direction:column;gap:16px;margin-top:24px;display:flex}.actions-tabs{border-radius:var(--radius-md);background:#0000000a;gap:8px;padding:6px;display:flex}.actions-tab{color:var(--color-text-light);border-radius:calc(var(--radius-md) - 4px);cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:.95rem;font-weight:600;transition:background .2s,color .2s,box-shadow .2s;display:inline-flex}.actions-tab:hover{color:var(--color-text)}.actions-tab.active{color:var(--color-primary);box-shadow:var(--shadow-sm,0 1px 3px #0000001a);background:#fff}.checkout-disclaimer{color:var(--color-text-light);margin-top:4px;font-size:.82rem;line-height:1.45}.checkout-banner{border-radius:var(--radius-md);border:1px solid #0000;margin:8px 0 16px;padding:14px 44px 14px 16px;font-size:.92rem;line-height:1.45;position:relative}.checkout-banner--success{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.checkout-banner--pending{color:#92400e;background:#fffbeb;border-color:#fcd34d}.checkout-banner--failure{color:#991b1b;background:#fef2f2;border-color:#fecaca}.checkout-banner-close{color:inherit;opacity:.7;cursor:pointer;text-transform:lowercase;background:0 0;border:none;font-size:.78rem;position:absolute;top:8px;right:10px}.checkout-banner-close:hover{opacity:1;text-decoration:underline}@media (width<=480px){.actions-tabs{flex-direction:column}}.affiliate-note{border-radius:var(--radius-md);color:#92400e;background:#fffbeb;border:1px solid #fcd34d;align-items:flex-start;gap:10px;padding:12px 14px;font-size:.88rem;line-height:1.45;display:flex}.affiliate-note svg{flex-shrink:0;margin-top:2px}.gift-detail-preferences{background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);margin:18px 0 4px;padding:14px 16px}.gift-detail-preferences h3{font-family:var(--font-body);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-light);margin:0 0 8px;font-size:.82rem;font-weight:700}.gift-detail-preferences ul{color:var(--color-text);flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:.9rem;display:flex}.gift-detail-preferences-note{color:var(--color-text-muted);margin:10px 0 0;font-size:.82rem}.purchase-options{border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:8px;margin:0;padding:12px 14px;display:flex}.purchase-options legend{letter-spacing:.03em;text-transform:uppercase;color:var(--color-text-light);padding:0 6px;font-size:.82rem;font-weight:700}.purchase-option{border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;align-items:flex-start;gap:10px;padding:10px 12px;transition:border-color .2s,background .2s;display:flex}.purchase-option:hover{border-color:var(--color-primary-light)}.purchase-option--selected{border-color:var(--color-primary);background:#2d8b870f}.purchase-option input{accent-color:var(--color-primary);flex-shrink:0;margin-top:3px}.purchase-option-label{color:var(--color-text);overflow-wrap:break-word;min-width:0;font-size:.9rem;line-height:1.4}.purchase-option-single{color:var(--color-text-light);margin:0;font-size:.88rem}.gift-detail-unavailable svg{color:var(--color-accent)}.gift-detail-price--soon{color:var(--color-text-muted);font-size:1.4rem;font-style:italic}.actions-tab:disabled{opacity:.55;cursor:not-allowed}.actions-tab:disabled:hover{color:var(--color-text-light)}.actions-tab-hint{letter-spacing:.02em;text-transform:uppercase;background:#0000000f;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:700}.purchase-attempt{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-alt);box-shadow:var(--shadow-sm);flex-direction:column;gap:.9rem;padding:1.6rem;display:flex}.purchase-attempt--checking{opacity:.85;border-style:dashed}.purchase-attempt--done{border-color:color-mix(in srgb, var(--color-primary) 45%, transparent);background:color-mix(in srgb, var(--color-primary) 7%, var(--color-bg-alt))}.purchase-attempt--done .purchase-attempt-head svg{color:var(--color-primary)}.purchase-attempt--checking .purchase-attempt-head svg{color:var(--color-text-light)}.purchase-attempt-head{align-items:flex-start;gap:.85rem;display:flex}.purchase-attempt-head svg{color:var(--color-primary);flex-shrink:0;margin-top:2px}.purchase-attempt-head h3{font-family:var(--font-heading);color:var(--color-text);margin:0;font-size:1.32rem}.purchase-attempt-sub{color:var(--color-text-light);align-items:center;gap:.35rem;margin:.2rem 0 0;font-size:.88rem;display:flex}.purchase-attempt-sub svg{color:var(--color-text-light);margin-top:0}.purchase-attempt p{color:var(--color-text);margin:0;line-height:1.6}.purchase-attempt-hint{color:var(--color-text-light);font-size:.88rem}.purchase-attempt-actions{flex-wrap:wrap;gap:.6rem;margin-top:.3rem;display:flex}.purchase-attempt-actions .btn{flex:auto;justify-content:center;min-width:0}.purchase-attempt-confirm{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);flex-direction:column;gap:.85rem;padding:1.1rem;display:flex}.purchase-attempt-check{color:var(--color-text);cursor:pointer;align-items:flex-start;gap:.6rem;font-size:.94rem;font-weight:600;line-height:1.5;display:flex}.purchase-attempt-check input{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0;margin-top:2px}.purchase-attempt-actions .btn:disabled{opacity:.55;cursor:not-allowed}@media (width<=560px){.purchase-attempt{padding:1.2rem}.purchase-attempt-actions .btn{flex-basis:100%}}.how-it-works{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-alt);padding:1.1rem 1.3rem}.how-it-works h4{font-family:var(--font-heading);letter-spacing:.02em;text-transform:uppercase;color:var(--color-text-light);margin:0 0 .6rem;font-size:1rem}.how-it-works ol{flex-direction:column;gap:.35rem;margin:0;padding-left:1.2rem;display:flex}.how-it-works li{color:var(--color-text);font-size:.92rem;line-height:1.5}.consent-check{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-alt);color:var(--color-text);cursor:pointer;align-items:flex-start;gap:.6rem;padding:.9rem 1rem;font-size:.9rem;line-height:1.5;display:flex}.consent-check input{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0;margin-top:1px}.purchase-attempt-canal{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-alt);flex-direction:column;gap:.5rem;margin:0;padding:.9rem;display:flex}.purchase-attempt-canal legend{color:var(--color-text-light);padding:0 .4rem;font-size:.84rem;font-weight:600}.purchase-attempt-canal label{cursor:pointer;align-items:center;gap:.5rem;font-size:.93rem;display:flex}.purchase-attempt-canal input{accent-color:var(--color-primary);cursor:pointer}.reserva-resposta{align-items:center;min-height:70vh;display:flex}.reserva-resposta-card{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md);max-width:560px;box-shadow:var(--shadow-md);text-align:center;margin:0 auto;padding:2.4rem}.reserva-resposta-card h1{font-family:var(--font-heading);color:var(--color-text);margin:0 0 .6rem;font-size:1.7rem}.reserva-resposta-card p{color:var(--color-text-light);margin:0 0 1.2rem;line-height:1.6}.reserva-resposta-icon{color:var(--color-primary);margin-bottom:.6rem}.reserva-resposta-sub{font-size:.95rem}.reserva-resposta-escolha{flex-wrap:wrap;gap:.6rem;margin:1.4rem 0;display:flex}.reserva-resposta-opcao{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);font-family:var(--font-body);color:var(--color-text);cursor:pointer;flex:200px;justify-content:center;align-items:center;gap:.45rem;padding:.85rem 1rem;font-size:.95rem;font-weight:600;transition:border-color .18s,background .18s;display:flex}.reserva-resposta-opcao:hover{border-color:var(--color-primary)}.reserva-resposta-opcao.is-active{border-color:var(--color-primary);background:var(--color-primary-light)}.reserva-resposta-form{text-align:left;border-top:1px solid var(--color-border);flex-direction:column;gap:.9rem;padding-top:.6rem;display:flex}.reserva-resposta-canal{border:1px solid var(--color-border);border-radius:var(--radius-sm);flex-direction:column;gap:.5rem;margin:0;padding:.9rem;display:flex}.reserva-resposta-canal legend{color:var(--color-text-light);padding:0 .4rem;font-size:.85rem;font-weight:600}.reserva-resposta-canal label{cursor:pointer;align-items:center;gap:.5rem;font-size:.94rem;display:flex}.reserva-resposta-canal input{accent-color:var(--color-primary);cursor:pointer}.reserva-resposta-check{cursor:pointer;align-items:flex-start;gap:.6rem;font-size:.94rem;font-weight:600;line-height:1.5;display:flex}.reserva-resposta-check input{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0;margin-top:2px}.reserva-resposta-form .btn:disabled{opacity:.55;cursor:not-allowed}@media (width<=560px){.reserva-resposta-card{padding:1.6rem}}.rsvp-page{min-height:70vh}.rsvp-hero{background:linear-gradient(180deg, var(--color-bg) 0%, var(--color-bg-alt) 100%);text-align:center;padding:80px 0 40px}.rsvp-hero .section-subtitle{max-width:620px;margin:12px auto 0}.rsvp-deadline{color:var(--color-primary-dark);font-weight:600}.rsvp-card{background:var(--color-white);border:1px solid var(--color-border);border-radius:14px;max-width:620px;margin:40px auto 80px;padding:36px 32px 32px;position:relative;overflow:hidden;box-shadow:0 10px 40px #1a1a2e0f}.rsvp-progress{background:var(--color-bg-alt);height:4px;position:absolute;top:0;left:0;right:0}.rsvp-progress-bar{background:linear-gradient(90deg, var(--color-primary), var(--color-accent));border-radius:0 4px 4px 0;height:100%;transition:width .45s cubic-bezier(.16,1,.3,1);box-shadow:0 0 12px #2d8b8766}.rsvp-note{background:var(--color-secondary);color:var(--color-text);border:1px solid var(--color-border);border-radius:8px;align-items:flex-start;gap:10px;margin-bottom:22px;padding:12px 14px;font-size:.9rem;line-height:1.45;display:flex}.rsvp-step{margin-bottom:28px;padding-top:4px;transition:opacity .4s,max-height .5s cubic-bezier(.16,1,.3,1),margin .4s,transform .4s}.rsvp-step--hidden{opacity:0;pointer-events:none;max-height:0;margin:0;overflow:hidden;transform:translateY(-6px)}.rsvp-step--visible{opacity:1;max-height:1000px;animation:.5s cubic-bezier(.16,1,.3,1) rsvpStepIn}@keyframes rsvpStepIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.rsvp-step-header{align-items:center;gap:10px;margin-bottom:12px;display:flex}.rsvp-step-num{background:linear-gradient(135deg, var(--color-primary), var(--color-accent));width:28px;height:28px;color:var(--color-white);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:inline-flex;box-shadow:0 4px 10px #2d8b8740}.rsvp-step-title{color:var(--color-text);align-items:center;gap:8px;font-size:1rem;font-weight:600;display:inline-flex}.rsvp-input-wrap{position:relative}.rsvp-input-status{color:var(--color-primary);display:inline-flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.rsvp-spin{animation:.9s linear infinite rsvpSpin}@keyframes rsvpSpin{to{transform:rotate(360deg)}}.rsvp-card input.rsvp-input--ok{border-color:var(--color-success);background:#4caf500a}.rsvp-card input.rsvp-input--warn{background:#d49b3e0d;border-color:#d49b3e}.rsvp-match{border-radius:8px;align-items:flex-start;gap:10px;margin-top:10px;padding:11px 13px;font-size:.88rem;line-height:1.45;animation:.35s rsvpStepIn;display:flex}.rsvp-match--ok{color:#1f6b48;background:#4caf501a;border:1px solid #4caf5059}.rsvp-match--warn{color:#7a5311;background:#d49b3e1a;border:1px solid #d49b3e66}.rsvp-choice{grid-template-columns:1fr 1fr;gap:12px;display:grid}.rsvp-choice-btn{border:2px solid var(--color-border);background:var(--color-bg);color:var(--color-text-light);cursor:pointer;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:22px 14px;font-family:inherit;font-size:.95rem;font-weight:500;transition:border-color .2s,background .2s,color .2s,transform .2s,box-shadow .2s;display:flex}.rsvp-choice-btn:hover{border-color:var(--color-primary-light);color:var(--color-text);transform:translateY(-2px);box-shadow:0 6px 16px #2d8b871f}.rsvp-choice-btn--active{border-color:var(--color-primary);color:var(--color-primary-dark);background:linear-gradient(135deg,#2d8b871f,#7b5ea714);box-shadow:0 8px 20px #2d8b872e}.rsvp-choice-btn--decline.rsvp-choice-btn--active{border-color:var(--color-text-muted);background:var(--color-bg-alt);color:var(--color-text);box-shadow:0 6px 14px #1a1a2e1a}.rsvp-counter{background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:999px;align-items:center;gap:6px;margin-bottom:18px;padding:6px;display:inline-flex}.rsvp-counter-btn{background:var(--color-white);width:38px;height:38px;color:var(--color-primary-dark);cursor:pointer;box-shadow:var(--shadow-sm);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.3rem;font-weight:700;transition:all .15s;display:inline-flex}.rsvp-counter-btn:hover:not(:disabled){background:var(--color-primary);color:var(--color-white);transform:scale(1.05)}.rsvp-counter-btn:disabled{opacity:.4;cursor:not-allowed}.rsvp-counter-value{text-align:center;min-width:44px;color:var(--color-text);font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:700}.rsvp-companions{margin-top:6px}.rsvp-companions-hint{color:var(--color-text-light);margin-bottom:12px;font-size:.88rem}.rsvp-companion-row{align-items:center;gap:10px;margin-bottom:10px;animation:.4s cubic-bezier(.16,1,.3,1) both rsvpCompanionIn;display:flex}@keyframes rsvpCompanionIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.rsvp-companion-badge{background:var(--color-secondary);width:30px;height:30px;color:var(--color-primary-dark);border:1px solid var(--color-border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:inline-flex}.rsvp-companion-row input{flex:1;margin:0!important}.rsvp-card .form-group{margin-bottom:16px}.rsvp-card .form-label{color:var(--color-text);margin-bottom:6px;font-size:.9rem;font-weight:500;display:block}.rsvp-optional{color:var(--color-text-muted);font-size:.82rem;font-weight:400}.rsvp-card input,.rsvp-card textarea,.rsvp-card select{border:1px solid var(--color-border);width:100%;font:inherit;color:var(--color-text);background:var(--color-bg);border-radius:8px;padding:12px 14px;transition:border-color .18s,background .18s,box-shadow .18s}.rsvp-card input:focus,.rsvp-card textarea:focus,.rsvp-card select:focus{border-color:var(--color-primary);background:var(--color-white);outline:none;box-shadow:0 0 0 3px #2d8b8726}.rsvp-card textarea{resize:vertical;min-height:100px}.rsvp-counter-text{text-align:right;color:var(--color-text-muted);margin-top:4px;font-size:.78rem}.rsvp-submit{background:linear-gradient(135deg, var(--color-primary), var(--color-accent));border:none;justify-content:center;align-items:center;gap:10px;width:100%;margin-top:12px;transition:transform .2s,box-shadow .2s,filter .2s;display:inline-flex}.rsvp-submit:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-2px);box-shadow:0 10px 24px #2d8b8759}.rsvp-submit:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.2);transform:none}.rsvp-alert{border-radius:8px;align-items:flex-start;gap:10px;margin-bottom:18px;padding:12px 14px;font-size:.92rem;display:flex}.rsvp-alert--success{color:#1f6b48;background:#4caf5014;border:1px solid #4caf5059}.rsvp-alert--warning{color:var(--color-error);background:#e74c3c0f;border:1px solid #e74c3c4d}.rsvp-alert code{background:#0000000d;border-radius:3px;padding:1px 6px;font-size:.85em}.rsvp-success-icon{background:linear-gradient(135deg, var(--color-primary), var(--color-accent));width:84px;height:84px;color:var(--color-white);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;animation:.6s cubic-bezier(.16,1,.3,1) rsvpPop;display:inline-flex;box-shadow:0 12px 30px #2d8b8759}@keyframes rsvpPop{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}.rsvp-card--success{animation:.5s rsvpStepIn}.rsvp-summary{background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:8px;margin-top:18px;padding:14px 16px}.rsvp-summary h3{color:var(--color-text);margin-bottom:8px;font-family:inherit;font-size:.9rem;font-weight:600}.rsvp-summary ul{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.rsvp-summary li{background:var(--color-white);border:1px solid var(--color-border);color:var(--color-text);border-radius:999px;padding:4px 10px;font-size:.85rem}@media (width<=600px){.rsvp-card{margin:24px 16px 60px;padding:28px 20px 22px}.rsvp-hero{padding:60px 0 30px}.rsvp-choice-btn{padding:18px 10px;font-size:.9rem}}:root{--admin-bg:#f7f8fb;--admin-surface:#fff;--admin-border:#e6e8ef;--admin-text:#1c2230;--admin-muted:#6b7385;--admin-primary:#0f9b8e;--admin-primary-soft:#e3f5f2;--admin-accent:#7b68b8;--admin-accent-soft:#ece7f7;--admin-warn:#c9881f;--admin-warn-soft:#fdf3df;--admin-success:#1e8a5a;--admin-success-soft:#e1f4ea;--admin-danger:#b3422f;--admin-danger-soft:#fbe7e2;--admin-shadow:0 4px 18px #1c22300f}.admin-shell{max-width:520px;color:var(--admin-text);background:var(--admin-bg);box-sizing:border-box;min-height:100vh;margin:4rem auto;padding:1.5rem;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.admin-shell--wide{max-width:1180px;margin:0 auto;padding:2rem 1.5rem 4rem}.admin-login-card{background:var(--admin-surface);border:1px solid var(--admin-border);box-shadow:var(--admin-shadow);border-radius:16px;padding:2rem}.admin-login-card h1{margin:0 0 1.25rem;font-size:1.45rem}.admin-form{flex-direction:column;gap:1rem;display:flex}.admin-form label{flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.admin-form input,.admin-field input,.admin-field select{border:1px solid var(--admin-border);color:var(--admin-text);background:#fff;border-radius:10px;padding:.6rem .75rem;font-family:inherit;font-size:.95rem}.admin-form input:focus,.admin-field input:focus,.admin-field select:focus{outline:2px solid var(--admin-primary);outline-offset:1px;border-color:var(--admin-primary)}.admin-form button,.admin-header button{background:var(--admin-text);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:.6rem 1rem;font-family:inherit;font-size:.9rem;font-weight:500;transition:opacity .15s}.admin-form button:hover:not(:disabled),.admin-header button:hover:not(:disabled){opacity:.9}.admin-form button:disabled,.admin-header button:disabled,.admin-row-actions button:disabled,.admin-modal-actions button:disabled{opacity:.55;cursor:not-allowed}.admin-link{cursor:pointer;border:none;font-family:inherit;font-size:.85rem;text-decoration:underline;color:var(--admin-muted)!important;background:0 0!important;padding:.45rem .5rem!important}.admin-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;display:flex}.admin-eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--admin-primary);margin:0 0 .25rem;font-size:.78rem;font-weight:600}.admin-header h1{letter-spacing:-.01em;margin:0;font-size:1.6rem}.admin-header-actions{align-items:center;gap:.5rem;display:flex}.admin-error{background:var(--admin-danger-soft);color:var(--admin-danger);border:1px solid #f1c5bb;border-radius:10px;margin:0 0 1.25rem;padding:.7rem .9rem;font-size:.9rem}.admin-success{background:var(--admin-success-soft);color:var(--admin-success);border:1px solid #b8dfca;border-radius:10px;margin:0 0 1.25rem;padding:.7rem .9rem;font-size:.9rem}.admin-tabs{background:var(--admin-surface);border:1px solid var(--admin-border);box-shadow:var(--admin-shadow);border-radius:12px;gap:.25rem;margin-bottom:1.5rem;padding:.3rem;display:flex;overflow-x:auto}.admin-tab{cursor:pointer;min-width:max-content;color:var(--admin-muted);white-space:nowrap;background:0 0;border:none;border-radius:8px;flex:1;padding:.65rem 1rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:background .15s,color .15s}.admin-tab:hover{color:var(--admin-text)}.admin-tab.is-active{background:linear-gradient(135deg, var(--admin-primary), var(--admin-accent));color:#fff;box-shadow:0 2px 8px #0f9b8e40}.admin-cards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.85rem;margin-bottom:2rem;display:grid}.admin-card{background:var(--admin-surface);border:1px solid var(--admin-border);box-shadow:var(--admin-shadow);border-top:3px solid #0000;border-radius:14px;flex-direction:column;gap:.3rem;padding:1rem 1.1rem;display:flex}.admin-card--primary{border-top-color:var(--admin-primary);background:linear-gradient(180deg, var(--admin-primary-soft), #fff 70%)}.admin-card--success{border-top-color:var(--admin-success)}.admin-card--warn{border-top-color:var(--admin-warn)}.admin-card-label{color:var(--admin-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.74rem;font-weight:600}.admin-card-value{letter-spacing:-.01em;font-size:1.4rem;font-weight:700}.admin-section{margin-bottom:2rem}.admin-section-head{justify-content:space-between;align-items:center;gap:1rem;margin:0 0 .85rem;display:flex}.admin-section-head h2{letter-spacing:-.01em;margin:0;font-size:1.05rem}.admin-section-head--filters h2{color:var(--admin-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.9rem;font-weight:600}.admin-panel{background:var(--admin-surface);border:1px solid var(--admin-border);box-shadow:var(--admin-shadow);border-radius:14px;padding:1.25rem}.admin-panel--chart{justify-content:center;display:flex}.admin-grid-two{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;margin-bottom:.5rem;display:grid}.admin-progress{flex-direction:column;gap:.5rem;margin-bottom:1.25rem;display:flex}.admin-progress-bar{background:#eef0f5;border-radius:999px;width:100%;height:12px;overflow:hidden}.admin-progress-bar--sm{height:7px}.admin-progress-fill{background:linear-gradient(90deg, var(--admin-primary), var(--admin-accent));border-radius:999px;height:100%;transition:width .3s}.admin-progress-meta{color:var(--admin-muted);margin:0;font-size:.92rem}.admin-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;display:grid}.admin-stat{border:1px solid var(--admin-border);background:#f9fafc;border-radius:10px;flex-direction:column;gap:.2rem;padding:.7rem .85rem;display:flex}.admin-stat-label{color:var(--admin-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem}.admin-stat-value{font-size:1rem;font-weight:600}.admin-rank,.admin-bars{flex-direction:column;gap:.85rem;margin:0;padding:0;list-style:none;display:flex}.admin-rank-item,.admin-bar-row{border:1px solid var(--admin-border);background:#fafbfd;border-radius:10px;flex-direction:column;gap:.4rem;padding:.6rem .7rem;display:flex}.admin-rank-head,.admin-bar-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.admin-rank-pos{color:var(--admin-accent);min-width:1.8rem;font-weight:700}.admin-rank-name,.admin-bar-label{flex:1;font-size:.95rem;font-weight:600}.admin-rank-amount,.admin-bar-value{color:var(--admin-primary);white-space:nowrap;font-weight:600}.admin-rank-amount small,.admin-bar-value small{color:var(--admin-muted);font-weight:400}.admin-rank-meta{color:var(--admin-muted);margin:0;font-size:.82rem}.admin-filters{background:var(--admin-surface);border:1px solid var(--admin-border);box-shadow:var(--admin-shadow);border-radius:14px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.85rem;padding:1rem;display:grid}.admin-field{flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.admin-field span{color:var(--admin-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;font-weight:600}.admin-table-wrap{border:1px solid var(--admin-border);background:var(--admin-surface);box-shadow:var(--admin-shadow);border-radius:14px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.88rem}.admin-table th,.admin-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #f1f2f6;padding:.75rem .9rem}.admin-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--admin-muted);white-space:nowrap;background:#fafbfd;font-size:.72rem;font-weight:600}.admin-table tr:last-child td{border-bottom:none}.admin-table tbody tr:hover td{background:#fbfcfe}.admin-gift-cell{flex-direction:column;min-width:180px;display:flex}.admin-gift-cell small{color:var(--admin-muted);margin-top:.15rem;font-size:.74rem}.admin-gift-option{color:var(--admin-text,inherit);font-weight:600}.admin-row-actions{flex-wrap:wrap;gap:.4rem;display:flex}.admin-row-actions button,.btn-revert{cursor:pointer;border:none;border-radius:8px;padding:.4rem .7rem;font-family:inherit;font-size:.78rem;font-weight:600}.btn-approve{background:var(--admin-success-soft);color:var(--admin-success)}.btn-reject{background:var(--admin-danger-soft);color:var(--admin-danger)}.btn-cancel{color:var(--admin-muted);background:#f1f2f6}.btn-revert{background:var(--admin-accent-soft);color:var(--admin-accent)}.btn-revert:disabled{opacity:.55;cursor:not-allowed}.admin-badge{color:var(--admin-muted);letter-spacing:.01em;background:#eef0f5;border-radius:999px;padding:.22rem .55rem;font-size:.74rem;font-weight:600;display:inline-block}.admin-badge--res-pending_verification,.admin-badge--con-pending{background:var(--admin-warn-soft);color:var(--admin-warn)}.admin-badge--con-pending_expired{color:#8f3d14;background:#d1622a29}.admin-badge--res-approved,.admin-badge--con-approved,.admin-badge--gift-completed,.admin-badge--gift-purchased{background:var(--admin-success-soft);color:var(--admin-success)}.admin-badge--res-rejected,.admin-badge--res-cancelled,.admin-badge--con-cancelled,.admin-badge--con-rejected,.admin-badge--con-refunded{background:var(--admin-danger-soft);color:var(--admin-danger)}.admin-badge--res-checkout_started,.admin-badge--gift-reserved{background:var(--admin-accent-soft);color:var(--admin-accent)}.admin-badge--gift-partial{background:var(--admin-primary-soft);color:var(--admin-primary)}.admin-donut{flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem;display:flex}.admin-donut svg{flex-shrink:0}.admin-donut-total{fill:var(--admin-text);font-family:inherit;font-size:1.5rem;font-weight:700}.admin-donut-legend{flex-direction:column;gap:.4rem;min-width:160px;margin:0;padding:0;font-size:.85rem;list-style:none;display:flex}.admin-donut-legend li{grid-template-columns:12px 1fr auto;align-items:center;gap:.55rem;display:grid}.admin-donut-dot{border-radius:3px;width:12px;height:12px}.admin-donut-label{color:var(--admin-text)}.admin-donut-value{color:var(--admin-muted);font-weight:700}.admin-modal-backdrop{z-index:200;background:#1c22308c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.admin-modal{background:#fff;border-radius:14px;width:100%;max-width:420px;padding:1.5rem;box-shadow:0 12px 32px #0003}.admin-modal--wide{max-width:560px}.admin-modal-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.admin-modal-head h3{margin:0;font-size:1.05rem}.admin-modal p{margin:0 0 1.25rem;font-size:.95rem;line-height:1.4}.admin-modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.btn-confirm,.admin-modal-actions .btn-reject{background:var(--admin-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.55rem 1.1rem;font-family:inherit;font-size:.9rem;font-weight:600}.admin-modal-actions .btn-reject{background:var(--admin-danger-soft);color:var(--admin-danger)}.admin-empty{text-align:center;color:var(--admin-muted);padding:1.5rem 0;font-size:.9rem}.admin-muted{color:var(--admin-muted);font-size:.85rem}.admin-contribution-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem 1rem;margin:0 0 1rem;display:grid}.admin-contribution-details div{min-width:0}.admin-contribution-details dt{color:var(--admin-muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 .15rem;font-size:.72rem;font-weight:700}.admin-contribution-details dd{overflow-wrap:anywhere;margin:0;font-size:.9rem}.admin-modal-hint{color:var(--admin-muted);border:1px solid var(--admin-border);background:#f7f8fb;border-radius:8px;padding:.65rem .75rem}@media (width<=640px){.admin-shell--wide{padding:1.25rem 1rem 3rem}.admin-header h1{font-size:1.3rem}.admin-card-value{font-size:1.2rem}.admin-contribution-details{grid-template-columns:1fr}}.admin-confirmation-cell{flex-direction:column;gap:2px;min-width:160px;display:flex}.admin-confirmation-cell small{font-size:.78rem;line-height:1.4}.admin-confirmation-note{opacity:.85;overflow-wrap:anywhere;font-style:italic}.admin-contact-cell{flex-direction:column;gap:2px;min-width:180px;display:flex}.admin-contact-cell small{overflow-wrap:anywhere;font-size:.78rem;line-height:1.4}.admin-contact-actions{flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:4px;display:flex}.btn-whatsapp{color:#12703a;cursor:pointer;background:#25d3661f;border:1px solid #25d366;border-radius:6px;padding:4px 10px;font-family:inherit;font-size:.74rem;font-weight:700}.btn-whatsapp:hover{background:#25d36633}.btn-neutral{border:1px solid var(--admin-border);color:var(--admin-muted);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-family:inherit;font-size:.74rem;font-weight:700}.admin-confirmation-error{color:var(--admin-danger);overflow-wrap:anywhere}.admin-modal-field{border:1px solid var(--admin-border);border-radius:8px;flex-direction:column;gap:.4rem;margin:0 0 .8rem;padding:.8rem;display:flex}.admin-modal-field legend{color:var(--admin-muted);padding:0 .3rem;font-size:.78rem;font-weight:700}.admin-modal-field label{cursor:pointer;align-items:center;gap:.45rem;font-size:.85rem;display:flex}.admin-modal-field input[type=text]{border:1px solid var(--admin-border);border-radius:6px;width:100%;padding:6px 8px;font-family:inherit;font-size:.82rem}.admin-modal-note{border:1px solid var(--admin-border);resize:vertical;border-radius:6px;width:100%;margin-bottom:.8rem;padding:8px;font-family:inherit;font-size:.85rem}.admin-badge--res-follow_up_required{color:#8f3d14;background:#d1622a29}.rsvp-admin{min-width:0}.rsvp-admin-intro{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.25rem;display:flex}.rsvp-admin-intro h2{margin:0;font-size:1.5rem}.rsvp-admin-intro p:not(.admin-eyebrow){max-width:680px;color:var(--admin-muted);margin:.35rem 0 0;font-size:.88rem}.rsvp-admin-primary-actions,.rsvp-admin-primary-actions button{align-items:center;gap:.45rem;display:flex}.rsvp-admin-primary-actions{flex-wrap:wrap;justify-content:flex-end}.rsvp-admin-cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:1.25rem}.rsvp-admin-view-tabs{border:1px solid var(--admin-border);background:var(--admin-surface);border-radius:10px;margin-bottom:.8rem;padding:.25rem;display:inline-flex}.rsvp-admin-view-tabs button,.rsvp-admin-filter-chips button,.rsvp-admin-pagination button{color:var(--admin-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;font-size:.82rem;font-weight:650}.rsvp-admin-view-tabs button{padding:.55rem .9rem}.rsvp-admin-view-tabs button.is-active,.rsvp-admin-filter-chips button.is-active{background:var(--admin-primary-soft);color:var(--admin-primary)}.rsvp-admin-toolbar{border:1px solid var(--admin-border);background:var(--admin-surface);box-shadow:var(--admin-shadow);border-radius:12px;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.8rem;display:flex}.rsvp-admin-search{border:1px solid var(--admin-border);min-width:0;color:var(--admin-muted);border-radius:9px;flex:260px;align-items:center;gap:.45rem;padding:0 .7rem;display:flex}.rsvp-admin-search input{width:100%;min-width:0;font:inherit;border:0;outline:0;padding:.58rem 0}.rsvp-admin-filter-chips{gap:.3rem;display:flex;overflow-x:auto}.rsvp-admin-filter-chips button{white-space:nowrap;padding:.5rem .65rem}.rsvp-admin-results-meta{color:var(--admin-muted);margin:0 0 .55rem;font-size:.8rem}.rsvp-admin-response-list{flex-direction:column;gap:.7rem;display:flex}.rsvp-admin-response{border:1px solid var(--admin-border);background:var(--admin-surface);box-shadow:var(--admin-shadow);border-radius:13px;overflow:hidden}.rsvp-admin-response.is-duplicate{border-left:4px solid var(--admin-warn)}.rsvp-admin-response summary{cursor:pointer;justify-content:space-between;gap:1rem;padding:.95rem 1rem;list-style:none;display:flex}.rsvp-admin-response summary::-webkit-details-marker{display:none}.rsvp-admin-response-title,.rsvp-admin-response-meta{flex-wrap:wrap;align-items:center;gap:.45rem;min-width:0;display:flex}.rsvp-admin-response-title strong,.rsvp-admin-attendee strong,.rsvp-admin-response-info dd{overflow-wrap:anywhere}.rsvp-admin-response-meta{color:var(--admin-muted);justify-content:flex-end;font-size:.76rem}.rsvp-admin-response[open] summary svg{transform:rotate(180deg)}.rsvp-admin-attendance,.rsvp-admin-badge{white-space:nowrap;border-radius:999px;align-items:center;gap:.25rem;padding:.22rem .55rem;font-size:.72rem;font-weight:700;display:inline-flex}.rsvp-admin-attendance.is-going,.rsvp-admin-badge.is-auto,.rsvp-admin-badge.is-confirmed{background:var(--admin-success-soft);color:var(--admin-success)}.rsvp-admin-attendance.is-declining,.rsvp-admin-badge.is-outside{background:var(--admin-danger-soft);color:var(--admin-danger)}.rsvp-admin-badge.is-review,.rsvp-admin-badge.is-duplicate{background:var(--admin-warn-soft);color:var(--admin-warn)}.rsvp-admin-badge.is-inactive{color:var(--admin-muted);background:#eef0f5}.rsvp-admin-response-body{border-top:1px solid var(--admin-border);background:#fbfcfe;padding:1rem}.rsvp-admin-response-info{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 1rem;margin:0 0 1rem;display:grid}.rsvp-admin-response-info .is-wide{grid-column:1/-1}.rsvp-admin-response-info dt{color:var(--admin-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.68rem;font-weight:700}.rsvp-admin-response-info dd{white-space:pre-wrap;margin:.15rem 0 0;font-size:.85rem}.rsvp-admin-attendees{flex-direction:column;gap:.5rem;display:flex}.rsvp-admin-attendee{border:1px solid var(--admin-border);background:#fff;border-radius:9px;grid-template-columns:minmax(180px,1fr) auto minmax(170px,auto);align-items:center;gap:.8rem;padding:.7rem;display:grid}.rsvp-admin-attendee>div:first-child{flex-direction:column;min-width:0;display:flex}.rsvp-admin-attendee>.rsvp-admin-badge{justify-self:start}.rsvp-admin-attendee small{color:var(--admin-muted);overflow-wrap:anywhere;font-size:.72rem}.rsvp-admin-attendee-actions{flex-wrap:wrap;justify-content:flex-end;gap:.35rem;display:flex}.rsvp-admin-attendee-actions button{font:inherit;cursor:pointer;border:0;border-radius:7px;padding:.42rem .62rem;font-size:.72rem;font-weight:700}.rsvp-admin-pagination{color:var(--admin-muted);justify-content:center;align-items:center;gap:.8rem;margin-top:1rem;font-size:.78rem;display:flex}.rsvp-admin-pagination button{border:1px solid var(--admin-border);background:#fff;padding:.45rem .7rem}.rsvp-admin-pagination button:disabled{opacity:.45;cursor:not-allowed}.rsvp-admin-modal{max-width:620px;max-height:min(86vh,760px);overflow-y:auto}.rsvp-admin-confirmation-modal{max-width:440px}.rsvp-admin-confirmation-modal .rsvp-admin-confirmation-message{overflow-wrap:anywhere;margin-bottom:.45rem}.rsvp-admin-confirmation-modal .rsvp-admin-confirmation-hint{color:var(--admin-muted);font-size:.82rem}.rsvp-admin-modal-search,.rsvp-admin-manual>label{color:var(--admin-muted);flex-direction:column;gap:.3rem;margin-bottom:.75rem;font-size:.75rem;font-weight:700;display:flex}.rsvp-admin-modal input[type=search],.rsvp-admin-modal input[type=text],.rsvp-admin-modal textarea,.rsvp-admin-modal select{box-sizing:border-box;border:1px solid var(--admin-border);width:100%;color:var(--admin-text);font:inherit;resize:vertical;border-radius:8px;padding:.58rem .7rem}.rsvp-admin-guest-picker{flex-direction:column;gap:.4rem;max-height:280px;margin-bottom:1rem;display:flex;overflow-y:auto}.rsvp-admin-guest-picker label,.rsvp-admin-guest-picker button,.rsvp-admin-selected-guest{border:1px solid var(--admin-border);color:var(--admin-text);text-align:left;cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:.65rem;padding:.65rem .75rem;display:flex}.rsvp-admin-guest-picker label.is-selected{border-color:var(--admin-primary);background:var(--admin-primary-soft)}.rsvp-admin-guest-picker span,.rsvp-admin-guest-picker button,.rsvp-admin-selected-guest span{min-width:0;font:inherit;flex-direction:column;flex:1;display:flex}.rsvp-admin-guest-picker small,.rsvp-admin-selected-guest small{color:var(--admin-muted);font-size:.72rem}.rsvp-admin-selected-guest{width:100%;margin-bottom:1rem}.rsvp-admin-manual-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:.75rem;display:grid}.rsvp-admin-manual-grid fieldset{border:1px solid var(--admin-border);border-radius:8px;align-items:center;gap:.8rem;margin:0;display:flex}.rsvp-admin-manual-grid label{align-items:center;gap:.3rem;font-size:.82rem;display:flex}.rsvp-admin-duplicate-confirm{background:var(--admin-warn-soft);border:1px solid #efd39d;border-radius:8px;align-items:flex-start;padding:.7rem;color:var(--admin-text)!important;flex-direction:row!important;font-weight:500!important}@media (width<=820px){.rsvp-admin-intro,.rsvp-admin-toolbar,.rsvp-admin-response summary{flex-direction:column;align-items:stretch}.rsvp-admin-primary-actions,.rsvp-admin-response-meta{justify-content:flex-start}.rsvp-admin-filter-chips{width:100%}.rsvp-admin-search{box-sizing:border-box;flex:none;width:100%}.rsvp-admin-attendee{grid-template-columns:minmax(0,1fr)}.rsvp-admin-attendee-actions{justify-content:flex-start}}@media (width<=560px){.rsvp-admin-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.rsvp-admin-response-info,.rsvp-admin-manual-grid{grid-template-columns:1fr}.rsvp-admin-guest-table th:nth-child(2),.rsvp-admin-guest-table td:nth-child(2){display:none}}main{animation:.4s ease-out fadeIn}
