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

:root{
  --paper:#f4eee6; --ink:#3f3329; --muted:#817365; --line:#d9cbbb;
  --accent:#8b6c52; --white:#fffaf3;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,"Noto Sans SC",sans-serif}
main{max-width:760px;margin:auto;background:var(--paper);overflow:hidden}
h1,h2,h3,strong{font-family:"Noto Serif SC",serif;font-weight:500}
.eyebrow{letter-spacing:.25em;font-size:11px;margin:0 0 18px;text-transform:uppercase;color:var(--muted)}
h2{font-size:29px;line-height:1.5;margin:0 0 10px}
.body{color:var(--muted);font-size:14px;line-height:2.1}
.primary{border:0;background:var(--ink);color:#fffaf3;padding:14px 34px;border-radius:999px;font-size:14px;letter-spacing:.08em;cursor:pointer}
section{padding:60px 28px}

/* 封面：按素材实际比例显示，避免窄屏裁掉图内文字 */
.hero{position:relative;width:100%;aspect-ratio:1240/1748;max-height:100svh;overflow:hidden;padding:0;background:var(--paper)}
.hero-photo{width:100%;height:100%;object-fit:contain;object-position:center;display:block}

/* 通用整图 section（婚礼指南、交通、住宿） */
.full-image{padding:0}
.full-image img{width:100%;display:block}
.full-image + .full-image{margin-top:28px}

/* 倒计时 */
.countdown{text-align:center;padding:48px 28px 36px}
.countdown-grid{display:flex;justify-content:center;gap:18px;margin-top:6px}
.countdown-item{display:flex;flex-direction:column;align-items:center;min-width:56px}
.countdown-item strong{font-size:32px;color:var(--ink)}
.countdown-item span{font-size:11px;color:var(--muted);margin-top:4px;letter-spacing:.1em}
.countdown-label{margin-top:18px;font-size:13px;color:var(--muted)}

/* 婚纱照滑动展示 */
.gallery{text-align:center;padding-bottom:56px}
.carousel{position:relative;margin-top:26px}
.carousel-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.carousel-track::-webkit-scrollbar{display:none}
.carousel-slide{flex:0 0 100%;scroll-snap-align:center;aspect-ratio:3/4;background:var(--paper)}
.carousel-slide img{width:100%;height:100%;object-fit:contain;display:block}
.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;border:0;background:rgba(255,250,243,.85);color:var(--ink);font-size:20px;line-height:1;cursor:pointer;display:grid;place-items:center;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.carousel-arrow.prev{left:10px}
.carousel-arrow.next{right:10px}
.carousel-dots{display:flex;justify-content:center;gap:8px;margin-top:16px}
.dot{width:7px;height:7px;border-radius:50%;border:0;background:var(--line);padding:0;cursor:pointer}
.dot.active{background:var(--accent);width:18px;border-radius:4px;transition:.25s}

/* RSVP */
.rsvp{text-align:center;padding-bottom:100px}
.rsvp-btn{display:inline-block;margin-top:26px;text-decoration:none}

/* 悬浮音乐开关 */
.music-btn{position:fixed;z-index:30;right:16px;top:16px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,250,243,.9);color:var(--ink);box-shadow:0 4px 20px rgba(0,0,0,.14);cursor:pointer;font-size:18px;user-select:none}
.music-btn.is-playing{animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}

footer{text-align:center;padding:65px 20px 80px;border-top:1px solid var(--line)}
footer p{letter-spacing:.25em;font-size:10px;color:var(--muted)}
footer strong{display:block;font-size:22px;margin:12px 0}
footer small{color:var(--muted)}

@media(max-width:480px){
  section{padding-left:22px;padding-right:22px}
}
