
#content.mem-page {
  --mem-paper: #fff;
  --mem-tint: #eef3fc;
  --mem-ink: #142541;
  --mem-muted: #465875;
  --mem-line: #c7d5e8;
  --mem-accent: #254d98;
  --mem-strong: #254d98;
  color: var(--mem-ink);
  background: var(--mem-paper);
  overflow-wrap: anywhere;
  word-break: keep-all;
}
@media (prefers-color-scheme: dark) {
  #content.mem-page {
    --mem-paper: #182436;
    --mem-tint: #263653;
    --mem-ink: #f0f5ff;
    --mem-muted: #c5d2e9;
    --mem-line: #546b90;
    --mem-accent: #a9c8ff;
    --mem-strong: #2d579f;
    color-scheme: dark;
  }
}
#content.mem-page [hidden] { display: none !important; }
#content.mem-page :is(h1, h2, h3, h4, strong, label, legend, summary) { color: var(--mem-ink); }
#content.mem-page :is(p, li, dd) { line-height: 1.62; }
#content.mem-page a { color: var(--mem-accent); text-decoration: underline; text-underline-offset: .18em; }
#content.mem-page :focus-visible { outline: 3px solid var(--mem-accent); outline-offset: 3px; }
.mem-page .site-title-ad { min-height: 115px; overflow-anchor: none; }
#content.mem-page p { margin: 0 0 .8rem; }
#content.mem-page :is(h2, h3) { margin: 0 0 .65rem; line-height: 1.35; font-weight: 750; }
#content.mem-page h2 { font-size: clamp(1.23rem, 3vw, 1.6rem); }
#content.mem-page h3 { font-size: 1.08em; }
#content.mem-page .mem-header h1 { margin: 0 0 .8rem; line-height: 1.2; font-size: clamp(1.8rem, 4.4vw, 2.75rem); }
#content.mem-page .mem-header > p:not(.mem-note) { padding: 0; }
#content.mem-page .mem-header > p:not(.mem-kicker, .mem-note) { color: var(--mem-muted); font-size: 1.05rem; }
#content.mem-page .mem-header .mem-note { color: var(--mem-ink); margin: .9rem 0; }
.mem-page :is(.mem-kicker, .mem-small) { font-size: .88em; color: var(--mem-muted); }
#content.mem-page .mem-kicker { color: var(--mem-accent); font-weight: 700; margin: 0 0 .5em; }
.mem-page .mem-note { border-inline-start: 3px solid var(--mem-accent); padding: .65rem .9rem; background: var(--mem-tint); font-size: .91em; }
.mem-page .mem-panel { border: 1px solid var(--mem-line); border-radius: 16px; padding: clamp(12px, 3vw, 24px); margin-block: 1.35rem; background: var(--mem-paper); }
.mem-page .mem-panel h2 { margin: 0 0 .65rem; }
.mem-page .mem-settings { padding: .85rem 1rem; margin: 0 0 1rem; border: 1px solid var(--mem-line); border-radius: 10px; }
.mem-page .mem-settings legend { padding-inline: .35rem; font-weight: 700; }
.mem-page select, .mem-page input[type="text"] { background: var(--mem-paper); color: var(--mem-ink); border: 1px solid var(--mem-line); border-radius: 8px; min-height: 44px; }
.mem-page select { max-width: 14rem; }
.mem-page .mem-settings p { margin: .25rem 0 0; }
.mem-page .mem-check { display: flex; align-items: center; gap: .6rem; margin: .7rem 0 .2rem; min-height: 44px; }
.mem-page .mem-check input[type="checkbox"] { appearance: auto; position: static; opacity: 1; z-index: auto; width: 1.15rem; height: 1.15rem; accent-color: var(--mem-strong); margin: 0; }
.mem-page .mem-check::before { display: none; }
.mem-page :is(.mem-modes, .mem-games, .mem-choices) { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin: .85rem 0; }
.mem-page .mem-games section { min-width: 0; margin: 0; border: 1px solid var(--mem-line); border-radius: 12px; padding: 1rem; background: var(--mem-tint); display: flex; flex-direction: column; align-items: flex-start; }
.mem-page .mem-games h3 { margin: .35rem 0; font-size: 1.05em; }
.mem-page .mem-games p { margin: 0 0 .55rem; }
.mem-page .mem-games button { margin-top: auto; width: 100%; }
.mem-page .mem-game-icon { color: var(--mem-accent); font-size: 1.15em; }
.mem-page button {
  appearance: none;
  min-height: 44px;
  height: auto;
  padding: .52rem .82rem;
  background: var(--mem-strong);
  color: #fff;
  border: 1px solid transparent;
  border-radius: 9px;
  font: inherit;
  font-weight: 700;
  line-height: 1.35;
  white-space: normal;
  text-transform: none;
  letter-spacing: normal;
  box-shadow: none;
}
.mem-page button:not(:disabled):hover { filter: brightness(1.12); }
.mem-page button:disabled { opacity: .6; cursor: default; }
.mem-page button.mem-secondary { background: var(--mem-paper); color: var(--mem-accent); border-color: var(--mem-line); }
.mem-page .mem-modes span { display: block; font-weight: 400; font-size: .83em; margin-top: .25rem; }
.mem-page .mem-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .9rem; }
.mem-page .mem-play-actions { border-top: 1px solid var(--mem-line); padding-top: .85rem; }
.mem-page #mem-stage { margin-top: .85rem; }
.mem-page #mem-stage p { margin: 0 0 .7rem; }
.mem-page .mem-surface {
  background: var(--mem-tint);
  border: 1px solid var(--mem-line);
  border-radius: 12px;
  padding: .85rem;
  min-height: 130px;
  text-align: center;
  display: grid;
  align-content: center;
  gap: .6rem;
}
.mem-page .mem-number { display: block; font-size: clamp(1.55rem, 6vw, 2.9rem); letter-spacing: .1em; font-family: "Courier New", monospace; font-variant-numeric: tabular-nums; word-break: break-all; }
.mem-page .mem-grid { width: min(100%, 390px); margin: .6rem auto; display: grid; grid-template-columns: repeat(var(--columns), minmax(0,1fr)); gap: 5px; }
.mem-page .mem-grid > button, .mem-page .mem-grid > span {
  min-width: 0; min-height: 44px; aspect-ratio: 1; display: grid; place-content: center;
  border: 1px solid var(--mem-line); border-radius: 8px; padding: 0; background: var(--mem-tint); color: var(--mem-ink);
}
.mem-page .mem-grid > .mem-flash, .mem-page .mem-choices > [aria-pressed="true"] {
  border-color: var(--mem-strong); background: var(--mem-strong); color: #fff;
}
.mem-page .mem-grid > .mem-matched { border: 2px solid var(--mem-accent); opacity: 1; }
.mem-page .mem-grid > .mem-open { background: var(--mem-paper); border: 2px solid var(--mem-accent); }
.mem-page .mem-card-face { font-size: clamp(.8rem, 4vw, 1.45rem); }
.mem-page .mem-card-number { font-size: .71rem; }
.mem-page .mem-words { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit,minmax(70px,1fr)); gap: .45rem; }
.mem-page .mem-words li { padding: .25rem; background: var(--mem-paper); border-radius: 6px; color: var(--mem-ink); font-weight: 700; }
.mem-page .mem-choices { grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); }
.mem-page .mem-choices > button[aria-pressed="true"]::before { content: "✓ "; }
.mem-page progress { width: 100%; height: .7rem; accent-color: var(--mem-strong); }
.mem-page .mem-score { color: var(--mem-accent); font-weight: 750; font-size: clamp(1.6rem, 6vw, 2.5rem); line-height: 1.25; }
.mem-page .mem-row { margin: .9rem 0 0; border-top: 1px solid var(--mem-line); padding-top: .85rem; }
.mem-page .mem-row p { margin: .25rem 0; }
.mem-page .mem-row summary, .mem-page .mem-content summary { cursor: pointer; font-weight: 700; min-height: 44px; padding: .5rem 0; }
.mem-page .mem-content section { border-top: 1px solid var(--mem-line); padding-top: .85rem; margin-top: 1.3rem; }
.mem-page .mem-content p { margin: 0 0 .8rem; }
.mem-page .mem-content h2 { margin: 0 0 .5rem; }
.mem-page .mem-table { overflow-x: auto; }
.mem-page .mem-table table { width: 100%; margin: .5rem 0; border-collapse: collapse; }
.mem-page .mem-table :is(th,td) { padding: .35rem .5rem; text-align: left; border-bottom: 1px solid var(--mem-line); }
.mem-page .mem-table th { color: var(--mem-ink); }
.mem-page .mem-sr {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}
@media (max-width: 520px) {
  .mem-page .mem-games { grid-template-columns: minmax(0,1fr); }
  .mem-page .mem-grid { gap: 4px; }
}
body.mem-playing [data-sidebar-toggle] { display: none; }
@media (prefers-reduced-motion: reduce) {
  .mem-page *, .mem-page *::before, .mem-page *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
