/* =========================================================
   VALIANT 2K26 — landing (choose Symposium or Hackathon)
   Each panel borrows its destination page's own palette and
   display face, so the choice previews where it leads.
   ========================================================= */
:root {
  --black: #050505;
  --white: #ffffff;
  --silver: #b8b8b8;

  /* symposium palette */
  --symp-bg: #0c0a0b;
  --symp-red: #b00020;
  --symp-bright: #ff1a1a;

  /* hackathon palette */
  --hack-bg: #10131a;
  --hack-paper: #f2ece0;
  --hack-ember: #ff4e24;

  --font-display-symp: "Bebas Neue", "Arial Narrow", sans-serif;
  --font-display-hack: "Fraunces", Georgia, serif;
  --font-body: "Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }

html, body {
  height: 100%;
}

body {
  margin: 0;
  background: var(--black);
  color: var(--white);
  font-family: var(--font-body);
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

@media (prefers-reduced-motion: reduce) {
  * { transition-duration: 0.001ms !important; }
}

:focus-visible {
  outline: 2px solid var(--symp-bright);
  outline-offset: -3px;
}

/* =========================================================
   Brand mark
   ========================================================= */
.brand-mark {
  text-align: center;
  padding: 2.6rem 1.5rem 2.2rem;
}
.brand-name {
  font-family: var(--font-display-symp);
  font-size: clamp(2.2rem, 5vw, 3.2rem);
  letter-spacing: 0.03em;
  margin: 0;
}
.brand-name em { font-style: normal; color: var(--symp-bright); }
.brand-dept {
  margin: 0.6rem 0 0;
  color: var(--silver);
  font-size: 0.85rem;
  max-width: 46ch;
  margin-inline: auto;
}

/* =========================================================
   Split panels
   ========================================================= */
.split {
  flex: 1;
  display: flex;
  min-height: 0;
}

.panel {
  position: relative;
  flex: 1;
  display: flex;
  align-items: flex-end;
  padding: 3rem;
  color: inherit;
  text-decoration: none;
  overflow: hidden;
  transition: flex-grow 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.split:hover .panel { flex-grow: 0.85; }
.split:hover .panel:hover { flex-grow: 1.3; }

.panel-symposium {
  background:
    radial-gradient(120% 100% at 20% 0%, rgba(176, 0, 32, 0.35), transparent 55%),
    var(--symp-bg);
  border-right: 1px solid rgba(255, 255, 255, 0.08);
}
.panel-hackathon {
  background:
    radial-gradient(120% 100% at 80% 100%, rgba(255, 78, 36, 0.18), transparent 55%),
    var(--hack-bg);
}

.panel-inner {
  position: relative;
  max-width: 30rem;
}

.panel-symposium .panel-title {
  font-family: var(--font-display-symp);
  font-weight: 400;
  letter-spacing: 0.02em;
  font-size: clamp(2.4rem, 5.5vw, 4rem);
  margin: 0 0 0.9rem;
  color: var(--white);
}
.panel-hackathon .panel-title {
  font-family: var(--font-display-hack);
  font-weight: 600;
  font-style: italic;
  font-size: clamp(2.1rem, 4.6vw, 3.4rem);
  margin: 0 0 0.9rem;
  color: var(--hack-paper);
}

.panel-copy {
  font-size: 0.98rem;
  line-height: 1.55;
  max-width: 36ch;
  margin: 0 0 1.4rem;
}
.panel-symposium .panel-copy { color: var(--silver); }
.panel-hackathon .panel-copy { color: rgba(242, 236, 224, 0.72); }

.panel-date {
  font-size: 0.82rem;
  margin: 0 0 1.6rem;
}
.panel-symposium .panel-date { color: var(--symp-bright); }
.panel-hackathon .panel-date { color: var(--hack-ember); }

.panel-cta {
  display: inline-block;
  font-size: 0.95rem;
  padding-bottom: 0.3rem;
  border-bottom: 1px solid currentColor;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.panel-symposium .panel-cta { color: var(--white); }
.panel-hackathon .panel-cta { color: var(--hack-paper); }
.panel:hover .panel-cta { transform: translateX(6px); }

/* =========================================================
   Footer
   ========================================================= */
.landing-footer {
  text-align: center;
  padding: 1.2rem 1.5rem;
  font-size: 0.75rem;
  color: var(--silver);
  background: var(--black);
}

/* =========================================================
   Responsive — stack vertically on narrow screens
   ========================================================= */
@media (max-width: 760px) {
  .split { flex-direction: column; }
  .split:hover .panel,
  .split:hover .panel:hover { flex-grow: 1; }
  .panel { min-height: 45vh; padding: 2.2rem; }
  .panel-symposium { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.08); }
}
