:root {
  color-scheme: dark;
  --primary-gold: #C28D23;
  --secondary-gold: #A77A1F;
  --pillar-ivory: #F3ECDD;
  --smoke-black: #0F0F10;
  --copper-accent: #8A431A;
  --true-black: #000000;
  --charcoal: #141417;
  --highlight-gold: #D6B35C;
  --display-font: "Cinzel", "Palatino Linotype", "Book Antiqua", Georgia, serif;
  --body-font: "Libre Baskerville", "Baskerville", Georgia, serif;
}

* { box-sizing: border-box; }
html { background: var(--true-black); }
body {
  margin: 0;
  min-width: 0;
  min-height: 100vh;
  color: var(--pillar-ivory);
  font-family: var(--body-font);
  font-size: 0.9375rem;
  line-height: 1.75;
  background-color: var(--true-black);
  /* Fixed, extremely faint clouding; no animated texture. */
  background-image:
    radial-gradient(ellipse at 9% 58%, rgba(20, 20, 23, 0.3), transparent 47%),
    radial-gradient(ellipse at 89% 24%, rgba(20, 20, 23, 0.24), transparent 42%),
    radial-gradient(ellipse at 68% 94%, rgba(20, 20, 23, 0.22), transparent 44%);
}
img { display: block; max-width: 100%; height: auto; }
h1, h2, p, dl, dd { margin: 0; }
a { color: var(--primary-gold); text-underline-offset: 0.3em; }
a:focus-visible {
  outline: 2px solid var(--highlight-gold);
  outline-offset: 5px;
}
.skip-link {
  position: absolute;
  left: 50%;
  top: 1rem;
  z-index: 2;
  padding: 0.6rem 1rem;
  background: var(--smoke-black);
  text-align: center;
  transform: translate(-50%, -200%);
}
.skip-link:focus { transform: translate(-50%, 0); }
.home-page {
  --masthead-center: calc(2.25rem + 130px);
  --masthead-match-radius: 185px;
  --masthead-fade-radius: 290px;
  /* The solid centre covers every corner of the unaltered logo canvas.
     A stationary radial fade blends it into the existing black field. */
  background-image:
    radial-gradient(circle at 50% var(--masthead-center), var(--smoke-black) var(--masthead-match-radius), transparent var(--masthead-fade-radius)),
    radial-gradient(ellipse at 9% 58%, rgba(20, 20, 23, 0.3), transparent 47%),
    radial-gradient(ellipse at 89% 24%, rgba(20, 20, 23, 0.24), transparent 42%),
    radial-gradient(ellipse at 68% 94%, rgba(20, 20, 23, 0.22), transparent 44%);
}
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.home-column {
  max-width: 760px;
  padding: 2.25rem 1.25rem 0;
  margin-inline: auto;
  text-align: center;
}
.identity { position: relative; }
.seal-surface {
  position: relative;
  width: min(260px, 100%);
  margin: 0 auto;
  isolation: isolate;
}
.federation-seal { width: 100%; }
.tagline {
  position: relative;
  font-family: var(--display-font);
  font-size: clamp(1.35rem, 5.9vw, 1.55rem);
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.012em;
  text-wrap: balance;
}
.tagline-curve { display: none; }
.tagline-straight { margin-top: 0.65rem; }
.ornament {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  margin: 2rem auto 1.75rem;
  width: 144px;
}
.ornament::before, .ornament::after {
  content: "";
  height: 1px;
  flex: 1;
  background: var(--secondary-gold);
}
.ornament span {
  width: 5px;
  height: 5px;
  border: 1px solid var(--copper-accent);
  transform: rotate(45deg);
}
.upcoming-heading {
  font-family: var(--display-font);
  color: var(--primary-gold);
  font-size: clamp(1.6rem, 7vw, 2rem);
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.25;
}
.event-title {
  font-family: var(--display-font);
  font-size: clamp(1.65rem, 6vw, 2.35rem);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.03em;
  text-wrap: balance;
  overflow-wrap: break-word;
}
.event-poster {
  width: 100%;
  max-width: 620px;
  margin: 1.85rem auto 0;
}
.registration-cta { margin-top: 1.8rem; }
.primary-button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 56px;
  max-width: 100%;
  padding: 0.9rem 1.6rem;
  border: 1px solid var(--primary-gold);
  background: var(--primary-gold);
  color: var(--true-black);
  font-family: var(--display-font);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.09em;
  line-height: 1.4;
  text-decoration: none;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.primary-button:focus-visible { background: var(--highlight-gold); }
@media (hover: hover) {
  .primary-button:hover {
    background: var(--highlight-gold);
    border-color: var(--highlight-gold);
  }
  .back-link:hover, .form-fallback a:hover { color: var(--highlight-gold); }
}
.site-footer {
  padding: 2.25rem 1.25rem 2rem;
  text-align: center;
  font-size: 0.58rem;
  letter-spacing: 0.09em;
  line-height: 1.8;
  color: var(--pillar-ivory);
}
.home-page .seal-surface { animation: quiet-reveal 0.8s ease both; }
.home-page .tagline { animation: quiet-reveal 0.8s ease 0.25s both; }
.home-page .upcoming-event { animation: quiet-reveal 0.8s ease 0.5s both; }
@keyframes quiet-reveal {
  from { opacity: 0; }
  to { opacity: 1; }
}

