/* Holy Hand Grenadiers match reports: layered on site.css, team colours (red, slate blue, gold) */
.hhg{--slate:#34496A;--slate-deep:#24344F;--gold:#E3B341;--crimson:#BA1B2B}
.hhg-nav{background:var(--slate-deep)}
.hhg-nav .brand{font:900 14px Lato,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.hhg-nav .crest{color:var(--gold);font-size:22px;line-height:1}
.hhg-nav .home-link{font-size:12px;opacity:.85}

.hhg-hero{background:var(--slate);color:#fff;border-bottom:4px solid var(--ink);position:relative;overflow:hidden}
.hhg-hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(227,179,65,.22) 1.6px,transparent 1.7px);
  background-size:14px 14px;-webkit-mask-image:linear-gradient(115deg,transparent 30%,#000 90%);mask-image:linear-gradient(115deg,transparent 30%,#000 90%)}
.hhg-hero .wrap{position:relative;padding-top:26px;padding-bottom:28px}
.hhg-hero .kicker{margin:0 0 14px;color:var(--gold);font:900 12px Lato,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.hhg-hero h1{font-family:Anton,Impact,sans-serif;font-weight:400;text-transform:uppercase;font-size:clamp(40px,9vw,80px);line-height:.95;margin:0 0 12px}
.hhg-hero .intro{max-width:60ch;margin:0 0 20px;font-size:17px;color:rgba(255,255,255,.92)}
.stats{display:flex;flex-wrap:wrap;gap:12px}
.stats div{background:#fff;color:var(--ink);border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);padding:8px 14px;min-width:120px}
.stats b{display:block;font:400 30px/1 Anton,Impact,sans-serif}
.stats span{font:900 11px Lato,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

.board{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;background:var(--paper);color:var(--ink);
  border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);padding:14px 16px}
.board .side{display:flex;flex-direction:column;gap:2px;min-width:0}
.board .them{text-align:right}
.board .name{font:400 clamp(18px,4vw,30px)/1.05 Anton,Impact,sans-serif;text-transform:uppercase;overflow-wrap:anywhere}
.board .us .name{color:var(--crimson)}
.board .race{font:700 12px Lato,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.board .score{display:flex;align-items:center;gap:6px;font:400 clamp(40px,10vw,72px)/1 Anton,Impact,sans-serif;background:var(--gold);border:3px solid var(--ink);padding:4px 14px}
.board .score i{font-style:normal;opacity:.6}
.hhg-hero .meta{margin:14px 0 0;display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-weight:700;color:rgba(255,255,255,.9)}
@media(max-width:560px){.board{grid-template-columns:1fr;text-align:center}.board .them{text-align:center}.board .score{justify-content:center;width:max-content;margin:0 auto}}

.lead{display:grid;gap:22px;padding-top:28px;align-items:start}
@media(min-width:860px){.lead{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.lead figure,.shots figure{margin:0;background:#111;border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink)}
.lead img,.shots img{display:block;width:100%;height:auto}
.no-photos{margin:10px 0 0;font-size:13px;color:var(--muted)}
.summary{margin:0;font:900 clamp(20px,3vw,26px)/1.3 Lato,sans-serif;border-left:6px solid var(--gold);padding-left:14px}

.booth{padding-top:34px;max-width:820px}
.booth h2{font-family:Anton,Impact,sans-serif;font-weight:400;text-transform:uppercase;font-size:32px;margin:0;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.onair{font:900 12px Lato,sans-serif;letter-spacing:.12em;background:var(--crimson);color:#fff;border:2px solid var(--ink);padding:3px 8px;animation:blink 2.4s steps(1) infinite}
@keyframes blink{50%{opacity:.55}}
@media(prefers-reduced-motion:reduce){.onair{animation:none}}
.callers{margin:4px 0 18px;color:var(--muted);font-weight:700}
.line{display:grid;grid-template-columns:52px 1fr;gap:12px;margin:0 0 12px;align-items:start}
.line .spk{font:900 12px Lato,sans-serif;letter-spacing:.1em;text-align:center;color:#fff;border:2px solid var(--ink);padding:4px 0;margin-top:3px}
.line.jim .spk{background:var(--blue)}
.line.bob .spk{background:var(--crimson)}
.line .said{background:var(--paper);border:2px solid var(--ink);padding:10px 14px;font-size:17px;line-height:1.5}
.line.bob .said{box-shadow:4px 4px 0 var(--crimson)}
.line.jim .said{box-shadow:4px 4px 0 var(--blue)}

.hhg-photos{padding-top:30px}
.hhg-photos h2,.boxes h2{font-family:Anton,Impact,sans-serif;font-weight:400;text-transform:uppercase}
.hhg-photos h2{font-size:28px;margin:0 0 14px}
.shots{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));align-items:start}

.boxes{display:grid;gap:18px;padding-top:34px;padding-bottom:40px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start}
.box{background:var(--paper);border:3px solid var(--ink);box-shadow:5px 5px 0 var(--ink);padding:14px 16px;min-width:0}
.box.wide{grid-column:1/-1}
.box h2{font-size:22px;margin:0 0 10px;color:var(--slate)}
.box table{width:100%;border-collapse:collapse;font-size:15px}
.box th{text-align:left;font:900 11px Lato,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--ink);padding:4px 6px}
.box td{border-bottom:1px solid #ddd;padding:6px;vertical-align:top}
.box .num{text-align:right;white-space:nowrap;font-weight:900}
.box .t{white-space:nowrap;color:var(--muted);font-weight:700}
.box ul{margin:0;padding-left:18px;display:grid;gap:6px}
.box dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 14px}
.box dt{font:900 12px Lato,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-top:2px}
.box dd{margin:0}
.skill{margin:12px 0 0;background:var(--gold);border:2px solid var(--ink);padding:6px 10px;font-weight:700}
.small{font-size:13px;color:var(--muted);margin:10px 0 0}

.card.match .blurb{margin:8px 0 0;font-size:14px;color:var(--ink)}
.card.match .img{aspect-ratio:4/3}
.hhg .pn{padding-top:4px;padding-bottom:28px}
.hhg footer .wrap{gap:10px}

/* equal-height match cards */
.hhg .grid{align-items:stretch}
.card.match{display:flex;flex-direction:column}
.card.match .meta{flex:1;display:flex;flex-direction:column}
.card.match .meta h3{min-height:2.4em}
.hhg .grid{grid-auto-rows:1fr}
.card.match .img{aspect-ratio:4/3;overflow:hidden}
.card.match .img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* photo collage leading each match page */
.collage-wrap{padding-top:24px}
.collage{display:grid;gap:10px;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(120px,17vw,210px);grid-auto-flow:dense}
.collage .tile{display:block;position:relative;overflow:hidden;background:#111;border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink)}
.collage .tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .25s}
.collage a.tile:hover img{transform:scale(1.04)}
.collage a.tile:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.collage .big{grid-column:span 2;grid-row:span 2}
.collage.n1{grid-template-columns:1fr;grid-auto-rows:clamp(220px,45vw,460px)}
.collage.n1 .big{grid-column:auto;grid-row:auto}
.collage.n4 .tile:not(.big):last-child{grid-column:span 2}
.collage.n7 .tile:not(.big):nth-last-child(-n+2){grid-column:span 2}
@media(max-width:600px){.collage{grid-template-columns:repeat(2,1fr);grid-auto-rows:clamp(110px,38vw,190px)}
  .collage.n4 .tile:not(.big):last-child{grid-column:span 2}
  .collage.n7 .tile:not(.big):nth-last-child(-n+2){grid-column:auto}}
.lead{padding-top:24px}

/* TourPlay links */
.board a.name{text-decoration:none;color:inherit}
.board a.name:hover{text-decoration:underline;text-decoration-thickness:3px}
.hhg-hero .tp{color:var(--gold);font-weight:900;text-decoration:none;margin-left:auto}
.hhg-hero .tp:hover{text-decoration:underline}
.box a{color:var(--blue);font-weight:700}
.opp-list{margin-bottom:48px}
.opp-list ul{padding-left:18px}
.opp-list h2{font-family:Anton,Impact,sans-serif;font-weight:400;text-transform:uppercase}
/* two- and three-photo collages fill the row */
.collage.n2{grid-template-columns:1fr 1fr;grid-auto-rows:clamp(240px,40vw,480px)}
.collage.n2 .big{grid-column:auto;grid-row:auto}
.collage.n3 .tile:not(.big){grid-column:span 2}
@media(max-width:600px){.collage.n2{grid-template-columns:1fr;grid-auto-rows:clamp(220px,70vw,420px)}
  .collage.n3 .tile:not(.big){grid-column:auto}}

/* report boxes: explicit rows, each row fills the width and its boxes match heights */
.boxes{display:flex;flex-direction:column;gap:18px}
.box-row{display:grid;gap:18px;align-items:stretch}
.box-row.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.box-row.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
.box-row .box.wide{grid-column:auto}
@media(max-width:900px){.box-row.n3{grid-template-columns:repeat(2,minmax(0,1fr))}.box-row.n3>.box:last-child{grid-column:1/-1}}
@media(max-width:600px){.box-row.n2,.box-row.n3{grid-template-columns:1fr}.box-row.n3>.box:last-child{grid-column:auto}}
.boxes{align-items:stretch}
.box-row.n1{grid-template-columns:minmax(0,1fr)}
