.expressions-page { padding-bottom: 4rem; }
.expression-player { padding: clamp(1rem, 3vw, 2rem); background: #faf7ef; border: 1px solid #dfd5bd; border-radius: 18px; color: #162c46; }
.expression-toolbar, .expression-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.expression-toolbar { padding-bottom: 1rem; border-bottom: 1px solid #dfd5bd; margin-bottom: 1.5rem; }
.expression-toolbar label { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; font-weight: 700; }
.expression-toolbar select, .expression-gap input { max-width: 100%; padding: .65rem; border: 1px solid #a6afba; border-radius: 8px; color: #162c46; background: white; font: inherit; }
.expression-step { min-height: 360px; }
.expression-step[hidden] { display: none; }
.expression-step h2 { font-size: clamp(1.7rem, 4vw, 2.5rem); }
.expression-step h3 { font-size: clamp(1.3rem, 3vw, 2rem); }
.expression-step p { line-height: 1.6; }
.expression-choices { display: grid; gap: .75rem; border: 0; padding: 0; margin: 1.5rem 0; }
.expression-choices legend { font-weight: 700; margin-bottom: .75rem; }
.expression-choices label { padding: 1rem; border: 1px solid #d4c8a9; border-radius: 10px; cursor: pointer; background: #fff; }
.expression-choices input { margin-right: .6rem; accent-color: #18324f; }
.expression-feedback { min-height: 2rem; font-weight: 600; }
.expression-feedback[data-correct="true"] { color: #17633d; }
.expression-feedback[data-correct="false"] { color: #8d3925; }
.expression-gap { display: grid; gap: 1rem; font-size: 1.5rem; margin: 1.5rem 0; }
.expression-gap input { width: min(100%, 360px); font-size: 1.1rem; box-sizing: border-box; }
.expression-speaking { margin-top: 2rem; padding: 1rem 1.5rem; background: #eee5d1; border-radius: 12px; }
.expression-controls { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid #dfd5bd; }
.expression-controls button:disabled { opacity: .45; cursor: default; }
.expression-player:fullscreen, .expression-player.expression-expanded { overflow-y: auto; border-radius: 0; padding: 2rem max(1rem, calc((100vw - 1180px) / 2)); }
.expression-player.expression-expanded { position: fixed; inset: 0; z-index: 10000; }
.expression-player:fullscreen .expression-art img, .expression-expanded .expression-art img { max-height: 65vh; width: 100%; object-fit: contain; }
.expression-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; margin-bottom: 1.25rem; }
.expression-heading h2 { margin: .25rem 0; font-size: clamp(1.8rem, 4vw, 2.7rem); }
.expression-heading p { margin: .35rem 0 0; font-size: 1.15rem; color: #8b631c; }
.expression-heading time { color: #657080; white-space: nowrap; font-size: .875rem; }
.expression-art { margin: 0; }
.expression-art img { display: block; width: 100%; height: auto; }
.expression-readable { display: flex; justify-content: space-between; align-items: flex-start; gap: 2rem; margin-top: 1.5rem; }
.expression-dialogue p { margin: 0 0 1rem; }
.expression-dialogue strong, .expression-dialogue span { display: block; }
.expression-dialogue strong { font-size: 1.2rem; }
.expression-dialogue span { margin-top: .2rem; color: #536173; }
.expression-usage { display: grid; gap: .5rem; justify-items: start; }
.expression-usage > span { color: #657080; font-size: .9rem; }
.expression-archive { margin-top: 4rem; }
.expression-archive > h2 { margin-bottom: 2rem; }
.expression-archive .expression-entry { margin-bottom: 3.5rem; }
.expression-home-feature .section-head { padding: 1.5rem 0; border-top: 1px solid #dfd5bd; border-bottom: 1px solid #dfd5bd; }
.countability-notes { margin-top: 1.5rem; padding: .5rem 1.25rem; color: #162c46; background: #faf7ef; border: 1px solid #dfd5bd; border-radius: 16px; }
.countability-notes summary { font-weight: 700; cursor: pointer; padding: .75rem 0; }
.countability-notes p { line-height: 1.6; }
.countability-notes table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
.countability-notes th, .countability-notes td { padding: .7rem; text-align: left; border-bottom: 1px solid #e1e5eb; vertical-align: top; }
@media (max-width: 640px) {
  .expression-heading { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .expression-readable { flex-direction: column; gap: .5rem; }
  .expression-heading h2 { font-size: 1.8rem; }
  .expression-dialogue strong { font-size: 1.1rem; }
  .countability-notes th, .countability-notes td { padding: .5rem .35rem; font-size: .95rem; overflow-wrap: anywhere; }
}
