:root{--ink:#183f3e;--deep:#123735;--mint:#d6f0df;--cream:#faf7ee;--gold:#f9c976;--muted:#627676;--line:#e4e9e3}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Tahoma,"Arial",sans-serif;background:#fcfbf6;line-height:1.65}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #e09c36;outline-offset:3px}.skip{position:absolute;top:-100px;z-index:40;padding:10px;background:white}.skip:focus{top:10px}.site-header{height:76px;display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:auto;padding:0 26px}.brand{display:flex;align-items:center;gap:9px;font-weight:900;font-size:19px}.brand-icon,.footer-mark{font-size:30px;color:#d99f47}.site-header nav{display:flex;gap:28px;font-weight:700;font-size:14px}.site-header nav a:hover,.back-link:hover{color:#b77433}.hero{background:#e8f5e9;min-height:490px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:55px max(5vw,calc((100vw - 1140px)/2));gap:24px}.hero-copy{max-width:560px;position:relative;z-index:1}.eyebrow{color:#378272;font-size:13px;font-weight:800;letter-spacing:.02em}.sparkle{color:#da9749;font-size:20px}.hero h1{font-size:clamp(42px,6vw,77px);line-height:1.15;letter-spacing:-.055em;margin:14px 0 20px;font-weight:900}.hero-copy>p{font-size:18px;max-width:480px;color:#466767;margin:0 0 22px}.teacher{display:flex;align-items:center;gap:10px;font-size:14px;margin-bottom:24px}.avatar{display:grid;place-items:center;background:#ffe2b3;border-radius:50%;width:38px;height:38px;font-size:20px;font-weight:900}.primary-btn{display:inline-flex;background:#173e3d;color:white;padding:13px 27px;border-radius:13px;gap:28px;font-weight:800;box-shadow:0 7px 0 #c1d7c7}.primary-btn:hover{transform:translateY(-2px)}.hero-art{height:410px;position:relative;min-width:0}.art-ring{position:absolute;border:2px dashed #a3d2bb;border-radius:50%;height:350px;width:350px;top:33px;left:15%;transform:rotate(15deg)}.ring-two{width:240px;height:240px;top:89px;left:27%;border-color:#f8d5a2;transform:rotate(-20deg)}.math-tile{position:absolute;background:white;box-shadow:0 12px 32px #38706728;border-radius:19px;display:flex;align-items:center;justify-content:center;font-weight:900}.tile-plus{top:21px;left:18%;font-size:27px;padding:12px 24px;color:#218f78;transform:rotate(-9deg);direction:ltr}.tile-circle{top:102px;right:1%;height:115px;width:132px;flex-direction:column;gap:7px;color:#4e5eab;transform:rotate(8deg)}.circle-drawing{display:block;border:6px solid #737fc3;border-radius:50%;width:45px;height:45px}.tile-triangle{bottom:31px;left:7%;width:144px;height:124px;flex-direction:column;gap:4px;transform:rotate(8deg);color:#c57254}.triangle-drawing{display:block;width:0;height:0;border-left:33px solid transparent;border-right:33px solid transparent;border-bottom:56px solid #f5b395}.tile-ruler{bottom:20px;right:2%;height:64px;width:190px;border:3px solid #e1ba61;background:#fff1c5;transform:rotate(-11deg);direction:ltr;color:#a47119;flex-direction:column;font-size:15px;line-height:1}.art-star{position:absolute;color:#e0a248;font-size:32px}.star-one{left:4%;top:137px}.star-two{right:14%;top:9px}.grades-wrap,.how-section,.detail-section{max-width:1200px;margin:auto;padding:80px 26px}.section-heading{text-align:center;margin-bottom:36px}.section-heading h2,.detail-heading h2{font-size:clamp(29px,4vw,44px);line-height:1.3;margin:8px 0}.section-heading p,.detail-heading p{color:var(--muted);margin:0}.grade-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.grade-card{display:flex;flex-direction:column;align-items:flex-start;min-height:218px;padding:23px;border:1px solid #e2e9e2;border-radius:23px;background:#fff;box-shadow:0 9px 25px #315f5010;transition:transform .2s,box-shadow .2s}.grade-card:hover{transform:translateY(-5px);box-shadow:0 15px 27px #315f5025}.grade-symbol{display:grid;place-items:center;border-radius:17px;width:58px;height:58px;font-size:32px;margin-bottom:19px;background:#dff4e7}.grade-card.peach .grade-symbol{background:#ffecda;color:#d38362}.grade-card.lavender .grade-symbol{background:#eee7fa;color:#8170ba}.grade-card.sky .grade-symbol{background:#e0f0f7;color:#508da8}.grade-card strong{font-size:22px}.grade-card small{color:var(--muted);font-size:13px}.grade-arrow{margin-top:auto;color:#23846e;font-weight:900}.how-section{padding-top:45px}.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.how-grid article{border-radius:22px;background:#f0f5e9;padding:28px}.how-grid article:nth-child(2){background:#fff3e2}.how-grid article:nth-child(3){background:#eceef8}.how-grid article>span{font-size:38px;color:#2b8476}.how-grid h3{font-size:21px;margin:6px 0}.how-grid p{font-size:14px;color:var(--muted);margin:0}.detail-section{padding-top:52px}.detail-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.back-link{background:none;border:none;color:#247d67;font-weight:800;padding:8px 0}.curriculum-section{margin:32px 0 47px}.subject-heading{display:flex;align-items:center;gap:10px;border-bottom:2px solid #d6e3dc;margin-bottom:20px}.subject-heading h3{font-size:27px;margin:0 0 13px}.subject-heading .icon{background:#e1f2e8;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;font-size:25px}.subject-heading.geometry .icon{background:#fff0d7}.subject-heading small{margin-right:auto;color:var(--muted)}.topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.topic-card{background:#fff;border:1px solid var(--line);border-radius:19px;padding:20px;min-width:0}.topic-card h4{font-size:19px;margin:0 0 13px}.resource-list{display:grid;gap:10px}.resource-row{border-top:1px solid #eff0ea;padding-top:10px}.resource-head{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:800}.resource-icon{color:#338e7d}.resource-items{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:7px 0 0 23px}.resource-items small{color:#879592;font-size:12px}.resource-items a,.resource-items button{border:1px solid #d4e6df;background:#eff8f2;color:#1e6658;padding:6px 10px;border-radius:9px;font-size:13px;font-weight:750}.resource-items button{background:#fff4e2;border-color:#f3dec3;color:#945b23}.resource-items a:hover,.resource-items button:hover{filter:brightness(.95)}.resource-items .item-title{flex-basis:100%;font-size:13px;color:#446160}.item-title:not(:first-child){margin-top:7px}.soon{color:#92a19c;font-size:13px}.soon::before{content:'· ';font-weight:900}footer{background:#153c3a;color:white;margin-top:35px;padding:43px max(5vw,calc((100vw - 1140px)/2));display:flex;justify-content:space-between;align-items:end;gap:20px}footer strong{font-size:19px}footer p{margin:5px 0;color:#cfddcf;font-size:14px}.overlay{position:fixed;inset:0;z-index:20;background:#143e3dbd;display:grid;place-items:center;padding:14px}.overlay[hidden],[hidden]{display:none!important}.dialog{background:#fff;border-radius:22px;padding:28px;position:relative;width:min(100%,580px);max-height:96vh;overflow:auto}.dialog-close{position:absolute;top:9px;left:13px;border:0;background:#f1f4ee;border-radius:50%;height:36px;width:36px;font-size:26px;line-height:1}.dialog h2{font-size:28px;margin:5px 0 12px}.game-dialog{width:min(100%,500px)}.score-row{display:flex;justify-content:space-between;background:#eaf5ed;border-radius:10px;padding:8px 13px;margin:15px 0}.question{font-family:Arial,sans-serif;font-size:clamp(24px,7vw,36px);font-weight:800;text-align:center;min-height:70px;display:grid;place-items:center;white-space:nowrap;overflow-x:auto}.answer-label{display:block;font-weight:800;margin:5px 0}.answer-row{display:flex;gap:9px;direction:ltr}.answer-row input{width:100%;min-width:0;border:2px solid #bfdbd1;border-radius:10px;padding:10px;font-size:22px;text-align:center}.answer-row button,#next-question{border:0;background:#164744;color:#fff;border-radius:10px;padding:9px 16px;font-weight:800;white-space:nowrap}.answer-row button:disabled{opacity:.45;cursor:not-allowed}#next-question{background:#df9e4e;display:block;margin-top:12px}#feedback{min-height:27px;font-weight:800}.correct{color:#18775b}.incorrect{color:#ab4d39}.game-visual{width:100%;height:105px;display:grid;place-items:center}.game-visual svg{max-width:230px;height:98px}.game-visual svg rect,.game-visual svg circle,.game-visual svg polygon{fill:#fde6b4;stroke:#227f70;stroke-width:4}.game-visual svg text{fill:#234e4a;font-size:16px;font-weight:bold}.game-select{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-weight:700}.game-select select{border:1px solid #aac8bc;background:#fff;border-radius:9px;padding:6px 10px}.video-dialog{width:min(100%,850px)}.video-dialog video{display:block;width:100%;max-height:70vh;background:#183f3e;border-radius:9px}
@media(max-width:800px){.hero{grid-template-columns:1fr;padding:55px 24px 30px}.hero-art{height:250px;margin:auto;width:min(100%,420px)}.art-ring{height:225px;width:225px;left:24%;top:5px}.ring-two{height:155px;width:155px;left:33%;top:39px}.tile-plus{font-size:19px;left:13%;top:1px}.tile-circle{right:1%;top:53px;width:100px;height:90px}.circle-drawing{width:36px;height:36px}.tile-triangle{left:5%;bottom:0;width:109px;height:98px}.triangle-drawing{border-left-width:22px;border-right-width:22px;border-bottom-width:40px}.tile-ruler{right:3%;bottom:9px;width:134px;height:48px;font-size:11px}.grade-cards{grid-template-columns:repeat(2,1fr)}.topic-grid{grid-template-columns:1fr}}@media(max-width:480px){.site-header{padding:0 18px;height:65px}.site-header nav{gap:12px;font-size:12px}.brand{font-size:16px}.brand-icon{font-size:24px}.hero{padding:45px 20px 15px}.hero h1{font-size:48px}.hero-copy>p{font-size:15px}.teacher{font-size:12px}.grades-wrap,.how-section,.detail-section{padding:55px 17px}.grade-cards{gap:10px}.grade-card{min-height:175px;padding:15px}.grade-card strong{font-size:18px}.grade-symbol{width:45px;height:45px;font-size:27px;margin-bottom:13px}.how-grid{grid-template-columns:1fr;gap:11px}.how-grid article{padding:20px}.detail-top{flex-direction:column}.topic-card{padding:15px}.subject-heading small{font-size:11px}footer{padding:30px 19px;display:block}.dialog{padding:24px 17px}.answer-row button{font-size:13px;padding:9px 11px}}

/* ===== v3: themes + tidy layout ===== */
:root{--main:#183f3e;--soft:#e8f5e9;--accent:#e09c36;--main-2:#c9d6d5}
body{color:var(--main);background:#fbfaf6}
.site-header{height:60px;padding:0 18px}.brand{color:var(--main)}.brand-icon{color:var(--accent);font-size:24px}
.hero2{position:relative;overflow:hidden;background:var(--soft);padding:34px 20px 30px;text-align:center}
.hero2 h1{margin:0 0 8px;font-size:clamp(32px,8vw,56px);line-height:1.2;font-weight:900;color:var(--main);position:relative}
.hero2 p{margin:0 auto 6px;max-width:560px;color:var(--main);opacity:.85;position:relative}.teacher2{font-size:15px}
.shapes .sh{position:absolute;opacity:.35}.sh.tri{width:0;height:0;border-left:22px solid transparent;border-right:22px solid transparent;border-bottom:38px solid var(--accent);top:14px;right:8%}
.sh.cir{width:44px;height:44px;border:5px solid var(--main);border-radius:50%;bottom:12px;left:7%}.sh.sq{width:30px;height:30px;border:4px solid var(--accent);transform:rotate(15deg);bottom:16px;right:12%}
.sh.eq{top:14px;left:6%;font-weight:900;color:var(--main);direction:ltr;font-size:14px}
.wrap{max-width:980px;margin:auto;padding:26px 16px}.h2{font-size:22px;margin:0 0 14px;text-align:center}
.g-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.g-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--main-2);border-radius:16px;padding:14px 16px;box-shadow:0 3px 0 var(--main-2)}
.g-card:hover{transform:translateY(-2px)}
.g-num{flex:none;display:grid;place-items:center;width:62px;height:62px;border-radius:14px;background:var(--main);color:#fff;font-size:38px;font-weight:900;font-family:Arial,sans-serif}
.g-body{display:flex;flex-direction:column;min-width:0;flex:1}.g-body strong{font-size:19px}
.g-topics{color:#555;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.g-tags{font-size:12px;color:var(--accent);font-weight:700}
.g-go{color:var(--accent);font-size:22px;font-weight:900}
.how-box{background:var(--soft);border-radius:16px;padding:16px 20px;border-right:5px solid var(--accent)}.how-box h2{margin:0 0 6px;font-size:19px}.how-box ol{margin:0;padding-right:20px;font-size:15px}
.foot2{text-align:center;padding:18px;color:#666;font-size:14px;border-top:1px solid #eee;margin-top:10px;background:none}
.detail2{padding-top:14px}.detail-head{display:flex;align-items:center;gap:12px;margin:10px 0 6px}.detail-head h2{margin:0;font-size:26px}.g-num.big{width:54px;height:54px;font-size:32px}
.back-link{background:none;border:0;color:var(--main);font-weight:700;padding:6px 0}
.subject-heading{display:flex;align-items:center;gap:8px;border-bottom:3px solid var(--main);padding-bottom:4px;margin:22px 0 12px}.subject-heading h3{margin:0;font-size:21px}
.subject-heading .icon{background:var(--main);color:#fff;border-radius:8px;width:30px;height:30px;display:grid;place-items:center}.subject-heading.geometry{border-color:var(--accent)}.subject-heading.geometry .icon{background:var(--accent)}
.topic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.topic-card{background:#fff;border:1px solid var(--main-2);border-radius:14px;padding:12px 14px}.topic-card h4{margin:0 0 8px;font-size:18px;color:var(--main)}
.resource-row{margin:6px 0}.resource-head{font-size:13px;font-weight:700;color:#666;margin-bottom:4px}
.resource-items{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.resource-items button{background:var(--soft);color:var(--main);border:1px solid var(--main-2);border-radius:10px;padding:7px 11px;font-weight:700}
.ws-item{display:flex;flex-wrap:wrap;align-items:center;gap:6px;width:100%}.ws-item .item-title{flex:1 1 100%;font-weight:700;font-size:15px}
.dl{border-radius:9px;padding:5px 11px;font-size:13px;font-weight:800;color:#fff;background:var(--main)}.dl.docx,.dl.doc{background:#2b5797}
.soon-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px;font-size:13px;color:#888}.soon-label{font-weight:700}
.soon-chip{border:1px dashed #ccc;border-radius:20px;padding:2px 10px;background:#fafafa}
.primary-btn,.dialog button#check-answer{background:var(--main)}

.resource-items a.dl{color:#fff!important;background:var(--main)!important;border:0!important;border-radius:9px;padding:6px 12px;font-size:13px;font-weight:800;text-decoration:none}.resource-items a.dl.docx,.resource-items a.dl.doc{background:#2b5797!important}.foot2,.foot2 p{color:#555!important;opacity:1!important}


/* ===== v5: rich design (background patterns, gradient hero, coloured grade cards) ===== */
:root{--pat:none;--pat-w:none;--hero-2:#2a6f6b;--main-dk:#123735;--c1:var(--main);--c2:var(--main-dk)}
html{background:#fbfaf6}
body{position:relative;background-color:transparent;background-image:var(--pat);background-repeat:repeat;font-family:"Segoe UI",Tahoma,Arial,sans-serif;min-height:100vh}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 92% 6%,var(--soft) 0,transparent 38%),radial-gradient(circle at 4% 38%,color-mix(in srgb,var(--accent) 16%,transparent) 0,transparent 30%),radial-gradient(circle at 96% 78%,color-mix(in srgb,var(--main) 10%,transparent) 0,transparent 32%),radial-gradient(circle at 10% 96%,var(--soft) 0,transparent 30%),#fbfaf6}
html[data-bg="none"] body{background-image:none}html[data-bg="none"] body::before{background:#fbfaf6}
.site-header{height:56px;max-width:1000px}.brand{font-size:17px}
.brand-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--accent);color:#fff!important;font-size:18px!important;box-shadow:0 3px 8px color-mix(in srgb,var(--accent) 40%,transparent)}
.hero2{margin:4px 12px 0;border-radius:26px;padding:38px 20px 34px;color:#fff;background-color:var(--main);background-image:var(--pat-w),linear-gradient(135deg,var(--main) 0%,var(--hero-2) 100%);box-shadow:0 14px 30px -12px color-mix(in srgb,var(--main) 65%,transparent);max-width:1000px}
@media(min-width:1024px){.hero2{margin:4px auto 0}}
html[data-hero="solid"] .hero2{background-image:var(--pat-w),linear-gradient(var(--main),var(--main))}
.hero2 .shapes{display:none}
.hero2 h1{color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.18);font-size:clamp(32px,9vw,58px)}
.hero2 p{color:#fff;opacity:.93;font-size:16.5px}
.hero2 .teacher2{display:inline-block;margin-top:12px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:5px 16px;font-size:14.5px;backdrop-filter:blur(2px)}
.hero2::after{content:"+ − × ÷ =";position:absolute;bottom:8px;left:16px;direction:ltr;font-weight:900;font-size:13px;letter-spacing:4px;color:rgba(255,255,255,.4)}
.h2{display:flex;align-items:center;justify-content:center;gap:12px;font-size:23px;font-weight:900;color:var(--main)}
.h2::before,.h2::after{content:"";width:34px;height:5px;border-radius:5px;background:linear-gradient(90deg,var(--accent),var(--main))}
.g-cards{gap:14px;grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}
.g-card{position:relative;overflow:hidden;align-items:center;gap:14px;border:0;border-radius:22px;padding:18px 16px;color:#fff;background-color:var(--c1);background-image:var(--pat-w),linear-gradient(135deg,var(--c1) 0%,var(--c2) 100%);box-shadow:0 12px 22px -12px var(--c2),0 2px 0 rgba(0,0,0,.06);transition:transform .15s}
.g-card:hover,.g-card:active{transform:translateY(-3px) scale(1.01)}
.g-card .g-num{width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.2);border:2px solid rgba(255,255,255,.45);font-size:46px;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.2)}
.g-body strong{font-size:21px;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.15)}
.g-chips{display:flex;flex-wrap:wrap;gap:5px;margin:7px 0 6px}
.g-chip{background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:1px 9px;font-size:12.5px;font-weight:700;color:#fff;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.g-card .g-tags{color:rgba(255,255,255,.9);font-size:12px}
.g-card .g-go{color:#fff;background:rgba(255,255,255,.22);width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:19px;flex:none}
.how-box{background:#fff;border:0;border-radius:20px;box-shadow:0 8px 24px -14px rgba(0,0,0,.25);border-top:6px solid var(--accent);padding:18px 20px}
.how-box h2{color:var(--main)}
.foot2{border-top:0;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--main) 8%,transparent),transparent)}
.detail-head{margin:12px 0 8px;padding:16px;border-radius:22px;color:#fff;background-color:var(--c1);background-image:var(--pat-w),linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 12px 22px -14px var(--c2)}
.detail-head h2{color:#fff}
.detail-head .g-num.big{width:62px;height:62px;border-radius:50%;background:rgba(255,255,255,.2);border:2px solid rgba(255,255,255,.45);font-size:36px}
.back-link{background:#fff;border-radius:999px;padding:6px 14px;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.subject-heading{border:0;margin:24px 0 12px;padding:8px 12px;border-radius:14px;background:linear-gradient(90deg,var(--main),color-mix(in srgb,var(--main) 72%,#fff));color:#fff}
.subject-heading h3{color:#fff}.subject-heading .icon{background:rgba(255,255,255,.25)!important}
.subject-heading.geometry{background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#fff))}
.topic-card{border:0;border-radius:18px;box-shadow:0 8px 20px -14px rgba(0,0,0,.3);border-top:5px solid var(--c1);padding:14px 16px}
.resource-items button{background:var(--soft);border:1.5px solid color-mix(in srgb,var(--main) 25%,transparent);border-radius:999px;padding:8px 14px;box-shadow:0 2px 0 color-mix(in srgb,var(--main) 18%,transparent)}
.resource-items button:active{transform:translateY(1px)}
.resource-items a.dl{border-radius:999px!important;padding:7px 14px!important;box-shadow:0 2px 0 rgba(0,0,0,.15)}
.soon-chip{background:rgba(255,255,255,.7)}
@media(max-width:420px){.hero2{padding:30px 16px 30px}.g-card{padding:16px 14px}.g-card .g-num{width:66px;height:66px;font-size:40px}}

.video-dialog .yt-frame{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:9px;background:#000}

.topic-card.topic-soon{opacity:.75}.topic-card .soon-note{margin:.4rem 0 0;color:#888;font-size:.95rem}

.game-item{display:inline-flex;align-items:stretch;gap:6px;flex-wrap:wrap;max-width:100%}.share-game{background:#e8f6ee!important;color:#1f6b4a!important;border:2px solid #9bd3b5!important;font-size:14px!important;padding:6px 10px!important;white-space:nowrap}
.site-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:rgba(24,63,62,.95);color:#fff;font-weight:800;padding:10px 18px;border-radius:999px;z-index:2147483600;font-size:16px;white-space:nowrap}
.game-home{display:block;margin:0 0 8px;align-self:flex-start;border:0;border-radius:999px;background:#fff3c4;color:#5a3500;font-weight:800;font-size:14px;padding:8px 12px;cursor:pointer}.game-home[hidden]{display:none}

/* ===== v6: decorated worlds — a different illustrated world for each grade ===== */
#world{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background-image:var(--tile),var(--wbg);background-repeat:repeat,no-repeat;background-size:auto,cover}
#world svg{display:block;position:absolute}
html[data-view] body{background-image:none!important;background-color:transparent}
html[data-view] body::before{display:none}
#world.w-home{--wbg:linear-gradient(180deg,#fff7ec 0%,#f3fbff 45%,#fff3f8 100%)}
#world.w-3{--wbg:linear-gradient(180deg,#ffe0ef 0%,#fff3df 50%,#e3f9ec 100%)}
#world.w-4{--wbg:radial-gradient(circle at 80% 20%,#3b2a8a 0,transparent 45%),radial-gradient(circle at 10% 80%,#16457a 0,transparent 45%),linear-gradient(180deg,#0a1235 0%,#1d1452 55%,#2c1660 100%)}
#world.w-5{--wbg:linear-gradient(180deg,#c9f3ff 0%,#5cc4ec 35%,#1f88c4 70%,#0d5c94 100%)}
#world.w-6{--wbg:linear-gradient(180deg,#eefbdc 0%,#d3f0b9 50%,#a9dc8f 100%)}
.w-cloud{width:min(62vw,360px);opacity:.95}
.w-cloud.c1{top:64px;right:-50px;animation:wdrift 26s ease-in-out infinite alternate}
.w-cloud.c2{top:46%;left:-70px;animation:wdrift 34s ease-in-out infinite alternate-reverse;opacity:.7}
.w-rainbow{top:40px;left:-10px;width:min(44vw,250px)}
.w-ground{left:0;bottom:0;width:100%;height:min(24vh,180px)}
.w-fly{position:absolute;width:42px;height:32px}
.w-fly svg{position:static!important;width:100%;height:100%;animation:wflap .35s ease-in-out infinite alternate;transform-origin:50% 50%}
.w-fly.f1{top:30%;right:6%;animation:wfly1 18s ease-in-out infinite}
.w-fly.f2{top:62%;left:4%;animation:wfly2 22s ease-in-out infinite}
.w-stars{inset:0;width:100%;height:100%}
.tw{animation:wtw 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.tw.t1{animation-delay:-.8s}.tw.t2{animation-delay:-1.6s}.tw.t3{animation-delay:-2.4s}
.w-planet{top:64px;left:-60px;width:min(50vw,280px);animation:wbob 9s ease-in-out infinite}
.w-planet2{top:48%;right:-14px;width:min(26vw,120px);animation:wbob 7s ease-in-out infinite reverse}
.w-moon{bottom:9vh;left:-22px;width:min(30vw,130px)}
.w-rocket{position:absolute;width:46px;bottom:-170px;left:12%;animation:wrocket 16s linear infinite}
.w-rocket svg{position:static!important;width:100%;transform:rotate(30deg)}
.w-rocket .flame{animation:wflame .18s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:50% 0}
.w-comet{position:absolute;top:18%;left:-180px;width:150px;animation:wcomet 11s linear infinite;opacity:.9}
.w-comet svg{position:static!important;width:100%;transform:rotate(14deg)}
.w-rays{inset:0;width:100%;height:100%;animation:wrays 8s ease-in-out infinite alternate}
.w-fish{position:absolute;width:70px;height:36px}
.w-fish svg{position:static!important;width:100%;height:100%}
.w-fish.fa{top:24%;left:-90px;animation:wswimR 19s linear infinite}
.w-fish.fb{top:52%;right:-90px;animation:wswimL 24s linear infinite;animation-delay:-6s;width:58px}
.w-fish.fc{top:76%;left:-90px;animation:wswimR 28s linear infinite;animation-delay:-14s;width:52px}
.w-jelly{position:absolute;top:12%;right:5%;width:54px;animation:wbob 6s ease-in-out infinite}
.w-jelly svg{position:static!important;width:100%}
.w-bubbles{position:absolute;inset:0}
.w-bubbles i{position:absolute;bottom:-30px;width:var(--s);height:var(--s);border:2px solid rgba(255,255,255,.75);border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.7) 0 18%,transparent 22%);animation:wrise var(--d) linear infinite;animation-delay:var(--dl)}
.sway{animation:wsway 4.5s ease-in-out infinite alternate}.sway.s2{animation-duration:5.6s;animation-delay:-2s}
.w-ground .sway{transform-box:fill-box;transform-origin:50% 100%}
.w-vines{top:0;left:0;width:100%;height:min(20vh,150px)}
.w-vines .sway{animation-name:wvine}
.w-mon{width:min(46vw,240px);bottom:0}
.w-mon.m1{left:-26px}.w-mon.m2{right:-26px}
.w-parrot{position:absolute;top:150px;left:6px;width:58px;animation:wbob 5s ease-in-out infinite}
.w-parrot svg{position:static!important;width:100%}
@keyframes wdrift{to{transform:translateX(-60px)}}
@keyframes wflap{to{transform:scaleX(.55)}}
@keyframes wfly1{0%,100%{transform:translate(0,0)}25%{transform:translate(-40vw,8vh)}50%{transform:translate(-70vw,-6vh)}75%{transform:translate(-30vw,-12vh)}}
@keyframes wfly2{0%,100%{transform:translate(0,0)}30%{transform:translate(45vw,-10vh)}60%{transform:translate(70vw,6vh)}80%{transform:translate(25vw,10vh)}}
@keyframes wtw{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.25;transform:scale(.6)}}
@keyframes wbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes wrocket{0%{transform:translate(0,0)}100%{transform:translate(70vw,-125vh)}}
@keyframes wflame{to{transform:scaleY(.7)}}
@keyframes wcomet{0%{transform:translate(0,0)}35%,100%{transform:translate(140vw,30vh)}}
@keyframes wrays{to{opacity:.55}}
@keyframes wswimR{0%{transform:translate(0,0)}50%{transform:translate(60vw,-26px)}100%{transform:translate(calc(100vw + 180px),0)}}
@keyframes wswimL{0%{transform:translate(0,0)}50%{transform:translate(-60vw,22px)}100%{transform:translate(calc(-100vw - 180px),0)}}
@keyframes wrise{0%{transform:translate(0,0);opacity:0}10%{opacity:1}100%{transform:translate(18px,-110vh);opacity:.2}}
@keyframes wsway{from{transform:rotate(-5deg)}to{transform:rotate(5deg)}}
@keyframes wvine{from{transform:rotate(-3deg)}to{transform:rotate(3deg)}}
@keyframes wspin{to{transform:rotate(360deg)}}
@keyframes wisle{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes wballoon{0%,100%{transform:translate(150px,230px)}50%{transform:translate(190px,200px)}}

/* ---- home hero: sky + four floating islands ---- */
.hero2{background:none!important;color:var(--ink);padding:22px 12px 0!important;position:relative;overflow:hidden;box-shadow:0 18px 34px -18px rgba(30,80,140,.55)}
.hero2::after{content:none!important;display:none}
.hero2 .scene{position:absolute;inset:0;z-index:0}
.hero2 .scene svg.sky{width:100%;height:100%;display:block}
.hero2 .spin{animation:wspin 40s linear infinite;transform-box:view-box}
.hero2 .drift.d1{animation:wdrift 22s ease-in-out infinite alternate}
.hero2 .drift.d2{animation:wdrift 30s ease-in-out infinite alternate-reverse}
.hero2 .drift.d3{animation:wdrift 18s ease-in-out infinite alternate}
.hero2 .balloon{animation:wballoon 9s ease-in-out infinite}
.hero-panel{position:relative;z-index:2;max-width:640px;margin:0 auto;background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:24px;padding:18px 16px 16px;box-shadow:0 10px 26px -12px rgba(20,60,110,.5);border:3px solid #fff}
.hero2 h1{color:var(--main)!important;text-shadow:0 2px 0 #fff,0 3px 0 color-mix(in srgb,var(--main) 18%,transparent)!important;font-size:clamp(32px,9vw,56px)!important;margin:0 0 6px}
.hero2 p{color:#2c3e50!important;opacity:1!important}
.hero2 .teacher2{background:var(--soft)!important;border:2px solid color-mix(in srgb,var(--main) 22%,transparent)!important;color:var(--main)!important}
.isles{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;max-width:860px;margin:10px auto 0;padding:0 0 12px}
.isle{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:#1f2d3d;min-width:0;border-radius:18px;padding:2px}
.isle svg{width:100%;max-width:190px;height:auto;display:block;filter:drop-shadow(0 8px 6px rgba(20,60,110,.25));animation:wisle 4.4s ease-in-out infinite}
.isle.i4 svg{animation-delay:-1.1s}.isle.i5 svg{animation-delay:-2.2s}.isle.i6 svg{animation-delay:-3.3s}
.isle-l{margin-top:-4px;display:flex;align-items:center;gap:5px;background:#fff;border-radius:999px;padding:3px 9px 3px 4px;font-size:12px;font-weight:800;line-height:1.3;box-shadow:0 3px 0 rgba(0,0,0,.12);text-align:center}
.isle-l b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;color:#fff;font-size:14px;flex:none;font-family:Arial,sans-serif}
.i3 .isle-l b{background:#d6336c}.i4 .isle-l b{background:#5f3dc4}.i5 .isle-l b{background:#0b7285}.i6 .isle-l b{background:#2b8a3e}
.isle:hover svg,.isle:focus-visible svg{transform:scale(1.06)}
@media(max-width:520px){.isle-l{flex-direction:column;padding:4px 6px;font-size:11px;gap:2px;border-radius:14px}.isles{gap:2px}}
@media(min-width:900px){.hero2{padding-top:40px!important}.isles{margin-top:22px}}

/* ---- grade cards on the home page ---- */
.g-card{background-image:linear-gradient(135deg,var(--c1) 0%,var(--c2) 100%)!important;padding-left:96px!important;min-height:118px}
.g-card .g-art{position:absolute;left:-4px;bottom:-12px;width:104px;height:104px;pointer-events:none;filter:drop-shadow(0 6px 5px rgba(0,0,0,.2));transition:transform .3s}
.g-card .g-art svg{width:100%;height:100%;display:block}
.g-card:hover .g-art{transform:translateY(-6px) rotate(-4deg)}
.g-card .g-go{display:none}
.g-world{display:inline-block;align-self:flex-start;margin-top:2px;background:rgba(255,255,255,.95);color:#1f2d3d;border-radius:999px;padding:1px 10px;font-size:13px;font-weight:800}
.g-card.wc3::before,.g-card.wc4::before,.g-card.wc5::before,.g-card.wc6::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background-size:120px}
.g-card.wc4::before{background-image:radial-gradient(circle,#fff 0 1.3px,transparent 2px),radial-gradient(circle,#fff 0 1px,transparent 1.6px);background-size:46px 46px,29px 29px;background-position:0 0,13px 17px;opacity:.55}
.g-card.wc5::before{background-image:radial-gradient(circle,transparent 0 5px,rgba(255,255,255,.55) 5.5px 7px,transparent 7.5px);background-size:52px 60px;opacity:.6}
.g-card.wc3::before{background-image:radial-gradient(circle,rgba(255,255,255,.6) 0 4px,transparent 4.5px),radial-gradient(circle,rgba(255,230,120,.7) 0 3px,transparent 3.5px);background-size:44px 44px,34px 34px;background-position:0 0,17px 21px;opacity:.6}
.g-card.wc6::before{background-image:radial-gradient(ellipse 7px 3.5px,rgba(255,255,255,.45) 0 98%,transparent 100%);background-size:38px 30px;opacity:.7}
.g-card>*{position:relative}.g-card>.g-art{position:absolute}

/* ---- grade pages: palettes ---- */
html[data-view="g3"] #grade-detail{--main:#c2255c;--soft:#fff0f6;--main-2:#fcc2d7;--accent:#0b9a6d}
html[data-view="g4"] #grade-detail{--main:#5f3dc4;--soft:#f3f0ff;--main-2:#d0bfff;--accent:#0c8599}
html[data-view="g5"] #grade-detail{--main:#0b6e80;--soft:#e3fafc;--main-2:#99e9f2;--accent:#d9480f}
html[data-view="g6"] #grade-detail{--main:#2b8a3e;--soft:#ebfbee;--main-2:#b2f2bb;--accent:#c2410c}
.detail-head{position:relative;overflow:hidden;flex-wrap:wrap;row-gap:4px;min-height:120px;padding:16px 16px 100px!important;background-image:none!important;border:3px solid rgba(255,255,255,.7)}
.detail-head[data-w="3"]{background:linear-gradient(135deg,#ff6fa5 0%,#d6336c 70%)!important}
.detail-head[data-w="4"]{background:linear-gradient(135deg,#232a78 0%,#4b2a99 100%)!important}
.detail-head[data-w="5"]{background:linear-gradient(180deg,#1aa3c4 0%,#0b5d8a 100%)!important}
.detail-head[data-w="6"]{background:linear-gradient(135deg,#2f9e44 0%,#1b6b30 100%)!important}
.detail-head>*:not(.d-banner){position:relative;z-index:1}
.d-banner{position:absolute;left:0;right:0;bottom:0;height:100px;z-index:0}
.d-banner svg{width:100%;height:100%;display:block}
.d-world{flex-basis:100%;margin:2px 0 0;color:#fff;font-weight:800;font-size:15px;text-shadow:0 1px 3px rgba(0,0,0,.3)}
.detail-head h2{text-shadow:0 2px 6px rgba(0,0,0,.25)}
@media(min-width:760px){.detail-head{padding:20px 22px!important;min-height:140px;padding-left:44%!important}.d-banner{top:0;right:auto;width:42%;height:100%}.d-banner svg{height:100%}}
html[data-view^="g"] .back-link{background:#fff;color:var(--main);box-shadow:0 3px 10px rgba(0,0,0,.18)}
html[data-view^="g"] .subject-heading{box-shadow:0 6px 16px -8px rgba(0,0,0,.4);border:2px solid rgba(255,255,255,.6)}
html[data-view^="g"] .topic-card{position:relative;background:#fff;border-top:6px solid var(--main);box-shadow:0 10px 24px -12px rgba(0,0,0,.45)}
html[data-view^="g"] .subject-heading.geometry~.topic-grid .topic-card{border-top-color:var(--accent)}
html[data-view^="g"] .topic-card h4{color:var(--main);padding-left:38px}
html[data-view^="g"] .topic-card::after{content:"";position:absolute;top:6px;left:8px;width:34px;height:34px;background:var(--charm) center/contain no-repeat;pointer-events:none}
html[data-view^="g"] .topic-card.topic-soon{opacity:1;background:rgba(255,255,255,.9);border:2px dashed var(--main-2);border-top:6px solid var(--main-2)}
html[data-view^="g"] .topic-card .soon-note{color:#555}
html[data-view="g4"] .topic-card{box-shadow:0 0 0 2px rgba(255,255,255,.12),0 12px 26px -10px rgba(0,0,0,.7)}
html[data-view^="g"] .foot2{background:none}
html[data-view^="g"] .foot2 p{display:inline-block;background:rgba(255,255,255,.9);border-radius:999px;padding:4px 14px;margin:0}
html[data-view^="g"] #grade-detail{padding-bottom:40px}
/* home page sections over the light world */
html[data-view="home"] .how-box{position:relative}
@media (prefers-reduced-motion: reduce){#world *,#world,.hero2 *,.isle svg,.g-art{animation:none!important;transition:none!important}.w-rocket,.w-comet,.w-fish,.w-bubbles{display:none}}

html[data-view="home"]{background:#fff3f8}html[data-view="g3"]{background:#e3f9ec}html[data-view="g4"]{background:#2c1660}html[data-view="g5"]{background:#0d5c94}html[data-view="g6"]{background:#a9dc8f}
html[data-view^="g"] .brand{background:rgba(255,255,255,.92);border-radius:999px;padding:4px 12px 4px 6px;box-shadow:0 3px 10px rgba(0,0,0,.15)}
.subject-heading .icon.w-ico{font-size:19px;line-height:1}
.g-card .g-chip{background:rgba(0,0,0,.2);border-color:rgba(255,255,255,.35)}
.g-card{padding-left:84px!important}.g-card .g-art{width:92px;height:92px;left:-6px}
.hero2 .balloon2{animation:wballoon2 7s ease-in-out infinite}.hero2 .balloon3{animation:wballoon3 11s ease-in-out infinite}
@keyframes wballoon2{0%,100%{transform:translate(330px,300px) scale(.7)}50%{transform:translate(352px,272px) scale(.7)}}
@keyframes wballoon3{0%,100%{transform:translate(1100px,260px) scale(.8)}50%{transform:translate(1070px,230px) scale(.8)}}

/* ---- math worlds (v2): numbers city, operations planet, fractions sea, shapes forest ---- */
.w-ground.w-city{height:min(30vh,210px)}
.w-ground.w-sea{height:min(30vh,200px)}
.w-ground.w-forest{height:min(28vh,200px)}
.w-bal{position:absolute;width:56px;animation:wbob 7s ease-in-out infinite}
.w-bal svg{position:static!important;width:100%;height:auto}
.w-bal.b1{top:150px;left:5%}.w-bal.b2{top:44%;right:4%;width:46px;animation-duration:9s;animation-direction:reverse}
.w-facts{position:absolute;inset:0}
.w-facts span,.w-facts b{position:absolute;font:800 13px/1.2 Arial,Helvetica,sans-serif;color:#fff3bf;direction:ltr;unicode-bidi:isolate;white-space:nowrap;text-shadow:0 0 6px rgba(255,230,140,.8);opacity:.75}
.w-facts span::before{content:"★ ";color:#ffe066}
.w-facts b{font-size:26px;font-weight:900;text-shadow:0 0 8px rgba(255,255,255,.45);opacity:.6}
.w-bubbles i{display:grid;place-items:center;overflow:hidden}
.w-bubbles i svg{position:static!important;width:100%;height:100%}
.w-bubbles i em{font:800 11px/1 Arial,Helvetica,sans-serif;font-style:normal;color:#fff;direction:ltr}
.w-sun6{position:absolute;top:min(20vh,150px);right:-18px;width:min(38vw,190px);opacity:.95}
.w-sun6 svg{position:static!important;width:100%;height:auto}
.w-sun6 .spin6{transform-box:view-box;transform-origin:50% 90%;animation:wsun6 6s ease-in-out infinite alternate}
@keyframes wsun6{to{opacity:.55}}
.w-vines{height:min(22vh,160px)}
@media(min-width:760px){.w-bal{width:76px}.w-bal.b2{width:62px}.w-facts span{font-size:16px}.w-facts b{font-size:34px}.w-sun6{right:3%;width:230px}}
@media (prefers-reduced-motion: reduce){.w-bal,.w-facts *,.w-sun6 *{animation:none!important}}
