@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Nunito:wght@600;700;800;900&display=swap');
:root{--navy:#122044;--blue:#2463eb;--sky:#eaf3ff;--gold:#f5b82e;--ink:#192746;--muted:#697894;--line:#e3eaf4;--green:#26a979;--paper:#f6f8fc;--white:#fff;--shadow:0 12px 36px rgba(30,53,94,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px}.topbar{height:76px;background:var(--navy);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 max(28px,calc((100vw - 1320px)/2));}.brand{display:flex;align-items:center;gap:12px;color:white;text-decoration:none}.brand-mark{font-size:33px;line-height:1}.brand strong{display:block;font:800 17px 'Nunito',sans-serif;letter-spacing:.1px}.brand small{display:block;color:#b9c5df;font-size:9px;letter-spacing:1.5px;font-weight:700;margin-top:2px}.top-note{font-weight:700;font-size:13px;color:#d3def4}.sparkle{color:var(--gold);font-size:17px;margin-right:8px}.welcome{max-width:1320px;margin:0 auto;padding:29px 30px 22px;display:flex;align-items:center;justify-content:space-between}.eyebrow{color:#6c7b99;letter-spacing:1.4px;font-size:10px;font-weight:800;margin:0 0 7px}.welcome h1{font:900 31px 'Nunito',sans-serif;margin:0 0 5px;color:var(--navy)}.welcome-copy>p:last-child{margin:0;color:#62708b;font-size:14px}.rory-card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);display:flex;align-items:center;gap:12px;padding:11px 18px 11px 12px}.rory-face{width:48px;height:48px;display:grid;place-items:center;font-size:31px;background:#fff4d7;border-radius:14px}.rory-card b,.rory-card small{display:block}.rory-card b{font:800 14px 'Nunito',sans-serif;color:var(--navy)}.rory-card small{color:var(--muted);font-size:12px;margin-top:2px}.year-tabs{max-width:1320px;padding:0 30px;margin:0 auto 15px;display:flex;gap:10px}.year-tab{cursor:pointer;border:1px solid var(--line);background:white;color:#4e5d79;border-radius:11px;padding:9px 16px;font:800 13px 'Nunito',sans-serif;transition:.16s;}.year-tab:hover{border-color:#a9c1fb}.year-tab.active{background:var(--blue);border-color:var(--blue);color:white;box-shadow:0 5px 13px #2463eb35}.workbench{max-width:1320px;margin:0 auto 25px;padding:0 30px;display:grid;grid-template-columns:275px minmax(0,1fr);gap:17px;align-items:stretch}.lesson-panel,.challenge-panel{background:white;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.lesson-panel{padding:21px 17px 17px;display:flex;flex-direction:column}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:0 4px 13px}.panel-heading h2{font:900 22px 'Nunito',sans-serif;color:var(--navy);margin:0}.count-pill{background:#f0f4fa;color:#66748e;border-radius:20px;padding:6px 10px;font-size:11px;font-weight:800}.lesson-list{display:grid;gap:7px}.lesson-card{width:100%;border:1px solid transparent;background:transparent;display:grid;grid-template-columns:32px 1fr auto;gap:9px;align-items:center;text-align:left;padding:9px 8px;border-radius:12px;cursor:pointer;color:var(--ink);}.lesson-card:hover{background:#f6f8fc}.lesson-card.active{background:#edf4ff;border-color:#d8e6ff}.lesson-num{height:30px;width:30px;border-radius:9px;display:grid;place-items:center;background:#f0f3f8;color:#76849d;font:800 12px 'Nunito',sans-serif}.lesson-card.active .lesson-num{background:#d9e8ff;color:#2463eb}.lesson-card b{display:block;font:800 12px 'Nunito',sans-serif;line-height:1.25}.lesson-card small{display:block;color:#8591a6;font-size:10px;margin-top:3px}.lesson-done{color:var(--green);font-size:15px}.thinking-card{margin-top:auto;background:#f4f8ff;border:1px solid #e5efff;border-radius:13px;padding:12px;display:flex;gap:9px;margin-top:17px}.thought-icon{color:var(--blue);font-size:17px}.thinking-card b{font:800 12px 'Nunito',sans-serif;color:var(--navy)}.thinking-card p{font-size:11px;color:#687793;line-height:1.45;margin:4px 0 0}.challenge-panel{padding:21px 24px 18px;min-width:0}.challenge-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.lesson-meta{font-size:10px;letter-spacing:1.25px;font-weight:800;color:var(--blue);display:flex;align-items:center;gap:8px;margin:1px 0 6px}.meta-dot{color:#a8b4c8}.challenge-head h2{font:900 22px 'Nunito',sans-serif;color:var(--navy);margin:0}.challenge-head p{font-size:13px;color:#6b7993;margin:4px 0 0}.reset-button{border:1px solid var(--line);background:white;color:#687893;border-radius:9px;padding:8px 11px;font:700 12px 'DM Sans',sans-serif;cursor:pointer}.reset-button:hover{background:#f6f8fc;color:var(--navy)}.play-area{display:grid;grid-template-columns:minmax(245px,.9fr) minmax(325px,1.1fr);gap:17px}.maze-wrap{background:#f2f7ff;border:1px solid #e0ebfa;border-radius:15px;padding:14px 15px 11px;display:flex;flex-direction:column;align-items:center}.maze-label{display:flex;justify-content:space-between;width:100%;font-size:9px;letter-spacing:1.2px;font-weight:800;color:#71809a}.maze-hint{letter-spacing:0;text-transform:none;font-size:10px;font-weight:600;color:#9aa6b9}.maze{width:min(100%,310px);aspect-ratio:1;display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin:13px auto 9px}.cell{border-radius:9px;background:white;border:1px solid #e0eaf6;display:grid;place-items:center;font-size:25px;position:relative}.cell.path-ghost{background:#e5efff}.cell.goal{background:#fff4d7;border-color:#ffe3a0}.cell.rock{background:#c7d0de;border-color:#b7c3d3}.cell.current{outline:3px solid #3377ff;outline-offset:-3px;z-index:1}.cell.current:after{content:'';position:absolute;bottom:4px;right:4px;width:9px;height:9px;background:#3377ff;border-radius:50%;border:2px solid white}.legend-rory,.legend-star,.legend-wall{font-style:normal}.legend-star{color:#f2b422}.maze-legend{width:100%;display:flex;justify-content:center;gap:17px;color:#77849b;font-size:10px}.maze-legend span{display:flex;align-items:center;gap:4px}.legend-rory{font-size:13px}.legend-wall{display:inline-block;width:11px;height:11px;background:#c7d0de;border-radius:3px}.hidden{display:none!important}.builder{background:#fbfcff;border:1px solid var(--line);border-radius:15px;padding:13px;min-width:0}.builder-title{display:flex;align-items:flex-start;justify-content:space-between}.builder-title h3{font:900 15px 'Nunito',sans-serif;margin:0;color:var(--navy)}.builder-title p{font-size:11px;color:#7b879e;margin:3px 0 0}.step-count{font-size:10px;color:#7e8ba2;font-weight:700;white-space:nowrap}.block-tray{display:flex;flex-wrap:wrap;gap:7px;margin:11px 0}.code-block{cursor:pointer;border:0;border-radius:8px;color:white;padding:8px 10px;display:flex;align-items:center;gap:6px;font:800 11px 'Nunito',sans-serif;box-shadow:0 3px 0 rgba(16,38,82,.13);transition:transform .12s,filter .12s}.code-block:hover{transform:translateY(-2px);filter:brightness(1.04)}.code-block:active{transform:translateY(1px)}.code-block.forward{background:#2872e8}.code-block.left{background:#8b5adb}.code-block.right{background:#e48c2e}.code-block.repeat{background:#168e79}.code-block.if{background:#138c8a}.code-block .block-icon{font-size:14px}.program-box{height:114px;border:1px dashed #cbd5e4;border-radius:10px;background:white;overflow:auto}.program-label{display:flex;justify-content:space-between;align-items:center;padding:8px 10px 4px;color:#8995aa;font-size:9px;font-weight:800;letter-spacing:1.1px}.text-button{border:0;background:none;color:#71809a;font:700 10px 'DM Sans',sans-serif;cursor:pointer}.text-button:hover{color:var(--blue)}.program-list{padding:2px 10px 8px 29px;margin:0;color:#9aa5b8;font-size:10px}.program-list li{padding:2px 0}.program-list li::marker{color:#aeb8c8}.program-list .empty-program{list-style:none;margin-left:-20px;padding-top:10px;color:#a1adbe;font-style:italic}.program-token{display:inline-flex;align-items:center;gap:6px;border-radius:6px;padding:3px 8px;background:#eaf2ff;color:#2361cc;font-weight:700}.program-token.left{background:#f2eaff;color:#7046bc}.program-token.right{background:#fff1df;color:#a05c13}.program-token.repeat{background:#e2f6f1;color:#087863}.program-token.if{background:#e2f6f1;color:#087863}.program-token button{border:0;background:none;color:inherit;cursor:pointer;padding:0 1px;font-size:13px;line-height:1}.run-row{display:flex;gap:8px;margin-top:10px}.run-button{border:0;border-radius:9px;background:var(--green);color:white;padding:10px 15px;min-height:39px;cursor:pointer;font:800 12px 'Nunito',sans-serif;box-shadow:0 4px 0 #14835d}.run-button:hover{background:#208f68}.run-button:disabled,.step-button:disabled{opacity:.55;cursor:not-allowed}.run-button span{font-size:10px;margin-right:5px}.step-button{border:1px solid var(--line);border-radius:9px;background:white;color:#65748e;padding:9px 12px;font:800 11px 'Nunito',sans-serif;cursor:pointer}.step-button:hover{border-color:#b7c8e6;color:var(--navy)}.feedback{min-height:17px;margin:9px 2px 0;color:#6f7e97;font-size:10px}.feedback.good{color:#16825e;font-weight:700}.feedback.try{color:#ad671e;font-weight:700}.challenge-bottom{border-top:1px solid var(--line);margin-top:15px;padding-top:13px;display:flex;justify-content:space-between;align-items:center;gap:10px}.concept{display:flex;align-items:center;gap:9px;min-width:0}.concept-icon{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#fff4d7;color:#c58b10;font-weight:900}.concept b{font:800 11px 'Nunito',sans-serif;color:var(--navy)}.concept p{font-size:10px;color:#74819a;margin:2px 0 0}.next-button{border:0;border-radius:9px;background:#edf3ff;color:#245dd0;padding:9px 12px;font:800 11px 'Nunito',sans-serif;white-space:nowrap;cursor:pointer}.next-button:hover{background:#dce9ff}footer{max-width:1260px;margin:0 auto;padding:0 30px 24px;display:flex;justify-content:space-between;color:#8a96aa;font-size:10px}footer a{color:#71809a;text-decoration:none;font-weight:700}footer a:hover{color:var(--blue)}.celebration{position:fixed;z-index:5;right:24px;bottom:24px;background:var(--navy);color:white;box-shadow:0 12px 35px #12204440;border-radius:15px;padding:14px 15px;display:flex;align-items:center;gap:11px;min-width:255px;transform:translateY(140%);opacity:0;transition:.3s}.celebration.show{transform:translateY(0);opacity:1}.celebration>span{font-size:28px}.celebration b,.celebration small{display:block}.celebration b{font:800 13px 'Nunito',sans-serif}.celebration small{color:#c8d5ee;font-size:11px;margin-top:3px}.celebration button{margin-left:auto;color:#b9c5df;background:none;border:0;font-size:20px;cursor:pointer}
@media(max-width:900px){.workbench{grid-template-columns:230px minmax(0,1fr);padding:0 18px}.welcome,.year-tabs{padding-left:18px;padding-right:18px}.play-area{grid-template-columns:1fr}.maze-wrap{display:grid;grid-template-columns:1fr;}.maze{width:min(100%,280px)}.challenge-panel{padding:18px}.lesson-panel{padding:17px 12px}.lesson-card{grid-template-columns:29px 1fr auto;gap:7px;padding:8px 6px}}
@media(max-width:640px){.topbar{height:64px;padding:0 16px}.brand strong{font-size:14px}.brand small{font-size:8px}.brand-mark{font-size:28px}.top-note{font-size:0}.top-note .sparkle{font-size:18px}.welcome{padding-top:22px;align-items:flex-start}.welcome h1{font-size:26px}.welcome-copy>p:last-child{max-width:310px;font-size:13px;line-height:1.45}.rory-card{padding:7px;border-radius:13px}.rory-card span:last-child{display:none}.rory-face{height:42px;width:42px;font-size:27px}.year-tabs{overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.year-tabs::-webkit-scrollbar{display:none}.year-tab{white-space:nowrap;padding:8px 12px}.workbench{display:flex;flex-direction:column;gap:12px;padding:0 12px}.lesson-panel{padding:13px 12px}.panel-heading{padding-bottom:10px}.lesson-list{display:flex;overflow-x:auto;gap:7px;scrollbar-width:none}.lesson-list::-webkit-scrollbar{display:none}.lesson-card{min-width:142px;grid-template-columns:27px 1fr;padding:8px 7px}.lesson-card .lesson-done{display:none}.thinking-card{display:none}.challenge-panel{padding:16px 13px}.challenge-head{margin-bottom:12px}.challenge-head h2{font-size:20px}.challenge-head p{max-width:290px;font-size:12px;line-height:1.45}.reset-button{padding:7px 9px}.play-area{gap:10px}.maze-wrap{padding:12px}.maze{max-width:290px;gap:4px}.cell{font-size:23px;border-radius:7px}.builder{padding:11px}.block-tray{gap:6px}.code-block{padding:8px 9px}.challenge-bottom{align-items:flex-start}.concept{align-items:flex-start}.concept p{line-height:1.4}.next-button{padding:9px 10px}footer{padding:0 14px 20px;gap:12px;line-height:1.4}.celebration{left:12px;right:12px;bottom:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
