/* 25th anniversary (Luxury) — night blue and silver, interlocking rings, horizontal story timeline, menu card */
.t-ann { --night: #0F1B2D; --night-2: #182842; --silver: #C9D0DA; --bg: #F3F4F7; --surface: #FFFFFF; --surface-2: #E9ECF1; --ink: #172238; --ink-2: #56627A; --accent: #172238; --accent-hover: #24345A; --accent-ink: #FFFFFF; --accent-text: #2C3F66; --tint: #E7EAF1; --line: #DDE1E9; --line-strong: #C3CAD7; --display: "Cormorant Garamond", Georgia, serif; --body: "Figtree", system-ui, sans-serif; --radius: 16px; }
.t-ann h1, .t-ann h2, .t-ann h3 { font-family: var(--display); font-weight: 500; }

.an-hero { position: relative; overflow: hidden; padding: clamp(70px, 11vw, 130px) 20px clamp(60px, 9vw, 100px); text-align: center; background: radial-gradient(ellipse at 50% 0%, var(--night-2), var(--night) 70%); color: #EEF1F6; }
.an-stars { position: absolute; inset: 0; pointer-events: none; background-image: radial-gradient(1.5px 1.5px at 12% 22%, #fff 50%, transparent), radial-gradient(1px 1px at 28% 68%, #fff 50%, transparent), radial-gradient(1.5px 1.5px at 44% 14%, #fff 50%, transparent), radial-gradient(1px 1px at 63% 40%, #fff 50%, transparent), radial-gradient(1.5px 1.5px at 78% 18%, #fff 50%, transparent), radial-gradient(1px 1px at 88% 62%, #fff 50%, transparent), radial-gradient(1px 1px at 8% 80%, #fff 50%, transparent), radial-gradient(1px 1px at 54% 82%, #fff 50%, transparent); opacity: .6; }
.an-rings { width: 132px; margin: 0 auto 22px; display: block; }
.an-pre { font: italic 400 22px/1.3 var(--display); color: var(--silver); }
.an-hero h1 { margin-top: 8px; font-size: clamp(54px, 10vw, 104px); line-height: 1; color: #fff; letter-spacing: -.01em; }
.an-hero h1 span { color: var(--silver); font-style: italic; }
.an-when { margin-top: 16px; font: 600 14px/1.5 var(--body); letter-spacing: .16em; text-transform: uppercase; color: var(--silver); }
.an-count { justify-content: center; margin-top: 30px; }
.an-count div { background: transparent !important; border: 1px solid rgba(201, 208, 218, .4) !important; border-radius: 999px !important; }
.an-count b { color: #fff; font-family: var(--display) !important; }
.an-count span { color: var(--silver) !important; }
.an-cta { margin-top: 26px; display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.t-ann .an-hero .btn.solid { background: var(--silver); color: var(--night); box-shadow: none; }
.t-ann .an-hero .btn.line { color: #fff; }

.an-story { padding-block: clamp(56px, 8vw, 96px) clamp(40px, 6vw, 70px); background: var(--bg); }
.an-story h2, .an-eve h2, .an-rsvp h2 { font-size: clamp(36px, 5vw, 52px); color: var(--ink); }
.an-hint { margin-top: 4px; color: var(--ink-2); font-size: 14px; }
.an-time { list-style: none; margin: 26px 0 0; padding: 0 max(20px, calc((100vw - 1040px) / 2)) 20px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 320px); gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.an-time:focus-visible { outline: 3px solid var(--accent-text); outline-offset: 4px; }
.an-time li { scroll-snap-align: start; background: var(--surface); border-radius: 18px; padding: 16px 16px 20px; box-shadow: 0 0 0 1px var(--line); position: relative; }
.an-time .yr { position: absolute; top: 24px; left: 24px; z-index: 1; padding: 4px 10px; border-radius: 999px; background: var(--night); color: #fff; font: 700 13px/1.3 var(--body); letter-spacing: .08em; }
.an-pic { height: 170px; border-radius: 12px; margin-bottom: 14px; }
.an-pic.p1 { background: radial-gradient(circle at 70% 30%, #F4F0E6 0 18%, transparent 19%), linear-gradient(180deg, #8EA3BF, #C9D0DA); }
.an-pic.p2 { background: linear-gradient(180deg, transparent 58%, #6D8B5E 58%), radial-gradient(circle at 74% 44%, #E8C547 0 7%, transparent 8%), radial-gradient(circle at 72% 50%, #5E7F4F 0 20%, transparent 21%), linear-gradient(180deg, #BFD3E6, #E6EEF5); }
.an-pic.p3 { background: radial-gradient(circle at 30% 60%, #F2B5A0 0 12%, transparent 13%), radial-gradient(circle at 55% 64%, #9FC3E7 0 10%, transparent 11%), linear-gradient(180deg, #DDEBD2 0 60%, #A6C48D 60%); }
.an-pic.p4 { background: radial-gradient(circle at 42% 50%, transparent 0 16%, #C9D0DA 16% 19%, transparent 19%), radial-gradient(circle at 58% 50%, transparent 0 16%, #8E9AAF 16% 19%, transparent 19%), linear-gradient(180deg, var(--night-2), var(--night)); }
.an-time h3 { font-size: 26px; color: var(--ink); }
.an-time p { color: var(--ink-2); margin-top: 4px; }

.an-eve { padding-block: clamp(56px, 8vw, 96px); background: var(--surface); }
.an-eve-in { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(28px, 5vw, 60px); align-items: start; }
.an-sched { list-style: none; margin: 18px 0 0; padding: 0; }
.an-sched li { display: grid; grid-template-columns: 96px 1fr; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.an-sched b { font-weight: 700; color: var(--accent-text); }
.an-dress { margin-top: 18px; color: var(--ink); }
.an-link { display: inline-block; margin-top: 10px; color: var(--accent-text); font-weight: 600; }
.an-menu { padding: 32px 28px; text-align: center; background: var(--night); color: #EEF1F6; border-radius: 4px; outline: 1px solid rgba(201, 208, 218, .45); outline-offset: -12px; }
.an-menu-k { font: italic 400 34px/1 var(--display); color: var(--silver); margin-bottom: 14px; }
.an-dish { font: 500 21px/1.3 var(--display); padding: 12px 0; border-top: 1px solid rgba(201, 208, 218, .25); }
.an-dish small { display: block; font: 400 13.5px/1.4 var(--body); color: var(--silver); margin-top: 2px; }

.an-rsvp { padding-block: clamp(56px, 8vw, 96px); text-align: center; background: var(--bg); }
.an-sub { margin-top: 6px; color: var(--ink-2); }
.an-rsvp .rsvp { margin-top: 26px; text-align: left; }
.an-foot { padding: 56px 20px 42px; text-align: center; background: var(--night); color: #EEF1F6; }
.an-foot .big { font: italic 400 clamp(30px, 5vw, 44px)/1.15 var(--display); }
.an-foot .made { display: inline-flex; align-items: center; gap: 8px; margin-top: 20px; color: var(--silver); text-decoration: none; font-size: 14px; }
@media (max-width: 820px) { .an-eve-in { grid-template-columns: 1fr; } }
