*{box-sizing:border-box}html{color-scheme:light;background:#e9e8e3}body{margin:0;color:#292e29;font-family:"AppleMyungjo","Nanum Myeongjo","Noto Serif CJK KR","Batang","바탕",serif;font-size:17px;line-height:1.8;word-break:keep-all}main{max-width:600px;margin:auto;background:#faf9f5;overflow:hidden}h1,h2,p,figure{margin:0}h1,h2{font-family:"AppleMyungjo","Nanum Myeongjo","Noto Serif CJK KR","Batang","바탕",serif;font-weight:400}h2{font-size:28px;letter-spacing:-.045em;line-height:1.5}a{color:inherit;text-underline-offset:5px}button{font:inherit;color:inherit}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #5c6d50;outline-offset:5px}.section{padding:80px 30px}.intro{text-align:center;padding-top:88px}.intro h2{margin-bottom:32px}.prose{font-size:18px;line-height:2.1;color:#3b423a}.prose p+p{margin-top:19px}.family{margin:40px auto 0;padding-top:30px;border-top:1px solid #d9dcd2;line-height:2.1}.family strong{font-size:21px;font-weight:500;margin-left:9px}.family .relation{color:#51594e;margin-left:5px}.when{margin-top:44px;padding:28px 20px;background:#eeefe7}.when time{display:block;font-size:20px;line-height:1.8}.when strong{display:block;font-size:27px;font-weight:500}.when .place{margin-top:12px;font-size:19px}.button{display:flex;align-items:center;justify-content:center;min-height:52px;padding:12px 16px;border:1px solid #8a9383;text-decoration:none;background:transparent;line-height:1.6}.calendar{margin-top:22px}.small{font-size:17px;color:#555d51;line-height:1.75;margin-top:12px}.gallery{padding-top:60px;border-top:1px solid #dcdfd5}.gallery h2{text-align:center;margin-bottom:30px}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.photo-button{padding:0;margin:0;border:0;background:none;cursor:zoom-in;display:block;width:100%;min-height:44px}.photo-button img{width:100%;height:auto;display:block}.photo-button.wide{grid-column:1/-1}.gallery-note{text-align:center;margin:25px 0 0;font-size:17px;color:#555d51}.location{background:#f0f1eb}.location h2{margin-bottom:30px}.venue{font-size:23px;font-weight:600;margin-bottom:8px}.address{margin-bottom:24px}.map-image{display:block;width:100%;height:auto;background:white}.map-caption{min-height:44px;display:flex;align-items:center;justify-content:flex-end;margin-bottom:20px}.map-link{margin-bottom:28px}.row{display:grid;grid-template-columns:60px 1fr;gap:15px;border-top:1px solid #cfd4c7;padding:22px 0}.row h3{font-size:17px;font-weight:600;margin:0}.row p{font-size:17px}.parking-note{display:block;font-weight:600;margin-top:8px}.gift h2{margin-bottom:28px}.gift details{border-top:1px solid #cfd4c7}.gift details:last-child{border-bottom:1px solid #cfd4c7}.gift summary{min-height:60px;cursor:pointer;padding:17px 4px;font-size:18px}.gift details p{padding:0 4px 22px;color:#555d51;font-size:17px}footer{text-align:center;padding:12px 25px 64px;font-size:17px;color:#555d51}footer .couple{font-family:"AppleMyungjo","Nanum Myeongjo","Noto Serif CJK KR","Batang","바탕",serif;font-size:24px;margin-bottom:9px}dialog{border:0;padding:0;width:100vw;max-width:none;height:100dvh;max-height:none;background:#151815;color:#fff}dialog::backdrop{background:#151815}.viewer{height:100%;display:flex;flex-direction:column;padding:16px;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom))}.viewer-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.viewer button{background:#30372f;color:#fff;border:1px solid #737d6d;min-width:54px;min-height:48px;padding:7px 16px}.viewer figure{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:15px 0;gap:12px}.viewer img{min-height:0;max-height:calc(100% - 66px);max-width:100%;object-fit:contain}.viewer figcaption{font-size:17px;text-align:center;line-height:1.6}.viewer-nav{display:flex;gap:16px;justify-content:center}body.modal-open{overflow:hidden}@media(min-width:601px){.section{padding-left:54px;padding-right:54px}.hero-title{top:5.5%}}@media(max-width:359px){.section{padding-left:22px;padding-right:22px}.hero-title h1{font-size:31px}.hero-title p{font-size:17px}.family strong{margin-left:4px}.family .relation{margin-left:2px}}@media(max-aspect-ratio:2/5){.hero{max-height:210vw;min-height:0}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* 첫 참고의 텍스트 면 + 사진 구성, 둘째 참고의 깊은 숲색 */
.hero{background:#203c2d;color:#f3efdf;position:relative;height:auto;min-height:0;max-height:none;aspect-ratio:auto}
.hero-panel{padding:44px 22px 34px;text-align:center}
.hero-title{position:static;color:inherit}
.hero-title h1{display:flex;flex-direction:column;align-items:center;font-size:clamp(46px,13vw,58px);font-weight:400;line-height:1.16;letter-spacing:.08em;padding-left:.08em}
.hero-title h1 span{display:block;font-size:20px;line-height:1.6;letter-spacing:0;margin:10px 0 12px}
.hero-info{position:static;color:inherit;font-size:17px;line-height:1.8;margin-top:28px}
.hero-info strong{font-size:21px;font-weight:400}
.hero>img{position:static;display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:50% 0;z-index:auto}
.hero::after{content:none}
@media(max-width:359px){.hero-panel{padding:36px 18px 30px}.hero-title h1{font-size:46px}.hero-info{font-size:17px;margin-top:24px}}

/* 상단 문구: 작은 초대, 이름, 일시 순서 */
.hero-panel{min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:38px 18px}
.hero-subtitle{font-size:16px;line-height:1.6;margin-bottom:24px;color:inherit}
.hero-title h1{display:block;font-size:clamp(25px,7vw,38px);font-weight:400;line-height:1.4;letter-spacing:-.05em;padding:0}
.hero-info{font-size:16px;line-height:1.8;margin-top:26px;color:inherit}
@media(max-width:359px){.hero-panel{padding:36px 18px}.hero-title h1{font-size:25px}.hero-info{font-size:16px;margin-top:26px}}

/* 기존 초대문을 종이 줄과 사진으로 이어낸 편지 */
.intro{--intro-inset:30px;padding-top:0}
.letter-story{margin-inline:calc(-1 * var(--intro-inset));padding-top:58px;background:#203c2d;color:#f3efdf}
.letter-story h2{font-size:26px;margin:0 16px 30px}
.letter-prose{padding:0 16px;color:#263c30;font-size:19px;line-height:2.15;letter-spacing:-.035em}
.letter-prose p+p{margin-top:20px}
.paper-line{display:inline-block;background:#f3efdf;padding:0 9px;line-height:1.8;margin:3px 0}
.paper-last{display:table;margin:3px auto 0}
.letter-photo{margin-top:36px}
.letter-photo img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 65%}
@media(min-width:601px){.intro{--intro-inset:54px}}
@media(max-width:359px){.intro{--intro-inset:22px}.letter-story{padding-top:48px}.letter-story h2{font-size:25px}.letter-prose{padding-inline:10px}.paper-line{padding-inline:7px}}

/* 네이버 지도 미리보기: 정사각형 이미지, 클릭 시 장소 열기 */
.map-preview{display:block;width:100%;aspect-ratio:1/1;overflow:hidden;background:#e8ece4;text-decoration:none}.map-preview img{display:block;width:100%;height:100%;object-fit:cover}.map-source{text-align:right;font-size:14px;line-height:1.5;color:#50594f;margin:8px 0 15px}

/* 첫 화면은 사진만 표시하고 제목은 스크린리더에 제공 */
.hero{background:transparent}.screen-reader-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* 신랑 신부의 독사진과 이름 */
.profiles-wrap{margin-inline:calc(-1 * var(--intro-inset));padding:52px var(--intro-inset) 48px;background:#f0f1eb}.couple-profiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:370px;margin:auto;text-align:center}.profile-card{min-width:0}.profile-role{font-size:18px;line-height:1.5;margin-bottom:14px;color:#495548}.profile-card img{display:block;width:min(100%,150px);height:auto;aspect-ratio:1;object-fit:cover;border-radius:50%;margin:0 auto}.profile-name{font-size:24px;line-height:1.5;margin-top:13px;color:#292e29}@media(max-width:359px){.profiles-wrap{padding-block:44px}.couple-profiles{gap:16px}.profile-name{font-size:23px}}

/* 한글 요일의 2027년 2월 예식 달력 */
.wedding-calendar{margin-top:44px;padding:42px 18px 38px;background:#203c2d;color:#f3efdf;text-align:center}.wedding-calendar h3{margin:0 0 25px;font-weight:400;line-height:1.4}.wedding-calendar h3 span{display:block;font-size:17px}.wedding-calendar h3 strong{display:block;font-size:32px;font-weight:400;margin-top:7px}.wedding-calendar table{width:100%;max-width:350px;margin:auto;border-collapse:collapse;table-layout:fixed;font-variant-numeric:tabular-nums}.wedding-calendar th{font-size:17px;font-weight:400;padding:5px 0 10px;color:#e1e7d9}.wedding-calendar td{height:42px;font-size:18px;line-height:1}.wedding-day{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#f3efdf;color:#203c2d;font-weight:600}.calendar-caption{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.wedding-calendar+.when{margin-top:0}@media(max-width:359px){.wedding-calendar{padding:38px 10px 34px}.wedding-calendar td{font-size:17px;height:40px}.wedding-calendar th{font-size:17px}.wedding-day{width:32px;height:32px}}
