@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap);#root,body,html{height:100%;overscroll-behavior:none}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-overflow-scrolling:auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.home-page{align-items:center;background:radial-gradient(ellipse at 30% 30%,#fefeff 0,#f4f6fa 60%,#eaeff5 100%);display:flex;height:100vh;justify-content:center;overflow:hidden;position:relative;width:100vw}.home-bg-canvas,.home-floating-field{inset:0;pointer-events:none;position:absolute}.home-floating-field{z-index:3}.home-floating-block{animation:floatBlock 20s ease-in-out 0s infinite alternate,blockDrift 32s ease-in-out 0s infinite alternate;animation:floatBlock var(--duration,20s) ease-in-out var(--delay,0s) infinite alternate,blockDrift calc(var(--duration, 20s)*1.6) ease-in-out calc(var(--delay, 0s)/2) infinite alternate;filter:blur(.6px) drop-shadow(0 8px 18px rgba(15,23,42,.13));height:72px;opacity:.2;pointer-events:none;position:absolute;transform:translateZ(0);width:220px}.home-floating-block-svg svg{display:block;height:100%;width:100%}@keyframes floatBlock{0%,to{transform:translateZ(0) rotate(-1deg)}50%{transform:translate3d(40px,-30px,0) rotate(4deg);transform:translate3d(var(--dx,40px),var(--dy,-30px),0) rotate(var(--rot,4deg))}}@keyframes blockDrift{0%{margin-left:0;margin-top:0}to{margin-left:-54px;margin-top:24px}}.home-ring{animation:ringPulse 6s ease-in-out infinite;border:2px solid #4361ee0d;border-radius:50%;pointer-events:none;position:absolute}.home-ring-1{animation-delay:0s;height:600px;width:600px}.home-ring-1,.home-ring-2{left:50%;top:50%;transform:translate(-50%,-50%)}.home-ring-2{animation-delay:2s;height:900px;width:900px}.home-ring-3{animation-delay:4s;height:1200px;left:50%;top:50%;transform:translate(-50%,-50%);width:1200px}@keyframes ringPulse{0%,to{opacity:.6;transform:translate(-50%,-50%) scale(1)}50%{opacity:.15;transform:translate(-50%,-50%) scale(1.04)}}.home-content{gap:1.4rem;max-width:680px;padding:2rem;position:relative;text-align:center;z-index:10}.home-content,.home-logo-wrap{align-items:center;display:flex;flex-direction:column}.home-logo-wrap{gap:.5rem;perspective:900px}.home-logo-icon{animation:iconFloat3d 4.2s ease-in-out infinite;display:block;height:clamp(84px,18vw,132px);object-fit:contain;transform-origin:50% 55%;transform-style:preserve-3d;width:min(220px,48vw);will-change:transform}@keyframes iconFloat3d{0%,to{transform:translateY(0) translateZ(0) rotateX(0deg) rotateY(0deg) rotate(0deg)}25%{transform:translateY(-8px) translateZ(4px) rotateX(5deg) rotateY(-8deg) rotate(-1deg)}50%{transform:translateY(-11px) translateZ(2px) rotateX(-4deg) rotateY(7deg) rotate(1deg)}75%{transform:translateY(-7px) translateZ(3px) rotateX(3deg) rotateY(-5deg) rotate(-1deg)}}.home-title{filter:drop-shadow(0 4px 12px rgba(0,0,0,.06));font-family:Inter,sans-serif;font-size:clamp(2.4rem,6vw,4.2rem);font-weight:900;letter-spacing:-.03em;line-height:1;margin:0}.ht-block{color:#4361ee}.ht-code{color:#7209b7}.ht-draw{color:#f72585}.ht-comma{color:#adb5bd;font-weight:400}.home-tagline{color:#4b5563;font-family:Inter,sans-serif;font-size:1.15rem;font-weight:500;line-height:1.65;margin:0}.home-tagline strong{color:#f59f00;font-weight:700}.home-play-btn{align-items:center;background:linear-gradient(135deg,#4361ee,#2563eb);border:none;border-radius:999px;box-shadow:0 8px 24px #2563eb4d;color:#fff;cursor:pointer;display:inline-flex;font-family:Inter,sans-serif;font-size:1.3rem;font-weight:800;gap:.65rem;justify-content:center;letter-spacing:.01em;margin-top:.5rem;min-height:64px;min-width:320px;overflow:hidden;padding:1.1rem 3.2rem;position:relative;text-align:center;transition:transform .15s ease,box-shadow .15s ease;width:320px}.home-play-btn:after{background:#ffffff1f;content:"";inset:0;opacity:0;position:absolute;transition:opacity .2s}.home-play-btn:hover:after{opacity:1}.home-play-btn:hover{box-shadow:0 12px 32px #2563eb66;transform:translateY(-3px) scale(1.02)}.home-play-btn:active{transform:translateY(0) scale(.98)}.home-play-icon{font-size:1.1rem;line-height:1}.home-play-label{text-align:center}.home-cta-stack{align-items:center;display:flex;flex-direction:column;gap:.6rem}.home-primary-row{align-items:center;display:block;position:relative;width:320px}.home-primary-row .home-play-btn{margin-top:0;min-width:0;width:100%}.home-help-circle{align-items:center;background:#818cf814;border:1.5px solid #6366f1;border-radius:999px;box-shadow:0 4px 10px #4f46e52e;color:#3730a3;cursor:pointer;display:inline-flex;flex-shrink:0;font-size:1.2rem;font-weight:800;height:64px;justify-content:center;left:calc(100% + 10px);position:absolute;top:50%;transform:translateY(-50%);width:64px}.home-help-circle:hover{background:#6366f129}.home-help-circle:hover:after{background:#1f2937;border-radius:7px;color:#fff;content:attr(data-tooltip);font-size:.75rem;font-weight:700;left:50%;padding:.32rem .48rem;position:absolute;top:-38px;transform:translateX(-50%);white-space:nowrap}.home-play-btn--play{background:linear-gradient(135deg,#4361ee,#2563eb)}.home-play-btn--challenge{background:linear-gradient(135deg,#f72585,#d946ef);box-shadow:0 8px 24px #f725854d}.home-play-btn--challenge:hover{box-shadow:0 12px 32px #f7258566}.home-play-btn--learning{background:linear-gradient(135deg,#7209b7,#8b5cf6);box-shadow:0 8px 24px #7209b752}.home-play-btn--learning:hover{box-shadow:0 12px 32px #7209b76b}.home-hint{color:#868e96;font-size:.9rem;font-weight:500;margin:0}.home-about-link,.home-hint{font-family:Inter,sans-serif}.home-about-link{background:#0000;border:none;color:#64748b;cursor:pointer;font-size:.83rem;font-weight:600;margin-top:-.25rem;opacity:.85;padding:0;text-decoration:underline;text-underline-offset:2px}.home-about-link:hover{color:#475569;opacity:1}.about-page{background:radial-gradient(1200px 500px at 10% -10%,#4895ef33,#0000 60%),radial-gradient(900px 500px at 100% 0,#f7258529,#0000 62%),linear-gradient(180deg,#f8fbff,#f0f5ff 45%,#eef2ff);min-height:100vh;overflow-x:hidden;padding:0 0 3rem;position:relative}.about-glow{border-radius:999px;filter:blur(40px);pointer-events:none;position:absolute}.about-glow-1{background:#4361ee2e;height:260px;left:-80px;top:10%;width:260px}.about-glow-2{background:#4cc9f02e;height:320px;right:-100px;top:60%;width:320px}.about-shell{grid-gap:1rem;display:grid;gap:1rem;margin:0;position:relative;width:100%;z-index:2}.about-app-header{border-left:0;border-radius:0;border-right:0;height:auto;min-height:54px;width:100%}.about-shell>:not(.about-app-header){margin-left:auto;margin-right:auto;width:min(980px,calc(100% - 1.6rem))}.about-header-centre{justify-content:center}.about-header-actions{gap:.45rem}.about-github-link--top{align-items:center;display:inline-flex;gap:.45rem}.about-hero{background:#ffffffb8;border:1px solid #64748b29;border-radius:20px;box-shadow:0 8px 30px #1e293b12;padding:1.3rem 1.2rem}.about-kicker{color:#1d4ed8;font-size:.78rem;font-weight:700;letter-spacing:.08em;margin:0;text-transform:uppercase}.about-title{color:#111827;font-size:clamp(2rem,5vw,3rem);font-weight:800;line-height:1.08;margin:.5rem 0 .2rem}.about-title span:first-child{color:#2563eb}.about-title span:nth-child(2){color:#0f766e}.about-title span:nth-child(3){color:#db2777}.about-subtitle{color:#374151;font-size:1rem;line-height:1.55;margin:0}.about-demo-wrap{margin:1.3rem auto 1.1rem;width:min(640px,100%)}.about-demo-gif{border:1px solid #94a3b873;border-radius:14px;box-shadow:0 10px 26px #0f172a24;display:block;margin:0;width:100%}.about-demo-wrap figcaption{color:#64748b;font-size:.84rem;margin-top:.5rem;text-align:center}.about-demo-wrap--tight{margin-bottom:1rem;margin-top:.95rem}.about-demo-gif--contain{margin-left:auto;margin-right:auto;max-height:220px;max-width:100%;object-fit:contain;width:auto}.about-inline-media{margin:1.15rem auto 1rem;width:min(560px,100%)}.about-inline-media figcaption{color:#64748b;font-size:.84rem;line-height:1.45;margin-top:.48rem;text-align:center}.about-inline-image{background:#fff;border:1px solid #94a3b866;border-radius:14px;box-shadow:0 10px 24px #0f172a14;display:block;height:auto;width:100%}.about-inline-media--wide{width:min(720px,100%)}.about-inline-image--svg{background:#fff;margin-left:auto;margin-right:auto;max-height:160px;max-width:100%;object-fit:contain;padding:1.2rem 2rem;width:auto}.about-cms-mark{background:#fff;border:1px solid #64748b73;border-radius:10px;box-shadow:0 6px 16px #0f172a14;display:block;height:auto;margin:.65rem auto 0;opacity:.95;padding:.25rem;width:92px}.about-redirect-overlay{align-items:center;background:#0f172a75;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:40}.about-redirect-modal{background:#fff;border:1px solid #94a3b84d;border-radius:18px;box-shadow:0 20px 48px #0f172a3d;padding:1rem 1rem .95rem;width:min(460px,100%)}.about-redirect-modal h2{color:#0f172a;font-size:1.15rem;margin:0 0 .45rem}.about-redirect-modal p{color:#334155;line-height:1.55;margin:0 0 .55rem}.about-redirect-url{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;color:#0f172a;font-size:.86rem;padding:.6rem .72rem;word-break:break-word}.about-redirect-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:flex-end;margin-top:.75rem}.about-redirect-confirm{background:linear-gradient(135deg,#2563eb,#0ea5e9);border:none;border-radius:999px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:700;padding:.62rem 1.15rem}.about-redirect-confirm:hover{filter:brightness(1.05)}.about-card{background:#ffffffd1;border:1px solid #94a3b847;border-radius:18px;box-shadow:0 5px 24px #0f172a0f;padding:1rem 1.1rem}.about-card h2{color:#0f172a;font-size:1.15rem;margin:0 0 .55rem}.about-card p{color:#374151;line-height:1.6;margin:0 0 .65rem}.about-card p:last-child{margin-bottom:0}.about-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:.4rem}.about-back-btn{background:#eff6ff;border:1.5px solid #2563eb;border-radius:999px;color:#1d4ed8;cursor:pointer;font-size:.9rem;font-weight:700;padding:.62rem 1.15rem;text-decoration:none}.about-back-btn:hover{background:#dbeafe}.about-github-link{align-items:center;background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:#334155;display:inline-flex;font-size:.9rem;font-weight:700;gap:.45rem;padding:.62rem 1.15rem;text-decoration:none}.about-github-link:hover{background:#f8fafc}.about-links{margin:.55rem 0 0;padding-left:1.1rem}.about-inline-link{color:#1d4ed8;text-decoration:underline;text-underline-offset:2px}.about-inline-link:hover{color:#1e40af}@media (max-width:640px){.about-page{padding:0 0 2rem}.about-app-header{gap:.6rem;grid-template-columns:1fr;padding-bottom:.6rem;padding-top:.6rem}.about-header-actions,.about-header-centre{justify-content:flex-start}.about-card,.about-hero{border-radius:14px}}.lessons-page{background:radial-gradient(900px 460px at 8% -10%,#4361ee33,#0000 64%),radial-gradient(800px 380px at 100% 0,#f7258524,#0000 66%),linear-gradient(180deg,#f8fbff,#eef2ff 52%,#f8fbff);min-height:100vh;padding:0 0 2rem}.lessons-shell{grid-gap:.85rem;display:grid;gap:.85rem;margin:0;width:100%}.lessons-app-header{border-left:0;border-radius:0;border-right:0;height:auto;min-height:54px;width:100%}.lessons-shell>:not(.lessons-app-header){margin-left:auto;margin-right:auto;width:min(1120px,calc(100% - 1.6rem))}.lessons-header-centre{justify-content:center}.lessons-header-actions{gap:.45rem}.lessons-hero-meta{background:#ffffffe0;border:1px solid #94a3b847;border-radius:18px;box-shadow:0 8px 24px #0f172a12;padding:.95rem 1rem}.home-back-btn{background:#eef3ff;border:1.5px solid #4361ee;border-radius:999px;color:#2f4bd6;cursor:pointer;font-size:.84rem;font-weight:700;padding:.46rem .95rem}.home-back-btn:hover{background:#e0e9ff}.hero-sub{color:#475569;margin:0}.lessons-progress-wrap{grid-gap:.35rem;display:grid;gap:.35rem;margin-top:.72rem}.lessons-progress-wrap span{color:#334155;font-size:.85rem;font-weight:700}.lessons-progress-bar{background:#e2e8f0;border-radius:999px;height:11px;overflow:hidden;width:100%}.lessons-progress-bar>div{background:linear-gradient(90deg,#4361ee,#f72585);border-radius:999px;height:100%}.lesson-catalog{grid-gap:.9rem;display:grid;gap:.9rem}.catalog-grid{grid-gap:.72rem;display:grid;gap:.72rem;grid-template-columns:repeat(4,minmax(0,1fr))}.catalog-card{align-items:stretch;background:#f8fbff;border:1px solid #dbe7ff;border-radius:12px;border-top:4px solid #dbe7ff;cursor:pointer;display:flex;flex-direction:column;gap:.42rem;min-height:268px;padding:.72rem .72rem .68rem;position:relative;text-align:left;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background .14s ease}.catalog-card:hover{background:#f2f7ff;box-shadow:0 6px 16px #4361ee1f;transform:translateY(-1px)}.catalog-card.is-done{background:linear-gradient(180deg,#f5fffa,#ecfdf5);border-color:#dbe7ff;box-shadow:none}.catalog-card-top{align-items:center;color:#334155;display:flex;font-size:.78rem;font-weight:700;justify-content:space-between;margin-bottom:.36rem}.catalog-lesson-index{color:#0f172a;font-size:.84rem;font-weight:800;letter-spacing:.01em}.catalog-status-pills{align-items:center;display:inline-flex;gap:.25rem}.catalog-card-visual-wrap{align-items:center;aspect-ratio:1/1;background:linear-gradient(180deg,#eef5ff,#e6efff);border:1px solid #d5e4ff;border-radius:10px;display:flex;flex:0 0 auto;justify-content:center;min-height:0;padding:.28rem;width:100%}.catalog-card.is-done .catalog-card-visual-wrap{background:linear-gradient(180deg,#eafcf2,#ddf9e9);border-color:#bbf7d0}.catalog-card-block-preview{align-items:center;display:flex;height:100%;justify-content:center;min-height:0;width:100%}.catalog-card-block-preview svg{display:block;height:auto;max-height:92%;max-width:92%;width:auto}.catalog-card-block-preview svg .blocklyText,.catalog-card-block-preview svg text{fill:#fff!important}.catalog-card-fallback{font-size:clamp(3.5rem,18vmin,5.75rem);line-height:1}.catalog-card h3{color:#0f172a;font-size:.96rem;line-height:1.28;margin:0}.catalog-card p{color:#475569;font-size:.83rem;line-height:1.38;margin:.2rem 0 0;min-height:3.45em}.lesson-pill{border-radius:999px;font-size:.74rem;font-weight:700;padding:.22rem .56rem}.lesson-pill.todo{background:#f1f5f9;color:#334155}.lesson-pill.done{background:#dcfce7;border:1px solid #86efac;color:#166534}.lesson-detail-page{grid-gap:.9rem;background:#ffffffe8;border:1px solid #94a3b84d;border-radius:16px;display:grid;gap:.9rem;padding:1rem}.lesson-detail-top{align-items:center;display:flex;gap:.5rem;justify-content:space-between;margin-bottom:.15rem}.catalog-back-btn{background:#fff;border:1px solid #cbd5e1;border-radius:10px;color:#1e293b;cursor:pointer;font-size:.84rem;font-weight:700;padding:.45rem .8rem}.lesson-level-label{color:#0f766e;font-size:.92rem;font-weight:800;letter-spacing:.08em;margin:.1rem 0 0;text-transform:uppercase}.lesson-detail-page h2{border-bottom:2px solid #dbe7ff;color:#0f172a;font-size:1.65rem;line-height:1.2;margin:.12rem 0 .35rem;padding-bottom:.55rem}.lesson-long-text{color:#334155;font-size:1.1rem;line-height:1.68;margin:0}.lesson-detail-page>.lesson-long-text{margin-top:.15rem}.lesson-steps{color:#334155;font-size:1.08rem;line-height:1.7;margin:0;padding-left:1.18rem}.inline-block-token{align-items:center;display:flex;gap:.28rem;margin:0 0 .25rem}.inline-block-svg{align-items:center;cursor:default;display:inline-flex;min-height:32px}.inline-block-svg *,.inline-block-svg svg{cursor:default!important;pointer-events:none!important}.inline-block-svg svg .blocklyText,.inline-block-svg svg text{fill:#fff!important}.inline-block-label{color:#475569;font-size:.8rem;font-weight:700}.lesson-block-focus-grid{grid-gap:.75rem;display:grid;gap:.75rem}.catalog-card-level-badge{align-items:center;color:#334155;display:inline-flex;font-size:.74rem;font-weight:700;gap:.35rem;letter-spacing:.01em;margin:-.1rem 0 .15rem}.catalog-level-chip{border:1px solid;border-radius:999px;display:inline-flex;font-size:.66rem;font-weight:800;height:1.2rem;min-width:2.1rem;padding:0 .35rem}.catalog-card-feature-emoji,.catalog-level-chip{align-items:center;justify-content:center;line-height:1}.catalog-card-feature-emoji{display:flex;font-size:clamp(4.25rem,22vmin,6.75rem)}.level-0{border-top-color:#22c55e}.level-1{border-top-color:#3b82f6}.level-2{border-top-color:#06b6d4}.level-3{border-top-color:#8b5cf6}.level-4{border-top-color:#ec4899}.level-5{border-top-color:#f97316}.level-6{border-top-color:#14b8a6}.level-7{border-top-color:#e11d48}.level-8{border-top-color:#6366f1}.level-9{border-top-color:#84cc16}.level-10{border-top-color:#0ea5e9}.level-11{border-top-color:#a855f7}.level-12{border-top-color:#f43f5e}.level-13{border-top-color:#f59e0b}.level-0 .catalog-level-chip{background:#ecfdf5;color:#15803d}.level-1 .catalog-level-chip{background:#eff6ff;color:#1d4ed8}.level-2 .catalog-level-chip{background:#ecfeff;color:#0f766e}.level-3 .catalog-level-chip{background:#f5f3ff;color:#6d28d9}.level-4 .catalog-level-chip{background:#fdf2f8;color:#be185d}.level-5 .catalog-level-chip{background:#fff7ed;color:#c2410c}.level-6 .catalog-level-chip{background:#f0fdfa;color:#0f766e}.level-7 .catalog-level-chip{background:#fff1f2;color:#be123c}.level-8 .catalog-level-chip{background:#eef2ff;color:#4338ca}.level-9 .catalog-level-chip{background:#f7fee7;color:#3f6212}.level-10 .catalog-level-chip{background:#f0f9ff;color:#075985}.level-11 .catalog-level-chip{background:#faf5ff;color:#6b21a8}.level-12 .catalog-level-chip{background:#fff1f2;color:#9f1239}.level-13 .catalog-level-chip{background:#fffbeb;color:#92400e}.lesson-mini-section{grid-gap:.55rem;display:grid;gap:.55rem}.lesson-mini-title{color:#0f172a;font-size:1.45rem;line-height:1.25;margin:0}.lesson-think-prompt{color:#1e3a8a;font-size:1.55rem;font-weight:800;line-height:1.32;margin:0}.lesson-focus-card{grid-gap:.68rem;background:#f9fbff;border:1px solid #dbe7ff;border-radius:12px;display:grid;gap:.68rem;margin-top:.15rem;padding:.95rem 1rem}.lesson-focus-card--mission{background:linear-gradient(180deg,#f5f9ff,#eef6ff);border-color:#bfdbfe}.lesson-focus-card--try{background:linear-gradient(180deg,#f6f7ff,#eef2ff);border-color:#c7d2fe}.lesson-focus-card--recap{background:linear-gradient(180deg,#f3fff7,#ecfdf5);border-color:#bbf7d0}.lesson-focus-card--context{background:linear-gradient(180deg,#fbfdff,#f1f5f9);border-color:#cbd5e1}.lesson-photo-gallery{grid-gap:.85rem;display:grid;gap:.85rem;justify-content:center;margin:.2rem 0}.lesson-photo-gallery.is-single{grid-template-columns:minmax(0,620px)}.lesson-photo-gallery.is-multi{align-items:start;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.lesson-photo-callout{background:#f8fbff;border:1px solid #d6e4ff;border-radius:12px;margin:0;overflow:visible;width:100%}.lesson-photo-callout img{background:#f1f5f9;border-radius:12px 12px 0 0;box-sizing:border-box;display:block;height:auto;max-height:260px;object-fit:contain;object-position:center;padding:.35rem;width:100%}.lesson-photo-callout figcaption{background:#fff;border-top:1px solid #e2e8f0;color:#475569;font-size:.92rem;line-height:1.55;margin:0;padding:.44rem .58rem .52rem}.lesson-photo-reference-prefix{color:#334155;font-weight:700}.lesson-photo-callout.is-size-medium img{max-height:320px}.lesson-photo-callout.is-size-large img{max-height:420px}.lesson-photo-callout.is-size-hero img{max-height:540px}.lesson-gif-callout{background:linear-gradient(180deg,#f8fbff,#eef5ff);border:1px solid #d5e4ff;border-radius:12px;margin:0;overflow:hidden}.lesson-gif-image{background:repeating-linear-gradient(-45deg,#4361ee14,#4361ee14 10px,#4361ee0a 0,#4361ee0a 20px);display:block;max-height:230px;object-fit:cover;width:100%}.lesson-gif-caption{background:#ffffffe6;border-top:1px solid #dbe7ff;color:#334155;font-size:.84rem;margin:0;padding:.5rem .62rem .58rem}.lesson-block-focus-item{padding:.95rem 1rem}.check-cta-btn{background:linear-gradient(135deg,#4361ee,#7b2ff7);border:none;border-radius:999px;color:#fff;cursor:pointer;font-size:.86rem;font-weight:800;padding:.5rem 1rem;white-space:nowrap}.check-cta-btn:disabled{cursor:not-allowed;opacity:.7}.studio-shell{grid-gap:0;background:#f8fbff;border:2px solid #a9c8ff;border-radius:14px;display:grid;gap:0;grid-template-columns:1.1fr .9fr;overflow:hidden;position:relative}.studio-success-overlay{background:#0f172ae6;border:2px solid #86efac;border-radius:999px;box-shadow:0 8px 24px #0f172a3d;color:#fff;font-size:.9rem;font-weight:800;left:50%;padding:.62rem 1rem;pointer-events:none;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);z-index:6}.studio-mission{background:#f2f7ff;border-bottom:1px solid #cfe0ff;grid-column:1/-1;padding:.58rem .65rem .5rem}.studio-mission p{color:#334155;margin:0}.studio-toolbar{align-items:center;background:#eef6ff;border-bottom:1px solid #cfe0ff;display:flex;gap:.6rem;grid-column:1/-1;justify-content:space-between;padding:.55rem .65rem}.studio-toolbar p{color:#1e293b;line-height:1.45;margin:0}.studio-pane{background:#fff;border:none;display:flex;min-height:0;overflow:hidden}.studio-pane+.studio-pane{border-left:1px solid #d8e7ff}.lesson-blockly-mount{background:#fff;border:1px solid #dbe7ff;border-radius:0;height:410px;overflow:hidden;width:100%}.lesson-blockly-mount .blocklyFlyout,.lesson-blockly-mount .blocklyToolboxDiv{overflow-y:auto!important}.lesson-mini-canvas{height:100%;width:100%}.lesson-status-message{color:#b45309;font-size:.88rem;font-weight:700;margin:.5rem 0 .35rem;min-height:1.25rem}.lesson-status-message.done{color:#15803d}.lesson-divider{border:0;border-top:1px solid #d8e4f2;margin:.85rem 0 .35rem}.lesson-takeaway{border-radius:12px;margin-bottom:.65rem;margin-top:1.15rem;padding:.95rem 1rem;position:relative}.lesson-takeaway h3{color:#0f172a;font-size:1.35rem;margin:0 0 .45rem}.lesson-takeaway p{color:#334155;line-height:1.55;margin:0 0 .55rem}.lesson-takeaway ul{color:#334155;line-height:1.72;margin:.2rem 0 .15rem;padding-left:1.45rem}.lesson-takeaway li{margin:.28rem 0;padding-left:.15rem}.takeaway-lock{background:#fee2e2;border:1px solid #fca5a5;border-radius:10px;color:#991b1b;font-size:.78rem;font-weight:700;line-height:1.35;max-width:min(12.5rem,calc(100% - 10rem));padding:.35rem .65rem;position:absolute;right:.55rem;text-align:right;top:.55rem}.lesson-detail-nav{display:flex;gap:.6rem;justify-content:space-between;margin-top:.5rem}.lesson-nav-btn{background:#fff;border:1px solid #cbd5e1;border-radius:10px;color:#1e293b;cursor:pointer;font-size:.87rem;font-weight:700;padding:.52rem .9rem}.lesson-nav-btn.primary{background:linear-gradient(135deg,#2563eb,#0ea5e9);border-color:#0000;color:#fff}.lesson-nav-btn:disabled{cursor:not-allowed;opacity:.45}@media (max-width:900px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.lessons-app-header{gap:.6rem;grid-template-columns:1fr;padding-bottom:.6rem;padding-top:.6rem}.lessons-header-actions,.lessons-header-centre{justify-content:flex-start}.studio-shell{grid-template-columns:1fr}.studio-toolbar{align-items:flex-start;flex-direction:column}.lesson-blockly-mount{height:360px}.lesson-mini-canvas{height:320px}.catalog-grid,.lesson-photo-gallery.is-multi,.lesson-photo-gallery.is-single{grid-template-columns:1fr}}.word-modal-overlay{align-items:center;animation:fadeIn .25s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#e6ebf1d9;display:flex;inset:0;justify-content:center;padding:12px;position:fixed;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.word-modal{animation:slideUp .3s cubic-bezier(.34,1.56,.64,1);background:#fff;border:1px solid #0000000f;border-radius:24px;box-shadow:0 20px 60px #00000014,0 0 0 1px #00000005;display:flex;flex-direction:column;max-height:calc(100vh - 24px);max-width:520px;overflow:hidden;padding:2.4rem 2.8rem;text-align:center;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.word-modal-icon{filter:drop-shadow(0 4px 8px rgba(0,0,0,.1));font-size:3.5rem;margin-bottom:.5rem}.word-modal-title{color:#111827;font-family:Inter,sans-serif;font-size:1.8rem;font-weight:800;letter-spacing:-.02em;margin:0 0 .5rem}.word-modal-desc{color:#4b5563;font-family:Inter,sans-serif;font-size:.95rem;font-weight:500;line-height:1.6;margin:0 0 1.8rem}.word-choices{display:flex;flex-direction:column;gap:.46rem;overflow-y:visible;padding-right:0}.word-choice-examples-label-row{align-items:center;display:grid;grid-template-columns:1fr auto;padding:0 .25rem}.word-choice-examples-label{color:#64748b;font-size:.68rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.word-choice-btn{align-items:stretch;background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;color:#334155;cursor:pointer;display:flex;font-family:Inter,sans-serif;font-size:.96rem;font-weight:700;gap:.5rem;justify-content:space-between;letter-spacing:.01em;padding:.55rem .8rem;text-transform:capitalize;transition:background .15s,border-color .15s,color .15s,transform .12s,box-shadow .15s}.word-choice-main{align-items:center;display:flex;flex:1 1;gap:.6rem;min-width:0}.word-choice-difficulty{background:#e2e8f0;border-radius:999px;color:#0f172a;font-size:.8rem;font-weight:800;letter-spacing:.06em;padding:.2rem .55rem;text-transform:uppercase}.word-choice-difficulty--easy{background:#dcfce7;border:1px solid #86efac;color:#166534}.word-choice-difficulty--very-easy{background:#ccfbf1;border:1px solid #5eead4;color:#065f46}.word-choice-difficulty--medium{background:#fef3c7;border:1px solid #fcd34d;color:#92400e}.word-choice-difficulty--hard{background:#ffedd5;border:1px solid #fdba74;color:#9a3412}.word-choice-difficulty--very-hard{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b}.word-choice-btn:hover{background:#f0f4ff;border-color:#4361ee;box-shadow:0 4px 12px #4361ee26;color:#4361ee;transform:translateX(4px)}.word-choice-btn:active{transform:scale(.98)}.word-choice-shift{background:#fef3c7;border:1px solid #fcd34d;border-radius:999px;color:#92400e;font-size:.72rem;font-weight:700;padding:.12rem .45rem}.word-modal-back-btn{background:#0000;border:1.5px solid #94a3b8;border-radius:10px;color:#334155;cursor:pointer;font-family:Inter,sans-serif;font-size:.92rem;font-weight:700;padding:.7rem 1.2rem;transition:background .15s,border-color .15s,color .15s}.word-modal-back-btn:hover{background:#f8fafc;border-color:#64748b;color:#0f172a}.word-timer-toggle-row{align-items:center;display:flex;flex-direction:row;gap:.55rem;padding:0}.word-modal-controls-row{align-items:center;display:flex;gap:.9rem;justify-content:space-between;margin-top:.95rem}.word-timer-toggle-label{color:#334155;font-size:.9rem;font-weight:700}.word-timer-toggle{align-items:center;border:none;border-radius:999px;cursor:pointer;display:inline-flex;height:30px;padding:4px;transition:background .2s ease;width:52px}.word-timer-toggle.is-off{background:#cbd5e1}.word-timer-toggle.is-on{background:#f59e0b}.word-timer-toggle-knob{background:#fff;border-radius:50%;box-shadow:0 1px 4px #0f172a40;height:22px;transform:translateX(0);transition:transform .2s ease;width:22px}.word-timer-toggle.is-on .word-timer-toggle-knob{transform:translateX(22px)}.word-timer-warning{color:#92400e;font-size:.84rem;font-weight:700;margin:.55rem 0 0}.quickdraw-preview-list{align-items:center;display:inline-flex;flex-shrink:0;gap:.2rem}.quickdraw-preview-item{align-items:center;background:#fff;border:1px solid #dbe4ef;border-radius:8px;color:#4b5563;display:inline-flex;height:38px;justify-content:center;width:38px}.quickdraw-preview-svg{display:block}.quickdraw-preview-state{align-items:center;background:#fff;border:1px dashed #cbd5e1;border-radius:8px;color:#64748b;display:inline-flex;flex-shrink:0;font-size:.64rem;font-weight:700;height:38px;justify-content:center;width:78px}.quickdraw-preview-state--error{background:#fff7ed;border-color:#fdba74;color:#9a3412}.challenge-word-modal .word-choice-btn{justify-content:center;text-align:center}.challenge-modal-footer{border-top:1px solid #e2e8f0;display:flex;justify-content:flex-start;margin-top:1rem;padding-top:.9rem}@media (max-height:760px){.word-modal{padding:1.3rem 1.1rem}.word-modal-icon{font-size:2.6rem;margin-bottom:.3rem}.word-modal-title{font-size:1.4rem}.word-modal-desc{font-size:.88rem;line-height:1.45;margin-bottom:.9rem}.word-choice-btn{font-size:.9rem;padding:.46rem .65rem}.quickdraw-preview-item{height:34px;width:34px}.quickdraw-preview-state{height:34px;width:70px}.word-modal-controls-row{gap:.55rem;margin-top:.7rem}}*{box-sizing:border-box}body{background:#f0f2f5;color:#2d3436;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0}.twemoji-emoji{height:1em;margin:0 .08em;vertical-align:-.12em;width:1em}.app-container{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-header{grid-gap:1rem;align-items:center;background:#fff;border-bottom:2px solid #e0e4e8;box-shadow:0 1px 4px #0000000f;display:grid;flex-shrink:0;gap:1rem;grid-template-columns:auto 1fr auto;height:54px;padding:0 1rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.app-header h1,.app-title{font-size:1.3rem;font-weight:800;letter-spacing:-.03em;line-height:1;margin:0;white-space:nowrap}.title-block{color:#4361ee}.title-code{color:#7209b7}.title-draw{color:#f72585}.title-comma{color:#adb5bd;font-weight:400}.header-centre{gap:.8rem;justify-content:center}.header-centre,.word-badge{align-items:center;display:flex}.word-badge{background:#f0f4ff;border:1.5px solid #c5d0f8;border-radius:20px;font-family:Inter,sans-serif;gap:.35rem;padding:.28rem .85rem}.word-badge-label{color:#6b7db3;font-size:.72rem;font-weight:500}.word-badge-word{color:#4361ee;font-size:.9rem;font-weight:700;text-transform:capitalize}.word-badge--challenge{background:#ecfdf5;border-color:#86efac}.word-badge--challenge .word-badge-label{color:#15803d}.word-badge--challenge .word-badge-word{color:#166534}.word-badge--solved{animation:solvedPop .4s cubic-bezier(.34,1.56,.64,1);background:#fefce8;border-color:#fbbf24}.word-badge--solved .word-badge-label{color:#92400e}.word-badge--solved .word-badge-word{color:#78350f}@keyframes solvedPop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.game-timer{align-items:center;background:#f0f2f5;border:1.5px solid #dde1e6;border-radius:20px;color:#2d3436;display:flex;font-family:Inter,monospace;font-size:.95rem;font-weight:700;gap:.4rem;padding:.28rem .85rem;transition:background .4s,color .4s,border-color .4s}.game-timer--warn{background:#fff3cd;border-color:#ffc107;color:#856404}.game-timer--danger{animation:timerPulse .8s ease-in-out infinite;background:#fde8e8;border-color:#e63946;color:#c0392b}@keyframes timerPulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.timer-up-tag{background:#e63946;border-radius:10px;color:#fff;font-size:.68rem;font-weight:700;padding:1px 6px}.header-actions{align-items:center;display:flex;gap:.5rem;justify-content:flex-end}.ghost-toggle-btn{align-items:center;background:#f8fafc;border:1.5px solid #cbd5e1;border-radius:24px;color:#334155;cursor:pointer;display:inline-flex;font-family:Inter,sans-serif;font-size:.8rem;font-weight:700;gap:8px;padding:5px 10px}.ghost-toggle-label{line-height:1}.ghost-toggle-switch{align-items:center;background:#cbd5e1;border-radius:999px;display:inline-flex;height:24px;padding:3px;transition:background .2s ease;width:42px}.ghost-toggle-knob{background:#fff;border-radius:50%;box-shadow:0 1px 4px #0f172a3d;height:18px;transform:translateX(0);transition:transform .2s ease;width:18px}.ghost-toggle-btn.is-on{background:#dbeafe;border-color:#60a5fa;color:#1d4ed8}.ghost-toggle-btn.is-on .ghost-toggle-switch{background:#60a5fa}.ghost-toggle-btn.is-on .ghost-toggle-knob{transform:translateX(18px)}.run-button{align-items:center;background:linear-gradient(135deg,#2ecc71,#27ae60);border:none;border-radius:24px;box-shadow:0 3px 10px #27ae6059;color:#fff;cursor:pointer;display:inline-flex;font-family:Inter,sans-serif;font-size:.88rem;font-weight:700;gap:7px;padding:7px 18px;transition:transform .1s ease,box-shadow .15s ease}.run-button:hover{background:linear-gradient(135deg,#27ae60,#1e8449);box-shadow:0 5px 16px #27ae6073;transform:translateY(-1px)}.run-button:active{box-shadow:0 2px 6px #27ae604d;transform:translateY(0)}.run-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.55;transform:none}.stop-button{align-items:center;background:#dc2626;border:none;border-radius:24px;box-shadow:0 3px 10px #dc262659;color:#fff;cursor:pointer;display:inline-flex;font-family:Inter,sans-serif;font-size:.88rem;font-weight:700;gap:7px;padding:7px 18px;transition:transform .1s ease,box-shadow .15s ease,background .15s ease}.stop-button:hover{background:#b91c1c;box-shadow:0 5px 16px #b91c1c73;transform:translateY(-1px)}.stop-button:active{box-shadow:0 2px 6px #b91c1c4d;transform:translateY(0)}.exit-button{align-items:center;background:#0000;border:1.5px solid #e63946;border-radius:24px;color:#e63946;cursor:pointer;display:inline-flex;font-family:Inter,sans-serif;font-size:.85rem;font-weight:700;gap:5px;padding:6px 14px;transition:background .15s,color .15s,transform .1s}.exit-button:hover{background:#e63946;color:#fff;transform:translateY(-1px)}.exit-button:active{transform:translateY(0)}.main-layout{min-height:0}.editor-section,.main-layout{display:flex;flex:1 1;overflow:hidden}.editor-section{border-right:2px solid #dde1e6;flex-direction:column;min-width:0}.right-column{display:flex;flex:0 0 380px;flex-direction:column;overflow:hidden}.canvas-section{align-items:center;background:#fafbfc;border-bottom:2px solid #dde1e6;display:flex;flex:1 1;justify-content:center;min-height:0;overflow:hidden}.chat-section{background:#fff;flex:0 0 220px;margin-top:0;overflow:hidden;padding-top:0}.chat-section,.chat-window{display:flex;flex-direction:column}.chat-window{height:100%}.chat-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e0e4e8;display:flex;flex-shrink:0;gap:.45rem;padding:5px 10px}.chat-title{color:#2d3436;font-size:.8rem;font-weight:700;letter-spacing:.01em;margin-right:auto}.chat-status-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.chat-status-dot--idle,.chat-status-dot--loading{animation:dotPulse 1.2s ease-in-out infinite;background:#ffc107}.chat-status-dot--ready{background:#2ecc71}.chat-status-dot--generating{animation:dotPulse .8s ease-in-out infinite;background:#4361ee}.chat-status-dot--error{background:#e63946}@keyframes dotPulse{0%,to{opacity:1}50%{opacity:.35}}.chat-status-label{color:#6b7280;font-size:.7rem;white-space:nowrap}.chat-messages{display:flex;flex:1 1;flex-direction:column;font-size:.82rem;gap:5px;overflow-y:auto;padding:8px 10px}.chat-bubble{border-radius:12px;line-height:1.45;max-width:88%;padding:6px 10px}.chat-bubble p{margin:0}.chat-bubble--assistant{align-self:flex-start;background:#f0f4ff;border:1px solid #d4dcfb;border-bottom-left-radius:4px}.chat-bubble--user{align-self:flex-end;background:#4361ee;border-bottom-right-radius:4px;color:#fff}.chat-bubble-label{color:#4361ee;display:block;font-size:.66rem;font-weight:700;letter-spacing:.04em;margin-bottom:2px;text-transform:uppercase}.chat-bubble--user .chat-bubble-label{color:#ffffffeb}.chat-markdown{font-size:inherit;line-height:1.45}.chat-markdown>:first-child{margin-top:0}.chat-markdown>:last-child{margin-bottom:0}.chat-markdown p{margin:0 0 .45em}.chat-markdown p:last-child{margin-bottom:0}.chat-markdown strong{font-weight:700}.chat-markdown ol,.chat-markdown ul{margin:.35em 0 .5em;padding-left:1.2em}.chat-markdown li{margin:.15em 0}.chat-markdown h1,.chat-markdown h2,.chat-markdown h3{font-size:.95em;font-weight:700;margin:.5em 0 .25em}.chat-markdown hr{border:none;border-top:1px solid #0000001f;margin:.5em 0}.chat-markdown code{background:#00000012;border-radius:4px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.88em;padding:.1em .35em}.chat-markdown .chat-md-pre{background:#0000000f;border:1px solid #00000014;border-radius:8px;font-size:.78rem;margin:.45em 0;overflow-x:auto;padding:6px 8px}.chat-markdown .chat-md-pre code{background:none;font-size:inherit;padding:0}.chat-markdown a{color:#3651d4;text-decoration:underline}.chat-markdown--user code{background:#fff3}.chat-markdown--user .chat-md-pre{background:#0003;border-color:#ffffff40}.chat-markdown--user .chat-md-pre code{color:inherit}.chat-markdown--user a{color:#dbe4ff}.chat-markdown--user hr{border-top-color:#ffffff40}.chat-typing{align-items:center;display:flex;gap:4px;height:14px;margin:0}.chat-typing span{animation:typingBounce 1.2s ease-in-out infinite;background:#4361ee;border-radius:50%;height:6px;width:6px}.chat-typing span:nth-child(2){animation-delay:.2s}.chat-typing span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-5px)}}.chat-form{background:#fafbfc;border-top:1px solid #e0e4e8;display:flex;flex-shrink:0;padding:8px}.chat-form input{background:#fff;border:1px solid #d0d5db;border-radius:6px 0 0 6px;color:#2d3436;flex:1 1;font-family:Inter,sans-serif;font-size:.82rem;outline:none;padding:7px 10px;transition:border-color .2s}.chat-form input:focus{border-color:#4361ee}.chat-form input::placeholder{color:#9ca3af}.chat-form input:disabled{background:#f4f6f8;color:#9ca3af}.chat-form button{background:#4361ee;border:none;border-radius:0 6px 6px 0;color:#fff;cursor:pointer;font-family:Inter,sans-serif;font-size:.82rem;font-weight:600;padding:7px 14px;transition:background .15s}.chat-form button:hover:not(:disabled){background:#3451d1}.chat-form button:disabled{background:#a5b4fc;cursor:not-allowed}.chat-loading-note{background:#fff7ed;border-top:1px solid #fed7aa;color:#92400e;font-size:.72rem;padding:0 10px 8px}.editor-section .blocklyToolboxDiv{background-color:#c9c9c9!important;border-right:1px solid #b8bcc2!important;height:100%!important;min-width:78px!important;overflow-x:hidden!important;overflow-y:auto!important;width:78px!important}.editor-section .blocklyToolboxContents{padding:0!important}.editor-section .blocklyToolboxCategoryGroup,.editor-section .blocklyToolboxContents{max-height:100%!important;overflow-x:hidden!important;overflow-y:auto!important}.editor-section .blocklyToolboxCategory{align-items:center!important;border-radius:0!important;display:flex!important;flex-direction:column!important;gap:2px!important;justify-content:center!important;margin:0!important;min-height:48px!important}.editor-section .blocklyToolboxCategory:hover{background-color:#8f8f8f!important}.editor-section .blocklyToolboxSelected{background-color:#7d7d7d!important}.editor-section .blocklyToolboxCategoryLabel{color:#17212b!important;font-family:Inter,sans-serif!important;font-size:13px!important;font-weight:500!important;line-height:1.1!important;text-align:center!important}.editor-section .blocklyToolboxCategoryIcon{margin:0!important;transform:scale(1.06);transform-origin:center}.editor-section .blocklyTreeRow{align-items:center!important;border-radius:0!important;display:flex!important;flex-direction:column!important;gap:2px!important;justify-content:center!important;margin:0!important;min-height:48px!important;padding:6px!important}.editor-section .blocklyTreeRow:hover{background-color:#8f8f8f!important}.editor-section .blocklyTreeSelected{background-color:#7d7d7d!important}.editor-section .blocklyTreeIcon{margin:0!important;transform:scale(1.06);transform-origin:center}.editor-section .blocklyTreeLabel{color:#17212b!important;font-family:Inter,sans-serif!important;font-size:13px!important;font-weight:500!important;line-height:1.1!important;text-align:center!important}.editor-section .blocklyFlyoutBackground{fill:#f3f4f6!important;fill-opacity:1!important}.editor-section .blocklyFlyout{overflow-y:auto!important;width:430px!important}.editor-section .blocklyFlyoutButton .blocklyFlyoutButtonBackground{fill:#ffb703!important;stroke:#f28f00!important;stroke-width:1px!important}.editor-section .blocklyFlyoutButton .blocklyText{fill:#fff!important;font-weight:700!important}.editor-section .blocklyFlyoutButton:hover .blocklyFlyoutButtonBackground{fill:#f28f00!important}.editor-section .blocklyFlyoutLabelText{fill:#868e96!important;font-family:Inter,sans-serif!important;font-size:11px!important;font-weight:800!important;letter-spacing:.08em!important;text-transform:uppercase!important}.editor-section .blocklyFlyoutSeparatorLabel rect{fill:#e9ecef!important}.editor-section .blocklyMainBackground{fill:#f8f9fa!important}.editor-section .blocklyScrollbarHandle{fill:#ced4da!important}.editor-section .blocklyInvalidInput{background:#e9ecef!important;border-radius:4px}.editor-section .blocklySelected>.blocklyPath{stroke:#f59f00!important;stroke-width:3px!important}.editor-section .blocklyBlockCanvas image[*|href*=twemoji],.editor-section .blocklyBlockCanvas image[href*=twemoji]{transform:scaleX(-1);transform-origin:center}.blocklyDropDownDiv image[*|href*=twemoji],.blocklyDropDownDiv image[href*=twemoji]{transform:none!important}