@font-face{font-family:WeddingBrush;src:url('assets/wedding-calligraphy.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
img{height:auto}button,select,a,label{touch-action:manipulation}[hidden]{display:none!important}
.monogram{font-family:WeddingBrush,'Kaiti SC',KaiTi,serif;font-size:28px;letter-spacing:2px;gap:7px}.monogram>span{font:18px WeddingBrush,'Kaiti SC',serif}.monogram i{font-size:9px;letter-spacing:2px;max-width:90px;margin-left:12px}
.couple-title{font-family:WeddingBrush,'Kaiti SC',KaiTi,serif;font-weight:400;font-size:clamp(80px,7.5vw,118px);line-height:1.3;letter-spacing:8px}.couple-title small{font:400 24px WeddingBrush,serif;vertical-align:middle;margin-left:20px;color:#8d987b}.couple-title em{font-family:inherit;margin-left:.55em}.couple-title sup{font:24px WeddingBrush,serif;right:8%;top:11%;color:#986d58}.couple-title em:after{display:none}.hero .names{font:12px var(--serif);letter-spacing:5px}.hero-copy>.eyebrow{font:12px var(--serif);letter-spacing:3px}.hero-copy>.issue{font-size:9px;letter-spacing:1.5px}.hero-bottom{margin-top:30px}.hero-index{letter-spacing:1.5px}
.lazy-photo{transition:opacity .35s ease}.lazy-photo:not(.loaded),img[data-src]{opacity:0}.chapter-image,.story-aside img{background:#e1e5d8}.gallery img{background:#e5e8dc}
#viewer{height:100dvh;max-height:100dvh;overflow:hidden;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);overscroll-behavior:contain}
.viewer-top{height:62px;padding:10px 28px;gap:16px;flex-wrap:nowrap}.viewer-top .viewer-brand{font:30px WeddingBrush,'Kaiti SC',serif;letter-spacing:2px}.viewer-top .viewer-brand i{font:18px WeddingBrush,serif;margin:0 10px}.viewer-top #close-viewer{min-width:44px;min-height:44px;padding:8px;margin:0;font-size:22px}
.viewer-meta{padding:0 30px 8px;gap:12px;min-height:34px}.viewer-meta>div{display:flex;gap:18px;align-items:center}.viewer-meta>button{min-height:34px;padding:7px 12px;font-size:11px}.viewer-meta .viewer-song{font-size:11px}.viewer-meta #sync-status{font-size:10px}
.viewer-stage{padding:10px 35px 0;gap:0}.viewer-stage p{height:20px;margin:12px 0 5px;font-size:11px;letter-spacing:2px}.swipe-hint{font-size:10px;letter-spacing:1px;padding-bottom:10px}.photo-stack{position:relative}.photo-stack #photo-load-status{position:absolute;top:50%;left:15%;right:15%;text-align:center;transform:translateY(-50%);font-size:12px;line-height:2;color:#bbc7a7;pointer-events:none}
.viewer-controls{display:flex;justify-content:center;align-items:center;gap:12px;padding:14px 25px 16px;border-top:1px solid #b8c4a224;flex-shrink:0;background:#171c17;z-index:2}.viewer-controls button{position:static;display:block;min-height:44px;min-width:44px;padding:8px 14px;font-size:12px;color:#e6ecd9;border-radius:24px;white-space:nowrap}.viewer-controls button:active{background:#ffffff14}.viewer-controls .viewer-prev,.viewer-controls .viewer-next{position:static;inset:auto;display:block;font-size:14px;padding:8px 14px}.viewer-controls #autoplay{background:#e0e7cf;color:#2c3a28;padding:8px 20px;min-width:120px}.viewer-controls #speed{font-size:12px;padding:8px 14px;min-height:44px}.viewer-controls #viewer-sound{font-size:12px}.viewer-thumbs{display:none}.thumbs-open .viewer-thumbs{display:flex;height:82px;padding:8px 25px}.viewer-thumbs button{min-width:70px;min-height:48px}.slide-progress{height:3px}
.orientation-note{margin:3px 22px 10px;padding:10px 14px;display:flex;align-items:center;gap:12px;border:1px solid #b1c58e40;border-radius:8px;background:#d5e4bf0a;color:#c9d5b6;flex-shrink:0}.orientation-note .rotate-symbol{font-size:30px;line-height:1}.orientation-note>div{flex:1}.orientation-note strong{font-size:12px;letter-spacing:.5px;font-weight:400}.orientation-note p{font-size:10px;line-height:1.8;margin:5px 0 0;color:#95a387}.orientation-note button{min-width:40px;min-height:40px;padding:10px;color:#aebf97;font-size:15px}
#music-panel{max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}#close-music{min-height:44px;min-width:44px}.track-row select{min-height:46px}.track-row button{min-height:44px}.local-track-button{min-height:44px;display:flex;align-items:center}.music-play-row .outline-button,#beat-window{min-height:44px}
@media(max-width:900px){.viewer-controls{gap:4px;padding-left:12px;padding-right:12px}.viewer-controls button,.viewer-controls .viewer-prev,.viewer-controls .viewer-next{padding-left:10px;padding-right:10px}.viewer-controls #autoplay{min-width:100px;padding-left:12px;padding-right:12px}.monogram{font-size:26px}.couple-title{font-size:88px;letter-spacing:5px}.hero-copy>.issue{font-size:8px;line-height:1.8}.viewer-meta>div{gap:10px}}
@media(max-width:600px){
 html{scroll-padding-top:18px}body{font-size:14px}header{height:68px;padding:0 6%;border-bottom:1px solid #34433418}.monogram{font-size:25px;letter-spacing:1px;gap:6px}.monogram>span{font-size:16px}.sound{top:16px;right:6%;min-height:40px;padding:10px 12px}.sound-label{font-size:9px}.hero{padding-top:68px}.hero-copy{padding:28px 7% 32px}.hero-copy>.eyebrow{font-size:11px;margin:0 0 10px;letter-spacing:2px}.hero-copy>.issue{font-size:8px;letter-spacing:.5px;margin:0 0 18px;color:#89917d}.couple-title{font-size:67px;line-height:1.14;letter-spacing:6px;margin:0}.couple-title br{display:block}.couple-title small{font-size:21px;margin-left:16px}.couple-title em{margin-left:.5em}.couple-title sup{right:13%;top:12%;font-size:21px}.hero-bottom{margin-top:20px}.hero .names{font-size:11px;letter-spacing:4px;margin:0 0 10px}.hero .intro{font-size:11px;line-height:1.9;margin:0}.hero .circle-link{right:0;bottom:3px}.hero .circle-link span{font-size:9px}.hero .circle-link b{width:43px;height:43px}.hero-index{position:static;display:block;margin-top:25px;font-size:6px;letter-spacing:1.1px}.hero-photo{height:55svh;min-height:350px;max-height:520px}.hero-photo>img{scale:1;object-position:50% 40%}.photo-caption{bottom:13%;gap:20px}.photo-caption>span{font-size:15px}.play-story{min-height:44px;font-size:11px;padding:13px 0}.play-story span{margin-left:6px}.vertical-label{font-size:7px}.scroll-note{font-size:6px}.together{padding-top:37px;padding-bottom:37px;gap:25px}.together-note h2{font-size:25px}.day-number strong{font-size:86px}.story{padding-top:48px}.section-top{line-height:1.8;gap:15px}.story-text>p:not(.eyebrow){font-size:13px;line-height:2.4}.story-text h2{font-size:clamp(22px,6.5vw,26px);line-height:1.8}.journey p{font-size:12px;line-height:2.1}.journey h3{font-size:22px}.chapter-info>p:not(.eyebrow){font-size:12px}.text-button,.outline-button{min-height:44px}.chapter-image{height:auto;aspect-ratio:1.15}.chapter-image img{height:100%}.golden .chapter-image{height:auto;aspect-ratio:.95}.crimson .chapter-image{height:auto;aspect-ratio:.95}.chapter-info{min-height:300px;padding-top:35px;padding-bottom:35px}.golden .chapter-info{padding-top:35px;padding-bottom:35px}.chapter h3{font-size:30px}.chapter-heading{margin:35px 0}.chapter-heading p{font-size:12px}.collection{padding-top:48px}.collection-heading{margin-top:30px}.collection h2{font-size:26px}.filters button{min-height:44px;font-size:12px}.gallery-toolbar{padding-bottom:10px;margin-bottom:18px}.gallery{gap:20px}.gallery .frame-meta{font-size:9px;letter-spacing:.5px;padding:11px 0}.gallery .frame-meta>span:last-child{font-size:7px}.gallery-tip{font-size:11px;line-height:1.9}.ending{min-height:440px}.ending-copy{padding:60px 7%}.ending h2{font-size:28px}.ending .handwriting{font-size:22px}footer>span:first-child{font-family:WeddingBrush,'Kaiti SC',serif;font-size:23px;letter-spacing:1px}footer>span:first-child i{font-family:WeddingBrush,serif;font-size:15px}footer p{font-size:7px}footer .tiny{font-size:9px;letter-spacing:.5px}
 .viewer-top{height:54px;min-height:54px;padding:5px 14px;gap:10px}.viewer-top .viewer-brand{font-size:25px;letter-spacing:1px}.viewer-top .viewer-brand i{display:inline;font-size:15px;margin:0 7px}.viewer-top #close-viewer{font-size:21px}.viewer-meta{padding:0 18px 9px;min-height:40px;align-items:center;flex-wrap:nowrap}.viewer-meta>div{align-items:start;flex-direction:column;gap:5px;min-width:0}.viewer-meta .viewer-song{font-size:10px;letter-spacing:0;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viewer-meta #sync-status{font-size:9px;line-height:1.4}.viewer-meta>button{font-size:10px;flex-shrink:0;min-height:36px;padding:6px 10px}.orientation-note{margin:4px 14px 8px;padding:7px 10px;gap:10px}.orientation-note .rotate-symbol{font-size:26px}.orientation-note strong{font-size:12px}.orientation-note p{font-size:10px;margin-top:4px}.orientation-note button{min-width:36px;min-height:40px;padding:7px}.viewer-stage{padding:4px 12px 0}.viewer-stage p{font-size:10px;letter-spacing:1px;height:18px;margin:10px 0 3px}.swipe-hint{font-size:10px;letter-spacing:.3px;padding-bottom:10px}.viewer-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:8px 10px 10px}.viewer-controls button,.viewer-controls .viewer-prev,.viewer-controls .viewer-next,.viewer-controls #viewer-sound{min-width:0;min-height:44px;padding:6px 4px;font-size:11px;border-radius:8px;line-height:1.5}.viewer-controls #autoplay{min-width:0;padding:6px 4px;font-size:11px;border-radius:22px}.viewer-controls #speed{font-size:11px;padding:6px 4px;min-height:44px;border-radius:22px}.thumbs-open .viewer-thumbs{height:68px;padding:5px 14px;gap:8px}.viewer-thumbs img{width:70px;height:43px}.viewer-thumbs button{min-height:46px;min-width:70px}.photo-stack{touch-action:pan-y}.photo-stack #photo-load-status{font-size:11px;left:10%;right:10%}#toast{bottom:calc(20px + env(safe-area-inset-bottom));font-size:12px}
}
@media(max-width:360px){.monogram{font-size:22px}.sound{padding:9px 10px}.couple-title{font-size:61px}.hero-copy{padding-left:7%;padding-right:7%}.hero .intro{font-size:10px}.hero-photo{min-height:320px}.photo-caption>span{font-size:13px}.photo-caption{gap:12px}.play-story{font-size:10px}.viewer-meta .viewer-song{max-width:170px}.orientation-note p{font-size:9px}.orientation-note strong{font-size:11px}.together-note>a{font-size:7px}.together-note h2{font-size:23px}.filters button{font-size:11px}}
@media(orientation:landscape) and (max-height:600px){
 #viewer{padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.viewer-top{height:43px;min-height:43px;padding:0 16px}.viewer-top .viewer-brand{font-size:23px}.viewer-top .viewer-brand i{font-size:14px;margin:0 6px}.viewer-top #close-viewer{min-height:40px;min-width:44px;font-size:20px}.viewer-meta{position:absolute;top:6px;left:32%;right:70px;padding:0;min-height:31px;gap:14px;z-index:2}.viewer-meta>div,.viewer-meta>div:first-child{flex-direction:row;gap:12px;align-items:center}.viewer-meta .viewer-song{font-size:9px;max-width:200px}.viewer-meta #sync-status{display:none}.viewer-meta>button{min-height:30px;font-size:9px;padding:5px 10px}.viewer-stage{padding:0 14px;min-height:0}.viewer-stage p{margin:5px 0 4px;height:15px;font-size:9px;letter-spacing:1px}.swipe-hint{display:none}.viewer-controls{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;padding:5px 10px}.viewer-controls button,.viewer-controls .viewer-prev,.viewer-controls .viewer-next,.viewer-controls #viewer-sound,.viewer-controls #speed,.viewer-controls #autoplay{min-width:0;min-height:40px;padding:5px 3px;font-size:10px}.viewer-controls #autoplay{min-width:0}.viewer-controls .viewer-prev span,.viewer-controls .viewer-next span{display:none}.thumbs-open .viewer-thumbs{height:57px;padding:4px 20px}.viewer-thumbs img{width:65px;height:40px}.viewer-thumbs button{min-height:42px;min-width:65px}.orientation-note{display:none}#music-panel{padding:18px 28px}.music-panel-top{min-height:35px}#music-heading{font-size:25px;margin:10px 0}.music-subtitle{margin-bottom:20px}#waveform{height:65px;margin-top:15px}.music-play-row{margin:18px 0}.beat-settings{padding:17px 0}.local-track-button{margin:15px 0 5px}
}
.play-story{white-space:nowrap;flex-shrink:0}.photo-caption>span{font-family:var(--serif);font-size:16px;line-height:1.8;letter-spacing:3px}.vertical-label{letter-spacing:2px}
@media(max-width:600px){.photo-caption>span{font-size:14px;letter-spacing:2px}.photo-caption{gap:12px}.play-story{font-size:11px}.vertical-label{font-size:8px;letter-spacing:2px}.scroll-note{font-size:8px;letter-spacing:1px}.hero-index{font-size:9px;letter-spacing:2px}}
@media(orientation:landscape) and (max-height:600px){.viewer-top{height:46px;min-height:46px}.viewer-top #close-viewer,.viewer-controls button,.viewer-controls .viewer-prev,.viewer-controls .viewer-next,.viewer-controls #viewer-sound,.viewer-controls #speed,.viewer-controls #autoplay{min-height:44px}}
