@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800;900;1000&display=swap');

:root {
  color-scheme: light;
  --navy: #08285f;
  --deep: #071b4c;
  --blue: #0879ec;
  --sky: #48bbff;
  --yellow: #ffce37;
  --ink: #12285d;
  --muted: #677695;
  --paper: #fffdf5;
  --white: #ffffff;
  --line: #e8edf7;
  --shadow: 0 22px 65px rgba(8, 40, 95, .12);
  font-family: 'Nunito', 'Trebuchet MS', ui-rounded, system-ui, sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { margin: 0; color: var(--ink); background: #fff; font-size: 16px; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
img { max-width: 100%; display: block; }
.skip-link { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 12px 18px; border-radius: 12px; background: var(--yellow); color: var(--deep); font-weight: 900; }
.skip-link:focus { top: 12px; }

.site-header { position: sticky; top: 0; z-index: 30; background: rgba(255,255,255,.94); border-bottom: 1px solid rgba(15,54,111,.08); backdrop-filter: blur(16px); }
.nav-shell { max-width: 1190px; min-height: 78px; margin: auto; padding: 0 30px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 10px; flex-shrink: 0; }
.brand img { width: 44px; height: 44px; }
.brand-name { color: var(--navy); font-size: 15px; line-height: 1.05; font-weight: 800; letter-spacing: -.3px; }
.brand-name strong { display: block; color: #f1ae08; font-size: 17px; font-weight: 1000; }
.nav-links { display: flex; align-items: center; gap: 30px; color: #31476e; font-size: 14px; font-weight: 800; }
.nav-links > a:not(.button) { transition: color .2s ease; }
.nav-links > a:not(.button):hover { color: var(--blue); }
.menu-toggle { display: none; }
.button { min-height: 52px; padding: 0 23px; display: inline-flex; justify-content: center; align-items: center; gap: 14px; border: 0; border-radius: 15px; color: var(--deep); background: var(--yellow); font-size: 15px; line-height: 1; font-weight: 1000; box-shadow: 0 6px 0 #e3a91a, 0 12px 24px rgba(255,195,34,.23); transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.button:hover { transform: translateY(-2px); box-shadow: 0 8px 0 #e3a91a, 0 16px 26px rgba(255,195,34,.28); background: #ffd957; }
.button:active { transform: translateY(3px); box-shadow: 0 3px 0 #e3a91a; }
.button-small { min-height: 42px; padding: 0 17px; border-radius: 12px; font-size: 13px; box-shadow: 0 4px 0 #e3a91a; }
.button-small:hover { box-shadow: 0 6px 0 #e3a91a; }
.button-large { min-height: 60px; padding: 0 28px; border-radius: 17px; font-size: 17px; }
.button-arrow { width: 27px; height: 27px; border-radius: 50%; background: rgba(9,39,88,.12); display: grid; place-items: center; font-size: 18px; }

.hero { position: relative; overflow: hidden; padding: 72px 24px 104px; color: #fff; background: radial-gradient(circle at 77% 42%, rgba(38,151,255,.52), transparent 34%), radial-gradient(circle at 3% 90%, rgba(10,111,230,.6), transparent 36%), linear-gradient(128deg, #061d50 0%, #063b93 49%, #0572db 100%); }
.hero-wrap { max-width: 1130px; min-height: 450px; margin: 0 auto; display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: 20px; position: relative; z-index: 2; }
.hero-copy { max-width: 560px; padding: 12px 0 22px; }
.eyebrow { display: inline-flex; align-items: center; gap: 9px; color: #1479de; font-size: 12px; line-height: 1.3; font-weight: 1000; letter-spacing: 1.2px; text-transform: uppercase; }
.eyebrow-light { color: #b8e7ff; }
.eyebrow-dot { width: 8px; height: 8px; display: inline-block; background: #ffc929; border-radius: 50%; box-shadow: 0 0 0 4px rgba(255,201,41,.18); }
.hero h1 { max-width: 600px; margin: 20px 0 18px; font-size: clamp(42px, 5vw, 66px); line-height: .99; letter-spacing: -2.8px; font-weight: 1000; }
.hero h1 span { color: var(--yellow); display: block; text-shadow: 0 4px 0 rgba(95,56,5,.15); }
.hero-text { max-width: 485px; margin: 0; color: #e2f1ff; font-size: 18px; line-height: 1.62; font-weight: 600; }
.hero-actions { margin: 28px 0 22px; display: flex; align-items: center; flex-wrap: wrap; gap: 24px; }
.text-link { display: inline-flex; align-items: center; gap: 9px; color: #0877df; font-weight: 900; font-size: 14px; transition: gap .18s ease; }
.text-link:hover { gap: 14px; }
.text-link-light { color: #ecf6ff; }
.hero-points { display: flex; flex-wrap: wrap; gap: 9px 21px; color: #c8e7ff; font-size: 13px; font-weight: 700; }
.hero-points b { width: 17px; height: 17px; margin-right: 5px; display: inline-grid; place-items: center; border-radius: 50%; background: #ffce37; color: #062755; font-size: 12px; }
.hero-art { min-height: 440px; position: relative; display: flex; justify-content: center; align-items: center; }
.phone-frame { width: 245px; height: 438px; position: relative; z-index: 4; padding: 10px; border: 5px solid #142d56; border-radius: 36px; background: #101d35; transform: rotate(-5deg) translate(-16px, 10px); box-shadow: 0 25px 55px rgba(1,12,37,.4), inset 0 0 0 1px rgba(255,255,255,.42); }
.phone-camera { position: absolute; left: 50%; top: 7px; z-index: 6; width: 64px; height: 14px; transform: translateX(-50%); border-radius: 0 0 12px 12px; background: #101d35; }
.phone-screen { height: 100%; padding: 23px 12px 12px; border-radius: 25px; overflow: hidden; background: linear-gradient(180deg,#f4fbff 0%,#fff 55%,#f4f8ff 100%); color: #14336b; }
.app-topline { min-height: 53px; margin: 0 -12px; padding: 0 13px 9px; display: flex; align-items: center; gap: 7px; color: #fff; background: linear-gradient(110deg,#0876d9,#1199f4); font-size: 12px; line-height: 1.05; }
.app-mini-logo { width: 30px; height: 30px; padding: 2px; display: grid; place-items: center; border-radius: 9px; background: white; }
.app-trophy { margin-left: auto; font-size: 20px; }
.app-greeting { padding: 15px 2px 12px; display: grid; gap: 2px; }
.app-greeting small, .app-question small { color: #6f83a7; font-size: 8px; letter-spacing: .65px; font-weight: 1000; }
.app-greeting strong { color: #18376d; font-size: 16px; font-weight: 1000; }
.app-progress > div, .level-track > div { display: flex; justify-content: space-between; color: #51698c; font-size: 9px; font-weight: 800; }
.app-progress > div b { color: #0878dd; }
.progress-track, .level-progress { height: 7px; margin-top: 5px; display: block; overflow: hidden; border-radius: 30px; background: #dbe7f4; }
.progress-track i, .level-progress i { width: 65%; height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg,#18b888,#47d999); }
.app-question { margin-top: 15px; padding: 13px 10px 11px; border: 1px solid #e8edf5; border-radius: 16px; background: #fff; box-shadow: 0 5px 16px rgba(8,40,95,.06); }
.app-question > strong { margin-top: 4px; display: block; color: #15346b; font-size: 15px; font-weight: 1000; }
.apple-row { margin: 10px 0 8px; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1px; font-size: 16px; }
.apple-row i { margin: 0 3px; color: #f6ae16; font-size: 16px; font-style: normal; font-weight: 1000; }
.answer-chip { height: 30px; padding: 0 10px; display: flex; align-items: center; justify-content: space-between; border: 1px solid #cfe6da; border-radius: 9px; background: #f3fff8; color: #178e60; font-size: 12px; font-weight: 1000; }
.answer-chip span { width: 18px; height: 18px; display: grid; place-items: center; border-radius: 50%; background: #19b678; color: white; }
.app-bottom { margin: 16px -2px 0; display: flex; justify-content: space-between; gap: 4px; color: #4b6187; font-size: 9px; font-weight: 900; }
.hero-owl { position: absolute; z-index: 5; width: min(300px, 58%); height: auto; left: 51%; bottom: 4px; filter: drop-shadow(0 18px 18px rgba(0,20,64,.24)); animation: owl-float 4.8s ease-in-out infinite; }
@keyframes owl-float { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-11px) rotate(-1deg); } }
.orbit { position: absolute; border: 1px dashed rgba(190,230,255,.3); border-radius: 50%; transform: rotate(-20deg); }
.orbit-a { width: 415px; height: 300px; }
.orbit-b { width: 330px; height: 400px; transform: rotate(45deg); }
.floating-note { position: absolute; z-index: 7; min-height: 61px; padding: 10px 14px; display: flex; align-items: center; gap: 9px; border: 1px solid rgba(255,255,255,.45); border-radius: 17px; background: rgba(255,255,255,.95); box-shadow: 0 10px 28px rgba(4,29,79,.2); color: var(--ink); transform: rotate(3deg); }
.floating-note strong { display: block; color: #18366b; font-size: 12px; font-weight: 1000; }
.floating-note small { display: block; margin-top: 2px; color: #70809e; font-size: 9px; font-weight: 700; }
.note-top { top: 44px; right: -5px; }
.note-bottom { bottom: 22px; right: -18px; transform: rotate(-4deg); }
.note-icon { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 11px; background: #fff4c4; color: #eba80b; font-size: 20px; }
.streak-icon { font-size: 23px; }
.math-bubble { position: absolute; z-index: 3; width: 52px; height: 52px; display: grid; place-items: center; border: 3px solid #fff; border-radius: 17px; background: var(--yellow); box-shadow: 0 8px 18px rgba(4,29,79,.18); color: var(--deep); font-size: 16px; font-weight: 1000; transform: rotate(12deg); }
.bubble-top { top: 143px; left: 21px; }
.bubble-bottom { right: 17px; bottom: 113px; background: #ef72c1; color: white; transform: rotate(-12deg); }
.hero-spark { position: absolute; color: #ffdc4d; font-size: 30px; opacity: .8; }
.spark-one { left: 6%; top: 17%; }
.spark-two { right: 5%; top: 22%; font-size: 23px; }
.spark-three { left: 51%; bottom: 13%; font-size: 35px; }
.hero-wave { position: absolute; left: -4%; right: -4%; bottom: -35px; height: 70px; border-radius: 50% 48% 0 0 / 55% 60% 0 0; background: #fff; transform: rotate(-1deg); }

.trust-strip { max-width: 1050px; min-height: 104px; margin: -8px auto 0; padding: 18px 25px; position: relative; z-index: 3; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; border: 1px solid #edf1f7; border-radius: 23px; background: #fff; box-shadow: 0 13px 35px rgba(10,46,102,.08); }
.trust-item { display: flex; justify-content: center; align-items: center; gap: 12px; }
.trust-icon { width: 40px; height: 40px; flex-shrink: 0; display: grid; place-items: center; border-radius: 13px; font-size: 22px; font-weight: 1000; }
.icon-blue { color: #1179dc; background: #e7f4ff; }.icon-yellow { color: #d58c00; background: #fff4c6; }.icon-purple { color: #7954da; background: #f1eaff; }
.trust-item strong, .trust-item small { display: block; }
.trust-item strong { color: #153369; font-size: 13px; font-weight: 1000; }
.trust-item small { margin-top: 3px; color: #7784a0; font-size: 11px; font-weight: 700; }

.section { max-width: 1100px; margin: 0 auto; padding-left: 28px; padding-right: 28px; }
.method-section { padding-top: 118px; padding-bottom: 108px; }
.section-heading { max-width: 700px; margin: 0 auto 47px; text-align: center; }
.section-heading h2, .curriculum-intro h2, .rewards-copy h2, .progress-copy h2 { margin: 15px 0 12px; color: var(--navy); font-size: clamp(34px, 4.2vw, 48px); line-height: 1.07; letter-spacing: -1.8px; font-weight: 1000; }
.section-heading h2 span, .progress-copy h2 span { color: #0879e6; }
.section-heading > p { max-width: 560px; margin: 0 auto; color: var(--muted); font-size: 16px; line-height: 1.65; font-weight: 600; }
.method-layout { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 50px; }
.method-list { display: grid; gap: 12px; }
.method-step { min-height: 105px; display: grid; grid-template-columns: 31px 52px 1fr; align-items: center; gap: 13px; }
.step-number { align-self: start; padding-top: 18px; color: #9caac2; font-size: 11px; font-weight: 1000; }
.method-symbol { width: 49px; height: 49px; display: grid; place-items: center; border-radius: 16px; font-size: 23px; font-weight: 1000; }
.symbol-yellow { color: #cf8b00; background: #fff2be; }.symbol-blue { color: #0879e6; background: #e5f3ff; }.symbol-pink { color: #dc50a2; background: #ffebf6; }
.method-step h3 { margin: 0 0 3px; color: #173567; font-size: 16px; font-weight: 1000; }
.method-step p { max-width: 310px; margin: 0; color: #71809b; font-size: 13px; line-height: 1.45; font-weight: 600; }
.lesson-card { position: relative; padding: 24px 27px 18px; overflow: hidden; border: 1px solid #e5edf7; border-radius: 25px; background: #fff; box-shadow: var(--shadow); }
.lesson-card::before { content: ''; position: absolute; top: -80px; right: -60px; width: 220px; height: 220px; border-radius: 50%; background: #e9f6ff; }
.lesson-top { position: relative; display: flex; justify-content: space-between; align-items: center; color: #7d8ca8; font-size: 10px; font-weight: 1000; letter-spacing: 1px; }
.lesson-label { display: flex; align-items: center; gap: 7px; }
.lesson-dot, .online-dot { width: 8px; height: 8px; display: inline-block; border-radius: 50%; background: #19be86; box-shadow: 0 0 0 4px #e7f9f2; }
.lesson-card > h3 { position: relative; margin: 21px 0 4px; color: #173567; font-size: 21px; letter-spacing: -.4px; font-weight: 1000; }
.lesson-instruction { position: relative; margin: 0; color: #7584a0; font-size: 13px; font-weight: 600; }
.demo-visual { min-height: 106px; margin: 15px 0 8px; padding: 15px 17px; display: flex; align-items: center; justify-content: center; gap: 15px; border: 1px dashed #cbdcec; border-radius: 16px; background: #f7fbff; }
.fruit-group { max-width: 170px; display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 1px; font-size: 24px; line-height: 1.1; }
.demo-operator { color: #0879e6; font-size: 24px; font-weight: 1000; }
.demo-answer { display: flex; align-items: center; justify-content: center; gap: 16px; }
.equation { color: #203b70; font-size: 20px; font-weight: 1000; letter-spacing: .3px; }
.answer-pill { min-width: 56px; padding: 7px 10px; display: flex; align-items: center; justify-content: space-between; gap: 9px; border: 1px solid #cfe9d8; border-radius: 10px; background: #f2fff5; color: #118555; font-size: 15px; font-weight: 1000; }
.answer-pill i { width: 17px; height: 17px; display: grid; place-items: center; border-radius: 50%; background: #14ad72; color: #fff; font-size: 11px; font-style: normal; }
.lesson-feedback { margin-top: 12px; padding: 10px 12px; display: flex; gap: 8px; border-radius: 12px; background: #fff8dc; color: #786026; font-size: 11px; font-weight: 800; }
.demo-tabs { margin-top: 15px; padding: 4px; display: flex; gap: 4px; border-radius: 12px; background: #f0f4f9; }
.demo-tab { min-height: 35px; flex: 1; border: 0; border-radius: 9px; background: transparent; color: #61728f; font-size: 11px; font-weight: 900; cursor: pointer; transition: background .2s ease, color .2s ease, box-shadow .2s ease; }
.demo-tab:hover { color: #1269c8; }.demo-tab.is-active { color: #0874d9; background: white; box-shadow: 0 2px 7px rgba(11,43,89,.1); }
.demo-tab:focus-visible, a:focus-visible, button:focus-visible { outline: 3px solid #ffbf21; outline-offset: 3px; }
.method-footnote { max-width: max-content; margin: 30px auto 0; padding: 12px 18px; border-radius: 20px; background: #f6f9fd; color: #556d96; font-size: 12px; text-align: center; font-weight: 800; }
.method-footnote span { margin-right: 6px; color: #efa914; }

.curriculum-section { position: relative; overflow: hidden; padding: 96px 20px 102px; color: #fff; background: radial-gradient(circle at 4% 12%, rgba(39,135,255,.28), transparent 28%), linear-gradient(120deg,#09285f,#0b3b82 57%,#102c6b); }
.curriculum-section::before { content: ''; position: absolute; inset: 0; opacity: .12; background-image: radial-gradient(#fff 1px, transparent 1px); background-size: 25px 25px; mask-image: linear-gradient(90deg,#000,transparent 65%); }
.curriculum-wrap { position: relative; display: grid; grid-template-columns: .75fr 1.25fr; align-items: center; gap: 57px; }
.curriculum-intro { padding-bottom: 14px; }
.curriculum-intro h2, .rewards-copy h2 { color: white; font-size: clamp(35px,4vw,48px); }
.curriculum-intro h2 span, .rewards-copy h2 span { color: var(--yellow); }
.curriculum-intro > p, .rewards-copy > p { max-width: 340px; margin: 0 0 26px; color: #c5d9f5; font-size: 15px; line-height: 1.7; font-weight: 600; }
.topic-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.topic-card { min-height: 140px; padding: 15px 16px 13px; position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.62); border-radius: 18px; background: #fff; color: #1b356c; box-shadow: 0 10px 20px rgba(0,15,47,.14); transition: transform .2s ease, box-shadow .2s ease; }
.topic-card:hover { transform: translateY(-4px) rotate(-.5deg); box-shadow: 0 16px 26px rgba(0,15,47,.22); }
.topic-card h3 { margin: 5px 0 1px; font-size: 15px; font-weight: 1000; }.topic-card p { margin: 0; color: #6c7b98; font-size: 10px; font-weight: 700; }
.topic-icon { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 10px; background: rgba(255,255,255,.75); font-size: 18px; font-weight: 1000; }
.topic-example { margin-top: 7px; display: inline-block; color: #52698e; font-size: 11px; font-weight: 1000; }
.topic-sun { background: #fff6c8; }.topic-sun .topic-icon { color: #cb8d00; }
.topic-coral { background: #ffe3e5; }.topic-coral .topic-icon { color: #e94d61; }
.topic-violet { background: #f0e6ff; }.topic-violet .topic-icon { color: #7445d1; }
.topic-sky { background: #e4f5ff; }.topic-sky .topic-icon { color: #1683cf; }
.topic-orange { background: #fff0d9; }.topic-orange .topic-icon { color: #e18a17; }
.topic-teal { background: #dbf8f1; }.topic-teal .topic-icon { color: #0c9a7f; }
.topic-pink { background: #ffe7f4; }.topic-pink .topic-icon { color: #cf3e93; }
.topic-indigo { background: #e6e8ff; }.topic-indigo .topic-icon { color: #6243c0; }
.topic-blue { background: #e0f3ff; }.topic-blue .topic-icon { color: #087bdb; }
.topic-gold { background: #ffedbb; }.topic-gold .topic-icon { color: #ce8c00; }
.shape-row { margin-top: 8px; display: flex; gap: 7px; }
.shape-row i { width: 15px; height: 15px; border: 2px solid #177ddd; background: #9de0ff; }
.shape-row i:nth-child(2) { border-radius: 50%; border-color: #2da873; background: #a9edc9; }
.shape-row i:nth-child(3) { border-color: #eba825; background: #ffe28b; transform: rotate(45deg); }

.practice-section { padding-top: 105px; padding-bottom: 100px; }
.heading-row { max-width: none; display: flex; justify-content: space-between; align-items: end; gap: 50px; text-align: left; }
.heading-row h2 { margin-bottom: 0; }
.heading-row > p { max-width: 360px; margin: 0 0 7px; }
.challenge-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 15px; }
.challenge-card { min-height: 268px; padding: 18px 17px; border: 1px solid #e8edf5; border-radius: 21px; box-shadow: 0 9px 25px rgba(13,46,97,.06); transition: transform .2s ease, box-shadow .2s ease; }
.challenge-card:hover { transform: translateY(-4px); box-shadow: 0 15px 32px rgba(13,46,97,.12); }
.challenge-blue { background: #eef7ff; }.challenge-yellow { background: #fff9e4; }.challenge-mint { background: #edfcf5; }.challenge-lilac { background: #f6f0ff; }
.challenge-head { display: flex; align-items: center; justify-content: space-between; }
.challenge-tag { color: #637698; font-size: 9px; font-weight: 1000; letter-spacing: .8px; }
.challenge-mark { color: #4595e2; font-size: 15px; font-weight: 1000; }
.challenge-card h3 { min-height: 43px; margin: 16px 0 12px; color: #193768; font-size: 16px; line-height: 1.25; font-weight: 1000; letter-spacing: -.2px; }
.dot-math { min-height: 68px; display: flex; align-items: center; justify-content: center; gap: 9px; color: #167edc; font-size: 17px; line-height: 1.15; letter-spacing: 2px; }
.dot-math b { color: #eeb022; font-size: 18px; }
.challenge-answer { margin-top: 9px; padding: 7px 9px; border: 1px solid #d4e1ee; border-radius: 9px; background: #fff; color: #576c91; font-size: 10px; font-weight: 800; }
.challenge-answer i { margin-top: 5px; padding-top: 5px; display: block; border-top: 1px solid #e9eff6; color: #9aa8bd; font-style: normal; }
.missing-equation { padding: 3px 0 10px; color: #203b72; text-align: center; font-size: 25px; font-weight: 1000; }
.missing-equation span { padding: 0 8px; border-bottom: 2px dashed #e6a911; color: #e49a00; }
.answer-options { padding: 9px 11px; display: grid; grid-template-columns: 1fr 1fr; gap: 5px; border: 1px solid #e7eaf1; border-radius: 12px; background: white; color: #5b6e8e; font-size: 10px; font-weight: 800; }
.option-correct { color: #1a9869; }
.word-problem { min-height: 60px; margin: -3px 0 12px; color: #56728d; font-size: 11px; line-height: 1.5; font-weight: 700; }
.box-pencils { display: flex; gap: 2px; font-size: 19px; }
.true-false-equation { margin: 20px 0 16px; color: #233a73; text-align: center; font-size: 24px; font-weight: 1000; }
.true-false-buttons { display: grid; gap: 7px; }
.true-false-buttons span { padding: 8px; border-radius: 9px; color: white; background: #28b573; text-align: center; font-size: 11px; font-weight: 1000; }
.true-false-buttons span + span { background: #ed5382; }
.inverse-note { margin-top: 24px; padding: 17px 20px; display: flex; align-items: center; gap: 14px; border: 1px solid #e8edf5; border-radius: 17px; background: #fafcff; }
.inverse-icon { width: 39px; height: 39px; flex-shrink: 0; display: grid; place-items: center; border-radius: 12px; background: #eaf4ff; color: #1676d0; font-size: 22px; font-weight: 1000; }
.inverse-note p { margin: 0; flex: 1; color: #647592; font-size: 12px; line-height: 1.5; font-weight: 700; }.inverse-note p strong { color: #1c396e; }
.inverse-note .text-link { white-space: nowrap; font-size: 12px; }

.rewards-section { padding: 91px 20px; overflow: hidden; color: white; background: radial-gradient(circle at 91% 8%, rgba(42,133,247,.37), transparent 30%), linear-gradient(115deg,#071e4d,#0b3d89 62%,#092967); }
.rewards-wrap { display: grid; grid-template-columns: .85fr 1.15fr; align-items: center; gap: 65px; }
.rewards-copy > p { margin-bottom: 28px; }
.rewards-board { position: relative; padding: 25px 26px 22px; overflow: hidden; border: 1px solid rgba(255,255,255,.65); border-radius: 25px; background: #fff; color: #153465; box-shadow: 0 23px 48px rgba(0,11,41,.22); }
.rewards-board-top { display: flex; justify-content: space-between; color: #8291aa; font-size: 9px; font-weight: 1000; letter-spacing: .9px; }
.rewards-board-top > span:first-child { display: flex; align-items: center; gap: 8px; }
.online-dot { width: 7px; height: 7px; box-shadow: none; }
.rewards-title { margin: 22px 0 18px; display: flex; align-items: center; gap: 12px; }
.reward-trophy { width: 45px; height: 45px; display: grid; place-items: center; border-radius: 15px; background: #fff5d3; font-size: 24px; }
.rewards-title small, .rewards-title strong { display: block; }.rewards-title small { color: #9aa7bb; font-size: 9px; font-weight: 1000; letter-spacing: .7px; }.rewards-title strong { margin-top: 3px; color: #153465; font-size: 15px; font-weight: 1000; }
.achievement-list { display: grid; border-top: 1px solid #edf1f6; }
.achievement { min-height: 58px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid #edf1f6; }
.achievement-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 11px; background: #f1f5fa; font-size: 17px; }
.achievement-star { color: #ecac13; background: #fff7db; }.achievement-fire { background: #fff0e8; }.achievement-medal { background: #f1edff; }
.achievement > span:nth-child(2) { flex: 1; }.achievement strong, .achievement small { display: block; }.achievement strong { color: #1a376d; font-size: 11px; font-weight: 1000; }.achievement small { margin-top: 2px; color: #8491a7; font-size: 9px; font-weight: 700; }.achievement > b { color: #1974c8; font-size: 10px; font-weight: 1000; }
.level-track { margin-top: 15px; }.level-track > div { font-size: 10px; }.level-track > div strong { color: #168bce; }.level-progress { height: 8px; margin-top: 7px; }.level-progress i { background: linear-gradient(90deg,#12a9eb,#2acc9a); }
.board-doodle { position: absolute; color: #ffcc39; }.doodle-one { right: 27px; top: 86px; font-size: 25px; }.doodle-two { left: 12px; bottom: 15px; color: #69c7fa; font-size: 19px; }

.progress-section { padding-top: 102px; padding-bottom: 106px; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 72px; }
.progress-visual { min-height: 320px; position: relative; display: grid; place-items: center; border-radius: 32px; background: linear-gradient(140deg,#eaf6ff,#f4f0ff 58%,#fff6d8); overflow: hidden; }
.progress-visual::before, .progress-visual::after { content: ''; position: absolute; border: 1px solid rgba(33,119,216,.13); border-radius: 50%; }
.progress-visual::before { width: 310px; height: 310px; }.progress-visual::after { width: 245px; height: 245px; }
.progress-ring { width: 197px; height: 197px; position: relative; z-index: 2; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(#0d8deb 0 65%, #dcecf9 65% 100%); box-shadow: 0 19px 33px rgba(21,103,188,.2); }
.progress-ring::before { content: ''; position: absolute; inset: 11px; border-radius: 50%; background: #fff; }
.progress-ring > div { position: relative; z-index: 1; text-align: center; }.progress-ring strong { display: block; color: #0e4a9a; font-size: 48px; line-height: 1; font-weight: 1000; letter-spacing: -2px; }.progress-ring strong span { color: #1e94e9; font-size: 27px; }.progress-ring small { display: block; margin-top: 4px; color: #7384a1; font-size: 11px; font-weight: 800; }
.progress-sticker { position: absolute; z-index: 3; width: 49px; height: 49px; display: grid; place-items: center; border: 3px solid white; border-radius: 15px; background: var(--yellow); color: #173769; box-shadow: 0 8px 18px rgba(25,66,118,.12); font-size: 23px; font-weight: 1000; }.sticker-left { left: 16%; top: 19%; transform: rotate(-14deg); }.sticker-right { right: 14%; bottom: 19%; background: #f27db7; color: white; transform: rotate(13deg); }
.progress-copy h2 { font-size: clamp(33px,3.7vw,43px); }
.progress-copy > p { max-width: 445px; margin: 0 0 22px; color: #70809a; font-size: 15px; line-height: 1.65; font-weight: 600; }
.check-list { margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; list-style: none; color: #36527c; font-size: 12px; font-weight: 800; }
.check-list li { display: flex; align-items: center; gap: 7px; }.check-list li span { width: 18px; height: 18px; display: grid; place-items: center; border-radius: 50%; color: #13865f; background: #e4f9ee; font-size: 11px; font-weight: 1000; }

.final-cta { position: relative; overflow: hidden; padding: 83px 20px 87px; text-align: center; color: white; background: radial-gradient(circle at 50% 120%, rgba(0,143,255,.48), transparent 53%), linear-gradient(130deg,#072250,#093d91 54%,#075cb8); }
.final-cta::before { content: ''; position: absolute; inset: 0; opacity: .09; background-image: radial-gradient(#fff 1px, transparent 1px); background-size: 21px 21px; }
.final-cta-inner { max-width: 740px; margin: auto; position: relative; z-index: 2; }
.final-owl { width: 90px; height: 90px; margin: 0 auto 12px; display: grid; place-items: center; border-radius: 28px; background: rgba(255,255,255,.1); }
.final-owl img { width: 100px; height: 100px; object-fit: contain; }
.final-cta h2 { margin: 17px 0 12px; font-size: clamp(36px,5vw,54px); line-height: 1.04; letter-spacing: -1.8px; font-weight: 1000; }.final-cta h2 span { color: var(--yellow); }
.final-cta-inner > p { margin: 0 auto 25px; color: #c9e4ff; font-size: 15px; line-height: 1.6; font-weight: 600; }
.download-note { max-width: 480px; margin: 22px auto 0; display: block; color: #bbd8fa; font-size: 11px; font-weight: 600; }.download-note a { color: #fff0a4; text-decoration: underline; text-underline-offset: 3px; }
.final-stars { position: absolute; inset: 0; pointer-events: none; }.final-stars span { position: absolute; color: #ffcf38; }.final-stars span:nth-child(1) { left: 14%; top: 30%; font-size: 26px; }.final-stars span:nth-child(2) { right: 14%; top: 23%; color: #81caff; font-size: 31px; }.final-stars span:nth-child(3) { right: 21%; bottom: 17%; font-size: 18px; }
.site-footer { padding: 30px 24px 18px; background: #06183e; color: #a9bbd9; }
.footer-inner, .footer-bottom { max-width: 1100px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.footer-brand .brand-name { color: white; }.footer-brand .brand-name strong { color: var(--yellow); }
.footer-inner p { margin: 0; color: #a7bbdc; font-size: 12px; font-weight: 600; }.footer-top { color: #e5efff; font-size: 12px; font-weight: 900; }
.footer-bottom { margin-top: 23px; padding-top: 13px; border-top: 1px solid rgba(255,255,255,.12); color: #7e94b9; font-size: 10px; font-weight: 600; }

@media (max-width: 920px) {
  .nav-shell { padding: 0 22px; }.nav-links { gap: 18px; font-size: 13px; }
  .hero-wrap { grid-template-columns: 1.04fr .96fr; }.hero { padding-top: 58px; }.hero h1 { font-size: clamp(40px,6vw,58px); }.hero-art { transform: scale(.92); transform-origin: center right; }
  .method-layout { gap: 30px; }.curriculum-wrap { grid-template-columns: .72fr 1.28fr; gap: 30px; }.challenge-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.challenge-card { min-height: 245px; }.rewards-wrap { gap: 35px; }.progress-section { gap: 42px; }
}
@media (max-width: 700px) {
  html { scroll-padding-top: 72px; }.nav-shell { min-height: 68px; padding: 0 17px; }.brand img { width: 39px; height: 39px; }.brand-name { font-size: 13px; }.brand-name strong { font-size: 15px; }
  .menu-toggle { width: 42px; height: 42px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; border: 1px solid #e3eaf5; border-radius: 13px; background: #fff; cursor: pointer; }.menu-toggle span { width: 18px; height: 2px; border-radius: 2px; background: var(--navy); transition: transform .2s ease, opacity .2s ease; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(7px) rotate(45deg); }.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-7px) rotate(-45deg); }
  .nav-links { position: absolute; top: 67px; left: 0; right: 0; padding: 14px 19px 19px; display: none; flex-direction: column; align-items: stretch; gap: 0; border-bottom: 1px solid #e8edf5; background: rgba(255,255,255,.98); box-shadow: 0 16px 22px rgba(7,34,82,.1); }.nav-links.is-open { display: flex; }.nav-links > a:not(.button) { padding: 13px 3px; border-bottom: 1px solid #f0f2f7; }.nav-links .button { margin-top: 12px; }
  .hero { padding: 53px 20px 91px; }.hero-wrap { display: flex; flex-direction: column; gap: 10px; align-items: stretch; }.hero-copy { max-width: 540px; padding: 0; }.hero h1 { max-width: 500px; margin-top: 17px; font-size: clamp(43px,11vw,61px); letter-spacing: -2px; }.hero-text { max-width: 440px; font-size: 16px; }.hero-actions { margin: 22px 0 16px; gap: 17px; }.button-large { min-height: 55px; font-size: 15px; }.hero-points { font-size: 11px; gap: 8px 15px; }
  .hero-art { min-height: 369px; margin-top: 1px; transform: none; transform-origin: center; }.phone-frame { width: 213px; height: 374px; padding: 8px; border-radius: 31px; transform: rotate(-5deg) translate(-24px, 12px); }.phone-screen { border-radius: 23px; padding: 20px 10px 9px; }.app-topline { margin: 0 -10px; padding: 0 11px 7px; min-height: 48px; font-size: 11px; }.app-greeting { padding: 12px 1px 10px; }.app-question { margin-top: 12px; padding: 10px 8px 9px; }.apple-row { font-size: 14px; }.hero-owl { width: min(250px,61%); left: 49%; bottom: 0; }.note-top { top: 14px; right: -1px; }.note-bottom { right: -3px; bottom: 13px; }.floating-note { min-height: 53px; padding: 8px 10px; }.floating-note strong { font-size: 11px; }.floating-note small { font-size: 8px; }.math-bubble { width: 43px; height: 43px; border-radius: 14px; font-size: 14px; }.bubble-top { top: 125px; left: 0; }.bubble-bottom { right: 3px; bottom: 95px; }.orbit-a { width: 350px; height: 255px; }.orbit-b { width: 290px; height: 350px; }.spark-three { left: 18%; bottom: 12%; }
  .trust-strip { max-width: calc(100% - 28px); margin-top: -8px; padding: 15px 12px; grid-template-columns: 1fr; gap: 10px; border-radius: 20px; }.trust-item { justify-content: flex-start; padding: 2px 13px; }.trust-icon { width: 36px; height: 36px; border-radius: 12px; font-size: 19px; }.trust-item strong { font-size: 12px; }.trust-item small { font-size: 10px; }
  .section { padding-left: 20px; padding-right: 20px; }.method-section { padding-top: 80px; padding-bottom: 77px; }.section-heading { margin-bottom: 31px; }.section-heading h2, .curriculum-intro h2, .rewards-copy h2, .progress-copy h2 { font-size: 36px; letter-spacing: -1.3px; }.section-heading > p { font-size: 14px; }
  .method-layout { grid-template-columns: 1fr; gap: 25px; }.method-step { min-height: 89px; grid-template-columns: 26px 45px 1fr; gap: 10px; }.method-symbol { width: 43px; height: 43px; border-radius: 14px; font-size: 20px; }.method-step h3 { font-size: 15px; }.method-step p { font-size: 12px; }.step-number { font-size: 10px; }.lesson-card { padding: 20px 16px 15px; border-radius: 22px; }.lesson-card > h3 { font-size: 18px; }.demo-visual { min-height: 93px; gap: 8px; padding: 11px; }.fruit-group { font-size: 20px; }.equation { font-size: 18px; }.method-footnote { font-size: 11px; line-height: 1.45; }
  .curriculum-section { padding: 72px 0 77px; }.curriculum-wrap { grid-template-columns: 1fr; gap: 28px; }.curriculum-intro h2 { font-size: 39px; }.curriculum-intro > p { max-width: 430px; font-size: 14px; }.topic-grid { gap: 9px; }.topic-card { min-height: 132px; padding: 13px 12px; border-radius: 16px; }.topic-card h3 { font-size: 13px; }.topic-card p { font-size: 9px; }.topic-icon { width: 29px; height: 29px; font-size: 16px; }.topic-example { font-size: 10px; }
  .practice-section { padding-top: 75px; padding-bottom: 76px; }.heading-row { flex-direction: column; align-items: flex-start; gap: 12px; text-align: left; }.heading-row h2 { margin-bottom: 0; }.heading-row > p { max-width: 450px; font-size: 14px; }.challenge-grid { gap: 10px; }.challenge-card { min-height: 235px; padding: 14px 12px; border-radius: 17px; }.challenge-card h3 { min-height: 41px; margin: 12px 0 8px; font-size: 14px; }.challenge-tag { font-size: 8px; }.dot-math { font-size: 15px; gap: 4px; }.missing-equation, .true-false-equation { font-size: 21px; }.box-pencils { flex-wrap: wrap; font-size: 16px; }.inverse-note { align-items: flex-start; flex-wrap: wrap; padding: 15px; }.inverse-note p { min-width: calc(100% - 60px); }.inverse-note .text-link { margin-left: 52px; }
  .rewards-section { padding: 72px 0; }.rewards-wrap { grid-template-columns: 1fr; gap: 31px; }.rewards-copy > p { font-size: 14px; }.rewards-board { padding: 21px 17px 18px; border-radius: 22px; }.rewards-title strong { font-size: 13px; }.achievement small { font-size: 8px; }.achievement > b { font-size: 9px; }
  .progress-section { padding-top: 73px; padding-bottom: 76px; grid-template-columns: 1fr; gap: 31px; }.progress-visual { min-height: 280px; border-radius: 26px; }.progress-ring { width: 173px; height: 173px; }.progress-ring strong { font-size: 42px; }.progress-visual::before { width: 275px; height: 275px; }.progress-visual::after { width: 220px; height: 220px; }.progress-copy > p { font-size: 14px; }.check-list { font-size: 11px; gap: 10px 8px; }
  .final-cta { padding: 66px 20px 68px; }.final-cta h2 { font-size: clamp(36px,9vw,48px); letter-spacing: -1.3px; }.final-cta-inner > p { font-size: 14px; }.final-stars span:nth-child(1) { left: 6%; top: 28%; }.final-stars span:nth-child(2) { right: 7%; top: 21%; }.final-stars span:nth-child(3) { right: 10%; bottom: 12%; }
  .site-footer { padding: 25px 19px 15px; }.footer-inner { flex-wrap: wrap; gap: 13px; }.footer-inner p { order: 3; width: 100%; }.footer-top { margin-left: auto; }.footer-bottom { align-items: flex-start; font-size: 9px; }
}
@media (max-width: 380px) {
  .hero { padding-left: 16px; padding-right: 16px; }.hero h1 { font-size: 40px; }.hero-art { min-height: 330px; }.phone-frame { transform: scale(.9) rotate(-5deg) translate(-27px, 7px); }.hero-owl { width: 57%; }.floating-note { padding: 7px 8px; }.note-bottom { right: -2px; }.topic-grid { gap: 7px; }.topic-card { padding: 11px 9px; }.topic-card p { font-size: 8px; }.challenge-card { padding: 12px 10px; }.challenge-card h3 { font-size: 13px; }.answer-options { font-size: 9px; }.check-list { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