.register-column {
  max-width: 640px;
  padding: 1.6rem 1.25rem 0;
  margin-inline: auto;
  text-align: center;
}
.back-navigation { margin-bottom: 2rem; }
.back-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding-block: 0.5rem;
  font-family: var(--display-font);
  font-size: 0.79rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-decoration: none;
}
.registration-heading { text-align: center; }
.registration-heading .event-title { color: var(--primary-gold); font-size: 1.875rem; font-weight: 600; }
.register-page .back-link { font-size: 1rem; }
.registration-date { margin-top: 1.4rem; font-size: 1rem; letter-spacing: 0.05em; }
.registration-location { margin-top: 0.35rem; font-size: 1.0625rem; }
.event-details { margin-top: 2.25rem; border-top: 1px solid var(--primary-gold); }
.event-details > div {
  padding-block: 1rem;
  border-bottom: 1px solid rgba(167, 122, 31, 0.22);
}
.event-details dt {
  color: var(--primary-gold);
  font-family: var(--display-font);
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.6;
}
.event-details dd { margin-top: 0.25rem; font-size: 1.0625rem; line-height: 1.8; }
.register-page .deadline-time { white-space: nowrap; }
.championship-notice {
  border: 2px solid var(--copper-accent);
  padding: 1.5rem 1.35rem;
  margin-top: 2rem;
  background: rgba(15, 15, 16, 0.55);
  text-align: center;
}
.championship-notice h2 {
  color: var(--primary-gold);
  font-family: var(--display-font);
  font-size: 1.875rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.045em;
}
.championship-notice p { margin-top: 0.8rem; font-size: 1rem; line-height: 1.9; }
.registration-form { margin-top: 2.25rem; }
.registration-form > h2 {
  color: var(--primary-gold);
  font-family: var(--display-font);
  font-size: 1.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  margin-bottom: 1rem;
}
.integration-status {
  padding: 1.35rem;
  border: 1px solid rgba(167, 122, 31, 0.4);
  background: var(--smoke-black);
}
.integration-status p { font-size: 1rem; }
.integration-status p + p { margin-top: 0.65rem; }
.integration-status strong { color: var(--pillar-ivory); }
.form-fallback { font-size: 1rem; margin-block: 0.8rem 1rem; }
.form-fallback a { display: inline-block; min-height: 44px; padding-block: 0.6rem; }
.form-guidance { font-size: 1rem; line-height: 1.8; margin-block: 0.8rem 1rem; }
.registration-direct { margin-block: 1rem; }
.register-page .form-direct-link { width: 100%; min-width: 0; }
.google-form {
  display: block;
  width: 100%;
  height: 1950px;
  border: 0;
  background: var(--pillar-ivory);
  margin-inline: auto;
}
@media (min-width: 360px) {
  .google-form { height: 1750px; }
}
@media (min-width: 600px) {
  .home-column { padding-top: 3rem; }
  .home-page {
    --masthead-center: calc(3rem + 230px);
    --masthead-match-radius: 330px;
    --masthead-fade-radius: 490px;
  }
  .seal-surface { width: 460px; }
  .tagline { margin-top: -338px; }
  .tagline-straight { display: none; }
  .tagline-curve {
    display: block;
    width: min(600px, 100%);
    margin-inline: auto;
    height: auto;
    color: var(--pillar-ivory);
    fill: currentColor;
    font-size: 37px;
    letter-spacing: 0.01em;
  }
  .ornament { margin-top: 1.25rem; margin-bottom: 2.5rem; }
  .upcoming-heading { font-size: 2.5rem; }
  .event-poster { margin-top: 2.25rem; }
  .primary-button { min-width: 320px; font-size: 1.08rem; }
  .site-footer { font-size: 0.64rem; padding-top: 2.75rem; }
  .register-column { padding-top: 2.5rem; }
  .registration-heading .event-title { font-size: 2.875rem; }
  .register-page .back-link { font-size: 1.0625rem; }
  .registration-date, .registration-location { font-size: 1.125rem; }
  .event-details dt { font-size: 1.3125rem; }
  .event-details dd { font-size: 1.125rem; }
  .championship-notice h2 { font-size: 2.125rem; }
  .championship-notice p, .integration-status p, .form-fallback, .form-guidance { font-size: 1.0625rem; }
  .registration-form > h2 { font-size: 2.25rem; }
  .google-form { height: 1550px; }
}
@media (min-width: 1000px) {
  .home-page {
    --masthead-center: calc(3rem + 280px);
    --masthead-match-radius: 400px;
    --masthead-fade-radius: 580px;
  }
  .seal-surface { width: 560px; }
  .tagline { margin-top: -410px; }
  .tagline-curve { width: 100%; }
  .ornament { width: 350px; }
  .ornament::before, .ornament::after { height: 2px; background: var(--primary-gold); }
  .upcoming-heading { font-size: 2.875rem; }
  .event-poster { max-width: 680px; }
  .primary-button { min-height: 60px; min-width: 360px; font-size: 1.125rem; }
}
@media (prefers-reduced-motion: reduce) {
  .home-page .seal-surface,
  .home-page .tagline,
  .home-page .upcoming-event { animation: none; opacity: 1; }
  .primary-button { transition: none; }
}
