@font-face{font-family:Pretendard;src:url('assets/pretendard-semibold.woff2') format('woff2');font-display:swap;font-weight:600}@font-face{font-family:RomanticLovely;src:url('assets/romantic-lovely.ttf') format('truetype');font-display:swap;font-weight:400}
:root{--ink:#333333;--muted:#777c70;--line:#e4e7dd;--green:#64734e;--paper:#faf6ee;font-family:'Pretendard',sans-serif;color:var(--ink);background:#fff;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;font-size:20.4px}main{max-width:480px;margin:0 auto;overflow:hidden;background:var(--paper)}h1,h2,h3,p,figure{margin:0}a{color:inherit}button{font:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--green);outline-offset:6px}.skip{position:fixed;top:-80px;left:16px;background:white;padding:15px;z-index:20}.skip:focus{top:10px}.flowers{display:block;width:100%;height:auto;pointer-events:none}.cover{text-align:center}.cover-copy{padding:42px 24px 12px}.eyebrow,.section-number{font-family:Georgia,serif;font-size:14.4px;letter-spacing:.18em;color:var(--green);line-height:1.8}.eyebrow{margin-bottom:27px}h1{font-family:RomanticLovely,'Times New Roman',serif;font-weight:400;line-height:1.08;font-size:clamp(75.072px,20.976vw,100.464px);display:flex;flex-direction:column;align-items:center}h1 .amp{font-size:47.472px;line-height:1.1;margin:2px 0 5px}.names{margin-top:27px;font-size:22.8px;line-height:1.7}.names span{font-size:16.8px;color:var(--muted);margin:0 10px}.date-block{margin-top:30px;line-height:1.95;font-size:19.2px}.date-block p+ p{color:var(--muted)}.scroll-link{display:flex;align-items:center;flex-direction:column;gap:12px;margin:34px auto 6px;text-decoration:none;font-size:14.4px;color:var(--muted);width:max-content;min-height:44px}.scroll-line{height:27px;width:1px;background:#9fa58f}.cover .bottom{margin-top:0}.text-section,.story-section,.gallery-section{text-align:center;padding:80px 28px 40px}header h2{font-family:RomanticLovely,Georgia,serif;font-weight:400;font-size:66px;line-height:1.35;margin:18px 0 6px}.korean-title{font-size:21.6px;line-height:1.8}.prose{margin-top:42px;font-size:20.4px;line-height:2.05;word-break:keep-all}.prose p+p{margin-top:24px}.signature{margin:36px 0 16px;font-size:21.6px}.signature span,.footer-names span{font-family:RomanticLovely,serif;font-size:29.808px;vertical-align:middle;margin:0 12px;color:var(--green)}.divider{display:flex;align-items:center;gap:19px;justify-content:center;margin:32px 82px 0;color:#98a47e;font-size:24px}.divider:before,.divider:after{content:'';height:1px;width:67px;background:var(--line)}.story-section{padding-top:70px}.photo-slot{background:#f5f6f1;position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;border:1px solid #e7e9df;min-width:0;overflow:hidden}.photo-slot:after{content:'';position:absolute;inset:12px;border:1px solid #dfe3d4;pointer-events:none}.photo-script{font:48.576px/1.3 RomanticLovely,Georgia,serif;color:#879176}.photo-label{font-size:15.6px;line-height:1.5;letter-spacing:.03em;color:#737c65}.story-photo{aspect-ratio:4/5;margin:36px 0 42px}.story-copy{margin-top:35px}.small-english{font-family:Georgia,serif;font-size:14.4px;letter-spacing:.12em;color:var(--muted);font-style:italic}.story-copy h3{font-size:25.2px;font-weight:600;margin:12px 0 15px}.story-copy>p:last-child{font-size:20.4px;line-height:2;word-break:keep-all}.gallery-section{padding-top:74px}.section-intro{margin:27px 0 32px;font-size:19.2px;line-height:1.9}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gallery>.photo-slot{aspect-ratio:3/4}.gallery>.photo-slot:first-child{grid-column:1/-1;aspect-ratio:4/5}.gallery>.photo-slot:not(:first-child) .photo-script{font-size:32.016px}.gallery>.photo-slot:not(:first-child) .photo-label{font-size:14.4px}.gallery-button{background:none;padding:0;border:0;cursor:zoom-in;display:block;overflow:hidden;width:100%;aspect-ratio:3/4}.gallery-button:first-child{grid-column:1/-1;aspect-ratio:4/5}.gallery-button img{height:100%;width:100%;object-fit:cover;display:block}.moments{padding-top:75px}.moments .gallery>.photo-slot:first-child,.moments .gallery-button:first-child{aspect-ratio:1/1}.closing-line{font-size:19.2px;margin:32px 0 5px;line-height:1.9;color:var(--muted)}.details{padding-top:70px;padding-bottom:64px}dl{margin:37px 0 27px}dl>div{padding:22px 0;border-bottom:1px solid var(--line)}dt{font-family:Georgia,serif;color:var(--green);font-style:italic;font-size:19.2px;margin-bottom:12px}dt span{font-family:'Pretendard',sans-serif;font-size:16.8px;font-style:normal;margin-left:6px}dd{margin:0;font-size:21.6px;line-height:1.8}.details-note{font-size:18px;line-height:1.9;color:var(--muted)}footer{text-align:center;padding-top:34px}.thank-you{font:70.656px/1.4 RomanticLovely,Georgia,serif;margin:0 20px 23px}footer>p:not(.thank-you){font-size:19.2px;line-height:2;padding:0 24px}.footer-names{margin-top:23px}.back-top{display:inline-block;font-size:15.6px;color:var(--muted);margin:27px 0 30px;padding:12px;text-decoration:none}footer .flowers{margin-top:20px}dialog{border:0;padding:0;background:transparent;color:#fff;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh}dialog::backdrop{background:rgba(14,18,14,.96)}dialog[open]{display:flex;align-items:center;justify-content:center}dialog figure{max-width:min(88vw,900px);text-align:center}dialog img{max-width:100%;max-height:82dvh;object-fit:contain}dialog figcaption{padding:15px;font-size:16.8px}dialog button{border:0;background:transparent;color:white;width:48px;height:48px;cursor:pointer;font-family:Arial,sans-serif;font-size:43.2px;position:absolute}.close-photo{right:15px;top:15px}.prev-photo{left:0;top:48%}.next-photo{right:0;top:48%}body.modal-open{overflow:hidden}@media(min-width:700px){body{background:#faf6ee}main{box-shadow:0 0 50px #343e2810}}@media(max-width:359px){.text-section,.story-section,.gallery-section{padding-left:21px;padding-right:21px}header h2{font-size:56.4px}.names{font-size:20.4px}.names span{margin:0 6px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Korean typography: Pretendard SemiBold. */
body{font-weight:600;letter-spacing:-.015em}.names,.signature,.footer-names{font-weight:600}.korean-title,.story-copy h3{font-weight:600;letter-spacing:-.025em}.prose{line-height:2}.story-copy>p:last-child{line-height:1.95}.section-intro{line-height:1.95}

.eyebrow,.section-number,.small-english,dt{font-weight:400}dt span{font-weight:600}.signature span,.footer-names span{font-weight:400}h1,header h2,.photo-script,.thank-you{letter-spacing:0}
/* Leave room for Romantic Lovely's long calligraphic strokes on small screens. */
header h2{font-size:clamp(39.744px,12.144vw,60.72px);line-height:1.8;margin-top:12px}h1{line-height:1.35}h1 .amp{line-height:1.4}.thank-you{line-height:1.8}.photo-script{line-height:1.8}

.announcement-title{font-size:27.6px}.story-copy>p:not(.small-english){font-size:20.4px;line-height:2;word-break:keep-all;overflow-wrap:break-word}.story-copy>p+p{margin-top:18px}.wedding-prose{margin:30px 0 36px}.gratitude .prose,.wedding-prose,.story-copy{max-width:370px;margin-left:auto;margin-right:auto}.blessings{padding-top:112px;padding-bottom:38px}.blessings header h2{font-size:clamp(33.12px,9.936vw,48.576px)}.blessings .korean-title{font-size:20.4px}.blessings .prose{font-size:18px;margin-top:26px}.blessings .prose p+p{margin-top:14px}.account-toggle{border:1px solid #c9c9bb;background:transparent;color:var(--ink);padding:15px 20px;min-height:48px;margin:26px auto 0;display:flex;gap:30px;align-items:center;justify-content:center;font-size:18px;cursor:pointer}.account-toggle span{font-size:21.6px}#accounts-panel{margin-top:20px}.account-card{text-align:left;border-top:1px solid var(--line);padding:23px 5px}.account-card h3{font-size:19.2px;font-weight:600;margin-bottom:10px}.account-card p{font-size:16.8px;line-height:1.9;overflow-wrap:anywhere;color:var(--muted);user-select:text}.copy-account{margin-top:13px;padding:11px 15px;min-height:44px;border:1px solid #c9c9bb;background:transparent;color:var(--ink);cursor:pointer;font-size:16.8px}#copy-status{font-size:16.8px;line-height:1.7;margin-top:12px}.date-block{word-break:keep-all}

/* Dissolve the painted paper edges into the invitation's cream background. */
.flowers{-webkit-mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent),linear-gradient(to bottom,transparent,#000 5%,#000 89%,transparent);mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent),linear-gradient(to bottom,transparent,#000 5%,#000 89%,transparent);-webkit-mask-composite:source-in;mask-composite:intersect}.flowers.top{-webkit-mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent),linear-gradient(to bottom,#000 80%,transparent);mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent),linear-gradient(to bottom,#000 80%,transparent)}
/* Requested compact typography: Korean at half size, text in a half-screen column. */
body{font-size:14.28px}.names{font-size:15.96px}.names span{font-size:11.76px;margin:0 5px}.date-block{font-size:13.44px}.scroll-link{font-size:10.08px}.korean-title{font-size:15.12px}.announcement-title{font-size:19.32px}.prose,.story-copy>p:not(.small-english){font-size:14.28px}.signature{font-size:15.12px}.photo-label{font-size:10.92px}.gallery>.photo-slot:not(:first-child) .photo-label{font-size:10.08px}.story-copy h3{font-size:17.64px}.section-intro,.closing-line,footer>p:not(.thank-you){font-size:13.44px}.details-note{font-size:12.6px}.back-top{font-size:10.92px}dt span{font-size:11.76px}dd{font-size:15.12px}.blessings .korean-title{font-size:14.28px}.blessings .prose,.account-toggle{font-size:12.6px}.account-card h3{font-size:13.44px}.account-card p,.copy-account,#copy-status,dialog figcaption{font-size:11.76px}
h1{font-size:clamp(52.5504px,14.6832vw,70.3248px)}h1 .amp{font-size:33.2304px}header h2{font-size:clamp(27.8208px,8.5008vw,42.504px)}.blessings header h2{font-size:clamp(23.184px,6.9552vw,34.0032px)}.photo-script{font-size:34.0032px}.gallery>.photo-slot:not(:first-child) .photo-script{font-size:22.4112px}.signature span,.footer-names span{font-size:20.8656px}.thank-you{font-size:49.4592px}
.cover h1,.cover .names,.date-block,section>header,.prose,.story-copy,.gratitude .prose,.wedding-prose,.signature,.section-intro,.closing-line{width:min(60vw,288px);max-width:100%;margin-left:auto;margin-right:auto}.prose,.date-block,.story-copy>p,.section-intro{overflow-wrap:break-word;word-break:keep-all}.eyebrow,.section-number,.small-english{font-size:13.44px}
@media(max-width:359px){.names{font-size:14.28px}.names span{margin:0 3px}}

/* A tactile opening, followed by a quiet botanical reading experience. */
.invitation-opening[hidden],.motion-toggle[hidden],.replay-opening[hidden]{display:none}
.invitation-opening{position:fixed;inset:0;z-index:50;background:var(--paper);display:flex;align-items:center;justify-content:center;perspective:1400px;transition:opacity .9s ease,visibility .9s;overflow:hidden}
body.opening-active{overflow:hidden}
.envelope-button{position:relative;display:block;padding:0;border:0;background:none;color:var(--ink);width:min(88vw,420px,calc(84svh * .66667));cursor:pointer;perspective:1400px;-webkit-tap-highlight-color:transparent}
.envelope-art{display:block;position:relative;aspect-ratio:2/3;filter:drop-shadow(0 16px 22px #584a331a);transition:transform 1.6s cubic-bezier(.22,.61,.36,1),opacity 1.1s ease}
.envelope-art img{display:block;width:100%;height:100%;object-fit:cover}
.envelope-flap{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 47%);transform-origin:top;backface-visibility:hidden;transition:transform 1.5s cubic-bezier(.4,0,.2,1),filter 1s}
.seal-initials{position:absolute;left:49.5%;top:46%;transform:translate(-50%,-50%);font:30px RomanticLovely,serif;color:#eee0be;white-space:nowrap;transition:opacity .35s,transform .7s}
.opening-caption{position:absolute;left:0;right:0;bottom:12%;display:flex;flex-direction:column;gap:12px;transition:opacity .4s;color:#645d50}
.opening-caption>span:first-child{font:28.8px/1.5 RomanticLovely,serif}.opening-caption>span:last-child{font-size:12px;letter-spacing:.035em}
.skip-opening{position:absolute;bottom:14px;border:0;background:none;color:var(--muted);font-size:12px;padding:16px;cursor:pointer}
.invitation-opening.is-opening .envelope-flap{transform:rotateX(165deg);filter:brightness(1.08)}
.invitation-opening.is-opening .seal-initials{opacity:0;transform:translate(-50%,-50%) scale(1.2)}
.invitation-opening.is-opening .opening-caption,.invitation-opening.is-opening .skip-opening{opacity:0}
.invitation-opening.is-opening .envelope-art{transform:translateY(18%) scale(1.12);opacity:0;transition-delay:.65s}
.invitation-opening.is-dismissed{opacity:0;visibility:hidden;pointer-events:none}
.motion-toggle{position:fixed;right:max(14px,calc((100vw - 480px)/2 + 14px));bottom:18px;z-index:15;border:1px solid #d8d2c4;background:#faf6eeee;border-radius:50%;width:42px;height:42px;color:var(--ink);font-size:16.8px;cursor:pointer;box-shadow:0 3px 12px #19191909}
.replay-opening{display:block;margin:0 auto 24px;border:0;background:none;text-decoration:underline;text-underline-offset:5px;color:var(--muted);font-size:12px;padding:12px;cursor:pointer}
.motion-ready .reveal{opacity:0;transform:translateY(28px);transition:opacity 1.15s ease,transform 1.35s cubic-bezier(.2,.65,.3,1);transition-delay:var(--reveal-delay,0s)}
.motion-ready .reveal.is-visible{opacity:1;transform:none}
.cover{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:space-between}.cover-copy{position:relative;z-index:1;padding-top:20px;padding-bottom:20px}.cover .top{width:110%;margin-left:-5%}.cover .bottom{width:108%;margin-left:-4%;max-height:290px;object-fit:cover;object-position:top}
body.invitation-open .cover-copy{animation:welcome-copy 1.7s ease both}
body.invitation-open .cover .flowers{animation:botanical-drift 10s ease-in-out infinite alternate}.cover .bottom{animation-delay:-4s!important}
.scroll-line{transform-origin:top;animation:scroll-hint 2.4s ease-in-out infinite}
.story-photo{border-radius:50% 50% 0 0}.gallery{gap:14px}.gallery>.photo-slot:first-child,.gallery-button:first-child{border-radius:46% 46% 0 0}.photo-slot{background:#f1eee5}.photo-slot:after{border-color:#ddd8cb}
.story-copy{margin-top:58px}.gratitude{padding-top:110px}.blessings{padding-top:120px}
@keyframes botanical-drift{from{transform:translate3d(0,0,0) rotate(-.5deg)}to{transform:translate3d(0,-8px,0) rotate(.5deg)}}
@keyframes welcome-copy{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes scroll-hint{0%,100%{transform:scaleY(.65);opacity:.5}50%{transform:scaleY(1);opacity:1}}
body.motion-paused *,body.motion-paused *:before,body.motion-paused *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}body.motion-paused .reveal{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal{opacity:1;transform:none}.invitation-opening.is-opening .envelope-art{transform:none}}

/* Continuous handmade stock and soft, unoutlined embossing. */
:root,html,body{background-color:var(--paper)}
body,main,.invitation-opening{background-image:url('assets/cream-paper-texture.png');background-size:480px 480px;background-repeat:repeat}
main,.envelope-art,.envelope-button{box-shadow:none;filter:none;border:0}
.invitation-opening{outline:none;transition:opacity 1.6s cubic-bezier(.33,0,.2,1),visibility 1.6s}
.envelope-button{border-radius:2px;background:var(--paper);isolation:isolate}
.envelope-art{transition:transform 3.2s cubic-bezier(.25,.1,.25,1),opacity 2.7s cubic-bezier(.25,.1,.25,1);transform:translateZ(0)}
.envelope-art img{border:0;outline:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.envelope-flap{transition:transform 2.8s cubic-bezier(.33,0,.2,1),opacity 2.2s ease;transform-origin:50% 0;will-change:transform;filter:none}
.invitation-opening.is-opening .envelope-flap{transform:rotateX(150deg);filter:none;opacity:0}
.invitation-opening.is-opening .envelope-art{transform:translateY(6%) scale(1.035);opacity:0;transition-delay:1.05s}
.seal-initials{transition:opacity .85s ease,transform 1.3s ease}
.opening-caption{transition:opacity .9s ease}
.cover .flowers,footer .flowers{width:100%;margin:0;height:180px;object-fit:cover;object-position:center top;animation:none!important;mix-blend-mode:multiply;-webkit-mask-image:linear-gradient(to bottom,#000 65%,transparent);mask-image:linear-gradient(to bottom,#000 65%,transparent);-webkit-mask-composite:source-over;mask-composite:add}
.cover .bottom,footer .flowers{height:210px;max-height:none;object-position:center bottom;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 35%);mask-image:linear-gradient(to bottom,transparent,#000 35%)}
.photo-slot{background-color:transparent;background-image:url('assets/cream-paper-texture.png');background-size:480px;border-color:#dfd9cc}.photo-slot:after{border-color:#e1dbcf}
@media(max-width:359px){.cover .flowers{height:150px}.cover .bottom,footer .flowers{height:180px}}
@media(prefers-reduced-motion:reduce){.envelope-art,.envelope-flap,.invitation-opening{transition:none!important}}
.envelope-art{-webkit-mask-image:linear-gradient(to right,transparent,#000 .8%,#000 99.2%,transparent),linear-gradient(to bottom,transparent,#000 .5%,#000 99.5%,transparent);mask-image:linear-gradient(to right,transparent,#000 .8%,#000 99.2%,transparent),linear-gradient(to bottom,transparent,#000 .5%,#000 99.5%,transparent);-webkit-mask-composite:source-in;mask-composite:intersect}

/* Fade the entire invitation surface as one layer; no flap rotation. */
.invitation-opening{transition:opacity 3.2s cubic-bezier(.4,0,.2,1);will-change:opacity}
.invitation-opening.is-opening{opacity:0}
.envelope-flap{display:none}
.invitation-opening .envelope-art,.invitation-opening.is-opening .envelope-art{transform:none;opacity:1;transition:none;filter:none}
.invitation-opening.is-opening .seal-initials{opacity:1;transform:translate(-50%,-50%)}
.invitation-opening.is-opening .opening-caption,.invitation-opening.is-opening .skip-opening{opacity:1}
.seal-initials{color:#9b8058;text-shadow:0 1px 1px #fff9;font-size:26.4px}
body{background-size:cover;background-position:center;background-attachment:fixed;background-repeat:no-repeat}
main{background:transparent}
.invitation-opening{background-size:cover;background-position:center;background-repeat:no-repeat}
.photo-slot{background-image:none;background-color:#faf6ee50}
.cover .flowers,footer .flowers{mix-blend-mode:normal;opacity:.86;-webkit-mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.98) 12%,rgba(0,0,0,.85) 30%,rgba(0,0,0,.6) 48%,rgba(0,0,0,.32) 66%,rgba(0,0,0,.1) 84%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.98) 12%,rgba(0,0,0,.85) 30%,rgba(0,0,0,.6) 48%,rgba(0,0,0,.32) 66%,rgba(0,0,0,.1) 84%,transparent 100%)}
.cover .bottom,footer .flowers{-webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.1) 16%,rgba(0,0,0,.32) 34%,rgba(0,0,0,.6) 52%,rgba(0,0,0,.85) 70%,rgba(0,0,0,.98) 88%,#000 100%);mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.1) 16%,rgba(0,0,0,.32) 34%,rgba(0,0,0,.6) 52%,rgba(0,0,0,.85) 70%,rgba(0,0,0,.98) 88%,#000 100%)}
.cover .bottom,footer .flowers{-webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.12) 16%,rgba(0,0,0,.4) 34%,rgba(0,0,0,.8) 55%,rgba(0,0,0,.85) 66%,rgba(0,0,0,.5) 82%,rgba(0,0,0,.15) 93%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.12) 16%,rgba(0,0,0,.4) 34%,rgba(0,0,0,.8) 55%,rgba(0,0,0,.85) 66%,rgba(0,0,0,.5) 82%,rgba(0,0,0,.15) 93%,transparent 100%)}
/* Paper belongs to the document and moves with the invitation. */
body{background-attachment:scroll;background-size:100% auto;background-repeat:repeat-y}

/* Consistent chapter breaks using the selected embossed botanical paper. */
.chapter-flowers{position:relative;height:120px;margin:38px 0 0;overflow:hidden;pointer-events:none}
.chapter-flowers img{display:block;width:100%;height:100%;object-fit:cover;object-position:center bottom;opacity:.72;-webkit-mask-image:linear-gradient(to bottom,transparent,rgba(0,0,0,.65) 30%,#000 55%,rgba(0,0,0,.45) 80%,transparent);mask-image:linear-gradient(to bottom,transparent,rgba(0,0,0,.65) 30%,#000 55%,rgba(0,0,0,.45) 80%,transparent)}
.chapter-flowers+section{padding-top:38px}
.cover-copy{padding-left:20px;padding-right:20px}

/* Final announcement copy and two opening portraits. */
.surprise>header{width:min(80vw,380px)}
.surprise header h2{font-size:clamp(27.8208px,8.5008vw,42.504px);overflow-wrap:normal}
.surprise .photo-script{max-width:85%;text-align:center;font-size:28px}

/* Keep opaque ink underneath the clipped paper grain at all times. */
.ink-filter-defs{position:absolute;pointer-events:none;overflow:hidden}
:is(.cover h1,header h2,.korean-title,.story-copy h3,.photo-script,.names,.date-block p,.prose p,.story-copy>p,.signature,.eyebrow,.section-number){filter:url(#printed-ink);-webkit-text-fill-color:currentColor}
@media(forced-colors:active){main *{filter:none!important}}
@media print{main *{filter:none!important}}

/* Real portraits retain their original framing; photo 5 trims the upper empty space. */
.representative-photo{display:block;margin:36px 0 42px}
.representative-photo .gallery-button:first-child{aspect-ratio:auto;border-radius:0}
.representative-photo img{width:100%;height:auto;display:block;object-fit:contain}
.photo-1 .gallery-button:first-child,.photo-2 .gallery-button:first-child,.photo-6 .gallery-button:first-child{border-radius:46% 46% 0 0}
.photo-5 .gallery-button:first-child{aspect-ratio:1/1;overflow:hidden}
.photo-5 img{height:100%;object-fit:cover;object-position:center bottom}

/* Subtle 2mm rounding for rectangular photographs. */
.photo-3 .gallery-button:first-child,.photo-4 .gallery-button:first-child,.photo-5 .gallery-button:first-child{border-radius:2mm;overflow:hidden}

/* Editorial chapter headings and wider Korean reading measure. */
section>header{width:100%;max-width:100%}
.section-number{font-family:RomanticLovely,Georgia,serif;font-size:30px;font-weight:400;letter-spacing:0;line-height:1.5;color:var(--ink);margin:0 auto 4px}
header h2{margin-top:0}
.prose,.date-block,.story-copy,.gratitude .prose,.wedding-prose{width:100%;max-width:390px;margin-left:auto;margin-right:auto}
.prose,.date-block,.story-copy>p:not(.small-english){word-break:keep-all;overflow-wrap:break-word;text-wrap:pretty;line-height:2.05}

/* Respect the approved sentence breaks; use ordinary wrapping only on narrow screens. */
.prose,.date-block,.story-copy>p:not(.small-english){text-wrap:wrap}
