@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Noto+Serif+KR:wght@300;400;500;600&display=swap');

:root{--paper:#f4f0e7;--paper-2:#ebe3d5;--ink:#282722;--muted:#7d776c;--line:#cfc5b5;--accent:#866b5b;--dark:#23231f;--serif:'Noto Serif KR','Batang',serif;--latin:'Cormorant Garamond',Georgia,serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:#ded9d0}
body{margin:0;color:var(--ink);background:#ded9d0;font-family:var(--serif);font-weight:300;word-break:keep-all}
img{display:block;width:100%}
.invitation{width:min(100%,520px);margin:0 auto;background:var(--paper);overflow:hidden;box-shadow:0 0 50px rgba(33,30,25,.10)}
.section{padding:100px 28px;text-align:center}
.eyebrow{margin:0 0 22px;color:var(--accent);font:500 13px/1.2 var(--latin);letter-spacing:.28em}
h1,h2,p{margin-top:0}
h2{margin-bottom:28px;font-size:clamp(27px,7.4vw,38px);line-height:1.55;font-weight:400;letter-spacing:-.04em}
.ornament{margin:24px 0;color:#a99682;font-size:11px}
.hero{position:relative;background:var(--dark)}
.hero-photo{position:relative;height:var(--hero-fixed-height,100svh);min-height:650px;max-height:900px;overflow:hidden}
.hero-photo>img{height:100%;object-fit:cover;object-position:center center;filter:contrast(.96)}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(20,20,18,.55) 0%,rgba(20,20,18,.08) 25%,rgba(20,20,18,.05) 58%,rgba(20,20,18,.74) 100%)}
.photo-word-cover{position:absolute;z-index:2;top:0;left:0;right:0;height:8.5%;background:linear-gradient(to bottom,rgba(56,56,54,.96),rgba(62,62,60,.86) 70%,rgba(62,62,60,0));pointer-events:none}
.top-message{position:absolute;z-index:3;top:33px;left:24px;right:24px;margin:0;color:#f4f1ea;text-align:center;font-size:22px;line-height:1.45;font-weight:400;letter-spacing:.2em;text-shadow:0 1px 5px rgba(0,0,0,.28)}
.hero-copy{position:absolute;z-index:3;left:22px;right:22px;bottom:62px;text-align:center;color:#fff}
.hero h1{margin:0 0 15px;font-size:clamp(31px,9vw,47px);font-weight:400;letter-spacing:.05em;text-shadow:0 2px 16px rgba(0,0,0,.28)}
.hero h1 span{font-size:.64em;color:#d7c8b8;margin:0 .15em}
.date-line{margin:0;font:500 13px/1 var(--latin);letter-spacing:.16em}.date-line i{font-style:normal;color:#cdb8a5;margin:0 .35em}
.scroll-cue{position:absolute;z-index:4;bottom:14px;left:50%;transform:translateX(-50%);margin:0;color:#eee;font:500 9px/1 var(--latin);letter-spacing:.25em}.scroll-cue span{display:block;width:1px;height:22px;margin:7px auto 0;background:rgba(255,255,255,.55)}
.intro{padding-top:112px}.invitation-copy{margin:0 auto;font-size:17px;line-height:2.12;color:#514d45}.parents{margin-top:55px;padding-top:30px;border-top:1px solid var(--line)}.parents p{margin:10px 0;font-size:14px}.parents span{color:#625c53}.parents strong{margin-left:8px;font-weight:600}
.story{background:#eee7dc}.wide-photo{margin:45px -28px 0;overflow:hidden}.wide-photo img{aspect-ratio:4/3;object-fit:cover;object-position:center center}.story-note{margin:32px 0 0;color:#6f685e;font-size:15px;line-height:1.9}
.scrapbook{position:relative;background:#f7f3eb}.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:46px -24px 80px;align-items:start}.snapshot{margin:0;padding:7px 7px 18px;background:#fff;box-shadow:0 10px 25px rgba(65,54,43,.12)}.tilt-left{transform:rotate(-2.1deg)}.tilt-right{transform:translateY(28px) rotate(2.2deg)}.portrait-frame{aspect-ratio:1/1;overflow:hidden;background:#ddd}.portrait-frame img{height:100%;object-fit:contain;object-position:center center}.snapshot figcaption{padding-top:10px;color:#7b7063;font-size:11px;letter-spacing:.08em}.film-main{margin:0 -28px;background:#ddd}.film-main img{aspect-ratio:16/9;object-fit:cover;object-position:center center}.mini-film{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:4px -28px 0}.mini-film img{aspect-ratio:1.35/1;object-fit:cover}.mini-film img:first-child{object-position:65% center}.mini-film img:last-child{object-position:center center}.emotional-line{margin:75px 0 0;font-size:20px;line-height:1.85;font-weight:400}.story-continuation{margin:34px 0 0;color:#5f5a52;font-size:16px;line-height:2;font-weight:300}.story-closing{margin:22px 0 0;color:#5f5a52;font-size:16px;line-height:2;font-weight:300}
.ceremony{padding-left:0;padding-right:0;background:var(--paper)}.ceremony>.eyebrow,.ceremony>h2,.ceremony-time{padding:0 28px}.ceremony h2{margin-bottom:5px;font:500 clamp(37px,11vw,55px)/1 var(--latin);letter-spacing:.04em}.ceremony-time{margin-bottom:40px;color:#6f685e;font-size:14px}.venue-photo img{aspect-ratio:2.15/1;object-fit:cover}.venue-card{margin:0 22px;padding:36px 22px 0}.venue-name{margin-bottom:8px;font-size:23px;font-weight:500}.venue-card address{font-style:normal;color:#746d63;font-size:15px;line-height:1.65}.info-grid{display:grid;grid-template-columns:1fr 1fr;margin:32px 0;border-block:1px solid var(--line)}.info-grid>div{padding:20px 8px}.info-grid>div+div{border-left:1px solid var(--line)}.info-grid span{color:#968b7e;font-size:13px;line-height:1.5;letter-spacing:.12em}.info-grid p{margin:7px 0 0;font-size:15px;line-height:1.6}.map-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.map-actions a,.contact-list a{display:block;padding:14px;border:1px solid #82786b;color:var(--ink);font-size:12px;text-decoration:none;transition:.2s}.map-actions a:hover,.contact-list a:hover{background:var(--dark);color:#fff}
.gift{background:#272722;color:#f7f2e9}.gift-card{padding:38px 14px;border:1px solid rgba(255,255,255,.22)}.gift .eyebrow{color:#c7af97}.gift h2{margin-bottom:16px}.gift p:last-child{margin:0;color:#d7d0c5;font-size:14px;line-height:1.95}
.contact-list{display:grid;gap:20px;margin-top:42px}.contact-card{padding:28px 24px 24px;border-top:1px solid var(--line);text-align:center}.contact-role{margin:0 0 14px;color:var(--accent);font:500 12px/1 var(--latin);letter-spacing:.24em}.contact-card h3{margin:0;font-size:22px;font-weight:500;letter-spacing:-.02em}.contact-card h3 small{margin-right:8px;color:#8f8579;font-size:12px;font-weight:400}.contact-phone{margin:10px 0 20px;color:#6f685f;font:500 15px/1.4 var(--latin);letter-spacing:.08em}.contact-actions{display:flex;justify-content:center;gap:8px}.contact-list a{width:auto;min-width:122px;padding:11px 28px;text-align:center;font-size:13px;background:transparent}
.ending{position:relative;height:min(78svh,680px);min-height:520px;background:#477796;overflow:hidden}.ending>img{height:100%;object-fit:cover;object-position:center center}.ending::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(14,27,34,.03) 30%,rgba(18,27,30,.72) 100%)}.ending-copy{position:absolute;z-index:2;left:25px;right:25px;bottom:62px;color:#fff;text-align:center}.ending-copy p{margin-bottom:25px;font-size:23px;line-height:1.65;font-weight:400;text-shadow:0 2px 18px rgba(0,0,0,.3)}.ending-copy span{font-size:15px;letter-spacing:.14em}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s ease}.reveal.visible{opacity:1;transform:none}
@media (max-width:370px){.section{padding-left:22px;padding-right:22px}.wide-photo,.film-main,.mini-film{margin-left:-22px;margin-right:-22px}.invitation-copy{font-size:16px}.photo-pair{gap:6px;margin-left:-22px;margin-right:-22px}.snapshot{padding:6px 6px 15px}}
@media (min-width:521px){body{padding:28px 0}.hero-photo{height:min(900px,92vh)}.invitation{border-radius:2px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
