.ant-main .play-heading { max-width: 960px; }
.ant-main .play-heading > p:last-child { max-width: 65ch; }
.ant-board { margin-top: 1.5rem; }
.ant-board .story-line { min-height: 0; margin-bottom: 1rem; }
.reserve-request { font-size: 1.5rem; margin: 1rem 0 1.4rem; }
.reserve-request strong { display: inline-block; margin-left: .25rem; text-decoration: none; }
#target-count { font: 600 2rem/1.3 "Atkinson Hyperlegible Next", sans-serif; }
.reserve-workspace { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 2.5rem; align-items: start; }
.reserve-zone { min-width: 0; padding: 1.2rem; border: 2px dashed var(--line); border-radius: 4px; transition: background-color 150ms ease-out, border-color 150ms ease-out; }
.reserve-zone.is-drop-target { background: var(--raised); border-color: var(--chalk); }
.reserve-zone > .control-note { max-width: 52ch; }
.reserve-groups { display: grid; gap: 1.25rem; margin: 1.4rem 0; }
.reserve-group h4 { display: flex; align-items: center; gap: .75rem; margin: 0 0 .75rem; font-size: 1.3rem; font-weight: 400; }
.group-count { font: 500 1.5rem/1.3 "Atkinson Hyperlegible Next", sans-serif; }
.reserve-tens { display: flex; flex-wrap: wrap; gap: .65rem; min-height: 58px; }
.reserve-units { display: grid; grid-template-columns: repeat(5, minmax(0, 52px)); gap: .4rem; min-height: 52px; }
.empty-reserve { margin: .5rem 0; color: var(--chalk-soft); font-size: 1.1rem; grid-column: 1 / -1; }
.seed-object { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: .3rem; border: 0; padding: .55rem .7rem; background: var(--blue); color: var(--object-ink); box-shadow: 1px 3px 5px rgb(0 0 0 / 35%), inset 0 1px 1px rgb(255 255 255 / 50%); user-select: none; -webkit-user-select: none; }
.seed-object:hover { background: var(--blue); }
.seed-value { font: 600 1.5rem/1.3 "Atkinson Hyperlegible Next", sans-serif; }
.seed-bag { min-width: 88px; min-height: 88px; border-radius: 4px; }
.seed-dots { display: grid; grid-template-columns: repeat(5, 5px); gap: 4px; padding: .1rem; }
.seed-dots i { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.seed-unit { width: 52px; min-width: 0; height: 52px; min-height: 52px; border-radius: 50%; padding: 0; background: var(--orange); }
.seed-unit:hover { background: var(--orange); }
.seed-caption { font-size: 1.05rem; line-height: 1.3; }
.reserve-equation { margin: 1.1rem 0 .25rem; font: 500 1.5rem/1.4 "Atkinson Hyperlegible Next", sans-serif; }
.exchange-controls { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.3rem; }
.exchange-controls button { text-align: left; }
.ant-stock { padding-top: .2rem; }
.ant-stock > p { max-width: 39ch; }
.seed-stock { display: flex; flex-wrap: wrap; align-items: stretch; gap: .9rem; margin: 1.2rem 0; }
.seed-stock .seed-object { min-width: 120px; min-height: 132px; cursor: grab; touch-action: none; }
.seed-stock .seed-value { font-size: 2rem; }
.seed-stock-one { background: var(--orange); }
.seed-stock-one:hover { background: var(--orange); }
.single-seed { display: block; width: 16px; height: 16px; border-radius: 50%; background: var(--object-ink); margin: .3rem 0; }
.seed-stock [aria-pressed="true"] { outline: 3px solid var(--chalk); outline-offset: 5px; }
.seed-stock .is-drag-source { opacity: .4; }
.seed-ghost { position: fixed; margin: 0; z-index: 100; pointer-events: none; cursor: grabbing; box-shadow: 2px 8px 12px rgb(0 0 0 / 45%), inset 0 1px 1px rgb(255 255 255 / 60%); }
.ant-stock > .control-note { margin-top: 1rem; }
.ant-board .game-feedback { font-size: 1.25rem; min-height: 3em; }
.ant-main .teacher-notes { margin-top: 2rem; }
@media (max-width: 800px) { .reserve-workspace { grid-template-columns: 1fr; gap: 1.5rem; } .ant-stock > p { max-width: 65ch; } .seed-stock .seed-object { min-width: 130px; } }
@media (max-width: 480px) {
  .reserve-zone { padding: .75rem; }
  .reserve-units { grid-template-columns: repeat(5, minmax(0, 48px)); gap: .35rem; }
  .seed-unit { width: 100%; height: 48px; min-height: 48px; }
  .seed-stock { gap: .75rem; }
  .seed-stock .seed-object { flex: 1 1 100px; min-width: 0; }
  .seed-ghost { flex: none; }
  .reserve-equation { font-size: 1.5rem; }
  .exchange-controls button { flex: 1 1 200px; }
  .ant-board .game-feedback { min-height: 4.5em; }
}
@media (max-width: 360px) { .reserve-units { grid-template-columns: repeat(4, 48px); } }
@media (prefers-reduced-motion: reduce) { .reserve-zone { transition: none; } }
