/* Frogmare Rising — final responsive shell and inner-page design pass. */
:root {
  --v6-bg: #07060b;
  --v6-panel: rgba(11, 9, 15, .975);
  --v6-panel-raised: rgba(19, 15, 22, .98);
  --v6-gold: #c9a263;
  --v6-gold-bright: #f4d995;
  --v6-gold-deep: #684017;
  --v6-red: #bd1b38;
  --v6-red-dark: #6d0b22;
  --v6-line: rgba(205, 166, 101, .27);
  --v6-text: #f0ece9;
  --v6-muted: #a49ba1;
  --v6-shell: min(1600px, calc(100% - clamp(32px, 8vw, 144px)));
  --panel: var(--v6-panel);
  --panel-soft: var(--v6-panel-raised);
  --line: var(--v6-line);
  --line-hot: rgba(244, 217, 149, .6);
  --text: var(--v6-text);
  --soft: #cec7c7;
  --muted: var(--v6-muted);
  --cyan: var(--v6-gold-bright);
  --red: var(--v6-red);
}

html,
body { max-width: 100%; overflow-x: clip !important; }
body { background: var(--v6-bg) !important; }

body:not(.page-home)::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 8% 48%, rgba(140, 17, 42, .13), transparent 34rem),
    radial-gradient(ellipse at 92% 58%, rgba(133, 78, 39, .09), transparent 38rem),
    linear-gradient(180deg, #09070d, #06060a 72%);
}

/* Gold-rimmed controls: layered backgrounds create a real metallic edge. */
body :is(
  .site-cta,
  .blue-a,
  .green-a,
  .login-button,
  .register-form button,
  .support-form button,
  .ticket-player-reply button,
  .resend-form button,
  .unstuck-panel button
) {
  min-height: 46px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 11px;
  padding: 11px 22px !important;
  border: 1px solid transparent !important;
  border-radius: 4px !important;
  outline: 0;
  background:
    linear-gradient(180deg, #c02846 0%, #94172f 48%, #640c20 100%) padding-box,
    linear-gradient(135deg, #714518 0%, #f5dc9b 35%, #aa7130 68%, #4b2b0c 100%) border-box !important;
  color: #fff !important;
  font: 750 11px/1 var(--v5-ui, "Segoe UI", sans-serif) !important;
  letter-spacing: .09em;
  text-decoration: none !important;
  text-transform: uppercase;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .7);
  box-shadow:
    inset 0 1px 0 rgba(255, 248, 219, .3),
    inset 0 -5px 11px rgba(31, 2, 11, .58),
    0 1px 0 rgba(255, 217, 139, .28),
    0 8px 22px rgba(0, 0, 0, .46),
    0 0 22px rgba(211, 162, 78, .18),
    0 0 18px rgba(189, 27, 56, .2) !important;
  cursor: pointer;
  transition: transform .18s ease, filter .18s ease, box-shadow .18s ease !important;
}

body :is(
  .site-cta,
  .blue-a,
  .green-a,
  .login-button,
  .register-form button,
  .support-form button,
  .ticket-player-reply button,
  .resend-form button,
  .unstuck-panel button
):hover {
  transform: translateY(-2px);
  filter: brightness(1.08) saturate(1.04) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 250, 226, .4),
    inset 0 -5px 11px rgba(31, 2, 11, .52),
    0 11px 26px rgba(0, 0, 0, .5),
    0 0 31px rgba(232, 190, 104, .29),
    0 0 26px rgba(197, 27, 58, .3) !important;
}

body :is(.site-cta, .blue-a, .green-a, button):active {
  transform: translateY(1px);
  box-shadow: inset 0 4px 11px rgba(22, 1, 8, .72), 0 2px 8px rgba(0, 0, 0, .42) !important;
}

body :is(.site-cta, .blue-a, .green-a, button):focus-visible {
  outline: 2px solid var(--v6-gold-bright) !important;
  outline-offset: 3px;
}

