:root{--cream:#fffaf0;--paper:#fff;--ink:#20243c;--soft:#596075;--line:#e9e4d8;--gold:#f6b73c;--gold-light:#fff1c9;--teal:#0c9e91;--teal-light:#e4f8f4;--violet:#7759c4;--shadow:0 22px 65px rgba(29,38,68,.07);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--cream)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;display:flex;flex-direction:column}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}main{flex:1}[hidden]{display:none!important}.shell{width:min(1320px,calc(100% - 64px));margin:auto}.eyebrow{font-size:.75rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#ab7311;margin:0 0 18px}.eyebrow-dot{display:inline-block;background:var(--gold);width:9px;height:9px;border-radius:50%;margin-right:7px}.lead{color:var(--soft);font-size:1.18rem;line-height:1.7}.topbar{min-height:83px;background:rgba(255,250,240,.92);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:12px max(32px,calc((100vw - 1320px)/2));gap:24px;position:sticky;top:0;z-index:20;backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:12px;font-size:1.05rem;font-weight:850;line-height:1.08;white-space:nowrap}.brand small{display:block;color:#9d7430;font-size:.67rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;margin-top:5px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:var(--gold);font-size:1.6rem;color:#4a3b2d;box-shadow:0 5px 0 #db9f31}.topbar nav{display:flex;align-items:center;gap:30px;color:var(--soft);font-size:.85rem;font-weight:700}.topbar nav a{color:var(--teal)}.nav-current{color:var(--ink)}footer{display:flex;justify-content:space-between;gap:20px;padding:28px max(32px,calc((100vw - 1320px)/2));border-top:1px solid var(--line);color:#787a87;font-size:.78rem}.button{border:0;border-radius:13px;padding:13px 19px;min-height:46px;font-size:.89rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:transform .15s,box-shadow .15s}.button:hover:not(:disabled){transform:translateY(-2px);text-decoration:none}.button.primary{background:var(--gold);color:#352615;box-shadow:0 5px 0 #d99d2d}.button.primary:hover:not(:disabled){box-shadow:0 7px 0 #d99d2d}.button.secondary{background:#fff;border:1px solid #dedbd2;color:var(--ink)}.button.dark{background:var(--ink);color:#fff}.text-button{border:0;background:none;color:var(--teal);font-weight:800;padding:6px 0}.text-button:hover{text-decoration:underline}.panel{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}label{font-weight:750;font-size:.83rem;display:block}input,textarea,select{display:block;width:100%;border:1px solid #dcdedc;background:#fff;border-radius:11px;padding:12px 14px;margin-top:8px;color:var(--ink);outline:none}input:focus,textarea:focus,select:focus{border-color:var(--teal);box-shadow:0 0 0 4px rgba(12,158,145,.13)}textarea{resize:vertical;line-height:1.55}.form-error{color:#b2333d;font-size:.84rem;font-weight:700}

/* Entry */
.welcome{min-height:calc(100vh - 145px);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(400px,.95fr);align-items:center;gap:clamp(36px,6vw,100px);padding:64px 0 82px}.welcome-copy h1{font-size:clamp(2.8rem,5vw,5.1rem);letter-spacing:-.055em;line-height:1.08;max-width:760px;margin:0}.welcome-copy>.lead{max-width:650px;margin:25px 0 25px}.route-preview{display:flex;align-items:center;gap:14px;flex-wrap:wrap;color:#626a75;font-size:.8rem;font-weight:800}.route-preview span{display:flex;align-items:center;gap:7px}.route-preview b{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--teal-light);color:var(--teal);font-size:.72rem}.route-preview i{font-style:normal;color:#bcb9aa}.start-card{margin-top:36px;padding:26px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);max-width:650px}.start-card h2{font-size:1.25rem;margin:0 0 5px}.start-card p{color:var(--soft);margin:0 0 18px;font-size:.86rem}.start-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-end{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px;min-height:46px}.welcome-art{height:min(570px,45vw);min-height:450px;position:relative;display:grid;place-items:center;background:radial-gradient(circle at 48% 47%,#fff5d8 0 25%,#fffaf0 65%);overflow:hidden}.art-orbit{position:absolute;border:1px dashed #eccd8d;border-radius:50%;width:110%;height:74%;transform:rotate(-29deg)}.orbit-two{transform:rotate(29deg);height:93%;width:85%}.art-grid{width:355px;height:355px;display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(5,1fr);position:relative;border:8px solid #fff;background-color:#fff;background-image:linear-gradient(#d6e5dc 1px,transparent 1px),linear-gradient(90deg,#d6e5dc 1px,transparent 1px);background-size:20% 20%;border-radius:21px;transform:rotate(-8deg);box-shadow:0 35px 65px #4e47372b}.art-robot{grid-column:1;grid-row:5;background:var(--teal);color:white;border-radius:15px;display:grid;place-items:center;font-size:2.8rem;box-shadow:0 7px 0 #097c72;margin:5px;z-index:2}.art-gem{grid-column:4;grid-row:3;display:grid;place-items:center;color:#eda72d;font-size:4rem;text-shadow:0 5px #fff3c6}.art-path{border-radius:14px;background:#c8f0e5;margin:9px}.p1{grid-column:2;grid-row:5}.p2{grid-column:3;grid-row:5}.p3{grid-column:3;grid-row:4}.art-caption{position:absolute;right:0;bottom:37px;background:var(--ink);color:#fff;padding:13px 18px;border-radius:14px;box-shadow:0 14px 32px #30364d34;transform:rotate(4deg);font-size:.82rem}.code-dot{display:inline-block;width:8px;height:8px;background:#69deb5;border-radius:50%;margin-right:8px}

/* Slides */
.lesson-view{background:linear-gradient(150deg,#fffaf0,#fff7eb 60%,#f5f9f7);min-height:calc(100vh - 145px);padding:56px 0 75px}.lesson-top{display:flex;justify-content:space-between;align-items:end;gap:20px}.lesson-top h1{font-size:clamp(1.8rem,3vw,2.8rem);letter-spacing:-.04em;margin:0 0 25px}.slide-count{font-weight:800;white-space:nowrap;margin-bottom:28px}.slide-count span:first-child{font-size:1.7rem}.slide-count span:last-child{color:#afb2b4}.progress-track{height:7px;background:#e9e2d4;border-radius:5px;overflow:hidden;margin-bottom:25px}.progress-track div{height:100%;background:var(--teal);transition:width .2s}.slide-card{min-height:475px;background:#fff;border-radius:25px;border:1px solid var(--line);box-shadow:var(--shadow);display:grid;grid-template-columns:1fr 1fr;overflow:hidden}.slide-copy{padding:clamp(30px,4vw,64px);display:flex;flex-direction:column;align-items:flex-start}.slide-copy h2{font-size:clamp(2rem,3.5vw,3.8rem);letter-spacing:-.05em;line-height:1.11;margin:0 0 20px}.slide-copy>p:not(.eyebrow){color:var(--soft);font-size:1.12rem;line-height:1.75;max-width:590px;margin:0}.takeaway{margin-top:auto;border-left:4px solid var(--gold);padding:6px 0 6px 17px;display:grid;gap:5px}.takeaway span{color:#a5751b;text-transform:uppercase;letter-spacing:.14em;font-size:.69rem;font-weight:850}.takeaway strong{line-height:1.45}.slide-visual{background:#f1f8f3;padding:35px;display:grid;place-items:center;overflow:hidden}.lesson-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:25px}.lesson-controls>span{color:#8a8c91;font-size:.78rem}.slide-compare,.order-demo{display:grid;gap:15px;width:min(100%,440px)}.slide-compare>div,.order-demo>div{background:white;border:1px solid #e0e6df;border-radius:17px;padding:23px;display:grid;gap:10px;box-shadow:0 7px 18px #4558490b}.slide-compare span,.order-demo span{font-size:.7rem;text-transform:uppercase;letter-spacing:.13em;color:#7b8082;font-weight:800}.slide-compare strong{font-size:1.4rem}.slide-compare small,.order-demo small{color:var(--soft)}.slide-compare .good{border-color:#a3ddd3;background:#fafffd}.slide-compare code,.order-demo code{font-size:1.05rem;line-height:1.7;font-weight:750;color:var(--teal)}.direction-demo{display:flex;align-items:center;gap:26px}.mini-grid{height:230px;width:230px;border:8px solid white;border-radius:20px;background:linear-gradient(#d3e8dc 1px,transparent 1px),linear-gradient(90deg,#d3e8dc 1px,transparent 1px),#fbfffb;background-size:33.33% 33.33%;display:grid;place-items:center;box-shadow:0 14px 30px #42544720}.mini-robot{width:66px;height:66px;display:grid;place-items:center;background:var(--teal);color:#fff;border-radius:16px;font-size:3rem}.direction-callout{display:grid;gap:8px;color:var(--soft)}.direction-callout b{color:var(--ink)}.direction-callout code{background:var(--ink);color:#fff;padding:9px;border-radius:8px}.command-demo{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.command-demo>code,.turn-demo>code,.collect-demo>code{background:var(--ink);color:#fff;padding:14px 17px;border-radius:11px;font-size:1.1rem}.demo-arrow{font-size:2rem;color:var(--teal)}.demo-cells{display:flex;gap:3px}.demo-cells span{width:62px;height:62px;display:grid;place-items:center;background:#fff;border:1px solid #d4e4d8;font-size:1.8rem}.demo-cells .bot{background:var(--teal);color:#fff}.demo-cells .target{color:var(--gold)}.turn-demo{display:flex;align-items:center;gap:25px}.turn-state{background:#fff;padding:23px;border:1px solid #dce9e0;border-radius:16px;text-align:center;min-width:100px}.turn-state small{display:block;color:var(--soft)}.turn-state strong{font-size:3rem;color:var(--teal)}.collect-demo{display:grid;justify-items:center;gap:20px}.collect-cell{width:110px;height:110px;background:#fff;border:2px solid #d4e4d8;border-radius:19px;display:flex;align-items:center;justify-content:center;gap:4px;font-size:3rem;color:var(--teal)}.collect-cell b{color:var(--gold)}.collect-demo>strong{color:var(--teal);font-size:1.3rem}.ready-demo{display:grid;grid-template-columns:1fr 1fr;gap:13px;width:min(100%,500px)}.ready-demo span{background:#fff;border:1px solid #deeadf;border-radius:15px;padding:22px;display:flex;align-items:center;gap:13px;font-weight:800}.ready-demo b{width:30px;height:30px;border-radius:50%;background:var(--teal-light);color:var(--teal);display:grid;place-items:center}

/* Lab */
.lab-view{padding:45px 0 90px;background:linear-gradient(180deg,#fffaf0,#f9f8f4 550px)}.lab-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:30px}.lab-head h1{font-size:clamp(2.1rem,3vw,3.1rem);letter-spacing:-.05em;margin:0 0 7px}.lab-head p:last-child{color:var(--soft);margin:0}.lab-shell{display:grid;grid-template-columns:minmax(215px,.72fr) minmax(350px,1.35fr) minmax(300px,1fr);gap:18px;align-items:start}.lab-shell>.panel,.workspace-column>.panel{padding:22px}.workspace-column{display:grid;gap:18px}.panel-kicker{font-size:.68rem;color:#8d7581;letter-spacing:.16em;text-transform:uppercase;font-weight:850;margin:0 0 8px}.panel-heading{display:flex;align-items:start;justify-content:space-between;gap:10px}.panel-heading h2{font-size:1.2rem;margin:0 0 17px;letter-spacing:-.02em}.mission-panel{position:sticky;top:100px}.challenge-list{display:grid;gap:6px}.challenge-tab{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid transparent;background:none;border-radius:13px;padding:13px 10px;color:var(--soft)}.challenge-tab.active{background:var(--teal-light);color:var(--ink);border-color:#b5e5d9}.challenge-tab>span:nth-child(2){display:grid;gap:2px;flex:1}.challenge-tab small{font-size:.69rem;color:#78838d}.challenge-tab strong{font-size:.82rem}.challenge-number{color:var(--teal);font-size:.8rem;font-weight:850}.mission-card{border-top:1px solid var(--line);margin-top:21px;padding-top:24px}.mission-card .eyebrow{font-size:.65rem;margin:0 0 8px}.mission-card h2{font-size:1.45rem;letter-spacing:-.035em;line-height:1.18;margin:0 0 10px}.mission-card p:not(.eyebrow){font-size:.88rem;color:var(--soft);line-height:1.6}.mission-card .hint{border-radius:12px;padding:12px;background:#fff8e6;color:#6e572a!important;border:1px solid #f8e4b3}.palette{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.palette button{border:1px solid #d6e3dc;background:#f7fcf9;border-radius:12px;min-height:69px;padding:9px;display:grid;gap:4px;text-align:left}.palette button:hover{border-color:var(--teal);background:var(--teal-light)}.palette code{color:#166a63;font-size:.87rem;font-weight:850;white-space:nowrap}.palette span{font-size:.68rem;color:#65746d}.program-area{border-radius:15px;background:#fbfcfa;border:1px dashed #d7dfd7;padding:13px;margin-top:16px}.flow-start,.flow-end{background:#ebeff4;border-radius:20px;width:max-content;padding:5px 11px;margin:auto;color:#7f8892;font-size:.59rem;letter-spacing:.13em;font-weight:900}.program-list{list-style:none;padding:9px 0;margin:0;display:grid;gap:11px}.program-list li{position:relative}.program-list li+li:before{content:"↓";position:absolute;top:-16px;left:50%;font-size:.7rem;color:#aac9c1}.program-empty{text-align:center;color:#9da5a0;padding:20px 8px;font-size:.79rem}.program-block{display:flex;align-items:center;justify-content:space-between;gap:7px;background:#fff;border:1px solid #cce4d9;border-left:5px solid var(--teal);border-radius:10px;padding:7px 8px 7px 13px}.block-label{font-family:ui-monospace,"SFMono-Regular",Consolas,monospace;color:#1d5e5c;font-weight:750;font-size:.85rem}.block-actions{display:flex;gap:1px}.block-actions button{border:0;background:none;color:#5f7174;padding:3px 5px;font-weight:800}.block-actions button:hover:not(:disabled){background:#eaf6f3;border-radius:5px}.code-peek{margin-top:16px;color:var(--teal);font-size:.8rem;font-weight:800}.code-peek summary{cursor:pointer}.code-peek pre{background:#252b3e;color:#d2f3df;border-radius:10px;padding:14px;line-height:1.5;white-space:pre-wrap;font-weight:500}.share-panel label{margin:11px 0 20px;color:var(--ink)}.share-panel textarea{font-weight:400;font-size:.88rem}.required{font-size:.65rem;background:var(--gold-light);padding:3px 6px;border-radius:5px;color:#976923;margin-left:4px}.share-end{display:flex;justify-content:space-between;align-items:center;gap:12px}.share-end span{font-size:.79rem;color:var(--teal);font-weight:700;line-height:1.4}.run-panel{position:sticky;top:100px}.step-counter{background:#f5f4ef;color:#697079;font-size:.68rem;border-radius:7px;padding:6px 8px;white-space:nowrap;font-weight:800}.robot-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;background:#d9e8dc;border:5px solid #d9e8dc;border-radius:17px;aspect-ratio:1}.grid-cell{background:#fafffb;border-radius:5px;display:grid;place-items:center;position:relative;min-width:0}.grid-robot{width:78%;height:78%;border-radius:12px;background:var(--teal);display:grid;place-items:center;color:#fff;font-size:clamp(1.3rem,2.8vw,2.4rem);font-weight:850;box-shadow:0 3px 0 #087c74;z-index:1}.grid-gem{color:#e6a72e;font-size:clamp(1.2rem,2.7vw,2.2rem);text-shadow:0 2px 0 #ffe9aa}.grid-cell:has(.grid-robot) .grid-gem{position:absolute;right:0;top:0;font-size:1.1rem;z-index:2}.run-status{margin:17px 0;color:#666e77;font-size:.88rem;font-weight:750;min-height:22px}.run-status.success{color:#14846f}.run-status.error{color:#ba4444}.run-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}.run-actions .button{padding:9px 6px;font-size:.79rem}.world-note{background:#f5f7f4;border-radius:12px;padding:13px;margin-top:20px;display:grid;gap:5px;font-size:.76rem;color:var(--soft);line-height:1.5}.world-note strong{color:var(--ink)}

.lab-view{padding-top:30px}.lab-head{margin-bottom:19px}.lab-head h1{font-size:clamp(2rem,2.7vw,2.75rem)}.program-panel{border-color:#b8dcd4!important;box-shadow:0 22px 65px rgba(12,158,145,.1)!important;min-width:0}.run-actions{margin-bottom:16px}.robot-grid{max-width:310px;margin:auto}.editor-intro{color:var(--soft);font-size:.83rem;line-height:1.5;margin:-7px 0 15px}.program-panel .palette button{min-height:60px}.editor-shell{position:relative;background:#273047;border-radius:14px;overflow:hidden;margin-top:15px;border:1px solid #1d283c}.editor-shell:focus-within{outline:3px solid #a5e4d9}.code-gutter{position:absolute;inset:0 auto 0 0;width:46px;background:#20283c;padding:16px 0;overflow:hidden;color:#8d9ab0;font:15px/1.7 ui-monospace,"SFMono-Regular",Consolas,monospace;pointer-events:none}.code-gutter span{display:block;height:1.7em;line-height:1.7em;text-align:center}.code-gutter span.active{background:var(--teal);color:#fff;font-weight:850}.code-editor{display:block;width:100%;height:330px;min-height:260px;padding:16px 18px 16px 62px;margin:0;border:0;background:transparent;color:#e3f5ed;resize:vertical;font:15px/1.7 ui-monospace,"SFMono-Regular",Consolas,monospace;white-space:pre;overflow:auto;tab-size:2;border-radius:0}.code-editor:focus{border:0;box-shadow:none}.code-editor::placeholder{color:#7c899c}.editor-status{font-size:.8rem;line-height:1.45;color:#647179;min-height:35px;margin:13px 0 0}.editor-status.error{color:#b63e4b;font-weight:750}.editor-status.success{color:#188164}.editor-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:8px}.editor-actions span{color:var(--teal);font-size:.78rem;font-weight:750;line-height:1.4}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media(max-width:1120px) and (min-width:781px){.lab-shell{grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr)}.mission-panel{grid-column:1/-1;position:static}.challenge-list{grid-template-columns:repeat(3,1fr)}.mission-card{margin-top:12px;padding-top:14px}.run-panel{grid-column:auto}}

/* Teacher */
.teacher-main{padding:55px 0 85px;min-height:calc(100vh - 145px)}.teacher-head{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:27px}.teacher-head h1{font-size:clamp(2.3rem,4vw,3.6rem);letter-spacing:-.055em;margin:0 0 8px}.teacher-head p:last-child{color:var(--soft);margin:0}.teacher-login{max-width:440px;margin:50px auto 0;padding:34px}.login-icon{width:47px;height:47px;background:var(--gold);border-radius:14px;display:grid;place-items:center;font-size:1.6rem}.teacher-login h2{font-size:1.5rem;margin:18px 0 8px}.teacher-login p{color:var(--soft);line-height:1.6;font-size:.86rem}.teacher-login form{display:grid;gap:12px;margin-top:24px}.teacher-login form p{margin:0}.teacher-toolbar{display:flex;align-items:end;gap:15px;flex-wrap:wrap;margin-bottom:18px}.teacher-filter{min-width:220px;margin-left:auto}.teacher-filter label{font-size:.69rem;color:var(--soft)}.teacher-filter select{margin-top:4px;padding:10px}.teacher-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.teacher-stats>div{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px;display:grid;gap:2px}.teacher-stats strong{font-size:2rem;line-height:1.1}.teacher-stats span{color:var(--soft);font-size:.78rem;font-weight:700}.submission-list{display:grid;gap:14px}.submission-card{padding:23px}.submission-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:18px;border-bottom:1px solid var(--line)}.submission-heading>div{display:flex;align-items:center;gap:12px}.submission-heading>div>div{display:grid;gap:3px}.submission-heading strong{font-size:1rem}.submission-heading small{color:#7a818a;font-size:.76rem}.student-avatar{width:43px;height:43px;display:grid;place-items:center;background:var(--gold-light);border-radius:12px;color:#996818;font-weight:900}.answer-status{border-radius:99px;padding:7px 11px;font-size:.7rem;font-weight:850;white-space:nowrap}.answer-status.solved{background:#e1f7e9;color:#12794b}.answer-status.revisit{background:#fff1da;color:#9b661d}.submission-body{display:grid;grid-template-columns:250px 1fr;gap:30px;padding-top:18px}.field-label{display:block;color:#9b7782;font-size:.65rem;font-weight:900;letter-spacing:.15em;margin:0 0 7px}.submitted-code{background:#273047;color:#d7f6e8;border-radius:11px;padding:16px;min-height:85px;margin:0;font-size:.85rem;line-height:1.7;white-space:pre-wrap}.submission-body p{font-size:.86rem;line-height:1.65;margin:0 0 18px;color:#515a65;white-space:pre-wrap}.empty-answers{text-align:center;padding:60px 20px}.empty-answers strong{font-size:1.3rem}.empty-answers p{color:var(--soft)}

@media(max-width:1120px){.lab-shell{grid-template-columns:210px minmax(0,1fr)}.run-panel{grid-column:2;position:static}.robot-grid{max-width:370px;margin:auto}.welcome{grid-template-columns:1fr .75fr;gap:25px}.welcome-art{min-height:380px}.art-grid{width:290px;height:290px}.art-caption{right:0;bottom:18px}}@media(max-width:780px){.shell{width:min(100% - 32px,600px)}.topbar{padding:10px 16px;min-height:69px}.topbar nav{gap:12px}.nav-current{display:none}.welcome{display:flex;flex-direction:column;padding:40px 0 55px;min-height:auto;align-items:stretch}.welcome-art{order:-1;min-height:260px;height:260px}.art-grid{width:205px;height:205px}.art-robot{font-size:1.8rem}.art-gem{font-size:2.8rem}.art-caption{font-size:.67rem;bottom:0}.welcome-copy h1{font-size:clamp(2.7rem,9vw,4rem)}.welcome-copy>.lead{font-size:1.03rem}.slide-card{grid-template-columns:1fr}.slide-copy{padding:30px;min-height:350px}.slide-visual{min-height:300px}.lesson-view{padding-top:35px}.lesson-controls>span{display:none}.lab-shell{grid-template-columns:1fr}.mission-panel,.run-panel{position:static;grid-column:auto}.lab-head{align-items:start}.lab-head h1{font-size:2.1rem}.lab-head .button{font-size:.74rem}.teacher-main{padding-top:40px}.submission-body{grid-template-columns:1fr;gap:20px}.teacher-filter{margin-left:0}.teacher-toolbar{align-items:stretch}.teacher-stats>div{padding:14px}.teacher-stats strong{font-size:1.6rem}}@media(max-width:490px){.start-fields{grid-template-columns:1fr}.form-end{align-items:stretch;flex-direction:column}.form-end .button{width:100%}.route-preview{gap:8px;font-size:.69rem}.route-preview b{width:18px;height:18px}.slide-copy{min-height:390px}.slide-copy h2{font-size:2.2rem}.slide-copy>p:not(.eyebrow){font-size:.99rem}.direction-demo{gap:13px}.mini-grid{width:155px;height:155px}.mini-robot{width:49px;height:49px;font-size:2rem}.direction-callout{font-size:.76rem}.turn-demo{gap:9px}.turn-state{min-width:68px;padding:13px 6px}.turn-state strong{font-size:2.1rem}.turn-demo>code{font-size:.75rem;padding:10px 5px}.palette{grid-template-columns:1fr}.palette button{min-height:48px;display:flex;justify-content:space-between;align-items:center}.lab-head{display:block}.lab-head .button{margin-top:17px}.teacher-head{display:block}.teacher-head button{margin-top:15px}.teacher-stats{gap:6px}.teacher-stats span{font-size:.65rem}.submission-heading{align-items:start;flex-direction:column}.answer-status{align-self:flex-start}footer{padding:20px 16px;font-size:.68rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}
@media(max-width:1120px) and (min-width:781px){.lab-shell{grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr)}.mission-panel{grid-column:1/-1;position:static}.challenge-list{grid-template-columns:repeat(3,1fr)}.run-panel{grid-column:auto}}
.code-gutter span.error{background:#b63e4b;color:#fff;font-weight:850}
.roadmap-list{list-style:none;padding:0;margin:15px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.roadmap-list li{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:12px 13px;font-size:.78rem}.roadmap-list b{color:#9c9a92}.roadmap-list span{flex:1}.roadmap-list small{font-size:.63rem;color:#8c8e8c}.roadmap-list .ready{background:#eaf8f3;border-color:#bde6d9}.roadmap-list .ready b,.roadmap-list .ready small{color:var(--teal)}
@media(max-width:780px){.roadmap-list{grid-template-columns:repeat(2,1fr)}}@media(max-width:490px){.roadmap-list{grid-template-columns:1fr}}

/* Course chooser and additional labs */
.jump-link{margin:18px 0 0;color:var(--soft);font-size:.86rem}.jump-link a{color:var(--teal);font-weight:850;text-decoration:underline;text-underline-offset:3px}
.explore-main{padding:68px 0 90px;min-height:calc(100vh - 145px)}.explore-heading{max-width:790px;margin-bottom:32px}.explore-heading h1{font-size:clamp(2.7rem,5vw,4.8rem);letter-spacing:-.055em;line-height:1.04;margin:0 0 18px}.explore-heading>p:last-child{color:var(--soft);font-size:1.08rem;line-height:1.65}.track-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.track-card{min-height:330px;display:flex;flex-direction:column;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:transform .15s,border-color .15s}.track-card:hover{transform:translateY(-5px);border-color:#9fd8ce}.track-card:nth-child(2){background:#edfaf5}.track-card:nth-child(3){background:#f4f0ff}.track-card:nth-child(4){background:#fff5e6}.track-icon{height:52px;width:52px;display:grid;place-items:center;border-radius:14px;background:#dff6ed;color:var(--teal);font-size:1.7rem;font-weight:900;margin-bottom:30px}.track-card:nth-child(3) .track-icon{background:#e8dfff;color:#7759c4}.track-card:nth-child(4) .track-icon{background:#ffebc9;color:#b7711d}.track-meta{color:#8d7581;text-transform:uppercase;letter-spacing:.14em;font-size:.65rem;font-weight:900}.track-card h2{font-size:1.45rem;letter-spacing:-.035em;line-height:1.16;margin:10px 0}.track-card p{font-size:.85rem;color:var(--soft);line-height:1.55;margin:0 0 18px}.track-card strong{margin-top:auto;color:var(--teal);font-size:.83rem}.course-roadmap{margin-top:28px;padding:28px;display:flex;justify-content:space-between;align-items:center;gap:30px}.course-roadmap h2{font-size:1.6rem;margin:4px 0 8px}.course-roadmap p:last-child{max-width:850px;color:var(--soft);line-height:1.6;margin:0}.roadmap-badge{background:var(--gold-light);border-radius:50px;padding:10px 13px;color:#926621;font-size:.76rem;font-weight:850;white-space:nowrap}
.track-card.homework-card{background:#fff8e8;border-color:#efdcae}.homework-card .track-icon{background:#ffe9b5;color:#91611b}
.next-start{padding:76px 0 110px;min-height:calc(100vh - 145px);display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center}.next-intro h1{font-size:clamp(3.5rem,6vw,6rem);letter-spacing:-.065em;line-height:.98;margin:0 0 24px}.next-intro .lead{color:var(--soft);font-size:1.2rem;line-height:1.6;max-width:600px}.next-start .start-card{margin-top:0}.next-start .start-fields{grid-template-columns:1fr}.next-start .start-card>.button{width:100%;margin-top:12px}.next-start .route-preview{margin-top:28px}.next-slide-example{width:min(100%,470px);background:#273047;border-radius:18px;padding:26px;box-shadow:0 20px 42px #20304728}.next-slide-example span{display:block;color:#99a9be;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:850;margin-bottom:20px}.next-slide-example pre{margin:0;color:#d2f5e9;font-size:clamp(1rem,1.6vw,1.35rem);line-height:1.8;white-space:pre-wrap}.next-workspace{display:grid;grid-template-columns:minmax(190px,.65fr) minmax(330px,1.3fr) minmax(290px,1fr);gap:18px;align-items:start}.next-workspace>.panel{padding:22px}.next-missions,.next-workspace .run-panel{position:sticky;top:100px}.next-missions .challenge-tab{font-size:.86rem}.next-palette{grid-template-columns:repeat(auto-fit,minmax(115px,1fr))}.next-palette button{min-height:53px;align-items:center}.next-visual{background:#f2f8f3;border:1px solid #d9e8dc;border-radius:17px;min-height:260px;padding:18px;display:grid;align-content:center;gap:13px}.result-card{background:#fff;border:1px solid #dbe6de;border-radius:13px;padding:15px;display:flex;justify-content:space-between;align-items:center;gap:12px}.result-card span{font-size:.74rem;color:#64746f;font-weight:750}.result-card strong{font-size:1.25rem;color:var(--ink);text-align:right}.result-card.good{background:#e5f8ec;border-color:#a8e6c0}.result-card.good strong{color:#137b51}.result-card.bad{background:#ffece9;border-color:#e5b9b0}.result-card.target{background:#fff4d6;border-color:#efdb9e}.visual-caption{font-size:.75rem;color:var(--soft);line-height:1.5;margin:3px}.star-row{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.star-row span{height:39px;display:grid;place-items:center;background:white;border-radius:9px;color:#b8c7bd;font-size:1.4rem}.star-row span.lit{background:#fff2d6;color:#e4a322}
@media(max-width:1120px){.track-grid{grid-template-columns:repeat(2,1fr)}.next-workspace{grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr)}.next-missions{grid-column:1/-1;position:static}.next-missions .challenge-list{grid-template-columns:repeat(2,1fr)}.next-workspace .run-panel{position:static}}
@media(max-width:780px){.explore-main{padding:45px 0 75px}.next-start{display:block;padding:48px 0 70px}.next-start .start-card{margin-top:35px}.next-workspace{grid-template-columns:1fr}.next-missions{grid-column:auto}.course-roadmap{display:block}.roadmap-badge{display:inline-block;margin-top:20px}.next-workspace .run-panel{grid-column:auto}}
@media(max-width:490px){.track-grid{grid-template-columns:1fr}.track-card{min-height:260px}.track-icon{margin-bottom:20px}.next-intro h1{font-size:3.3rem}.next-lesson .lesson-controls{flex-wrap:wrap}.next-lesson .lesson-controls #next-skip{order:3;width:100%;text-align:center;padding:9px}}

/* One story across the lessons */
.story-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:-8px 0 27px;color:#536a67}.story-line span{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#fff;border:1px solid #dcebe2;border-radius:99px;font-size:.77rem;font-weight:800}.story-line b{color:var(--teal)}.story-line i{font-style:normal;color:#a6beb3}
.story-question{width:min(100%,440px);background:#fff;border:1px solid #d9e7dd;border-radius:22px;padding:30px;box-shadow:0 15px 35px #405c4b12}.story-question>span{display:block;font-size:.68rem;letter-spacing:.16em;color:var(--teal);font-weight:900;margin-bottom:16px}.story-question>strong{display:block;font-size:clamp(1.5rem,2.4vw,2.3rem);letter-spacing:-.04em;line-height:1.15}.story-choices{display:grid;gap:9px;margin-top:25px}.story-choices span{padding:11px 13px;background:#f5faf6;border-radius:10px;color:#475d55;font-size:.87rem;font-weight:750}
.story-routine{width:min(100%,340px);display:grid;justify-items:center;gap:4px}.story-routine span{width:100%;padding:15px 18px;background:#fff;border:1px solid #d7e9dd;border-radius:13px;font-size:1.08rem;font-weight:800;box-shadow:0 7px 18px #405c4b0d}.story-routine i{font-style:normal;color:var(--teal);font-size:1.4rem;line-height:1}
.story-flow{width:min(100%,530px);display:flex;align-items:center;justify-content:center;gap:8px}.story-flow>div{min-height:118px;min-width:0;flex:1;display:flex;flex-direction:column;justify-content:center;gap:13px;padding:15px;background:#fff;border:1px solid #d7e9dd;border-radius:16px}.story-flow span{color:#7a8f82;font-size:.58rem;letter-spacing:.12em;font-weight:900}.story-flow strong{font-size:clamp(.88rem,1.4vw,1.15rem);line-height:1.15}.story-flow i{color:var(--teal);font-style:normal;font-size:1.3rem}
.story-quest{width:min(100%,490px);display:grid;gap:18px}.quest-scene{height:170px;position:relative;border:8px solid #fff;border-radius:20px;background-color:#fafffb;background-image:linear-gradient(#d7e9dc 1px,transparent 1px),linear-gradient(90deg,#d7e9dc 1px,transparent 1px);background-size:20% 50%;box-shadow:0 16px 31px #4254471a}.quest-scene span{position:absolute;display:grid;place-items:center}.quest-avatar{left:9%;bottom:12%;width:60px;height:60px;border-radius:14px;background:var(--teal);color:#fff;font-size:2rem;font-weight:900}.quest-crystal{left:46%;top:17%;color:#e8ae32;font-size:3.5rem;text-shadow:0 3px #ffedb4}.quest-gate{right:7%;top:18%;color:#7759c4;font-size:4rem}.quest-steps{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quest-steps span{background:#fff;border:1px solid #dceade;border-radius:11px;padding:10px 12px;color:#53665d;font-size:.8rem;font-weight:800}
@media(max-width:780px){.story-line{gap:7px}.story-line span{font-size:.7rem;padding:8px 10px}.story-flow{max-width:500px}}
@media(max-width:490px){.story-flow{flex-direction:column;align-items:stretch}.story-flow>div{min-height:66px}.story-flow i{text-align:center;line-height:1}.quest-scene{height:150px}}

/* Rebuilt story and concept slides */
.slide-copy .slide-source{margin:12px 0 22px!important;font-size:.8rem!important;line-height:1.4!important}.slide-source a{color:var(--teal);font-weight:800;text-decoration:underline;text-underline-offset:3px}
.principles-visual{width:min(100%,470px);background:#fff;border:1px solid #d8e8dc;border-radius:22px;padding:clamp(23px,3vw,38px);box-shadow:0 20px 40px #42544717}.principles-kicker{display:block;color:var(--teal);font-size:.68rem;letter-spacing:.17em;font-weight:900}.principles-visual blockquote{margin:20px 0 13px;font-size:clamp(1.4rem,2.1vw,2.15rem);line-height:1.24;letter-spacing:-.04em;font-weight:800}.principles-visual blockquote em{display:block;margin-top:12px;color:#407c72;font-style:normal}.principles-author{font-size:.72rem;color:#77857e;font-weight:750}.principles-flow{border-top:1px solid #dcebe1;margin-top:21px;padding-top:19px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.principles-flow span{background:#eff8f1;padding:8px 9px;border-radius:8px;font-size:.7rem;color:#41655b;font-weight:800}.principles-flow i{font-style:normal;color:var(--teal)}
.next-lesson .slide-visual{align-content:center;gap:18px}.next-slide-scene{width:min(100%,470px);min-height:175px;background:#fff;border:1px solid #d7e7db;border-radius:18px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px 24px;text-align:center;box-shadow:0 12px 27px #42544712}.next-slide-scene .scene-symbol{font-size:.74rem;letter-spacing:.13em;color:#477e73;font-weight:900}.next-slide-scene .scene-value{font-size:clamp(2rem,4vw,3.4rem);line-height:1.05;letter-spacing:-.06em;margin:10px 0;color:var(--teal)}.next-slide-scene small{font-size:.76rem;color:#60746a;line-height:1.45}.next-slide-scene .result-card{width:100%;padding:7px 11px;margin:2px 0 8px}.next-slide-scene.decisions{background:#f5f0ff;border-color:#ddd0fa}.next-slide-scene.decisions .scene-value{font-size:clamp(1.5rem,3vw,2.7rem);color:#7759c4}.next-slide-scene.loops{background:#fff8e9;border-color:#f3dfb7}.next-slide-scene.loops .scene-value{font-size:clamp(1.5rem,3vw,2.7rem);color:#d9942c;letter-spacing:.04em}.next-lesson .next-slide-example{width:min(100%,470px);padding:17px 20px}.next-lesson .next-slide-example span{margin-bottom:7px}.next-lesson .next-slide-example pre{font-size:clamp(.9rem,1.3vw,1.1rem);line-height:1.5}.mission-check{background:#eef8f1;border:1px solid #cfe8d5;border-radius:10px;padding:10px 12px!important;color:#2b665a!important;font-weight:800;font-size:.77rem!important}.next-missions .text-button{margin-top:4px}.next-palette{grid-template-columns:repeat(2,minmax(0,1fr))}.next-palette button{min-width:0}.next-palette code{white-space:normal;overflow-wrap:anywhere;font-size:.78rem}
@media(max-width:780px){.next-lesson .slide-visual{min-height:375px}.next-slide-scene{min-height:150px}.principles-visual blockquote{font-size:1.65rem}}
@media(max-width:490px){.next-palette{grid-template-columns:1fr}.principles-flow{gap:4px}.principles-flow span{font-size:.63rem}.slide-copy .slide-source{margin-bottom:18px!important}}
.python-playground{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(270px,.8fr);gap:18px;align-items:stretch;margin-bottom:32px}.python-playground>.panel{padding:22px;min-width:0}.python-playground .panel-heading h2{margin-bottom:8px}.python-playground .editor-intro{margin:5px 0 14px}.python-playground .editor-intro code{font-family:ui-monospace,Consolas,monospace;color:#126c60}.python-editor{display:block;width:100%;min-height:300px;resize:vertical;padding:18px;border:1px solid #263750;border-radius:13px;background:#202b40;color:#e3f5ed;outline:none;font:15px/1.7 ui-monospace,Consolas,monospace;tab-size:4;white-space:pre;overflow:auto}.python-editor:focus{outline:3px solid #a5e4d9}.python-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px}.python-actions span{font-size:.8rem;color:var(--soft);line-height:1.4}.python-console{display:flex;flex-direction:column}.python-console pre{flex:1;margin:8px 0 0;min-height:300px;padding:18px;border-radius:13px;background:#202b40;color:#e3f5ed;white-space:pre-wrap;overflow-wrap:anywhere;font:15px/1.7 ui-monospace,Consolas,monospace}.guided-lab-heading{margin:0 auto 18px}.guided-lab-heading h2{font-size:1.35rem;letter-spacing:-.03em;margin:0 0 4px}.guided-lab-heading p{font-size:.85rem;color:var(--soft);margin:0}@media(max-width:780px){.python-playground{grid-template-columns:1fr}.python-console pre{min-height:160px}}@media(max-width:490px){.python-actions{align-items:stretch;flex-direction:column}.python-actions button{width:100%}}

/* A single Roblox-style quest across every playable chapter */
.story-bridge{max-width:570px;margin:23px 0 8px;padding:14px 17px;border-left:4px solid var(--teal);background:#eaf8f2;border-radius:0 11px 11px 0;color:#315d52;font-size:.86rem;line-height:1.5;font-weight:750}.next-intro .route-preview{margin-top:24px}

/* First lesson: ask for a route before teaching the robot's commands. */
.story-route{width:min(100%,390px);background:#fff;border:1px solid #d9e7dd;border-radius:22px;padding:20px;box-shadow:0 15px 35px #405c4b12;display:grid;gap:16px}.story-route-label{color:var(--teal);font-size:.68rem;font-weight:900;letter-spacing:.15em}.story-route-grid{width:100%;aspect-ratio:1;position:relative;border:7px solid #e7efe8;border-radius:16px;background-color:#fbfffb;background-image:linear-gradient(#d6e7da 1px,transparent 1px),linear-gradient(90deg,#d6e7da 1px,transparent 1px);background-size:20% 20%}.story-route-robot,.story-route-crystal{position:absolute;width:18%;height:18%;display:grid;place-items:center}.story-route-robot{left:1%;bottom:1%;background:var(--teal);color:#fff;border-radius:11px;font-size:clamp(1.5rem,3vw,2.3rem);font-weight:900;box-shadow:0 4px 0 #087c74}.story-route-crystal{left:41%;top:61%;color:#e8ae32;font-size:clamp(2rem,4vw,3.2rem);text-shadow:0 3px #ffedb4}.story-route>strong{font-size:1rem}.language-compare .action-vocab{display:flex;gap:7px;flex-wrap:wrap}.language-compare .action-vocab code{background:#e8f7ef;border:1px solid #cae8d8;border-radius:7px;padding:6px 8px;font-size:.82rem;white-space:nowrap}
.quest-thread{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:-3px auto 20px}.quest-thread span{background:#fff;border:1px solid #e4e7dc;border-radius:10px;padding:10px 12px;color:#77827b;font-size:.72rem;font-weight:850;line-height:1.3}.quest-thread span.active{background:#e3f6ed;border-color:#a9dbcc;color:#126e61;box-shadow:0 5px 13px #0b8b7812}
.roblox-bridge{display:grid;gap:5px;margin:15px 0;background:#f2effd;border:1px solid #e4dcf5;border-radius:11px;padding:11px 12px}.roblox-bridge strong{color:#6c51ac;font-size:.65rem;text-transform:uppercase;letter-spacing:.13em}.roblox-bridge span{color:#5b5270;font-size:.76rem;line-height:1.45}.mission-card .roblox-bridge+button{margin-top:3px}
@media(max-width:780px){.quest-thread{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:490px){.quest-thread span{font-size:.66rem;padding:9px}}
.chapter-continuation{margin:25px auto 0;padding:20px 24px;background:#e9f7ef;border:1px solid #b9dfca;border-radius:17px;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:0 12px 30px #1a80631a}.chapter-continuation>div{display:grid;gap:5px}.chapter-continuation span{font-size:.67rem;letter-spacing:.13em;color:#347b61;font-weight:900}.chapter-continuation strong{font-size:1.18rem;letter-spacing:-.025em}.chapter-continuation .button{white-space:nowrap}@media(max-width:780px){.chapter-continuation{flex-direction:column;align-items:stretch}.chapter-continuation .button{white-space:normal}}
.obby-stage{position:relative;min-height:106px;border:1px solid #ccded3;border-radius:13px;background-color:#e9f6e9;background-image:linear-gradient(#d0e5d2 1px,transparent 1px),linear-gradient(90deg,#d0e5d2 1px,transparent 1px);background-size:20% 50%;display:flex;align-items:center;justify-content:space-around;padding:12px 14px 26px;overflow:hidden}.obby-stage .stage-avatar{width:42px;height:42px;border-radius:9px;background:#0c9e91;color:#fff;display:grid;place-items:center;font-size:1.8rem;box-shadow:0 4px 0 #08796f}.obby-stage .stage-object{font-size:2.55rem;line-height:1;color:#e3a531;text-shadow:0 2px #fff0c3}.obby-stage.decisions .stage-object{color:#7654c4;font-size:3.1rem}.obby-stage.loops .stage-object{font-size:1.8rem;letter-spacing:.08em}.obby-stage .stage-caption{position:absolute;bottom:8px;right:12px;color:#5d806b;font-size:.57rem;font-weight:900;letter-spacing:.13em}

/* Seven connected lessons and a larger blocky world */
.quest-thread{grid-template-columns:repeat(7,minmax(0,1fr))}
.quest-thread span{min-width:0;font-size:.67rem}
.single-mission-brief{padding:20px 25px;margin-bottom:18px;display:grid;grid-template-columns:1.25fr 1fr;gap:22px;align-items:center}
.single-mission-brief h2{font-size:1.55rem;line-height:1.2;letter-spacing:-.035em;margin:0 0 8px}
.single-mission-brief p:not(.eyebrow){font-size:.88rem;line-height:1.55;color:var(--soft);margin:0}
.single-mission-brief .eyebrow{margin-bottom:8px;font-size:.68rem}
.single-mission-brief .roblox-bridge{margin:0 0 6px}
.single-mission-brief .hint{margin-top:7px!important;padding:9px 11px;background:#fff8e8;border-radius:9px}
#lab .lab-shell{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
#lab .run-panel{position:static;grid-column:auto}
#lab .program-panel,#lab .run-panel{min-width:0}
.obby-world-frame{background:linear-gradient(180deg,#dcefff 0%,#eef9ef 43%,#d6edcc 100%);border:1px solid #b8d8c7;border-radius:19px;padding:13px;box-shadow:inset 0 -7px #b0d0b7}
.world-scene-head,.world-legend{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.65rem;font-weight:900;letter-spacing:.1em;color:#476b64;margin:0 3px 9px}
.world-scene-head strong{color:#9c6b19}
.world-legend{letter-spacing:0;margin:10px 3px 1px;font-size:.7rem}
.obby-world-frame .robot-grid{max-width:500px;width:100%;gap:6px;border:7px solid #93b4a4;border-radius:15px;background:#93b4a4;box-shadow:0 8px 0 #6d987f,0 17px 22px #356e5333}
.lesson-grid{max-width:350px;width:100%;margin:auto;background:#93b4a4;border-color:#93b4a4;gap:5px}
.obby-world-frame .grid-cell,.lesson-grid .grid-cell{background:linear-gradient(145deg,#f4fff2,#d9efda);border-radius:8px;box-shadow:inset 0 -5px #b5d8b6,0 1px 1px #4d8a6726}
.grid-cell.spawn:after{content:"SPAWN";position:absolute;bottom:5px;left:4px;font-size:clamp(.3rem,.7vw,.55rem);font-weight:900;letter-spacing:.07em;color:#3c806d;z-index:0}
.grid-cell.target{background:linear-gradient(145deg,#fff9d9,#e8f4db)}
.grid-robot{position:relative;display:block;width:75%;height:80%;background:transparent;box-shadow:none;border-radius:0;font-size:inherit;z-index:1}
.grid-robot .avatar-head{position:absolute;left:28%;top:7%;width:44%;height:34%;background:#f5c9a4;border:2px solid #b87959;border-radius:5px 5px 3px 3px;box-shadow:0 4px 0 #e7b18a}
.grid-robot .avatar-body{position:absolute;left:16%;top:40%;width:68%;height:35%;background:#278ace;border:2px solid #1e6095;border-radius:3px;box-shadow:inset 0 -5px #196ea9}
.grid-robot .avatar-legs{position:absolute;left:22%;top:75%;width:56%;height:18%;background:linear-gradient(90deg,#384c8a 0 44%,transparent 44% 56%,#384c8a 56% 100%);border-radius:0 0 4px 4px}
.grid-robot .avatar-facing{position:absolute;right:-7%;bottom:-7%;width:31%;aspect-ratio:1;border-radius:50%;background:#ffbd42;color:#22344b;border:2px solid #fff;display:grid;place-items:center;font-size:clamp(.75rem,1.7vw,1.35rem);line-height:1;box-shadow:0 2px 4px #3348}
.obby-stage .stage-avatar{position:relative;display:block;width:52px;height:56px;background:transparent;box-shadow:none;border-radius:0}
.obby-stage .stage-avatar .avatar-head{position:absolute;left:28%;top:4%;width:44%;height:32%;background:#f5c9a4;border:2px solid #b87959;border-radius:4px}
.obby-stage .stage-avatar .avatar-body{position:absolute;left:15%;top:38%;width:70%;height:36%;background:#278ace;border:2px solid #1e6095;border-radius:3px;box-shadow:inset 0 -4px #196ea9}
.obby-stage .stage-avatar .avatar-legs{position:absolute;left:22%;top:73%;width:56%;height:21%;background:linear-gradient(90deg,#384c8a 0 44%,transparent 44% 56%,#384c8a 56% 100%);border-radius:0 0 4px 4px}
.grid-gem{font-size:clamp(1.8rem,4vw,3.2rem);filter:drop-shadow(0 3px 0 #b48126)}
.lesson-grid .grid-gem{font-size:clamp(1.2rem,2.5vw,2rem)}
.corridor-row,.bridge-row{display:flex;gap:4px;align-items:center;justify-content:center;background:#e9f5e8;border-radius:11px;padding:12px 5px;overflow-x:auto}
.corridor-row span,.bridge-row span{min-width:26px;height:32px;display:grid;place-items:center;border-radius:5px;background:#fff;color:#86ae91;font-size:1.1rem;font-weight:900}
.corridor-row .current{background:#189d91;color:#fff}.corridor-row .wall{background:#574b82;color:#fff}.bridge-row .built{background:#f7bc43;color:#704b17}
.obby-stage.conditions .stage-object{color:#7654c4;font-size:3.1rem}.obby-stage.functions .stage-object{color:#d6a135;font-size:1.6rem}
@media(max-width:1120px){.quest-thread{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:780px){.quest-thread{grid-template-columns:repeat(2,minmax(0,1fr))}.single-mission-brief{grid-template-columns:1fr}#lab .lab-shell{grid-template-columns:1fr}.obby-world-frame .robot-grid{max-width:500px}}
@media(max-width:490px){.single-mission-brief{padding:18px}.world-scene-head,.world-legend{font-size:.56rem}.obby-world-frame .robot-grid{gap:3px;border-width:4px}.grid-cell.spawn:after{font-size:.28rem;bottom:2px;left:2px}}
.course-login{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);align-items:center;padding:clamp(26px,5vw,64px);min-height:360px;max-width:1100px;margin:clamp(20px,5vw,70px) auto}.course-login h1{font-size:clamp(2.4rem,4.5vw,4.5rem);letter-spacing:-.055em;line-height:1.04;margin:0 0 16px}.course-login p:not(.eyebrow){color:var(--soft);line-height:1.6}.course-login form{display:grid;gap:12px}.course-login form .button{justify-self:start}.course-login .form-error{margin:0;min-height:1.2em}.course-welcome{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:-24px 0 28px;color:var(--soft);font-size:.85rem}.course-welcome strong{color:var(--ink)}.teacher-live{color:var(--teal);font-size:.76rem;font-weight:800}
@media(max-width:780px){.course-login{grid-template-columns:1fr;gap:18px;min-height:0}.course-welcome{margin:0 0 23px}}
.course-login .start-fields{grid-template-columns:1fr}

/* Playable introduction and the robot used throughout the quest. */
.robot-sprite{position:relative;display:block;width:100%;height:100%;min-width:0;min-height:0;filter:drop-shadow(0 3px 2px #275b5440)}
.bot-antenna{position:absolute;left:47%;top:0;width:6%;height:17%;background:#397f87;border-radius:3px}.bot-antenna:before{content:"";position:absolute;left:-85%;top:-35%;width:270%;aspect-ratio:1;border-radius:50%;background:#f7b73b;border:1px solid #aa7b2b}
.bot-head{position:absolute;left:19%;top:15%;width:62%;height:38%;background:linear-gradient(145deg,#ecfffa,#a9dcd7);border:2px solid #38858a;border-radius:23% 23% 18% 18%;box-shadow:inset 0 -4px #87c8c2}
.bot-eye{position:absolute;top:35%;width:14%;height:25%;background:#1d4050;border-radius:50%;box-shadow:inset 1px 1px #7be8db}.bot-eye.left{left:25%}.bot-eye.right{right:25%}.bot-smile{position:absolute;left:42%;top:67%;width:16%;height:7%;border-radius:99px;background:#397f87}
.bot-body{position:absolute;left:23%;top:52%;width:54%;height:29%;background:linear-gradient(145deg,#31bdb1,#0d8f8b);border:2px solid #237b7c;border-radius:18% 18% 24% 24%;box-shadow:inset 0 -5px #087c78}.bot-light{position:absolute;left:43%;top:27%;width:14%;aspect-ratio:1;border-radius:50%;background:#ffe082;border:1px solid #b98331}
.bot-arm{position:absolute;top:56%;width:13%;height:23%;background:#87cbc8;border:2px solid #397f87;border-radius:7px}.bot-arm.left{left:9%;transform:rotate(10deg)}.bot-arm.right{right:9%;transform:rotate(-10deg)}.bot-feet{position:absolute;left:24%;bottom:4%;width:52%;height:13%;background:linear-gradient(90deg,#405b72 0 42%,transparent 42% 58%,#405b72 58% 100%);border-radius:0 0 5px 5px}
.bot-facing{position:absolute;right:-3%;bottom:-6%;width:31%;aspect-ratio:1;display:grid;place-items:center;background:#ffc447;color:#263949;border:2px solid #fff;border-radius:50%;font-size:clamp(.68rem,1.6vw,1.2rem);font-weight:900;line-height:1;box-shadow:0 2px 5px #26394955}
.art-robot,.story-route-robot{background:transparent;box-shadow:none;border-radius:0}.art-robot .robot-sprite{width:90%;height:90%;margin:auto}.story-route-robot .robot-sprite{width:100%;height:100%}.story-route-robot{z-index:2}
.intro-demo{width:min(100%,410px);display:grid;gap:12px}.intro-demo-heading{display:grid;gap:5px;text-align:center}.intro-demo-heading span{color:var(--teal);font-size:.68rem;font-weight:900;letter-spacing:.16em}.intro-demo-heading strong{font-size:.9rem;line-height:1.35}.intro-demo-board{width:min(100%,270px);aspect-ratio:1;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:4px;padding:6px;background:#9ebfac;border-radius:18px;box-shadow:0 8px 0 #78a389,0 15px 22px #315f4933}.intro-demo-cell{position:relative;display:grid;place-items:center;min-width:0;background:linear-gradient(145deg,#fafff9,#dff1dd);border-radius:8px;box-shadow:inset 0 -5px #c4e0c0}.intro-demo-cell .robot-sprite{width:77%;height:83%;z-index:2}.intro-demo-gem{font-size:clamp(1.7rem,3vw,2.8rem);color:#e5a72e;text-shadow:0 3px #ffedb4}.intro-demo-cell:has(.robot-sprite) .intro-demo-gem{position:absolute;top:0;right:0;font-size:1.35rem;z-index:3}
.intro-demo-position{text-align:center;color:#426b60;font-size:.74rem;font-weight:800}.intro-demo-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.intro-demo-actions button{min-width:0;min-height:57px;display:grid;align-content:center;gap:2px;padding:8px 11px;background:#fff;border:1px solid #bedfd0;border-radius:12px;text-align:left;color:var(--ink)}.intro-demo-actions button:hover,.intro-demo-actions button:focus-visible{background:#e2f7ef;border-color:var(--teal)}.intro-demo-actions button strong{font-size:.83rem;overflow-wrap:anywhere}.intro-demo-actions button small{color:#5a756b;font-size:.66rem;line-height:1.25}.intro-demo-actions button[data-action="reset"]{background:#f4f4f0;border-color:#dfe1d9}.intro-demo-message{min-height:42px;margin:0;padding:10px 12px;background:#e8f7ef;border-radius:10px;color:#285f53;font-size:.78rem;font-weight:750;line-height:1.4}.intro-demo-message.success{background:#fff0c8;color:#7e5a19}
@media(max-width:490px){.intro-demo-board{width:min(100%,225px)}.intro-demo-actions button{min-height:51px}.intro-demo-heading strong{font-size:.82rem}}
.intro-demo{width:min(100%,480px);grid-template-columns:minmax(0,1fr) minmax(136px,.62fr);grid-template-areas:"heading heading" "board actions" "position actions" "message message";column-gap:12px;row-gap:8px;align-items:start}.intro-demo-heading{grid-area:heading}.intro-demo-board{grid-area:board;width:min(100%,245px)}.intro-demo-position{grid-area:position}.intro-demo-actions{grid-area:actions;grid-template-columns:1fr;align-self:stretch}.intro-demo-message{grid-area:message}
@media(max-width:540px){.intro-demo{grid-template-columns:1fr;grid-template-areas:"heading" "board" "position" "actions" "message"}.intro-demo-board{width:min(100%,225px)}.intro-demo-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
.case-list{display:grid;grid-template-columns:1fr;gap:8px;width:100%;margin-top:12px}.case-list .result-card{margin:0;min-width:0;padding:11px 13px}.case-list .result-card strong{font-size:.85rem}.power-stage .stage-object{color:#e6aa28;font-size:2.4rem}.warehouse-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;background:#d8e7dc;border:5px solid #d8e7dc;border-radius:13px;width:100%;margin-bottom:14px}.warehouse-cell{height:48px;border-radius:5px;background:#edf2ed;display:grid;place-items:center;color:#dda329;font-size:1.7rem;font-weight:900}.warehouse-cell.lane{background:#fffdf1}.warehouse-cell.wall{background:#d8d8d8}.warehouse-cell .robot-sprite{transform:scale(.75)}@media(max-width:540px){.warehouse-cell{height:36px;font-size:1.35rem}}
.gate-case-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.gate-case-picker button{border:1px solid #cfe0d7;border-radius:9px;background:#fff;color:#50736b;padding:8px 3px;font-size:.69rem;font-weight:850;cursor:pointer}
.gate-case-picker button.active{background:#dff5ed;border-color:#65c8b3;color:#087f70}
.gate-map{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;width:min(100%,350px);aspect-ratio:1;margin:2px auto;padding:5px;background:#92b49e;border-radius:15px;box-shadow:0 7px 0 #70967b}
.gate-map-cell{min-width:0;display:grid;place-items:center;background:linear-gradient(145deg,#fafff8,#dff0df);border-radius:6px;color:#58736b;font-size:.8rem;font-weight:900;box-shadow:inset 0 -4px #c0dcc0}
.gate-map-cell.rock{background:#d5d8d7;color:#82918d;box-shadow:inset 0 -4px #adb7b3;font-size:1.4rem}
.gate-map-cell.start{background:#d7f5e9;color:#087f70}
.gate-map-cell.gate.closed{background:#e0d3f5;color:#684ba7;box-shadow:inset 0 -4px #b5a0da}
.gate-map-cell.gate.open{background:#d7f5e7;color:#187b5b;box-shadow:inset 0 -4px #9ed9bb}
.gate-map-cell.gate.target{background:#fff1c8;color:#a97314;box-shadow:inset 0 -4px #ebd591}
.gate-map-cell.gate.target.open{background:#cbf2d3;color:#187b4c;box-shadow:inset 0 -4px #8acf9b}
.gate-map-cell .robot-sprite{width:72%;height:82%;z-index:2}
.gate-map-legend{text-align:center;font-size:.64rem;font-weight:750;color:#607971;line-height:1.4}
