.mn-course { --mn-sticky-offset:5rem; background:var(--ground); color:var(--ink); }
.mn-course em { font-weight:400; }
.mn-course p { margin-top:0; }
.mn-course .eyebrow { display:block; margin-bottom:1rem; }

.mn-hero { padding:clamp(2.75rem,6vh,5rem) 0; overflow:hidden; border-bottom:1px solid var(--line); }
.mn-hero::before { content:""; position:absolute; inset:0; background:radial-gradient(75% 90% at 75% 40%, var(--spot), transparent 66%); }
.mn-hero-grid { position:relative; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(20rem,.8fr); gap:clamp(2rem,5vw,5rem); align-items:center; }
.mn-hero-copy h1 { font-size:clamp(3.25rem,6.3vw,5.75rem); line-height:.92; letter-spacing:.01em; }
.mn-hero-copy h1 em { color:var(--accent-ink); }
.mn-lede { max-width:34rem; margin:1.35rem 0 0; color:var(--ink-soft); font-size:1.08rem; }
.mn-hero-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.65rem; }
.mn-hero-actions .btn { min-height:3.4rem; justify-content:center; white-space:nowrap; }
.mn-hero-actions .btn-primary { padding-inline:1.8rem; }
.mn-commitment { max-width:35rem; margin:1rem 0 0; padding:.8rem 1rem; display:flex; flex-wrap:wrap; align-items:baseline; gap:.2rem .7rem; border:1px solid var(--line); border-left:3px solid var(--gold); background:rgba(255,255,255,.035); }
.mn-commitment strong { color:var(--gold-bright); font-family:var(--font-display); font-size:1.3rem; font-weight:400; }
.mn-commitment span { color:var(--ink-soft); font-size:.78rem; }
.mn-commitment span + span::before { content:"·"; margin-right:.7rem; color:var(--gold); }
.mn-hero-art { width:100%; max-width:31rem; justify-self:end; padding:.5rem; }
.mn-playing-card { position:relative; background:#F4F5EE; color:#183329; border:1px solid rgba(201,162,75,.5); border-radius:18px; padding:1.25rem; transform:rotate(2deg); box-shadow:0 2rem 5rem rgba(0,0,0,.35); }
.mn-card-corner { display:flex; flex-direction:column; width:2rem; margin-bottom:.8rem; font:1.7rem/1 Georgia,serif; }
.mn-card-corner b { font-weight:400; }
.mn-playing-card video { width:100%; aspect-ratio:16/9; display:block; border-radius:8px; background:#dce8ca; }
.mn-card-caption { padding:1rem 0 .25rem; }
.mn-card-caption span { display:block; color:#68746f; font-size:.62rem; letter-spacing:.15em; text-transform:uppercase; }
.mn-card-caption strong { display:block; margin-top:.45rem; font-family:var(--font-display); font-size:1.1rem; font-weight:400; line-height:1.35; }

.mn-intro { border-bottom:1px solid var(--line-soft); }
.mn-intro-grid { display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(2rem,8vw,6rem); }
.mn-intro h2 { font-size:clamp(2.4rem,5vw,4rem); line-height:1; }
.mn-intro h2 em { color:var(--accent-ink); }
.mn-prose { color:var(--ink-soft); }
.mn-prose p { margin-bottom:1rem; }
.mn-prose a { color:var(--accent-ink); text-underline-offset:4px; }
.mn-tamariz-note { margin-top:1.8rem; padding:1.4rem 1.5rem; border-left:3px solid var(--gold); background:var(--ground-2); }
.mn-tamariz-note .eyebrow { margin-bottom:.55rem; color:var(--muted); }
.mn-tamariz-note h3 { margin:0 0 .8rem; color:var(--ink); font-size:1.55rem; }
.mn-tamariz-note p:last-child { margin-bottom:0; }

.mn-lessons-section { padding:clamp(3rem,7vw,5rem) 0; background:var(--ground-2); }
.mn-course-layout { display:grid; grid-template-columns:13rem minmax(0,1fr); gap:clamp(1.5rem,5vw,4rem); align-items:start; }
.mn-chapter-nav { position:sticky; top:var(--mn-sticky-offset); }
.mn-chapter-nav a { display:flex; gap:.8rem; border-top:1px solid var(--line); padding:.85rem 0; color:var(--ink-soft); font-size:.82rem; text-decoration:none; }
.mn-chapter-nav a:hover { color:var(--accent-ink); }
.mn-chapter-nav a span { color:var(--accent-ink); }
.mn-chapter-nav .mn-nav-practice { margin-top:1rem; font-weight:700; }
.mn-chapter-nav > p { margin-top:2.2rem; color:var(--muted); font-family:var(--font-display); font-size:1.2rem; font-style:italic; line-height:1.45; }
/* The global navigation is sticky. Keep the target lesson and its companion
   chapter rail below it when a learner follows an in-page course link. */
.mn-lesson { margin-bottom:2rem; overflow:hidden; scroll-margin-top:var(--mn-sticky-offset); border:1px solid var(--line); border-radius:var(--radius); background:var(--ground-3); box-shadow:0 1.2rem 2.8rem -2rem var(--panel-shadow); }
.mn-lesson-heading { display:flex; gap:1.3rem; align-items:center; padding:1.6rem; }
.mn-lesson-index { color:var(--gold); font-family:var(--font-display); font-size:2.8rem; line-height:1; }
.mn-lesson-heading .eyebrow { margin:0 0 .35rem; font-size:.62rem; }
.mn-lesson-heading h3 { font-size:clamp(1.7rem,4vw,2.25rem); line-height:1; }
.mn-lesson-heading p:last-child { margin:.55rem 0 0; color:var(--muted); font-size:.82rem; }
.mn-lesson > video { width:100%; aspect-ratio:16/9; display:block; background:#F4F5EE; }
.mn-lesson-tools { min-height:3.6rem; display:flex; align-items:center; justify-content:space-between; gap:.8rem; padding:.65rem 1.4rem; color:var(--muted); font-size:.75rem; }
.mn-text-button,.mn-course .text-button { border:0; background:none; padding:.35rem 0; color:var(--accent-ink); font:inherit; cursor:pointer; text-decoration:underline; text-underline-offset:4px; }
.mn-lesson details { border-top:1px solid var(--line-soft); }
.mn-lesson summary { padding:1rem 1.4rem; cursor:pointer; color:var(--muted); font-size:.82rem; }
.mn-transcript { max-height:28rem; overflow:auto; padding:0 1.4rem .9rem; }
.mn-transcript > div { border-top:1px solid var(--line-soft); padding:1rem 0; }
.mn-transcript button { border:0; background:none; padding:0; color:var(--ink); text-align:left; font:600 .88rem/1.5 var(--font-body); cursor:pointer; }
.mn-transcript button span:first-child { margin-right:.5rem; color:var(--accent-ink); font-size:.72rem; }
.mn-transcript p { margin:.45rem 0 0; color:var(--muted); font-size:.85rem; }

.mn-visual-reference { padding:1.5rem; border-top:1px solid var(--line-soft); }
.mn-visual-reference h4 { margin:1rem 0; font:1.7rem/1.2 var(--font-display); }
.mn-visual-reference > p { color:var(--muted); font-size:.85rem; }
.mn-cue-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem; }
.mn-cue-grid.mn-suits { grid-template-columns:repeat(2,minmax(0,1fr)); }
.mn-cue-grid figure { margin:0; overflow:hidden; border:1px solid var(--line-soft); border-radius:var(--radius); background:var(--ground-2); }
.mn-cue-grid img { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
.mn-cue-grid figcaption { padding:1rem; }
.mn-cue-grid strong,.mn-cue-grid span { display:block; }
.mn-cue-grid strong { font-family:var(--font-display); font-size:1.25rem; font-weight:400; }
.mn-cue-grid span { margin-top:.4rem; color:var(--ink); font-size:1.125rem; line-height:1.5; }

.mn-peg-groups { display:grid; grid-template-columns:repeat(auto-fit,minmax(11rem,1fr)); gap:1.2rem; margin-top:1.2rem; }
.mn-peg-groups section { padding:1rem 1.1rem; border:1px solid var(--line-soft); border-radius:var(--radius); background:var(--ground-2); }
.mn-peg-groups h5 { margin:0 0 .7rem; color:var(--accent-ink); font:1.1rem/1 var(--font-display); font-weight:400; }
.mn-peg-groups ol { margin:0; padding:0; list-style:none; }
.mn-peg-groups li { display:flex; gap:.6rem; padding:.3rem 0; border-top:1px solid var(--line-soft); color:var(--ink); font-size:.9rem; line-height:1.4; }
.mn-peg-groups li:first-child { border-top:0; }
.mn-peg-groups li span { flex:0 0 1.6rem; color:var(--muted); font-variant-numeric:tabular-nums; text-align:right; }

.mn-practice { border-block:1px solid var(--line); }
.mn-practice-intro { display:grid; grid-template-columns:1.25fr 1fr; gap:3rem; align-items:center; }
.mn-practice h2 { font-size:clamp(2.2rem,5vw,3.6rem); line-height:1; }
.mn-practice h2 em { color:var(--accent-ink); }
.mn-practice-intro > p { color:var(--ink-soft); }
.mn-test-controls { display:flex; gap:1rem; align-items:end; margin-top:2rem; padding-top:2rem; border-top:1px solid var(--line); }
.mn-test-controls label { flex:1; color:var(--muted); font-size:.75rem; }
.mn-test-controls select { width:100%; min-height:3rem; display:block; margin-top:.45rem; padding:.7rem; border:1px solid var(--line-control); border-radius:var(--radius); background:var(--ground-2); color:var(--ink); font:inherit; }
.mn-test-empty { display:flex; gap:1.4rem; align-items:center; padding:2.6rem 0 0; }
.mn-test-empty > span { color:var(--gold); font:4rem/1 Georgia,serif; }
.mn-test-empty p { margin:0; color:var(--ink-soft); }
.mn-course [hidden] { display:none!important; }
.mn-course button,.mn-course select,.mn-course input { font-family:var(--font-body); }
.mn-course button:disabled { cursor:default; }
.mn-course .question { --mn-col:36rem; padding-top:2.2rem; }
.mn-course .question-top { display:flex; justify-content:space-between; gap:1rem; color:var(--muted); font-size:.72rem; }
.mn-course .meter { height:3px; margin-top:1rem; background:var(--line); }
.mn-course .meter i { height:100%; display:block; background:var(--gold); }
.mn-course .question-label { margin:1.8rem 0 1.2rem; text-align:center; }
.mn-course .question-cue { width:9rem; aspect-ratio:512/717; margin:0 auto 1.7rem; padding:1.2rem; display:flex; flex-direction:column; justify-content:center; align-items:center; border-radius:var(--radius); background:#F4F5EE; color:#183329; box-shadow:0 1rem 2rem rgba(0,0,0,.2); }
.mn-course .question-cue strong { font:4rem/1 var(--font-display); }
.mn-course .question-cue span { margin-top:.8rem; font-size:.72rem; }
.mn-course .question-cue.red { color:#9d1724; }
.mn-course .answers { max-width:var(--mn-col); margin:auto; display:grid; grid-template-columns:repeat(2,1fr); gap:.7rem; }
.mn-course .answers button { position:relative; min-height:3.5rem; padding:.75rem .75rem .75rem 2.5rem; border:1px solid var(--line-control); border-radius:var(--radius); background:var(--ground-2); color:var(--ink); cursor:pointer; }
.mn-course .answers button:not(:disabled):hover { border-color:var(--gold); }
.mn-course .answers kbd { position:absolute; left:.7rem; top:50%; transform:translateY(-50%); width:1.3rem; height:1.3rem; display:grid; place-items:center; border:1px solid var(--line); border-radius:4px; color:var(--muted); font:600 .68rem/1 var(--font-body,inherit); }
.mn-course .answers button.correct kbd,.mn-course .answers button.incorrect kbd { border-color:currentColor; color:inherit; opacity:.6; }
/* The question shows the real card rather than a glyph set in the page font:
   recognising an actual playing card is the thing being practised. */
.mn-course .question-cue.is-card { padding:0; background:none; box-shadow:none; }
.mn-card-face { display:block; width:100%; height:100%; object-fit:contain; border-radius:var(--radius); box-shadow:0 1rem 2rem rgba(0,0,0,.25); }
.mn-free { max-width:var(--mn-col); margin:auto; text-align:left; }
.mn-free > label { display:block; margin-bottom:.5rem; color:var(--muted); font-size:.75rem; letter-spacing:.06em; text-transform:uppercase; }
.mn-free-entry { display:flex; gap:.6rem; }
.mn-free input { flex:1; min-width:0; min-height:3.4rem; padding:.7rem 1rem; border:1px solid var(--line-control); border-radius:var(--radius); background:var(--ground-2); color:var(--ink); font:1.25rem/1 var(--font-body,inherit); }
.mn-free input:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.mn-free.correct input { border-color:var(--gold-bright); }
.mn-free.incorrect input { border-color:var(--wine); }
/* After answering, Check and the field are disabled; they must also look it,
   or the learner presses a button that no longer does anything. */
.mn-free input:disabled,.mn-free button:disabled { opacity:.55; cursor:default; }
.mn-picker { display:grid; gap:.4rem; }
.mn-picker-row { display:grid; gap:.35rem; }
.mn-picker-ranks { grid-template-columns:repeat(13,minmax(0,1fr)); }
.mn-picker-suits { grid-template-columns:repeat(4,minmax(0,1fr)); }
.mn-picker button { min-width:0; min-height:2.8rem; padding:0; border:1px solid var(--line-control); border-radius:var(--radius); background:var(--ground-2); color:var(--ink); cursor:pointer; }
.mn-picker button:not(:disabled):hover { border-color:var(--gold); }
.mn-picker button.picked { background:var(--gold-bright); border-color:var(--gold-bright); color:#241318; }
.mn-picker-suits button { font-size:1.3rem; }
.mn-picker-suits button.red { color:#e0707c; }
.mn-picker-suits button.red.picked { color:#9d1724; }
.mn-course .mn-mastery { display:flex; flex-wrap:wrap; gap:.75rem 1rem; align-items:center; margin:2.2rem 0 0; color:var(--ink-soft); font-size:.8rem; }
.mn-mastery-bar { flex:0 0 8rem; height:4px; background:var(--line); border-radius:2px; overflow:hidden; }
.mn-mastery-bar i { display:block; height:100%; background:var(--gold-bright); }
.mn-mastery strong { color:var(--ink); }
.mn-course .mn-keys { max-width:var(--mn-col); margin:1.4rem auto 0; color:var(--muted); font-size:.75rem; text-align:center; }
.mn-course .mn-keys kbd { padding:.05rem .35rem; border:1px solid var(--line); border-radius:4px; font:600 .7rem/1.4 var(--font-body,inherit); }
.mn-course .question-label:focus-visible,.mn-course .results:focus-visible { outline:2px solid var(--gold); outline-offset:.5rem; }
/* The drill scrolls itself into view on every card, and the site header is
   sticky — without this the top of each question sits underneath it. */
.mn-course .question,.mn-course .results { scroll-margin-top:var(--mn-sticky-offset); }
.mn-course .answers button.correct { background:var(--gold-bright); border-color:var(--gold-bright); color:#241318; }
.mn-course .answers button.incorrect { background:var(--wine); color:#fff; }
.mn-course .mn-stage { max-width:var(--mn-col); margin:1rem auto 0; }
.mn-course .hint-tools { display:flex; justify-content:center; gap:1.5rem; padding-top:1rem; }
.mn-course .hint-slot .hint { margin:.9rem 0 0; color:var(--ink-soft); font-size:.9rem; text-align:center; }
.mn-course .feedback { padding-top:1.1rem; border-top:1px solid var(--line); }
.mn-course .feedback b { display:block; margin-bottom:.35rem; }
.mn-course .feedback p { margin:0; }
.mn-course .feedback .lime-button { margin-top:1rem; }
.mn-course .lime-button { display:inline-flex; align-items:center; border:1px solid var(--gold); border-radius:var(--radius); padding:.75rem 1rem; background:var(--gold-bright); color:#241318; font-weight:700; cursor:pointer; }
.mn-course .results { max-width:42rem; padding:2.5rem 0 1rem; }
/* Separate actions can wrap without touching; the progress paragraph below must
   keep its top margin despite the course-wide paragraph reset. */
.mn-result-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem 1.25rem; }
.mn-result-actions button { max-width:100%; text-align:left; }
.mn-course .results h3 { margin:0; color:var(--gold-bright); font-size:4.5rem; }
.mn-course .results h3 span { color:var(--muted); font-size:2rem; }
.mn-course .missed-list { display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0; }
.mn-course .missed-list span { padding:.4rem .55rem; border:1px solid var(--line); border-radius:var(--radius); font-size:.75rem; }

.mn-explore .section-head p { max-width:42rem; margin:.8rem auto 0; color:var(--muted); }
.mn-explore-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.mn-explore-grid a { display:grid; grid-template-columns:auto 1fr auto; grid-template-areas:"suit title go" ". copy go"; gap:.1rem 1rem; padding:1.5rem; border:1px solid var(--line); background:var(--ground-2); text-decoration:none; transition:transform .2s ease,border-color .2s ease; }
.mn-explore-grid a:hover { transform:translateY(-3px); border-color:var(--gold); }
.mn-explore-grid a > span { grid-area:suit; color:var(--gold); font:1.6rem Georgia,serif; }
.mn-explore-grid strong { grid-area:title; font-family:var(--font-display); font-size:1.25rem; font-weight:400; }
.mn-explore-grid small { grid-area:copy; color:var(--muted); }
.mn-explore-grid b { grid-area:go; align-self:center; color:var(--accent-ink); }

.mn-performer { border-block:1px solid var(--line); }
.mn-performer-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,8vw,6rem); align-items:center; }
.mn-performer h2 { font-size:clamp(2.5rem,5vw,4rem); line-height:1; }
.mn-performer p { color:var(--ink-soft); }
.mn-find-profile label { display:block; margin-bottom:.55rem; color:var(--muted); font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; }
.mn-find-profile > div { display:flex; gap:.55rem; }
.mn-find-profile input { width:100%; min-width:0; padding:.75rem 1rem; border:1px solid var(--line-control); border-radius:var(--radius); background:var(--ground-2); color:var(--ink); font-size:1rem; }
.mn-performer-links { display:flex; flex-wrap:wrap; gap:.5rem 1.2rem; margin-top:1rem!important; font-size:.82rem; }
.mn-performer-links a { color:var(--accent-ink); text-underline-offset:4px; }
.mn-course-note { padding:1.2rem 0; border-bottom:1px solid var(--line-soft); }
.mn-course-note .wrap { display:flex; justify-content:space-between; gap:2rem; color:var(--muted); font-size:.72rem; }
.mn-course-note p { max-width:50rem; margin:0; }
.mn-course-note a { flex:none; color:var(--accent-ink); }

@media (max-width:860px) {
  .mn-hero-grid,.mn-intro-grid,.mn-performer-grid { grid-template-columns:1fr; }
  .mn-hero-grid { gap:2.75rem; }
  .mn-hero-art { max-width:34rem; justify-self:center; }
  .mn-course-layout { grid-template-columns:1fr; }
  .mn-chapter-nav { position:static; display:flex; flex-wrap:wrap; gap:.45rem; }
  .mn-chapter-nav > .eyebrow,.mn-chapter-nav > p { width:100%; }
  .mn-chapter-nav > p { display:none; }
  .mn-chapter-nav a { padding:.55rem .75rem; border:1px solid var(--line); }
  .mn-chapter-nav .mn-nav-practice { margin-top:0; }
  .mn-explore-grid { grid-template-columns:1fr; }
}

@media (max-width:620px) {
  .mn-hero { padding:2.5rem 0 3.5rem; }
  .mn-hero-copy h1 { font-size:clamp(3rem,14vw,4.4rem); }
  .mn-lede { margin-top:1.2rem; font-size:1rem; }
  .mn-hero-actions { display:grid; grid-template-columns:1fr; gap:.65rem; margin-top:1.5rem; }
  .mn-hero-actions .btn { width:100%; }
  .mn-commitment { display:grid; grid-template-columns:auto 1fr; gap:.15rem .55rem; }
  .mn-commitment strong { grid-row:span 3; align-self:center; }
  .mn-commitment span + span::before { content:none; }
  .mn-hero-art { padding:.25rem; }
  .mn-playing-card { padding:.9rem; }
  .mn-practice-intro { grid-template-columns:1fr; gap:1rem; }
  .mn-test-controls { flex-direction:column; align-items:stretch; }
  .mn-lesson-heading { padding:1.1rem; gap:.8rem; }
  .mn-lesson-index { font-size:2.2rem; }
  .mn-lesson-tools { align-items:flex-start; flex-direction:column; padding:.75rem 1rem; }
  .mn-cue-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mn-visual-reference { padding:1rem; }
  .mn-course .answers { gap:.45rem; }
  .mn-course .answers button { font-size:.8rem; }
  .mn-picker-ranks { grid-template-columns:repeat(7,minmax(0,1fr)); }
  .mn-find-profile > div { flex-direction:column; }
  .mn-find-profile .btn { justify-content:center; }
  .mn-course-note .wrap { flex-direction:column; gap:.5rem; }
}
/* Offering keys to a phone is noise; the numbered badges stay, because they also
   number the options for anyone reading the answers aloud. */
@media (hover:none) and (pointer:coarse) { .mn-course .mn-keys { display:none; } }

@media (prefers-reduced-motion:reduce) {
  .mn-explore-grid a { transition:none; }
}
