@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Nunito:wght@600;700;800;900&display=swap');
#cp-portal{--ink:#293d37;--green:#28664f;--cream:#fbfaf5;--line:#e5e8df;color:var(--ink);font:15px 'DM Sans',system-ui,sans-serif;background:var(--cream);min-height:100vh;text-align:left;line-height:1.6}#cp-portal *{box-sizing:border-box}#cp-portal h1,#cp-portal h2,#cp-portal h3{font-family:'Nunito',system-ui,sans-serif;line-height:1.15;color:var(--ink);margin:0}#cp-portal a{color:inherit;text-decoration:none}#cp-portal button,#cp-portal input,#cp-portal select{font:inherit}#cp-portal button,#cp-portal select{cursor:pointer}#cp-portal button{color:inherit}#cp-portal button:focus-visible,#cp-portal a:focus-visible,#cp-portal input:focus-visible,#cp-portal select:focus-visible{outline:3px solid #cc843c;outline-offset:4px}#cp-portal .wrap{max-width:1260px;margin:auto;padding:0 48px}#cp-portal .top{border-bottom:1px solid var(--line);background:#fffefb}#cp-portal .topbar{display:flex;align-items:center;justify-content:space-between;gap:25px;height:92px}#cp-portal .brand{display:flex;align-items:center;gap:11px;line-height:1.2}#cp-portal .brandmark{display:grid;place-items:center;background:var(--green);color:#fff;width:43px;height:43px;border-radius:14px;font-size:25px}#cp-portal .brand strong{font-family:Nunito,sans-serif;font-size:20px;font-weight:900}#cp-portal .brand small{display:block;font-size:11px;letter-spacing:1.4px;margin-top:4px;text-transform:uppercase}#cp-portal nav{display:flex;gap:26px;align-items:center;font-size:13px;font-weight:700}#cp-portal .bloglink{border:1px solid #ccd7cb;padding:9px 17px;border-radius:99px}#cp-portal .hero{padding:57px 0 43px;background:radial-gradient(ellipse at 81% 25%,#f0f2e3,transparent 50%)}#cp-portal .hero-grid{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:55px}#cp-portal .eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:2px;font-weight:800;color:#57765e;display:flex;align-items:center;gap:8px}#cp-portal .eyebrow:before{content:'';width:7px;height:7px;background:#d9ab53;border-radius:50%}#cp-portal h1{font-size:clamp(38px,4.2vw,58px);letter-spacing:-1.8px;font-weight:900;margin:18px 0}#cp-portal h1 em{font-style:normal;color:var(--green);position:relative}#cp-portal .lead{font-size:15px;line-height:1.8;color:#66736a;max-width:455px}#cp-portal .primary{border:0;border-radius:99px;background:var(--green);color:white;padding:13px 23px;font-weight:700;display:inline-flex;gap:25px;align-items:center;font-size:13px}#cp-portal .hero .primary{margin:20px 0 22px}#cp-portal .small-note{display:flex;gap:18px;font-size:11px;color:#67746c}#cp-portal .small-note span:before{content:'✓';color:#649377;margin-right:6px}#cp-portal .scene{position:relative;height:330px;border-radius:90px 90px 50px 50px;background:#e6ebdd;transform:rotate(-2deg);padding:26px;box-shadow:15px 15px 0 #f1e9ce}#cp-portal .scene .label{position:absolute;bottom:0;left:-19px;padding:12px 19px;border-radius:14px;background:white;box-shadow:0 5px 25px #31473415;transform:rotate(2deg);font-size:12px;font-weight:700}#cp-portal .scene svg{width:100%;height:100%;display:block}#cp-portal .stats{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;margin-top:40px;font-size:12px;color:#66756a}#cp-portal .stats strong{color:var(--ink)}#cp-portal .stats span{display:flex;gap:10px;align-items:center}#cp-portal .content{padding:36px 0 55px}#cp-portal .sectionhead{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}#cp-portal h2{font-size:29px;font-weight:900;letter-spacing:-.7px}#cp-portal .muted{color:#6b796f;font-size:13px;margin:8px 0}#cp-portal .search{position:relative;width:315px}#cp-portal .search input{width:100%;border:1px solid #dce2d6;border-radius:11px;background:white;padding:12px 15px 12px 38px;font-size:12px;color:var(--ink)}#cp-portal .search:before{content:'⌕';font-size:23px;position:absolute;left:13px;top:3px;color:#7e8d7a}#cp-portal .layout{display:grid;grid-template-columns:195px 1fr;gap:30px}#cp-portal aside{border-right:1px solid var(--line);padding-right:23px}#cp-portal .filtertitle{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;font-weight:800;margin:23px 0 10px;color:#7a8778}#cp-portal .filtertitle:first-child{margin-top:0}#cp-portal .filterbtn{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;background:none;text-align:left;padding:9px 12px;border-radius:8px;font-size:12px;margin:2px 0}#cp-portal .filterbtn.active{background:#e9efdf;color:#315d40;font-weight:800}#cp-portal .count{font-size:10px;color:#82907d}#cp-portal .topic{width:100%;border:1px solid #d9e0d4;border-radius:8px;padding:9px;background:#fffefb;color:var(--ink);font-size:12px}#cp-portal .tip{margin-top:25px;background:#f1efe1;padding:15px;border-radius:12px;font-size:11px;line-height:1.8}#cp-portal .tip b{display:block;margin-bottom:6px;font-family:Nunito;font-size:14px}#cp-portal .resultsbar{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#7b887c;margin:0 0 15px}#cp-portal .reset{border:0;background:none;color:#32664d;font-size:11px;text-decoration:underline}#cp-portal .cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}#cp-portal .card{display:flex;flex-direction:column;background:white;border:1px solid #e3e7dc;border-radius:15px;overflow:hidden;transition:transform .2s,box-shadow .2s}#cp-portal .card:hover{transform:translateY(-4px);box-shadow:0 10px 22px #324c3710}#cp-portal .art{height:155px;position:relative;overflow:hidden;display:grid;place-items:center;background:var(--card-bg)}#cp-portal .art svg{height:100%;width:100%}#cp-portal .kind{position:absolute;top:10px;left:11px;background:#fffffff0;border-radius:99px;padding:3px 9px;font-size:8px;letter-spacing:.3px;font-weight:700;color:#4c6051}#cp-portal .cardbody{padding:17px;display:flex;flex:1;flex-direction:column}#cp-portal .tag{font-size:9px;color:var(--accent);font-weight:700;margin-bottom:7px}#cp-portal h3{font-size:17px;font-weight:900;letter-spacing:-.2px}#cp-portal .cardbody p{font-size:11px;line-height:1.7;color:#748073;flex:1;margin:8px 0 14px}#cp-portal .cardfoot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #edf0e8;padding-top:12px;font-size:9px;color:#869080}#cp-portal .play{color:#31634b;font-weight:800;font-size:11px}#cp-portal .empty{grid-column:1/-1;padding:60px 20px;text-align:center;border:1px dashed #cad3c3;border-radius:15px}#cp-portal .teacher{margin-top:38px;background:#eaf0e4;border-radius:18px;padding:25px 30px;display:flex;align-items:center;justify-content:space-between;gap:25px}#cp-portal .teacher h3{font-size:21px}#cp-portal .teacher p{margin:7px 0;color:#6b7a6c;font-size:12px}#cp-portal .teacher a{white-space:nowrap;font-size:12px;font-weight:700;border-bottom:1px solid #739578}#cp-portal footer{border-top:1px solid var(--line);padding:25px 0;color:#7a8779;font-size:11px}#cp-portal footer .wrap{display:flex;justify-content:space-between;gap:15px}#cp-portal .crumb{padding:25px 0;font-size:12px;color:#748571}#cp-portal .back{border:0;background:none;padding:0;color:#426c53;font-size:12px}#cp-portal .detailhead{max-width:850px;padding:10px 0 22px}#cp-portal .detailhead h1{font-size:42px;margin:12px 0}#cp-portal .pills{display:flex;gap:8px;flex-wrap:wrap}#cp-portal .pill{font-size:11px;padding:5px 11px;background:#eaf0e3;border-radius:30px}#cp-portal .gamebox{background:#1f332b;border-radius:18px;overflow:hidden;margin:5px 0 30px}#cp-portal .gamebar{display:flex;align-items:center;justify-content:space-between;padding:12px 17px;color:#e5eee3;font-size:12px;gap:10px}#cp-portal .gamebar button{background:#ffffff15;border:1px solid #ffffff30;border-radius:7px;color:white;padding:6px 10px;font-size:11px}#cp-portal .stage{height:650px;min-height:400px;display:grid;place-items:center;background:#eaf0e3;position:relative}#cp-portal .launch{text-align:center;padding:35px;max-width:500px}#cp-portal .launch .bigicon{font-size:75px}#cp-portal .launch h2{margin:12px 0}#cp-portal .launch p{color:#6b7c6b;font-size:13px}#cp-portal iframe{width:100%;height:100%;border:0;display:block;background:white}#cp-portal .gamebox:fullscreen .stage{height:calc(100vh - 62px)}#cp-portal .details{display:grid;grid-template-columns:1fr 1fr;gap:25px}#cp-portal .info{padding:27px;background:white;border:1px solid var(--line);border-radius:14px}#cp-portal .info h2{font-size:22px;margin-bottom:13px}#cp-portal .info p{font-size:13px;line-height:1.9;color:#627362}#cp-portal .info.teacherinfo{grid-column:1/-1;background:#eef2e7}#cp-portal .info ul{padding-left:19px;font-size:13px;line-height:1.9;color:#627362}#cp-portal .notice{font-size:11px;color:#788273;margin-top:12px}#cp-portal .related{margin-top:40px}#cp-portal .related h2{margin-bottom:23px}#cp-portal .privacy{max-width:760px;padding:40px 0 70px}#cp-portal .privacy p{line-height:1.9;color:#657265}#cp-portal .privacy h2{margin:30px 0 10px;font-size:22px}#cp-portal .skip{position:absolute;left:-9999px}#cp-portal .skip:focus{left:15px;top:10px;background:white;padding:10px;z-index:100}#cp-portal .status{font-size:12px;color:#4f6e54;margin:8px 0}#cp-portal .mobilelabel{display:none}
@media(max-width:1000px){#cp-portal .wrap{padding:0 25px}#cp-portal .cards{grid-template-columns:repeat(2,minmax(0,1fr))}#cp-portal .hero-grid{gap:30px}#cp-portal .scene{height:290px}#cp-portal .layout{grid-template-columns:170px 1fr;gap:20px}#cp-portal nav{gap:15px}#cp-portal .stats span:last-child{display:none}}
@media(max-width:650px){#cp-portal .wrap{padding:0 19px}#cp-portal .topbar{height:77px}#cp-portal nav a:not(:first-child){display:none}#cp-portal .brand strong{font-size:16px}#cp-portal .brand small{font-size:8px}#cp-portal .brandmark{width:35px;height:35px;font-size:20px}#cp-portal .hero{padding:30px 0 20px}#cp-portal .hero-grid{grid-template-columns:1fr;gap:22px}#cp-portal h1{font-size:41px}#cp-portal .scene{height:235px;margin:0 15px 10px}#cp-portal .small-note{font-size:10px}#cp-portal .stats{margin-top:24px;gap:14px;font-size:10px}#cp-portal .stats span{gap:5px}#cp-portal .sectionhead{display:block}#cp-portal .search{width:100%;margin-top:20px}#cp-portal .layout{display:block}#cp-portal aside{border:0;padding:0;margin-bottom:24px;display:flex;flex-wrap:wrap;gap:8px}#cp-portal .filtertitle{display:none}#cp-portal .grades{display:flex;flex-wrap:wrap;gap:5px;width:100%}#cp-portal .filterbtn{width:auto;font-size:11px;padding:7px 10px;border:1px solid #dfe6d7}#cp-portal .count{display:none}#cp-portal .topic{width:calc(50% - 4px);font-size:11px}#cp-portal .tip{display:none}#cp-portal .cards{gap:11px}#cp-portal .art{height:125px}#cp-portal .cardbody{padding:12px}#cp-portal h3{font-size:15px}#cp-portal .cardbody p{font-size:10px}#cp-portal .cardfoot{font-size:8px;gap:5px}#cp-portal .play{font-size:10px}#cp-portal .teacher{display:block;padding:22px}#cp-portal .teacher a{display:inline-block;margin-top:10px}#cp-portal footer .wrap{display:block}#cp-portal .detailhead h1{font-size:33px}#cp-portal .details{grid-template-columns:1fr}#cp-portal .stage{height:72vh;min-height:420px}#cp-portal .gamebar{font-size:10px;padding:10px}#cp-portal .gamebar button{font-size:10px;padding:6px}#cp-portal .related .cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Version 2: illustrated learning worlds */
#cp-portal{--ink:#292540;--green:#7051ce;--cream:#fbfaff;--line:#e8e5f2;background:#fbfaff;color:#292540;font-size:15px}#cp-portal .wrap{max-width:1370px;padding:0 54px}#cp-portal .welcome-strip{background:#f0eafa;color:#6f57a0;display:flex;justify-content:space-between;padding:8px max(54px,calc((100% - 1262px)/2));font-size:10px;font-weight:700;letter-spacing:.2px;gap:20px}#cp-portal .top{background:#fff;border-color:#eeeaf5}#cp-portal .topbar{height:91px}#cp-portal .brandmark{background:linear-gradient(145deg,#9576ec,#6550bd);color:#ffe18c;border-radius:16px;width:48px;height:48px;font-size:32px;box-shadow:0 5px 12px #7051ce1a;transform:rotate(-7deg)}#cp-portal .brand strong{font-size:22px;letter-spacing:-.6px;font-weight:900}#cp-portal .brand strong b{color:#7753c6}#cp-portal .brand small{font-size:9px;color:#8a8299;letter-spacing:1.6px}#cp-portal nav{font-size:12px;gap:30px;color:#655e76}#cp-portal nav a:hover{color:#7051ce}#cp-portal .bloglink{border-color:#ddd4ee;background:#f8f5ff;color:#6c4abd;padding:10px 18px}#cp-portal .hero{padding:35px 0 0;background:radial-gradient(ellipse at 7% 10%,#ede6ff,transparent 52%),radial-gradient(ellipse at 88% 67%,#e8f6ff,transparent 50%),#fcfbff;overflow:hidden}#cp-portal .hero-grid{grid-template-columns:.88fr 1.12fr;gap:30px;min-height:490px}#cp-portal .hero-copy{padding:15px 0 25px}#cp-portal .eyebrow{color:#8c70b7;font-size:10px;letter-spacing:1.8px}#cp-portal .eyebrow:before{background:#eeae4f;width:6px;height:6px}#cp-portal h1{font-size:clamp(40px,4.25vw,61px);letter-spacing:-2.1px;line-height:1.04;margin:23px 0;font-weight:900}#cp-portal h1 em{color:#7650cc}#cp-portal .lead{font-size:14px;line-height:1.9;color:#7d758b;max-width:450px}#cp-portal .hero-actions{display:flex;gap:21px;align-items:center;margin:26px 0 23px}#cp-portal .primary{background:linear-gradient(120deg,#8864dd,#6f4bc5);border-radius:13px;box-shadow:0 7px 0 #5942a71a,0 10px 25px #7950c426;padding:15px 22px;font-size:12px;gap:23px;transition:transform .2s,box-shadow .2s}#cp-portal .primary:hover{transform:translateY(-2px);box-shadow:0 9px 0 #5942a712,0 13px 29px #7950c42e}#cp-portal .hero .primary{margin:0}#cp-portal .secondary{font-size:12px;color:#756587;font-weight:700;display:flex;gap:12px;align-items:center}#cp-portal .small-note{font-size:10px;gap:16px;color:#8b7f9c}#cp-portal .small-note span:before{color:#69a597}#cp-portal .scene{height:444px;padding:0;transform:none;border-radius:38px 85px 38px 75px;box-shadow:11px 12px 0 #e2d8fa;background:#cbd0ed;position:relative;margin:12px 9px 20px 0}#cp-portal .scene>img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit;object-position:50% 50%}#cp-portal .hero-sticker{position:absolute;background:white;border:3px solid white;box-shadow:0 9px 30px #49346820;border-radius:16px;display:flex;gap:9px;align-items:center;padding:10px 14px;color:#5b4d7e;font-size:11px;line-height:1.4;transform:rotate(-5deg)}#cp-portal .sticker-one{left:-25px;top:28px;color:#8062c2;font-size:25px}#cp-portal .sticker-one span{font-size:10px}#cp-portal .sticker-one b{font-size:12px}#cp-portal .sticker-two{right:17px;bottom:-17px;transform:rotate(3deg);font-size:10px}#cp-portal .sticker-two>b{font-family:Nunito;font-weight:900;font-size:34px;color:#d18a45;line-height:1}#cp-portal .stats{background:#fff;border:1px solid #eee9f5;border-radius:18px;margin:22px 0 0;padding:21px 27px;position:relative;z-index:2;box-shadow:0 6px 20px #644e8a06;display:grid;grid-template-columns:repeat(3,1fr);gap:15px}#cp-portal .stats>span{display:flex;gap:13px;border-right:1px solid #eee9f4;align-items:center;font-size:10px;color:#9a8fa6}#cp-portal .stats>span:last-child{border:0}#cp-portal .stats>span>span{display:block}#cp-portal .stats strong{display:block;font-size:12px;margin-bottom:2px}#cp-portal .stats i{font-style:normal;background:#f0e9fb;color:#906bd0;border-radius:12px;font-size:23px;width:42px;height:42px;display:grid;place-items:center}#cp-portal .stats>span:nth-child(2) i{background:#e5f5f0;color:#5caa99}#cp-portal .stats>span:nth-child(3) i{background:#fff2df;color:#d49b49}#cp-portal .sectionhead{margin-bottom:25px}#cp-portal h2{font-size:29px;letter-spacing:-.65px}#cp-portal .sectionhead .eyebrow{margin-bottom:9px}#cp-portal .muted{font-size:12px;color:#908499}#cp-portal .theme-section{padding-top:46px;padding-bottom:38px;scroll-margin-top:20px}#cp-portal .theme-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:13px}#cp-portal .theme-tile{background:#fff;border:1px solid #eee9f4;padding:10px 9px 12px;border-radius:18px;color:#655677;transition:transform .2s,box-shadow .2s;display:flex;align-items:center;flex-direction:column;line-height:1.25;min-width:0}#cp-portal .theme-tile:hover{transform:translateY(-5px);box-shadow:0 8px 25px #7450b416;border-color:#d5c1f2}#cp-portal .theme-picture{width:80px;height:72px;display:block;overflow:hidden;border-radius:15px;margin-bottom:10px;max-width:100%}#cp-portal .theme-picture img{width:100%;height:100%;object-fit:cover}#cp-portal .theme-tile strong{font-family:Nunito;font-size:11px;font-weight:900;min-height:28px;display:grid;place-items:center;text-align:center}#cp-portal .theme-tile small{font-size:9px;color:#aa9fb2;margin-top:5px}#cp-portal .featured{padding-top:8px;padding-bottom:45px}#cp-portal .textlink{color:#8060bd;font-weight:700;font-size:12px;white-space:nowrap}#cp-portal .featured .cards{gap:24px}#cp-portal .featured .art{height:auto;aspect-ratio:16/10}#cp-portal .card{border:1px solid #eae4f0;border-radius:20px;box-shadow:0 4px 15px #47305c04;position:relative}#cp-portal .card:hover{transform:translateY(-5px);box-shadow:0 15px 35px #55367e16;border-color:#cbb9e6}#cp-portal .art{height:auto;aspect-ratio:1.5;position:relative;overflow:hidden;isolation:isolate}#cp-portal .art:after{content:'';position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#34223e20);pointer-events:none}#cp-portal .art img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}#cp-portal .card:hover .art img{transform:scale(1.045)}#cp-portal .kind{left:12px;top:12px;z-index:2;border:1px solid #ffffff60;box-shadow:0 2px 10px #402e4210;font-size:9px;padding:4px 11px;color:#685472;backdrop-filter:blur(8px)}#cp-portal .cardbody{padding:18px 19px 15px}#cp-portal .tag{display:block;font-size:9px;letter-spacing:.1px;color:#9678b7;margin-bottom:9px;font-weight:700}#cp-portal h3{font-size:19px;line-height:1.2;font-weight:900;color:#43334f}#cp-portal .cardbody p{color:#988b9f;font-size:11px;line-height:1.75;margin:9px 0 16px}#cp-portal .cardfoot{border-color:#f0eaf5;color:#a69aae;font-size:9px;padding-top:13px}#cp-portal .play{background:#f1eafa;color:#8458ba;border-radius:9px;padding:7px 10px;font-size:10px}#cp-portal .catalog-section{background:#f4f1fa;border-top:1px solid #eee8f5;border-bottom:1px solid #eee8f5;scroll-margin-top:15px}#cp-portal .content{padding-top:39px;padding-bottom:45px}#cp-portal .layout{grid-template-columns:204px 1fr;gap:27px}#cp-portal aside{border:1px solid #e8e0f0;background:#fff;padding:20px 15px;border-radius:17px;align-self:start}#cp-portal .filtertitle{color:#a293ad;font-size:9px;letter-spacing:1.1px}#cp-portal .filterbtn{padding:11px 10px;font-size:11px;min-height:43px;gap:4px}#cp-portal .filterbtn.active{color:#7a51bc;background:#f0e9fc}#cp-portal .count{color:#a996be;font-size:9px}#cp-portal .topic{background:#fbf9fe;border-color:#e8e0ef;font-size:11px;min-height:43px;color:#7c6d89}#cp-portal .tip{background:#fff8e9;color:#b19a73;border:1px solid #f4e8cb;border-radius:12px;padding:14px;font-size:10px}#cp-portal .tip b{color:#a38452;font-size:13px}#cp-portal .search{width:330px;flex-shrink:0}#cp-portal .search input{border-color:#e4d9ee;background:white;padding:13px 15px 13px 39px;border-radius:12px;font-size:11px;box-shadow:0 3px 10px #79668a04}#cp-portal .search:before{color:#b19bc1;top:3px}#cp-portal .resultsbar{font-size:10px;margin-bottom:16px;color:#a08eb0;min-height:22px}#cp-portal .reset{color:#9479ad;font-size:10px}#cp-portal .teacher-panel{display:grid;grid-template-columns:.85fr 1.15fr;border-radius:26px;overflow:hidden;background:#ede6f8;margin:48px 0;box-shadow:0 7px 30px #6c4b9510;scroll-margin-top:20px}#cp-portal .teacher-visual{position:relative;min-height:330px}#cp-portal .teacher-visual>img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}#cp-portal .teacher-visual>span{position:absolute;bottom:17px;left:17px;right:17px;background:#fffdf2ed;padding:10px 13px;border-radius:10px;font-size:10px;color:#8a6848;font-weight:700;text-align:center}#cp-portal .teacher-copy{padding:34px 40px}#cp-portal .teacher-copy h2{font-size:30px;line-height:1.15;color:#5e4279;margin:14px 0 17px}#cp-portal .teacher-copy>p{font-size:12px;color:#9e85ac;line-height:1.9;max-width:500px}#cp-portal .teacher-steps{display:flex;gap:15px;font-size:9px;color:#9375a7;margin:21px 0 25px}#cp-portal .teacher-steps span{display:flex;align-items:center;gap:6px}#cp-portal .teacher-steps b{background:#fff9;border-radius:8px;padding:6px;color:#9f7cbd;font-family:Nunito;font-size:13px}#cp-portal footer{border-color:#eee7f6;background:#fff;padding:32px 0 15px}#cp-portal footer .footergrid{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:35px;color:#a393ae;font-size:10px}#cp-portal footer .brand strong{font-size:19px;color:#6f557f}#cp-portal footer .brandmark{width:38px;height:38px;font-size:25px}#cp-portal footer p{font-size:10px;line-height:1.9;margin-top:15px}#cp-portal footer .footergrid>div:not(:first-child){display:flex;flex-direction:column;gap:8px}#cp-portal footer .footergrid>div>b{color:#80658c;font-size:12px;margin-bottom:4px}#cp-portal footer .copyright{display:block;border-top:1px solid #f1ebf6;padding-top:15px;margin-top:25px;text-align:center;font-size:9px;color:#b1a3bc}#cp-portal .detail-banner{background:#f1eafb;border:1px solid #e7dcef;border-radius:24px;display:grid;grid-template-columns:1.15fr .85fr;overflow:hidden;margin:5px 0 29px}#cp-portal .detailhead{padding:32px;align-self:center}#cp-portal .detailhead h1{font-size:39px;line-height:1.1;margin:17px 0}#cp-portal .detailhead .lead{font-size:13px;color:#987eaa}#cp-portal .detail-cover{min-height:265px}#cp-portal .detail-cover img{width:100%;height:100%;object-fit:cover;display:block}#cp-portal .pill{background:#ffffffb8;color:#9073aa;font-size:10px;border:1px solid #e8ddf1;padding:6px 11px}#cp-portal .gamebox{background:#4b3864;border-radius:20px;box-shadow:0 8px 30px #5e417d15}#cp-portal .gamebar{background:#4b3864;padding:13px 19px;color:#efe5ff}#cp-portal .gamebar button{background:#ffffff15;border-color:#ffffff2d}#cp-portal .stage{background:#eee9f7;overflow:hidden}#cp-portal .launch-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.6;filter:blur(2px)}#cp-portal .launch{position:relative;background:#fffef5f5;border:3px solid white;box-shadow:0 15px 70px #3b195c30;border-radius:24px;margin:25px;padding:30px 38px;max-width:470px}#cp-portal .launch .bigicon{font-size:25px;background:#e8def8;width:65px;height:65px;display:grid;place-items:center;margin:0 auto 20px;border-radius:22px;color:#9164be}#cp-portal .launch h2{color:#6a4884}#cp-portal .launch p{color:#aa92af;font-size:12px}#cp-portal .launch .notice{font-size:10px}#cp-portal iframe{position:relative;z-index:1}#cp-portal .info{border-color:#e8e0f0;border-radius:20px;padding:28px;position:relative}#cp-portal .info h2{font-size:23px;color:#6c4f7b}#cp-portal .info p,#cp-portal .info ul{color:#9986a3;font-size:12px}#cp-portal .info.teacherinfo{background:#f0eaf8}#cp-portal .crumb{color:#ab98b5;font-size:11px}#cp-portal .back{color:#9676b2}#cp-portal .related h2{color:#6f507f}#cp-portal .privacy p{color:#8c7997}#cp-portal .empty{border-color:#d9c8ea;background:#fff9}
@media(max-width:1100px){#cp-portal .wrap{padding-left:30px;padding-right:30px}#cp-portal .welcome-strip{padding-left:30px;padding-right:30px}#cp-portal nav{gap:20px}#cp-portal .hero-grid{grid-template-columns:.9fr 1.1fr;gap:25px}#cp-portal h1{font-size:48px}#cp-portal .scene{height:390px}#cp-portal .theme-grid{grid-template-columns:repeat(5,minmax(0,1fr))}#cp-portal .theme-picture{width:100%;height:85px}#cp-portal .theme-tile strong{min-height:0}#cp-portal .theme-section{padding-top:35px}#cp-portal .layout{grid-template-columns:180px 1fr;gap:21px}#cp-portal .cards{grid-template-columns:repeat(2,minmax(0,1fr))}#cp-portal .featured .cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}#cp-portal .featured h3{font-size:18px}#cp-portal .stats{padding:19px;gap:10px}#cp-portal .stats>span{font-size:9px;gap:9px}#cp-portal .stats strong{font-size:11px}#cp-portal .teacher-copy{padding:28px}#cp-portal .teacher-copy h2{font-size:27px}#cp-portal .teacher-steps{flex-wrap:wrap}}
@media(max-width:760px){#cp-portal nav{gap:13px}#cp-portal nav .bloglink{display:none}#cp-portal .hero-grid{grid-template-columns:1fr;gap:12px}#cp-portal .hero-copy{padding:10px 0}#cp-portal h1{font-size:50px}#cp-portal .hero h1 br:first-child{display:none}#cp-portal .hero h1{max-width:550px}#cp-portal .scene{height:auto;aspect-ratio:1.5;margin:10px 9px 18px 10px;border-radius:28px 60px 28px 55px}#cp-portal .hero{padding-top:23px}#cp-portal .stats{grid-template-columns:1fr 1fr}#cp-portal .stats>span:nth-child(3){display:none}#cp-portal .stats>span:nth-child(2){border:0}#cp-portal .featured .cards{grid-template-columns:repeat(2,minmax(0,1fr))}#cp-portal .featured .card:last-child{display:none}#cp-portal .sectionhead{gap:15px}#cp-portal .theme-grid{display:flex;overflow-x:auto;padding:4px 1px 11px;scroll-snap-type:x proximity;gap:12px}#cp-portal .theme-tile{min-width:124px;scroll-snap-align:start}#cp-portal .theme-picture{height:80px}#cp-portal .teacher-panel{grid-template-columns:.9fr 1.1fr}#cp-portal .teacher-copy h2{font-size:25px}#cp-portal .teacher-steps{display:grid;gap:9px}#cp-portal .teacher-visual{min-height:360px}#cp-portal .search{width:270px}#cp-portal .detailhead{padding:25px}#cp-portal .detailhead h1{font-size:31px}#cp-portal .detail-cover{min-height:240px}}
@media(max-width:650px){#cp-portal .wrap{padding-left:20px;padding-right:20px}#cp-portal .welcome-strip{padding:7px 20px;font-size:8px;justify-content:center}#cp-portal .welcome-strip>span:last-child{display:none}#cp-portal .topbar{height:78px;gap:12px}#cp-portal .brandmark{width:38px;height:38px;font-size:25px;border-radius:12px}#cp-portal .brand{gap:9px}#cp-portal .brand strong{font-size:18px}#cp-portal .brand small{font-size:7px;letter-spacing:1px}#cp-portal nav a:not(:first-child){display:none}#cp-portal nav{font-size:10px}#cp-portal h1{font-size:43px;letter-spacing:-1.4px;margin:20px 0;line-height:1.04}#cp-portal .hero .eyebrow{font-size:8px;letter-spacing:1.2px}#cp-portal .hero .lead{font-size:13px;line-height:1.8}#cp-portal .hero-actions{gap:20px;margin-top:23px;margin-bottom:21px}#cp-portal .primary{padding:14px 18px;font-size:11px;gap:18px}#cp-portal .secondary{font-size:11px;gap:8px}#cp-portal .small-note{font-size:9px;gap:15px}#cp-portal .hero-copy{padding-bottom:4px}#cp-portal .scene{margin-top:19px}#cp-portal .sticker-one{left:-13px;top:16px;padding:6px 9px;gap:6px;border-width:2px;font-size:21px;border-radius:12px}#cp-portal .sticker-one span{font-size:8px}#cp-portal .sticker-one b{font-size:10px}#cp-portal .sticker-two{padding:8px 10px;right:9px;bottom:-12px;font-size:8px;border-radius:12px}#cp-portal .sticker-two>b{font-size:28px}#cp-portal .stats{margin-top:15px;padding:15px 12px;border-radius:14px;gap:9px}#cp-portal .stats>span{font-size:8px;gap:7px}#cp-portal .stats strong{font-size:9px;line-height:1.35}#cp-portal .stats i{width:30px;height:32px;font-size:18px;border-radius:9px;flex-shrink:0}#cp-portal .theme-section{padding-top:31px;padding-bottom:26px}#cp-portal h2{font-size:25px;letter-spacing:-.6px}#cp-portal .sectionhead{display:block;margin-bottom:19px}#cp-portal .sectionhead .eyebrow{font-size:9px;margin-bottom:8px}#cp-portal .sectionhead .muted{font-size:11px;margin-top:10px}#cp-portal .theme-tile{min-width:114px;border-radius:15px;padding:8px 8px 11px}#cp-portal .theme-picture{height:75px;border-radius:11px}#cp-portal .theme-tile strong{font-size:10px}#cp-portal .theme-tile small{font-size:8px}#cp-portal .featured{padding-bottom:30px}#cp-portal .featured .sectionhead{display:flex;align-items:end;gap:20px}#cp-portal .featured h2{font-size:22px;max-width:230px}#cp-portal .textlink{font-size:10px;white-space:normal;text-align:right;max-width:70px}#cp-portal .featured .cards{gap:12px}#cp-portal .card{border-radius:16px}#cp-portal .cardbody{padding:13px 12px 12px}#cp-portal h3,#cp-portal .featured h3{font-size:16px;line-height:1.2}#cp-portal .cardbody p{font-size:10px;line-height:1.7;margin:9px 0 12px}#cp-portal .tag{font-size:8px;margin-bottom:8px;line-height:1.5}#cp-portal .kind{font-size:8px;top:8px;left:8px;padding:3px 8px}#cp-portal .cardfoot{gap:4px;align-items:center;flex-wrap:wrap;padding-top:9px;font-size:8px}#cp-portal .play{font-size:9px;padding:5px 7px}#cp-portal .art,#cp-portal .featured .art{aspect-ratio:1.3}#cp-portal .catalog-section .content{padding-top:29px;padding-bottom:32px}#cp-portal .search{width:100%;margin-top:19px}#cp-portal .search input{font-size:11px;padding-top:13px;padding-bottom:13px}#cp-portal .layout{display:block}#cp-portal aside{padding:13px;border-radius:14px;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}#cp-portal .grades{gap:5px;margin-bottom:5px;display:grid;grid-template-columns:1fr 1.3fr .8fr}#cp-portal .filterbtn{padding:8px 6px;justify-content:center;font-size:9px;min-height:39px;margin:0;border-color:#eee6f7;text-align:center}#cp-portal .topic{font-size:10px;min-height:40px;background:#fbf9ff}#cp-portal .resultsbar{font-size:9px;margin-bottom:12px}#cp-portal .reset{font-size:9px}#cp-portal .teacher-panel{display:flex;flex-direction:column;margin:30px 0;border-radius:22px}#cp-portal .teacher-visual{min-height:0;aspect-ratio:1.7}#cp-portal .teacher-visual>img{object-position:50% 35%}#cp-portal .teacher-visual>span{font-size:9px;left:14px;right:14px;bottom:13px;padding:8px}#cp-portal .teacher-copy{padding:25px}#cp-portal .teacher-copy h2{font-size:28px}#cp-portal .teacher-copy>p{font-size:12px}#cp-portal .teacher-steps{gap:10px;margin:20px 0 24px;font-size:10px}#cp-portal footer .footergrid{display:grid;grid-template-columns:1fr 1fr;gap:25px;font-size:10px}#cp-portal footer .footergrid>div:first-child{grid-column:1/-1}#cp-portal footer .copyright{font-size:8px;line-height:1.7}#cp-portal .detail-banner{grid-template-columns:1fr;border-radius:20px;margin-bottom:23px}#cp-portal .detailhead{padding:24px}#cp-portal .detailhead h1{font-size:32px;margin:16px 0}#cp-portal .detail-cover{min-height:0;height:205px;grid-row:1}#cp-portal .detail-cover img{object-position:50% 35%}#cp-portal .detailhead .lead{font-size:12px}#cp-portal .pill{font-size:9px;padding:5px 9px}#cp-portal .gamebar{padding:11px;font-size:9px}#cp-portal .gamebar>span{max-width:45%;line-height:1.5}#cp-portal .gamebar button{font-size:9px;padding:6px}#cp-portal .launch{margin:18px;padding:26px 20px}#cp-portal .launch h2{font-size:26px}#cp-portal .launch p{font-size:11px}#cp-portal .launch .bigicon{margin-bottom:15px;width:55px;height:55px;font-size:20px}#cp-portal .info{padding:23px}#cp-portal .info h2{font-size:23px}#cp-portal .info p,#cp-portal .info ul{font-size:12px}#cp-portal .related h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){#cp-portal .card,#cp-portal .theme-tile,#cp-portal .art img,#cp-portal .primary{transition:none}}
#cp-portal .muted,#cp-portal .cardbody p,#cp-portal .lead,#cp-portal .teacher-copy>p,#cp-portal .info p,#cp-portal .info ul,#cp-portal .launch p,#cp-portal .privacy p{color:#786883}#cp-portal .cardbody p{font-size:12px}#cp-portal .teacher-copy>p,#cp-portal .info p,#cp-portal .info ul{font-size:13px}#cp-portal .tag{color:#805894}#cp-portal .cardfoot{color:#887591}#cp-portal .teacher-steps{color:#785a8c}#cp-portal .search input{color:#64506f}#cp-portal .filterbtn{color:#78628a}
@media(max-width:650px){#cp-portal .cardbody p{font-size:11px}#cp-portal .teacher-copy>p,#cp-portal .info p,#cp-portal .info ul{font-size:12px}}
@media(max-width:760px){#cp-portal .hero-grid{grid-template-columns:minmax(0,1fr)}#cp-portal .hero-copy,#cp-portal .scene{min-width:0}#cp-portal .hero h1 br:first-child{display:initial}#cp-portal .hero h1{overflow-wrap:normal}}
#cp-portal .stats>span>span{display:block}
@media(min-width:761px){#cp-portal .stats>span:last-child{display:flex}}
@media(max-width:760px){#cp-portal .stats>span>span:last-child{display:block}#cp-portal .stats>span:nth-child(3){display:none}}
/* Carolina Palhas identity: lilac, rose and dark lettering from supplied reference. */
#cp-portal{--ink:#3d2c43;--green:#a23d73;--cream:#fffafd;--line:#eee1eb;--carolina-rose:#a23d73;--carolina-lilac:#c5bcdd;--carolina-blush:#ead3db;background:#fffafd;color:#3d2c43}
#cp-portal .brand-photo{display:block;width:54px;height:54px;flex-shrink:0;border-radius:50%;border:3px solid #e1c8da;padding:2px;background:#f7eaf1;overflow:hidden;box-shadow:0 4px 13px #98567b12}
#cp-portal .brand-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;border-radius:50%;display:block}
#cp-portal .brand strong{color:#3d2c43}#cp-portal .brand strong b{color:#a23d73}
#cp-portal .brand small{color:#806a86}
#cp-portal .welcome-strip{background:#f1e4ef;color:#805375}
#cp-portal .top{background:#fffdfd;border-color:#efdfeb}
#cp-portal nav{color:#735d78}#cp-portal nav a:hover{color:#a23d73}
#cp-portal .bloglink{background:#fff3f8;border-color:#e7c4d7;color:#963b6c}
#cp-portal .hero{background:radial-gradient(ellipse at 5% 12%,#e8e0f2,transparent 58%),radial-gradient(ellipse at 88% 65%,#f4dfe8,transparent 54%),#fffbfd}
#cp-portal h1 em{color:#a23d73}
#cp-portal .eyebrow{color:#8e627f}#cp-portal .eyebrow:before{background:#bd71a1}
#cp-portal .primary{background:linear-gradient(120deg,#b45188,#9c396d);color:#fff;box-shadow:0 7px 0 #8d375a14,0 10px 25px #a23d7326}
#cp-portal .primary:hover{box-shadow:0 9px 0 #8d375a12,0 13px 29px #a23d732e}
#cp-portal .secondary{color:#805881}
#cp-portal .small-note{color:#846e86}#cp-portal .small-note span:before{color:#9b6395}
#cp-portal .scene{box-shadow:11px 12px 0 #dcd0e8;background:#ded5e8}
#cp-portal .hero-sticker{color:#8e4b74}#cp-portal .sticker-one{color:#a23d73}#cp-portal .sticker-two>b{color:#a64b7d}
#cp-portal .stats{border-color:#ecdde8;background:#fffdfd}
#cp-portal .stats strong{color:#5c3e61}#cp-portal .stats>span{color:#88718b;border-color:#f1e4ee}
#cp-portal .stats i{background:#eae1f2;color:#8a649b}#cp-portal .stats>span:nth-child(2) i{background:#f7e3ed;color:#ac5787}#cp-portal .stats>span:nth-child(3) i{background:#f1e8f5;color:#9a6aa3}
#cp-portal .theme-tile{border-color:#eddfeb;color:#72547b;background:#fffdfd}#cp-portal .theme-tile:hover{border-color:#d9afc9;box-shadow:0 8px 25px #a4487f15}
#cp-portal .theme-tile small{color:#8f7693}#cp-portal .textlink{color:#a23d73}
#cp-portal .card{border-color:#ebdfe9;background:#fffefe}#cp-portal .card:hover{border-color:#d7b4cb;box-shadow:0 15px 35px #9a527a16}
#cp-portal .tag{color:#9d4779}#cp-portal h3{color:#513859}
#cp-portal .cardfoot{border-color:#f1e6ef;color:#89708e}#cp-portal .play{background:#f8e8f0;color:#9b3c70}
#cp-portal .catalog-section{background:#f5eff8;border-color:#ebdfef}
#cp-portal aside{background:#fffdfd;border-color:#e8dbe9}
#cp-portal .filtertitle{color:#8d7094}#cp-portal .filterbtn{color:#795f80}#cp-portal .filterbtn.active{background:#f5e4ee;color:#973e70}
#cp-portal .count{color:#9a6b8d}#cp-portal .topic{background:#fcf7fc;border-color:#e9dce9;color:#795f80}
#cp-portal .search input{border-color:#e5cfe0;color:#6f5078;background:#fffefe}#cp-portal .search:before{color:#b77b9e}
#cp-portal .reset{color:#9d4779}#cp-portal .resultsbar{color:#8f7398}
#cp-portal .tip{background:#fff0f5;border-color:#f0d3e2;color:#8d6682}#cp-portal .tip b{color:#9c4b79}
#cp-portal .teacher-panel{background:#ede3f3;box-shadow:0 7px 30px #8e527c10}
#cp-portal .teacher-portrait{background:#ead3db;min-height:415px}#cp-portal .teacher-portrait>img{object-position:50% 26%}
#cp-portal .teacher-visual>span{background:#fff7fbea;color:#8e4575}
#cp-portal .teacher-copy h2{color:#6d4374}#cp-portal .teacher-steps{color:#805383}#cp-portal .teacher-steps b{color:#9e4b7b;background:#fff7fc}
#cp-portal .detail-banner{background:#f2e8f5;border-color:#e8d7e8}#cp-portal .detailhead .lead{color:#8e6e96}
#cp-portal .pill{background:#fff7fc;border-color:#e7d2e5;color:#8e5481}
#cp-portal .gamebox,#cp-portal .gamebar{background:#6d436b}#cp-portal .gamebar{color:#fff3fa}
#cp-portal .launch{background:#fffafbf5}#cp-portal .launch .bigicon{background:#f2dfea;color:#aa477a}#cp-portal .launch h2{color:#784975}
#cp-portal .info{border-color:#eadce8}#cp-portal .info h2{color:#774d7c}#cp-portal .info.teacherinfo{background:#f1e7f4}
#cp-portal .back{color:#9b4c80}#cp-portal .crumb{color:#927299}#cp-portal .related h2{color:#704677}
#cp-portal footer{background:#fffafd;border-color:#eddfeb}#cp-portal footer .brand strong{color:#8d4977}
#cp-portal footer .brand-photo{width:44px;height:44px}
#cp-portal footer .footergrid{color:#8c7395}#cp-portal footer .footergrid>div>b{color:#84557e}#cp-portal footer .copyright{border-color:#f0e1ec;color:#92749a}
#cp-portal button:focus-visible,#cp-portal a:focus-visible,#cp-portal input:focus-visible,#cp-portal select:focus-visible{outline-color:#a23d73}
@media(max-width:650px){#cp-portal .brand-photo{width:42px;height:42px;border-width:2px}#cp-portal .teacher-portrait{min-height:0;aspect-ratio:1.25}#cp-portal .teacher-portrait>img{object-position:50% 22%}#cp-portal .brand strong{font-size:17px}#cp-portal .scene{box-shadow:8px 9px 0 #dcd0e8}}

/* 2.1.2: retain a playable iframe viewport even if theme/ad scripts reset its parent height. */
#cp-portal #stage{display:block;position:relative;min-width:0}
#cp-portal #stage:has(.launch){display:grid}
#cp-portal #stage>iframe.cpjg-game-frame{display:block!important;position:relative!important;inset:auto!important;width:100%!important;max-width:none!important;height:clamp(520px,78vh,900px)!important;min-height:520px!important;max-height:none!important;border:0!important;aspect-ratio:auto!important}
#cp-portal #gamebox:fullscreen{display:flex!important;flex-direction:column!important;width:100vw!important;height:100vh!important;height:100dvh!important;max-width:none!important;max-height:none!important;border-radius:0;margin:0!important;overflow:hidden}
#cp-portal #gamebox:fullscreen>.gamebar{flex:0 0 auto;min-height:58px}
#cp-portal #gamebox:fullscreen>#stage{flex:1 1 0!important;height:0!important;min-height:0!important;overflow:hidden}
#cp-portal #gamebox:fullscreen>#stage>iframe.cpjg-game-frame{position:absolute!important;inset:0!important;height:100%!important;min-height:0!important;width:100%!important}
