:root{--ink:#14284b;--muted:#5a6c86;--blue:#2164d9;--line:#dde7f1;--shadow:0 8px 28px #274c7820;font-family:"Noto Sans Thai",Tahoma,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;color-scheme:light}
[hidden]{display:none!important}body{background:#f5f8fc;line-height:1.6}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #f0ab30;outline-offset:4px}button:disabled{opacity:.55}h1,h2,h3,p{overflow-wrap:break-word}h1,h2,h3{line-height:1.4;letter-spacing:-.025em}h2{font-size:1.4rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-100px;left:16px;z-index:100;background:#fff;padding:12px}.skip-link:focus{top:8px}
.site-header{position:relative;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:28px;padding:16px max(24px,calc((100vw - 1392px)/2));min-height:84px}.site-brand{display:flex;align-items:center;gap:10px;font-size:1.18rem;font-weight:850;letter-spacing:-.04em;line-height:1.25;white-space:nowrap}.brand-secondary{display:block;font-weight:500;font-size:.95rem;letter-spacing:.02em}.logo-mark{display:grid;place-items:center;background:var(--blue);border-radius:15px;width:45px;height:45px;color:#fff;font-family:monospace;font-size:21px;box-shadow:0 4px 0 #164bae}.main-nav{display:flex;gap:5px;flex:1;justify-content:center}.main-nav a{display:flex;gap:7px;align-items:center;padding:10px 12px;border-radius:12px;font-size:.9rem;white-space:nowrap;color:#435672;font-weight:650}.main-nav a>span{font-size:1.25rem}.main-nav a.active{background:#e9f1ff;color:#1b5ac2}.main-nav a:hover{background:#f1f5fb}.header-right{display:flex;align-items:center;gap:10px}.header-right select{border:1px solid var(--line);border-radius:10px;background:#fff;min-height:42px;padding:0 10px;color:var(--ink);font-size:.875rem;max-width:120px}.xp-pill{white-space:nowrap;font-weight:750;color:#8a5900;background:#fff7db;border:1px solid #f5e1a4;border-radius:24px;padding:7px 12px;font-size:.875rem}.sound-button{border:1px solid var(--line);border-radius:12px;background:#fff;width:42px;height:42px;font-size:1.3rem;color:#466582}.sound-button[aria-pressed=false]{opacity:.55}
main{width:min(1392px,calc(100% - 48px));outline:none}.page-view{padding-top:24px;min-height:70vh}.home-hero{position:relative;display:grid;grid-template-columns:1.2fr .8fr;min-height:418px;background:#e7f3ff;background:radial-gradient(ellipse at 83% 35%,#d3efff 0,transparent 44%),linear-gradient(120deg,#edf6ff,#e5f4ff 68%,#d9f3eb);border:1px solid #d9eafb;border-radius:28px;padding:42px 52px;overflow:hidden}.hero-content{position:relative;z-index:2;align-self:center}.hero-label{display:flex;align-items:center;gap:8px;font-size:.875rem;color:#265a8c;font-weight:650;margin-bottom:14px}.small-spark{color:#ec9f1b;font-size:1.35rem}.home-hero h1{font-size:clamp(2.1rem,3.3vw,3.35rem);line-height:1.38;margin:0;color:#123061;font-weight:850;letter-spacing:-.04em}.home-hero h1>span{color:#e97828;letter-spacing:-.04em}.hero-content>p{font-size:1.03rem;line-height:1.9;color:#456887;margin:16px 0 22px}.hero-actions{display:flex;align-items:center;gap:14px}.primary-cta{display:inline-flex;align-items:center;justify-content:center;gap:24px;background:#2469dc;border:1px solid #2469dc;color:#fff;border-radius:13px;min-height:50px;padding:11px 22px;font-weight:700;box-shadow:0 4px 0 #164cad;transition:transform .15s,box-shadow .15s}.primary-cta:hover{background:#1559cb;transform:translateY(-1px);box-shadow:0 5px 0 #164cad}.secondary-cta{padding:12px 16px;display:inline-flex;gap:18px;color:#244d80;font-weight:650;border:1px solid #c6dcf2;border-radius:13px;background:#ffffff91;min-height:48px}.hero-footnote{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:26px;font-size:.8rem;color:#526e87}.hero-footnote i{height:3px;width:3px;border-radius:50%;background:#91abc2}.hero-art{position:relative;min-width:0;display:grid;place-items:center}.hero-robot{position:relative;width:100%;height:365px;object-fit:contain;z-index:1;transform:rotate(3deg);filter:drop-shadow(0 18px 10px #2e79b51c)}.orbit-ring{position:absolute;width:90%;aspect-ratio:1;border-radius:50%;border:1px solid #99c9e663;background:#ffffff50;box-shadow:0 0 0 25px #ffffff2e,0 0 0 26px #bfddeb55}.hello-note{position:absolute;right:-13px;top:9px;z-index:2;background:#fff;border:1px solid #d4e6f3;border-radius:16px 16px 16px 4px;padding:10px 14px;box-shadow:0 6px 18px #26659310;transform:rotate(5deg);font-size:.95rem;font-weight:750;color:#214c7b}.hello-note small{display:block;font-size:.8rem;font-weight:400;color:#657b8d}.code-token{position:absolute;z-index:2;left:-14px;bottom:12px;padding:9px 15px;background:#fff;border:1px solid #d4e6f3;box-shadow:0 8px 24px #31598516;border-radius:13px;display:flex;align-items:center;gap:10px;font-size:.875rem;color:#456281;transform:rotate(-4deg)}.code-token span{font-family:monospace;color:#236add;font-weight:bold;font-size:1.4rem}.art-spark{position:absolute;font-size:2.6rem;color:#efb832;z-index:2}.spark-one{left:11%;top:7%}.spark-two{right:-4%;bottom:12%;font-size:1.8rem;color:#56c7b1}
.age-section{padding-top:30px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.section-heading h2{margin:0;font-size:1.35rem}.section-heading>span,.section-heading>a{color:var(--muted);font-size:.875rem}.section-heading>a{color:#2366bf}.eyebrow{font-size:.75rem;letter-spacing:.13em;color:#507a9a;font-weight:800;margin:0 0 3px}.age-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}.age-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:18px;text-align:left;padding:18px;display:flex;flex-direction:column;align-items:flex-start;min-height:191px;transition:transform .16s,border-color .16s;box-shadow:0 4px 0 #dbe6f03d;color:var(--ink)}.age-card:hover{transform:translateY(-4px);border-color:var(--accent)}.age-card.selected{border:2px solid var(--accent);padding:17px;background:linear-gradient(160deg,var(--tint),#fff)}.gold{--accent:#b88309;--tint:#fff3cc}.green{--accent:#158567;--tint:#ddf6ec}.coral{--accent:#c46040;--tint:#ffeadf}.blue{--accent:#256bd4;--tint:#e3f0ff}.purple{--accent:#7855ba;--tint:#f0e8ff}.age-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:13px;background:var(--tint);color:var(--accent);font-size:1.6rem;font-family:system-ui,sans-serif;font-weight:700;flex:none}.age-copy{display:grid;gap:1px;margin-top:12px}.age-copy>strong{font-size:1.22rem}.age-copy>span{font-size:.88rem;font-weight:600}.age-copy>small{font-size:.78rem;color:#6a7a8b;margin-top:4px}.card-arrow{position:absolute;right:15px;top:23px;color:var(--accent);font-size:1.15rem}.home-bottom{display:grid;grid-template-columns:1.05fr 1fr;gap:20px;margin:26px 0}.continue-card,.home-progress{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;min-width:0}.continue-card{display:flex;align-items:center;gap:20px;position:relative;overflow:hidden}.continue-icon{width:72px;height:82px;display:grid;place-items:center;font-size:2.8rem;color:var(--accent);background:var(--tint);border-radius:20px;flex:none;transform:rotate(-5deg)}.continue-card h2{font-size:1.3rem;margin:3px 0}.continue-card p:not(.eyebrow){color:var(--muted);font-size:.88rem;margin:6px 0 10px}.continue-link{font-weight:700;color:#2064c9;font-size:.9rem}.continue-link>span{margin-left:22px}.continue-number{font-size:5rem;font-weight:900;color:#eef3f9;position:absolute;right:14px;bottom:-20px;z-index:0;pointer-events:none}.continue-card>div{z-index:1}.home-progress .section-heading{margin-bottom:8px}.home-progress .section-heading h2{font-size:1.15rem}.home-stats{display:flex;align-items:center;gap:22px}.home-stats>strong{font-size:2rem;line-height:1.2}.home-stats>strong>small{display:block;font-size:.75rem;color:var(--muted);font-weight:400;margin-top:6px}.home-stats>div{flex:1}.home-stats b{font-size:.9rem}.home-stats p{font-size:.75rem;color:var(--muted);margin:2px 0 7px}.meter{height:7px;border-radius:9px;background:#e8eef6;overflow:hidden}.meter>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#32baa4,#2589d0);min-width:0;transition:width .3s}.mini-badges{display:flex;justify-content:space-between;gap:9px;margin-top:15px}.mini-badge{text-align:center;opacity:.62;flex:1}.mini-badge>span{width:36px;height:36px;display:inline-grid;place-items:center;background:#edf0f6;color:#7889a1;border:1px dashed #b9c6d6;border-radius:12px;font-size:1.4rem}.mini-badge.earned{opacity:1}.mini-badge.earned>span{background:var(--tint);color:var(--accent);border:1px solid var(--accent)}.mini-badge small{display:block;font-size:.75rem;color:#566882;margin-top:4px}.site-footer{border-top:1px solid var(--line);padding:22px max(24px,calc((100vw - 1392px)/2));display:flex;align-items:center;justify-content:space-between;font-size:.85rem;gap:15px;background:#fff;color:#607591;margin-top:20px}.site-footer>a{font-weight:800;color:#365f92}.site-footer small{font-size:.75rem}
.page-heading{display:flex;align-items:center;justify-content:space-between;padding:22px 4px 26px;gap:20px}.page-heading h1{font-size:2.25rem;margin:3px 0 8px}.page-heading p:not(.eyebrow){color:var(--muted);margin:0}.section-symbol{color:#3eaabf;background:#e3f3f9;width:90px;height:90px;border-radius:24px;display:grid;place-items:center;font-size:3.5rem}.track-tabs{display:flex;gap:10px;margin-bottom:22px;flex-wrap:wrap}.track-tab{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--line);background:#fff;border-radius:13px;color:var(--ink);text-align:left;flex:1;min-width:140px}.track-tab .age-copy{margin:0}.track-tab .age-copy>strong{font-size:.95rem}.track-tab .age-copy>span{font-size:.75rem}.track-tab .age-icon{width:35px;height:35px;font-size:1.2rem}.track-tab.selected{border-color:var(--accent);background:var(--tint)}.map-summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 22px;border:1px solid var(--line);border-radius:16px;background:#fff;margin-bottom:25px}.map-summary>div{display:flex;align-items:center;gap:18px}.map-summary .meter{width:140px}.path-label{color:var(--accent);background:var(--tint);padding:5px 12px;font-size:.875rem;border-radius:10px;font-weight:700}.world-section{padding:24px;border:1px solid #dce7f1;border-radius:24px;background:linear-gradient(140deg,#fff,var(--tint));margin-bottom:22px}.world-heading{display:flex;align-items:center;gap:14px;margin-bottom:20px}.world-number{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:var(--tint);color:var(--accent);font-size:1.45rem;font-weight:800}.world-heading h2{margin:0}.world-heading>span:last-child{margin-left:auto;color:var(--muted);font-size:.9rem}.lesson-path{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.lesson-node{text-align:left;background:#fff;border:1px solid #d1dfed;border-radius:17px;padding:18px;color:var(--ink);position:relative;min-height:182px;display:flex;flex-direction:column;transition:transform .15s}.lesson-node.available:hover,.lesson-node.completed:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 4px 16px #203e6911}.node-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.node-index{width:32px;height:32px;border-radius:10px;background:#e5efff;display:grid;place-items:center;color:#2759a1;font-weight:750}.node-state{font-size:.75rem;color:#2164bb;background:#eaf2ff;padding:3px 8px;border-radius:8px}.node-concept{font-size:.75rem;color:var(--muted);margin-bottom:3px}.lesson-node>strong{font-size:1rem;line-height:1.6;display:block;margin-bottom:12px}.node-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}.node-bottom small{font-size:.75rem;color:var(--muted)}.stars{color:#b57a00;white-space:nowrap;font-family:system-ui,sans-serif;letter-spacing:.05em;font-size:.95rem}.stars>span{color:#a8b8c8}.lesson-node.locked{background:#f5f7fa;opacity:.7}.locked .node-state{background:#e9edf4;color:#687b91}.completed .node-index{background:#ddf6eb;color:#138067}.completed .node-state{background:#e5f7ed;color:#237a59}.map-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:22px;font-size:.85rem;color:var(--muted);margin:25px 0 36px}
.progress-summary{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:14px;margin-bottom:28px}.progress-summary article{background:#fff;border:1px solid var(--line);border-radius:20px;padding:23px;display:flex;flex-direction:column;justify-content:center}.progress-summary article>span{font-size:1.5rem;color:#387ed3}.progress-summary article>strong{font-size:2rem;margin:2px 0}.progress-summary article>small{color:var(--muted);font-size:.875rem}.progress-summary .learner-card{display:flex;flex-direction:row;align-items:center;gap:18px;background:linear-gradient(135deg,#e1f1ff,#effaf8);border-color:#c9e3ed}.learner-mark{display:grid;place-items:center;width:64px;height:64px;flex:none;border-radius:20px;background:#fff;border:3px solid #3289d9;color:#2563b0;font-size:2rem;font-weight:800}.learner-card h2{font-size:1.2rem;margin:4px 0}.learner-card small,.learner-card p{font-size:.8rem;color:var(--muted);margin:3px 0 9px}.badge-section{padding:24px;background:#fff;border:1px solid var(--line);border-radius:22px;margin-bottom:28px}.badge-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.badge-card{text-align:center;border-radius:16px;background:#f7f9fc;padding:25px 16px 18px;border:1px solid #edf1f7;display:flex;flex-direction:column;align-items:center}.badge-medal{width:74px;height:80px;background:#e5eaf2;color:#8292a9;border:3px solid #d7dfeb;border-radius:26px 26px 34px 34px;display:grid;place-items:center;font-size:2.5rem;margin-bottom:16px;box-shadow:0 4px 0 #cbd5e3}.badge-card.earned{background:linear-gradient(#fff,var(--tint))}.badge-card.earned .badge-medal{background:var(--tint);border-color:var(--accent);color:var(--accent);box-shadow:0 4px 0 var(--accent)}.badge-card strong{font-size:1rem}.badge-card p{font-size:.875rem;color:var(--muted);margin:8px 0 16px;flex:1}.badge-status{font-size:.75rem;color:#61708a;background:#e7edf5;border-radius:8px;padding:3px 9px}.earned .badge-status{color:var(--accent);background:var(--tint)}.track-progress{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden}.track-progress-row{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:24px;align-items:center;padding:20px 25px;border-bottom:1px solid var(--line)}.track-progress-row:last-child{border:0}.track-progress-row>div strong{display:block;font-size:.95rem;margin-bottom:8px}.track-progress-row>span small{display:block;font-size:.75rem;color:var(--muted)}.track-progress-row:hover{background:#f5f9ff}.local-note{font-size:.85rem;color:var(--muted);margin:22px 0}.storage-notice{background:#fff1cf;padding:12px 20px;border-radius:12px;margin:16px 0;color:#775608}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);padding:13px 24px;background:#17324f;color:#fff;border-radius:13px;box-shadow:var(--shadow);z-index:90}
/* v0.4 unifies the inherited v0.3 nested builder without replacing its DOM. */
.stage-panel{grid-column:auto;grid-row:auto}
.lab-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px;font-size:.9rem;color:var(--muted)}.lab-heading a{color:#2761aa}.mission-strip{border-radius:17px;padding:14px 18px;box-shadow:none;margin-bottom:18px}.mission-strip-head strong{font-size:1rem}.mission-strip .panel-kicker{display:none}.mission-strip-head span:last-child{font-size:.875rem}.mission-tabs{padding-top:8px}.mission-tab{font-size:.875rem;font-weight:600;padding:8px 12px;border-radius:10px;min-height:42px}.mission-tab.active{border-color:#97bbed;background:#eaf1ff;color:#235bb0}.workspace-shell{grid-template-columns:minmax(205px,.67fr) minmax(310px,1.14fr) minmax(300px,1fr);gap:16px;align-items:start}.lesson-panel,.program-panel,.stage-panel{min-height:0;padding:20px;border-radius:20px;box-shadow:none;min-width:0}.lesson-head h2{font-size:1.3rem;margin:10px 0;line-height:1.5}.lesson-head p{font-size:.94rem}.lesson-badge,.unlock-chip{font-size:.875rem}.goal-card{padding:12px;margin:16px 0;background:#fff6dc;border:1px solid #f4dfa9;font-size:.9rem;border-radius:12px}.goal-card strong{font-size:.9rem}.palette-title-row{display:block}.palette-title-row h3{font-size:1rem}.palette-title-row p{font-size:.875rem}.unlock-chip{display:none}.tips{font-size:.875rem;background:#edf8f5;border-radius:12px}.tips span{font-size:.875rem}.panel-kicker{font-size:.75rem;letter-spacing:.1em}.panel-title-row h2{font-size:1.2rem}.text-btn{font-size:.875rem;font-weight:500;min-height:42px}.code-block{border-radius:11px;box-shadow:0 3px 0 #00000016;min-height:48px;padding:10px;font-size:.92rem;font-weight:650}.code-block .block-icon{width:27px;height:27px;border-radius:7px;margin-right:8px}.move{background:#2878d3}.left{background:#7160b7}.right{background:#b96b26}.repeat{background:#a3427a}.condition{background:#118372}.variable{background:#7357b1}.insert-target-bar{font-size:.8rem;border-radius:10px;margin-top:12px;flex-wrap:wrap}.insert-target-bar button{min-height:40px}.dropzone{min-height:280px;max-height:650px;overflow:auto;margin-top:12px;border-radius:14px;padding:12px;background-color:#f8fbff;background-image:radial-gradient(#cbd9e8 1px,transparent 1px);background-size:16px 16px}.empty-state{min-height:250px;color:#567088}.empty-state span{font-size:.875rem}.empty-icon{font-family:monospace;font-size:2rem}.empty-state strong{font-weight:650}.program-item{border-radius:11px;padding:9px;box-shadow:0 2px 0 #00000018}.program-label{font-size:.875rem;font-weight:650;min-width:0}.program-index{font-size:.75rem;width:23px;height:23px;flex:none}.block-head{gap:7px;flex-wrap:wrap}.block-tools{gap:4px}.mini-tool,.remove-btn{width:36px;height:38px;flex:none;border-radius:8px}.nested-list{padding-left:8px}.branch-title{font-size:.75rem;letter-spacing:.02em}.branch-box{padding:6px}.block-settings{font-size:.875rem;padding:7px;flex-wrap:wrap}.block-settings select{min-height:42px;font-size:.875rem;max-width:100%;min-width:0;flex:1}.nested-drop{min-height:55px;font-size:.875rem;margin-left:8px;width:calc(100% - 8px);padding:8px}.nested-drop small{font-size:.8rem}.run-actions{grid-template-columns:1fr auto auto;gap:8px;margin-top:15px}.run-btn,.reset-btn,.stop-btn{min-height:48px;padding:11px 13px;border-radius:11px;font-size:.9rem;font-weight:650}.run-btn{background:#178566;box-shadow:0 3px 0 #116c51}.stop-btn{background:#fff2ef;color:#a34332;border:1px solid #ebc9c1}.reset-btn{background:#edf2f8;color:#49617e}.status-badge{font-size:.8rem;white-space:nowrap;border-radius:9px}.stage-legend{font-size:.75rem;color:var(--muted);display:flex;gap:14px;flex-wrap:wrap;margin:13px 0 0}.legend-star{color:#b77b00;font-size:1rem}.stage-wrap{padding:9px;border-radius:14px;background:#e7f3ef;border:1px solid #cfe3da;margin-top:10px}.stage{background:#e1f0df;background-image:linear-gradient(45deg,#d4e8d300 75%,#c9e2cc90 75%),linear-gradient(45deg,#c9e2cc90 25%,#d4e8d300 25%);background-size:40% 40%;background-position:0 0,20% 20%;border-radius:10px;max-width:440px}.grid-cell{border:1px solid #ffffff60}.robot{transition:left .23s ease,top .23s ease;transform:none!important}.robot img{display:block;object-fit:contain;width:100%;height:100%;filter:drop-shadow(0 4px 2px #2f583045)}.robot-direction{position:absolute;right:-20%;top:30%;font-size:1.6rem;font-family:system-ui;color:#1857ad;font-weight:bold;text-shadow:0 1px 0 #fff;transition:transform .15s;transform-origin:50% 50%;z-index:5;line-height:1}.star{font-size:clamp(28px,4vw,48px);color:#f0aa16;-webkit-text-stroke:1px #c78911;text-shadow:0 4px 0 #b478062b}.obstacle{font-size:1.5rem;color:#769982;border-radius:10px;background:#adccb1;box-shadow:inset 0 -5px 0 #92b89a;width:16%;height:16%}.stage-coordinates{font-size:.8rem;color:#537065;margin:12px 0}.feedback{border-radius:12px;padding:12px;font-size:.9rem}.feedback span{font-size:.875rem}.feedback strong{font-weight:650}.progress-top{font-size:.875rem}.progress-track{height:7px}.stage-actions{gap:7px}.ghost-btn,.next-btn{min-height:44px;border-radius:10px;padding:10px;font-size:.875rem;font-weight:600}.next-btn{background:#2664cb}.code-preview{border-radius:12px}.code-preview summary{font-size:.9rem;padding:10px 12px;min-height:45px}.code-preview pre{font-size:.875rem;line-height:1.8;background:#14283c}.code-explanation{margin:0;font-size:.8rem;padding:10px 12px;background:#eff5fc;color:#47678a}.editor-modes{display:flex;border-radius:11px;background:#edf3fa;padding:4px;margin-bottom:15px;gap:5px}.editor-modes button{flex:1;min-height:40px;border:0;background:transparent;border-radius:9px;font-size:.875rem;color:#597087}.editor-modes button[aria-pressed=true]{background:#fff;color:#2367c7;box-shadow:0 2px 7px #344d7a12;font-weight:700}.editor-caption{display:flex;justify-content:space-between;background:#20374c;color:#b8d0e5;border-radius:12px 12px 0 0;font-family:monospace;padding:12px 16px;font-size:.875rem}.editor-caption span{font-size:.75rem;color:#72b8d2}#pythonEditor{display:block;resize:vertical;width:100%;min-height:360px;padding:18px 16px;border:0;background:#14283c;color:#d1f4ee;font:14px/1.9 ui-monospace,SFMono-Regular,Consolas,monospace;tab-size:4;border-radius:0 0 12px 12px;white-space:pre;overflow:auto}#syntaxMessage{font-size:.875rem;color:#a34031;line-height:1.6;margin:6px 0}.editor-note{font-size:.8rem;color:var(--muted);margin:8px 0}.command-guide{border-top:1px solid var(--line);padding-top:14px;margin-top:18px}.command-guide h3{font-size:1rem;margin:0}.command-guide dl{font-size:.8rem}.command-guide dt{font-family:monospace;color:#1958a7;background:#edf4ff;padding:5px 7px;border-radius:5px;margin-top:12px;overflow-wrap:anywhere}.command-guide dd{margin:4px 0 0;color:#58708c}.command-guide p{font-size:.8rem;color:#61738a}.executing{outline:3px solid #ffc940;outline-offset:2px}.project-banner{display:flex;justify-content:space-between;gap:24px;background:#eef2ff;border:1px solid #d8e0f7;border-radius:18px;padding:24px;margin-bottom:18px}.project-banner h1{font-size:1.8rem;margin:3px 0}.project-banner p{margin:3px 0;color:var(--muted)}.project-banner>div:last-child{display:grid;grid-template-columns:1fr auto;align-content:center;gap:8px}.project-banner label{grid-column:1/-1;font-size:.875rem}.project-banner input{min-width:0;border:1px solid #b9c9df;border-radius:10px;padding:9px 12px;color:var(--ink)}.project-banner button{min-height:42px;padding:8px 15px;font-size:.875rem}.senior-mode .home-hero{background:linear-gradient(120deg,#e9f1ff,#e6eafd)}.senior-mode .lesson-panel,.senior-mode .program-panel,.senior-mode .stage-panel{border-radius:14px}.tiny-mode .lesson-head p{font-size:1rem}.tiny-mode .code-block{font-size:1.1rem;min-height:64px;padding:12px}.tiny-mode .code-block .block-icon{font-size:1.65rem;width:40px;height:40px}.tiny-mode .program-label{font-size:1rem}.tiny-mode .program-item{padding:12px}.tiny-mode .run-btn,.tiny-mode .reset-btn,.tiny-mode .stop-btn{min-height:56px;font-size:1rem}.tiny-mode .mini-tool,.tiny-mode .remove-btn{min-width:42px;min-height:44px}.tiny-mode .stage{max-width:480px}.tiny-mode .mission-tab{font-size:.9rem;min-height:46px}
@media(min-width:1500px){.home-hero{min-height:442px}.hero-robot{height:385px}}
@media(max-width:1200px){.site-header{gap:16px;padding:14px 24px;flex-wrap:wrap}.main-nav{order:3;flex-basis:100%;justify-content:flex-start;border-top:1px solid #eef2f7;padding-top:6px}.header-right{margin-left:auto}.home-hero{padding:32px;grid-template-columns:1.2fr .8fr}.hero-robot{height:320px}.hello-note{right:-12px;top:-6px}.age-card{padding:14px}.age-card.selected{padding:13px}.age-copy>span{font-size:.83rem}.age-copy>small{font-size:.75rem}.workspace-shell{grid-template-columns:minmax(190px,.65fr) minmax(300px,1.15fr) minmax(260px,1fr);gap:12px}.lesson-panel,.program-panel,.stage-panel{padding:15px}.progress-summary{grid-template-columns:repeat(4,1fr)}.progress-summary .learner-card{grid-column:1/-1}.lesson-path{grid-template-columns:repeat(3,1fr)}}
@media(max-width:960px){main{width:calc(100% - 32px)}.home-hero{padding:30px;min-height:380px}.home-hero h1{font-size:2.5rem}.hero-robot{height:275px}.hero-content>p{font-size:.94rem}.hello-note{font-size:.8rem;padding:8px;right:-16px}.hello-note small{font-size:.75rem}.code-token{left:0;bottom:0;font-size:.75rem;padding:6px 9px}.hero-footnote{font-size:.75rem;gap:7px}.age-grid{grid-template-columns:repeat(3,1fr)}.age-card{min-height:160px}.home-bottom{grid-template-columns:1fr 1fr;gap:14px}.continue-card{gap:12px;padding:18px}.continue-icon{width:48px;height:65px;font-size:2rem}.continue-card h2{font-size:1.1rem}.home-progress{padding:18px}.workspace-shell{grid-template-columns:1fr 1.2fr;align-items:start}.lesson-panel{grid-column:1;grid-row:1}.stage-panel{grid-column:1;grid-row:2}.program-panel{grid-column:2;grid-row:1/3;position:sticky;top:12px}.dropzone{max-height:650px}.stage{max-width:380px}.badge-grid{gap:10px}.badge-card{padding:18px 10px}.badge-card strong{font-size:.9rem}.badge-card p{font-size:.8rem}.map-summary .meter{width:90px}.stage-panel .panel-title-row h2{font-size:1.1rem}.run-actions{grid-template-columns:1fr auto}.reset-btn{grid-column:1/-1;padding:8px;min-height:42px}.project-banner{display:block}.project-banner>div:last-child{margin-top:15px}}
@media(max-width:700px){.site-header{padding:12px 16px;gap:12px}.site-brand{font-size:1.05rem}.brand-secondary{font-size:.85rem}.logo-mark{width:39px;height:39px;border-radius:12px;font-size:18px}.header-right{gap:6px}.xp-pill{display:none}.header-right select{max-width:95px;font-size:.8rem;padding:0 4px}.sound-button{width:37px;height:40px}.main-nav{gap:4px;overflow:auto;flex-wrap:nowrap;padding-top:9px}.main-nav a{flex:1;justify-content:center;padding:6px 8px;font-size:.8rem;gap:5px}.main-nav a>span{font-size:1.05rem}.page-view{padding-top:16px}.home-hero{grid-template-columns:1fr;padding:25px 23px 10px;min-height:0;border-radius:22px}.hero-content{text-align:left}.hero-label{font-size:.8rem;margin-bottom:10px}.home-hero h1{font-size:clamp(1.9rem,7vw,2.65rem);line-height:1.45}.hero-content>p{font-size:.94rem;line-height:1.9;margin:12px 0 17px}.desktop-break{display:none}.primary-cta{min-height:48px;padding:10px 18px;gap:18px;font-size:.95rem}.secondary-cta{font-size:.875rem;gap:8px;padding:10px 12px;min-height:48px}.hero-footnote{display:none}.hero-art{height:230px;margin-top:8px}.hero-robot{height:245px;width:260px}.orbit-ring{width:210px}.hello-note{right:0;top:30px;font-size:.8rem}.code-token{left:0;bottom:18px;font-size:.75rem}.spark-one{left:9%;top:26%}.spark-two{right:3%;bottom:5%}.section-heading{align-items:flex-start;margin-bottom:13px}.section-heading h2{font-size:1.2rem}.section-heading>span{font-size:.75rem;max-width:120px;text-align:right}.age-section{padding-top:24px}.age-grid{grid-template-columns:1fr 1fr;gap:10px}.age-card{min-height:154px;padding:15px;border-radius:15px}.age-card.selected{padding:14px}.age-card:last-child{grid-column:1/-1;min-height:90px;flex-direction:row;align-items:center;gap:15px}.age-card:last-child .age-copy{margin:0}.age-card:last-child .card-arrow{top:30px;right:18px}.age-copy{margin-top:10px}.age-copy>strong{font-size:1.1rem}.age-copy>span{font-size:.86rem}.age-copy>small{font-size:.75rem}.age-icon{width:38px;height:38px;font-size:1.45rem}.home-bottom{grid-template-columns:1fr;margin-top:20px}.continue-card,.home-progress{padding:20px}.continue-card h2{font-size:1.2rem}.mini-badge small{font-size:.75rem}.site-footer{padding:20px 16px;flex-wrap:wrap;font-size:.8rem}.site-footer>span{display:none}.site-footer small{font-size:.75rem}.page-heading{padding:14px 0 20px}.page-heading h1{font-size:1.8rem}.page-heading p{font-size:.94rem}.section-symbol{display:none}.track-tabs{gap:8px;flex-wrap:nowrap;overflow:auto;padding-bottom:5px}.track-tab{min-width:155px;padding:10px}.map-summary{padding:15px;display:block}.map-summary>div{gap:10px}.map-summary>div+div{margin-top:12px;font-size:.875rem}.map-summary .meter{flex:1}.world-section{padding:17px;border-radius:18px}.world-heading h2{font-size:1.15rem}.world-number{width:42px;height:45px;border-radius:12px;font-size:1.2rem}.world-heading .eyebrow{font-size:.75rem}.lesson-path{grid-template-columns:1fr 1fr;gap:11px}.lesson-node{min-height:190px;padding:13px;border-radius:13px}.node-top{gap:4px}.node-index{width:28px;height:28px;font-size:.9rem}.node-state{font-size:.75rem;padding:2px 5px}.lesson-node>strong{font-size:.94rem}.node-bottom{flex-wrap:wrap;gap:2px}.node-bottom small{font-size:.75rem}.map-legend{gap:14px;font-size:.8rem}.progress-summary{grid-template-columns:1fr 1fr;gap:10px}.progress-summary article{padding:18px}.progress-summary .learner-card{padding:22px}.progress-summary article>strong{font-size:1.8rem}.badge-section{padding:18px}.badge-section .section-heading{display:block}.badge-section .section-heading>span{display:block;max-width:none;text-align:left;margin-top:3px}.badge-grid{grid-template-columns:1fr 1fr;gap:12px}.badge-card{padding:20px 13px}.badge-card:last-child{grid-column:1/-1}.badge-card p{font-size:.875rem}.track-progress-row{grid-template-columns:auto 1fr auto;gap:12px;padding:16px}.track-progress-row>span.stars,.track-progress-row>span:last-child{display:none}.track-progress-row>div strong{font-size:.875rem}.lab-heading{font-size:.8rem;align-items:start}.lab-heading>span{max-width:180px;text-align:right}.workspace-shell{display:flex;flex-direction:column;gap:14px}.lesson-panel,.program-panel,.stage-panel{width:100%;padding:17px;border-radius:16px;min-height:0}.stage-panel{order:1}.lesson-panel{order:2}.program-panel{order:3;position:static}.lesson-head h2{font-size:1.2rem}.stage{max-width:330px}.stage-panel .panel-kicker{display:none}.stage-panel .stage-wrap{margin-top:8px}.stage-legend{font-size:.75rem;margin-top:6px;gap:10px}.stage-panel .stage-coordinates{margin:8px 0}.feedback{padding:10px;font-size:.9rem}.stage-panel .progress-card{display:none}.stage-panel .stage-actions{margin-top:10px}.stage-panel .stage-actions button{min-height:42px}.goal-card{font-size:.9rem;margin:12px 0}.palette-buttons{grid-template-columns:1fr 1fr;gap:10px}.code-block{font-size:.9rem;min-height:53px}.tips{margin-top:14px}.tiny-mode .palette-buttons{grid-template-columns:repeat(3,1fr)}.tiny-mode .code-block{min-height:88px;display:flex;flex-direction:column;align-items:center;padding:9px 5px;font-size:.94rem}.tiny-mode .code-block .block-icon{margin:0 0 4px;width:40px;height:40px;font-size:1.8rem}.dropzone{min-height:220px;max-height:none;padding:10px}.empty-state{min-height:180px}.insert-target-bar{position:static;font-size:.8rem}.run-actions{grid-template-columns:1fr auto auto;position:sticky;bottom:10px;background:#fff;padding:10px;margin:15px -7px -6px;border:1px solid var(--line);border-radius:14px;z-index:10;box-shadow:0 5px 25px #213f601c}.reset-btn{grid-column:auto}.run-btn,.stop-btn,.reset-btn{min-height:48px;padding:10px 12px;font-size:.875rem}.tiny-mode .run-btn,.tiny-mode .reset-btn,.tiny-mode .stop-btn{font-size:.94rem;min-height:52px}.program-label{font-size:.9rem}.mini-tool,.remove-btn{width:40px;height:42px}.block-tools{gap:4px}.block-settings select{max-width:100%;width:100px}.nested-list .block-head{gap:5px}.nested-list .block-tools{width:100%;justify-content:flex-end}.code-preview pre{font-size:.875rem}.project-banner{padding:18px}.project-banner h1{font-size:1.5rem}.project-banner p{font-size:.94rem}.project-banner>div:last-child{grid-template-columns:1fr}.project-banner label{grid-column:auto}#pythonEditor{min-height:310px}.mission-strip{padding:13px}.mission-tab{font-size:.8rem}.toast{bottom:20px;width:max-content;font-size:.9rem}.world-section .eyebrow{font-size:.75rem}.home-hero .hero-actions{gap:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

@media(max-width:700px){.hello-note{top:-4px;right:-5px}.hero-art{margin-top:20px}}

/* v0.5 — lesson support and portable learner progress */
.lesson-prep{margin:16px 0;background:#f5f9ff;border:1px solid #dbe7f6;border-radius:14px;padding:14px;color:var(--ink)}
.lesson-prep summary{cursor:pointer;font-size:.9rem;font-weight:750;line-height:1.7}
.lesson-prep p,.lesson-prep ol{font-size:.9rem;line-height:1.8;margin:12px 0 0}
.lesson-prep ol{padding-left:24px}.lesson-prep li+li{margin-top:6px}
.lesson-prep .think-question{padding:12px;border-left:3px solid #f0b746;background:#fff7df;border-radius:4px 10px 10px 4px}
.lesson-bridge{color:#275faf;border-top:1px solid #cfdef1;padding-top:12px;overflow-wrap:anywhere}
.hint-panel{margin:16px 0;padding:15px;background:#fffaf0;border:1px solid #f0dfb7;border-radius:14px}
.hint-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.hint-heading h3{font-size:1rem;margin:0}.hint-heading>span{font-size:.8rem;color:#775c22}
.hint-panel p,.hint-panel ol{font-size:.9rem;line-height:1.8;margin:10px 0}.hint-panel ol{padding-left:24px}.hint-panel li+li{margin-top:10px}
.hint-panel ol:empty{display:none}.hint-button{width:100%;padding:10px 14px;min-height:46px;background:#fff;border:1px solid #d8b56b;border-radius:11px;color:#74530b;font-weight:750;font-size:.95rem}.hint-button:hover:not(:disabled){background:#fff2c9}
#hintExample{margin:12px 0}#hintExample strong{font-size:.9rem}#hintExample pre{max-width:100%;overflow-x:auto;white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0;padding:12px;background:#fff;border:1px solid #f1e4c8;border-radius:10px;font-size:.875rem;line-height:1.8;tab-size:4}#hintExample code{font-family:ui-monospace,Consolas,Tahoma,monospace}
.tiny-mode .lesson-prep summary,.tiny-mode .lesson-prep p,.tiny-mode .lesson-prep ol,.tiny-mode .hint-panel p,.tiny-mode .hint-panel ol{font-size:1rem}.tiny-mode .hint-button{min-height:56px;font-size:1.1rem}
.transfer-card{margin:24px 0;background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px}.transfer-card>.section-heading{margin-bottom:10px}.transfer-card>p{max-width:820px;margin:10px 0 18px;color:var(--muted);font-size:1rem}.transfer-symbol{font-size:2.2rem!important;color:#2469dc!important;background:#edf4ff;width:56px;height:56px;display:grid;place-items:center;border-radius:16px}
.transfer-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.import-picker{display:grid;gap:7px;min-width:0;max-width:100%}.import-picker label{font-weight:750;font-size:.95rem}.import-picker input{max-width:100%;font-size:.9rem;color:var(--muted)}.import-picker input::file-selector-button{font:inherit;padding:10px 14px;margin-right:10px;border:1px solid #c7d7ed;border-radius:10px;background:#f5f9ff;color:#235b9e;cursor:pointer}
.transfer-card .transfer-help{font-size:.875rem;line-height:1.8;margin-top:18px}.import-preview{padding:20px;border:1px solid #cbdff7;background:#f4f8ff;border-radius:15px;margin-top:20px}.import-preview h3{font-size:1.1rem;margin:0}.import-filename{overflow-wrap:anywhere;color:#436c9c;font-size:.875rem;margin:7px 0 14px}.import-preview dl{margin:0 0 20px;display:grid;grid-template-columns:auto 1fr;column-gap:24px;row-gap:12px;font-size:.95rem}.import-preview dt{font-weight:750}.import-preview dd{margin:0}.import-confirm-actions{display:flex;gap:12px;flex-wrap:wrap}.transfer-card .transfer-status{margin:16px 0 0;color:#17674c;font-size:.95rem}.transfer-status:empty{display:none}.transfer-card .transfer-status.error{color:#a93328}
@media(max-width:700px){.transfer-card{padding:19px;margin:20px 0}.transfer-actions{align-items:stretch;flex-direction:column;gap:20px}.transfer-actions>.primary-cta{width:100%}.transfer-symbol{display:none!important}.import-preview{padding:15px}.import-preview dl{grid-template-columns:1fr;row-gap:5px}.import-preview dd+dt{margin-top:10px}.import-confirm-actions{flex-direction:column}.import-confirm-actions>button{width:100%;justify-content:center}.hint-panel,.lesson-prep{padding:14px}.hint-heading>span{font-size:.875rem}}

/* v0.5.1 — Academy theme. Interaction and age-adaptive rules remain above. */
@font-face{font-family:"Classroom Thai";src:url('./assets/fonts/NotoSansThai-Variable.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
:root{--ink:#172f50;--muted:#5b6b80;--blue:#265fc4;--line:#dfe5ed;--shadow:0 8px 28px #172f5010;font-family:"Classroom Thai",Tahoma,system-ui,sans-serif}
body{color:var(--ink);background:#f5f7fa;font-family:"Classroom Thai",Tahoma,system-ui,sans-serif;line-height:1.75}
h1,h2,h3{letter-spacing:0;font-weight:650;line-height:1.5}
button,input,select,textarea{font-family:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}
.site-header{min-height:82px;padding:17px max(24px,calc((100vw - 1280px)/2));gap:24px}
.site-brand{font-weight:700;letter-spacing:-.02em;font-size:1.12rem;gap:11px}.brand-secondary{font-size:.9rem;letter-spacing:0}.logo-mark{background:#172f50;border-radius:10px;box-shadow:none;width:42px;height:42px}
.main-nav{gap:4px}.main-nav a{font-weight:500;font-size:.9rem;padding:10px 12px;border-radius:7px}.main-nav a>span{display:none}.main-nav a.active{background:#edf2fa;color:#204fa1}.main-nav a:hover{background:#f1f4f8}
.header-right{gap:8px}.header-right select,.sound-button{border-radius:7px}.xp-pill{background:#f5f7fa;border-color:var(--line);color:#425672;border-radius:7px;font-weight:600}
main{width:min(1280px,calc(100% - 48px));margin:0 auto 40px}.page-view{padding-top:32px}
.home-hero,.senior-mode .home-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:56px;min-height:0;padding:28px 0 42px;background:none;border:0;border-radius:0;overflow:visible}
.hero-content{align-self:center}.hero-label{font-size:.8rem;font-weight:650;letter-spacing:.07em;color:#265fc4;display:flex;gap:12px;flex-wrap:wrap;margin:0 0 18px}.hero-label>span{font-weight:400;color:var(--muted);letter-spacing:0;border-left:1px solid #c6d1df;padding-left:12px}
.home-hero h1{font-size:clamp(2rem,3.15vw,2.9rem);font-weight:650;line-height:1.45;letter-spacing:0;color:var(--ink);margin:0}.home-hero h1>span{color:#335f9c;letter-spacing:0}
.hero-content>p:not(.hero-label){font-size:1rem;line-height:1.9;color:var(--muted);margin:19px 0 25px}.hero-actions{gap:12px}.primary-cta,.secondary-cta{border-radius:8px;box-shadow:none;min-height:48px;padding:11px 21px;font-size:.95rem;font-weight:550;gap:24px;transition:background .15s}.primary-cta{background:#265fc4;border-color:#265fc4}.primary-cta:hover{background:#204fa1;transform:none;box-shadow:none}.secondary-cta{background:#fff;border-color:#cdd7e4;color:#28476c}.secondary-cta:hover{background:#edf2f8}
.hero-footnote{display:flex;margin-top:23px;gap:12px;font-size:.8rem;color:#65768c}.hero-footnote i{background:#b3c0d1}
.continue-card{display:block;align-self:center;min-width:0;min-height:0;padding:27px 28px;background:#172f50;color:#fff;border:1px solid #172f50;border-radius:14px;box-shadow:0 14px 30px #172f5010;overflow:hidden}
.continue-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.continue-label{font-size:.875rem;color:#cfdbed}.continue-track{background:#ffffff12;border:1px solid #ffffff26;padding:3px 10px;border-radius:5px;font-size:.8rem;white-space:nowrap}
.continue-main{display:grid;grid-template-columns:minmax(0,1fr) 95px;gap:10px;align-items:center;margin:22px 0 24px}.continue-card .continue-subtitle{color:#9fb5d3;font-size:.8rem;margin:0 0 5px}.continue-card h2{color:#fff;font-size:1.3rem;font-weight:600;margin:0}.continue-card p:not(.eyebrow):not(.continue-subtitle){font-size:.875rem;color:#b9cbe3;margin:8px 0 0}.continue-robot{width:95px;height:112px;object-fit:contain}.continue-progress{display:flex;justify-content:space-between;gap:12px;font-size:.8rem;color:#c2d1e6;margin-bottom:9px}.continue-card .meter{height:4px;background:#ffffff20}.continue-card .meter>span{background:#81b5f5}
.continue-link{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 15px;min-height:46px;margin-top:22px;background:#fff;color:#172f50;border-radius:7px;font-size:.9rem;font-weight:600}.continue-link:hover{background:#e7effb}.continue-link>span{margin:0}
.age-section{border-top:1px solid var(--line);padding-top:30px}.section-heading{margin-bottom:20px;gap:18px}.section-heading h2{font-size:1.35rem;font-weight:600}.eyebrow{font-size:.8rem;color:#65768c;font-weight:500;letter-spacing:0;margin:0 0 5px}.section-heading>span,.section-heading>a{font-size:.875rem}.section-heading>a{color:#265fc4}
.age-grid{gap:14px}.age-card,.age-card.selected{padding:20px 18px;min-height:224px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:none;transform:none;transition:border-color .15s,background .15s}.age-card.selected{border-color:#265fc4;background:#f6f9ff}.age-card:hover{transform:none;border-color:#7d9cc4;background:#f9fbfe}
.age-card-top{display:flex;justify-content:space-between;align-items:center;width:100%;gap:8px}.path-number{font-family:system-ui,sans-serif;font-size:1.1rem;font-weight:500;color:#6d819b}.path-selection{font-size:.75rem;color:#718096}.selected .path-selection{background:#e6efff;color:#2054aa;padding:2px 7px;border-radius:4px}.age-copy{margin-top:23px;gap:5px}.age-copy>strong{font-size:1.2rem;font-weight:650}.age-copy>span{font-size:.875rem;font-weight:500}.age-copy>small{font-size:.8rem;color:#65768c;margin-top:0}.age-card-bottom{display:flex;justify-content:space-between;width:100%;margin-top:auto;padding-top:20px;font-size:.8rem;color:#65768c}.age-card-bottom>span:last-child{font-size:1.15rem;color:#265fc4;line-height:1}
.home-progress{margin:28px 0 0;padding:24px 28px;border-radius:10px;background:#fff;border:1px solid var(--line)}.home-progress .section-heading{margin-bottom:22px}.home-progress .section-heading h2{font-size:1.2rem}.home-progress-content{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:40px;align-items:center}.home-stats{gap:24px}.home-stats>strong{font-size:2.3rem;font-weight:600}.home-stats>strong>small,.home-stats p{font-size:.8rem}.home-stats b{font-size:.95rem;font-weight:550}.meter{height:5px;background:#e9eef5}.meter>span{background:#4679bb}.mini-badges{margin:0;padding-left:30px;border-left:1px solid var(--line);gap:12px}.mini-badge{opacity:1}.mini-badge>span{width:36px;height:36px;border-radius:50%;border:1px solid #e0e6ee;background:#f6f8fb;color:#8d9bae;font-size:1.15rem}.mini-badge small{font-size:.75rem;color:#63738a;margin-top:7px}
.page-heading{padding:10px 0 28px}.page-heading h1{font-size:2rem;font-weight:600}.section-symbol{display:none}.track-tab{border-radius:8px}.track-tab.selected{background:#edf3fc;border-color:#8eaad1}.track-tab .age-copy>span{font-size:.8rem}.age-icon{border-radius:9px}.map-summary{border-radius:9px;padding:19px 22px}.world-section{background:#fff;border-radius:12px;padding:25px;border-color:var(--line)}.world-number{border-radius:8px;background:#f0f4f9;color:#476386;font-weight:500}.world-heading h2{font-size:1.3rem}.lesson-node{border-radius:9px;min-height:195px}.lesson-node.available:hover,.lesson-node.completed:hover{transform:none;box-shadow:none;border-color:#638bc0}.lesson-node.locked{opacity:1;background:#f5f6f8;color:#647286}.node-index{border-radius:6px;font-weight:600}.node-state{border-radius:4px}.node-concept,.node-bottom small{font-size:.8rem}
.progress-summary article,.badge-section,.track-progress,.transfer-card{border-radius:10px;box-shadow:none}.progress-summary .learner-card{background:#edf3fb;border-color:#d4dfed}.learner-mark{border:1px solid #a3bad8;border-radius:10px;font-weight:600}.progress-summary article>strong{font-weight:600}.badge-card,.badge-card.earned{border-radius:9px;background:#fafbfd}.badge-medal,.badge-card.earned .badge-medal{width:62px;height:62px;border-radius:50%;border-width:1px;box-shadow:none;font-size:1.9rem}.badge-card strong{font-weight:600}.badge-status{border-radius:4px}.transfer-symbol{border-radius:8px!important}.import-picker label,.import-preview dt{font-weight:600}
.mission-strip{border-radius:10px}.mission-tab{border-radius:6px}.lesson-panel,.program-panel,.stage-panel,.senior-mode .lesson-panel,.senior-mode .program-panel,.senior-mode .stage-panel{border-radius:10px}.lesson-head h2{font-size:1.2rem;font-weight:600}.lesson-head p{color:var(--muted)}.panel-kicker{letter-spacing:.06em;color:#718097}.panel-title-row h2{font-weight:600}.goal-card,.tips,.lesson-prep,.hint-panel{border-radius:8px}.goal-card{background:#f6f8fc;border-color:#dce4ef}.lesson-prep{background:#f8fafd}.lesson-prep summary,.hint-button{font-weight:600}.hint-panel{background:#fffdf6;border-color:#ebe2ca}.hint-heading{flex-wrap:wrap;gap:3px}.hint-heading>span{font-size:.8rem}.code-block{border-radius:7px;box-shadow:none;font-weight:550}.program-item{border-radius:7px;box-shadow:none}.program-label{font-weight:550}.dropzone{border-radius:8px}.run-btn,.reset-btn,.stop-btn,.ghost-btn,.next-btn{border-radius:7px;box-shadow:none;font-weight:550}.run-btn{background:#187759}.status-badge,.feedback,.code-preview,.insert-target-bar{border-radius:7px}.editor-modes{border-radius:7px}.editor-modes button{border-radius:5px}.editor-caption{border-radius:8px 8px 0 0}#pythonEditor{font:16px/1.85 ui-monospace,Consolas,monospace;border-radius:0 0 8px 8px}.editor-note,.code-explanation,.command-guide dl,.command-guide p,.stage-coordinates{font-size:.875rem}.project-banner{background:#edf3fb;border-radius:10px}.stage-wrap{border-radius:9px}.stage{border-radius:6px}.site-footer{padding:22px max(24px,calc((100vw - 1280px)/2));font-size:.8rem}.site-footer>a{font-weight:600;color:#425975}
@media(min-width:1500px){.home-hero{min-height:0}}
@media(max-width:1200px){.site-header{gap:12px;padding:14px 24px}.main-nav{order:3;flex-basis:100%;justify-content:center}.header-right{margin-left:auto}.home-hero{gap:30px;padding:24px 0 36px}.age-card,.age-card.selected{padding:18px 14px}.progress-summary{grid-template-columns:repeat(4,1fr)}.progress-summary .learner-card{grid-column:1/-1}}
@media(max-width:960px){main{width:calc(100% - 36px)}.home-hero{grid-template-columns:1.1fr 1fr;gap:24px}.home-hero h1{font-size:2.2rem}.continue-card{padding:22px}.continue-main{grid-template-columns:minmax(0,1fr) 65px}.continue-robot{width:65px;height:90px}.continue-card h2{font-size:1.15rem}.hero-actions{flex-wrap:wrap}.age-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.age-card,.age-card.selected{min-height:215px;padding:20px}.home-progress-content{grid-template-columns:1fr;gap:24px}.mini-badges{padding:22px 0 0;border-left:0;border-top:1px solid var(--line)}.program-panel{position:static}.home-progress{padding:24px}}
@media(max-width:700px){.site-header{padding:12px 16px}.main-nav{justify-content:flex-start;gap:3px}.main-nav a{flex:none;padding:8px 12px;font-size:.85rem}.site-brand{font-size:1rem}.brand-secondary{font-size:.8rem}.logo-mark{width:38px;height:38px}.page-view{padding-top:20px}.home-hero,.senior-mode .home-hero{grid-template-columns:1fr;gap:28px;padding:15px 0 30px}.home-hero h1{font-size:clamp(1.85rem,7vw,2.5rem);line-height:1.5}.hero-label{font-size:.75rem;gap:9px;margin-bottom:14px}.hero-label>span{padding-left:9px}.hero-content>p:not(.hero-label){font-size:.95rem;margin:15px 0 21px}.hero-actions{gap:10px}.hero-footnote{display:flex;font-size:.75rem;gap:9px;margin-top:19px}.continue-card{padding:22px;border-radius:10px}.continue-main{grid-template-columns:minmax(0,1fr) 85px;margin:18px 0}.continue-robot{width:85px;height:90px}.continue-card h2{font-size:1.2rem}.continue-link{margin-top:19px}.age-section{padding-top:24px}.section-heading{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:17px}.section-heading h2{font-size:1.2rem}.section-heading>span{max-width:none;text-align:left;font-size:.8rem}.age-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.age-card,.age-card.selected{padding:17px 14px;min-height:222px;border-radius:8px}.age-card:last-child{grid-column:1/-1;min-height:180px;flex-direction:column;align-items:flex-start;gap:0}.age-card:last-child .age-copy{margin-top:18px}.age-copy{margin-top:18px}.age-copy>strong{font-size:1.15rem}.age-copy>span{font-size:.85rem}.age-copy>small{font-size:.78rem}.path-selection{font-size:.7rem}.home-progress{padding:20px;margin-top:24px}.home-progress .section-heading{margin-bottom:18px}.home-progress-content{gap:18px}.mini-badges{gap:7px;padding-top:18px}.mini-badge small{font-size:.7rem}.mini-badge>span{width:32px;height:32px}.page-heading h1{font-size:1.7rem}.world-section{padding:18px}.lesson-path{gap:10px}.lesson-node{padding:13px}.node-state{font-size:.75rem}.track-tabs .age-copy{margin:0}.badge-section{padding:18px}.progress-summary{grid-template-columns:1fr 1fr}.run-actions{border-radius:9px}.tiny-mode .code-block{min-height:88px}.site-footer{padding:20px 18px}.transfer-card{padding:20px}}
@media(max-width:380px){main{width:calc(100% - 28px)}.hero-label{display:block}.hero-label>span{display:block;border:0;padding:4px 0 0}.hero-actions>*{flex:1;padding:11px 12px;font-size:.875rem;gap:10px}.age-card,.age-card.selected{padding:16px 12px}.path-selection{font-size:.65rem}.mini-badges{flex-wrap:wrap;justify-content:center}.mini-badge{flex:0 0 28%}.lesson-path{grid-template-columns:1fr}.palette-buttons{grid-template-columns:1fr}.tiny-mode .palette-buttons{grid-template-columns:repeat(3,1fr)}}

/* v0.6 — Guided unit for upper primary and lower secondary learners. */
.focus-section{border-top:1px solid var(--line);padding-top:28px}.focus-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.focus-card{display:block;border:1px solid #cbd8e9;background:#fff;border-radius:12px;padding:26px 28px;transition:border-color .15s}.focus-card:hover{border-color:#265fc4}.focus-card.middle{background:#edf3fc}.focus-age{display:inline-block;color:#265fc4;font-size:.95rem;font-weight:600;padding-bottom:8px}.focus-card h3{font-size:1.5rem;margin:0 0 10px}.focus-card p{color:var(--muted);font-size:.95rem;margin:0 0 24px}.focus-card-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:18px;font-size:.875rem}.focus-card-bottom strong{font-weight:550;color:#265fc4}.other-tracks{margin:24px 0;color:var(--muted)}.other-tracks summary{cursor:pointer;padding:8px 0}.other-tracks .age-grid{grid-template-columns:repeat(3,minmax(0,1fr));padding-top:16px}.unit-back{color:#265fc4;font-size:.95rem}.unit-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:28px}.unit-nav a{padding:15px 18px;background:#fff;border:1px solid var(--line);border-radius:8px;font-size:.95rem}.unit-nav a[aria-current=step]{border-color:#265fc4;background:#edf3fc;color:#204fa1}.unit-nav small{display:block;font-size:.8rem;color:var(--muted);margin-top:5px}.unit-article{background:#fff;border:1px solid var(--line);border-radius:12px;padding:32px 40px}.unit-article h2{font-size:1.4rem;margin:5px 0 12px}.unit-article p{max-width:900px}.unit-reading{max-width:920px}.unit-outcome{color:#265fc4;font-weight:500;margin:10px 0}.unit-example,.unit-practice,.unit-reflect,.unit-check{border-top:1px solid var(--line);margin-top:28px;padding-top:28px}.unit-example .section-heading{margin-bottom:8px}.unit-example>p{color:var(--muted)}.demo-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:36px;align-items:start}.demo-line{display:flex;align-items:center;flex-wrap:wrap;gap:14px;border-bottom:1px solid var(--line);padding:12px;font-size:.95rem;background:#f5f7fa}.demo-line.active{background:#e4efff;outline:2px solid #719bd5;outline-offset:-2px}.demo-line code{font-size:.95rem;color:#224d86;margin-left:auto;overflow-wrap:anywhere}.demo-line-number{color:#65768c;font-size:.875rem}.demo-controls{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}#demoStatus,#demoPosition{font-size:.875rem;color:#51647e;line-height:1.7}.demo-grid{display:grid;grid-template-columns:repeat(5,1fr);aspect-ratio:1;border:1px solid #9aafc9;border-radius:8px;overflow:hidden}.demo-cell{display:grid;place-items:center;background:#f5f8fc;border:1px solid #d9e2ef;font:600 26px/1 system-ui,sans-serif}.demo-cell.demo-goal{color:#946500;background:#fff7de}.demo-cell.demo-robot{color:#fff;background:#265fc4}.unit-practice{display:flex;align-items:center;justify-content:space-between;gap:24px}.unit-practice .primary-cta{flex:none}.unit-reflect .continue-link{width:max-content;max-width:100%;border:1px solid var(--line);margin-top:14px}.unit-check>p{color:var(--muted);font-size:.875rem}.unit-check fieldset{border:0;padding:0;margin:20px 0}.unit-check legend{font-size:1.1rem;font-weight:550;margin-bottom:16px}.quiz-options{display:grid;gap:10px;max-width:820px}.quiz-options label{padding:13px 16px;border:1px solid var(--line);border-radius:8px;display:flex;align-items:start;gap:12px;cursor:pointer}.quiz-options label:has(input:checked){border-color:#265fc4;background:#f0f5ff}.quiz-options input{margin-top:7px;accent-color:#265fc4;flex:none}.quiz-feedback{min-height:0;color:var(--muted)}.quiz-feedback:empty{display:none}.quiz-feedback.correct{background:#edf8f2;color:#215f46;padding:14px 18px;border-radius:8px}.quiz-feedback.retry{background:#fff9e8;color:#725618;padding:14px 18px;border-radius:8px}#unitNextLink{margin-top:20px}.unit-progress-summary{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.unit-progress-summary article{padding:22px;background:#fff;border:1px solid var(--line);border-radius:10px}.unit-progress-summary h2{font-size:1.2rem;margin:6px 0}.unit-progress-summary p{font-size:.95rem}.unit-progress-summary a{color:#265fc4}.block-error{outline:3px solid #d9533e;outline-offset:3px}.lab-heading{flex-wrap:wrap}.lab-heading>a:last-child{margin-left:auto;font-weight:550}#unitLockedNote{color:#74561b}
@media(min-width:1250px){.middle-mode .workspace-shell{grid-template-columns:205px minmax(0,1fr) 290px}.paired-mode .program-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:14px}.paired-mode #editorModes{grid-column:1/-1;margin-bottom:0}.paired-mode #blocksEditor{grid-column:1;grid-row:2;min-width:0}.paired-mode #codePreview{grid-column:2;grid-row:2;margin:0;min-width:0;align-self:start}.paired-mode .run-actions{grid-column:1/-1;grid-row:3}.paired-mode #codePreview pre{white-space:pre-wrap;overflow-wrap:anywhere;padding:14px}.paired-mode .block-head{gap:5px}.paired-mode .block-tools{margin-left:auto}.paired-mode .insert-target-bar{gap:6px}.paired-mode .insert-target-bar button{width:100%}}
@media(max-width:960px){.demo-layout{grid-template-columns:minmax(0,1fr) 230px;gap:22px}.unit-article{padding:26px}.unit-nav{grid-template-columns:1fr 1fr}.focus-card{padding:22px}.focus-card h3{font-size:1.25rem}}
@media(max-width:700px){.focus-grid,.unit-progress-summary{grid-template-columns:1fr}.focus-card{padding:22px}.focus-card p{margin-bottom:20px}.other-tracks .age-grid{grid-template-columns:1fr}.other-tracks .age-card{min-height:180px}.unit-article{padding:20px 17px}.unit-article h2{font-size:1.2rem}.unit-nav{gap:8px;margin-bottom:20px}.unit-nav a{padding:12px;font-size:.875rem}.demo-layout{grid-template-columns:1fr}.demo-stage{width:min(270px,100%);margin:0 auto;grid-row:1}.demo-line{font-size:.875rem;padding:11px 10px;gap:8px}.demo-line code{font-size:.875rem;max-width:100%}.unit-practice{display:block}.unit-practice .primary-cta{margin-top:12px;width:100%}.unit-example,.unit-practice,.unit-reflect,.unit-check{margin-top:24px;padding-top:24px}.unit-check legend{font-size:1rem}.quiz-options label{padding:12px}.lab-heading>a:last-child{margin-left:0}.focus-card-bottom{font-size:.8rem}}
.continue-card p.continue-subtitle{color:#b9cbe3}.command-guide summary{cursor:pointer;font-size:.95rem;font-weight:550}.feedback-lesson-link{display:block;color:#1e634e;font-size:.95rem;font-weight:600;margin-top:10px;text-decoration:underline;text-underline-offset:4px}
/* Keep the goal inside its grid cell even on a compact, side-by-side lab. */
.stage{container-type:inline-size}.star{font-family:system-ui,sans-serif;font-size:clamp(16px,16cqi,48px);line-height:1}
