:root{
  --ink:#364251;
  --ink-soft:#5b6575;
  --bg:#ffffff;
  --script:'Corinthia',cursive;
  --sans:'Figtree','Helvetica Neue',Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:30;height:96px;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;border-bottom:1px solid #eef0f2}
.site-header .logo{display:block;height:80px}
.site-header .logo img{height:100%;width:auto;display:block}

/* ---------- Menu ---------- */
.menu-btn{position:absolute;top:50%;right:22px;transform:translateY(-50%);z-index:31;width:48px;height:48px;border-radius:50%;border:0;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.15);display:grid;place-items:center;cursor:pointer}
.menu-btn span,.menu-btn span::before,.menu-btn span::after{display:block;width:20px;height:2px;background:#0e0e0e;border-radius:2px;position:relative;content:""}
.menu-btn span::before{position:absolute;top:-6px}
.menu-btn span::after{position:absolute;top:6px}
.menu{position:fixed;inset:0;z-index:25;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;opacity:0;pointer-events:none;transition:opacity .25s}
.menu.open{opacity:1;pointer-events:auto}
.menu .m-names{font-family:var(--script);font-size:72px;line-height:1.1}
.menu .m-date{font-size:15px;letter-spacing:.04em;margin-bottom:28px}
.menu nav{display:flex;flex-direction:column;gap:14px}
.menu nav a{text-decoration:none;font-size:20px;font-weight:500;padding:4px 10px}
.menu nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:6px}

/* ---------- Hero (home) ---------- */
.hero{position:relative;height:min(513px,85vw);overflow:hidden;background:#222}
.hero-row{display:flex;height:100%;width:max-content;animation:marquee 45s linear infinite;will-change:transform}
.hero-row img{height:100%;width:auto;aspect-ratio:1/1;object-fit:cover;display:block;flex:none}
@keyframes marquee{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@media (max-width:600px){.hero-row{animation-duration:30s}}
@media (prefers-reduced-motion:reduce){.hero-row{animation:none}}
.hero-text{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;font-family:var(--script);font-size:clamp(34px,9vw,120px);line-height:1.05;font-weight:700;text-shadow:0 2px 18px rgba(0,0,0,.45);padding:0 16px}

.names{text-align:center;padding:72px 16px 24px}
.names .n{font-family:var(--script);font-size:clamp(76px,14vw,128px);line-height:1.1}
.names .and{font-size:14px;margin:22px 0}
.when{text-align:center;padding:40px 16px 20px}
.when .d{font-family:var(--script);font-size:clamp(52px,9vw,84px);line-height:1.1}
.countdown{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:28px;font-size:15px}

/* ---------- Inner pages ---------- */
.page{max-width:820px;margin:0 auto;padding:56px 16px 40px;text-align:center}
.page h1{font-family:var(--script);font-weight:400;font-size:clamp(64px,11vw,92px);line-height:1.1;margin-bottom:44px}
.day{font-family:var(--script);font-size:clamp(38px,8vw,66px);line-height:1.1;margin:30px 0 34px}
.item{margin:0 auto 64px;max-width:640px}
.item svg{width:52px;height:52px;stroke:var(--ink);fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;margin-bottom:14px}
.item .kind{font-size:15px;margin-bottom:6px}
.item h2,.item h3{font-family:var(--script);font-weight:400;font-size:clamp(34px,7vw,54px);line-height:1.15;margin-bottom:18px}
.item .time{margin-bottom:18px}
.item .addr{font-size:15px}
.item .addr a{font-style:italic;font-weight:600;text-underline-offset:2px}
.item p.desc{font-size:15px;max-width:620px;margin:0 auto 22px}
.btns{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:22px}
.btn{display:inline-flex;align-items:center;justify-content:center;width:217px;height:48px;border-radius:4px;background:var(--ink);color:#fff;text-decoration:none;font-weight:600;font-size:16px;transition:opacity .15s}
.btn:hover{opacity:.88}

/* ---------- Footer ---------- */
footer{text-align:center;margin-top:60px}
footer .tag{font-family:var(--script);font-size:48px;padding:0 16px 10px}
footer img{display:block;width:100%;height:auto;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 35%);mask-image:linear-gradient(to bottom,transparent,#000 35%)}

@media (max-width:600px){
  .menu-btn{right:12px;width:44px;height:44px}
  .site-header{height:76px}
  .site-header .logo{height:62px}
  .page{padding-top:36px}
}
