:root{--paper:#f5f3eb;--paper-deep:#edece1;--ink:#30483e;--ink-dark:#22382e;--muted:#7b8172;--line:#ced0bf;--gold:#a38c60;--serif:"Songti SC","STSong","Noto Serif CJK SC","Source Han Serif SC",SimSun,serif;--latin:"Bodoni 72",Didot,"Times New Roman",serif;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{border:0}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:5px}img{display:block;width:100%;height:100%;object-fit:cover}p,h1,h2,h3,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}::selection{background:#cdd6bd;color:var(--ink-dark)}.content-width{width:min(1120px,calc(100% - 128px));margin-inline:auto}.section-space{padding-block:120px}.eyebrow{font-family:var(--sans);font-size:10px;letter-spacing:.21em;font-weight:400}.section-label{display:flex;align-items:center;gap:14px;font-size:9px;letter-spacing:.18em;color:var(--muted)}.section-label>span{font-family:var(--latin);font-size:14px;letter-spacing:0}.section-label>i{width:36px;height:1px;background:var(--line)}.reading-progress{position:fixed;inset:0 0 auto;height:2px;z-index:40;pointer-events:none}.reading-progress span{display:block;width:0;height:100%;background:#b9bf98}.site-header{position:absolute;z-index:10;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:28px 4.5%}.monogram{width:55px;height:55px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;position:relative}.monogram>span{font-family:var(--serif);font-size:26px;font-weight:400}.monogram>i{position:absolute;inset:4px;border:1px solid currentColor;border-radius:50%;opacity:.3}.header-actions{display:flex;align-items:center;gap:35px;color:white}.header-link{font-size:11px;letter-spacing:.13em}.header-link span{margin-left:15px}.music-toggle{display:flex;gap:10px;align-items:center;background:transparent;color:inherit;padding:6px}.music-caption{font-size:10px;letter-spacing:.12em}.record{position:relative;display:grid;place-items:center;width:32px;height:32px;border:1px solid currentColor;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 2px,#ffffff25 2px 3px)}.record:after{content:"";position:absolute;right:0;top:0;width:1px;height:36px;background:currentColor;transform:rotate(38deg);transform-origin:top}.record i{display:block;width:7px;height:7px;background:currentColor;border-radius:50%}.music-toggle[aria-pressed=true] .record{animation:record-spin 6s linear infinite}.music-toggle[aria-pressed=true] .record:after{display:none}@keyframes record-spin{to{transform:rotate(360deg)}}
.hero{position:relative;min-height:790px;height:min(940px,100svh);overflow:hidden}.hero-photo{position:absolute;inset:0 0 0 46%;overflow:hidden}.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#18312070,transparent 35%)}.hero-photo img{object-position:center 80%;animation:hero-arrive 1.8s ease-out both}.photo-whisper{position:absolute;z-index:1;left:8%;bottom:11%;font-family:var(--latin);font-style:italic;font-size:42px;letter-spacing:-.04em;color:var(--paper)}.photo-index{position:absolute;z-index:1;left:8%;bottom:6%;font-size:9px;letter-spacing:.2em;color:var(--paper)}.hero-paper{position:relative;width:46%;height:100%;padding:0 11%;display:flex;flex-direction:column;justify-content:center;background:var(--paper)}.hero-paper:before{content:"";position:absolute;pointer-events:none;inset:0;opacity:.19;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23938d72' opacity='.2' filter='url(%23n)' d='M0 0h200v200H0z'/%3E%3C/svg%3E")}.hero-heading,.hero-details,.scroll-invitation{position:relative}.hero-eyebrow{white-space:nowrap;display:flex;align-items:center;gap:15px;font-size:8px;letter-spacing:.14em}.tiny-star{font-size:17px;letter-spacing:0}.hero h1{margin-top:32px;font-size:clamp(62px,6.1vw,94px);line-height:1.32;letter-spacing:-.045em;white-space:nowrap}.hero h1>span{display:block}.title-dot{color:var(--gold);margin-left:-.13em}.hero-english{margin-top:14px;font-family:var(--latin);font-size:17px;font-style:italic;white-space:nowrap;color:var(--muted)}.hero-details{margin-top:65px}.couple-names{display:flex;gap:20px;align-items:center;font-family:var(--serif);font-size:21px;letter-spacing:.12em;white-space:nowrap}.couple-names em{font-family:var(--latin);font-size:22px;font-weight:400;color:var(--gold)}.hero-date{display:flex;align-items:center;gap:15px;margin-top:25px;font-size:10px;letter-spacing:.15em;white-space:nowrap}.hero-date i{height:10px;width:1px;background:var(--line)}.hero-place{font-size:11px;letter-spacing:.1em;color:var(--muted);margin-top:12px;white-space:nowrap}.scroll-invitation{position:absolute;bottom:5%;left:24%;display:flex;align-items:center;gap:14px;font-size:9px;letter-spacing:.13em;color:var(--muted)}.scroll-circle{display:grid;place-items:center;width:29px;height:29px;border:1px solid var(--line);border-radius:50%;font-size:14px;animation:nudge 2s ease-in-out infinite}@keyframes nudge{50%{transform:translateY(5px)}}@keyframes hero-arrive{from{transform:scale(1.055);opacity:.6}to{transform:scale(1);opacity:1}}
.invitation{position:relative;width:min(1040px,calc(100% - 128px));margin-inline:auto;display:grid;grid-template-columns:1fr 43%;column-gap:13%;align-items:center}.invitation>.section-label{position:absolute;top:100px;left:0}.invitation-copy{padding-top:55px}.dear{font-family:var(--serif);font-size:13px;letter-spacing:.2em;margin-bottom:32px}.invitation h2{font-size:39px;line-height:1.65;letter-spacing:.02em;margin-bottom:30px}.invitation-copy>p:not(.dear){font-size:12px;line-height:2.6;letter-spacing:.055em;color:var(--muted);margin-top:18px}.invitation-copy .invitation-last{color:var(--ink)!important}.botanical{width:130px;height:74px;color:#8a967e;margin-top:20px}.portrait-frame{position:relative;padding-top:28px}.portrait-image{aspect-ratio:2/3;overflow:hidden;border-radius:200px 200px 0 0}.portrait-image img{transition:transform 1s}.portrait-frame:hover .portrait-image img{transform:scale(1.035)}.portrait-caption{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.12em;margin-top:15px;color:var(--muted)}.portrait-script{position:absolute;bottom:43px;left:-52px;color:var(--paper);font-size:57px;font-style:italic;font-family:var(--latin);line-height:1;transform:rotate(-8deg);text-shadow:0 1px 10px #26352130;white-space:nowrap}
.story{background:var(--paper-deep);padding-bottom:85px}.story-top{display:flex;justify-content:space-between;align-items:flex-end}.story h2{font-size:47px;line-height:1.6;margin-top:28px;letter-spacing:.02em}.story h2 em{font-style:normal;margin-left:65px}.story-top>p{font-size:12px;line-height:2.7;letter-spacing:.07em;color:var(--muted);padding-bottom:12px}.story-pictures{display:grid;grid-template-columns:1.1fr 1fr;gap:12%;align-items:start;margin-top:60px}.story-photo-main{width:100%}.story-photo-small{width:78%;margin-top:110px;position:relative}.photo-open{padding:0;display:block;position:relative;width:100%;overflow:hidden;background:#dddcd0}.photo-open>img{transition:transform .8s ease;aspect-ratio:2/3}.photo-open:hover>img{transform:scale(1.035)}.photo-expand{position:absolute;bottom:14px;right:14px;border:1px solid #ffffff70;color:white;border-radius:50%;width:28px;height:28px;display:grid;place-items:center;font-size:16px;background:#20302520}.story-photo figcaption{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:18px}.story-photo figcaption>span:first-child{font-family:var(--serif);font-size:12px;letter-spacing:.3em}.story-photo figcaption>span:last-child{font-family:var(--latin);font-style:italic;color:var(--muted);font-size:12px}.handwritten{position:absolute;top:-50px;left:-30px;z-index:2;font-family:var(--latin);font-style:italic;font-size:42px;color:var(--gold);transform:rotate(-9deg);white-space:nowrap}.story-bottom{text-align:center;font-family:var(--serif);font-size:16px;letter-spacing:.16em;margin-top:80px;line-height:2.3}.story-bottom>span{display:block;color:var(--muted);font-size:12px;letter-spacing:.12em;margin-top:8px}
.sea-interlude{position:relative;overflow:hidden;height:650px;background:#92aeb3}.sea-interlude>img{object-position:center 54%}.sea-interlude:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#263e4a55,transparent 75%)}.sea-copy{position:absolute;z-index:1;top:50%;left:11%;transform:translateY(-50%);color:white}.sea-copy>p:first-child{font-size:10px;letter-spacing:.3em}.sea-copy>span{display:block;font-family:var(--latin);font-size:72px;line-height:1.14;letter-spacing:-.03em;font-style:italic;margin:30px 0}.sea-copy>p:last-child{font-size:12px;letter-spacing:.15em}
.celebration{max-width:1120px;margin:auto}.celebration>.section-label{justify-content:center}.celebration-heading{text-align:center;margin-top:42px}.script-label{font-family:var(--latin);font-size:52px;font-style:italic;color:var(--gold);letter-spacing:-.04em}.celebration h2{font-size:37px;letter-spacing:.08em;margin-top:14px}.celebration-heading>p{font-size:12px;color:var(--muted);letter-spacing:.08em;margin-top:24px}.date-card{display:grid;grid-template-columns:1.1fr 1fr;max-width:980px;margin:55px auto 0;border:1px solid var(--line)}.date-card-main{padding:55px 60px 40px;text-align:center}.date-card-main>.eyebrow{font-size:9px;color:var(--muted)}.date-display{display:flex;justify-content:center;align-items:center;gap:27px;font-family:var(--latin);font-size:101px;line-height:1;margin:25px 0 20px;font-weight:400;letter-spacing:-.06em}.date-display i{height:65px;width:1px;background:#adb49f;transform:rotate(24deg);margin:0 9px}.date-lunar{font-size:10px;letter-spacing:.1em;display:flex;justify-content:center;gap:12px;color:var(--muted);white-space:nowrap}.calendar{margin-top:31px;border-block:1px solid var(--line);padding-block:17px;max-width:320px;margin-inline:auto}.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);align-items:center;gap:5px 3px}.calendar-week{font-size:9px;color:var(--muted);margin-bottom:12px}.calendar-days{font-family:var(--latin);font-size:14px}.calendar-days>span{display:grid;place-items:center;height:32px;position:relative}.calendar-days>.is-wedding{color:var(--paper);z-index:0}.calendar-days>.is-wedding:before{content:"";position:absolute;width:31px;height:31px;background:var(--ink);border-radius:50%;z-index:-1}.calendar-note{font-family:var(--serif);font-size:10px;color:var(--muted);letter-spacing:.05em;margin-top:20px;white-space:nowrap}.calendar-note>span{color:var(--gold);margin-right:7px}.venue-card{position:relative;overflow:hidden;background:var(--ink);color:var(--paper);padding:56px 48px 40px;display:flex;flex-direction:column;justify-content:center}.venue-decoration{position:absolute;font-family:var(--serif);font-size:240px;right:-50px;top:60px;opacity:.035;pointer-events:none}.venue-card>.eyebrow{font-size:9px;color:#c3cbb5}.venue-time{margin-top:26px;display:flex;align-items:baseline;gap:16px}.venue-time>span{font-family:var(--latin);font-size:66px;line-height:1;letter-spacing:-.04em}.venue-time>small{font-family:var(--serif);font-size:12px;letter-spacing:.12em}.venue-divider{height:1px;width:100%;background:#f5f3eb35;margin:28px 0}.venue-card h3{font-size:25px;letter-spacing:.04em;line-height:1.5}.venue-city{font-size:10px;letter-spacing:.15em;color:#c3cbb5;margin-top:12px}.venue-note{font-size:11px;letter-spacing:.08em;line-height:2.4;color:#c3cbb5;margin-top:28px}.venue-actions{margin-top:32px}.button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:47px;font-size:11px;letter-spacing:.12em;background:var(--ink);color:var(--paper);padding:12px 20px;transition:background .2s}.button:hover{background:#456452}.button>svg{width:16px;height:18px}.button>span:last-child{margin-left:auto}.button-light{background:var(--paper);color:var(--ink);width:100%}.button-light:hover{background:#e3e5d8}.calendar-save{display:flex;justify-content:center;gap:10px;align-items:center;padding:14px;width:100%;background:transparent;font-size:10px;letter-spacing:.12em;color:#e5e8dc}.calendar-save>span{font-size:16px}.countdown{margin-top:48px;text-align:center}.countdown>p{font-size:10px;color:var(--muted);letter-spacing:.1em}.countdown-values{display:flex;align-items:center;justify-content:center;gap:23px;margin-top:22px}.countdown-values>span{display:flex;gap:8px;align-items:baseline}.countdown-values b{font-family:var(--latin);font-size:32px;font-weight:400;min-width:31px;font-variant-numeric:tabular-nums}.countdown-values small{font-size:9px;color:var(--muted)}.countdown-values>i{font-family:var(--latin);font-style:normal;color:#b3b9a3}
.memories{background:#eaece2;overflow:hidden}.memories-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:42px}.memories h2{font-size:39px;margin-top:25px;letter-spacing:.03em}.gallery-controls{display:flex;align-items:center;gap:22px;font-size:10px;letter-spacing:.12em;color:var(--muted)}.gallery-controls b{font-weight:500;color:var(--ink);margin-right:5px}.gallery-controls button{display:grid;place-items:center;width:39px;height:39px;border-radius:50%;border:1px solid #a9b39c;background:transparent;font-size:17px;transition:background .2s}.gallery-controls button:hover{background:#dae0cf}.gallery-controls button:disabled{opacity:.3;cursor:default}.gallery-track{display:flex;gap:28px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 max(64px,calc((100vw - 1120px)/2)) 14px;overscroll-behavior-x:contain}.gallery-track::-webkit-scrollbar{display:none}.gallery-item{flex:0 0 340px;scroll-snap-align:center}.gallery-item .photo-open>img{height:450px;aspect-ratio:auto;object-position:center}.gallery-item:last-child .photo-open>img{object-position:60% center}.gallery-item figcaption{display:flex;justify-content:space-between;margin-top:18px;font-size:9px;letter-spacing:.03em;color:var(--muted);gap:8px}.gallery-item figcaption>span:last-child{font-size:7px;letter-spacing:.1em}.gallery-hint{text-align:center;color:var(--muted);font-size:9px;letter-spacing:.13em;margin-top:30px}
.closing{position:relative;background:var(--ink);color:var(--paper);text-align:center;padding:95px 64px 25px;overflow:hidden}.closing-flower{font-family:var(--serif);font-size:59px;line-height:1;color:#b1bd99;margin-bottom:30px}.closing>.eyebrow{font-size:9px;color:#b7c3aa}.closing h2{font-size:43px;letter-spacing:.06em;line-height:1.8;margin-top:30px}.closing-copy{font-size:12px;letter-spacing:.1em;line-height:2.5;color:#c7d0bb;margin-top:28px}.closing-script{font-family:var(--latin);font-size:43px;font-style:italic;color:#b5c19d;margin-top:35px;letter-spacing:-.025em}.closing-signature{display:flex;justify-content:center;align-items:center;gap:15px;margin-top:45px;font-family:var(--serif);font-size:16px;letter-spacing:.15em}.closing-signature em{font-family:var(--latin);font-size:21px;color:#b5c19d}.closing-signature small{font-family:var(--sans);font-size:9px;color:#c7d0bb;letter-spacing:.12em;margin-left:8px}.closing-date{display:flex;justify-content:center;gap:28px;margin:25px auto 70px;font-size:10px;letter-spacing:.12em}.closing-date>span:last-child{font-size:9px;color:#b5c19d}.closing-footnote{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #c7d0bb30;padding-top:20px;font-size:7px;letter-spacing:.16em;color:#b7c3aa;gap:20px}.closing-footnote>a{border:1px solid #c7d0bb50;border-radius:50%;width:30px;height:30px;display:grid;place-items:center;font-size:13px;color:var(--paper)}
.lightbox{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:60px 28px 28px;border:0;background:#14231afa;color:var(--paper)}.lightbox::backdrop{background:#14231a}.lightbox-close{position:absolute;top:max(18px,env(safe-area-inset-top));right:20px;background:transparent;color:var(--paper);font-size:34px;font-weight:200;width:44px;height:44px}.lightbox-stage{display:flex;align-items:center;justify-content:center;gap:20px;height:calc(100% - 40px)}.lightbox-stage figure{height:100%;max-width:1100px;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}.lightbox-stage img{width:100%;height:calc(100% - 42px);object-fit:contain}.lightbox-stage figcaption{font-size:11px;color:#d0d6c5;margin-top:18px;letter-spacing:.1em;text-align:center}.lightbox-arrow{width:40px;height:40px;border:1px solid #c7d0bb50;border-radius:50%;background:transparent;color:var(--paper);flex-shrink:0;font-size:18px}.lightbox-count{text-align:center;font-size:10px;letter-spacing:.2em;color:#c7d0bb;margin-top:15px}.map-dialog{width:min(420px,calc(100% - 36px));border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:45px 32px 25px;text-align:center}.map-dialog::backdrop{background:#132d2066;backdrop-filter:blur(5px)}.map-close{position:absolute;right:10px;top:7px;background:transparent;font-size:25px;width:35px;height:35px}.map-dialog>.eyebrow{color:var(--muted);font-size:8px}.map-dialog h2{font-size:24px;margin-top:20px}.map-dialog>p:not(.eyebrow){font-size:11px;color:var(--muted);margin:18px 0 26px}.map-dialog>.button{margin-top:12px}.button-outline{border:1px solid var(--ink);background:transparent;color:var(--ink)}.button-outline:hover{background:var(--paper-deep)}#copy-venue{background:transparent;text-decoration:underline;text-underline-offset:5px;font-size:10px;margin-top:22px;color:var(--muted);padding:10px}.toast{position:fixed;bottom:max(30px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%,12px);background:#20382ef0;color:var(--paper);padding:14px 24px;font-size:11px;line-height:1.8;text-align:center;z-index:100;box-shadow:0 8px 35px #132d201c;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;width:max-content;max-width:calc(100% - 40px);border:1px solid #fff2}.toast.visible{opacity:1;transform:translate(-50%,0)}.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.65,.3,1)}.js .reveal.is-visible{opacity:1;transform:translateY(0)}.js .sea-copy.reveal{transform:translateY(calc(-50% + 24px))}.js .sea-copy.reveal.is-visible{transform:translateY(-50%)}
@media(min-width:1441px){.hero-paper{padding-inline:12%}.scroll-invitation{left:26%}}
@media(min-width:761px) and (max-width:1100px){.hero-paper{padding-inline:7%}.hero h1{font-size:70px}.hero-eyebrow{font-size:7px;gap:10px}.hero-english{font-size:15px}.hero .couple-names{gap:14px;font-size:18px}.scroll-invitation{left:15%}.content-width{width:calc(100% - 80px)}.invitation{width:calc(100% - 100px);column-gap:10%;grid-template-columns:1fr 43%}.invitation h2{font-size:33px}.portrait-script{font-size:45px}.celebration{padding-inline:40px}.date-card-main{padding-inline:30px}.venue-card{padding-inline:30px}.venue-card h3{font-size:22px}.venue-time>span{font-size:60px}.sea-interlude{height:550px}.story-photo-small{width:90%}.story-photo figcaption>span:last-child{font-size:10px}.gallery-track{padding-inline:40px}}
@media(max-width:760px){
  html{scroll-padding-top:20px}.content-width{width:calc(100% - 48px)}.section-space{padding-block:78px}.site-header{padding:22px 23px;color:var(--paper)}.monogram{width:43px;height:43px}.monogram>span{font-size:22px}.header-link{display:none}.header-actions{gap:0}.music-toggle{gap:7px}.record{width:29px;height:29px}.record:after{height:31px}.music-caption{font-size:9px}.hero{height:100svh;min-height:780px;max-height:1100px}.hero-photo{inset:0}.hero-photo img{object-position:center 75%}.hero-photo:after{background:linear-gradient(180deg,#1c351e55,transparent 18%,transparent 55%,#1a351d08 66%,#162f1ca8 100%)}.photo-whisper,.photo-index{display:none}.hero-paper{width:100%;padding:0;background:transparent;display:block}.hero-paper:before{display:none}.hero-heading{position:absolute;top:26%;width:100%;text-align:center}.hero-eyebrow{justify-content:center;font-size:7px;letter-spacing:.17em;gap:11px;color:#2d453c}.tiny-star{font-size:13px}.hero h1{font-size:60px;line-height:1.22;letter-spacing:.025em;margin-top:18px;text-shadow:0 2px 18px #ffffff20}.hero h1>span{padding-left:.45em}.title-dot{color:#758b69;margin-left:-.2em}.hero-english{font-size:16px;margin-top:14px;color:#3f594c;text-shadow:0 1px 8px #ffffff60}.hero-details{position:absolute;bottom:89px;left:0;right:0;margin:0;color:white;text-align:center;text-shadow:0 1px 12px #18312060}.couple-names{justify-content:center;gap:18px;font-size:21px;letter-spacing:.16em}.couple-names em{color:#ebe8c8}.hero-date{justify-content:center;margin-top:16px;gap:14px;font-size:10px;letter-spacing:.15em}.hero-date i{background:#e0e6c770}.hero-place{font-size:9px;color:#f0f3e9;margin-top:10px}.scroll-invitation{bottom:21px;left:0;right:0;justify-content:center;color:#ecf0df;font-size:8px;gap:10px}.scroll-circle{width:25px;height:25px;border-color:#ecf0df60;font-size:12px}.section-label{font-size:8px;gap:11px;letter-spacing:.14em}.section-label>span{font-size:13px}.section-label>i{width:25px}.invitation{width:calc(100% - 64px);display:block;text-align:center;padding-top:62px;padding-bottom:80px}.invitation>.section-label{position:static;justify-content:center}.invitation-copy{padding-top:42px}.dear{font-size:11px;margin-bottom:22px}.invitation h2{font-size:31px;line-height:1.7;letter-spacing:.025em;margin-bottom:23px}.invitation-copy>p:not(.dear){font-size:11px;line-height:2.65;letter-spacing:.025em;margin-top:15px}.botanical{width:108px;height:60px;margin-top:17px}.portrait-frame{max-width:370px;width:90%;padding-top:0;margin:30px auto 0}.portrait-image{border-radius:190px 190px 0 0;aspect-ratio:2/2.8}.portrait-image img{object-position:50% 39%}.portrait-caption{font-size:7px;margin-top:12px}.portrait-script{left:-25px;bottom:34px;font-size:44px}.story{padding-block:66px 60px}.story-top{display:block}.story h2{font-size:33px;margin-top:24px;line-height:1.6;letter-spacing:.015em}.story h2 em{margin-left:43px}.story-top>p{font-size:10px;line-height:2.4;letter-spacing:.08em;margin-top:20px;padding-left:43px;padding-bottom:0}.story-pictures{gap:18px;grid-template-columns:1.12fr .88fr;margin-top:32px;align-items:start}.story-photo-small{width:100%;margin-top:76px}.handwritten{font-size:25px;left:-15px;top:-34px}.story-photo-main .photo-open img{aspect-ratio:2/3.35}.story-photo-small .photo-open img{aspect-ratio:2/3.2}.story-photo figcaption{display:block;margin-top:12px}.story-photo figcaption>span:first-child{font-size:10px;letter-spacing:.2em}.story-photo figcaption>span:last-child{display:block;font-size:9px;line-height:1.5;letter-spacing:0;margin-top:5px}.photo-expand{width:24px;height:24px;right:8px;bottom:8px;font-size:13px}.story-bottom{font-size:13px;letter-spacing:.11em;margin-top:42px}.story-bottom>span{font-size:10px;margin-top:5px}.sea-interlude{height:570px}.sea-interlude>img{object-position:59% center}.sea-interlude:after{background:linear-gradient(180deg,#233d4c12,transparent 45%,#233d4c70 100%)}.sea-copy{top:auto;bottom:45px;left:30px;transform:none!important}.sea-copy>p:first-child{font-size:8px;letter-spacing:.25em}.sea-copy>span{font-size:49px;margin:19px 0;line-height:1.05}.sea-copy>p:last-child{font-size:10px;letter-spacing:.1em}.celebration{padding-inline:24px}.celebration-heading{margin-top:31px}.script-label{font-size:44px}.celebration h2{font-size:27px;letter-spacing:.035em;margin-top:13px}.celebration-heading>p{font-size:10px;letter-spacing:.025em;line-height:2;margin-top:18px}.date-card{display:block;margin-top:35px}.date-card-main{padding:35px 30px 31px}.date-card-main>.eyebrow{font-size:8px}.date-display{font-size:91px;margin:22px 0 18px;gap:25px}.date-display i{height:57px}.date-lunar{font-size:9px;gap:10px}.calendar{margin-top:26px;max-width:300px;padding:15px 0}.calendar-week{font-size:9px;margin-bottom:9px}.calendar-days{font-size:14px;gap:4px 3px}.calendar-days>span{height:30px}.calendar-note{font-size:9px;letter-spacing:0;margin-top:18px}.venue-card{padding:35px 31px 23px}.venue-card>.eyebrow{font-size:8px}.venue-time{margin-top:23px;gap:15px}.venue-time>span{font-size:62px}.venue-time>small{font-size:11px}.venue-divider{margin:24px 0}.venue-card h3{font-size:24px}.venue-city{font-size:9px;margin-top:10px}.venue-note{font-size:10px;margin-top:20px;line-height:2.3}.venue-actions{margin-top:24px}.button{font-size:10px}.calendar-save{font-size:9px;padding:12px}.countdown{margin-top:33px}.countdown>p{font-size:9px;letter-spacing:.035em}.countdown-values{gap:18px;margin-top:17px}.countdown-values b{font-size:30px}.countdown-values small{font-size:8px}.countdown-values>span{gap:5px}.memories{padding-block:64px 55px}.memories-header{align-items:flex-end;gap:10px;margin-bottom:30px}.memories h2{font-size:29px;margin-top:19px}.memories-header .section-label{font-size:6px;letter-spacing:.09em;gap:8px}.memories-header .section-label>i{width:18px}.gallery-controls{gap:12px;flex-shrink:0;margin-bottom:1px}.gallery-controls>span{display:none}.gallery-controls button{height:30px;width:30px;font-size:14px}.gallery-track{gap:17px;padding:0 24px 12px;scroll-padding:24px}.gallery-item{flex-basis:77vw;max-width:350px;scroll-snap-align:start}.gallery-item .photo-open>img{height:auto;aspect-ratio:2/2.9}.gallery-item figcaption{font-size:8px;margin-top:14px}.gallery-item figcaption>span:last-child{font-size:6px;letter-spacing:.07em}.gallery-hint{font-size:8px;letter-spacing:.05em;margin-top:22px}.closing{padding:65px 26px 22px}.closing-flower{font-size:46px;margin-bottom:24px}.closing>.eyebrow{font-size:8px}.closing h2{font-size:31px;line-height:1.8;letter-spacing:.035em;margin-top:25px}.closing-copy{font-size:10px;letter-spacing:.065em;margin-top:22px;line-height:2.6}.closing-script{font-size:30px;margin-top:28px;white-space:nowrap}.closing-signature{font-size:14px;gap:12px;margin-top:33px;letter-spacing:.12em}.closing-signature em{font-size:19px}.closing-signature small{font-size:8px;margin-left:4px}.closing-date{font-size:9px;gap:25px;margin:21px auto 48px}.closing-date>span:last-child{font-size:8px}.closing-footnote{font-size:5px;letter-spacing:.08em;padding-top:17px;gap:9px}.closing-footnote>a{width:26px;height:26px;font-size:12px;flex-shrink:0}.lightbox{padding:60px 12px 25px}.lightbox-stage{position:relative;gap:0}.lightbox-stage figure{height:calc(100% - 36px)}.lightbox-arrow{position:absolute;bottom:-8px;width:36px;height:36px;font-size:17px}.lightbox-arrow:first-child{left:calc(50% - 90px)}.lightbox-arrow:last-child{right:calc(50% - 90px)}.lightbox-count{margin-top:17px;font-size:9px}.lightbox-stage figcaption{font-size:10px}.map-dialog{padding:40px 25px 22px}.map-dialog h2{font-size:23px}.toast{font-size:10px;padding:12px 20px}
}
@media(max-width:360px){.hero h1{font-size:53px}.hero-english{font-size:14px}.hero-details .couple-names{font-size:19px}.invitation{width:calc(100% - 48px)}.invitation h2{font-size:28px}.story h2{font-size:30px}.celebration{padding-inline:19px}.celebration h2{font-size:24px}.celebration-heading>p{font-size:9px}.date-card-main{padding-inline:22px}.venue-card{padding-inline:26px}.calendar-note{font-size:8px}.closing-script{font-size:27px}.closing-signature{font-size:13px;gap:9px}.closing-footnote{font-size:4px}.handwritten{font-size:22px}.gallery-controls{gap:7px}.memories-header .section-label{font-size:5px}}
.header-actions{padding-right:105px}.music-toggle{position:fixed;z-index:20;top:31px;right:4.5%;padding:8px 12px;border:1px solid #f5f3eb80;border-radius:40px;background:#f5f3ebed;color:var(--ink);box-shadow:0 3px 18px #20382e08;backdrop-filter:blur(12px)}.music-toggle .record{background:repeating-radial-gradient(circle,transparent 0 2px,#30483e12 2px 3px)}
@media(max-width:760px){.header-actions{padding-right:0}.music-toggle{top:23px;right:21px;padding:7px 10px;border-color:#f5f3eb70;background:#f5f3ebdb}.music-caption{font-size:8px}.music-toggle .record{width:26px;height:26px}.music-toggle .record:after{height:29px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.js .reveal{opacity:1;transform:none}.js .sea-copy.reveal{transform:translateY(-50%)} }
