@font-face{font-family:Nunito;src:url('assets/nunito.ttf') format('truetype');font-weight:400 900;font-display:swap}
:root{font-family:Nunito,'Trebuchet MS',Arial,sans-serif;color:#f8f5ff;background:#100c29;font-synthesis:none;--ink:#241547;--purple:#8661ef;--yellow:#ffdb6b;--muted:#b8afd3;--border:#ffffff20;--mint:#7de4c2;--board:500px}
*{box-sizing:border-box}body{margin:0;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}button,input{font:inherit}button{border:0;cursor:pointer;touch-action:manipulation;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #ffdf73;outline-offset:4px}a{color:inherit}.icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;display:inline-block;vertical-align:middle;flex-shrink:0}[hidden]{display:none!important}.space-backdrop{position:fixed;inset:0;background:linear-gradient(90deg,#120b3299,#2213446b,#100d30a6),url('assets/space-background.png') center/cover no-repeat;z-index:-1;pointer-events:none}.app-header{height:84px;display:flex;align-items:center;justify-content:space-between;padding:12px 4vw;gap:20px;flex-shrink:0}.brand{padding:0;background:none;color:white;text-align:left;gap:11px;font-size:25px;line-height:1.03;font-weight:900;letter-spacing:-.5px}.brand b{color:#ffdc74;font-weight:900}.brand small{display:block;font-size:10px;letter-spacing:2.1px;font-weight:800;color:#b6a9d5;margin-top:7px}.brand-icon{background:#8b67e9;box-shadow:inset 0 2px 0 #c5a2ff55,0 3px 0 #463375;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:12px;width:45px;height:48px;font-size:20px;line-height:19px;color:white;transform:rotate(-5deg)}.brand-icon i{display:block;height:2px;width:21px;background:#ffdd79}.header-tools,.round-tools{display:flex;align-items:center;gap:9px}.utility-button{border:1px solid #ffffff24;background:#35245180;backdrop-filter:blur(12px);color:#e8e0ff;min-height:43px;padding:8px 13px;border-radius:12px;font-size:14px;font-weight:800;transition:background .15s,transform .15s}.utility-button:hover{background:#68459585}.utility-button.square{width:43px;padding:10px}.utility-button[aria-pressed=true]{color:#cbbbd9;background:#2e2541}.app-footer{min-height:37px;display:flex;justify-content:center;align-items:center;gap:26px;padding:8px 20px;color:#9f95b8;font-size:12px}.app-footer a{color:#b5a9cd;text-decoration:none}.app-footer a:hover{text-decoration:underline}main{flex:1;min-width:0}.home-view{max-width:1110px;margin:0 auto;padding:25px 24px 22px;display:flex;flex-direction:column;justify-content:center;min-height:calc(100dvh - 122px)}.home-title{text-align:center;margin-bottom:28px}.eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:12px;letter-spacing:2.4px;font-weight:900;color:#cebcff}.eyebrow .icon{width:17px;height:17px;color:#ffe285}.home-title h1{font-size:clamp(44px,4.8vw,72px);font-weight:900;margin:10px 0 7px;letter-spacing:-2.8px;line-height:1.06;text-shadow:0 5px 0 #54328d}.home-title h1 em{font-style:normal;color:#ffda6a;text-shadow:0 5px 0 #9b651c66}.home-title p{margin:12px 0 0;font-size:17px;color:#c2b6dd}.levels{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.level-card{--accent:#7fe5c7;--card:#1c464d;--sample:#2c606b;position:relative;border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);border-top:3px solid var(--accent);background:linear-gradient(145deg,var(--card),#28203bdd);padding:19px 24px 15px;border-radius:21px;display:flex;flex-direction:column;text-align:center;color:white;box-shadow:0 8px 28px #05051920;transition:transform .18s,box-shadow .18s}.level-card.blue{--accent:#8cbaff;--card:#23395f;--sample:#35537e}.level-card.pink{--accent:#f8abdb;--card:#4b2a58;--sample:#683769}.level-card:hover{transform:translateY(-6px);box-shadow:0 12px 36px #03031660}.level-top{display:flex;justify-content:space-between;align-items:center;width:100%;color:var(--accent)}.level-label{font-size:12px;font-weight:900;letter-spacing:1.5px}.level-top>.icon{width:22px;height:22px}.level-sample{position:relative;width:125px;height:112px;display:flex;align-items:center;justify-content:center;margin:13px 0 10px;color:var(--accent)}.level-sample .fraction{font-size:42px;line-height:1.06;z-index:1}.sample-orbit{position:absolute;width:114px;height:86px;border:1px solid color-mix(in srgb,var(--accent) 24%,transparent);border-radius:50%;transform:rotate(-25deg);background:radial-gradient(ellipse,var(--sample),transparent 75%)}.equivalent{width:200px;gap:17px}.equivalent .fraction{font-size:39px}.equals{font-size:30px;color:#ba7ead}.level-card>strong{font-size:25px;line-height:1.2;font-weight:900;letter-spacing:-.5px}.level-detail{font-size:14px;color:var(--accent);font-weight:800;margin:4px 0 8px}.level-description{color:#c1bad1;font-size:14px;line-height:1.6}.level-cta{margin-top:19px;background:var(--accent);color:#1c2240;border-radius:11px;min-height:45px;width:100%;display:flex;gap:10px;align-items:center;justify-content:center;font-size:15px;font-weight:900;box-shadow:0 3px 0 #00000020}.level-cta>.icon{width:16px;height:16px;fill:currentColor}.level-record{font-size:12px;margin-top:5px;color:#b4a9c8;min-height:20px}.level-record.done{color:#ffe39b}.home-how{display:flex;justify-content:center;align-items:center;gap:25px;margin-top:30px;color:#b8afce;font-size:13px}.home-how span{display:flex;align-items:center;gap:8px}.home-how i{width:4px;height:4px;border-radius:50%;background:#8575a0}.home-how .icon{color:#9984bc;width:18px;height:18px}.fraction{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;vertical-align:middle;font-weight:800;min-width:1.1em}.fraction>span{display:block;min-width:1.06em;text-align:center;padding:0 .04em}.fraction>span:first-child{padding-bottom:.13em;border-bottom:.065em solid currentColor}.fraction>span:last-child{padding-top:.11em}.game-view{max-width:1220px;margin:0 auto;padding:0 24px 10px}.game-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 16px;min-height:43px}.back-button{background:none;color:#bcaddd;font-size:14px;font-weight:800;padding:8px 0}.back-button:hover{color:white}.back-button .icon{width:17px;height:17px}.game-title{display:flex;align-items:center;gap:10px}.game-title h1{margin:0;font-size:21px;font-weight:900;letter-spacing:-.3px}.small-badge{font-size:10px;letter-spacing:1px;background:#8b68e826;color:#c9afff;border:1px solid #9474da66;border-radius:6px;padding:5px 8px;font-weight:900}.play-layout{display:grid;grid-template-columns:185px minmax(0,1fr) 185px;gap:24px;align-items:start}.side-card{background:#33234eae;border:1px solid #a388dc26;border-radius:17px;padding:19px 17px;backdrop-filter:blur(10px)}.side-eyebrow{font-size:11px;letter-spacing:1.7px;color:#bdabdc;font-weight:900;display:block}.goal-number{font-size:46px;line-height:1.2;font-weight:900;color:#ffe389;display:block;margin:8px 0 2px;letter-spacing:-1px}.goal-number>span{font-size:20px;letter-spacing:0;color:#f5edff}.goal-card p{font-size:13px;line-height:1.6;color:#b9aace;margin:5px 0 16px}.pattern-gallery{display:flex;gap:9px;justify-content:space-between}.pattern-gallery>div{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px}.pattern-gallery>div>span{font-size:10px;color:#bdaece}.mini-grid{width:42px;display:grid;grid-template-columns:repeat(5,1fr);gap:2px}.mini-grid>i{aspect-ratio:1;border-radius:1px;background:#72559860}.mini-grid>i.lit{background:#d7b0fa}.line-progress{border-top:1px solid #c39dea20;margin-top:18px;padding-top:15px;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#b8a6ce}.line-progress b{color:#e7d5fd}.progress-dots{display:flex;gap:5px;margin-top:8px}.progress-dots>i{height:7px;flex:1;background:#69538160;border-radius:3px}.progress-dots>i.done{background:#ffe087;box-shadow:0 0 10px #ffdc5030}.stats-card{margin-top:13px;padding-top:8px;padding-bottom:8px}.stats-card>div{display:flex;align-items:center;gap:9px;font-size:13px;color:#bbaad4;padding:11px 0}.stats-card .icon{width:17px;height:17px;color:#a583c8}.stats-card>div:first-child .icon{color:#ffe090;fill:#ffe09022}.stats-card b{margin-left:auto;font-size:19px;color:white;font-variant-numeric:tabular-nums}.stats-card>div:first-child b{color:#ffe49a}.board-column{min-width:0}.question-panel{background:#f7f3ff;border:1px solid #eee4ff;border-radius:17px;padding:11px 17px 10px;color:#514172;box-shadow:0 5px 0 #08051b30}.question-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.question-counter{font-size:10px;font-weight:900;letter-spacing:1px;color:#9279b9;white-space:nowrap}.question-heading h2{font-size:16px;font-weight:900;margin:0;letter-spacing:-.2px}.hint-button{width:32px;height:32px;min-width:32px;border-radius:8px;background:#eee5fc;color:#9e71d5}.hint-button:hover,.hint-button[aria-pressed=true]{background:#ffefbd;color:#9b7120}.hint-button .icon{width:19px;height:19px}.number-line{height:77px;display:flex;align-items:center;justify-content:center}.number-line svg{display:block;width:100%;height:100%;overflow:visible;font-family:Nunito,Arial,sans-serif}.line-help{font-size:12px;color:#937daa;text-align:center;margin:0;min-height:18px}.bingo-letters{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;padding:12px 0 8px;color:#c6a8ee;font-size:15px;letter-spacing:3px;font-weight:900;text-align:center}.bingo-board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.fraction-tile{position:relative;min-width:0;height:clamp(62px,calc((100dvh - 364px)/5),112px);background:linear-gradient(150deg,#7650b6,#5b3595);border:1px solid #b391e947;border-radius:12px;color:white;box-shadow:0 4px 0 #39205f, inset 0 1px 0 #e2c6ff16;transition:transform .13s,background .18s,border-color .18s,box-shadow .18s}.fraction-tile>.fraction{font-size:clamp(28px,3.5dvh,39px);font-weight:800;line-height:.92}.fraction-tile:hover:not(:disabled){transform:translateY(-3px);background:linear-gradient(150deg,#8963c9,#6d45ab);border-color:#cab1f0}.fraction-tile:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 #38225b}.fraction-tile.marked{background:linear-gradient(145deg,#328977,#216653);border-color:#77dbb885;box-shadow:0 4px 0 #174138;color:#c1f5de}.fraction-tile.marked>.fraction{opacity:.65}.tile-check{position:absolute;right:5px;top:5px;color:#b2f6d7;width:20px;height:20px;border-radius:50%;background:#124b37;display:flex;align-items:center;justify-content:center}.tile-check .icon{width:13px;height:13px;stroke-width:3}.fraction-tile.wrong{background:#66345d;border:2px solid #ff92a0;animation:wobble .22s}.fraction-tile.winning{background:linear-gradient(145deg,#ffdf82,#e7ac40);border-color:#fff0af;box-shadow:0 4px 0 #a66f24,0 0 18px #eabd4840;color:#6f4815}.fraction-tile.winning>.fraction{opacity:1}.fraction-tile.winning .tile-check{background:#926221;color:#ffeaa3}.bingo-board.waiting .fraction-tile:not(.marked){opacity:.82}.feedback{display:flex;align-items:center;gap:10px;border:1px solid #b49ed22e;background:#312248cf;border-radius:12px;margin-top:14px;padding:11px 13px;min-height:72px;color:#d8c8e9}.feedback>span:first-child{display:flex;align-items:center;color:#b090dc}.feedback strong{font-size:14px;font-weight:900;line-height:1.35;display:block}.feedback p{font-size:12px;margin:4px 0 0;line-height:1.5;color:#b5a4ce}.feedback.success{border-color:#7bddb240;background:#214638db}.feedback.success>span:first-child{color:#a5e5c2}.feedback.success strong{color:#c3f3d9}.feedback.success p{color:#add2bd}.feedback.error{background:#55364cdf;border-color:#e496af55}.feedback.error strong{color:#ffc4c9}.feedback.error p{color:#dab6c9}.feedback .next-button{margin-left:auto;flex-shrink:0;background:#c2f1da;color:#22523f;border-radius:9px;padding:10px 12px;font-size:12px;font-weight:900;min-height:42px}.next-button .icon{width:14px;height:14px;fill:currentColor}.tip-card{padding:18px 15px}.fraction-lesson{display:flex;align-items:center;gap:13px;margin:20px 0}.demo-frac{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:31px;line-height:1;font-weight:900;color:#d7b2fb;min-width:25px}.demo-frac i{height:2px;background:#ab87d5;width:25px}.fraction-lesson>div:last-child{display:flex;flex-direction:column;gap:16px}.fraction-lesson b{display:block;font-size:12px;color:#d6b9ef}.fraction-lesson small{font-size:10px;line-height:1.45;color:#b5a2cf;display:block;margin-top:3px}.tip-card>p{font-size:12px;color:#bba8d3;line-height:1.65;margin-bottom:0}.tip-card>p b{color:#e2cefa}.equal-card{margin-top:13px;background:linear-gradient(135deg,#624088aa,#372550d9);text-align:center;padding:16px 12px}.equal-card>.icon{color:#ffe089;width:22px;height:22px;display:block;margin:0 auto 7px}.equal-card>strong{font-size:19px;font-weight:900;line-height:1.3;display:block;color:#f0d8ff}.equal-example{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:15px;color:#edc6ff}.equal-example>.fraction{font-size:28px}.equal-example>span:nth-child(2){font-size:25px;color:#b98bce}.equal-card>p{font-size:12px;line-height:1.6;margin:13px 0 0;color:#c8acd9}.relaxed-note{color:#aa96be;font-size:12px;line-height:1.6;text-align:center;margin:18px 0}.relaxed-note .icon{height:15px;width:15px;margin-bottom:2px;color:#c690b0}.round-tools .utility-button{min-height:37px;border-radius:9px;font-size:12px;padding:7px 11px}.round-tools .utility-button.square{width:37px;padding:7px}.round-tools .icon{width:17px;height:17px}
dialog{width:min(630px,calc(100vw - 28px));max-height:90dvh;border:1px solid #a984d78a;border-radius:23px;background:linear-gradient(160deg,#453166,#251b40);color:#f4eaff;box-shadow:0 26px 100px #00000080;padding:0}dialog::backdrop{background:#100d2799;backdrop-filter:blur(7px)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #b796d72b;padding:18px 22px}.modal-header h2{font-size:22px;font-weight:900;margin:0}.modal-header .utility-button{border:0;background:#c1a9eb16}.modal-header .square{width:34px;min-height:34px;padding:7px}#modalBody{padding:23px}.modal-copy{font-size:16px;line-height:1.7;color:#cbbbdf;margin:0}.modal-actions{display:flex;gap:11px;justify-content:center;margin-top:22px;flex-wrap:wrap}.primary-button,.secondary-button{min-height:45px;border-radius:11px;padding:10px 20px;font-size:15px;font-weight:900}.primary-button{color:#563a19;background:#ffdc78;box-shadow:0 3px 0 #bc873c}.secondary-button{color:#deccf3;background:#71539650;border:1px solid #a887c751}.help-step{display:flex;gap:14px;align-items:flex-start;margin:0 0 20px}.help-step>span{width:33px;height:33px;flex-shrink:0;border-radius:10px;background:#9b74c633;display:grid;place-items:center;color:#f2cbff;font-weight:900}.help-step p{font-size:15px;line-height:1.7;margin:0;color:#ccbbdf}.help-step strong{color:#f1e4ff}.help-note{font-size:14px;line-height:1.75;padding:13px 15px;background:#c5a0ec15;border:1px solid #c8a0e720;border-radius:11px;color:#cdb8e0}.win-title{text-align:center;font-size:62px;font-weight:900;letter-spacing:4px;color:#ffe486;text-shadow:0 5px 0 #a36b354f;line-height:1.1;margin:8px 0 6px}.win-stars{font-size:36px;color:#ffde7b;letter-spacing:8px;text-align:center;margin:9px 0 0}.win-subtitle{text-align:center;color:#d3bee6;font-size:15px;margin:9px 0 20px;line-height:1.6}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.result-stats>div{padding:13px 6px;border:1px solid #b98bda26;border-radius:12px;text-align:center;background:#9b75c31b}.result-stats b{display:block;font-size:26px;color:#f4e5ff;font-weight:900}.result-stats small{display:block;color:#bc9ed4;font-size:12px}.review-title{font-size:14px;color:#e2c9f4;margin:22px 0 10px;font-weight:900}.review-list{display:flex;gap:9px;flex-wrap:wrap}.review-chip{display:inline-flex;gap:9px;align-items:center;justify-content:center;min-width:80px;border:1px solid #d0b1e72b;background:#7b58972e;border-radius:10px;color:#e9d1fa;padding:9px 12px;font-size:16px}.review-chip .fraction{font-size:18px}.win-note{font-size:12px;color:#b99bcd;text-align:center;line-height:1.7;margin:15px 0 0}.record-note{background:#d7ad6520;border:1px solid #d8b36b3b;color:#ffdf9c;padding:7px 12px;border-radius:8px;text-align:center;font-size:13px;margin-top:12px}.confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:20}.confetti>i{position:absolute;top:-12%;width:9px;height:14px;border-radius:2px;background:var(--color);animation:fall var(--duration) linear var(--delay) forwards;left:var(--left);transform:rotate(var(--rot))}.paused .bingo-board{filter:blur(5px);pointer-events:none}.storage-note{font-size:12px;color:#ffdaa5;text-align:center;margin-top:15px}.modal-levels{display:flex;flex-direction:column;gap:10px;margin-top:15px}.modal-level{justify-content:space-between;text-align:left;border-radius:12px;border:1px solid #d3b4ee30;color:#e7d5fc;background:#75519533;padding:12px 15px;font-size:16px}.modal-level small{font-size:12px;color:#bca0d5;display:block;margin-top:3px}
@keyframes wobble{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}@keyframes fall{to{top:110%;transform:rotate(calc(var(--rot) + 400deg)) translateX(30px);opacity:.1}}
@media(min-width:1600px){.app-header{height:98px;padding-left:6vw;padding-right:6vw}.brand{font-size:30px}.brand-icon{width:51px;height:56px;font-size:23px;line-height:21px}.brand small{font-size:11px}.game-view{max-width:1460px;padding-bottom:20px}.play-layout{grid-template-columns:220px minmax(0,1fr) 220px;gap:34px}.game-top{margin-bottom:21px}.game-title h1{font-size:26px}.small-badge{font-size:12px}.question-panel{padding:16px 25px 12px}.question-heading h2{font-size:20px}.question-counter{font-size:12px}.number-line{height:99px}.line-help{font-size:14px}.fraction-tile{height:clamp(100px,calc((100dvh - 418px)/5),123px);border-radius:15px}.fraction-tile>.fraction{font-size:45px}.bingo-board{gap:12px}.bingo-letters{font-size:20px;padding:13px 0 10px;gap:12px}.goal-card p,.tip-card>p,.stats-card>div{font-size:15px}.side-eyebrow{font-size:13px}.fraction-lesson b{font-size:14px}.fraction-lesson small{font-size:12px}.pattern-gallery>div>span{font-size:12px}.mini-grid{width:50px}.feedback{min-height:86px;padding:14px 17px}.feedback strong{font-size:17px}.feedback p{font-size:14px}.feedback .next-button{font-size:14px}.equal-card>strong{font-size:23px}.equal-card>p,.relaxed-note{font-size:14px}.line-progress{font-size:14px}.app-footer{font-size:13px}.home-view{max-width:1250px}.home-title h1{font-size:82px}.home-title p{font-size:20px}.level-card{padding:25px 29px 21px}.level-sample{height:145px}.level-sample .fraction{font-size:52px}.level-card>strong{font-size:29px}.level-detail,.level-description{font-size:16px}.level-cta{min-height:53px;font-size:17px}.level-record{font-size:14px}.home-how{font-size:15px}}
@media(max-height:720px) and (min-width:1000px){.app-header{height:66px}.home-view{padding-top:10px;min-height:calc(100dvh - 103px)}.home-title{margin-bottom:18px}.home-title h1{font-size:49px}.home-title p{font-size:15px;margin-top:9px}.level-card{padding:15px 22px 10px}.level-sample{height:87px;margin:8px 0}.level-sample .fraction{font-size:33px}.level-card>strong{font-size:23px}.level-description{font-size:13px}.level-cta{margin-top:13px;min-height:39px}.home-how{margin-top:19px}.game-top{margin-bottom:9px}.question-panel{padding-top:7px;padding-bottom:6px}.number-line{height:66px}.fraction-tile{height:clamp(53px,calc((100dvh - 324px)/5),80px)}.fraction-tile>.fraction{font-size:27px}.feedback{min-height:60px;padding:8px 10px}.stats-card>div{padding:8px 0}.tip-card{padding:14px}.equal-card{padding-top:12px;padding-bottom:12px}.relaxed-note{margin-top:10px}}
@media(max-width:1100px){.play-layout{grid-template-columns:160px minmax(0,1fr);gap:20px}.learning-side{display:none}.game-view{max-width:850px}.side-card{padding:15px 13px}.home-view{padding-left:25px;padding-right:25px}.level-card{padding-left:17px;padding-right:17px}.level-card>strong{font-size:22px}}
@media(max-width:760px){.app-header{height:74px;padding:12px 17px}.brand{font-size:22px}.brand-icon{width:37px;height:43px;font-size:18px}.brand small{font-size:8px;letter-spacing:1.5px}.header-tools{gap:6px}.utility-button{min-height:38px;padding:8px;border-radius:10px}.utility-button.square{width:38px}.header-tools>.utility-button>span:not([data-icon]){display:none}.home-view{padding:18px 19px 25px;min-height:0}.home-title{margin-bottom:23px}.home-title h1{font-size:47px;letter-spacing:-2px}.home-title p{font-size:14px;line-height:1.6;margin:11px auto 0;max-width:270px}.eyebrow{font-size:10px;letter-spacing:1.6px}.levels{grid-template-columns:1fr;gap:14px;max-width:420px;width:100%;margin:auto}.level-card{display:grid;grid-template-columns:88px 1fr;grid-template-rows:auto auto auto auto auto;align-items:center;column-gap:17px;row-gap:0;padding:16px 20px 12px;border-radius:17px;text-align:left;border-top:1px solid #ffffff20;border-left:3px solid var(--accent)}.level-top{grid-column:2;grid-row:1;margin-bottom:7px}.level-top>.icon{width:18px;height:18px}.level-label{font-size:10px}.level-sample{grid-column:1;grid-row:1/5;width:85px;height:90px;margin:0}.level-sample .fraction{font-size:33px}.sample-orbit{width:80px;height:68px}.level-card>strong{grid-column:2;grid-row:2;font-size:21px;white-space:nowrap}.level-detail{grid-column:2;grid-row:3;font-size:12px;margin-top:5px;margin-bottom:0}.level-description{display:none}.level-cta{grid-column:2;grid-row:4;margin-top:12px;font-size:12px;min-height:35px;border-radius:8px}.level-cta>.icon{width:13px}.level-record{grid-column:1/3;grid-row:5;text-align:center;font-size:10px;margin-top:10px;min-height:14px}.equivalent{gap:7px}.equivalent .fraction{font-size:25px}.equivalent .equals{font-size:18px}.home-how{font-size:11px;gap:13px;flex-direction:column;align-items:flex-start;max-width:300px;margin:22px auto 0}.home-how i{display:none}.home-how .icon{width:16px;height:16px}.app-footer{font-size:10px;gap:15px;flex-wrap:wrap;padding-top:10px}.game-view{padding:0 12px 7px}.game-top{display:grid;grid-template-columns:auto auto;gap:9px;margin-bottom:10px}.game-title{grid-column:1/3;grid-row:2;justify-content:center;margin:0 0 1px}.game-title h1{font-size:19px}.back-button{font-size:12px;padding:5px}.round-tools{justify-self:end;gap:5px}.round-tools .utility-button{font-size:11px;min-height:33px;border-radius:8px;padding:6px 9px}.round-tools .utility-button.square{width:33px}.play-layout{display:flex;flex-direction:column;gap:10px}.board-column{order:0;width:100%}.mission-side{order:1;display:flex;width:100%;gap:9px}.goal-card{flex:1;padding:12px}.goal-card .side-eyebrow{font-size:9px}.goal-number{font-size:24px;margin:3px 0}.goal-number>span{font-size:15px}.goal-card p{font-size:11px;margin:4px 0 10px}.pattern-gallery{gap:7px;justify-content:flex-start}.pattern-gallery>div{max-width:44px}.mini-grid{width:32px;gap:1.5px}.pattern-gallery>div>span{font-size:8px}.line-progress{font-size:10px;padding-top:9px;margin-top:10px}.progress-dots{margin-top:6px}.progress-dots>i{height:5px}.stats-card{margin-top:0;flex:1;min-width:135px;padding:5px 12px;align-self:stretch}.stats-card>div{font-size:12px;padding:12px 0}.stats-card b{font-size:18px}.stats-card .icon{width:15px;height:15px}.question-panel{padding:9px 10px 8px;border-radius:13px}.question-heading{gap:5px;flex-wrap:wrap}.question-counter{font-size:9px;letter-spacing:.5px}.question-heading h2{font-size:13px;letter-spacing:-.3px}.hint-button{width:27px;min-width:27px;height:27px;border-radius:7px}.hint-button .icon{width:17px;height:17px}.number-line{height:74px}.line-help{font-size:10px;line-height:1.4;min-height:14px}.bingo-letters{font-size:13px;padding:11px 0 6px;gap:6px}.bingo-board{gap:6px}.fraction-tile{height:clamp(54px,16.5vw,88px);border-radius:9px;box-shadow:0 3px 0 #39205f}.fraction-tile>.fraction{font-size:clamp(25px,6.3vw,33px)}.tile-check{right:3px;top:3px;width:16px;height:16px}.tile-check .icon{width:11px;height:11px}.feedback{padding:10px;min-height:75px;border-radius:10px;margin-top:11px;gap:7px;flex-wrap:wrap}.feedback strong{font-size:12px}.feedback p{font-size:10px;line-height:1.5}.feedback>span:first-child .icon{width:18px;height:18px}.feedback>div{flex:1;min-width:160px}.feedback .next-button{font-size:11px;min-height:36px;padding:8px 10px;flex-shrink:0}.side-card{border-radius:12px}.modal-header{padding:15px 16px}.modal-header h2{font-size:19px}#modalBody{padding:18px}.win-title{font-size:46px}.win-stars{font-size:29px}.win-subtitle{font-size:14px}.result-stats b{font-size:22px}.result-stats small{font-size:10px}.help-step p{font-size:14px}.primary-button,.secondary-button{font-size:13px;padding:10px 15px}.review-chip{min-width:65px;padding:9px}.review-chip .fraction{font-size:17px}}
@media(max-width:370px){.brand{font-size:19px}.brand small{font-size:7px}.brand-icon{width:32px;height:38px}.header-tools>.utility-button{width:33px;min-height:33px;padding:6px}.header-tools{gap:5px}.app-header{padding:10px 13px}.level-card{column-gap:11px;padding:14px;grid-template-columns:73px 1fr}.level-card>strong{font-size:18px}.level-sample{width:73px}.question-heading h2{font-size:12px}.question-counter{font-size:8px}.fraction-tile{height:54px}.number-line{height:68px}.game-title h1{font-size:17px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.confetti{display:none}}

/* Comfortable touch targets and readable secondary labels. */
.brand small,.level-label,.level-record,.small-badge,.side-eyebrow,.pattern-gallery>div>span,.question-counter,.fraction-lesson small,.goal-card .side-eyebrow,.app-footer,.line-progress,.result-stats small{font-size:12px}
.goal-card p,.stats-card>div,.fraction-lesson b,.tip-card>p,.equal-card>p,.relaxed-note,.line-help,.feedback p,.home-how{font-size:14px}
.hint-button{width:40px;height:40px;min-width:40px}.round-tools .utility-button,.round-tools .utility-button.square{min-height:42px}.round-tools .utility-button.square{width:42px}
.question-heading{flex-wrap:wrap}.question-heading h2{flex:1;text-align:center}.feedback>div{flex:1;min-width:0}.feedback .next-button{font-size:14px;min-height:44px}.fraction-tile{height:clamp(68px,calc((100dvh - 510px)/5),104px)}
@media(min-width:1600px){.app-header{height:82px}.game-top{margin-bottom:12px}.question-panel{padding:10px 20px}.number-line{height:80px}.fraction-tile{height:clamp(80px,calc((100dvh - 610px)/5),114px)}.fraction-tile>.fraction{font-size:36px}.bingo-board{gap:9px}.bingo-letters{padding:9px 0 7px}.game-view{padding-bottom:10px}.feedback{min-height:76px}.brand small{font-size:12px}}
@media(max-height:850px) and (min-width:761px){.app-header{height:64px}.game-top{margin-bottom:8px;min-height:40px}.number-line{height:59px}.question-panel{padding:6px 14px}.question-heading h2{font-size:16px}.question-counter{font-size:12px}.line-help{font-size:12px;line-height:18px}.bingo-letters{font-size:14px;padding:6px 0 5px}.bingo-board{gap:6px}.fraction-tile{height:clamp(58px,calc((100dvh - 460px)/5),77px)}.fraction-tile>.fraction{font-size:25px}.feedback{margin-top:10px;min-height:64px;padding:8px 10px}.feedback p{font-size:12px}.side-card{padding:15px 13px}.goal-card p{font-size:13px}.stats-card>div{padding:8px 0}.fraction-lesson small{font-size:12px}.tip-card>p,.equal-card>p{font-size:13px}.relaxed-note{font-size:12px}.game-view{padding-bottom:5px}}
@media(max-width:760px){.brand small{font-size:9px;letter-spacing:1px}.header-tools .utility-button,.header-tools .utility-button.square{min-height:40px;width:40px}.level-detail,.level-cta,.level-record,.home-how{font-size:13px}.level-cta{min-height:40px}.question-heading h2{font-size:14px;text-align:left;min-width:180px}.question-counter{width:auto;font-size:12px}.question-heading{gap:5px}.hint-button{width:40px;height:40px;min-width:40px}.question-counter{order:0}.question-heading h2{order:2;flex-basis:100%;text-align:center;margin:0 0 3px}.hint-button{order:1;margin-left:auto}.number-line{height:73px}.line-help{font-size:12px;line-height:1.5;min-height:18px}.fraction-tile{height:clamp(62px,17vw,90px)}.fraction-tile>.fraction{font-size:clamp(25px,6.2vw,33px)}.feedback strong{font-size:14px}.feedback p{font-size:12px}.feedback .next-button{font-size:14px;min-height:44px}.feedback.success .next-button{width:100%;margin-top:3px}.goal-card p,.stats-card>div{font-size:13px}.pattern-gallery>div{max-width:none}.pattern-gallery>div>span{font-size:12px}.pattern-gallery{gap:4px}.line-progress{font-size:12px}.app-footer{font-size:12px}.back-button,.round-tools .utility-button{font-size:12px}.modal-header .square{min-height:40px;width:40px}.result-stats small{font-size:12px}}
@media(max-width:370px){.brand small{font-size:8px}.brand{font-size:18px}.header-tools{gap:4px}.header-tools .utility-button,.header-tools .utility-button.square{width:36px;min-height:40px}.app-header{padding:10px}.brand{gap:7px}.level-card>strong{white-space:normal}.mission-side{flex-direction:column}.pattern-gallery{justify-content:flex-start}.pattern-gallery>div{max-width:70px}.stats-card{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;min-width:0}.stats-card>div{padding:9px 0}}
