@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{--lime:#deff9b;--cream:#f1f0e7;--ink:#19221b;--muted:#a9b1a7;font-family:'DM Sans',sans-serif;color:var(--cream);background:#101713;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-snap-type:y proximity;scroll-padding-top:0}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button,a{color:inherit}button{font:inherit;cursor:pointer}a{text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--lime);outline-offset:7px}button{border:0}button:disabled{cursor:wait}::selection{background:var(--lime);color:var(--ink)}.skip-link{position:fixed;top:-100px;left:20px;z-index:30;background:var(--lime);color:var(--ink);padding:12px}.skip-link:focus{top:20px}.site-header{position:absolute;top:0;left:0;width:100%;padding:32px 4.5%;display:flex;align-items:center;justify-content:space-between;z-index:5}.wordmark{font-family:Manrope,sans-serif;font-weight:800;font-size:29px;letter-spacing:-2px}.wordmark>span:first-child{font-size:21px;margin:0 3px;font-weight:400}.wordmark-dot{font-size:10px;vertical-align:top;margin-left:5px;letter-spacing:0}.header-note,.sound-toggle,.eyebrow,.chapter-footer,.text-link,.album-note,.album-bottom,.closing>div,.motion-toggle{font-size:10px;letter-spacing:1.7px;font-weight:600}.header-note{position:absolute;left:50%;transform:translateX(-50%);color:#e3e8dbc4}.sound-toggle{position:fixed;top:32px;right:4.5%;display:flex;align-items:center;gap:12px;background:transparent;padding:10px 0}.sound-bars{display:flex;gap:3px;align-items:center;height:16px}.sound-bars i{width:2px;height:5px;background:var(--lime)}.sound-bars i:nth-child(2){height:13px}.sound-bars i:nth-child(3){height:8px}.sound-bars i:nth-child(4){height:16px}.sound-toggle[aria-pressed=true] i{animation:equalize .7s infinite alternate}.sound-toggle[aria-pressed=true] i:nth-child(2n){animation-delay:.3s}.chapter{height:100svh;min-height:680px;position:relative;overflow:hidden;scroll-snap-align:start;background:#1c3026}.scene,.chapter-video,.shade{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.chapter-video{object-fit:cover;opacity:0;transition:opacity .7s}.chapter-video.has-media{opacity:1}.shade{background:linear-gradient(90deg,#08150daa 0%,#0a191664 48%,#0c231a0f 80%),linear-gradient(0deg,#09140fdd,transparent 25%,transparent 80%,#09140f73)}.aerial-scene{background:#344738;transform:scale(1.08) rotate(-9deg);transition:transform 3s cubic-bezier(.2,.55,.2,1);overflow:hidden}.garden-grid{position:absolute;inset:0;background:repeating-linear-gradient(0deg,#5e694908 0 70px,#263f2922 70px 140px),repeating-linear-gradient(90deg,transparent 0 90px,#1e312122 90px 180px)}.terrace{position:absolute;top:15%;left:48%;width:48%;height:76%;background:repeating-linear-gradient(90deg,#a59d7d 0 48px,#88856b 49px 50px);box-shadow:0 12px 30px #071b1755;transform:rotate(3deg)}.house{position:absolute;left:17%;top:-23%;width:66%;height:43%;background:repeating-linear-gradient(0deg,#807766 0 8px,#656354 9px 11px);transform:rotate(3deg);box-shadow:20px 35px 0 #14271f66}.pool-shape{position:absolute;width:27%;height:62%;top:23%;left:58%;border:13px solid #c4bba1;border-radius:5px;background:#3eaaa5;transform:rotate(3deg);box-shadow:12px 15px 24px #12251e55,inset 8px 12px 12px #17464355}.pool-water,.water-caustics{position:absolute;inset:0;background:repeating-radial-gradient(ellipse at 20% 30%,transparent 0 20px,#b6f5d925 22px 23px,transparent 25px 45px),repeating-radial-gradient(ellipse at 80% 70%,transparent 0 25px,#c2efed20 26px 28px,transparent 30px 65px);background-size:130% 120%;animation:water 14s ease-in-out infinite alternate}.pool-steps{position:absolute;bottom:0;left:0;right:0;height:15%;background:repeating-linear-gradient(0deg,#adc6b96b 0 14px,#316b652a 15px 18px)}.float{position:absolute;border:10px solid #eba08a;border-radius:50%;width:49px;height:49px;top:31%;left:57%;box-shadow:3px 7px 8px #0c5e5b6b;animation:float 8s ease-in-out infinite alternate}.float-two{width:35px;height:35px;border-width:8px;border-color:#e4ce81;top:62%;left:20%;animation-delay:-3s}.lounger{position:absolute;width:29px;height:82px;background:repeating-linear-gradient(0deg,#e6dbc4 0 5px,#b6b2a0 6px 7px);transform:rotate(3deg);box-shadow:10px 9px 0 #333b3544;left:89%;top:36%}.l2{top:54%}.l3{top:72%}.parasol{position:absolute;left:87%;top:25%;width:95px;height:95px;background:conic-gradient(#f0e1bf 0deg 45deg,#cdbf9e 45deg 90deg,#eee0ba 90deg 135deg,#cec19f 135deg 180deg,#ecdfbe 180deg 225deg,#cabc9d 225deg 270deg,#eaddbb 270deg 315deg,#c5b898 315deg);clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%);filter:drop-shadow(10px 20px 5px #000)}.p2{top:64%;left:47%}.tree{position:absolute;width:210px;height:210px;border-radius:50%;background:radial-gradient(ellipse at 30% 20%,#536147 0,transparent 50%),radial-gradient(ellipse at 70% 30%,#405238 0,transparent 60%),radial-gradient(ellipse at 40% 65%,#344e33 0,#1b362a 65%,transparent 70%);filter:drop-shadow(25px 30px 7px #11271e88)}.t1{left:27%;top:30%}.t2{left:5%;top:68%;width:350px;height:330px}.t3{left:75%;top:-15%;width:350px;height:350px}.t4{left:91%;top:76%;width:300px;height:330px}.t5{left:39%;top:86%;width:260px;height:200px}.party-table{position:absolute;left:38%;top:23%;width:70px;height:230px;background:repeating-linear-gradient(0deg,#e3d8bf 0 55px,#af9274 56px 60px);transform:rotate(-20deg);box-shadow:8px 8px 18px #14251c66}.intro-content{position:relative;padding:0 8%;top:50%;transform:translateY(-42%);width:100%;transition:opacity .5s,transform .8s}.eyebrow{display:block;font-size:10px;letter-spacing:2px}.live-dot{display:inline-block;width:6px;height:6px;background:var(--lime);border-radius:50%;margin:0 10px 1px 0;box-shadow:0 0 15px #deff9b55}h1,h2,p{margin:0}h1{font-family:Manrope,sans-serif;font-size:clamp(62px,6.9vw,116px);font-weight:500;letter-spacing:-6px;line-height:1.07;margin:28px 0 25px}h1>span{color:var(--lime)}.celebrants{display:flex;align-items:center;gap:23px;letter-spacing:2px;font-size:12px}.celebrants b{font-size:18px;font-weight:500;margin-left:8px;letter-spacing:0}.celebrants-plus{font-family:Georgia,serif;font-style:italic;font-size:21px;color:#bfccb5}.enter-button{margin-top:43px;background:var(--lime);color:var(--ink);border-radius:100px;display:flex;align-items:center;justify-content:space-between;gap:48px;padding:9px 9px 9px 27px;font-size:11px;font-weight:700;letter-spacing:1.1px;transition:background .2s,transform .2s}.enter-button:hover{background:#edffce;transform:translateY(-3px)}.button-arrow{display:grid;place-items:center;width:42px;height:42px;border:1px solid #17221c40;border-radius:50%;font-size:23px;font-weight:400;letter-spacing:0}.intro-caption{margin-top:19px;font-size:12px;color:#e4e9d7b0}.chapter-footer{position:absolute;bottom:35px;left:4.5%;right:4.5%;display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1.5px}.small-index{opacity:.5;margin-right:10px}.preview-label{font-size:8px;opacity:.55;letter-spacing:1.2px}.scroll-cue{display:flex;align-items:center;gap:24px}.scroll-cue>span{font-size:23px;line-height:1}.chapter-nav{position:fixed;right:3%;top:50%;transform:translateY(-50%);z-index:8;display:flex;flex-direction:column;gap:12px;mix-blend-mode:normal}.chapter-nav a{height:22px;display:flex;align-items:center;justify-content:flex-end;gap:15px}.chapter-nav i{height:5px;width:5px;border-radius:50%;background:#d9dfcc88;outline:1px solid transparent;outline-offset:5px;transition:.3s}.chapter-nav a[aria-current] i{background:var(--lime);outline-color:#deff9b88}.chapter-nav span{font-size:8px;letter-spacing:1px;opacity:0;transition:.2s;background:#18271edb;padding:5px 8px;border-radius:4px;color:var(--cream)}.chapter-nav a:hover span,.chapter-nav a:focus-visible span{opacity:1}.motion-toggle{position:fixed;bottom:74px;right:4.5%;z-index:8;background:#12251c55;backdrop-filter:blur(10px);border:1px solid #ffffff20;border-radius:20px;padding:10px 13px;font-size:8px;display:flex;gap:8px;align-items:center}.motion-toggle>span:first-child{font-size:13px}.entering .aerial-scene,.entered .aerial-scene{transform:scale(1.65) rotate(3deg)}.entering .intro-content,.entered .intro-content{opacity:0;pointer-events:none;transform:translateY(-35%)}.party-content{position:absolute;left:8%;top:50%;transform:translateY(-45%);animation:appear 1.3s both}.party-content h2,.chapter-copy h2{font-family:Manrope,sans-serif;font-size:clamp(68px,7.5vw,112px);font-weight:500;letter-spacing:-5px;line-height:1.04;margin:24px 0}.party-content em,.chapter-copy em{font-family:Georgia,serif;font-weight:400;color:var(--lime);letter-spacing:-4px}.text-link{display:inline-flex;align-items:center;gap:28px;margin-top:30px}.text-link span{font-size:24px}.water-scene{background:radial-gradient(ellipse at 75% 10%,#91d3be,#419b91 45%,#1d665f);overflow:hidden}.water-caustics{background-size:90% 150%;transform:scale(1.3) rotate(-10deg);opacity:.9}.big-ring{position:absolute;right:18%;top:21%;width:330px;height:330px;border:77px solid #efa48a;border-radius:50%;box-shadow:inset 14px 12px 18px #953f2c45,inset -8px -4px 10px #ffe0bd44,25px 50px 30px #144d4d66;transform:rotate(-25deg) scaleY(.8);animation:float 12s infinite alternate}.pool-edge{position:absolute;right:-12%;top:-10%;height:130%;width:24%;background:repeating-linear-gradient(0deg,#d2c9ac 0 70px,#b9b394 71px 73px);transform:rotate(15deg);border-left:20px solid #e7ddbd;box-shadow:-12px 0 20px #134f4e44}.water-word{position:absolute;top:57%;left:51%;font-size:clamp(70px,10vw,160px);font-family:Manrope,sans-serif;font-weight:800;letter-spacing:-8px;color:#d7f2d819;transform:rotate(-13deg)}.chapter-copy{position:absolute;left:8%;top:50%;transform:translateY(-45%)}.chapter-copy>p{font-size:14px;color:#e1e6d6c9;line-height:1.8;margin-top:27px}.dance-scene{background:radial-gradient(ellipse at 80% 50%,#713d32,#282b26 55%,#111a17)}.disco-ball{position:absolute;width:190px;height:190px;right:26%;top:14%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f3e4cba8,transparent 45%),repeating-conic-gradient(#8c8e72 0deg 6deg,#384c42 7deg 12deg);box-shadow:0 0 100px #d8cf9544,inset -30px -20px 50px #18281a;transform:rotate(15deg)}.disco-ball:before{content:'';position:absolute;width:1px;height:250px;bottom:100%;left:50%;background:#c6d1b144}.light-beam{position:absolute;right:20%;top:20%;width:45%;height:100%;clip-path:polygon(80% 0,100% 100%,0 100%);background:linear-gradient(#dfcb8466,transparent);filter:blur(20px);transform:rotate(20deg);opacity:.4}.beam-two{right:-5%;transform:rotate(-28deg);background:linear-gradient(#ec9c8466,transparent)}.dance-orb{position:absolute;right:16%;top:45%;width:130px;height:130px;border-radius:50%;background:#e9a77e;filter:blur(60px);opacity:.4;animation:float 5s infinite alternate}.orb-two{right:45%;top:65%;background:var(--lime)}.dance-floor{position:absolute;bottom:-40%;right:-20%;width:110%;height:80%;background:repeating-linear-gradient(90deg,transparent 0 150px,#c0b79215 151px 153px),repeating-linear-gradient(0deg,transparent 0 100px,#c0b79215 101px 103px);transform:perspective(500px) rotateX(55deg) rotateZ(-15deg)}.memories{background:var(--cream);color:var(--ink);padding:83px 8% 0;scroll-snap-align:start}.album-heading{display:flex;align-items:center;justify-content:space-between}.album-note{font-size:9px;opacity:.5}.album-title-row{display:flex;justify-content:space-between;align-items:flex-end;margin:36px 0 55px;gap:25px}.album-title-row h2{font-family:Manrope,sans-serif;font-size:clamp(55px,6.6vw,94px);font-weight:500;line-height:1.03;letter-spacing:-5px}.album-title-row h2 em{font-family:Georgia,serif;font-weight:400}.album-title-row>p{font-size:13px;line-height:1.9;color:#687064;margin-bottom:5px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.photo-card{margin:0;min-width:0}.photo-button{padding:0;display:block;width:100%;height:300px;background:#d7d9c7;position:relative;overflow:hidden;text-align:left}.photo-card:nth-child(3n+2){transform:translateY(28px)}.photo-button:after{content:'↗';position:absolute;bottom:16px;right:18px;color:white;font-size:25px;transition:transform .2s}.photo-button:hover:after{transform:translate(3px,-3px)}.photo-button img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.photo-button:hover img,.photo-button:hover .photo-art{transform:scale(1.04)}.photo-card figcaption{display:flex;justify-content:space-between;gap:10px;margin-top:13px;font-size:10px;color:#656d61}.photo-card figcaption>span:last-child{opacity:.6;font-size:9px;letter-spacing:1px}.photo-art{width:100%;height:100%;position:relative;overflow:hidden;transition:transform .7s;background:var(--art-background);display:flex;flex-direction:column;justify-content:flex-end;padding:25px;color:#fff8de}.photo-art:before{content:'';position:absolute;width:180px;height:180px;right:-30px;top:-25px;border:40px solid #f4edbd55;border-radius:50%;box-shadow:0 0 0 40px #f1e6b414}.photo-art:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,#fff1 0 1px,transparent 1px 4px);opacity:.22}.photo-art .art-number{position:absolute;top:20px;left:25px;font-family:Georgia,serif;font-style:italic;font-size:42px;opacity:.8}.photo-art strong{font-family:Georgia,serif;font-size:39px;font-weight:400;font-style:italic;line-height:1.1;max-width:230px;z-index:1}.photo-art small{font-size:8px;letter-spacing:2px;margin-top:17px;opacity:.65}.album-bottom{display:flex;justify-content:space-between;font-size:8px;color:#77806e;margin-top:68px;padding-bottom:58px;border-bottom:1px solid #1a271d22}.closing{text-align:center;padding-top:70px}.closing>.eyebrow{font-size:9px;color:#78806f}.closing>p{font-family:Manrope,sans-serif;font-weight:500;font-size:clamp(27px,3vw,45px);letter-spacing:-1.5px;margin:19px 0 70px}.closing>p>span{display:inline-block;color:#8b9f68;font-size:26px;margin-left:14px;vertical-align:middle}.closing>div{display:flex;justify-content:space-between;gap:15px;padding:25px 0 30px;font-size:8px;letter-spacing:1.2px}.album-active .sound-toggle{color:var(--ink)}.album-active .sound-bars i{background:var(--ink)}.album-active .motion-toggle{color:var(--ink);background:#f1f0e7cc;border-color:#19221b22}.album-active .chapter-nav i{background:#67755e}.album-active .chapter-nav a[aria-current] i{background:#344b26;outline-color:#344b2688}.status-message{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:20;border-radius:8px;padding:14px 20px;max-width:90%;background:#17291ff0;color:var(--cream);font-size:12px;line-height:1.5;box-shadow:0 8px 35px #0002;pointer-events:none;opacity:0;transition:opacity .3s}.status-message.visible{opacity:1}.lightbox{width:min(1000px,94vw);max-height:94svh;background:#142018;color:var(--cream);border:1px solid #ffffff20;padding:56px 25px 18px}.lightbox::backdrop{background:#08100bef;backdrop-filter:blur(12px)}.lightbox-close{position:absolute;right:19px;top:12px;background:transparent;color:var(--cream);font-size:23px;padding:5px 10px}.lightbox-content{height:min(66svh,650px);display:flex;align-items:center;justify-content:center}.lightbox-content img{width:100%;height:100%;object-fit:contain}.lightbox-content .photo-art{max-width:700px}.lightbox-content .photo-art strong{font-size:clamp(40px,7vw,88px);max-width:550px}.lightbox-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:15px}.lightbox-controls button{background:transparent;font-size:25px;padding:8px 16px}.lightbox-caption{font-size:11px;text-align:center}.is-paused *,.is-paused *:before,.is-paused *:after{animation-play-state:paused!important}
@keyframes water{to{background-position:60px 40px,-30px 25px}}@keyframes float{to{translate:12px 20px;rotate:8deg}}@keyframes equalize{to{height:3px}}@keyframes appear{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}
@media(min-width:1600px){.intro-content,.chapter-copy,.party-content{left:0;padding-left:10%}.party-content,.chapter-copy{padding-left:0;left:10%}.photo-button{height:370px}}
@media(max-width:800px){.sound-toggle{top:24px;right:6%}.site-header{padding:24px 6%}.header-note{display:none}.chapter{min-height:650px}.intro-content{padding:0 7%;transform:translateY(-40%)}h1{font-size:clamp(55px,10vw,80px);letter-spacing:-3.6px}.eyebrow{font-size:8px;letter-spacing:1.4px}.intro-caption{font-size:11px;max-width:260px;line-height:1.6}.aerial-scene{width:155%;left:-35%;transform:scale(1.15) rotate(-9deg)}.pool-shape{left:58%;width:30%}.shade{background:linear-gradient(90deg,#08150dbb,#0a19163b),linear-gradient(0deg,#09140fdd,transparent 35%,transparent 80%,#09140f73)}.chapter-footer{left:6%;right:6%;bottom:25px;flex-wrap:wrap;gap:17px;font-size:8px}.chapter-footer .preview-label{position:absolute;bottom:34px;font-size:7px;letter-spacing:.7px}.scroll-cue{gap:12px;font-size:7px}.motion-toggle{right:6%;bottom:85px}.chapter-nav{right:3%;gap:9px}.chapter-copy,.party-content{left:7%}.chapter-copy h2,.party-content h2{font-size:clamp(60px,11vw,90px);letter-spacing:-3px}.chapter-copy em,.party-content em{letter-spacing:-3px}.big-ring{right:-20%;top:20%;width:290px;height:290px;border-width:65px}.water-word{left:33%;top:64%;letter-spacing:-4px}.disco-ball{right:10%;top:19%;width:150px;height:150px}.memories{padding:65px 7% 0}.album-note{display:none}.album-title-row{display:block;margin-bottom:35px}.album-title-row h2{font-size:clamp(52px,10vw,75px);letter-spacing:-3px}.album-title-row>p{margin-top:25px;font-size:12px}.photo-grid{grid-template-columns:repeat(2,1fr);gap:24px 16px}.photo-button{height:240px}.photo-card:nth-child(3n+2){transform:none}.photo-card:nth-child(2n){transform:translateY(25px)}.photo-art{padding:19px}.photo-art strong{font-size:30px}.photo-art small{font-size:6px;letter-spacing:1px}.photo-art .art-number{font-size:32px;left:19px}.photo-card figcaption{font-size:9px}.photo-card figcaption>span:last-child{font-size:7px}.album-bottom{font-size:7px;letter-spacing:1px;margin-top:60px;gap:20px}.closing>div{flex-wrap:wrap;justify-content:center;gap:20px;font-size:7px}.closing>div span:last-child{width:100%;opacity:.5}.closing>p{margin-bottom:45px}.lightbox{padding:52px 15px 15px}}
@media(max-width:420px){h1{font-size:53px;letter-spacing:-3px}.intro-content>.eyebrow{max-width:240px;line-height:1.8}.celebrants{font-size:10px;gap:16px}.enter-button{margin-top:34px}.photo-button{height:210px}.photo-art strong{font-size:26px}.photo-card figcaption{flex-wrap:wrap;gap:5px}.intro-caption{max-width:245px}.closing>p{font-size:26px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
