
/* Layout: black-and-brass clubhouse. The logo leads; the roll of honour is a walnut honours board with gilt lettering, echoing the tour's own markers. */
:root {
  --bg: #121211;
  --panel: #191816;
  --rule: #34302a;
  --brass: #b8955a;
  --brass-hi: #d6b77f;
  --text: #ece6d9;
  --muted: #a39d90;
  --walnut-1: #4a2d1c;
  --walnut-2: #2e1a10;
  --display: "Cinzel", "Trajan Pro", Georgia, serif;
  --serif: "Cormorant Garamond", Georgia, serif;
  --body: "Libre Franklin", "Helvetica Neue", Arial, sans-serif;
  color-scheme: dark;
}
* { box-sizing: border-box; }
body { margin: 0; }
img { max-width: 100%; }
html { background: var(--bg); }
body { background: var(--bg); color: var(--text); font: 300 17px/1.7 var(--body); padding-inline: 20px; }
a { color: var(--brass-hi); }
a:focus-visible, button:focus-visible { outline: 1px solid var(--brass-hi); outline-offset: 4px; }
.wrap { max-width: 1040px; margin-inline: auto; }

/* Header */
header.site { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 5; background: color-mix(in srgb, var(--bg) 94%, transparent); backdrop-filter: blur(6px); border-bottom: 1px solid var(--rule); margin-inline: -20px; padding: 10px 20px; }
header.site .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.mark { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--text); }
.mark img { width: 22px; height: auto; display: block; }
.mark span { font: 600 15px/1 var(--display); letter-spacing: .18em; text-transform: uppercase; }
nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 22px; flex-wrap: wrap; }
nav a { color: var(--muted); text-decoration: none; font: 500 12px/1 var(--display); letter-spacing: .16em; text-transform: uppercase; }
nav a:hover { color: var(--brass-hi); }

/* Hero */
.hero { padding-block: 56px 48px; display: grid; justify-items: center; text-align: center; gap: 22px; }
.crest { width: min(360px, 78vw); max-width: 100%; aspect-ratio: 500 / 546; -webkit-mask-image: radial-gradient(closest-side, #000 86%, transparent 100%); mask-image: radial-gradient(closest-side, #000 86%, transparent 100%); }
.crest img { width: 100%; height: auto; display: block; }
.lede { max-width: 34ch; font: italic 500 clamp(22px, 3.2vw, 28px)/1.4 var(--serif); color: var(--text); margin: 0; text-wrap: balance; }
.facts { width: 100%; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); margin-top: 18px; }
.facts div { padding: 20px 8px 18px; }
.facts div + div { border-left: 1px solid var(--rule); }
.facts b { display: block; font: 600 40px/1 var(--display); color: var(--brass-hi); font-variant-numeric: tabular-nums lining-nums; }
.facts small { display: block; margin-top: 8px; font: 500 11px/1 var(--display); color: var(--muted); letter-spacing: .18em; text-transform: uppercase; }

/* Sections */
section { padding-block: 64px; border-top: 1px solid var(--rule); }
.kicker { font: 500 11px/1 var(--display); letter-spacing: .24em; text-transform: uppercase; color: var(--brass); margin: 0 0 14px; display: flex; align-items: center; gap: 12px; }
.kicker::after { content: ""; width: 48px; height: 1px; background: var(--brass); }
h2 { font: 600 clamp(28px, 4.4vw, 40px)/1.15 var(--display); letter-spacing: .06em; text-transform: uppercase; margin: 0 0 22px; text-wrap: balance; color: var(--text); }
.cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; }
.cols > * { min-width: 0; }
p { margin: 0 0 14px; max-width: 62ch; }
.rules { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; counter-reset: r; }
.rules li { counter-increment: r; display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 10px; padding-block: 16px; border-top: 1px solid var(--rule); }
.rules li::before { content: counter(r, upper-roman); font: 600 18px/1.6 var(--display); color: var(--brass); }
.rules p { margin: 0; }

