
:root{--bg:#f7f4ed;--ink:#20242b;--gold:#b89a5b;--blue:#72889b;--line:rgba(32,36,43,.14)}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;background:#fbfaf7;color:var(--ink);font-family:"Noto Serif JP",serif;letter-spacing:.04em;overflow-x:hidden}
a{color:inherit;text-decoration:none}.hero{min-height:100svh;display:grid;place-items:center;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 40%,#fff 0 18%,rgba(255,255,255,.55) 38%,transparent 65%),linear-gradient(150deg,#f6f2e8,#e8eef1)}
.hero-inner{text-align:center;position:relative;z-index:2;width:min(920px,90vw);padding:70px 20px}
.eyebrow,.small{font-family:"Cormorant Garamond",serif;font-size:.78rem;letter-spacing:.28em;color:#6d747b;margin:0 0 24px}
.event-name{font-size:clamp(.82rem,1.2vw,1rem);letter-spacing:.12em;color:#4f5660;margin:0 0 28px}
h1{margin:0;display:flex;justify-content:center;align-items:baseline;gap:.3em;flex-wrap:wrap}h1 span{font:500 clamp(4rem,10vw,8rem)/.9 "Cormorant Garamond",serif}h1 b{font-size:clamp(2.6rem,6vw,4.8rem);font-weight:300;letter-spacing:.18em}
.subtitle{font-size:clamp(1rem,2vw,1.4rem);letter-spacing:.18em;margin:22px 0 0}.tagline{font-size:clamp(1.15rem,2.5vw,1.8rem);line-height:1.8;letter-spacing:.12em;margin:48px 0 0}
.date{font-family:"Cormorant Garamond",serif;letter-spacing:.16em;margin:44px 0 0}.venue{font-size:.84rem;color:#6c7379;margin:12px 0 0}
.wind{position:absolute;width:120vw;height:24vh;border-radius:50%;border-top:1px solid rgba(114,136,155,.28);border-bottom:1px solid rgba(184,154,91,.17)}
.wind1{top:22%;left:-12%;transform:rotate(-9deg);animation:w1 15s ease-in-out infinite alternate}.wind2{bottom:18%;right:-15%;transform:rotate(9deg);animation:w2 18s ease-in-out infinite alternate}
.scroll{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);font:500 .64rem "Cormorant Garamond",serif;letter-spacing:.22em;color:#707983;display:flex;flex-direction:column;align-items:center;gap:8px;z-index:3}.scroll span{display:block;width:1px;height:38px;background:linear-gradient(var(--gold),transparent)}
.section{position:relative;padding:clamp(100px,14vw,210px) 7vw;overflow:hidden}.narrow{width:min(760px,100%);margin:auto}.center{text-align:center}
.message{background:#fbfaf7}.season{text-align:center;font-size:clamp(1.8rem,4vw,3.4rem);font-weight:300;letter-spacing:.14em;margin:0 0 38px}.season.accent{color:#7a6542;margin-top:82px}
.history{min-height:90vh;display:grid;align-items:center;background:linear-gradient(#eff3f4,#f7f3ea)}.history h2,.finale h2{font:500 clamp(4.5rem,11vw,8rem)/1 "Cormorant Garamond",serif;margin:0}.lead{font-size:clamp(1.05rem,2vw,1.4rem);line-height:2.1;margin-top:32px}.years{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:68px;font:.78rem "Cormorant Garamond",serif;color:#737b84}.years span{padding-top:14px;border-top:1px solid var(--line)}
.dark{min-height:88vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,rgba(184,154,91,.2),transparent 32%),radial-gradient(circle at 80% 80%,rgba(114,136,155,.22),transparent 34%),#111820;color:#f7f2e8}.dark h2{font-size:clamp(3rem,8vw,7rem);font-weight:300;letter-spacing:.12em;margin:0}
.coming{background:#f7f4ed}.grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:56px}.card{min-height:180px;padding:28px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.card span{font:.75rem "Cormorant Garamond",serif;color:#8d8d89}.card strong{font:500 clamp(1.3rem,2.4vw,2rem) "Cormorant Garamond",serif;letter-spacing:.12em}.note{text-align:right;color:#777;font-size:.82rem;margin-top:32px}
.invitation{
  width:min(860px,100%);margin:88px auto 0;padding:58px 54px 52px;
  border-top:1px solid rgba(184,154,91,.55);border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.42);backdrop-filter:blur(4px)
}
.invitation-kicker{
  margin:0 0 18px;font:500 .72rem/1 "Cormorant Garamond",serif;
  letter-spacing:.24em;color:#8c7650
}
.invitation h3{
  margin:0 0 34px;font-size:clamp(2rem,4vw,3.4rem);font-weight:300;letter-spacing:.12em
}
.invitation-copy{
  margin:0 0 18px;font-size:clamp(.98rem,1.5vw,1.12rem);line-height:2.15;color:#4b5056
}
.invitation-copy strong{font-weight:500;color:#272c31}
.invitation-rehearsal{
  margin:34px 0 0;font-size:.92rem;letter-spacing:.1em;color:#6d6049
}
.invitation-closing{
  margin:48px 0 0;padding-top:28px;border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:9px;font-size:clamp(1rem,1.9vw,1.28rem);
  line-height:1.8;letter-spacing:.1em;color:#665536
}
.finale{min-height:100svh;display:grid;place-items:center;background:linear-gradient(160deg,#f7f1e4,#edf2f4 58%,#e5ecef)}.finalcopy{font-size:clamp(1.2rem,2.6vw,2rem);letter-spacing:.14em;margin-top:46px}.info{width:min(720px,100%);margin:64px auto 0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left}.info p{padding:24px 28px;margin:0;line-height:1.8}.info p+p{border-left:1px solid var(--line)}.info small{display:block;font:.66rem "Cormorant Garamond",serif;letter-spacing:.2em;color:#8a8e90;margin-bottom:10px}.soon{font:.82rem "Cormorant Garamond",serif;letter-spacing:.28em;color:#7c838a;margin-top:44px}
footer{padding:26px 7vw;background:#111820;color:#aeb5bb;display:flex;justify-content:space-between;font:.7rem "Cormorant Garamond",serif;letter-spacing:.12em}
.reveal{opacity:0;transform:translateY(24px);transition:opacity 1s ease,transform 1s ease}.reveal.show{opacity:1;transform:none}
@keyframes w1{from{translate:-3% 0}to{translate:5% 0}}@keyframes w2{from{translate:3% 0}to{translate:-4% 0}}
@media(max-width:760px){.hero-inner{padding-top:64px}.section{padding:96px 7vw}.years{grid-template-columns:repeat(3,1fr);row-gap:28px}.grid{grid-template-columns:1fr 1fr}.card{min-height:145px}.note{text-align:left;line-height:1.8}.invitation{margin-top:62px;padding:42px 24px 38px}.invitation h3{margin-bottom:26px}.invitation-copy br{display:none}.invitation-closing{margin-top:38px}.info{grid-template-columns:1fr}.info p+p{border-left:0;border-top:1px solid var(--line)}footer{flex-direction:column;gap:14px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
