:root{--white: #ffffff;--black: #1a1a1a;--gold: #C5A880;--gold-light: #d4bc9a;--gold-dark: #a88c64;--grey: #888888;--grey-light: #b8b8b8;--grey-lighter: #e8e8e8;--grey-bg: #fafafa;--font-serif: "Cormorant Garamond", "Times New Roman", Georgia, serif;--font-sans: "Jost", "Helvetica Neue", Arial, sans-serif;--font-handwritten: "Caveat", cursive;--burgundy: #8c2111;--dark-green: #1a4331;--cream-bg: #f4efe6;--transition-fast: .2s ease-out;--transition-base: .35s ease-out;--transition-slow: .5s ease-out;--transition-carousel: 1.2s ease-in-out;--shadow-subtle: 0 2px 20px rgba(0, 0, 0, .04);--shadow-card: 0 4px 30px rgba(0, 0, 0, .06);--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 2rem;--spacing-lg: 4rem;--spacing-xl: 6rem;--spacing-2xl: 8rem;--max-width: 1200px;--max-width-narrow: 800px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-weight:300;color:var(--black);background-color:var(--cream-bg);line-height:1.7;font-size:16px;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:400;line-height:1.2}img{display:block;max-width:100%}button{cursor:pointer;font-family:var(--font-sans);border:none;background:none}input,textarea{font-family:var(--font-sans);font-weight:300}a{color:inherit;text-decoration:none}.section-padding{padding:var(--spacing-xl) var(--spacing-md)}.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--spacing-md)}.container--narrow{max-width:var(--max-width-narrow);margin:0 auto;padding:0 var(--spacing-md)}.text-center{text-align:center}.section-title{font-family:var(--font-serif);font-size:clamp(1.8rem,4vw,2.8rem);font-weight:400;letter-spacing:.02em;color:var(--black);margin-bottom:var(--spacing-xs)}.section-divider{width:60px;height:1px;background-color:var(--gold);margin:var(--spacing-sm) auto var(--spacing-lg);border:none}.animate-on-scroll{opacity:0;transform:translateY(30px);transition:opacity var(--transition-slow),transform var(--transition-slow)}.animate-on-scroll.is-visible{opacity:1;transform:translateY(0)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes chevronBounce{0%,to{transform:translateY(0);opacity:.6}50%{transform:translateY(10px);opacity:1}}@keyframes fillUp{0%{height:0%}to{height:var(--fill-height, 0%)}}@keyframes toastIn{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(.95)}}@keyframes stepIn{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes stepOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-40px)}}.hero{position:relative;width:100%;height:100vh;height:100dvh;overflow:hidden;background-color:var(--black)}.hero__slide{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity var(--transition-carousel);will-change:opacity}.hero__slide.active{opacity:1}.hero__slide img{width:100%;height:100%;object-fit:cover;object-position:center}.hero__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#00000026,#0000001a,#0006 80%,#0009);z-index:1}.hero__content{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--white);padding:var(--spacing-md)}.hero__names{font-family:var(--font-serif);font-size:clamp(2.5rem,8vw,5.5rem);font-weight:300;letter-spacing:.15em;line-height:1.1;text-transform:uppercase;animation:fadeIn 1.5s ease-out}.hero__date{font-family:var(--font-sans);font-size:clamp(.75rem,1.8vw,1rem);font-weight:300;letter-spacing:.35em;text-transform:uppercase;margin-top:var(--spacing-md);opacity:.9;animation:fadeIn 2s ease-out .5s both}.hero__scroll{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);z-index:2;color:var(--white);opacity:.7;animation:chevronBounce 2s ease-in-out infinite;cursor:pointer;background:none;border:none}.hero__scroll svg{width:28px;height:28px}.dresscode{position:relative;padding:var(--spacing-xl) var(--spacing-md);background-color:transparent}.dresscode>*{position:relative;z-index:1}.dresscode__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg);max-width:var(--max-width);margin:0 auto}.dresscode__column{text-align:center}.dresscode__icon{font-size:2.5rem;margin-bottom:var(--spacing-sm)}.dresscode__subtitle{font-family:var(--font-serif);font-size:1.5rem;font-weight:400;letter-spacing:.05em;margin-bottom:var(--spacing-md);color:var(--black)}.dresscode__list{list-style:none;padding:0}.dresscode__list li{padding:.8rem 0;border-bottom:1px solid var(--grey-lighter);font-size:.95rem;font-weight:300;color:var(--black);display:flex;align-items:center;justify-content:center;gap:.6rem}.dresscode__list li:last-child{border-bottom:none}.dresscode__check{color:var(--gold);font-weight:500;font-size:.9rem;flex-shrink:0}@media(max-width:768px){.dresscode__grid{grid-template-columns:1fr;gap:var(--spacing-lg)}}.timeline-section{padding:var(--spacing-xl) var(--spacing-md);background-color:transparent}.timeline-layout{display:grid;grid-template-columns:160px 1fr 160px;gap:var(--spacing-md);max-width:1000px;margin:0 auto;align-items:start}.timeline{position:relative;padding:0 40px;display:flex;flex-direction:column;align-items:center}.timeline__line-bg{position:absolute;left:50%;transform:translate(-50%);top:0;bottom:0;width:1px;background-color:var(--dark-green);opacity:.2;z-index:0}.timeline__line-progress{position:absolute;left:50%;transform:translate(-50%);top:0;width:1px;height:var(--timeline-progress, 0%);background:var(--dark-green);transition:height .12s linear;z-index:0}.timeline__event{position:relative;padding-bottom:var(--spacing-lg);width:100%;padding-left:50%}.timeline__event:last-child{padding-bottom:0}.timeline__dot{position:absolute;left:50%;top:5px;width:11px;height:11px;border-radius:50%;transform:translate(-50%);border:1.5px solid var(--burgundy);background-color:var(--cream-bg);transition:background-color var(--transition-base),border-color var(--transition-base),transform var(--transition-base);z-index:1}.timeline__dot.active{background-color:var(--burgundy);border-color:var(--burgundy);transform:translate(-50%) scale(1.15)}.timeline__content{padding-left:20px;display:flex;flex-direction:column}.timeline__icon{width:50px;height:auto;margin-bottom:var(--spacing-xs);display:block}.timeline__time{font-family:var(--font-handwritten);font-size:1.3rem;color:var(--dark-green);margin-bottom:.15rem;letter-spacing:.05em;line-height:1.1}.timeline__name{font-family:var(--font-handwritten);font-size:1.6rem;font-weight:500;color:var(--dark-green);margin-bottom:.2rem;line-height:1.1}.timeline__desc{font-family:var(--font-handwritten);font-size:1.2rem;font-weight:400;color:var(--dark-green);opacity:.8;line-height:1.1}.shot-counter{position:sticky;top:calc(50vh - 60px);text-align:center;padding:1.2rem .8rem;border-left:1px solid var(--grey-lighter);margin-left:.5rem}.shot-counter__emoji{font-size:1.4rem;margin-bottom:.5rem;display:block;opacity:.75}.shot-counter__number{font-family:var(--font-serif);font-size:2rem;font-weight:400;color:var(--gold-dark);line-height:1;transition:transform .15s ease-out;display:block}.shot-counter__number.bump{animation:bounce .3s ease-out}.shot-counter__label{font-family:var(--font-sans);font-size:.65rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--grey-light);margin-top:.3rem;display:block}.shot-counter__caption{font-family:var(--font-sans);font-style:italic;font-size:.65rem;color:var(--grey-lighter);margin-top:.6rem;display:block;line-height:1.3}.shot-badge{display:none;position:fixed;bottom:2rem;left:50%;transform:translate(-50%);background:#fffffff2;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--gold);border-radius:40px;padding:.6rem 1.2rem;align-items:center;justify-content:center;gap:.6rem;box-shadow:0 4px 20px #c5a88040;z-index:100;transition:transform .2s ease-out}.shot-badge.bump{animation:badgeBounce .3s ease-out}@keyframes badgeBounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-6px)}}.shot-badge__icon{font-size:1.1rem}.shot-badge__number{font-family:var(--font-serif);font-size:1.4rem;font-weight:500;color:var(--gold-dark);line-height:1}.shot-badge__text{font-family:var(--font-sans);font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;color:var(--grey);margin-top:.15rem}@media(max-width:768px){.timeline-layout{grid-template-columns:1fr;max-width:480px}.timeline__event{padding-left:30px}.timeline__dot,.timeline__line-bg,.timeline__line-progress{left:0;transform:none}.timeline__dot.active{transform:scale(1.15)}.timeline__content{padding-left:0}.timeline__icon{width:65px;margin-bottom:var(--spacing-sm)}.shot-counter{display:none}.shot-badge{display:flex}}@media(min-width:769px)and (max-width:1024px){.timeline-layout{max-width:720px}}.rsvp-section{position:relative;padding:var(--spacing-2xl) var(--spacing-md);background-color:transparent;text-align:center}.rsvp-section>*{position:relative;z-index:1}.rsvp-section .section-title{font-size:clamp(1.6rem,4vw,2.4rem);max-width:600px;margin:0 auto var(--spacing-xs)}.rsvp__cta{display:inline-block;margin-top:var(--spacing-lg);padding:1.1rem 3.5rem;font-family:var(--font-sans);font-size:1rem;font-weight:400;letter-spacing:.15em;text-transform:uppercase;background:var(--gold);color:var(--white);border:none;cursor:pointer;transition:all var(--transition-base);position:relative;overflow:hidden}.rsvp__cta:before{content:"";position:absolute;top:0;left:-100%;width:200%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 50%,transparent 100%);transition:none}.rsvp__cta:hover:before{animation:shimmer 1.2s ease-in-out}.rsvp__cta:hover{background:var(--gold-dark);transform:translateY(-1px);box-shadow:0 4px 20px #c5a88059}.rsvp__cta:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.iban-section{margin-top:var(--spacing-2xl);padding-top:var(--spacing-lg);border-top:1px solid var(--grey-lighter)}.iban__intro{font-size:1rem;font-weight:300;color:var(--grey);margin-bottom:var(--spacing-md);max-width:480px;margin-left:auto;margin-right:auto}.iban__code-wrapper{display:inline-flex;align-items:center;gap:.8rem;background:var(--grey-bg);padding:.8rem 1.5rem;border-radius:6px;border:1px solid var(--grey-lighter)}.iban__code{font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.95rem;font-weight:400;letter-spacing:.08em;color:var(--black)}.iban__copy-btn{padding:6px;border-radius:4px;color:var(--grey);transition:color var(--transition-fast),background-color var(--transition-fast);display:flex;align-items:center;justify-content:center}.iban__copy-btn:hover{color:var(--gold);background-color:#c5a8801a}.iban__copy-btn svg{width:18px;height:18px}.iban__titular{font-size:.85rem;color:var(--grey);margin-top:.6rem}.iban__note{font-size:.85rem;color:var(--grey-light);margin-top:var(--spacing-sm);max-width:400px;margin-left:auto;margin-right:auto}.iban__icons{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);margin-top:var(--spacing-md);color:var(--grey-light);font-size:.8rem}.iban__icons span{display:flex;flex-direction:column;align-items:center;gap:.3rem}.iban__icons .icon-emoji{font-size:1.4rem}.toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);background:var(--black);color:var(--white);padding:.8rem 1.5rem;border-radius:8px;font-size:.9rem;font-weight:400;z-index:1000;animation:toastIn .3s ease-out;box-shadow:0 8px 30px #00000026}.toast.hiding{animation:toastOut .3s ease-out forwards}.form-view{position:relative;min-height:100vh;min-height:100dvh;background-color:var(--white)}.form__progress{position:fixed;top:0;left:0;height:3px;background:var(--gold);transition:width var(--transition-base);z-index:200}.form__back-home{position:fixed;top:1.5rem;left:1.5rem;z-index:200;font-family:var(--font-sans);font-size:.85rem;font-weight:300;color:var(--grey);display:flex;align-items:center;gap:.4rem;transition:color var(--transition-fast);cursor:pointer;background:none;border:none}.form__back-home:hover{color:var(--black)}.form__step{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-lg) var(--spacing-md);text-align:center;animation:stepIn .5s ease-out}.form__step.exiting{animation:stepOut .3s ease-out forwards}.form__question-number{font-family:var(--font-sans);font-size:.8rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:var(--spacing-sm)}.form__question{font-family:var(--font-serif);font-size:clamp(1.5rem,4vw,2.2rem);font-weight:400;margin-bottom:var(--spacing-lg);max-width:600px;line-height:1.3}.form__input{width:100%;max-width:450px;padding:1rem 0;font-size:1.1rem;font-weight:300;border:none;border-bottom:1px solid var(--grey-lighter);background:transparent;color:var(--black);text-align:center;transition:border-color var(--transition-fast);outline:none}.form__input:focus{border-bottom-color:var(--gold)}.form__input::placeholder{color:var(--grey-light);font-weight:200}.form__textarea{width:100%;max-width:500px;min-height:120px;padding:1rem;font-size:1rem;font-weight:300;border:1px solid var(--grey-lighter);border-radius:8px;background:transparent;color:var(--black);resize:vertical;outline:none;transition:border-color var(--transition-fast)}.form__textarea:focus{border-color:var(--gold)}.form__textarea::placeholder{color:var(--grey-light);font-weight:200}.form__cards{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-wrap:wrap;justify-content:center}.form__card{padding:1.5rem 2.5rem;border:1px solid var(--grey-lighter);border-radius:8px;font-family:var(--font-sans);font-size:1rem;font-weight:300;cursor:pointer;transition:all var(--transition-fast);background:var(--white);color:var(--black);min-width:160px}.form__card:hover{border-color:var(--gold)}.form__card.selected{border-color:var(--gold);background-color:#c5a88014;color:var(--gold-dark);font-weight:400}.form__chips{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;max-width:500px}.form__chip{padding:.6rem 1.3rem;border:1px solid var(--grey-lighter);border-radius:100px;font-family:var(--font-sans);font-size:.9rem;font-weight:300;cursor:pointer;transition:all var(--transition-fast);background:var(--white);color:var(--black)}.form__chip:hover{border-color:var(--gold)}.form__chip.selected{border-color:var(--gold);background-color:var(--gold);color:var(--white);font-weight:400}.form__nav{margin-top:var(--spacing-lg);display:flex;align-items:center;gap:var(--spacing-md)}.form__btn-next{padding:.9rem 2.8rem;background:var(--gold);color:var(--white);font-family:var(--font-sans);font-size:.9rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;border:none;cursor:pointer;transition:all var(--transition-base);position:relative;overflow:hidden}.form__btn-next:hover{background:var(--gold-dark);transform:translateY(-1px)}.form__btn-next:disabled{opacity:.4;cursor:not-allowed;transform:none}.form__btn-next:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.form__btn-back{font-family:var(--font-sans);font-size:.85rem;font-weight:300;color:var(--grey);cursor:pointer;transition:color var(--transition-fast);background:none;border:none}.form__btn-back:hover{color:var(--black)}.form__btn-alt{margin-top:var(--spacing-sm);padding:.7rem 1.5rem;font-family:var(--font-sans);font-size:.85rem;font-weight:300;color:var(--grey);border:1px solid var(--grey-lighter);border-radius:100px;cursor:pointer;transition:all var(--transition-fast);background:none}.form__btn-alt:hover{border-color:var(--gold);color:var(--gold-dark)}.form__companion-field{max-height:0;opacity:0;overflow:hidden;transition:max-height .4s ease-out,opacity .3s ease-out;width:100%;display:flex;justify-content:center}.form__companion-field.show{max-height:100px;opacity:1;margin-top:var(--spacing-md)}.form__thankyou{animation:fadeIn .8s ease-out}.form__thankyou-name{font-family:var(--font-serif);font-size:clamp(1.8rem,5vw,3rem);font-weight:400;margin-bottom:var(--spacing-sm);color:var(--black)}.form__thankyou-sub{font-family:var(--font-sans);font-size:1.1rem;font-weight:300;color:var(--grey);margin-bottom:var(--spacing-lg)}.form__thankyou-btn{padding:.9rem 2.5rem;border:1px solid var(--black);background:transparent;color:var(--black);font-family:var(--font-sans);font-size:.9rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all var(--transition-base)}.form__thankyou-btn:hover{background:var(--black);color:var(--white)}@media(max-width:480px){.section-padding{padding:var(--spacing-lg) var(--spacing-sm)}.hero__names{letter-spacing:.08em}.iban__code-wrapper{flex-direction:column;gap:.5rem;padding:1rem}.iban__code{font-size:.82rem}.form__cards{flex-direction:column;align-items:center}.form__card{width:100%;max-width:280px}.rsvp__cta{padding:1rem 2.5rem;font-size:.9rem}}@media(min-width:769px)and (max-width:1024px){.timeline-layout{grid-template-columns:60% 40%}}
