:root { --burgundy: #7a1c2e; --glass-bg: rgba(255,255,255,.45); --glass-border: rgba(255,255,255,.4); }

[v-cloak] { display: none; }
body { font-family: 'Jost', sans-serif; margin: 0; min-height: 100vh; min-height: 100svh; }
h1, h2, h3, h4, .navbar-brand { font-family: 'Cormorant Garamond', serif; }

.video-bg {
  position: fixed; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center calc(50% + 100px);
  filter: blur(14px) brightness(.7); transform: scale(1.05); z-index: -1;
}
@media (max-width: 768px) { .video-bg { object-position: calc(50% - 120px) center; transform: scale(1.18); } }

/* Navbar */
.navbar { border-bottom: 1px solid rgba(255,255,255,.15); background: rgba(0,0,0,.40) !important; backdrop-filter: blur(10px); }
.nav-link, .navbar-brand { color: #fff !important; }
.navbar-brand { font-size: 1.25rem; letter-spacing: .05em; }
.nav-link { font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; padding: 1rem !important; }
.nav-link.active { border-bottom: 2px solid var(--burgundy); }
.navbar-toggler-icon { filter: invert(1); }

/* Hero */
.hero-overlay { min-height: 100svh; display: flex; align-items: center; justify-content: center; text-align: center; padding: 5rem 2rem 3rem; color: #fff; }
.hero-meta { font-size: .85rem; letter-spacing: .35em; text-transform: uppercase; margin-bottom: 2rem; }
.hero-meta strong { display: block; font-weight: 500; font-size: .95rem; margin-bottom: .3rem; }
.hero-names { font-family: 'Alex Brush', cursive; font-size: clamp(3.5rem, 11vw, 7.5rem); line-height: 1; white-space: nowrap; }
.hero-rule { width: 160px; height: 1px; background: var(--burgundy); margin: 2rem auto; }
.hero-subtitle { color: rgba(255,255,255,.85); font-size: .85rem; letter-spacing: .15em; text-transform: uppercase; }

.hero-event-grid { max-width: 900px; margin: 2.25rem auto 0; }
.hero-event-card {
  display: block; height: 100%; padding: 1.35rem 1.5rem; color: #fff; text-decoration: none;
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25);
  border-radius: .9rem; backdrop-filter: blur(10px);
  transition: transform .2s, background .2s, border-color .2s;
}
.hero-event-card:hover { color: #fff; transform: translateY(-2px); background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.45); }
.hero-event-card .event-label { display: block; font-size: .68rem; letter-spacing: .22em; text-transform: uppercase; color: rgba(255,255,255,.72); margin-bottom: .5rem; }
.hero-event-card .event-time { display: block; font-family: 'Cormorant Garamond', serif; font-size: 2rem; line-height: 1; margin-bottom: .45rem; }
.hero-event-card .event-place { display: block; font-size: .9rem; line-height: 1.55; }

/* Glass panel */
.glass { background: rgba(255,255,255,.50); backdrop-filter: blur(20px); border: 1px solid rgba(255,255,255,.3); box-shadow: 0 8px 32px rgba(0,0,0,.25); }
.tab-wrapper { min-height: 100svh; padding: 5rem 0 2rem; }

/* Sections */
.section-title { font-size: 2.5rem; }
.section-title em { color: var(--burgundy); font-style: normal; }

/* Cards (shared) */
.info-card {
  border: 1px solid var(--glass-border); padding: 1.75rem; height: 100%;
  background: var(--glass-bg); backdrop-filter: blur(8px); border-radius: .75rem;
}
.info-card h3 {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 1.15rem;
  margin: 0 0 .5rem;
  color: #111;
}
.info-card h3 i {
  color: var(--burgundy);
  font-size: 1.1rem;
  width: 1.3rem;
  text-align: center;
}
.info-card p { font-size: .9rem; color: #444; line-height: 1.75; margin: 0; }
.info-card a { color: var(--burgundy); text-decoration: none; }
.info-card a:hover { text-decoration: underline; }

/* Vue transition */
.fade-enter-active, .fade-leave-active { transition: opacity .25s ease; }
.fade-enter-from, .fade-leave-to { opacity: 0; }

/* Accessibility */
.skip-link { position: absolute; top: -40px; left: 0; background: var(--burgundy); color: #fff; padding: .5rem 1rem; z-index: 9999; text-decoration: none; }
.skip-link:focus { top: 0; }
