:root{font-family:Trebuchet MS,Arial,sans-serif;color:#243e36;background:#faf9f5;font-synthesis:none;line-height:1.5;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid #cbd5cc;background:#fff;color:inherit;border-radius:12px;padding:12px 20px;min-height:44px;font-weight:700}button:hover:not(:disabled){filter:brightness(.96);transform:translateY(-1px)}button:disabled{cursor:default;opacity:.75}a{color:inherit}button,input,a{outline-offset:5px}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #bd6a27}h1:focus{outline:none}input{min-width:0;border:1px solid #aebfb4;border-radius:10px;padding:12px;background:#fff;min-height:48px;color:inherit}h1,h2,p{margin-top:0}h1{font-size:clamp(2rem,4vw,3.3rem);line-height:1.15;letter-spacing:-1.5px;font-weight:700;margin-bottom:22px}h2{font-size:1.5rem;line-height:1.35}em{font-style:normal;color:#357354}.app-shell{max-width:1280px;margin:auto;padding:0 48px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;height:112px;border-bottom:1px solid #e1e5dd}.brand{text-decoration:none;font-size:27px;font-weight:800;display:flex;align-items:center;gap:12px;letter-spacing:-1px}.brand-mark{position:relative;display:grid;place-items:center;background:#28624c;color:#fff;width:41px;height:45px;border-radius:12px;font-size:29px;transform:rotate(-5deg)}.brand-mark span{font-size:17px;color:#f3d186;position:absolute;right:-6px;top:-8px}.top-note,.local-badge{font-size:13px;color:#6a7b70}.local-badge{background:#edf1e9;padding:8px 14px;border-radius:25px}.landing{display:grid;grid-template-columns:1.1fr 1fr;gap:55px;padding:85px 0 65px;align-items:center}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:800;color:#718474;text-transform:uppercase;margin-bottom:17px}.intro{color:#6a796f;font-size:17px;max-width:530px;line-height:1.8}.landing h1{font-size:clamp(2.5rem,4.5vw,4rem)}.code-form{margin-top:34px}.code-form label{display:block;font-weight:700;font-size:14px;margin-bottom:9px}.code-row{display:flex;gap:8px}.code-row input{width:100%;max-width:280px}.primary{background:#2b674f;color:#fff;border-color:#2b674f}.hint{font-size:12px;color:#748276;margin:10px 0}.text-button{background:transparent;border:0;padding:10px 0;font-size:13px;color:#57745f;text-decoration:underline;text-underline-offset:4px}.landing-copy>.text-button{margin-top:15px}.landscape-art{height:410px;background:#eaf0e5;border-radius:48% 48% 22px 22px;position:relative;overflow:hidden;isolation:isolate}.sun{position:absolute;top:25px;right:63px;color:#dba94c;font-size:80px}.cloud{width:78px;height:23px;background:#fafbf7;position:absolute;border-radius:30px;top:75px;left:50px}.cloud:before{content:"";position:absolute;background:inherit;border-radius:50%;width:40px;height:40px;top:-20px;left:20px}.cloud-two{left:auto;right:25px;top:145px;transform:scale(.7)}.hill{position:absolute;width:700px;height:300px;border-radius:50%;left:-90px;bottom:-150px;background:#a4bca0;transform:rotate(12deg)}.hill-back{bottom:-50px;left:50px;background:#d0ddbc;transform:rotate(-20deg)}.tree{position:absolute;color:#496e4b;font-size:130px;line-height:1;bottom:70px;left:20px}.tree-two{left:auto;right:15px;font-size:95px;bottom:100px}.art-card{position:absolute;background:#fffdf5;box-shadow:0 8px 20px #294c3514;border:5px solid #fff;border-radius:18px;display:flex;align-items:center;flex-direction:column;justify-content:center;font-size:40px;width:145px;height:136px;transform:rotate(-9deg);top:120px;left:65px;color:#987037}.art-card span{font-size:11px;font-weight:700;margin-top:5px}.art-math{top:195px;left:auto;right:65px;transform:rotate(9deg);background:#f3e7ca;color:#516747;font-size:30px}.art-caption{position:absolute;bottom:20px;width:100%;text-align:center;font-size:13px;color:#fff}.path-dots{position:absolute;bottom:65px;left:45%;font-size:32px;color:#f3e4bf;transform:rotate(-65deg)}.landing-features{display:flex;justify-content:center;gap:65px;border-top:1px solid #e1e5dd;padding:30px 0;color:#6a7b70;font-size:13px}.breadcrumb{display:flex;justify-content:space-between;align-items:center;margin:25px 0;color:#8a958b;font-size:12px}.landscape-heading{display:flex;align-items:center;justify-content:space-between;gap:30px;margin:30px 0}.landscape-heading h1{font-size:clamp(2rem,3.5vw,2.8rem);max-width:700px}.journey-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;background:#eaf0e4;width:140px;height:140px;border-radius:50%}.journey-badge strong{font-size:31px}.journey-badge span{font-size:12px;color:#677d68}.options-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px;color:#788475;margin:35px 0 25px}.toggle{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:#3c5545;font-size:14px;font-weight:700}.toggle input{min-height:24px;width:24px;accent-color:#2b674f}.toggle small{font-size:11px;color:#788475;font-weight:400}.step-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.step-card{text-align:left;padding:27px 25px 18px;display:flex;flex-direction:column;border-color:#e0e4d8;border-radius:20px;background:#fff;box-shadow:0 4px 10px #304b3210;transition:transform .15s}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px}.game-icon{font-size:38px;border-radius:16px;display:grid;place-items:center;width:74px;height:74px;background:#eff1df;color:#7c8c45}.card-arithmetic .game-icon{background:#faebd7;color:#b78239}.card-numberHouses .game-icon{background:#e4eeef;color:#54858b}.step-number{align-self:flex-start;font-size:12px;color:#a4ad9f}.step-card .eyebrow{font-size:10px;margin-bottom:8px}.step-card h2{font-size:22px;margin-bottom:9px}.step-card>p:not(.eyebrow){font-size:13px;color:#798475;font-weight:400;margin-bottom:30px}.card-bottom{border-top:1px solid #edf0e8;padding-top:17px;display:flex;align-items:center;justify-content:space-between;gap:7px;margin-top:auto;font-size:11px;color:#76846e;font-weight:400}.arrow{font-size:24px;color:#45644c}.score-tag{color:#34634c}.encouragement{margin:32px 0 15px;background:#f0f0e6;border-radius:14px;padding:22px 25px;display:flex;align-items:center;gap:20px}.encouragement>span{font-size:38px;color:#a28e50}.encouragement strong{font-size:14px}.encouragement p{font-size:12px;color:#7a8370;margin:4px 0 0}.reset-area{text-align:right}.reset-confirm{padding:20px;background:#fff3e9;border-radius:12px}.reset-confirm button{margin:4px}.danger{color:#9a3c30}.play-panel{max-width:850px;margin:35px auto 60px;padding:36px 42px;background:#fff;border:1px solid #e0e4d8;border-radius:24px;box-shadow:0 6px 20px #304b3208}.play-panel>h1{font-size:27px;padding-bottom:22px;border-bottom:1px solid #edf0e8}.play-panel>.eyebrow{font-size:10px}.game-content{text-align:center;padding:25px 0;min-height:340px}.game-content h2{font-size:23px;margin-bottom:30px}.answers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.answer{text-align:left;display:flex;align-items:center;gap:12px;font-size:17px;min-height:76px;font-weight:600;overflow-wrap:anywhere}.answer-letter{border-radius:8px;background:#f0f2eb;padding:5px 10px;font-size:12px}.success{background:#e1f0e1!important;border-color:#4b8450!important;color:#285f33!important}.failure{background:#fbe9e4!important;border-color:#b76a56!important;color:#913d30!important}.feedback{margin-top:25px;padding:16px;border:1px solid;border-radius:12px;display:flex;justify-content:center;align-items:center;gap:15px;flex-wrap:wrap;font-size:14px}.small{padding:8px 15px;min-height:44px;font-size:13px}.equation{display:flex;justify-content:center;align-items:center;gap:20px;font-size:40px;flex-wrap:wrap;margin:40px 0}.number-input{width:92px;text-align:center;font-size:30px;font-weight:700;border:2px solid #a5bba7;background:#fafbf7;padding:8px}.progress-area{margin-top:24px}.progress-area>div{display:flex;justify-content:space-between;font-size:12px;color:#7c897b;margin-bottom:8px}progress{width:100%;height:9px;display:block;border:0;border-radius:10px;overflow:hidden;background:#edf0e8;accent-color:#698861}progress::-webkit-progress-bar{background:#edf0e8}progress::-webkit-progress-value{background:#698861;border-radius:10px}.number-house{position:relative;max-width:300px;margin:0 auto 25px;padding-top:35px}.roof-shape{position:absolute;top:0;left:0;width:100%;height:90px;background:#e4bf73;clip-path:polygon(50% 0,100% 100%,0 100%)}.roof-number{position:relative;display:flex;justify-content:center;min-height:75px;margin:0 25px 5px}.house-floor{display:grid;grid-template-columns:1fr 1fr;border:2px solid #c9b47f;border-top:0;background:#fffbef}.house-floor:nth-child(3){border-top:2px solid #c9b47f}.house-cell{min-height:70px;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:28px;padding:6px}.house-floor .house-cell+.house-cell{border-left:2px solid #c9b47f}.house-cell .number-input{font-size:25px;width:85px;min-height:48px}.house-cell small{font-size:11px;margin-top:4px}.result-content{text-align:center;padding:20px 0}.result-star{display:block;font-size:70px;color:#bb943d}.result-score{font-size:58px;font-weight:700;margin:15px 0}.result-score span{font-size:18px;font-weight:400}.result-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:30px}.error,.error-box{color:#983e30}.error-box,.storage-notice{background:#fff0df;border-radius:12px;padding:16px;font-size:14px}.storage-notice{margin:20px 0}.error-box button{margin:10px}footer{border-top:1px solid #e1e5dd;display:flex;justify-content:space-between;gap:20px;padding:26px 0;color:#8b9587;font-size:11px;margin-top:40px}footer span span{color:#b2995e;margin:0 6px}@media(max-width:900px){.app-shell{padding:0 25px}.top-note{display:none}.landing{gap:25px}.art-card{left:25px}.art-math{right:25px;left:auto}.landing-features{gap:25px}.step-grid{gap:12px}.step-card{padding:20px 17px}.step-card h2{font-size:19px}.options-bar{align-items:flex-start;flex-direction:column}.toggle small{display:none}}@media(max-width:650px){.app-shell{padding:0 18px}.topbar{height:85px}.brand{font-size:24px}.local-badge{font-size:10px;padding:7px 10px}.landing{grid-template-columns:1fr;padding:40px 0 30px}.landing h1{font-size:43px}.landscape-art{height:290px;max-width:400px;width:100%;margin:10px auto}.art-card{top:75px;left:55px;width:125px;height:110px;font-size:32px}.art-math{top:135px;right:45px;left:auto;font-size:24px}.sun{top:0;right:40px}.tree{font-size:100px;bottom:45px}.tree-two{font-size:75px;bottom:70px}.landing-features{flex-wrap:wrap;gap:15px;font-size:11px;padding:22px 0}.code-row{flex-wrap:wrap}.code-row input{flex:1;max-width:none;width:120px}.code-row button{padding:12px}.step-grid{grid-template-columns:1fr}.step-card{padding:23px}.card-top{margin-bottom:20px}.step-card h2{font-size:24px}.landscape-heading{gap:12px;align-items:flex-start}.landscape-heading h1{font-size:29px;letter-spacing:-.8px}.journey-badge{width:80px;height:80px}.journey-badge strong{font-size:23px}.journey-badge span{font-size:8px}.intro{font-size:15px}.play-panel{padding:24px 16px;margin:20px 0}.answers{grid-template-columns:1fr}.game-content h2{font-size:20px}.equation{gap:10px;font-size:28px}.number-input{width:70px;font-size:25px}.encouragement{padding:18px 15px;gap:12px}footer{flex-direction:column;gap:8px}.result-score{font-size:45px}.result-score span{font-size:15px}.result-actions{flex-direction:column}.number-house{max-width:260px}.toggle{font-size:13px}.breadcrumb{gap:12px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}.puzzle-game{--cell:clamp(32px,8vw,68px)}.pyramid{margin:30px auto;--cell:min(68px,calc((100vw - 76px)/var(--levels)))}.pyramid-row{display:flex;justify-content:center}.puzzle-cell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:44px;border:1px solid #aabb9f;background:#fffef6;font-size:clamp(14px,3vw,24px);font-weight:700}.pyramid .puzzle-cell{width:var(--cell);height:var(--cell);flex-shrink:0}.puzzle-cell.given{background:#edf1e5}.puzzle-cell .number-input{width:100%;height:100%;min-height:44px;border:0;background:transparent;font-size:inherit;border-radius:0;padding:2px;min-width:0}.puzzle-cell small{font-size:10px;line-height:1;position:absolute;bottom:1px;pointer-events:none}.puzzle-cell:has(small) .number-input{padding-bottom:12px}.sudoku-grid{display:grid;grid-template-columns:repeat(var(--size),minmax(0,1fr));max-width:480px;margin:25px auto;border:2px solid #536e53}.sudoku-grid .puzzle-cell{aspect-ratio:1;min-height:0}.sudoku-grid .number-input{min-height:0;min-width:0}.sudoku-grid .block-right{border-right:3px solid #536e53}.sudoku-grid .block-bottom{border-bottom:3px solid #536e53}.number-triangle{position:relative;width:min(100%,440px);height:350px;margin:15px auto 0}.number-triangle svg{width:76%;height:100%;position:absolute;left:12%;top:0}.triangle-position{position:absolute;transform:translate(-50%,-50%);width:clamp(52px,15vw,76px);height:56px}.triangle-position .puzzle-cell{height:100%;width:100%;border-radius:8px}.triangle-0{left:50%;top:42%}.triangle-1{left:34%;top:75%}.triangle-2{left:66%;top:75%}.triangle-3{left:15%;top:49%}.triangle-4{left:85%;top:49%}.triangle-5{left:50%;top:96%}.inner-sum{display:flex;align-items:center;justify-content:center;gap:15px;margin:30px 0 15px}.inner-sum .puzzle-cell{width:90px;height:54px}.card-sudoku .game-icon{background:#e9e5f3;color:#7e6696}.card-numberPyramids .game-icon{background:#f5e7cc;color:#9b792c}.card-numberTriangles .game-icon{background:#e3eef0;color:#46828b}@media(max-width:400px){.sudoku-grid{margin-left:-8px;margin-right:-8px}.sudoku-grid .puzzle-cell{font-size:16px}.number-triangle{height:300px}.pyramid .puzzle-cell{font-size:13px}.pyramid .number-input{min-height:44px}.triangle-position{width:50px}}.puzzle-scroll{max-width:100%;overflow-x:auto;padding:6px;margin-bottom:20px}.puzzle-scroll:focus-visible{outline:3px solid #bd6a27;outline-offset:0}.pyramid{--cell:max(46px,min(68px,calc((100vw - 100px)/var(--levels))));min-width:calc(var(--levels)*46px)}.sudoku-grid{min-width:calc(var(--size)*48px + 4px)}.sudoku-grid .number-input{min-height:44px}.sudoku-grid .puzzle-cell,.sudoku-grid .block-bottom{min-height:48px}@media(max-width:400px){.sudoku-grid{margin-left:auto;margin-right:auto}}.card-jumpAndRun .game-icon{background:#f5dfc3;color:#9b5a3e}.jump-game{margin-top:16px}.jump-hud{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:14px;font-size:12px}.jump-hud>span{background:#f0f2e6;padding:8px 10px;border-radius:8px}.jump-stage{position:relative;height:clamp(340px,60vh,440px);overflow:hidden;border:2px solid #6d8975;border-radius:16px;background:#c7dfe2;touch-action:none;user-select:none;-webkit-user-select:none;isolation:isolate}.jump-stage:focus-visible{outline:3px solid #bd6a27;outline-offset:4px}.jump-scene{display:block;width:100%;height:100%}.jump-overlay{position:absolute;inset:0;display:grid;place-items:center;background:#1b403851;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:14px}.jump-intro{max-width:440px;background:#fffdf3f5;border:2px solid #e7d7b2;box-shadow:0 12px 40px #12352b33;padding:22px;border-radius:18px;text-align:center;max-height:100%;overflow-y:auto}.jump-intro h2{font-size:24px;margin-bottom:10px}.jump-intro p{font-size:13px;margin-bottom:14px}.jump-cast{display:flex;align-items:center;justify-content:center;gap:22px;margin-bottom:10px;color:#b28b3e;font-size:30px}.jump-cast img{width:54px;height:68px}.jump-controls{display:flex;justify-content:center;gap:10px;margin-top:16px;touch-action:none}.jump-controls button{min-width:70px;font-size:13px;padding:11px 13px}.jump-game>.hint{text-align:center;margin-top:12px}.jump-points{font:700 16px Trebuchet MS,sans-serif;fill:#5f5831;paint-order:stroke;stroke:#fff5cf;stroke-width:3px}.enemy-defeat{animation:enemy-fold .55s ease-in forwards}.jump-running image{animation:jump-run .18s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:bottom center}.jump-invulnerable{animation:jump-blink .18s steps(2) infinite}.jump-notice{min-height:20px;font-size:12px;text-align:center;color:#6c775b}.scroll-dialog{border:0;padding:24px 0;background:transparent;max-width:min(600px,calc(100vw - 28px));max-height:90dvh;overflow:visible;color:#4d3d25;width:600px}.scroll-dialog::backdrop{background:#153a36ad;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.parchment{position:relative;border-left:2px solid #bba477;border-right:2px solid #bba477;padding:34px 30px 28px;background:linear-gradient(90deg,#e2cc95,#f7edc8 7%,#fff4d3 50%,#f0dfb2 94%,#d6b97b);box-shadow:0 20px 80px #132c3255;animation:unroll-scroll .5s ease-out;transform-origin:top center;max-height:80dvh;display:flex;flex-direction:column;gap:16px}.parchment h2{font-family:Georgia,serif;font-size:30px;margin:0}.parchment .eyebrow{color:#847147;letter-spacing:1.2px;margin:0;font-size:10px}.scroll-copy{overflow-y:auto;overscroll-behavior:contain;min-height:60px;font-family:Georgia,serif;font-size:18px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;padding:3px;max-height:50dvh}.scroll-copy p{margin:0}.parchment>.primary{flex-shrink:0;align-self:center}.scroll-roller{position:absolute;top:-13px;left:-15px;right:-15px;height:26px;border:2px solid #b79a60;border-radius:14px;background:linear-gradient(#ddc68e,#f8ebbd 45%,#c3a467);box-shadow:0 4px 8px #60442122}.scroll-roller.bottom{top:auto;bottom:-13px}.jump-library{margin-top:20px;border-top:1px solid #e3e5da;padding-top:15px;font-size:13px}.jump-library summary{cursor:pointer;min-height:44px;padding:10px}.jump-library article{padding:15px;background:#f5f2e6;border-radius:10px;margin-top:10px}.jump-library article p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.8}.jump-library h3{font-size:15px;margin:0 0 8px}@keyframes unroll-scroll{0%{clip-path:inset(0 0 100% 0);opacity:.3;transform:scaleY(.65)}to{clip-path:inset(0);opacity:1;transform:scaleY(1)}}@keyframes enemy-fold{to{transform:scaleY(0);opacity:0}}@keyframes jump-run{0%{transform:rotate(-4deg) translateY(0)}to{transform:rotate(4deg) translateY(-2px)}}@keyframes jump-blink{50%{opacity:.35}}@media(max-width:650px){.jump-hud{font-size:10px;gap:6px}.jump-hud>span{padding:6px}.jump-hud .small{padding:8px}.jump-stage{height:400px}.jump-intro{padding:15px}.jump-intro h2{font-size:20px}.jump-intro p{font-size:12px}.jump-cast img{height:54px;width:44px}.jump-controls{gap:6px}.jump-controls button{font-size:11px;min-width:60px;padding:10px 8px}.parchment{padding:28px 17px 24px}.scroll-copy{font-size:17px}.parchment h2{font-size:25px}}@media(prefers-reduced-motion:reduce){.parchment,.enemy-defeat,.jump-running image,.jump-invulnerable{animation:none}.enemy-defeat{opacity:0}}.scroll-continue{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.reading-ring{width:32px;height:32px;flex-shrink:0;transform:rotate(-90deg)}.reading-ring circle{fill:none;stroke-width:3}.reading-track{stroke:#c6b481}.reading-fill{stroke:#2b674f;stroke-dasharray:100;stroke-linecap:round}.reading-countdown{font-size:12px;color:#705e38}.scroll-continue button:disabled{background:#a4a494;border-color:#a4a494;color:#f2f0e7;opacity:1;cursor:not-allowed}.jump-controls,.jump-controls button,.jump-hud button{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.jump-controls{flex-wrap:wrap}.jump-controls button{touch-action:none}.jump-controls .jump-pause{background:#f1e5c5;border-color:#c7b57c;color:#56482c}@media(max-width:650px){.jump-controls .jump-pause{flex-basis:100%;max-width:260px}}
