/* A quiet classroom board. Base stylesheet supplies the activity structure. */
@font-face {
	font-family: "Andika Board";
	src: url("../fonts/andika-regular.woff2") format("woff2");
	font-style: normal;
	font-weight: 400;
	font-display: swap;
}

@font-face {
	font-family: "Andika Board";
	src: url("../fonts/andika-bold.woff2") format("woff2");
	font-style: normal;
	font-weight: 600 900;
	font-display: swap;
}

.ams-plugin-shell:has(.ams-board) {
	width: calc(100% - 2rem);
	max-width: 1880px !important;
	margin: 1rem auto !important;
}

.ams-board {
	box-sizing: border-box;
	--ams-ink: #26384a;
	--ams-muted: #627182;
	--ams-paper: #fff;
	--ams-canvas: #f8f8f3;
	--ams-line: #e1e7e9;
	--ams-morph: #387568;
	--ams-morph-soft: #edf5f1;
	--ams-syntax: #406f93;
	--ams-syntax-soft: #eaf1f8;
	--ams-coral: #b75e4a;
	--ams-coral-soft: #fcf0ea;
	--ams-gold: #406f93;
	--ams-purple: #786a95;
	--ams-success: #2e7459;
	--ams-success-soft: #ebf5ee;
	--ams-error: #b25043;
	--ams-error-soft: #fcf0ec;
	--ams-board-hover: #f0f5f8;
	--ams-board-font: "Andika Board", "Andika", system-ui, sans-serif;
	display: flex;
	min-height: calc(100dvh - 2rem);
	flex-direction: column;
	border: 1px solid var(--ams-line);
	border-radius: 24px;
	background: var(--ams-canvas);
	box-shadow: 0 10px 32px rgb(38 56 74 / 5%);
	color: var(--ams-ink);
	font-family: var(--ams-board-font);
	font-size: 18px;
	line-height: 1.5;
	color-scheme: light;
}
.ams-board *,
.ams-board *::before,
.ams-board *::after { box-sizing: inherit; }

.ams-board :where(h2, h3, h4, p, button, a, label, summary, input, select, textarea) {
	font-family: var(--ams-board-font);
}

.ams-board :where(h2, h3, h4, strong) { font-weight: 700; }
.ams-board :where(h2, h3, h4) { color: var(--ams-ink); }
.ams-board.ams-app :where(button, a, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--ams-gold);
	outline-offset: 5px;
}
.ams-board.ams-app :where(button, a, input, select, textarea, summary, [tabindex]):focus:not(:focus-visible),
.ams-board.is-pointer-user :where(button, a, input, select, textarea, summary, [tabindex]):focus-visible,
.ams-board .ams-view [tabindex="-1"]:focus {
	outline: none;
	box-shadow: none;
}
.ams-board :where(button, a, summary, input, select, textarea) { -webkit-tap-highlight-color: transparent; }
.ams-board :where(button, select, summary, input[type="checkbox"]) { touch-action: manipulation; }
.ams-board button { letter-spacing: 0; }
.ams-board button:disabled { opacity: 0.65; }
.ams-board [hidden] { display: none !important; }

