@font-face{font-family:Library;src:local('Avenir Next'),local('Trebuchet MS');font-display:swap}
/* Long topic names must not set the catalog's minimum width. */
.catalog-view .filters.filters { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.catalog-view .filters.filters > label { min-width:0; width:100%; }
.catalog-view .filters.filters input,.catalog-view .filters.filters select { min-width:0; width:100%; max-width:100%; }
@media (max-width:900px) { .catalog-view .filters.filters { grid-template-columns:minmax(0,1fr); } }
body.game-playing > .site-header,
body.game-playing > footer { display: none; }
body.game-playing #app {
  width: calc(100% - 32px);
  min-height: 100dvh;
  padding-bottom: 12px;
}
.game-playing .play-toolbar {
  display: grid;
  grid-template-columns: 140px minmax(170px, 1fr) 145px auto 48px;
  gap: 14px;
  align-items: center;
  padding: 10px 0;
}
.game-playing .play-toolbar .text-button { font-size: 15px; }
.game-playing .play-heading { min-width: 0; }
.game-playing .play-heading h1 {
  font: 700 19px/1.25 Library, 'Trebuchet MS', sans-serif;
  margin: 0 0 3px;
}
.game-playing .play-heading span { font-size: 14px; color: var(--muted); }
.game-playing .play-toolbar .progress-wrap { min-width: 0; font-size: 13px; }
.game-playing .play-toolbar .secondary { padding: 8px 12px; font-size: 15px; }
.game-playing .play-toolbar .sound { padding: 0; font-size: 22px; }
.game-playing .play-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 200px;
  gap: 16px;
  align-items: start;
}
.game-playing .game-shell {
  display: grid;
  grid-template-rows: minmax(360px, 1fr) 104px minmax(72px, auto);
  min-height: min(calc(100dvh - 104px), 640px);
  overflow: visible;
}
.game-playing .work { min-width: 0; min-height: 0; padding: 16px; align-content: center; }
.game-playing .work h2 { font-size: 24px; line-height: 1.3; margin: 0 0 12px; }
.game-playing .model { gap: 12px; margin: 12px 0; }
.game-playing .model-group { padding: 10px 12px; }
.game-playing .model-label { margin-bottom: 8px; }
.game-playing .blocks { min-height: 158px; gap: 8px; }
.game-playing .cube { width: 15px; height: 14px; flex-shrink: 0; }
.game-playing .choices { margin: 12px auto 0; gap: 12px; }
.game-playing .choice { min-height: 56px; font-size: 28px; padding: 6px 12px; }
.game-playing .number-target { font-size: 46px; line-height: 1.1; margin: 8px 0 12px; }
.game-playing .counter-row { gap: 20px; }
.game-playing .counter button { min-height: 48px; }
.game-playing .digit-fields { margin: 0; gap: 20px; }
.game-playing .digit-fields label { gap: 4px; font-size: 16px; }
.game-playing .digit-fields select { min-height: 48px; padding: 6px; }
.game-playing .task-stage-2 .work {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}
.game-playing .task-stage-2 .game-shell {
  grid-template-rows: minmax(410px, 1fr) 104px minmax(72px, auto);
}
.game-playing .task-stage-2 .work > h2,
.game-playing .task-stage-2 .work > .model,
.game-playing .task-stage-2 .work > .help-panel { grid-column: 1 / -1; }
.game-playing .task-stage-2 .number-target { margin: 0; }
.game-playing .task-stage-2 .model { margin: 0; }
.game-playing .guide { padding: 10px 16px; gap: 12px; }
.game-playing .guide .elf { width: 58px; min-width: 58px; height: 76px; }
.game-playing .message { font-size: 16px; line-height: 1.4; }
.game-playing .actions { padding: 10px 16px; gap: 10px; align-content: center; }
.game-playing .actions button { font-size: 16px; min-height: 48px; padding: 10px 16px; }
.game-playing .build-strip { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 16px 0; }
.game-playing .build-strip h3 { font-size: 17px; margin-bottom: 6px; }
.game-playing .build-strip p { margin: 0; }
.game-playing .build-strip .town { width: 100%; height: auto; max-height: none; }
.game-playing .help-panel {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 12px;
  align-items: center;
  padding: 12px;
  margin: 0;
}
.game-playing .help-panel h2 { grid-column: 1 / -1; margin: 0; font-size: 22px; }
.game-playing .help-panel ol { font-size: 16px; margin: 0; }
.game-playing .help-panel .model { margin: 0; }
.game-playing .help-panel .primary { grid-column: 1 / -1; justify-self: end; }
.how-to {
  width: min(600px, calc(100% - 32px));
  max-height: calc(100dvh - 32px);
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fffdfa;
  color: var(--ink);
  padding: 24px;
}
.how-to::backdrop { background: #35322e66; }
.how-to h2 { font-size: 25px; }
.how-to ol { padding-left: 24px; }
@media (max-width: 1000px) {
  .game-playing .play-toolbar { grid-template-columns: 135px minmax(170px, 1fr) auto 48px; gap: 10px; }
  .game-playing .play-toolbar .progress-wrap { grid-column: 2; grid-row: 2; }
  .game-playing .play-heading { grid-row: 1; grid-column: 2; }
  .game-playing .play-toolbar > a { grid-row: 1 / 3; }
  .game-playing .play-toolbar > button { grid-row: 1 / 3; }
  .game-playing .play-layout { grid-template-columns: 1fr; gap: 8px; }
  .game-playing .game-shell { min-height: 0; }
  .game-playing .build-strip { flex-direction: row; justify-content: space-between; padding: 4px 8px; gap: 16px; }
  .game-playing .build-strip .town { width: 180px; }
}
@media (max-width: 600px) {
  .game-playing .play-toolbar { grid-template-columns: minmax(0, 1fr) auto 48px; gap: 8px; padding: 8px 0; }
  .game-playing .play-toolbar > a { grid-column: 1; grid-row: 1; justify-self: start; }
  .game-playing .play-toolbar > button { grid-row: 1; }
  .game-playing .play-heading { grid-column: 1 / -1; grid-row: 2; }
  .game-playing .play-heading h1 { font-size: 18px; }
  .game-playing .play-heading span { display: none; }
  .game-playing .play-toolbar .progress-wrap { grid-column: 1 / -1; grid-row: 3; display: flex; align-items: center; gap: 12px; }
  .game-playing .progress-wrap progress { width: auto; flex: 1; margin: 0; }
  .game-playing .game-shell { grid-template-rows: minmax(310px, 1fr) 144px minmax(72px, auto); }
  .game-playing .task-stage-2 .game-shell { grid-template-rows: minmax(390px, 1fr) 144px minmax(72px, auto); }
  .game-playing .work { padding: 12px; }
  .game-playing .work h2 { font-size: 21px; margin-bottom: 8px; }
  .game-playing .model { gap: 8px; margin: 10px 0; grid-template-columns: 2fr 1fr; }
  .game-playing .model-group { padding: 8px; }
  .game-playing .model-label { font-size: 14px; }
  .game-playing .blocks { gap: 5px; }
  .game-playing .cube { width: 14px; }
  .game-playing .choices { gap: 8px; margin-top: 10px; }
  .game-playing .choice { padding: 6px; font-size: 26px; }
  .game-playing .counter-row { gap: 8px; }
  .game-playing .counter { gap: 6px; }
  .game-playing .counter output { min-width: 85px; }
  .game-playing .task-stage-2 .work { grid-template-columns: 65px minmax(0, 1fr); gap: 8px; }
  .game-playing .digit-fields { gap: 10px; }
  .game-playing .digit-fields select { width: 90px; font-size: 21px; }
  .game-playing .digit-fields label { font-size: 14px; }
  .game-playing .guide { padding: 8px 12px; gap: 8px; }
  .game-playing .guide .elf { width: 40px; min-width: 40px; height: 56px; }
  .game-playing .message { font-size: 16px; }
  .game-playing .actions { padding: 10px 12px; gap: 8px; }
  .game-playing .actions button { padding: 10px 12px; }
  .game-playing .build-strip .town { width: 135px; }
  .game-playing .build-strip h3 { font-size: 15px; margin-bottom: 3px; }
  .game-playing .build-strip p { font-size: 12px; }
  .game-playing .help-panel { grid-template-columns: 1fr; padding: 10px; }
  .game-playing .help-panel .primary { justify-self: stretch; }
}
@media (max-height: 700px) and (min-width: 1001px) {
  .game-playing .game-shell { min-height: 0; }
  .game-playing .play-toolbar { padding-block: 6px; }
}
body.game-page {
  background: #faf7ef;
}
body.game-page #app {
  width: calc(100% - 48px);
  max-width: 1100px;
  min-width: 0;
  height: auto;
  margin-inline: auto;
  overflow-wrap: break-word;
}
@media (max-width: 560px) {
  body.game-page #app { width: calc(100% - 32px); }
}
body:has(.catalog-view) {
  background: #fffaf0;
  color: #3f4245;
}
body:has(.catalog-view) .site-header {
  border-bottom: 2px dashed #eadfc9;
}
body:has(.catalog-view) .brand-mark {
  background: #39a5a3;
  box-shadow: 3px 3px 0 #c3e4d8;
  transform: rotate(-5deg);
}
body:has(.catalog-view) .grade {
  color: #78609a;
  border-left-color: #dfd0ec;
}
body:has(.catalog-view) footer { border-top: 2px dashed #eadfc9; }
.catalog-view {
  position: relative;
  isolation: isolate;
  --catalog-teal: #23817f;
  --catalog-orange: #bd511e;
}
.catalog-view .intro {
  padding: 48px 0 36px;
  overflow: visible;
  min-height: 330px;
}
.catalog-view .eyebrow {
  color: var(--catalog-teal);
  font-size: 12px;
  margin-bottom: 20px;
}
.catalog-view .eyebrow:before {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #f3c957;
  border: 2px solid #dbad35;
}
.catalog-view .intro h1 {
  font-family: Library, 'Trebuchet MS', sans-serif;
  font-size: 44px;
  font-weight: 800;
  line-height: 1.2;
  max-width: 670px;
  color: #345f60;
  margin-bottom: 18px;
}
.catalog-view .intro h1 span {
  display: block;
  color: #ae6029 !important;
  font-size: 25px;
  margin-top: 12px;
}
.catalog-view .intro p {
  max-width: 620px;
  font-size: 17px;
  line-height: 1.7;
  color: #6c6a62;
  margin-bottom: 0;
}
.catalog-view .intro-number { display: none; }
.math-friends {
  position: absolute;
  width: 310px;
  right: -8px;
  top: 30px;
  pointer-events: none;
}
.math-friends svg { display: block; width: 100%; height: auto; }
.catalog-view section[aria-labelledby='collection-title'] { position: relative; z-index: 1; }
.catalog-view .collection-header {
  border-top: 2px dashed #e6d9be;
  padding-top: 24px;
  margin-bottom: 22px;
}
.catalog-view .collection-header h2 {
  color: #4c5555;
  font-size: 25px;
  font-weight: 800;
}
.catalog-view .collection-header h2:after {
  content: '';
  display: block;
  width: 62px;
  height: 5px;
  border-radius: 3px;
  background: #f2c653;
  margin-top: 9px;
}
.catalog-view .count {
  color: #6c5a82;
  background: #f0e8f8;
  padding: 5px 12px;
  border-radius: 6px;
  font-weight: 700;
}
.catalog-view .filters { gap: 14px; margin-bottom: 28px; }
.catalog-view input, .catalog-view select {
  background: #fffefa;
  border: 2px solid #dedccf;
  box-shadow: 0 3px 0 #eae1cd;
  min-height: 56px;
}
.catalog-view input:focus-visible, .catalog-view select:focus-visible {
  outline-color: #50aaa5;
  border-color: #50aaa5;
}
.catalog-view .search svg { top: 18px; stroke: #398d8b; }
.catalog-view .game-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.catalog-view .game-card {
  background: #fffefa;
  border: 2px solid #dedfce;
  border-radius: 8px;
  box-shadow: 0 5px 0 #e8dfc9;
  transition: transform .18s ease, box-shadow .18s ease;
}
.catalog-view .game-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 0 #e8dfc9;
}
.catalog-view .card-art { height: 235px; background: #edf4df; border-bottom: 2px solid #e5ebd9; }
.catalog-view .card-art .elf { width: 115px; left: 20px; }
.catalog-view .card-art .elf:last-child { width: 108px; right: 18px; }
.catalog-view .card-content { padding: 22px; }
.catalog-view .tag { background: #e1f2ee; color: #286c67; border: 1px solid #c6e7df; }
.catalog-view .card-content h3 { color: #3e5454; font-size: 24px; font-weight: 800; }
.catalog-view .card-content p { color: #706c62; font-size: 15px; }
.catalog-view .card-meta { color: #716b62; font-size: 13px; gap: 16px; }
.catalog-view .card-content .primary {
  background: #f6cd5b;
  color: #5a431b;
  border: 2px solid #e1b346;
  box-shadow: 0 3px 0 #d3a23a;
  font-size: 18px;
  min-height: 54px;
}
.catalog-view .card-content .primary:hover { background: #ffdb75; }
.catalog-view .card-content .primary:focus-visible { outline-color: #278c89; }
.catalog-view .catalog-note {
  position: relative;
  z-index: 1;
  margin-top: 40px;
  padding-top: 22px;
  border-top: 2px dashed #e6d9be;
  color: #777363;
}
.catalog-doodles { position: absolute; inset: 0; pointer-events: none; z-index: -1; overflow: visible; }
.doodle { position: absolute; display: block; font-family: Library, 'Trebuchet MS', sans-serif; font-weight: 800; line-height: 1; }
.doodle-five { color: #edbd65; font-size: 56px; left: -60px; top: 155px; transform: rotate(-16deg); }
.doodle-plus { color: #70bdb7; font-size: 49px; left: -53px; top: 470px; transform: rotate(9deg); }
.doodle-minus { color: #e8aa6e; font-size: 62px; right: -55px; top: 399px; transform: rotate(-15deg); }
.doodle-equals { color: #b9a1d6; font-size: 56px; right: 55px; top: 755px; transform: rotate(12deg); }
.doodle-seven { color: #b9a1d6; font-size: 77px; right: 140px; top: 545px; transform: rotate(12deg); }
.doodle-ring { width: 38px; height: 38px; border: 7px solid #7ac7c1; border-radius: 50%; right: 280px; top: 710px; }
.doodle-triangle { width: 44px; height: 44px; background: #f0c963; clip-path: polygon(50% 0, 100% 100%, 0 100%); right: 65px; top: 575px; transform: rotate(16deg); }
@media (max-width: 1260px) {
  .doodle-five, .doodle-plus, .doodle-minus { display: none; }
  .math-friends { width: 280px; right: 0; top: 50px; }
  .catalog-view .intro h1 { max-width: calc(100% - 290px); font-size: 39px; }
  .catalog-view .intro p { max-width: calc(100% - 290px); }
}
@media (max-width: 900px) {
  .catalog-view .intro { padding-top: 36px; min-height: 340px; }
  .catalog-view .intro h1 { font-size: 35px; max-width: calc(100% - 230px); }
  .catalog-view .intro p { max-width: calc(100% - 220px); font-size: 16px; }
  .math-friends { width: 220px; top: 75px; }
  .catalog-view .game-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .doodle-seven { right: 50px; top: 600px; }
  .doodle-triangle { right: 60px; top: 820px; }
  .doodle-ring { right: 90px; top: 730px; }
  .doodle-equals { display: none; }
}
@media (max-width: 620px) {
  .catalog-view .intro { padding: 28px 0 18px; min-height: 0; display: flex; flex-direction: column; }
  .catalog-view .eyebrow { font-size: 10px; gap: 8px; margin-bottom: 16px; }
  .catalog-view .intro h1 { font-size: 34px; max-width: 100%; margin-bottom: 16px; }
  .catalog-view .intro h1 span { font-size: 22px; margin-top: 8px; }
  .catalog-view .intro p { max-width: 100%; font-size: 15px; line-height: 1.65; }
  .math-friends { position: relative; width: 190px; top: auto; right: auto; align-self: flex-end; margin: 4px 5px -3px; }
  .catalog-view .collection-header { padding-top: 20px; }
  .catalog-view .collection-header h2 { font-size: 22px; }
  .catalog-view .filters { flex-direction: column; }
  .catalog-view .topic-filter { width: 100%; min-width: 0; }
  .catalog-view .game-grid { grid-template-columns: 1fr; }
  .catalog-view .card-art { height: 250px; }
  .catalog-view .card-art .elf { width: 125px; left: 26px; }
  .catalog-view .card-art .elf:last-child { width: 118px; right: 22px; }
  .catalog-doodles { display: none; }
  .catalog-view .catalog-note { margin-top: 30px; font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .catalog-view .game-card { transition: none; }
}
.intro h1{max-width:990px;font-size:48px}.intro{padding-top:44px;padding-bottom:25px}.building{position:relative}.building:after{content:'';position:absolute;left:42%;top:5px;width:20px;height:20px;background:#63bfba;border:2px solid #268b8a;animation:delivery 1.4s ease-in forwards;pointer-events:none}@keyframes delivery{from{opacity:1;transform:translate(-35px,-35px) rotate(0)}to{opacity:0;transform:translate(95px,65px) rotate(80deg)}}
:root{--cream:#faf7ef;--ink:#352e32;--wine:#79384b;--muted:#756c70;--line:#e5ded7;--teal:#349d9d;--yellow:#ebc353;--green:#3f7957}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:Library,'Trebuchet MS',sans-serif;font-size:17px;line-height:1.55}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #ba8640;outline-offset:4px}button,.button{min-height:48px;border-radius:8px;border:1px solid transparent;padding:11px 22px;display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;font-weight:700}.primary{background:var(--wine);color:white}.primary:hover{background:#612b3b}.secondary{background:#fff;border-color:var(--line);color:var(--ink)}.text-button{background:transparent;color:var(--wine);padding-left:0;padding-right:0}.site-header{max-width:1200px;margin:auto;display:flex;align-items:center;gap:22px;padding:26px 36px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-size:15px;line-height:1.3;font-weight:700}.brand-mark{background:var(--wine);color:#fff;width:47px;height:47px;border-radius:8px;font-family:Georgia,serif;font-size:36px;text-align:center;position:relative}.brand-mark span{position:absolute;font:17px Georgia;right:4px;top:0;color:#efd8a4}.grade{border-left:1px solid #d9cec5;padding-left:22px;color:var(--wine);font-weight:700}.header-note{margin-left:auto;font-size:13px;color:var(--muted)}main{max-width:1128px;margin:auto;padding:0 0 64px}h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,'Times New Roman',serif;font-weight:500;font-size:56px;line-height:1.08;max-width:760px;margin-bottom:22px}h2{font-size:28px;line-height:1.25}h3{font-size:23px;line-height:1.3}.eyebrow{font-size:12px;font-weight:700;letter-spacing:0;text-transform:uppercase;color:var(--wine);display:flex;align-items:center;gap:10px;margin-bottom:22px}.eyebrow:before{content:'';width:24px;height:2px;background:currentColor}.intro{position:relative;padding:60px 0 40px;overflow:hidden}.intro p{font-size:18px;max-width:580px;color:var(--muted)}.intro .intro-number{position:absolute;right:24px;top:35px;font:italic 165px Georgia;color:#79384b09;pointer-events:none}.intro .intro-number small{font:70px Georgia;color:#b99a5450;display:inline-block;transform:translate(-15px,22px)}.collection-header{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:28px;margin-bottom:22px}.collection-header h2{margin:0;font-size:24px}.count{color:var(--muted);font-size:14px}.filters{display:flex;gap:14px;margin-bottom:30px}.search{flex:1;position:relative}.search svg{position:absolute;left:16px;top:17px;width:20px;fill:none;stroke:var(--muted);stroke-width:2}.search input{padding:13px 16px 13px 48px;width:100%}input,select{min-height:52px;border:1px solid #dcd3cb;background:#fffdfa;border-radius:8px;color:var(--ink)}.topic-filter{min-width:270px;padding:10px 16px}.game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.game-card{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fffdfa;box-shadow:0 4px 18px #41322b04}.card-art{height:205px;position:relative;background:#e9f0df;overflow:hidden}.card-art .town{width:100%;height:100%;object-fit:cover;border-radius:0}.card-art .elf{position:absolute;bottom:0;width:100px;left:28px;filter:drop-shadow(0 5px 3px #32433015)}.card-art .elf:last-child{left:auto;right:20px;width:94px}.card-content{padding:23px}.tag{display:inline-block;font-size:12px;font-weight:700;color:#557653;background:#eef2e7;border-radius:4px;padding:4px 9px;margin-bottom:14px}.card-content h3{margin-bottom:12px}.card-content p{font-size:14px;color:var(--muted);margin-bottom:20px}.card-meta{display:flex;gap:18px;font-size:12px;color:var(--muted);padding-bottom:20px}.card-content .button{width:100%;justify-content:space-between}.catalog-note{margin-top:40px;padding-top:22px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}.empty{padding:50px 10px;color:var(--muted);grid-column:1/-1}footer{max-width:1200px;margin:auto;border-top:1px solid var(--line);padding:24px 36px;color:var(--muted);font-size:12px;display:flex;justify-content:space-between;gap:20px}.game-nav{display:flex;justify-content:space-between;align-items:center;padding:20px 0}.game-nav .sound{width:48px;padding:0;font-size:22px}.game-cover{text-align:center;background:#eef3e6;padding:32px 32px 0;border:1px solid #dce6d1;border-radius:8px;overflow:hidden}.game-cover h1{font-size:48px;max-width:none;margin:10px 0 20px}.game-cover p{max-width:690px;margin:0 auto 24px}.cover-art{max-width:780px;margin:24px auto 0;position:relative}.cover-art .town{display:block;width:100%}.cover-art .elf{position:absolute;width:24%;bottom:0;left:4%}.cover-art .elf:last-child{left:auto;right:3%}.cover-label{font-size:13px;color:#52764f;font-weight:700}.game-info{display:flex;justify-content:center;gap:25px;margin-top:22px;font-size:14px;color:var(--muted)}.game-shell{background:#fffdfa;border:1px solid var(--line);border-radius:8px;overflow:hidden}.stage-top{display:flex;align-items:center;gap:24px;justify-content:space-between;padding:22px 28px;border-bottom:1px solid var(--line);background:#f2f5ec}.stage-top h2{margin:0;font-size:21px}.progress-wrap{min-width:180px;font-size:13px;color:var(--muted)}progress{width:100%;height:8px;display:block;accent-color:var(--green);margin-top:5px}.work{padding:28px;min-height:380px}.work h2{text-align:center;font-size:25px}.model{display:grid;grid-template-columns:2fr 1fr;gap:18px;margin:22px 0}.model-group{min-width:0;background:#f0f8f6;border-radius:8px;padding:16px}.model-group.units{background:#fffae8}.model-label{font-size:15px;font-weight:700;color:#326b68;margin-bottom:12px}.units .model-label{color:#8d7020}.blocks{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;min-height:214px}.tower{display:flex;flex-direction:column-reverse;gap:2px;padding:0;background:none;border:0;min-height:0;border-radius:2px}.cube{display:block;width:21px;height:19px;border:1px solid #268b8a;background:#63bfba;box-shadow:inset -4px 0 #3ba7a4;border-radius:2px}.unit-cubes{align-content:flex-end;justify-content:flex-start;gap:10px}.unit-cubes .cube{border-color:#c99d35;background:#f1ce64;box-shadow:inset -4px 0 #dfb644}.zero{font-size:15px;color:#8c783e;align-self:center;width:100%;text-align:center}.tower.lit .cube{background:#b0e8b1;box-shadow:0 0 7px #58b27a}.tower.highlight{animation:highlight 1.2s ease both;animation-delay:calc(var(--order)*.3s)}.example-equation{text-align:center;font-size:27px;color:var(--green);font-weight:700}.choices{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;max-width:650px;margin:24px auto}.choice{font-size:30px;background:white;border:2px solid #ddd6cb;min-height:70px}.choice.selected{border-color:var(--wine);background:#f8edf1;color:var(--wine)}.choice.correct{border-color:var(--green);background:#edf7ee}.number-target{font:700 64px Georgia;text-align:center;color:var(--wine);margin:12px 0 20px}.counter-row{display:flex;justify-content:center;gap:32px;flex-wrap:wrap}.counter{display:flex;align-items:center;gap:12px}.counter button{min-width:48px;font-size:23px;padding:4px;background:#fff;border-color:#d8d5cb}.counter output{min-width:90px;text-align:center;font-size:15px;font-weight:700}.digit-fields{display:flex;justify-content:center;gap:25px;margin:20px 0 35px}.digit-fields label{display:grid;gap:8px;font-weight:700}.digit-fields select{width:155px;text-align:center;font-size:23px;padding:8px}.guide{display:flex;align-items:center;gap:12px;background:#f4f5ee;padding:14px 24px;border-top:1px solid var(--line)}.guide .elf{width:70px;min-width:70px;height:90px}.message{font-size:16px}.message.success{color:#296640}.message.error{color:#994c40}.actions{display:flex;gap:12px;padding:20px 28px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line)}.actions .primary{margin-left:auto}.build-strip{margin-top:22px;display:grid;grid-template-columns:210px 1fr;align-items:center;gap:30px}.build-strip h3{font-size:17px;margin-bottom:8px}.build-strip p{font-size:13px;color:var(--muted)}.build-strip .town{width:100%;max-height:190px}.building .house{animation:rise 1.2s ease-out}.help-panel{background:#fff8dc;border:1px solid #e9dba6;padding:22px;border-radius:8px;margin-top:20px}.help-panel ol{padding-left:25px;margin-bottom:8px}.finish{text-align:center}.finish h1{font-size:45px;max-width:none}.finish .cover-art{max-width:760px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:26px auto;max-width:800px}.stat{padding:22px;background:#fffdfa;border:1px solid var(--line);border-radius:8px;font-size:14px}.stat strong{display:block;font-size:38px;color:var(--green)}.finish-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.teacher{max-width:650px;margin:24px auto;text-align:left;border-block:1px solid var(--line);padding:16px}.teacher summary{cursor:pointer;min-height:48px;display:flex;align-items:center;font-weight:700;color:var(--wine)}.teacher p{margin:10px 0}.example-note{text-align:center;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@keyframes rise{from{opacity:.2;transform:translateY(10px)}to{opacity:1}}@keyframes highlight{50%{filter:brightness(1.3);transform:translateY(-5px)}}@media(min-width:1000px){.catalog-view{min-height:720px}}@media(max-width:1200px){main{margin:0 36px}}@media(max-width:800px){.game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.intro .intro-number{right:0;opacity:.5}.build-strip{grid-template-columns:1fr;gap:5px}.build-strip p{margin-bottom:0}.build-strip .town{max-height:none}.stage-top{align-items:flex-start}.game-cover h1{font-size:38px}}@media(max-width:560px){.site-header{padding:18px 20px;gap:16px}.header-note{display:none}.brand{font-size:13px}.grade{font-size:14px;padding-left:16px}main{margin:0 18px;padding-bottom:35px}.intro{padding-top:36px}.intro h1{font-size:39px;max-width:330px}.intro p{font-size:16px}.intro .intro-number{display:none}.filters{flex-direction:column;gap:10px}.topic-filter{width:100%;min-width:0}.game-grid{grid-template-columns:1fr}.card-art{height:220px}.collection-header{gap:10px}.collection-header h2{font-size:22px}.game-cover{padding:25px 14px 0}.game-cover h1{font-size:34px}.game-cover p{font-size:15px}.game-info{font-size:12px;gap:14px}.stage-top{padding:18px;gap:14px;flex-direction:column}.stage-top h2{font-size:19px}.progress-wrap{width:100%}.work{padding:20px 14px;min-height:0}.work h2{font-size:21px}.model{grid-template-columns:1.5fr 1fr;gap:8px}.model-group{padding:10px}.blocks{gap:8px}.cube{width:17px;height:16px}.blocks{min-height:182px}.model-label{font-size:13px}.choices{gap:8px}.choice{font-size:26px;padding:8px;min-height:60px}.counter-row{gap:15px}.counter output{min-width:85px}.guide{padding:10px 14px;gap:8px}.guide .elf{width:58px;min-width:58px;height:85px}.message{font-size:14px}.actions{padding:16px 14px;gap:8px}.actions button{font-size:14px;padding:10px 12px}.digit-fields{gap:15px}.digit-fields select{width:125px}.stats{grid-template-columns:1fr;gap:10px}.stat{padding:12px;display:flex;align-items:center;gap:20px;text-align:left}.stat strong{min-width:40px;text-align:center}.finish h1{font-size:34px}.finish>p{font-size:16px}footer{padding:20px;flex-direction:column;gap:5px}.build-strip{margin-top:18px}.example-equation{font-size:22px}.number-target{font-size:55px}.cover-art .elf{width:28%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
