@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+KR:wght@300;400;500;600&display=swap');
:root{color-scheme:light;--paper:#fafaf7;--ink:#41473e;--muted:#777c72;--line:#c4c8be;--accent:#5e6b52}*{box-sizing:border-box}body{margin:0;background:#e7e9e3;color:var(--ink);font-family:'Noto Serif KR',Batang,serif;font-size:16px;font-weight:400;line-height:2}main{max-width:480px;margin:auto;background:var(--paper);overflow:hidden;box-shadow:0 0 60px #3843310b}h1,h2,h3,p,figure{margin:0}h2{font-size:18px;font-weight:500;letter-spacing:.22em}h3{font-size:16px;font-weight:500;margin-bottom:8px}img{display:block;width:100%;height:auto}button,a,summary{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.hero{position:relative}.hero img{aspect-ratio:4/5;object-fit:cover;object-position:50% 45%}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(#0005,transparent 50%);pointer-events:none}.hero-title{position:absolute;z-index:1;top:38px;left:32px;color:white}.hero-title h1{font-size:24px;line-height:1.65;letter-spacing:.2em;font-weight:400}.hero-title p{margin-top:18px;font-size:13px;letter-spacing:.16em}.date-strip{display:flex;justify-content:space-between;gap:18px;padding:24px 30px;border-bottom:1px solid #e8eae3;font-size:13px;line-height:1.9}.date-strip .date-label{letter-spacing:.18em}.date-strip .details{text-align:right}.poem{padding:80px 32px 86px;text-align:center;white-space:pre-line;line-height:2.5;letter-spacing:.05em}.wide-photo img{aspect-ratio:3/2;object-fit:cover}.section{padding:58px 34px}.section-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:30px}.eyebrow{font-size:12px;letter-spacing:.12em;color:var(--muted)}.letter{white-space:pre-line;line-height:2.35;margin-bottom:44px}.family{border-top:1px solid var(--line);padding-top:28px;text-align:center;line-height:2.6;font-size:15px}.family strong{font-size:19px;font-weight:500;margin-left:12px}.family small{font-size:13px;color:var(--muted);margin-left:9px}.signature{text-align:right;font-size:14px;margin-top:27px;letter-spacing:.1em}.story-pair{display:grid;gap:8px;margin-top:38px}.story-pair img{aspect-ratio:3/2;object-fit:cover}.caption{font-size:12px;text-align:right;margin-top:12px;color:var(--muted);letter-spacing:.06em}.calendar-section{background:#eef0e9;padding-top:50px;padding-bottom:52px}.month{text-align:center;font-size:17px;letter-spacing:.18em;margin-bottom:25px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:10px 0;text-align:center;font-size:14px;line-height:34px}.calendar span{min-height:34px}.calendar .weekday{color:var(--muted);font-size:12px}.calendar .sun{color:#a0786b}.calendar .selected{background:var(--accent);color:white;border-radius:50%;width:34px;justify-self:center}.calendar-note{text-align:center;margin-top:30px;font-size:14px}.gallery-section{padding-left:18px;padding-right:18px}.gallery-section .section-head{margin-left:16px;margin-right:16px}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:start}.gallery img{aspect-ratio:3/4;object-fit:cover;pointer-events:none;user-select:none}.gallery figure:nth-child(5n+1){grid-column:1/-1}.gallery figure:nth-child(5n+1) img{aspect-ratio:3/2}.venue-name{font-size:19px;margin-bottom:8px;font-weight:500}.address{font-size:14px;color:var(--muted);line-height:1.9}.map{border:0;width:100%;height:275px;display:block;margin:26px 0 0;background:#ecefe7}.map-links{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);margin-bottom:32px}.map-links a{text-align:center;padding:13px 4px;font-size:14px}.map-links a+a{border-left:1px solid var(--line)}.directions{margin:28px 0}.directions p{font-size:14px;white-space:pre-line;line-height:2}.venue-link{font-size:13px;border-bottom:1px solid var(--line)}.accounts{background:#f0f1eb}.accounts-intro{font-size:14px;line-height:2;margin-bottom:24px;white-space:pre-line}details{border-top:1px solid var(--line)}details:last-of-type{border-bottom:1px solid var(--line)}summary{cursor:pointer;padding:17px 2px;list-style:none;font-size:15px;display:flex;justify-content:space-between}summary::-webkit-details-marker{display:none}summary:after{content:'+'}details[open] summary:after{content:'−'}.account{padding:4px 0 23px;display:flex;align-items:center;justify-content:space-between;gap:10px}.account p{font-size:14px;line-height:1.9;overflow-wrap:anywhere}.account button{border:1px solid var(--line);background:transparent;padding:7px 12px;font-size:12px;min-height:44px;flex-shrink:0}.closing{position:relative}.closing img{aspect-ratio:4/5;object-fit:cover}.closing:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 45%,#0008)}.closing p{position:absolute;bottom:42px;left:24px;right:24px;text-align:center;color:white;z-index:1;white-space:pre-line;font-size:15px;line-height:2.2}footer{text-align:center;padding:36px 16px;color:var(--muted);font-size:12px;letter-spacing:.16em}#notice{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#41473e;color:white;padding:10px 20px;font-size:14px;border-radius:3px;opacity:0;pointer-events:none;max-width:90vw;transition:opacity .2s}#notice.visible{opacity:1}.loading{padding:80px 20px;text-align:center}@media(max-width:360px){.section{padding-left:24px;padding-right:24px}.date-strip{padding:20px;font-size:12px}.hero-title{left:25px}.gallery-section{padding-left:12px;padding-right:12px}.family{font-size:14px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.gallery-stage{height:340px;display:flex;align-items:center;justify-content:center;background:#f1f3ef}.gallery-stage img{width:100%;height:100%;object-fit:contain;pointer-events:none}.gallery-thumbnails{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:52px}.gallery-thumbnails button{padding:0;border:2px solid transparent;background:transparent;opacity:.6;min-width:0;min-height:44px}.gallery-thumbnails button[aria-pressed="true"]{opacity:1;border-color:var(--accent)}.gallery-thumbnails img{width:100%;aspect-ratio:1;object-fit:cover}.gallery-section{background:#f1f3ef}.account+.account{border-top:1px solid #dde0d6;padding-top:18px}.family p{display:flex;justify-content:center;align-items:baseline;gap:18px;flex-wrap:wrap}.family strong{margin-left:0}@media(max-width:360px){.gallery-stage{height:280px}.gallery-thumbnails{gap:5px}}

.kakao-map{display:block;margin-top:26px;background:#ecefe7;border:1px solid #dce0d6}.kakao-map img{width:100%;height:auto;aspect-ratio:504/310;object-fit:contain}.map-caption{display:block;padding:9px 12px;font-size:13px;text-align:center;background:#f9faf6}

/* Two-photo greeting: stand, bow, then continue into the invitation. */
main{overflow:visible}
.hero-scroll{--stage-height:100vh;position:relative;background:#31462e}
@supports(height:100svh){.hero-scroll{--stage-height:100svh}}
.hero-stage{position:relative;height:var(--stage-height);overflow:hidden;isolation:isolate}
.hero-scroll.is-ready{height:calc(var(--stage-height) * 2.15)}
.hero-scroll.is-ready .hero-stage{position:sticky;top:0}
.hero-stage>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 85%;pointer-events:none}
.hero-standing{z-index:0}
.hero-bow{z-index:1;opacity:0;will-change:opacity}
.hero-stage:after{content:'';position:absolute;inset:0;z-index:2;background:linear-gradient(#0003,transparent 35%);pointer-events:none}
.hero-stage .hero-title{z-index:3;top:max(38px,env(safe-area-inset-top));text-shadow:0 1px 12px #0003}
@media(prefers-reduced-motion:reduce){
 .hero-scroll.is-ready{height:auto}
 .hero-scroll.is-ready .hero-stage{position:relative;height:auto}
 .hero-scroll.is-ready .hero-stage>img{position:relative;height:auto;object-fit:contain}
 .hero-scroll.is-ready .hero-bow{opacity:1;will-change:auto}
 .hero-stage:after{bottom:auto;height:40vh}
}
.hero-stage>img{transform-origin:0 0;max-width:none}
