/* Site stylesheet. The game's identity, direction B ("safety card", owner 2026-10-21), carried to the web.
   Site-only rules live here so the pixel-gated print sheets keep their own sheets. */

:root{
  --measure: 68ch;
  --gap: clamp(1rem, 2.4vw, 1.75rem);
  --pad: clamp(1.25rem, 4vw, 3.5rem);
  --step: clamp(1.6rem, 3.4vw, 2.6rem);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--mm-ground);
  color:var(--mm-graphite);
  font-family:var(--mm-font-body);
  font-size:max(16px, clamp(1.02rem, 0.55vw + 0.95rem, 1.1rem));
  line-height:1.62;
  text-wrap:pretty;
}
::selection{background:var(--mm-crimson); color:#fff}
:focus-visible{outline:2.5px solid var(--mm-crimson); outline-offset:3px}

h1,h2,h3{font-family:var(--mm-font-head); font-weight:700; line-height:1.06; margin:0; text-wrap:balance}
h1{font-size:clamp(2.4rem, 6.2vw, 4.4rem); letter-spacing:-0.015em; text-transform:uppercase}
h2{font-size:clamp(1.55rem, 2.6vw, 2.1rem); letter-spacing:-0.01em}
h3{font-size:1.06rem; text-transform:uppercase; letter-spacing:0.05em}
p{margin:0 0 1em; max-width:var(--measure)}
a{color:var(--mm-crimson); text-underline-offset:3px; text-decoration-thickness:1.5px}
a:hover{text-decoration-thickness:2.5px}

/* masthead */
.band{background:var(--mm-graphite); color:var(--mm-ground); padding:var(--pad)}
.band .in{max-width:1180px; margin:0 auto; display:flex; flex-direction:column; gap:var(--gap)}
.band h1,.hero-name{color:#fff; max-width:22ch}
.hero-name{font-family:var(--mm-font-head); font-weight:700; line-height:1.02; letter-spacing:-0.015em;
  text-transform:uppercase; font-size:clamp(2.4rem, 6.2vw, 4.4rem); margin:0; text-wrap:balance}
.band .standfirst{font-size:clamp(1.1rem, 1.6vw, 1.42rem); line-height:1.45; max-width:44ch; color:#e9e6e0}
.band .act{display:flex; flex-wrap:wrap; gap:.75rem 1rem; align-items:center}
.band .act a{display:inline-block; padding:.72rem 1.15rem; min-height:44px; font-family:var(--mm-font-head);
  font-weight:700; text-transform:uppercase; letter-spacing:.06em; font-size:.95rem; text-decoration:none;
  border:1.5px solid var(--mm-crimson-light); color:#fff; background:var(--mm-crimson)}
.band .act a.ghost{background:transparent; border-color:#6f6d72; color:var(--mm-ground)}
.band .act a:hover{background:var(--mm-crimson-light); color:var(--mm-graphite); border-color:var(--mm-crimson-light)}

/* hero illustration: the board, in the identity's line-drawn idiom */
.band{position:relative}
.hero-fig{margin:0; justify-self:end; width:min(100%,520px)}
.hero-art{width:100%; height:auto; display:block}
.hero-photo{aspect-ratio:3/2; object-fit:cover; border:1px solid #3a3a3f}
.board-fig{margin:0 0 1.4rem}
.board-fig img{width:100%; max-width:520px; height:auto; display:block}
.board-fig figcaption{margin:.5rem 0 0; font-size:.82rem; color:var(--mm-muted-guide); max-width:46ch}
.hero-fig figcaption{margin:.55rem 0 0; font-size:.82rem; line-height:1.4; color:#a9a6a0; max-width:44ch}
@media (min-width:900px){
  .band .in{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,520px); grid-template-areas:"name art" "stand art" "act art"; align-items:start; column-gap:clamp(1.5rem,3vw,3rem)}
  .band .in > .hero-name{grid-area:name}
  .band .in > .standfirst{grid-area:stand}
  .band .in > .act{grid-area:act}
  .band .in > .hero-fig{grid-area:art; align-self:center}
}

/* page body */
main{padding:var(--pad) var(--pad) 0; max-width:1180px; margin:0 auto}
section{padding-bottom:calc(var(--step) * 1.15)}
section + section{border-top:1px solid var(--mm-hairline); padding-top:var(--step)}
.lede{font-size:clamp(1.12rem, 1.5vw, 1.32rem); line-height:1.5; max-width:52ch; color:var(--mm-muted-guide)}

/* numbered panels: the identity's spine */
.moves{display:grid; grid-template-columns:repeat(auto-fit, minmax(15rem, 1fr)); gap:0; border-top:1px solid var(--mm-hairline); margin-top:var(--gap)}
.move{padding:1.15rem 1.25rem 0 0; border-bottom:1px solid var(--mm-hairline)}
.move .n{font-family:var(--mm-font-head); font-weight:700; font-size:clamp(2rem,3.4vw,3rem); color:var(--mm-crimson); line-height:1; display:block}
.move h3{margin:.35rem 0 .4rem}
.move p{margin:0 0 1.1rem; font-size:.98rem; color:var(--mm-muted-guide)}

/* two-column body */
.split{display:grid; grid-template-columns:1.1fr .9fr; gap:calc(var(--gap) * 1.6); align-items:start}
.split > *{min-width:0}

/* the warning callout: the one thing an IM must not get wrong */
.callout{border:1.5px solid var(--mm-crimson); background:var(--mm-tint); padding:1.15rem 1.25rem; margin:var(--gap) 0 0}
.callout h3{color:var(--mm-crimson); margin-bottom:.4rem}
.callout p{margin:0}

/* downloads: rows, not cards */
.list{list-style:none; margin:var(--gap) 0 0; padding:0; border-top:1px solid var(--mm-hairline)}
.list li{display:grid; grid-template-columns:120px minmax(0,1fr); column-gap:1.1rem; align-items:center;
  padding:.85rem 0; border-bottom:1px solid var(--mm-hairline)}
.list a{font-family:var(--mm-font-head); font-weight:700; font-size:1.06rem; display:inline-block;
  padding:.35rem 0; min-height:32px}
.row-t{display:block}
.list .meta{display:block; color:var(--mm-muted-guide); font-size:.9rem; letter-spacing:.01em; margin-top:.15rem}

/* footer */
.foot{background:var(--mm-graphite); color:#cfcbc2; padding:calc(var(--pad) * .8) var(--pad); margin-top:calc(var(--step) * 1.4)}
.foot .in{max-width:1180px; margin:0 auto; display:flex; flex-wrap:wrap; gap:.6rem 1.5rem; align-items:baseline; justify-content:space-between; font-size:.9rem}
.foot a{color:#e9e6e0; display:inline-block; padding:.3rem 0; min-height:28px}

/* Quarto chrome we do not want on a game site */
.navbar{background:var(--mm-ground); border-bottom:1px solid var(--mm-hairline); padding:.35rem 0}
.navbar .navbar-brand{font-family:var(--mm-font-head); font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--mm-graphite)}
.navbar .nav-link{color:var(--mm-graphite); font-family:var(--mm-font-head); font-weight:600; text-transform:uppercase;
  letter-spacing:.05em; font-size:.86rem; padding:.65rem .5rem; display:inline-block; min-height:44px}
.navbar .nav-link:hover,.navbar .nav-link.active{color:var(--mm-crimson)}
#quarto-document-content{max-width:none; padding:0}
.quarto-title-block,.breadcrumb{display:none}
table{border-collapse:collapse; margin:0 0 1.2em; max-width:100%}
th,td{text-align:left; padding:.5rem .9rem .5rem 0; border-bottom:1px solid var(--mm-hairline)}
th{font-family:var(--mm-font-head); text-transform:uppercase; letter-spacing:.05em; font-size:.82rem; color:var(--mm-muted-guide)}

@media (max-width: 760px){
  .split{grid-template-columns:1fr}
  .list li{justify-content:flex-start}
  .list a{min-height:44px; padding:.5rem 0}
}

@media print{
  .callout-collapse{display:block}
  .callout-collapse>summary{display:none}
  .callout-collapse{border-style:solid}
  .navbar,.foot{display:none}
  body{background:#fff; font-size:10.5pt}
  .band{background:#fff; color:#000; border-bottom:2px solid #000}
  .band h1,.band .standfirst,.band .act a{color:#000}
  .band .act{display:none}
  a{color:#000}
  section{break-inside:avoid}
}

/* Ready-to-run page: legend, boxes and folds (the box gate reads this sheet for the print rule) */
.callout-legend,.callout-read-aloud,.callout-im-note,.callout-print,.callout-collapse{
  border:1px solid var(--mm-hairline); background:var(--mm-paper); padding:.9rem 1.1rem; margin:1rem 0; max-width:75ch}
.callout-legend{border-color:var(--mm-graphite); background:var(--mm-ground)}
.callout-read-aloud{border-color:var(--mm-crimson); background:var(--mm-tint)}
.callout-print{border-style:dashed}
.callout-collapse>summary{cursor:pointer; font-family:var(--mm-font-head); font-weight:700; text-transform:uppercase; letter-spacing:.04em; font-size:.86rem; padding:.35rem 0; min-height:32px}
.callout-collapse p{margin:.4rem 0 0}
.callout-legend p{margin:.2rem 0; font-size:.92rem}
.callout-legend p strong{font-family:var(--mm-font-head); text-transform:uppercase; letter-spacing:.04em; font-size:.82rem}


/* plates: a diagram entry that reads as a covered illustration, not a card grid */
.plate{display:grid; grid-template-columns:minmax(0,320px) minmax(0,1fr); gap:0 1.4rem; align-items:center;
  text-decoration:none; color:inherit; border-top:1px solid var(--mm-hairline); padding:1.1rem 0}
.plate img{width:100%; height:auto; display:block; border:1px solid var(--mm-hairline); background:var(--mm-paper)}
.plate-t{grid-column:2; display:block}
.plate-k{display:block; font-family:var(--mm-font-head); font-weight:700; text-transform:uppercase; letter-spacing:.05em; font-size:1.02rem; color:var(--mm-crimson)}
.plate-s{display:block; color:var(--mm-muted-guide); font-size:.94rem; line-height:1.45; max-width:46ch; margin-top:.25rem}
.plate:hover .plate-k{text-decoration:underline; text-underline-offset:4px}
.plate:hover img{border-color:var(--mm-graphite)}
@media (max-width:760px){ .plate{grid-template-columns:1fr} .plate-t{grid-column:1} .plate img{margin-bottom:.8rem} }

/* download rows: the sheet itself, at thumbnail size */
.list li{gap:.4rem 1rem}
.thumb{width:120px; height:auto; border:1px solid var(--mm-hairline); background:var(--mm-paper); flex:0 0 auto}
.list a:hover{text-decoration-thickness:3px}
@media (max-width:760px){ .list li{grid-template-columns:88px minmax(0,1fr)} }

/* states the browser gives shipping defaults: selection, focus, skip link */
a:focus-visible,.plate:focus-visible{outline:3px solid var(--mm-crimson); outline-offset:3px; border-radius:2px}
.skip{position:absolute; left:-9999px; top:0; background:var(--mm-graphite); color:#fff; padding:.7rem 1rem; z-index:9}
.skip:focus{left:.5rem}

.board-art{width:100%; height:auto; display:block; border:1px solid var(--mm-hairline); background:var(--mm-paper); padding:1rem}

/* Markdown-shaped structure: fenced divs and spans, no raw layout HTML in the content files */
.page-body{padding:var(--pad) var(--pad) 0; max-width:1180px; margin:0 auto}
.band .in > p, .band .in > .act{grid-column:1}
.hero-name{font-family:var(--mm-font-head); font-weight:700; line-height:1.02; letter-spacing:-0.015em; text-transform:uppercase;
  font-size:clamp(2.4rem, 6.2vw, 4.4rem); color:#fff; max-width:22ch; margin:0 0 .5rem; text-wrap:balance}
.standfirst{font-size:clamp(1.1rem, 1.6vw, 1.42rem); line-height:1.45; max-width:44ch; color:#e9e6e0; margin:0}
.act p{display:flex; flex-wrap:wrap; gap:.75rem 1rem; margin:0}
.act a + a{margin-left:0}
.lede{font-size:clamp(1.12rem, 1.5vw, 1.32rem); line-height:1.5; max-width:52ch; color:var(--mm-muted-guide)}
.plate{display:grid; grid-template-columns:minmax(0,320px) minmax(0,1fr); gap:0 1.4rem; align-items:center;
  border-top:1px solid var(--mm-hairline); padding:1.1rem 0}
.plate > p{margin:0; grid-column:2}
.plate > p:has(img){grid-column:1; grid-row:1 / span 3}
.plate img{width:100%; height:auto; display:block; border:1px solid var(--mm-hairline); background:var(--mm-paper)}
.plate-k{font-family:var(--mm-font-head); font-weight:700; text-transform:uppercase; letter-spacing:.05em; font-size:1.02rem; color:var(--mm-crimson); text-decoration:none; display:block}
.plate-s{color:var(--mm-muted-guide); font-size:.94rem; line-height:1.45; max-width:46ch; display:block; margin-top:.25rem}
.plate:hover .plate-k{text-decoration:underline; text-underline-offset:4px}
@media (max-width:760px){ .plate{grid-template-columns:1fr} .plate > p, .plate > p:has(img){grid-column:1} .plate > p:has(img){grid-row:auto; margin-bottom:.8rem} }
.list{border-top:1px solid var(--mm-hairline)}
.li{display:grid; grid-template-columns:120px minmax(0,1fr); column-gap:1.1rem; align-items:center; padding:.85rem 0; border-bottom:1px solid var(--mm-hairline)}
.li > p{margin:0}
.li > p:has(img){grid-column:1; grid-row:1 / span 3}
.thumb{width:100%; height:auto; display:block; border:1px solid var(--mm-hairline); background:var(--mm-paper)}
.li .meta{display:block; color:var(--mm-muted-guide); font-size:.9rem; margin-top:.15rem}
@media (max-width:760px){ .li{grid-template-columns:88px minmax(0,1fr)} }
.board-art{width:100%; height:auto; display:block; border:1px solid var(--mm-hairline); background:var(--mm-paper); padding:1rem; margin:0; box-sizing:border-box}
/* A link alone in its paragraph is a target, and a target is at least 24px tall. */
.page-body p > a:only-child{display:inline-block; padding-block:.18rem}
.foot .in p{margin:0}

/* buttons and inline-class styling after the markdown conversion */
.act a{display:inline-block; padding:.72rem 1.15rem; min-height:44px; font-family:var(--mm-font-head); font-weight:700;
  text-transform:uppercase; letter-spacing:.06em; font-size:.95rem; text-decoration:none; margin-right:.6rem;
  border:1.5px solid var(--mm-crimson-light); color:#fff; background:var(--mm-crimson)}
.act a.ghost{background:transparent; border-color:#6f6d72; color:var(--mm-ground)}
.act a:hover{background:var(--mm-crimson-light); color:var(--mm-graphite); border-color:var(--mm-crimson-light)}
.lede{display:block}
.hero-fig{margin:0; width:min(100%,520px); grid-column:2; grid-row:1 / span 4; align-self:center}
.hero-fig p{margin:0}
.hero-art{width:100%; height:auto; display:block; aspect-ratio:3/2; object-fit:cover; border:1px solid #3a3a3f}
.hero-cap{display:block; margin-top:.55rem; font-size:.82rem; line-height:1.4; color:#a9a6a0; max-width:44ch}
@media (max-width:899px){ .hero-fig{grid-column:1; grid-row:auto; margin-top:1.2rem} }
@media (max-width:760px){ .act a{margin-bottom:.6rem} }