.page-home .site-cta.secondary {
  background:
    linear-gradient(180deg, #211b23 0%, #0a090e 100%) padding-box,
    linear-gradient(135deg, #654018, #f0d28b 39%, #8a571f 72%, #402409) border-box !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 244, 213, .14),
    inset 0 -5px 12px rgba(0, 0, 0, .6),
    0 8px 22px rgba(0, 0, 0, .48),
    0 0 24px rgba(224, 181, 94, .16) !important;
}

.site-login-link {
  border: 1px solid transparent !important;
  background:
    linear-gradient(180deg, rgba(50, 12, 25, .7), rgba(19, 8, 14, .82)) padding-box,
    linear-gradient(135deg, rgba(113, 69, 24, .8), rgba(237, 200, 129, .82), rgba(121, 27, 44, .85)) border-box !important;
  box-shadow: inset 0 1px rgba(255, 232, 183, .09), 0 0 17px rgba(197, 52, 71, .09) !important;
}

.compact-account button {
  border: 1px solid transparent !important;
  background:
    linear-gradient(180deg, #c52b47, #7e1029) padding-box,
    linear-gradient(135deg, #73461a, #f2d58e, #6d4015) border-box !important;
  box-shadow: inset 0 1px rgba(255, 244, 214, .25), inset 0 -4px 8px rgba(23, 2, 9, .5), 0 5px 14px rgba(0, 0, 0, .38), 0 0 16px rgba(217, 168, 82, .16) !important;
}

/* Home scales with the browser while retaining the approved 1440px geometry. */
@media (min-width: 1201px) {
  .page-home .site-hero,
  .page-home .container {
    width: clamp(1150px, 80vw, 1600px) !important;
    max-width: 1600px !important;
  }

  .page-home .live-status {
    width: clamp(850px, 59vw, 1180px) !important;
    max-width: 1180px !important;
  }

  .page-home .header {
    height: clamp(423px, 29.4vw, 550px) !important;
    min-height: clamp(423px, 29.4vw, 550px) !important;
  }

  .page-home .site-hero { padding-top: clamp(165px, 11.5vw, 215px) !important; }
  .page-home .hero-brand strong { font-size: clamp(48px, 3vw, 58px); }
  .page-home .hero-brand small { font-size: clamp(29px, 1.8vw, 35px); }
  .page-home .site-hero h1 { font-size: clamp(28px, 1.75vw, 34px) !important; }
  .page-home .news-showcase { height: clamp(164px, 10vw, 205px); }
  .page-home .portal-bottom-row { height: clamp(113px, 7vw, 145px); }
}

@media (min-width: 1650px) {
  .page-home .news-section-head { height: 64px; }
  .page-home .news-section-head h2 { font-size: 28px !important; }
  .page-home .news-tile-content > strong { font-size: 22px; }
  .page-home .news-tile-small .news-tile-content > strong { font-size: 17px; }
  .page-home .portal-signoff { height: 48px; }
}

/* Modern inner-page hero. */
body:not(.page-home) .header {
  height: 360px !important;
  min-height: 360px !important;
  background: url(../images/frogmare-dragon-hero-v3.png) center 38% / cover no-repeat !important;
}

body:not(.page-home) .header::before {
  background:
    linear-gradient(90deg, rgba(6, 5, 10, .92) 0%, rgba(6, 5, 10, .55) 43%, rgba(6, 5, 10, .14) 73%),
    linear-gradient(180deg, rgba(5, 4, 9, .03) 30%, rgba(7, 6, 11, .48) 72%, #08070c 100%) !important;
}

body:not(.page-home) .site-hero-inner {
  width: var(--v6-shell) !important;
  max-width: 1600px !important;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  margin: 0 auto;
  padding: 57px 0 82px !important;
  text-align: left;
}

.inner-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  color: var(--v6-gold-bright);
  font: 750 10px/1 var(--v5-ui, sans-serif);
  letter-spacing: .23em;
  text-transform: uppercase;
  text-shadow: 0 0 14px rgba(224, 178, 87, .25);
}

.inner-hero-eyebrow::before { content: ""; width: 34px; height: 1px; background: linear-gradient(90deg, #d3334e, var(--v6-gold-bright)); box-shadow: 0 0 10px #b32039; }
body:not(.page-home) .site-hero-inner h1 {
  margin: 0 !important;
  color: #f2efed !important;
  font: 600 clamp(43px, 5.1vw, 76px)/.92 Georgia, "Times New Roman", serif !important;
  letter-spacing: .025em;
  text-shadow: 0 4px 24px #000;
  text-transform: uppercase;
}

body:not(.page-home) .site-hero-inner > p {
  max-width: 620px;
  margin: 15px 0 0;
  color: #c5bdc1;
  font: 14px/1.5 var(--v5-ui, sans-serif);
}

.inner-breadcrumb { display: flex; align-items: center; gap: 10px; margin-top: 19px; color: #7e757d; font: 650 9px/1 var(--v5-ui, sans-serif); letter-spacing: .1em; text-transform: uppercase; }
.inner-breadcrumb a { color: #c4a267 !important; text-decoration: none; }
.inner-breadcrumb span { color: #8b2637; font-size: 7px; }
.inner-breadcrumb b { color: #918991; font-weight: 600; }

/* Correct 3-cell status rail and fluid page shell. */
body:not(.page-home) .live-status {
  width: var(--v6-shell) !important;
  max-width: 1600px !important;
  height: 72px !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  margin: -72px auto 28px !important;
  overflow: visible;
  border: 1px solid transparent !important;
  border-radius: 6px !important;
  background:
    linear-gradient(180deg, rgba(16, 14, 21, .98), rgba(7, 7, 11, .99)) padding-box,
    linear-gradient(120deg, rgba(240, 207, 141, .72), rgba(121, 68, 28, .42) 42%, rgba(174, 35, 57, .48)) border-box !important;
  box-shadow: inset 0 1px rgba(255, 238, 198, .08), 0 17px 40px rgba(0, 0, 0, .54), 0 0 24px rgba(205, 161, 80, .06) !important;
}

body:not(.page-home) .live-status::before { display: none; }
body:not(.page-home) .live-status > div { min-height: 70px; justify-content: flex-start; gap: 14px; padding: 11px clamp(20px, 3vw, 48px); border-right: 1px solid rgba(205, 166, 101, .24); }
body:not(.page-home) .live-status > div:last-child { grid-column: auto !important; border-right: 0; }
body:not(.page-home) .live-status small { color: #9f969d; font-size: 9px; letter-spacing: .14em; }
body:not(.page-home) .live-status strong { color: var(--v6-gold-bright); font-size: 17px; }
body:not(.page-home) .live-status > div:first-child strong { color: #43e49d; }
body:not(.page-home) .status-icon { color: #d9c59a; text-shadow: 0 0 13px rgba(222, 179, 92, .2); }

body:not(.page-home) .container {
  width: var(--v6-shell) !important;
  max-width: 1600px !important;
  min-height: 0 !important;
  display: block !important;
  margin: 0 auto !important;
  padding: 0 0 clamp(40px, 5vw, 76px) !important;
}

body:not(.page-home) .container > :is(.sidebar, .right-sidebar) { display: none !important; }
body:not(.page-home) .container > .content,
body:not(.page-home) .content {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  float: none !important;
  margin: 0 !important;
}

body:not(.page-home) .page-block {
  position: relative;
  isolation: isolate;
  width: 100% !important;
  min-height: 0 !important;
  overflow: hidden;
  padding: clamp(28px, 4vw, 64px) !important;
  border: 1px solid transparent !important;
  border-radius: 10px !important;
  background:
    linear-gradient(145deg, rgba(18, 15, 21, .985), rgba(7, 7, 11, .99)) padding-box,
    linear-gradient(125deg, rgba(242, 211, 148, .54), rgba(154, 43, 59, .33) 46%, rgba(85, 73, 63, .2)) border-box !important;
  box-shadow:
    inset 0 1px rgba(255, 239, 199, .075),
    inset 0 0 60px rgba(106, 18, 40, .05),
    0 24px 65px rgba(0, 0, 0, .46),
    0 0 34px rgba(202, 157, 76, .04) !important;
}

body:not(.page-home) .page-block::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: -1;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(248, 220, 157, .72) 28%, rgba(171, 33, 54, .5) 72%, transparent);
  box-shadow: 0 0 19px rgba(222, 176, 86, .16);
}

body:not(.page-home) .page-block::after {
  content: "";
  position: absolute;
  top: -180px;
  right: -120px;
  z-index: -2;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(142, 20, 47, .1), transparent 67%);
  pointer-events: none;
}

body:not(.page-home) .page-block h1 {
  margin: 0 0 24px !important;
  color: var(--v6-text) !important;
  font: 600 clamp(32px, 3.3vw, 52px)/1 Georgia, "Times New Roman", serif !important;
  letter-spacing: .025em;
  text-transform: uppercase;
}

body:not(.page-home) .page-block h2 { color: #eee9e7 !important; font-family: Georgia, "Times New Roman", serif !important; font-weight: 500; }
body:not(.page-home) .page-block h3 { color: #eee9e7 !important; }
body:not(.page-home) .eyebrow { color: var(--v6-gold-bright) !important; font-size: 10px; letter-spacing: .18em; }

/* Fields and form layout. */
body:not(.page-home) :is(.register-form, .support-form, .resend-form, .ticket-player-reply, .unstuck-panel form) { max-width: none !important; }
body:not(.page-home) :is(.register-form, .support-form, .resend-form, .ticket-player-reply, .unstuck-panel form) label { min-width: 0; color: #d9d1d3; font: 650 11px/1.35 var(--v5-ui, sans-serif); letter-spacing: .035em; }
body:not(.page-home) :is(.register-form, .support-form, .resend-form, .ticket-player-reply, .unstuck-panel form) :is(input:not([type="hidden"]), select, textarea) {
  box-sizing: border-box;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 48px;
  margin: 0 !important;
  padding: 12px 14px !important;
  border: 1px solid rgba(204, 164, 99, .28) !important;
  border-radius: 5px !important;
  outline: 0;
  background: linear-gradient(180deg, #08070c, #100d14) !important;
  color: var(--v6-text) !important;
  font: 13px/1.35 var(--v5-ui, sans-serif) !important;
  box-shadow: inset 0 3px 10px rgba(0, 0, 0, .58), 0 1px rgba(255, 255, 255, .025) !important;
}

body:not(.page-home) :is(.register-form, .support-form, .resend-form, .ticket-player-reply, .unstuck-panel form) :is(input, select, textarea):focus {
  border-color: var(--v6-gold-bright) !important;
  box-shadow: inset 0 2px 8px rgba(0, 0, 0, .52), 0 0 0 3px rgba(189, 27, 56, .15), 0 0 18px rgba(219, 175, 91, .12) !important;
}

body:not(.page-home) textarea { min-height: 150px; resize: vertical; }
body:not(.page-home) select { margin-right: 0 !important; appearance: auto; }
body:not(.page-home) label small { color: #8d858c; font-size: 10px; font-weight: 400; line-height: 1.5; }

/* Registration. */
.page-register .register-page-block { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); gap: clamp(26px, 4vw, 62px); align-items: start; }
.page-register .register-page-block > h1 { grid-column: 1 / -1; margin-bottom: 0 !important; }
.page-register .register-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.page-register .register-form > button { grid-column: 1 / -1; justify-self: start; min-width: 220px; }
.page-register .verification-info {
  margin: 0 !important;
  padding: 25px !important;
  border: 1px solid var(--v6-line) !important;
  border-radius: 8px !important;
  background: linear-gradient(145deg, rgba(47, 20, 31, .42), rgba(9, 8, 13, .84)) !important;
  box-shadow: inset 0 1px rgba(255, 232, 187, .04), 0 16px 34px rgba(0, 0, 0, .24);
}
.page-register .verification-info h2 { margin: 0 0 12px; font-size: 24px; }
.page-register .verification-info p { color: #b8b0b5; line-height: 1.65; }
.page-register .verification-info summary { min-height: 44px; display: flex; align-items: center; color: var(--v6-gold-bright); cursor: pointer; }
.page-register .resend-form { grid-template-columns: 1fr; align-items: stretch; }

/* Ranking cards and table. */
.page-ranking .ranking-heading { align-items: center; margin-bottom: 18px; }
.page-ranking .ranking-heading h1 { margin: 4px 0 0 !important; }
.page-ranking .ranking-intro { margin-bottom: 28px; color: var(--v6-muted); font-size: 14px; }
.page-ranking .race-rankings { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 18px; }
.page-ranking .race-ranking {
  border: 1px solid transparent !important;
  border-radius: 7px !important;
  background:
    linear-gradient(145deg, rgba(17, 14, 21, .97), rgba(8, 7, 12, .99)) padding-box,
    linear-gradient(130deg, rgba(224, 190, 122, .38), rgba(128, 34, 51, .3), rgba(89, 72, 61, .14)) border-box !important;
  box-shadow: inset 0 1px rgba(255, 235, 194, .035), 0 14px 34px rgba(0, 0, 0, .27);
}
.page-ranking .race-ranking-title { min-height: 54px; padding: 14px 17px; border-bottom: 1px solid rgba(205, 166, 101, .19); background: linear-gradient(90deg, rgba(101, 20, 39, .52), rgba(24, 15, 22, .92)); }
.page-ranking .race-ranking-title h2 { font-size: 18px !important; }
.page-ranking .race-ranking-title a { min-height: 44px; display: inline-flex; align-items: center; color: var(--v6-gold-bright) !important; font-size: 10px; }
.page-ranking .race-ranking ol { padding: 8px 17px 12px; }
.page-ranking .race-ranking li { min-height: 37px; padding: 8px 0; border-bottom-color: rgba(205, 166, 101, .1); }
.page-ranking .race-ranking li::before { color: #d84a58; }
.page-ranking .race-ranking li span { color: #e6dfe1; }
.page-ranking .race-ranking li b { color: #a9a0a6; }
.page-ranking .table-scroll { width: 100%; overflow-x: auto; border-radius: 7px; scrollbar-color: var(--v6-gold) #0a090e; }
.page-ranking .ranking-table { min-width: 680px; display: table !important; overflow: visible !important; border-collapse: separate !important; border-spacing: 0 !important; border: 1px solid var(--v6-line) !important; border-radius: 7px; background: rgba(7, 7, 11, .82); }
.page-ranking .ranking-table th { padding: 15px 17px !important; border-bottom: 1px solid rgba(205, 166, 101, .3); background: linear-gradient(180deg, rgba(91, 22, 39, .7), rgba(23, 14, 21, .97)) !important; color: var(--v6-gold-bright) !important; }
.page-ranking .ranking-table td { padding: 14px 17px !important; border-bottom: 1px solid rgba(205, 166, 101, .1); color: #d8d1d3; }
.page-ranking .ranking-table tbody tr:nth-child(even) td { background: rgba(255, 255, 255, .014); }
.page-ranking .ranking-table tbody tr:hover td { background: rgba(189, 27, 56, .09); }

/* Event calendar. */
.page-events .calendar-header { align-items: center; margin-bottom: 26px; }
.page-events .calendar-header h1 { margin: 4px 0 0 !important; }
.page-events .calendar-header > strong { color: var(--v6-gold-bright); font-size: 20px; }
.page-events .calendar-scroll { width: 100%; overflow-x: auto; padding: 9px; border: 1px solid var(--v6-line); border-radius: 8px; background: rgba(5, 5, 9, .46); scrollbar-color: var(--v6-gold) #0a090e; }
.page-events .calendar-grid { min-width: 900px !important; display: grid; grid-template-columns: repeat(7, minmax(110px, 1fr)) !important; gap: 8px !important; padding: 0; }
.page-events .calendar-weekday { padding: 11px; color: #bdb2b6; }
.page-events .calendar-day { min-height: 134px !important; padding: 11px !important; border: 1px solid rgba(205, 166, 101, .14) !important; border-radius: 6px !important; background: linear-gradient(145deg, rgba(15, 13, 18, .96), rgba(7, 7, 11, .98)) !important; box-shadow: inset 0 1px rgba(255, 237, 201, .025); }
.page-events .calendar-day.has-event { border-color: rgba(208, 164, 88, .38) !important; background: linear-gradient(145deg, rgba(70, 20, 35, .48), rgba(8, 7, 12, .98)) !important; }
.page-events .calendar-day.is-today { box-shadow: inset 0 0 0 1px var(--v6-gold-bright), 0 0 20px rgba(210, 164, 78, .13) !important; }
.page-events .calendar-number { color: #aaa0a5; font-family: var(--v5-ui, sans-serif); }
.page-events .calendar-event { margin-top: 6px !important; padding: 8px !important; border: 1px solid rgba(226, 185, 105, .17); background: rgba(129, 25, 46, .24); }
.page-events .calendar-event b { color: var(--v6-gold-bright) !important; }
.page-events .event-legend { display: flex !important; margin-top: 22px; padding: 17px; border-color: var(--v6-line); background: rgba(7, 7, 11, .5); }
.page-events .event-dot { background: var(--v6-gold); box-shadow: 0 0 9px var(--v6-gold); }

/* Download. */
.page-download .download-page { min-height: 520px !important; }
.page-download .download-locked { min-height: 360px; margin-top: 8px; padding: clamp(28px, 5vw, 64px); border: 1px dashed rgba(219, 180, 103, .36); border-radius: 9px; background: radial-gradient(circle at 50% 14%, rgba(137, 27, 49, .18), transparent 48%), rgba(7, 7, 11, .48); }
.page-download .lock-icon { font-size: 46px; filter: sepia(.7) saturate(.8) drop-shadow(0 0 13px rgba(222, 178, 90, .24)); }
.page-download .download-locked h2 { margin: 3px 0 0; font-size: 27px; }
.page-download .download-locked p { max-width: 630px; color: #b7afb4; font-size: 14px; line-height: 1.65; }
.page-download .download-image { float: right; width: min(38%, 430px) !important; max-width: 430px !important; margin: 0 0 28px clamp(24px, 4vw, 58px); border: 1px solid var(--v6-line); border-radius: 8px; box-shadow: 0 20px 48px rgba(0, 0, 0, .42); }

/* Support. */
.page-support .support-heading { align-items: center; margin-bottom: 21px; }
.page-support .support-heading h1 { margin: 4px 0 0 !important; }
.page-support .signed-support { border-color: var(--v6-line); color: var(--v6-gold-bright); background: rgba(64, 29, 36, .4); }
.page-support .support-login-note,
.page-support .unstuck-panel { margin: 18px 0 24px; padding: 20px; border: 1px solid var(--v6-line); border-radius: 7px; background: linear-gradient(145deg, rgba(72, 23, 36, .28), rgba(8, 7, 12, .7)); }
.page-support .support-login-note strong { color: var(--v6-gold-bright); }
.page-support .support-login-note p { margin-bottom: 0; color: #b7afb4; }
.page-support .support-form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px 20px; }
.page-support .support-form label:has(textarea) { grid-column: 1 / -1; }
.page-support .support-form button { grid-column: 1 / -1; justify-self: start; min-width: 190px; }
.page-support .unstuck-panel form { display: grid; grid-template-columns: minmax(220px, 1fr) auto; align-items: end; gap: 14px; }
.page-support .ticket-list { gap: 14px; }
.page-support .ticket-card { border: 1px solid rgba(205, 166, 101, .2) !important; border-left: 3px solid #9d3447 !important; border-radius: 7px; background: linear-gradient(145deg, rgba(17, 14, 21, .96), rgba(8, 7, 12, .98)) !important; }
.page-support .ticket-card summary { min-height: 64px; padding: 16px 18px; }
.page-support .ticket-card summary:hover { background: rgba(187, 27, 56, .09); }
.page-support .ticket-body { padding: 17px 18px 18px; border-top-color: var(--v6-line); }
.page-support .ticket-reply { background: rgba(109, 34, 52, .18); }

/* Legal pages. */
:is(.page-imprint, .page-privacy) .legal-page { padding-right: clamp(30px, 13vw, 220px) !important; }
:is(.page-imprint, .page-privacy) .legal-page > :is(p, h2, .legal-warning) { max-width: 1080px; }
:is(.page-imprint, .page-privacy) .legal-page p { color: #bcb4b8; font-size: 14px; line-height: 1.78; }
:is(.page-imprint, .page-privacy) .legal-page h2 { margin: 31px 0 10px; padding-left: 14px; border-left: 2px solid var(--v6-gold); font-size: 22px; }
:is(.page-imprint, .page-privacy) .legal-warning { margin: 18px 0 30px; padding: 18px 20px; border: 1px solid rgba(222, 175, 90, .4); border-radius: 6px; background: linear-gradient(135deg, rgba(81, 43, 22, .5), rgba(30, 17, 17, .68)); color: #f2d7a6; }

/* Donation page shares the complete public shell. */
.page-donation .header { height: 330px !important; min-height: 330px !important; }
.page-donation .site-hero-inner { padding-bottom: 54px !important; }
body.page-donation main.payment-page {
  width: var(--v6-shell) !important;
  max-width: 1600px !important;
  min-height: 0 !important;
  float: none !important;
  margin: -34px auto 0 !important;
  padding: 0 0 clamp(45px, 6vw, 90px) !important;
}
body.page-donation .donation-card { width: 100% !important; max-width: 980px; margin: 0 auto !important; padding: clamp(30px, 5vw, 64px) !important; }
.page-donation .donation-lead { max-width: 720px; color: #c0b7bc; }
.page-donation .donation-notice { max-width: 680px; border-color: var(--v6-line); background: rgba(82, 31, 38, .22); }
.page-donation .paypal-donate-button { min-height: 54px; max-width: 370px; border: 1px solid #ffe59b; box-shadow: inset 0 1px rgba(255,255,255,.5), 0 10px 28px rgba(0,0,0,.4), 0 0 22px rgba(255,196,57,.13); }

/* Footer uses the same browser-aware shell. */
body:not(.page-home) footer,
.page-donation footer {
  width: var(--v6-shell) !important;
  max-width: 1600px !important;
  margin: 0 auto !important;
  padding: 30px 0 44px !important;
  border-top: 1px solid rgba(205, 166, 101, .15) !important;
}
.footer-brand { color: #f2ece9 !important; font-family: Georgia, "Times New Roman", serif; }
.footer-brand b { color: #c83249; }
.f-menu li { padding: 0 !important; border-right: 0 !important; }
.f-menu a { min-height: 36px; display: inline-flex; align-items: center; color: #9b9299 !important; }
.f-menu a:hover { color: var(--v6-gold-bright) !important; }

@media (max-width: 1200px) {
  body:not(.page-home) .header { height: 340px !important; min-height: 340px !important; }
  body:not(.page-home) .site-hero-inner { padding-bottom: 72px !important; }
  body:not(.page-home) .live-status { margin-top: -72px !important; }
  :is(.page-imprint, .page-privacy) .legal-page { padding-right: clamp(28px, 7vw, 70px) !important; }
}

@media (max-width: 900px) {
  :root { --v6-shell: calc(100% - 32px); }
  body:not(.page-home) .header { height: 320px !important; min-height: 320px !important; background-position: 58% 36% !important; }
  body:not(.page-home) .site-hero-inner { padding: 76px 0 82px !important; }
  body:not(.page-home) .site-hero-inner h1 { font-size: clamp(38px, 8vw, 58px) !important; }
  body:not(.page-home) .site-hero-inner > p { max-width: 520px; }
  body:not(.page-home) .live-status { height: 68px !important; margin-top: -68px !important; }
  body:not(.page-home) .live-status > div { min-height: 66px; padding-inline: 22px; }
  .page-register .register-page-block { grid-template-columns: 1fr; }
  .page-register .register-page-block > h1 { grid-column: 1; }
  .page-events .calendar-grid { min-width: 780px !important; }
  .page-support .unstuck-panel form { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  :root { --v6-shell: calc(100% - 24px); }
  body:not(.page-home) .header { height: 306px !important; min-height: 306px !important; background-size: auto 390px !important; background-position: center top !important; }
  body:not(.page-home) .header::before { background: linear-gradient(180deg, rgba(6,5,10,.15), rgba(6,5,10,.42) 48%, #08070c 100%) !important; }
  body:not(.page-home) .site-hero-inner { align-items: center; justify-content: center; padding: 74px 0 75px !important; text-align: center; }
  .inner-hero-eyebrow { font-size: 9px; }
  body:not(.page-home) .site-hero-inner h1 { font-size: clamp(34px, 11vw, 46px) !important; }
  body:not(.page-home) .site-hero-inner > p { display: none; }
  .inner-breadcrumb { justify-content: center; margin-top: 14px; }
  body:not(.page-home) .live-status { width: var(--v6-shell) !important; height: auto !important; grid-template-columns: 1fr !important; margin: -32px auto 18px !important; clip-path: none; }
  body:not(.page-home) .live-status > div { min-height: 58px; padding: 9px 22px; border-right: 0; border-bottom: 1px solid rgba(205, 166, 101, .18); }
  body:not(.page-home) .live-status > div:last-child { border-bottom: 0; }
  body:not(.page-home) .container { padding-bottom: 42px !important; }
  body:not(.page-home) .page-block { padding: 25px 18px !important; border-radius: 8px !important; }
  body:not(.page-home) .page-block h1 { margin-bottom: 21px !important; font-size: 32px !important; }
  body:not(.page-home) :is(.blue-a, .green-a, .register-form button, .support-form button, .resend-form button, .unstuck-panel button) { width: 100%; min-height: 48px !important; }
  .page-register .register-form,
  .page-support .support-form,
  .page-support .ticket-player-reply,
  .page-register .resend-form { grid-template-columns: 1fr !important; }
  .page-register .register-form > button,
  .page-support .support-form button { grid-column: 1; justify-self: stretch; }
  .page-register .verification-info { padding: 20px !important; }
  .page-ranking .ranking-heading,
  .page-events .calendar-header,
  .page-support .support-heading,
  .page-support .ticket-title { align-items: flex-start !important; flex-direction: column; }
  .page-ranking .ranking-heading .blue-a { width: 100%; }
  .page-ranking .race-rankings { grid-template-columns: 1fr; }
  .page-events .calendar-scroll { overflow: visible; padding: 0; border: 0; background: transparent; }
  .page-events .calendar-grid { min-width: 0 !important; display: grid !important; grid-template-columns: 1fr !important; gap: 10px !important; }
  .page-events .calendar-weekday,
  .page-events .calendar-day.is-empty,
  .page-events .calendar-day:not(.has-event):not(.is-today) { display: none !important; }
  .page-events .calendar-day { min-height: 0 !important; display: grid; grid-template-columns: 92px minmax(0, 1fr); align-items: start; gap: 12px; padding: 14px !important; }
  .page-events .calendar-day::before { content: attr(data-label); grid-row: 1 / span 3; color: var(--v6-gold-bright); font: 700 11px/1.45 var(--v5-ui, sans-serif); letter-spacing: .05em; text-transform: uppercase; }
  .page-events .calendar-number { display: none; }
  .page-events .calendar-event { grid-column: 2; margin: 0 0 7px !important; }
  .page-events .event-legend { display: grid !important; gap: 10px; }
  .page-download .download-page { min-height: 0 !important; }
  .page-download .download-locked { min-height: 330px; padding-inline: 20px; }
  .page-download .download-image { float: none; width: 100% !important; max-width: none !important; margin: 0 0 24px; }
  .page-support .support-form label,
  .page-support .support-form label:has(textarea) { grid-column: 1 !important; }
  .page-support .ticket-card summary { padding: 15px; }
  .page-support .ticket-body { padding: 15px; }
  :is(.page-imprint, .page-privacy) .legal-page { padding-right: 18px !important; }
  :is(.page-imprint, .page-privacy) .legal-page p { font-size: 13px; }
  .page-donation .header { height: 300px !important; min-height: 300px !important; }
  .site-nav-open .payment-page { display: none !important; }
  body.page-donation main.payment-page { margin-top: -22px !important; }
  body.page-donation .donation-card { padding: 28px 18px !important; }
  body:not(.page-home) footer,
  .page-donation footer { padding: 26px 0 36px !important; }
  .footer-nav { flex-direction: column; }
  .f-menu { width: 100%; }
  .f-menu ul { width: 100%; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; gap: 3px 12px !important; }
  .f-menu a { min-height: 44px; padding: 6px 0 !important; border-bottom: 1px solid rgba(205, 166, 101, .1); }
  .inner-breadcrumb a { min-height: 40px; display: inline-flex; align-items: center; }
}

/* Wide desktop mode: keep the portal readable on 2K, ultrawide and zoomed-out desktops. */
@media (min-width: 1800px) {
  :root {
    --v6-shell: min(2400px, calc(100% - clamp(160px, 14vw, 420px)));
  }

  .menu-top {
    height: 60px !important;
    gap: 34px !important;
    padding-inline: max(7vw, calc((100vw - 2400px) / 2)) !important;
  }
  .site-navigation { gap: clamp(38px, 2.15vw, 62px) !important; }
  .site-navigation a,
  .site-account-nav a {
    min-height: 60px !important;
    font-size: clamp(11px, .5vw, 13px) !important;
  }
  .site-account-nav { gap: 26px !important; }
  .nav-divider { height: 28px; }
  .language-picker summary {
    min-width: 58px;
    min-height: 60px;
    font-size: clamp(11px, .5vw, 13px);
  }
  .language-picker > div { top: 59px; width: 185px; padding: 14px; }
  .language-picker > div > * { padding: 9px 11px; font-size: 13px; }
  .site-login-link {
    width: 118px !important;
    min-width: 118px !important;
    min-height: 40px !important;
    padding-inline: 18px !important;
    font-size: 12px !important;
  }

  /* Home: enlarge the whole composition, not just the outer frame. */
  .page-home .site-hero,
  .page-home .container {
    width: var(--v6-shell) !important;
    max-width: 2400px !important;
  }
  .page-home .header {
    height: clamp(580px, 24.2vw, 640px) !important;
    min-height: clamp(580px, 24.2vw, 640px) !important;
  }
  .page-home .site-hero {
    padding-top: clamp(210px, 9vw, 245px) !important;
  }
  .page-home .hero-brand-mark {
    top: -52px;
    width: clamp(92px, 4.2vw, 126px);
    height: clamp(92px, 4.2vw, 126px);
  }
  .page-home .hero-brand strong {
    font-size: clamp(66px, 3vw, 88px);
  }
  .page-home .hero-brand small {
    font-size: clamp(40px, 1.75vw, 52px);
  }
  .page-home .site-hero h1 {
    margin-top: 20px !important;
    font-size: clamp(39px, 1.72vw, 50px) !important;
  }
  .page-home .site-hero-actions {
    gap: 28px;
    margin-top: 22px;
  }
  .page-home .site-cta,
  .page-home .site-cta.secondary {
    width: clamp(290px, 12.8vw, 350px);
    min-height: 60px !important;
    padding-inline: 30px !important;
    font-size: clamp(14px, .62vw, 16px) !important;
  }
  .page-home .site-cta.secondary { width: clamp(275px, 12vw, 330px); }

  .page-home .live-status {
    width: min(1750px, 69vw) !important;
    max-width: 1750px !important;
    height: 88px !important;
    margin-top: -88px !important;
  }
  .page-home .live-status::before { top: -17px; font-size: 34px; }
  .page-home .live-status > div {
    min-height: 86px;
    gap: 18px;
    padding: 12px clamp(38px, 2.6vw, 72px);
  }
  .page-home .live-status small { font-size: clamp(11px, .48vw, 13px); }
  .page-home .live-status strong { margin-top: 5px; font-size: clamp(20px, .86vw, 24px); }
  .page-home .status-dot { width: 22px; height: 22px; flex-basis: 22px; }
  .page-home .status-icon { flex-basis: 32px; font-size: 29px; }

  .page-home .news-section-head { height: clamp(76px, 3.4vw, 94px); gap: 24px; }
  .page-home .news-section-head h2 { font-size: clamp(34px, 1.5vw, 42px) !important; }
  .page-home .news-section-head a { min-height: 46px; display: inline-flex; align-items: center; font-size: clamp(11px, .46vw, 13px); }
  .page-home .news-showcase {
    height: clamp(250px, 11.2vw, 310px);
    gap: clamp(16px, .75vw, 22px);
  }
  .page-home .news-tile-content { padding: clamp(27px, 1.35vw, 38px); }
  .page-home .news-tag {
    top: clamp(24px, 1.15vw, 32px);
    left: clamp(27px, 1.35vw, 38px);
    padding: 7px 14px;
    font-size: clamp(10px, .42vw, 12px);
  }
  .page-home .news-tile-content > strong {
    font-size: clamp(25px, 1.08vw, 31px);
    line-height: 1.08;
  }
  .page-home .news-tile-featured .news-tile-content > strong { max-width: 680px; }
  .page-home .news-tile-small .news-tile-content > strong { font-size: clamp(21px, .88vw, 26px); }
  .page-home .news-tile-content > small { margin-top: 10px; font-size: clamp(14px, .58vw, 17px); }
  .page-home .news-tile-small .news-tile-content > small { margin-top: 8px; font-size: clamp(13px, .54vw, 16px); }
  .page-home .news-tile-content time { margin-top: 13px; font-size: clamp(11px, .46vw, 13px); }
  .page-home .news-tile-content i { right: 30px; bottom: 24px; font-size: 28px; }

  .page-home .portal-bottom-row {
    height: clamp(185px, 8.2vw, 225px);
    gap: clamp(16px, .75vw, 22px);
    margin-top: clamp(16px, .75vw, 22px);
  }
  .page-home .compact-account header,
  .page-home .compact-ranking header {
    height: 52px;
    gap: 13px;
    padding-inline: 26px;
  }
  .page-home .compact-account header span,
  .page-home .compact-ranking header span { font-size: 21px; }
  .page-home .compact-account h2,
  .page-home .compact-ranking h2 { font-size: clamp(14px, .58vw, 17px) !important; }
  .page-home .compact-account form {
    gap: 12px 16px;
    padding: 3px 26px 18px;
  }
  .page-home .compact-account input {
    height: 48px;
    padding-inline: 15px;
    font-size: clamp(12px, .5vw, 14px) !important;
  }
  .page-home .compact-account button {
    width: 220px;
    height: 48px;
    min-height: 48px !important;
    font-size: clamp(12px, .5vw, 14px) !important;
  }
  .page-home .compact-account form > a { min-height: 44px; display: inline-flex; align-items: center; font-size: clamp(12px, .5vw, 14px); }
  .page-home .compact-account-signed { gap: 22px; padding: 22px 27px; }
  .page-home .compact-account-signed strong { font-size: 30px; }
  .page-home .compact-account-signed a { min-height: 44px; display: inline-flex; align-items: center; font-size: 14px; }
  .page-home .compact-ranking header a { min-height: 44px; display: inline-flex; align-items: center; font-size: clamp(10px, .42vw, 12px); }
  .page-home .compact-ranking ol { padding: 0 27px 14px; }
  .page-home .compact-ranking li {
    height: 43px;
    grid-template-columns: 38px 1fr auto;
  }
  .page-home .compact-ranking li > span { width: 23px; height: 23px; font-size: 11px; }
  .page-home .compact-ranking li strong { font-size: clamp(13px, .54vw, 16px); }
  .page-home .compact-ranking li small { font-size: clamp(12px, .5vw, 14px); }
  .page-home .compact-ranking li.empty-state { font-size: 14px; }
  .page-home .legend-banner { padding-inline: clamp(42px, 2.2vw, 64px); }
  .page-home .legend-banner > span { font-size: clamp(20px, .82vw, 24px); }
  .page-home .legend-banner strong { font-size: clamp(27px, 1.1vw, 32px); }
  .page-home .legend-banner i { font-size: 24px; }
  .page-home .portal-signoff { height: 62px; gap: 22px; }
  .page-home .portal-signoff b,
  .page-home .portal-signoff em { font-size: clamp(9px, .38vw, 11px); }

  /* Inner routes: use the same readable wide-desktop scale. */
  body:not(.page-home) .header,
  .page-donation .header {
    height: clamp(430px, 18vw, 510px) !important;
    min-height: clamp(430px, 18vw, 510px) !important;
  }
  body:not(.page-home) .site-hero-inner {
    width: var(--v6-shell) !important;
    max-width: 2400px !important;
    padding: 92px 0 126px !important;
  }
  .inner-hero-eyebrow { margin-bottom: 15px; font-size: clamp(12px, .5vw, 14px); }
  .inner-hero-eyebrow::before { width: 48px; }
  body:not(.page-home) .site-hero-inner h1 { font-size: clamp(78px, 4vw, 112px) !important; }
  body:not(.page-home) .site-hero-inner > p {
    max-width: 900px;
    margin-top: 20px;
    font-size: clamp(16px, .68vw, 20px);
  }
  .inner-breadcrumb { gap: 14px; margin-top: 25px; font-size: clamp(11px, .46vw, 13px); }
  .inner-breadcrumb a { min-height: 44px; display: inline-flex; align-items: center; }

  body:not(.page-home) .live-status {
    width: var(--v6-shell) !important;
    max-width: 2400px !important;
    height: 92px !important;
    margin: -92px auto 36px !important;
  }
  body:not(.page-home) .live-status > div {
    min-height: 90px;
    gap: 20px;
    padding: 14px clamp(36px, 2.4vw, 68px);
  }
  body:not(.page-home) .live-status small { font-size: clamp(11px, .47vw, 13px); }
  body:not(.page-home) .live-status strong { font-size: clamp(20px, .86vw, 24px); }
  body:not(.page-home) .status-icon { font-size: 28px; }
  body:not(.page-home) .container {
    width: var(--v6-shell) !important;
    max-width: 2400px !important;
    padding-bottom: clamp(80px, 5vw, 130px) !important;
  }
  body:not(.page-home) .page-block {
    padding: clamp(62px, 4vw, 110px) !important;
    border-radius: 12px !important;
    font-size: clamp(16px, .66vw, 19px);
  }
  body:not(.page-home) .page-block h1 { font-size: clamp(55px, 2.8vw, 78px) !important; }
  body:not(.page-home) .page-block h2 { font-size: clamp(25px, 1.12vw, 32px); }
  body:not(.page-home) .eyebrow { font-size: clamp(11px, .46vw, 13px); }
  body:not(.page-home) :is(.blue-a, .green-a, .register-form button, .support-form button, .resend-form button, .unstuck-panel button) {
    min-height: 58px !important;
    padding: 15px 28px !important;
    font-size: clamp(13px, .54vw, 15px) !important;
  }
  body:not(.page-home) :is(.register-form, .support-form, .resend-form, .ticket-player-reply, .unstuck-panel form) label {
    font-size: clamp(13px, .54vw, 15px);
  }
  body:not(.page-home) :is(.register-form, .support-form, .resend-form, .ticket-player-reply, .unstuck-panel form) :is(input:not([type="hidden"]), select, textarea) {
    min-height: 60px;
    padding: 15px 18px !important;
    font-size: clamp(15px, .62vw, 18px) !important;
  }
  body:not(.page-home) textarea { min-height: 190px; }

  .page-register .register-page-block { grid-template-columns: minmax(0, 1.35fr) minmax(430px, .65fr); gap: clamp(52px, 4vw, 100px); }
  .page-register .register-form { gap: 24px; }
  .page-register .verification-info { padding: 34px !important; }
  .page-register .verification-info h2 { font-size: 31px; }
  .page-register .verification-info p { font-size: 17px; }

  .page-ranking .ranking-intro { margin-bottom: 38px; font-size: clamp(16px, .66vw, 19px); }
  .page-ranking .race-rankings { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
  .page-ranking .race-ranking-title { min-height: 72px; padding: 16px 22px; }
  .page-ranking .race-ranking-title h2 { font-size: clamp(22px, .92vw, 27px) !important; }
  .page-ranking .race-ranking-title a { font-size: clamp(11px, .46vw, 13px); }
  .page-ranking .race-ranking ol { padding: 12px 22px 18px; }
  .page-ranking .race-ranking li { min-height: 49px; padding: 11px 0; font-size: clamp(14px, .58vw, 17px); }
  .page-ranking .ranking-table { min-width: 900px; }
  .page-ranking .ranking-table th,
  .page-ranking .ranking-table td { padding: 19px 22px !important; font-size: clamp(14px, .58vw, 17px); }

  .page-events .calendar-header { margin-bottom: 34px; }
  .page-events .calendar-header > strong { font-size: 28px; }
  .page-events .calendar-grid { min-width: 1200px !important; gap: 12px !important; }
  .page-events .calendar-weekday { padding: 15px; font-size: 14px; }
  .page-events .calendar-day { min-height: 185px !important; padding: 15px !important; }
  .page-events .calendar-number { font-size: 16px; }
  .page-events .calendar-event { padding: 11px !important; font-size: 15px; }
  .page-events .event-legend { padding: 22px; font-size: 16px; }

  .page-download .download-page { min-height: 640px !important; }
  .page-download .download-locked { min-height: 450px; }
  .page-download .download-locked h2 { font-size: 34px; }
  .page-download .download-locked p { max-width: 820px; font-size: 18px; }
  .page-download .download-image { max-width: 560px !important; }

  .page-support .support-form { gap: 23px 28px; }
  .page-support .support-login-note,
  .page-support .unstuck-panel { padding: 28px; }
  .page-support .ticket-card summary { min-height: 80px; padding: 20px 24px; }
  .page-support .ticket-body { padding: 22px 24px 24px; }

  :is(.page-imprint, .page-privacy) .legal-page { padding-right: clamp(100px, 12vw, 300px) !important; }
  :is(.page-imprint, .page-privacy) .legal-page > :is(p, h2, .legal-warning) { max-width: 1450px; }
  :is(.page-imprint, .page-privacy) .legal-page p { font-size: 17px; }
  :is(.page-imprint, .page-privacy) .legal-page h2 { font-size: 29px; }

  body.page-donation main.payment-page {
    width: var(--v6-shell) !important;
    max-width: 2400px !important;
    padding-bottom: 110px !important;
  }
  body.page-donation .donation-card { max-width: 1250px; }
  .page-donation .donation-lead,
  .page-donation .donation-notice,
  .page-donation .donation-external { font-size: 17px; line-height: 1.7; }
  .page-donation .paypal-donate-button { min-height: 70px; max-width: 470px; font-size: 17px; }

  body:not(.page-home) footer,
  .page-donation footer {
    width: var(--v6-shell) !important;
    max-width: 2400px !important;
    padding: 42px 0 58px !important;
  }
  .footer-brand { font-size: 23px; }
  .f-menu a { min-height: 44px; font-size: 12px; }
  .copyright { font-size: 13px; }
}

/* Standard desktop legibility: keep the compact layout, but never fall back to micro type. */
@media (min-width: 901px) and (max-width: 1799px) {
  .site-navigation a,
  .site-account-nav a,
  .language-picker summary { font-size: 11px !important; }
  .site-login-link { font-size: 11px !important; }
  .page-home .site-cta { font-size: 13px !important; }
  .page-home .news-section-head a { font-size: 10px; }
  .page-home .news-tag { font-size: 10px; }
  .page-home .news-tile-content > small { font-size: 11px; }
  .page-home .news-tile-content time { font-size: 10px; }
  .page-home .compact-account h2,
  .page-home .compact-ranking h2 { font-size: 12px !important; }
  .page-home .compact-account input { font-size: 12px !important; }
  .page-home .compact-account button,
  .page-home .compact-account form > a { font-size: 11px !important; }
  .page-home .compact-ranking header a { font-size: 10px; }
  .page-home .compact-ranking li strong { font-size: 11px; }
  .page-home .compact-ranking li small { font-size: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
