:root{--primary-gold:#c9a961;--dark-gold:#b8935f;--light-gold:#e4d5b7;--cream:#fbf8f0;--soft-beige:#f5ede0;--text-dark:#3a3a3a;--text-light:#6b6b6b;--white:#fff;--black:#000;--font-serif:"Lora",serif;--font-display:"DM Serif Display",serif;--font-elegant:"Bodoni Moda",serif;--font-sans:"Montserrat",sans-serif;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:2rem;--spacing-xl:3rem;--spacing-2xl:4rem;--spacing-3xl:6rem;--transition-fast:.15s ease;--transition-base:.3s ease;--transition-slow:.5s ease;--transition-slower:.8s ease;--shadow-sm:0 1px 2px rgba(0,0,0,.05);--shadow-md:0 4px 6px rgba(0,0,0,.1);--shadow-lg:0 10px 15px rgba(0,0,0,.1);--shadow-xl:0 20px 25px rgba(0,0,0,.1);--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--z-background:-1;--z-base:0;--z-dropdown:10;--z-sticky:20;--z-fixed:30;--z-modal-backdrop:40;--z-modal:50;--z-popover:60;--z-tooltip:70}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,html{overflow-x:hidden}body{background-color:var(--cream);color:var(--text-dark);font-family:var(--font-serif);line-height:1.6;position:relative}body:before{background:url(/images/elm.png) top/contain no-repeat;background-position:center 40%;background-size:90%;bottom:-30%;filter:sepia(.2) hue-rotate(10deg) brightness(1.1) contrast(1.1) saturate(1.2);left:-30%;opacity:calc(var(--tree-breath-opacity, 1)*.7);right:-30%;top:-30%;transform:translateY(calc(var(--tree-initial-offset, -80px) + var(--tree-offset-y, 0px))) rotate(var(--tree-rotation,0deg)) scale(calc(var(--tree-scale, 1)*var(--tree-breath-scale, 1)));transition:opacity .3s ease;will-change:transform,opacity}body:after,body:before{content:"";pointer-events:none;position:fixed;z-index:var(--z-background)}body:after{background:radial-gradient(ellipse at center,transparent 0,hsla(44,58%,96%,.1) 50%,hsla(44,58%,96%,.3) 100%);top:0;right:0;bottom:0;left:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:400;line-height:1.2}h1{font-size:clamp(2rem,5vw,4rem)}h2{font-size:clamp(1.5rem,4vw,2.5rem)}h3{font-size:clamp(1.25rem,3vw,1.875rem)}h4{font-size:clamp(1.125rem,2.5vw,1.5rem)}p{margin-bottom:var(--spacing-md)}a{color:inherit;text-decoration:none;transition:color var(--transition-base)}a:hover{color:var(--primary-gold)}img{display:block;height:auto;max-width:100%}.container{margin:0 auto;max-width:1200px;padding:0 var(--spacing-lg);position:relative;width:100%}section{padding:var(--spacing-3xl) 0;position:relative}@media (max-width:1024px){.container{padding:0 var(--spacing-lg)}section{padding:var(--spacing-2xl) 0}}@media (max-width:768px){html{font-size:14px}.container{padding:0 var(--spacing-md)}section{padding:var(--spacing-xl) 0}body:before{background-position:center 45%;background-size:100%}}@media (max-width:480px){.container{padding:0 var(--spacing-lg)}section{padding:var(--spacing-lg) 0}body:before{background-position:center 50%;background-size:120%}body,html{max-width:100%;position:relative}.container,body,html,main,section{overflow-x:hidden}*{max-width:100vw}}:focus-visible{outline:2px solid var(--primary-gold);outline-offset:2px}::-moz-selection{background:var(--primary-gold);color:var(--white)}::selection{background:var(--primary-gold);color:var(--white)}@keyframes slideInLeft{0%{opacity:0;transform:translate(-50px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes rotateIn{0%{opacity:0;transform:rotate(-10deg) scale(.9)}to{opacity:1;transform:rotate(0) scale(1)}}@keyframes shimmer{0%,to{opacity:.5}50%{opacity:1}}@keyframes sparkleAnim{0%{opacity:1;transform:scale(0) rotate(0)}to{opacity:0;transform:scale(2) rotate(180deg)}}@keyframes drawLine{to{stroke-dashoffset:0}}.blur-in,.fade-in-up,.rotate-in,.scale-in,.slide-in-left,.slide-in-right{opacity:0}.fade-in-up.visible{animation:fadeInUp .8s ease forwards}.slide-in-left.visible{animation:slideInLeft .8s ease forwards}.slide-in-right.visible{animation:slideInRight .8s ease forwards}.scale-in.visible{animation:scaleIn .6s ease forwards}.rotate-in.visible{animation:rotateIn .8s ease forwards}.blur-in{filter:blur(10px);transition:filter .8s ease,opacity .8s ease}.blur-in.visible{filter:blur(0);opacity:1}.letter-animate span{display:inline-block;opacity:0;transform:translateY(20px);transition:all .4s ease}.letter-animate.visible span{opacity:1;transform:translateY(0)}.letter-animate.visible span:nth-child(n){transition-delay:calc(.05s*var(--index))}.shimmer{overflow:hidden;position:relative}.shimmer:after{animation:shimmer-slide 3s infinite;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.4),transparent);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}@keyframes shimmer-slide{to{left:100%}}.draw-line{position:relative}.draw-line:after{background:var(--primary-gold);bottom:-10px;content:"";height:2px;left:50%;position:absolute;transform:translate(-50%);transition:width .8s ease;width:0}.draw-line.visible:after{width:100px}.sparkle-effect{animation:sparkleFloat 1.5s ease-out forwards;font-size:1rem;pointer-events:none;position:absolute;z-index:10}@keyframes sparkleFloat{0%{opacity:1;transform:scale(0) translateY(0) rotate(0)}50%{opacity:.8;transform:scale(1) translateY(-20px) rotate(180deg)}to{opacity:0;transform:scale(0) translateY(-40px) rotate(1turn)}}.reveal-text{overflow:hidden;position:relative}.reveal-text:after{background:var(--cream);content:"";height:100%;left:0;position:absolute;top:0;transform:translate(-100%);transition:transform .8s cubic-bezier(.77,0,.175,1);width:100%}.reveal-text.visible:after{transform:translate(100%)}.cascade-in{opacity:0;transform:translateY(30px);transition:all .6s ease}.cascade-in.visible{opacity:1;transform:translateY(0)}.letter-animate.visible span:first-child{transition-delay:.05s}.letter-animate.visible span:nth-child(2){transition-delay:.1s}.letter-animate.visible span:nth-child(3){transition-delay:.15s}.letter-animate.visible span:nth-child(4){transition-delay:.2s}.letter-animate.visible span:nth-child(5){transition-delay:.25s}.letter-animate.visible span:nth-child(6){transition-delay:.3s}.letter-animate.visible span:nth-child(7){transition-delay:.35s}.letter-animate.visible span:nth-child(8){transition-delay:.4s}.letter-animate.visible span:nth-child(9){transition-delay:.45s}.letter-animate.visible span:nth-child(10){transition-delay:.5s}.parallax-container{overflow:hidden;position:relative}.parallax-layer{top:0;right:0;bottom:0;left:0;position:absolute;will-change:transform}.navigation{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;box-shadow:var(--shadow-md);height:72px;left:0;opacity:0;position:fixed;right:0;top:0;transform:translateY(-100%);transition:transform var(--transition-base),opacity var(--transition-base);z-index:var(--z-sticky)}.navigation.visible{opacity:1;transform:translateY(0)}.nav-container{align-items:center;display:flex;height:100%;justify-content:space-between;padding:var(--spacing-md) var(--spacing-xl)}.nav-brand{align-items:flex-start;display:flex;flex-direction:column;gap:0}.brand-text{color:var(--primary-gold);font-family:var(--font-display);font-size:1.5rem;text-align:left}.nav-countdown{color:var(--text-light);font-family:var(--font-sans);font-size:.75rem;font-weight:300;letter-spacing:.5px;text-transform:uppercase;transition:color var(--transition-base)}.nav-countdown.almost-here,.nav-countdown.married,.nav-countdown.wedding-day{color:var(--primary-gold);font-weight:500}.nav-countdown.married{animation:pulse 2s ease-in-out infinite}.nav-menu{display:flex;gap:var(--spacing-xl);list-style:none}.nav-link{font-family:var(--font-sans);font-size:.875rem;font-weight:300;letter-spacing:1px;position:relative;text-transform:uppercase;transition:color var(--transition-base)}.nav-link:after{background:var(--primary-gold);bottom:-4px;content:"";height:2px;left:0;position:absolute;transition:width var(--transition-base);width:0}.nav-link.active:after,.nav-link:hover:after{width:100%}.nav-toggle{align-items:center;cursor:pointer;display:none;flex-direction:column;gap:5px;justify-content:center;padding:var(--spacing-sm)}.nav-toggle span{background:var(--text-dark);height:2px;transform-origin:center;transition:all var(--transition-base);width:25px}.nav-toggle.active span:first-child{transform:rotate(45deg) translateY(10px)}.nav-toggle.active span:nth-child(2){opacity:0}.nav-toggle.active span:nth-child(3){transform:rotate(-45deg) translateY(-10px)}button{background:transparent;border:1px solid var(--primary-gold);border-radius:9999px;color:var(--primary-gold);cursor:pointer;font-family:var(--font-sans);font-weight:300;letter-spacing:2px;overflow:hidden;padding:var(--spacing-md) var(--spacing-xl);position:relative;text-transform:uppercase;transition:all var(--transition-base)}button:hover{background:var(--primary-gold);box-shadow:var(--shadow-lg);color:var(--white);transform:translateY(-2px)}.detail-card,.info-card,.menu-category{background:#ffffffe6;border-radius:8px;box-shadow:var(--shadow-md);overflow:hidden;padding:var(--spacing-xl);position:relative;transition:all var(--transition-base)}.detail-card:hover,.info-card:hover{box-shadow:var(--shadow-xl);transform:translateY(-5px)}.scroll-indicator{bottom:5vh;left:50%;pointer-events:auto;position:absolute;text-align:center;transform:translate(-50%);transition:opacity .3s ease;z-index:var(--z-dropdown)}.scroll-text{color:var(--primary-gold);font-family:var(--font-elegant);font-size:.95rem;letter-spacing:.12em;margin-bottom:var(--spacing-xs);opacity:.95;text-transform:none}.scroll-chevron{animation:chevronBounce 2.5s ease-in-out infinite;color:var(--primary-gold);font-size:1.2rem;will-change:transform}@keyframes chevronBounce{0%,to{opacity:.9;transform:translateY(0)}50%{opacity:.7;transform:translateY(4px)}}.sparkle{animation:sparkleAnim 1s ease-out forwards;background:var(--primary-gold);border-radius:50%;height:4px;pointer-events:none;position:absolute;width:4px}.ripple-container{overflow:hidden;position:relative}.ripple{animation:ripple-animation .6s ease-out;background:#c9a9614d;border-radius:50%;pointer-events:none;position:absolute}.scroll-progress{background:linear-gradient(90deg,var(--primary-gold),var(--dark-gold));height:3px;left:0;position:fixed;top:0;transform:scaleX(0);transform-origin:left;transition:transform .1s ease;width:100%;z-index:var(--z-fixed)}.gift-sparkle{animation:giftSparkleAnim 2s ease-out forwards;font-size:1.5rem;pointer-events:none;position:absolute;z-index:5}.gift-card{overflow:hidden;position:relative}.gift-card:before{background:url(/images/pres.png) 50%/200px no-repeat;content:"";top:0;right:0;bottom:0;left:0;opacity:.08;pointer-events:none;position:absolute}.gift-card h3{position:relative}.gift-card h3:after{background:var(--primary-gold);content:"";display:block;height:1px;margin:8px auto 0;opacity:.6;width:80px}@keyframes giftSparkleAnim{0%{opacity:1;transform:scale(0) rotate(0)}50%{opacity:.8;transform:scale(1.2) rotate(180deg)}to{opacity:0;transform:scale(0) rotate(1turn) translateY(-50px)}}.weather-widget{justify-content:center;min-height:80px;padding:var(--spacing-sm)}.weather-row,.weather-widget{align-items:center;display:flex}.weather-row{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid hsla(36,59%,62%,.15);border-radius:16px;box-shadow:0 4px 20px #00000014;gap:var(--spacing-lg);padding:1.25rem 1.75rem;transition:transform .2s ease,box-shadow .2s ease}.weather-row:hover{box-shadow:0 6px 24px #0000001f;transform:translateY(-2px)}.weather-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));font-size:3rem}.weather-meta{display:flex;flex-direction:column;font-family:var(--font-sans);gap:.35rem}.weather-label{color:var(--text-muted);font-size:.85rem;font-weight:600;letter-spacing:.5px;margin-bottom:.1rem;text-transform:uppercase}.weather-temps{color:var(--text-dark);font-family:var(--font-sans);font-size:1.4rem;font-weight:500;line-height:1.2}.weather-rain{color:var(--primary-gold);font-size:1rem;font-weight:500}.weather-note{color:var(--text-muted);font-size:.75rem;font-style:normal;margin-top:.5rem;opacity:.8}.weather-error,.weather-loading{color:var(--text-light);font-family:var(--font-sans);padding:1rem;text-align:center}@media (max-width:640px){.weather-row{gap:var(--spacing-md);padding:1rem 1.25rem}.weather-icon{font-size:2.5rem}.weather-temps{font-size:1.2rem}.weather-rain{font-size:.9rem}.weather-label{font-size:.75rem}}@keyframes ripple-animation{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(4)}}@media (max-width:1024px){.nav-container{padding:var(--spacing-md) var(--spacing-lg)}}@media (max-width:768px){.nav-container{padding:var(--spacing-md) var(--spacing-md)}.nav-menu{align-items:center;background:#fffffffa;flex-direction:column;gap:var(--spacing-xl);height:calc(100vh - 72px);justify-content:flex-start;padding-top:var(--spacing-3xl);position:fixed;right:-100%;top:72px;transition:right var(--transition-base);width:100%;z-index:var(--z-fixed)}.nav-menu.active{right:0}.nav-toggle{display:flex}.nav-link{font-size:1.125rem}}.hero{align-items:center;display:flex;justify-content:center;min-height:100vh;overflow:hidden;--leaf-offset:0px}.hero-bg{background:linear-gradient(180deg,#fbf8ef4d,#fbf8efb3);top:0;right:0;bottom:0;left:0;position:absolute}.floating-leaves{align-items:flex-start;display:flex;gap:8vw;justify-content:center}@keyframes floatLeaf{0%{opacity:0;transform:translate(-100px) translateY(var(--leaf-offset,0)) translate(var(--leaf-sway,0)) rotate(0)}5%{opacity:.4}95%{opacity:.4}to{opacity:0;transform:translate(calc(100vw + 100px)) translateY(var(--leaf-offset,0)) translate(var(--leaf-sway,0)) rotate(1turn)}}.floating-leaves{top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;position:absolute;z-index:1}.gentle-leaf{animation-delay:0s;animation-duration:22s;animation-iteration-count:infinite;animation-name:gentleFall;animation-timing-function:linear;backface-visibility:hidden;opacity:.6;position:relative;top:-12vh;will-change:transform,opacity;--sway:10px}.leaf-img{display:block;filter:drop-shadow(0 2px 2px rgba(0,0,0,.15));height:36px;width:36px}.gentle-leaf:nth-child(2){--sway:12px;animation-delay:6s;animation-duration:26s;opacity:.5}.gentle-leaf:nth-child(3){--sway:8px;animation-delay:12s;animation-duration:24s;opacity:.45}@keyframes gentleFall{0%{opacity:0;transform:translate3d(0,-12vh,0) rotate(0)}15%{opacity:.5;transform:translate3d(var(--sway),18vh,0) rotate(4deg)}35%{transform:translate3d(calc(var(--sway)*-.6),38vh,0) rotate(2deg)}55%{transform:translate3d(calc(var(--sway)*.4),60vh,0) rotate(-2deg)}75%{transform:translate3d(calc(var(--sway)*-.3),82vh,0) rotate(1deg)}to{opacity:0;transform:translate3d(calc(var(--sway)*.2),110vh,0) rotate(2deg)}}.no-js .floating-leaves:before{animation:floatLeaf 30s linear infinite;animation-delay:0s;color:var(--primary-gold);content:"🍃";font-size:2rem;left:-10%;opacity:.4;position:absolute;top:10%}.no-js .floating-leaves:after{animation:floatLeaf 25s linear infinite;animation-delay:12s;color:#8b4513;content:"🍂";font-size:1.5rem;left:-10%;opacity:.3;position:absolute;top:60%}.hero-content{text-align:center;transition:transform var(--transition-base);z-index:1}.hero{position:relative}.hero-text{animation:heroFadeIn 2s ease .5s forwards;opacity:0;transform:translateY(30px)}@keyframes heroFadeIn{to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}.names{color:var(--text-dark);font-family:var(--font-elegant);font-size:clamp(3.5rem,12vw,9rem);font-weight:300;letter-spacing:-.02em;line-height:.9;margin-bottom:var(--spacing-lg);position:relative}.names .and{color:var(--primary-gold);font-family:var(--font-display);font-size:.5em;font-style:italic;margin:0 .2em;vertical-align:middle}.wedding-date{font-family:var(--font-sans);font-size:clamp(1.375rem,3.5vw,2.25rem);font-weight:200;letter-spacing:2px;overflow:hidden;position:relative}.wedding-date,.wedding-time{color:var(--primary-gold);margin-bottom:var(--spacing-md);text-transform:uppercase}.wedding-time{font-family:var(--font-elegant);font-size:clamp(1.05rem,2.4vw,1.6rem);font-weight:400;letter-spacing:.12em;margin-top:-.25rem}.wedding-date.shimmer:after{animation:shimmerMove 3s infinite;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.6),transparent);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}@keyframes shimmerMove{to{left:100%}}.location{color:var(--text-light);font-family:var(--font-sans);font-size:clamp(.875rem,2vw,1.125rem);font-weight:300;letter-spacing:1px}.our-story{background:var(--cream);overflow:hidden;position:relative}.our-story:before{animation:gentleRotate 30s linear infinite;background:radial-gradient(circle at center,rgba(201,169,97,.05) 0,transparent 70%);content:"";height:200%;left:-50%;position:absolute;top:-50%;width:200%}@keyframes gentleRotate{to{transform:rotate(1turn)}}.story-content{margin:0 auto;max-width:720px;position:relative;text-align:center;z-index:1}.story-content p{color:var(--text-dark);font-size:1.1875rem;font-weight:400;letter-spacing:.3px;line-height:2;margin-bottom:var(--spacing-xl);position:relative}.story-content p:first-child{font-size:1.25rem}.story-content p:first-child:before{color:var(--primary-gold);content:'"';font-family:var(--font-elegant);font-size:4rem;left:-2rem;opacity:.3;position:absolute;top:-.5rem}.story-content p:last-child{margin-bottom:0}.story-content p:last-child:after{background:var(--primary-gold);content:"";display:block;height:1px;margin:var(--spacing-xl) auto 0;opacity:.6;width:60px}.event-details{background:#ffffffe6;padding:var(--spacing-3xl) 0}.details-bg{background:url(/images/pres.png) 50%/cover;filter:blur(2px);top:0;right:0;bottom:0;left:0;opacity:.1;position:absolute}.details-grid{display:grid;gap:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:var(--spacing-2xl)}.detail-card h3{color:var(--primary-gold);font-family:var(--font-display);margin-bottom:var(--spacing-md)}.detail-card .time{color:var(--text-dark);font-family:var(--font-elegant);font-size:1.5rem;margin-bottom:var(--spacing-sm)}.detail-card p{color:var(--text-light);font-family:var(--font-sans);font-weight:300;margin-bottom:var(--spacing-xs)}.countdown-section{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:linear-gradient(180deg,#fbf8ef80 0,#fbf8efcc 50%,#fbf8efe6);padding:var(--spacing-3xl) 0;position:relative;text-align:center}.countdown-grid{align-items:stretch;display:grid;gap:var(--spacing-xl);grid-template-columns:repeat(4,minmax(120px,1fr));justify-content:center;margin:0 auto;max-width:900px}.time-box{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1a;border:1px solid rgba(201,169,97,.1);border-radius:12px;box-shadow:var(--shadow-md),inset 0 0 20px #c9a9610d;padding:var(--spacing-2xl)}.time-value{color:var(--text-dark);font-family:var(--font-elegant);font-size:clamp(2rem,6vw,3.5rem)}.time-label{color:var(--text-light);font-family:var(--font-sans);font-size:.85rem;letter-spacing:1px;margin-top:var(--spacing-sm);text-transform:uppercase}@media (max-width:768px){.countdown-section{padding:var(--spacing-2xl) 0}.countdown-grid{gap:var(--spacing-md);grid-template-columns:repeat(2,1fr);padding:0 var(--spacing-md)}.time-box{margin:0;padding:var(--spacing-lg)}.time-value{font-size:clamp(1.75rem,8vw,2.5rem)}.time-label{font-size:.75rem;margin-top:var(--spacing-xs)}}@media (max-width:480px){.countdown-section{padding:var(--spacing-xl) 0}.countdown-grid{gap:var(--spacing-sm);padding:0 var(--spacing-lg)}.time-box{border-radius:8px;padding:var(--spacing-md)}.time-value{font-size:1.75rem}.time-label{font-size:.7rem}}.menu-preview{background:var(--soft-beige);text-align:center}.menu-preview.rsvp{background:var(--cream);padding:var(--spacing-2xl) 0}.menu-description{color:var(--text-dark);font-size:1.125rem;margin:0 auto var(--spacing-lg);max-width:600px}.rsvp-container{margin:0 auto;max-width:900px}.guest-row{padding:1rem;transition:all .3s ease}.guest-info,.guest-row{align-items:center;display:flex;gap:var(--spacing-md)}.guest-info{flex:1}.guest-actions{gap:var(--spacing-sm)}.guest-actions,.guest-attendance{align-items:center;display:flex}.attendance-toggle{opacity:0;pointer-events:none;position:absolute}.attendance-switch{align-items:center;cursor:pointer;display:flex;gap:6px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.switch-track{background:#e5e7eb;border-radius:100px;height:28px;overflow:hidden;position:relative;transition:all .3s ease;width:56px}.switch-handle{background:#fff;border-radius:50%;box-shadow:0 2px 4px #00000026;height:22px;left:3px;position:absolute;top:3px;transition:all .3s cubic-bezier(.68,-.55,.265,1.55);width:22px;z-index:2}.switch-icons{align-items:center;display:flex;top:0;right:0;bottom:0;left:0;justify-content:space-between;padding:0 6px;position:absolute}.icon-no,.icon-yes{align-items:center;display:flex;font-size:12px;font-weight:700;height:16px;justify-content:center;line-height:1;transition:all .3s ease;width:16px}.icon-yes{color:#fff;opacity:0;transform:scale(.5)}.icon-no{color:#6b7280;opacity:1;transform:scale(1)}.attendance-text{color:var(--text-light);display:inline-block;font-family:var(--font-sans);font-size:.875rem;font-weight:500;overflow:hidden;position:relative;text-align:left;width:30px}.text-no,.text-yes{left:0;position:absolute;top:0;transition:opacity .3s ease,transform .3s ease}.text-yes{opacity:0;transform:translateY(10px)}.text-no{opacity:1;transform:translateY(0)}.attendance-toggle:checked+.attendance-switch .switch-track{background:var(--primary-gold)}.attendance-toggle:checked+.attendance-switch .switch-handle{left:calc(100% - 25px)}.attendance-toggle:checked+.attendance-switch .icon-yes{opacity:1;transform:scale(1)}.attendance-toggle:checked+.attendance-switch .icon-no{opacity:0;transform:scale(.5)}.attendance-toggle:checked+.attendance-switch .text-yes{color:var(--primary-gold);opacity:1;transform:translateY(0)}.attendance-toggle:checked+.attendance-switch .text-no{opacity:0;transform:translateY(-10px)}.guest-row.not-attending{opacity:.7}@keyframes celebrate{0%{transform:scale(1)}25%{transform:scale(1.02) rotate(1deg)}50%{transform:scale(1.02) rotate(-1deg)}75%{transform:scale(1.02) rotate(.5deg)}to{transform:scale(1)}}.guest-card.celebrating{animation:celebrate .8s ease}.guest-card.celebrating .switch-track{animation:pulseGold .8s ease}@keyframes pulseGold{0%,to{box-shadow:0 0 #c9a96100}50%{box-shadow:0 0 0 8px #c9a96133}}@keyframes decline{0%{transform:translate(0)}25%{transform:translate(-5px)}50%{transform:translate(5px)}75%{transform:translate(-2px)}to{transform:translate(0)}}.guest-card.declining{animation:decline .5s ease}.fireworks-container{top:0;right:0;bottom:0;left:0;overflow:visible;pointer-events:none;position:absolute;z-index:10}.firework-burst{height:4px;position:absolute;width:4px}.firework-particle{animation:fireworkParticle 1.2s cubic-bezier(.25,.46,.45,.94) forwards;animation-delay:var(--delay,0s);background:var(--primary-gold);border-radius:50%;box-shadow:0 0 6px var(--primary-gold);height:3px;position:absolute;width:3px}@keyframes fireworkParticle{0%{opacity:1;transform:translate(0) scale(0)}15%{opacity:1;transform:translate(0) scale(1.2)}25%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(calc(cos(var(--angle))*var(--distance, 80px))) translateY(calc(sin(var(--angle))*var(--distance, 80px))) scale(0)}}.firework-particle:before{animation:sparkleTrail 1.2s ease-out forwards;animation-delay:inherit;background:linear-gradient(90deg,transparent,var(--light-gold),transparent);content:"";height:100%;position:absolute;width:100%}@keyframes sparkleTrail{0%{opacity:0;width:0}50%{opacity:.8;width:20px}to{opacity:0;width:0}}.firework-particle:nth-child(3n){background:var(--light-gold);box-shadow:0 0 8px var(--light-gold),0 0 20px var(--light-gold)}.firework-particle:nth-child(3n+1){background:var(--dark-gold);box-shadow:0 0 6px var(--dark-gold),0 0 15px var(--dark-gold)}.firework-particle:nth-child(3n+2){background:gold;box-shadow:0 0 10px gold,0 0 25px gold}.firework-particle:nth-child(2n){animation:fireworkParticle 1.2s cubic-bezier(.25,.46,.45,.94) forwards,twinkle .6s ease-in-out infinite;animation-delay:var(--delay,0s)}@keyframes twinkle{0%,to{opacity:1}50%{opacity:.3}}.guest-list{display:grid;gap:var(--spacing-md);grid-template-columns:1fr;margin-bottom:var(--spacing-xl);min-height:0}.guest-list:empty{display:none;margin-bottom:0}.guest-card{background:#fff;border:1px solid hsla(36,59%,62%,.2);border-radius:12px;overflow:hidden;position:relative;transition:border-color .3s ease,box-shadow .3s ease,opacity .3s ease}.guest-card.new-entry{animation:guestCardEntry .3s ease-out}@keyframes guestCardEntry{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.guest-card.saved-success{border-color:#4ade8066}.guest-card.removing{opacity:0;transform:translate(100%)}.guest-number{color:var(--text-light);font-family:var(--font-sans);font-size:.875rem;font-weight:500;min-width:65px}.guest-fields{display:flex;flex:1;gap:var(--spacing-md)}.guest-fields input[type=text]{background:#fffffff2;border:1px solid hsla(36,59%,62%,.25);border-radius:8px;color:var(--text-dark);flex:1;font-family:var(--font-sans);font-size:.875rem;padding:.5rem .75rem;transition:all .2s ease}.guest-fields input[type=text]:focus{background:#fff;border-color:var(--primary-gold);box-shadow:0 0 0 3px #c9a9611a;outline:none}.guest-fields input[type=text].shake{animation:shake .4s ease;border-color:#ef4444}.guest-save{background:transparent;border:1px solid var(--primary-gold);border-radius:9999px;color:var(--primary-gold);cursor:pointer;font-family:var(--font-sans);font-size:.75rem;font-weight:500;letter-spacing:.5px;min-width:65px;overflow:hidden;padding:.4rem .875rem;position:relative;text-transform:uppercase;transition:all .2s ease}.guest-save:hover:not(.saved){background:var(--primary-gold);color:#fff}.guest-save.saving{background:var(--primary-gold);color:transparent;pointer-events:none}.guest-save.saving:after{animation:spin .8s linear infinite;border:2px solid #fff;border-radius:50%;border-top-color:transparent;content:"";height:14px;left:50%;margin:-7px 0 0 -7px;position:absolute;top:50%;width:14px}.guest-save.saved{background:#22c55e;border-color:#22c55e;color:#fff}.guest-save .save-icon,.guest-save .save-text{display:inline-block;transition:all .2s ease}.guest-save .save-icon{font-size:1rem;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0)}.guest-save.saved .save-text{opacity:0;transform:scale(0)}.guest-save.saved .save-icon{transform:translate(-50%,-50%) scale(1)}@keyframes spin{to{transform:rotate(1turn)}}.success-ripple{animation:ripple-expand .8s ease-out;background:#22c55e33;border-radius:50%;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%)}@keyframes ripple-expand{0%{height:0;opacity:1;width:0}to{height:150px;opacity:0;width:150px}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}.rsvp-actions{display:flex;margin-top:var(--spacing-lg);overflow:hidden;transition:transform .4s ease;width:100%}.add-guest-button,.rsvp-actions{align-items:center;justify-content:center}.add-guest-button{background:#fff;border:2px solid var(--primary-gold);border-radius:9999px;box-shadow:0 4px 20px #0000000d;color:var(--primary-gold);cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-size:1rem;font-weight:500;gap:var(--spacing-sm);letter-spacing:1px;padding:1rem 2rem;text-transform:uppercase;transition:all .3s ease}.add-guest-button:hover{background:var(--primary-gold);box-shadow:0 8px 30px #c9a9614d;color:#fff;transform:translateY(-2px)}.add-guest-button:active{transform:translateY(0)}.add-guest-button .plus-icon{font-size:1.25rem;font-weight:300;transition:transform .3s ease}.add-guest-button:hover .plus-icon{transform:rotate(90deg)}.rsvp-actions.adding{animation:smoothPushDown .4s ease-out}@keyframes smoothPushDown{0%{transform:translateY(0)}30%{transform:translateY(-5px)}60%{transform:translateY(10px)}to{transform:translateY(0)}}@media (max-width:720px){.guest-row{flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-lg)}.guest-info{align-items:stretch;flex-direction:column;gap:var(--spacing-xs);width:100%}.guest-number{margin-bottom:var(--spacing-xs);text-align:center}.guest-fields{flex-direction:column;gap:var(--spacing-sm);width:100%}.guest-actions{justify-content:space-between;margin-top:var(--spacing-sm);width:100%}.guest-save{min-width:80px}.attendance-text{font-size:.75rem;width:25px}}.menu-items{display:grid;gap:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:0 auto;max-width:900px}.menu-category{text-align:center}.menu-category h4{color:var(--primary-gold);margin-bottom:var(--spacing-sm)}.menu-category p{color:var(--text-light);font-family:var(--font-sans);font-size:.875rem;font-weight:300}.additional-info{background:var(--soft-beige)}.info-grid{display:grid;gap:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:var(--spacing-2xl)}.info-card h3{color:var(--primary-gold);margin-bottom:var(--spacing-md)}.info-card p{color:var(--text-light);margin-bottom:var(--spacing-sm)}.info-link{align-items:center;color:var(--primary-gold);display:inline-flex;font-weight:500;gap:var(--spacing-sm);margin:var(--spacing-xs) var(--spacing-sm);overflow:hidden;position:relative}.info-link:before{background:#c9a9611a;border-radius:50%;content:"";height:0;left:var(--mouse-x,50%);position:absolute;top:var(--mouse-y,50%);transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}.info-link:hover:before{height:200px;width:200px}.link-icon{font-size:1.2em}.help-text{color:var(--text-light);font-size:.875rem;font-style:italic;margin-top:var(--spacing-md)}.gift-section{background:var(--soft-beige);overflow:hidden;position:relative;text-align:center}.gift-section .container{margin-bottom:var(--spacing-xl);margin-top:var(--spacing-xl);padding:var(--spacing-3xl);position:relative;z-index:3}.gift-illustration{display:block;filter:sepia(.2) hue-rotate(10deg) brightness(1.2) contrast(1.2);height:220px;margin:0 auto var(--spacing-lg);-o-object-fit:contain;object-fit:contain;opacity:1!important;position:relative;visibility:visible!important;width:220px;z-index:10}.gift-bg-left{background:url(/images/pres.png) 50%/contain no-repeat;filter:sepia(.2) hue-rotate(10deg) brightness(1.4) contrast(1.2);height:400px;opacity:.3;position:absolute;right:-50px;top:50%;transform:translateY(-50%);width:400px;z-index:0}.gift-content{font-size:1.125rem;line-height:1.8;margin:0 auto;max-width:600px}.photo-gallery{background:linear-gradient(135deg,#fffffff2,#e4d6b933),radial-gradient(ellipse at top left,rgba(201,169,97,.1) 0,transparent 40%),radial-gradient(ellipse at bottom right,rgba(201,169,97,.08) 0,transparent 40%);min-height:600px;overflow:hidden;position:relative}.gallery-placeholder{display:none!important}.spotify-section{background:linear-gradient(180deg,#fbf8efe6,#f5ede0f2),repeating-linear-gradient(90deg,transparent,transparent 50px,rgba(201,169,97,.03) 0,rgba(201,169,97,.03) 51px);opacity:0;overflow:hidden;padding:var(--spacing-3xl) 0;position:relative;transform:translateY(30px);transition:all .8s ease}.spotify-section.visible{opacity:1;transform:translateY(0)}.spotify-section:before{animation:float 20s ease-in-out infinite;background:radial-gradient(circle,rgba(201,169,97,.15) 0,transparent 70%);border-radius:50%;content:"";height:300px;left:-100px;position:absolute;top:-100px;width:300px}.spotify-section:after{animation:float 25s ease-in-out infinite reverse;background:radial-gradient(circle,rgba(201,169,97,.12) 0,transparent 70%);border-radius:50%;bottom:-150px;content:"";height:400px;position:absolute;right:-150px;width:400px}.spotify-container{margin:0 auto;max-width:800px;position:relative;z-index:1}.spotify-intro{text-align:center}.spotify-intro p{color:var(--text-dark);font-family:var(--font-serif);font-size:1.125rem;line-height:1.8;margin-bottom:var(--spacing-md)}.spotify-intro .subtitle{color:var(--text-light);font-family:var(--font-sans);font-size:.875rem;letter-spacing:1px;text-transform:uppercase}.spotify-iframe-wrapper{background:#fffffffa;border-radius:16px;box-shadow:0 10px 40px #0000001a;margin-bottom:var(--spacing-xl);overflow:hidden;padding:var(--spacing-xl);position:relative}.spotify-iframe-wrapper:before{animation:pulse 3s ease-in-out infinite;color:var(--primary-gold);content:"♪";font-size:2rem;opacity:.2;position:absolute;right:20px;top:20px}.spotify-iframe-wrapper iframe{border-radius:12px;box-shadow:0 4px 20px #00000014}.playlist-info{text-align:center}.playlist-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-md);justify-content:center}.share-button,.spotify-button{align-items:center;background:transparent;border:1px solid var(--primary-gold);border-radius:9999px;color:var(--primary-gold);cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-size:.875rem;font-weight:400;gap:var(--spacing-sm);letter-spacing:1px;overflow:hidden;padding:var(--spacing-md) var(--spacing-xl);position:relative;text-decoration:none;text-transform:uppercase;transition:all var(--transition-base)}.share-button:before,.spotify-button:before{background:var(--primary-gold);border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:all .4s ease;width:0;z-index:-1}.share-button:hover,.spotify-button:hover{box-shadow:0 5px 15px #c9a9614d;color:var(--white);transform:translateY(-2px)}.share-button:hover:before,.spotify-button:hover:before{height:300px;width:300px}.share-icon,.spotify-icon{flex-shrink:0;height:20px;width:20px}.share-icon{stroke-width:1.5}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-30px) scale(1.05)}66%{transform:translate(-20px,20px) scale(.95)}}.song-request-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff80;border:1px solid rgba(201,169,97,.15);border-radius:16px;padding:var(--spacing-2xl);position:relative}.request-title{color:var(--text-dark);font-family:var(--font-display);font-size:1.5rem;margin-bottom:var(--spacing-sm);text-align:center}.request-subtitle{color:var(--text-light);font-family:var(--font-serif);font-size:.95rem;margin-bottom:var(--spacing-xl);text-align:center}.song-request-form{display:flex;flex-direction:column;gap:var(--spacing-md);margin:0 auto;max-width:500px}.song-request-form .button-group{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-sm)}.song-request-form .button-group button{flex:1}.song-request-form input,.song-request-form textarea{background:#ffffff80;border:1px solid rgba(201,169,97,.3);border-radius:8px;font-family:var(--font-sans);font-size:.95rem;padding:var(--spacing-md) var(--spacing-lg);transition:all var(--transition-base)}.song-request-form input:focus,.song-request-form textarea:focus{background:#fffc;border-color:var(--primary-gold);box-shadow:0 0 0 3px #c9a9611a;outline:none}.song-request-form textarea{min-height:60px;resize:vertical}.submit-request-btn{background:var(--primary-gold);border:1px solid var(--primary-gold);border-radius:9999px;color:var(--white);cursor:pointer;font-family:var(--font-sans);font-size:.875rem;font-weight:400;letter-spacing:1px;margin-top:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);text-transform:uppercase;transition:all var(--transition-base)}.submit-request-btn:hover:not(:disabled){background:var(--dark-gold);border-color:var(--dark-gold);box-shadow:0 5px 15px #c9a9614d;transform:translateY(-2px)}.submit-request-btn:disabled{cursor:not-allowed;opacity:.7}.request-message{bottom:20px;left:50%;max-width:90%;opacity:0;pointer-events:none;position:absolute;transform:translate(-50%) translateY(-10px);transition:all var(--transition-base);width:auto;z-index:10}.request-message.show{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(0)}.error-message,.success-message{align-items:center;border-radius:9999px;box-shadow:0 10px 30px #0003;display:inline-flex;font-family:var(--font-sans);font-size:.875rem;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg)}.success-message{background:var(--primary-gold);border:1px solid var(--primary-gold);color:var(--white)}.success-message svg{height:20px;width:20px;stroke:var(--white);flex-shrink:0}.error-message{background:#dc2626;border:1px solid #dc2626;color:var(--white)}.error-message svg{height:20px;width:20px;stroke:var(--white);flex-shrink:0}.playlist-instructions{display:flex;flex-wrap:wrap;gap:var(--spacing-xl);justify-content:center;margin-top:var(--spacing-lg)}.instruction-step{align-items:center;color:var(--text-light);display:flex;font-family:var(--font-sans);font-size:.85rem;gap:var(--spacing-sm)}.instruction-step:before{color:var(--primary-gold);content:"✓";font-weight:700}.song-search-container{margin:0 auto var(--spacing-xl);max-width:600px}.search-input-wrapper{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.song-search-input{background:#ffffff80;border:1px solid rgba(201,169,97,.3);border-radius:9999px;flex:1;font-family:var(--font-sans);font-size:1rem;padding:var(--spacing-md) var(--spacing-lg);transition:all var(--transition-base)}.song-search-input:focus{background:#fffc;border-color:var(--primary-gold);box-shadow:0 0 0 3px #c9a9611a;outline:none}.search-btn{align-items:center;background:var(--primary-gold);border:1px solid var(--primary-gold);border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;height:48px;justify-content:center;padding:0;transition:all var(--transition-base);width:48px}.search-btn:hover{background:var(--dark-gold);box-shadow:0 4px 12px #c9a9614d;transform:translateY(-2px)}.search-btn svg{height:20px;width:20px;stroke:var(--white)}.search-results{border-radius:12px;max-height:400px;overflow-y:auto}.no-results,.search-error,.search-loading{color:var(--text-light);font-family:var(--font-sans);padding:var(--spacing-xl);text-align:center}.search-error{color:#dc2626}.search-result-item{align-items:center;background:#fffc;border:1px solid rgba(201,169,97,.1);border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;margin-bottom:var(--spacing-sm);padding:var(--spacing-md);transition:all var(--transition-base)}.search-result-item:hover{background:#fffffff2;border-color:#c9a9614d;transform:translate(4px)}.track-info{align-items:center;display:flex;flex:1;gap:var(--spacing-md)}.track-image{border-radius:4px;height:50px;-o-object-fit:cover;object-fit:cover;width:50px}.track-details{flex:1}.track-name{color:var(--text-dark);font-weight:500}.track-artist,.track-name{font-family:var(--font-sans);margin-bottom:2px}.track-artist{color:var(--text-light);font-size:.875rem}.track-album{color:var(--text-light);font-family:var(--font-sans);font-size:.75rem;opacity:.8}.select-track-btn{background:transparent;border:1px solid var(--primary-gold);border-radius:9999px;color:var(--primary-gold);font-size:.875rem;padding:var(--spacing-sm) var(--spacing-md)}.select-track-btn:hover{background:var(--primary-gold);color:var(--white)}.selected-song-title{color:var(--text-dark);font-family:var(--font-display);font-size:1.25rem;margin-bottom:var(--spacing-md);text-align:center}.selected-song-info{display:grid;gap:var(--spacing-md);grid-template-columns:1fr 1fr;margin-bottom:var(--spacing-md)}.selected-song-info input{background:#fffc;cursor:not-allowed}.cancel-btn{background:transparent;border:1px solid rgba(0,0,0,.1);border-radius:9999px;color:var(--text-light);font-size:.875rem;padding:var(--spacing-sm) var(--spacing-lg)}.cancel-btn:hover{background:#0000000d;box-shadow:none;color:var(--text-dark);transform:none}.footer{background:var(--text-dark);color:var(--white);padding:var(--spacing-xl) 0;text-align:center}.footer p{margin-bottom:var(--spacing-sm)}.hashtag{color:var(--primary-gold);font-family:var(--font-sans);font-size:.875rem;font-weight:300;letter-spacing:1px}.footer-credit{border-top:1px solid rgba(201,169,97,.2);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.footer-credit p{color:#fff9;font-family:var(--font-sans);font-size:.75rem;font-weight:300;letter-spacing:.5px;margin:0;transition:color .3s ease}.footer-credit p:hover{color:var(--primary-gold)}.section-title{color:var(--text-dark);display:inline-block;margin-bottom:var(--spacing-lg);position:relative;text-align:center;width:100%}@media (max-width:768px){.details-grid,.info-grid,.menu-items{gap:var(--spacing-lg);grid-template-columns:1fr}.info-grid{margin-top:0}.info-card{margin-left:var(--spacing-md);margin-right:var(--spacing-md);padding:var(--spacing-lg) var(--spacing-xl)}.nav-brand{align-items:flex-start}.brand-text{font-size:1.25rem}.nav-countdown{font-size:.7rem}button{min-height:44px;padding:var(--spacing-sm) var(--spacing-lg)}input[type=email],input[type=tel],input[type=text],select,textarea{font-size:16px;min-height:44px;padding:var(--spacing-sm) var(--spacing-md)}.section-title{font-size:2rem;margin-bottom:var(--spacing-lg)}.spotify-iframe-wrapper{padding:var(--spacing-md)}.spotify-iframe-wrapper iframe{height:300px}.playlist-actions{flex-direction:column;gap:var(--spacing-sm)}.share-button,.spotify-button{justify-content:center;width:100%}.playlist-instructions{align-items:center;flex-direction:column;gap:var(--spacing-sm)}.song-request-section{border-radius:12px;margin:0 var(--spacing-sm);padding:var(--spacing-lg) var(--spacing-md)}.song-search-container{margin-bottom:var(--spacing-lg)}.search-input-wrapper{flex-direction:row;gap:var(--spacing-xs)}.song-search-input{font-size:16px;padding:var(--spacing-sm) var(--spacing-md)}.search-btn{flex-shrink:0;height:44px;width:44px}.search-results{margin-top:var(--spacing-sm);max-height:300px}.search-result-item{align-items:stretch;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md)}.track-info{width:100%}.track-image{height:50px;width:50px}.track-details{padding-left:0}.select-track-btn{margin-top:var(--spacing-xs);width:100%}.song-request-form{gap:var(--spacing-md)}.selected-song-title{font-size:1.1rem;margin-bottom:var(--spacing-sm)}.selected-song-info{gap:var(--spacing-sm);grid-template-columns:1fr}.song-request-form input,.song-request-form textarea{font-size:16px;padding:var(--spacing-sm) var(--spacing-md)}.song-request-form .button-group{flex-direction:column;gap:var(--spacing-sm)}.song-request-form .button-group button{padding:var(--spacing-md);width:100%}.cancel-btn{order:2}.submit-request-btn{order:1}.request-message{bottom:10px;left:50%;max-width:calc(100% - var(--spacing-xl));transform:translate(-50%) translateY(-10px)}.request-message.show{transform:translate(-50%) translateY(0)}.error-message,.success-message{border-radius:30px;font-size:.85rem;padding:var(--spacing-sm) var(--spacing-md);text-align:center;white-space:normal;word-break:break-word}.error-message svg,.success-message svg{height:16px;width:16px}}@media (max-width:1024px){.hero{align-items:flex-start;padding-top:25vh}.hero-content{margin-top:0}}@media (max-width:768px){.hero{align-items:flex-start;min-height:100vh;padding:var(--spacing-2xl) 0;padding-top:25vh}.hero-content{margin-top:0}.hero-title{font-size:clamp(2rem,8vw,3rem);line-height:1.2;margin-bottom:var(--spacing-md)}.hero-subtitle{font-size:1rem;margin-bottom:var(--spacing-lg);padding:0 var(--spacing-md)}.hero-date{font-size:1.25rem;padding:var(--spacing-md) var(--spacing-lg)}.rsvp-container{padding:0}.rsvp-form{border-radius:12px;margin:0 var(--spacing-sm)}.guest-row,.rsvp-form{padding:var(--spacing-lg)}.guest-row{gap:var(--spacing-sm)}.guest-input{font-size:16px;min-height:44px}.rsvp-actions{flex-direction:column}.add-guest-button,.rsvp-submit{font-size:1rem;justify-content:center;min-height:48px;width:100%}.gallery-grid{gap:var(--spacing-md)}.gallery-item{border-radius:8px}.detail-card,.menu-category{margin-bottom:var(--spacing-md);margin-left:var(--spacing-md);margin-right:var(--spacing-md);padding:var(--spacing-lg) var(--spacing-xl)}}@media (max-width:480px){.hero-title{font-size:1.75rem}.hero-subtitle{font-size:.875rem}.section-title{font-size:1.5rem}.rsvp-form{border-radius:12px;margin:0 var(--spacing-md);padding:var(--spacing-lg)}.guest-row{padding:var(--spacing-md) var(--spacing-lg)}.button+.button,button+button{margin-top:var(--spacing-sm)}.gallery-grid{padding:0 var(--spacing-md)}.detail-card,.info-card,.menu-category{margin-left:var(--spacing-lg);margin-right:var(--spacing-lg);padding:var(--spacing-xl) var(--spacing-2xl)}.info-card{margin-bottom:var(--spacing-md)}.time-box{margin:0}}.photo-gallery:before{background:radial-gradient(circle at 20% 50%,rgba(201,169,97,.1) 0,transparent 50%),radial-gradient(circle at 80% 50%,hsla(40,45%,81%,.1) 0,transparent 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.gallery-bg{top:0;right:0;bottom:0;left:0;opacity:.5;position:absolute}.gallery-grid{display:grid;gap:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:var(--spacing-2xl)}.gallery-item{aspect-ratio:4/3;background:var(--white);border-radius:12px;box-shadow:var(--shadow-md);cursor:pointer;opacity:0;overflow:hidden;position:relative;transform:scale(.9);transition:all var(--transition-base)}.gallery-item.visible{opacity:1;transform:scale(1)}.gallery-item:hover{box-shadow:var(--shadow-xl);transform:scale(1.05) rotate(1deg)}.gallery-item img{height:100%;-o-object-fit:cover;object-fit:cover;opacity:0;transition:all var(--transition-slow);width:100%}.gallery-item img.loaded{opacity:1}.gallery-item:hover img{transform:scale(1.1)}.gallery-overlay{align-items:flex-end;background:linear-gradient(0deg,rgba(0,0,0,.7),transparent 50%);display:flex;top:0;right:0;bottom:0;left:0;opacity:0;padding:var(--spacing-lg);position:absolute;transition:opacity var(--transition-base)}.gallery-item:hover .gallery-overlay{opacity:1}.gallery-overlay p{color:var(--white);font-family:var(--font-display);font-size:1.125rem;margin:0;text-shadow:0 1px 3px rgba(0,0,0,.5)}.gallery-lightbox{top:0;right:0;bottom:0;left:0;opacity:0;position:fixed;transition:all var(--transition-base);visibility:hidden;z-index:100}.gallery-lightbox.active{opacity:1;visibility:visible}.lightbox-backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000e6;top:0;right:0;bottom:0;left:0;position:absolute}.lightbox-content{align-items:center;display:flex;height:100%;justify-content:center;padding:var(--spacing-xl);position:relative;width:100%}.lightbox-image{border-radius:8px;box-shadow:var(--shadow-xl);max-height:90%;max-width:90%;-o-object-fit:contain;object-fit:contain;transition:opacity .3s ease}.lightbox-close,.lightbox-next,.lightbox-prev{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff1a;border:1px solid hsla(0,0%,100%,.2);border-radius:50%;color:var(--white);cursor:pointer;display:flex;font-size:1.25rem;font-weight:300;height:40px;justify-content:center;line-height:1;opacity:.7;position:absolute;transition:all .3s ease;width:40px}.lightbox-close{right:var(--spacing-xl);top:var(--spacing-xl)}.lightbox-prev{left:var(--spacing-xl)}.lightbox-next,.lightbox-prev{top:50%;transform:translateY(-50%)}.lightbox-next{right:var(--spacing-xl)}.lightbox-close:hover,.lightbox-next:hover,.lightbox-prev:hover{background:#fff3;border-color:#fff6;box-shadow:0 2px 12px #00000026;opacity:1;transform:scale(1.05)}.lightbox-next:hover,.lightbox-prev:hover{transform:translateY(-50%) scale(1.05)}.lightbox-close:after,.lightbox-close:before{background:currentColor;border-radius:1px;content:"";height:1.5px;position:absolute;transition:all .2s ease;width:14px}.lightbox-close:after{transform:rotate(45deg)}.lightbox-close:before{transform:rotate(-45deg)}.lightbox-next:after,.lightbox-prev:after{border:1.5px solid transparent;content:"";height:7px;position:absolute;transition:all .2s ease;width:7px}.lightbox-prev:after{border-bottom-color:currentColor;border-left-color:currentColor;transform:rotate(45deg) translate(1px)}.lightbox-next:after{border-right-color:currentColor;border-top-color:currentColor;transform:rotate(45deg) translate(-1px)}.lightbox-close:hover:after,.lightbox-close:hover:before{width:16px}.lightbox-next:hover:after,.lightbox-prev:hover:after{height:8px;width:8px}.lightbox-counter{bottom:var(--spacing-xl);color:var(--white);font-family:var(--font-sans);font-size:.75rem;left:50%;letter-spacing:.1em;opacity:.7;position:absolute;transform:translate(-50%)}@keyframes buttonFadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:.7;transform:scale(1)}}@keyframes buttonFadeInNav{0%{opacity:0;transform:translateY(-50%) scale(.8)}to{opacity:.7;transform:translateY(-50%) scale(1)}}.lightbox-close{animation:buttonFadeIn .3s ease forwards}.lightbox-next,.lightbox-prev{animation:buttonFadeInNav .3s ease forwards}@media (max-width:768px){.lightbox-close,.lightbox-next,.lightbox-prev{height:36px;width:36px}.lightbox-close{right:var(--spacing-lg);top:var(--spacing-lg)}.lightbox-prev{left:var(--spacing-lg)}.lightbox-next{right:var(--spacing-lg)}.lightbox-close:after,.lightbox-close:before{width:12px}.lightbox-next:after,.lightbox-prev:after{height:6px;width:6px}}.lightbox-close:focus,.lightbox-next:focus,.lightbox-prev:focus{background:#ffffff40;opacity:1;outline:none}.lightbox-close:active{transform:scale(.9)}.lightbox-next:active,.lightbox-prev:active{transform:translateY(-50%) scale(.9)}@keyframes pulse{0%,to{opacity:.7}50%{opacity:.3}}.lightbox-next.at-edge,.lightbox-prev.at-edge{animation:pulse .6s ease-in-out;pointer-events:none}@media (hover:none){.lightbox-close,.lightbox-next,.lightbox-prev{background:#ffffff26;opacity:.8}}.gallery-item:before{animation:shimmer-load 2s infinite;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.4),transparent);content:"";top:0;right:0;bottom:0;left:0;position:absolute;z-index:1}.gallery-item img.loaded+.gallery-item:before{display:none}@keyframes shimmer-load{0%{transform:translate(-100%)}to{transform:translate(100%)}}.gallery-item.error{align-items:center;background:var(--soft-beige);display:flex;justify-content:center}.gallery-item.error:after{color:var(--text-light);content:"📷 Image not available";font-family:var(--font-sans);text-align:center}@media (max-width:768px){.gallery-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:var(--spacing-xl);margin-top:var(--spacing-lg)}.lightbox-content{padding:var(--spacing-md)}.lightbox-image{max-height:85%;max-width:95%}}@media (max-width:480px){.gallery-grid{margin-bottom:var(--spacing-lg);margin-top:var(--spacing-md)}}.hidden{display:none!important}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.m-0{margin:0}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mx-auto{margin-left:auto;margin-right:auto}.p-0{padding:0}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.font-light{font-weight:300}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-bold{font-weight:700}.text-primary{color:var(--primary-gold)}.text-dark{color:var(--text-dark)}.text-light{color:var(--text-light)}.text-white{color:var(--white)}.bg-primary{background-color:var(--primary-gold)}.bg-cream{background-color:var(--cream)}.bg-beige{background-color:var(--soft-beige)}.bg-white{background-color:var(--white)}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.transition{transition:all var(--transition-base)}.transition-fast{transition:all var(--transition-fast)}.transition-slow{transition:all var(--transition-slow)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-none{box-shadow:none}.rounded-none{border-radius:0}.rounded-sm{border-radius:4px}.rounded{border-radius:8px}.rounded-lg{border-radius:12px}.rounded-full{border-radius:9999px}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}@media (max-width:768px){.sm\:hidden{display:none}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:text-center{text-align:center}.sm\:px-md{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}}@media (min-width:769px){.md\:hidden{display:none}.md\:block{display:block}.md\:flex{display:flex}.md\:grid{display:grid}}.aspect-square{aspect-ratio:1/1}.aspect-video{aspect-ratio:16/9}.aspect-4-3{aspect-ratio:4/3}.max-w-sm{max-width:640px}.max-w-md{max-width:768px}.max-w-lg{max-width:1024px}.max-w-xl{max-width:1280px}.max-w-full{max-width:100%}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.scroll-smooth{scroll-behavior:smooth}.object-cover{-o-object-fit:cover;object-fit:cover}.object-contain{-o-object-fit:contain;object-fit:contain}.object-fill{-o-object-fit:fill;object-fit:fill}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}
