html{scroll-snap-type:y mandatory;scroll-padding-top:0}main{overflow:clip}header{position:fixed;top:0;left:50%;transform:translateX(-50%);width:min(100%,540px);height:65px;padding:0 20px;z-index:15;background:linear-gradient(#f5f1e8f0,#f5f1e800);border:0;pointer-events:none}.header-title{font-size:11px;letter-spacing:3px;color:#677059}.header-actions{display:flex;align-items:center;gap:15px;pointer-events:auto}.icon-btn{background:#f5f1e8cc;border-radius:50%;width:34px;height:34px;font-size:23px}.record{width:34px;height:34px;border-radius:50%;position:relative;padding:0;border:1px solid #1d211b;box-shadow:0 1px 5px #0002;background:repeating-radial-gradient(circle,#20251f 0px,#20251f 2px,#485043 3px,#20251f 4px);animation:record-spin 6s linear infinite;animation-play-state:paused}.record.playing{animation-play-state:running}.record-center{position:absolute;inset:10px;border-radius:50%;background:#b8a17a;color:#fff;display:grid;place-content:center;font:9px Georgia}.record:not(.playing):after{content:'';position:absolute;left:5px;top:16px;width:24px;height:1px;background:#ede8d9;transform:rotate(-45deg)}@keyframes record-spin{to{transform:rotate(360deg)}}.story-slide,.hero,.scripture,.second-verse,.celebration,.location,footer{scroll-snap-align:start;scroll-snap-stop:always;min-height:100svh}.hero{position:relative;height:100svh;padding:0;display:flex;align-items:center;justify-content:center}.poster-cover{width:100%;height:100%;padding:16px 0 65px}.poster-cover img{height:100%;width:100%;object-fit:contain}.hero-swipe{position:absolute;bottom:70px;left:0;right:0;font-size:9px;letter-spacing:3px;text-shadow:0 1px 5px #fff;color:#59644c;pointer-events:none}.scripture{margin:0;padding:65px 28px 80px;border:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.scripture .eyebrow{margin-bottom:10px}.scripture .hero-title{font-size:18px;font-weight:400;letter-spacing:3px;line-height:1.6;margin:0 0 13px}.scripture .names{font-size:23px}.scripture .date{font-size:17px;margin:13px 0 8px}.hero-lunar{font-size:17px;letter-spacing:3px;margin:0 0 20px;color:#8f7953}.scripture .fine-cross{margin:0 0 12px;font-size:13px}.scripture h2{font-size:22px;margin-bottom:7px}.scripture blockquote{font-size:21px;margin:16px 0 12px}.scripture .divider{margin:20px 0}.scripture .body-copy{font-size:12px;line-height:2;margin:0}.scripture .invitation{margin-top:17px}.memories{display:contents}.memories>.section-heading,.memories>.section-intro,.memories>.photo-note{display:none}.gallery{display:contents}.photo-chapter{display:contents}.chapter-grid{display:contents}.chapter-heading,.photo-chapter:after{display:none!important}.photo-slide{height:100svh;min-height:100svh;position:relative;display:flex;align-items:center;justify-content:center;padding:66px 0 75px;overflow:hidden;background:#f5f1e8}.photo-slide.chapter-1{background:#e9e1d4}.photo-slide.chapter-2{background:#f0e6e4}.photo-slide.chapter-3{background:#e8ebdf}.photo-slide.chapter-4{background:#e6eef0}.photo-slide .photo-tile,.photo-slide .photo-tile:first-child{display:flex;align-items:center;justify-content:center;aspect-ratio:auto;width:100%;height:100%;max-height:100%;background:none;grid-column:auto;overflow:visible}.photo-slide .photo-tile img{width:100%;height:100%;max-height:100%;object-fit:contain;transform:none}.slide-heading{position:absolute;top:25px;left:20px;font-size:11px;letter-spacing:3px;margin:0}.slide-heading small{font:8px Georgia;letter-spacing:1.5px;color:var(--muted);display:block;margin-top:6px}.slide-caption{position:absolute;bottom:70px;left:20px;right:20px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;font-size:10px;letter-spacing:1px}.slide-caption span{font:10px Georgia;color:#828a78;letter-spacing:1px}.photo-number{display:none}.second-verse,.waiting-verse{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 28px;text-align:center}.second-verse .verse-flower{top:15%;pointer-events:none}.second-verse .divider{margin:30px auto}.waiting-verse{background:#e7e8da}.waiting-verse blockquote{font-size:23px;letter-spacing:2px;line-height:2.1}.waiting-verse h2{font-size:25px}.waiting-verse cite{font-size:11px}.waiting-verse .body-copy{font-size:12px}.celebration{padding:65px 28px 80px;display:flex;flex-direction:column;align-items:center;justify-content:center}.celebration .eyebrow{margin-bottom:12px}.celebration h2{margin:0;font-size:23px}.celebration .section-intro{margin:12px 0;font-size:12px}.date-card{width:260px;margin:13px auto 8px;padding:18px 25px 0}.date-card strong{font-size:75px;margin:6px 0 8px;letter-spacing:-3px}.date-card .month{font-size:10px}.date-line{font-size:11px;padding:9px 0}.date-card .lunar-important{font-size:10px;margin:12px 0}.date-card .lunar-important strong{display:block;font:24px/1.5 var(--serif);letter-spacing:5px;margin:3px 0}.time-info{font-size:13px;letter-spacing:1px;padding:12px 0}.countdown-title{margin:17px 0 12px}.countdown-note{margin:14px 0 0}.location{padding:70px 26px 90px;display:flex;flex-direction:column;justify-content:center}.location .eyebrow{margin-bottom:10px}.location h2{margin-bottom:9px}.venue{margin-top:15px;padding-top:17px}.venue-icon{font-size:25px}.venue h3{font-size:22px}.venue-sub{font-size:12px}.rule{margin:15px auto}.map-preview{height:210px;margin-top:17px}.map-preview img{object-position:50% 27%}.map-caption{margin-bottom:12px}footer{padding:70px 25px 95px;display:flex;flex-direction:column;align-items:center;justify-content:center}.bottom-nav{height:58px;padding:9px 15px max(10px,env(safe-area-inset-bottom));background:#f5f1e8ec}.bottom-nav a{font-size:18px}.bottom-nav span{font-size:10px}.animate-reveal{opacity:1;transform:none}.desktop-note{z-index:0}dialog{z-index:40}dialog[open]{background:#20251efc}#large-photo{width:auto;height:auto;max-width:100%;max-height:76svh}.photo-controls{margin-top:10px}.music-tip{position:fixed;top:66px;right:max(20px,calc(50% - 250px));z-index:20;background:#f5f1e8ee;color:#59644c;border:1px solid #d8d3c3;font-size:10px;padding:8px 12px;letter-spacing:1px;pointer-events:none}.music-tip.hidden{display:none}@media(min-width:900px){header{left:calc(50% + 80px)}.hero{padding:0}.poster-cover{padding-top:20px}.music-tip{right:calc(50% - 330px)}}@media(max-height:720px){.scripture{padding-top:55px;padding-bottom:70px}.scripture .hero-title{display:none}.scripture .hero-lunar{margin-bottom:13px}.scripture blockquote{margin:9px 0;font-size:19px}.scripture .divider{margin:13px 0}.scripture .invitation{margin-top:10px}.scripture .body-copy{font-size:11px}.date-card{padding-top:12px;margin-top:7px}.date-card strong{font-size:60px}.celebration .section-intro{display:none}.countdown-title{margin-top:12px}.countdown strong{font-size:30px}.date-card .lunar-important strong{font-size:21px}.location{min-height:820px}}@media(prefers-reduced-motion:reduce){html{scroll-snap-type:none}.record{animation:none}}
.arrived .photo-tile img{animation:photo-arrive 1.3s ease both}.arrived blockquote{animation:words-arrive 1s ease both}@keyframes photo-arrive{from{opacity:.4;transform:translateY(15px)}to{opacity:1;transform:none}}@keyframes words-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.arrived .photo-tile img,.arrived blockquote{animation:none}}
.header-title{visibility:hidden}
.covenant-page{height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#eae5db;padding:80px 25px}.tie-preamble{font-size:13px;letter-spacing:2px;color:var(--muted);margin:15px 0 35px}.tie-names{display:flex;gap:24px;align-items:center;font-size:25px;letter-spacing:3px}.tie-names i{font-size:12px;font-style:normal;color:var(--gold)}.promise-rings{width:240px;height:140px;stroke:var(--gold);fill:none;stroke-width:1.2;margin:15px 0 25px}.covenant-page h2{font-size:29px;letter-spacing:6px;line-height:1.8}.covenant-page .body-copy{font-size:12px}.arrived .tie-names span:first-child{animation:tie-left 1.8s ease both}.arrived .tie-names span:last-child{animation:tie-right 1.8s ease both}.arrived .ring-one{animation:ring-left 2s ease both}.arrived .ring-two{animation:ring-right 2s ease both}.photo-slide:nth-of-type(2n).arrived .photo-tile img{animation:photo-side 1.3s ease both}.covenant-page:before,.second-verse:before,.waiting-verse:before{content:'';display:block;width:1px;height:60px;background:linear-gradient(transparent,var(--gold));position:absolute;top:0;left:50%;opacity:.55}.covenant-page,.waiting-verse{position:relative}.promise-rings circle{stroke-dasharray:283;stroke-dashoffset:0}@keyframes tie-left{from{opacity:0;transform:translateX(-35px)}to{opacity:1;transform:none}}@keyframes tie-right{from{opacity:0;transform:translateX(35px)}to{opacity:1;transform:none}}@keyframes ring-left{from{transform:translateX(-55px);opacity:0;stroke-dashoffset:283}to{transform:none;opacity:1;stroke-dashoffset:0}}@keyframes ring-right{from{transform:translateX(55px);opacity:0;stroke-dashoffset:283}to{transform:none;opacity:1;stroke-dashoffset:0}}@keyframes photo-side{from{opacity:.4;transform:translateX(18px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.arrived .tie-names span,.arrived .promise-rings circle,.photo-slide:nth-of-type(2n).arrived .photo-tile img{animation:none}}