.ams-board .ams-header {
	flex: 0 0 auto;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 1rem;
	padding: 0.8rem clamp(1.2rem, 2.5vw, 2.5rem);
	border-color: var(--ams-line);
	background: transparent;
}
.ams-board .ams-brand { gap: 1.2rem; align-items: center; }
.ams-board .ams-home-logo {
	display: grid;
	flex: 0 0 145px;
	width: 145px;
	min-height: 52px;
	align-items: center;
	padding: 0.35rem 0;
	border: 0;
	border-radius: 10px;
	background: transparent;
	text-decoration: none;
}
.ams-board .ams-home-logo:hover { opacity: 0.86; }
.ams-board .ams-home-logo img { display: block; width: 100%; max-width: 100%; height: auto; }
.ams-board .ams-brand__title { min-width: 0; }
.ams-board .ams-brand__title h2 {
	margin: 0;
	font-size: clamp(1.3rem, 1.7vw, 1.8rem);
	line-height: 1.2;
	letter-spacing: -0.02em;
}
.ams-board .ams-brand__title p { margin: 0.15rem 0 0; color: var(--ams-muted); font-size: 0.87em; }
.ams-board .ams-header__tools { gap: 0.6rem; flex-wrap: nowrap; }
.ams-board .ams-icon { display: block; flex: 0 0 24px; width: 24px; height: 24px; }
.ams-board .ams-icon-button,
.ams-board .ams-field-inline {
	min-width: 52px;
	min-height: 52px;
	border: 1px solid var(--ams-line);
	border-radius: 12px;
	background: var(--ams-paper);
	color: var(--ams-ink);
	font-size: 0.84em;
	font-weight: 700;
}
.ams-board .ams-field-inline { gap: 0.35rem; padding: 0.2rem 0.4rem 0.2rem 0.8rem; }
.ams-board .ams-field-inline select { min-height: 44px; padding-right: 1.4rem; color: var(--ams-ink); font-size: 1.05em; }
.ams-board select option { background: var(--ams-paper); color: var(--ams-ink); }
.ams-board .ams-icon-button:hover,
.ams-board .ams-icon-button[aria-pressed="true"] { border-color: var(--ams-gold); background: var(--ams-syntax-soft); color: var(--ams-syntax); }
.ams-board .ams-header__tools [data-action="fullscreen"] { width: 52px; padding: 0.6rem; border-color: transparent; background: transparent; }
.ams-board .ams-header__tools [data-action="fullscreen"]:hover { background: var(--ams-board-hover); }
.ams-board [data-fullscreen-label] { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.ams-board .ams-header__tools .ams-teacher-toggle { padding-inline: 0.7rem; border-color: transparent; background: transparent; font-size: 16px; }
.ams-board .ams-header__tools .ams-teacher-toggle:hover,
.ams-board .ams-header__tools .ams-teacher-toggle[aria-expanded="true"] { background: var(--ams-board-hover); color: var(--ams-syntax); }

/* The teacher drawer keeps setup away from the student path. */
.ams-board .ams-teacher-panel {
	flex: 0 0 auto;
	max-height: 56dvh;
	overflow-y: auto;
	padding: 1.1rem clamp(1.2rem, 2.5vw, 2.5rem) 1.3rem;
	border-bottom: 1px solid var(--ams-line);
	background: var(--ams-paper);
}
.ams-board .ams-teacher-head { display: flex; gap: 1rem; justify-content: space-between; align-items: center; margin-bottom: 0.9rem; }
.ams-board .ams-teacher-head h3 { margin: 0; font-size: 1.15em; }
.ams-board .ams-teacher-grid { display: grid; grid-template-columns: minmax(180px, 1fr) repeat(3, minmax(0, 1fr)); gap: 0.7rem; align-items: stretch; }
.ams-board .ams-teacher-grid .ams-field-inline { justify-content: space-between; }
.ams-board .ams-teacher-grid :where(button, .ams-field-inline) { min-height: 56px; }
.ams-board .ams-teacher-actions { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-top: 0.8rem; }
.ams-board .ams-teacher-actions button { min-height: 46px; padding: 0.5rem 0.85rem; }
.ams-board .ams-student-back { align-self: flex-start; width: fit-content; margin-bottom: 0.65rem; }
.ams-board .ams-student-back > .ams-quiet { min-height: 48px; padding: 0.45rem 0.7rem; border-color: transparent; background: transparent; color: var(--ams-muted); font-size: 0.88em; }
.ams-board .ams-student-back > .ams-quiet:hover { border-color: transparent; background: var(--ams-board-hover); color: var(--ams-ink); }

.ams-board .ams-access-tools { flex: 0 0 auto; border-color: var(--ams-line); background: var(--ams-paper); }
.ams-board .ams-access-tools .ams-checkbox { min-height: 48px; }
.ams-board .ams-info-panel { flex: 0 0 auto; max-height: 42dvh; overflow: auto; padding: 1.3rem clamp(1.2rem, 2.5vw, 2.5rem); border-bottom: 1px solid var(--ams-line); background: var(--ams-paper); color: var(--ams-muted); }
.ams-board .ams-info-panel h3 { margin-top: 0; color: var(--ams-ink); }
.ams-board .ams-info-panel p { max-width: 95ch; }


.ams-board .ams-view { display: flex; flex-direction: column; flex: 1 0 auto; min-width: 0; min-height: 0; padding: clamp(1.1rem, 2.5vw, 2.4rem); }
.ams-board .ams-view > :first-child { animation: none; }
.ams-board .ams-eyebrow { margin-bottom: 0.4rem; color: var(--ams-morph); font-size: 0.7em; font-weight: 700; letter-spacing: 0.14em; }
.ams-board .ams-section-heading { align-items: center; margin-bottom: 1.25rem; }
.ams-board .ams-section-heading h3 { font-size: clamp(1.6rem, 2.4vw, 2.5rem); }
.ams-board .ams-section-heading > p { color: var(--ams-muted); font-size: 0.94em; }
.ams-board .ams-toolbar { gap: 1rem; margin-bottom: 1.5rem; }
.ams-board .ams-toolbar__note { color: var(--ams-muted); font-size: 0.85em; }
.ams-board .ams-segmented { border-color: var(--ams-line); border-radius: 12px; background: var(--ams-paper); }
.ams-board .ams-segmented button { min-height: 48px; border-radius: 8px; color: var(--ams-muted); font-weight: 700; }
.ams-board .ams-segmented button:hover { color: var(--ams-ink); }
.ams-board .ams-segmented button.is-current { background: var(--ams-morph); color: #fff; }

/* The first choice is intentionally limited to two large, concrete objects. */
.ams-board .ams-board-home { width: min(1180px, 100%); margin: auto; }
.ams-board .ams-board-heading { margin-bottom: 1.8rem; text-align: center; }
.ams-board .ams-board-heading h3 { margin: 0; font-size: clamp(1.9rem, 3.3vw, 3.3rem); line-height: 1.25; letter-spacing: -0.035em; }
.ams-board .ams-board-heading > p:last-child { margin: 0.6rem 0 0; color: var(--ams-muted); font-size: 1em; }
.ams-board .ams-board-domains { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.ams-board .ams-board-domain {
	position: relative;
	display: grid;
	min-width: 0;
	min-height: 360px;
	align-content: center;
	justify-items: center;
	gap: 0.3rem;
	padding: 1.5rem 1.5rem 1.8rem;
	border: 1px solid var(--ams-line);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 5px 24px rgb(38 56 74 / 4%);
	color: var(--ams-ink);
	text-align: center;
	transition: background 160ms ease, border-color 160ms ease;
}
.ams-board .ams-board-domain--sintaxis,
.ams-board .ams-board-domain[data-domain="sintaxis"] { border-color: var(--ams-line); background: var(--ams-paper); }
.ams-board .ams-board-domain:hover { background: var(--ams-board-hover); border-color: var(--ams-line); box-shadow: 0 8px 30px rgb(38 56 74 / 6%); }
.ams-board .ams-domain-art { display: block; width: 206px; height: 206px; margin-bottom: 0.8rem; object-fit: contain; color: var(--ams-morph); }
.ams-board .ams-domain-art :where(img, svg) { display: block; width: 100%; height: 100%; object-fit: contain; overflow: visible; }
.ams-board .ams-board-domain[data-domain="sintaxis"] .ams-domain-art { color: var(--ams-syntax); }
.ams-board .ams-board-domain > strong { display: block; font-size: clamp(1.9rem, 2.8vw, 2.65rem); line-height: 1.2; }
.ams-board .ams-board-domain > small { display: block; color: var(--ams-muted); font-size: 0.88em; }
.ams-board .ams-domain-example { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; justify-content: center; margin-top: 0.9rem; font-size: 1.02em; }
.ams-board .ams-domain-example span { padding: 0.22rem 0.55rem; border-radius: 7px; color: var(--ams-ink); }
.ams-board .ams-domain-example mark { padding: 0.22rem 0.55rem; border-radius: 7px; background: #edf5f1; color: #387568; }
.ams-board .ams-domain-example .ams-subject { border-bottom: 3px solid var(--ams-syntax); }
.ams-board .ams-domain-example .ams-predicate { border-bottom: 3px solid var(--ams-coral); }
.ams-board .ams-domain-example .is-noun { border-bottom: 3px solid var(--ams-morph); }
.ams-board .ams-domain-example .is-verb { border-bottom: 3px solid var(--ams-coral); }
.ams-board .ams-domain-example .is-subject { border-bottom: 3px solid var(--ams-syntax); }
.ams-board .ams-domain-example .is-predicate { border-bottom: 3px solid var(--ams-coral); }
.ams-board .ams-board-domain > .ams-domain-card__arrow { position: absolute; bottom: 1.4rem; right: 1.4rem; color: var(--ams-muted); }
.ams-board .ams-board-shortcuts { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; margin-top: 1.6rem; }
.ams-board .ams-board-shortcuts button { min-height: 56px; padding-inline: 1.3rem; }
.ams-board .ams-board-caption { margin: 1.5rem 0 0; color: var(--ams-muted); font-size: 0.78em; text-align: center; }

/* Topic choices use the same position and scale in both domains. */
.ams-board .ams-board-topics { width: min(1250px, 100%); margin: auto; }
.ams-board .ams-board-topics .ams-toolbar { margin-bottom: 1rem; }
.ams-board .ams-board-topics .ams-board-heading { margin-bottom: 1.1rem; }
.ams-board .ams-board-topics .ams-board-heading h3 { font-size: clamp(1.8rem, 2.6vw, 2.5rem); }
.ams-board .ams-board-topics .ams-board-heading > p { font-size: 0.88em; }
.ams-board .ams-board-topics .ams-topic-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.85rem; }
.ams-board .ams-topic-tile {
	position: relative;
	display: flex;
	min-width: 0;
	min-height: 172px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	border: 1px solid var(--ams-line);
	border-radius: 17px;
	background: var(--ams-paper);
	color: var(--ams-ink);
	text-align: center;
	transition: border-color 160ms ease, background 160ms ease;
}
.ams-board .ams-topic-tile:hover { border-color: var(--ams-line); background: var(--ams-board-hover); }
.ams-board .ams-topic-art { display: block; flex: 0 0 auto; width: 104px; height: 104px; object-fit: contain; color: var(--ams-morph); }
.ams-board .ams-topic-art :where(img, svg) { display: block; width: 100%; height: 100%; object-fit: contain; overflow: visible; }
.ams-board .ams-topic-tile > .ams-topic-art { width: 102px; height: 102px; }
.ams-board .ams-topic-tile--sintaxis .ams-topic-art,
.ams-board .ams-topic-tile.ams-topic-card--sintaxis .ams-topic-art { color: var(--ams-syntax); }
.ams-board .ams-topic-tile > strong { margin-top: 0.35rem; font-size: 1.12em; line-height: 1.25; }
.ams-board .ams-topic-example { display: block; margin-top: 0.3rem; color: var(--ams-muted); font-size: 0.82em; line-height: 1.4; }
.ams-board .ams-topic-arrow { display: none; }
.ams-board .ams-topic-level { display: block; margin-top: auto; padding-top: 0.3rem; color: var(--ams-gold); font-size: 0.7em; }
.ams-board .ams-topic-tile.is-future { border-style: dashed; }

.ams-board .ams-more-topics { margin-top: 1rem; color: var(--ams-muted); }
.ams-board .ams-more-topics > summary { width: fit-content; min-height: 48px; margin-inline: auto; padding: 0.6rem 1rem; border-radius: 12px; cursor: pointer; font-size: 0.88em; font-weight: 700; }
.ams-board .ams-more-topics > summary:hover { background: var(--ams-board-hover); color: var(--ams-ink); }
.ams-board .ams-more-topics[open] > summary { margin-bottom: 0.7rem; }

.ams-board .ams-practice { width: min(1450px, 100%); margin-inline: auto; }
.ams-board .ams-practice-heading { display: flex; flex-wrap: wrap; gap: 1rem 1.3rem; align-items: center; margin-bottom: 1.5rem; }
.ams-board .ams-practice-heading > .ams-topic-art { width: 76px; height: 76px; }
.ams-board .ams-practice-heading h3 { margin-bottom: 0.3rem; font-size: clamp(1.8rem, 3vw, 2.7rem); line-height: 1.2; }
.ams-board .ams-practice-heading p:last-child { margin-bottom: 0; color: var(--ams-muted); }
.ams-board .ams-practice-heading > .ams-segmented { margin-left: auto; }
.ams-board .ams-practice-heading .ams-quiet { min-height: 44px; padding: 0.4rem 0.7rem; font-size: 0.82em; }
.ams-board .ams-mode-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.ams-board .ams-mode-card { min-height: 280px; padding: 1.3rem; border: 1px solid var(--ams-line); background: var(--ams-paper); color: var(--ams-ink); }
.ams-board .ams-mode-card > span { width: 60px; height: 60px; padding: 0; border-radius: 0; background: transparent; color: var(--ams-gold); }
.ams-board .ams-mode-card > span svg { width: 56px; height: 56px; }
.ams-board .ams-mode-card h4 { margin-top: 1rem; font-size: 1.2em; }
.ams-board .ams-mode-card p { font-size: 0.88em; color: var(--ams-muted); }
.ams-board .ams-mode-card .ams-secondary { width: 100%; margin-top: auto; }
.ams-board .ams-mode-card > .ams-topic-art { width: 56px; height: 56px; color: var(--ams-gold); }
.ams-board .ams-mode-card > strong { margin-top: 1rem; font-size: 1.2em; line-height: 1.3; }
.ams-board .ams-mode-card > small { display: block; margin: 0.6rem 0 1.2rem; color: var(--ams-muted); font-size: 0.88em; line-height: 1.5; }
.ams-board .ams-mode-card > .ams-mode-start { display: inline-flex; width: 100%; height: auto; min-height: 48px; justify-content: center; align-items: center; margin-top: auto; padding: 0.55rem 0.6rem; border: 1px solid var(--ams-morph); border-radius: 10px; background: transparent; color: var(--ams-ink); font-size: 0.86em; font-weight: 700; }
.ams-board .ams-mode-card:hover:not(:disabled) { border-color: var(--ams-line); background: var(--ams-board-hover); }
.ams-board .ams-mode-card:hover:not(:disabled) .ams-mode-start { border-color: var(--ams-line); background: var(--ams-syntax-soft); color: var(--ams-syntax); }

.ams-board .ams-primary,
.ams-board .ams-secondary,
.ams-board .ams-quiet,
.ams-board .ams-danger {
	min-height: 56px;
	gap: 0.6rem;
	padding: 0.75rem 1rem;
	border: 1px solid var(--ams-line);
	border-radius: 12px;
	box-shadow: none;
	font-size: 0.95em;
	font-weight: 700;
}
.ams-board .ams-primary { border-color: var(--ams-syntax); background: var(--ams-syntax); color: #fff; }
.ams-board .ams-primary:hover { transform: none; border-color: #315c7d; background: #315c7d; box-shadow: none; color: #fff; }
.ams-board .ams-secondary { border-color: var(--ams-morph); background: transparent; color: var(--ams-ink); }
.ams-board .ams-secondary:hover { border-color: var(--ams-gold); background: var(--ams-board-hover); color: var(--ams-ink); }
.ams-board .ams-quiet { background: transparent; color: var(--ams-ink); }
.ams-board .ams-quiet:hover { border-color: var(--ams-gold); background: var(--ams-paper); }
.ams-board .ams-danger { border-color: var(--ams-coral); background: var(--ams-error-soft); color: var(--ams-coral); }
.ams-board .ams-card__actions,
.ams-board .ams-form-actions { margin-top: 1.1rem; }

/* Existing activity, lesson, analysis and progress views keep all functionality. */
.ams-board .ams-panel,
.ams-board .ams-topic-card,
.ams-board .ams-stat-card,
.ams-board .ams-lesson__map,
.ams-board .ams-lesson__content { border-color: var(--ams-line); background: var(--ams-paper); color: var(--ams-ink); }
.ams-board .ams-topic-card__icon { background: var(--ams-morph-soft); color: var(--ams-morph); }
.ams-board .ams-topic-card--sintaxis .ams-topic-card__icon { background: var(--ams-syntax-soft); color: var(--ams-syntax); }
.ams-board .ams-topic-card__tag { background: #edf2f5; color: var(--ams-muted); }
.ams-board .ams-topic-card > p,
.ams-board .ams-lesson__map > p { color: var(--ams-muted); }
.ams-board .ams-status--new { background: #edf2f5; color: var(--ams-ink); }
.ams-board .ams-status--learning { background: #faf3df; color: #7b622e; }
.ams-board .ams-status--practice { background: var(--ams-syntax-soft); color: var(--ams-syntax); }
.ams-board .ams-status--mastered { background: var(--ams-success-soft); color: var(--ams-success); }
.ams-board .ams-lesson { grid-template-columns: minmax(260px, 0.65fr) minmax(0, 1.35fr); }
.ams-board .ams-lesson__map { border-top-width: 4px; }
.ams-board .ams-lesson__map > .ams-topic-art { margin: 1.2rem 0 0.8rem; }
.ams-board .ams-lesson-steps li { border-color: var(--ams-line); }
.ams-board .ams-lesson-steps span { background: var(--ams-gold); color: #fff; }
.ams-board .ams-worked-example { padding: clamp(1.3rem, 3vw, 2rem); border-color: var(--ams-morph); background: var(--ams-canvas); box-shadow: none; }
.ams-board .ams-worked-example blockquote { color: var(--ams-ink); font-size: clamp(1.5rem, 3.1vw, 2.75rem); line-height: 1.5; }
.ams-board .ams-reasoning li { border-color: var(--ams-morph); background: var(--ams-morph-soft); }
.ams-board .ams-lesson--sintaxis .ams-reasoning li { border-color: var(--ams-syntax); background: var(--ams-syntax-soft); }
.ams-board .ams-tip { border-color: var(--ams-purple); background: #f3eff8; color: var(--ams-ink); }
.ams-board .ams-tip p:last-child { margin-bottom: 0; }
.ams-board .ams-help { margin-top: 1.2rem; padding: 0; border: 1px solid var(--ams-line); border-radius: 12px; background: transparent; color: var(--ams-muted); }
.ams-board .ams-help > summary,
.ams-board .ams-help > details > summary { min-height: 52px; padding: 0.75rem 1rem; color: var(--ams-ink); cursor: pointer; font-size: 0.92em; font-weight: 700; }
.ams-board .ams-help[open] { background: var(--ams-paper); }
.ams-board .ams-help > :not(summary) { margin-inline: 1rem; }
.ams-board .ams-help > :last-child { margin-bottom: 1rem; }
.ams-board .ams-help p { color: var(--ams-muted); }
.ams-board .ams-help .ams-lesson-steps { margin-top: 0.4rem; }
/* A concrete example is the entire student lesson. */
.ams-board .ams-lesson-focus {
	display: grid;
	width: min(1200px, 100%);
	grid-template-columns: minmax(180px, 0.65fr) minmax(0, 1.35fr);
	gap: clamp(1.5rem, 4vw, 4rem);
	align-items: center;
	margin: auto;
	padding-block: 1rem;
}
.ams-board .ams-lesson-illustration { display: block; width: 100%; max-width: 310px; max-height: 310px; justify-self: center; object-fit: contain; }
.ams-board .ams-lesson-main { min-width: 0; }
.ams-board .ams-lesson-main > h3 { margin: 0 0 1.2rem; font-size: clamp(2.2rem, 3.4vw, 3.7rem); line-height: 1.2; letter-spacing: -0.03em; }
.ams-board .ams-lesson-main > p { color: var(--ams-muted); font-size: 1.05em; }
.ams-board .ams-lesson-main .ams-worked-example { padding: clamp(1.2rem, 2.6vw, 2rem); border: 1px solid var(--ams-line); border-radius: 22px; background: var(--ams-paper); }
.ams-board .ams-lesson-main .ams-worked-example blockquote { margin: 0; font-size: clamp(1.6rem, 2.8vw, 2.7rem); line-height: 1.45; }
.ams-board .ams-lesson-main .ams-worked-example > p:not(.ams-eyebrow) { margin: 1rem 0 0; color: var(--ams-muted); font-size: 1em; }
.ams-board .ams-lesson-main .ams-worked-example > .ams-eyebrow { margin: 0 0 0.6rem; color: var(--ams-muted); font-size: 0.7em; }
.ams-board .ams-lesson-main > .ams-primary,
.ams-board .ams-lesson-main .ams-card__actions > .ams-primary { min-width: 245px; min-height: 64px; margin-top: 0.2rem; font-size: 1.08em; }
.ams-board .ams-lesson-main > .ams-primary { margin-top: 1.5rem; }
.ams-board .ams-lesson-main .ams-help { margin-top: 1rem; border-color: transparent; }
.ams-board .ams-lesson-main .ams-help > summary { width: fit-content; padding-inline: 0; color: var(--ams-muted); font-size: 0.88em; }
.ams-board .ams-lesson-main .ams-help[open] { border-color: var(--ams-line); }
.ams-board .ams-lesson-main .ams-help[open] > summary { padding-inline: 1rem; }

.ams-board .ams-session { width: min(1180px, 100%); }
.ams-board .ams-session__counter { color: var(--ams-muted); font-size: 0.9em; }
.ams-board .ams-session__dots i { height: 9px; }
.ams-board .ams-question-card { padding: clamp(1.3rem, 2.8vw, 2.4rem); border: 1px solid var(--ams-line); border-radius: 20px; background: var(--ams-paper); box-shadow: none; }
.ams-board .ams-question-card h3 { max-width: none; font-size: clamp(1.65rem, 2.7vw, 2.55rem); line-height: 1.3; }
.ams-board .ams-context { margin-block: 1.25rem; padding: 1.3rem; border-color: var(--ams-line); background: var(--ams-canvas); font-size: clamp(1.65rem, 3vw, 2.75rem); }
.ams-board .ams-context mark { background: var(--ams-gold); color: #fff; }
.ams-board .ams-options { gap: 0.9rem; }
.ams-board .ams-option { min-height: 76px; padding: 1rem 1.15rem; border-color: var(--ams-line); background: var(--ams-canvas); color: var(--ams-ink); font-size: 1.12em; }
.ams-board .ams-option::before { border-color: #c1cdd4; border-radius: 50%; }
.ams-board .ams-option:hover { border-color: transparent; background: var(--ams-board-hover); }
.ams-board .ams-option.is-selected { border-color: transparent; background: var(--ams-syntax-soft); }
.ams-board .ams-option.is-selected::before { border-color: var(--ams-gold); background: var(--ams-gold); color: #fff; }
.ams-board .ams-option.is-correct,
.ams-board .ams-token.is-correct { border-color: transparent; background: var(--ams-success-soft); color: var(--ams-ink); }
.ams-board .ams-option.is-incorrect,
.ams-board .ams-token.is-incorrect { border-color: transparent; background: var(--ams-error-soft); color: var(--ams-ink); }
.ams-board .ams-token-picker { gap: 0.65rem; padding: 1.3rem; border-color: var(--ams-line); background: var(--ams-canvas); }
.ams-board .ams-token { min-height: 62px; padding: 0.7rem 1rem; border-color: transparent; border-radius: 12px; background: #f0f4f5; color: var(--ams-ink); font-size: 1.25em; }
.ams-board .ams-token:hover,
.ams-board .ams-token.is-selected { border-color: transparent; background: var(--ams-syntax-soft); color: var(--ams-syntax); }
.ams-board .ams-token.is-correct { border-color: transparent; background: var(--ams-success-soft); color: var(--ams-ink); }
.ams-board .ams-token.is-incorrect { border-color: transparent; background: var(--ams-error-soft); color: var(--ams-ink); }
.ams-board .ams-hint { border-color: var(--ams-purple); background: #f3eff8; color: var(--ams-ink); }
.ams-board .ams-feedback { border-color: var(--ams-line); color: var(--ams-ink); font-size: 1em; }
.ams-board .ams-feedback.is-success,
.ams-board .ams-alert.is-success { border-color: var(--ams-success); background: var(--ams-success-soft); }
.ams-board .ams-feedback.is-error,
.ams-board .ams-alert.is-error { border-color: var(--ams-error); background: var(--ams-error-soft); }
.ams-board .ams-alert { border-color: var(--ams-line); border-left-color: var(--ams-syntax); background: var(--ams-paper); color: var(--ams-ink); }
.ams-board .ams-feedback h4 { font-size: 1.2em; }
.ams-board .ams-analysis-tabs button { min-height: 64px; border-color: var(--ams-line); background: var(--ams-paper); color: var(--ams-ink); }
.ams-board .ams-analysis-tabs button.is-current { border-color: var(--ams-gold); box-shadow: inset 0 -3px 0 var(--ams-gold); }
.ams-board .ams-sentence-display { border-color: var(--ams-morph); background: var(--ams-canvas); font-size: clamp(1.5rem, 2.8vw, 2.5rem); }
.ams-board .ams-analysis-table-wrap { border-color: var(--ams-line); background: var(--ams-canvas); }
.ams-board .ams-analysis-table th { background: #f0f4f5; color: var(--ams-ink); font-size: 0.8em; }
.ams-board .ams-analysis-table :where(th, td) { border-color: var(--ams-line); }
.ams-board .ams-analysis-table select { min-height: 52px; border-color: var(--ams-line); background: var(--ams-paper); color: var(--ams-ink); font-size: 0.9em; }
.ams-board .ams-analysis-table select.is-correct { border-color: var(--ams-success); background: var(--ams-success-soft); }
.ams-board .ams-analysis-table select.is-incorrect { border-color: var(--ams-error); background: var(--ams-error-soft); }
.ams-board .ams-analyze { width: min(1460px, 100%); margin-inline: auto; }
.ams-board .ams-analysis-board { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.ams-board .ams-analysis-board > .ams-panel { min-width: 0; }
.ams-board .ams-analysis-instruction { margin-bottom: 0.8rem; color: var(--ams-muted); font-size: 0.94em; text-align: center; }
.ams-board .ams-analysis-board .ams-sentence-display { padding: 1rem 1.3rem; border-width: 1px; background: var(--ams-canvas); }
.ams-board .ams-sentence-strip { display: flex; flex-wrap: wrap; gap: 0.5rem 0.7rem; align-items: center; justify-content: center; }
.ams-board .ams-sentence-word { display: inline-flex; min-width: 64px; min-height: 90px; flex-direction: column; align-items: center; justify-content: center; padding: 0.5rem 0.7rem 0.3rem; border: 2px solid transparent; border-bottom-color: transparent; border-radius: 14px; background: transparent; color: var(--ams-ink); font-size: clamp(1.5rem, 2.7vw, 2.65rem); font-weight: 700; line-height: 1.25; }
.ams-board .ams-sentence-word:hover { border-color: transparent; background: var(--ams-board-hover); }
.ams-board .ams-sentence-word[aria-pressed="true"] { border-color: transparent; background: var(--ams-syntax-soft); color: var(--ams-syntax); }
.ams-board .ams-word-status { display: block; min-height: 1.3em; margin-top: 0.2rem; font-size: clamp(0.75rem, 0.42em, 0.95rem); font-weight: 700; line-height: 1.3; }
.ams-board .ams-sentence-word.is-correct { background: var(--ams-success-soft); }
.ams-board .ams-sentence-word.is-incorrect { background: var(--ams-error-soft); }
.ams-board .ams-sentence-word.is-correct:not([aria-pressed="true"]) .ams-word-status { color: var(--ams-success); }
.ams-board .ams-sentence-word.is-incorrect:not([aria-pressed="true"]) .ams-word-status { color: var(--ams-error); }
.ams-board .ams-word-inspector { max-width: 1100px; margin: 1.3rem auto 0; padding: 1rem 1.3rem 1.3rem; border: 1px solid var(--ams-line); border-radius: 14px; background: var(--ams-canvas); }
.ams-board .ams-inspector-title { margin: 0 0 0.9rem; color: var(--ams-gold); font-size: clamp(1.5rem, 2.1vw, 2rem); line-height: 1.3; text-align: center; }
.ams-board .ams-inspector-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; }
.ams-board .ams-inspector-fields .ams-field { min-width: 0; gap: 0.5rem; }
.ams-board .ams-inspector-fields .ams-field label { font-size: 0.95em; font-weight: 700; }
.ams-board .ams-word-inspector .ams-inspector-fields select { width: 100%; min-width: 0; min-height: 64px; padding: 0.75rem; border: 2px solid var(--ams-line); border-radius: 10px; background: var(--ams-paper); color: var(--ams-ink); font-size: 1.15em; }
.ams-board .ams-inspector-fields select.is-correct { border-color: var(--ams-success); background: var(--ams-success-soft); }
.ams-board .ams-inspector-fields select.is-incorrect { border-color: var(--ams-error); background: var(--ams-error-soft); }
.ams-board .ams-inspector-fields :where(.ams-field-feedback, .ams-field-error) { font-size: 0.8em; line-height: 1.4; }
.ams-board .ams-inspector-fields .ams-field-feedback { color: var(--ams-success); }
.ams-board .ams-analysis-board .ams-form-actions { justify-content: center; }
.ams-board .ams-analysis-board > .ams-analysis-guidance { display: grid; grid-template-columns: minmax(280px, 0.65fr) minmax(0, 1.35fr); gap: 1rem; align-items: start; align-self: start; padding: 0; border: 0; background: transparent; }
.ams-board .ams-analysis-guidance .ams-help { margin-top: 0; }
.ams-board .ams-analysis-guidance .ams-review-results { align-self: center; margin-top: 0; }
.ams-board .ams-analysis-guidance .ams-review-results > p { margin: 0; color: var(--ams-muted); font-size: 0.86em; }
.ams-board .ams-analysis-guidance .ams-review-item > p { margin-bottom: 0; font-size: 0.9em; }
.ams-board .ams-field label,
.ams-board .ams-field legend { color: var(--ams-ink); font-size: 0.89em; }
.ams-board .ams-field :where(input[type="text"], input[type="number"], select, textarea) { min-height: 56px; border-color: var(--ams-line); background: var(--ams-canvas); color: var(--ams-ink); }
.ams-board .ams-field textarea { min-height: 150px; font-size: 1.25em; }
.ams-board :where(input, textarea)::placeholder { color: #647385; opacity: 1; }
.ams-board .ams-field-error,
.ams-board .ams-error-message { color: var(--ams-coral); font-size: 0.85em; }
.ams-board [aria-invalid="true"] { border-color: var(--ams-error) !important; background: var(--ams-error-soft); }
.ams-board .ams-checkbox { min-height: 56px; border-color: var(--ams-line); background: var(--ams-canvas); color: var(--ams-ink); font-size: 0.9em; }
.ams-board .ams-checkbox input { accent-color: var(--ams-syntax); }
.ams-board .ams-review-item { border-color: var(--ams-syntax); background: var(--ams-syntax-soft); color: var(--ams-ink); }
.ams-board .ams-review-item.is-warning { border-color: var(--ams-gold); background: #faf3df; }
.ams-board .ams-review-item.is-success { border-color: var(--ams-success); background: var(--ams-success-soft); }
.ams-board .ams-confidence { color: var(--ams-muted); }
.ams-board .ams-stat-card { padding: 1.3rem; }
.ams-board .ams-stat-card strong { color: var(--ams-gold); }
.ams-board .ams-stat-card span { color: var(--ams-muted); font-size: 0.85em; }
.ams-board .ams-progress-list li { grid-template-columns: minmax(140px, 1fr) minmax(90px, 0.65fr) auto; border-color: var(--ams-line); background: var(--ams-canvas); }
.ams-board .ams-progress-list small { color: var(--ams-muted); }
.ams-board .ams-progress-bar { height: 11px; background: #e4ebe8; }
.ams-board .ams-progress-bar i { background: var(--ams-morph); }
.ams-board .ams-local-note { border-color: var(--ams-line); background: var(--ams-morph-soft); }
.ams-board .ams-dialog { background: rgb(38 56 74 / 36%); }
.ams-board .ams-dialog__panel { padding: 1.5rem; border-color: var(--ams-line); background: var(--ams-paper); box-shadow: none; }
.ams-board .ams-dialog__head button { min-width: 48px; min-height: 48px; border-color: var(--ams-line); background: var(--ams-canvas); color: var(--ams-ink); }
.ams-board .ams-loading { min-height: 480px; }
.ams-board .ams-loading span { border-color: var(--ams-gold); background: transparent; box-shadow: none; color: var(--ams-gold); }

/* A worksheet remains a piece of paper, on screen and in the print dialog. */
.ams-board .ams-worksheet-preview { border-color: #d9dfd7; background: #fff; color: #1d252a; box-shadow: 0 12px 24px rgb(0 0 0 / 12%); color-scheme: light; }
.ams-board .ams-sheet { --ams-ink: #1d252a; --ams-morph: #087f6c; --ams-syntax: #3454a4; color: #1d252a; }
.ams-board .ams-sheet :where(h2, h3, h4, p, strong, span, li) { color: inherit; font-family: Arial, sans-serif; }
.ams-board .ams-sheet__support { color: #58676e; }
.ams-board .ams-sheet__instructions { border-color: #087f6c; background: #eef7f4; }
:where(.ams-plugin-shell, .ams-board) .ams-information { font-family: "Andika Board", "Andika", system-ui, sans-serif; }
:where(.ams-plugin-shell, .ams-board) .ams-resource-info { margin: 0.75rem 0 0; color: #526778; font-family: "Andika Board", "Andika", system-ui, sans-serif; }
:where(.ams-plugin-shell, .ams-board) .ams-resource-info > summary { display: list-item; width: fit-content; min-height: 52px; margin-inline: auto; padding: 0.75rem 1rem; border-radius: 10px; color: #526778; cursor: pointer; font-size: 0.9rem; }
:where(.ams-plugin-shell, .ams-board) .ams-resource-info > summary:hover { background: #eef2f4; }
:where(.ams-plugin-shell, .ams-board) .ams-resource-info > summary:focus-visible { outline: 3px solid #406f93; outline-offset: 3px; }
:where(.ams-plugin-shell, .ams-board) .ams-resource-info .ams-information { margin-top: 0.4rem; }

.ams-board.is-large-text { font-size: 21px; }
.ams-board.is-high-contrast {
	--ams-canvas: #fff;
	--ams-paper: #fff;
	--ams-ink: #12283a;
	--ams-muted: #344d61;
	--ams-line: #53697a;
	--ams-morph: #205d4f;
	--ams-syntax: #245579;
	--ams-gold: #245579;
	--ams-success: #1d5d40;
	--ams-error: #96392f;
	--ams-board-hover: #e8edf2;
	background: var(--ams-canvas);
	border-color: var(--ams-line);
}
.ams-board.is-high-contrast :where(.ams-board-domain, .ams-topic-tile, .ams-mode-card, .ams-question-card) { border-width: 2px; }
.ams-board.is-calm :where(*, *::before, *::after) { animation: none !important; transition: none !important; }

.ams-board:fullscreen,
.ams-board.is-expanded {
	width: 100%;
	height: 100dvh;
	min-height: 0;
	max-width: none;
	margin: 0;
	border: 0;
	border-radius: 0;
	overflow: hidden;
	background: var(--ams-canvas);
}
.ams-board:fullscreen .ams-view,
.ams-board.is-expanded .ams-view { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.ams-board:fullscreen::backdrop { background: #f8f8f3; }

@media (min-width: 1500px) and (min-height: 850px) {
	.ams-board .ams-header { padding-block: 1rem; }
	.ams-board .ams-board-home { padding-block: 1.5rem; }
	.ams-board .ams-board-domains { gap: 2rem; }
	.ams-board .ams-board-domain { min-height: 380px; }
	.ams-board .ams-domain-art { width: 220px; height: 220px; }
	.ams-board .ams-topic-tile { min-height: 175px; }
	.ams-board .ams-mode-card { min-height: 330px; padding: 1.6rem; }
}

@media (min-width: 1000px) and (max-height: 800px) {
	.ams-board .ams-header { padding-block: 0.65rem; }
	.ams-board .ams-home-logo { min-height: 52px; width: 150px; flex-basis: 150px; }
	.ams-board .ams-view { padding-block: 1.1rem; }
	.ams-board .ams-board-heading { margin-bottom: 1rem; }
	.ams-board .ams-board-heading h3 { font-size: 2.2rem; }
	.ams-board .ams-board-heading > p:last-child { margin-top: 0.3rem; }
	.ams-board .ams-board-domain { min-height: 310px; padding: 1rem; }
	.ams-board .ams-domain-art { width: 170px; height: 170px; margin-bottom: 0.5rem; }
	.ams-board .ams-board-domain > strong { font-size: 2rem; }
	.ams-board .ams-domain-example { margin-top: 0.5rem; }
	.ams-board .ams-board-shortcuts { margin-top: 1rem; }
	.ams-board .ams-board-caption { margin-top: 0.8rem; }
	.ams-board .ams-practice-heading { margin-bottom: 1rem; }
	.ams-board .ams-mode-card { min-height: 245px; padding: 1rem; }
	.ams-board .ams-mode-card > span,
	.ams-board .ams-mode-card > span svg { width: 48px; height: 48px; }
	.ams-board .ams-topic-tile { min-height: 120px; padding: 0.4rem 1rem; }
	.ams-board .ams-topic-tile > .ams-topic-art { width: 76px; height: 76px; }
	.ams-board .ams-topic-tile > strong { margin-top: 0.15rem; font-size: 1em; }
	.ams-board .ams-board-topics .ams-board-heading { margin-bottom: 0.65rem; }
	.ams-board .ams-board-topics .ams-board-heading h3 { font-size: 1.9rem; }
	.ams-board .ams-board-topics .ams-topic-grid { gap: 0.65rem; }
	.ams-board .ams-student-back { margin-bottom: 0.35rem; }
	.ams-board .ams-student-back > .ams-quiet { min-height: 44px; padding-block: 0.3rem; }
	.ams-board .ams-more-topics { margin-top: 0.45rem; }
	.ams-board .ams-lesson-focus { gap: 2rem; padding-block: 0.5rem; }
	.ams-board .ams-lesson-illustration { max-width: 240px; max-height: 240px; }
	.ams-board .ams-lesson-main > h3 { margin-bottom: 0.8rem; font-size: 2.4rem; }
	.ams-board .ams-lesson-main .ams-worked-example { padding: 1.2rem; }
	.ams-board .ams-analyze > .ams-section-heading { margin-bottom: 0.7rem; }
	.ams-board .ams-analyze > .ams-section-heading .ams-eyebrow { display: none; }
	.ams-board .ams-analyze > .ams-section-heading h3 { font-size: 1.8rem; }
	.ams-board .ams-analyze .ams-analysis-tabs { gap: 0.6rem; margin-bottom: 0.7rem; }
	.ams-board .ams-analyze .ams-analysis-tabs button { min-height: 52px; padding: 0.5rem 0.8rem; }
	.ams-board .ams-analysis-board > .ams-panel { padding: 1rem; }
	.ams-board .ams-analysis-board > .ams-panel > .ams-eyebrow { display: none; }
	.ams-board .ams-analysis-instruction { margin-bottom: 0.5rem; font-size: 0.85em; }
	.ams-board .ams-analysis-board .ams-sentence-display { padding: 0.6rem 0.8rem; }
	.ams-board .ams-sentence-word { min-height: 68px; padding: 0.35rem 0.6rem 0.2rem; font-size: 1.7rem; }
	.ams-board .ams-word-inspector { margin-top: 0.8rem; padding: 0.7rem 1rem 1rem; }
	.ams-board .ams-inspector-title { margin-bottom: 0.6rem; font-size: 1.5rem; }
	.ams-board .ams-inspector-fields .ams-field label { font-size: 0.85em; }
	.ams-board .ams-word-inspector .ams-inspector-fields select { min-height: 52px; padding: 0.5rem 0.65rem; font-size: 1em; }
	.ams-board .ams-analysis-board .ams-form-actions { margin-top: 0.8rem; }
	.ams-board .ams-analysis-board .ams-form-actions > button { min-height: 50px; padding-block: 0.5rem; }
	.ams-board .ams-analysis-board > .ams-analysis-guidance { padding: 0; }
}

/* A landscape classroom panel keeps the active task and its action together. */
@media (min-width: 900px) and (max-height: 780px) {
	.ams-board .ams-session__top { gap: 0.7rem; margin-bottom: 0.6rem; }
	.ams-board .ams-session__top > .ams-quiet { min-height: 50px; padding-block: 0.45rem; }
	.ams-board .ams-session .ams-question-card { padding: 1rem 1.35rem; }
	.ams-board .ams-session .ams-question-card > .ams-eyebrow { margin-bottom: 0.3rem !important; }
	.ams-board .ams-session .ams-question-card h3 { margin-bottom: 0.6rem; font-size: clamp(1.5rem, 2.35vw, 2rem); line-height: 1.3; }
	.ams-board .ams-session .ams-context { margin-block: 0.65rem; padding: 0.55rem 0.9rem; font-size: clamp(1.6rem, 2.4vw, 2rem); line-height: 1.4; }
	.ams-board .ams-session .ams-question-card > .ams-tip { display: flex; gap: 0.55rem; align-items: baseline; margin-top: 0.6rem; padding: 0.55rem 0.8rem; font-size: 0.92em; }
	.ams-board .ams-session .ams-question-card > .ams-tip > strong { flex: 0 0 auto; }
	.ams-board .ams-session .ams-question-card > .ams-tip > p { margin: 0; }
	.ams-board .ams-session .ams-options { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.65rem; margin-block: 0.7rem; }
	.ams-board .ams-session .ams-options:not(:has(> button:nth-child(3))),
	.ams-board .ams-session .ams-options:has(> button:nth-child(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ams-board .ams-session .ams-option { min-height: 62px; gap: 0.65rem; padding: 0.6rem 0.8rem; font-size: 1.04em; line-height: 1.4; }
	.ams-board .ams-session .ams-option::before { flex-basis: 26px; width: 26px; height: 26px; }
	.ams-board .ams-session .ams-token-picker { margin-block: 0.7rem; gap: 0.5rem; padding: 0.75rem; }
	.ams-board .ams-session .ams-token { min-height: 56px; padding: 0.5rem 0.75rem; font-size: 1.15em; }
	.ams-board .ams-session .ams-hint { margin-block: 0.65rem; padding: 0.6rem 0.8rem; font-size: 0.94em; line-height: 1.4; }
	.ams-board .ams-session .ams-feedback { margin-block: 0.7rem; padding: 0.75rem 0.9rem; }
	.ams-board .ams-session__actions { gap: 0.7rem; }
	.ams-board .ams-session__actions > button { min-height: 56px; padding-block: 0.55rem; }
}

@media (max-width: 1350px) {
	.ams-board .ams-header { gap: 0.8rem; }
	.ams-board .ams-header__tools .ams-icon-button { padding-inline: 0.65rem; }
	.ams-board .ams-header__tools .ams-icon-button > span:not([aria-hidden]):not([data-fullscreen-icon]) { font-size: 0.9em; }
	.ams-board .ams-progress-list li { grid-template-columns: minmax(120px, 1fr) minmax(80px, 0.5fr); }
	.ams-board .ams-progress-list .ams-status { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 1120px) {
	.ams-board .ams-home-logo { flex-basis: 135px; width: 135px; }
	.ams-board .ams-mode-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ams-board .ams-mode-card { min-height: 245px; }
	.ams-board .ams-analysis-workspace { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
	.ams-plugin-shell:has(.ams-board) { width: calc(100% - 1rem); margin-block: 0.5rem !important; }
	.ams-board { min-height: calc(100dvh - 1rem); border-radius: 18px; }
	.ams-board .ams-header { padding: 1rem; }
	.ams-board .ams-brand__title h2 { font-size: 1.6rem; }
	.ams-board .ams-view { padding: 1.2rem; }
	.ams-board .ams-board-heading { margin-bottom: 1.3rem; }
	.ams-board .ams-board-heading h3 { font-size: 2.1rem; }
	.ams-board .ams-board-domains { gap: 1rem; }
	.ams-board .ams-board-domain { min-height: 295px; padding-inline: 0.8rem; }
	.ams-board .ams-domain-art { width: 165px; height: 165px; }
	.ams-board .ams-domain-example { font-size: 0.88em; }
	.ams-board .ams-board-topics .ams-topic-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ams-board .ams-topic-tile { min-height: 165px; padding: 0.8rem; }
	.ams-board .ams-topic-tile > strong { font-size: 1.05em; }
	.ams-board .ams-practice-heading > .ams-segmented { margin-left: 0; }
	.ams-board .ams-lesson,
	.ams-board .ams-worksheet-layout { grid-template-columns: 1fr; }
	.ams-board .ams-teacher-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ams-board .ams-lesson-focus { grid-template-columns: minmax(125px, 0.5fr) minmax(0, 1.5fr); gap: 1.2rem; }
	.ams-board .ams-lesson-illustration { max-width: 185px; max-height: 185px; }
	.ams-board .ams-section-heading { align-items: flex-start; }
	.ams-board .ams-analysis-board > .ams-analysis-guidance { grid-template-columns: 1fr; gap: 0.8rem; }
	.ams-board .ams-analysis-guidance .ams-review-results { align-self: start; }
	.ams-board .ams-progress-list li { grid-template-columns: 1fr minmax(100px, 0.5fr) auto; }
	.ams-board .ams-progress-list .ams-status { grid-column: auto; }
}

@media (max-width: 580px) {
	.ams-board { min-height: calc(100dvh - 1rem); font-size: 16px; }
	.ams-board .ams-header { grid-template-columns: minmax(0, 1fr) auto; gap: 0.5rem 0.8rem; padding: 0.8rem 0.9rem; }
	.ams-board .ams-brand { display: contents; }
	.ams-board .ams-home-logo { grid-column: 1; grid-row: 1; width: 108px; min-height: 44px; padding: 0; border-radius: 8px; }
	.ams-board .ams-brand__title { grid-column: 1 / -1; grid-row: 2; }
	.ams-board .ams-brand__title h2 { font-size: 1.1rem; }
	.ams-board .ams-brand__title p { font-size: 0.78em; }
	.ams-board .ams-header__tools { display: flex; grid-column: 2; grid-row: 1; width: auto; gap: 0.35rem; flex-wrap: nowrap; }
	.ams-board .ams-field-inline { flex: 1 0 auto; gap: 0.2rem; min-height: 48px; padding-inline: 0.5rem 0.2rem; font-size: 0.8em; }
	.ams-board .ams-field-inline select { min-height: 44px; }
	.ams-board .ams-icon-button { min-width: 46px; min-height: 48px; padding: 0.5rem; border-radius: 9px; }
	.ams-board .ams-icon-button .ams-icon { width: 21px; height: 21px; flex-basis: 21px; }
	.ams-board .ams-header__tools .ams-icon-button > span:not([aria-hidden]):not([data-fullscreen-icon]) { font-size: 0.76em; }
	.ams-board .ams-header__tools [data-action="fullscreen"] > span:last-child { display: none; }
	.ams-board .ams-view { padding: 1rem; }
	.ams-board .ams-board-heading { margin-bottom: 1rem; }
	.ams-board .ams-board-heading h3 { font-size: 1.75rem; }
	.ams-board .ams-board-heading > p:last-child { font-size: 0.91em; }
	.ams-board .ams-board-domains { grid-template-columns: 1fr; gap: 0.8rem; }
	.ams-board .ams-board-domain { grid-template-columns: 110px 1fr; grid-template-rows: auto auto auto; min-height: 155px; gap: 0.2rem 1rem; justify-items: start; padding: 1.1rem; border-radius: 16px; text-align: left; }
	.ams-board .ams-domain-art { grid-column: 1; grid-row: 1 / 4; align-self: center; width: 110px; height: 110px; margin: 0; }
	.ams-board .ams-board-domain > strong { grid-column: 2; font-size: 1.65rem; }
	.ams-board .ams-board-domain > small { grid-column: 2; font-size: 0.8em; }
	.ams-board .ams-domain-example { grid-column: 2; justify-content: flex-start; gap: 0.15rem; margin-top: 0.25rem; font-size: 0.8em; }
	.ams-board .ams-domain-example span,
	.ams-board .ams-domain-example mark { padding: 0.15rem 0.25rem; }
	.ams-board .ams-board-shortcuts { flex-direction: column; gap: 0.65rem; margin-top: 1rem; }
	.ams-board .ams-board-shortcuts button { width: 100%; min-height: 52px; }
	.ams-board .ams-board-caption { margin-top: 1rem; font-size: 0.76em; }
	.ams-board .ams-toolbar { gap: 0.8rem; margin-bottom: 1rem; }
	.ams-board .ams-toolbar .ams-segmented { width: 100%; }
	.ams-board .ams-board-topics .ams-topic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; }
	.ams-board .ams-topic-tile { min-height: 155px; padding: 0.8rem; }
	.ams-board .ams-topic-tile > .ams-topic-art { width: 88px; height: 88px; }
	.ams-board .ams-topic-tile > strong { font-size: 1em; }
	.ams-board .ams-topic-example { font-size: 0.8em; overflow-wrap: anywhere; }
	.ams-board .ams-teacher-panel { padding: 1rem; max-height: 64dvh; }
	.ams-board .ams-teacher-grid { grid-template-columns: 1fr; }
	.ams-board .ams-teacher-actions { gap: 0.5rem; }
	.ams-board .ams-teacher-actions button { flex: 1 1 auto; }
	.ams-board .ams-lesson-focus { grid-template-columns: 1fr; gap: 0.8rem; padding-block: 0; }
	.ams-board .ams-lesson-illustration { width: 135px; max-height: 135px; }
	.ams-board .ams-lesson-main > h3 { margin-bottom: 1rem; font-size: 2rem; text-align: center; }
	.ams-board .ams-lesson-main .ams-worked-example { padding: 1.2rem; }
	.ams-board .ams-lesson-main .ams-worked-example blockquote { font-size: 1.6rem; }
	.ams-board .ams-lesson-main > .ams-primary,
	.ams-board .ams-lesson-main .ams-card__actions > .ams-primary { width: 100%; min-width: 0; min-height: 58px; }
	.ams-board .ams-practice-heading { gap: 0.8rem; }
	.ams-board .ams-practice-heading > .ams-topic-art { width: 60px; height: 60px; }
	.ams-board .ams-practice-heading h3 { font-size: 1.6rem; }
	.ams-board .ams-practice-heading > .ams-segmented { width: 100%; }
	.ams-board .ams-mode-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; }
	.ams-board .ams-mode-card { min-height: 255px; padding: 0.9rem; border-radius: 14px; }
	.ams-board .ams-mode-card > span,
	.ams-board .ams-mode-card > span svg { width: 48px; height: 48px; }
	.ams-board .ams-mode-card h4 { font-size: 1.04em; }
	.ams-board .ams-mode-card p { font-size: 0.82em; }
	.ams-board .ams-mode-card > strong { font-size: 1.04em; }
	.ams-board .ams-mode-card > small { font-size: 0.82em; }
	.ams-board .ams-mode-card > .ams-mode-start { font-size: 0.82em; }
	.ams-board .ams-mode-card .ams-secondary { min-height: 48px; padding-inline: 0.5rem; font-size: 0.88em; }
	.ams-board .ams-primary,
	.ams-board .ams-secondary,
	.ams-board .ams-quiet,
	.ams-board .ams-danger { min-height: 52px; }
	.ams-board .ams-question-card { border-radius: 16px; padding: 1rem; }
	.ams-board .ams-question-card h3 { font-size: 1.5rem; }
	.ams-board .ams-context { padding: 0.9rem; font-size: 1.6rem; }
	.ams-board .ams-options,
	.ams-board .ams-form-grid,
	.ams-board .ams-form-grid--three { grid-template-columns: 1fr; }
	.ams-board .ams-option { min-height: 68px; padding: 0.8rem; }
	.ams-board .ams-token-picker { gap: 0.45rem; padding: 0.8rem; }
	.ams-board .ams-token { min-height: 56px; padding: 0.55rem 0.7rem; font-size: 1.15em; }
	.ams-board .ams-analysis-board > .ams-panel { padding: 1rem; }
	.ams-board .ams-analysis-board .ams-sentence-display { padding: 0.75rem 0.6rem; }
	.ams-board .ams-sentence-strip { gap: 0.4rem; }
	.ams-board .ams-sentence-word { min-width: 48px; min-height: 70px; padding: 0.4rem 0.45rem 0.2rem; font-size: 1.6rem; }
	.ams-board .ams-word-inspector { margin-top: 1rem; padding: 0.9rem; }
	.ams-board .ams-inspector-title { font-size: 1.5rem; }
	.ams-board .ams-inspector-fields { grid-template-columns: 1fr; gap: 1rem; }
	.ams-board .ams-inspector-fields .ams-field label { font-size: 0.9em; }
	.ams-board .ams-word-inspector .ams-inspector-fields select { min-height: 56px; padding: 0.6rem; font-size: 1em; }
	.ams-board .ams-analysis-board .ams-form-actions { align-items: stretch; }
	.ams-board .ams-analysis-board .ams-form-actions > button { width: 100%; }
	.ams-board .ams-session__actions { align-items: stretch; }
	.ams-board .ams-session__actions > button { flex: 1 1 auto; }
	.ams-board .ams-progress-list li { grid-template-columns: 1fr; gap: 0.6rem; }
	.ams-board .ams-stat-card { padding: 1rem; }
	.ams-board .ams-dialog { padding: 0.65rem; }
	.ams-board .ams-dialog__panel { padding: 1rem; }
	.ams-board .ams-worksheet-preview { padding: 0.8rem; }
	.ams-board.is-large-text { font-size: 19px; }
}

@media (max-width: 360px) {
	.ams-board .ams-board-domain { grid-template-columns: 90px 1fr; gap: 0.2rem 0.55rem; padding: 0.85rem; }
	.ams-board .ams-domain-art { width: 90px; height: 90px; }
	.ams-board .ams-board-domain > strong { font-size: 1.45rem; }
	.ams-board .ams-mode-grid { grid-template-columns: 1fr; }
	.ams-board .ams-mode-card { min-height: 210px; }
}

/* Practice is one game board: a short task, the sentence, then answer tiles. */
.ams-board .ams-session.ams-game {
	width: min(1320px, 100%);
	max-width: 1320px;
	min-width: 0;
	margin: auto;
}
.ams-board .ams-game .ams-game-top {
	display: grid;
	grid-template-columns: minmax(90px, 1fr) minmax(160px, 2fr) minmax(90px, 1fr);
	gap: 1rem;
	align-items: center;
	margin-bottom: 0.8rem;
}
.ams-board .ams-game .ams-game-top > .ams-quiet {
	justify-self: start;
	min-height: 52px;
	padding: 0.45rem 0.8rem;
	border-color: transparent;
	color: var(--ams-muted);
	font-size: 0.85em;
}
/* Each star is one completed challenge; the current challenge keeps its number. */
.ams-board .ams-game .ams-game-track {
	position: relative;
	display: flex;
	width: 100%;
	max-width: 580px;
	min-width: 0;
	gap: clamp(6px, 0.8vw, 14px);
	align-items: center;
	justify-content: space-between;
	justify-self: center;
	isolation: isolate;
}
.ams-board .ams-game .ams-game-track::before {
	position: absolute;
	z-index: -1;
	left: 17px;
	right: 17px;
	top: calc(50% - 1.5px);
	height: 3px;
	border-radius: 3px;
	background: #dce6ed;
	content: "";
}
.ams-board .ams-game .ams-game-step {
	display: grid;
	flex: 0 1 34px;
	width: 34px;
	max-width: 34px;
	height: 34px;
	place-items: center;
	border: 2px solid #dce6ed;
	border-radius: 50%;
	background: #fbfdff;
	color: #5c7388;
	font-size: 14px;
	font-style: normal;
	font-weight: 700;
	line-height: 1;
}
.ams-board .ams-game .ams-game-step > span { line-height: 1; }
.ams-board .ams-game .ams-game-step > svg { display: block; width: 18px; height: 18px; }
.ams-board .ams-game .ams-game-step.is-done { border-color: #dcb977; background: #fff3d6; color: #a57427; }
.ams-board .ams-game .ams-game-step.is-current { border-color: var(--ams-syntax); background: var(--ams-syntax); box-shadow: 0 0 0 4px #e9f1f8; color: #fff; }
.ams-board .ams-game .ams-game-counter {
	justify-self: end;
	color: var(--ams-muted);
	font-size: 16px;
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	white-space: nowrap;
}
.ams-board .ams-game .ams-game-card {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: clamp(1rem, 1.5vw, 1.5rem);
	padding: clamp(1.2rem, 2.2vw, 2rem);
	border: 1px solid var(--ams-line);
	border-radius: 26px;
	background: var(--ams-paper);
	box-shadow: 0 6px 24px rgb(38 56 74 / 3%);
}
.ams-board .ams-game .ams-game-task { min-width: 0; text-align: center; }
.ams-board .ams-game .ams-game-task h3 {
	max-width: 52ch;
	margin: 0 auto;
	color: #53677b;
	font-size: clamp(20px, 1.4vw, 26px);
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: 0;
	text-wrap: balance;
}
.ams-board .ams-game .ams-game-target {
	display: inline-block;
	max-width: 100%;
	margin-top: 0.6rem;
	padding: 0.2rem 0.8rem;
	border-radius: 10px;
	background: #fbeee6;
	color: #8d523f;
	font-size: clamp(27px, 2.1vw, 40px);
	font-weight: 700;
	line-height: 1.4;
	overflow-wrap: anywhere;
}
.ams-board .ams-game .ams-game-stage {
	display: grid;
	min-width: 0;
	min-height: 168px;
	place-items: center;
	padding: clamp(1.2rem, 2vw, 2rem);
	border: 0;
	border-radius: 20px;
	background: #f0f5f8;
	text-align: center;
}
.ams-board .ams-game .ams-game-sentence {
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--ams-ink);
	font-size: clamp(36px, 2.4vw, 50px);
	font-style: normal;
	font-weight: 700;
	line-height: 1.55;
	letter-spacing: -0.02em;
	overflow-wrap: anywhere;
	text-wrap: balance;
}
.ams-board .ams-game .ams-game-sentence mark {
	padding: 0.05em 0.2em 0.09em;
	border-radius: 9px;
	background: #fae7db;
	color: #92523c;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
}
.ams-board .ams-game .ams-game-answers { min-width: 0; }
.ams-board .ams-game .ams-options {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.8rem;
	margin: 0;
}
.ams-board .ams-game .ams-options:has(> :nth-child(3)):not(:has(> :nth-child(4))),
.ams-board .ams-game .ams-options:has(> :nth-child(5)):not(:has(> :nth-child(7))) {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.ams-board .ams-game .ams-option {
	position: relative;
	display: flex;
	min-width: 0;
	min-height: 80px;
	gap: 0.75rem;
	align-items: center;
	padding: 0.8rem 2.5rem 0.8rem 0.9rem;
	border: 1px solid #dfe6eb;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 3px 0 #e7edf1;
	color: var(--ams-ink);
	font-size: clamp(19px, 1.15vw, 23px);
	font-weight: 700;
	line-height: 1.35;
	text-align: left;
	overflow-wrap: anywhere;
	transition: background 130ms ease, box-shadow 130ms ease;
}
.ams-board .ams-game .ams-option::before { display: none; content: none; }
.ams-board .ams-game .ams-option-badge {
	display: grid;
	flex: 0 0 28px;
	width: 28px;
	height: 28px;
	place-items: center;
	border-radius: 8px;
	background: #f1f4f6;
	color: #62788b;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
}
.ams-board .ams-game .ams-option-label { min-width: 0; }
.ams-board .ams-game .ams-answer-art {
	display: block;
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	object-fit: contain;
}
.ams-board .ams-game .ams-answer-art img { display: block; width: 100%; height: 100%; object-fit: contain; }
.ams-board .ams-game .ams-option.is-selected {
	border-color: #d6e4ef;
	background: #eaf2f9;
	box-shadow: 0 3px 0 #cbdce9;
	color: #315d7d;
}
.ams-board .ams-game .ams-option.is-selected .ams-option-badge { background: #fff; color: var(--ams-syntax); }
.ams-board .ams-game .ams-option:is(.is-selected, .is-correct, .is-incorrect)::after {
	position: absolute;
	right: 0.8rem;
	top: 50%;
	color: var(--ams-syntax);
	font-size: 22px;
	line-height: 1;
	transform: translateY(-50%);
	content: "✓";
}
.ams-board .ams-game .ams-option.is-correct,
.ams-board .ams-game .ams-token.is-correct { border-color: #cde2d4; background: #edf6ef; box-shadow: 0 3px 0 #d3e6d8; color: #38644d; }
.ams-board .ams-game .ams-option.is-correct::after { color: #38644d; }
.ams-board .ams-game .ams-option.is-incorrect,
.ams-board .ams-game .ams-token.is-incorrect { border-color: #efd7ce; background: #fdf0eb; box-shadow: 0 3px 0 #f1dad0; color: #955444; }
.ams-board .ams-game .ams-option.is-incorrect::after { color: #955444; content: "×"; }
.ams-board .ams-game .ams-option:disabled { opacity: 1; }
.ams-board .ams-game .ams-token-picker {
	gap: 0.55rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}
.ams-board .ams-game .ams-token {
	min-height: 64px;
	padding: 0.3rem 0.7rem 0.45rem;
	border: 1px solid transparent;
	border-radius: 12px;
	background: rgb(255 255 255 / 70%);
	box-shadow: 0 3px 0 #dce5eb;
	color: var(--ams-ink);
	font-size: clamp(30px, 2.1vw, 42px);
	line-height: 1.4;
}
.ams-board .ams-game .ams-token.is-selected { border-color: #b8d0e3; background: #dcebf6; box-shadow: 0 3px 0 #b8d0e3; color: #315d7d; }
.ams-board .ams-game .ams-game-controls {
	display: flex;
	min-width: 0;
	gap: 1rem;
	align-items: center;
	justify-content: space-between;
	margin: 0;
	padding-top: 0.3rem;
}
.ams-board .ams-game .ams-game-controls > .ams-primary {
	min-width: 240px;
	min-height: 60px;
	margin-inline: auto;
	padding: 0.7rem 1.5rem;
	border-radius: 14px;
	box-shadow: 0 3px 0 #2f5d7c;
	font-size: 20px;
}
.ams-board .ams-game .ams-game-controls > .ams-primary:disabled { border-color: #b9cbd8; background: #b9cbd8; box-shadow: 0 3px 0 #a9bfce; opacity: 1; }
.ams-board .ams-game .ams-game-tools { display: flex; flex: 0 0 auto; gap: 0.6rem; align-items: center; }
.ams-board .ams-game .ams-game-tools .ams-icon-button {
	display: inline-flex;
	width: 52px;
	min-width: 52px;
	min-height: 52px;
	align-items: center;
	justify-content: center;
	padding: 0.65rem;
	border-color: transparent;
	border-radius: 14px;
	background: #f5f6f6;
	color: #6a7b8c;
}
.ams-board .ams-game .ams-game-tools .ams-icon-button[aria-expanded="true"] { background: #fbf1de; color: #896831; }
.ams-board .ams-game .ams-game-tools .ams-icon { width: 25px; height: 25px; }
.ams-board .ams-game .ams-game-support {
	max-height: 240px;
	overflow-y: auto;
	margin: 0;
	padding: 1rem 1.2rem;
	border: 0;
	border-radius: 14px;
	background: #fcf5e9;
	color: #655c4c;
	font-size: 17px;
	line-height: 1.6;
}
.ams-board .ams-game .ams-game-support[data-support="model"] { background: #f0f4f8; color: #4a6074; }
.ams-board .ams-game .ams-game-support :where(p, blockquote) { margin: 0; font-size: inherit; }
.ams-board .ams-game .ams-game-support :where(h4, strong) { color: inherit; }
.ams-board .ams-game .ams-game-support h4 { margin: 0 0 0.4rem; font-size: 1em; }
.ams-board .ams-game .ams-game-support .ams-quiet { min-height: 48px; margin-top: 0.5rem; padding: 0.4rem 0.7rem; border-color: transparent; color: inherit; font-size: 15px; }
.ams-board .ams-game .ams-game-feedback {
	margin: 0;
	padding: 0.85rem 1.1rem;
	border: 0;
	border-radius: 14px;
	background: #edf6ef;
	color: #38644d;
	font-size: 17px;
	line-height: 1.5;
}
.ams-board .ams-game .ams-game-feedback.is-error { background: #fdf0eb; color: #955444; }
.ams-board .ams-game .ams-feedback-headline { display: flex; gap: 0.7rem; align-items: center; }
.ams-board .ams-game .ams-game-feedback h4 { margin: 0; color: inherit; font-size: 23px; line-height: 1.35; }
.ams-board .ams-game .ams-game-feedback p { margin: 0.3rem 0 0; color: inherit; font-size: inherit; }
.ams-board .ams-game .ams-feedback-details { margin-top: 0.35rem; }
.ams-board .ams-game .ams-feedback-details > summary { width: fit-content; min-height: 44px; padding-block: 0.5rem; cursor: pointer; font-size: 15px; font-weight: 700; }
.ams-board .ams-game .ams-feedback-details[open] { max-height: 220px; overflow-y: auto; }
.ams-board .ams-game .ams-feedback-details :where(ul, ol) { margin-block: 0.5rem; }
.ams-board .ams-game-summary {
	width: min(850px, 100%);
	margin: auto;
	padding: clamp(1.2rem, 3vw, 2.5rem);
	border: 1px solid var(--ams-line);
	border-radius: 26px;
	background: #fff;
	text-align: center;
}
.ams-board .ams-game-summary-art { display: block; width: 148px; height: 148px; margin: 0 auto 0.6rem; object-fit: contain; }
.ams-board .ams-game-summary h3 { margin: 0 0 1.25rem; font-size: clamp(29px, 2.5vw, 42px); line-height: 1.3; }
.ams-board .ams-game-summary-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 0 auto 1.25rem; }
.ams-board .ams-game-stat { display: grid; gap: 0.25rem; padding: 0.9rem; border-radius: 16px; background: #f0f5f8; }
.ams-board .ams-game-stat strong { color: var(--ams-syntax); font-size: 34px; line-height: 1.3; }
.ams-board .ams-game-stat span { color: var(--ams-muted); font-size: 16px; }
.ams-board .ams-game-summary .ams-card__actions { justify-content: center; }
.ams-board .ams-game-summary .ams-card__actions > button { min-width: 180px; }
.ams-board .ams-game-summary .ams-feedback-details { color: var(--ams-muted); font-size: 16px; text-align: left; }
.ams-board .ams-game-summary .ams-feedback-details > summary { min-height: 48px; padding-block: 0.7rem; cursor: pointer; text-align: center; }

@media (hover: hover) and (pointer: fine) {
	.ams-board .ams-game .ams-option:hover:not(:disabled):not(.is-selected) { border-color: #d4e1eb; background: #f4f8fb; box-shadow: 0 3px 0 #dce7ef; }
	.ams-board .ams-game .ams-token:hover:not(:disabled):not(.is-selected) { border-color: transparent; background: #fff; color: var(--ams-ink); }
	.ams-board .ams-game .ams-game-tools .ams-icon-button:hover { background: #edf2f5; color: var(--ams-syntax); }
	.ams-board .ams-game .ams-game-top > .ams-quiet:hover { background: #eef2f4; }
}
@media (min-width: 900px) and (max-height: 800px) {
	.ams-board .ams-session.ams-game { margin-block: 0; }
	.ams-board .ams-game .ams-game-top { gap: 0.65rem; margin-bottom: 0.5rem; }
	.ams-board .ams-game .ams-game-card { gap: 0.85rem; padding: 1.1rem 1.4rem; border-radius: 22px; }
	.ams-board .ams-game .ams-game-task h3 { margin: 0 auto; font-size: 20px; line-height: 1.35; }
	.ams-board .ams-game .ams-game-target { margin-top: 0.25rem; font-size: 27px; }
	.ams-board .ams-game .ams-game-stage { min-height: 108px; padding: 0.9rem 1.2rem; border-radius: 16px; }
	.ams-board .ams-game .ams-game-sentence { font-size: 32px; line-height: 1.5; }
	.ams-board .ams-game .ams-options { gap: 0.65rem; margin: 0; }
	.ams-board .ams-game .ams-option { min-height: 65px; gap: 0.55rem; padding: 0.5rem 2.3rem 0.5rem 0.75rem; font-size: 19px; }
	.ams-board .ams-game .ams-answer-art { flex-basis: 36px; width: 36px; height: 36px; }
	.ams-board .ams-game .ams-option-badge { flex-basis: 25px; width: 25px; height: 25px; font-size: 12px; }
	.ams-board .ams-game .ams-token-picker { gap: 0.45rem; margin: 0; padding: 0; }
	.ams-board .ams-game .ams-token { min-height: 56px; padding: 0.25rem 0.6rem 0.35rem; font-size: 29px; }
	.ams-board .ams-game .ams-game-controls { padding-top: 0.1rem; }
	.ams-board .ams-game .ams-game-controls > .ams-primary { min-height: 56px; padding-block: 0.5rem; }
	.ams-board .ams-game .ams-game-feedback { padding: 0.6rem 0.9rem; font-size: 16px; }
	.ams-board .ams-game .ams-game-feedback h4 { font-size: 20px; }
	.ams-board .ams-game .ams-game-card:has(.ams-game-feedback) { gap: 0.6rem; }
	.ams-board .ams-game .ams-game-card:has(.ams-game-feedback) .ams-game-stage { min-height: 90px; padding-block: 0.6rem; }
	.ams-board .ams-game-summary { padding: 1.2rem 2rem; }
	.ams-board .ams-game-summary-art { width: 110px; height: 110px; }
	.ams-board .ams-game-summary h3 { margin-bottom: 0.9rem; font-size: 30px; }
}
@media (max-width: 820px) {
	.ams-board .ams-game .ams-game-top { grid-template-columns: auto minmax(100px, 1fr) auto; gap: 0.7rem; }
	.ams-board .ams-game .ams-game-card { gap: 1.1rem; padding: 1.15rem; border-radius: 20px; }
	.ams-board .ams-game .ams-game-stage { min-height: 148px; padding: 1rem; }
	.ams-board .ams-game .ams-game-sentence { font-size: 35px; }
	.ams-board .ams-game .ams-option { min-height: 74px; gap: 0.5rem; font-size: 19px; }
	.ams-board .ams-game .ams-options:has(> :nth-child(5)):not(:has(> :nth-child(7))) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ams-board .ams-game .ams-answer-art { flex-basis: 36px; width: 36px; height: 36px; }
	.ams-board .ams-game .ams-game-controls > .ams-primary { min-width: 180px; }
}
@media (max-width: 580px) {
	.ams-board .ams-game .ams-game-top { gap: 0.5rem; margin-bottom: 0.55rem; }
	.ams-board .ams-game .ams-game-top > .ams-quiet { min-height: 52px; padding-inline: 0.4rem; font-size: 14px; }
	.ams-board .ams-game .ams-game-track { gap: 3px; }
	.ams-board .ams-game .ams-game-track::before { left: 9px; right: 10px; top: calc(50% - 1px); height: 2px; }
	.ams-board .ams-game .ams-game-step { flex-basis: 19px; width: 19px; max-width: 19px; height: 19px; border-width: 1px; font-size: 10px; }
	.ams-board .ams-game .ams-game-step > svg { width: 11px; height: 11px; }
	.ams-board .ams-game .ams-game-step.is-current { box-shadow: 0 0 0 2px #e9f1f8; }
	.ams-board .ams-game .ams-game-counter { font-size: 13px; }
	.ams-board .ams-game .ams-game-card { gap: 1rem; padding: 1rem 0.8rem; border-radius: 18px; }
	.ams-board .ams-game .ams-game-task h3 { margin: 0; font-size: 18px; line-height: 1.45; }
	.ams-board .ams-game .ams-game-target { margin-top: 0.5rem; font-size: 27px; }
	.ams-board .ams-game .ams-game-stage { min-height: 140px; padding: 1.1rem 0.75rem; border-radius: 14px; }
	.ams-board .ams-game .ams-game-sentence { font-size: 29px; line-height: 1.6; }
	.ams-board .ams-game .ams-game-sentence mark { border-radius: 7px; }
	.ams-board .ams-game .ams-options,
	.ams-board .ams-game .ams-options:has(> :nth-child(3)):not(:has(> :nth-child(4))),
	.ams-board .ams-game .ams-options:has(> :nth-child(5)):not(:has(> :nth-child(7))) { grid-template-columns: 1fr; gap: 0.6rem; }
	.ams-board .ams-game .ams-option { min-height: 62px; padding: 0.6rem 2.1rem 0.6rem 0.75rem; gap: 0.6rem; border-radius: 13px; font-size: 18px; }
	.ams-board .ams-game .ams-option-badge { flex-basis: 25px; width: 25px; height: 25px; font-size: 12px; }
	.ams-board .ams-game .ams-answer-art { flex-basis: 38px; width: 38px; height: 38px; }
	.ams-board .ams-game .ams-option:is(.is-selected, .is-correct, .is-incorrect)::after { right: 0.7rem; font-size: 20px; }
	.ams-board .ams-game .ams-token-picker { gap: 0.55rem; margin: 0; padding: 0; }
	.ams-board .ams-game .ams-token { min-height: 55px; padding: 0.2rem 0.5rem 0.35rem; border-radius: 10px; font-size: 26px; }
	.ams-board .ams-game .ams-game-controls { flex-wrap: wrap; gap: 0.6rem; }
	.ams-board .ams-game .ams-game-controls > .ams-primary { flex: 1 1 130px; min-width: 0; min-height: 56px; margin: 0; padding: 0.6rem 0.75rem; font-size: 18px; }
	.ams-board .ams-game .ams-game-tools { gap: 0.35rem; }
	.ams-board .ams-game .ams-game-tools .ams-icon-button { width: 52px; min-width: 52px; min-height: 52px; padding: 0.6rem; border-radius: 12px; }
	.ams-board .ams-game .ams-game-feedback { padding: 0.8rem; font-size: 16px; }
	.ams-board .ams-game .ams-game-feedback h4 { font-size: 21px; }
	.ams-board .ams-game .ams-game-support { padding: 0.9rem; font-size: 16px; }
	.ams-board .ams-game-summary { padding: 1.2rem 0.9rem; border-radius: 20px; }
	.ams-board .ams-game-summary-art { width: 120px; height: 120px; }
	.ams-board .ams-game-summary h3 { margin-bottom: 1rem; font-size: 28px; }
	.ams-board .ams-game-summary-stats { gap: 0.6rem; }
	.ams-board .ams-game-stat { padding: 0.8rem 0.4rem; }
	.ams-board .ams-game-stat strong { font-size: 29px; }
	.ams-board .ams-game-stat span { font-size: 14px; }
	.ams-board .ams-game-summary .ams-card__actions > button { flex: 1 1 100%; min-width: 0; }
}

/* An illustrated classroom sits behind the sentence, with quiet white answer tiles. */
.ams-board .ams-game-scene.ams-game-card { border-color: #dce6ef; background: #fff; box-shadow: 0 7px 24px rgb(53 88 115 / 5%); }
.ams-board .ams-game-scene .ams-game-stage {
	position: relative;
	min-height: 196px;
	border: 1px solid #e0eaf0;
	background-color: #f0f6fa;
	background-image: linear-gradient(180deg, rgb(255 255 255 / 15%), rgb(246 250 253 / 34%)), var(--ams-scene-image, none);
	background-size: cover;
	background-position: center bottom;
	background-repeat: no-repeat;
	isolation: isolate;
}
.ams-board .ams-game-scene .ams-game-sentence { position: relative; z-index: 1; text-shadow: 0 2px 1px rgb(255 255 255 / 85%); }
.ams-board .ams-game-scene .ams-token-picker { position: relative; z-index: 1; }
.ams-board .ams-game-scene .ams-token { background: rgb(255 255 255 / 90%); }
.ams-board .ams-game-scene .ams-token.is-selected { background: #dcebf6; }
.ams-board .ams-game-scene .ams-token.is-correct { background: #edf6ef; }
.ams-board .ams-game-scene .ams-token.is-incorrect { background: #fdf0eb; }
.ams-board .ams-game .ams-game-feedback.is-success { animation: ams-game-feedback-in 280ms ease-out both; }
.ams-board .ams-game-summary-art { animation: ams-game-summary-in 420ms ease-out both; }
@keyframes ams-game-feedback-in {
	from { opacity: 0.8; transform: scale(0.985); }
	to { opacity: 1; transform: scale(1); }
}
@keyframes ams-game-summary-in {
	0% { opacity: 0.85; transform: scale(0.94); }
	70% { opacity: 1; transform: scale(1.035); }
	100% { opacity: 1; transform: scale(1); }
}
@media (min-width: 900px) and (max-height: 800px) {
	.ams-board .ams-game-scene .ams-game-stage { min-height: 118px; }
	.ams-board .ams-game-scene.ams-game-card:has(.ams-game-feedback) .ams-game-stage { min-height: 90px; }
	.ams-board .ams-game .ams-game-step { flex-basis: 30px; width: 30px; max-width: 30px; height: 30px; font-size: 13px; }
	.ams-board .ams-game .ams-game-step > svg { width: 16px; height: 16px; }
}
@media (max-width: 820px) {
	.ams-board .ams-game-scene .ams-game-stage { min-height: 164px; }
	.ams-board .ams-game .ams-game-track { gap: 6px; }
	.ams-board .ams-game .ams-game-step { flex-basis: 26px; width: 26px; max-width: 26px; height: 26px; font-size: 12px; }
	.ams-board .ams-game .ams-game-step > svg { width: 14px; height: 14px; }
}
@media (max-width: 580px) {
	.ams-board .ams-game-scene .ams-game-stage { min-height: 156px; background-position: center bottom; }
	.ams-board .ams-game .ams-game-track { gap: 3px; }
	.ams-board .ams-game .ams-game-step { flex-basis: 19px; width: 19px; max-width: 19px; height: 19px; font-size: 10px; }
	.ams-board .ams-game .ams-game-step > svg { width: 11px; height: 11px; }
}

/* Touchscreens do not leave a hover treatment behind after a tap. */
@media (hover: none) {
	.ams-board .ams-home-logo:hover { opacity: 1; }
	.ams-board .ams-board-domain:hover { border-color: var(--ams-line); background: var(--ams-paper); box-shadow: 0 5px 24px rgb(38 56 74 / 4%); }
	.ams-board .ams-domain-card:hover { transform: none; }
	.ams-board .ams-topic-tile:hover,
	.ams-board .ams-mode-card:hover:not(:disabled) { border-color: var(--ams-line); background: var(--ams-paper); }
	.ams-board .ams-mode-card:hover:not(:disabled) .ams-mode-start { border-color: var(--ams-morph); background: transparent; color: var(--ams-ink); }
	.ams-board .ams-primary:hover { border-color: var(--ams-syntax); background: var(--ams-syntax); color: #fff; transform: none; box-shadow: none; }
	.ams-board .ams-secondary:hover { border-color: var(--ams-morph); background: transparent; color: var(--ams-ink); }
	.ams-board .ams-quiet:hover { border-color: var(--ams-line); background: transparent; color: var(--ams-ink); }
	.ams-board .ams-student-back > .ams-quiet:hover { border-color: transparent; background: transparent; color: var(--ams-muted); }
	.ams-board .ams-icon-button:hover:not([aria-pressed="true"]):not([aria-expanded="true"]) { border-color: var(--ams-line); background: var(--ams-paper); color: var(--ams-ink); }
	.ams-board .ams-header__tools [data-action="fullscreen"]:hover { border-color: transparent; background: transparent; color: var(--ams-ink); }
	.ams-board .ams-header__tools .ams-teacher-toggle:hover:not([aria-expanded="true"]) { border-color: transparent; background: transparent; color: var(--ams-ink); }
	.ams-board .ams-segmented button:hover:not(.is-current) { color: var(--ams-muted); }
	.ams-board .ams-option:hover:not(.is-selected):not(.is-correct):not(.is-incorrect) { border-color: var(--ams-line); background: var(--ams-canvas); color: var(--ams-ink); }
	.ams-board .ams-token:hover:not(.is-selected):not(.is-correct):not(.is-incorrect) { border-color: transparent; background: #f0f4f5; color: var(--ams-ink); }
	.ams-board .ams-sentence-word:hover:not([aria-pressed="true"]):not(.is-correct):not(.is-incorrect) { border-color: transparent; background: transparent; color: var(--ams-ink); }
	.ams-board .ams-more-topics > summary:hover { background: transparent; color: var(--ams-muted); }
	:where(.ams-plugin-shell, .ams-board) .ams-resource-info > summary:hover { background: transparent; color: #526778; }
	.ams-board .ams-game .ams-option:hover:not(.is-selected):not(.is-correct):not(.is-incorrect) { border-color: #dfe6eb; background: #fff; box-shadow: 0 3px 0 #e7edf1; color: var(--ams-ink); }
	.ams-board .ams-game .ams-token:hover:not(.is-selected):not(.is-correct):not(.is-incorrect) { border-color: transparent; background: rgb(255 255 255 / 70%); box-shadow: 0 3px 0 #dce5eb; color: var(--ams-ink); }
	.ams-board .ams-game .ams-game-tools .ams-icon-button:hover:not([aria-expanded="true"]) { border-color: transparent; background: #f5f6f6; color: #6a7b8c; }
}

/* Teacher accessibility options apply to the game as well as the shared views. */
.ams-board.is-large-text .ams-game .ams-game-task h3 { font-size: clamp(24px, 1.65vw, 30px); }
.ams-board.is-large-text .ams-game .ams-game-target { font-size: clamp(32px, 2.5vw, 47px); }
.ams-board.is-large-text .ams-game .ams-game-sentence { font-size: clamp(42px, 2.8vw, 58px); }
.ams-board.is-large-text .ams-game .ams-option { font-size: clamp(22px, 1.35vw, 27px); }
.ams-board.is-large-text .ams-game .ams-token { font-size: clamp(35px, 2.5vw, 49px); }
.ams-board.is-large-text .ams-game .ams-option-badge { font-size: 15px; }
.ams-board.is-large-text .ams-game .ams-game-counter { font-size: 19px; }
.ams-board.is-large-text .ams-game .ams-game-top > .ams-quiet { font-size: 18px; }
.ams-board.is-large-text .ams-game .ams-game-controls > .ams-primary { font-size: 24px; }
.ams-board.is-large-text .ams-game .ams-game-support,
.ams-board.is-large-text .ams-game .ams-game-feedback { font-size: 20px; }
.ams-board.is-large-text .ams-game .ams-game-feedback h4 { font-size: 27px; }
.ams-board.is-large-text .ams-game .ams-game-support .ams-quiet,
.ams-board.is-large-text .ams-game .ams-feedback-details > summary { font-size: 18px; }
.ams-board.is-large-text .ams-game-summary h3 { font-size: clamp(34px, 2.9vw, 49px); }
.ams-board.is-large-text .ams-game-summary .ams-game-stat strong { font-size: 40px; }
.ams-board.is-large-text .ams-game-summary .ams-game-stat span,
.ams-board.is-large-text .ams-game-summary .ams-feedback-details { font-size: 19px; }
.ams-board.is-high-contrast .ams-game .ams-game-card,
.ams-board.is-high-contrast .ams-game-summary { border: 2px solid var(--ams-line); background: var(--ams-paper); box-shadow: none; }
.ams-board.is-high-contrast .ams-game .ams-game-task h3 { color: var(--ams-ink); }
.ams-board.is-high-contrast .ams-game .ams-game-stage { border: 2px solid var(--ams-line); background: #eef3f7; }
.ams-board.is-high-contrast .ams-game .ams-game-target,
.ams-board.is-high-contrast .ams-game .ams-game-sentence mark { background: #fae4d5; color: #723b26; }
.ams-board.is-high-contrast .ams-game .ams-option,
.ams-board.is-high-contrast .ams-game .ams-token { border: 2px solid var(--ams-line); background: #fff; box-shadow: none; color: var(--ams-ink); }
.ams-board.is-high-contrast .ams-game .ams-option-badge { background: #e5edf3; color: var(--ams-ink); }
.ams-board.is-high-contrast .ams-game .ams-option.is-selected,
.ams-board.is-high-contrast .ams-game .ams-token.is-selected { border-color: var(--ams-syntax); background: #dceaf4; box-shadow: none; color: var(--ams-ink); }
.ams-board.is-high-contrast .ams-game .ams-option.is-selected .ams-option-badge { background: #fff; color: var(--ams-ink); }
.ams-board.is-high-contrast .ams-game .ams-option.is-correct,
.ams-board.is-high-contrast .ams-game .ams-token.is-correct { border-color: var(--ams-success); background: #e3f2e8; box-shadow: none; color: #194f35; }
.ams-board.is-high-contrast .ams-game .ams-option.is-incorrect,
.ams-board.is-high-contrast .ams-game .ams-token.is-incorrect { border-color: var(--ams-error); background: #fcedea; box-shadow: none; color: #822e25; }
.ams-board.is-high-contrast .ams-game .ams-option.is-correct::after { color: #194f35; }
.ams-board.is-high-contrast .ams-game .ams-option.is-incorrect::after { color: #822e25; }
.ams-board.is-high-contrast .ams-game .ams-game-tools .ams-icon-button { border: 1px solid var(--ams-line); background: #fff; color: var(--ams-ink); }
.ams-board.is-high-contrast .ams-game .ams-game-tools .ams-icon-button[aria-expanded="true"] { border-color: #735b27; background: #fff0d3; color: #5b4316; }
.ams-board.is-high-contrast .ams-game .ams-game-controls > .ams-primary:disabled { border-color: var(--ams-line); background: #e0e8ee; box-shadow: none; color: var(--ams-muted); }
.ams-board.is-high-contrast .ams-game .ams-game-support { border: 1px solid #735b27; background: #fff6e4; color: #5b4316; }
.ams-board.is-high-contrast .ams-game .ams-game-support[data-support="model"] { border-color: var(--ams-line); background: #eaf1f7; color: var(--ams-ink); }
.ams-board.is-high-contrast .ams-game .ams-game-feedback { border: 1px solid var(--ams-success); background: #e3f2e8; color: #194f35; }
.ams-board.is-high-contrast .ams-game .ams-game-feedback.is-error { border-color: var(--ams-error); background: #fcedea; color: #822e25; }
.ams-board.is-high-contrast .ams-game .ams-game-track::before { background: var(--ams-line); }
.ams-board.is-high-contrast .ams-game .ams-game-step { border-color: var(--ams-line); background: #fff; color: var(--ams-muted); }
.ams-board.is-high-contrast .ams-game .ams-game-step.is-done { border-color: #856025; background: #ffefc8; color: #69440f; }
.ams-board.is-high-contrast .ams-game .ams-game-step.is-current { border-color: var(--ams-ink); background: var(--ams-ink); box-shadow: none; color: #fff; }
.ams-board.is-high-contrast .ams-game-scene .ams-game-sentence { text-shadow: none; }
.ams-board.is-high-contrast .ams-game-summary .ams-game-stat { border: 1px solid var(--ams-line); background: #eef3f7; }
@media (hover: hover) and (pointer: fine) {
	.ams-board.is-high-contrast .ams-game .ams-option:hover:not(:disabled):not(.is-selected),
	.ams-board.is-high-contrast .ams-game .ams-token:hover:not(:disabled):not(.is-selected) { border-color: var(--ams-syntax); background: #e8edf2; box-shadow: none; color: var(--ams-ink); }
}
@media (hover: none) {
	.ams-board.is-high-contrast .ams-game .ams-option:hover:not(.is-selected):not(.is-correct):not(.is-incorrect),
	.ams-board.is-high-contrast .ams-game .ams-token:hover:not(.is-selected):not(.is-correct):not(.is-incorrect) { border-color: var(--ams-line); background: #fff; box-shadow: none; color: var(--ams-ink); }
	.ams-board.is-high-contrast .ams-game .ams-game-tools .ams-icon-button:hover:not([aria-expanded="true"]) { border-color: var(--ams-line); background: #fff; color: var(--ams-ink); }
}
@media (min-width: 900px) and (max-height: 800px) {
	.ams-board.is-large-text .ams-game .ams-game-task h3 { font-size: 24px; }
	.ams-board.is-large-text .ams-game .ams-game-sentence { font-size: 38px; }
	.ams-board.is-large-text .ams-game .ams-game-target { font-size: 32px; }
	.ams-board.is-large-text .ams-game .ams-option { font-size: 23px; }
	.ams-board.is-large-text .ams-game .ams-token { font-size: 34px; }
	.ams-board.is-large-text .ams-game .ams-game-card { gap: 0.65rem; }
	.ams-board.is-large-text .ams-game .ams-game-feedback h4 { font-size: 24px; }
	.ams-board.is-large-text .ams-game-summary h3 { font-size: 35px; }
}
@media (max-width: 820px) {
	.ams-board.is-large-text .ams-game .ams-game-sentence { font-size: 41px; }
	.ams-board.is-large-text .ams-game .ams-option { font-size: 23px; }
}
@media (max-width: 580px) {
	.ams-board.is-large-text .ams-game .ams-game-task h3 { font-size: 21px; }
	.ams-board.is-large-text .ams-game .ams-game-sentence { font-size: 34px; }
	.ams-board.is-large-text .ams-game .ams-game-target { font-size: 32px; }
	.ams-board.is-large-text .ams-game .ams-option { font-size: 21px; }
	.ams-board.is-large-text .ams-game .ams-token { font-size: 30px; }
	.ams-board.is-large-text .ams-game .ams-game-counter { font-size: 16px; }
	.ams-board.is-large-text .ams-game .ams-game-top > .ams-quiet { font-size: 17px; }
	.ams-board.is-large-text .ams-game .ams-game-controls > .ams-primary { font-size: 21px; }
	.ams-board.is-large-text .ams-game .ams-game-feedback h4 { font-size: 25px; }
	.ams-board.is-large-text .ams-game-summary h3 { font-size: 33px; }
	.ams-board.is-large-text .ams-game-summary .ams-game-stat strong { font-size: 34px; }
	.ams-board.is-large-text .ams-game-summary .ams-game-stat span { font-size: 17px; }
}

/* The application opens as its own classroom surface, above the site chrome. */
body.ams-immersive-open { overflow: hidden !important; }
.ams-board.is-immersive {
	position: fixed;
	inset: 0;
	z-index: 2147483000;
	width: 100%;
	height: 100dvh;
	min-height: 0;
	max-width: none;
	max-height: 100dvh;
	margin: 0 !important;
	border: 0;
	border-radius: 0;
	overflow: hidden;
	background: var(--ams-canvas);
}
.ams-board.is-immersive .ams-view {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-gutter: stable;
}
.ams-board .ams-app-logo {
	display: flex;
	width: clamp(200px, 19vw, 270px);
	min-width: 0;
	min-height: 52px;
	align-items: center;
	justify-content: flex-start;
	padding: 0;
	border: 0;
	border-radius: 9px;
	background: transparent;
	box-shadow: none;
}
.ams-board .ams-app-logo img { display: block; width: 100%; max-width: 100%; height: auto; object-fit: contain; }
.ams-board .ams-app-logo:hover { background: transparent; box-shadow: none; }
.ams-board .ams-brand__title:has(.ams-app-logo) h2,
.ams-board .ams-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0; }

/* A few classroom objects sit at the edge of the three student menus. */
.ams-board .ams-menu-scene {
	position: relative;
	isolation: isolate;
	display: flex;
	flex: 1 0 auto;
	width: 100%;
	min-width: 0;
	min-height: 100%;
	flex-direction: column;
}
.ams-board .ams-menu-scene::before {
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: 22px;
	background-image: var(--ams-menu-scene, none);
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: 100% auto;
	mask-image: linear-gradient(to top, #000, rgb(0 0 0 / 80%) 24%, transparent 75%);
	opacity: 0.6;
	pointer-events: none;
	content: "";
}
.ams-board .ams-view.ams-menu-scene { flex: 1 1 auto; min-height: 0; }
.ams-board .ams-menu-scene :where(.ams-board-home, .ams-board-topics) { position: relative; }

/* Choose a skill and a level before entering the game. */
.ams-board .ams-play-setup {
	display: grid;
	width: min(1200px, 100%);
	grid-template-columns: minmax(230px, 0.8fr) minmax(0, 1.2fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
	margin: auto;
	padding-block: 0.75rem;
}
.ams-board .ams-play-intro { display: flex; min-width: 0; flex-direction: column; align-items: center; text-align: center; }
.ams-board .ams-play-intro > :where(.ams-topic-art, .ams-lesson-illustration) { display: block; width: min(280px, 100%); height: auto; max-height: 280px; margin: 0 0 1rem; object-fit: contain; }
.ams-board .ams-play-intro h3 { margin: 0 0 0.75rem; font-size: clamp(2.2rem, 3.5vw, 3.5rem); line-height: 1.18; letter-spacing: -0.03em; }
.ams-board .ams-play-intro > p { max-width: 29ch; margin: 0; color: var(--ams-muted); font-size: clamp(1rem, 1.5vw, 1.25rem); line-height: 1.55; text-wrap: pretty; }
.ams-board .ams-play-config {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 1.4rem;
	padding: clamp(1.3rem, 2.5vw, 2rem);
	border: 1px solid var(--ams-line);
	border-radius: 24px;
	background: var(--ams-paper);
	box-shadow: 0 7px 28px rgb(38 56 74 / 4%);
}
.ams-board .ams-play-config fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.ams-board .ams-play-config legend { float: none; width: 100%; margin: 0 0 0.9rem; padding: 0; color: var(--ams-ink); font-size: 1.15em; font-weight: 700; line-height: 1.3; }
.ams-board .ams-play-games { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; }
.ams-board .ams-play-games > legend { grid-column: 1 / -1; }
.ams-board .ams-game-choice {
	display: flex;
	min-width: 0;
	min-height: 58px;
	align-items: center;
	justify-content: flex-start;
	gap: 0.55rem;
	padding: 0.7rem 0.9rem;
	border: 1px solid #e4e9ec;
	border-radius: 12px;
	background: #f8fafb;
	box-shadow: none;
	color: var(--ams-ink);
	font-size: 0.94em;
	font-weight: 700;
	line-height: 1.3;
	text-align: left;
	transition: background 140ms ease, border-color 140ms ease;
}
.ams-board .ams-game-choice::before { display: block; flex: 0 0 7px; width: 7px; height: 7px; border-radius: 50%; background: #c5d1d9; content: ""; }
.ams-board .ams-game-choice[aria-pressed="true"] { border-color: transparent; background: #e8f1f7; color: #305f81; }
.ams-board .ams-game-choice[aria-pressed="true"]::before { background: #406f93; }
.ams-board .ams-game-choice:disabled { opacity: 0.45; cursor: default; }
.ams-board .ams-play-levels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem; }
.ams-board .ams-play-levels > legend { grid-column: 1 / -1; }
.ams-board .ams-level-choice {
	display: flex;
	min-width: 0;
	min-height: 54px;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	padding: 0.65rem 0.4rem;
	border: 1px solid #e4e9ec;
	border-radius: 12px;
	background: #f8fafb;
	box-shadow: none;
	color: var(--ams-muted);
	font-size: 0.95em;
	font-weight: 700;
	line-height: 1.3;
	transition: background 140ms ease, border-color 140ms ease;
}
.ams-board .ams-level-choice[aria-pressed="true"] { border-color: transparent; background: #edf5f1; color: #326857; }
.ams-board .ams-play-config > .ams-primary { width: 100%; min-height: 64px; margin: 0; font-size: 1.15em; }
.ams-board .ams-play-config > p { margin: 0; color: var(--ams-muted); font-size: 0.85em; }
.ams-board .ams-play-config .ams-setup-note { margin: -0.5rem 0 0; color: var(--ams-muted); font-size: 0.85em; }

@media (hover: hover) and (pointer: fine) {
	.ams-board .ams-game-choice:hover:not(:disabled):not([aria-pressed="true"]),
	.ams-board .ams-level-choice:hover:not([aria-pressed="true"]) { border-color: #d2dce3; background: #eef3f6; }
}
@media (min-width: 900px) and (max-height: 800px) {
	.ams-board.is-immersive .ams-header { padding-block: 0.5rem; }
	.ams-board .ams-app-logo { width: 230px; min-height: 48px; }
	.ams-board .ams-play-setup { gap: 2rem; padding-block: 0; }
	.ams-board .ams-play-intro > :where(.ams-topic-art, .ams-lesson-illustration) { width: 220px; max-height: 220px; margin-bottom: 0.8rem; }
	.ams-board .ams-play-intro h3 { margin-bottom: 0.6rem; font-size: 2.6rem; }
	.ams-board .ams-play-intro > p { font-size: 1.1rem; }
	.ams-board .ams-play-config { gap: 0.95rem; padding: 1.2rem 1.4rem; border-radius: 20px; }
	.ams-board .ams-play-config legend { margin-bottom: 0.65rem; font-size: 1.06em; }
	.ams-board .ams-play-games { gap: 0.45rem; }
	.ams-board .ams-game-choice { min-height: 48px; padding: 0.55rem 0.75rem; font-size: 0.9em; }
	.ams-board .ams-level-choice { min-height: 49px; font-size: 0.9em; }
	.ams-board .ams-play-config > .ams-primary { min-height: 56px; font-size: 1.05em; }
}
@media (max-width: 820px) {
	.ams-board .ams-brand { gap: 1rem; }
	.ams-board .ams-app-logo { width: 210px; }
	.ams-board .ams-play-setup { grid-template-columns: minmax(190px, 0.7fr) minmax(0, 1.3fr); gap: 1.5rem; }
	.ams-board .ams-play-intro > :where(.ams-topic-art, .ams-lesson-illustration) { width: 200px; max-height: 200px; }
	.ams-board .ams-play-intro h3 { font-size: 2.1rem; }
	.ams-board .ams-play-config { padding: 1.1rem; gap: 1.2rem; }
	.ams-board .ams-game-choice { min-height: 56px; padding: 0.65rem; font-size: 0.87em; }
	.ams-board .ams-level-choice { font-size: 0.86em; }
}
@media (max-width: 580px) {
	.ams-board .ams-header { display: flex; gap: 0.4rem; align-items: center; padding: 0.5rem 0.6rem; }
	.ams-board .ams-brand { display: flex; min-width: 0; flex: 1 1 auto; gap: 0.6rem; }
	.ams-board .ams-home-logo { flex: 0 0 100px; width: 100px; min-height: 44px; }
	.ams-board .ams-brand__title { flex: 0 1 auto; min-width: 0; }
	.ams-board .ams-app-logo { width: min(145px, 36vw); min-height: 44px; }
	.ams-board .ams-header__tools { flex: 0 0 auto; gap: 0.15rem; }
	.ams-board .ams-header__tools .ams-icon-button { min-width: 40px; min-height: 44px; width: 40px; padding: 0.5rem; }
	.ams-board .ams-header__tools [data-action="fullscreen"] { width: 40px; }
	.ams-board .ams-header__tools .ams-teacher-toggle { padding: 0.5rem; }
	.ams-board .ams-header__tools .ams-teacher-toggle > span { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
	.ams-board .ams-menu-scene::before { background-size: auto 300px; opacity: 0.45; }
	.ams-board .ams-play-setup { grid-template-columns: 1fr; gap: 1rem; margin-block: 0; padding-block: 0; }
	.ams-board .ams-play-intro { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 0.2rem 0.75rem; align-items: center; text-align: left; }
	.ams-board .ams-play-intro > :where(.ams-topic-art, .ams-lesson-illustration) { grid-column: 1; grid-row: 1 / 3; width: 84px; max-height: 100px; margin: 0; }
	.ams-board .ams-play-intro h3 { grid-column: 2; margin: 0; font-size: 1.75rem; }
	.ams-board .ams-play-intro > p { grid-column: 2; max-width: none; margin: 0; font-size: 0.92rem; line-height: 1.45; }
	.ams-board .ams-play-config { gap: 1.2rem; padding: 1rem; border-radius: 18px; }
	.ams-board .ams-play-config legend { margin-bottom: 0.75rem; font-size: 1.1em; }
	.ams-board .ams-play-games { gap: 0.5rem; }
	.ams-board .ams-game-choice { min-height: 54px; padding: 0.65rem 0.6rem; font-size: 0.89em; }
	.ams-board .ams-game-choice::before { flex-basis: 6px; width: 6px; height: 6px; }
	.ams-board .ams-play-levels { gap: 0.35rem; }
	.ams-board .ams-level-choice { min-height: 50px; padding: 0.6rem 0.25rem; font-size: 0.88em; }
	.ams-board .ams-play-config > .ams-primary { min-height: 58px; font-size: 1.1em; }
}
@media (max-width: 360px) {
	.ams-board .ams-brand { gap: 0.35rem; }
	.ams-board .ams-home-logo { flex-basis: 88px; width: 88px; }
	.ams-board .ams-app-logo { width: 125px; }
	.ams-board .ams-play-intro { grid-template-columns: 72px minmax(0, 1fr); }
	.ams-board .ams-play-intro > :where(.ams-topic-art, .ams-lesson-illustration) { width: 72px; }
	.ams-board .ams-play-intro h3 { font-size: 1.5rem; }
}
.ams-board.is-large-text .ams-play-intro > p { font-size: 1.2em; }
.ams-board.is-large-text .ams-game-choice { font-size: 1em; }
.ams-board.is-large-text .ams-level-choice { font-size: 1em; }
.ams-board.is-high-contrast .ams-menu-scene::before { display: none; }
.ams-board.is-high-contrast .ams-play-config { border: 2px solid var(--ams-line); box-shadow: none; }
.ams-board.is-high-contrast :where(.ams-game-choice, .ams-level-choice) { border: 1px solid var(--ams-line); background: #fff; color: var(--ams-ink); }
.ams-board.is-high-contrast .ams-game-choice::before { background: var(--ams-muted); }
.ams-board.is-high-contrast .ams-game-choice[aria-pressed="true"] { border-color: var(--ams-syntax); background: #dceaf4; color: var(--ams-ink); }
.ams-board.is-high-contrast .ams-level-choice[aria-pressed="true"] { border-color: var(--ams-morph); background: #e3f2e8; color: #194e37; }

@media (prefers-reduced-motion: reduce) {
	.ams-board,
	.ams-board *,
	.ams-board *::before,
	.ams-board *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}

@media (forced-colors: active) {
	.ams-board :where(.ams-board-domain, .ams-topic-tile, .ams-mode-card, button, select, textarea, input, .ams-panel, .ams-question-card) { border: 2px solid ButtonText; }
	.ams-board :where(.ams-primary, .ams-option.is-selected, .ams-token.is-selected) { forced-color-adjust: none; background: Highlight; color: HighlightText; }
	.ams-board .ams-home-logo { forced-color-adjust: none; background: #fff; }
	.ams-board .ams-progress-bar i { background: Highlight; }
	.ams-board.ams-app .ams-game .ams-option,
	.ams-board.ams-app .ams-game .ams-token { border: 2px solid ButtonText; box-shadow: none; }
	.ams-board.ams-app .ams-game .ams-option.is-selected,
	.ams-board.ams-app .ams-game .ams-token.is-selected { forced-color-adjust: none; border-color: Highlight; background: Highlight; color: HighlightText; box-shadow: none; }
	.ams-board.ams-app .ams-game .ams-option.is-selected::after { color: HighlightText; }
	.ams-board.ams-app .ams-game .ams-game-sentence mark { forced-color-adjust: none; background: Highlight; color: HighlightText; }
	.ams-board.ams-app .ams-game .ams-game-step { border: 1px solid ButtonText; background: Canvas; color: CanvasText; box-shadow: none; }
	.ams-board.ams-app .ams-game .ams-game-step.is-current { forced-color-adjust: none; border-color: Highlight; background: Highlight; color: HighlightText; }
	.ams-board.ams-app .ams-game .ams-game-track::before { background: CanvasText; }
	.ams-board.ams-app .ams-game-scene .ams-game-stage { background-image: none; }
	.ams-board .ams-menu-scene::before { display: none; }
	.ams-board :where(.ams-game-choice, .ams-level-choice) { border: 2px solid ButtonText; background: Canvas; color: CanvasText; }
	.ams-board :where(.ams-game-choice, .ams-level-choice)[aria-pressed="true"] { forced-color-adjust: none; border-color: Highlight; background: Highlight; color: HighlightText; }
}

@media print {
	body.ams-immersive-open { overflow: visible !important; }
	.ams-plugin-shell:has(.ams-board) { width: 100% !important; max-width: none !important; margin: 0 !important; }
	.ams-board,
	.ams-board:fullscreen,
	.ams-board.is-expanded,
	.ams-board.is-immersive { position: static; display: block; width: 100%; height: auto; min-height: 0; max-height: none; overflow: visible; border: 0; border-radius: 0; background: #fff; box-shadow: none; color: #1d252a; color-scheme: light; }
	.ams-board .ams-header,
	.ams-board .ams-teacher-panel,
	.ams-board .ams-student-back,
	.ams-board .ams-access-tools,
	.ams-board .ams-info-panel,
	.ams-board .ams-help,
	.ams-board .ams-alert,
	.ams-board .ams-dialog { display: none !important; }
	:where(.ams-plugin-shell, .ams-board) .ams-resource-info { display: none !important; }
	.ams-board .ams-view,
	.ams-board:fullscreen .ams-view,
	.ams-board.is-expanded .ams-view,
	.ams-board.is-immersive .ams-view { display: block; min-height: 0; overflow: visible; padding: 0; }
	.ams-board .ams-menu-scene::before { display: none; }
	.ams-board .ams-worksheet-preview { min-height: 0; padding: 0; border: 0; background: #fff; box-shadow: none; }
	.ams-board .ams-sheet,
	.ams-board .ams-sheet :where(h2, h3, h4, p, strong, span, li) { color: #1d252a; }
}


/* Two clear domains and a compact, labelled classroom toolbar. */
.ams-board .ams-home-logo { flex: 0 0 104px; width: 104px; min-height: 0; padding: 0; }
.ams-board .ams-game .ams-feedback-details[open]:has(.ams-analysis-detail-table) { max-height: none; overflow-y: visible; }
.ams-board .ams-board-domain small b { display: block; margin-bottom: 0.25rem; color: var(--ams-syntax); font-size: 1.05em; }
.ams-board .ams-board-domain small span { display: block; max-width: 34ch; margin-inline: auto; }
.ams-board .ams-header__tools { padding: 4px; border: 1px solid var(--ams-line); border-radius: 16px; background: #fff; }
.ams-board .ams-header__tools [data-action="fullscreen"] { display: flex; width: auto; gap: 0.45rem; align-items: center; padding-inline: 0.8rem; }
.ams-board .ams-header__tools [data-fullscreen-label] { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; clip-path: none; white-space: nowrap; font-size: 0.95em; }
.ams-board .ams-header__tools .ams-teacher-toggle { padding-inline: 0.8rem; }
.ams-board .ams-game .ams-game-top-tools { display: flex; justify-content: flex-end; gap: 0.8rem; align-items: center; min-width: 0; }
.ams-board .ams-guide-button { display: inline-flex; gap: 0.5rem; min-height: 48px; padding: 0.55rem 0.85rem; align-items: center; justify-content: center; border: 1px solid #dce7ed; border-radius: 12px; background: #edf4f8; color: #385f7b; font-size: 15px; font-weight: 700; line-height: 1.3; }
.ams-board .ams-guide-button .ams-icon { width: 23px; height: 23px; flex-basis: 23px; }
.ams-board .ams-guide-entry { margin-top: 1rem; }
.ams-board .ams-play-intro .ams-guide-entry { align-self: center; }

/* All learning text remains actual HTML. The book is a modal consultation sheet. */
.ams-board .ams-guide-dialog { position: fixed; inset: 0; width: min(1120px, calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 32px); margin: auto; padding: 0; overflow: hidden; border: 1px solid var(--ams-line); border-radius: 22px; background: #fff; color: var(--ams-ink); font: 18px/1.5 var(--ams-board-font); box-shadow: 0 22px 70px rgb(27 47 63 / 22%); }
.ams-board .ams-guide-dialog:not([open]) { display: none; }
.ams-board .ams-guide-dialog[open] { display: flex; flex-direction: column; }
.ams-board .ams-guide-dialog::backdrop { background: rgb(29 47 60 / 43%); }
.ams-board .ams-guide-header { display: flex; flex: 0 0 auto; gap: 1.1rem; padding: 1.25rem 1.5rem; align-items: center; border-bottom: 1px solid var(--ams-line); background: #f5f8fa; }
.ams-board .ams-guide-art { width: 82px; height: 82px; flex: 0 0 82px; object-fit: contain; }
.ams-board .ams-guide-header > div { flex: 1; min-width: 0; }
.ams-board .ams-guide-header .ams-eyebrow { margin: 0 0 0.1rem; font-size: 12px; color: #5f7688; }
.ams-board .ams-guide-title { margin: 0; color: var(--ams-ink); font-size: clamp(25px, 2.7vw, 36px); line-height: 1.2; }
.ams-board .ams-guide-title:focus { outline: none; box-shadow: none; }
.ams-board .ams-guide-summary { max-width: 70ch; margin: 0.4rem 0 0; color: #536879; font-size: 16px; line-height: 1.45; }
.ams-board .ams-guide-close { display: inline-flex; min-height: 48px; gap: 0.8rem; flex: 0 0 auto; align-items: center; align-self: flex-start; padding: 0.55rem 0.8rem; border: 1px solid #d9e3ea; border-radius: 12px; background: #fff; color: var(--ams-ink); font-size: 15px; font-weight: 700; }
.ams-board .ams-guide-close span { font-size: 25px; line-height: 1; }
.ams-board .ams-guide-content { min-height: 0; overflow-y: auto; padding: 1.3rem 1.5rem 1.5rem; overscroll-behavior: contain; }
.ams-board .ams-guide-section + .ams-guide-section { margin-top: 1.6rem; }
.ams-board .ams-guide-section h3 { margin: 0 0 0.8rem; font-size: 22px; line-height: 1.3; }
.ams-board .ams-guide-table { width: 100%; margin: 0; table-layout: fixed; border-spacing: 0; border-collapse: separate; overflow: hidden; border: 1px solid #dce6ed; border-radius: 14px; font-size: 17px; }
.ams-board .ams-guide-table th, .ams-board .ams-guide-table td { padding: 0.85rem 1rem; border: 0; border-bottom: 1px solid #e1e9ee; vertical-align: top; text-align: left; overflow-wrap: anywhere; }
.ams-board .ams-guide-table thead th { background: #eaf2f7; color: #345a74; font-size: 15px; font-weight: 700; }
.ams-board .ams-guide-table thead th:first-child { width: 24%; }
.ams-board .ams-guide-table thead th:last-child { width: 37%; }
.ams-board .ams-guide-table tbody th { background: #f5f8fa; color: #365d78; font-size: 17px; }
.ams-board .ams-guide-table tbody tr:nth-child(even) td { background: #fcfdfd; }
.ams-board .ams-guide-table tbody tr:last-child > * { border-bottom: 0; }
.ams-board .ams-guide-type { display: block; font-weight: 700; }
.ams-board .ams-guide-row-note { display: block; margin-top: 0.4rem; color: var(--ams-muted); font-size: 0.85em; }
.ams-board .ams-guide-examples { display: flex; gap: 0.4rem; flex-wrap: wrap; align-items: flex-start; }
.ams-board .ams-guide-example { display: inline-block; max-width: 100%; padding: 0.25rem 0.55rem; border-radius: 8px; background: #f1f5f1; color: #365f4d; font-weight: 700; font-size: 0.95em; }
.ams-board .ams-guide-table tr.is-highlighted > * { background: #fff5df !important; box-shadow: inset 0 2px #dec38d, inset 0 -2px #dec38d; }
.ams-board .ams-guide-note { margin: 1.2rem 0 0; padding: 1rem; border-radius: 12px; background: #f7f6f0; color: #596978; font-size: 15px; }
.ams-board .ams-game .ams-type-links { display: flex; gap: 0.4rem; flex-wrap: wrap; margin: 0.4rem 0 0; }
.ams-board .ams-game .ams-type-link { display: inline-flex; min-height: 42px; gap: 0.4rem; align-items: center; padding: 0.3rem 0.65rem; border: 1px solid #cfdfd4; border-radius: 10px; background: #fff; color: #315a45; font-size: 15px; line-height: 1.3; }
.ams-board .ams-game .ams-type-link strong { color: inherit; }
.ams-board .ams-game .ams-type-link span { color: inherit; }
.ams-board .ams-analysis-detail-wrap { width: 100%; max-width: 100%; overflow-x: auto; margin-top: 0.65rem; }
.ams-board .ams-analysis-detail-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.ams-board .ams-analysis-detail-table th, .ams-board .ams-analysis-detail-table td { padding: 0.5rem; vertical-align: top; text-align: left; border: 1px solid #d4e2d9; color: inherit; }
.ams-board .ams-analysis-detail-table td strong { display: block; color: inherit; }
.ams-board.is-large-text .ams-guide-dialog { font-size: 21px; }
.ams-board.is-large-text .ams-guide-table, .ams-board.is-large-text .ams-guide-table tbody th { font-size: 20px; }
.ams-board.is-large-text .ams-guide-summary { font-size: 19px; }
.ams-board.is-high-contrast .ams-guide-dialog { border: 2px solid var(--ams-line); background: var(--ams-paper); }
.ams-board.is-high-contrast .ams-guide-table th, .ams-board.is-high-contrast .ams-guide-table td { border-color: var(--ams-line); color: var(--ams-ink); }
.ams-board.is-high-contrast .ams-guide-example { border: 1px solid #456556; }
@media (hover: hover) and (pointer: fine) { .ams-board .ams-guide-button:hover, .ams-board .ams-guide-close:hover { background: #e6eff5; } .ams-board .ams-game .ams-type-link:hover { background: #f3f8f4; } }
@media (min-width: 900px) and (max-height: 780px) { .ams-board .ams-guide-header { padding: 0.85rem 1.25rem; } .ams-board .ams-guide-art { width: 64px; height: 64px; flex-basis: 64px; } .ams-board .ams-guide-title { font-size: 28px; } .ams-board .ams-guide-entry { margin-top: 0.65rem; } }
@media (min-width: 581px) and (max-height: 780px) { .ams-board .ams-home-logo { flex-basis: 84px; width: 84px; } }
@media (max-width: 580px) {
 .ams-board .ams-home-logo { flex: 0 0 72px; width: 72px; }
 .ams-board .ams-header__tools { padding: 0; border: 0; background: transparent; gap: 0; }
 .ams-board .ams-header__tools [data-action="fullscreen"] { width: 40px; min-width: 40px; padding: 0.5rem; }
 .ams-board .ams-header__tools [data-fullscreen-label] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(50%); }
 .ams-board .ams-header__tools .ams-teacher-toggle { padding: 0.5rem; }
 .ams-board .ams-game .ams-game-top-tools { gap: 0.45rem; }
 .ams-board .ams-game-top .ams-guide-button { width: 44px; min-width: 44px; min-height: 44px; padding: 0.5rem; }
 .ams-board .ams-game-top .ams-guide-button span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(50%); }
 .ams-board .ams-play-intro .ams-guide-entry { grid-column: 2; justify-self: start; margin-top: 0.5rem; font-size: 13px; min-height: 44px; }
 .ams-board .ams-guide-dialog { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); border-radius: 16px; }
 .ams-board .ams-guide-header { padding: 0.85rem; gap: 0.7rem; align-items: flex-start; flex-wrap: wrap; }
 .ams-board .ams-guide-art { display: none; }
 .ams-board .ams-guide-header > div { flex: 1 1 180px; }
 .ams-board .ams-guide-title { font-size: 25px; }
 .ams-board .ams-guide-summary { font-size: 15px; }
 .ams-board .ams-guide-close { min-height: 44px; padding: 0.5rem 0.65rem; gap: 0.35rem; font-size: 13px; }
 .ams-board .ams-guide-content { padding: 0.9rem; }
 .ams-board .ams-guide-section h3 { font-size: 20px; }
 .ams-board .ams-guide-table, .ams-board .ams-guide-table tbody { display: block; width: 100%; }
 .ams-board .ams-guide-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
 .ams-board .ams-guide-table tbody tr { display: grid; grid-template-columns: 1fr; padding: 0.8rem; border-bottom: 1px solid #dce6ed; }
 .ams-board .ams-guide-table tbody tr:last-child { border-bottom: 0; }
 .ams-board .ams-guide-table tbody th, .ams-board .ams-guide-table tbody td { width: 100%; padding: 0.35rem 0.45rem; border: 0; background: transparent; font-size: 16px; }
 .ams-board .ams-guide-table tbody th { padding-block: 0.5rem; border-radius: 8px; background: #edf3f8; font-size: 18px; }
 .ams-board.is-large-text .ams-guide-table tbody th, .ams-board.is-large-text .ams-guide-table tbody td { font-size: 20px; }
 .ams-board.is-large-text .ams-guide-table tbody td::before { font-size: 14px; }
 .ams-board .ams-guide-table tbody td::before { display: block; margin-bottom: 0.2rem; color: #687d8b; content: attr(data-label); font-size: 12px; font-weight: 700; }
 .ams-board .ams-guide-examples { gap: 0.35rem; }
 .ams-board .ams-guide-example { padding: 0.25rem 0.5rem; }
 .ams-board .ams-guide-note { font-size: 14px; }
 .ams-board .ams-game .ams-type-link { font-size: 13px; min-height: 44px; }
}
@media (forced-colors: active) { .ams-board .ams-guide-dialog { border: 2px solid CanvasText; } .ams-board .ams-guide-example { border: 1px solid CanvasText; } .ams-board .ams-guide-table tr.is-highlighted > * { outline: 2px solid Highlight; } }
@media print { .ams-board .ams-guide-dialog, .ams-board .ams-guide-button { display: none !important; } }

/* Three short decisions, each with its own place on the game setup board. */
.ams-board .ams-play-setup {
	width: min(1320px, 100%);
	grid-template-columns: minmax(230px, 0.65fr) minmax(0, 1.35fr);
	gap: clamp(2rem, 4vw, 4rem);
}
.ams-board .ams-play-config {
	gap: 1rem;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}
.ams-board .ams-play-config fieldset {
	display: flow-root;
	min-width: 0;
	margin: 0;
	padding: 1rem 1.1rem 1.1rem;
	border: 1px solid #dfe6eb;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 3px 0 #e7ebeb;
}
.ams-board .ams-play-config legend {
	display: flex;
	float: left;
	width: 100%;
	min-height: 32px;
	gap: 0.65rem;
	align-items: center;
	margin: 0 0 0.8rem;
	padding: 0;
	color: var(--ams-ink);
	font-size: 1.02em;
	font-weight: 700;
	line-height: 1.35;
}
.ams-board .ams-config-step {
	display: inline-flex;
	flex: 0 0 30px;
	width: 30px;
	height: 30px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: #eee9f7;
	color: #65517d;
	font-size: 0.88em;
	line-height: 1;
}
.ams-board .ams-play-games .ams-config-step { background: #e9f1f8; color: #375e7b; }
.ams-board .ams-play-levels .ams-config-step { background: #e8f2eb; color: #32634b; }
.ams-board .ams-config-options {
	display: grid;
	clear: both;
	min-width: 0;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.55rem;
}
.ams-board .ams-play-contents .ams-config-options { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ams-board :is(.ams-content-choice, .ams-game-choice, .ams-level-choice) {
	min-width: 0;
	min-height: 50px;
	margin: 0;
	padding: 0.65rem 0.75rem;
	border: 1px solid #e0e6eb;
	border-radius: 12px;
	background: #f8fafb;
	box-shadow: none;
	color: var(--ams-ink);
	font-size: 0.92em;
	font-weight: 700;
	line-height: 1.3;
	overflow-wrap: anywhere;
	transition: border-color 140ms ease, background 140ms ease;
}
.ams-board .ams-content-choice {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	border-color: #e8e4ee;
	background: #faf9fc;
	text-align: center;
}
.ams-board .ams-content-choice[aria-pressed="true"] { border: 2px solid #8b76ad; padding: calc(0.65rem - 1px) calc(0.75rem - 1px); background: #eee9f8; color: #57416f; }
.ams-board .ams-game-choice {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 0.5rem;
	text-align: left;
}
.ams-board .ams-game-choice::before { flex-basis: 8px; width: 8px; height: 8px; background: #c4d1db; }
.ams-board .ams-game-choice[aria-pressed="true"] { border: 2px solid #779cb7; padding: calc(0.65rem - 1px) calc(0.75rem - 1px); background: #e9f2f9; color: #305f81; }
.ams-board .ams-level-choice {
	display: flex;
	min-height: 70px;
	flex-direction: column;
	gap: 0.35rem;
	align-items: center;
	justify-content: center;
	background: #fafbf9;
	color: #576a5e;
	text-align: center;
}
.ams-board .ams-level-stars { display: block; color: #8b6c24; font-size: 17px; letter-spacing: 0.12em; line-height: 1; white-space: nowrap; }
.ams-board .ams-level-choice[aria-pressed="true"] { border: 2px solid #7a9f86; padding: calc(0.65rem - 1px) calc(0.75rem - 1px); background: #e9f3ec; color: #285b40; }
.ams-board .ams-level-choice[aria-pressed="true"] .ams-level-stars { color: #346249; }
.ams-board .ams-play-config > .ams-primary { min-height: 62px; margin-top: 0.1rem; border-radius: 16px; box-shadow: 0 4px 0 #284f6b; font-size: 1.12em; }
.ams-board .ams-play-config .ams-setup-note { margin: 0; padding: 0.1rem 0.4rem; }
.ams-board .ams-student-back { margin-bottom: 0.85rem; }
.ams-board .ams-student-back > .ams-quiet,
.ams-board .ams-game .ams-game-top > .ams-quiet {
	min-height: 48px;
	padding: 0.6rem 1rem;
	border: 1px solid #c7d6e0;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 3px 0 #e0e7ec;
	color: #365b76;
	font-size: 0.95em;
	font-weight: 700;
	line-height: 1.3;
}
.ams-board .ams-play-intro .ams-guide-entry { min-height: 50px; padding-inline: 1.1rem; border-color: #bccfdd; border-radius: 14px; font-size: 17px; }

@media (hover: hover) and (pointer: fine) {
	.ams-board .ams-content-choice:hover:not([aria-pressed="true"]) { border-color: #c7badc; background: #f2edf9; }
	.ams-board .ams-game-choice:hover:not(:disabled):not([aria-pressed="true"]) { border-color: #b6cbdc; background: #f0f5f9; }
	.ams-board .ams-level-choice:hover:not([aria-pressed="true"]) { border-color: #b5ccbd; background: #f0f6f1; }
	.ams-board .ams-student-back > .ams-quiet:hover,
	.ams-board .ams-game .ams-game-top > .ams-quiet:hover { border-color: #92aebf; background: #edf4f8; color: #2d526d; }
}
@media (min-width: 900px) and (max-height: 800px) {
	.ams-board .ams-play-setup { gap: 2rem; }
	.ams-board .ams-play-config { gap: 0.55rem; }
	.ams-board .ams-play-config fieldset { padding: 0.55rem 0.85rem 0.65rem; border-radius: 16px; }
	.ams-board .ams-play-config legend { min-height: 28px; gap: 0.55rem; margin-bottom: 0.45rem; font-size: 0.94em; }
	.ams-board .ams-config-step { flex-basis: 27px; width: 27px; height: 27px; }
	.ams-board .ams-config-options { gap: 0.4rem; }
	.ams-board :is(.ams-content-choice, .ams-game-choice) { min-height: 44px; font-size: 0.84em; }
	.ams-board .ams-level-choice { min-height: 58px; padding-block: 0.5rem; gap: 0.3rem; font-size: 0.88em; }
	.ams-board .ams-level-choice[aria-pressed="true"] { padding-block: calc(0.5rem - 1px); }
	.ams-board .ams-level-stars { font-size: 15px; }
	.ams-board .ams-play-config > .ams-primary { min-height: 52px; padding-block: 0.55rem; font-size: 1.05em; }
	.ams-board .ams-student-back { margin-bottom: 0.65rem; }
	.ams-board .ams-student-back > .ams-quiet { min-height: 44px; padding-block: 0.5rem; font-size: 0.88em; }
}
@media (max-width: 900px) {
	.ams-board .ams-play-setup { grid-template-columns: minmax(180px, 0.65fr) minmax(0, 1.35fr); gap: 1.5rem; align-items: start; }
	.ams-board .ams-play-intro { padding-top: 0.5rem; }
	.ams-board .ams-play-config fieldset { padding: 0.9rem; border-radius: 17px; }
	.ams-board .ams-play-config legend { font-size: 0.94em; }
	.ams-board .ams-play-contents .ams-config-options,
	.ams-board .ams-play-games .ams-config-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ams-board :is(.ams-content-choice, .ams-game-choice, .ams-level-choice) { font-size: 0.86em; }
}
@media (max-width: 580px) {
	.ams-board .ams-play-setup { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
	.ams-board .ams-play-intro { padding-top: 0; }
	.ams-board .ams-play-intro .ams-guide-entry { min-height: 44px; padding: 0.55rem 0.8rem; margin-top: 0.55rem; font-size: 15px; }
	.ams-board .ams-play-config { gap: 0.85rem; }
	.ams-board .ams-play-config fieldset { padding: 0.85rem 0.7rem; border-radius: 17px; }
	.ams-board .ams-play-config legend { gap: 0.55rem; margin-bottom: 0.7rem; font-size: 0.98em; }
	.ams-board .ams-config-step { flex-basis: 28px; width: 28px; height: 28px; }
	.ams-board .ams-config-options { gap: 0.45rem; }
	.ams-board :is(.ams-content-choice, .ams-game-choice) { min-height: 50px; font-size: 0.88em; }
	.ams-board .ams-game-choice { gap: 0.4rem; }
	.ams-board .ams-level-choice { min-height: 68px; padding-inline: 0.25rem; font-size: 0.85em; }
	.ams-board .ams-level-choice[aria-pressed="true"] { padding-inline: calc(0.25rem - 1px); }
	.ams-board .ams-level-stars { font-size: 15px; }
	.ams-board .ams-play-config > .ams-primary { min-height: 58px; font-size: 1.1em; }
	.ams-board .ams-student-back > .ams-quiet,
	.ams-board .ams-game .ams-game-top > .ams-quiet { min-height: 46px; padding: 0.55rem 0.8rem; font-size: 0.91em; }
}
.ams-board.is-large-text :is(.ams-content-choice, .ams-game-choice, .ams-level-choice) { font-size: 1.05em; }
.ams-board.is-large-text .ams-play-config legend { font-size: 1.12em; }
.ams-board.is-large-text .ams-config-options { gap: 0.65rem; }
.ams-board.is-large-text .ams-play-contents .ams-config-options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ams-board.is-high-contrast .ams-play-config { border: 0; }
.ams-board.is-high-contrast .ams-play-config fieldset { border: 2px solid var(--ams-line); box-shadow: none; }
.ams-board.is-high-contrast .ams-config-step { background: #e5eaf0; color: var(--ams-ink); }
.ams-board.is-high-contrast :is(.ams-content-choice, .ams-game-choice, .ams-level-choice) { border-color: var(--ams-line); background: #fff; color: var(--ams-ink); }
.ams-board.is-high-contrast .ams-content-choice[aria-pressed="true"] { border-color: #5e497a; background: #ece4f7; color: #3c2857; }
.ams-board.is-high-contrast .ams-game-choice[aria-pressed="true"] { border-color: #355f7d; background: #dceaf4; color: var(--ams-ink); }
.ams-board.is-high-contrast .ams-level-choice[aria-pressed="true"] { border-color: #2d6748; background: #dfeee4; color: #194e37; }
.ams-board.is-high-contrast .ams-student-back > .ams-quiet,
.ams-board.is-high-contrast .ams-game .ams-game-top > .ams-quiet { border: 2px solid var(--ams-line); box-shadow: none; color: var(--ams-ink); }
@media (hover: none) {
	.ams-board .ams-student-back > .ams-quiet:hover { border-color: #c7d6e0; background: #fff; color: #365b76; }
	.ams-board.is-high-contrast .ams-student-back > .ams-quiet:hover { border-color: var(--ams-line); color: var(--ams-ink); }
}
@media (max-width: 580px) { .ams-board.is-large-text .ams-play-contents .ams-config-options { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (forced-colors: active) {
	.ams-board .ams-play-config fieldset,
	.ams-board :is(.ams-content-choice, .ams-game-choice, .ams-level-choice) { border: 2px solid ButtonText; background: Canvas; color: CanvasText; box-shadow: none; }
	.ams-board :is(.ams-content-choice, .ams-game-choice, .ams-level-choice)[aria-pressed="true"] { forced-color-adjust: none; border-color: Highlight; background: Highlight; color: HighlightText; }
	.ams-board .ams-config-step { border: 1px solid CanvasText; background: Canvas; color: CanvasText; }
	.ams-board .ams-level-stars { color: inherit; }
}
