@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Inter:wght@400;500;600&display=swap";:root{--font-heading:"Cormorant Garamond";--font-body:"Inter";--color-ink:#302725;--color-muted:#756b67;--color-ivory:#fbf7f2;--color-paper:#fffdf9;--color-blush:#ead8d1;--color-rose:#b47b76;--color-rose-deep:#8f5d5b;--color-rose-soft:#d9b7b0;--color-line:#4e393224;--ink:var(--color-ink);--muted:var(--color-muted);--cream:var(--color-ivory);--paper:var(--color-paper);--blush:var(--color-blush);--rose:var(--color-rose);--line:var(--color-line)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;font-family:var(--font-body), sans-serif;color:var(--color-ink);background:var(--color-ivory);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}body::selection{background:var(--color-blush);color:var(--color-ink)}body:before{content:"";z-index:9999;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");position:fixed;inset:0}main{overflow:clip}button,input,textarea,select{font:inherit}button{-webkit-tap-highlight-color:transparent}img,video{max-width:100%;display:block}section{position:relative}h1,h2,h3,p{overflow-wrap:anywhere}a{color:inherit}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--font-heading:"Playfair Display";--font-body:"Montserrat"}html,body{margin:0;padding:0}body{min-width:320px;font-family:var(--font-body), sans-serif}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading), serif;margin:0}button{font-family:inherit}.wedding-names{font-family:var(--font-heading), serif;font-weight:500}.test-font{font-family:Playfair Display,serif;font-size:48px}.language-switcher{z-index:900;-webkit-backdrop-filter:blur(14px);background:#fffaf7c7;border:1px solid #3027261a;border-radius:999px;align-items:center;gap:2px;padding:6px;display:flex;position:fixed;top:22px;right:22px;box-shadow:0 10px 30px #30272614}.language-switcher button{min-width:34px;color:var(--color-muted);letter-spacing:.08em;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:6px 7px;font-size:10px;font-weight:700;transition:background-color .18s,color .18s}.language-switcher button.active,.language-switcher button:hover{background:var(--color-ink);color:var(--color-ivory)}@media (width<=600px){.language-switcher{top:14px;right:14px}}.background-music__toggle{z-index:100;width:42px;height:42px;color:var(--color-rose-deep);-webkit-backdrop-filter:blur(8px);cursor:pointer;background:#ffffffc7;border:1px solid #ffffff73;border-radius:50%;place-items:center;font-size:18px;line-height:1;transition:transform .2s,background .2s;display:grid;position:fixed;bottom:clamp(16px,3vw,28px);right:clamp(16px,3vw,28px);box-shadow:0 6px 24px #0000001f}.background-music__toggle:hover{background:#ffffffeb;transform:scale(1.06)}.background-music__toggle:focus-visible{outline-offset:3px;outline:2px solid}.background-music__toggle--muted{opacity:.72}.background-music__prompt{z-index:101;min-height:48px;color:var(--color-rose-deep);-webkit-backdrop-filter:blur(10px);font:inherit;letter-spacing:.04em;cursor:pointer;background:#fffafae6;border:1px solid #ffffffa6;border-radius:999px;align-items:center;gap:9px;padding:10px 18px 10px 14px;font-size:12px;animation:2.2s ease-in-out infinite music-prompt-float,.6s both music-prompt-in;display:flex;position:fixed;bottom:clamp(76px,10vh,110px);left:50%;transform:translate(-50%);box-shadow:0 10px 35px #00000029}.background-music__prompt:before,.background-music__prompt:after{content:"♡";opacity:0;pointer-events:none;font-size:16px;animation:2.4s ease-out infinite music-prompt-heart;position:absolute}.background-music__prompt:before{bottom:4px;left:12px}.background-music__prompt:after{animation-delay:1.1s;top:1px;right:16px}.background-music__prompt-icon{font-size:20px;animation:1.6s ease-in-out infinite music-heart-beat}.background-music__prompt-hand{animation:1.5s ease-in-out infinite music-hand-tap;display:inline-block}@keyframes music-prompt-float{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(-5px)}}@keyframes music-prompt-in{0%{opacity:0;transform:translate(-50%)translateY(12px)scale(.94)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}@keyframes music-prompt-heart{0%{opacity:0;transform:translateY(4px)scale(.7)}25%{opacity:.7}to{opacity:0;transform:translateY(-28px)translate(8px)scale(1.1)}}@keyframes music-heart-beat{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}@keyframes music-hand-tap{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@media (width<=480px){.background-music__toggle{width:38px;height:38px;font-size:16px;bottom:14px;right:14px}.background-music__prompt{white-space:nowrap;max-width:calc(100vw - 32px);font-size:11px;bottom:70px}}@media (prefers-reduced-motion:reduce){.background-music__prompt,.background-music__prompt:before,.background-music__prompt:after,.background-music__prompt-icon,.background-music__prompt-hand{animation:none}}.floating-decorations{z-index:20;pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0;overflow:hidden}.floating-decoration{left:var(--x);width:max-content;font-size:var(--size);opacity:0;animation:float-up var(--duration) linear var(--delay) infinite;will-change:transform, opacity;line-height:1;display:block;position:absolute;bottom:-40px}.floating-decoration--heart{color:#b45c6e94;text-shadow:0 2px 12px #b45c6e1f}.floating-decoration--butterfly{filter:saturate(.72);animation-name:butterfly-float}@keyframes float-up{0%{opacity:0;transform:translateY(30px)rotate(-8deg)scale(.7)}10%{opacity:.62}45%{transform:translate(35px,-45vh)rotate(8deg)scale(1)}75%{opacity:.42}to{opacity:0;transform:translate(-25px,-110vh)rotate(-10deg)scale(.82)}}@keyframes butterfly-float{0%{opacity:0;transform:translate(-20px,30px)rotate(-8deg)scale(.8)}8%{opacity:.72}25%{transform:translate(45px,-25vh)rotate(7deg)scale(1)}50%{transform:translate(-30px,-52vh)rotate(-5deg)scale(.94)}75%{transform:translate(55px,-78vh)rotate(8deg)scale(1.05)}to{opacity:0;transform:translate(-15px,-112vh)rotate(-8deg)scale(.82)}}@media (prefers-reduced-motion:reduce){.floating-decoration{opacity:0;animation:none}}.hero{isolation:isolate;background:radial-gradient(circle at 50% 36%,#fffffffa,#0000 43%),linear-gradient(135deg,#f7ebe5 0%,#fffdf9 50%,#eee0da 100%);justify-content:center;align-items:center;min-height:100svh;padding:96px 24px 130px;display:flex;position:relative;overflow:hidden}.hero:before,.hero:after{content:"";z-index:-1;border:1px solid #a96f6824;border-radius:50%;width:480px;height:480px;position:absolute}.hero:before{top:-260px;left:-190px}.hero:after{bottom:-260px;right:-220px}.hero__content{z-index:1;text-align:center;flex-direction:column;align-items:center;width:min(920px,100%);animation:1.2s cubic-bezier(.2,.7,.2,1) both hero-enter;display:flex;position:relative}.hero__eyebrow{color:var(--rose);letter-spacing:.42em;text-transform:uppercase;margin:0 0 30px;font-size:10px;font-weight:600;line-height:1.4}.hero__names{flex-direction:column;align-items:center;width:100%;min-width:0;display:flex}.hero__names h1{width:100%;min-width:0;font-family:var(--font-heading),serif;letter-spacing:-.035em;white-space:nowrap;text-align:center;margin:0;font-size:clamp(62px,11vw,118px);font-weight:400;line-height:.84}.hero__ampersand{color:var(--rose);font-family:var(--font-heading),serif;margin:20px 0 17px;font-size:clamp(42px,6vw,62px);font-style:italic;line-height:1}.hero__date{color:var(--muted);letter-spacing:.3em;text-transform:uppercase;margin:48px 0 0;font-size:11px;font-weight:500;line-height:1.4}.hero__invitation{max-width:430px;color:var(--muted);font-family:var(--font-heading),serif;margin:18px auto 0;font-size:20px;line-height:1.5}.hero__scroll{left:50%;bottom:max(18px,env(safe-area-inset-bottom));z-index:3;width:max-content;color:var(--muted);letter-spacing:.2em;text-align:center;text-transform:uppercase;white-space:nowrap;pointer-events:none;flex-direction:column;align-items:center;gap:6px;font-size:9px;line-height:1.4;display:flex;position:absolute;transform:translate(-50%)}.hero__scroll:before{content:"";background:linear-gradient(var(--rose),transparent);width:1px;height:28px;margin-bottom:2px}.hero__scroll-arrow{color:var(--rose);font-size:20px;line-height:1;animation:2.2s ease-in-out infinite scroll-arrow}@keyframes hero-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scroll-arrow{0%,to{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(7px)}}@media (width<=480px){.hero{padding:72px 20px 120px}.hero__eyebrow{letter-spacing:.3em;margin-bottom:25px;font-size:8px}.hero__names h1{font-size:clamp(40px,15vw,78px)}.hero__date{letter-spacing:.2em;margin-top:38px;font-size:9px}.hero__invitation{max-width:330px;font-size:17px}.hero__scroll{bottom:max(14px,env(safe-area-inset-bottom));font-size:8px}.hero__scroll:before{height:22px}}@media (orientation:landscape) and (height<=450px){.hero{box-sizing:border-box;justify-content:center;align-items:center;height:100svh;min-height:0;display:flex;padding:0 18px 22px!important}.hero:before,.hero:after{display:none!important}.hero__content{box-sizing:border-box;z-index:1;width:100%!important;min-width:0!important;max-width:760px!important;margin:0!important;padding:0!important;animation:none!important;position:relative!important;top:auto!important;left:auto!important;transform:none!important}.hero__eyebrow{letter-spacing:.22em!important;margin:0 0 22px!important;font-size:12px!important;line-height:1!important}.hero__names{flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:0!important;width:100%!important;margin:0!important}.hero__names h1{letter-spacing:-.035em!important;white-space:nowrap!important;flex:none!important;width:auto!important;min-width:0!important;margin:0!important;font-size:clamp(42px,11vh,54px)!important;line-height:.78!important}.hero__ampersand{flex:none!important;margin:7px 0!important;font-size:30px!important;line-height:.65!important}.hero__date{letter-spacing:.16em!important;margin:22px 0 0!important;font-size:11px!important;line-height:1!important}.hero__invitation{max-width:600px!important;margin:14px auto 0!important;font-size:16px!important;line-height:1.05!important}.hero__scroll{letter-spacing:.1em!important;z-index:3!important;gap:1px!important;font-size:7px!important;line-height:1!important;position:absolute!important;bottom:2px!important;left:50%!important}.hero__scroll:before{height:5px!important;margin-bottom:1px!important}.hero__scroll-arrow{font-size:13px!important}}@media (prefers-reduced-motion:reduce){.hero__content,.hero__scroll-arrow{animation:none}}.our-story{background:var(--color-paper);padding:clamp(110px,14vw,180px) 24px;overflow:hidden}.our-story__heading{text-align:center;width:min(760px,100%);margin:0 auto 80px}.our-story__eyebrow{color:var(--color-rose-deep);letter-spacing:.34em;text-transform:uppercase;margin:0 0 18px;font-size:10px;font-weight:600}.our-story h2{font-family:var(--font-heading), serif;letter-spacing:-.035em;margin:0;font-size:clamp(28px,6vw,82px);font-weight:400;line-height:1}.our-story__intro{width:min(100%,680px);color:var(--color-muted);white-space:pre-line;margin:25px auto 0;font-size:clamp(10px,1.4vw,14px);line-height:1.8}.our-story__photos{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto;gap:18px;width:min(900px,100%);margin:0 auto;display:grid}.our-story__photo{aspect-ratio:4/5;min-width:0;transition:transform .45s cubic-bezier(.2,.7,.2,1),z-index;position:relative;overflow:hidden}.our-story__photo .photo-reveal{height:100%}.our-story__photo img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.our-story__photo:hover{z-index:5;transform:translateY(-8px)rotate(0)scale(1.025)}.our-story__photo:nth-child(3n+1){transform:rotate(-1.5deg)}.our-story__photo:nth-child(3n+2){transform:rotate(1deg)}.our-story__photo:nth-child(3n){transform:rotate(-.7deg)}@media (width<=700px){.our-story{padding:92px 16px}.our-story__heading{margin-bottom:55px}.our-story h2{font-size:28px}.our-story__intro{width:min(100%,360px);font-size:10px}.our-story__photos{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%}.our-story__photo{aspect-ratio:4/5}}@media (orientation:landscape) and (height<=600px){.our-story__photos{gap:12px}}.photo-reveal{opacity:.25;justify-content:center;align-items:center;width:100%;margin:0;transition:opacity .9s,transform 1s cubic-bezier(.2,.7,.2,1);display:flex;position:relative;transform:translateY(24px)scale(.985)}.photo-reveal:after{content:"";pointer-events:none;opacity:0;border:1px solid #ffffff6b;transition:opacity .7s;position:absolute;inset:14px}.photo-reveal--visible{opacity:1;transform:translateY(0)scale(1)}.photo-reveal--visible:after{opacity:1}.photo-reveal img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:82vh;transition:transform 1.6s cubic-bezier(.2,.7,.2,1),box-shadow .7s;display:block;transform:scale(1.035);box-shadow:0 28px 70px #3027261f}.photo-reveal--visible img{transform:scale(1);box-shadow:0 30px 80px #30272626}@media (width<=768px){.photo-reveal img{max-height:80vh}.photo-reveal:after{inset:8px}}@media (prefers-reduced-motion:reduce){.photo-reveal,.photo-reveal img,.photo-reveal:after{opacity:1;transition:none;transform:none}}@media (width<=900px) and (orientation:landscape){.photo-reveal img{max-height:48vh}}.wedding-details{background:var(--color-ivory);padding:clamp(110px,14vw,180px) 24px}.wedding-details__heading{text-align:center;width:min(760px,100%);margin:0 auto 70px}.wedding-details__eyebrow{color:var(--color-rose-deep);letter-spacing:.34em;text-transform:uppercase;margin:0 0 18px;font-size:10px;font-weight:600}.wedding-details__heading h2{width:max-content;max-width:none;font-family:var(--font-heading), serif;letter-spacing:-.03em;margin:0 auto;font-size:clamp(30px,5.5vw,72px);font-weight:400;line-height:1.05}.wedding-details__grid{border-top:1px solid #30272526;border-bottom:1px solid #30272526;grid-template-columns:.8fr 1.2fr;width:min(900px,100%);margin:0 auto 55px;display:grid}.wedding-details__date,.wedding-details__venue{padding:38px}.wedding-details__date{text-align:center;border-right:1px solid #30272526;flex-direction:column;justify-content:center;align-items:center;display:flex}.wedding-details__date strong{font-family:var(--font-heading), serif;font-size:clamp(32px,4vw,46px);font-weight:400;line-height:1.1}.wedding-details__date-value{font-family:var(--font-heading), serif;margin-top:8px;font-size:clamp(18px,2.2vw,24px);font-weight:400;line-height:1.35}.wedding-details__time{color:var(--color-rose-deep);letter-spacing:.2em;text-transform:uppercase;margin-top:20px;font-size:9px;font-weight:600}.wedding-details__venue>span{color:var(--color-rose-deep);letter-spacing:.2em;text-transform:uppercase;font-size:9px;font-weight:600}.wedding-details__venue h3{font-family:var(--font-heading), serif;margin:12px 0 7px;font-size:30px;font-weight:400}.wedding-details__venue p{color:var(--color-muted);margin:0 0 18px;font-size:12px;line-height:1.6}.wedding-details__venue a{color:var(--color-rose-deep);letter-spacing:.18em;text-transform:uppercase;font-size:9px;font-weight:600;text-decoration:none}.wedding-details__map{border-radius:10px;width:min(900px,100%);height:380px;margin:0 auto;overflow:hidden}.wedding-details__map iframe{border:0;width:100%;height:100%}@media (width<=650px){.wedding-details{padding:92px 20px}.wedding-details__heading{margin-bottom:52px}.wedding-details__heading h2{white-space:normal;text-wrap:balance;width:min(100%,100vw - 40px);font-size:25px}.wedding-details__grid{grid-template-columns:1fr}.wedding-details__date{border-bottom:1px solid #30272526;border-right:0}.wedding-details__date,.wedding-details__venue{padding:30px 24px}.wedding-details__venue{text-align:center}.wedding-details__map{border-radius:10px;height:300px}}@media (orientation:landscape) and (width>=651px){.wedding-details__heading{width:min(100%,100vw - 48px)}.wedding-details__heading h2{white-space:normal;text-wrap:balance;width:100%;max-width:100%;font-size:clamp(30px,5vw,64px)}}.photo-gallery{background:var(--color-ivory);padding:clamp(120px,15vw,200px) 24px;position:relative;overflow:hidden}.photo-gallery:before{content:"LOVE";color:#7f4e520a;font-family:var(--font-heading), serif;letter-spacing:.12em;pointer-events:none;font-size:clamp(120px,20vw,250px);font-weight:500;position:absolute;top:38px;left:50%;transform:translate(-50%)}.photo-gallery__intro{text-align:center;width:min(760px,100%);margin:0 auto 120px;position:relative}.photo-gallery__intro:after{content:"❦";color:var(--color-rose);font-family:var(--font-heading), serif;margin-top:30px;font-size:25px;display:block}.photo-gallery__eyebrow{color:var(--color-rose-deep);letter-spacing:.34em;text-transform:uppercase;margin:0 0 18px;font-size:10px;font-weight:600}.photo-gallery__intro h2{font-family:var(--font-heading), serif;letter-spacing:-.035em;margin:0;font-size:clamp(52px,8vw,90px);font-weight:400;line-height:.9}.photo-gallery__photos{grid-template-columns:repeat(12,1fr);align-items:start;gap:clamp(48px,7vw,100px) 24px;width:min(1180px,100%);margin:0 auto;display:grid}.photo-gallery__photos>*{grid-column:2/span 7}.photo-gallery__photos>:nth-child(2n){grid-column:6/span 7;margin-top:130px}.photo-gallery__photos>:nth-child(3n){grid-column:3/span 8;margin-top:40px}@media (width<=700px){.photo-gallery{padding:96px 16px}.photo-gallery__intro{margin-bottom:72px}.photo-gallery__intro:after{margin-top:24px}.photo-gallery__photos{flex-direction:column;gap:74px;display:flex}.photo-gallery__photos>:nth-child(2n),.photo-gallery__photos>:nth-child(3n){margin-top:0}}
