/* Generated art is static; only deliberate interactions have short transitions. */
:root{--ink:#213e46;--muted:#607b82;--green:#158570;--line:#d8e7e9;--bg:#f2f8fa;--blue:#3485c6}
body{background:var(--bg)}
button,.icon-btn{transition:background-color .15s,border-color .15s,transform .15s}
.primary{background:#188970;border-color:#188970;box-shadow:0 3px 0 #106551}
.primary:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 #106551}
.topbar{height:82px;padding:12px max(24px,calc((100% - 1256px)/2));border-color:#deebed}
.brand strong{font-size:21px}.brand small{font-size:12px;color:#688189}
.toolbar .icon-btn{background:#f5fafb;border-color:#e0ebed}
.math-token{display:inline-block;flex:none;width:64px;height:64px;background-image:url('art-v2/tokens.webp');background-size:300% 200%;background-repeat:no-repeat;vertical-align:middle}
.token-apple{background-position:0 0}.token-star{background-position:50% 0}.token-ball{background-position:100% 0}.token-leaf{background-position:0 100%}.token-guide{background-position:50% 100%}.token-trophy{background-position:100% 100%}
.token-apple,.token-star,.token-ball{clip-path:inset(0 0 10% 0)}
.token-guide{background-size:270% 180%}
.station{width:min(580px,100%)}.station-direction{text-align:center;color:#477684;font-weight:700;margin-bottom:18px}
.station-cars{display:grid;grid-template-columns:repeat(var(--cars),minmax(0,1fr));gap:10px;border-bottom:5px solid #7595a3;padding-bottom:12px}
.station-car{display:grid;place-items:center;min-width:0;background:#e2f2ee;border:2px solid #a4cfc3;border-bottom:8px solid #4e9a89;border-radius:8px;padding:7px 0}
.station-car:nth-child(even){background:#fff0df;border-color:#e8c99e;border-bottom-color:#d79a60}.station-car .math-token{width:100%;height:auto;aspect-ratio:1;max-width:90px}
.pairing-objects .object-button.paired{opacity:1;background:#e4f4ef;border-color:#71b49d}.pairing-objects .object-button.paired::after{content:attr(data-pair);position:absolute;right:0;top:0;width:auto;height:auto;padding:2px 5px;background:#17694f;border-radius:3px;color:#fff;font-size:11px;line-height:1.3}
.basket-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(800px,100%);gap:20px;align-items:stretch}
.fruit-basket{min-width:0;border:2px solid #a8cfc5;border-bottom:8px solid #77ad9d;border-radius:8px;background:#f8fffc;padding:14px}
.fruit-basket:nth-child(2){border-color:#e5bb9e;border-bottom-color:#cf9977;background:#fff9f4}.fruit-basket h3{font-size:17px;color:#496d65;display:flex;justify-content:space-between;gap:8px;margin-bottom:12px}.fruit-basket b{font-variant-numeric:tabular-nums;color:#1a6756}
.basket-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;align-content:start;min-height:250px}
.basket-items .object-button{width:100%;min-height:0;min-width:0;padding:0;background:transparent;border-color:transparent}
.balance-target{width:min(420px,100%)}.balance-target>span{display:block;color:#597681;margin-bottom:10px;font-weight:700}.balance-target .objects{max-width:none}
.number-path{width:min(700px,100%);display:grid;grid-template-columns:repeat(var(--stops),minmax(0,1fr));gap:7px;position:relative}
.number-stop{display:flex;flex-direction:column;justify-content:center;gap:12px;align-items:center;min-width:0;height:120px;padding:6px;border:2px solid #bfd8e4;border-bottom-width:6px;background:#fff;border-radius:8px;color:#327991}
.number-stop small{display:block;height:17px;font-size:12px;color:#a66320}.number-stop b{font-size:30px}.number-stop[aria-pressed=true]{background:#ddf3eb;border-color:#2b9b7b;color:#146b53}
.equation-balance{width:min(600px,100%);display:grid;grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);gap:12px;align-items:center;font-size:40px;font-weight:800;color:#347c94}
.equation-balance>span{background:#fff;border:2px solid #c8dce5;border-bottom:6px solid #aacdd9;border-radius:8px;padding:24px 12px;white-space:nowrap}.equation-balance>span:last-child{color:#bf7452;border-color:#ebcfc1}.equation-balance>b{color:#649180}
.coin-tray{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;max-width:620px;padding:22px}
.toy-coin{height:104px;width:104px;border-radius:50%;background:#ffe6a0;border:7px double #cf9f36;display:flex;justify-content:center;align-items:center;gap:3px;box-shadow:0 5px 0 #dbb969;color:#90661a}.toy-coin b{font-size:42px}.toy-coin small{font-size:16px}.coin-2{background:#e4f0f7;border-color:#8eaab9;color:#476d80;box-shadow:0 5px 0 #aac0cd}.coin-5{background:#f9d6c4;border-color:#c98969;color:#975334;box-shadow:0 5px 0 #d5a38a}
.treasure-board{display:grid;grid-template-columns:34px repeat(var(--cols),minmax(0,1fr));gap:10px;width:min(520px,100%)}
.grid-axis{display:flex;align-items:center;justify-content:center;font-size:13px;color:#62827e;font-weight:700;min-height:24px;white-space:nowrap}
.treasure-cell{padding:6px;aspect-ratio:1;min-width:0;min-height:0;border:2px solid #b5cec4;border-bottom:6px solid #83b49e;background:#f5fbf5;border-radius:8px;display:grid;place-items:center;font-size:26px;color:#8db39e}
.treasure-cell[aria-pressed=true]{border-color:#dfaa39;background:#fff2cc;color:#9a6a15}.treasure-cell .math-token{width:100%;height:100%;max-width:82px;max-height:82px}
@media(max-width:720px){.station-cars{gap:5px}.station-car{padding:4px 0}.basket-board{gap:10px}.fruit-basket{padding:8px}.fruit-basket h3{font-size:15px}.basket-items{grid-template-columns:repeat(3,minmax(0,1fr));min-height:280px;gap:3px}.number-path{gap:4px}.number-stop{height:90px;padding:4px 0}.number-stop b{font-size:22px}.number-stop small{font-size:10px}.equation-balance{font-size:27px;grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);gap:7px}.equation-balance>span{padding:22px 5px}.coin-tray{gap:13px;padding:10px}.toy-coin{height:72px;width:72px;border-width:5px}.toy-coin b{font-size:30px}.toy-coin small{font-size:12px}.treasure-board{gap:6px;grid-template-columns:28px repeat(var(--cols),minmax(0,1fr))}.grid-axis{font-size:11px}.treasure-cell{font-size:21px}.pairing-objects .paired::after{font-size:9px;padding:1px 3px}}
.brand-mascot{width:55px;height:55px}
#homeView{max-width:none;padding:0 0 50px}
.library-heading{display:block;position:relative;isolation:isolate;overflow:hidden;background:#e0f3fc;border-bottom:1px solid #cbe6ef;min-height:250px}
.playground-scene{position:absolute;z-index:-1;right:0;top:-36%;height:165%;width:65%;object-fit:cover;object-position:70% 53%;mask-image:linear-gradient(to right,transparent,#000 22%);-webkit-mask-image:linear-gradient(to right,transparent,#000 22%)}
.library-heading-inner{max-width:1280px;min-height:250px;margin:auto;padding:30px 32px;position:relative}
.library-heading .eyebrow{font-size:13px;color:#338190;margin-bottom:12px}
.library-heading h1{font-size:38px;font-weight:850;line-height:1.3;color:#234850;max-width:55%}
.welcome-line{font-size:17px;color:#527681;margin-top:12px}
.library-progress{display:flex;align-items:center;gap:5px;margin-top:17px;color:#496a74;font-size:13px}
.library-progress .math-token{width:28px;height:28px}.library-progress b{color:#b66b18}
.library-body{max-width:1280px;margin:auto;padding:24px 32px}
.library-controls{display:flex;align-items:center;justify-content:space-between;gap:20px}
.library-controls>h2{font-size:21px;line-height:1.5}
.setup label{font-size:12px;color:#617d84;gap:5px}.setup select{border-color:#d2e2e6;border-radius:6px;font-size:14px;min-width:96px;box-shadow:0 2px 0 #e3edef}
.setup .primary{height:44px;font-size:14px}
.filters{gap:8px;flex-wrap:nowrap;overflow-x:auto;margin:21px 0 20px;padding:0 0 14px;scrollbar-width:thin;scrollbar-color:#b6ced4 transparent}
.filters button{white-space:nowrap;flex:none;padding:9px 17px;font-size:14px;min-height:42px;color:#607b82;background:transparent}
.filters button[aria-pressed=true]{background:#e0f0ed;color:#126c59;border-color:#b9ddd3;box-shadow:0 2px 0 #c9e4dc}
.game-grid{gap:20px;grid-template-columns:repeat(4,minmax(0,1fr))}
.game-card{border:1px solid #d7e5e9;background:#fff;box-shadow:0 3px 0 #dce8ec;border-radius:8px;min-width:0}
.game-card:hover{border-color:#73b4ad;box-shadow:0 5px 0 #c9dfdd;transform:translateY(-2px)}
.game-card:active{transform:translateY(1px);box-shadow:0 1px 0 #c9dfdd}
.game-art{display:block;height:auto;aspect-ratio:3/2;position:relative;border:0;background:#e3f1f6}
.cover-image{position:absolute;width:200%;height:200%;max-width:none;object-fit:fill;pointer-events:none}
.game-art .game-number{z-index:1;left:10px;top:10px;font-size:11px;font-weight:750;line-height:1;min-width:26px;text-align:center;padding:7px 6px;background:#ffffffed;border:1px solid #ffffffb0;border-radius:4px;color:#476776}
.game-copy{padding:15px 16px 13px}.game-copy h2{font-size:18px;line-height:1.5;font-weight:750;color:#294651}
.game-meta{font-size:12px;margin-top:12px;color:#6e838a;gap:5px}
.game-meta>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.game-meta i{width:6px;height:6px;background:var(--accent);border-radius:50%}
.game-meta .card-action{color:#16836e;font-size:12px;font-weight:700}.card-action svg{width:16px;height:16px}
.is-playing{background:#edf6fa}
#playView{max-width:1200px;padding:24px 32px 40px}
.play-top{gap:14px}.play-top h1{font-size:21px;color:#274b58}.play-top span{font-size:13px;color:#66828a}
.play-top .icon-btn{background:#fff;border-color:#cbdfe7;box-shadow:0 3px 0 #d6e6ec}
#scoreLabel{background:#fff7d9;color:#92641a;padding:10px 15px;border:1px solid #efdda4;border-radius:6px;font-size:14px}
.progress-track{height:9px;border-radius:5px;background:#d6e6ed;margin:19px 0 22px;border:1px solid #ccdee7}
#progress{background:#5bb5a1;transition:width .2s}
.question-zone{max-width:1060px;padding:0}
.question-heading{display:flex;align-items:center;justify-content:center;gap:14px;min-height:90px;margin:0 0 22px}
.question-guide{width:85px;height:85px}.question-heading>div{text-align:left;min-width:0}
.question-heading .eyebrow{font-size:12px;margin:0 0 7px;color:#48828e}
.question-zone h2{font-size:28px;line-height:1.5;margin:0;color:#23434f;font-weight:800}
#questionVisual{min-height:180px;margin-bottom:26px;gap:20px}
.objects{padding:20px;max-width:550px;border:1px solid #d0e1e9;border-bottom-width:4px;background:#fff;border-radius:8px;gap:8px}
.objects>.math-token{width:100%;height:auto;aspect-ratio:1;max-width:90px;justify-self:center}
.object-button{background:#f6fafc;border:2px solid transparent;border-radius:8px;min-width:0;min-height:40px;padding:1px;position:relative}
.object-button>.math-token{width:100%;height:100%;max-width:none;aspect-ratio:1}
.object-button[aria-pressed=true]{background:#e0f5eb;border:2px solid #329c7d;border-radius:8px}
.object-button[aria-pressed=true]::after{content:'';position:absolute;right:4px;top:4px;width:7px;height:7px;border-radius:50%;background:#18856b}
.object-button.crossed>.math-token{opacity:.25}
.object-button.crossed::before{content:'';position:absolute;z-index:1;left:15%;right:15%;top:50%;height:3px;background:#d76a59;transform:rotate(-35deg)}
.comparison>.objects{max-width:430px}.comparison>.symbol{font-size:42px;color:#d78a26;flex:none}
.group-choice{border-color:#cbdfe8;border-bottom-width:4px;background:#fff;border-radius:8px;max-width:450px;min-height:210px}
.group-choice .objects{border:0;background:transparent;padding:0}
.group-choice[aria-pressed=true]{background:#edf9f4;border-color:#45a88c}
.choice-grid{gap:14px}
.choice{width:100px;height:76px;border:2px solid #c5dce7;border-bottom-width:5px;border-radius:8px;background:#fff;font-size:32px;font-weight:800;color:#337494}
.choice:nth-child(4n+2){color:#ad6a27;border-color:#ecd5aa;background:#fffdf7}.choice:nth-child(4n+3){color:#32836e;border-color:#beded2;background:#f9fdfb}.choice:nth-child(4n+4){color:#bf6851;border-color:#e9cdc4;background:#fffaf8}
.choice[aria-pressed=true]{border-color:#229777;background:#daf4e8;color:#176f57}
.choice:active:not(:disabled){transform:translateY(2px)}
.shape-choice .math-token{width:58px;height:58px}.shape-choice{height:83px;padding:7px}
.mapping{gap:18px}.mapping>span{padding:10px 16px;border:1px solid #cfdee7;border-bottom-width:4px;border-radius:8px;gap:10px;background:#fff;font-size:26px;color:#527e8f}
.mapping .math-token{width:62px;height:62px}.mapping b{color:#267b99}
.entry-grid{gap:18px}.entry-grid label{gap:12px;font-size:15px;color:#607b86}.entry-grid label .math-token{height:66px;width:66px}
.entry-grid input{height:68px;width:86px;background:#fff;border-color:#bed6e2;border-bottom-width:4px;border-radius:8px;color:#287494;font-weight:750}
.entry-grid input:focus{border-color:#398eb7}
.sort-slots{gap:12px}.sort-slot{width:78px;height:78px;border-color:#99bfce;color:#2a849c;background:#f8fcfe;border-radius:8px}
.sequence-number{width:78px;height:80px;border-radius:8px;background:#fff;border-color:#cadee8;border-bottom-width:4px;color:#357b99;font-weight:800}
.sequence-number.blank{background:#e3f1f7;border-color:#76adc1}
.math-equation{color:#e29a32}.big-number{color:#268a83}
.pattern-row{gap:12px}.pattern-row>.math-token{height:65px;width:65px}
.ten-frame{border:2px solid #aac9d8;border-bottom-width:6px;border-radius:8px;padding:15px;gap:10px;background:#fff;max-width:490px}
.ten-frame button{background:#edf5f8;border:1px solid #d3e4ec;box-shadow:inset 0 2px 3px #bfd5df40;border-radius:8px}
.ten-frame i{background:#d8e6ec;border:2px solid #c7dbe5;box-shadow:inset 0 2px 2px #a9c7d933}
.ten-frame button[aria-pressed=true] i{background:#3fb497;border-color:#2c947d;box-shadow:inset 0 3px 0 #7bd1b8}
.ten-frame button.fixed i{background:#4b9fdb;border-color:#3185bf;box-shadow:inset 0 3px 0 #8cc7f3}
.measure-choice{border-color:#cddfe8;border-bottom-width:4px;border-radius:8px;background:#fff;height:235px;overflow:hidden}
.measure-choice[aria-pressed=true]{border-color:#4ba789;background:#f0fbf6}
.measure-choice>.math-token{flex:none;max-width:100%;background-size:300% 200%}
.measure-choice>span:last-child{font-size:14px;color:#6a8490;flex:none}
.measure-bar{border:2px solid #c99730;border-bottom-width:4px;background:repeating-linear-gradient(90deg,#f5cb67 0,#f5cb67 22px,#d6a039 23px,#d6a039 24px);box-shadow:0 3px 0 #e6d7ac}
.height-tower{border-radius:5px 5px 0 0;border-color:#4388b4;background:repeating-linear-gradient(0deg,#69b6e6 0,#69b6e6 18px,#4694c5 19px,#4694c5 23px);box-shadow:4px 3px 0 #b9d9ea}
#feedback{min-height:45px;margin-top:20px;font-size:17px;line-height:1.7}
#feedback.good{color:#187956;animation:answer-pop .22s ease-out}#feedback.bad{color:#b45e40}
.round-actions{margin-top:8px;gap:14px}.round-actions button{height:50px;min-width:132px;font-size:16px;border-radius:6px}
.round-actions .primary{min-width:170px}.round-actions button:not(.primary){color:#6e8890;background:transparent;border-color:#c9dde5}
@keyframes answer-pop{from{opacity:.5;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
dialog{border-color:#c7dce2;box-shadow:0 15px 50px #203e4826}
dialog::backdrop{background:#173c4e70}.dialog-body{padding:28px}
.result-trophy{display:block;width:150px;height:150px;margin:0 auto 10px}
#resultDialog{background:#f9fcfd}.result-score{font-size:50px;color:#208b75;margin:12px 0}
#resultDialog h2{font-size:24px;line-height:1.5}.dialog-actions button{flex:1;min-width:0}
.access-gate{background:#e7f5fb url('art-v2/playground.webp') right center/cover no-repeat}
.access-card{box-shadow:0 15px 60px #204a6540;background:#fffffffa;border-color:#d6e6ee}
.access-brand>span.math-token{width:70px;height:70px;background-color:transparent;border-radius:0}
.classroom-trial-banner{padding-left:max(24px,calc((100% - 1216px)/2));padding-right:max(24px,calc((100% - 1216px)/2));background:#edf8f3}
@media(min-width:1600px){.game-copy h2{font-size:19px}.game-art{height:auto}.question-zone h2{font-size:30px}}
@media(max-width:1050px){.game-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.library-controls>h2{font-size:20px}.playground-scene{width:67%}.question-zone h2{font-size:26px}}
@media(max-width:720px){
  .topbar{height:70px;padding:10px 16px}.brand-mascot{width:43px;height:43px}.brand strong{font-size:18px}.brand small{font-size:10px}
  .library-heading,.library-heading-inner{min-height:225px}.library-heading-inner{padding:27px 20px}
  .library-heading .eyebrow{font-size:11px;margin-bottom:12px}.library-heading h1{font-size:28px;max-width:72%}
  .welcome-line{font-size:14px;margin-top:10px}.library-progress{font-size:12px;margin-top:15px}
  .playground-scene{width:90%;height:130%;top:5%;right:-29%;object-position:61% 58%;opacity:.9;mask-image:linear-gradient(to right,transparent,#000 35%);-webkit-mask-image:linear-gradient(to right,transparent,#000 35%)}
  .library-body{padding:20px 16px}.library-controls{align-items:stretch;flex-direction:column;gap:14px}.library-controls>h2{font-size:20px}
  .setup{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;width:100%;align-items:end}.setup select{width:100%;min-width:0}.setup .primary{padding:9px 12px}
  .filters{margin:20px 0 17px;gap:4px}.filters button{padding:8px 13px;font-size:13px}
  .game-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 12px}.game-art{height:auto}.game-copy{padding:12px 10px}.game-copy h2{font-size:16px;line-height:1.5}
  .game-meta{margin-top:10px;font-size:10px}.game-meta .card-action{font-size:10px;gap:2px}.card-action svg{width:14px;height:14px}.game-art .game-number{left:7px;top:7px;padding:5px;font-size:10px;min-width:22px}
  #playView{padding:18px 16px 28px}.play-top{gap:10px}.play-top h1{font-size:18px}.play-top span{font-size:11px}#scoreLabel{font-size:12px;padding:8px 10px}
  .progress-track{margin:18px 0}.question-heading{gap:8px;min-height:65px;margin-bottom:20px}.question-guide{width:62px;height:62px}.question-heading .eyebrow{font-size:11px;margin-bottom:4px}.question-zone h2{font-size:22px}
  #questionVisual{min-height:145px;margin-bottom:22px}.objects{padding:10px;gap:4px}.objects>.math-token{max-width:76px}
  .comparison{gap:8px}.comparison>.symbol{font-size:25px}.group-choice{padding:9px;min-height:165px}
  .choice{width:65px;height:65px;font-size:27px}.choice-grid{gap:10px}.shape-choice{height:72px}.shape-choice .math-token{width:48px;height:48px}
  .mapping{gap:8px}.mapping>span{padding:8px 10px;font-size:23px;gap:5px}.mapping .math-token{width:44px;height:44px}
  .entry-grid{gap:12px}.entry-grid label .math-token{width:57px;height:57px}.entry-grid input{width:72px;height:62px;font-size:27px}
  .sort-slots{gap:8px}.sort-slot{width:57px;height:64px;font-size:28px}.sequence-number{width:51px;height:62px;font-size:29px}.code-sequence{gap:8px}
  .pattern-row{gap:6px}.pattern-row>.math-token{width:44px;height:44px}
  .ten-frame{padding:10px;gap:7px}.ten-frame button{min-height:34px;padding:3px;border-radius:5px}
  .measure-options{gap:8px}.measure-choice{padding:8px 6px;height:215px}.measure-choice>span:last-child{font-size:12px}.height-tower{width:43px}
  #feedback{font-size:15px;min-height:45px}.round-actions{gap:10px}.round-actions button{height:48px;min-width:110px;font-size:15px}.round-actions .primary{min-width:140px}
  .dialog-body{padding:22px}.result-trophy{width:125px;height:125px}#resultDialog h2{font-size:21px}.result-score{font-size:42px}
}
@media(max-width:370px){.brand{gap:3px}.brand-mascot{width:35px;height:42px}.brand strong{font-size:17px}.brand small{display:none}.topbar{padding:10px 12px}.toolbar{gap:3px}.toolbar .icon-btn{width:32px;height:36px;min-height:36px;padding:6px}.setup .primary span{display:none}.setup .primary{width:45px;padding:10px}.library-heading h1{font-size:26px}.game-copy h2{font-size:14px}.game-meta i{display:none}.question-zone h2{font-size:20px}.question-guide{width:48px;height:55px}.choice{width:59px}.sequence-number{width:45px}.code-sequence{gap:6px}.play-top h1{font-size:16px}#scoreLabel{padding:8px;font-size:11px}.round-actions .primary{min-width:125px}}
@media(max-height:680px) and (min-width:721px){.topbar{height:64px}.library-heading,.library-heading-inner{min-height:190px}.library-heading-inner{padding-top:20px;padding-bottom:18px}.library-heading h1{font-size:33px}.library-progress{margin-top:8px}#playView{padding-top:15px}.question-heading{min-height:64px;margin-bottom:14px}.question-guide{width:64px;height:64px}.question-zone h2{font-size:25px}#questionVisual{min-height:145px;margin-bottom:18px}.objects>.math-token{max-width:62px}.objects{max-width:440px;padding:12px;gap:5px}.group-choice{min-height:170px}.choice{height:63px}.progress-track{margin:13px 0}.round-actions button{height:45px}#feedback{margin-top:13px;min-height:38px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.library-heading h1.library-name{max-width:65%;font-size:36px}
.library-name .title-age,.access-brand-copy .title-age{font-size:.75em;font-weight:650;white-space:nowrap;color:inherit}
.access-brand-copy{min-width:0}.access-brand-copy strong{line-height:1.5;overflow-wrap:anywhere}
@media(max-width:720px){.library-heading h1.library-name{max-width:100%;font-size:25px}.topbar .brand{gap:8px}.topbar .brand strong{font-size:16px;white-space:nowrap}.access-brand-copy strong{font-size:20px}}
@media(max-width:370px){.library-heading h1.library-name{font-size:22px}.topbar .brand{gap:3px}.topbar .brand strong{font-size:14px}.access-brand-copy strong{font-size:18px}}