/* Honours board */
.board { background: linear-gradient(180deg, var(--walnut-1), var(--walnut-2)); border-radius: 160px 160px 10px 10px / 46px 46px 10px 10px; padding: 14px; box-shadow: 0 24px 50px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.06); max-width: 760px; margin-inline: auto; }
.board-inner { border: 1px solid var(--brass); border-radius: 150px 150px 6px 6px / 40px 40px 6px 6px; padding: 34px clamp(16px, 5vw, 56px) 36px; text-align: center; }
.board-inner h3 { margin: 0; font: 600 clamp(18px, 3vw, 24px)/1.3 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--brass-hi); }
.board-sub { margin: 6px 0 0; font: italic 500 18px/1.4 var(--serif); color: #d8c7a5; }
.orn { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 18px auto 10px; }
.orn::before, .orn::after { content: ""; width: 90px; height: 1px; background: var(--brass); }
.orn i { width: 5px; height: 5px; border-radius: 50%; background: var(--brass); }
.honours { list-style: none; margin: 0; padding: 0; }
.honours li { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 14px; align-items: baseline; text-align: left; padding: 11px 0; border-bottom: 1px solid rgba(184,149,90,.22); }
.honours li:last-child { border-bottom: 0; }
.h-yr { font: 600 17px/1 var(--display); color: var(--brass); font-variant-numeric: tabular-nums lining-nums; }
.h-name { display: block; font: 600 clamp(17px, 2.6vw, 21px)/1.25 var(--display); letter-spacing: .08em; text-transform: uppercase; color: var(--brass-hi); text-shadow: 0 1px 0 rgba(0,0,0,.45); }
.h-meta { display: block; font: italic 500 16px/1.4 var(--serif); color: #cdbb98; }
.honours li.open .h-name { color: #cdbb98; font-weight: 500; }

.records { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 40px; border-top: 1px solid var(--rule); }
.records div { padding: 18px 16px 0 0; }
.records div + div { padding-left: 16px; border-left: 1px solid var(--rule); }
.records b { display: block; font: 600 26px/1 var(--display); color: var(--brass-hi); }
.records span { display: block; font-size: 14px; color: var(--muted); margin-top: 8px; }

/* Photos: tiles take the shape of the tour markers */
.album-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-top: 10px; }
.album { aspect-ratio: 3 / 4; max-width: 100%; background: linear-gradient(180deg, var(--walnut-1), var(--walnut-2)); border-radius: 60% 60% 8px 8px / 16% 16% 8px 8px; padding: 8px; }
.album-in { height: 100%; background: #0f0e0d; border: 1px solid var(--brass); border-radius: 60% 60% 5px 5px / 15% 15% 5px 5px; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; text-align: center; gap: 4px; padding: 16px 10px 18px; }
.album-yr { font: 600 13px/1 var(--display); letter-spacing: .16em; color: var(--brass); }
.album-v { font: 600 17px/1.2 var(--display); letter-spacing: .08em; text-transform: uppercase; color: var(--text); }
.album-n { font: italic 500 15px/1.3 var(--serif); color: var(--muted); }

/* Clubs & hotels */
.ask { list-style: none; margin: 0 0 24px; padding: 0; border-top: 1px solid var(--rule); }
.ask li { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--rule); }
.ask li b { font: 500 11px/1.9 var(--display); letter-spacing: .18em; text-transform: uppercase; color: var(--brass); }
.contact { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; border: 1px solid var(--brass); padding: 16px 18px; }
.contact code { font: 500 16px/1 var(--body); letter-spacing: .02em; color: var(--text); user-select: all; }
.contact button { font: 600 11px/1 var(--display); letter-spacing: .18em; text-transform: uppercase; background: var(--brass); color: #141210; border: 0; padding: 11px 16px; cursor: pointer; }
.contact button:hover { background: var(--brass-hi); }
footer { border-top: 1px solid var(--rule); padding-block: 28px 44px; color: var(--muted); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font: 500 11px/1.6 var(--display); letter-spacing: .18em; text-transform: uppercase; }

@media (max-width: 760px) {
  .cols, .rules { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .cols { gap: 28px; }
  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .facts div:nth-child(3) { border-left: 0; }
  .facts div:nth-child(n+3) { border-top: 1px solid var(--rule); }
  .records { grid-template-columns: minmax(0, 1fr); }
  .records div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--rule); margin-top: 16px; }
  .album-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ask li { grid-template-columns: minmax(0, 1fr); gap: 0; }
  nav ul { gap: 14px; }
  .honours li { grid-template-columns: 52px minmax(0, 1fr); }
}
@media (prefers-reduced-motion: no-preference) {
  .crest { animation: fade 1.1s ease-out both; }
  @keyframes fade { from { opacity: .4; transform: scale(.985); } to { opacity: 1; transform: none; } }
}

/* Shared: current-page nav state, page heads, more-link */
nav a[aria-current="page"] { color: var(--brass-hi); }
.page-head { padding-block: 56px 36px; text-align: center; display: grid; justify-items: center; gap: 10px; }
.page-head .kicker { justify-content: center; }
.page-head .kicker::before { content: ""; width: 48px; height: 1px; background: var(--brass); }
.page-head h1 { font: 600 clamp(34px, 6vw, 56px)/1.1 var(--display); letter-spacing: .08em; text-transform: uppercase; margin: 0; text-wrap: balance; }
.page-head p { font: italic 500 21px/1.4 var(--serif); color: var(--muted); margin: 0; max-width: 46ch; text-wrap: balance; }
.more { display: inline-block; margin-top: 22px; font: 600 11px/1 var(--display); letter-spacing: .2em; text-transform: uppercase; color: var(--brass-hi); text-decoration: none; border-bottom: 1px solid var(--brass); padding-bottom: 6px; }
.note { font: italic 500 16px/1.5 var(--serif); color: var(--muted); margin-top: 14px; }

/* Stats tables */
.tbl-wrap { overflow-x: auto; border-top: 1px solid var(--brass); }
.tbl { border-collapse: collapse; width: 100%; font-variant-numeric: tabular-nums lining-nums; }
.tbl th { font: 600 10.5px/1.3 var(--display); letter-spacing: .16em; text-transform: uppercase; color: var(--brass); text-align: left; padding: 14px 12px 10px; border-bottom: 1px solid var(--rule); white-space: nowrap; }
.tbl td { padding: 11px 12px; border-bottom: 1px solid var(--rule); font-size: 15px; vertical-align: baseline; }
.tbl td.n, .tbl th.n { text-align: right; }
.tbl td.big { font: 600 18px/1 var(--display); color: var(--brass-hi); }
.tbl td.who { font: 600 14px/1.4 var(--display); letter-spacing: .06em; text-transform: uppercase; color: var(--text); }
.tbl td.sub { color: var(--muted); font-size: 14px; }
.tbl tr.lead td { background: rgba(184,149,90,.07); }
.tbl .grp { border-left: 1px solid var(--rule); }
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; }
.split > * { min-width: 0; }
.stat-heads { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); text-align: center; }
.stat-heads div { padding: 22px 10px; }
.stat-heads div + div { border-left: 1px solid var(--rule); }
.stat-heads b { display: block; font: 600 34px/1 var(--display); color: var(--brass-hi); }
.stat-heads span { display: block; margin-top: 10px; font: 500 11px/1.5 var(--display); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.stat-heads em { display: block; font: italic 500 17px/1.3 var(--serif); color: var(--text); margin-top: 4px; }

/* Player cards: marker-shaped plaques */
.players { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.plaque { background: linear-gradient(180deg, var(--walnut-1), var(--walnut-2)); border-radius: 50% 50% 8px 8px / 14% 14% 8px 8px; padding: 8px; }
.plaque-in { height: 100%; background: #0f0e0d; border: 1px solid var(--brass); border-radius: 50% 50% 5px 5px / 13% 13% 5px 5px; padding: 30px 20px 22px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.monogram { width: 64px; height: 64px; border: 1px solid var(--brass); border-radius: 50%; display: grid; place-items: center; font: 600 20px/1 var(--display); letter-spacing: .06em; color: var(--brass-hi); margin-bottom: 6px; }
.plaque h3 { margin: 0; font: 600 18px/1.25 var(--display); letter-spacing: .08em; text-transform: uppercase; color: var(--text); text-wrap: balance; }
.nick { font: italic 500 17px/1.2 var(--serif); color: var(--brass-hi); min-height: 1.2em; }
.role { font: 600 10px/1 var(--display); letter-spacing: .2em; text-transform: uppercase; color: var(--brass); border: 1px solid var(--brass); padding: 5px 8px 4px; margin-top: 4px; }
.pstats { width: 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 14px; border-top: 1px solid rgba(184,149,90,.3); border-bottom: 1px solid rgba(184,149,90,.3); }
.pstats div { padding: 10px 4px; }
.pstats div + div { border-left: 1px solid rgba(184,149,90,.3); }
.pstats b { display: block; font: 600 22px/1 var(--display); color: var(--brass-hi); font-variant-numeric: tabular-nums lining-nums; }
.pstats small { display: block; margin-top: 5px; font: 500 9.5px/1.3 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.honours-line { font: italic 500 16px/1.4 var(--serif); color: #cdbb98; margin-top: 10px; min-height: 2.8em; }
.bio { font: italic 500 15px/1.4 var(--serif); color: var(--muted); margin-top: auto; padding-top: 8px; }
.alumni { columns: 3; column-gap: 32px; list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--brass); padding-top: 8px; }
.alumni li { break-inside: avoid; display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--rule); font-size: 15px; }
.alumni li span:last-child { color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }

@media (max-width: 860px) {
  .players { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .alumni { columns: 2; }
}
@media (max-width: 760px) {
  .split { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .stat-heads { grid-template-columns: minmax(0, 1fr); }
  .stat-heads div + div { border-left: 0; border-top: 1px solid var(--rule); }
}
@media (max-width: 560px) {
  .players { grid-template-columns: minmax(0, 1fr); }
  .alumni { columns: 1; }
}
.pstats.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.last { font: 500 10.5px/1.4 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--brass); margin: 2px 0 0; }
.bio-text { font: 400 14.5px/1.6 var(--body); color: var(--text); text-align: left; margin: 10px 0 0; }
.honours-line { min-height: 0; margin-bottom: 0; }

/* Album tiles with cover photos */
.album-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.album { aspect-ratio: 4 / 5; }
.album-in.has-img { background-size: cover; background-position: center; }
.album-in.has-img .album-v { text-shadow: 0 1px 6px rgba(0,0,0,.6); }

/* Results */
.sub-line { font: italic 500 18px/1.4 var(--serif); color: var(--muted); margin: -10px 0 20px; }
.jump { font: 600 12px/2 var(--display); letter-spacing: .14em; font-style: normal; }
.jump a { color: var(--brass-hi); text-decoration: none; }
.tag { display: inline-block; margin-left: 8px; font: 600 9px/1 var(--display); letter-spacing: .16em; color: #141210; background: var(--brass); padding: 4px 6px 3px; vertical-align: middle; }
.tag.parrot { background: transparent; color: var(--muted); border: 1px solid var(--rule); }

/* Archive write-ups on player cards */
.more-bios { width: 100%; text-align: left; margin-top: 10px; border-top: 1px solid rgba(184,149,90,.3); padding-top: 10px; }
.more-bios summary { cursor: pointer; font: 600 10.5px/1.6 var(--display); letter-spacing: .16em; text-transform: uppercase; color: var(--brass-hi); list-style: none; text-align: center; }
.more-bios summary::-webkit-details-marker { display: none; }
.more-bios summary::after { content: " +"; }
.more-bios[open] summary::after { content: " –"; }
.more-bios p { font-size: 14px; line-height: 1.55; margin: 10px 0 0; }
.more-bios p b { font: 600 12px/1 var(--display); color: var(--brass); margin-right: 6px; }

/* Alumni profile cards */
.alumni-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.al-card { border: 1px solid var(--rule); border-top: 2px solid var(--brass); padding: 20px; display: flex; flex-direction: column; gap: 4px; }
.al-card h3 { margin: 0; font: 600 17px/1.25 var(--display); letter-spacing: .08em; text-transform: uppercase; }
@media (max-width: 860px) { .album-grid, .alumni-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .album-grid, .alumni-cards { grid-template-columns: minmax(0, 1fr); } }
