:root{--color-cream: #FFFBF4;--color-cream-soft: #FFF8EE;--color-dark: #1A1714;--color-dark-warm: #2C2824;--color-gold: #BD945A;--color-gold-light: #D4B88C;--color-gold-dark: #9A7844;--color-sage: #8A9A7B;--color-sage-light: #A8B89A;--color-text: #2C2C2C;--color-text-light: #6B6560;--color-text-on-dark: #E8E2DA;--color-text-on-dark-muted: #A89E94;--color-overlay-dark: rgba(20, 18, 15, .55);--color-overlay-light: rgba(255, 251, 244, .88);--color-modal-backdrop: rgba(20, 18, 15, .7);--font-display: "Cormorant Garamond", "Georgia", serif;--font-body: "EB Garamond", "Georgia", serif;--font-ui: "Nunito Sans", "Helvetica Neue", sans-serif;--fs-hero-name: clamp(3.2rem, 10vw, 7.5rem);--fs-hero-date: clamp(1rem, 2.5vw, 1.4rem);--fs-section-heading: clamp(2rem, 5vw, 3.5rem);--fs-section-subheading: clamp(1.1rem, 2.5vw, 1.5rem);--fs-body: clamp(1rem, 1.8vw, 1.15rem);--fs-body-large: clamp(1.1rem, 2vw, 1.35rem);--fs-small: clamp(.8rem, 1.4vw, .9rem);--fs-ui: .95rem;--spacing-section: clamp(5rem, 12vh, 9rem);--spacing-block: clamp(2.5rem, 5vh, 4rem);--spacing-element: clamp(1rem, 2vh, 1.5rem);--max-content: 900px;--max-wide: 1200px;--transition-slow: 1s cubic-bezier(.25, .1, .25, 1);--transition-medium: .6s cubic-bezier(.25, .1, .25, 1);--transition-fast: .3s cubic-bezier(.25, .1, .25, 1);--parallax-strength: .3}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden}body{font-family:var(--font-body);font-size:var(--fs-body);color:var(--color-text);background-color:var(--color-cream);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html.modal-open,body.modal-open{overflow:hidden}img{max-width:100%;height:auto;display:block}a{color:var(--color-gold);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-gold-dark)}button{font-family:var(--font-ui);cursor:pointer;border:none;background:none}h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;line-height:1.2}.section-heading{font-family:var(--font-display);font-size:var(--fs-section-heading);font-weight:300;font-style:italic;color:var(--color-text);text-align:center;margin-bottom:var(--spacing-block)}.section-heading--light{color:var(--color-text-on-dark)}.gold-line{width:60px;height:1px;background:var(--color-gold);margin:1.5rem auto;display:block}.gold-line--wide{width:100px}.ornament{display:block;width:160px;height:20px;margin:1.8rem auto;color:var(--color-gold);opacity:.6}.grain-overlay{position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px 200px}.content-wrap{max-width:var(--max-content);margin:0 auto;padding:0 1.5rem}.wide-wrap{max-width:var(--max-wide);margin:0 auto;padding:0 1.5rem}.section-padding{padding:var(--spacing-section) 0}.text-center{text-align:center}.btn-primary{display:inline-block;font-family:var(--font-ui);font-size:var(--fs-ui);font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:1rem 2.8rem;background:var(--color-gold);color:var(--color-cream);border:1px solid var(--color-gold);transition:all var(--transition-fast)}.btn-primary:hover{background:transparent;color:var(--color-gold)}.btn-primary--dark{background:transparent;border-color:var(--color-gold-light);color:var(--color-gold-light)}.btn-primary--dark:hover{background:var(--color-gold-light);color:var(--color-dark)}.btn-outline{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-ui);font-size:var(--fs-small);font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.7rem 1.6rem;background:transparent;color:var(--color-gold);border:1px solid var(--color-gold);transition:all var(--transition-fast)}.btn-outline:hover{background:var(--color-gold);color:var(--color-cream)}.btn-outline svg{width:16px;height:16px;fill:currentColor}.reveal{opacity:0;transform:translateY(30px);transition:opacity var(--transition-slow),transform var(--transition-slow)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-delay-1{transition-delay:.15s}.reveal-delay-2{transition-delay:.3s}.reveal-delay-3{transition-delay:.45s}.reveal-delay-4{transition-delay:.6s}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}html{scroll-behavior:auto}}::selection{background:var(--color-gold-light);color:var(--color-dark)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-cream)}::-webkit-scrollbar-thumb{background:var(--color-gold-light);border-radius:3px}.hero{position:relative;height:100vh;height:100dvh;min-height:600px;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero__bg{position:absolute;inset:0;z-index:0}.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center 60%;animation:heroZoom 20s ease-out both}@keyframes heroZoom{0%{transform:scale(1.08)}to{transform:scale(1)}}.hero__overlay{position:absolute;inset:0;background:radial-gradient(ellipse at center,#14120f26,#14120f73),linear-gradient(to bottom,#14120f40,#14120f33 35%,#14120f59 55%,#14120fb3);z-index:1}.hero__content{position:relative;z-index:2;text-align:center;color:var(--color-cream);padding:0 1.5rem}.hero__thanks{font-family:var(--font-display);font-size:clamp(2.2rem,6vw,4.5rem);font-weight:300;font-style:italic;letter-spacing:.04em;line-height:1.15;max-width:16em;margin:0 auto;text-shadow:0 2px 40px rgba(0,0,0,.35),0 0 80px rgba(0,0,0,.1);animation:heroNameReveal 2s cubic-bezier(.25,.1,.25,1) both}@keyframes heroNameReveal{0%{opacity:0;letter-spacing:.25em;filter:blur(4px)}to{opacity:1;letter-spacing:.06em;filter:blur(0)}}.hero__date{font-family:var(--font-ui);font-size:var(--fs-hero-date);font-weight:300;letter-spacing:.35em;text-transform:uppercase;color:var(--color-gold-light);margin-top:1.5rem;text-shadow:0 1px 8px rgba(0,0,0,.7),0 0 30px rgba(0,0,0,.5),0 0 60px rgba(0,0,0,.3);animation:fadeInUp 1.4s cubic-bezier(.25,.1,.25,1) .4s both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}@media(max-width:480px){.hero{min-height:550px}}@media(min-width:1400px){.hero__content{margin-top:-3rem}}
